diff --git a/CLAUDE.md b/CLAUDE.md index c19aa6d..de91fb4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -80,7 +80,7 @@ Pre-alpha. No users, no released builds, no data to migrate. Breaking changes to - Sliding lists drawer with checkmark selection - Settings popup overlay - Workspace switcher drop-up with add/remove -- Per-workspace theme system (System default, Light, Dark, Nord, Dracula, Solarized Dark, Ink) via CSS `data-theme` attribute +- Per-workspace theme system (System default, Light, Dark, Nord, Dracula, Solarized Dark, Black and Gold, Ink) via CSS `data-theme` attribute - Completed tasks section with animated show/hide - Date picker/editor (DateTimePicker in new task + task detail); `has_time: bool` field tracks whether time is set - Move task between lists (inline list in kebab menu, no submenu) @@ -108,6 +108,7 @@ Pre-alpha. No users, no released builds, no data to migrate. Breaking changes to - Custom confirmation dialogs (ConfirmDialog component replaces native confirm()) - Workspace path validation (rejects system directories) - Task detail auto-cleanup (taskStack clears when viewed task is deleted or list switches) +- Swipe gestures on mobile: swipe left/right on a task to toggle completion (swipe direction depends on current status) - Accessibility: ARIA labels/roles on interactive components, keyboard handlers, `prefers-reduced-motion` CSS support ### GUI features NOT yet done diff --git a/PLAN.md b/PLAN.md index 8c9893e..71f9080 100644 --- a/PLAN.md +++ b/PLAN.md @@ -753,8 +753,8 @@ WorkspaceConfig { - [x] Mark tasks complete/incomplete with animated transitions - [x] Drag-and-drop task reordering - [x] Sliding lists drawer (80cqi wide, left side) -- [x] Settings popup overlay (WebDAV config, theme selector) -- [x] Per-workspace theme system (System default, Light, Dark, Nord, Dracula, Solarized Dark, Ink) +- [x] Settings popup overlay (WebDAV config, theme selector, window decorations) +- [x] Per-workspace theme system (System default, Light, Dark, Nord, Dracula, Solarized Dark, Black and Gold, Ink) - [x] Animated completed section show/hide - [x] Move task between lists (kebab menu → "Move to..." inline list in task detail view, not a submenu) - [x] Optional time on due dates (`has_time: bool` field on Task with `#[serde(default)]` for backward compat; replaces the hours==0 heuristic) @@ -911,7 +911,8 @@ npm run tauri ios build - [ ] Multiple windows (optional) #### Mobile-Specific -- [x] Swipe gestures (swipe to complete, swipe to delete) +- [x] Swipe gestures (swipe to toggle completion; direction depends on current task status) +- [ ] Swipe to delete - [ ] Pull-to-refresh - [ ] Touch-optimized UI elements - [ ] Larger touch targets diff --git a/README.md b/README.md index 0b255a3..241166e 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ onyx/ - Drag-and-drop reordering - Sliding lists drawer, settings popup - Workspace switcher with add/remove -- Per-workspace theme system (System default, Light, Dark, Nord, Dracula, Solarized Dark, Ink) +- Per-workspace theme system (System default, Light, Dark, Nord, Dracula, Solarized Dark, Black and Gold, Ink) - Due date picker/editor with optional time - Subtask hierarchy with three-panel slide navigation - Move tasks between lists @@ -64,6 +64,7 @@ onyx/ - WebDAV setup flow with credential auto-population - File watcher (auto-reloads on external changes) - Auto-sync with configurable interval, status indicators +- Swipe gestures on mobile (swipe to toggle completion) - Custom confirmation dialogs - Desktop packaging (Linux: AppImage + .deb; Windows: MSI) diff --git a/docs/API.md b/docs/API.md index 011997c..f8b3c1d 100644 --- a/docs/API.md +++ b/docs/API.md @@ -216,6 +216,8 @@ repo.rename_list(list_id, "New Name".to_string())?; #### Move Task Between Lists ```rust +// Atomically moves a task from one list to another. +// If the delete-from-source step fails, the copy in the destination is rolled back. repo.move_task(from_list_id, to_list_id, task_id)?; ```