Feat v0.4.6 sidebar restructure
All checks were successful
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-frontend (pull_request) Successful in 5s
CI/CD / test-go-pg (pull_request) Successful in 2m33s
CI/CD / test-sqlite (pull_request) Successful in 2m58s
CI/CD / build-and-deploy (pull_request) Successful in 1m16s

Restructure the notes sidebar with a two-tab header (Notes / Outline)
and relocate the document outline from the editor-side panel into the
sidebar's Outline tab with active heading tracking.

- Add SidebarTabs component with Notes/Outline tabs; Outline disabled
  when no note is selected
- Add SidebarOutline component with nested heading hierarchy
  (H1→H2→H3), depth indentation, and click-to-scroll
- Add RAF-throttled scroll listener for active heading highlighting
  based on scroll position (preview getBoundingClientRect / CM6 viewport)
- Lift headings, scrollToHeading, and activeHeadingIdx state to NotesApp
  via EditorPane callback props
- Remove old DocumentOutline component and .doc-outline CSS
- Auto-reset to Notes tab when active note is deleted
- Bump notes package to v0.7.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-29 21:16:31 +00:00
parent 6fbac0a33f
commit d5984f4762
6 changed files with 240 additions and 111 deletions

View File

@@ -301,12 +301,12 @@ Zero platform special-casing. Proves the full extension stack E2E.
| View mode setting | ✅ | `editor_mode` in manifest settings + localStorage persistence. Toolbar cycles rendered → edit → split. |
| Document outline | ✅ | `parseHeadings()` extracts headings (skips code blocks). Collapsible `DocumentOutline` panel with click-to-scroll (CM6 line dispatch or preview `scrollIntoView`). Debounced 300ms updates. |
### v0.4.6 — Sidebar Restructure (planned)
### v0.4.6 — Sidebar Restructure (complete)
| Step | Status | Description |
|------|--------|-------------|
| Sidebar tabs | | Two-tab header at top of sidebar: "Notes" (folders → tags → search → list) and "Outline" (heading tree for active note). Outline tab enabled only when a note is selected. |
| Heading tree | | Nested heading hierarchy (H1 → H2 → H3) with depth indentation. Click → scroll to heading in editor/preview. Current heading highlighted based on scroll position. |
| Sidebar tabs | | Two-tab header at top of sidebar: "Notes" (folders → tags → search → list) and "Outline" (heading tree for active note). Outline tab enabled only when a note is selected. |
| Heading tree | | Nested heading hierarchy (H1 → H2 → H3) with depth indentation. Click → scroll to heading in editor/preview. Current heading highlighted based on scroll position. |
### v0.4.7 — Note Graph (planned)