feat: launcher-style search UI (Raycast/Spotlight)

- Replace Pagefind UI with cmdk + Pagefind low-level API
- Quick actions when empty: nav (home, blog, tags) + recent posts
- Debounced full-text search with keyboard navigation
- Pass recent posts from layout to SearchModal
- Extract cn utility to lib/utils.ts
- Remove Pagefind UI styles, add Radix overlay styling
- Align blog search bar styling with launcher

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-13 23:41:10 +08:00
parent 7d85446ac5
commit fe28262ef4
10 changed files with 738 additions and 217 deletions

View File

@@ -17,8 +17,10 @@
"type": "module",
"dependencies": {
"@emotion/is-prop-valid": "^1.4.0",
"@radix-ui/react-dialog": "^1.1.15",
"@vercel/og": "^0.8.5",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
"contentlayer2": "^0.5.8",
"gray-matter": "^4.0.3",
"markdown-wasm": "^1.2.0",