Extract shared rendering (chat-render.ts) and streaming hook (use-chat-stream.ts) from ChatWidget so both the floating panel and the new page share identical markdown/KaTeX/SSE logic. New page features: - Responsive sidebar (inline desktop, Sheet drawer mobile) - Conversation search/filter - Notebook picker via cmdk command palette - Auto-growing multi-line textarea input - Pop-out button on widget header to open /chat ChatLayout.astro omits the floating widget to avoid duplicate UI. Chat store gains selectedNotebookId for page-level notebook context. shadcn-ui primitives (ScrollArea, Sheet, Command, Popover, etc.) wired to existing SpiceBook dark theme tokens.
60 lines
1.7 KiB
JSON
60 lines
1.7 KiB
JSON
{
|
|
"name": "spicebook-frontend",
|
|
"version": "2026.02.13",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "astro dev",
|
|
"build": "astro build",
|
|
"preview": "astro preview"
|
|
},
|
|
"dependencies": {
|
|
"@astrojs/check": "^0.9.6",
|
|
"@astrojs/node": "^9.5.3",
|
|
"@astrojs/react": "^4.0.0",
|
|
"@codemirror/autocomplete": "^6.18.0",
|
|
"@codemirror/commands": "^6.7.0",
|
|
"@codemirror/lang-markdown": "^6.3.0",
|
|
"@codemirror/lang-python": "^6.1.0",
|
|
"@codemirror/language": "^6.10.0",
|
|
"@codemirror/state": "^6.5.0",
|
|
"@codemirror/view": "^6.35.0",
|
|
"@fontsource/inter": "^5.2.8",
|
|
"@iconify-json/lucide": "^1.2.90",
|
|
"@lezer/highlight": "^1.2.0",
|
|
"@lezer/lr": "^1.4.0",
|
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
"@radix-ui/react-popover": "^1.1.15",
|
|
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
"@radix-ui/react-separator": "^1.1.8",
|
|
"@radix-ui/react-slot": "^1.2.4",
|
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
"@resvg/resvg-js": "^2.6.2",
|
|
"astro": "^5.0.0",
|
|
"astro-icon": "^1.1.5",
|
|
"astro-seo-meta": "^5.2.0",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.0",
|
|
"cmdk": "^1.1.1",
|
|
"dompurify": "^3.3.1",
|
|
"katex": "^0.16.33",
|
|
"lucide-react": "^0.468.0",
|
|
"marked": "^17.0.3",
|
|
"marked-katex-extension": "^5.1.7",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"satori": "^0.19.2",
|
|
"tailwind-merge": "^2.6.0",
|
|
"uplot": "^1.6.31",
|
|
"zustand": "^5.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/vite": "^4.0.0",
|
|
"@types/dompurify": "^3.0.5",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"tailwindcss": "^4.0.0",
|
|
"typescript": "^5.7.0"
|
|
}
|
|
}
|