A cozy bottom-right mascot that reacts to the writing session: cheers on accepted suggestions and word-count milestones, drops Mandarin-first writing tips, suggests screen breaks after long stretches, and naps when idle. - useCompanion: library-agnostic behavior engine (priority + cooldown paced so it never nags); tips.ts holds all copy, bilingual zh-first. - LottiePlayer wraps lottie-web's light build (offline, no eval/CDN) so it bundles into the Go binary. Ships with an emoji-kitten placeholder per mood; dropping a Lottie cat JSON into animations/index.ts is the only swap needed. - Speech bubble uses the CJK-first font stack (spec Note #17). Claude-Session: https://claude.ai/code/session_016Yr6jELuRc7hyzYLccQKZd
33 lines
832 B
JSON
33 lines
832 B
JSON
{
|
|
"name": "petal-web",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc && vite build",
|
|
"preview": "vite preview"
|
|
},
|
|
"dependencies": {
|
|
"@tiptap/extension-character-count": "^2.11.5",
|
|
"@tiptap/extension-placeholder": "^2.11.5",
|
|
"@tiptap/extension-text-align": "^2.11.5",
|
|
"@tiptap/extension-underline": "^2.11.5",
|
|
"@tiptap/pm": "^2.11.5",
|
|
"@tiptap/react": "^2.11.5",
|
|
"@tiptap/starter-kit": "^2.11.5",
|
|
"lottie-web": "^5.13.0",
|
|
"react": "^19.1.0",
|
|
"react-dom": "^19.1.0"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/vite": "^4.0.0",
|
|
"@types/react": "^19.1.0",
|
|
"@types/react-dom": "^19.1.0",
|
|
"@vitejs/plugin-react": "^4.3.4",
|
|
"tailwindcss": "^4.0.0",
|
|
"typescript": "^5.7.3",
|
|
"vite": "^6.1.0"
|
|
}
|
|
}
|