memos/web/tests
johnnyjoygh 5a73d7d3e5 refactor: rebuild the editor on CodeMirror as decorated source
Rebuild the memo editor as a single CodeMirror 6 "decorated source"
editor. The document is the raw markdown, stored verbatim and styled in
place (markers stay visible), so the editor never serializes a tree back
to markdown — removing the round-trip fidelity bug class (inline images,
setext headings, ordered-list indentation, HTML entities) that the old
editor needed per-case patches for.

- MemoEditor/Editor: CodeMirror 6 + lang-markdown (GFM). Tokens, heading
  lines, #tag/@mention, and the autocomplete popover are styled in plain
  CSS (Editor/editor.css) with theme tokens, not a CSS-in-JS theme.
- Tab/Shift-Tab nest/outdent list items (marker-aware, ordered items
  renumbered so nesting is CommonMark-valid); Escape blurs; #tag
  autocomplete sourced from useTagCounts.
- Focus-mode toolbar reimplemented as markdown-text ops; active state read
  from the Lezer tree via the backend-agnostic formatting/commands catalog.
- Remove the old serialize-back-to-markdown editor (its Editor dir,
  PlainEditor, the editor-mode system) and its now-unused dependencies
  (marked, textarea-caret, and the rich-text editor packages).
- Consolidate toolbar components under Toolbar/. Read-only MemoContent
  rendering is unchanged.
2026-06-28 22:59:14 +08:00
..
about-page.test.tsx feat(editor): recognize and style @mentions in the rich editor 2026-06-26 09:28:41 +08:00
activity-calendar-tooltip.test.ts feat(activity-calendar): aggregate by ViewContext.timeBasis 2026-05-02 00:26:53 +08:00
auth-redirect.test.ts refactor(web/routing): guard-based auth flow, migrate tests to Vitest (#5848) 2026-04-18 01:06:54 +08:00
calendar-cell-empty-clickable.test.tsx feat(memo): create memos on the selected calendar date (#5925) 2026-05-02 11:53:50 +08:00
derive-default-create-time.test.ts feat(memo): create memos on the selected calendar date (#5925) 2026-05-02 11:53:50 +08:00
editor-controller.test.ts refactor: rebuild the editor on CodeMirror as decorated source 2026-06-28 22:59:14 +08:00
editor-decorations.test.ts refactor: rebuild the editor on CodeMirror as decorated source 2026-06-28 22:59:14 +08:00
editor-formatting.test.ts refactor: rebuild the editor on CodeMirror as decorated source 2026-06-28 22:59:14 +08:00
editor-heading-decorations.test.ts refactor: rebuild the editor on CodeMirror as decorated source 2026-06-28 22:59:14 +08:00
editor-keys.test.ts refactor: rebuild the editor on CodeMirror as decorated source 2026-06-28 22:59:14 +08:00
editor-tag-autocomplete.test.ts refactor: rebuild the editor on CodeMirror as decorated source 2026-06-28 22:59:14 +08:00
editor.test.tsx refactor: rebuild the editor on CodeMirror as decorated source 2026-06-28 22:59:14 +08:00
filtered-memo-stats.test.ts chore: add batch get settings API 2026-05-09 09:30:28 +08:00
formatting-toolbar.test.tsx refactor: rebuild the editor on CodeMirror as decorated source 2026-06-28 22:59:14 +08:00
guards.test.tsx refactor(web): use / as the home route instead of /home 2026-05-12 23:17:46 +08:00
hoist-new-memo.test.ts feat: surface newly created memo above pinned list 2026-06-21 14:11:46 +08:00
hooks.test.tsx refactor(frontend): remove react-use dependency 2026-05-31 18:32:17 +08:00
i18n-locale-search.test.ts feat(i18n): add searchable locale picker 2026-06-09 09:33:17 +08:00
locale-picker.test.tsx feat(i18n): add searchable locale picker 2026-06-09 09:33:17 +08:00
location-picker.test.tsx perf: lazy load heavy first-screen dependencies (#5947) 2026-05-12 20:11:39 +08:00
markdown-task-actions.test.ts feat(memo): add task list quick actions (#5983) 2026-05-27 09:13:55 +08:00
memo-body-compact.test.tsx fix(memo): preserve expanded todo list state 2026-06-08 19:11:29 +08:00
memo-content-compact-threshold.test.ts feat: surface newly created memo above pinned list 2026-06-21 14:11:46 +08:00
memo-content-link-preview.test.tsx feat(web): add link preview view setting 2026-06-25 20:45:51 +08:00
memo-content-list.test.tsx fix(markdown): keep task item content in one grid column 2026-05-27 23:57:23 +08:00
memo-content-paragraph.test.tsx feat(stats): support filtered all-user stats 2026-05-09 09:11:04 +08:00
memo-content-security.test.tsx fix(web): preserve task checkbox state (#5867) 2026-04-20 23:27:00 +08:00
memo-editor-cache.test.ts fix(web): preserve task checkbox state (#5867) 2026-04-20 23:27:00 +08:00
memo-share-image.test.ts chore: remove duplicate tags from share image preview 2026-04-25 22:22:49 +08:00
mermaid-block.test.tsx perf: lazy load heavy first-screen dependencies (#5947) 2026-05-12 20:11:39 +08:00
oauth.test.ts feat(auth): add SSO user identity linkage (#5883) 2026-04-23 08:51:45 +08:00
paged-memo-list.test.tsx feat(frontend): add pixel bird tilemaps 2026-05-14 00:03:21 +08:00
placeholder-component.test.tsx feat(frontend): add pixel bird tilemaps 2026-05-14 00:03:21 +08:00
placeholder-pool.test.ts feat(about): add about page with bird sprites 2026-05-14 20:30:37 +08:00
preview-image-dialog.test.tsx chore(media): add zoom controls to preview dialog 2026-06-02 22:46:07 +08:00
redirect-safety.test.ts feat(about): add about page with bird sprites 2026-05-14 20:30:37 +08:00
remark-tag.test.tsx fix(tags): include combining marks in tag character class (#6051) 2026-06-28 10:41:41 +08:00
router-config.test.tsx feat(about): add about page with bird sprites 2026-05-14 20:30:37 +08:00
setup.ts refactor: rebuild the editor on CodeMirror as decorated source 2026-06-28 22:59:14 +08:00
toolbar-compact-width.test.ts feat(editor): add focus-mode formatting toolbar 2026-06-21 11:57:45 +08:00
use-auto-save.test.tsx refactor(editor): modularize formatting and simplify editor state 2026-06-22 23:51:59 +08:00
video-poster.test.tsx fix(web): render video attachment posters on mobile 2026-06-02 23:08:16 +08:00