diff --git a/.gitignore b/.gitignore index ea11103..86399ae 100644 --- a/.gitignore +++ b/.gitignore @@ -57,17 +57,4 @@ Icon # Claude settings # --------------- -/.claude - -# Node.js -# --------------- - -node_modules/ -npm-debug.log* -*.log - -# Build -# --------------- - -dist/ -node_modules/ +/.claude \ No newline at end of file diff --git a/assets/fonts/Danzza-Bold.otf b/assets/fonts/Danzza-Bold.otf deleted file mode 100644 index 5779cc2..0000000 Binary files a/assets/fonts/Danzza-Bold.otf and /dev/null differ diff --git a/assets/fonts/Danzza-Bold.woff b/assets/fonts/Danzza-Bold.woff deleted file mode 100644 index 784a004..0000000 Binary files a/assets/fonts/Danzza-Bold.woff and /dev/null differ diff --git a/assets/fonts/Danzza-Light.otf b/assets/fonts/Danzza-Light.otf deleted file mode 100644 index 7f14f9c..0000000 Binary files a/assets/fonts/Danzza-Light.otf and /dev/null differ diff --git a/assets/fonts/Danzza-Light.woff b/assets/fonts/Danzza-Light.woff deleted file mode 100644 index ca55417..0000000 Binary files a/assets/fonts/Danzza-Light.woff and /dev/null differ diff --git a/assets/fonts/Danzza-Medium.otf b/assets/fonts/Danzza-Medium.otf deleted file mode 100644 index af1c473..0000000 Binary files a/assets/fonts/Danzza-Medium.otf and /dev/null differ diff --git a/assets/fonts/Danzza-Medium.woff b/assets/fonts/Danzza-Medium.woff deleted file mode 100644 index 7a0782a..0000000 Binary files a/assets/fonts/Danzza-Medium.woff and /dev/null differ diff --git a/assets/fonts/Danzza-Regular.otf b/assets/fonts/Danzza-Regular.otf deleted file mode 100644 index 768b3eb..0000000 Binary files a/assets/fonts/Danzza-Regular.otf and /dev/null differ diff --git a/assets/fonts/Danzza-Regular.woff b/assets/fonts/Danzza-Regular.woff deleted file mode 100644 index 3a8b2cc..0000000 Binary files a/assets/fonts/Danzza-Regular.woff and /dev/null differ diff --git a/assets/fonts/terminal-grotesque.ttf b/assets/fonts/terminal-grotesque.ttf deleted file mode 100644 index 3786710..0000000 Binary files a/assets/fonts/terminal-grotesque.ttf and /dev/null differ diff --git a/assets/img/GIF_world_game_planete.gif b/assets/img/GIF_world_game_planete.gif deleted file mode 100644 index 6129b0f..0000000 Binary files a/assets/img/GIF_world_game_planete.gif and /dev/null differ diff --git a/assets/img/icon-earth-green.png b/assets/img/icon-earth-green.png deleted file mode 100644 index 21f1848..0000000 Binary files a/assets/img/icon-earth-green.png and /dev/null differ diff --git a/assets/video/Website_version.mp4 b/assets/video/Website_version.mp4 deleted file mode 100644 index 256ffeb..0000000 Binary files a/assets/video/Website_version.mp4 and /dev/null differ diff --git a/assets/video/mobile_version_texte_fixe.mp4 b/assets/video/mobile_version_texte_fixe.mp4 deleted file mode 100644 index 9720379..0000000 Binary files a/assets/video/mobile_version_texte_fixe.mp4 and /dev/null differ diff --git a/index.html b/index.html deleted file mode 100644 index 2315788..0000000 --- a/index.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - World Game - Play to Engage - - - - - - -
- - - - - - diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 8c71d45..0000000 --- a/package-lock.json +++ /dev/null @@ -1,1385 +0,0 @@ -{ - "name": "world-game-website", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "world-game-website", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "@sveltejs/vite-plugin-svelte": "6.0.0", - "gsap": "^3.14.2", - "navaid": "^1.2.0", - "svelte": "5.0.0", - "vite": "7.0.4" - }, - "devDependencies": { - "fs-extra": "^11.3.3" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", - "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", - "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", - "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", - "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", - "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", - "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", - "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", - "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", - "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", - "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", - "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", - "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", - "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", - "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", - "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", - "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", - "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", - "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", - "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", - "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", - "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", - "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", - "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", - "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", - "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.0.0.tgz", - "integrity": "sha512-mma5GJ23pYiWpTNbN//g9XI3Hfob3aAlXPP42qRtvjgTAU6pfJyLyNPTdLjFuj+jfC9JslP4J3AkeiJNhjtLLA==", - "license": "MIT", - "dependencies": { - "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0-next.1", - "debug": "^4.4.1", - "deepmerge": "^4.3.1", - "kleur": "^4.1.5", - "magic-string": "^0.30.17", - "vitefu": "^1.1.1" - }, - "engines": { - "node": "^20.19 || ^22.12 || >=24" - }, - "peerDependencies": { - "svelte": "^5.0.0", - "vite": "^6.3.0 || ^7.0.0" - } - }, - "node_modules/@sveltejs/vite-plugin-svelte-inspector": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.2.tgz", - "integrity": "sha512-TZzRTcEtZffICSAoZGkPSl6Etsj2torOVrx6Uw0KpXxrec9Gg6jFWQ60Q3+LmNGfZSxHRCZL7vXVZIWmuV50Ig==", - "license": "MIT", - "dependencies": { - "obug": "^2.1.0" - }, - "engines": { - "node": "^20.19 || ^22.12 || >=24" - }, - "peerDependencies": { - "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", - "svelte": "^5.0.0", - "vite": "^6.3.0 || ^7.0.0" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "license": "MIT" - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-typescript": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", - "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", - "license": "MIT", - "peerDependencies": { - "acorn": ">=8.9.0" - } - }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "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" - } - }, - "node_modules/esm-env": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", - "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", - "license": "MIT" - }, - "node_modules/esrap": { - "version": "1.4.9", - "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.9.tgz", - "integrity": "sha512-3OMlcd0a03UGuZpPeUC1HxR3nA23l+HEyCiZw3b3FumJIN9KphoGzDJKMXI1S72jVS1dsenDyQC0kJlO1U9E1g==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/fs-extra": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", - "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/gsap": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.14.2.tgz", - "integrity": "sha512-P8/mMxVLU7o4+55+1TCnQrPmgjPKnwkzkXOK1asnR9Jg2lna4tEY5qBJjMmAaOBDDZWtlRjBXjLa0w53G/uBLA==", - "license": "Standard 'no charge' license: https://gsap.com/standard-license." - }, - "node_modules/is-reference": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", - "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.6" - } - }, - "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/locate-character": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", - "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", - "license": "MIT" - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/navaid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/navaid/-/navaid-1.2.0.tgz", - "integrity": "sha512-Yh5mix394WrT5go29GFeFD4Gp4W0Xj1Ejs0KHXXCA24KKW74pq3PY3fwP3o18KveYO/pjUI2zzcAAp8kY98aNA==", - "license": "MIT", - "dependencies": { - "regexparam": "^1.0.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/obug": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", - "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", - "funding": [ - "https://github.com/sponsors/sxzz", - "https://opencollective.com/debug" - ], - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/regexparam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.3.0.tgz", - "integrity": "sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/rollup": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", - "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.57.1", - "@rollup/rollup-android-arm64": "4.57.1", - "@rollup/rollup-darwin-arm64": "4.57.1", - "@rollup/rollup-darwin-x64": "4.57.1", - "@rollup/rollup-freebsd-arm64": "4.57.1", - "@rollup/rollup-freebsd-x64": "4.57.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", - "@rollup/rollup-linux-arm-musleabihf": "4.57.1", - "@rollup/rollup-linux-arm64-gnu": "4.57.1", - "@rollup/rollup-linux-arm64-musl": "4.57.1", - "@rollup/rollup-linux-loong64-gnu": "4.57.1", - "@rollup/rollup-linux-loong64-musl": "4.57.1", - "@rollup/rollup-linux-ppc64-gnu": "4.57.1", - "@rollup/rollup-linux-ppc64-musl": "4.57.1", - "@rollup/rollup-linux-riscv64-gnu": "4.57.1", - "@rollup/rollup-linux-riscv64-musl": "4.57.1", - "@rollup/rollup-linux-s390x-gnu": "4.57.1", - "@rollup/rollup-linux-x64-gnu": "4.57.1", - "@rollup/rollup-linux-x64-musl": "4.57.1", - "@rollup/rollup-openbsd-x64": "4.57.1", - "@rollup/rollup-openharmony-arm64": "4.57.1", - "@rollup/rollup-win32-arm64-msvc": "4.57.1", - "@rollup/rollup-win32-ia32-msvc": "4.57.1", - "@rollup/rollup-win32-x64-gnu": "4.57.1", - "@rollup/rollup-win32-x64-msvc": "4.57.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svelte": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.0.0.tgz", - "integrity": "sha512-jv2IvTtakG58DqZMo6fY3T6HFmGV4iDQH2lSUyfmCEYaoa+aCNcF+9rERbdDvT4XDF0nQBg6TEoJn0dirED8VQ==", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@jridgewell/sourcemap-codec": "^1.5.0", - "@types/estree": "^1.0.5", - "acorn": "^8.12.1", - "acorn-typescript": "^1.4.13", - "aria-query": "^5.3.1", - "axobject-query": "^4.1.0", - "esm-env": "^1.0.0", - "esrap": "^1.2.2", - "is-reference": "^3.0.2", - "locate-character": "^3.0.0", - "magic-string": "^0.30.11", - "zimmerframe": "^1.1.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/vite": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", - "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", - "license": "MIT", - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.6", - "picomatch": "^4.0.2", - "postcss": "^8.5.6", - "rollup": "^4.40.0", - "tinyglobby": "^0.2.14" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "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" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vitefu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", - "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", - "license": "MIT", - "workspaces": [ - "tests/deps/*", - "tests/projects/*", - "tests/projects/workspace/packages/*" - ], - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" - }, - "peerDependenciesMeta": { - "vite": { - "optional": true - } - } - }, - "node_modules/zimmerframe": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", - "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", - "license": "MIT" - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 5b11c8f..0000000 --- a/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "world-game-website", - "version": "1.0.0", - "description": "World Game - Svelte + Kirby", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview", - "kirby:dev": "php -S localhost:8000" - }, - "repository": { - "type": "git", - "url": "https://forge.studio-variable.com/studio-variable/world-game.git" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "@sveltejs/vite-plugin-svelte": "6.0.0", - "gsap": "^3.14.2", - "navaid": "^1.2.0", - "svelte": "5.0.0", - "vite": "7.0.4" - }, - "devDependencies": { - "fs-extra": "^11.3.3" - } -} diff --git a/site/controllers/site.php b/site/controllers/site.php deleted file mode 100644 index 5ee297d..0000000 --- a/site/controllers/site.php +++ /dev/null @@ -1,37 +0,0 @@ - $page->title()->value(), - 'url' => $page->url(), - 'uri' => $page->uri(), - 'template' => $page->intendedTemplate()->name(), - 'modified' => $page->modified('Y-m-d'), - 'site' => [ - 'title' => $site->site_title()->value(), - 'url' => $site->url(), - 'logo' => $site->logo()->toFile()?->url(), - 'language' => $kirby->language()?->code() ?? 'fr', - 'languages' => $kirby->languages()->map(function($l) { - return [ - 'code' => $l->code(), - 'name' => $l->name() - ]; - })->values(), - 'navigation' => $site->main_navigation()->toStructure()->map(function($item) use ($kirby) { - $linkedPage = $item->link()->toPages()->first(); - return [ - 'label_fr' => $item->label_fr()->value(), - 'label_en' => $item->label_en()->value(), - 'url' => $linkedPage?->url(), - 'isActive' => $linkedPage?->isOpen() ?? false - ]; - })->values() - ] - ]; - - return [ - 'genericData' => $genericData - ]; -}; diff --git a/site/snippets/footer.php b/site/snippets/footer.php index 308b1d0..e66fffc 100644 --- a/site/snippets/footer.php +++ b/site/snippets/footer.php @@ -1,2 +1,82 @@ + + + + + diff --git a/site/snippets/header.php b/site/snippets/header.php index f6b4c47..8a16298 100644 --- a/site/snippets/header.php +++ b/site/snippets/header.php @@ -10,6 +10,9 @@ + + + @@ -18,16 +21,53 @@ cover()->toFile()): ?> - - - - - - - - - - - -
+ + + diff --git a/site/templates/about.json.php b/site/templates/about.json.php deleted file mode 100644 index dacd24e..0000000 --- a/site/templates/about.json.php +++ /dev/null @@ -1,34 +0,0 @@ - [ - 'title' => $page->intro_title()->value(), - 'text' => $page->intro_text()->value() - ], - 'mission' => [ - 'title' => $page->mission_title()->value(), - 'text' => $page->mission_text()->toBlocks() - ], - 'manifesto' => [ - 'title' => $page->manifesto_title()->value(), - 'text' => $page->manifesto_text()->toBlocks() - ], - 'team' => [ - 'title' => $page->team_title()->value(), - 'members' => $page->team_members()->toStructure()->map(function($member) { - return [ - 'name' => $member->name()->value(), - 'role' => $member->role()->value(), - 'bio' => $member->bio()->value(), - 'photo' => $member->photo()->toFile()?->url(), - 'linkedin' => $member->linkedin()->value(), - 'twitter' => $member->twitter()->value() - ]; - })->values() - ] -]; - -$pageData = array_merge($genericData, $specificData); - -header('Content-Type: application/json'); -echo json_encode($pageData); diff --git a/site/templates/about.php b/site/templates/about.php index f31b64d..a6f89ff 100644 --- a/site/templates/about.php +++ b/site/templates/about.php @@ -1,2 +1,81 @@ + +
+ +
+

