Commit graph

178 commits

Author SHA1 Message Date
Arthur Belleville
0efc36e70c
feat: add configurable overview layout builder 2026-03-14 13:36:47 +01:00
Arthur Belleville
2d965c524e
Fix organization modal flows 2026-03-08 22:44:02 +01:00
Arthur Belleville
a735c063ab
Add trial rollout date fallback 2026-03-08 22:13:32 +01:00
Arthur Belleville
8fc463313d
Fix trial upsell modal logic 2026-03-08 21:59:38 +01:00
Arthur Belleville
76f497d2c8
Keep founder plan during invites 2026-03-08 21:43:31 +01:00
Arthur Belleville
992b846a85
Fix CircleCI docker node pull 2026-03-08 21:28:44 +01:00
Arthur Belleville
03e426dd23
Implement new billing model 2026-03-08 21:11:42 +01:00
Arthur Belleville
d0820ebbf1
Implement solo teams founder billing 2026-03-08 19:29:44 +01:00
Arthur Belleville
0e91257aa1
Add tablo invite popover 2026-03-07 19:27:22 +01:00
Arthur Belleville
cd327c8b79
Move dispos, split types d'appels, and also put the tablo invitations in the top bar 2026-03-07 19:12:19 +01:00
Arthur Belleville
354831c82f
Some work towards initial release 2026-03-07 15:45:49 +01:00
Arthur Belleville
28d0b938fa
Fix various issues 2026-03-04 22:09:10 +01:00
Arthur Belleville
7c15ff3275
Organization support 2026-03-04 21:47:44 +01:00
Arthur Belleville
ec62b9c341
feat(auth): add v2 login/signup pages with localized copy 2026-02-24 12:31:25 +01:00
Arthur Belleville
93f8a3ef1e
fix(topbar): apply dark mode styles to profile dropdown 2026-02-24 11:49:26 +01:00
Arthur Belleville
737cd5f073
feat(ui): improve dark mode surfaces and planning event actions 2026-02-24 11:47:27 +01:00
Arthur Belleville
421676c3f0
feat(tasks): roadmap click-to-create with due date and quick status update 2026-02-24 10:55:16 +01:00
Arthur Belleville
349ba4ae7c
Add biweekly view mode to Gantt chart roadmap
- Add view mode dropdown with "Semaine" (7 days) and "2 semaines" (14 days)
- Biweekly mode shows compact cards (smaller padding, no tablo badge, shorter labels)
- Navigation steps by 1 or 2 weeks based on current view mode
- Dynamic column count and card sizing based on view config

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-24 10:44:46 +01:00
Arthur Belleville
c5ed1f0bf0
Redesign Roadmap view as Gantt chart with weekly timeline
- Create shared GanttChart component with week navigation, day columns,
  today indicator, and positioned task cards
