Files
stanza/apps/web/package.json
T
jake 6767362641 refactor: replace hand-rolled debounce with @tanstack/react-pacer and extract useGracePeriod
- Add `@tanstack/react-pacer` and swap both hand-rolled `setTimeout`-based debounce patterns (project-name commit in `project-setup.tsx`, module search fetch in `site-search.tsx`) for `useDebouncedValue`; the search effect now runs directly against the debounced value with an abort controller rather than nesting the fetch inside the timer
- Extract `useGracePeriod` from `file-preview.tsx` into `src/hooks/use-grace-period.ts` so it can be reused independently
- Hoist `fileSelection`, `lastFileRef`, `activePath`, and `preview` above the reseed effect in `file-preview.tsx` so the effect can reference `defaultPath` and `lastFileRef` without stale-closure issues; expand ancestor directories when a hash-driven selection lands so the highlighted row is visible in the tree
2026-05-25 14:23:33 -04:00

73 lines
2.2 KiB
JSON

{
"name": "@stanza/web",
"version": "0.1.0",
"private": true,
"license": "MIT",
"type": "module",
"scripts": {
"build": "vp build",
"dev": "vp dev",
"prebuild": "./scripts/prepare-registry.sh",
"predev": "./scripts/prepare-registry.sh",
"start": "node .output/server/index.mjs"
},
"dependencies": {
"@base-ui/react": "^1.5.0",
"@fontsource-variable/geist": "^5.2.9",
"@fontsource-variable/geist-mono": "^5.2.8",
"@orama/orama": "^3.1.18",
"@pierre/trees": "1.0.0-beta.4",
"@stanza/registry": "workspace:*",
"@tabler/icons-react": "^3.44.0",
"@tailwindcss/vite": "^4.3.0",
"@takumi-rs/image-response": "^1.5.1",
"@tanstack/react-devtools": "^0.10.5",
"@tanstack/react-hotkeys": "^0.10.0",
"@tanstack/react-pacer": "^0.22.1",
"@tanstack/react-router": "^1.170.8",
"@tanstack/react-router-devtools": "^1.167.0",
"@tanstack/react-router-ssr-query": "^1.167.0",
"@tanstack/react-start": "^1.168.13",
"@tanstack/router-plugin": "^1.168.11",
"@vercel/functions": "^3.6.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"fumadocs-core": "^16.9.1",
"fumadocs-mdx": "^15.0.8",
"fumadocs-ui": "npm:@fumadocs/base-ui@^16.9.1",
"handlebars": "^4.7.9",
"lru-cache": "^11.5.0",
"nitro": "^3.0.260522-beta",
"posthog-js": "^1.376.0",
"posthog-node": "^5.35.1",
"react": "^19.2.6",
"react-dom": "^19.2.6",
"react-resizable-panels": "^4.11.2",
"shadcn": "^4.8.0",
"shiki": "^4.1.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.6.0",
"tailwindcss": "^4.3.0",
"tw-animate-css": "^1.4.0",
"zod": "^4.4.3"
},
"devDependencies": {
"@tailwindcss/typography": "^0.5.19",
"@tanstack/devtools-vite": "^0.7.0",
"@testing-library/dom": "^10.4.1",
"@testing-library/react": "^16.3.2",
"@types/mdx": "^2.0.13",
"@types/node": "^25.9.1",
"@types/react": "^19.2.15",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.2",
"@vitejs/plugin-rsc": "^0.5.26",
"jsdom": "^29.1.1",
"typescript": "^6.0.3",
"vite": "catalog:",
"vite-plus": "catalog:",
"vitest": "catalog:",
"web-vitals": "^5.2.0"
}
}