intro_title() ?>

+ + intro_text()->isNotEmpty()): ?> +

intro_text() ?>

+ +
+ + + mission_text()->isNotEmpty()): ?> +
+

mission_title() ?>

+
+ mission_text()->toBlocks() ?> +
+
+ + + + manifesto_text()->isNotEmpty()): ?> +
+

manifesto_title() ?>

+
+ manifesto_text()->toBlocks() ?> +
+
+ + + + team_members()->isNotEmpty()): ?> +
+

team_title() ?>

+ +
+ team_members()->toStructure() as $member): ?> +
+ photo()->toFile()): ?> +
+ <?= $member->name() ?> +
+ + +
+

name() ?>

+

role() ?>

+ + bio()->isNotEmpty()): ?> +

bio() ?>

+ + + +
+
+ +
+ + +
+ +
+ diff --git a/site/templates/article.json.php b/site/templates/article.json.php deleted file mode 100644 index 0e4398d..0000000 --- a/site/templates/article.json.php +++ /dev/null @@ -1,34 +0,0 @@ -related_articles()->toPages(); -if ($related->isEmpty()) { - $related = $page->siblings()->listed()->not($page)->shuffle()->limit(3); -} - -$specificData = [ - 'date' => $page->date()->toDate('Y-m-d'), - 'date_formatted' => $page->date()->toDate('d/m/Y'), - 'intro' => $page->intro()->value(), - 'author' => [ - 'name' => $page->author_name()->value(), - 'role' => $page->author_role()->value(), - 'photo' => $page->author_photo()->toFile()?->url() - ], - 'cover' => $page->cover()->toFile()?->url(), - 'content' => $page->article_content()->toBlocks(), - 'tags' => $page->tags()->split(), - 'related' => $related->map(function($rec) { - return [ - 'title' => $rec->title()->value(), - 'url' => $rec->url(), - 'category' => $rec->category()->value(), - 'cover' => $rec->cover()->toFile()?->thumb(['width' => 400])->url() - ]; - })->values(), - 'parent_url' => $page->parent()->url() -]; - -$pageData = array_merge($genericData, $specificData); - -header('Content-Type: application/json'); -echo json_encode($pageData); diff --git a/site/templates/article.php b/site/templates/article.php index f31b64d..c253981 100644 --- a/site/templates/article.php +++ b/site/templates/article.php @@ -1,2 +1,101 @@ + +
+
+ +
+ date()->isNotEmpty()): ?> + + + +

