diff --git a/examples/starter/README.md b/examples/starter/README.md new file mode 100644 index 0000000000..a42fc02983 --- /dev/null +++ b/examples/starter/README.md @@ -0,0 +1,20 @@ +# Starter [](https://stackblitz.com/github/pmndrs/zustand/tree/main/examples/starter) + +## Set up locally + +```bash +git clone https://github.com/pmndrs/zustand + +# install project dependencies & build the library +cd zustand && pnpm install + +# move to the examples folder & install dependencies +cd examples/starter && pnpm install + +# start the dev server +pnpm dev +``` + +## Set up on `StackBlitz` + +Link: https://stackblitz.com/github/pmndrs/zustand/tree/main/examples/starter diff --git a/examples/starter/index.html b/examples/starter/index.html new file mode 100644 index 0000000000..91f9ad212f --- /dev/null +++ b/examples/starter/index.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <link rel="icon" href="/favicon.ico" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="description" content="zustand examples" /> + <title>Zustand Examples | Starter</title> + <script src="https://cdn.tailwindcss.com"></script> + </head> + <body> + <div id="root"></div> + <script type="module" src="/src/index.tsx"></script> + </body> +</html> diff --git a/examples/starter/package.json b/examples/starter/package.json new file mode 100644 index 0000000000..213ddfe5f3 --- /dev/null +++ b/examples/starter/package.json @@ -0,0 +1,23 @@ +{ + "name": "starter", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "zustand": "^5.0.2", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@types/react": "^18.2.0", + "@types/react-dom": "^18.2.0", + "@vitejs/plugin-react-swc": "^3.5.0", + "typescript": "^5.0.0", + "vite": "^5.3.4" + } +} diff --git a/examples/starter/pnpm-lock.yaml b/examples/starter/pnpm-lock.yaml new file mode 100644 index 0000000000..5471293106 --- /dev/null +++ b/examples/starter/pnpm-lock.yaml @@ -0,0 +1,774 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + zustand: + specifier: ^5.0.2 + version: 5.0.2(@types/react@18.3.17)(react@18.3.1) + devDependencies: + '@types/react': + specifier: ^18.2.0 + version: 18.3.17 + '@types/react-dom': + specifier: ^18.2.0 + version: 18.3.5(@types/react@18.3.17) + '@vitejs/plugin-react-swc': + specifier: ^3.5.0 + version: 3.7.2(vite@5.4.11) + typescript: + specifier: ^5.0.0 + version: 5.7.2 + vite: + specifier: ^5.3.4 + version: 5.4.11 + +packages: + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@rollup/rollup-android-arm-eabi@4.28.1': + resolution: {integrity: sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.28.1': + resolution: {integrity: sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.28.1': + resolution: {integrity: sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.28.1': + resolution: {integrity: sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.28.1': + resolution: {integrity: sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.28.1': + resolution: {integrity: sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': + resolution: {integrity: sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.28.1': + resolution: {integrity: sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.28.1': + resolution: {integrity: sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.28.1': + resolution: {integrity: sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': + resolution: {integrity: sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': + resolution: {integrity: sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.28.1': + resolution: {integrity: sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.28.1': + resolution: {integrity: sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.28.1': + resolution: {integrity: sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.28.1': + resolution: {integrity: sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.28.1': + resolution: {integrity: sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.28.1': + resolution: {integrity: sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.28.1': + resolution: {integrity: sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==} + cpu: [x64] + os: [win32] + + '@swc/core-darwin-arm64@1.10.1': + resolution: {integrity: sha512-NyELPp8EsVZtxH/mEqvzSyWpfPJ1lugpTQcSlMduZLj1EASLO4sC8wt8hmL1aizRlsbjCX+r0PyL+l0xQ64/6Q==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.10.1': + resolution: {integrity: sha512-L4BNt1fdQ5ZZhAk5qoDfUnXRabDOXKnXBxMDJ+PWLSxOGBbWE6aJTnu4zbGjJvtot0KM46m2LPAPY8ttknqaZA==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.10.1': + resolution: {integrity: sha512-Y1u9OqCHgvVp2tYQAJ7hcU9qO5brDMIrA5R31rwWQIAKDkJKtv3IlTHF0hrbWk1wPR0ZdngkQSJZple7G+Grvw==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.10.1': + resolution: {integrity: sha512-tNQHO/UKdtnqjc7o04iRXng1wTUXPgVd8Y6LI4qIbHVoVPwksZydISjMcilKNLKIwOoUQAkxyJ16SlOAeADzhQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.10.1': + resolution: {integrity: sha512-x0L2Pd9weQ6n8dI1z1Isq00VHFvpBClwQJvrt3NHzmR+1wCT/gcYl1tp9P5xHh3ldM8Cn4UjWCw+7PaUgg8FcQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.10.1': + resolution: {integrity: sha512-yyYEwQcObV3AUsC79rSzN9z6kiWxKAVJ6Ntwq2N9YoZqSPYph+4/Am5fM1xEQYf/kb99csj0FgOelomJSobxQA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.10.1': + resolution: {integrity: sha512-tcaS43Ydd7Fk7sW5ROpaf2Kq1zR+sI5K0RM+0qYLYYurvsJruj3GhBCaiN3gkzd8m/8wkqNqtVklWaQYSDsyqA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.10.1': + resolution: {integrity: sha512-D3Qo1voA7AkbOzQ2UGuKNHfYGKL6eejN8VWOoQYtGHHQi1p5KK/Q7V1ku55oxXBsj79Ny5FRMqiRJpVGad7bjQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.10.1': + resolution: {integrity: sha512-WalYdFoU3454Og+sDKHM1MrjvxUGwA2oralknXkXL8S0I/8RkWZOB++p3pLaGbTvOO++T+6znFbQdR8KRaa7DA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.10.1': + resolution: {integrity: sha512-JWobfQDbTnoqaIwPKQ3DVSywihVXlQMbDuwik/dDWlj33A8oEHcjPOGs4OqcA3RHv24i+lfCQpM3Mn4FAMfacA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.10.1': + resolution: {integrity: sha512-rQ4dS6GAdmtzKiCRt3LFVxl37FaY1cgL9kSUTnhQ2xc3fmHOd7jdJK/V4pSZMG1ruGTd0bsi34O2R0Olg9Zo/w==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.17': + resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/prop-types@15.7.14': + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + + '@types/react-dom@18.3.5': + resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + peerDependencies: + '@types/react': ^18.0.0 + + '@types/react@18.3.17': + resolution: {integrity: sha512-opAQ5no6LqJNo9TqnxBKsgnkIYHozW9KSTlFVoSUJYh1Fl/sswkEoqIugRSm7tbh6pABtYjGAjW+GOS23j8qbw==} + + '@vitejs/plugin-react-swc@3.7.2': + resolution: {integrity: sha512-y0byko2b2tSVVf5Gpng1eEhX1OvPC7x8yns1Fx8jDzlJp4LS6CMkCPfLw47cjyoMrshQDoQw4qcgjsU9VvlCew==} + peerDependencies: + vite: ^4 || ^5 || ^6 + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + rollup@4.28.1: + resolution: {integrity: sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + engines: {node: '>=14.17'} + hasBin: true + + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + 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 + + zustand@5.0.2: + resolution: {integrity: sha512-8qNdnJVJlHlrKXi50LDqqUNmUbuBjoKLrYQBnoChIbVph7vni+sY+YpvdjXG9YLd/Bxr6scMcR+rm5H3aSqPaw==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + +snapshots: + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@rollup/rollup-android-arm-eabi@4.28.1': + optional: true + + '@rollup/rollup-android-arm64@4.28.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.28.1': + optional: true + + '@rollup/rollup-darwin-x64@4.28.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.28.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.28.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.28.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.28.1': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.28.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.28.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.28.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.28.1': + optional: true + + '@swc/core-darwin-arm64@1.10.1': + optional: true + + '@swc/core-darwin-x64@1.10.1': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.10.1': + optional: true + + '@swc/core-linux-arm64-gnu@1.10.1': + optional: true + + '@swc/core-linux-arm64-musl@1.10.1': + optional: true + + '@swc/core-linux-x64-gnu@1.10.1': + optional: true + + '@swc/core-linux-x64-musl@1.10.1': + optional: true + + '@swc/core-win32-arm64-msvc@1.10.1': + optional: true + + '@swc/core-win32-ia32-msvc@1.10.1': + optional: true + + '@swc/core-win32-x64-msvc@1.10.1': + optional: true + + '@swc/core@1.10.1': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.17 + optionalDependencies: + '@swc/core-darwin-arm64': 1.10.1 + '@swc/core-darwin-x64': 1.10.1 + '@swc/core-linux-arm-gnueabihf': 1.10.1 + '@swc/core-linux-arm64-gnu': 1.10.1 + '@swc/core-linux-arm64-musl': 1.10.1 + '@swc/core-linux-x64-gnu': 1.10.1 + '@swc/core-linux-x64-musl': 1.10.1 + '@swc/core-win32-arm64-msvc': 1.10.1 + '@swc/core-win32-ia32-msvc': 1.10.1 + '@swc/core-win32-x64-msvc': 1.10.1 + + '@swc/counter@0.1.3': {} + + '@swc/types@0.1.17': + dependencies: + '@swc/counter': 0.1.3 + + '@types/estree@1.0.6': {} + + '@types/prop-types@15.7.14': {} + + '@types/react-dom@18.3.5(@types/react@18.3.17)': + dependencies: + '@types/react': 18.3.17 + + '@types/react@18.3.17': + dependencies: + '@types/prop-types': 15.7.14 + csstype: 3.1.3 + + '@vitejs/plugin-react-swc@3.7.2(vite@5.4.11)': + dependencies: + '@swc/core': 1.10.1 + vite: 5.4.11 + transitivePeerDependencies: + - '@swc/helpers' + + csstype@3.1.3: {} + + esbuild@0.21.5: + 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 + + fsevents@2.3.3: + optional: true + + js-tokens@4.0.0: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + nanoid@3.3.8: {} + + picocolors@1.1.1: {} + + postcss@8.4.49: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + rollup@4.28.1: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.28.1 + '@rollup/rollup-android-arm64': 4.28.1 + '@rollup/rollup-darwin-arm64': 4.28.1 + '@rollup/rollup-darwin-x64': 4.28.1 + '@rollup/rollup-freebsd-arm64': 4.28.1 + '@rollup/rollup-freebsd-x64': 4.28.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.28.1 + '@rollup/rollup-linux-arm-musleabihf': 4.28.1 + '@rollup/rollup-linux-arm64-gnu': 4.28.1 + '@rollup/rollup-linux-arm64-musl': 4.28.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.28.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.28.1 + '@rollup/rollup-linux-riscv64-gnu': 4.28.1 + '@rollup/rollup-linux-s390x-gnu': 4.28.1 + '@rollup/rollup-linux-x64-gnu': 4.28.1 + '@rollup/rollup-linux-x64-musl': 4.28.1 + '@rollup/rollup-win32-arm64-msvc': 4.28.1 + '@rollup/rollup-win32-ia32-msvc': 4.28.1 + '@rollup/rollup-win32-x64-msvc': 4.28.1 + fsevents: 2.3.3 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + source-map-js@1.2.1: {} + + typescript@5.7.2: {} + + vite@5.4.11: + dependencies: + esbuild: 0.21.5 + postcss: 8.4.49 + rollup: 4.28.1 + optionalDependencies: + fsevents: 2.3.3 + + zustand@5.0.2(@types/react@18.3.17)(react@18.3.1): + optionalDependencies: + '@types/react': 18.3.17 + react: 18.3.1 diff --git a/examples/starter/src/assets/zustand-mascot.svg b/examples/starter/src/assets/zustand-mascot.svg new file mode 100644 index 0000000000..98d7762890 --- /dev/null +++ b/examples/starter/src/assets/zustand-mascot.svg @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="128" height="128"> +<path d="M0 0 C2.92674749 2.02367451 4.43710763 4.6577182 5.8125 7.9375 C6.20712798 12.27840773 6.50846543 15.59317865 5.01171875 19.734375 C3.85271995 22.98800073 3.07718357 25.53531508 3 29 C5.40595939 33.29114836 8.45731999 36.61076941 12 40 C12.59683594 39.81953125 13.19367188 39.6390625 13.80859375 39.453125 C17.0075717 38.79166075 19.03677941 39.73905507 22 41 C24.22013779 42.60768599 24.8812502 43.69464338 25.875 46.25 C26.05238008 50.15236177 24.83227412 52.58817923 23 56 C19.80645161 59 19.80645161 59 17 59 C17.05800781 59.92039063 17.11601563 60.84078125 17.17578125 61.7890625 C17.76383119 78.28806378 12.00744635 90.66254859 0.8125 102.6875 C-8.61621534 111.74803121 -21.7975819 118.42405559 -35 119 C-36.07765625 119.07476562 -37.1553125 119.14953125 -38.265625 119.2265625 C-55.05734181 119.89401568 -69.14092226 114.26480156 -81.6875 103.0625 C-92.32535821 91.77412528 -96.2255403 77.89725091 -95.9375 62.703125 C-95.16953149 54.98504144 -92.25169796 48.59552316 -88.65673828 41.82250977 C-86.48817162 37.77623874 -86.48817162 37.77623874 -86.23828125 33.29296875 C-86.48964844 32.53628906 -86.74101563 31.77960937 -87 31 C-87.9014227 23.33790704 -86.44167874 17.3703024 -82 11 C-78.78712812 8.07329485 -76.43782151 7.4763614 -72.02734375 7.640625 C-67.60034116 8.42537305 -63.80444862 11.57234058 -61 15 C-61 15.66 -61 16.32 -61 17 C-60.31035156 16.72285156 -59.62070312 16.44570313 -58.91015625 16.16015625 C-52.87975084 13.83567899 -47.45919292 12.26671712 -41 12 C-39.90751953 11.94005859 -39.90751953 11.94005859 -38.79296875 11.87890625 C-32.99633084 11.70632684 -27.6311646 12.68331851 -22 14 C-21.835 13.154375 -21.67 12.30875 -21.5 11.4375 C-17.58686009 2.46988771 -9.45188118 -1.59017498 0 0 Z " fill="#423C36" transform="translate(100,4)"/> +<path d="M0 0 C6.33186897 4.8877585 10.13395719 10.71499423 11.3203125 18.66796875 C11.7497603 26.43958854 8.96784956 33.42767092 4.87890625 39.921875 C-0.8146359 45.12032653 -6.40942331 47.8325495 -14.18359375 48.046875 C-21.62067806 47.68548216 -26.93710729 45.23542235 -32.421875 40.29296875 C-37.53789534 34.61837547 -39.4093185 27.53365595 -39.26171875 20.04296875 C-38.51870381 13.06081368 -35.8361952 7.90936704 -30.74609375 3.109375 C-21.58993102 -4.27222199 -10.3818389 -6.61168989 0 0 Z " fill="#716257" transform="translate(93.99609375,41.453125)"/> +<path d="M0 0 C2.90223276 2.06734389 4.43251153 4.64675827 5.8125 7.9375 C6.20712798 12.27840773 6.50846543 15.59317865 5.01171875 19.734375 C3.85271995 22.98800073 3.07718357 25.53531508 3 29 C5.40595939 33.29114836 8.45731999 36.61076941 12 40 C12.59683594 39.81953125 13.19367188 39.6390625 13.80859375 39.453125 C17.0075717 38.79166075 19.03677941 39.73905507 22 41 C24.22013779 42.60768599 24.8812502 43.69464338 25.875 46.25 C26.05238008 50.15236177 24.83227412 52.58817923 23 56 C19.80645161 59 19.80645161 59 17 59 C17.05800781 59.92039063 17.11601563 60.84078125 17.17578125 61.7890625 C17.76383119 78.28806378 12.00744635 90.66254859 0.8125 102.6875 C-8.61621534 111.74803121 -21.7975819 118.42405559 -35 119 C-36.07765625 119.07476562 -37.1553125 119.14953125 -38.265625 119.2265625 C-55.05734181 119.89401568 -69.14092226 114.26480156 -81.6875 103.0625 C-92.32535821 91.77412528 -96.2255403 77.89725091 -95.9375 62.703125 C-95.16953149 54.98504144 -92.25169796 48.59552316 -88.65673828 41.82250977 C-86.48817162 37.77623874 -86.48817162 37.77623874 -86.23828125 33.29296875 C-86.48964844 32.53628906 -86.74101563 31.77960937 -87 31 C-87.9014227 23.33790704 -86.44167874 17.3703024 -82 11 C-78.78741059 8.07355216 -76.43523867 7.46802927 -72.0234375 7.6484375 C-67.43571746 8.44553171 -64.65273087 11.10249505 -62 14.75 C-60.13790618 17.35869184 -60.13790618 17.35869184 -56.75 17.3125 C-55.8425 17.209375 -54.935 17.10625 -54 17 C-54.66 17.66 -55.32 18.32 -56 19 C-56.99 19 -57.98 19 -59 19 C-59.33 19.66 -59.66 20.32 -60 21 C-65 16 -65 16 -66.8125 13.75 C-70.21485482 11.02811614 -72.64273429 11 -77 11 C-80.9027 13.53148108 -82.85588614 17.56347215 -84 22 C-85.04508982 30.09629826 -83.20661834 36.59901034 -80 44 C-80.99 44 -81.98 44 -83 44 C-83.495 42.515 -83.495 42.515 -84 41 C-91.09255003 54.18143731 -94.59348082 65.83405644 -90.3125 80.6875 C-85.56293233 94.63517408 -78.52829505 100.39945617 -65.73828125 107.203125 C-52.53312853 113.55677119 -36.05721359 113.82267089 -22.0234375 110.09765625 C-8.21440882 105.08430088 2.05145433 93.9228185 10 82 C10.66 82 11.32 82 12 82 C12.78174481 76.69681224 13.4465203 71.38730233 14.0625 66.0625 C14.15337891 65.28326172 14.24425781 64.50402344 14.33789062 63.70117188 C14.55939765 61.80087478 14.77981282 59.90045047 15 58 C13.8553125 57.814375 13.8553125 57.814375 12.6875 57.625 C10 57 10 57 7 55 C7.33 55.66 7.66 56.32 8 57 C9.25636791 65.87409236 6.94877165 72.63975064 2 80 C-4.49583227 87.39803119 -11.25105188 89.42289926 -20.89453125 90.09375 C-27.14874219 89.90494363 -32.030954 87.61899338 -36.8125 83.6875 C-37.534375 82.800625 -38.25625 81.91375 -39 81 C-39.44085938 80.46246094 -39.88171875 79.92492187 -40.3359375 79.37109375 C-46.63150114 71.23780777 -46.90420695 61.97856957 -46 52 C-45.01758645 48.77935181 -43.91755982 46.81994092 -42 44 C-41.34 43.67 -40.68 43.34 -40 43 C-41.33333333 47 -42.66666667 51 -44 55 C-44.90453256 63.81919249 -42.54103243 71.07370946 -37 78 C-30.70423174 83.44260341 -25.43956591 84.4429393 -17.171875 84.33203125 C-11.07691858 83.69401241 -6.24166316 81.48815309 -2.1171875 76.91015625 C2.87518016 69.85572368 4.9354258 62.59700854 4 54 C2.6224698 47.76059851 -0.62140606 43.53446621 -5 39 C-4.505 38.01 -4.505 38.01 -4 37 C0.31503917 40.99584449 3.7051836 44.46544279 6 50 C7.35264857 47.38753168 8.42135087 44.89324564 9 42 C7.71036916 38.80996083 7.71036916 38.80996083 5 36 C4.39414063 35.29101562 3.78828125 34.58203125 3.1640625 33.8515625 C1.46708766 31.87753054 -0.25485762 29.93142162 -2 28 C-1.01 27.67 -0.02 27.34 1 27 C1.1954384 24.10450497 1.38161395 21.20891002 1.5625 18.3125 C1.61857422 17.49587891 1.67464844 16.67925781 1.73242188 15.83789062 C1.98341571 11.70485877 2.11127743 8.04175718 1 4 C-2.61930698 2.79356434 -5.19231005 2.67731441 -9 3 C-14.29789125 5.90864618 -18.58876318 9.37378076 -21 15 C-21.495 13.515 -21.495 13.515 -22 12 C-17.64706023 3.48337871 -9.88445863 -2.5815081 0 0 Z " fill="#14100D" transform="translate(100,4)"/> +<path d="M0 0 C3.59662214 1.86747688 5.61719881 3.47364837 8 6.75 C9.86209382 9.35869184 9.86209382 9.35869184 13.25 9.3125 C14.1575 9.209375 15.065 9.10625 16 9 C15.34 9.66 14.68 10.32 14 11 C13.01 11 12.02 11 11 11 C10.67 11.66 10.34 12.32 10 13 C5 8 5 8 3.1875 5.75 C-0.21485482 3.02811614 -2.64273429 3 -7 3 C-10.9027 5.53148108 -12.85588614 9.56347215 -14 14 C-15.04508982 22.09629826 -13.20661834 28.59901034 -10 36 C-10.99 36 -11.98 36 -13 36 C-13.495 34.515 -13.495 34.515 -14 33 C-21.09255003 46.18143731 -24.59348082 57.83405644 -20.3125 72.6875 C-15.56293233 86.63517408 -8.52829505 92.39945617 4.26171875 99.203125 C17.46687147 105.55677119 33.94278641 105.82267089 47.9765625 102.09765625 C59.54624642 97.89729297 69.81932952 88.77553987 76.74609375 78.7265625 C78.0265619 76.96342567 79.42284042 75.49899132 81 74 C81 74.99 81 75.98 81 77 C81.66 77.33 82.32 77.66 83 78 C73.70972207 94.1810801 61.09198619 104.85509143 43 110 C40.1737474 110.56525052 37.8364354 110.87626289 35 111 C33.92234375 111.07476562 32.8446875 111.14953125 31.734375 111.2265625 C14.94265819 111.89401568 0.85907774 106.26480156 -11.6875 95.0625 C-22.32535821 83.77412528 -26.2255403 69.89725091 -25.9375 54.703125 C-25.16953149 46.98504144 -22.25169796 40.59552316 -18.65673828 33.82250977 C-16.48817162 29.77623874 -16.48817162 29.77623874 -16.23828125 25.29296875 C-16.61533203 24.15794922 -16.61533203 24.15794922 -17 23 C-17.9014227 15.33790704 -16.44167874 9.3703024 -12 3 C-8.30392984 -0.36686553 -4.86538341 -0.84533689 0 0 Z " fill="#25211C" transform="translate(30,12)"/> +<path d="M0 0 C2.67216951 1.61736575 3.71076127 2.88176207 4.49609375 5.91796875 C5.35049775 11.87770037 5.7467684 19.5064632 3 25 C-0.70581586 25.57903373 -2.67587166 24.74757092 -5.6875 22.75 C-17.7324419 14.83218903 -30.90432407 13.20387509 -45 15 C-47.3948941 15.1991378 -49.79079442 15.38650002 -52.1875 15.5625 C-53.29480469 15.64628906 -54.40210938 15.73007812 -55.54296875 15.81640625 C-56.35378906 15.87699219 -57.16460937 15.93757813 -58 16 C-52.72877216 10.22374434 -44.19734811 10.3062723 -36.8125 9.87109375 C-30.71191722 9.70768528 -24.95640233 10.75305222 -19 12 C-18.4740625 10.948125 -18.4740625 10.948125 -17.9375 9.875 C-13.39073861 3.12819278 -8.26543715 -0.71253769 0 0 Z " fill="#201D19" transform="translate(98,6)"/> +<path d="M0 0 C1.0209375 0.5878125 1.0209375 0.5878125 2.0625 1.1875 C1.58249859 5.50751266 0.44746591 7.46072191 -2.9375 10.1875 C-6.4467699 11.98712559 -9.04183797 12.26554331 -12.9375 12.1875 C-12.88529297 13.21810547 -12.88529297 13.21810547 -12.83203125 14.26953125 C-12.80496094 15.17058594 -12.77789062 16.07164063 -12.75 17 C-12.69779297 18.33998047 -12.69779297 18.33998047 -12.64453125 19.70703125 C-12.9375 22.1875 -12.9375 22.1875 -14.3203125 24.015625 C-15.9375 25.1875 -15.9375 25.1875 -18 25.125 C-19.9375 24.1875 -19.9375 24.1875 -21.1875 22.5 C-22.1133912 19.64516881 -22.073057 17.16975393 -21.9375 14.1875 C-23.113125 13.754375 -23.113125 13.754375 -24.3125 13.3125 C-26.9375 12.1875 -26.9375 12.1875 -28.9375 10.1875 C-28.5625 6.5625 -28.5625 6.5625 -27.9375 3.1875 C-23.67418153 2.42957672 -19.77117315 2.18099544 -15.4375 2.3125 C-11.8249207 2.37188487 -9.30314483 2.17574677 -6.0625 0.5625 C-2.9375 -0.8125 -2.9375 -0.8125 0 0 Z " fill="#13100E" transform="translate(92.9375,61.8125)"/> +<path d="M0 0 C3.59662214 1.86747688 5.61719881 3.47364837 8 6.75 C9.86209382 9.35869184 9.86209382 9.35869184 13.25 9.3125 C14.1575 9.209375 15.065 9.10625 16 9 C15.34 9.66 14.68 10.32 14 11 C13.01 11 12.02 11 11 11 C10.67 11.66 10.34 12.32 10 13 C5 8 5 8 3.1875 5.75 C-0.21485482 3.02811614 -2.64273429 3 -7 3 C-10.9027 5.53148108 -12.85588614 9.56347215 -14 14 C-15.04508982 22.09629826 -13.20661834 28.59901034 -10 36 C-10.99 36 -11.98 36 -13 36 C-13.495 34.515 -13.495 34.515 -14 33 C-21.09255003 46.18143731 -24.59348082 57.83405644 -20.3125 72.6875 C-18.69149403 77.50999276 -16.69668247 81.85374084 -14.05078125 86.1953125 C-13 88 -13 88 -12 91 C-13.7421875 90.94140625 -13.7421875 90.94140625 -16 90 C-17.61011177 87.63951538 -18.87762811 85.4822689 -20.125 82.9375 C-20.4761084 82.22231201 -20.8272168 81.50712402 -21.18896484 80.77026367 C-26.35930349 69.56786327 -27.63434457 56.90281624 -24 45 C-22.38506189 41.19230189 -20.59569557 37.47556428 -18.65673828 33.82250977 C-16.48817162 29.77623874 -16.48817162 29.77623874 -16.23828125 25.29296875 C-16.61533203 24.15794922 -16.61533203 24.15794922 -17 23 C-17.9014227 15.33790704 -16.44167874 9.3703024 -12 3 C-8.30392984 -0.36686553 -4.86538341 -0.84533689 0 0 Z " fill="#100D0A" transform="translate(30,12)"/> +<path d="M0 0 C0.33 0.66 0.66 1.32 1 2 C0.22265625 4.06640625 0.22265625 4.06640625 -0.9375 6.5625 C-3.6371104 13.07718483 -4.05176239 18.48568353 -1.75 25.1875 C1.07660895 31.78292088 4.68043183 36.52146577 11 40 C17.89605334 42.2650217 25.76492764 41.976941 32.375 39.0625 C37.57620607 36.1441384 40.16441561 32.11554751 43 27 C44.33333333 25 45.66666667 23 47 21 C47.39387788 18.67612053 47.73486085 16.34206251 48 14 C48.33 14 48.66 14 49 14 C49.95648606 22.99805408 48.0479775 29.49220295 43 37 C36.50416773 44.39803119 29.74894812 46.42289926 20.10546875 47.09375 C13.85125781 46.90494363 8.969046 44.61899338 4.1875 40.6875 C3.465625 39.800625 2.74375 38.91375 2 38 C1.55914062 37.46246094 1.11828125 36.92492187 0.6640625 36.37109375 C-5.62765524 28.24277632 -5.91455402 18.97401852 -5 9 C-3.92089534 5.60643556 -2.57035322 2.57035322 0 0 Z " fill="#26231F" transform="translate(59,47)"/> +<path d="M0 0 C0.495 1.485 0.495 1.485 1 3 C1.66 3.33 2.32 3.66 3 4 C-5.79743316 19.3226816 -17.39632723 29.59827315 -34.26171875 35.28515625 C-40.59029935 36.93726788 -46.61193005 37.49970818 -53 36 C-49.24031213 33.74222399 -45.19180533 33.12553451 -40.9375 32.375 C-39.85758789 32.17390625 -39.85758789 32.17390625 -38.75585938 31.96875 C-35.79508331 31.42992724 -33.0155592 31 -30 31 C-30 30.34 -30 29.68 -30 29 C-30.99 28.67 -31.98 28.34 -33 28 C-31.9275 27.690625 -30.855 27.38125 -29.75 27.0625 C-16.97128186 22.27331789 -7.00720116 11.31932496 0 0 Z " fill="#26211B" transform="translate(110,86)"/> +<path d="M0 0 C3.375 0.5625 3.375 0.5625 5.1875 1.8125 C5.579375 2.39 5.97125 2.9675 6.375 3.5625 C6.99375 4.4596875 6.99375 4.4596875 7.625 5.375 C8.68843307 8.47667979 8.30384753 10.44422616 7.375 13.5625 C5.5698071 15.72873148 4.24466222 16.41785392 1.47265625 16.87890625 C-2.11082393 17.08577382 -4.0678233 16.92466486 -7.125 14.9375 C-9.11976086 11.77912863 -9.28760372 10.24363179 -8.625 6.5625 C-6.08279552 2.40252904 -4.89160228 0.75904173 0 0 Z " fill="#AA7F69" transform="translate(37.625,64.4375)"/> +<path d="M0 0 C2.98938721 1.2060793 4.28223371 2.57290635 6.30078125 5.06640625 C6.90535156 5.79988281 7.50992188 6.53335937 8.1328125 7.2890625 C8.58011719 7.85496094 9.02742188 8.42085937 9.48828125 9.00390625 C8.49828125 10.48890625 8.49828125 10.48890625 7.48828125 12.00390625 C6.82828125 12.00390625 6.16828125 12.00390625 5.48828125 12.00390625 C5.15828125 12.99390625 4.82828125 13.98390625 4.48828125 15.00390625 C3.82828125 15.00390625 3.16828125 15.00390625 2.48828125 15.00390625 C2.48828125 15.99390625 2.48828125 16.98390625 2.48828125 18.00390625 C1.82828125 18.00390625 1.16828125 18.00390625 0.48828125 18.00390625 C-0.17171875 18.99390625 -0.83171875 19.98390625 -1.51171875 21.00390625 C-2.50171875 21.33390625 -3.49171875 21.66390625 -4.51171875 22.00390625 C-6.3590311 18.05065781 -6.8362848 14.79385621 -6.88671875 10.44140625 C-6.91507813 9.32636719 -6.9434375 8.21132813 -6.97265625 7.0625 C-6.51171875 4.00390625 -6.51171875 4.00390625 -4.80078125 1.5390625 C-2.51171875 0.00390625 -2.51171875 0.00390625 0 0 Z " fill="#C8806B" transform="translate(28.51171875,22.99609375)"/> +<path d="M0 0 C1.8125 1.125 1.8125 1.125 3 3 C3.1875 6.6875 3.1875 6.6875 3 10 C2.34 10 1.68 10 1 10 C0.690625 10.639375 0.38125 11.27875 0.0625 11.9375 C-1 14 -1 14 -2 15 C-4.91179131 15.31478825 -6.61350511 15.19324745 -9.25 13.875 C-11.71057713 11.23866736 -12 9.59214327 -12 6 C-8.94092069 0.20959987 -6.47434097 -1.94230229 0 0 Z " fill="#B87866" transform="translate(120,46)"/> +<path d="M0 0 C2.00948183 0.01778303 4.01668765 0.16786374 6.01953125 0.33203125 C5.26953125 2.26953125 5.26953125 2.26953125 4.01953125 4.33203125 C1.95703125 4.95703125 1.95703125 4.95703125 0.01953125 5.33203125 C-0.31046875 5.99203125 -0.64046875 6.65203125 -0.98046875 7.33203125 C-0.05234375 7.54859375 -0.05234375 7.54859375 0.89453125 7.76953125 C3.01953125 8.33203125 3.01953125 8.33203125 5.01953125 9.33203125 C5.10084588 10.76858979 5.15886684 12.20647955 5.20703125 13.64453125 C5.25923828 14.84529297 5.25923828 14.84529297 5.3125 16.0703125 C5.01953125 18.33203125 5.01953125 18.33203125 3.63671875 20.12890625 C2.01953125 21.33203125 2.01953125 21.33203125 -0.04296875 21.26953125 C-1.98046875 20.33203125 -1.98046875 20.33203125 -3.23046875 18.64453125 C-4.15635995 15.78970006 -4.11602575 13.31428518 -3.98046875 10.33203125 C-4.76421875 10.06390625 -5.54796875 9.79578125 -6.35546875 9.51953125 C-8.98046875 8.33203125 -8.98046875 8.33203125 -10.98046875 5.33203125 C-10.32046875 4.34203125 -9.66046875 3.35203125 -8.98046875 2.33203125 C-7.99046875 2.33203125 -7.00046875 2.33203125 -5.98046875 2.33203125 C-5.65046875 3.32203125 -5.32046875 4.31203125 -4.98046875 5.33203125 C-4.65046875 4.50703125 -4.32046875 3.68203125 -3.98046875 2.83203125 C-1.98046875 0.33203125 -1.98046875 0.33203125 0 0 Z " fill="#3C291E" transform="translate(74.98046875,65.66796875)"/> +<path d="M0 0 C2.3125 0.5625 2.3125 0.5625 4.125 2.0625 C5.76926082 5.52410172 5.84790032 8.82860425 5.3125 12.5625 C4.6525 14.2125 3.9925 15.8625 3.3125 17.5625 C-1.3075 15.2525 -5.9275 12.9425 -10.6875 10.5625 C-8.48950726 5.06751816 -6.08305792 1.27319817 0 0 Z " fill="#C07A67" transform="translate(93.6875,11.4375)"/> +<path d="M0 0 C0.66 0.33 1.32 0.66 2 1 C1.8125 3.375 1.8125 3.375 1 6 C-1.5625 7.3125 -1.5625 7.3125 -4 8 C-3.67 10.97 -3.34 13.94 -3 17 C-2.33613281 16.6390625 -1.67226562 16.278125 -0.98828125 15.90625 C-0.10527344 15.4421875 0.77773437 14.978125 1.6875 14.5 C2.55761719 14.0359375 3.42773438 13.571875 4.32421875 13.09375 C7.11788829 11.95181208 9.01629113 11.78495792 12 12 C12.33 13.65 12.66 15.3 13 17 C12.154375 16.608125 11.30875 16.21625 10.4375 15.8125 C5.97572557 14.75789877 4.05131718 16.0493658 0 18 C-1.32 18 -2.64 18 -4 18 C-4.33 14.7 -4.66 11.4 -5 8 C-5.94875 8.020625 -6.8975 8.04125 -7.875 8.0625 C-11 8 -11 8 -13 7 C-12.69611836 4.06247746 -12.19330344 3.15919107 -9.875 1.25 C-6.3724585 -0.27284413 -3.78415443 -0.28559656 0 0 Z " fill="#352920" transform="translate(83,47)"/> +<path d="M0 0 C8.38356164 8.15068493 8.38356164 8.15068493 10 13 C9.33333333 14.33333333 8.66666667 15.66666667 8 17 C7.61250787 19.32495277 7.27017161 21.65851268 7 24 C6.72027344 23.42378906 6.44054687 22.84757812 6.15234375 22.25390625 C5.04119631 20.08057719 3.84615416 18.01294084 2.5625 15.9375 C2.15128906 15.26589844 1.74007812 14.59429687 1.31640625 13.90234375 C0.05958046 11.95589272 0.05958046 11.95589272 -1.63671875 10.40625 C-3 9 -3 9 -3.375 6.5625 C-2.93956032 3.58699552 -1.97538528 2.22230844 0 0 Z " fill="#3F3934" transform="translate(100,34)"/> +<path d="M0 0 C-1 3 -1 3 -3.94921875 4.75390625 C-5.19025738 5.36710969 -6.43664129 5.96958532 -7.6875 6.5625 C-8.60692383 7.01786133 -8.60692383 7.01786133 -9.54492188 7.48242188 C-15.13962115 10.2056106 -20.34974279 12.14841296 -26.5625 12.6875 C-27.47128906 12.77386719 -28.38007812 12.86023438 -29.31640625 12.94921875 C-32.03819889 13.00072283 -34.36040742 12.63483872 -37 12 C-33.34378845 9.80627307 -29.51417623 9.28997449 -25.375 8.625 C-17.30061068 7.22028123 -7.25408891 0 0 0 Z " fill="#14110F" transform="translate(94,110)"/> +<path d="M0 0 C0.33 0 0.66 0 1 0 C2.04632602 9.8432152 -0.69449735 16.86906494 -6.3359375 24.90234375 C-7.5625 26.3125 -7.5625 26.3125 -10 28 C-12.8125 27.8125 -12.8125 27.8125 -15 27 C-14.278125 26.46375 -13.55625 25.9275 -12.8125 25.375 C-8.4386401 21.68151831 -5.38664882 18.84401747 -4.1875 13.125 C-4.125625 12.09375 -4.06375 11.0625 -4 10 C-3.34 10 -2.68 10 -2 10 C-1.34 6.7 -0.68 3.4 0 0 Z " fill="#2A2824" transform="translate(107,61)"/> +<path d="M0 0 C2.48347571 2.91538453 3.81117687 5.12912578 4 9 C3 11.75 3 11.75 1 14 C-2.6875 14.8125 -2.6875 14.8125 -6 15 C-5.67 12.03 -5.34 9.06 -5 6 C-3.68 5.67 -2.36 5.34 -1 5 C-1 5.99 -1 6.98 -1 8 C-0.34 8.33 0.32 8.66 1 9 C0.84402344 8.43410156 0.68804687 7.86820312 0.52734375 7.28515625 C0.23537109 6.18494141 0.23537109 6.18494141 -0.0625 5.0625 C-0.35833984 3.96615234 -0.35833984 3.96615234 -0.66015625 2.84765625 C-0.77230469 2.23792969 -0.88445313 1.62820312 -1 1 C-0.67 0.67 -0.34 0.34 0 0 Z " fill="#9B6958" transform="translate(42,66)"/> +<path d="M0 0 C2.4375 1.5625 2.4375 1.5625 4 4 C4.25 7.75 4.25 7.75 4 11 C3.01 10.34 2.02 9.68 1 9 C1 8.01 1 7.02 1 6 C-0.77021322 5.663389 -2.54119674 5.33082707 -4.3125 5 C-5.29863281 4.814375 -6.28476563 4.62875 -7.30078125 4.4375 C-10.03781805 3.92000204 -10.03781805 3.92000204 -13 4 C-8.55003893 0.52685966 -5.67061228 -0.84009071 0 0 Z " fill="#595249" transform="translate(98,6)"/> +<path d="M0 0 C0.33 0.66 0.66 1.32 1 2 C-0.32 1.67 -1.64 1.34 -3 1 C-2.34 2.32 -1.68 3.64 -1 5 C-1.66 5.66 -2.32 6.32 -3 7 C-3.66 6.67 -4.32 6.34 -5 6 C-4.67 4.68 -4.34 3.36 -4 2 C-4.66 2 -5.32 2 -6 2 C-6.66 4.97 -7.32 7.94 -8 11 C-8.99 11 -9.98 11 -11 11 C-11.75 8.875 -11.75 8.875 -12 6 C-8.87850064 0.20292976 -6.52316218 -1.88828379 0 0 Z " fill="#BB8C78" transform="translate(120,46)"/> +<path d="M0 0 C0.99 0.66 1.98 1.32 3 2 C3 2.66 3 3.32 3 4 C3.56976563 4.26941406 4.13953125 4.53882812 4.7265625 4.81640625 C7.07899759 6.04112761 9.19233457 7.43260962 11.375 8.9375 C14.82477976 11.26966516 18.22260697 13.25658783 22 15 C22 15.33 22 15.66 22 16 C14.78135026 16.51940358 10.60381574 13.1947638 5 9 C2.52018323 6.78526709 0.21073182 4.48235757 -2 2 C-1.34 1.34 -0.68 0.68 0 0 Z " fill="#1B1713" transform="translate(18,102)"/> +<path d="M0 0 C0.99 0.99 1.98 1.98 3 3 C2.01 4.485 2.01 4.485 1 6 C0.34 6 -0.32 6 -1 6 C-1.33 6.99 -1.66 7.98 -2 9 C-2.66 9 -3.32 9 -4 9 C-4 9.99 -4 10.98 -4 12 C-4.66 12 -5.32 12 -6 12 C-6.99 13.485 -6.99 13.485 -8 15 C-8.99 15.33 -9.98 15.66 -11 16 C-11.6953125 14.21484375 -11.6953125 14.21484375 -12 12 C-10.7421875 10.25390625 -10.7421875 10.25390625 -8.875 8.5625 C-8.23175781 7.964375 -7.58851562 7.36625 -6.92578125 6.75 C-5.97251953 5.88375 -5.97251953 5.88375 -5 5 C-4.01477056 4.02693388 -3.03463774 3.04864549 -2.0625 2.0625 C-1.381875 1.381875 -0.70125 0.70125 0 0 Z " fill="#A1664F" transform="translate(35,29)"/> +<path d="M0 0 C0.33 0 0.66 0 1 0 C0.85946128 2.62538284 0.71281053 5.25017427 0.5625 7.875 C0.52318359 8.62136719 0.48386719 9.36773437 0.44335938 10.13671875 C0.11328125 15.7734375 0.11328125 15.7734375 -1 18 C-1.99 18 -2.98 18 -4 18 C-5.2631363 14.41404928 -4.72375723 12.04721119 -3.6875 8.4375 C-3.42324219 7.48746094 -3.15898438 6.53742187 -2.88671875 5.55859375 C-2 3 -2 3 0 0 Z " fill="#3B342B" transform="translate(102,13)"/> +<path d="M0 0 C0.598125 0.20625 1.19625 0.4125 1.8125 0.625 C2.1425 2.275 2.4725 3.925 2.8125 5.625 C-2.8125 8.625 -2.8125 8.625 -6.1875 8.625 C-5.875 5.25 -5.875 5.25 -5.1875 1.625 C-2.1875 -0.375 -2.1875 -0.375 0 0 Z " fill="#1C1915" transform="translate(88.1875,65.375)"/> +<path d="M0 0 C4.84419638 2.07909954 9.55639631 4.13315891 14 7 C13.34 8.32 12.68 9.64 12 11 C11.31292969 10.57847656 10.62585938 10.15695313 9.91796875 9.72265625 C9.01691406 9.17480469 8.11585937 8.62695312 7.1875 8.0625 C6.29417969 7.51722656 5.40085937 6.97195312 4.48046875 6.41015625 C1.99296438 4.88990422 1.99296438 4.88990422 -1 4 C-0.67 2.68 -0.34 1.36 0 0 Z " fill="#9F654F" transform="translate(84,18)"/> +<path d="M0 0 C1.65 0 3.3 0 5 0 C5 3.63 5 7.26 5 11 C3.68 11 2.36 11 1 11 C-0.20272819 8.59454362 -0.10071472 7.05003047 -0.0625 4.375 C-0.05347656 3.55773437 -0.04445313 2.74046875 -0.03515625 1.8984375 C-0.02355469 1.27195312 -0.01195313 0.64546875 0 0 Z " fill="#C34627" transform="translate(73,74)"/> +<path d="M0 0 C0 1.32 0 2.64 0 4 C-2 6 -2 6 -5.625 6.125 C-6.73875 6.08375 -7.8525 6.0425 -9 6 C-9 4.68 -9 3.36 -9 2 C-5.86501708 0.14223235 -3.62528568 -0.20140476 0 0 Z " fill="#DD7342" transform="translate(82,48)"/> +<path d="M0 0 C0 0.99 0 1.98 0 3 C-0.66 3 -1.32 3 -2 3 C-2 4.98 -2 6.96 -2 9 C-3.32 9.33 -4.64 9.66 -6 10 C-5.67 8.68 -5.34 7.36 -5 6 C-5.99 6.495 -5.99 6.495 -7 7 C-7.33 7.99 -7.66 8.98 -8 10 C-8.33 10 -8.66 10 -9 10 C-9.3125 7.25 -9.3125 7.25 -9 4 C-5.82190563 0.64534483 -4.70465908 0 0 0 Z " fill="#8F6653" transform="translate(38,67)"/> +<path d="M0 0 C6.27 0.66 12.54 1.32 19 2 C19.33 2.99 19.66 3.98 20 5 C7.17631533 5.56853774 7.17631533 5.56853774 1 2 C0.67 1.34 0.34 0.68 0 0 Z " fill="#1C1915" transform="translate(42,118)"/> +<path d="M0 0 C0.33 0.99 0.66 1.98 1 3 C-1.94802302 8.37985524 -6.59483302 12.80460288 -11 17 C-11.99 16.67 -12.98 16.34 -14 16 C-13.01 15.67 -12.02 15.34 -11 15 C-10.29613264 13.68592505 -9.63474075 12.34882408 -9 11 C-7.8717631 9.61365229 -6.70260397 8.25985478 -5.5 6.9375 C-3.44184439 4.66567993 -1.70861829 2.56292743 0 0 Z " fill="#100B08" transform="translate(109,92)"/> +<path d="M0 0 C0.66 0 1.32 0 2 0 C0.32423324 6.33067441 -4.64315905 9.57607526 -10 12.8125 C-13.34466911 14.13643152 -16.43005133 14.64300513 -20 15 C-20 14.34 -20 13.68 -20 13 C-19.35933594 12.84144531 -18.71867187 12.68289062 -18.05859375 12.51953125 C-11.03033644 10.62368241 -5.24610197 8.48533064 -1.1875 2.1875 C-0.795625 1.465625 -0.40375 0.74375 0 0 Z " fill="#161310" transform="translate(101,76)"/> +<path d="M0 0 C1.125 1.625 1.125 1.625 2 4 C1.125 7.25 1.125 7.25 0 10 C-2.16874252 9.49396008 -3.99967627 9.00016187 -6 8 C-6 6.02 -6 4.04 -6 2 C-5.01 2 -4.02 2 -3 2 C-2.67 2.99 -2.34 3.98 -2 5 C-1.34 3.35 -0.68 1.7 0 0 Z " fill="#BB7865" transform="translate(36,71)"/> +<path d="M0 0 C0 0.66 0 1.32 0 2 C-3.52155964 4.34770643 -5.50771843 4.37669614 -9.6875 4.625 C-10.86699219 4.69976563 -12.04648437 4.77453125 -13.26171875 4.8515625 C-14.61716797 4.92503906 -14.61716797 4.92503906 -16 5 C-11.69812336 0.25623875 -6.18827023 -0.30186684 0 0 Z " fill="#272420" transform="translate(56,17)"/> +<path d="M0 0 C0.66 0.33 1.32 0.66 2 1 C2.625 4.0625 2.625 4.0625 3 7 C2.484375 6.154375 1.96875 5.30875 1.4375 4.4375 C-0.82388966 1.62324382 -0.82388966 1.62324382 -4.375 1.875 C-8.72937972 3.22635922 -10.72795067 4.88756283 -14 8 C-13.02503465 4.49012473 -12.04799249 3.04144806 -9.25 0.625 C-5.49027596 -1.25486202 -3.96525881 -1.17155374 0 0 Z " fill="#211A14" transform="translate(97,11)"/> +<path d="M0 0 C1.52299523 2.93720508 2.80100302 5.9168649 4 9 C3.01 9 2.02 9 1 9 C0.67 8.01 0.34 7.02 0 6 C-0.99 7.98 -1.98 9.96 -3 12 C-4.1875 10.375 -4.1875 10.375 -5 8 C-3.625 4.75 -3.625 4.75 -2 2 C-1.34 2 -0.68 2 0 2 C0 1.34 0 0.68 0 0 Z " fill="#1A1714" transform="translate(16,39)"/> +<path d="M0 0 C0.33 1.65 0.66 3.3 1 5 C0.154375 4.608125 -0.69125 4.21625 -1.5625 3.8125 C-6.02427443 2.75789877 -7.94868282 4.0493658 -12 6 C-13.32 6 -14.64 6 -16 6 C-16 4.35 -16 2.7 -16 1 C-15.67 2.32 -15.34 3.64 -15 5 C-14.33613281 4.6390625 -13.67226562 4.278125 -12.98828125 3.90625 C-11.66376953 3.21015625 -11.66376953 3.21015625 -10.3125 2.5 C-9.44238281 2.0359375 -8.57226562 1.571875 -7.67578125 1.09375 C-4.88211171 -0.04818792 -2.98370887 -0.21504208 0 0 Z " fill="#25201C" transform="translate(95,59)"/> +<path d="M0 0 C2.48347571 2.91538453 3.81117687 5.12912578 4 9 C2.5625 11.8125 2.5625 11.8125 1 14 C-1 11 -1 11 -1 9 C-0.34 9 0.32 9 1 9 C0.84402344 8.43410156 0.68804687 7.86820312 0.52734375 7.28515625 C0.33269531 6.55167969 0.13804688 5.81820312 -0.0625 5.0625 C-0.35833984 3.96615234 -0.35833984 3.96615234 -0.66015625 2.84765625 C-0.77230469 2.23792969 -0.88445313 1.62820312 -1 1 C-0.67 0.67 -0.34 0.34 0 0 Z " fill="#936352" transform="translate(42,66)"/> +<path d="M0 0 C-1.1446875 0.86625 -1.1446875 0.86625 -2.3125 1.75 C-5.01265709 3.82336958 -5.01265709 3.82336958 -6.625 6.25 C-7.305625 7.11625 -7.305625 7.11625 -8 8 C-8.99 8 -9.98 8 -11 8 C-10.43416161 4.71813734 -9.58727596 3.10815078 -7 1 C-3.52173913 -1.17391304 -3.52173913 -1.17391304 0 0 Z " fill="#3F3A34" transform="translate(91,10)"/> +<path d="M0 0 C0.99 0.99 1.98 1.98 3 3 C2.01 4.485 2.01 4.485 1 6 C0.34 6 -0.32 6 -1 6 C-1.33 6.99 -1.66 7.98 -2 9 C-3.98 9 -5.96 9 -8 9 C-6.8553125 7.88625 -6.8553125 7.88625 -5.6875 6.75 C-3.5606298 4.5736677 -1.7440044 2.47832204 0 0 Z " fill="#AC6B54" transform="translate(35,29)"/> +<path d="M0 0 C-2.07808677 2.07808677 -3.15929047 2.5305555 -5.875 3.4375 C-9.04690756 4.56375703 -11.36661987 5.87303912 -14 8 C-14.66 8 -15.32 8 -16 8 C-15 5 -15 5 -12.890625 3.61328125 C-12.01921875 3.18402344 -11.1478125 2.75476562 -10.25 2.3125 C-9.38890625 1.87550781 -8.5278125 1.43851563 -7.640625 0.98828125 C-4.88971748 -0.04127438 -2.90929095 -0.19360389 0 0 Z " fill="#302C27" transform="translate(78,37)"/> +<path d="M0 0 C0.33 0 0.66 0 1 0 C1 4.95 1 9.9 1 15 C0.01 15.495 0.01 15.495 -1 16 C-1.22384382 14.27277272 -1.42839969 12.54303993 -1.625 10.8125 C-1.74101563 9.84957031 -1.85703125 8.88664062 -1.9765625 7.89453125 C-2.00194942 4.75924677 -1.34359283 2.80513465 0 0 Z " fill="#0A0703" transform="translate(6,65)"/> +<path d="M0 0 C0.66 0 1.32 0 2 0 C1.34 3.3 0.68 6.6 0 10 C0.66 10.33 1.32 10.66 2 11 C2 11.66 2 12.32 2 13 C-1.26954202 12.43628586 -2.82575883 11.50037734 -5 9 C-4.01 9 -3.02 9 -2 9 C-1.34 6.03 -0.68 3.06 0 0 Z " fill="#9F6A57" transform="translate(114,48)"/> +<path d="M0 0 C0.33 1.98 0.66 3.96 1 6 C-0.32 6.33 -1.64 6.66 -3 7 C-3.33 5.02 -3.66 3.04 -4 1 C-2 0 -2 0 0 0 Z " fill="#0E0C0A" transform="translate(44,50)"/> +<path d="M0 0 C0.33 0.66 0.66 1.32 1 2 C1.66 2 2.32 2 3 2 C2.67 3.98 2.34 5.96 2 8 C1.01 8 0.02 8 -1 8 C-1.625 5.6875 -1.625 5.6875 -2 3 C-1.34 2.01 -0.68 1.02 0 0 Z " fill="#B8826C" transform="translate(110,49)"/> +<path d="M0 0 C0.66 0 1.32 0 2 0 C0.71480435 2.86697492 -0.57129254 4.97607712 -3 7 C-3.66 7 -4.32 7 -5 7 C-5.33 7.99 -5.66 8.98 -6 10 C-6.33 9.34 -6.66 8.68 -7 8 C-5.88200014 6.66079162 -4.75538103 5.32877444 -3.625 4 C-2.68527344 2.88625 -2.68527344 2.88625 -1.7265625 1.75 C-1.15679687 1.1725 -0.58703125 0.595 0 0 Z " fill="#9F9483" transform="translate(65,43)"/> +<path d="M0 0 C0.79921875 0.01804687 1.5984375 0.03609375 2.421875 0.0546875 C3.02515625 0.07789062 3.6284375 0.10109375 4.25 0.125 C1.6275285 2.7474715 -0.10023127 2.76717954 -3.75 3.125 C-6.625 2.6875 -6.625 2.6875 -8.75 2.125 C-5.68753253 0.34090198 -3.52920727 -0.10380021 0 0 Z " fill="#0C0A08" transform="translate(65.75,119.875)"/> +<path d="M0 0 C0.33 1.65 0.66 3.3 1 5 C0.01 5.495 0.01 5.495 -1 6 C-1.66 4.68 -2.32 3.36 -3 2 C-4.98 2.99 -4.98 2.99 -7 4 C-6.625 2.0625 -6.625 2.0625 -6 0 C-3.50907189 -1.24546405 -2.58919267 -0.7767578 0 0 Z " fill="#25221D" transform="translate(90,66)"/> +<path d="M0 0 C0.66 0.99 1.32 1.98 2 3 C0.8125 6.625 0.8125 6.625 -1 10 C-1.99 10.33 -2.98 10.66 -4 11 C-3.52269162 9.5410574 -3.04308958 8.08286504 -2.5625 6.625 C-2.29566406 5.81289063 -2.02882813 5.00078125 -1.75390625 4.1640625 C-1 2 -1 2 0 0 Z " fill="#191613" transform="translate(17,16)"/> +<path d="M0 0 C0.33 0.99 0.66 1.98 1 3 C-0.375 4.5 -0.375 4.5 -2 6 C-2.66 6 -3.32 6 -4 6 C-4.33 4.68 -4.66 3.36 -5 2 C-2 0 -2 0 0 0 Z " fill="#161310" transform="translate(94,64)"/> +<path d="M0 0 C0.99 0 1.98 0 3 0 C3.33 2.64 3.66 5.28 4 8 C2.68 7.34 1.36 6.68 0 6 C0 4.02 0 2.04 0 0 Z " fill="#AB705B" transform="translate(30,73)"/> +<path d="M0 0 C2.64 0 5.28 0 8 0 C7.67 0.99 7.34 1.98 7 3 C5.02 3 3.04 3 1 3 C0.67 2.01 0.34 1.02 0 0 Z " fill="#221E1A" transform="translate(73,66)"/> +<path d="M0 0 C0.66 0 1.32 0 2 0 C2.33 1.65 2.66 3.3 3 5 C1.68 5 0.36 5 -1 5 C-0.67 3.35 -0.34 1.7 0 0 Z " fill="#0B0908" transform="translate(99,36)"/> +<path d="M0 0 C3.37503669 1.1858237 5.64722731 2.27573689 8 5 C2.25 4.125 2.25 4.125 0 3 C0 2.01 0 1.02 0 0 Z " fill="#12110F" transform="translate(24,109)"/> +<path d="M0 0 C2.50298434 2.93828597 3.46930939 5.17902761 4 9 C3.67 8.34 3.34 7.68 3 7 C2.01 6.67 1.02 6.34 0 6 C-0.38218767 4.34385343 -0.71395102 2.67542976 -1 1 C-0.67 0.67 -0.34 0.34 0 0 Z " fill="#835C49" transform="translate(42,66)"/> +<path d="M0 0 C2.875 0.3125 2.875 0.3125 6 1 C6.66 1.99 7.32 2.98 8 4 C3.545 3.01 3.545 3.01 -1 2 C-0.67 1.34 -0.34 0.68 0 0 Z " fill="#201A14" transform="translate(26,21)"/> +<path d="M0 0 C0.66 0.33 1.32 0.66 2 1 C1.01 1.66 0.02 2.32 -1 3 C-0.67 2.01 -0.34 1.02 0 0 Z " fill="#F56D2B" transform="translate(106,103)"/> +<path d="M0 0 C0.66 0.33 1.32 0.66 2 1 C1.01 1 0.02 1 -1 1 C-0.67 0.67 -0.34 0.34 0 0 Z " fill="#EA632A" transform="translate(90,116)"/> +<path d="M0 0 C0.66 0.66 1.32 1.32 2 2 C1.34 2 0.68 2 0 2 C0 1.34 0 0.68 0 0 Z " fill="#F46C2C" transform="translate(119,90)"/> +<path d="M0 0 C0.99 0.495 0.99 0.495 2 1 C1.01 1.495 1.01 1.495 0 2 C0 1.34 0 0.68 0 0 Z " fill="#CF6632" transform="translate(121,83)"/> +<path d="" fill="#F56D2C" transform="translate(0,0)"/> +<path d="" fill="#F46C2C" transform="translate(0,0)"/> +<path d="" fill="#F56D2C" transform="translate(0,0)"/> +</svg> diff --git a/examples/starter/src/index.css b/examples/starter/src/index.css new file mode 100644 index 0000000000..97f9fe3605 --- /dev/null +++ b/examples/starter/src/index.css @@ -0,0 +1,14 @@ +html, +body, +#root { + height: 100%; +} + +#root { + display: flex; + place-items: center; + justify-content: center; + + color: #fff; + background-color: #131311; +} diff --git a/examples/starter/src/index.tsx b/examples/starter/src/index.tsx new file mode 100644 index 0000000000..2c23103369 --- /dev/null +++ b/examples/starter/src/index.tsx @@ -0,0 +1,61 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import { create } from 'zustand' + +import mascot from './assets/zustand-mascot.svg' + +import './index.css' + +type Store = { + count: number + inc: () => void +} + +const useStore = create<Store>((set) => ({ + count: 0, + inc: () => set((state) => ({ count: state.count + 1 })), +})) + +const Counter = () => { + const count = useStore((s) => s.count) + const inc = useStore((s) => s.inc) + + return ( + <> + <span className="text-3xl">{count}</span> + <button + className="bg-[#252b37] font-bold py-2 px-4 rounded" + onClick={inc} + > + +1 + </button> + </> + ) +} + +function App() { + return ( + <div className="grid place-items-center gap-6"> + <a href="https://zustand-demo.pmnd.rs/" target="_blank" rel="noreferrer"> + <img + src={mascot} + alt="Zustand mascot" + className="w-36" + style={{ + filter: 'drop-shadow(0 0 2em #582d3e)', + }} + /> + </a> + + <h1 className="text-5xl font-bold">Zustand Starter</h1> + + <Counter /> + </div> + ) +} + +createRoot(document.getElementById('root')!).render( + <StrictMode> + <App /> + </StrictMode>, +) diff --git a/examples/starter/src/vite-env.d.ts b/examples/starter/src/vite-env.d.ts new file mode 100644 index 0000000000..11f02fe2a0 --- /dev/null +++ b/examples/starter/src/vite-env.d.ts @@ -0,0 +1 @@ +/// <reference types="vite/client" /> diff --git a/examples/starter/tsconfig.json b/examples/starter/tsconfig.json new file mode 100644 index 0000000000..6aae5756f9 --- /dev/null +++ b/examples/starter/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "es2019", + "strict": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "moduleResolution": "node", + "lib": ["dom", "dom.iterable", "esnext"], + "jsx": "react-jsx", + "allowJs": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true + }, + "include": ["vite.config.ts", "./src/**/*"], + "exclude": ["node_modules"] +} + diff --git a/examples/starter/vite.config.ts b/examples/starter/vite.config.ts new file mode 100644 index 0000000000..5e5b6eef62 --- /dev/null +++ b/examples/starter/vite.config.ts @@ -0,0 +1,7 @@ +import react from '@vitejs/plugin-react-swc' +import { defineConfig } from 'vite' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +})