Files
pad/web/package.json
T
xarmian 27b048eef3 feat(collab): presence carets with deterministic user colors (TASK-1263) (#463)
Renders remote peers' carets and selection highlights in the
collab-mode Tiptap editor via @tiptap/extension-collaboration-caret
(the v3 rename of extension-collaboration-cursor — pinned at
3.22.5 to match the rest of the Tiptap suite).

- New cursorColor.ts: djb2 hash → HSL → #rrggbb (hex required
  because y-tiptap's selectionRender appends an alpha-hex byte and
  only validates hex)
- Editor.svelte: optional `awareness` + `collabUser` props; only
  registers CollaborationCaret when ydoc + awareness + user are all
  present
- +page.svelte: derives `collabUserState` from authStore.user and
  threads it + collabProvider.awareness into <Editor>
- CSS for .collaboration-carets__caret + label + selection (label
  always visible — caret is too thin to hover, so the original
  hover-reveal was unreachable)

Three rounds of Codex review.
2026-05-09 04:32:54 -04:00

60 lines
1.7 KiB
JSON

{
"name": "web",
"private": true,
"version": "0.0.1",
"license": "Apache-2.0",
"type": "module",
"scripts": {
"dev": "vite dev",
"build": "vite build",
"preview": "vite preview",
"prepare": "svelte-kit sync || echo ''",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"test:e2e": "playwright test",
"test:e2e:ui": "playwright test --ui",
"test:e2e:install": "playwright install --with-deps chromium"
},
"devDependencies": {
"@playwright/test": "^1.59.1",
"@sveltejs/adapter-auto": "^7.0.1",
"@sveltejs/adapter-static": "^3.0.10",
"@sveltejs/kit": "^2.59.1",
"@sveltejs/vite-plugin-svelte": "^7.1.2",
"@types/qrcode": "^1.5.6",
"marked": "^18.0.3",
"svelte": "^5.55.5",
"svelte-check": "^4.4.7",
"typescript": "^6.0.3",
"vite": "^8.0.11"
},
"overrides": {
"cookie": "^0.7.2"
},
"dependencies": {
"@tiptap/core": "^3.22.5",
"@tiptap/extension-bubble-menu": "^3.22.5",
"@tiptap/extension-code-block-lowlight": "^3.22.5",
"@tiptap/extension-collaboration": "3.22.5",
"@tiptap/extension-collaboration-caret": "3.22.5",
"@tiptap/extension-link": "^3.22.5",
"@tiptap/extension-placeholder": "^3.22.5",
"@tiptap/extension-table": "^3.22.5",
"@tiptap/extension-task-item": "^3.22.5",
"@tiptap/extension-task-list": "^3.22.5",
"@tiptap/pm": "^3.20.4",
"@tiptap/starter-kit": "^3.22.5",
"@tiptap/suggestion": "^3.22.5",
"@tiptap/y-tiptap": "^3.0.3",
"diff": "^9.0.0",
"dompurify": "^3.4.2",
"lowlight": "^3.3.0",
"mermaid": "^11.14.0",
"qrcode": "^1.5.4",
"svelte-dnd-action": "^0.9.69",
"tiptap-markdown": "^0.9.0",
"y-protocols": "^1.0.7",
"yjs": "^13.6.30"
}
}