mirror of
https://github.com/jakejarvis/stanza.git
synced 2026-10-16 07:25:43 -04:00
- Remove `cmdk` and the generated `src/components/ui/command.tsx` shadcn primitive; replace `CommandDialog` / `CommandInput` / `CommandList` / `CommandItem` in `SiteSearch` with a plain `Dialog` + `<input>` + `<button>` elements so the component owns its own rendering without the cmdk abstraction layer - Add `@tanstack/react-hotkeys` and replace the hand-rolled `keydown` listener with `useHotkey(HOTKEY, …)`; use `formatForDisplay` (deferred to mount to avoid SSR hydration mismatch) so the `<Kbd>` badge shows `⌘K` on macOS and `Ctrl+K` on Windows/Linux - Implement client-side fuzzy filtering via a local `matches` helper (splits query on whitespace, checks every term against a joined haystack of group/id/label/description) and drive the list from derived `filtered` / `groups` / `flat` memos - Add keyboard navigation — `ArrowDown`/`ArrowUp` cycle `activeIndex` through the flat item list, `Enter` selects; `onPointerMove` on each row syncs hover → `activeIndex`; the active row scrolls into view via a `data-index` attribute + `scrollIntoView` - Reset `query` and `activeIndex` when the dialog opens; reset `activeIndex` whenever `query` changes - Pin `fumadocs-ui` to `npm:@fumadocs/base-ui@^16.9.0`
66 lines
1.9 KiB
JSON
66 lines
1.9 KiB
JSON
{
|
|
"name": "@stanza/web",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"license": "MIT",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite dev",
|
|
"build": "vite build",
|
|
"predev": "./scripts/prepare-registry.sh",
|
|
"prebuild": "./scripts/prepare-registry.sh",
|
|
"start": "node .output/server/index.mjs",
|
|
"check-types": "tsc --noEmit",
|
|
"test": "vitest run"
|
|
},
|
|
"dependencies": {
|
|
"@base-ui/react": "^1.5.0",
|
|
"@fontsource-variable/geist": "^5.2.9",
|
|
"@fontsource-variable/geist-mono": "^5.2.8",
|
|
"@pierre/trees": "1.0.0-beta.4",
|
|
"@stanza/registry": "workspace:*",
|
|
"@tabler/icons-react": "^3.44.0",
|
|
"@tailwindcss/vite": "^4.3.0",
|
|
"@tanstack/react-devtools": "^0.10.5",
|
|
"@tanstack/react-hotkeys": "^0.10.0",
|
|
"@tanstack/react-router": "^1.170.7",
|
|
"@tanstack/react-router-devtools": "^1.167.0",
|
|
"@tanstack/react-router-ssr-query": "^1.167.0",
|
|
"@tanstack/react-start": "^1.168.10",
|
|
"@tanstack/router-plugin": "^1.168.10",
|
|
"@vercel/analytics": "^2.0.1",
|
|
"@vercel/og": "^0.11.1",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"fumadocs-core": "^16.9.0",
|
|
"fumadocs-mdx": "^15.0.7",
|
|
"fumadocs-ui": "npm:@fumadocs/base-ui@^16.9.0",
|
|
"nitro": "^3.0.260429-beta",
|
|
"react": "^19.2.6",
|
|
"react-dom": "^19.2.6",
|
|
"react-resizable-panels": "^4.11.1",
|
|
"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": {
|
|
"@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",
|
|
"jsdom": "^29.1.1",
|
|
"typescript": "^6.0.3",
|
|
"vite": "^8.0.14",
|
|
"vitest": "^4.1.7",
|
|
"web-vitals": "^5.2.0"
|
|
}
|
|
}
|