Commit Graph

70 Commits

Author SHA1 Message Date
lucaronin
fe997b8d4d feat: redesign v2 — inspector layout fix, editor scroll, diff moved to breadcrumb bar
- Fix editor scroll (min-height: 0 + overflow)
- Properties panel extends full height
- Moved Diff button to git-branch icon in breadcrumb bar
- Minor CSS fixes for app layout
2026-02-17 11:31:23 +01:00
lucaronin
d8b91522bb Remove dark mode — force light mode only
- Remove .dark CSS variables block from index.css
- Remove theme toggle state and Cmd+Shift+T shortcut from Sidebar
- Remove dark class initialization from main.tsx
- Hardcode BlockNote theme to 'light' in Editor
- shadcn dark: classes left in place (harmless, no-op without .dark class)
2026-02-17 11:03:23 +01:00
lucaronin
6989f44031 feat: migrate to shadcn/ui
Install Tailwind CSS v4 + shadcn/ui with Radix UI primitives. Migrate all
UI components (Sidebar, NoteList, Editor tabs, Inspector, dialogs, palette)
from BEM CSS to Tailwind utility classes and shadcn components (Button,
Input, Dialog, Badge, etc.). Map theme system to shadcn CSS variables while
preserving BlockNote editor styles untouched. Remove 8 old CSS files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 16:56:44 +01:00
lucaronin
4d33435bfd Revert "feat: block numbers + active block highlight (onSelectionChange)"
This reverts commit c9b999279d.
2026-02-16 14:50:29 +01:00
lucaronin
c9b999279d feat: block numbers + active block highlight (onSelectionChange) 2026-02-16 14:49:30 +01:00
lucaronin
5da48acb90 feat: 🌳 emoji favicon 2026-02-16 14:26:36 +01:00
lucaronin
8fc759da99 fix: remove vertical nesting lines for cleaner list appearance 2026-02-16 14:24:15 +01:00
lucaronin
59d1bf8e8e feat: kitchen-sink mock note with all markdown features for visual testing 2026-02-16 14:12:56 +01:00
lucaronin
78fedc92e7 fix: align list nesting vertical lines with bullet center via ::before left offset 2026-02-16 14:07:02 +01:00
lucaronin
00ad997a26 fix: allow all hosts in vite config for tunnel access 2026-02-16 14:04:15 +01:00
lucaronin
94cd8bdcc1 feat: title separator, centered editor, handle spacing, list line alignment 2026-02-16 13:50:21 +01:00
lucaronin
fd021b2c1a fix: side menu handles horizontal layout for better vertical alignment with headings 2026-02-16 09:27:28 +01:00
lucaronin
94936f2f27 fix: override BlockNote default line-height 1.5 on .bn-block-outer with theme value 2026-02-16 09:17:03 +01:00
lucaronin
711f3c7bc4 feat: add bulletGap and checkbox gap controls in theme.json 2026-02-16 08:54:11 +01:00
lucaronin
16f8056991 fix: bullet/checkbox vertical alignment with text line, heading margins on block-outer 2026-02-16 08:52:18 +01:00
lucaronin
6e1a98ad6c fix: heading handle alignment (padding on block-outer), bullet/checkbox/list CSS targeting 2026-02-16 08:33:15 +01:00
lucaronin
6ef354e639 fix: heading margins on .bn-block wrapper so drag handles stay vertically aligned 2026-02-16 08:24:49 +01:00
lucaronin
4c211e09bc fix: editor content survives theme HMR + bullet marker styling + indent control 2026-02-16 08:21:23 +01:00
lucaronin
405d5f39fc feat: comprehensive theme.json config with live hot-reload for editor styling 2026-02-16 08:04:06 +01:00
lucaronin
9afc13811e merge: blocknote-poc into main 2026-02-16 07:55:46 +01:00
lucaronin
9a9769334e feat: proper wiki-links as custom BlockNote inline content with suggestion menu
- Custom 'wikilink' inline content type via createReactInlineContentSpec
- Extended BlockNote schema with wikilink spec
- Suggestion menu triggered by [[ showing all vault entries
- Markdown round-trip: [[target]] → placeholder tokens → wikilink inline content
- Click handler on .wikilink elements for navigation
- Removed old hack (regex preprocessing to wikilink.internal URLs + DOM click interception on <a> tags)
- Added .wikilink CSS styles
- Passed entries prop from App.tsx to Editor for suggestion menu
2026-02-15 19:50:23 +01:00
lucaronin
4284ed3221 fix: working wiki-link click interception via capture-phase handler on container 2026-02-15 19:41:39 +01:00
lucaronin
465e40a6a8 fix: remove href from wikilink anchors to prevent browser navigation, use onclick instead 2026-02-15 19:35:31 +01:00
lucaronin
c3693c94a4 fix: intercept wikilink clicks at document level to prevent browser navigation 2026-02-15 19:32:34 +01:00
lucaronin
0f5b444740 feat: render wiki-links as clickable links in BlockNote editor
Pre-process markdown to convert [[target]] → markdown links with
a wikilink.internal URL before feeding to BlockNote. Click handler
intercepts these links and navigates to the target note.
2026-02-15 19:28:29 +01:00
lucaronin
fdd7a248b2 Editor UX: zero horizontal shift for headings and bullets (Bear-style)
Three CSS fixes for the codemirror-live-markdown live preview:

1. Remove header underlines (border-bottom: none on .cm-heading-line)
2. Heading markers (## etc) positioned absolutely in left gutter area
   so they never push heading text horizontally when revealed
3. List bullets always occupy fixed width (font-size: 1em, not collapsed),
   showing • when inactive and source char (-) when active

Verified via Playwright: 0px horizontal shift on both headings and bullets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 19:18:08 +01:00
lucaronin
1e95174197 feat: replace CodeMirror 6 with BlockNote editor (PoC)
- Swap CM6 editor with BlockNote block-based editor
- Strip YAML frontmatter before passing to BlockNote, keep separate
- Intercept link clicks for wikilink navigation
- Remove all @codemirror/*, @lezer/*, codemirror-live-markdown deps
- Remove frontmatterHide.ts (no longer needed)
- Update Editor.css: remove .cm-* styles, add BlockNote container styles
- Tab bar, diff toggle, inspector panel unchanged
2026-02-15 19:14:55 +01:00
lucaronin
81fe9418ce Replace custom live preview with codemirror-live-markdown library
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 18:40:33 +01:00
lucaronin
e3dc38e58e Fix tauri.conf.json: remove invalid titleBarStyle overlay 2026-02-15 13:45:24 +01:00
lucaronin
a15982bc37 Add commit and push functionality with dialog
Sidebar shows "Commit & Push" button when uncommitted changes exist.
Clicking opens a commit message dialog. After committing, auto-pushes and
shows success/error toast. Modified files count refreshes after commit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:00:10 +01:00
lucaronin
1eccaf7f76 Add diff view toggle for modified files in editor
Editor tab bar shows Edit/Diff toggle button when viewing a modified file.
Diff view renders git diff output with green (added), red (removed), and
gray (context) line coloring. Uses `get_file_diff` Tauri command.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:58:00 +01:00
lucaronin
ab31076464 Add modified files view with Changes filter in sidebar
New "Changes" sidebar filter shows vault-wide uncommitted changes via
`get_modified_files` Tauri command (git status --porcelain). NoteList shows
modified files with M/A/D/? status indicators. Badge on sidebar shows count.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:56:28 +01:00
lucaronin
9a15755b53 Add real git revision history to Inspector panel
Replace mock git history with real `git log` data via new `get_file_history`
Tauri command. Adds git.rs module with commands for file history, modified files,
file diff, commit, and push (all registered, later tasks wire up the UI).
Updates GitCommit type to include shortHash field.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:54:11 +01:00
lucaronin
023a78ba14 Fix editor light mode + list bullet indentation
BUG 1: Replace all hardcoded dark-mode colors in editorTheme and
livePreviewTheme with CSS variables (--text-heading, --bg-primary,
--accent-blue, etc.) so the editor respects the light/dark toggle.
Remove oneDark theme import — the editor now derives all colors from
the app's CSS variable system.

BUG 2: Fix list indentation by changing .cm-line padding from
shorthand (which reset padding-left to 0) to explicit paddingTop/
paddingBottom, and add !important to list level paddingLeft rules
to win specificity over CodeMirror base styles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:02:28 +01:00
lucaronin
147dac1f34 Fix list indentation with hanging indent for wrapped lines
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:38:34 +01:00
lucaronin
b5971c9618 Add light/dark mode toggle with CSS variables
Replace all hardcoded colors across 10 CSS files with CSS variables defined
in index.css. Dark mode (default) uses the existing navy/purple palette,
light mode uses Notion-inspired warm neutrals from the design tokens
(--bg-primary: #FFFFFF, --bg-sidebar: #F7F6F3, --text-primary: #37352F).

Toggle button (sun/moon) in the sidebar header persists preference to
localStorage. An inline script in index.html applies the saved theme
before React mounts to prevent flash.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:34:59 +01:00
lucaronin
7e29b2e314 Add grouped relationship display in note list for entity views
When a Project/Responsibility/Procedure/Experiment is selected in the sidebar,
the note list now groups related items by relationship type (Children, Events,
Referenced By, Belongs To, Related To) instead of showing a flat list. The entity
title is shown in the header, type filter pills are hidden, and search works
within groups.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:30:13 +01:00
lucaronin
2a841df5ac Editor overhaul: Bear/Obsidian-style live preview
- Headers keep enlarged font size on active line (# marker shown in subtle gray)
- Unordered list "-" rendered as "•" bullet widget
- Clickable checkbox widgets for "- [ ]" / "- [x]" task lists
- Nested list vertical guide lines for indented items
- Improved typography: 15px base, 1.7 line-height, spacious 40px padding
- Softer active line highlight, thicker cursor
- Mock data enriched with checkboxes and nested lists for testing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:20:05 +01:00
lucaronin
ba511e4011 Add count badges to filter pills and hide empty types
Each type pill now shows its item count (e.g. "Notes 2"). Pills for types
with zero items are hidden. The "All" pill shows the total count. Counts
are computed from the search-filtered results so they update dynamically.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:05:19 +01:00
lucaronin
9d29959fba Add frameless window with custom drag regions (Obsidian-style)
Remove native macOS titlebar via decorations:false + titleBarStyle:overlay.
Add -webkit-app-region:drag to panel headers (Sidebar, NoteList, Editor tab
bar, Inspector) with no-drag on interactive elements. Sidebar header gets
78px left padding for macOS traffic light buttons.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:00:29 +01:00
lucaronin
9c49c3eea9 Add comprehensive E2E tests for all core flows (M5 Task 5)
17 new tests covering: open note in editor, sidebar filtering, search,
multiple tabs with switching/closing, inspector properties/relationships/
backlinks/git history, preview snippets, and full create note flow.
Fixed test isolation with workers=1. Total: 44 E2E + 44 unit tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 21:29:04 +01:00
lucaronin
582e33542d Add comprehensive E2E tests for all core flows (M5 Task 5)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 21:27:32 +01:00
lucaronin
6d07b7afe3 Refine visual polish: blue accent states, tab hover, editor hints (M5 Task 4)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 21:26:58 +01:00
lucaronin
82f1be8793 Add visual polish: snippets, dates, colored badges, improved states (M5 Task 4)
Note list items now show preview snippets and relative dates. Type badges
have distinct colors (blue=Project, purple=Responsibility, etc.). Selected
state uses a blue left border. Active pill uses blue highlight. Hover
effects improved across sidebar and note list.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 21:22:54 +01:00
lucaronin
343b075b07 Add keyboard shortcuts: Cmd+N, Cmd+S, Cmd+W, Cmd+P (M5 Task 3)
Cmd+N opens create note dialog, Cmd+S shows save toast,
Cmd+W closes active tab, Cmd+P opens quick open palette.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 21:19:38 +01:00
lucaronin
218a13b859 Add quick open palette with fuzzy search (M5 Task 2)
Cmd+P opens a VS Code-style search palette overlay with fuzzy matching
across all note titles. Arrow keys to navigate, Enter to select, Esc to close.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 21:17:38 +01:00
lucaronin
7b9d52d970 Add create note dialog with type selector (M5 Task 1) 2026-02-14 21:14:16 +01:00
lucaronin
2c981a0a30 Add git revision history panel to inspector (M4 Task 4)
Show mock git history per file: commit hash (monospace), relative
date, commit message, author. Added GitCommit type, mock git
history generator, and 'View all revisions' placeholder.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:53:52 +01:00
lucaronin
0d03c6a2ae Add backlinks panel to inspector (M4 Task 3)
Scan all vault content for wikilinks referencing the current note
(by title, alias, filename stem, or path). Display backlinks as
clickable links with type badges and count. Added get_all_content
mock handler for content scanning.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:50:23 +01:00
lucaronin
a357edf1b2 Add relationships panel to inspector (M4 Task 2)
Show belongsTo and relatedTo from frontmatter as clickable links
that navigate to the referenced note. Empty state when no
relationships exist.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:47:19 +01:00