gitextract_vdkwfl3k/ ├── .codesandbox/ │ └── ci.json ├── .github/ │ ├── DISCUSSION_TEMPLATE/ │ │ └── bug-report.yml │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── config.yml │ ├── pull_request_template.md │ └── workflows/ │ ├── compressed-size.yml │ ├── preview-release.yml │ ├── publish.yml │ ├── test-multiple-builds.yml │ ├── test-multiple-versions.yml │ ├── test-old-typescript.yml │ └── test.yml ├── .gitignore ├── .prettierignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── docs/ │ ├── api/ │ │ ├── advanced/ │ │ │ ├── ref.mdx │ │ │ ├── snapshot.mdx │ │ │ ├── subscribe-ops.mdx │ │ │ └── subscribe.mdx │ │ ├── basic/ │ │ │ ├── proxy.mdx │ │ │ └── useSnapshot.mdx │ │ ├── hacks/ │ │ │ ├── getVersion.mdx │ │ │ └── internals.mdx │ │ └── utils/ │ │ ├── derive.mdx │ │ ├── devtools.mdx │ │ ├── proxyMap.mdx │ │ ├── proxySet.mdx │ │ ├── proxyWithHistory.mdx │ │ ├── subscribeKey.mdx │ │ ├── unstable_deepProxy.mdx │ │ └── watch.mdx │ ├── guides/ │ │ ├── async.mdx │ │ ├── component-state.mdx │ │ ├── computed-properties.mdx │ │ └── migrating-to-v2.mdx │ ├── how-tos/ │ │ ├── how-to-avoid-rerenders-manually.mdx │ │ ├── how-to-easily-access-the-state-from-anywhere-in-the-application.mdx │ │ ├── how-to-organize-actions.mdx │ │ ├── how-to-persist-states.mdx │ │ ├── how-to-reset-state.mdx │ │ ├── how-to-split-and-compose-states.mdx │ │ ├── how-to-update-values-inside-arrays.mdx │ │ ├── how-to-use-with-context.mdx │ │ ├── how-valtio-works.mdx │ │ └── some-gotchas.mdx │ ├── introduction/ │ │ └── getting-started.mdx │ ├── introduction.mdx │ ├── readme.md │ └── resources/ │ ├── community.mdx │ ├── learn.mdx │ └── libraries.mdx ├── eslint.config.mjs ├── examples/ │ ├── README.md │ ├── counter/ │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ ├── prism.css │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── editor-proxyWithHistory/ │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── photo-booth-vanillajs/ │ │ ├── index.html │ │ ├── package.json │ │ └── src/ │ │ ├── index.css │ │ └── main.js │ ├── starter/ │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.css │ │ │ ├── index.tsx │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── subscribe/ │ │ └── index.html │ ├── todo/ │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ ├── prism.css │ │ │ ├── store.ts │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ └── todo-with-proxyMap/ │ ├── index.html │ ├── package.json │ ├── src/ │ │ ├── AddTodoInput.tsx │ │ ├── App.tsx │ │ ├── Filter.tsx │ │ ├── TodoItem.tsx │ │ ├── TodoList.tsx │ │ ├── main.tsx │ │ ├── react-app-env.d.ts │ │ ├── store.ts │ │ └── styles.css │ ├── tsconfig.app.json │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── package.json ├── pnpm-workspace.yaml ├── rollup.config.mjs ├── src/ │ ├── index.ts │ ├── react/ │ │ ├── utils/ │ │ │ └── useProxy.ts │ │ └── utils.ts │ ├── react.ts │ ├── types.d.ts │ ├── utils.ts │ ├── vanilla/ │ │ ├── utils/ │ │ │ ├── deepClone.ts │ │ │ ├── deepProxy.ts │ │ │ ├── devtools.ts │ │ │ ├── proxyMap.ts │ │ │ ├── proxySet.ts │ │ │ ├── subscribeKey.ts │ │ │ └── watch.ts │ │ └── utils.ts │ └── vanilla.ts ├── tests/ │ ├── async.test.tsx │ ├── basic.test.tsx │ ├── class.test.tsx │ ├── deepClone.test.tsx │ ├── deepProxy.test.tsx │ ├── devtools.test.tsx │ ├── getter.test.tsx │ ├── mapset.test.tsx │ ├── memoryleaks.test.ts │ ├── optimization.test.tsx │ ├── performance.test.tsx │ ├── proxyMap.bench.ts │ ├── proxyMap.test.tsx │ ├── proxySet.test.tsx │ ├── ref.test.tsx │ ├── setup.ts │ ├── snapshot.test.ts │ ├── subscribe.test.tsx │ ├── useProxy.test.tsx │ ├── utils.tsx │ └── watch.test.tsx ├── tsconfig.json ├── vitest.config.mts └── website/ ├── .eslintrc.json ├── .gitignore ├── README.md ├── _utils/ │ ├── file_helpers.ts │ └── index.ts ├── components/ │ ├── LandingPage/ │ │ ├── AnimatedShapes.tsx │ │ ├── CodeExample.tsx │ │ ├── GettingStarted.tsx │ │ ├── state.ts │ │ └── useFloatAnimation.tsx │ ├── MDXRenderer/ │ │ ├── MDXRenderer.tsx │ │ └── index.ts │ ├── SEO/ │ │ ├── SEO.tsx │ │ └── index.ts │ ├── ToggleTheme/ │ │ ├── ToggleTheme.tsx │ │ └── index.ts │ └── layouts/ │ ├── BasicLayout/ │ │ ├── BasicLayout.tsx │ │ └── index.ts │ ├── DocLayout/ │ │ ├── DocLayout.tsx │ │ └── index.ts │ ├── Header/ │ │ ├── Header.tsx │ │ └── index.ts │ └── index.ts ├── hooks/ │ ├── index.ts │ ├── useCodesandboxTheme.ts │ ├── useIsomorphicLayoutEffect.ts │ └── useTheme.ts ├── lib/ │ ├── mdx.ts │ └── remarkCodeSandboxURLUpdater.ts ├── next-env.d.ts ├── next.config.js ├── package.json ├── pages/ │ ├── _app.tsx │ ├── _document.tsx │ ├── docs/ │ │ └── [...slug].tsx │ └── index.tsx ├── postcss.config.js ├── state/ │ ├── index.ts │ └── useThemeState.ts ├── styles/ │ ├── landing-page.css │ ├── prism-theme.css │ └── tailwind.css ├── tailwind.config.js ├── tsconfig.json └── types.d.ts