diff --git a/index.html b/index.html
index 9cc653a..b978c1d 100644
--- a/index.html
+++ b/index.html
@@ -2,8 +2,23 @@
-
+
+
+
+
+
+
+
+
IndoGitHubers
diff --git a/package.json b/package.json
index 626014b..4d62f3d 100644
--- a/package.json
+++ b/package.json
@@ -29,37 +29,37 @@
"@radix-ui/react-tabs": "^1.1.1",
"@radix-ui/react-tooltip": "^1.1.4",
"@tanstack/react-table": "^8.20.5",
- "@vercel/analytics": "^1.4.0",
- "class-variance-authority": "^0.7.0",
+ "@vercel/analytics": "^1.4.1",
+ "class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
- "lucide-react": "^0.460.0",
- "nuqs": "^2.2.1",
+ "lucide-react": "^0.462.0",
+ "nuqs": "^2.2.3",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-github-calendar": "^4.5.1",
"react-router-dom": "^6.28.0",
"swr": "^2.2.5",
- "tailwind-merge": "^2.5.4",
+ "tailwind-merge": "^2.5.5",
"tailwindcss-animate": "^1.0.7",
"usehooks-ts": "^3.1.0",
- "vite-plugin-pwa": "^0.21.0"
+ "vite-plugin-pwa": "^0.21.1"
},
"devDependencies": {
"@biomejs/biome": "1.9.4",
"@playwright/test": "1.49.0",
- "@types/node": "^22.9.0",
+ "@types/node": "^22.10.1",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
- "@vitejs/plugin-react": "^4.3.3",
+ "@vitejs/plugin-react": "^4.3.4",
"autoprefixer": "10.4.20",
"husky": "^9.1.7",
"lint-staged": "^15.2.10",
"postcss": "8.4.49",
"tailwindcss": "3.4.15",
- "typescript": "5.6.3",
- "vite": "^5.4.11"
+ "typescript": "5.7.2",
+ "vite": "^6.0.1"
},
- "packageManager": "pnpm@9.12.2",
+ "packageManager": "pnpm@^9.12.2",
"engines": {
"node": "20.x",
"pnpm": "^9.12.2"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e207b17..a677247 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -42,20 +42,20 @@ importers:
specifier: ^8.20.5
version: 8.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@vercel/analytics':
- specifier: ^1.4.0
- version: 1.4.0(react@18.3.1)
+ specifier: ^1.4.1
+ version: 1.4.1(react@18.3.1)
class-variance-authority:
- specifier: ^0.7.0
- version: 0.7.0
+ specifier: ^0.7.1
+ version: 0.7.1
clsx:
specifier: ^2.1.1
version: 2.1.1
lucide-react:
- specifier: ^0.460.0
- version: 0.460.0(react@18.3.1)
+ specifier: ^0.462.0
+ version: 0.462.0(react@18.3.1)
nuqs:
- specifier: ^2.2.1
- version: 2.2.1(react-router-dom@6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
+ specifier: ^2.2.3
+ version: 2.2.3(react-router-dom@6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
react:
specifier: ^18.3.1
version: 18.3.1
@@ -72,8 +72,8 @@ importers:
specifier: ^2.2.5
version: 2.2.5(react@18.3.1)
tailwind-merge:
- specifier: ^2.5.4
- version: 2.5.4
+ specifier: ^2.5.5
+ version: 2.5.5
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.4.15)
@@ -81,8 +81,8 @@ importers:
specifier: ^3.1.0
version: 3.1.0(react@18.3.1)
vite-plugin-pwa:
- specifier: ^0.21.0
- version: 0.21.0(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
+ specifier: ^0.21.1
+ version: 0.21.1(vite@6.0.1(@types/node@22.10.1)(jiti@1.21.6)(terser@5.36.0)(yaml@2.6.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
devDependencies:
'@biomejs/biome':
specifier: 1.9.4
@@ -91,8 +91,8 @@ importers:
specifier: 1.49.0
version: 1.49.0
'@types/node':
- specifier: ^22.9.0
- version: 22.9.0
+ specifier: ^22.10.1
+ version: 22.10.1
'@types/react':
specifier: ^18.3.12
version: 18.3.12
@@ -100,8 +100,8 @@ importers:
specifier: ^18.3.1
version: 18.3.1
'@vitejs/plugin-react':
- specifier: ^4.3.3
- version: 4.3.3(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))
+ specifier: ^4.3.4
+ version: 4.3.4(vite@6.0.1(@types/node@22.10.1)(jiti@1.21.6)(terser@5.36.0)(yaml@2.6.0))
autoprefixer:
specifier: 10.4.20
version: 10.4.20(postcss@8.4.49)
@@ -118,11 +118,11 @@ importers:
specifier: 3.4.15
version: 3.4.15
typescript:
- specifier: 5.6.3
- version: 5.6.3
+ specifier: 5.7.2
+ version: 5.7.2
vite:
- specifier: ^5.4.11
- version: 5.4.11(@types/node@22.9.0)(terser@5.36.0)
+ specifier: ^6.0.1
+ version: 6.0.1(@types/node@22.10.1)(jiti@1.21.6)(terser@5.36.0)(yaml@2.6.0)
packages:
@@ -698,141 +698,147 @@ packages:
cpu: [x64]
os: [win32]
- '@esbuild/aix-ppc64@0.21.5':
- resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
- engines: {node: '>=12'}
+ '@esbuild/aix-ppc64@0.24.0':
+ resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
+ engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- '@esbuild/android-arm64@0.21.5':
- resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
- engines: {node: '>=12'}
+ '@esbuild/android-arm64@0.24.0':
+ resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm@0.21.5':
- resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
- engines: {node: '>=12'}
+ '@esbuild/android-arm@0.24.0':
+ resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
+ engines: {node: '>=18'}
cpu: [arm]
os: [android]
- '@esbuild/android-x64@0.21.5':
- resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
- engines: {node: '>=12'}
+ '@esbuild/android-x64@0.24.0':
+ resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [android]
- '@esbuild/darwin-arm64@0.21.5':
- resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
- engines: {node: '>=12'}
+ '@esbuild/darwin-arm64@0.24.0':
+ resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-x64@0.21.5':
- resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
- engines: {node: '>=12'}
+ '@esbuild/darwin-x64@0.24.0':
+ resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- '@esbuild/freebsd-arm64@0.21.5':
- resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
- engines: {node: '>=12'}
+ '@esbuild/freebsd-arm64@0.24.0':
+ resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.21.5':
- resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
- engines: {node: '>=12'}
+ '@esbuild/freebsd-x64@0.24.0':
+ resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- '@esbuild/linux-arm64@0.21.5':
- resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
- engines: {node: '>=12'}
+ '@esbuild/linux-arm64@0.24.0':
+ resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm@0.21.5':
- resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
- engines: {node: '>=12'}
+ '@esbuild/linux-arm@0.24.0':
+ resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
+ engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-ia32@0.21.5':
- resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
- engines: {node: '>=12'}
+ '@esbuild/linux-ia32@0.24.0':
+ resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
+ engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-loong64@0.21.5':
- resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
- engines: {node: '>=12'}
+ '@esbuild/linux-loong64@0.24.0':
+ resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
+ engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- '@esbuild/linux-mips64el@0.21.5':
- resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
- engines: {node: '>=12'}
+ '@esbuild/linux-mips64el@0.24.0':
+ resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
+ engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-ppc64@0.21.5':
- resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
- engines: {node: '>=12'}
+ '@esbuild/linux-ppc64@0.24.0':
+ resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
+ engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-riscv64@0.21.5':
- resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
- engines: {node: '>=12'}
+ '@esbuild/linux-riscv64@0.24.0':
+ resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
+ engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-s390x@0.21.5':
- resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
- engines: {node: '>=12'}
+ '@esbuild/linux-s390x@0.24.0':
+ resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
+ engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-x64@0.21.5':
- resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
- engines: {node: '>=12'}
+ '@esbuild/linux-x64@0.24.0':
+ resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-x64@0.21.5':
- resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
- engines: {node: '>=12'}
+ '@esbuild/netbsd-x64@0.24.0':
+ resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-x64@0.21.5':
- resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
- engines: {node: '>=12'}
+ '@esbuild/openbsd-arm64@0.24.0':
+ resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.24.0':
+ resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/sunos-x64@0.21.5':
- resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
- engines: {node: '>=12'}
+ '@esbuild/sunos-x64@0.24.0':
+ resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- '@esbuild/win32-arm64@0.21.5':
- resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
- engines: {node: '>=12'}
+ '@esbuild/win32-arm64@0.24.0':
+ resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-ia32@0.21.5':
- resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
- engines: {node: '>=12'}
+ '@esbuild/win32-ia32@0.24.0':
+ resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
+ engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-x64@0.21.5':
- resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
- engines: {node: '>=12'}
+ '@esbuild/win32-x64@0.24.0':
+ resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [win32]
@@ -1467,8 +1473,8 @@ packages:
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
- '@types/node@22.9.0':
- resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==}
+ '@types/node@22.10.1':
+ resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==}
'@types/prop-types@15.7.13':
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
@@ -1485,8 +1491,8 @@ packages:
'@types/trusted-types@2.0.7':
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
- '@vercel/analytics@1.4.0':
- resolution: {integrity: sha512-eUwWW7l8nPJb0nJmjZuYp9o7YZ9XPj67lU9mEogaPXiFxq/SFB5DMnvQVk4aKcL8kFgotiYdDZWxdiNcWo7cgg==}
+ '@vercel/analytics@1.4.1':
+ resolution: {integrity: sha512-ekpL4ReX2TH3LnrRZTUKjHHNpNy9S1I7QmS+g/RQXoSUQ8ienzosuX7T9djZ/s8zPhBx1mpHP/Rw5875N+zQIQ==}
peerDependencies:
'@remix-run/react': ^2
'@sveltejs/kit': ^1 || ^2
@@ -1511,11 +1517,11 @@ packages:
vue-router:
optional: true
- '@vitejs/plugin-react@4.3.3':
- resolution: {integrity: sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==}
+ '@vitejs/plugin-react@4.3.4':
+ resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
- vite: ^4.2.0 || ^5.0.0
+ vite: ^4.2.0 || ^5.0.0 || ^6.0.0
acorn@8.14.0:
resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
@@ -1648,8 +1654,8 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
- class-variance-authority@0.7.0:
- resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==}
+ class-variance-authority@0.7.1:
+ resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
cli-cursor@5.0.0:
resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
@@ -1662,10 +1668,6 @@ packages:
client-only@0.0.1:
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
- clsx@2.0.0:
- resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
- engines: {node: '>=6'}
-
clsx@2.1.1:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
@@ -1813,9 +1815,9 @@ packages:
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines: {node: '>= 0.4'}
- esbuild@0.21.5:
- resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
- engines: {node: '>=12'}
+ esbuild@0.24.0:
+ resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
+ engines: {node: '>=18'}
hasBin: true
escalade@3.2.0:
@@ -2240,8 +2242,8 @@ packages:
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
- lucide-react@0.460.0:
- resolution: {integrity: sha512-BVtq/DykVeIvRTJvRAgCsOwaGL8Un3Bxh8MbDxMhEWlZay3T4IpEKDEpwt5KZ0KJMHzgm6jrltxlT5eXOWXDHg==}
+ lucide-react@0.462.0:
+ resolution: {integrity: sha512-NTL7EbAao9IFtuSivSZgrAh4fZd09Lr+6MTkqIxuHaH2nnYiYIzXPo06cOxHg9wKLdj6LL8TByG4qpePqwgx/g==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc
@@ -2311,8 +2313,8 @@ packages:
resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- nuqs@2.2.1:
- resolution: {integrity: sha512-P0swZtg6k9LRXzlT9gQAFtQg25Edan2Evt5vwyGvh00Z+rHH19gb2ZajU/E/SfhwE858aM/jb+wJziWbbwSlcg==}
+ nuqs@2.2.3:
+ resolution: {integrity: sha512-nMCcUW06KSqEXA0xp+LiRqDpIE59BVYbjZLe0HUisJAlswfihHYSsAjYTzV0lcE1thfh8uh+LqUHGdQ8qq8rfA==}
peerDependencies:
'@remix-run/react': '>=2'
next: '>=14.2.0'
@@ -2764,8 +2766,8 @@ packages:
peerDependencies:
react: ^16.11.0 || ^17.0.0 || ^18.0.0
- tailwind-merge@2.5.4:
- resolution: {integrity: sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==}
+ tailwind-merge@2.5.5:
+ resolution: {integrity: sha512-0LXunzzAZzo0tEPxV3I297ffKZPlKDrjj7NXphC8V5ak9yHC5zRmxnOe2m/Rd/7ivsOMJe3JZ2JVocoDdQTRBA==}
tailwindcss-animate@1.0.7:
resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
@@ -2834,16 +2836,16 @@ packages:
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
engines: {node: '>= 0.4'}
- typescript@5.6.3:
- resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
+ typescript@5.7.2:
+ resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==}
engines: {node: '>=14.17'}
hasBin: true
unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
- undici-types@6.19.8:
- resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
+ undici-types@6.20.0:
+ resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
unicode-canonical-property-names-ecmascript@2.0.1:
resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
@@ -2913,34 +2915,39 @@ packages:
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
- vite-plugin-pwa@0.21.0:
- resolution: {integrity: sha512-gnDE5sN2hdxA4vTl0pe6PCTPXqChk175jH8dZVVTBjFhWarZZoXaAdoTIKCIa8Zbx94sC0CnCOyERBWpxvry+g==}
+ vite-plugin-pwa@0.21.1:
+ resolution: {integrity: sha512-rkTbKFbd232WdiRJ9R3u+hZmf5SfQljX1b45NF6oLA6DSktEKpYllgTo1l2lkiZWMWV78pABJtFjNXfBef3/3Q==}
engines: {node: '>=16.0.0'}
peerDependencies:
'@vite-pwa/assets-generator': ^0.2.6
- vite: ^3.1.0 || ^4.0.0 || ^5.0.0
+ vite: ^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0
workbox-build: ^7.3.0
workbox-window: ^7.3.0
peerDependenciesMeta:
'@vite-pwa/assets-generator':
optional: true
- vite@5.4.11:
- resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==}
- engines: {node: ^18.0.0 || >=20.0.0}
+ vite@6.0.1:
+ resolution: {integrity: sha512-Ldn6gorLGr4mCdFnmeAOLweJxZ34HjKnDm4HGo6P66IEqTxQb36VEdFJQENKxWjupNfoIjvRUnswjn1hpYEpjQ==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
- '@types/node': ^18.0.0 || >=20.0.0
+ '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ jiti: '>=1.21.0'
less: '*'
lightningcss: ^1.21.0
sass: '*'
sass-embedded: '*'
stylus: '*'
sugarss: '*'
- terser: ^5.4.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
peerDependenciesMeta:
'@types/node':
optional: true
+ jiti:
+ optional: true
less:
optional: true
lightningcss:
@@ -2955,6 +2962,10 @@ packages:
optional: true
terser:
optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
webidl-conversions@4.0.2:
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
@@ -3777,73 +3788,76 @@ snapshots:
'@biomejs/cli-win32-x64@1.9.4':
optional: true
- '@esbuild/aix-ppc64@0.21.5':
+ '@esbuild/aix-ppc64@0.24.0':
+ optional: true
+
+ '@esbuild/android-arm64@0.24.0':
optional: true
- '@esbuild/android-arm64@0.21.5':
+ '@esbuild/android-arm@0.24.0':
optional: true
- '@esbuild/android-arm@0.21.5':
+ '@esbuild/android-x64@0.24.0':
optional: true
- '@esbuild/android-x64@0.21.5':
+ '@esbuild/darwin-arm64@0.24.0':
optional: true
- '@esbuild/darwin-arm64@0.21.5':
+ '@esbuild/darwin-x64@0.24.0':
optional: true
- '@esbuild/darwin-x64@0.21.5':
+ '@esbuild/freebsd-arm64@0.24.0':
optional: true
- '@esbuild/freebsd-arm64@0.21.5':
+ '@esbuild/freebsd-x64@0.24.0':
optional: true
- '@esbuild/freebsd-x64@0.21.5':
+ '@esbuild/linux-arm64@0.24.0':
optional: true
- '@esbuild/linux-arm64@0.21.5':
+ '@esbuild/linux-arm@0.24.0':
optional: true
- '@esbuild/linux-arm@0.21.5':
+ '@esbuild/linux-ia32@0.24.0':
optional: true
- '@esbuild/linux-ia32@0.21.5':
+ '@esbuild/linux-loong64@0.24.0':
optional: true
- '@esbuild/linux-loong64@0.21.5':
+ '@esbuild/linux-mips64el@0.24.0':
optional: true
- '@esbuild/linux-mips64el@0.21.5':
+ '@esbuild/linux-ppc64@0.24.0':
optional: true
- '@esbuild/linux-ppc64@0.21.5':
+ '@esbuild/linux-riscv64@0.24.0':
optional: true
- '@esbuild/linux-riscv64@0.21.5':
+ '@esbuild/linux-s390x@0.24.0':
optional: true
- '@esbuild/linux-s390x@0.21.5':
+ '@esbuild/linux-x64@0.24.0':
optional: true
- '@esbuild/linux-x64@0.21.5':
+ '@esbuild/netbsd-x64@0.24.0':
optional: true
- '@esbuild/netbsd-x64@0.21.5':
+ '@esbuild/openbsd-arm64@0.24.0':
optional: true
- '@esbuild/openbsd-x64@0.21.5':
+ '@esbuild/openbsd-x64@0.24.0':
optional: true
- '@esbuild/sunos-x64@0.21.5':
+ '@esbuild/sunos-x64@0.24.0':
optional: true
- '@esbuild/win32-arm64@0.21.5':
+ '@esbuild/win32-arm64@0.24.0':
optional: true
- '@esbuild/win32-ia32@0.21.5':
+ '@esbuild/win32-ia32@0.24.0':
optional: true
- '@esbuild/win32-x64@0.21.5':
+ '@esbuild/win32-x64@0.24.0':
optional: true
'@floating-ui/core@1.6.8':
@@ -4457,9 +4471,9 @@ snapshots:
'@types/estree@1.0.6': {}
- '@types/node@22.9.0':
+ '@types/node@22.10.1':
dependencies:
- undici-types: 6.19.8
+ undici-types: 6.20.0
'@types/prop-types@15.7.13': {}
@@ -4476,18 +4490,18 @@ snapshots:
'@types/trusted-types@2.0.7': {}
- '@vercel/analytics@1.4.0(react@18.3.1)':
+ '@vercel/analytics@1.4.1(react@18.3.1)':
optionalDependencies:
react: 18.3.1
- '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))':
+ '@vitejs/plugin-react@4.3.4(vite@6.0.1(@types/node@22.10.1)(jiti@1.21.6)(terser@5.36.0)(yaml@2.6.0))':
dependencies:
'@babel/core': 7.26.0
'@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0)
'@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0)
'@types/babel__core': 7.20.5
react-refresh: 0.14.2
- vite: 5.4.11(@types/node@22.9.0)(terser@5.36.0)
+ vite: 6.0.1(@types/node@22.10.1)(jiti@1.21.6)(terser@5.36.0)(yaml@2.6.0)
transitivePeerDependencies:
- supports-color
@@ -4642,9 +4656,9 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- class-variance-authority@0.7.0:
+ class-variance-authority@0.7.1:
dependencies:
- clsx: 2.0.0
+ clsx: 2.1.1
cli-cursor@5.0.0:
dependencies:
@@ -4657,8 +4671,6 @@ snapshots:
client-only@0.0.1: {}
- clsx@2.0.0: {}
-
clsx@2.1.1: {}
color-convert@2.0.1:
@@ -4828,31 +4840,32 @@ snapshots:
is-date-object: 1.0.5
is-symbol: 1.0.4
- esbuild@0.21.5:
+ esbuild@0.24.0:
optionalDependencies:
- '@esbuild/aix-ppc64': 0.21.5
- '@esbuild/android-arm': 0.21.5
- '@esbuild/android-arm64': 0.21.5
- '@esbuild/android-x64': 0.21.5
- '@esbuild/darwin-arm64': 0.21.5
- '@esbuild/darwin-x64': 0.21.5
- '@esbuild/freebsd-arm64': 0.21.5
- '@esbuild/freebsd-x64': 0.21.5
- '@esbuild/linux-arm': 0.21.5
- '@esbuild/linux-arm64': 0.21.5
- '@esbuild/linux-ia32': 0.21.5
- '@esbuild/linux-loong64': 0.21.5
- '@esbuild/linux-mips64el': 0.21.5
- '@esbuild/linux-ppc64': 0.21.5
- '@esbuild/linux-riscv64': 0.21.5
- '@esbuild/linux-s390x': 0.21.5
- '@esbuild/linux-x64': 0.21.5
- '@esbuild/netbsd-x64': 0.21.5
- '@esbuild/openbsd-x64': 0.21.5
- '@esbuild/sunos-x64': 0.21.5
- '@esbuild/win32-arm64': 0.21.5
- '@esbuild/win32-ia32': 0.21.5
- '@esbuild/win32-x64': 0.21.5
+ '@esbuild/aix-ppc64': 0.24.0
+ '@esbuild/android-arm': 0.24.0
+ '@esbuild/android-arm64': 0.24.0
+ '@esbuild/android-x64': 0.24.0
+ '@esbuild/darwin-arm64': 0.24.0
+ '@esbuild/darwin-x64': 0.24.0
+ '@esbuild/freebsd-arm64': 0.24.0
+ '@esbuild/freebsd-x64': 0.24.0
+ '@esbuild/linux-arm': 0.24.0
+ '@esbuild/linux-arm64': 0.24.0
+ '@esbuild/linux-ia32': 0.24.0
+ '@esbuild/linux-loong64': 0.24.0
+ '@esbuild/linux-mips64el': 0.24.0
+ '@esbuild/linux-ppc64': 0.24.0
+ '@esbuild/linux-riscv64': 0.24.0
+ '@esbuild/linux-s390x': 0.24.0
+ '@esbuild/linux-x64': 0.24.0
+ '@esbuild/netbsd-x64': 0.24.0
+ '@esbuild/openbsd-arm64': 0.24.0
+ '@esbuild/openbsd-x64': 0.24.0
+ '@esbuild/sunos-x64': 0.24.0
+ '@esbuild/win32-arm64': 0.24.0
+ '@esbuild/win32-ia32': 0.24.0
+ '@esbuild/win32-x64': 0.24.0
escalade@3.2.0: {}
@@ -5254,7 +5267,7 @@ snapshots:
dependencies:
yallist: 3.1.1
- lucide-react@0.460.0(react@18.3.1):
+ lucide-react@0.462.0(react@18.3.1):
dependencies:
react: 18.3.1
@@ -5311,7 +5324,7 @@ snapshots:
dependencies:
path-key: 4.0.0
- nuqs@2.2.1(react-router-dom@6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1):
+ nuqs@2.2.3(react-router-dom@6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1):
dependencies:
mitt: 3.0.1
react: 18.3.1
@@ -5779,7 +5792,7 @@ snapshots:
react: 18.3.1
use-sync-external-store: 1.2.2(react@18.3.1)
- tailwind-merge@2.5.4: {}
+ tailwind-merge@2.5.5: {}
tailwindcss-animate@1.0.7(tailwindcss@3.4.15):
dependencies:
@@ -5888,7 +5901,7 @@ snapshots:
possible-typed-array-names: 1.0.0
reflect.getprototypeof: 1.0.7
- typescript@5.6.3: {}
+ typescript@5.7.2: {}
unbox-primitive@1.0.2:
dependencies:
@@ -5897,7 +5910,7 @@ snapshots:
has-symbols: 1.0.3
which-boxed-primitive: 1.0.2
- undici-types@6.19.8: {}
+ undici-types@6.20.0: {}
unicode-canonical-property-names-ecmascript@2.0.1: {}
@@ -5950,26 +5963,28 @@ snapshots:
util-deprecate@1.0.2: {}
- vite-plugin-pwa@0.21.0(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0):
+ vite-plugin-pwa@0.21.1(vite@6.0.1(@types/node@22.10.1)(jiti@1.21.6)(terser@5.36.0)(yaml@2.6.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0):
dependencies:
debug: 4.3.7
pretty-bytes: 6.1.1
tinyglobby: 0.2.10
- vite: 5.4.11(@types/node@22.9.0)(terser@5.36.0)
+ vite: 6.0.1(@types/node@22.10.1)(jiti@1.21.6)(terser@5.36.0)(yaml@2.6.0)
workbox-build: 7.3.0(@types/babel__core@7.20.5)
workbox-window: 7.3.0
transitivePeerDependencies:
- supports-color
- vite@5.4.11(@types/node@22.9.0)(terser@5.36.0):
+ vite@6.0.1(@types/node@22.10.1)(jiti@1.21.6)(terser@5.36.0)(yaml@2.6.0):
dependencies:
- esbuild: 0.21.5
+ esbuild: 0.24.0
postcss: 8.4.49
rollup: 4.27.3
optionalDependencies:
- '@types/node': 22.9.0
+ '@types/node': 22.10.1
fsevents: 2.3.3
+ jiti: 1.21.6
terser: 5.36.0
+ yaml: 2.6.0
webidl-conversions@4.0.2: {}
diff --git a/public/favicon-128.png b/public/favicon-128.png
new file mode 100644
index 0000000..d14897e
Binary files /dev/null and b/public/favicon-128.png differ
diff --git a/public/favicon-16.png b/public/favicon-16.png
new file mode 100644
index 0000000..5cd74da
Binary files /dev/null and b/public/favicon-16.png differ
diff --git a/public/favicon-192.png b/public/favicon-192.png
new file mode 100644
index 0000000..2e9c528
Binary files /dev/null and b/public/favicon-192.png differ
diff --git a/public/favicon-32.png b/public/favicon-32.png
new file mode 100644
index 0000000..95a93bd
Binary files /dev/null and b/public/favicon-32.png differ
diff --git a/public/favicon-512.png b/public/favicon-512.png
new file mode 100644
index 0000000..5dc39d4
Binary files /dev/null and b/public/favicon-512.png differ
diff --git a/public/favicon-96.png b/public/favicon-96.png
new file mode 100644
index 0000000..7bef1a3
Binary files /dev/null and b/public/favicon-96.png differ
diff --git a/public/favicon.ico b/public/favicon.ico
deleted file mode 100644
index 14f7e7f..0000000
Binary files a/public/favicon.ico and /dev/null differ
diff --git a/public/favicon.png b/public/favicon.png
new file mode 100644
index 0000000..e32a040
Binary files /dev/null and b/public/favicon.png differ
diff --git a/src/components/CopyButton.tsx b/src/components/CopyButton.tsx
index bedef3d..f8afa3d 100644
--- a/src/components/CopyButton.tsx
+++ b/src/components/CopyButton.tsx
@@ -29,6 +29,7 @@ export function CopyButton({
className="flex gap-2 items-center"
type="button"
disabled={isCopied}
+ data-copied={`${isCopied}`}
onClick={() => {
setIsCopied(true);
copyTextToClipboard(`${text}`);
diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx
index 54751ad..ba8d535 100644
--- a/src/components/Layout.tsx
+++ b/src/components/Layout.tsx
@@ -2,7 +2,7 @@ import { Analytics } from '@vercel/analytics/react';
import { GithubIcon } from "lucide-react";
import { Link, Outlet } from "react-router-dom"
import { ModeToggle } from "./mode-toggle";
-import { Avatar, AvatarFallback } from "./ui/avatar";
+import { Avatar, AvatarFallback, AvatarImage } from "./ui/avatar";
import { Button } from "./ui/button";
export const Layout = () => {
@@ -12,6 +12,7 @@ export const Layout = () => {
+
IGH
diff --git a/src/components/TableUser/column.tsx b/src/components/TableUser/column.tsx
index d77c10f..4ba623a 100644
--- a/src/components/TableUser/column.tsx
+++ b/src/components/TableUser/column.tsx
@@ -56,6 +56,7 @@ export const columnsDesktop: ColumnDef[] = [
},
{
accessorKey: 'username',
+ enableHiding: false,
header: ({ column }) => (
),
diff --git a/src/views/Home.tsx b/src/views/Home.tsx
index 2db8dcb..fa4c41c 100644
--- a/src/views/Home.tsx
+++ b/src/views/Home.tsx
@@ -70,6 +70,20 @@ export const Home = () => {
+
+
+ Why my avatar doesn't sync with my GitHub?
+
+
+
+ We are using client side cache to reduce the unnecessary request
+ for the same avatar URL. By having a cache, you may face a
+ different visual when you updating the avatar in GitHub. The
+ cache will be refreshed after 7 days, so most likely you will
+ get the new avatar in 7 days.
+
+
+
diff --git a/vite.config.ts b/vite.config.ts
index 3490572..d2e33a3 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -7,8 +7,44 @@ export default defineConfig({
server: {
port: 3000,
},
- plugins: [react(),
+ plugins: [
+ react(),
VitePWA({
+ manifest: {
+ name: 'IndoGitHubers',
+ short_name: 'IGH',
+ description:
+ 'Web app that displays the GitHub rank of users in Indonesia',
+ theme_color: '#ffffff',
+ display: 'standalone',
+ start_url: '/?source=pwa',
+ icons: [
+ {
+ src: 'favicon-96.png',
+ sizes: '96x96',
+ type: 'image/png',
+ purpose: 'any',
+ },
+ {
+ src: 'favicon-128.png',
+ sizes: '128x128',
+ type: 'image/png',
+ purpose: 'any',
+ },
+ {
+ src: 'favicon-192.png',
+ sizes: '192x192',
+ type: 'image/png',
+ purpose: 'any',
+ },
+ {
+ src: 'favicon-512.png',
+ sizes: '512x512',
+ type: 'image/png',
+ purpose: 'any',
+ },
+ ],
+ },
workbox: {
runtimeCaching: [
{
@@ -22,12 +58,12 @@ export default defineConfig({
},
cacheableResponse: {
statuses: [0, 200],
- }
- }
- }
- ]
- }
- })
+ },
+ },
+ },
+ ],
+ },
+ }),
],
resolve: {
alias: {