title() ?>

+ + intro()->isNotEmpty()): ?> +

intro() ?>

+ +
+ + + author_name()->isNotEmpty()): ?> + + + + + cover()->toFile()): ?> +
+ <?= $page->title() ?> +
+ + + +
+ article_content()->toBlocks() ?> +
+ + + tags()->isNotEmpty()): ?> + + +
+ + + related_articles()->toPages(); + if ($related->isEmpty()) { + $related = $page->siblings()->listed()->not($page)->shuffle()->limit(3); + } + ?> + + isNotEmpty()): ?> +
+

Nos recommandations

+ Voir tous les articles → + +
+ +
+ cover()->toFile()): ?> +
+ <?= $rec->title() ?> +
+ + + category()->isNotEmpty()): ?> + category() ?> + + +

+ title() ?> +

+
+ +
+
+ + + + +
+ diff --git a/site/templates/blog.json.php b/site/templates/blog.json.php deleted file mode 100644 index e34d683..0000000 --- a/site/templates/blog.json.php +++ /dev/null @@ -1,26 +0,0 @@ - [ - 'title' => $page->intro_title()->value(), - 'text' => $page->intro_text()->value() - ], - 'articles' => $page->children()->listed()->sortBy('date', 'desc')->map(function($article) { - return [ - 'title' => $article->title()->value(), - 'slug' => $article->slug(), - 'url' => $article->url(), - 'date' => $article->date()->toDate('Y-m-d'), - 'date_formatted' => $article->date()->toDate('d/m/Y'), - 'intro' => $article->intro()->excerpt(200), - 'cover' => $article->cover()->toFile()?->url(), - 'author_name' => $article->author_name()->value(), - 'author_photo' => $article->author_photo()->toFile()?->url() - ]; - })->values() -]; - -$pageData = array_merge($genericData, $specificData); - -header('Content-Type: application/json'); -echo json_encode($pageData); diff --git a/site/templates/blog.php b/site/templates/blog.php index f31b64d..9250711 100644 --- a/site/templates/blog.php +++ b/site/templates/blog.php @@ -1,2 +1,61 @@ + +
+ +
+

intro_title() ?>

+ + intro_text()->isNotEmpty()): ?> +

intro_text() ?>

+ +
+ + +
+ children()->listed()->sortBy('date', 'desc') as $article): ?> +
+ + date()->isNotEmpty()): ?> + + + + +
+

+ title() ?> +

+ + intro()->isNotEmpty()): ?> +

intro()->excerpt(200) ?>

+ + + + Lire la suite → + +
+ + +
+ author_photo()->toFile()): ?> + <?= $article->author_name() ?> + + + author_name()->isNotEmpty()): ?> + author_name() ?> + +
+ + + cover()->toFile()): ?> +
+ <?= $article->title() ?> +
+ +
+ +
+
+ diff --git a/site/templates/default.json.php b/site/templates/default.json.php deleted file mode 100644 index c910894..0000000 --- a/site/templates/default.json.php +++ /dev/null @@ -1,10 +0,0 @@ - $page->body()->toBlocks() -]; - -$pageData = array_merge($genericData, $specificData); - -header('Content-Type: application/json'); -echo json_encode($pageData); diff --git a/site/templates/default.php b/site/templates/default.php index f31b64d..74e38ae 100644 --- a/site/templates/default.php +++ b/site/templates/default.php @@ -1,2 +1 @@ - - +

title() ?>

diff --git a/site/templates/expertise.json.php b/site/templates/expertise.json.php deleted file mode 100644 index 18cafcb..0000000 --- a/site/templates/expertise.json.php +++ /dev/null @@ -1,24 +0,0 @@ - [ - 'title' => $page->intro_title()->value(), - 'text' => $page->intro_text()->value() - ], - 'sections' => $page->expertise_sections()->toStructure()->map(function($section) { - return [ - 'title' => $section->title()->value(), - 'icon' => $section->icon()->value(), - 'content' => $section->content()->toBlocks() - ]; - })->values(), - 'objective' => [ - 'title' => $page->objective_title()->value(), - 'text' => $page->objective_text()->value() - ] -]; - -$pageData = array_merge($genericData, $specificData); - -header('Content-Type: application/json'); -echo json_encode($pageData); diff --git a/site/templates/expertise.php b/site/templates/expertise.php index f31b64d..df8392e 100644 --- a/site/templates/expertise.php +++ b/site/templates/expertise.php @@ -1,2 +1,36 @@ + +
+ +
+

intro_title() ?>

+ + intro_text()->isNotEmpty()): ?> +

intro_text() ?>

+ +
+ + + expertise_sections()->isNotEmpty()): ?> +
+ expertise_sections()->toStructure() as $section): ?> +
+

title() ?>

+
+ content()->toBlocks() ?> +
+
+ +
+ + + + objective_text()->isNotEmpty()): ?> +
+

objective_title() ?>

+

objective_text() ?>

+
+ +
+ diff --git a/site/templates/game.json.php b/site/templates/game.json.php deleted file mode 100644 index 09041da..0000000 --- a/site/templates/game.json.php +++ /dev/null @@ -1,16 +0,0 @@ - $page->description()->value(), - 'rules' => $page->rules()->toBlocks(), - 'game_status' => $page->game_status()->value(), - 'is_embedded' => $page->is_embedded()->toBool(), - 'play_link' => $page->play_link()->value(), - 'cover' => $page->cover()->toFile()?->url(), - 'parent_url' => $page->parent()->url() -]; - -$pageData = array_merge($genericData, $specificData); - -header('Content-Type: application/json'); -echo json_encode($pageData); diff --git a/site/templates/game.php b/site/templates/game.php index f31b64d..3249014 100644 --- a/site/templates/game.php +++ b/site/templates/game.php @@ -1,2 +1,58 @@ + +
+
+ +
+

title() ?>

+ + description()->isNotEmpty()): ?> +

description() ?>

+ + + + rules()->isNotEmpty()): ?> +
+ rules()->toBlocks() ?> +
+ + + + game_status()->value() !== 'available'): ?> +
+ + game_status()->value() === 'coming_soon' ? 'Bientôt disponible' : 'En maintenance' ?> + +
+ +
+ + +
+ game_status()->value() === 'available'): ?> + is_embedded()->toBool() && $page->play_link()->isNotEmpty()): ?> + + play_link()->isNotEmpty()): ?> + + Jouer maintenant + + + + cover()->toFile()): ?> +
+ <?= $page->title() ?> +
+ + +
+
+ + + +
+ diff --git a/site/templates/home.json.php b/site/templates/home.json.php deleted file mode 100644 index 94c9c2f..0000000 --- a/site/templates/home.json.php +++ /dev/null @@ -1,24 +0,0 @@ - [ - 'title' => $page->hero_title()->value(), - 'title_highlight' => $page->hero_title_highlight()->value(), - 'subtitle' => $page->hero_subtitle()->value(), - 'cta_text' => $page->hero_cta_text()->value(), - 'cta_link' => $page->hero_cta_link()->toPage()?->url() ?? '#', - 'image' => $page->hero_image()->toFile()?->url() - ], - 'background_video' => $page->background_video()->toFile()?->url(), - 'floating_bubbles' => $page->floating_bubbles()->toStructure()->map(function($bubble) { - return [ - 'text' => $bubble->text()->value(), - 'position' => $bubble->position()->value() - ]; - })->values() -]; - -$pageData = array_merge($genericData, $specificData); - -header('Content-Type: application/json'); -echo json_encode($pageData); diff --git a/site/templates/home.php b/site/templates/home.php index f31b64d..8594f41 100644 --- a/site/templates/home.php +++ b/site/templates/home.php @@ -1,2 +1,49 @@ + +
+ +
+
+

