0% found this document useful (0 votes)
18 views116 pages

Esbuild Package Not Found Errors

The document is a package-lock.json file for a project named 'vite-react-typescript-starter' with version 0.0.0. It lists dependencies and devDependencies including libraries like React, TypeScript, and various Babel packages, along with their respective versions and integrity checks. The file ensures consistent installations of the project's dependencies across different environments.

Uploaded by

bkhbkhkhbhbhrhbh
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views116 pages

Esbuild Package Not Found Errors

The document is a package-lock.json file for a project named 'vite-react-typescript-starter' with version 0.0.0. It lists dependencies and devDependencies including libraries like React, TypeScript, and various Babel packages, along with their respective versions and integrity checks. The file ensures consistent installations of the project's dependencies across different environments.

Uploaded by

bkhbkhkhbhbhrhbh
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

/* ===== File: project/package-lock.

json ===== */

{
"name": "vite-react-typescript-starter",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "vite-react-typescript-starter",
"version": "0.0.0",
"dependencies": {
"lucide-react": "^0.344.0",
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@eslint/js": "^9.9.1",
"@types/react": "^18.3.5",
"@types/react-dom": "^18.3.0",
"@vitejs/plugin-react": "^4.3.1",
"autoprefixer": "^10.4.18",
"eslint": "^9.9.1",
"eslint-plugin-react-hooks": "^5.1.0-rc.0",
"eslint-plugin-react-refresh": "^0.4.11",
"globals": "^15.9.0",
"postcss": "^8.4.35",
"tailwindcss": "^3.4.1",
"typescript": "^5.5.3",
"typescript-eslint": "^8.3.0",
"vite": "^5.4.2"
}
},
"node_modules/@alloc/quick-lru": {
"version": "5.2.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6j
uS3+z5TsKLw==",
"dev": true,
"engines": {
"node": ">=10"
},
"funding": {
"url": "[Link]
}
},
"node_modules/@ampproject/remapping": {
"version": "2.3.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4
YYw==",
"dev": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@babel/code-frame": {
"version": "7.25.7",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/
GFPOtf5g==",
"dev": true,
"dependencies": {
"@babel/highlight": "^7.25.7",
"picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/compat-data": {
"version": "7.25.7",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/
YHjiKLPx06z2A7W8XKuqbReXDzsw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
"version": "7.25.7",
"resolved": "[Link]
"integrity": "sha512-
yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/
AolYTPX7Mow==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.25.7",
"@babel/generator": "^7.25.7",
"@babel/helper-compilation-targets": "^7.25.7",
"@babel/helper-module-transforms": "^7.25.7",
"@babel/helpers": "^7.25.7",
"@babel/parser": "^7.25.7",
"@babel/template": "^7.25.7",
"@babel/traverse": "^7.25.7",
"@babel/types": "^7.25.7",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
"json5": "^2.2.3",
"semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
},
"funding": {
"type": "opencollective",
"url": "[Link]
}
},
"node_modules/@babel/generator": {
"version": "7.25.7",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsN
DnGZrPoR6rA==",
"dev": true,
"dependencies": {
"@babel/types": "^7.25.7",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^3.0.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-compilation-targets": {
"version": "7.25.7",
"resolved":
"[Link]
[Link]",
"integrity": "sha512-
DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQa
V4A==",
"dev": true,
"dependencies": {
"@babel/compat-data": "^7.25.7",
"@babel/helper-validator-option": "^7.25.7",
"browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
"version": "7.25.7",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZP
iMgLDq2s7Kw==",
"dev": true,
"dependencies": {
"@babel/traverse": "^7.25.7",
"@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
"version": "7.25.7",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8
pms2HdNiMMQ==",
"dev": true,
"dependencies": {
"@babel/helper-module-imports": "^7.25.7",
"@babel/helper-simple-access": "^7.25.7",
"@babel/helper-validator-identifier": "^7.25.7",
"@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0"
}
},
"node_modules/@babel/helper-plugin-utils": {
"version": "7.25.7",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZn
OGsSY4QSgaw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-simple-access": {
"version": "7.25.7",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/
nF1gfu5KzN7VKG3YVSLFfRSxQ==",
"dev": true,
"dependencies": {
"@babel/traverse": "^7.25.7",
"@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
"version": "7.25.7",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/
Y6g==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.25.7",
"resolved": "[Link]
identifier/-/[Link]",
"integrity":
"sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8
LV22kaQCNYg==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
"version": "7.25.7",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuu
JPqK2nvDVfQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
"version": "7.25.7",
"resolved": "[Link]
"integrity":
"sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQp
SiGQ0Jg6tRA==",
"dev": true,
"dependencies": {
"@babel/template": "^7.25.7",
"@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
"version": "7.25.7",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVv
Kb/ffmk+FEw==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.25.7",
"chalk": "^2.4.2",
"js-tokens": "^4.0.0",
"picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
"version": "7.25.7",
"resolved": "[Link]
"integrity": "sha512-
aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYl
gWw==",
"dev": true,
"dependencies": {
"@babel/types": "^7.25.7"
},
"bin": {
"parser": "bin/[Link]"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@babel/plugin-transform-react-jsx-self": {
"version": "7.25.7",
"resolved": "[Link]
self/-/[Link]",
"integrity":
"sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQ
E635VgtCFeg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-react-jsx-source": {
"version": "7.25.7",
"resolved": "[Link]
source/-/[Link]",
"integrity":
"sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMio
s9i+xT/uv9w==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/template": {
"version": "7.25.7",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/
qVUB1keofjtZA==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.25.7",
"@babel/parser": "^7.25.7",
"@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
"version": "7.25.7",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05J
zervt9yhnzg==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.25.7",
"@babel/generator": "^7.25.7",
"@babel/parser": "^7.25.7",
"@babel/template": "^7.25.7",
"@babel/types": "^7.25.7",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse/node_modules/globals": {
"version": "11.12.0",
"resolved": "[Link]
"integrity":
"sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T
+QaVHFjizVA==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/types": {
"version": "7.25.7",
"resolved": "[Link]
"integrity": "sha512-
vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/
W5WQ==",
"dev": true,
"dependencies": {
"@babel/helper-string-parser": "^7.25.7",
"@babel/helper-validator-identifier": "^7.25.7",
"to-fast-properties": "^2.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@esbuild/aix-ppc64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXy
JNWh1GiZedQ==",
"cpu": [
"ppc64"
],
"dev": true,
"optional": true,
"os": [
"aix"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/android-arm": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/
iEpbDrf68zcg==",
"cpu": [
"arm"
],
"dev": true,
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/android-arm64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4
YMclCzGwS/A==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/android-x64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/
ZmXWlbZgjwWYaCakTA==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/darwin-arm64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/
cRCKGwYhtNAY88kQ==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/darwin-x64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflw
GFBQcxZRjbw==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/freebsd-arm64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQ
iX9DGyB8h4g==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/freebsd-x64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/
dfNXWX/ZZCQ==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-arm": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0b
FcA==",
"cpu": [
"arm"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-arm64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan
7TeQ8XkGp4Q==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-ia32": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/
MWY18Tg==",
"cpu": [
"ia32"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-loong64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBl
pEOXQj+JQSg==",
"cpu": [
"loong64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-mips64el": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3
Jbg==",
"cpu": [
"mips64el"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-ppc64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//
hSsT+RvDAG7s81tAvpL2XAE4w==",
"cpu": [
"ppc64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-riscv64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qI
Ixk/SBmyDDA==",
"cpu": [
"riscv64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-s390x": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB
41A==",
"cpu": [
"s390x"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-x64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82B
xPQ==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/netbsd-x64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0
tLg==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/openbsd-x64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKe
zow==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/sunos-x64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4ga
rKg==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"sunos"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-arm64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3t
A8A==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-ia32": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrEl
f0TiJ1v8fYA==",
"cpu": [
"ia32"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.21.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyM
X4PsQAPjwIw==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.4.0",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdh
ZM1Ne9p/AfA==",
"dev": true,
"dependencies": {
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"peerDependencies": {
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
"node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys":
{
"version": "3.4.3",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/
a2G+iag==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "[Link]
}
},
"node_modules/@eslint-community/regexpp": {
"version": "4.11.1",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXC
Y8Q==",
"dev": true,
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/@eslint/config-array": {
"version": "0.18.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQz
RjkWcGt8IVw==",
"dev": true,
"dependencies": {
"@eslint/object-schema": "^2.1.4",
"debug": "^4.3.1",
"minimatch": "^3.1.2"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/core": {
"version": "0.6.0",
"resolved": "[Link]
"integrity":
"sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFg
iIyHzf03lzg==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/eslintrc": {
"version": "3.1.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR
3zQ==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^10.0.1",
"globals": "^14.0.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
"minimatch": "^3.1.2",
"strip-json-comments": "^3.1.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"url": "[Link]
}
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
"version": "14.0.0",
"resolved": "[Link]
"integrity":
"sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FO
mTYgYwbKwtQ==",
"dev": true,
"engines": {
"node": ">=18"
},
"funding": {
"url": "[Link]
}
},
"node_modules/@eslint/js": {
"version": "9.12.0",
"resolved": "[Link]
"integrity": "sha512-
eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//
9S+Kub4rqE+jXe9Cp1a7IYIIA==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/object-schema": {
"version": "2.1.4",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFX
uQQ==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/plugin-kit": {
"version": "0.2.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6
zblww1zm1Ig==",
"dev": true,
"dependencies": {
"levn": "^0.4.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@humanfs/core": {
"version": "0.19.0",
"resolved": "[Link]
"integrity": "sha512-
2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86
nmw==",
"dev": true,
"engines": {
"node": ">=18.18.0"
}
},
"node_modules/@humanfs/node": {
"version": "0.16.5",
"resolved": "[Link]
"integrity": "sha512-
KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/
oFFg==",
"dev": true,
"dependencies": {
"@humanfs/core": "^0.19.0",
"@humanwhocodes/retry": "^0.3.0"
},
"engines": {
"node": ">=18.18.0"
}
},
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
"resolved":
"[Link]
[Link]",
"integrity": "sha512-
bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtff
LfA==",
"dev": true,
"engines": {
"node": ">=12.22"
},
"funding": {
"type": "github",
"url": "[Link]
}
},
"node_modules/@humanwhocodes/retry": {
"version": "0.3.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2N
xB0ln0yYybA==",
"dev": true,
"engines": {
"node": ">=18.18"
},
"funding": {
"type": "github",
"url": "[Link]
}
},
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "[Link]
"integrity":
"sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1
twdyFybFqEA==",
"dev": true,
"dependencies": {
"string-width": "^5.1.2",
"string-width-cjs": "npm:string-width@^4.2.0",
"strip-ansi": "^7.0.1",
"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
"wrap-ansi": "^8.1.0",
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.5",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/
GaQg==",
"dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/
5hpC9QvmKWdopKw==",
"dev": true,
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/set-array": {
"version": "1.2.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhF
u1sJX0Mnn/A==",
"dev": true,
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.0",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqs
gf+PwPaM7GQ==",
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa
0o9CApepiYQ==",
"dev": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"node_modules/@nodelib/[Link]": {
"version": "2.1.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3
MyqYuMBf62g==",
"dev": true,
"dependencies": {
"@nodelib/[Link]": "2.0.5",
"run-parallel": "^1.1.9"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/@nodelib/[Link]": {
"version": "2.0.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3V
V1SeaqvY4+A==",
"dev": true,
"engines": {
"node": ">= 8"
}
},
"node_modules/@nodelib/[Link]": {
"version": "1.2.8",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/
NSHSV2XAs1lnznocSg==",
"dev": true,
"dependencies": {
"@nodelib/[Link]": "2.1.5",
"fastq": "^1.6.0"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/
tVSshMR6loPMn8U+dPg==",
"dev": true,
"optional": true,
"engines": {
"node": ">=14"
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.24.0",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUV
OZHKr7DmDIA==",
"cpu": [
"arm"
],
"dev": true,
"optional": true,
"os": [
"android"
]
},
"node_modules/@rollup/rollup-android-arm64": {
"version": "4.24.0",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122
xv8kVARNAZA==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"android"
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.24.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqeg
sH18HQPMYtA==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@rollup/rollup-darwin-x64": {
"version": "4.24.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/
9xwJ5U5UfTbl6BEjaQdBQ==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.24.0",
"resolved": "[Link]
gnueabihf/-/[Link]",
"integrity":
"sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9
o/rQaAQ3AYA==",
"cpu": [
"arm"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.24.0",
"resolved": "[Link]
musleabihf/-/[Link]",
"integrity":
"sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/
xEKMgy1MNtYuoA8RFIWw==",
"cpu": [
"arm"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.24.0",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7v
Qc43bwTgPwA==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.24.0",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/
Lc0Wl1L47qjiyQw==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
"version": "4.24.0",
"resolved": "[Link]
gnu/-/[Link]",
"integrity":
"sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2t
OVk2NBwxrWw==",
"cpu": [
"ppc64"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.24.0",
"resolved":
"[Link]
[Link]",
"integrity": "sha512-
M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfy
Kpg==",
"cpu": [
"riscv64"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.24.0",
"resolved":
"[Link]
[Link]",
"integrity": "sha512-
mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D
56g==",
"cpu": [
"s390x"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.24.0",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCe
NAnPUG93b6A==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.24.0",
"resolved":
"[Link]
[Link]",
"integrity": "sha512-
w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+v
obQ==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.24.0",
"resolved":
"[Link]
[Link]",
"integrity": "sha512-
VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/
Cefta0xQtUQ==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"win32"
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.24.0",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+J
WBC/QXRPYWQ==",
"cpu": [
"ia32"
],
"dev": true,
"optional": true,
"os": [
"win32"
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.24.0",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70A
PJ8RN/4vMJw==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"win32"
]
},
"node_modules/@types/babel__core": {
"version": "7.20.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSM
qMIU61yRyzA==",
"dev": true,
"dependencies": {
"@babel/parser": "^7.20.7",
"@babel/types": "^7.20.7",
"@types/babel__generator": "*",
"@types/babel__template": "*",
"@types/babel__traverse": "*"
}
},
"node_modules/@types/babel__generator": {
"version": "7.6.8",
"resolved":
"[Link]
"integrity":
"sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05i
UXcAzVrqWtw==",
"dev": true,
"dependencies": {
"@babel/types": "^7.0.0"
}
},
"node_modules/@types/babel__template": {
"version": "7.4.4",
"resolved":
"[Link]
"integrity":
"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuv
yJ/CaPa2A8A==",
"dev": true,
"dependencies": {
"@babel/parser": "^7.1.0",
"@babel/types": "^7.0.0"
}
},
"node_modules/@types/babel__traverse": {
"version": "7.20.6",
"resolved":
"[Link]
"integrity": "sha512-
r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5r
OZg==",
"dev": true,
"dependencies": {
"@babel/types": "^7.20.7"
}
},
"node_modules/@types/estree": {
"version": "1.0.6",
"resolved": "[Link]
"integrity": "sha512-
AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHW
xcw==",
"dev": true
},
"node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcys
GHA==",
"dev": true
},
"node_modules/@types/prop-types": {
"version": "15.7.13",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/
q4d1Y3E3SyEifA==",
"dev": true
},
"node_modules/@types/react": {
"version": "18.3.11",
"resolved": "[Link]
"integrity": "sha512-
r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16
eTQ==",
"dev": true,
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
}
},
"node_modules/@types/react-dom": {
"version": "18.3.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dn
kQg==",
"dev": true,
"dependencies": {
"@types/react": "*"
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.8.1",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMR
h2a//TiJ1jQ==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "8.8.1",
"@typescript-eslint/type-utils": "8.8.1",
"@typescript-eslint/utils": "8.8.1",
"@typescript-eslint/visitor-keys": "8.8.1",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
"ts-api-utils": "^1.3.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "[Link]
},
"peerDependencies": {
"@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
"eslint": "^8.57.0 || ^9.0.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@typescript-eslint/parser": {
"version": "8.8.1",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U
+ow==",
"dev": true,
"dependencies": {
"@typescript-eslint/scope-manager": "8.8.1",
"@typescript-eslint/types": "8.8.1",
"@typescript-eslint/typescript-estree": "8.8.1",
"@typescript-eslint/visitor-keys": "8.8.1",
"debug": "^4.3.4"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "[Link]
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "8.8.1",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpIC
Wg8vAN74wlA==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "8.8.1",
"@typescript-eslint/visitor-keys": "8.8.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "[Link]
}
},
"node_modules/@typescript-eslint/type-utils": {
"version": "8.8.1",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhx
iZA==",
"dev": true,
"dependencies": {
"@typescript-eslint/typescript-estree": "8.8.1",
"@typescript-eslint/utils": "8.8.1",
"debug": "^4.3.4",
"ts-api-utils": "^1.3.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "[Link]
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@typescript-eslint/types": {
"version": "8.8.1",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC
55Q==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "[Link]
}
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "8.8.1",
"resolved": "[Link]
estree/-/[Link]",
"integrity":
"sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRl
c70NC6HTcdg==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "8.8.1",
"@typescript-eslint/visitor-keys": "8.8.1",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
"minimatch": "^9.0.4",
"semver": "^7.6.0",
"ts-api-utils": "^1.3.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "[Link]
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-
expansion": {
"version": "2.0.1",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCy
tDA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "[Link]
"integrity":
"sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/
wfCabAtAFWhhBow==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "[Link]
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
"version": "7.6.3",
"resolved": "[Link]
"integrity":
"sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7
ZPYRmzU9U6A==",
"dev": true,
"bin": {
"semver": "bin/[Link]"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@typescript-eslint/utils": {
"version": "8.8.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0if
b5uQhMj8d9w==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@typescript-eslint/scope-manager": "8.8.1",
"@typescript-eslint/types": "8.8.1",
"@typescript-eslint/typescript-estree": "8.8.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "[Link]
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0"
}
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "8.8.1",
"resolved":
"[Link]
[Link]",
"integrity":
"sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/
WoZQd3lJoDXFQpag==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "8.8.1",
"eslint-visitor-keys": "^3.4.3"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "[Link]
}
},
"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-
keys": {
"version": "3.4.3",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/
a2G+iag==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "[Link]
}
},
"node_modules/@vitejs/plugin-react": {
"version": "4.3.2",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN
8vg==",
"dev": true,
"dependencies": {
"@babel/core": "^7.25.2",
"@babel/plugin-transform-react-jsx-self": "^7.24.7",
"@babel/plugin-transform-react-jsx-source": "^7.24.7",
"@types/babel__core": "^7.20.5",
"react-refresh": "^0.14.2"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
"peerDependencies": {
"vite": "^4.2.0 || ^5.0.0"
}
},
"node_modules/acorn": {
"version": "8.12.1",
"resolved": "[Link]
"integrity":
"sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3
ADxErOuO6Jg==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "[Link]
"integrity": "sha512-
rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFD
XgQ==",
"dev": true,
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "[Link]
"integrity": "sha512-
j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoM
g4g==",
"dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
},
"funding": {
"type": "github",
"url": "[Link]
}
},
"node_modules/ansi-regex": {
"version": "6.1.0",
"resolved": "[Link]
"integrity": "sha512-
7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkp
kvA==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "[Link]
}
},
"node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "[Link]
"integrity":
"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntl
qFxiRc+r5qA==",
"dev": true,
"dependencies": {
"color-convert": "^1.9.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/any-promise": {
"version": "1.3.0",
"resolved": "[Link]
"integrity":
"sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX
9OB4MZR1b2A==",
"dev": true
},
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "[Link]
"integrity": "sha512-
KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/
zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/arg": {
"version": "5.0.2",
"resolved": "[Link]
"integrity":
"sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6
I1kQ/I9HUGg==",
"dev": true
},
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "[Link]
"integrity": "sha512-
8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/
bEBg3DvurK3Q==",
"dev": true
},
"node_modules/autoprefixer": {
"version": "10.4.20",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6
+c7wUvx/16g==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "[Link]
},
{
"type": "tidelift",
"url": "[Link]
},
{
"type": "github",
"url": "[Link]
}
],
"dependencies": {
"browserslist": "^4.23.3",
"caniuse-lite": "^1.0.30001646",
"[Link]": "^4.3.7",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.1",
"postcss-value-parser": "^4.2.0"
},
"bin": {
"autoprefixer": "bin/autoprefixer"
},
"engines": {
"node": "^10 || ^12 || >=14"
},
"peerDependencies": {
"postcss": "^8.1.0"
}
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU
5Pw==",
"dev": true
},
"node_modules/binary-extensions": {
"version": "2.3.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQO
f3hl0jjMMIw==",
"dev": true,
"engines": {
"node": ">=8"
},
"funding": {
"url": "[Link]
}
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgW
KcYFb61qGiA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/braces": {
"version": "3.0.3",
"resolved": "[Link]
"integrity":
"sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/
lxc1BzfMpxvA==",
"dev": true,
"dependencies": {
"fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/browserslist": {
"version": "4.24.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/
9k884A==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "[Link]
},
{
"type": "tidelift",
"url": "[Link]
},
{
"type": "github",
"url": "[Link]
}
],
"dependencies": {
"caniuse-lite": "^1.0.30001663",
"electron-to-chromium": "^1.5.28",
"node-releases": "^2.0.18",
"update-browserslist-db": "^1.1.0"
},
"bin": {
"browserslist": "[Link]"
},
"engines": {
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "[Link]
"integrity": "sha512-
P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7s
saQ==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/camelcase-css": {
"version": "2.0.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnX
WqS+iOY+2aA==",
"dev": true,
"engines": {
"node": ">= 6"
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001667",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/
Oxzmt4fNcPvTDvGqSDG4tCALw==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "[Link]
},
{
"type": "tidelift",
"url": "[Link]
},
{
"type": "github",
"url": "[Link]
}
]
},
"node_modules/chalk": {
"version": "2.4.2",
"resolved": "[Link]
"integrity":
"sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1
xckQU4peSuQ==",
"dev": true,
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/chokidar": {
"version": "3.6.0",
"resolved": "[Link]
"integrity":
"sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBq
mPAQgDda2Pw==",
"dev": true,
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
"glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.6.0"
},
"engines": {
"node": ">= 8.10.0"
},
"funding": {
"url": "[Link]
},
"optionalDependencies": {
"fsevents": "~2.3.2"
}
},
"node_modules/chokidar/node_modules/glob-parent": {
"version": "5.1.2",
"resolved": "[Link]
"integrity": "sha512-
AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/
SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/
IuDGALsNVbGg==",
"dev": true,
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/color-name": {
"version": "1.1.3",
"resolved": "[Link]
"integrity": "sha512-
72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NE
XDw==",
"dev": true
},
"node_modules/commander": {
"version": "4.1.1",
"resolved": "[Link]
"integrity":
"sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbM
ULvShKj26WA==",
"dev": true,
"engines": {
"node": ">= 6"
}
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "[Link]
"integrity":
"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHd
odFvbkhKmqg==",
"dev": true
},
"node_modules/convert-source-map": {
"version": "2.0.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3a
RJg==",
"dev": true
},
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "[Link]
"integrity": "sha512-
iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7
G6w==",
"dev": true,
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
"which": "^2.0.1"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "[Link]
"integrity":
"sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5n
t5EbFoAz/Vg==",
"dev": true,
"bin": {
"cssesc": "bin/cssesc"
},
"engines": {
"node": ">=4"
}
},
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "[Link]
"integrity":
"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/
yOxHH5O7tIuuLOCnLADRw==",
"dev": true
},
"node_modules/debug": {
"version": "4.3.7",
"resolved": "[Link]
"integrity":
"sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/
+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
"dependencies": {
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/deep-is": {
"version": "0.1.4",
"resolved": "[Link]
"integrity":
"sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+
URMg3t8a/bQ==",
"dev": true
},
"node_modules/didyoumean": {
"version": "1.2.2",
"resolved": "[Link]
"integrity":
"sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifon
a89YtRATDzw==",
"dev": true
},
"node_modules/dlv": {
"version": "1.1.3",
"resolved": "[Link]
"integrity": "sha512-
+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkj
XwA==",
"dev": true
},
"node_modules/eastasianwidth": {
"version": "0.2.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iL
qWA==",
"dev": true
},
"node_modules/electron-to-chromium": {
"version": "1.5.33",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IO
IwA==",
"dev": true
},
"node_modules/emoji-regex": {
"version": "9.2.2",
"resolved": "[Link]
"integrity": "sha512-
L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/
Vyg==",
"dev": true
},
"node_modules/esbuild": {
"version": "0.21.5",
"resolved": "[Link]
"integrity":
"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lO
USC/RVKaBqw==",
"dev": true,
"hasInstallScript": true,
"bin": {
"esbuild": "bin/esbuild"
},
"engines": {
"node": ">=12"
},
"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"
}
},
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "[Link]
"integrity": "sha512-
WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje
/jA==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35
DSfo1qvJqFg==",
"dev": true,
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/eslint": {
"version": "9.12.0",
"resolved": "[Link]
"integrity": "sha512-
UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRu
GZw==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.11.0",
"@eslint/config-array": "^0.18.0",
"@eslint/core": "^0.6.0",
"@eslint/eslintrc": "^3.1.0",
"@eslint/js": "9.12.0",
"@eslint/plugin-kit": "^0.2.0",
"@humanfs/node": "^0.16.5",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.3.1",
"@types/estree": "^1.0.6",
"@types/json-schema": "^7.0.15",
"ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^8.1.0",
"eslint-visitor-keys": "^4.1.0",
"espree": "^10.2.0",
"esquery": "^1.5.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^8.0.0",
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
"ignore": "^5.2.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
"[Link]": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.3",
"text-table": "^0.2.0"
},
"bin": {
"eslint": "bin/[Link]"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"url": "[Link]
},
"peerDependencies": {
"jiti": "*"
},
"peerDependenciesMeta": {
"jiti": {
"optional": true
}
}
},
"node_modules/eslint-plugin-react-hooks": {
"version": "5.1.0-rc-fb9a90fa48-20240614",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPP
noNVjq5Gc0w==",
"dev": true,
"engines": {
"node": ">=10"
},
"peerDependencies": {
"eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 ||
^9.0.0"
}
},
"node_modules/eslint-plugin-react-refresh": {
"version": "0.4.12",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-9neVjoGv20FwYtCP6CB1dzR1vr57ZDNOXst21wd2xJ/cTlM2xLq0GWVlSNTdMn/
4BtP6cHYBMCSp1wFBJ9jBsg==",
"dev": true,
"peerDependencies": {
"eslint": ">=7"
}
},
"node_modules/eslint-scope": {
"version": "8.1.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78
EQw==",
"dev": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"url": "[Link]
}
},
"node_modules/eslint-visitor-keys": {
"version": "4.1.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFW
tLQYreLzrZg==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"url": "[Link]
}
},
"node_modules/eslint/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "[Link]
"integrity": "sha512-
zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQ
SEg==",
"dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "[Link]
}
},
"node_modules/eslint/node_modules/chalk": {
"version": "4.1.2",
"resolved": "[Link]
"integrity":
"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw
9CpQ061i4mA==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "[Link]
}
},
"node_modules/eslint/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/
U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/eslint/node_modules/color-name": {
"version": "1.1.4",
"resolved": "[Link]
"integrity":
"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY
9OgQGXgAsQA==",
"dev": true
},
"node_modules/eslint/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJW
dgA==",
"dev": true,
"engines": {
"node": ">=10"
},
"funding": {
"url": "[Link]
}
},
"node_modules/eslint/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "[Link]
"integrity":
"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG
/ZxU3EvlMPQ==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/eslint/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/
DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/espree": {
"version": "10.2.0",
"resolved": "[Link]
"integrity":
"sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sx
DFrxsI1v0/g==",
"dev": true,
"dependencies": {
"acorn": "^8.12.0",
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^4.1.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"url": "[Link]
}
},
"node_modules/esquery": {
"version": "1.6.0",
"resolved": "[Link]
"integrity":
"sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxH
mcUHcz6sQsg==",
"dev": true,
"dependencies": {
"estraverse": "^5.1.0"
},
"engines": {
"node": ">=0.10"
}
},
"node_modules/esrecurse": {
"version": "4.3.0",
"resolved": "[Link]
"integrity":
"sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/
ffioHmkti6/Tag==",
"dev": true,
"dependencies": {
"estraverse": "^5.2.0"
},
"engines": {
"node": ">=4.0"
}
},
"node_modules/estraverse": {
"version": "5.3.0",
"resolved": "[Link]
"integrity":
"sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/
7A9f3gUw49B3oQsvwBA==",
"dev": true,
"engines": {
"node": ">=4.0"
}
},
"node_modules/esutils": {
"version": "2.0.3",
"resolved": "[Link]
"integrity":
"sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/
LX9D7FWSmV9SAYx6g==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI+
+xlpDCIgDaitVs03ATR84Q==",
"dev": true
},
"node_modules/fast-glob": {
"version": "3.3.2",
"resolved": "[Link]
"integrity":
"sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbV
lUNatxd+1Ow==",
"dev": true,
"dependencies": {
"@nodelib/[Link]": "^2.0.2",
"@nodelib/[Link]": "^1.2.3",
"glob-parent": "^5.1.2",
"merge2": "^1.3.0",
"micromatch": "^4.0.4"
},
"engines": {
"node": ">=8.6.0"
}
},
"node_modules/fast-glob/node_modules/glob-parent": {
"version": "5.1.2",
"resolved": "[Link]
"integrity": "sha512-
AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/
SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmql
kwjCV8xvwHw==",
"dev": true
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/
ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true
},
"node_modules/fastq": {
"version": "1.17.1",
"resolved": "[Link]
"integrity":
"sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu2
5f7Kaw2jN1w==",
"dev": true,
"dependencies": {
"reusify": "^1.0.4"
}
},
"node_modules/file-entry-cache": {
"version": "8.0.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco
1DEMNVfZCnQ==",
"dev": true,
"dependencies": {
"flat-cache": "^4.0.0"
},
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "[Link]
"integrity":
"sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaL
yKrc+hBW0yg==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "[Link]
"integrity":
"sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvN
trJRiW6nGng==",
"dev": true,
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "[Link]
}
},
"node_modules/flat-cache": {
"version": "4.0.1",
"resolved": "[Link]
"integrity":
"sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq2
2t5DmAyqGyw==",
"dev": true,
"dependencies": {
"flatted": "^3.2.9",
"keyv": "^4.5.4"
},
"engines": {
"node": ">=16"
}
},
"node_modules/flatted": {
"version": "3.3.1",
"resolved": "[Link]
"integrity":
"sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9s
H51jVaEhNxw==",
"dev": true
},
"node_modules/foreground-child": {
"version": "3.3.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWm
yFIj5UbfFvg==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.0",
"signal-exit": "^4.0.1"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "[Link]
}
},
"node_modules/[Link]": {
"version": "4.3.7",
"resolved": "[Link]
"integrity":
"sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTb
JvjS4M89yew==",
"dev": true,
"engines": {
"node": "*"
},
"funding": {
"type": "patreon",
"url": "[Link]
}
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "[Link]
"integrity":
"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212X
NoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUg
R82nJMfG2SA==",
"dev": true,
"funding": {
"url": "[Link]
}
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "[Link]
"integrity": "sha512-
3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/
TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/glob": {
"version": "10.4.5",
"resolved": "[Link]
"integrity":
"sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9
h7EYbM3/sHg==",
"dev": true,
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
"minimatch": "^9.0.4",
"minipass": "^7.1.2",
"package-json-from-dist": "^1.0.0",
"path-scurry": "^1.11.1"
},
"bin": {
"glob": "dist/esm/[Link]"
},
"funding": {
"url": "[Link]
}
},
"node_modules/glob-parent": {
"version": "6.0.2",
"resolved": "[Link]
"integrity": "sha512-
XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/
11rt4KJPTMgbfmv4A==",
"dev": true,
"dependencies": {
"is-glob": "^4.0.3"
},
"engines": {
"node": ">=10.13.0"
}
},
"node_modules/glob/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCy
tDA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/glob/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "[Link]
"integrity":
"sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/
wfCabAtAFWhhBow==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "[Link]
}
},
"node_modules/globals": {
"version": "15.11.0",
"resolved": "[Link]
"integrity":
"sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhT
tJaffL2sMfw==",
"dev": true,
"engines": {
"node": ">=18"
},
"funding": {
"url": "[Link]
}
},
"node_modules/graphemer": {
"version": "1.4.0",
"resolved": "[Link]
"integrity":
"sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCO
VaFq9x1kgag==",
"dev": true
},
"node_modules/has-flag": {
"version": "3.0.0",
"resolved": "[Link]
"integrity": "sha512-
sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/
dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "[Link]
"integrity": "sha512-
0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjk
UMQ==",
"dev": true,
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/ignore": {
"version": "5.3.2",
"resolved": "[Link]
"integrity":
"sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/
pjDy5HBmMjRCJ2gq+g==",
"dev": true,
"engines": {
"node": ">= 4"
}
},
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5Fzg
QMw==",
"dev": true,
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
},
"engines": {
"node": ">=6"
},
"funding": {
"url": "[Link]
}
},
"node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "[Link]
"integrity": "sha512-
JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2
PHA==",
"dev": true,
"engines": {
"node": ">=0.8.19"
}
},
"node_modules/is-binary-path": {
"version": "2.1.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVc
EM97mmtRGXw==",
"dev": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/is-core-module": {
"version": "2.15.1",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1dj
EVQ==",
"dev": true,
"dependencies": {
"hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "[Link]
}
},
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "[Link]
"integrity": "sha512-
SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3j
soQ==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6
XQg==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "[Link]
"integrity": "sha512-
xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4el
SSg==",
"dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "[Link]
"integrity": "sha512-
41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYx
xng==",
"dev": true,
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "[Link]
"integrity": "sha512-
RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQ
eIw==",
"dev": true
},
"node_modules/jackspeak": {
"version": "3.4.3",
"resolved": "[Link]
"integrity":
"sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/
npPWugM+RQBw==",
"dev": true,
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
"funding": {
"url": "[Link]
},
"optionalDependencies": {
"@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/jiti": {
"version": "1.21.6",
"resolved": "[Link]
"integrity": "sha512-
2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/
aflH0osDfwpHepQ53w==",
"dev": true,
"bin": {
"jiti": "bin/[Link]"
}
},
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "[Link]
"integrity": "sha512-
RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/
PKQ=="
},
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "[Link]
"integrity": "sha512-
wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtW
vRA==",
"dev": true,
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/[Link]"
}
},
"node_modules/jsesc": {
"version": "3.0.2",
"resolved": "[Link]
"integrity":
"sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMb
bgXj4CwnP4g==",
"dev": true,
"bin": {
"jsesc": "bin/jsesc"
},
"engines": {
"node": ">=6"
}
},
"node_modules/json-buffer": {
"version": "3.0.1",
"resolved": "[Link]
"integrity":
"sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJl
m9G6mI2sfSQ==",
"dev": true
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/
mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "[Link]
jsonify/-/[Link]",
"integrity":
"sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu
87CisVir6Pw==",
"dev": true
},
"node_modules/json5": {
"version": "2.2.3",
"resolved": "[Link]
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX+
+KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
"bin": {
"json5": "lib/[Link]"
},
"engines": {
"node": ">=6"
}
},
"node_modules/keyv": {
"version": "4.5.4",
"resolved": "[Link]
"integrity":
"sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/
fn1kjsx7mjSujKqIpw==",
"dev": true,
"dependencies": {
"json-buffer": "3.0.1"
}
},
"node_modules/levn": {
"version": "0.4.1",
"resolved": "[Link]
"integrity":
"sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/
5QBGBhxDix1dMt2kQKQ==",
"dev": true,
"dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/lilconfig": {
"version": "3.1.3",
"resolved": "[Link]
"integrity":
"sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/
LzjsBeItPt3oSVXapn+m4nQDvpzw==",
"dev": true,
"engines": {
"node": ">=14"
},
"funding": {
"url": "[Link]
}
},
"node_modules/lines-and-columns": {
"version": "1.2.4",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5
QZg6Mt/HkBg==",
"dev": true
},
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "[Link]
"integrity":
"sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHx
Tn2NHBSDVUw==",
"dev": true,
"dependencies": {
"p-locate": "^5.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "[Link]
}
},
"node_modules/[Link]": {
"version": "4.6.2",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/
YUuhyYDujIQ==",
"dev": true
},
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY4
08EtxRSoK3Q==",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
"bin": {
"loose-envify": "[Link]"
}
},
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "[Link]
"integrity":
"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8v
N1aesBFgo9w==",
"dev": true,
"dependencies": {
"yallist": "^3.0.2"
}
},
"node_modules/lucide-react": {
"version": "0.344.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
6YyBnn91GB45VuVT96bYCOKElbJzUHqp65vX8cDcu55MQL9T969v4dhGClpljamuI/
+KMO9P6w9Acq1CVQGvIQ==",
"peerDependencies": {
"react": "^16.5.1 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "[Link]
"integrity":
"sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P
2P5y00ZJOOg==",
"dev": true,
"engines": {
"node": ">= 8"
}
},
"node_modules/micromatch": {
"version": "4.0.8",
"resolved": "[Link]
"integrity": "sha512-
PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/
PzEJQxsYsEiFCKo2BA==",
"dev": true,
"dependencies": {
"braces": "^3.0.3",
"picomatch": "^2.3.1"
},
"engines": {
"node": ">=8.6"
}
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "[Link]
"integrity":
"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO
+K5aqBQOIHw==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/minipass": {
"version": "7.1.2",
"resolved": "[Link]
"integrity":
"sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7F
L659nX9S2aw==",
"dev": true,
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/ms": {
"version": "2.1.3",
"resolved": "[Link]
"integrity":
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/
XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
},
"node_modules/mz": {
"version": "2.7.0",
"resolved": "[Link]
"integrity": "sha512-
z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN
62Q==",
"dev": true,
"dependencies": {
"any-promise": "^1.0.0",
"object-assign": "^4.0.1",
"thenify-all": "^1.0.0"
}
},
"node_modules/nanoid": {
"version": "3.3.7",
"resolved": "[Link]
"integrity": "sha512-
eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QE
o2g==",
"dev": true,
"funding": [
{
"type": "github",
"url": "[Link]
}
],
"bin": {
"nanoid": "bin/[Link]"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8Z
MSw==",
"dev": true
},
"node_modules/node-releases": {
"version": "2.0.18",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS
40g==",
"dev": true
},
"node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/
mD4WYojCRwcwLA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/normalize-range": {
"version": "0.1.2",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5
CLtw4jPRKNA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+B
cUg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-hash": {
"version": "3.0.0",
"resolved": "[Link]
"integrity": "sha512-
RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrkl
WAw==",
"dev": true,
"engines": {
"node": ">= 6"
}
},
"node_modules/optionator": {
"version": "0.9.4",
"resolved": "[Link]
"integrity": "sha512-
6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/
rz0PWaWZ9ayWmad9g==",
"dev": true,
"dependencies": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
"type-check": "^0.4.0",
"word-wrap": "^1.2.5"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "[Link]
"integrity":
"sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFd
uxU5Xc6uJRQ==",
"dev": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "[Link]
}
},
"node_modules/p-locate": {
"version": "5.0.0",
"resolved": "[Link]
"integrity":
"sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/
QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
"dependencies": {
"p-limit": "^3.0.2"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "[Link]
}
},
"node_modules/package-json-from-dist": {
"version": "1.0.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/
+7CAo2pIcBaRgWmcBBHcsaCIw==",
"dev": true
},
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3L
ot5kcsRlh+g==",
"dev": true,
"dependencies": {
"callsites": "^3.0.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "[Link]
"integrity":
"sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8Fnm
B4MG4LWy7/w==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "[Link]
"integrity": "sha512-
ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLh
E6Q==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "[Link]
"integrity":
"sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp
8ahvOIQD8sw==",
"dev": true
},
"node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/
v1HA==",
"dev": true,
"dependencies": {
"lru-cache": "^10.2.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
"node": ">=16 || 14 >=14.18"
},
"funding": {
"url": "[Link]
}
},
"node_modules/path-scurry/node_modules/lru-cache": {
"version": "10.4.3",
"resolved": "[Link]
"integrity": "sha512-
JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt
6SQ==",
"dev": true
},
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "[Link]
"integrity":
"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/
Lcu0X8KEyMceP2ntpaHrDEVA==",
"dev": true
},
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "[Link]
"integrity": "sha512-
JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQ
UVA==",
"dev": true,
"engines": {
"node": ">=8.6"
},
"funding": {
"url": "[Link]
}
},
"node_modules/pify": {
"version": "2.3.0",
"resolved": "[Link]
"integrity": "sha512-
udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/
FT1R09r9gTsjUjNJotuog==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/pirates": {
"version": "4.0.6",
"resolved": "[Link]
"integrity":
"sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/
Kk50s1g2JTgFwWQDQyplC5/SHZg==",
"dev": true,
"engines": {
"node": ">= 6"
}
},
"node_modules/postcss": {
"version": "8.4.47",
"resolved": "[Link]
"integrity":
"sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCb
Y6u88Y76GLQ==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "[Link]
},
{
"type": "tidelift",
"url": "[Link]
},
{
"type": "github",
"url": "[Link]
}
],
"dependencies": {
"nanoid": "^3.3.7",
"picocolors": "^1.1.0",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/postcss-import": {
"version": "15.1.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqq
p/49t8FALew==",
"dev": true,
"dependencies": {
"postcss-value-parser": "^4.0.0",
"read-cache": "^1.0.0",
"resolve": "^1.1.7"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"postcss": "^8.0.0"
}
},
"node_modules/postcss-js": {
"version": "4.0.1",
"resolved": "[Link]
"integrity": "sha512-
dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//
4SeJma2LRVIw==",
"dev": true,
"dependencies": {
"camelcase-css": "^2.0.1"
},
"engines": {
"node": "^12 || ^14 || >= 16"
},
"funding": {
"type": "opencollective",
"url": "[Link]
},
"peerDependencies": {
"postcss": "^8.4.21"
}
},
"node_modules/postcss-load-config": {
"version": "4.0.2",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VV
gMQ==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "[Link]
},
{
"type": "github",
"url": "[Link]
}
],
"dependencies": {
"lilconfig": "^3.0.0",
"yaml": "^2.3.4"
},
"engines": {
"node": ">= 14"
},
"peerDependencies": {
"postcss": ">=8.0.9",
"ts-node": ">=9.0.0"
},
"peerDependenciesMeta": {
"postcss": {
"optional": true
},
"ts-node": {
"optional": true
}
}
},
"node_modules/postcss-nested": {
"version": "6.2.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bp
gzQ==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "[Link]
},
{
"type": "github",
"url": "[Link]
}
],
"dependencies": {
"postcss-selector-parser": "^6.1.1"
},
"engines": {
"node": ">=12.0"
},
"peerDependencies": {
"postcss": "^8.2.14"
}
},
"node_modules/postcss-selector-parser": {
"version": "6.1.2",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu
8yFsiMRIudg==",
"dev": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
},
"engines": {
"node": ">=4"
}
},
"node_modules/postcss-value-parser": {
"version": "4.2.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/
7Bttv5axS5IiHoLaVNHeQ==",
"dev": true
},
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "[Link]
"integrity":
"sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3
VRyrYHSzX5g==",
"dev": true,
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "[Link]
"integrity":
"sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7
nKVZFtfq8Fg==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3
K9A==",
"dev": true,
"funding": [
{
"type": "github",
"url": "[Link]
},
{
"type": "patreon",
"url": "[Link]
},
{
"type": "consulting",
"url": "[Link]
}
]
},
"node_modules/react": {
"version": "18.3.1",
"resolved": "[Link]
"integrity":
"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/
oWgHgm4WIcV+i7F2pTVj+2iQ==",
"dependencies": {
"loose-envify": "^1.1.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
"version": "18.3.1",
"resolved": "[Link]
"integrity":
"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23t
RnTWT0snUIw==",
"dependencies": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
},
"peerDependencies": {
"react": "^18.3.1"
}
},
"node_modules/react-refresh": {
"version": "0.14.2",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDG
pZA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/read-cache": {
"version": "1.0.0",
"resolved": "[Link]
"integrity":
"sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+ATho
TpDCTxCmpRA==",
"dev": true,
"dependencies": {
"pify": "^2.3.0"
}
},
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "[Link]
"integrity": "sha512-
hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRl
MzA==",
"dev": true,
"dependencies": {
"picomatch": "^2.2.1"
},
"engines": {
"node": ">=8.10.0"
}
},
"node_modules/resolve": {
"version": "1.22.8",
"resolved": "[Link]
"integrity": "sha512-
oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168y
Iyw==",
"dev": true,
"dependencies": {
"is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
"resolve": "bin/resolve"
},
"funding": {
"url": "[Link]
}
},
"node_modules/resolve-from": {
"version": "4.0.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7Fwvqu
PJcnZ7RYy4g==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/reusify": {
"version": "1.0.4",
"resolved": "[Link]
"integrity":
"sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/
uwyaLVT6fbtCwTyzw==",
"dev": true,
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
}
},
"node_modules/rollup": {
"version": "4.24.0",
"resolved": "[Link]
"integrity": "sha512-
DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet
+Cg==",
"dev": true,
"dependencies": {
"@types/estree": "1.0.6"
},
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
"node": ">=18.0.0",
"npm": ">=8.0.0"
},
"optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.24.0",
"@rollup/rollup-android-arm64": "4.24.0",
"@rollup/rollup-darwin-arm64": "4.24.0",
"@rollup/rollup-darwin-x64": "4.24.0",
"@rollup/rollup-linux-arm-gnueabihf": "4.24.0",
"@rollup/rollup-linux-arm-musleabihf": "4.24.0",
"@rollup/rollup-linux-arm64-gnu": "4.24.0",
"@rollup/rollup-linux-arm64-musl": "4.24.0",
"@rollup/rollup-linux-powerpc64le-gnu": "4.24.0",
"@rollup/rollup-linux-riscv64-gnu": "4.24.0",
"@rollup/rollup-linux-s390x-gnu": "4.24.0",
"@rollup/rollup-linux-x64-gnu": "4.24.0",
"@rollup/rollup-linux-x64-musl": "4.24.0",
"@rollup/rollup-win32-arm64-msvc": "4.24.0",
"@rollup/rollup-win32-ia32-msvc": "4.24.0",
"@rollup/rollup-win32-x64-msvc": "4.24.0",
"fsevents": "~2.3.2"
}
},
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPm
naJOMoDHQBA==",
"dev": true,
"funding": [
{
"type": "github",
"url": "[Link]
},
{
"type": "patreon",
"url": "[Link]
},
{
"type": "consulting",
"url": "[Link]
}
],
"dependencies": {
"queue-microtask": "^1.2.2"
}
},
"node_modules/scheduler": {
"version": "0.23.2",
"resolved": "[Link]
"integrity":
"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/
Zl/tVrDqcuYzQ==",
"dependencies": {
"loose-envify": "^1.1.0"
}
},
"node_modules/semver": {
"version": "6.3.1",
"resolved": "[Link]
"integrity": "sha512-
BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/
MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"bin": {
"semver": "bin/[Link]"
}
},
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/
yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"dependencies": {
"shebang-regex": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/shebang-regex": {
"version": "3.0.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-7+
+dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/
yhz8ekcb1A==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/signal-exit": {
"version": "4.1.0",
"resolved": "[Link]
"integrity": "sha512-
bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9K
orw==",
"dev": true,
"engines": {
"node": ">=14"
},
"funding": {
"url": "[Link]
}
},
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8V
Q8+IDQxpfQA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/string-width": {
"version": "5.1.2",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKT
W6wC7EMiVqA==",
"dev": true,
"dependencies": {
"eastasianwidth": "^0.2.0",
"emoji-regex": "^9.2.2",
"strip-ansi": "^7.0.1"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "[Link]
}
},
"node_modules/string-width-cjs": {
"name": "string-width",
"version": "4.2.3",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/
cxKTWyWUwvSTriiZz/g==",
"dev": true,
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/string-width-cjs/node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "[Link]
"integrity": "sha512-
quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/
ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/string-width-cjs/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "[Link]
"integrity":
"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14
SawnVUmGE6A==",
"dev": true
},
"node_modules/string-width-cjs/node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "[Link]
"integrity": "sha512-
Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/
0ooI7KrPuUSztUdU5A==",
"dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-ansi": {
"version": "7.1.0",
"resolved": "[Link]
"integrity":
"sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/
IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
"dependencies": {
"ansi-regex": "^6.0.1"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "[Link]
}
},
"node_modules/strip-ansi-cjs": {
"name": "strip-ansi",
"version": "6.0.1",
"resolved": "[Link]
"integrity": "sha512-
Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/
0ooI7KrPuUSztUdU5A==",
"dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "[Link]
"integrity": "sha512-
quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/
ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/strip-json-comments": {
"version": "3.1.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/
mEHLp7Vehlt3ql6lEig==",
"dev": true,
"engines": {
"node": ">=8"
},
"funding": {
"url": "[Link]
}
},
"node_modules/sucrase": {
"version": "3.35.0",
"resolved": "[Link]
"integrity":
"sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaS
RUc/QPoQ0GA==",
"dev": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.2",
"commander": "^4.0.0",
"glob": "^10.3.10",
"lines-and-columns": "^1.1.6",
"mz": "^2.7.0",
"pirates": "^4.0.1",
"ts-interface-checker": "^0.1.9"
},
"bin": {
"sucrase": "bin/sucrase",
"sucrase-node": "bin/sucrase-node"
},
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/supports-color": {
"version": "5.5.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0Q
Mow==",
"dev": true,
"dependencies": {
"has-flag": "^3.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved":
"[Link]
[Link]",
"integrity": "sha512-
ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MA
t0w==",
"dev": true,
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "[Link]
}
},
"node_modules/tailwindcss": {
"version": "3.4.17",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUh
P2tueAKP8Og==",
"dev": true,
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
"arg": "^5.0.2",
"chokidar": "^3.6.0",
"didyoumean": "^1.2.2",
"dlv": "^1.1.3",
"fast-glob": "^3.3.2",
"glob-parent": "^6.0.2",
"is-glob": "^4.0.3",
"jiti": "^1.21.6",
"lilconfig": "^3.1.3",
"micromatch": "^4.0.8",
"normalize-path": "^3.0.0",
"object-hash": "^3.0.0",
"picocolors": "^1.1.1",
"postcss": "^8.4.47",
"postcss-import": "^15.1.0",
"postcss-js": "^4.0.1",
"postcss-load-config": "^4.0.2",
"postcss-nested": "^6.2.0",
"postcss-selector-parser": "^6.1.2",
"resolve": "^1.22.8",
"sucrase": "^3.35.0"
},
"bin": {
"tailwind": "lib/[Link]",
"tailwindcss": "lib/[Link]"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "[Link]
"integrity": "sha512-
N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2c
Spw==",
"dev": true
},
"node_modules/thenify": {
"version": "3.3.1",
"resolved": "[Link]
"integrity":
"sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllz
WPwak+bheSw==",
"dev": true,
"dependencies": {
"any-promise": "^1.0.0"
}
},
"node_modules/thenify-all": {
"version": "1.6.0",
"resolved": "[Link]
"integrity":
"sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2
oVWi3T4uVmA==",
"dev": true,
"dependencies": {
"thenify": ">= 3.1.0 < 4"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/to-fast-properties": {
"version": "2.0.0",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/
hbRzyD6Y3sA7v7GS/ceog==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiG
qrADCSNk8sQ==",
"dev": true,
"dependencies": {
"is-number": "^7.0.0"
},
"engines": {
"node": ">=8.0"
}
},
"node_modules/ts-api-utils": {
"version": "1.3.0",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU
+eQ==",
"dev": true,
"engines": {
"node": ">=16"
},
"peerDependencies": {
"typescript": ">=4.2.0"
}
},
"node_modules/ts-interface-checker": {
"version": "0.1.13",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc
3Ur3bTQw0gA==",
"dev": true
},
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "[Link]
"integrity": "sha512-
XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79O
oew==",
"dev": true,
"dependencies": {
"prelude-ls": "^1.2.1"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/typescript": {
"version": "5.6.3",
"resolved": "[Link]
"integrity": "sha512-
hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn
1qw==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
},
"node_modules/typescript-eslint": {
"version": "8.8.1",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4Pb
QMQ==",
"dev": true,
"dependencies": {
"@typescript-eslint/eslint-plugin": "8.8.1",
"@typescript-eslint/parser": "8.8.1",
"@typescript-eslint/utils": "8.8.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "[Link]
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/update-browserslist-db": {
"version": "1.1.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5
+lo5r94l29A==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "[Link]
},
{
"type": "tidelift",
"url": "[Link]
},
{
"type": "github",
"url": "[Link]
}
],
"dependencies": {
"escalade": "^3.2.0",
"picocolors": "^1.1.0"
},
"bin": {
"update-browserslist-db": "[Link]"
},
"peerDependencies": {
"browserslist": ">= 4.21.0"
}
},
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "[Link]
"integrity": "sha512-
7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvn
dBg==",
"dev": true,
"dependencies": {
"punycode": "^2.1.0"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "[Link]
[Link]",
"integrity": "sha512-
EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//
LTEQ8xiIbrHtcw==",
"dev": true
},
"node_modules/vite": {
"version": "5.4.8",
"resolved": "[Link]
"integrity":
"sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmq
akQcgnL4GiQ==",
"dev": true,
"dependencies": {
"esbuild": "^0.21.3",
"postcss": "^8.4.43",
"rollup": "^4.20.0"
},
"bin": {
"vite": "bin/[Link]"
},
"engines": {
"node": "^18.0.0 || >=20.0.0"
},
"funding": {
"url": "[Link]
},
"optionalDependencies": {
"fsevents": "~2.3.3"
},
"peerDependencies": {
"@types/node": "^18.0.0 || >=20.0.0",
"less": "*",
"lightningcss": "^1.21.0",
"sass": "*",
"sass-embedded": "*",
"stylus": "*",
"sugarss": "*",
"terser": "^5.4.0"
},
"peerDependenciesMeta": {
"@types/node": {
"optional": true
},
"less": {
"optional": true
},
"lightningcss": {
"optional": true
},
"sass": {
"optional": true
},
"sass-embedded": {
"optional": true
},
"stylus": {
"optional": true
},
"sugarss": {
"optional": true
},
"terser": {
"optional": true
}
}
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "[Link]
"integrity": "sha512-
BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMj
ibA==",
"dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
"bin": {
"node-which": "bin/node-which"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/word-wrap": {
"version": "1.2.5",
"resolved": "[Link]
"integrity": "sha512-
BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B
5cA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/wrap-ansi": {
"version": "8.1.0",
"resolved": "[Link]
"integrity": "sha512-
si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71
NCQ==",
"dev": true,
"dependencies": {
"ansi-styles": "^6.1.0",
"string-width": "^5.0.1",
"strip-ansi": "^7.0.1"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "[Link]
}
},
"node_modules/wrap-ansi-cjs": {
"name": "wrap-ansi",
"version": "7.0.0",
"resolved": "[Link]
"integrity": "sha512-
YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/
Fi7D16Q==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "[Link]
}
},
"node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "[Link]
"integrity": "sha512-
quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/
ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "[Link]
"integrity": "sha512-
zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQ
SEg==",
"dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "[Link]
}
},
"node_modules/wrap-ansi-cjs/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/
U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/wrap-ansi-cjs/node_modules/color-name": {
"version": "1.1.4",
"resolved": "[Link]
"integrity":
"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY
9OgQGXgAsQA==",
"dev": true
},
"node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "[Link]
"integrity":
"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14
SawnVUmGE6A==",
"dev": true
},
"node_modules/wrap-ansi-cjs/node_modules/string-width": {
"version": "4.2.3",
"resolved": "[Link]
[Link]",
"integrity":
"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/
cxKTWyWUwvSTriiZz/g==",
"dev": true,
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "[Link]
"integrity": "sha512-
Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/
0ooI7KrPuUSztUdU5A==",
"dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/wrap-ansi/node_modules/ansi-styles": {
"version": "6.2.1",
"resolved": "[Link]
"integrity": "sha512-
bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/
hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "[Link]
}
},
"node_modules/yallist": {
"version": "3.1.1",
"resolved": "[Link]
"integrity": "sha512-
a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoX
x4g==",
"dev": true
},
"node_modules/yaml": {
"version": "2.5.1",
"resolved": "[Link]
"integrity":
"sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p
/oh8D7kpn9Q==",
"dev": true,
"bin": {
"yaml": "[Link]"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "[Link]
"integrity":
"sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFV
agts7HmNZ2Q==",
"dev": true,
"engines": {
"node": ">=10"
},
"funding": {
"url": "[Link]
}
}
}
}

