Commit Graph

122 Commits

Author SHA1 Message Date
lerko d5fa6cc56b feat(themes): replace cycle button with popover theme picker
Click theme button opens panel grouped by dark/light. Hover previews
theme live, click confirms. Dismiss on outside-click or Escape.
2026-05-17 13:41:40 -04:00
lerko 8555d0da19 feat(themes): add catppuccin latte, rosé pine dawn, and solarized light
Light variant community themes. Total theme count: 13.
2026-05-17 13:30:06 -04:00
lerko ec907d0e0d feat(themes): add gruvbox, rosé pine, tokyo night, and solarized dark
Tier 2 community themes mapped to nib's token system.
Total theme count: 10 (3 original + 3 tier 1 + 4 tier 2).
2026-05-17 13:28:35 -04:00
lerko a854f02854 feat(themes): add catppuccin mocha, nord, and dracula themes
Community-standard palettes mapped to nib's 18-token design system.
Theme cycle extended: dark → paper → tinycard → catppuccin → nord → dracula.
2026-05-17 13:28:10 -04:00
lerko 824192f581 Merge pull request 'fix: UI issues #23-25 + note card type + promote modal' (#26) from fix/ui-issues-23-24-25 into main
Reviewed-on: #26
2026-05-17 17:04:16 +00:00
lerko c2506ef7fd feat(ui): restructure promote modal into read/grab/fill columns
Card types grouped by intent: read (note, link, decision),
grab (snippet), fill (template, checklist). 3-column grid layout
with stacked buttons and intent headers.
2026-05-17 13:01:04 -04:00
lerko 2b177eeae9 feat(cards): add 'note' card type for readable markdown content
New card type renders body as styled markdown with no copy/fill/run
affordance. Glyph: ¶, color: --note.

Migration uses transaction to safely rebuild table constraint.
Checks both 'note' presence and modified_at column to catch
partial migration state.
2026-05-17 12:49:43 -04:00
lerko 840084fbb0 fix(ui): render full card content in mobile inline expansion
Promoted cards now show decision/steps/link/body sections in inline
detail instead of just a body preview. Fullscreen removes line clamp.
2026-05-17 11:05:10 -04:00
lerko 4ec876b2d2 fix(ui): mobile capture sticky, post-delete focus, inline markdown
- Capture bar stays visible on mobile via sticky positioning (#25)
- Cursor moves to adjacent entry after delete instead of resetting (#24)
- Inline expansion renders styled markdown via .exp-body.md selectors (#23)
2026-05-17 10:40:04 -04:00
lerko e66b7d19f6 chore: tidy before tag
Update .gitignore (add .local/, remove stale spec entry).
Remove TODO.md (moved to .local/done/).
Remove docs/ISSUE_TEMPLATE.md (moved to .local/).
2026.05.2
2026-05-16 23:20:58 -04:00
lerko 38db465cc2 chore: add issue templates (bug + feature)
Gitea-native yaml templates for web UI, local markdown copy for reference.
2026-05-16 23:06:50 -04:00
lerko 7023806e1a Merge pull request 'fix/mobile-view' (#22) from fix/stream-zoom-ui into main
Reviewed-on: #22
2026-05-17 02:50:40 +00:00
lerko fa960ec204 feat(ui): inline expansion for cards view at mobile
Same accordion pattern as stream: card-row gets entity-exp markup,
selectEntity/expandInline/dismissPeek/Escape all handle .card-row.
Fullscreen expand works for both views.
2026-05-16 22:46:01 -04:00
lerko ad44d35d9b fix(ui): render markdown in mobile inline expansion
Use renderMd instead of escHtml for exp-body content.
Add .md class for consistent markdown styling.
2026-05-16 22:38:38 -04:00
lerko 35df7dcb69 fix(ui): card fullscreen transparency in mobile stream
Explicit .is-card.exp-full selector overrides card background/border/margin
so fullscreen overlay is fully opaque.
2026-05-16 22:35:43 -04:00
lerko 694dfe1c89 feat(ui): inline expansion for mobile stream entries
Replace bottom-sheet peek with inline accordion at ≤900px.
Entries expand in-place with grid-template-rows animation (0.2s).
Body clamped to 3 lines; fullscreen uncaps it.
Selection toggles DOM classes instead of re-rendering for fluid j/k nav.
2026-05-16 22:32:41 -04:00
lerko 180757827b fix(ui): mobile breakpoint layout and peek interactions
Grid forced to single-column at ≤900px for all panel states.
Resize handles hidden, transitions killed to prevent slivers.
Peek pane gets mobile toolbar (expand/dismiss buttons).
Escape dismisses peek at any viewport. Z toggles full-screen
peek at mobile instead of no-op zen toggle.
2026-05-16 21:53:12 -04:00
lerko 3084152695 Merge pull request 'feat(ui): add favicon (diamond split-tip nib)' (#21) from feat/favicon into main
Reviewed-on: #21
2026-05-17 01:26:35 +00:00
lerko f449562b27 feat(ui): add favicon (diamond split-tip nib)
SVG favicon — gold nib shape on transparent background, no container.
Fills the full viewBox for maximum visibility at 16px.
2026-05-16 21:24:44 -04:00
lerko 1c5f6836f5 Merge pull request 'feat/resizable-panels' (#20) from feat/resizable-panels into main
Reviewed-on: #20
2026-05-17 00:48:39 +00:00
lerko ff190e395b feat(ui): context-sensitive z key (focus mode)
- Nothing selected: z toggles zen (hide both panels)
- Item selected: z expands peek to full width (focus mode)
- z again or Esc exits focus mode and deselects
- j/k still cycle items while in focus mode
2026-05-16 20:46:23 -04:00
lerko 0316076bf8 feat(ui): resizable rail and peek pane
- Drag handles between rail/center and center/peek
- Rail: 120–360px range, peek: 250–700px range
- Widths persisted in localStorage
- Handles hidden when panel is collapsed (zen mode)
- Transition disabled during drag for smooth resize
2026-05-16 20:42:20 -04:00
lerko a399c4fb15 Merge pull request 'feat(ui): self-host fonts, remove Google Fonts CDN' (#19) from feat/solidify-fonts into main
Reviewed-on: #19
2026-05-17 00:01:23 +00:00
lerko 03e982281c feat(ui): self-host fonts, remove Google Fonts CDN
- Bundle Satoshi (sans) and JetBrains Mono in web/fonts/
- New fonts.css with @font-face declarations
- Remove Google Fonts preconnect and stylesheet link
- Update --sans token: Satoshi replaces Space Grotesk/Inter
- Zero external font requests, works fully offline
- Keep extra fonts (Geo, Mooli, StackSansNotch) for future use
2026-05-16 19:58:11 -04:00
lerko 5fd324e4bb Merge pull request 'feat(ui): render markdown in peek pane' (#18) from feat/peek-markdown into main
Reviewed-on: #18
2026-05-16 23:52:57 +00:00
lerko b456dca4b3 feat(ui): render markdown in peek pane
- Add marked.js for full markdown rendering
- Stream peek body renders as markdown
- Card peek non-code content renders as markdown
- Code/snippet cards keep escaped pre/code display
- Styled: headers, lists, blockquotes, inline code, code blocks, links, hr
- Graceful fallback to escHtml if marked fails to load
2026-05-16 19:47:53 -04:00
lerko 4c3cdc55c6 Merge pull request 'feat(ui): zen mode and panel toggles' (#17) from feat/zen-mode into main
Reviewed-on: #17
2026-05-16 23:43:40 +00:00
lerko 9ea00c235b feat(ui): zen mode and panel toggles
- z: toggle zen mode (hide both sidebars)
- [: toggle tag rail
- ]: toggle peek pane
- Panel state persisted in localStorage
- CSS grid transition for smooth collapse
2026-05-16 19:40:44 -04:00
lerko b580ed46b0 Merge pull request 'feat/theme-and-sort' (#16) from feat/theme-and-sort into main
Reviewed-on: #16
2026-05-16 23:35:30 +00:00
lerko ef647aea7a feat(ui): sort dropdown for cards, capture bar prominence
- Cards sort dropdown: newest, oldest, most used — wired to reload
- Capture bar: larger font, more padding, accent glow on focus
- Prompt glyph scales up for visibility
2026-05-16 19:01:44 -04:00
lerko 35fe97a166 feat(ui): add tinycard theme
- New [data-theme="tinycard"] token block with purple accent palette
- Theme toggle cycles dark → paper → tinycard
- Load Inter font for tinycard sans stack
2026-05-16 19:00:25 -04:00
lerko 1f2daf4d0e Merge pull request 'fix(ui): tag counts, j/k nav, stream layout, search alignment' (#15) from fix/ui-bugs-phase1 into main
Reviewed-on: #15
2026-05-16 22:49:27 +00:00
lerko 8bfa9b15ed fix(ui): tag counts, j/k nav, stream layout, search alignment
- Tag rail counts now reflect cards-only when in cards view
  (ListTags accepts cardsOnly filter, JS passes it per view)
- j/k navigation scoped to visible (intent/search filtered) list
- scrollSelectedIntoView works in both stream and cards view
- Entity items wrap title/desc/preview in .entity-content flex
  container so tags/pills align right consistently
- Title no longer eaten by description/body (flex-shrink + min-width)
- Search bar centered in header with margin auto
- switchView awaits loadEntities+loadTags to fix stale intent counts
2026-05-16 18:42:05 -04:00
lerko ab07f631a7 Merge pull request 'feat: UI redesign, capture grammar, demo command' (#14) from develop into main
Reviewed-on: #14
2026-05-16 20:07:28 +00:00
lerko db3f88508e Merge pull request 'fix(ui): edit pill in stream peek, unified edit mode' (#13) from fix/ui-polish into develop 2026-05-16 19:22:52 +00:00
lerko 1c6ba2b34c fix(ui): add edit pill to stream peek, unify edit mode across views 2026-05-16 13:42:44 -04:00
lerko 13cb7b420e Merge pull request 'feat: add demo subcommand with seeded test data' (#12) from feat/demo-command into develop 2026-05-16 17:15:16 +00:00
lerko 5bb6e89523 feat: add demo subcommand with seeded test data
nib demo starts server with temp DB populated from testdata/demo.json.
Covers all glyphs, card types, tags, pins, completions, deletes, and
template fill placeholders.
2026-05-16 13:13:05 -04:00
lerko f6602e3595 Merge pull request 'feat: absorb button, preserve newlines, demote promoted items' (#11) from fix/absorb-button-and-newlines into develop 2026-05-16 17:02:00 +00:00
lerko b7dd58bf3e feat(ui): absorb button in peek, preserve newlines, demote promoted items
Stream peek now shows absorb button for unpromoted entries. Promoted
items in stream show demote instead of delete. d double-tap demotes
any card_type entity regardless of view. Parsers preserve newlines
from Shift+Enter. Absorb popup truncates to first non-empty line.
2026-05-16 13:00:22 -04:00
lerko 6654907c41 Merge pull request 'fix: align parsers with capture grammar, restore demote, add parse preview' (#10) from fix/capture-grammar-alignment into develop
Reviewed-on: #10
2026-05-16 16:15:40 +00:00
lerko 464ff5a8be fix(ui): replace delete with demote on card peek, scope d-key by view
Card peek action bar now shows demote instead of delete. Double-tap
d demotes in cards view, deletes in stream view.
2026-05-16 12:10:55 -04:00
lerko a8ea8f099f feat(ui): live parse preview pills + description in list rows
Capture bar shows inline pills as you type — glyph, title, desc,
tags, time, pin, card type. Textarea auto-grows on Shift+Enter.
Preview clears on save. Entity list rows now show description.
2026-05-16 12:01:05 -04:00
lerko 97ad71d66b fix(parser): align Go and JS parsers with capture grammar spec
Kind prefixes now follow the canonical grammar: `-` for todo,
`@time` for event, `!time` for reminder. Removed `*`/`◇`/`▸`
as capture aliases (display-layer only). Added `\` escape prefix,
`?` query mode, `!pin` flag extraction, `##word` hash escape,
and tag lowercasing. Both parsers produce identical results.
2026-05-16 11:12:36 -04:00
lerko 957265f7b4 Merge pull request 'feat(ui): redesign to match design handoff prototype' (#9) from feat/ui-redesign into develop
Reviewed-on: #9
2026-05-16 14:26:28 +00:00
lerko 6802474595 fix(ui): broken peek editing + wire up search
- Fix startEditBody/startEditField selectors (.detail-body → .peek-body,
  .detail-title → .peek-title) — double-click editing works again
- Wire up search input: client-side filter by body/title/description text
- Search supports #tag inline filters (e.g. "proxy #ops")
- Debounced input (150ms), Escape clears and blurs
- Shows "no matches" when search has no results
2026-05-16 09:47:35 -04:00
lerko f26716a9ee feat(ui): phase 4 — promote modal polish, TODO complete
- Promote modal: colored glyphs, type names, hint descriptions per type
- Show truncated entry body in promote modal subtitle
- Mark all redesign phases complete in TODO.md
2026-05-16 09:37:32 -04:00
lerko 1c95902e2b feat(ui): phase 3 — peek pane redesign with modes
- Full peek pane rewrite: idle state, stream peek, card peek
- Idle state shows keyboard shortcuts per view
- Stream peek: eyebrow (glyph + kind + id + timestamp), body, tags, context
- Card peek: card container with eyebrow, title, desc, meta, content sections
- Decision section with choice/rationale/rejected display
- Steps section with run button
- Code section with content display
- Run mode: interactive checklist with progress bar + step toggling
- Fill mode: inline slot editor with tab navigation + copy resolved
- Edit mode: form fields for title/desc/body/tags
- Mode pills (running/filling/editing) with colored badges
- Pin/unpin action via keyboard (p) and button
- Escape exits any active mode
- Keyboard shortcuts: r=run, f=fill, e=edit, p=pin in cards view
2026-05-16 09:35:06 -04:00
lerko 156ea6ea1c feat(ui): phase 2 — card rows, affordance badges, cards sub-header
- Rich card row rendering: title — preview — affordance badges — tags — pin — use count
- Affordance detection (code, fill, steps, decide, link) from entity shape
- Cards sub-header with scope label, count, sort dropdown
- Section labels (★ pinned / recent) in cards view
- Flash animation on copy (--a-str pulse)
- Tag pill styling for card rows
- Progress bar mini-display for checklists in card preview
2026-05-16 09:29:51 -04:00
lerko dda8426113 feat(ui): phase 1 — layout, tokens, header, rail redesign
- Switch mono font from Monaspace Neon to JetBrains Mono
- Grid layout 192px | 1fr | 400px (was 180/320)
- Move capture bar from header to bottom of center panel
- Add search input to header center
- Redesign tag rail: grid items with arrow/dot/name/count
- Add intent section (grab/read/fill) in cards view rail
- Add --a-str token, toast component
- Logo 16px 700 weight
2026-05-16 09:25:35 -04:00