+ hero_title()->value(); + $highlight = $page->hero_title_highlight()->value(); + if ($highlight) { + echo str_replace($highlight, '' . $highlight . '', $title); + } else { + echo $title; + } + ?> +

+ + hero_subtitle()->isNotEmpty()): ?> +

hero_subtitle() ?>

+ + + hero_cta_text()->isNotEmpty()): ?> + + hero_cta_text() ?> + + +
+ + hero_image()->toFile()): ?> +
+ <?= $page->hero_title() ?> +
+ + + + floating_bubbles()->isNotEmpty()): ?> +
+ floating_bubbles()->toStructure() as $bubble): ?> +
+ text() ?> +
+ +
+ +
+
+ diff --git a/site/templates/jouer.json.php b/site/templates/jouer.json.php deleted file mode 100644 index 638abd6..0000000 --- a/site/templates/jouer.json.php +++ /dev/null @@ -1,33 +0,0 @@ - [ - 'title' => $page->intro_title()->value(), - 'text' => $page->intro_text()->value() - ], - 'games' => $page->children()->listed()->map(function($game) { - $badgeValue = $game->badge()->value(); - $badgeLabel = 'none'; - if ($badgeValue === 'new') { - $badgeLabel = 'NEW'; - } elseif ($badgeValue === 'coming_soon') { - $badgeLabel = 'INCOMING'; - } - - return [ - 'title' => $game->title()->value(), - 'slug' => $game->slug(), - 'url' => $game->url(), - 'description' => $game->description()->value(), - 'cover' => $game->cover()->toFile()?->url(), - 'badge' => $badgeValue, - 'badge_label' => $badgeLabel, - 'game_status' => $game->game_status()->value() - ]; - })->values() -]; - -$pageData = array_merge($genericData, $specificData); - -header('Content-Type: application/json'); -echo json_encode($pageData); diff --git a/site/templates/jouer.php b/site/templates/jouer.php index f31b64d..be348fe 100644 --- a/site/templates/jouer.php +++ b/site/templates/jouer.php @@ -1,2 +1,57 @@ + +
+ +
+ intro_title()->isNotEmpty()): ?> +

intro_title() ?>

+ + + intro_text()->isNotEmpty()): ?> +

intro_text() ?>

+ +
+ + +
+ children()->listed() as $game): ?> +
+ + badge()->isNotEmpty() && $game->badge()->value() !== 'none'): ?> + + badge()->value() === 'new' ? 'NEW' : ($game->badge()->value() === 'coming_soon' ? 'INCOMING' : $game->badge()) ?> + + + + + cover()->toFile()): ?> +
+ <?= $game->title() ?> +
+ + + +
+

title() ?>

+ + description()->isNotEmpty()): ?> +

description() ?>

+ + + + game_status()->value() === 'available'): ?> + + Jouer + + + + Bientôt disponible + + +
+
+ +
+
+ diff --git a/site/templates/portfolio.json.php b/site/templates/portfolio.json.php deleted file mode 100644 index 7838aca..0000000 --- a/site/templates/portfolio.json.php +++ /dev/null @@ -1,32 +0,0 @@ - [ - 'title' => $page->intro_title()->value(), - 'text' => $page->intro_text()->value() - ], - 'projects' => $page->children()->listed()->map(function($project) { - return [ - 'title' => $project->title()->value(), - 'slug' => $project->slug(), - 'url' => $project->url(), - 'tagline' => $project->tagline()->value(), - 'description' => $project->description()->value(), - 'cover' => $project->cover()->toFile()?->url(), - 'cover_thumb' => $project->cover()->toFile()?->thumb(['width' => 100])->url(), - 'gallery' => $project->files()->filterBy('template', 'image')->limit(5)->map(function($img) { - return $img->url(); - })->values(), - 'impact' => $project->impact()->split(','), - 'category' => $project->category()->value(), - 'platforms' => $project->platforms()->split(','), - 'apple_link' => $project->apple_link()->value(), - 'android_link' => $project->android_link()->value() - ]; - })->values() -]; - -$pageData = array_merge($genericData, $specificData); - -header('Content-Type: application/json'); -echo json_encode($pageData); diff --git a/site/templates/portfolio.php b/site/templates/portfolio.php index f31b64d..41ea880 100644 --- a/site/templates/portfolio.php +++ b/site/templates/portfolio.php @@ -1,2 +1,109 @@ + +
+ +
+ intro_title()->isNotEmpty()): ?> +

intro_title() ?>

+ + + intro_text()->isNotEmpty()): ?> +

intro_text() ?>

+ +
+ + +
+ children()->listed(); + $total = $projects->count(); + $index = 0; + ?> + + + +
+ + + + +
+

title() ?>

+ + tagline()->isNotEmpty()): ?> +

tagline() ?>

+ + + description()->isNotEmpty()): ?> +

description() ?>

+ + + +
+ impact()->isNotEmpty()): ?> +
+ Impact: + impact()->join(', ') ?> +
+ + + category()->isNotEmpty()): ?> +
+ Catégorie: + category()->value() ?> +
+ + + platforms()->isNotEmpty()): ?> +
+ Plateformes: + platforms()->join(' / ') ?> +
+ +
+ + + +
+ + +
+ / +
+
+ +
+ + + +
+ diff --git a/site/templates/project.json.php b/site/templates/project.json.php deleted file mode 100644 index 6c9aecf..0000000 --- a/site/templates/project.json.php +++ /dev/null @@ -1,31 +0,0 @@ - $page->tagline()->value(), - 'description' => $page->description()->kt(), - 'cover' => $page->cover()->toFile()?->url(), - 'gallery' => $page->files()->filterBy('template', 'image')->map(function($img) { - return $img->url(); - })->values(), - 'impact' => $page->impact()->split(','), - 'category' => $page->category()->value(), - 'platforms' => $page->platforms()->split(','), - 'client_name' => $page->client_name()->value(), - 'apple_link' => $page->apple_link()->value(), - 'android_link' => $page->android_link()->value(), - 'web_link' => $page->web_link()->value(), - 'prev' => $page->prev() ? [ - 'title' => $page->prev()->title()->value(), - 'url' => $page->prev()->url() - ] : null, - 'next' => $page->next() ? [ - 'title' => $page->next()->title()->value(), - 'url' => $page->next()->url() - ] : null, - 'parent_url' => $page->parent()->url() -]; - -$pageData = array_merge($genericData, $specificData); - -header('Content-Type: application/json'); -echo json_encode($pageData); diff --git a/site/templates/project.php b/site/templates/project.php index f31b64d..6340277 100644 --- a/site/templates/project.php +++ b/site/templates/project.php @@ -1,2 +1,104 @@ + +
+
+ + + + +
+

title() ?>

+ + tagline()->isNotEmpty()): ?> +

tagline() ?>