/* ===== File: project/[Link] ===== */

/** @type {import('tailwindcss').Config} */


export default {
content: ['./[Link]', './src/**/*.{js,ts,jsx,tsx}'],
theme: {
extend: {},
},
plugins: [],
};

/* ===== File: project/.gitignore ===== */

# Logs
logs
*.log
[Link]*
[Link]*
[Link]*
[Link]*
[Link]*

node_modules
dist
dist-ssr
*.local

# Editor directories and files


.vscode/*
!.vscode/[Link]
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
.env

/* ===== File: project/[Link] ===== */

{
"name": "vite-react-typescript-starter",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint .",
"preview": "vite preview"
},
"dependencies": {
"lucide-react": "^0.344.0",
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@eslint/js": "^9.9.1",
"@types/react": "^18.3.5",
"@types/react-dom": "^18.3.0",
"@vitejs/plugin-react": "^4.3.1",
"autoprefixer": "^10.4.18",
"eslint": "^9.9.1",
"eslint-plugin-react-hooks": "^5.1.0-rc.0",
"eslint-plugin-react-refresh": "^0.4.11",
"globals": "^15.9.0",
"postcss": "^8.4.35",
"tailwindcss": "^3.4.1",
"typescript": "^5.5.3",
"typescript-eslint": "^8.3.0",
"vite": "^5.4.2"
}
}

