Feat v0.4.6 sidebar restructure (#28)
All checks were successful
CI/CD / detect-changes (push) Successful in 4s
CI/CD / test-frontend (push) Successful in 5s
CI/CD / test-go-pg (push) Successful in 2m35s
CI/CD / test-sqlite (push) Successful in 2m41s
CI/CD / build-and-deploy (push) Successful in 1m6s

Co-authored-by: Jeffrey Smith <jasafpro@gmail.com>
Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #28.
This commit is contained in:
2026-03-29 21:36:26 +00:00
committed by xcaliber
parent 6fbac0a33f
commit 50d991001d
6 changed files with 240 additions and 111 deletions

View File

@@ -2,6 +2,36 @@
All notable changes to Switchboard Core are documented here.
## v0.4.6 — Sidebar Restructure
### Added
- **Sidebar tabs**: Two-tab header ("Notes" / "Outline") replaces the static
sidebar header. Notes tab contains folder tree, tag filter, search, and note
list. Outline tab shows the document heading tree for the active note.
Outline tab disabled (grayed) when no note is selected.
- **Sidebar outline**: Document outline relocated from editor-side panel into
the sidebar's Outline tab. Nested heading hierarchy (H1→H2→H3) with depth
indentation via `padding-left`. Click heading scrolls to it in both preview
and CM6 editor modes.
- **Active heading tracking**: Scroll listener (RAF-throttled) highlights the
current heading in the sidebar outline based on scroll position. Uses
`getBoundingClientRect()` in preview/split mode and CM6 viewport line in
edit mode.
### Changed
- Notes package version bumped from 0.6.0 to 0.7.0.
- `EditorPane` exposes headings, scroll function, and active heading index to
parent via callback props (`onHeadingsChange`, `scrollToHeadingRef`,
`onActiveHeadingChange`).
- Sidebar auto-resets to Notes tab when active note is deleted.
### Removed
- Old `DocumentOutline` component and `.doc-outline` CSS styles (replaced by
sidebar outline).
## v0.4.5 — Editor Modes + Document Outline
### Added