Commit Graph
15 Commits
Author SHA1 Message Date
Ignacio Perez 58f4f2bfd0 feat: Add card-based layout with theme tokens
Add a card-based UI layout with consistent spacing and visual hierarchy.
The main content and sidebar are now wrapped in styled cards with gaps
between them. New theme tokens (card, raised, hover, divider,
disabled_fg) provide semantic colors for different surface levels and
states.

Create ui.rs module with helper functions (card_style, divider_h,
section_header, priority_badge) to keep styling consistent across views.
2025-12-27 18:44:45 -03:00
Ignacio Perez 3ce8886fc9 feat: Switch to ayu theme 2025-12-27 16:01:02 -03:00
Ignacio Perez 29a23017f2 feat: Refine filters and dropdown UI for task table
Update task table filters and dropdowns, including due-date options, layout tweaks, and style polish.
Keep panel style refinement intact so layout stays stable.
2025-12-27 16:00:38 -03:00
Ignacio Perez 45d1036fa7 feat: Add sidebar filtering and fix layout issues
Connect sidebar project/tag clicks to filter the task table.
App now observes FilterState changes and triggers task reload.
Removed redundant observer from TaskTable since App handles it.

Fix Panel component that was overwriting its own styles, breaking flex layouts.
Sidebar sections now split space equally and scroll properly.
2025-12-27 13:05:21 -03:00
Ignacio Perez d132e51da2 feat: Add TaskTable with sorting and pagination
Add a new TaskTable component that displays tasks in a sortable, paginated table.
Columns include ID, Description, Project, Due, Priority, and Status.
Clicking column headers sorts the data (toggles between ascending and descending).
Priority and status are color-coded based on theme colors.

Update Panel component to accept an ID and simplify child rendering.
Add warning, info, and priority colors (high/medium/low) to Theme.
Add Into<usize> and Into<String> implementations for TaskPriority and TaskStatus to support sorting and display.
2025-12-27 12:40:49 -03:00
Ignacio Perez 3c10f8fdb8 feat: Add Styled trait support to UI components
Added style support to Label, Panel, List, and Modal components by
implementing the gpui::Styled trait. This allows applying styles
directly to components without wrapping them in divs. Updated sidebar to
use Label component directly with styles instead of nested divs.
2025-12-26 12:37:32 -03:00
Ignacio Perez c4ab603176 refactor: Remove excessive logging from app initialization 2025-12-26 10:42:23 -03:00
Ignacio Perez 8bfb0467fb feat: Integrate TaskWarrior with config reading and optimized data
loading

- Read data.location from ~/.config/task/taskrc (supports
  TASKDATA/TASKRC env vars)
- Add get_overview() method to fetch tasks, projects, tags in one call
  (3→1 requests)
- Replace mock data with real TaskWarrior data
- Add logging with env_logger
- Improve tag logging output
2025-12-25 16:28:29 -03:00
Ignacio Perez 33769a4686 feat: Add TaskWarrior integration with TaskChampion
- Error handling with TaskError enum and TaskResult<T> alias
- Data models: Task, TaskPriority, TaskStatus, TaskAnnotation
- Advanced filtering: TaskFilter with hierarchical projects, tags
  (AND/OR), priority, due dates, and search
- TaskService: Full CRUD, tags, projects, annotations, dependencies,
  sync
2025-12-25 15:47:38 -03:00
Ignacio Perez 9ba1191c47 feat: Add empty StatusBar component
- Create StatusBar component with 30px fixed height
- Position at bottom of app layout with proper flex column structure
- Add placeholders for vim mode (left) and sync status (right)
- Reorganize App layout to accommodate status bar below main content
2025-12-25 12:16:12 -03:00
Ignacio Perez 7842b16ccf feat: Implement hierarchical sidebar with projects and tags
Add complete sidebar implementation with:
- ProjectTree model using arena allocator for hierarchical projects
- FilterState model for global filter state management
- Sidebar view with independent scrollable sections
- Project tree with expand/collapse functionality
- Tag selection with toggle support
- Observable filter state shared across components
2025-12-25 10:55:58 -03:00
Ignacio Perez b4e0d17391 Add MIT and Apache-2.0 dual licensing 2025-12-24 19:39:35 -03:00
Ignacio Perez 7c1824dcf7 feat: Add GPUI component library
Add core UI components for TaskWarrior GUI application:

Components:
- Input: Text input with autocomplete suggestions, keyboard navigation
- Button: Multiple variants (Primary, Secondary, Ghost, Danger, Success,
  Text)
- DropdownButton: Compound button with dropdown menu
- Icon: SVG icons with customizable sizes
- Label: Simple text display
- Panel: Container with optional title
- List: List container
- Modal: Modal dialog
- Divider: Visual separator

Infrastructure:
- Theme system with dark/light modes (Catppuccin colors)
- App module with window management
2025-12-24 19:21:04 -03:00
Ignacio Perez 8490fb03f5 feat: New dependencies
- Chrono
- Dirs
- Serde and Serde json
- taskchapion
- uuid
2025-12-24 19:18:47 -03:00
Ignacio Perez cf9f8f633f Init project 2025-12-24 07:42:22 -03:00