/* ===== File: project/[Link] ===== */

export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};

/* ===== File: project/[Link] ===== */

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/[Link]" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Multi-Purpose Arabic Application</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/[Link]"></script>
</body>
</html>

/* ===== File: project/[Link] ===== */

{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": ["ES2020", "DOM", "[Link]"],
"module": "ESNext",
"skipLibCheck": true,

/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
"jsx": "react-jsx",

/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
},
"include": ["src"]
}

/* ===== File: project/[Link] ===== */

{
"files": [],
"references": [
{ "path": "./[Link]" },
{ "path": "./[Link]" }
]
}

/* ===== File: project/[Link] ===== */

{
"compilerOptions": {
"target": "ES2022",
"lib": ["ES2023"],
"module": "ESNext",
"skipLibCheck": true,

/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,

/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
},
"include": ["[Link]"]
}

/* ===== File: project/[Link] ===== */

import { defineConfig } from 'vite';


import react from '@vitejs/plugin-react';

// [Link]
export default defineConfig({
plugins: [react()],
optimizeDeps: {
exclude: ['lucide-react'],
},
});

/* ===== File: project/[Link] ===== */

import js from '@eslint/js';


import globals from 'globals';
import reactHooks from 'eslint-plugin-react-hooks';
import reactRefresh from 'eslint-plugin-react-refresh';
import tseslint from 'typescript-eslint';

