diff --git a/package.json b/package.json index ab511140..d2490e0e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,9 @@ "name": "atomcms-next", "private": true, "type": "module", - "engines": { "node": ">=22" }, + "engines": { + "node": ">=22" + }, "packageManager": "pnpm@10.33.4", "scripts": { "dev": "next dev", @@ -19,26 +21,36 @@ "@prisma/client": "^7.8.0", "bcryptjs": "^3.0.2", "hash-wasm": "^4.12.0", - "nodemailer": "^6.9.0", "next": "^16.2.9", "next-auth": "5.0.0-beta.31", + "nodemailer": "^6.9.0", "otplib": "^12.0.1", "react": "^19.2.0", "react-dom": "^19.2.0", "zod": "^3.24.0" }, "devDependencies": { + "@tailwindcss/forms": "^0.5.11", + "@tailwindcss/postcss": "^4.3.1", + "@tailwindcss/typography": "^0.5.20", "@types/node": "^22.10.0", "@types/nodemailer": "^6.4.0", "@types/react": "^19.2.0", "@types/react-dom": "^19.2.0", "dotenv": "^16.4.0", + "postcss": "^8.5.15", "prisma": "^7.8.0", + "tailwindcss": "^4.3.1", "tsx": "^4.19.0", "typescript": "^5.7.0", "vitest": "^2.1.0" }, "pnpm": { - "onlyBuiltDependencies": ["esbuild", "prisma", "@prisma/client", "@prisma/engines"] + "onlyBuiltDependencies": [ + "esbuild", + "prisma", + "@prisma/client", + "@prisma/engines" + ] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dbf607aa..1d57aa3b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,6 +42,15 @@ importers: specifier: ^3.24.0 version: 3.25.76 devDependencies: + '@tailwindcss/forms': + specifier: ^0.5.11 + version: 0.5.11(tailwindcss@4.3.1) + '@tailwindcss/postcss': + specifier: ^4.3.1 + version: 4.3.1 + '@tailwindcss/typography': + specifier: ^0.5.20 + version: 0.5.20(tailwindcss@4.3.1) '@types/node': specifier: ^22.10.0 version: 22.20.0 @@ -57,9 +66,15 @@ importers: dotenv: specifier: ^16.4.0 version: 16.6.1 + postcss: + specifier: ^8.5.15 + version: 8.5.15 prisma: specifier: ^7.8.0 version: 7.8.0(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3) + tailwindcss: + specifier: ^4.3.1 + version: 4.3.1 tsx: specifier: ^4.19.0 version: 4.22.4 @@ -68,7 +83,7 @@ importers: version: 5.9.3 vitest: specifier: ^2.1.0 - version: 2.1.9(@types/node@22.20.0) + version: 2.1.9(@types/node@22.20.0)(lightningcss@1.32.0) packages/db: dependencies: @@ -103,6 +118,10 @@ importers: packages: + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + '@auth/core@0.41.2': resolution: {integrity: sha512-Hx5MNBxN2fJTbJKGUKAA0wca43D0Akl3TvufY54Gn8lop7F+34vU1zA1pn0vQfIoVuLIrpfc2nkyjwIaPJMW7w==} peerDependencies: @@ -868,9 +887,22 @@ packages: cpu: [x64] os: [win32] + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@kurkle/color@0.3.4': resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==} @@ -1234,6 +1266,108 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@tailwindcss/forms@0.5.11': + resolution: {integrity: sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA==} + peerDependencies: + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' + + '@tailwindcss/node@4.3.1': + resolution: {integrity: sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A==} + + '@tailwindcss/oxide-android-arm64@4.3.1': + resolution: {integrity: sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.3.1': + resolution: {integrity: sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.3.1': + resolution: {integrity: sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.3.1': + resolution: {integrity: sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.1': + resolution: {integrity: sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.1': + resolution: {integrity: sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.3.1': + resolution: {integrity: sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.3.1': + resolution: {integrity: sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.3.1': + resolution: {integrity: sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.3.1': + resolution: {integrity: sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.1': + resolution: {integrity: sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.3.1': + resolution: {integrity: sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.3.1': + resolution: {integrity: sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA==} + engines: {node: '>= 20'} + + '@tailwindcss/postcss@4.3.1': + resolution: {integrity: sha512-dNJuNbdEJT/SWRuXTYP1WSamelsz3ztkUsdtWQPjrexysrTpaEPM40P/71knXiXLYEojqPOEGitVLLpPMS5T6A==} + + '@tailwindcss/typography@0.5.20': + resolution: {integrity: sha512-hwbzQuNUfcPvbegQFatVPl/MY/tcM9KLl963hQ5laJKPh81TEZ1+dNG9PirGvcaDBkp+BCshExAyKVPW91dozw==} + peerDependencies: + tailwindcss: '>=3.0.0 || >=4.0.0 || insiders' + '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} @@ -1353,6 +1487,11 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -1498,6 +1637,10 @@ packages: resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} engines: {node: '>=14'} + enhanced-resolve@5.21.6: + resolution: {integrity: sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==} + engines: {node: '>=10.13.0'} + env-paths@3.0.0: resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1624,6 +1767,80 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + long@5.3.2: resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} @@ -1644,6 +1861,10 @@ packages: resolution: {integrity: sha512-gThTYkhIS5rRqkVr+Y0cIdzr+GRqJ9sA2Q34e0yzmyhMCwyApf3OKAC1jnF23aSlIOqJuyaUFUcj7O1qZslmmQ==} engines: {node: '>= 14'} + mini-svg-data-uri@1.4.4: + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + hasBin: true + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -1739,6 +1960,10 @@ packages: pkg-types@2.3.1: resolution: {integrity: sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==} + postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} @@ -1891,6 +2116,13 @@ packages: babel-plugin-macros: optional: true + tailwindcss@4.3.1: + resolution: {integrity: sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==} + + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + thirty-two@1.0.2: resolution: {integrity: sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==} engines: {node: '>=0.2.6'} @@ -1932,6 +2164,9 @@ packages: undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + valibot@1.2.0: resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==} peerDependencies: @@ -2024,6 +2259,8 @@ packages: snapshots: + '@alloc/quick-lru@5.2.0': {} + '@auth/core@0.41.2(nodemailer@6.10.1)': dependencies: '@panva/hkdf': 1.2.1 @@ -2444,8 +2681,25 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + '@kurkle/color@0.3.4': {} '@next/env@16.2.9': {} @@ -2733,6 +2987,85 @@ snapshots: dependencies: tslib: 2.8.1 + '@tailwindcss/forms@0.5.11(tailwindcss@4.3.1)': + dependencies: + mini-svg-data-uri: 1.4.4 + tailwindcss: 4.3.1 + + '@tailwindcss/node@4.3.1': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.21.6 + jiti: 2.7.0 + lightningcss: 1.32.0 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.3.1 + + '@tailwindcss/oxide-android-arm64@4.3.1': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.3.1': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.3.1': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.3.1': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.1': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.1': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.3.1': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.3.1': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.3.1': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.3.1': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.1': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.3.1': + optional: true + + '@tailwindcss/oxide@4.3.1': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.3.1 + '@tailwindcss/oxide-darwin-arm64': 4.3.1 + '@tailwindcss/oxide-darwin-x64': 4.3.1 + '@tailwindcss/oxide-freebsd-x64': 4.3.1 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.1 + '@tailwindcss/oxide-linux-arm64-gnu': 4.3.1 + '@tailwindcss/oxide-linux-arm64-musl': 4.3.1 + '@tailwindcss/oxide-linux-x64-gnu': 4.3.1 + '@tailwindcss/oxide-linux-x64-musl': 4.3.1 + '@tailwindcss/oxide-wasm32-wasi': 4.3.1 + '@tailwindcss/oxide-win32-arm64-msvc': 4.3.1 + '@tailwindcss/oxide-win32-x64-msvc': 4.3.1 + + '@tailwindcss/postcss@4.3.1': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.3.1 + '@tailwindcss/oxide': 4.3.1 + postcss: 8.5.15 + tailwindcss: 4.3.1 + + '@tailwindcss/typography@0.5.20(tailwindcss@4.3.1)': + dependencies: + postcss-selector-parser: 6.0.10 + tailwindcss: 4.3.1 + '@types/estree@1.0.9': {} '@types/geojson@7946.0.16': {} @@ -2764,6 +3097,14 @@ snapshots: chai: 5.3.3 tinyrainbow: 1.2.0 + '@vitest/mocker@2.1.9(vite@5.4.21(@types/node@22.20.0)(lightningcss@1.32.0))': + dependencies: + '@vitest/spy': 2.1.9 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 5.4.21(@types/node@22.20.0)(lightningcss@1.32.0) + '@vitest/mocker@2.1.9(vite@5.4.21(@types/node@22.20.0))': dependencies: '@vitest/spy': 2.1.9 @@ -2863,6 +3204,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cssesc@3.0.0: {} + csstype@3.2.3: {} debug@4.4.3: @@ -2879,8 +3222,7 @@ snapshots: destr@2.0.5: {} - detect-libc@2.1.2: - optional: true + detect-libc@2.1.2: {} dotenv@16.6.1: {} @@ -2907,6 +3249,11 @@ snapshots: empathic@2.0.0: {} + enhanced-resolve@5.21.6: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + env-paths@3.0.0: {} es-module-lexer@1.7.0: {} @@ -3103,6 +3450,55 @@ snapshots: json-schema-traverse@1.0.0: {} + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + long@5.3.2: {} loupe@3.2.1: {} @@ -3123,6 +3519,8 @@ snapshots: iconv-lite: 0.6.3 lru-cache: 10.4.3 + mini-svg-data-uri@1.4.4: {} + ms@2.1.3: {} mysql2@3.15.3: @@ -3217,6 +3615,11 @@ snapshots: exsolve: 1.1.0 pathe: 2.0.3 + postcss-selector-parser@6.0.10: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss@8.4.31: dependencies: nanoid: 3.3.15 @@ -3391,6 +3794,10 @@ snapshots: client-only: 0.0.1 react: 19.2.7 + tailwindcss@4.3.1: {} + + tapable@2.3.3: {} + thirty-two@1.0.2: {} tinybench@2.9.0: {} @@ -3417,6 +3824,8 @@ snapshots: undici-types@7.18.2: {} + util-deprecate@1.0.2: {} + valibot@1.2.0(typescript@5.9.3): optionalDependencies: typescript: 5.9.3 @@ -3439,6 +3848,24 @@ snapshots: - supports-color - terser + vite-node@2.1.9(@types/node@22.20.0)(lightningcss@1.32.0): + dependencies: + cac: 6.7.14 + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 1.1.2 + vite: 5.4.21(@types/node@22.20.0)(lightningcss@1.32.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + vite@5.4.21(@types/node@22.20.0): dependencies: esbuild: 0.21.5 @@ -3448,6 +3875,16 @@ snapshots: '@types/node': 22.20.0 fsevents: 2.3.3 + vite@5.4.21(@types/node@22.20.0)(lightningcss@1.32.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.15 + rollup: 4.62.2 + optionalDependencies: + '@types/node': 22.20.0 + fsevents: 2.3.3 + lightningcss: 1.32.0 + vitest@2.1.9(@types/node@22.20.0): dependencies: '@vitest/expect': 2.1.9 @@ -3483,6 +3920,41 @@ snapshots: - supports-color - terser + vitest@2.1.9(@types/node@22.20.0)(lightningcss@1.32.0): + dependencies: + '@vitest/expect': 2.1.9 + '@vitest/mocker': 2.1.9(vite@5.4.21(@types/node@22.20.0)(lightningcss@1.32.0)) + '@vitest/pretty-format': 2.1.9 + '@vitest/runner': 2.1.9 + '@vitest/snapshot': 2.1.9 + '@vitest/spy': 2.1.9 + '@vitest/utils': 2.1.9 + chai: 5.3.3 + debug: 4.4.3 + expect-type: 1.4.0 + magic-string: 0.30.21 + pathe: 1.1.2 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.1.1 + tinyrainbow: 1.2.0 + vite: 5.4.21(@types/node@22.20.0)(lightningcss@1.32.0) + vite-node: 2.1.9(@types/node@22.20.0)(lightningcss@1.32.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.20.0 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + which@2.0.2: dependencies: isexe: 2.0.0 diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 00000000..c2ddf748 --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,5 @@ +export default { + plugins: { + "@tailwindcss/postcss": {}, + }, +}; diff --git a/public/assets/images/background-dark.jpg b/public/assets/images/background-dark.jpg new file mode 100644 index 00000000..28639d33 Binary files /dev/null and b/public/assets/images/background-dark.jpg differ diff --git a/public/assets/images/background-light.jpg b/public/assets/images/background-light.jpg new file mode 100644 index 00000000..7707bc6e Binary files /dev/null and b/public/assets/images/background-light.jpg differ diff --git a/public/assets/images/background.png b/public/assets/images/background.png new file mode 100644 index 00000000..adbf8644 Binary files /dev/null and b/public/assets/images/background.png differ diff --git a/public/assets/images/home_icon.gif b/public/assets/images/home_icon.gif new file mode 100644 index 00000000..a8425cbc Binary files /dev/null and b/public/assets/images/home_icon.gif differ diff --git a/public/assets/images/icons/amount.png b/public/assets/images/icons/amount.png new file mode 100644 index 00000000..da46d4d4 Binary files /dev/null and b/public/assets/images/icons/amount.png differ diff --git a/public/assets/images/icons/article.gif b/public/assets/images/icons/article.gif new file mode 100644 index 00000000..591af356 Binary files /dev/null and b/public/assets/images/icons/article.gif differ diff --git a/public/assets/images/icons/camera.png b/public/assets/images/icons/camera.png new file mode 100644 index 00000000..e5163ecb Binary files /dev/null and b/public/assets/images/icons/camera.png differ diff --git a/public/assets/images/icons/catalog.png b/public/assets/images/icons/catalog.png new file mode 100644 index 00000000..907d1473 Binary files /dev/null and b/public/assets/images/icons/catalog.png differ diff --git a/public/assets/images/icons/chat.png b/public/assets/images/icons/chat.png new file mode 100644 index 00000000..0f1d209b Binary files /dev/null and b/public/assets/images/icons/chat.png differ diff --git a/public/assets/images/icons/clock.gif b/public/assets/images/icons/clock.gif new file mode 100644 index 00000000..23c90387 Binary files /dev/null and b/public/assets/images/icons/clock.gif differ diff --git a/public/assets/images/icons/credits.png b/public/assets/images/icons/credits.png new file mode 100644 index 00000000..c5b84b2e Binary files /dev/null and b/public/assets/images/icons/credits.png differ diff --git a/public/assets/images/icons/currency.png b/public/assets/images/icons/currency.png new file mode 100644 index 00000000..6cde28da Binary files /dev/null and b/public/assets/images/icons/currency.png differ diff --git a/public/assets/images/icons/currency/credits.png b/public/assets/images/icons/currency/credits.png new file mode 100644 index 00000000..40285c98 Binary files /dev/null and b/public/assets/images/icons/currency/credits.png differ diff --git a/public/assets/images/icons/currency/diamonds.png b/public/assets/images/icons/currency/diamonds.png new file mode 100644 index 00000000..ecf1b2fe Binary files /dev/null and b/public/assets/images/icons/currency/diamonds.png differ diff --git a/public/assets/images/icons/currency/duckets.png b/public/assets/images/icons/currency/duckets.png new file mode 100644 index 00000000..631ace6b Binary files /dev/null and b/public/assets/images/icons/currency/duckets.png differ diff --git a/public/assets/images/icons/diamond.png b/public/assets/images/icons/diamond.png new file mode 100644 index 00000000..c73eb7f6 Binary files /dev/null and b/public/assets/images/icons/diamond.png differ diff --git a/public/assets/images/icons/discord.png b/public/assets/images/icons/discord.png new file mode 100644 index 00000000..0eb82bf2 Binary files /dev/null and b/public/assets/images/icons/discord.png differ diff --git a/public/assets/images/icons/duckets.png b/public/assets/images/icons/duckets.png new file mode 100644 index 00000000..ccc9cf3a Binary files /dev/null and b/public/assets/images/icons/duckets.png differ diff --git a/public/assets/images/icons/due-chat.png b/public/assets/images/icons/due-chat.png new file mode 100644 index 00000000..0fd0e8f1 Binary files /dev/null and b/public/assets/images/icons/due-chat.png differ diff --git a/public/assets/images/icons/feeds.png b/public/assets/images/icons/feeds.png new file mode 100644 index 00000000..455b52a6 Binary files /dev/null and b/public/assets/images/icons/feeds.png differ diff --git a/public/assets/images/icons/flags/ad.png b/public/assets/images/icons/flags/ad.png new file mode 100644 index 00000000..95d71907 Binary files /dev/null and b/public/assets/images/icons/flags/ad.png differ diff --git a/public/assets/images/icons/flags/ae.png b/public/assets/images/icons/flags/ae.png new file mode 100644 index 00000000..986e0fa1 Binary files /dev/null and b/public/assets/images/icons/flags/ae.png differ diff --git a/public/assets/images/icons/flags/af.png b/public/assets/images/icons/flags/af.png new file mode 100644 index 00000000..da81f5ab Binary files /dev/null and b/public/assets/images/icons/flags/af.png differ diff --git a/public/assets/images/icons/flags/ag.png b/public/assets/images/icons/flags/ag.png new file mode 100644 index 00000000..a161c069 Binary files /dev/null and b/public/assets/images/icons/flags/ag.png differ diff --git a/public/assets/images/icons/flags/ai.png b/public/assets/images/icons/flags/ai.png new file mode 100644 index 00000000..86702623 Binary files /dev/null and b/public/assets/images/icons/flags/ai.png differ diff --git a/public/assets/images/icons/flags/al.png b/public/assets/images/icons/flags/al.png new file mode 100644 index 00000000..f8a76fb9 Binary files /dev/null and b/public/assets/images/icons/flags/al.png differ diff --git a/public/assets/images/icons/flags/am.png b/public/assets/images/icons/flags/am.png new file mode 100644 index 00000000..262e0146 Binary files /dev/null and b/public/assets/images/icons/flags/am.png differ diff --git a/public/assets/images/icons/flags/an.png b/public/assets/images/icons/flags/an.png new file mode 100644 index 00000000..17efa7c9 Binary files /dev/null and b/public/assets/images/icons/flags/an.png differ diff --git a/public/assets/images/icons/flags/ao.png b/public/assets/images/icons/flags/ao.png new file mode 100644 index 00000000..4a5754aa Binary files /dev/null and b/public/assets/images/icons/flags/ao.png differ diff --git a/public/assets/images/icons/flags/ar.png b/public/assets/images/icons/flags/ar.png new file mode 100644 index 00000000..586c0844 Binary files /dev/null and b/public/assets/images/icons/flags/ar.png differ diff --git a/public/assets/images/icons/flags/as.png b/public/assets/images/icons/flags/as.png new file mode 100644 index 00000000..598b5e6c Binary files /dev/null and b/public/assets/images/icons/flags/as.png differ diff --git a/public/assets/images/icons/flags/at.png b/public/assets/images/icons/flags/at.png new file mode 100644 index 00000000..e4e9233e Binary files /dev/null and b/public/assets/images/icons/flags/at.png differ diff --git a/public/assets/images/icons/flags/au.png b/public/assets/images/icons/flags/au.png new file mode 100644 index 00000000..218e7b4b Binary files /dev/null and b/public/assets/images/icons/flags/au.png differ diff --git a/public/assets/images/icons/flags/aw.png b/public/assets/images/icons/flags/aw.png new file mode 100644 index 00000000..cc251430 Binary files /dev/null and b/public/assets/images/icons/flags/aw.png differ diff --git a/public/assets/images/icons/flags/ax.png b/public/assets/images/icons/flags/ax.png new file mode 100644 index 00000000..e9893260 Binary files /dev/null and b/public/assets/images/icons/flags/ax.png differ diff --git a/public/assets/images/icons/flags/az.png b/public/assets/images/icons/flags/az.png new file mode 100644 index 00000000..18f7c026 Binary files /dev/null and b/public/assets/images/icons/flags/az.png differ diff --git a/public/assets/images/icons/flags/ba.png b/public/assets/images/icons/flags/ba.png new file mode 100644 index 00000000..8d17436e Binary files /dev/null and b/public/assets/images/icons/flags/ba.png differ diff --git a/public/assets/images/icons/flags/bb.png b/public/assets/images/icons/flags/bb.png new file mode 100644 index 00000000..659ff6a5 Binary files /dev/null and b/public/assets/images/icons/flags/bb.png differ diff --git a/public/assets/images/icons/flags/bd.png b/public/assets/images/icons/flags/bd.png new file mode 100644 index 00000000..c1916593 Binary files /dev/null and b/public/assets/images/icons/flags/bd.png differ diff --git a/public/assets/images/icons/flags/be.png b/public/assets/images/icons/flags/be.png new file mode 100644 index 00000000..b879bb49 Binary files /dev/null and b/public/assets/images/icons/flags/be.png differ diff --git a/public/assets/images/icons/flags/bf.png b/public/assets/images/icons/flags/bf.png new file mode 100644 index 00000000..56f27020 Binary files /dev/null and b/public/assets/images/icons/flags/bf.png differ diff --git a/public/assets/images/icons/flags/bg.png b/public/assets/images/icons/flags/bg.png new file mode 100644 index 00000000..8c9c2282 Binary files /dev/null and b/public/assets/images/icons/flags/bg.png differ diff --git a/public/assets/images/icons/flags/bh.png b/public/assets/images/icons/flags/bh.png new file mode 100644 index 00000000..d08cbf15 Binary files /dev/null and b/public/assets/images/icons/flags/bh.png differ diff --git a/public/assets/images/icons/flags/bi.png b/public/assets/images/icons/flags/bi.png new file mode 100644 index 00000000..f7c3d9a6 Binary files /dev/null and b/public/assets/images/icons/flags/bi.png differ diff --git a/public/assets/images/icons/flags/bj.png b/public/assets/images/icons/flags/bj.png new file mode 100644 index 00000000..4e24f29e Binary files /dev/null and b/public/assets/images/icons/flags/bj.png differ diff --git a/public/assets/images/icons/flags/bm.png b/public/assets/images/icons/flags/bm.png new file mode 100644 index 00000000..14771d55 Binary files /dev/null and b/public/assets/images/icons/flags/bm.png differ diff --git a/public/assets/images/icons/flags/bn.png b/public/assets/images/icons/flags/bn.png new file mode 100644 index 00000000..5929ae82 Binary files /dev/null and b/public/assets/images/icons/flags/bn.png differ diff --git a/public/assets/images/icons/flags/bo.png b/public/assets/images/icons/flags/bo.png new file mode 100644 index 00000000..a8ad3a71 Binary files /dev/null and b/public/assets/images/icons/flags/bo.png differ diff --git a/public/assets/images/icons/flags/br.png b/public/assets/images/icons/flags/br.png new file mode 100644 index 00000000..171fd2f0 Binary files /dev/null and b/public/assets/images/icons/flags/br.png differ diff --git a/public/assets/images/icons/flags/bs.png b/public/assets/images/icons/flags/bs.png new file mode 100644 index 00000000..7f7e1a71 Binary files /dev/null and b/public/assets/images/icons/flags/bs.png differ diff --git a/public/assets/images/icons/flags/bt.png b/public/assets/images/icons/flags/bt.png new file mode 100644 index 00000000..869da253 Binary files /dev/null and b/public/assets/images/icons/flags/bt.png differ diff --git a/public/assets/images/icons/flags/bv.png b/public/assets/images/icons/flags/bv.png new file mode 100644 index 00000000..f6ec205a Binary files /dev/null and b/public/assets/images/icons/flags/bv.png differ diff --git a/public/assets/images/icons/flags/bw.png b/public/assets/images/icons/flags/bw.png new file mode 100644 index 00000000..2c89e460 Binary files /dev/null and b/public/assets/images/icons/flags/bw.png differ diff --git a/public/assets/images/icons/flags/by.png b/public/assets/images/icons/flags/by.png new file mode 100644 index 00000000..a1b3101e Binary files /dev/null and b/public/assets/images/icons/flags/by.png differ diff --git a/public/assets/images/icons/flags/bz.png b/public/assets/images/icons/flags/bz.png new file mode 100644 index 00000000..c4cc2c40 Binary files /dev/null and b/public/assets/images/icons/flags/bz.png differ diff --git a/public/assets/images/icons/flags/ca.png b/public/assets/images/icons/flags/ca.png new file mode 100644 index 00000000..0845b563 Binary files /dev/null and b/public/assets/images/icons/flags/ca.png differ diff --git a/public/assets/images/icons/flags/catalonia.png b/public/assets/images/icons/flags/catalonia.png new file mode 100644 index 00000000..d3978025 Binary files /dev/null and b/public/assets/images/icons/flags/catalonia.png differ diff --git a/public/assets/images/icons/flags/cc.png b/public/assets/images/icons/flags/cc.png new file mode 100644 index 00000000..34be8d52 Binary files /dev/null and b/public/assets/images/icons/flags/cc.png differ diff --git a/public/assets/images/icons/flags/cd.png b/public/assets/images/icons/flags/cd.png new file mode 100644 index 00000000..e92f5599 Binary files /dev/null and b/public/assets/images/icons/flags/cd.png differ diff --git a/public/assets/images/icons/flags/cf.png b/public/assets/images/icons/flags/cf.png new file mode 100644 index 00000000..e77f7825 Binary files /dev/null and b/public/assets/images/icons/flags/cf.png differ diff --git a/public/assets/images/icons/flags/cg.png b/public/assets/images/icons/flags/cg.png new file mode 100644 index 00000000..bd8b3e34 Binary files /dev/null and b/public/assets/images/icons/flags/cg.png differ diff --git a/public/assets/images/icons/flags/ch.png b/public/assets/images/icons/flags/ch.png new file mode 100644 index 00000000..323bdaf9 Binary files /dev/null and b/public/assets/images/icons/flags/ch.png differ diff --git a/public/assets/images/icons/flags/ci.png b/public/assets/images/icons/flags/ci.png new file mode 100644 index 00000000..fb353037 Binary files /dev/null and b/public/assets/images/icons/flags/ci.png differ diff --git a/public/assets/images/icons/flags/ck.png b/public/assets/images/icons/flags/ck.png new file mode 100644 index 00000000..e0eece2a Binary files /dev/null and b/public/assets/images/icons/flags/ck.png differ diff --git a/public/assets/images/icons/flags/cl.png b/public/assets/images/icons/flags/cl.png new file mode 100644 index 00000000..223168e0 Binary files /dev/null and b/public/assets/images/icons/flags/cl.png differ diff --git a/public/assets/images/icons/flags/cm.png b/public/assets/images/icons/flags/cm.png new file mode 100644 index 00000000..f41c55ff Binary files /dev/null and b/public/assets/images/icons/flags/cm.png differ diff --git a/public/assets/images/icons/flags/cn.png b/public/assets/images/icons/flags/cn.png new file mode 100644 index 00000000..a3465597 Binary files /dev/null and b/public/assets/images/icons/flags/cn.png differ diff --git a/public/assets/images/icons/flags/co.png b/public/assets/images/icons/flags/co.png new file mode 100644 index 00000000..eb144c65 Binary files /dev/null and b/public/assets/images/icons/flags/co.png differ diff --git a/public/assets/images/icons/flags/cr.png b/public/assets/images/icons/flags/cr.png new file mode 100644 index 00000000..ce1a3cbf Binary files /dev/null and b/public/assets/images/icons/flags/cr.png differ diff --git a/public/assets/images/icons/flags/cs.png b/public/assets/images/icons/flags/cs.png new file mode 100644 index 00000000..ad3f7167 Binary files /dev/null and b/public/assets/images/icons/flags/cs.png differ diff --git a/public/assets/images/icons/flags/cu.png b/public/assets/images/icons/flags/cu.png new file mode 100644 index 00000000..fdf853e9 Binary files /dev/null and b/public/assets/images/icons/flags/cu.png differ diff --git a/public/assets/images/icons/flags/cv.png b/public/assets/images/icons/flags/cv.png new file mode 100644 index 00000000..76c0faac Binary files /dev/null and b/public/assets/images/icons/flags/cv.png differ diff --git a/public/assets/images/icons/flags/cx.png b/public/assets/images/icons/flags/cx.png new file mode 100644 index 00000000..896255ed Binary files /dev/null and b/public/assets/images/icons/flags/cx.png differ diff --git a/public/assets/images/icons/flags/cy.png b/public/assets/images/icons/flags/cy.png new file mode 100644 index 00000000..41df0019 Binary files /dev/null and b/public/assets/images/icons/flags/cy.png differ diff --git a/public/assets/images/icons/flags/cz.png b/public/assets/images/icons/flags/cz.png new file mode 100644 index 00000000..3cd58d80 Binary files /dev/null and b/public/assets/images/icons/flags/cz.png differ diff --git a/public/assets/images/icons/flags/da.png b/public/assets/images/icons/flags/da.png new file mode 100644 index 00000000..d985c135 Binary files /dev/null and b/public/assets/images/icons/flags/da.png differ diff --git a/public/assets/images/icons/flags/de.png b/public/assets/images/icons/flags/de.png new file mode 100644 index 00000000..46a1de19 Binary files /dev/null and b/public/assets/images/icons/flags/de.png differ diff --git a/public/assets/images/icons/flags/dj.png b/public/assets/images/icons/flags/dj.png new file mode 100644 index 00000000..99d8f138 Binary files /dev/null and b/public/assets/images/icons/flags/dj.png differ diff --git a/public/assets/images/icons/flags/dm.png b/public/assets/images/icons/flags/dm.png new file mode 100644 index 00000000..14e5c613 Binary files /dev/null and b/public/assets/images/icons/flags/dm.png differ diff --git a/public/assets/images/icons/flags/do.png b/public/assets/images/icons/flags/do.png new file mode 100644 index 00000000..2d600f79 Binary files /dev/null and b/public/assets/images/icons/flags/do.png differ diff --git a/public/assets/images/icons/flags/dz.png b/public/assets/images/icons/flags/dz.png new file mode 100644 index 00000000..3a4e6d33 Binary files /dev/null and b/public/assets/images/icons/flags/dz.png differ diff --git a/public/assets/images/icons/flags/ec.png b/public/assets/images/icons/flags/ec.png new file mode 100644 index 00000000..9c5461d8 Binary files /dev/null and b/public/assets/images/icons/flags/ec.png differ diff --git a/public/assets/images/icons/flags/ee.png b/public/assets/images/icons/flags/ee.png new file mode 100644 index 00000000..c7186f08 Binary files /dev/null and b/public/assets/images/icons/flags/ee.png differ diff --git a/public/assets/images/icons/flags/eg.png b/public/assets/images/icons/flags/eg.png new file mode 100644 index 00000000..5db80868 Binary files /dev/null and b/public/assets/images/icons/flags/eg.png differ diff --git a/public/assets/images/icons/flags/eh.png b/public/assets/images/icons/flags/eh.png new file mode 100644 index 00000000..e2a4056b Binary files /dev/null and b/public/assets/images/icons/flags/eh.png differ diff --git a/public/assets/images/icons/flags/en.png b/public/assets/images/icons/flags/en.png new file mode 100644 index 00000000..bac16082 Binary files /dev/null and b/public/assets/images/icons/flags/en.png differ diff --git a/public/assets/images/icons/flags/england.png b/public/assets/images/icons/flags/england.png new file mode 100644 index 00000000..a70b9429 Binary files /dev/null and b/public/assets/images/icons/flags/england.png differ diff --git a/public/assets/images/icons/flags/er.png b/public/assets/images/icons/flags/er.png new file mode 100644 index 00000000..cd236798 Binary files /dev/null and b/public/assets/images/icons/flags/er.png differ diff --git a/public/assets/images/icons/flags/es.png b/public/assets/images/icons/flags/es.png new file mode 100644 index 00000000..e634103e Binary files /dev/null and b/public/assets/images/icons/flags/es.png differ diff --git a/public/assets/images/icons/flags/et.png b/public/assets/images/icons/flags/et.png new file mode 100644 index 00000000..dc7fcbef Binary files /dev/null and b/public/assets/images/icons/flags/et.png differ diff --git a/public/assets/images/icons/flags/eu.png b/public/assets/images/icons/flags/eu.png new file mode 100644 index 00000000..5359e803 Binary files /dev/null and b/public/assets/images/icons/flags/eu.png differ diff --git a/public/assets/images/icons/flags/fi.png b/public/assets/images/icons/flags/fi.png new file mode 100644 index 00000000..31e041b2 Binary files /dev/null and b/public/assets/images/icons/flags/fi.png differ diff --git a/public/assets/images/icons/flags/fj.png b/public/assets/images/icons/flags/fj.png new file mode 100644 index 00000000..192ad73f Binary files /dev/null and b/public/assets/images/icons/flags/fj.png differ diff --git a/public/assets/images/icons/flags/fk.png b/public/assets/images/icons/flags/fk.png new file mode 100644 index 00000000..7229ac15 Binary files /dev/null and b/public/assets/images/icons/flags/fk.png differ diff --git a/public/assets/images/icons/flags/fm.png b/public/assets/images/icons/flags/fm.png new file mode 100644 index 00000000..869ce210 Binary files /dev/null and b/public/assets/images/icons/flags/fm.png differ diff --git a/public/assets/images/icons/flags/fo.png b/public/assets/images/icons/flags/fo.png new file mode 100644 index 00000000..4b3de560 Binary files /dev/null and b/public/assets/images/icons/flags/fo.png differ diff --git a/public/assets/images/icons/flags/fr.png b/public/assets/images/icons/flags/fr.png new file mode 100644 index 00000000..618b7d4e Binary files /dev/null and b/public/assets/images/icons/flags/fr.png differ diff --git a/public/assets/images/icons/flags/ga.png b/public/assets/images/icons/flags/ga.png new file mode 100644 index 00000000..66cb5853 Binary files /dev/null and b/public/assets/images/icons/flags/ga.png differ diff --git a/public/assets/images/icons/flags/galicia.png b/public/assets/images/icons/flags/galicia.png new file mode 100644 index 00000000..6479fd6b Binary files /dev/null and b/public/assets/images/icons/flags/galicia.png differ diff --git a/public/assets/images/icons/flags/gb.png b/public/assets/images/icons/flags/gb.png new file mode 100644 index 00000000..bf378e57 Binary files /dev/null and b/public/assets/images/icons/flags/gb.png differ diff --git a/public/assets/images/icons/flags/gd.png b/public/assets/images/icons/flags/gd.png new file mode 100644 index 00000000..ab7d3468 Binary files /dev/null and b/public/assets/images/icons/flags/gd.png differ diff --git a/public/assets/images/icons/flags/ge.png b/public/assets/images/icons/flags/ge.png new file mode 100644 index 00000000..00952e76 Binary files /dev/null and b/public/assets/images/icons/flags/ge.png differ diff --git a/public/assets/images/icons/flags/gf.png b/public/assets/images/icons/flags/gf.png new file mode 100644 index 00000000..b5d14a5c Binary files /dev/null and b/public/assets/images/icons/flags/gf.png differ diff --git a/public/assets/images/icons/flags/gg.png b/public/assets/images/icons/flags/gg.png new file mode 100644 index 00000000..29ad6a72 Binary files /dev/null and b/public/assets/images/icons/flags/gg.png differ diff --git a/public/assets/images/icons/flags/gh.png b/public/assets/images/icons/flags/gh.png new file mode 100644 index 00000000..ab6eaf8b Binary files /dev/null and b/public/assets/images/icons/flags/gh.png differ diff --git a/public/assets/images/icons/flags/gi.png b/public/assets/images/icons/flags/gi.png new file mode 100644 index 00000000..b08cc00c Binary files /dev/null and b/public/assets/images/icons/flags/gi.png differ diff --git a/public/assets/images/icons/flags/gl.png b/public/assets/images/icons/flags/gl.png new file mode 100644 index 00000000..7eea1793 Binary files /dev/null and b/public/assets/images/icons/flags/gl.png differ diff --git a/public/assets/images/icons/flags/gm.png b/public/assets/images/icons/flags/gm.png new file mode 100644 index 00000000..8ba97fac Binary files /dev/null and b/public/assets/images/icons/flags/gm.png differ diff --git a/public/assets/images/icons/flags/gn.png b/public/assets/images/icons/flags/gn.png new file mode 100644 index 00000000..24e08c7f Binary files /dev/null and b/public/assets/images/icons/flags/gn.png differ diff --git a/public/assets/images/icons/flags/gp.png b/public/assets/images/icons/flags/gp.png new file mode 100644 index 00000000..da69f05d Binary files /dev/null and b/public/assets/images/icons/flags/gp.png differ diff --git a/public/assets/images/icons/flags/gq.png b/public/assets/images/icons/flags/gq.png new file mode 100644 index 00000000..374dd673 Binary files /dev/null and b/public/assets/images/icons/flags/gq.png differ diff --git a/public/assets/images/icons/flags/gr.png b/public/assets/images/icons/flags/gr.png new file mode 100644 index 00000000..190c66cc Binary files /dev/null and b/public/assets/images/icons/flags/gr.png differ diff --git a/public/assets/images/icons/flags/gs.png b/public/assets/images/icons/flags/gs.png new file mode 100644 index 00000000..0c75fc2a Binary files /dev/null and b/public/assets/images/icons/flags/gs.png differ diff --git a/public/assets/images/icons/flags/gt.png b/public/assets/images/icons/flags/gt.png new file mode 100644 index 00000000..f57c197c Binary files /dev/null and b/public/assets/images/icons/flags/gt.png differ diff --git a/public/assets/images/icons/flags/gu.png b/public/assets/images/icons/flags/gu.png new file mode 100644 index 00000000..49c2f6a1 Binary files /dev/null and b/public/assets/images/icons/flags/gu.png differ diff --git a/public/assets/images/icons/flags/gw.png b/public/assets/images/icons/flags/gw.png new file mode 100644 index 00000000..293643f5 Binary files /dev/null and b/public/assets/images/icons/flags/gw.png differ diff --git a/public/assets/images/icons/flags/gy.png b/public/assets/images/icons/flags/gy.png new file mode 100644 index 00000000..8bc67162 Binary files /dev/null and b/public/assets/images/icons/flags/gy.png differ diff --git a/public/assets/images/icons/flags/hk.png b/public/assets/images/icons/flags/hk.png new file mode 100644 index 00000000..779ffe0c Binary files /dev/null and b/public/assets/images/icons/flags/hk.png differ diff --git a/public/assets/images/icons/flags/hm.png b/public/assets/images/icons/flags/hm.png new file mode 100644 index 00000000..7acea00b Binary files /dev/null and b/public/assets/images/icons/flags/hm.png differ diff --git a/public/assets/images/icons/flags/hn.png b/public/assets/images/icons/flags/hn.png new file mode 100644 index 00000000..661e214e Binary files /dev/null and b/public/assets/images/icons/flags/hn.png differ diff --git a/public/assets/images/icons/flags/hr.png b/public/assets/images/icons/flags/hr.png new file mode 100644 index 00000000..2e2d536e Binary files /dev/null and b/public/assets/images/icons/flags/hr.png differ diff --git a/public/assets/images/icons/flags/ht.png b/public/assets/images/icons/flags/ht.png new file mode 100644 index 00000000..c0aa7fc1 Binary files /dev/null and b/public/assets/images/icons/flags/ht.png differ diff --git a/public/assets/images/icons/flags/hu.png b/public/assets/images/icons/flags/hu.png new file mode 100644 index 00000000..b8f3b550 Binary files /dev/null and b/public/assets/images/icons/flags/hu.png differ diff --git a/public/assets/images/icons/flags/id.png b/public/assets/images/icons/flags/id.png new file mode 100644 index 00000000..fe10b2d0 Binary files /dev/null and b/public/assets/images/icons/flags/id.png differ diff --git a/public/assets/images/icons/flags/ie.png b/public/assets/images/icons/flags/ie.png new file mode 100644 index 00000000..60ab24c9 Binary files /dev/null and b/public/assets/images/icons/flags/ie.png differ diff --git a/public/assets/images/icons/flags/il.png b/public/assets/images/icons/flags/il.png new file mode 100644 index 00000000..4b33b692 Binary files /dev/null and b/public/assets/images/icons/flags/il.png differ diff --git a/public/assets/images/icons/flags/im.png b/public/assets/images/icons/flags/im.png new file mode 100644 index 00000000..ca0f3cab Binary files /dev/null and b/public/assets/images/icons/flags/im.png differ diff --git a/public/assets/images/icons/flags/in.png b/public/assets/images/icons/flags/in.png new file mode 100644 index 00000000..f9413a2a Binary files /dev/null and b/public/assets/images/icons/flags/in.png differ diff --git a/public/assets/images/icons/flags/io.png b/public/assets/images/icons/flags/io.png new file mode 100644 index 00000000..fe16688f Binary files /dev/null and b/public/assets/images/icons/flags/io.png differ diff --git a/public/assets/images/icons/flags/iq.png b/public/assets/images/icons/flags/iq.png new file mode 100644 index 00000000..4421c3c6 Binary files /dev/null and b/public/assets/images/icons/flags/iq.png differ diff --git a/public/assets/images/icons/flags/ir.png b/public/assets/images/icons/flags/ir.png new file mode 100644 index 00000000..231b8c8b Binary files /dev/null and b/public/assets/images/icons/flags/ir.png differ diff --git a/public/assets/images/icons/flags/is.png b/public/assets/images/icons/flags/is.png new file mode 100644 index 00000000..b76edc02 Binary files /dev/null and b/public/assets/images/icons/flags/is.png differ diff --git a/public/assets/images/icons/flags/it.png b/public/assets/images/icons/flags/it.png new file mode 100644 index 00000000..db299ac3 Binary files /dev/null and b/public/assets/images/icons/flags/it.png differ diff --git a/public/assets/images/icons/flags/je.png b/public/assets/images/icons/flags/je.png new file mode 100644 index 00000000..53b830b4 Binary files /dev/null and b/public/assets/images/icons/flags/je.png differ diff --git a/public/assets/images/icons/flags/jm.png b/public/assets/images/icons/flags/jm.png new file mode 100644 index 00000000..225344cb Binary files /dev/null and b/public/assets/images/icons/flags/jm.png differ diff --git a/public/assets/images/icons/flags/jo.png b/public/assets/images/icons/flags/jo.png new file mode 100644 index 00000000..a07b3292 Binary files /dev/null and b/public/assets/images/icons/flags/jo.png differ diff --git a/public/assets/images/icons/flags/jp.png b/public/assets/images/icons/flags/jp.png new file mode 100644 index 00000000..9ed43631 Binary files /dev/null and b/public/assets/images/icons/flags/jp.png differ diff --git a/public/assets/images/icons/flags/ke.png b/public/assets/images/icons/flags/ke.png new file mode 100644 index 00000000..226cfdb4 Binary files /dev/null and b/public/assets/images/icons/flags/ke.png differ diff --git a/public/assets/images/icons/flags/kg.png b/public/assets/images/icons/flags/kg.png new file mode 100644 index 00000000..b74ac107 Binary files /dev/null and b/public/assets/images/icons/flags/kg.png differ diff --git a/public/assets/images/icons/flags/kh.png b/public/assets/images/icons/flags/kh.png new file mode 100644 index 00000000..e5906639 Binary files /dev/null and b/public/assets/images/icons/flags/kh.png differ diff --git a/public/assets/images/icons/flags/ki.png b/public/assets/images/icons/flags/ki.png new file mode 100644 index 00000000..3ca82eea Binary files /dev/null and b/public/assets/images/icons/flags/ki.png differ diff --git a/public/assets/images/icons/flags/km.png b/public/assets/images/icons/flags/km.png new file mode 100644 index 00000000..8514d602 Binary files /dev/null and b/public/assets/images/icons/flags/km.png differ diff --git a/public/assets/images/icons/flags/kn.png b/public/assets/images/icons/flags/kn.png new file mode 100644 index 00000000..433a28bd Binary files /dev/null and b/public/assets/images/icons/flags/kn.png differ diff --git a/public/assets/images/icons/flags/kp.png b/public/assets/images/icons/flags/kp.png new file mode 100644 index 00000000..ed52c9f9 Binary files /dev/null and b/public/assets/images/icons/flags/kp.png differ diff --git a/public/assets/images/icons/flags/kr.png b/public/assets/images/icons/flags/kr.png new file mode 100644 index 00000000..fbfa7f9e Binary files /dev/null and b/public/assets/images/icons/flags/kr.png differ diff --git a/public/assets/images/icons/flags/kw.png b/public/assets/images/icons/flags/kw.png new file mode 100644 index 00000000..8ce5aa6a Binary files /dev/null and b/public/assets/images/icons/flags/kw.png differ diff --git a/public/assets/images/icons/flags/ky.png b/public/assets/images/icons/flags/ky.png new file mode 100644 index 00000000..1d303635 Binary files /dev/null and b/public/assets/images/icons/flags/ky.png differ diff --git a/public/assets/images/icons/flags/kz.png b/public/assets/images/icons/flags/kz.png new file mode 100644 index 00000000..fd5c8c89 Binary files /dev/null and b/public/assets/images/icons/flags/kz.png differ diff --git a/public/assets/images/icons/flags/la.png b/public/assets/images/icons/flags/la.png new file mode 100644 index 00000000..b82bd70f Binary files /dev/null and b/public/assets/images/icons/flags/la.png differ diff --git a/public/assets/images/icons/flags/lb.png b/public/assets/images/icons/flags/lb.png new file mode 100644 index 00000000..0ce0fb7a Binary files /dev/null and b/public/assets/images/icons/flags/lb.png differ diff --git a/public/assets/images/icons/flags/lc.png b/public/assets/images/icons/flags/lc.png new file mode 100644 index 00000000..63662428 Binary files /dev/null and b/public/assets/images/icons/flags/lc.png differ diff --git a/public/assets/images/icons/flags/li.png b/public/assets/images/icons/flags/li.png new file mode 100644 index 00000000..b7ef9752 Binary files /dev/null and b/public/assets/images/icons/flags/li.png differ diff --git a/public/assets/images/icons/flags/lk.png b/public/assets/images/icons/flags/lk.png new file mode 100644 index 00000000..4137f15d Binary files /dev/null and b/public/assets/images/icons/flags/lk.png differ diff --git a/public/assets/images/icons/flags/lr.png b/public/assets/images/icons/flags/lr.png new file mode 100644 index 00000000..85207d8c Binary files /dev/null and b/public/assets/images/icons/flags/lr.png differ diff --git a/public/assets/images/icons/flags/ls.png b/public/assets/images/icons/flags/ls.png new file mode 100644 index 00000000..8c8f9dbc Binary files /dev/null and b/public/assets/images/icons/flags/ls.png differ diff --git a/public/assets/images/icons/flags/lt.png b/public/assets/images/icons/flags/lt.png new file mode 100644 index 00000000..d13d7c7f Binary files /dev/null and b/public/assets/images/icons/flags/lt.png differ diff --git a/public/assets/images/icons/flags/lu.png b/public/assets/images/icons/flags/lu.png new file mode 100644 index 00000000..9b54ede3 Binary files /dev/null and b/public/assets/images/icons/flags/lu.png differ diff --git a/public/assets/images/icons/flags/lv.png b/public/assets/images/icons/flags/lv.png new file mode 100644 index 00000000..dd8ac245 Binary files /dev/null and b/public/assets/images/icons/flags/lv.png differ diff --git a/public/assets/images/icons/flags/ly.png b/public/assets/images/icons/flags/ly.png new file mode 100644 index 00000000..4203d0b0 Binary files /dev/null and b/public/assets/images/icons/flags/ly.png differ diff --git a/public/assets/images/icons/flags/ma.png b/public/assets/images/icons/flags/ma.png new file mode 100644 index 00000000..3df339e6 Binary files /dev/null and b/public/assets/images/icons/flags/ma.png differ diff --git a/public/assets/images/icons/flags/mc.png b/public/assets/images/icons/flags/mc.png new file mode 100644 index 00000000..a3aaa028 Binary files /dev/null and b/public/assets/images/icons/flags/mc.png differ diff --git a/public/assets/images/icons/flags/md.png b/public/assets/images/icons/flags/md.png new file mode 100644 index 00000000..e16169e9 Binary files /dev/null and b/public/assets/images/icons/flags/md.png differ diff --git a/public/assets/images/icons/flags/me.png b/public/assets/images/icons/flags/me.png new file mode 100644 index 00000000..8432a68d Binary files /dev/null and b/public/assets/images/icons/flags/me.png differ diff --git a/public/assets/images/icons/flags/mf.png b/public/assets/images/icons/flags/mf.png new file mode 100644 index 00000000..4db7bd74 Binary files /dev/null and b/public/assets/images/icons/flags/mf.png differ diff --git a/public/assets/images/icons/flags/mg.png b/public/assets/images/icons/flags/mg.png new file mode 100644 index 00000000..b6fa2c16 Binary files /dev/null and b/public/assets/images/icons/flags/mg.png differ diff --git a/public/assets/images/icons/flags/mh.png b/public/assets/images/icons/flags/mh.png new file mode 100644 index 00000000..ce7a13a1 Binary files /dev/null and b/public/assets/images/icons/flags/mh.png differ diff --git a/public/assets/images/icons/flags/mk.png b/public/assets/images/icons/flags/mk.png new file mode 100644 index 00000000..c364c077 Binary files /dev/null and b/public/assets/images/icons/flags/mk.png differ diff --git a/public/assets/images/icons/flags/ml.png b/public/assets/images/icons/flags/ml.png new file mode 100644 index 00000000..557e2e7f Binary files /dev/null and b/public/assets/images/icons/flags/ml.png differ diff --git a/public/assets/images/icons/flags/mm.png b/public/assets/images/icons/flags/mm.png new file mode 100644 index 00000000..4785b775 Binary files /dev/null and b/public/assets/images/icons/flags/mm.png differ diff --git a/public/assets/images/icons/flags/mn.png b/public/assets/images/icons/flags/mn.png new file mode 100644 index 00000000..2e33dcbf Binary files /dev/null and b/public/assets/images/icons/flags/mn.png differ diff --git a/public/assets/images/icons/flags/mo.png b/public/assets/images/icons/flags/mo.png new file mode 100644 index 00000000..5620bb57 Binary files /dev/null and b/public/assets/images/icons/flags/mo.png differ diff --git a/public/assets/images/icons/flags/mp.png b/public/assets/images/icons/flags/mp.png new file mode 100644 index 00000000..c0a88433 Binary files /dev/null and b/public/assets/images/icons/flags/mp.png differ diff --git a/public/assets/images/icons/flags/mq.png b/public/assets/images/icons/flags/mq.png new file mode 100644 index 00000000..84751ae8 Binary files /dev/null and b/public/assets/images/icons/flags/mq.png differ diff --git a/public/assets/images/icons/flags/mr.png b/public/assets/images/icons/flags/mr.png new file mode 100644 index 00000000..89228a4f Binary files /dev/null and b/public/assets/images/icons/flags/mr.png differ diff --git a/public/assets/images/icons/flags/ms.png b/public/assets/images/icons/flags/ms.png new file mode 100644 index 00000000..59bc5e48 Binary files /dev/null and b/public/assets/images/icons/flags/ms.png differ diff --git a/public/assets/images/icons/flags/mt.png b/public/assets/images/icons/flags/mt.png new file mode 100644 index 00000000..7b381c46 Binary files /dev/null and b/public/assets/images/icons/flags/mt.png differ diff --git a/public/assets/images/icons/flags/mu.png b/public/assets/images/icons/flags/mu.png new file mode 100644 index 00000000..12e8aade Binary files /dev/null and b/public/assets/images/icons/flags/mu.png differ diff --git a/public/assets/images/icons/flags/mv.png b/public/assets/images/icons/flags/mv.png new file mode 100644 index 00000000..b1981c79 Binary files /dev/null and b/public/assets/images/icons/flags/mv.png differ diff --git a/public/assets/images/icons/flags/mw.png b/public/assets/images/icons/flags/mw.png new file mode 100644 index 00000000..02f501f2 Binary files /dev/null and b/public/assets/images/icons/flags/mw.png differ diff --git a/public/assets/images/icons/flags/mx.png b/public/assets/images/icons/flags/mx.png new file mode 100644 index 00000000..8335b479 Binary files /dev/null and b/public/assets/images/icons/flags/mx.png differ diff --git a/public/assets/images/icons/flags/my.png b/public/assets/images/icons/flags/my.png new file mode 100644 index 00000000..b2654ef3 Binary files /dev/null and b/public/assets/images/icons/flags/my.png differ diff --git a/public/assets/images/icons/flags/mz.png b/public/assets/images/icons/flags/mz.png new file mode 100644 index 00000000..5b30a20f Binary files /dev/null and b/public/assets/images/icons/flags/mz.png differ diff --git a/public/assets/images/icons/flags/na.png b/public/assets/images/icons/flags/na.png new file mode 100644 index 00000000..c91353f4 Binary files /dev/null and b/public/assets/images/icons/flags/na.png differ diff --git a/public/assets/images/icons/flags/nc.png b/public/assets/images/icons/flags/nc.png new file mode 100644 index 00000000..e288d9cd Binary files /dev/null and b/public/assets/images/icons/flags/nc.png differ diff --git a/public/assets/images/icons/flags/nc2.png b/public/assets/images/icons/flags/nc2.png new file mode 100644 index 00000000..86b1efcb Binary files /dev/null and b/public/assets/images/icons/flags/nc2.png differ diff --git a/public/assets/images/icons/flags/ne.png b/public/assets/images/icons/flags/ne.png new file mode 100644 index 00000000..404db8e9 Binary files /dev/null and b/public/assets/images/icons/flags/ne.png differ diff --git a/public/assets/images/icons/flags/nf.png b/public/assets/images/icons/flags/nf.png new file mode 100644 index 00000000..cafe0af2 Binary files /dev/null and b/public/assets/images/icons/flags/nf.png differ diff --git a/public/assets/images/icons/flags/ng.png b/public/assets/images/icons/flags/ng.png new file mode 100644 index 00000000..f00ce672 Binary files /dev/null and b/public/assets/images/icons/flags/ng.png differ diff --git a/public/assets/images/icons/flags/ni.png b/public/assets/images/icons/flags/ni.png new file mode 100644 index 00000000..dcc285dd Binary files /dev/null and b/public/assets/images/icons/flags/ni.png differ diff --git a/public/assets/images/icons/flags/nl.png b/public/assets/images/icons/flags/nl.png new file mode 100644 index 00000000..d48e0cb0 Binary files /dev/null and b/public/assets/images/icons/flags/nl.png differ diff --git a/public/assets/images/icons/flags/no.png b/public/assets/images/icons/flags/no.png new file mode 100644 index 00000000..261d18dd Binary files /dev/null and b/public/assets/images/icons/flags/no.png differ diff --git a/public/assets/images/icons/flags/np.png b/public/assets/images/icons/flags/np.png new file mode 100644 index 00000000..60ea9678 Binary files /dev/null and b/public/assets/images/icons/flags/np.png differ diff --git a/public/assets/images/icons/flags/nr.png b/public/assets/images/icons/flags/nr.png new file mode 100644 index 00000000..e584ca96 Binary files /dev/null and b/public/assets/images/icons/flags/nr.png differ diff --git a/public/assets/images/icons/flags/nu.png b/public/assets/images/icons/flags/nu.png new file mode 100644 index 00000000..a91652e5 Binary files /dev/null and b/public/assets/images/icons/flags/nu.png differ diff --git a/public/assets/images/icons/flags/nz.png b/public/assets/images/icons/flags/nz.png new file mode 100644 index 00000000..b7d48fd7 Binary files /dev/null and b/public/assets/images/icons/flags/nz.png differ diff --git a/public/assets/images/icons/flags/om.png b/public/assets/images/icons/flags/om.png new file mode 100644 index 00000000..f4003f24 Binary files /dev/null and b/public/assets/images/icons/flags/om.png differ diff --git a/public/assets/images/icons/flags/pa.png b/public/assets/images/icons/flags/pa.png new file mode 100644 index 00000000..49f0d0a1 Binary files /dev/null and b/public/assets/images/icons/flags/pa.png differ diff --git a/public/assets/images/icons/flags/pe.png b/public/assets/images/icons/flags/pe.png new file mode 100644 index 00000000..50a111f1 Binary files /dev/null and b/public/assets/images/icons/flags/pe.png differ diff --git a/public/assets/images/icons/flags/pf.png b/public/assets/images/icons/flags/pf.png new file mode 100644 index 00000000..baa4ef09 Binary files /dev/null and b/public/assets/images/icons/flags/pf.png differ diff --git a/public/assets/images/icons/flags/pg.png b/public/assets/images/icons/flags/pg.png new file mode 100644 index 00000000..92414c2c Binary files /dev/null and b/public/assets/images/icons/flags/pg.png differ diff --git a/public/assets/images/icons/flags/ph.png b/public/assets/images/icons/flags/ph.png new file mode 100644 index 00000000..ab727019 Binary files /dev/null and b/public/assets/images/icons/flags/ph.png differ diff --git a/public/assets/images/icons/flags/pk.png b/public/assets/images/icons/flags/pk.png new file mode 100644 index 00000000..11abd392 Binary files /dev/null and b/public/assets/images/icons/flags/pk.png differ diff --git a/public/assets/images/icons/flags/pl.png b/public/assets/images/icons/flags/pl.png new file mode 100644 index 00000000..5667be19 Binary files /dev/null and b/public/assets/images/icons/flags/pl.png differ diff --git a/public/assets/images/icons/flags/pm.png b/public/assets/images/icons/flags/pm.png new file mode 100644 index 00000000..944ae253 Binary files /dev/null and b/public/assets/images/icons/flags/pm.png differ diff --git a/public/assets/images/icons/flags/pn.png b/public/assets/images/icons/flags/pn.png new file mode 100644 index 00000000..d42edf23 Binary files /dev/null and b/public/assets/images/icons/flags/pn.png differ diff --git a/public/assets/images/icons/flags/pr.png b/public/assets/images/icons/flags/pr.png new file mode 100644 index 00000000..cc1047da Binary files /dev/null and b/public/assets/images/icons/flags/pr.png differ diff --git a/public/assets/images/icons/flags/ps.png b/public/assets/images/icons/flags/ps.png new file mode 100644 index 00000000..0f5e90df Binary files /dev/null and b/public/assets/images/icons/flags/ps.png differ diff --git a/public/assets/images/icons/flags/pt.png b/public/assets/images/icons/flags/pt.png new file mode 100644 index 00000000..83f4ca46 Binary files /dev/null and b/public/assets/images/icons/flags/pt.png differ diff --git a/public/assets/images/icons/flags/pw.png b/public/assets/images/icons/flags/pw.png new file mode 100644 index 00000000..2c5a1c53 Binary files /dev/null and b/public/assets/images/icons/flags/pw.png differ diff --git a/public/assets/images/icons/flags/py.png b/public/assets/images/icons/flags/py.png new file mode 100644 index 00000000..1744bf7e Binary files /dev/null and b/public/assets/images/icons/flags/py.png differ diff --git a/public/assets/images/icons/flags/qa.png b/public/assets/images/icons/flags/qa.png new file mode 100644 index 00000000..08c75c0d Binary files /dev/null and b/public/assets/images/icons/flags/qa.png differ diff --git a/public/assets/images/icons/flags/re.png b/public/assets/images/icons/flags/re.png new file mode 100644 index 00000000..a0d83aac Binary files /dev/null and b/public/assets/images/icons/flags/re.png differ diff --git a/public/assets/images/icons/flags/ro.png b/public/assets/images/icons/flags/ro.png new file mode 100644 index 00000000..447dacf4 Binary files /dev/null and b/public/assets/images/icons/flags/ro.png differ diff --git a/public/assets/images/icons/flags/rs.png b/public/assets/images/icons/flags/rs.png new file mode 100644 index 00000000..a324a6f3 Binary files /dev/null and b/public/assets/images/icons/flags/rs.png differ diff --git a/public/assets/images/icons/flags/ru.png b/public/assets/images/icons/flags/ru.png new file mode 100644 index 00000000..41618173 Binary files /dev/null and b/public/assets/images/icons/flags/ru.png differ diff --git a/public/assets/images/icons/flags/rw.png b/public/assets/images/icons/flags/rw.png new file mode 100644 index 00000000..b972d22b Binary files /dev/null and b/public/assets/images/icons/flags/rw.png differ diff --git a/public/assets/images/icons/flags/sa.png b/public/assets/images/icons/flags/sa.png new file mode 100644 index 00000000..82688149 Binary files /dev/null and b/public/assets/images/icons/flags/sa.png differ diff --git a/public/assets/images/icons/flags/sb.png b/public/assets/images/icons/flags/sb.png new file mode 100644 index 00000000..7811c665 Binary files /dev/null and b/public/assets/images/icons/flags/sb.png differ diff --git a/public/assets/images/icons/flags/sc.png b/public/assets/images/icons/flags/sc.png new file mode 100644 index 00000000..4686d5ed Binary files /dev/null and b/public/assets/images/icons/flags/sc.png differ diff --git a/public/assets/images/icons/flags/scotland.png b/public/assets/images/icons/flags/scotland.png new file mode 100644 index 00000000..11c91256 Binary files /dev/null and b/public/assets/images/icons/flags/scotland.png differ diff --git a/public/assets/images/icons/flags/sd.png b/public/assets/images/icons/flags/sd.png new file mode 100644 index 00000000..b44b53c2 Binary files /dev/null and b/public/assets/images/icons/flags/sd.png differ diff --git a/public/assets/images/icons/flags/se.png b/public/assets/images/icons/flags/se.png new file mode 100644 index 00000000..a1a10972 Binary files /dev/null and b/public/assets/images/icons/flags/se.png differ diff --git a/public/assets/images/icons/flags/sg.png b/public/assets/images/icons/flags/sg.png new file mode 100644 index 00000000..8dddc6a0 Binary files /dev/null and b/public/assets/images/icons/flags/sg.png differ diff --git a/public/assets/images/icons/flags/sh.png b/public/assets/images/icons/flags/sh.png new file mode 100644 index 00000000..65f3c9d0 Binary files /dev/null and b/public/assets/images/icons/flags/sh.png differ diff --git a/public/assets/images/icons/flags/si.png b/public/assets/images/icons/flags/si.png new file mode 100644 index 00000000..39099dc5 Binary files /dev/null and b/public/assets/images/icons/flags/si.png differ diff --git a/public/assets/images/icons/flags/sj.png b/public/assets/images/icons/flags/sj.png new file mode 100644 index 00000000..fd34da29 Binary files /dev/null and b/public/assets/images/icons/flags/sj.png differ diff --git a/public/assets/images/icons/flags/sk.png b/public/assets/images/icons/flags/sk.png new file mode 100644 index 00000000..f0b90bc3 Binary files /dev/null and b/public/assets/images/icons/flags/sk.png differ diff --git a/public/assets/images/icons/flags/sl.png b/public/assets/images/icons/flags/sl.png new file mode 100644 index 00000000..d5639f8e Binary files /dev/null and b/public/assets/images/icons/flags/sl.png differ diff --git a/public/assets/images/icons/flags/sm.png b/public/assets/images/icons/flags/sm.png new file mode 100644 index 00000000..d8d3416d Binary files /dev/null and b/public/assets/images/icons/flags/sm.png differ diff --git a/public/assets/images/icons/flags/sn.png b/public/assets/images/icons/flags/sn.png new file mode 100644 index 00000000..0632187b Binary files /dev/null and b/public/assets/images/icons/flags/sn.png differ diff --git a/public/assets/images/icons/flags/so.png b/public/assets/images/icons/flags/so.png new file mode 100644 index 00000000..93748b7b Binary files /dev/null and b/public/assets/images/icons/flags/so.png differ diff --git a/public/assets/images/icons/flags/sr.png b/public/assets/images/icons/flags/sr.png new file mode 100644 index 00000000..b77f9341 Binary files /dev/null and b/public/assets/images/icons/flags/sr.png differ diff --git a/public/assets/images/icons/flags/st.png b/public/assets/images/icons/flags/st.png new file mode 100644 index 00000000..cbdcf1bf Binary files /dev/null and b/public/assets/images/icons/flags/st.png differ diff --git a/public/assets/images/icons/flags/sv.png b/public/assets/images/icons/flags/sv.png new file mode 100644 index 00000000..545add45 Binary files /dev/null and b/public/assets/images/icons/flags/sv.png differ diff --git a/public/assets/images/icons/flags/sy.png b/public/assets/images/icons/flags/sy.png new file mode 100644 index 00000000..e48cb674 Binary files /dev/null and b/public/assets/images/icons/flags/sy.png differ diff --git a/public/assets/images/icons/flags/sz.png b/public/assets/images/icons/flags/sz.png new file mode 100644 index 00000000..fb4c316c Binary files /dev/null and b/public/assets/images/icons/flags/sz.png differ diff --git a/public/assets/images/icons/flags/tc.png b/public/assets/images/icons/flags/tc.png new file mode 100644 index 00000000..394c8342 Binary files /dev/null and b/public/assets/images/icons/flags/tc.png differ diff --git a/public/assets/images/icons/flags/td.png b/public/assets/images/icons/flags/td.png new file mode 100644 index 00000000..57b2572c Binary files /dev/null and b/public/assets/images/icons/flags/td.png differ diff --git a/public/assets/images/icons/flags/tf.png b/public/assets/images/icons/flags/tf.png new file mode 100644 index 00000000..9a846ae8 Binary files /dev/null and b/public/assets/images/icons/flags/tf.png differ diff --git a/public/assets/images/icons/flags/tg.png b/public/assets/images/icons/flags/tg.png new file mode 100644 index 00000000..f0282c8d Binary files /dev/null and b/public/assets/images/icons/flags/tg.png differ diff --git a/public/assets/images/icons/flags/th.png b/public/assets/images/icons/flags/th.png new file mode 100644 index 00000000..3c101c3f Binary files /dev/null and b/public/assets/images/icons/flags/th.png differ diff --git a/public/assets/images/icons/flags/tj.png b/public/assets/images/icons/flags/tj.png new file mode 100644 index 00000000..1d2b14a4 Binary files /dev/null and b/public/assets/images/icons/flags/tj.png differ diff --git a/public/assets/images/icons/flags/tk.png b/public/assets/images/icons/flags/tk.png new file mode 100644 index 00000000..06a758cd Binary files /dev/null and b/public/assets/images/icons/flags/tk.png differ diff --git a/public/assets/images/icons/flags/tl.png b/public/assets/images/icons/flags/tl.png new file mode 100644 index 00000000..e9c38425 Binary files /dev/null and b/public/assets/images/icons/flags/tl.png differ diff --git a/public/assets/images/icons/flags/tm.png b/public/assets/images/icons/flags/tm.png new file mode 100644 index 00000000..17dd17aa Binary files /dev/null and b/public/assets/images/icons/flags/tm.png differ diff --git a/public/assets/images/icons/flags/tn.png b/public/assets/images/icons/flags/tn.png new file mode 100644 index 00000000..dac5ec76 Binary files /dev/null and b/public/assets/images/icons/flags/tn.png differ diff --git a/public/assets/images/icons/flags/to.png b/public/assets/images/icons/flags/to.png new file mode 100644 index 00000000..f08c6231 Binary files /dev/null and b/public/assets/images/icons/flags/to.png differ diff --git a/public/assets/images/icons/flags/tr.png b/public/assets/images/icons/flags/tr.png new file mode 100644 index 00000000..84fe3f46 Binary files /dev/null and b/public/assets/images/icons/flags/tr.png differ diff --git a/public/assets/images/icons/flags/tt.png b/public/assets/images/icons/flags/tt.png new file mode 100644 index 00000000..00e9d34c Binary files /dev/null and b/public/assets/images/icons/flags/tt.png differ diff --git a/public/assets/images/icons/flags/tv.png b/public/assets/images/icons/flags/tv.png new file mode 100644 index 00000000..a383b584 Binary files /dev/null and b/public/assets/images/icons/flags/tv.png differ diff --git a/public/assets/images/icons/flags/tw.png b/public/assets/images/icons/flags/tw.png new file mode 100644 index 00000000..23486fe4 Binary files /dev/null and b/public/assets/images/icons/flags/tw.png differ diff --git a/public/assets/images/icons/flags/tz.png b/public/assets/images/icons/flags/tz.png new file mode 100644 index 00000000..91bd6569 Binary files /dev/null and b/public/assets/images/icons/flags/tz.png differ diff --git a/public/assets/images/icons/flags/ua.png b/public/assets/images/icons/flags/ua.png new file mode 100644 index 00000000..585ad13f Binary files /dev/null and b/public/assets/images/icons/flags/ua.png differ diff --git a/public/assets/images/icons/flags/ug.png b/public/assets/images/icons/flags/ug.png new file mode 100644 index 00000000..b5e6a93b Binary files /dev/null and b/public/assets/images/icons/flags/ug.png differ diff --git a/public/assets/images/icons/flags/um.png b/public/assets/images/icons/flags/um.png new file mode 100644 index 00000000..55badfda Binary files /dev/null and b/public/assets/images/icons/flags/um.png differ diff --git a/public/assets/images/icons/flags/uy.png b/public/assets/images/icons/flags/uy.png new file mode 100644 index 00000000..49a8eb03 Binary files /dev/null and b/public/assets/images/icons/flags/uy.png differ diff --git a/public/assets/images/icons/flags/uz.png b/public/assets/images/icons/flags/uz.png new file mode 100644 index 00000000..269fc0ad Binary files /dev/null and b/public/assets/images/icons/flags/uz.png differ diff --git a/public/assets/images/icons/flags/va.png b/public/assets/images/icons/flags/va.png new file mode 100644 index 00000000..9ab3aeff Binary files /dev/null and b/public/assets/images/icons/flags/va.png differ diff --git a/public/assets/images/icons/flags/vc.png b/public/assets/images/icons/flags/vc.png new file mode 100644 index 00000000..f5a15389 Binary files /dev/null and b/public/assets/images/icons/flags/vc.png differ diff --git a/public/assets/images/icons/flags/ve.png b/public/assets/images/icons/flags/ve.png new file mode 100644 index 00000000..b13f96cb Binary files /dev/null and b/public/assets/images/icons/flags/ve.png differ diff --git a/public/assets/images/icons/flags/vg.png b/public/assets/images/icons/flags/vg.png new file mode 100644 index 00000000..612253fa Binary files /dev/null and b/public/assets/images/icons/flags/vg.png differ diff --git a/public/assets/images/icons/flags/vi.png b/public/assets/images/icons/flags/vi.png new file mode 100644 index 00000000..a9f3b5cf Binary files /dev/null and b/public/assets/images/icons/flags/vi.png differ diff --git a/public/assets/images/icons/flags/vn.png b/public/assets/images/icons/flags/vn.png new file mode 100644 index 00000000..10f03143 Binary files /dev/null and b/public/assets/images/icons/flags/vn.png differ diff --git a/public/assets/images/icons/flags/vu.png b/public/assets/images/icons/flags/vu.png new file mode 100644 index 00000000..53658133 Binary files /dev/null and b/public/assets/images/icons/flags/vu.png differ diff --git a/public/assets/images/icons/flags/wales.png b/public/assets/images/icons/flags/wales.png new file mode 100644 index 00000000..83bb3bd4 Binary files /dev/null and b/public/assets/images/icons/flags/wales.png differ diff --git a/public/assets/images/icons/flags/wf.png b/public/assets/images/icons/flags/wf.png new file mode 100644 index 00000000..d68082cc Binary files /dev/null and b/public/assets/images/icons/flags/wf.png differ diff --git a/public/assets/images/icons/flags/ws.png b/public/assets/images/icons/flags/ws.png new file mode 100644 index 00000000..5301e4cd Binary files /dev/null and b/public/assets/images/icons/flags/ws.png differ diff --git a/public/assets/images/icons/flags/ye.png b/public/assets/images/icons/flags/ye.png new file mode 100644 index 00000000..599eebf8 Binary files /dev/null and b/public/assets/images/icons/flags/ye.png differ diff --git a/public/assets/images/icons/flags/yt.png b/public/assets/images/icons/flags/yt.png new file mode 100644 index 00000000..d43430cf Binary files /dev/null and b/public/assets/images/icons/flags/yt.png differ diff --git a/public/assets/images/icons/flags/za.png b/public/assets/images/icons/flags/za.png new file mode 100644 index 00000000..06eaf2e0 Binary files /dev/null and b/public/assets/images/icons/flags/za.png differ diff --git a/public/assets/images/icons/flags/zm.png b/public/assets/images/icons/flags/zm.png new file mode 100644 index 00000000..17cb73fa Binary files /dev/null and b/public/assets/images/icons/flags/zm.png differ diff --git a/public/assets/images/icons/flags/zw.png b/public/assets/images/icons/flags/zw.png new file mode 100644 index 00000000..b9cb4b04 Binary files /dev/null and b/public/assets/images/icons/flags/zw.png differ diff --git a/public/assets/images/icons/friends.png b/public/assets/images/icons/friends.png new file mode 100644 index 00000000..4560eaa9 Binary files /dev/null and b/public/assets/images/icons/friends.png differ diff --git a/public/assets/images/icons/heart.gif b/public/assets/images/icons/heart.gif new file mode 100644 index 00000000..fdbcdd1b Binary files /dev/null and b/public/assets/images/icons/heart.gif differ diff --git a/public/assets/images/icons/inventory.png b/public/assets/images/icons/inventory.png new file mode 100644 index 00000000..d848586a Binary files /dev/null and b/public/assets/images/icons/inventory.png differ diff --git a/public/assets/images/icons/lighthouse.png b/public/assets/images/icons/lighthouse.png new file mode 100644 index 00000000..6cd2d65f Binary files /dev/null and b/public/assets/images/icons/lighthouse.png differ diff --git a/public/assets/images/icons/ltd.png b/public/assets/images/icons/ltd.png new file mode 100644 index 00000000..4df36111 Binary files /dev/null and b/public/assets/images/icons/ltd.png differ diff --git a/public/assets/images/icons/navigation/community.png b/public/assets/images/icons/navigation/community.png new file mode 100644 index 00000000..8483fa04 Binary files /dev/null and b/public/assets/images/icons/navigation/community.png differ diff --git a/public/assets/images/icons/navigation/home.png b/public/assets/images/icons/navigation/home.png new file mode 100644 index 00000000..ca42556b Binary files /dev/null and b/public/assets/images/icons/navigation/home.png differ diff --git a/public/assets/images/icons/navigation/leaderboards.png b/public/assets/images/icons/navigation/leaderboards.png new file mode 100644 index 00000000..d1ed5165 Binary files /dev/null and b/public/assets/images/icons/navigation/leaderboards.png differ diff --git a/public/assets/images/icons/navigation/rules.gif b/public/assets/images/icons/navigation/rules.gif new file mode 100644 index 00000000..edd01cb5 Binary files /dev/null and b/public/assets/images/icons/navigation/rules.gif differ diff --git a/public/assets/images/icons/navigation/shop.png b/public/assets/images/icons/navigation/shop.png new file mode 100644 index 00000000..65f3abd6 Binary files /dev/null and b/public/assets/images/icons/navigation/shop.png differ diff --git a/public/assets/images/icons/online-friends.png b/public/assets/images/icons/online-friends.png new file mode 100644 index 00000000..92df3a95 Binary files /dev/null and b/public/assets/images/icons/online-friends.png differ diff --git a/public/assets/images/icons/rank.png b/public/assets/images/icons/rank.png new file mode 100644 index 00000000..12fd5870 Binary files /dev/null and b/public/assets/images/icons/rank.png differ diff --git a/public/assets/images/icons/reactions/angry.png b/public/assets/images/icons/reactions/angry.png new file mode 100644 index 00000000..07b0a803 Binary files /dev/null and b/public/assets/images/icons/reactions/angry.png differ diff --git a/public/assets/images/icons/reactions/bad.png b/public/assets/images/icons/reactions/bad.png new file mode 100644 index 00000000..058e9541 Binary files /dev/null and b/public/assets/images/icons/reactions/bad.png differ diff --git a/public/assets/images/icons/reactions/bobba.png b/public/assets/images/icons/reactions/bobba.png new file mode 100644 index 00000000..0c8f4001 Binary files /dev/null and b/public/assets/images/icons/reactions/bobba.png differ diff --git a/public/assets/images/icons/reactions/crown.png b/public/assets/images/icons/reactions/crown.png new file mode 100644 index 00000000..ece5836a Binary files /dev/null and b/public/assets/images/icons/reactions/crown.png differ diff --git a/public/assets/images/icons/reactions/crying.png b/public/assets/images/icons/reactions/crying.png new file mode 100644 index 00000000..8f4a7f45 Binary files /dev/null and b/public/assets/images/icons/reactions/crying.png differ diff --git a/public/assets/images/icons/reactions/disgusted.png b/public/assets/images/icons/reactions/disgusted.png new file mode 100644 index 00000000..71d917dd Binary files /dev/null and b/public/assets/images/icons/reactions/disgusted.png differ diff --git a/public/assets/images/icons/reactions/eyes.png b/public/assets/images/icons/reactions/eyes.png new file mode 100644 index 00000000..8a75c7df Binary files /dev/null and b/public/assets/images/icons/reactions/eyes.png differ diff --git a/public/assets/images/icons/reactions/fire.png b/public/assets/images/icons/reactions/fire.png new file mode 100644 index 00000000..eb6d5ba5 Binary files /dev/null and b/public/assets/images/icons/reactions/fire.png differ diff --git a/public/assets/images/icons/reactions/good.png b/public/assets/images/icons/reactions/good.png new file mode 100644 index 00000000..472985e9 Binary files /dev/null and b/public/assets/images/icons/reactions/good.png differ diff --git a/public/assets/images/icons/reactions/happy.png b/public/assets/images/icons/reactions/happy.png new file mode 100644 index 00000000..60bdd353 Binary files /dev/null and b/public/assets/images/icons/reactions/happy.png differ diff --git a/public/assets/images/icons/reactions/heart.png b/public/assets/images/icons/reactions/heart.png new file mode 100644 index 00000000..28cec38d Binary files /dev/null and b/public/assets/images/icons/reactions/heart.png differ diff --git a/public/assets/images/icons/reactions/heart2.png b/public/assets/images/icons/reactions/heart2.png new file mode 100644 index 00000000..5a0b27fc Binary files /dev/null and b/public/assets/images/icons/reactions/heart2.png differ diff --git a/public/assets/images/icons/reactions/impatient.png b/public/assets/images/icons/reactions/impatient.png new file mode 100644 index 00000000..5fc34b60 Binary files /dev/null and b/public/assets/images/icons/reactions/impatient.png differ diff --git a/public/assets/images/icons/reactions/inlove.png b/public/assets/images/icons/reactions/inlove.png new file mode 100644 index 00000000..4f1e1a04 Binary files /dev/null and b/public/assets/images/icons/reactions/inlove.png differ diff --git a/public/assets/images/icons/reactions/laugh.png b/public/assets/images/icons/reactions/laugh.png new file mode 100644 index 00000000..e77ab8f5 Binary files /dev/null and b/public/assets/images/icons/reactions/laugh.png differ diff --git a/public/assets/images/icons/reactions/lgbt.png b/public/assets/images/icons/reactions/lgbt.png new file mode 100644 index 00000000..4fa06a93 Binary files /dev/null and b/public/assets/images/icons/reactions/lgbt.png differ diff --git a/public/assets/images/icons/reactions/like.png b/public/assets/images/icons/reactions/like.png new file mode 100644 index 00000000..d7823e84 Binary files /dev/null and b/public/assets/images/icons/reactions/like.png differ diff --git a/public/assets/images/icons/reactions/poop.png b/public/assets/images/icons/reactions/poop.png new file mode 100644 index 00000000..0de96579 Binary files /dev/null and b/public/assets/images/icons/reactions/poop.png differ diff --git a/public/assets/images/icons/reactions/proud.png b/public/assets/images/icons/reactions/proud.png new file mode 100644 index 00000000..3ff3f9b6 Binary files /dev/null and b/public/assets/images/icons/reactions/proud.png differ diff --git a/public/assets/images/icons/reactions/shameful.png b/public/assets/images/icons/reactions/shameful.png new file mode 100644 index 00000000..42f2c61b Binary files /dev/null and b/public/assets/images/icons/reactions/shameful.png differ diff --git a/public/assets/images/icons/reactions/shameless.png b/public/assets/images/icons/reactions/shameless.png new file mode 100644 index 00000000..610dded0 Binary files /dev/null and b/public/assets/images/icons/reactions/shameless.png differ diff --git a/public/assets/images/icons/reactions/sleeping.png b/public/assets/images/icons/reactions/sleeping.png new file mode 100644 index 00000000..3b7ad204 Binary files /dev/null and b/public/assets/images/icons/reactions/sleeping.png differ diff --git a/public/assets/images/icons/reactions/smile.png b/public/assets/images/icons/reactions/smile.png new file mode 100644 index 00000000..0f428ed2 Binary files /dev/null and b/public/assets/images/icons/reactions/smile.png differ diff --git a/public/assets/images/icons/reactions/star.png b/public/assets/images/icons/reactions/star.png new file mode 100644 index 00000000..c9c71580 Binary files /dev/null and b/public/assets/images/icons/reactions/star.png differ diff --git a/public/assets/images/icons/reactions/taut.png b/public/assets/images/icons/reactions/taut.png new file mode 100644 index 00000000..7d3b4c1f Binary files /dev/null and b/public/assets/images/icons/reactions/taut.png differ diff --git a/public/assets/images/icons/reactions/tongue.png b/public/assets/images/icons/reactions/tongue.png new file mode 100644 index 00000000..9fa30685 Binary files /dev/null and b/public/assets/images/icons/reactions/tongue.png differ diff --git a/public/assets/images/icons/reactions/unlike.png b/public/assets/images/icons/reactions/unlike.png new file mode 100644 index 00000000..9578c1ca Binary files /dev/null and b/public/assets/images/icons/reactions/unlike.png differ diff --git a/public/assets/images/icons/reactions/wink.png b/public/assets/images/icons/reactions/wink.png new file mode 100644 index 00000000..6a561d1f Binary files /dev/null and b/public/assets/images/icons/reactions/wink.png differ diff --git a/public/assets/images/icons/reactions/wow.png b/public/assets/images/icons/reactions/wow.png new file mode 100644 index 00000000..5fd8f28c Binary files /dev/null and b/public/assets/images/icons/reactions/wow.png differ diff --git a/public/assets/images/icons/star.gif b/public/assets/images/icons/star.gif new file mode 100644 index 00000000..dffcabd0 Binary files /dev/null and b/public/assets/images/icons/star.gif differ diff --git a/public/assets/images/leaderboards/trophy-bronze.png b/public/assets/images/leaderboards/trophy-bronze.png new file mode 100644 index 00000000..63970312 Binary files /dev/null and b/public/assets/images/leaderboards/trophy-bronze.png differ diff --git a/public/assets/images/leaderboards/trophy-gold.png b/public/assets/images/leaderboards/trophy-gold.png new file mode 100644 index 00000000..f13ec3f5 Binary files /dev/null and b/public/assets/images/leaderboards/trophy-gold.png differ diff --git a/public/assets/images/leaderboards/trophy-silver.png b/public/assets/images/leaderboards/trophy-silver.png new file mode 100644 index 00000000..50c432c6 Binary files /dev/null and b/public/assets/images/leaderboards/trophy-silver.png differ diff --git a/public/assets/images/profile/badges.png b/public/assets/images/profile/badges.png new file mode 100644 index 00000000..faffd166 Binary files /dev/null and b/public/assets/images/profile/badges.png differ diff --git a/public/assets/images/profile/credits.png b/public/assets/images/profile/credits.png new file mode 100644 index 00000000..6ace4c20 Binary files /dev/null and b/public/assets/images/profile/credits.png differ diff --git a/public/assets/images/profile/diamonds.png b/public/assets/images/profile/diamonds.png new file mode 100644 index 00000000..d051d819 Binary files /dev/null and b/public/assets/images/profile/diamonds.png differ diff --git a/public/assets/images/profile/duckets.png b/public/assets/images/profile/duckets.png new file mode 100644 index 00000000..44169eb3 Binary files /dev/null and b/public/assets/images/profile/duckets.png differ diff --git a/public/assets/images/profile/friends.png b/public/assets/images/profile/friends.png new file mode 100644 index 00000000..216f8dd9 Binary files /dev/null and b/public/assets/images/profile/friends.png differ diff --git a/public/assets/images/profile/groups.png b/public/assets/images/profile/groups.png new file mode 100644 index 00000000..f91ccca2 Binary files /dev/null and b/public/assets/images/profile/groups.png differ diff --git a/public/assets/images/profile/profile-bg.png b/public/assets/images/profile/profile-bg.png new file mode 100644 index 00000000..90a6d941 Binary files /dev/null and b/public/assets/images/profile/profile-bg.png differ diff --git a/public/assets/images/profile/room_placeholder.png b/public/assets/images/profile/room_placeholder.png new file mode 100644 index 00000000..be26f847 Binary files /dev/null and b/public/assets/images/profile/room_placeholder.png differ diff --git a/public/assets/images/profile/rooms.png b/public/assets/images/profile/rooms.png new file mode 100644 index 00000000..83ee269c Binary files /dev/null and b/public/assets/images/profile/rooms.png differ diff --git a/public/assets/images/staff-bg.png b/public/assets/images/staff-bg.png new file mode 100644 index 00000000..447115ca Binary files /dev/null and b/public/assets/images/staff-bg.png differ diff --git a/src/app/globals.css b/src/app/globals.css index 2774ca31..6439827a 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,56 +1,185 @@ +@import "tailwindcss"; +@plugin "@tailwindcss/forms"; +@plugin "@tailwindcss/typography"; +@custom-variant dark (&:where(.dark, .dark *)); + +@theme { + --font-sans: var(--font-nunito), "Nunito", ui-sans-serif, system-ui, -apple-system, + "Segoe UI", sans-serif; + --breakpoint-sm: 40rem; + --breakpoint-md: 48rem; + --breakpoint-lg: 64rem; + --breakpoint-xl: 80rem; + --breakpoint-2xl: 96rem; + --radius-sm: 6px; + --radius-md: 10px; + --radius-lg: 14px; + --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04); + --shadow-card-hover: 0 4px 12px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06); +} + +/* Default theme variables (faithful to AtomCMS app.blade.php). ThemeVars may + override these at runtime from website_settings. */ :root { - /* Atom theme tokens (faithful to AtomCMS app.blade.php defaults) */ --color-primary: #f59e0b; --color-primary-hover: #cf9d15; - --color-golden: #eeb425; - --color-background: #f1f5f9; + --color-background: #f8fafc; --color-surface: #ffffff; + --color-dropdown: #ffffff; --color-navbar: #ffffff; + --color-navbar-text: #1e293b; --color-text: #0f172a; --color-text-muted: #64748b; --color-accent: #10b981; --color-danger: #ef4444; - --color-danger-hover: #dc2626; - --color-secondary: #22c55e; - --color-secondary-hover: #16a34a; - --border-color: #e7ebf0; + --button-color: #f59e0b; + --button-text-color: #1e293b; + --button-secondary-color: #22c55e; + --button-secondary-text-color: #ffffff; + --button-secondary-hover-color: #16a34a; + --button-danger-color: #ef4444; + --button-danger-text-color: #ffffff; + --button-danger-hover-color: #dc2626; + --button-outline-color: #eeb425; + --button-outline-text-color: #1a1a2e; + --button-outline-hover-color: #cf9d15; --border-radius: 12px; - --radius-sm: 8px; + --border-color: #eeb425; + --font-family: var(--font-nunito), "Nunito", sans-serif; + --size-heading-h1: 32px; + --size-heading-h2: 24px; + --size-heading-h3: 20px; + --avatar-border-radius: 8px; + --avatar-border-color: #eeb425; + --badge-background: #eeb425; + --badge-text-color: #000000; + --badge-border-radius: 4px; + --card-border-radius: 12px; + --link-color: #eeb425; + --link-hover-color: #cf9d15; + --input-border-color: #4b5563; + --input-focus-color: #eeb425; --navbar-height: 64px; - --shadow-card: 0 1px 2px rgba(15, 23, 42, 0.06), 0 4px 14px rgba(15, 23, 42, 0.05); - --shadow-card-hover: 0 6px 22px rgba(15, 23, 42, 0.12); - --font-family: var(--font-nunito), ui-rounded, "Segoe UI", system-ui, -apple-system, Roboto, sans-serif; } -* { - box-sizing: border-box; +html { + scroll-behavior: smooth; } - -html, body { - margin: 0; - padding: 0; -} - -body { - background: - radial-gradient(1200px 500px at 50% -200px, #fff7e6 0%, transparent 60%), - var(--color-background); - color: var(--color-text); font-family: var(--font-family); - font-size: 16px; - line-height: 1.55; - min-height: 100vh; + color: var(--color-text, #0f172a); } -a { - color: var(--color-primary-hover); - text-decoration: none; +::-webkit-scrollbar-thumb { + border-radius: 100px; + border: 4px solid transparent; + background-clip: content-box; + background-color: #2c3039; } -a:hover { - text-decoration: underline; +::-webkit-scrollbar { + width: 12px; +} +::-webkit-scrollbar-track { + background: transparent; } +/* ── Atom theme components ────────────────────────────────── */ +@layer components { + .nav-item { + @apply flex h-auto md:h-[60px] items-center text-[14px] font-semibold uppercase transition duration-200 ease-in-out md:border-b-4! md:border-transparent! md:hover:border-b-[#eeb425]!; + color: var(--color-navbar-text, #1e293b); + } + .dropdown-item { + @apply block py-2 px-4 font-semibold transition duration-200; + color: var(--color-text); + } + .dropdown-item:hover { + background-color: var(--color-primary, #eeb425); + color: var(--button-text-color, #1a1a2e); + } +} + +/* ── Atom icons / backgrounds (asset paths adapted to /assets) ── */ +.icon-base { + background-repeat: no-repeat; + background-position: center; + background-size: contain; +} +.nav-credit-icon { + background: #e9b124 url("/assets/images/icons/currency/credits.png") no-repeat center; + outline: 1px solid #b26d18; +} +.nav-ducket-icon { + background: #c44aac url("/assets/images/icons/currency/duckets.png") no-repeat center; + outline: 1px solid #812378; +} +.nav-diamond-icon { + background: #caf1f3 url("/assets/images/icons/currency/diamonds.png") no-repeat center; + outline: 1px solid #6caff4; +} +.navigation-icon { + width: 20px; + height: 25px; + background-repeat: no-repeat; + background-position: center; +} +.navigation-icon.shop { + background-image: url("/assets/images/icons/navigation/shop.png"); +} +.navigation-icon.leaderboards { + background-image: url("/assets/images/icons/navigation/leaderboards.png"); +} +.navigation-icon.rules { + background-image: url("/assets/images/icons/navigation/rules.gif"); +} +.navigation-icon.home { + background-image: url("/assets/images/icons/navigation/home.png"); +} +.navigation-icon.community { + background-image: url("/assets/images/icons/navigation/community.png"); +} + +.site-bg { + background: url("/assets/images/background-light.jpg") no-repeat fixed right bottom; +} +.app.dark .site-bg { + background: url("/assets/images/background-dark.jpg") no-repeat fixed right bottom; +} + +.text-body { + color: var(--color-text); +} +.text-muted { + color: var(--color-text-muted); +} +.text-nav { + color: var(--color-navbar-text); +} +.text-shadow { + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8); +} +.transition-base { + transition: all 0.2s ease-in-out; +} +.hover-lift { + transition: transform 0.2s ease, box-shadow 0.2s ease; +} +.hover-lift:hover { + transform: translateY(-2px); + box-shadow: var(--shadow-card-hover); +} +.card-base { + background-color: var(--color-surface); + border-radius: var(--radius-md); + box-shadow: var(--shadow-card); + border: 1px solid color-mix(in srgb, var(--color-text-muted) 15%, transparent); +} +.card-base:hover { + box-shadow: var(--shadow-card-hover); + border-color: color-mix(in srgb, var(--color-text-muted) 25%, transparent); +} + +/* ── App component classes (used across the converted pages) ── */ h1 { font-size: 30px; font-weight: 800; @@ -64,86 +193,141 @@ h3 { font-size: 18px; font-weight: 700; } - -.container { - max-width: 1180px; - margin: 0 auto; - padding: 1.75rem 1.25rem 3rem; +a { + color: var(--link-color); + text-decoration: none; +} +a:hover { + text-decoration: underline; } - .muted { color: var(--color-text-muted); font-size: 0.875rem; } - -/* ── Header / nav ─────────────────────────────────────────── */ -.site-header { - background: var(--color-navbar); - border-bottom: 1px solid var(--border-color); - box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03); - position: sticky; - top: 0; - z-index: 50; +.hero { + background: linear-gradient(120deg, rgba(245, 158, 11, 0.16), rgba(16, 185, 129, 0.12)), + var(--color-surface); + border: 1px solid color-mix(in srgb, var(--color-text-muted) 15%, transparent); + border-radius: 18px; + padding: 2rem 2.25rem; + box-shadow: var(--shadow-card); + margin-bottom: 1.5rem; } -.site-header .bar { - max-width: 1180px; - margin: 0 auto; - height: var(--navbar-height); - display: flex; - align-items: center; - gap: 1.5rem; - padding: 0 1.25rem; +.card { + background: var(--color-surface); + border: 1px solid color-mix(in srgb, var(--color-text-muted) 15%, transparent); + border-radius: var(--card-border-radius); + box-shadow: var(--shadow-card); + padding: 1.1rem 1.25rem; } -.brand { - display: flex; - align-items: center; - gap: 0.55rem; - font-weight: 800; - font-size: 1.25rem; - color: var(--color-text); +.card.hover:hover { + transform: translateY(-2px); + box-shadow: var(--shadow-card-hover); + transition: all 0.2s ease-in-out; } -.brand .dot { - width: 26px; - height: 26px; - border-radius: 8px; - background: linear-gradient(135deg, var(--color-primary), var(--color-golden)); - box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.4); +.grid { + display: grid; + gap: 1rem; } -.nav { - display: flex; - align-items: center; - gap: 0.35rem; - height: 100%; +.grid.cols-2 { + grid-template-columns: repeat(2, 1fr); } -.nav-item { +.grid.cols-3 { + grid-template-columns: repeat(3, 1fr); +} +@media (max-width: 720px) { + .grid.cols-2, + .grid.cols-3 { + grid-template-columns: 1fr; + } +} +.article-img { + width: 100%; + height: 140px; + object-fit: cover; + display: block; + background: linear-gradient(135deg, #fde68a, #fbbf24); +} +.btn { display: inline-flex; align-items: center; - height: 100%; - padding: 0 0.85rem; - font-size: 13px; + justify-content: center; + gap: 0.4rem; + padding: 0.5rem 1.1rem; + border-radius: var(--border-radius); + border: 2px solid transparent; + font-family: inherit; font-weight: 700; - letter-spacing: 0.03em; - text-transform: uppercase; - color: var(--color-text); - border-bottom: 3px solid transparent; + font-size: 14px; + cursor: pointer; transition: all 0.18s ease-in-out; -} -.nav-item:hover { - color: var(--color-primary-hover); - border-bottom-color: var(--color-primary); + background: #eef2f7; + color: var(--color-text); text-decoration: none; } -.spacer { - flex: 1; +.btn:hover { + transform: translateY(-1px); + box-shadow: var(--shadow-card); + text-decoration: none; } - -/* ── Currency pills ───────────────────────────────────────── */ -.currencies { - display: flex; - gap: 0.5rem; +.btn-primary { + background: var(--button-color); + color: var(--button-text-color); +} +.btn-secondary { + background: var(--button-secondary-color); + color: var(--button-secondary-text-color); +} +.btn-danger { + background: var(--button-danger-color); + color: var(--button-danger-text-color); +} +.btn-outline { + background: transparent; + border-color: var(--button-outline-color); + color: #8a6a05; +} +input, +select, +textarea { + font-family: inherit; + font-size: 14px; + padding: 0.5rem 0.7rem; + border: 2px solid color-mix(in srgb, var(--color-text-muted) 22%, transparent); + border-radius: var(--radius-sm); + background: #fbfcfe; + color: var(--color-text); + outline: none; + transition: border-color 0.15s ease; +} +input:focus, +select:focus, +textarea:focus { + border-color: var(--color-primary); +} +table { + width: 100%; + border-collapse: collapse; +} +th { + text-align: left; + color: var(--color-text-muted); + font-size: 0.8rem; + text-transform: uppercase; + letter-spacing: 0.03em; + padding: 0.4rem 0.5rem; +} +td { + padding: 0.55rem 0.5rem; + border-top: 1px solid color-mix(in srgb, var(--color-text-muted) 15%, transparent); +} +.avatar { + border-radius: var(--avatar-border-radius); + background: #f1f5f9; + border: 2px solid var(--avatar-border-color); } .currency { - display: flex; + display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 800; @@ -151,7 +335,7 @@ h3 { padding: 0.2rem 0.6rem 0.2rem 0.2rem; border-radius: 999px; background: #f8fafc; - border: 1px solid var(--border-color); + border: 1px solid color-mix(in srgb, var(--color-text-muted) 15%, transparent); } .currency .coin { width: 22px; @@ -171,167 +355,3 @@ h3 { .coin.diamonds { background: #4bc0d9; } - -/* ── Buttons ──────────────────────────────────────────────── */ -.btn { - display: inline-flex; - align-items: center; - justify-content: center; - gap: 0.4rem; - padding: 0.5rem 1.1rem; - border-radius: var(--border-radius); - border: 2px solid transparent; - font-family: inherit; - font-weight: 700; - font-size: 14px; - cursor: pointer; - transition: all 0.18s ease-in-out; - background: #eef2f7; - color: var(--color-text); -} -.btn:hover { - transform: translateY(-1px); - box-shadow: var(--shadow-card); - text-decoration: none; -} -.btn-primary { - background: var(--color-primary); - color: #3a2c05; -} -.btn-secondary { - background: var(--color-secondary); - color: #fff; -} -.btn-danger { - background: var(--color-danger); - color: #fff; -} -.btn-outline { - background: transparent; - border-color: var(--color-golden); - color: #8a6a05; -} - -/* ── Cards ────────────────────────────────────────────────── */ -.card { - background: var(--color-surface); - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - box-shadow: var(--shadow-card); - padding: 1.1rem 1.25rem; -} -.card.hover:hover { - transform: translateY(-2px); - box-shadow: var(--shadow-card-hover); - transition: all 0.2s ease-in-out; -} - -.grid { - display: grid; - gap: 1rem; -} -.grid.cols-2 { - grid-template-columns: repeat(2, 1fr); -} -.grid.cols-3 { - grid-template-columns: repeat(3, 1fr); -} -@media (max-width: 720px) { - .grid.cols-2, - .grid.cols-3 { - grid-template-columns: 1fr; - } -} - -/* ── Article cards ────────────────────────────────────────── */ -.article { - overflow: hidden; - padding: 0; -} -.article .article-img { - width: 100%; - height: 140px; - object-fit: cover; - display: block; - background: linear-gradient(135deg, #fde68a, #fbbf24); -} -.article .body { - padding: 0.85rem 1.05rem 1.05rem; -} - -/* ── Forms ────────────────────────────────────────────────── */ -input, -select, -textarea { - font-family: inherit; - font-size: 14px; - padding: 0.5rem 0.7rem; - border: 2px solid var(--border-color); - border-radius: var(--radius-sm); - background: #fbfcfe; - color: var(--color-text); - outline: none; - transition: border-color 0.15s ease; -} -input:focus, -select:focus, -textarea:focus { - border-color: var(--color-primary); -} -button { - font-family: inherit; -} - -/* ── Hero ─────────────────────────────────────────────────── */ -.hero { - background: - linear-gradient(120deg, rgba(245, 158, 11, 0.16), rgba(16, 185, 129, 0.12)), - var(--color-surface); - border: 1px solid var(--border-color); - border-radius: 18px; - padding: 2rem 2.25rem; - box-shadow: var(--shadow-card); - margin-bottom: 1.5rem; -} - -/* ── Tables (admin) ───────────────────────────────────────── */ -table { - width: 100%; - border-collapse: collapse; -} -th { - text-align: left; - color: var(--color-text-muted); - font-size: 0.8rem; - text-transform: uppercase; - letter-spacing: 0.03em; - padding: 0.4rem 0.5rem; -} -td { - padding: 0.55rem 0.5rem; - border-top: 1px solid var(--border-color); -} - -/* ── Avatar ───────────────────────────────────────────────── */ -.avatar { - border-radius: 8px; - background: #f1f5f9; - border: 2px solid var(--color-golden); -} - -/* ── Footer ───────────────────────────────────────────────── */ -.site-footer { - border-top: 1px solid var(--border-color); - background: var(--color-surface); - color: var(--color-text-muted); - font-size: 0.85rem; -} -.site-footer .inner { - max-width: 1180px; - margin: 0 auto; - padding: 1.1rem 1.25rem; - display: flex; - gap: 1rem; - flex-wrap: wrap; - align-items: center; -} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 1e72ff45..afe16f58 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,11 +1,13 @@ import type { Metadata } from "next"; import { Nunito } from "next/font/google"; import type { ReactNode } from "react"; +import { Navigation } from "@/components/navigation"; import { SiteFooter } from "@/components/site-footer"; import { SiteHeader } from "@/components/site-header"; +import { ThemeVars } from "@/components/theme-vars"; +import { TopHeader } from "@/components/top-header"; import "./globals.css"; -// Self-hosted (no runtime external fetch) — the atom theme's font. const nunito = Nunito({ subsets: ["latin"], weight: ["400", "600", "700", "800"], @@ -20,15 +22,21 @@ export const metadata: Metadata = { export default function RootLayout({ children }: { children: ReactNode }) { return ( - - -
- -
- {children} + + + + + + +
+
+
{children}
- -
+ + ); diff --git a/src/components/navigation.tsx b/src/components/navigation.tsx new file mode 100644 index 00000000..dcefd2cb --- /dev/null +++ b/src/components/navigation.tsx @@ -0,0 +1,94 @@ +import Link from "next/link"; +import { auth } from "@/lib/auth"; + +export async function Navigation() { + const session = await auth(); + const isStaff = (session?.user?.rank ?? 0) >= 7; + + return ( + + ); +} diff --git a/src/components/site-footer.tsx b/src/components/site-footer.tsx index 3fb77a6f..ba961c28 100644 --- a/src/components/site-footer.tsx +++ b/src/components/site-footer.tsx @@ -5,13 +5,12 @@ export async function SiteFooter() { const year = new Date().getFullYear(); return ( -
+ ) : ( +
+
+

+ An online virtual world where you can create your own avatar, make friends, chat, + create rooms and much more! +

+
+ + + +

Or

+ + + +
+
+
+ )} + ); } diff --git a/src/components/theme-vars.tsx b/src/components/theme-vars.tsx new file mode 100644 index 00000000..4ae38853 --- /dev/null +++ b/src/components/theme-vars.tsx @@ -0,0 +1,58 @@ +import { siteSettings } from "@/lib/services/site-settings"; + +// Injects the DB-driven CSS custom properties into :root, exactly like +// AtomCMS's app.blade.php. Falls back to the atom defaults when no DB. +export async function ThemeVars() { + const g = (k: string, d: string) => siteSettings.get(k, d); + const [ + primary, + background, + surface, + dropdown, + navbar, + navbarText, + text, + textMuted, + accent, + buttonColor, + buttonText, + borderColor, + borderRadius, + ] = await Promise.all([ + g("color_primary", "#f59e0b"), + g("color_background", "#f8fafc"), + g("color_surface", "#ffffff"), + g("color_dropdown", "#ffffff"), + g("color_navbar", "#ffffff"), + g("color_navbar_text", "#1e293b"), + g("color_text", "#0f172a"), + g("color_text_muted", "#64748b"), + g("color_accent", "#10b981"), + g("button_primary_color", "#f59e0b"), + g("button_text_color", "#1e293b"), + g("border_color", "#eeb425"), + g("border_radius", "12"), + ]); + + // Only hex/keyword color values are admin-controlled — sanitize defensively. + const safe = (v: string | null, d: string) => (v && /^[#a-zA-Z0-9(),.\s%-]+$/.test(v) ? v : d); + + const css = `:root{ +--color-primary:${safe(primary, "#f59e0b")}; +--color-background:${safe(background, "#f8fafc")}; +--color-surface:${safe(surface, "#ffffff")}; +--color-dropdown:${safe(dropdown, "#ffffff")}; +--color-navbar:${safe(navbar, "#ffffff")}; +--color-navbar-text:${safe(navbarText, "#1e293b")}; +--color-text:${safe(text, "#0f172a")}; +--color-text-muted:${safe(textMuted, "#64748b")}; +--color-accent:${safe(accent, "#10b981")}; +--button-color:${safe(buttonColor, "#f59e0b")}; +--button-text-color:${safe(buttonText, "#1e293b")}; +--border-color:${safe(borderColor, "#eeb425")}; +--border-radius:${/^\d+$/.test(borderRadius ?? "") ? borderRadius : "12"}px; +}`; + + // biome-ignore lint/security/noDangerouslySetInnerHtml: server-built CSS from sanitized admin settings + return