+ + + description()->isNotEmpty()): ?> +
+ description()->kt() ?> +
+ + + +
+ impact()->isNotEmpty()): ?> +
+ Impact: + impact()->join(', ') ?> +
+ + + category()->isNotEmpty()): ?> +
+ Catégorie: + category()->value() ?> +
+ + + platforms()->isNotEmpty()): ?> +
+ Plateformes: + platforms()->join(' / ') ?> +
+ + + client_name()->isNotEmpty()): ?> +
+ Client: + client_name() ?> +
+ +
+ + + +
+
+ + + +
+ diff --git a/src/App.svelte b/src/App.svelte deleted file mode 100644 index 795cd3b..0000000 --- a/src/App.svelte +++ /dev/null @@ -1,86 +0,0 @@ - - -
- -
- -
- {#if pageData && view} - - {/if} -
- - {#if showFooter} -
- - diff --git a/src/components/layout/Cursor.svelte b/src/components/layout/Cursor.svelte deleted file mode 100644 index 22a088c..0000000 --- a/src/components/layout/Cursor.svelte +++ /dev/null @@ -1,68 +0,0 @@ - - -
-
- - diff --git a/src/components/layout/Footer.svelte b/src/components/layout/Footer.svelte deleted file mode 100644 index 8acc8cb..0000000 --- a/src/components/layout/Footer.svelte +++ /dev/null @@ -1,73 +0,0 @@ - - - - - diff --git a/src/components/layout/Header.svelte b/src/components/layout/Header.svelte deleted file mode 100644 index 81cc04d..0000000 --- a/src/components/layout/Header.svelte +++ /dev/null @@ -1,280 +0,0 @@ - - - - - diff --git a/src/components/ui/Button.svelte b/src/components/ui/Button.svelte deleted file mode 100644 index 7021941..0000000 --- a/src/components/ui/Button.svelte +++ /dev/null @@ -1,98 +0,0 @@ - - -{#if href} - - - -{:else} - -{/if} - - diff --git a/src/components/ui/VideoBackground.svelte b/src/components/ui/VideoBackground.svelte deleted file mode 100644 index bfc4ad5..0000000 --- a/src/components/ui/VideoBackground.svelte +++ /dev/null @@ -1,68 +0,0 @@ - - -
- {#if src} - - {/if} - - {#if overlay} -
- {/if} -
- - diff --git a/src/main.js b/src/main.js deleted file mode 100644 index 78c060e..0000000 --- a/src/main.js +++ /dev/null @@ -1,12 +0,0 @@ -import './styles/index.css' -import App from './App.svelte' -import { mount } from 'svelte' -import { initRouter } from './state/router' - -initRouter() - -const app = mount(App, { - target: document.getElementById('app') -}) - -export default app diff --git a/src/state/animations.js b/src/state/animations.js deleted file mode 100644 index c4c2e4b..0000000 --- a/src/state/animations.js +++ /dev/null @@ -1,142 +0,0 @@ -import gsap from 'gsap' -import { ScrollTrigger } from 'gsap/ScrollTrigger' - -gsap.registerPlugin(ScrollTrigger) - -/** - * Fade in animation for page enter - */ -export function pageEnter(element, options = {}) { - const defaults = { - opacity: 0, - y: 50, - duration: 0.8, - ease: 'power3.out' - } - - return gsap.from(element, { ...defaults, ...options }) -} - -/** - * Fade out animation for page exit - */ -export function pageExit(element, options = {}) { - const defaults = { - opacity: 0, - y: -50, - duration: 0.5, - ease: 'power3.in' - } - - return gsap.to(element, { ...defaults, ...options }) -} - -/** - * Carousel slide animation - */ -export function carouselSlide(element, offset, options = {}) { - const defaults = { - x: `-${offset}%`, - duration: 0.8, - ease: 'power2.inOut' - } - - return gsap.to(element, { ...defaults, ...options }) -} - -/** - * Scroll reveal animation - */ -export function scrollReveal(elements, options = {}) { - const defaults = { - scrollTrigger: { - trigger: elements, - start: 'top 80%', - toggleActions: 'play none none none' - }, - y: 50, - opacity: 0, - stagger: 0.1, - duration: 0.8, - ease: 'power3.out' - } - - return gsap.from(elements, { ...defaults, ...options }) -} - -/** - * Fade in elements on scroll - */ -export function fadeInOnScroll(elements, options = {}) { - const defaults = { - scrollTrigger: { - trigger: elements, - start: 'top 80%' - }, - opacity: 0, - duration: 1, - stagger: 0.2, - ease: 'power2.out' - } - - return gsap.from(elements, { ...defaults, ...options }) -} - -/** - * Scale animation - */ -export function scaleIn(element, options = {}) { - const defaults = { - scale: 0, - duration: 0.5, - ease: 'back.out(1.7)' - } - - return gsap.from(element, { ...defaults, ...options }) -} - -/** - * Cleanup all ScrollTrigger instances - */ -export function cleanupScrollTriggers() { - ScrollTrigger.getAll().forEach(trigger => trigger.kill()) -} - -/** - * Refresh ScrollTrigger (useful after content changes) - */ -export function refreshScrollTriggers() { - ScrollTrigger.refresh() -} - -/** - * Custom cursor follow animation - */ -export function cursorFollow(cursorElement, outlineElement) { - let cursorX = 0 - let cursorY = 0 - let outlineX = 0 - let outlineY = 0 - - const handleMouseMove = (e) => { - cursorX = e.clientX - cursorY = e.clientY - } - - const animate = () => { - outlineX += (cursorX - outlineX) * 0.2 - outlineY += (cursorY - outlineY) * 0.2 - - gsap.set(cursorElement, { x: cursorX, y: cursorY }) - gsap.set(outlineElement, { x: outlineX, y: outlineY }) - - requestAnimationFrame(animate) - } - - window.addEventListener('mousemove', handleMouseMove) - animate() - - return () => { - window.removeEventListener('mousemove', handleMouseMove) - } -} diff --git a/src/state/locale.svelte.js b/src/state/locale.svelte.js deleted file mode 100644 index 34e163c..0000000 --- a/src/state/locale.svelte.js +++ /dev/null @@ -1,13 +0,0 @@ -let current = $state('fr') -let languages = $state([]) - -export const locale = { - get current() { return current }, - get languages() { return languages }, - - setLanguage: (code) => current = code, - initialize: (language, langs) => { - current = language - languages = langs - } -} diff --git a/src/state/navigation.svelte.js b/src/state/navigation.svelte.js deleted file mode 100644 index 1a377c0..0000000 --- a/src/state/navigation.svelte.js +++ /dev/null @@ -1,12 +0,0 @@ -let isMenuOpen = $state(false) -let isLoading = $state(false) - -export const navigation = { - get isMenuOpen() { return isMenuOpen }, - get isLoading() { return isLoading }, - - toggleMenu: () => isMenuOpen = !isMenuOpen, - openMenu: () => isMenuOpen = true, - closeMenu: () => isMenuOpen = false, - setLoading: (value) => isLoading = value -} diff --git a/src/state/page.svelte.js b/src/state/page.svelte.js deleted file mode 100644 index 6a4c3cb..0000000 --- a/src/state/page.svelte.js +++ /dev/null @@ -1,35 +0,0 @@ -let data = $state(null) -let template = $state(null) -let url = $state(null) -let loading = $state(false) -let error = $state(null) - -export const page = { - get data() { return data }, - get template() { return template }, - get url() { return url }, - get loading() { return loading }, - get error() { return error }, - - set: (pageData) => { - data = pageData.data - template = pageData.template - url = pageData.url - loading = pageData.loading ?? false - error = pageData.error ?? null - }, - - setLoading: (value) => loading = value, - setError: (err) => { - error = err - loading = false - }, - - reset: () => { - data = null - template = null - url = null - loading = false - error = null - } -} diff --git a/src/state/router.js b/src/state/router.js deleted file mode 100644 index 4e66f48..0000000 --- a/src/state/router.js +++ /dev/null @@ -1,96 +0,0 @@ -import navaid from "navaid"; -import { page } from "./page.svelte"; -import { navigation } from "./navigation.svelte"; -import { site } from "./site.svelte"; -import { locale } from "./locale.svelte"; - -export const router = navaid("/", () => { - // Default handler -}); - -async function loadPage(path) { - navigation.setLoading(true); - page.setLoading(true); - - try { - const response = await fetch(`${path}.json`); - - if (!response.ok) { - throw new Error(`Failed to load page: ${response.status}`); - } - - const data = await response.json(); - - if (data.site) { - site.set(data.site); - locale.initialize(data.site.language, data.site.languages); - } - - page.set({ - data, - template: data.template || "default", - url: path, - loading: false, - error: null, - }); - - window.scrollTo(0, 0); - } catch (error) { - console.error("Failed to load page:", error); - page.setError(error); - } finally { - navigation.setLoading(false); - } -} - -// Route handlers -router - .on("/", () => loadPage("/home")) - .on("/expertise", () => loadPage("/expertise")) - .on("/portfolio", () => loadPage("/portfolio")) - .on("/portfolio/:slug", ({ slug }) => loadPage(`/portfolio/${slug}`)) - .on("/jouer", () => loadPage("/jouer")) - .on("/jouer/:slug", ({ slug }) => loadPage(`/jouer/${slug}`)) - .on("/a-propos", () => loadPage("/a-propos")) - .on("/blog", () => loadPage("/blog")) - .on("/blog/:slug", ({ slug }) => loadPage(`/blog/${slug}`)) - .on("*", (params) => { - // Fallback for other routes - loadPage(window.location.pathname); - }); - -export function initRouter() { - // Load initial page data - loadPage(window.location.pathname); - - // Start listening to route changes - router.listen(); - - // Intercept internal link clicks - document.addEventListener("click", (e) => { - const link = e.target.closest("a"); - if (!link) return; - - const url = new URL(link.href, window.location.origin); - - // Only intercept same-origin links without target attribute - if ( - url.origin === window.location.origin && - !link.target && - !link.hasAttribute("download") - ) { - e.preventDefault(); - navigateTo(url.pathname); - } - }); - - // Handle browser back/forward - window.addEventListener("popstate", () => { - loadPage(window.location.pathname); - }); -} - -export function navigateTo(path) { - window.history.pushState({}, "", path); - loadPage(path); -} diff --git a/src/state/site.svelte.js b/src/state/site.svelte.js deleted file mode 100644 index 01271e7..0000000 --- a/src/state/site.svelte.js +++ /dev/null @@ -1,24 +0,0 @@ -let title = $state('') -let url = $state('') -let language = $state('fr') -let languages = $state([]) -let logo = $state(null) -let navigation = $state([]) - -export const site = { - get title() { return title }, - get url() { return url }, - get language() { return language }, - get languages() { return languages }, - get logo() { return logo }, - get navigation() { return navigation }, - - set: (data) => { - title = data.title || '' - url = data.url || '' - language = data.language || 'fr' - languages = data.languages || [] - logo = data.logo || null - navigation = data.navigation || [] - } -} diff --git a/src/style.css b/src/style.css deleted file mode 100644 index f5895ba..0000000 --- a/src/style.css +++ /dev/null @@ -1,289 +0,0 @@ -/* FONT SIZING SYSTEM - Consistent typography across the site */ -:root { - /* Base font sizes for desktop */ - --font-size-paragraph: 18px; - --font-size-paragraph-small: 16px; - --font-size-subtitle: 20px; - --font-size-title-section: 32px; - --font-size-title-main: 48px; - --font-size-title-hero: 96px; - --font-size-button: 13px; - --font-size-caption: 12px; - - /* Mobile font sizes */ - --font-size-paragraph-mobile: 16px; - --font-size-paragraph-small-mobile: 12px; - --font-size-subtitle-mobile: 16px; - --font-size-title-section-mobile: 24px; - --font-size-title-main-mobile: 32px; - --font-size-title-hero-mobile: 48px; - --font-size-button-mobile: 11px; - --font-size-caption-mobile: 10px; - - /* Tablet font sizes */ - --font-size-paragraph-tablet: 16px; - --font-size-paragraph-small-tablet: 14px; - --font-size-subtitle-tablet: 18px; - --font-size-title-section-tablet: 28px; - --font-size-title-main-tablet: 40px; - --font-size-title-hero-tablet: 64px; - --font-size-button-tablet: 12px; - --font-size-caption-tablet: 11px; -} - -html, -body { - height: 100%; - min-height: 100vh; - min-height: -webkit-fill-available; - min-height: calc(var(--vh, 1vh) * 100); - user-select: none; -} - -body { - margin: 0; - font-family: "Danzza Regular", "Danzza", -apple-system, BlinkMacSystemFont, - "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", - "Droid Sans", "Helvetica Neue", sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - cursor: none; - background: #000; - overflow-x: hidden; -} - -* { - box-sizing: border-box; - margin: 0; - padding: 0; - cursor: none; -} - -/* Font faces */ -@font-face { - font-family: "Terminal"; - font-weight: bold; - src: local("terminal-grotesque"), - url("/assets/fonts/terminal-grotesque.ttf") format("truetype"); -} - -@font-face { - font-family: "Danzza"; - src: local("Danzza Regular"), - url("/assets/fonts/Danzza-Regular.woff") format("woff"), - url("/assets/fonts/Danzza-Regular.otf") format("opentype"); - font-display: swap; -} - -@font-face { - font-family: "Danzza Light"; - src: local("Danzza Light"), - url("/assets/fonts/Danzza-Light.woff") format("woff"), - url("/assets/fonts/Danzza-Light.otf") format("opentype"); - font-display: swap; -} - -@font-face { - font-family: "Danzza Medium"; - src: local("Danzza Medium"), - url("/assets/fonts/Danzza-Medium.woff") format("woff"), - url("/assets/fonts/Danzza-Medium.otf") format("opentype"); - font-display: swap; -} - -@font-face { - font-family: "Danzza Bold"; - src: local("Danzza Bold"), - url("/assets/fonts/Danzza-Bold.woff") format("woff"), - url("/assets/fonts/Danzza-Bold.otf") format("opentype"); - font-display: swap; -} - -.font-face-terminal { - font-family: "Terminal"; -} - -.font-face-danzza { - font-family: "Danzza"; -} - -.font-face-danzza-light { - font-family: "Danzza Light"; -} - -.font-face-danzza-medium { - font-family: "Danzza Medium"; -} - -.font-face-danzza-bold { - font-family: "Danzza Bold"; -} - -/* Golden Grid */ -.golden-grid { - height: 100% !important; - min-height: 100% !important; - display: grid !important; - position: relative; - grid-template-rows: 1fr 1fr 2fr 4fr 2.66fr 5.33fr 5.33fr 4.33fr 2.83fr 3.5fr 3.5fr 2.83fr 4.33fr 5.33fr 5.33fr 2.66fr 4fr 2fr 1fr 1fr; - grid-template-columns: 1fr 1fr 2fr 4fr 2.66fr 5.33fr 5.33fr 4.33fr 2.83fr 3.5fr 3.5fr 2.83fr 4.33fr 5.33fr 5.33fr 2.66fr 4fr 2fr 1fr 1fr; - text-align: center; -} - -.slide { - overflow-y: hidden; -} - -/* Vertical Lines */ -.vertical-line { - z-index: 1; - border-left: 0.1px solid rgba(238, 238, 238, 0.2); - height: 150%; -} - -.vertical-line-start { - z-index: 1; - border-left: 0.1px solid rgba(238, 238, 238, 0.2); - grid-area: 1/6 / span 20 / span 1; - height: 150%; -} - -.vertical-line-center { - z-index: 1; - border-left: 0.1px solid rgba(238, 238, 238, 0.2); - grid-area: 1/11 / span 20 / span 1; - height: 150%; -} - -.vertical-line-end { - z-index: 1; - border-left: 0.1px solid rgba(238, 238, 238, 0.2); - grid-area: 1/16 / span 20 / span 1; - height: 150%; -} - -/* Button */ -.button { - width: 14vmax; - min-width: 130px; - display: flex; - align-items: center; - justify-content: center; - position: sticky; - z-index: 1; - padding: 12px 16px; - transition: 0.5s ease-out; - font-family: "Danzza Bold"; - background-color: #04fea0; - border: none; - cursor: pointer; -} - -.button:hover { - background-position: left; - background-color: transparent; - outline: solid 2px #04fea0; -} - -.button p { - color: black; - margin: 0; - transition: color 0.3s; -} - -.button:hover p { - color: #04fea0 !important; -} - -.earth-icon { - width: 24px; - height: 24px; - background-image: url('/assets/img/icon-earth-green.png'); - background-size: contain; - background-repeat: no-repeat; - background-position: center; - margin-right: 8px; - transition: filter 0.3s; -} - -.button:hover .earth-icon { - filter: brightness(0) saturate(100%) invert(77%) sepia(82%) saturate(507%) hue-rotate(91deg) brightness(101%) contrast(97%); -} - -/* Clickable elements */ -.clickable { - cursor: pointer; - user-select: none; -} - -/* Cursor */ -#cursor-dot, -#cursor-dot-outline, -#cursor-circle { - position: absolute; - top: 50%; - left: 50%; - z-index: 99999; - transform: translate(-50%, -50%); - transition: opacity 0.15s ease-in-out, transform 0.15s ease-in-out; - border-radius: 50%; - pointer-events: none; - opacity: 0; -} - -#cursor-dot { - width: 14px; - height: 14px; - background-color: white; -} - -#cursor-circle { - width: 50px; - height: 50px; - border-width: 3px; - border-style: solid; - border-color: #04fea0; -} - -#cursor-dot-outline { - width: 13px; - height: 13px; - background-color: white; -} - -@media (pointer: coarse) { - #cursor-dot, - #cursor-dot-outline, - #cursor-circle { - display: none; - } - - body, - * { - cursor: auto; - } -} - -/* Selection */ -::selection { - background: #04fea0; - color: #000; -} - -/* Scrollbar */ -::-webkit-scrollbar { - width: 10px; -} - -::-webkit-scrollbar-track { - background: #000; -} - -::-webkit-scrollbar-thumb { - background: #04fea0; - border-radius: 5px; -} - -::-webkit-scrollbar-thumb:hover { - background: #03d98c; -} diff --git a/src/styles/buttons.css b/src/styles/buttons.css deleted file mode 100644 index 42fa360..0000000 --- a/src/styles/buttons.css +++ /dev/null @@ -1,53 +0,0 @@ -/* Button */ -.button { - width: 14vmax; - min-width: 130px; - display: flex; - align-items: center; - justify-content: center; - position: sticky; - z-index: 1; - padding: 12px 16px; - transition: 0.5s ease-out; - font-family: "Danzza Bold"; - background-color: var(--color-primary); - border: none; - cursor: pointer; -} - -.button:hover { - background-position: left; - background-color: transparent; - outline: solid 2px var(--color-primary); -} - -.button p { - color: black; - margin: 0; - transition: color 0.3s; -} - -.button:hover p { - color: var(--color-primary) !important; -} - -.earth-icon { - width: 24px; - height: 24px; - background-image: url('/assets/img/icon-earth-green.png'); - background-size: contain; - background-repeat: no-repeat; - background-position: center; - margin-right: 8px; - transition: filter 0.3s; -} - -.button:hover .earth-icon { - filter: brightness(0) saturate(100%) invert(77%) sepia(82%) saturate(507%) hue-rotate(91deg) brightness(101%) contrast(97%); -} - -/* Clickable elements */ -.clickable { - cursor: pointer; - user-select: none; -} diff --git a/src/styles/cursor.css b/src/styles/cursor.css deleted file mode 100644 index 64bb2e6..0000000 --- a/src/styles/cursor.css +++ /dev/null @@ -1,42 +0,0 @@ -/* Custom Cursor */ -#cursor-dot, -#cursor-dot-outline, -#cursor-circle { - position: absolute; - top: 50%; - left: 50%; - z-index: 99999; - transform: translate(-50%, -50%); - transition: opacity 0.15s ease-in-out, transform 0.15s ease-in-out; - border-radius: 50%; - pointer-events: none; - opacity: 0; -} - -#cursor-dot { - width: 14px; - height: 14px; - background-color: white; -} - -#cursor-circle { - width: 50px; - height: 50px; - border-width: 3px; - border-style: solid; - border-color: var(--color-primary); -} - -#cursor-dot-outline { - width: 13px; - height: 13px; - background-color: white; -} - -@media (pointer: coarse) { - #cursor-dot, - #cursor-dot-outline, - #cursor-circle { - display: none; - } -} diff --git a/src/styles/fonts.css b/src/styles/fonts.css deleted file mode 100644 index 99f82b6..0000000 --- a/src/styles/fonts.css +++ /dev/null @@ -1,60 +0,0 @@ -/* Font faces */ -@font-face { - font-family: "Terminal"; - font-weight: bold; - src: local("terminal-grotesque"), - url("/assets/fonts/terminal-grotesque.ttf") format("truetype"); -} - -@font-face { - font-family: "Danzza"; - src: local("Danzza Regular"), - url("/assets/fonts/Danzza-Regular.woff") format("woff"), - url("/assets/fonts/Danzza-Regular.otf") format("opentype"); - font-display: swap; -} - -@font-face { - font-family: "Danzza Light"; - src: local("Danzza Light"), - url("/assets/fonts/Danzza-Light.woff") format("woff"), - url("/assets/fonts/Danzza-Light.otf") format("opentype"); - font-display: swap; -} - -@font-face { - font-family: "Danzza Medium"; - src: local("Danzza Medium"), - url("/assets/fonts/Danzza-Medium.woff") format("woff"), - url("/assets/fonts/Danzza-Medium.otf") format("opentype"); - font-display: swap; -} - -@font-face { - font-family: "Danzza Bold"; - src: local("Danzza Bold"), - url("/assets/fonts/Danzza-Bold.woff") format("woff"), - url("/assets/fonts/Danzza-Bold.otf") format("opentype"); - font-display: swap; -} - -/* Font utility classes */ -.font-face-terminal { - font-family: "Terminal"; -} - -.font-face-danzza { - font-family: "Danzza"; -} - -.font-face-danzza-light { - font-family: "Danzza Light"; -} - -.font-face-danzza-medium { - font-family: "Danzza Medium"; -} - -.font-face-danzza-bold { - font-family: "Danzza Bold"; -} diff --git a/src/styles/index.css b/src/styles/index.css deleted file mode 100644 index d437c36..0000000 --- a/src/styles/index.css +++ /dev/null @@ -1,8 +0,0 @@ -/* Main styles entry point */ -@import './variables.css'; -@import './reset.css'; -@import './fonts.css'; -@import './layout.css'; -@import './buttons.css'; -@import './cursor.css'; -@import './utils.css'; diff --git a/src/styles/layout.css b/src/styles/layout.css deleted file mode 100644 index 8f6fb71..0000000 --- a/src/styles/layout.css +++ /dev/null @@ -1,42 +0,0 @@ -/* Golden Grid */ -.golden-grid { - height: 100% !important; - min-height: 100% !important; - display: grid !important; - position: relative; - grid-template-rows: 1fr 1fr 2fr 4fr 2.66fr 5.33fr 5.33fr 4.33fr 2.83fr 3.5fr 3.5fr 2.83fr 4.33fr 5.33fr 5.33fr 2.66fr 4fr 2fr 1fr 1fr; - grid-template-columns: 1fr 1fr 2fr 4fr 2.66fr 5.33fr 5.33fr 4.33fr 2.83fr 3.5fr 3.5fr 2.83fr 4.33fr 5.33fr 5.33fr 2.66fr 4fr 2fr 1fr 1fr; - text-align: center; -} - -.slide { - overflow-y: hidden; -} - -/* Vertical Lines */ -.vertical-line { - z-index: 1; - border-left: 0.1px solid rgba(238, 238, 238, 0.2); - height: 150%; -} - -.vertical-line-start { - z-index: 1; - border-left: 0.1px solid rgba(238, 238, 238, 0.2); - grid-area: 1/6 / span 20 / span 1; - height: 150%; -} - -.vertical-line-center { - z-index: 1; - border-left: 0.1px solid rgba(238, 238, 238, 0.2); - grid-area: 1/11 / span 20 / span 1; - height: 150%; -} - -.vertical-line-end { - z-index: 1; - border-left: 0.1px solid rgba(238, 238, 238, 0.2); - grid-area: 1/16 / span 20 / span 1; - height: 150%; -} diff --git a/src/styles/reset.css b/src/styles/reset.css deleted file mode 100644 index 9ef5bfa..0000000 --- a/src/styles/reset.css +++ /dev/null @@ -1,34 +0,0 @@ -/* CSS Reset */ -* { - box-sizing: border-box; - margin: 0; - padding: 0; - cursor: none; -} - -html, -body { - height: 100%; - min-height: 100vh; - min-height: -webkit-fill-available; - min-height: calc(var(--vh, 1vh) * 100); - user-select: none; -} - -body { - margin: 0; - font-family: "Danzza Regular", "Danzza", -apple-system, BlinkMacSystemFont, - "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", - "Droid Sans", "Helvetica Neue", sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - background: var(--color-background); - overflow-x: hidden; -} - -@media (pointer: coarse) { - body, - * { - cursor: auto; - } -} diff --git a/src/styles/utils.css b/src/styles/utils.css deleted file mode 100644 index 5d4b3e1..0000000 --- a/src/styles/utils.css +++ /dev/null @@ -1,23 +0,0 @@ -/* Selection */ -::selection { - background: var(--color-primary); - color: #000; -} - -/* Scrollbar */ -::-webkit-scrollbar { - width: 10px; -} - -::-webkit-scrollbar-track { - background: #000; -} - -::-webkit-scrollbar-thumb { - background: var(--color-primary); - border-radius: 5px; -} - -::-webkit-scrollbar-thumb:hover { - background: var(--color-primary-hover); -} diff --git a/src/styles/variables.css b/src/styles/variables.css deleted file mode 100644 index e746f86..0000000 --- a/src/styles/variables.css +++ /dev/null @@ -1,38 +0,0 @@ -/* CSS Variables */ -:root { - /* Base font sizes for desktop */ - --font-size-paragraph: 18px; - --font-size-paragraph-small: 16px; - --font-size-subtitle: 20px; - --font-size-title-section: 32px; - --font-size-title-main: 48px; - --font-size-title-hero: 96px; - --font-size-button: 13px; - --font-size-caption: 12px; - - /* Mobile font sizes */ - --font-size-paragraph-mobile: 16px; - --font-size-paragraph-small-mobile: 12px; - --font-size-subtitle-mobile: 16px; - --font-size-title-section-mobile: 24px; - --font-size-title-main-mobile: 32px; - --font-size-title-hero-mobile: 48px; - --font-size-button-mobile: 11px; - --font-size-caption-mobile: 10px; - - /* Tablet font sizes */ - --font-size-paragraph-tablet: 16px; - --font-size-paragraph-small-tablet: 14px; - --font-size-subtitle-tablet: 18px; - --font-size-title-section-tablet: 28px; - --font-size-title-main-tablet: 40px; - --font-size-title-hero-tablet: 64px; - --font-size-button-tablet: 12px; - --font-size-caption-tablet: 11px; - - /* Colors */ - --color-primary: #04fea0; - --color-primary-hover: #03d98c; - --color-background: #000; - --color-text: #fff; -} diff --git a/src/views/About.svelte b/src/views/About.svelte deleted file mode 100644 index 7c73419..0000000 --- a/src/views/About.svelte +++ /dev/null @@ -1,177 +0,0 @@ - - -
-
-

{intro.title || data?.title}

- {#if intro.text} -

{@html intro.text}

- {/if} -
- - {#if mission.text} -
-

{mission.title}

-
- {@html mission.text} -
-
- {/if} - - {#if manifesto.text} -
-

{manifesto.title}

-
- {@html manifesto.text} -
-
- {/if} - - {#if team.members && team.members.length > 0} -
-

{team.title}

- -
- {#each team.members as member} -
- {#if member.photo} -
- {member.name} -
- {/if} - -
-

{member.name}

-

{member.role}

- - {#if member.bio} -

{member.bio}

- {/if} -
-
- {/each} -
-
- {/if} -
- - diff --git a/src/views/Article.svelte b/src/views/Article.svelte deleted file mode 100644 index 7e356f7..0000000 --- a/src/views/Article.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - -
-
-

{data?.title || 'Article'}

-

Article view - To be implemented

-
-
- - diff --git a/src/views/Blog.svelte b/src/views/Blog.svelte deleted file mode 100644 index 9023ba3..0000000 --- a/src/views/Blog.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - -
-
-

{data?.title || 'Blog'}

-

Blog view - To be implemented

-
-
- - diff --git a/src/views/Default.svelte b/src/views/Default.svelte deleted file mode 100644 index ab4a2f9..0000000 --- a/src/views/Default.svelte +++ /dev/null @@ -1,45 +0,0 @@ - - -
-
-

{data?.title || 'Page'}

- {#if data?.body} -
- {@html data.body} -
- {/if} -
-
- - diff --git a/src/views/Expertise.svelte b/src/views/Expertise.svelte deleted file mode 100644 index 9d16606..0000000 --- a/src/views/Expertise.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - -
-
-

{data?.title || 'Expertise'}

-

Expertise view - To be implemented

-
-
- - diff --git a/src/views/Game.svelte b/src/views/Game.svelte deleted file mode 100644 index a345682..0000000 --- a/src/views/Game.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - -
-
-

{data?.title || 'Game'}

-

Game view - To be implemented

-
-
- - diff --git a/src/views/Home.svelte b/src/views/Home.svelte deleted file mode 100644 index db773dc..0000000 --- a/src/views/Home.svelte +++ /dev/null @@ -1,218 +0,0 @@ - - -
-
-
-
- - -
-
-
- -
-
-
- -
-

- {t('homeText')} -

-
e.key === 'Enter' && handleExplore()} - role="button" - tabindex="0" - > -
-

- {t('explore')} -

-
-
-
- - diff --git a/src/views/Jouer.svelte b/src/views/Jouer.svelte deleted file mode 100644 index 207f2b0..0000000 --- a/src/views/Jouer.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - -
-
-

{data?.title || 'Jouer'}

-

Jouer view - To be implemented

-
-
- - diff --git a/src/views/Portfolio.svelte b/src/views/Portfolio.svelte deleted file mode 100644 index edfacd4..0000000 --- a/src/views/Portfolio.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - -
-
-

{data?.title || 'Portfolio'}

-

Portfolio view - To be implemented

-
-
- - diff --git a/src/views/Project.svelte b/src/views/Project.svelte deleted file mode 100644 index 05d78df..0000000 --- a/src/views/Project.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - -
-
-

{data?.title || 'Project'}

-

Project view - To be implemented

-
-
- - diff --git a/svelte.config.js b/svelte.config.js deleted file mode 100644 index 09a1bf7..0000000 --- a/svelte.config.js +++ /dev/null @@ -1,5 +0,0 @@ -import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' - -export default { - preprocess: vitePreprocess() -} diff --git a/vite.config.js b/vite.config.js deleted file mode 100644 index cc77d6d..0000000 --- a/vite.config.js +++ /dev/null @@ -1,40 +0,0 @@ -import { defineConfig } from 'vite' -import { svelte } from '@sveltejs/vite-plugin-svelte' -import path from 'path' - -export default defineConfig({ - plugins: [ - svelte({ - configFile: './svelte.config.js' - }) - ], - resolve: { - alias: { - '@components': path.resolve(__dirname, 'src/components'), - '@views': path.resolve(__dirname, 'src/views'), - '@state': path.resolve(__dirname, 'src/state') - } - }, - server: { - port: 5173, - proxy: { - '^(?!/@vite|/@fs|/node_modules|/src).*': { - target: 'http://localhost:8000', - changeOrigin: true - } - } - }, - build: { - outDir: 'assets/dist', - emptyOutDir: true, - manifest: false, - rollupOptions: { - input: 'src/main.js', - output: { - entryFileNames: 'index.js', - chunkFileNames: '[name].js', - assetFileNames: '[name].[ext]' - } - } - } -})