export default [Link](


{ ignores: ['dist'] },
{
extends: [[Link], ...[Link]],
files: ['**/*.{ts,tsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: [Link],
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...[Link],
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
}
);
/* ===== File: project/.bolt/[Link] ===== */

{
"template": "bolt-vite-react-ts"
}

/* ===== File: project/.bolt/prompt ===== */

For all designs I ask you to make, have them be beautiful, not cookie cutter. Make
webpages that are fully featured and worthy for production.

By default, this template supports JSX syntax with Tailwind CSS classes, React
hooks, and Lucide React for icons. Do not install other packages for UI themes,
icons, etc unless absolutely necessary or I request them.

Use icons from lucide-react for logos.

/* ===== File: project/src/[Link] ===== */

import React, { useState } from 'react';


import { Calculator, Heart, Gamepad2, User, Menu, X } from 'lucide-react';
import AccountSection from './components/AccountSection';
import HealthSection from './components/HealthSection';
import GamesSection from './components/GamesSection';

type Section = 'account' | 'health' | 'games';

function App() {
const [activeSection, setActiveSection] = useState<Section>('account');
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);

const sections = [
{ id: 'account' as Section, name: '‫'الحساب‬, icon: User },
{ id: 'health' as Section, name: '‫'الصحة‬, icon: Heart },
{ id: 'games' as Section, name: '‫'الألعاب‬, icon: Gamepad2 },
];

const renderActiveSection = () => {


switch (activeSection) {
case 'account':
return <AccountSection />;
case 'health':
return <HealthSection />;
case 'games':
return <GamesSection />;
default:
return <AccountSection />;
}
};

return (
<div className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100"
dir="rtl">
{/* Header */}
<header className="bg-white shadow-lg border-b border-gray-200">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div className="flex justify-between items-center h-16">
<div className="flex items-center space-x-4 space-x-reverse">
<div className="bg-gradient-to-r from-blue-600 to-purple-600 p-2
rounded-lg">
<Calculator className="h-6 w-6 text-white" />
</div>
<h1 className="text-xl font-bold text-gray-900"> ‫تطبيق متعدد‬
‫<الوظائف‬/h1>
</div>

{/* Desktop Navigation */}


<nav className="hidden md:flex space-x-8 space-x-reverse">
{[Link]((section) => {
const Icon = [Link];
return (
<button
key={[Link]}
onClick={() => setActiveSection([Link])}
className={`flex items-center space-x-2 space-x-reverse px-4
py-2 rounded-lg transition-all duration-200 ${
activeSection === [Link]
? 'bg-gradient-to-r from-blue-600 to-purple-600 text-white
shadow-lg'
: 'text-gray-600 hover:text-blue-600 hover:bg-blue-50'
}`}
>
<Icon className="h-5 w-5" />
<span className="font-medium">{[Link]}</span>
</button>
);
})}
</nav>

{/* Mobile menu button */}


<button
onClick={() => setIsMobileMenuOpen(!isMobileMenuOpen)}
className="md:hidden p-2 rounded-lg text-gray-600 hover:text-blue-600
hover:bg-blue-50"
>
{isMobileMenuOpen ? <X className="h-6 w-6" /> : <Menu className="h-6
w-6" />}
</button>
</div>
</div>

{/* Mobile Navigation */}


{isMobileMenuOpen && (
<div className="md:hidden bg-white border-t border-gray-200">
<nav className="px-4 py-2 space-y-1">
{[Link]((section) => {
const Icon = [Link];
return (
<button
key={[Link]}
onClick={() => {
setActiveSection([Link]);
setIsMobileMenuOpen(false);
}}
className={`w-full flex items-center space-x-3 space-x-reverse
px-4 py-3 rounded-lg transition-all duration-200 ${
activeSection === [Link]
? 'bg-gradient-to-r from-blue-600 to-purple-600 text-white'
: 'text-gray-600 hover:text-blue-600 hover:bg-blue-50'
}`}
>
<Icon className="h-5 w-5" />
<span className="font-medium">{[Link]}</span>
</button>
);
})}
</nav>
</div>
)}
</header>

{/* Main Content */}


<main className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
{renderActiveSection()}
</main>
</div>
);
}

export default App;

/* ===== File: project/src/[Link] ===== */

import { StrictMode } from 'react';


import { createRoot } from 'react-dom/client';
import App from './[Link]';
import './[Link]';

createRoot([Link]('root')!).render(
<StrictMode>
<App />
</StrictMode>
);

/* ===== File: project/src/[Link] ===== */

@tailwind base;
@tailwind components;
@tailwind utilities;

/* ===== File: project/src/[Link] ===== */

/// <reference types="vite/client" />

/* ===== File: project/src/components/[Link] ===== */

import React, { useState, useEffect } from 'react';


import { Heart, Play, Pause, Square, Timer, Activity, Target } from 'lucide-react';

const HealthSection: [Link] = () => {


const [isRunning, setIsRunning] = useState(false);
const [time, setTime] = useState(0);
const [heartRate, setHeartRate] = useState(0);
const [targetHeartRate, setTargetHeartRate] = useState(140);
const [distance, setDistance] = useState(0);
const [calories, setCalories] = useState(0);

useEffect(() => {
let interval: [Link] | null = null;

if (isRunning) {
interval = setInterval(() => {
setTime(time => time + 1);

// Simulate heart rate changes


const baseRate = targetHeartRate;
const variation = [Link]() * 20 - 10;
setHeartRate([Link](60, [Link](200, baseRate + variation)));

// Simulate distance and calories


setDistance(distance => distance + 0.002); // ~0.002 km per second
setCalories(calories => calories + 0.1); // ~0.1 calories per second
}, 1000);
} else if (!isRunning && time !== 0) {
if (interval) clearInterval(interval);
}

return () => {
if (interval) clearInterval(interval);
};
}, [isRunning, time, targetHeartRate]);

const startRunning = () => {


setIsRunning(true);
};

const pauseRunning = () => {


setIsRunning(false);
};

const stopRunning = () => {


setIsRunning(false);
setTime(0);
setHeartRate(0);
setDistance(0);
setCalories(0);
};

const formatTime = (seconds: number) => {


const hrs = [Link](seconds / 3600);
const mins = [Link]((seconds % 3600) / 60);
const secs = seconds % 60;
return `${[Link]().padStart(2, '0')}:${[Link]().padStart(2, '0')}:
${[Link]().padStart(2, '0')}`;
};

const getHeartRateZone = (rate: number) => {


if (rate < 100) return { zone: '‫'راحة‬, color: 'text-blue-600', bg: 'bg-blue-
100' };
if (rate < 130) return { zone: '‫'خفيف‬, color: 'text-green-600', bg: 'bg-green-
100' };
if (rate < 160) return { zone: '‫'متوسط‬, color: 'text-yellow-600', bg: 'bg-
yellow-100' };
if (rate < 180) return { zone: '‫'قوي‬, color: 'text-orange-600', bg: 'bg-orange-
100' };
return { zone: '‫'أقصى‬, color: 'text-red-600', bg: 'bg-red-100' };
};

const heartRateZone = getHeartRateZone(heartRate);

return (
<div className="max-w-4xl mx-auto">
<div className="text-center mb-8">
<div className="inline-flex items-center space-x-3 space-x-reverse">
<div className="bg-gradient-to-r from-red-500 to-pink-600 p-3 rounded-
xl">
<Heart className="h-8 w-8 text-white" />
</div>
<h2 className="text-3xl font-bold text-gray-900">‫<متتبع الجري والصحة‬/h2>
</div>
</div>

<div className="grid lg:grid-cols-2 gap-8">


{/* Main Controls */}
<div className="space-y-6">
{/* Timer Display */}
<div className="bg-white rounded-2xl shadow-xl p-8 border border-gray-
100">
<div className="text-center">
<div className="flex items-center justify-center space-x-2 space-x-
reverse mb-4">
<Timer className="h-6 w-6 text-gray-600" />
<h3 className="text-xl font-semibold text-gray-900">‫<الوقت‬/h3>
</div>
<div className="text-5xl font-mono font-bold text-gray-900 mb-6">
{formatTime(time)}
</div>

{/* Control Buttons */}


<div className="flex justify-center space-x-4 space-x-reverse">
{!isRunning ? (
<button
onClick={startRunning}
className="flex items-center space-x-2 space-x-reverse bg-
gradient-to-r from-green-500 to-emerald-600 hover:from-green-600 hover:to-emerald-
700 text-white px-6 py-3 rounded-xl font-semibold transition-all duration-200
transform active:scale-95 shadow-lg"
>
<Play className="h-5 w-5" />
<span>‫<ابدأ‬/span>
</button>
) : (
<button
onClick={pauseRunning}
className="flex items-center space-x-2 space-x-reverse bg-
gradient-to-r from-yellow-500 to-orange-500 hover:from-yellow-600 hover:to-orange-
600 text-white px-6 py-3 rounded-xl font-semibold transition-all duration-200
transform active:scale-95 shadow-lg"
>
<Pause className="h-5 w-5" />
<span>‫<توقف‬/span>
</button>
)}

<button
onClick={stopRunning}
className="flex items-center space-x-2 space-x-reverse bg-
gradient-to-r from-red-500 to-pink-600 hover:from-red-600 hover:to-pink-700 text-
white px-6 py-3 rounded-xl font-semibold transition-all duration-200 transform
active:scale-95 shadow-lg"
>
<Square className="h-5 w-5" />
<span>‫<إنهاء‬/span>
</button>
</div>
</div>
</div>

{/* Target Heart Rate Setting */}


<div className="bg-white rounded-2xl shadow-xl p-6 border border-gray-
100">
<div className="flex items-center space-x-2 space-x-reverse mb-4">
<Target className="h-5 w-5 text-gray-600" />
<h3 className="text-lg font-semibold text-gray-900"> ‫معدل نبضات القلب‬
‫<المستهدف‬/h3>
</div>
<div className="space-y-4">
<input
type="range"
min="100"
max="200"
value={targetHeartRate}
onChange={(e) => setTargetHeartRate(parseInt([Link]))}
className="w-full h-2 bg-gray-200 rounded-lg appearance-none
cursor-pointer"
/>
<div className="text-center">
<span className="text-2xl font-bold text-gray-
900">{targetHeartRate}</span>
<span className="text-gray-600 mr-2">‫دقيقة‬/‫<نبضة‬/span>
</div>
</div>
</div>
</div>

{/* Statistics */}


<div className="space-y-6">
{/* Heart Rate Monitor */}
<div className="bg-white rounded-2xl shadow-xl p-6 border border-gray-
100">
<div className="flex items-center space-x-2 space-x-reverse mb-4">
<Activity className="h-5 w-5 text-red-500" />
<h3 className="text-lg font-semibold text-gray-900"> ‫معدل نبضات القلب‬
‫<الحالي‬/h3>
</div>
<div className="text-center">
<div className="text-4xl font-bold text-red-500 mb-2">
{[Link](heartRate)}
</div>
<div className="text-gray-600 mb-4">‫دقيقة‬/‫<نبضة‬/div>
<div className={`inline-flex items-center px-4 py-2 rounded-full $
{[Link]}`}>
<span className={`font-medium ${[Link]}`}>
‫{ منطقة‬[Link]}
</span>
</div>
</div>
</div>

{/* Stats Grid */}


<div className="grid grid-cols-2 gap-4">
<div className="bg-white rounded-xl shadow-lg p-6 border border-gray-
100">
<div className="text-center">
<div className="text-2xl font-bold text-blue-600 mb-1">
{[Link](2)}
</div>
<div className="text-gray-600 text-sm">‫<كيلومتر‬/div>
</div>
</div>

<div className="bg-white rounded-xl shadow-lg p-6 border border-gray-


100">
<div className="text-center">
<div className="text-2xl font-bold text-green-600 mb-1">
{[Link](calories)}
</div>
<div className="text-gray-600 text-sm">‫<سعرة حرارية‬/div>
</div>
</div>
</div>

{/* Additional Stats */}


<div className="bg-white rounded-2xl shadow-xl p-6 border border-gray-
100">
<h3 className="text-lg font-semibold text-gray-900 mb-4"> ‫إحصائيات‬
‫<إضافية‬/h3>
<div className="space-y-3">
<div className="flex justify-between items-center">
<span className="text-gray-600">‫<متوسط السرعة‬/span>
<span className="font-semibold">
{time > 0 ? ((distance / (time / 3600)).toFixed(1)) : '0.0'}
‫ساعة‬/‫كم‬
</span>
</div>
<div className="flex justify-between items-center">
<span className="text-gray-600">‫دقيقة‬/‫<السعرات‬/span>
<span className="font-semibold">
{time > 0 ? ((calories / (time / 60)).toFixed(1)) : '0.0'}
</span>
</div>
<div className="flex justify-between items-center">
<span className="text-gray-600">‫<الوتيرة‬/span>
<span className="font-semibold">
{distance > 0 ? ((time / 60 / distance).toFixed(1)) : '0.0'}
‫كم‬/‫دقيقة‬
</span>
</div>
</div>
</div>
</div>
</div>
</div>
);
};

export default HealthSection;

/* ===== File: project/src/components/[Link] ===== */

import React, { useState } from 'react';


import { Calculator, History, Trash2 } from 'lucide-react';

const AccountSection: [Link] = () => {


const [display, setDisplay] = useState('0');
const [previousValue, setPreviousValue] = useState<number | null>(null);
const [operation, setOperation] = useState<string | null>(null);
const [waitingForOperand, setWaitingForOperand] = useState(false);
const [history, setHistory] = useState<string[]>([]);

const inputNumber = (num: string) => {


if (waitingForOperand) {
setDisplay(num);
setWaitingForOperand(false);
} else {
setDisplay(display === '0' ? num : display + num);
}
};

const inputOperation = (nextOperation: string) => {


const inputValue = parseFloat(display);

if (previousValue === null) {


setPreviousValue(inputValue);
} else if (operation) {
const currentValue = previousValue || 0;
const newValue = calculate(currentValue, inputValue, operation);

setDisplay(String(newValue));
setPreviousValue(newValue);

const calculation = `${currentValue} ${operation} ${inputValue} = $


{newValue}`;
setHistory(prev => [calculation, ...[Link](0, 9)]);
}

setWaitingForOperand(true);
setOperation(nextOperation);
};

const calculate = (firstValue: number, secondValue: number, operation: string):


number => {
switch (operation) {
case '+':
return firstValue + secondValue;
case '-':
return firstValue - secondValue;
case '×':
return firstValue * secondValue;
case '÷':
return firstValue / secondValue;
case '=':
return secondValue;
default:
return secondValue;
}
};

const performCalculation = () => {


const inputValue = parseFloat(display);

if (previousValue !== null && operation) {


const newValue = calculate(previousValue, inputValue, operation);

const calculation = `${previousValue} ${operation} ${inputValue} = $


{newValue}`;
setHistory(prev => [calculation, ...[Link](0, 9)]);

setDisplay(String(newValue));
setPreviousValue(null);
setOperation(null);
setWaitingForOperand(true);
}
};

const clear = () => {


setDisplay('0');
setPreviousValue(null);
setOperation(null);
setWaitingForOperand(false);
};

const clearHistory = () => {


setHistory([]);
};

const buttonClass = "h-16 text-lg font-semibold rounded-xl transition-all


duration-200 transform active:scale-95 shadow-sm";
const numberButtonClass = `${buttonClass} bg-white hover:bg-gray-50 text-gray-800
border border-gray-200 hover:border-blue-300`;
const operatorButtonClass = `${buttonClass} bg-gradient-to-r from-blue-600 to-
purple-600 hover:from-blue-700 hover:to-purple-700 text-white shadow-lg`;
const specialButtonClass = `${buttonClass} bg-gradient-to-r from-orange-500 to-
red-500 hover:from-orange-600 hover:to-red-600 text-white shadow-lg`;

return (
<div className="max-w-4xl mx-auto">
<div className="text-center mb-8">
<div className="inline-flex items-center space-x-3 space-x-reverse">
<div className="bg-gradient-to-r from-blue-600 to-purple-600 p-3 rounded-
xl">
<Calculator className="h-8 w-8 text-white" />
</div>
<h2 className="text-3xl font-bold text-gray-900">‫<الآلة الحاسبة‬/h2>
</div>
</div>

<div className="grid lg:grid-cols-3 gap-8">


{/* Calculator */}
<div className="lg:col-span-2">
<div className="bg-white rounded-2xl shadow-xl p-6 border border-gray-
100">
{/* Display */}
<div className="bg-gradient-to-br from-gray-900 to-gray-800 rounded-xl
p-6 mb-6 shadow-inner">
<div className="text-right text-4xl font-light text-white font-mono
overflow-hidden">
{display}
</div>
{operation && (
<div className="text-right text-sm text-gray-400 mt-2">
{previousValue} {operation}
</div>
)}
</div>

{/* Buttons */}


<div className="grid grid-cols-4 gap-3">
<button onClick={clear} className={specialButtonClass}>
C
</button>
<button onClick={() => inputOperation('÷')}
className={operatorButtonClass}>
÷
</button>
<button onClick={() => inputOperation('×')}
className={operatorButtonClass}>
×
</button>
<button
onClick={() => setDisplay([Link](0, -1) || '0')}
className={specialButtonClass}
>

</button>

<button onClick={() => inputNumber('7')}


className={numberButtonClass}>7</button>
<button onClick={() => inputNumber('8')}
className={numberButtonClass}>8</button>
<button onClick={() => inputNumber('9')}
className={numberButtonClass}>9</button>
<button onClick={() => inputOperation('-')}
className={operatorButtonClass}>-</button>

<button onClick={() => inputNumber('4')}


className={numberButtonClass}>4</button>
<button onClick={() => inputNumber('5')}
className={numberButtonClass}>5</button>
<button onClick={() => inputNumber('6')}
className={numberButtonClass}>6</button>
<button onClick={() => inputOperation('+')}
className={operatorButtonClass}>+</button>
<button onClick={() => inputNumber('1')}
className={numberButtonClass}>1</button>
<button onClick={() => inputNumber('2')}
className={numberButtonClass}>2</button>
<button onClick={() => inputNumber('3')}
className={numberButtonClass}>3</button>
<button
onClick={performCalculation}
className={`${operatorButtonClass} row-span-2`}
>
=
</button>

<button onClick={() => inputNumber('0')} className={`$


{numberButtonClass} col-span-2`}>0</button>
<button
onClick={() => {
if ([Link]('.') === -1) {
inputNumber('.');
}
}}
className={numberButtonClass}
>
.
</button>
</div>
</div>
</div>

{/* History */}


<div className="lg:col-span-1">
<div className="bg-white rounded-2xl shadow-xl p-6 border border-gray-
100">
<div className="flex items-center justify-between mb-6">
<div className="flex items-center space-x-2 space-x-reverse">
<History className="h-5 w-5 text-gray-600" />
<h3 className="text-lg font-semibold text-gray-900">‫<السجل‬/h3>
</div>
{[Link] > 0 && (
<button
onClick={clearHistory}
className="p-2 text-gray-400 hover:text-red-500 transition-
colors"
title="‫"مسح السجل‬
>
<Trash2 className="h-4 w-4" />
</button>
)}
</div>

<div className="space-y-2 max-h-96 overflow-y-auto">


{[Link] === 0 ? (
<p className="text-gray-500 text-center py-8"> ‫ال توجد عمليات‬
‫<حسابية‬/p>
) : (
[Link]((calculation, index) => (
<div
key={index}
className="bg-gray-50 rounded-lg p-3 text-sm font-mono text-
gray-700 border border-gray-200"
>
{calculation}
</div>
))
)}
</div>
</div>
</div>
</div>
</div>
);
};

export default AccountSection;

/* ===== File: project/src/components/[Link] ===== */

import React, { useState } from 'react';


import { Gamepad2, Trophy, Target, Brain } from 'lucide-react';
import SnakeGame from './games/SnakeGame';
import NumberGuessingGame from './games/NumberGuessingGame';
import MemoryGame from './games/MemoryGame';

type Game = 'snake' | 'guess' | 'memory';

const GamesSection: [Link] = () => {


const [activeGame, setActiveGame] = useState<Game | null>(null);

const games = [
{
id: 'snake' as Game,
name: '‫'لعبة الثعبان‬,
description: '‫'تحكم في الثعبان واجمع الطعام لتنمو‬,
icon: Target,
color: 'from-green-500 to-emerald-600',
component: SnakeGame
},
{
id: 'guess' as Game,
name: '‫'تخمين الرقم‬,
description: '‫'خمن الرقم السري في أقل عدد محاوالت‬,
icon: Trophy,
color: 'from-blue-500 to-cyan-600',
component: NumberGuessingGame
},
{
id: 'memory' as Game,
name: '‫'لعبة الذاكرة‬,
description: '‫'اعثر على الأزواج المتطابقة‬,
icon: Brain,
color: 'from-purple-500 to-pink-600',
component: MemoryGame
}
];

const activeGameData = [Link](game => [Link] === activeGame);

if (activeGame && activeGameData) {


const GameComponent = [Link];
return (
<div className="max-w-4xl mx-auto">
<div className="mb-6">
<button
onClick={() => setActiveGame(null)}
className="flex items-center space-x-2 space-x-reverse text-gray-600
hover:text-blue-600 transition-colors"
>
<span>←</span>
<span>‫<العودة للألعاب‬/span>
</button>
</div>
<GameComponent />
</div>
);
}

return (
<div className="max-w-4xl mx-auto">
<div className="text-center mb-8">
<div className="inline-flex items-center space-x-3 space-x-reverse">
<div className="bg-gradient-to-r from-purple-600 to-pink-600 p-3 rounded-
xl">
<Gamepad2 className="h-8 w-8 text-white" />
</div>
<h2 className="text-3xl font-bold text-gray-900">‫<مركز الألعاب‬/h2>
</div>
<p className="text-gray-600 mt-2">‫<!اختر لعبتك المفضلة واستمتع‬/p>
</div>

<div className="grid md:grid-cols-3 gap-6">


{[Link]((game) => {
const Icon = [Link];
return (
<div
key={[Link]}
className="bg-white rounded-2xl shadow-xl border border-gray-100
overflow-hidden hover:shadow-2xl transition-all duration-300 transform hover:-
translate-y-1"
>
<div className={`h-32 bg-gradient-to-br ${[Link]} flex items-
center justify-center`}>
<Icon className="h-16 w-16 text-white" />
</div>
<div className="p-6">
<h3 className="text-xl font-bold text-gray-900
mb-2">{[Link]}</h3>
<p className="text-gray-600 mb-6 text-sm leading-relaxed">
{[Link]}
</p>
<button
onClick={() => setActiveGame([Link])}
className={`w-full bg-gradient-to-r ${[Link]} hover:shadow-lg
text-white py-3 px-4 rounded-xl font-semibold transition-all duration-200 transform
active:scale-95`}
>
‫العب الآن‬
</button>
</div>
</div>
);
})}
</div>

{/* Game Rules Section */}


<div className="mt-12 bg-white rounded-2xl shadow-xl p-8 border border-gray-
100">
<h3 className="text-2xl font-bold text-gray-900 mb-6 text-center"> ‫قواعد‬
‫<الألعاب‬/h3>
<div className="grid md:grid-cols-3 gap-6">
<div className="text-center">
<div className="bg-green-100 p-4 rounded-xl mb-4">
<Target className="h-8 w-8 text-green-600 mx-auto" />
</div>
<h4 className="font-semibold text-gray-900 mb-2">‫<لعبة الثعبان‬/h4>
<p className="text-sm text-gray-600">
‫ اجمع‬.‫ تجنب الجدران وجسم الثعبان‬.‫استخدم الأسهم للتحكم في الثعبان‬
‫الطعام لتزيد النقاط‬.
</p>
</div>

<div className="text-center">
<div className="bg-blue-100 p-4 rounded-xl mb-4">
<Trophy className="h-8 w-8 text-blue-600 mx-auto" />
</div>
<h4 className="font-semibold text-gray-900 mb-2">‫<تخمين الرقم‬/h4>
<p className="text-sm text-gray-600">
‫ ستحصل على تلميحات "أعلى" أو "أقل" حتى تجد‬.100 ‫ و‬1 ‫خمن الرقم بين‬
‫الرقم الصحيح‬.
</p>
</div>

<div className="text-center">
<div className="bg-purple-100 p-4 rounded-xl mb-4">
<Brain className="h-8 w-8 text-purple-600 mx-auto" />
</div>
<h4 className="font-semibold text-gray-900 mb-2">‫<لعبة الذاكرة‬/h4>
<p className="text-sm text-gray-600">
،‫ كلما قل عدد المحاوالت‬.‫اقلب البطاقات للعثور على الأزواج المتطابقة‬
‫كانت النتيجة أفضل‬.
</p>
</div>
</div>
</div>
</div>
);
};

export default GamesSection;

/* ===== File: project/src/components/games/[Link] ===== */

import React, { useState, useEffect } from 'react';


import { Brain, RotateCcw, Trophy, Clock, Target } from 'lucide-react';

interface Card {
id: number;
symbol: string;
isFlipped: boolean;
isMatched: boolean;
}

🃏 '🎨', '🎪', '🎭', '🎮', '🎲', '🃏 ', '🎸'];


const SYMBOLS = ['',

const MemoryGame: [Link] = () => {


const [cards, setCards] = useState<Card[]>([]);
const [flippedCards, setFlippedCards] = useState<number[]>([]);
const [matchedPairs, setMatchedPairs] = useState<number>(0);
const [moves, setMoves] = useState<number>(0);
const [gameStarted, setGameStarted] = useState<boolean>(false);
const [gameWon, setGameWon] = useState<boolean>(false);
const [time, setTime] = useState<number>(0);
const [bestScore, setBestScore] = useState<number>(() => {
return parseInt([Link]('memoryGameBestScore') || '999');
});
const [bestTime, setBestTime] = useState<number>(() => {
return parseInt([Link]('memoryGameBestTime') || '999');
});

// Initialize cards
const initializeCards = () => {
const pairs = [Link](SYMBOLS);
const shuffled = pairs
.sort(() => [Link]() - 0.5)
.map((symbol, index) => ({
id: index,
symbol,
isFlipped: false,
isMatched: false
}));
setCards(shuffled);
};

// Start new game


const startNewGame = () => {
initializeCards();
setFlippedCards([]);
setMatchedPairs(0);
setMoves(0);
setGameStarted(true);
setGameWon(false);
setTime(0);
};

// Timer effect
useEffect(() => {
let interval: [Link] | null = null;

if (gameStarted && !gameWon) {


interval = setInterval(() => {
setTime(time => time + 1);
}, 1000);
}

return () => {
if (interval) clearInterval(interval);
};
}, [gameStarted, gameWon]);

// Handle card flip


const flipCard = (cardId: number) => {
if (!gameStarted || [Link] >= 2) return;

const card = [Link](c => [Link] === cardId);


if (!card || [Link] || [Link]) return;

const newFlippedCards = [...flippedCards, cardId];


setFlippedCards(newFlippedCards);

setCards(prevCards =>
[Link](c =>
[Link] === cardId ? { ...c, isFlipped: true } : c
)
);

if ([Link] === 2) {
setMoves(moves + 1);

const [firstId, secondId] = newFlippedCards;


const firstCard = [Link](c => [Link] === firstId);
const secondCard = [Link](c => [Link] === secondId);

if (firstCard && secondCard && [Link] === [Link]) {


// Match found
setTimeout(() => {
setCards(prevCards =>
[Link](c =>
[Link] === firstId || [Link] === secondId
? { ...c, isMatched: true }
: c
)
);
setMatchedPairs(prev => {
const newMatched = prev + 1;
if (newMatched === [Link]) {
// Game won
setGameWon(true);
setGameStarted(false);

// Update best scores


if (moves + 1 < bestScore) {
setBestScore(moves + 1);
[Link]('memoryGameBestScore', (moves +
1).toString());
}
if (time < bestTime) {
setBestTime(time);
[Link]('memoryGameBestTime', [Link]());
}
}
return newMatched;
});
setFlippedCards([]);
}, 1000);
} else {
// No match
setTimeout(() => {
setCards(prevCards =>
[Link](c =>
[Link] === firstId || [Link] === secondId
? { ...c, isFlipped: false }
: c
)
);
setFlippedCards([]);
}, 1000);
}
}
};

const formatTime = (seconds: number) => {


const mins = [Link](seconds / 60);
const secs = seconds % 60;
return `${[Link]().padStart(2, '0')}:${[Link]().padStart(2,
'0')}`;
};

const getScoreRating = (moves: number, time: number) => {


const efficiency = moves / [Link];
if (efficiency <= 1.5 && time <= 60) return { text: '‫'ممتاز‬, color: 'text-
green-600', emoji: '🏆' };
if (efficiency <= 2 && time <= 90) return { text: '‫'جيد جدًا‬, color: 'text-blue-
600', emoji: '🎯' };
if (efficiency <= 2.5 && time <= 120) return { text: '‫'جيد‬, color: 'text-
yellow-600', emoji: '👍' };
return { text: '‫'يمكنك تحسين الأداء‬, color: 'text-orange-600', emoji: '💪' };
};

useEffect(() => {
initializeCards();
}, []);

return (
<div className="max-w-2xl mx-auto">
<div className="text-center mb-6">
<h2 className="text-3xl font-bold text-gray-900 mb-2">‫<لعبة الذاكرة‬/h2>
<p className="text-gray-600">‫<اعثر على الأزواج المتطابقة‬/p>
</div>

{/* Stats */}


<div className="grid grid-cols-4 gap-3 mb-6">
<div className="bg-white rounded-xl shadow-lg p-3 border border-gray-100
text-center">
<div className="text-lg font-bold text-blue-600">{moves}</div>
<div className="text-xs text-gray-600">‫<المحاوالت‬/div>
</div>

<div className="bg-white rounded-xl shadow-lg p-3 border border-gray-100


text-center">
<div className="text-lg font-bold text-green-600">{matchedPairs}</div>
<div className="text-xs text-gray-600">‫<أزواج‬/div>
</div>

<div className="bg-white rounded-xl shadow-lg p-3 border border-gray-100


text-center">
<div className="text-lg font-bold
text-purple-600">{formatTime(time)}</div>
<div className="text-xs text-gray-600">‫<الوقت‬/div>
</div>

<div className="bg-white rounded-xl shadow-lg p-3 border border-gray-100


text-center">
<div className="text-lg font-bold text-yellow-600">
{bestScore === 999 ? '-' : bestScore}
</div>
<div className="text-xs text-gray-600">‫<أفضل نتيجة‬/div>
</div>
</div>

{/* Game Area */}


<div className="bg-white rounded-2xl shadow-xl p-6 border border-gray-100 mb-
6">
{!gameStarted && !gameWon ? (
<div className="text-center">
<div className="text-6xl mb-4">🧠</div>
<h3 className="text-2xl font-bold text-gray-900 mb-4"> ‫مرحبًا بك في لعبة‬
‫<!الذاكرة‬/h3>
<p className="text-gray-600 mb-6"> ‫اقلب البطاقات للعثور على الأزواج‬
‫<المتطابقة في أقل عدد محاوالت وأسرع وقت ممكن‬/p>
<button
onClick={startNewGame}
className="bg-gradient-to-r from-purple-500 to-pink-600 hover:from-
purple-600 hover:to-pink-700 text-white px-8 py-3 rounded-xl font-semibold
transition-all duration-200 transform active:scale-95 shadow-lg"
>
‫ابدأ اللعب‬
</button>
</div>
) : gameWon ? (
<div className="text-center">
<div className="text-6xl mb-4">🎉</div>
<h3 className="text-2xl font-bold text-gray-900 mb-2">‫<!أحسنت‬/h3>
<p className="text-gray-600 mb-4">
‫{ أكملت اللعبة في‬moves} ‫{ محاولة خالل‬formatTime(time)}
</p>

<div className="bg-gray-50 rounded-xl p-4 mb-6">


<div className={`text-lg font-semibold ${getScoreRating(moves,
time).color}`}>
{getScoreRating(moves, time).emoji} {getScoreRating(moves,
time).text}
</div>
</div>

{(moves === bestScore || time === bestTime) && (


<div className="flex items-center justify-center space-x-2 space-x-
reverse text-yellow-600 mb-4">
<Trophy className="h-5 w-5" />
<span className="font-semibold">‫<!رقم قياسي جديد‬/span>
</div>
)}

<button
onClick={startNewGame}
className="bg-gradient-to-r from-green-500 to-emerald-600 hover:from-
green-600 hover:to-emerald-700 text-white px-8 py-3 rounded-xl font-semibold
transition-all duration-200 transform active:scale-95 shadow-lg"
>
‫العب مرة أخرى‬
</button>
</div>
) : (
<div className="grid grid-cols-4 gap-3">
{[Link]((card) => (
<button
key={[Link]}
onClick={() => flipCard([Link])}
disabled={[Link] || [Link] || [Link]
>= 2}
className={`aspect-square rounded-xl text-2xl font-bold transition-
all duration-300 transform ${
[Link] || [Link]
? [Link]
? 'bg-green-100 text-green-600 border-2 border-green-300
scale-105'
: 'bg-blue-100 text-blue-600 border-2 border-blue-300'
: 'bg-gradient-to-br from-purple-400 to-pink-500 hover:from-
purple-500 hover:to-pink-600 text-white hover:scale-105 active:scale-95 shadow-lg'
} ${[Link] >= 2 && ![Link] ? 'cursor-not-
allowed opacity-50' : 'cursor-pointer'}`}
>
{[Link] || [Link] ? [Link] : '?'}
</button>
))}
</div>
)}
</div>

{/* Game Controls */}


{(gameStarted || gameWon) && (
<div className="text-center">
<button
onClick={startNewGame}
className="flex items-center space-x-2 space-x-reverse mx-auto bg-
gradient-to-r from-gray-500 to-gray-600 hover:from-gray-600 hover:to-gray-700 text-
white px-6 py-3 rounded-xl font-semibold transition-all duration-200 transform
active:scale-95 shadow-lg"
>
<RotateCcw className="h-5 w-5" />
<span>‫<لعبة جديدة‬/span>
</button>
</div>
)}

{/* Best Scores Display */}


{(bestScore < 999 || bestTime < 999) && (
<div className="mt-6 bg-white rounded-2xl shadow-xl p-6 border border-gray-
100">
<h4 className="text-lg font-semibold text-gray-900 mb-4 flex items-center
space-x-2 space-x-reverse">
<Trophy className="h-5 w-5 text-yellow-600" />
<span>‫<أفضل النتائج‬/span>
</h4>
<div className="grid grid-cols-2 gap-4">
<div className="text-center p-4 bg-yellow-50 rounded-xl border border-
yellow-200">
<div className="flex items-center justify-center space-x-1 space-x-
reverse mb-2">
<Target className="h-4 w-4 text-yellow-600" />
<span className="text-sm text-yellow-700 font-medium"> ‫أقل‬
‫<محاوالت‬/span>
</div>
<div className="text-2xl font-bold text-yellow-600">
{bestScore === 999 ? '-' : bestScore}
</div>
</div>

<div className="text-center p-4 bg-blue-50 rounded-xl border border-


blue-200">
<div className="flex items-center justify-center space-x-1 space-x-
reverse mb-2">
<Clock className="h-4 w-4 text-blue-600" />
<span className="text-sm text-blue-700 font-medium">‫<أسرع وقت‬/span>
</div>
<div className="text-2xl font-bold text-blue-600">
{bestTime === 999 ? '-' : formatTime(bestTime)}
</div>
</div>
</div>
</div>
)}
</div>
);
};

export default MemoryGame;

/* ===== File: project/src/components/games/[Link] ===== */

import React, { useState, useEffect } from 'react';


import { Target, RotateCcw, Trophy, TrendingUp, TrendingDown } from 'lucide-react';

const NumberGuessingGame: [Link] = () => {


const [targetNumber, setTargetNumber] = useState<number>(0);
const [guess, setGuess] = useState<string>('');
const [attempts, setAttempts] = useState<number>(0);
const [gameWon, setGameWon] = useState<boolean>(false);
const [gameStarted, setGameStarted] = useState<boolean>(false);
const [feedback, setFeedback] = useState<string>('');
const [guessHistory, setGuessHistory] = useState<Array<{number: number, feedback:
string}>>([]);
const [bestScore, setBestScore] = useState<number>(() => {
return parseInt([Link]('numberGuessingBestScore') || '999');
});

const generateNewNumber = () => {


setTargetNumber([Link]([Link]() * 100) + 1);
};

const startNewGame = () => {


generateNewNumber();
setGuess('');
setAttempts(0);
setGameWon(false);
setGameStarted(true);
setFeedback('');
setGuessHistory([]);
};

const makeGuess = () => {


const guessNum = parseInt(guess);

if (isNaN(guessNum) || guessNum < 1 || guessNum > 100) {


setFeedback('100 ‫ و‬1 ‫;)'يرجى إدخال رقم بين‬
return;
}

const newAttempts = attempts + 1;


setAttempts(newAttempts);

let feedbackText = '';


if (guessNum === targetNumber) {
setGameWon(true);
setGameStarted(false);
feedbackText = '🎉 ‫;'!أحسنت! لقد وجدت الرقم‬

if (newAttempts < bestScore) {


setBestScore(newAttempts);
[Link]('numberGuessingBestScore', [Link]());
feedbackText += ' ‫;'!رقم قياسي جديد‬
}
} else if (guessNum < targetNumber) {
feedbackText = '‫;'الرقم أكبر من تخمينك‬
} else {
feedbackText = '‫;'الرقم أصغر من تخمينك‬
}

setFeedback(feedbackText);
setGuessHistory(prev => [{
number: guessNum,
feedback: feedbackText
}, ...prev]);
setGuess('');
};

const handleKeyPress = (e: [Link]) => {


if ([Link] === 'Enter' && gameStarted && !gameWon) {
makeGuess();
}
};

useEffect(() => {
generateNewNumber();
}, []);

const getScoreRating = (attempts: number) => {


if (attempts <= 5) return { text: '‫'ممتاز‬, color: 'text-green-600', emoji:
'🏆' };
if (attempts <= 8) return { text: '‫'جيد جدًا‬, color: 'text-blue-600', emoji: '🎯'
};
if (attempts <= 12) return { text: '‫'جيد‬, color: 'text-yellow-600', emoji:
'👍' };
return { text: '‫'يمكنك تحسين الأداء‬, color: 'text-orange-600', emoji: '💪' };
};

return (
<div className="max-w-2xl mx-auto">
<div className="text-center mb-6">
<h2 className="text-3xl font-bold text-gray-900 mb-2">‫<لعبة تخمين الرقم‬/h2>
<p className="text-gray-600">100 ‫ و‬1 ‫<خمن الرقم بين‬/p>
</div>

{/* Stats */}


<div className="grid grid-cols-3 gap-4 mb-6">
<div className="bg-white rounded-xl shadow-lg p-4 border border-gray-100
text-center">
<div className="text-2xl font-bold text-blue-600">{attempts}</div>
<div className="text-sm text-gray-600">‫<المحاوالت‬/div>
</div>

<div className="bg-white rounded-xl shadow-lg p-4 border border-gray-100


text-center">
<div className="text-2xl font-bold text-green-600">{bestScore === 999 ?
'-' : bestScore}</div>
<div className="text-sm text-gray-600">‫<أفضل نتيجة‬/div>
</div>

<div className="bg-white rounded-xl shadow-lg p-4 border border-gray-100


text-center">
<div className="text-2xl font-bold text-purple-
600">{[Link]}</div>
<div className="text-sm text-gray-600">‫<التخمينات‬/div>
</div>
</div>

{/* Game Area */}


<div className="bg-white rounded-2xl shadow-xl p-8 border border-gray-100 mb-
6">
{!gameStarted && !gameWon ? (
<div className="text-center">
<div className="text-6xl mb-4">🎯</div>
<h3 className="text-2xl font-bold text-gray-900 mb-4"> ‫مرحبًا بك في لعبة‬
‫<!التخمين‬/h3>
<p className="text-gray-600 mb-6">‫ وعليك تخمينه‬،100 ‫ و‬1 ‫سأختار رقمًا بين‬
‫<في أقل عدد محاوالت ممكن‬/p>
<button
onClick={startNewGame}
className="bg-gradient-to-right from-blue-500 to-cyan-600 hover:from-
blue-600 hover:to-cyan-700 text-white px-8 py-3 rounded-xl font-semibold
transition-all duration-200 transform active:scale-95 shadow-lg"
>
‫ابدأ اللعب‬
</button>
</div>
) : gameWon ? (
<div className="text-center">
<div className="text-6xl mb-4">🎉</div>
<h3 className="text-2xl font-bold text-gray-900 mb-2">‫<!تهانينا‬/h3>
<p className="text-gray-600 mb-4">‫{ وجدت الرقم‬targetNumber} ‫في‬
{attempts} ‫<محاولة‬/p>

<div className="bg-gray-50 rounded-xl p-4 mb-6">


<div className={`text-lg font-semibold $
{getScoreRating(attempts).color}`}>
{getScoreRating(attempts).emoji} {getScoreRating(attempts).text}
</div>
</div>

{attempts === bestScore && attempts < 999 && (


<div className="flex items-center justify-center space-x-2 space-x-
reverse text-yellow-600 mb-4">
<Trophy className="h-5 w-5" />
<span className="font-semibold">‫<!رقم قياسي جديد‬/span>
</div>
)}

<button
onClick={startNewGame}
className="bg-gradient-to-r from-green-500 to-emerald-600 hover:from-
green-600 hover:to-emerald-700 text-white px-8 py-3 rounded-xl font-semibold
transition-all duration-200 transform active:scale-95 shadow-lg"
>
‫العب مرة أخرى‬
</button>
</div>
) : (
<div className="text-center">
<div className="text-4xl mb-4">🤔</div>
<h3 className="text-xl font-bold text-gray-900 mb-6">‫ما تخمينك للرقم؟‬
</h3>

<div className="max-w-sm mx-auto mb-6">


<input
type="number"
min="1"
max="100"
value={guess}
onChange={(e) => setGuess([Link])}
onKeyPress={handleKeyPress}
placeholder="100 ‫ و‬1 ‫"أدخل رقمًا بين‬
className="w-full text-center text-2xl font-bold py-4 px-6 border-2
border-gray-300 rounded-xl focus:border-blue-500 focus:outline-none transition-
colors"
/>
</div>

<button
onClick={makeGuess}
disabled={![Link]()}
className="bg-gradient-to-r from-blue-500 to-cyan-600 hover:from-
blue-600 hover:to-cyan-700 disabled:from-gray-400 disabled:to-gray-500 text-white
px-8 py-3 rounded-xl font-semibold transition-all duration-200 transform
active:scale-95 shadow-lg disabled:cursor-not-allowed"
>
‫خمن‬
</button>

{feedback && (
<div className={`mt-6 p-4 rounded-xl ${
[Link]('‫' ? )'أكبر‬bg-red-50 text-red-700' :
[Link]('‫' ? )'أصغر‬bg-blue-50 text-blue-700' :
'bg-green-50 text-green-700'
}`}>
<div className="flex items-center justify-center space-x-2 space-x-
reverse">
{[Link]('‫< && )'أكبر‬TrendingUp className="h-5 w-5" />}
{[Link]('‫< && )'أصغر‬TrendingDown className="h-5 w-
5" />}
{[Link]('‫< && )'أحسنت‬Trophy className="h-5 w-5" />}
<span className="font-semibold">{feedback}</span>
</div>
</div>
)}
</div>
)}
</div>

{/* Game History */}


{[Link] > 0 && (
<div className="bg-white rounded-2xl shadow-xl p-6 border border-gray-100">
<h4 className="text-lg font-semibold text-gray-900 mb-4 flex items-center
space-x-2 space-x-reverse">
<Target className="h-5 w-5" />
<span>‫<سجل التخمينات‬/span>
</h4>
<div className="space-y-2 max-h-64 overflow-y-auto">
{[Link]((entry, index) => (
<div
key={index}
className={`flex justify-between items-center p-3 rounded-lg ${
[Link]('‫' ? )'أحسنت‬bg-green-50 border border-
green-200' :
[Link]('‫' ? )'أكبر‬bg-red-50 border border-red-
200' :
'bg-blue-50 border border-blue-200'
}`}
>
<span className="font-bold text-lg">{[Link]}</span>
<span className="text-sm">{[Link]}</span>
</div>
))}
</div>
</div>
)}

{/* Reset Game Button */}


{(gameStarted || gameWon) && (
<div className="text-center mt-6">
<button
onClick={startNewGame}
className="flex items-center space-x-2 space-x-reverse mx-auto bg-
gradient-to-r from-gray-500 to-gray-600 hover:from-gray-600 hover:to-gray-700 text-
white px-6 py-3 rounded-xl font-semibold transition-all duration-200 transform
active:scale-95 shadow-lg"
>
<RotateCcw className="h-5 w-5" />
<span>‫<لعبة جديدة‬/span>
</button>
</div>
)}
</div>
);
};

export default NumberGuessingGame;

/* ===== File: project/src/components/games/[Link] ===== */

import React, { useState, useEffect, useCallback } from 'react';


import { Play, Pause, RotateCcw, Trophy } from 'lucide-react';

interface Position {
x: number;
y: number;
}

const GRID_SIZE = 20;


const INITIAL_SNAKE = [{ x: 10, y: 10 }];
const INITIAL_FOOD = { x: 5, y: 5 };

const SnakeGame: [Link] = () => {


const [snake, setSnake] = useState<Position[]>(INITIAL_SNAKE);
const [food, setFood] = useState<Position>(INITIAL_FOOD);
const [direction, setDirection] = useState<Position>({ x: 0, y: 0 });
const [gameRunning, setGameRunning] = useState(false);
const [score, setScore] = useState(0);
const [highScore, setHighScore] = useState(() => {
return parseInt([Link]('snakeHighScore') || '0');
});
const [gameOver, setGameOver] = useState(false);

const generateFood = useCallback(() => {


const newFood = {
x: [Link]([Link]() * GRID_SIZE),
y: [Link]([Link]() * GRID_SIZE)
};
return newFood;
}, []);

const resetGame = useCallback(() => {


setSnake(INITIAL_SNAKE);
setFood(INITIAL_FOOD);
setDirection({ x: 0, y: 0 });
setScore(0);
setGameOver(false);
setGameRunning(false);
}, []);

const moveSnake = useCallback(() => {


if (!gameRunning || gameOver) return;

setSnake(currentSnake => {
const newSnake = [...currentSnake];
const head = { ...newSnake[0] };

head.x += direction.x;
head.y += direction.y;

// Check wall collision


if (head.x < 0 || head.x >= GRID_SIZE || head.y < 0 || head.y >= GRID_SIZE) {
setGameOver(true);
setGameRunning(false);
return currentSnake;
}

// Check self collision


if ([Link](segment => segment.x === head.x && segment.y === head.y)) {
setGameOver(true);
setGameRunning(false);
return currentSnake;
}

[Link](head);

// Check food collision


if (head.x === food.x && head.y === food.y) {
setScore(prev => {
const newScore = prev + 10;
if (newScore > highScore) {
setHighScore(newScore);
[Link]('snakeHighScore', [Link]());
}
return newScore;
});
setFood(generateFood());
} else {
[Link]();
}

return newSnake;
});
}, [direction, food, gameRunning, gameOver, highScore, generateFood]);

useEffect(() => {
const gameInterval = setInterval(moveSnake, 150);
return () => clearInterval(gameInterval);
}, [moveSnake]);

useEffect(() => {
const handleKeyPress = (e: KeyboardEvent) => {
if (!gameRunning) return;

switch ([Link]) {
case 'ArrowUp':
[Link]();
setDirection(prev => prev.y !== 1 ? { x: 0, y: -1 } : prev);
break;
case 'ArrowDown':
[Link]();
setDirection(prev => prev.y !== -1 ? { x: 0, y: 1 } : prev);
break;
case 'ArrowLeft':
[Link]();
setDirection(prev => prev.x !== 1 ? { x: -1, y: 0 } : prev);
break;
case 'ArrowRight':
[Link]();
setDirection(prev => prev.x !== -1 ? { x: 1, y: 0 } : prev);
break;
}
};

[Link]('keydown', handleKeyPress);
return () => [Link]('keydown', handleKeyPress);
}, [gameRunning]);

const startGame = () => {


if (gameOver) {
resetGame();
}
setGameRunning(true);
if (direction.x === 0 && direction.y === 0) {
setDirection({ x: 1, y: 0 });
}
};

const pauseGame = () => {


setGameRunning(false);
};

return (
<div className="max-w-2xl mx-auto">
<div className="text-center mb-6">
<h2 className="text-3xl font-bold text-gray-900 mb-2">‫<لعبة الثعبان‬/h2>
<p className="text-gray-600">‫<استخدم الأسهم للتحكم في الثعبان‬/p>
</div>

{/* Score Display */}


<div className="flex justify-between items-center mb-6">
<div className="bg-white rounded-xl shadow-lg p-4 border border-gray-100">
<div className="text-center">
<div className="text-2xl font-bold text-green-600">{score}</div>
<div className="text-sm text-gray-600">‫<النقاط‬/div>
</div>
</div>

<div className="bg-white rounded-xl shadow-lg p-4 border border-gray-100">


<div className="text-center">
<div className="text-2xl font-bold text-yellow-600">{highScore}</div>
<div className="text-sm text-gray-600">‫<أعلى نقاط‬/div>
</div>
</div>
</div>

{/* Game Board */}


<div className="bg-white rounded-2xl shadow-xl p-6 border border-gray-100 mb-
6">
<div
className="grid bg-gray-100 rounded-xl p-4 mx-auto"
style={{
gridTemplateColumns: `repeat(${GRID_SIZE}, 1fr)`,
width: '400px',
height: '400px'
}}
>
{[Link]({ length: GRID_SIZE * GRID_SIZE }).map((_, index) => {
const x = index % GRID_SIZE;
const y = [Link](index / GRID_SIZE);

const isSnake = [Link](segment => segment.x === x && segment.y ===


y);
const isHead = snake[0]?.x === x && snake[0]?.y === y;
const isFood = food.x === x && food.y === y;

return (
<div
key={index}
className={`rounded-sm ${
isFood
? 'bg-red-500 shadow-sm'
: isHead
? 'bg-green-600 shadow-sm'
: isSnake
? 'bg-green-400'
: 'bg-gray-200'
}`}
/>
);
})}
</div>
</div>

{/* Game Over Screen */}


{gameOver && (
<div className="bg-white rounded-2xl shadow-xl p-8 border border-gray-100
mb-6 text-center">
<div className="text-red-500 text-4xl mb-4">💀</div>
<h3 className="text-2xl font-bold text-gray-900 mb-2">‫<!انتهت اللعبة‬/h3>
<p className="text-gray-600 mb-4">‫النقاط النهائية‬: {score}</p>
{score === highScore && score > 0 && (
<div className="flex items-center justify-center space-x-2 space-x-
reverse text-yellow-600 mb-4">
<Trophy className="h-5 w-5" />
<span className="font-semibold">‫<!رقم قياسي جديد‬/span>
</div>
)}
</div>
)}

{/* Controls */}


<div className="flex justify-center space-x-4 space-x-reverse mb-6">
{!gameRunning ? (
<button
onClick={startGame}
className="flex items-center space-x-2 space-x-reverse bg-gradient-to-r
from-green-500 to-emerald-600 hover:from-green-600 hover:to-emerald-700 text-white
px-6 py-3 rounded-xl font-semibold transition-all duration-200 transform
active:scale-95 shadow-lg"
>
<Play className="h-5 w-5" />
<span>{gameOver ? '‫ 'ابدأ اللعب‬: '‫<}'العب مرة أخرى‬/span>
</button>
) : (
<button
onClick={pauseGame}
className="flex items-center space-x-2 space-x-reverse bg-gradient-to-r
from-yellow-500 to-orange-500 hover:from-yellow-600 hover:to-orange-600 text-white
px-6 py-3 rounded-xl font-semibold transition-all duration-200 transform
active:scale-95 shadow-lg"
>
<Pause className="h-5 w-5" />
<span>‫<توقف‬/span>
</button>
)}

<button
onClick={resetGame}
className="flex items-center space-x-2 space-x-reverse bg-gradient-to-r
from-gray-500 to-gray-600 hover:from-gray-600 hover:to-gray-700 text-white px-6 py-
3 rounded-xl font-semibold transition-all duration-200 transform active:scale-95
shadow-lg"
>
<RotateCcw className="h-5 w-5" />
<span>‫<إعادة تشغيل‬/span>
</button>
</div>

{/* Mobile Controls */}


<div className="md:hidden bg-white rounded-2xl shadow-xl p-6 border border-
gray-100">
<h4 className="text-lg font-semibold text-gray-900 mb-4 text-center">‫التحكم‬
‫<باللمس‬/h4>
<div className="grid grid-cols-3 gap-2 max-w-48 mx-auto">
<div></div>
<button
onClick={() => gameRunning && setDirection(prev => prev.y !== 1 ? { x:
0, y: -1 } : prev)}
className="bg-blue-500 hover:bg-blue-600 text-white py-3 px-4 rounded-
lg font-bold transition-colors"
>

</button>
<div></div>

<button
onClick={() => gameRunning && setDirection(prev => prev.x !== 1 ? { x:
-1, y: 0 } : prev)}
className="bg-blue-500 hover:bg-blue-600 text-white py-3 px-4 rounded-
lg font-bold transition-colors"
>

</button>
<div></div>
<button
onClick={() => gameRunning && setDirection(prev => prev.x !== -1 ? { x:
1, y: 0 } : prev)}
className="bg-blue-500 hover:bg-blue-600 text-white py-3 px-4 rounded-
lg font-bold transition-colors"
>

</button>
<div></div>
<button
onClick={() => gameRunning && setDirection(prev => prev.y !== -1 ? { x:
0, y: 1 } : prev)}
className="bg-blue-500 hover:bg-blue-600 text-white py-3 px-4 rounded-
lg font-bold transition-colors"
>

</button>
<div></div>
</div>
</div>
</div>
);
};

export default SnakeGame;

You might also like