mirror of
https://github.com/block/buzz.git
synced 2026-11-11 20:01:09 +00:00
Answers the blocking question in the Desktop New plan before the composer is designed: does staged character input (ja/ko/zh) survive beside an inline atom tile? It does. Twelve tests, Chromium composition driven through CDP Input.imeSetComposition plus a WebKit pass. Measured findings: - Composition beside a tile is safe in every position; a committed composition leaves the tile address byte-identical. No fence needed. - selectable:false is load-bearing. With selectable:true an arrow key selects the tile and the next keystroke replaces it. - atom:true is redundant for a contentless node (isAtom = isLeaf || spec.atom) and kept as documentation of intent. - Whole-tile deletion works natively; no custom Backspace handler required. - One real gap: the caret position before a leading tile. ArrowLeft reaches it, Home and a pointer click do not, in both engines. Those two tests carry test.fail() until the caret-boundary layer lands. The harness is temporary and deleted when the real composer lands. Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
48 lines
1.5 KiB
JSON
48 lines
1.5 KiB
JSON
{
|
|
"name": "buzz-desktop-new",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc && vite build",
|
|
"typecheck": "tsc --noEmit",
|
|
"preview": "vite preview",
|
|
"lint": "biome lint .",
|
|
"check": "biome check . && node scripts/check-type.mjs && node scripts/check-contrast.mjs",
|
|
"format": "biome format --write .",
|
|
"check:type": "node scripts/check-type.mjs",
|
|
"check:contrast": "node scripts/check-contrast.mjs",
|
|
"test": "vitest run src",
|
|
"test:e2e": "playwright test",
|
|
"tauri:dev": "node ../desktop/scripts/tauri-command.mjs dev --config ../desktop-new/tauri.conf.json --config ../desktop/src-tauri/tauri.dev.conf.json"
|
|
},
|
|
"dependencies": {
|
|
"@base-ui/react": "1.7.0",
|
|
"@fontsource-variable/inter": "^5.2.8",
|
|
"@fontsource/jetbrains-mono": "^5.3.0",
|
|
"@tabler/icons-react": "^3.46.0",
|
|
"@tanstack/react-router": "^1.168.10",
|
|
"@tauri-apps/api": "~2.11.1",
|
|
"@tiptap/core": "^3.22.3",
|
|
"@tiptap/pm": "^3.22.3",
|
|
"@tiptap/react": "^3.22.3",
|
|
"@tiptap/starter-kit": "^3.22.3",
|
|
"dockview-react": "8.2.0",
|
|
"react": "^19.1.0",
|
|
"react-dom": "^19.1.0"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.60.0",
|
|
"@tailwindcss/postcss": "^4.3.0",
|
|
"@tanstack/router-plugin": "^1.167.12",
|
|
"@types/react": "^19.1.8",
|
|
"@types/react-dom": "^19.1.6",
|
|
"@vitejs/plugin-react": "^6.0.0",
|
|
"tailwindcss": "^4.3.0",
|
|
"typescript": "~6.0.0",
|
|
"vite": "^8.0.0",
|
|
"vitest": "^4.1.11"
|
|
}
|
|
}
|