- Task cards color-coded by status (blue/orange/purple/green)
- Replace list-based RoadmapView in Tasks page with GanttChart
- Replace list-based RoadmapSection in Tablo Details page with GanttChart

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-24 10:17:58 +01:00
Arthur Belleville
2b09dd4093
Add due_date field to tasks and implement roadmap feature
- Add due_date column to tasks table with Supabase migration
- Update database types and tasks_with_assignee view
- Add DatePicker to TaskModal for setting due dates
- Display due dates on KanbanTaskCard, list view, and Etapes section
- Enable Roadmap tab on both Tasks page and Tablo Details page
- Add RoadmapView components with timeline grouped by Etape
- Highlight overdue dates in red across all views

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-24 10:07:47 +01:00
Arthur Belleville
bec48cfab6
Replace project letter icons with color-mapped Lucide icons across all pages
- Map each tablo color to a dedicated Lucide icon (Zap, Leaf, Gem, Flame, etc.)
- Apply contrast-aware icon color: dark gray for light backgrounds (yellow, cyan), white for all others
- NavigationBar: always use gray icon for sidebar consistency; active nav item uses light purple background (#804EEC tint)
- Apply icons to NavigationBar, tablos, tablo-details, tablo (dashboard), and tasks pages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 19:44:09 +01:00
Arthur Belleville
7acb79b3de
Improve UI consistency: chat purple theme, page headers, Discussions title
- Set purple (#804EEC) as default ChannelBadge background color
- Update ChannelPreview active state to purple highlight (was blue)
- Add "Discussions" title header to chat page
- Standardize all page headers to text-2xl font-bold (tablos, tasks, files, planning)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 19:25:34 +01:00
Arthur Belleville
d126fe84dc
Restyle navbar/topbar with light/dark themes and restore invite functionality
- NavigationBar: add light/dark theme support with adaptive text colors
- TopBar: match navbar background color in both themes
- main.css: make navbar-background/darker CSS variables theme-aware
- tablo-details: restore working invite button with full share dialog

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 19:06:46 +01:00
Arthur Belleville
080d3a98f3
Remove action card selected state and add greeting translations
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-23 16:22:01 +01:00
Arthur Belleville
ba2045fb40
Add disabled state and badge to ActionCard, disable Invite card
- ActionCard: new disabled and badge props; disabled state shows opacity-50, cursor-not-allowed, prevents clicks
- Badge renders inline next to the label (e.g., "Bientôt")
- Invite Team card: permanently disabled with "Bientôt" badge visible without clicking
- Remove onInviteTeam prop and toast callback

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-23 16:14:46 +01:00
Arthur Belleville
6d0298447d
Open TaskModal from dashboard "Créer une tâche" action card
Instead of navigating to /tasks, the Create Task action card now opens a TaskModal with tablo selection enabled, allowing users to create a task directly from the dashboard.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-23 16:12:18 +01:00
Arthur Belleville
26816ff12d
Wire dashboard action cards to real actions
- Create Project: opens the CreateTabloModal
- Create Task: navigates to /tasks
- Send Message: navigates to /chat
- Invite Team: shows "Bientôt disponible" info toast

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-23 16:08:54 +01:00
Arthur Belleville
d9eec11d00
Fix TaskModal: only mount when tabloId is available
Guard TaskModal render with tabloId check to prevent it from mounting with undefined tablo context.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-23 16:07:08 +01:00
Arthur Belleville
8b552465f2
Wire overview buttons to real actions and disable Invite
- "Ajouter" task button: opens TaskModal with tablo pre-selected (purple solid button)
- "Discussion" link: already wired to /chat/:tabloId
- "Inviter" button: disabled with "Bientôt" badge and muted styling
- Add TaskModal component render at the bottom of the page

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-23 16:02:27 +01:00
Arthur Belleville
6b39f175b3
Apply purple #804EEC theme to tablo events section
- Create event button: solid #804EEC purple
- Date badge: #F4F3FF background with #7F56D9 text (matching events page)
- Loading spinner: purple instead of blue
- Empty state button: solid purple instead of outline

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-22 09:54:20 +01:00
Arthur Belleville
bbf9d695ba
Add inline task creation in étapes view
- Each étape shows an "Ajouter une tâche" button at the bottom when expanded
- Clicking opens an inline text input with Enter to submit, Escape to cancel
- Created tasks are linked to the étape via parent_task_id
- Purple "Ajouter" button with instant feedback
- Uses existing useCreateTask hook with correct tablo_id and parent_task_id

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-22 09:42:22 +01:00
Arthur Belleville
3f97478977
Fix étape status: derive from child tasks instead of stored field
The étape's own status field was not reflecting actual progress. Now the displayed status is computed from child tasks: all done = Terminé, some done = En cours, none done = À faire.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-22 09:34:46 +01:00
Arthur Belleville
bf9cabe710
Add Étapes (Steps) tab to project detail page
- New "Étapes" tab with ListChecksIcon showing parent tasks (is_parent: true)
- Each étape is an expandable card with: numbered purple icon, title, description, status badge, progress bar (done/total child tasks)
- Expanding reveals child tasks grouped under each étape with done/pending indicators and status badges
- Uses useTabloEtapes hook to fetch parent tasks ordered by position
- Empty state when no étapes exist
- Full dark mode support

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-22 09:33:03 +01:00
Arthur Belleville
afe47554c8
Apply linter formatting to components, locales, and pages
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 22:02:22 +01:00
Arthur Belleville
24fe6b89a9
Redesign project detail page with header tabs and overview
- Replace sidebar layout with top header: project icon, name, Discussion (purple) and Invite buttons
- Add metadata bar: role, creation date, status badge, progress bar
- Tab navigation: Aperçu, Tâches, Fichiers, Discussion, Événements, Roadmap (bientôt)
- Overview tab: project description card, tasks preview (5 items), files sidebar, project info card
- Other tabs delegate to existing section components (TabloTasksSection, TabloFilesSection, etc.)
- Move /tablos/:tabloId route inside Layout wrapper so it gets the sidebar and TopBar
- Purple #804EEC accent throughout, full dark mode support

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 21:51:58 +01:00
Arthur Belleville
76f4bc7832
Rework dark mode with purple-tinted color palette
- Replace neutral gray oklch values (hue 0) with purple-tinted variants (hue 290, low chroma) across all dark mode CSS variables
- Background, card, border, muted, accent all now carry a subtle purple tint
- Navbar colors shifted from blue-gray (#292e39) to deep purple (#1e1b2e)
- Stream Chat dark mode backgrounds aligned with the new palette
- Creates a cohesive dark theme that complements the #804EEC purple design system

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 21:20:49 +01:00
Arthur Belleville
64c2c35a34
Fix chat page height to account for TopBar
Change h-screen to h-[calc(100vh-75px)] to prevent the message input from being pushed below the viewport by the 75px TopBar.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 21:19:35 +01:00
Arthur Belleville
32f22b021f
Update Stream Chat theme to match purple #804EEC design system
- Primary color: #804EEC (was #8b7396)
- Own message bubbles: solid #804EEC with white text in both light and dark modes
- Surface colors updated to use purple-tinted variants
- Dark mode uses consistent purple-based alpha colors

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 21:17:33 +01:00
Arthur Belleville
bae9e696f2
Use purple #804EEC for today's date in mini calendar
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 21:15:42 +01:00
Arthur Belleville
8af079dd1d
Apply purple #804EEC color to calendar view buttons
- "Créer un événement" sidebar button: solid purple background
- "Aujourd'hui" button: purple border and text (outline style)
- Active view toggle (month/week/day): purple text with white background when selected

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 21:14:44 +01:00
Arthur Belleville
8796be884d
Replace events search/filter with À venir / Tous toggle
- Remove search input from events view
- Replace Filter button with two pill toggles: "À venir" (default, upcoming only) and "Tous les événements" (show all)
- Active toggle is highlighted with #804EEC purple
- Remove unused SlidersHorizontalIcon and eventsSearchQuery state

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 21:13:29 +01:00
Arthur Belleville
c8699964fb
Make EventModal usable standalone without routing
- EventModal now accepts optional isOpen/onClose/defaultTabloId/defaultDate props; when provided it works as a controlled dialog without needing to navigate to /planning/create
- When used as a route child (existing behavior), falls back to URL params and navigate(-1) as before
- Events view "Créer un événement" button opens EventModal inline instead of navigating, passing the current tablo and date as defaults

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 21:12:15 +01:00
Arthur Belleville
7e64fbbaa3
Polish events view: upcoming filter, purple button, tablo icon
- Only show upcoming events (today and future) by default
- Change "Créer un événement" button to #804EEC purple
- Replace MapPin icon with the tablo's colored initial avatar to show which project the event belongs to

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 21:09:54 +01:00
Arthur Belleville
8df335384d
Improve planning/events toggle and event card icon style
- TopBar: replace standalone Événements link with a segmented toggle pill (Calendrier | Événements) that only appears on /planning, with the active tab highlighted white
- planning.tsx events view: replace date badge with ActionCard-style icon container (bg-[#F4F3FF] / text-[#7F56D9]) matching the purple design system

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 21:07:34 +01:00
Arthur Belleville
1a3e503355
Add Events card view to planning page with TopBar toggle
- planning.tsx: when ?tab=events, render a new card-based events view instead of the calendar; cards show date badge (month/day), title, description, time, and tablo name; includes search input and filter button; wired to existing useEventsByTablo hook and navigate-to-create flow
- TopBar.tsx: add "Événements" nav link that toggles to /planning?tab=events, with active state highlighting

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 20:01:54 +01:00
Arthur Belleville
203f808a68
Build tablos page with card/list views and project management
- Card view: 4-column grid with status badge, project icon, date, progress bar, delete action
- List view: table with project icon/name, status, date, progress, delete
- Status filter tabs (all/todo/in_progress/done)
- Search wired to TopBar ?q= param
- Create project button opens CreateTabloModal
- Delete with DeleteTabloModal confirmation
- Full dark mode support

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 19:57:05 +01:00
Arthur Belleville
6e38ac2a63
Wire TopBar search to tasks and files pages
- Add /tasks and /files to SEARCH_ROUTES so the TopBar search input is active on those pages
- Tasks page reads search query from URL ?q= param instead of local state; remove duplicate search input from header
- Files page reads ?q= param to filter tablos and files by name

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 19:52:03 +01:00
Arthur Belleville
dfb4e2800f
Fix TypeScript error: remove unused tasksByTablo memo
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 18:10:55 +01:00
Arthur Belleville
515fee98cd
Redesign tasks page and add files page
- Rework tasks page with new board/list views, header with view tabs (Tableau, Liste, Roadmap, Calendrier), search and filter dropdown
- Board view: new card style with tablo row, assignee avatar, kebab menu (ouvrir/déplacer)
- List view: grouped by status, table with fixed column layout, kebab actions
- Add files page (/fichiers) with per-project file tables, folder cards, upload modal, download/delete actions
- Add /all-filenames API endpoint to fetch all tablo file names in a single call
- Add files nav item and recent projects section in NavigationBar
- Translate all UI strings to French

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-21 18:05:32 +01:00
Arthur Belleville
26459459b4
Match TopBar dark mode background to navbar color
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 17:10:17 +01:00