Commit graph

236 commits

Author SHA1 Message Date
Arthur Belleville
2e9ab46be8
feat: add org ID cookie management and logo upload/remove hooks
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 22:03:59 +02:00
Arthur Belleville
acc83401f4
feat: disable static manifest generation, add manual manifest link for dynamic serving 2026-04-02 22:02:31 +02:00
Arthur Belleville
595b330741
feat: dynamic manifest in Cloudflare Worker with cookie-based org identification
Adds parseOrgIdFromCookie and buildManifest exports to the worker, intercepting /manifest.webmanifest to serve org-specific PWA icon URLs based on the x-org-id cookie. Removes legacy @ts-nocheck and biome-ignore-file comments.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 22:01:57 +02:00
Arthur Belleville
67e98d19b2
fix: update Layout test for new mobile sidebar transition classes
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 21:28:12 +02:00
Arthur Belleville
ec8f81e205
fix: improve mobile responsiveness for task/kanban pages
- KanbanBoard: responsive grid (1 col mobile, 2 col tablet, 4 col desktop)
- TaskModal: bottom-sheet style on mobile with scroll, touch-friendly close
- Touch targets: enforce 44px minimum on all interactive elements (buttons,
  checkboxes, kebab menus, add buttons, view tabs)
- TabloTasksSection: responsive padding and stacking header layout
- DashboardTaskList: simplified mobile grid hiding non-essential columns
- InlineTaskCreate: larger touch targets on action buttons

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 21:24:05 +02:00
Arthur Belleville
6aea504667
fix: improve mobile responsiveness for tablo/project management pages
- Make project card grids responsive (single column on mobile, 2 cols on sm)
- Remove fixed w-56 card width so cards fill available space on mobile
- Convert modals to bottom-sheet style on mobile (items-end, rounded-t-2xl)
- Add max-h-[90vh] + overflow-y-auto to modals for small screens
- Increase touch targets to min 44px on action buttons and interactive elements
- Refactor DashboardTaskList rows from rigid grid to flexible layout
- Remove min-w-[600px] wrapper that forced horizontal scroll on task list
- Make tab navigation horizontally scrollable instead of wrapping on mobile
- Reduce left padding on etape child tasks for narrow screens
- Stack modal action buttons vertically on mobile (flex-col-reverse)
- Add responsive text sizing for headings and dates
- Fix share dialog invite input to stack on mobile

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 21:22:46 +02:00
Arthur Belleville
3daf720447
fix: improve mobile sidebar UX with smooth transitions and proper touch handling
Add backdrop overlay with tap-to-dismiss, enforce 44px touch targets on the
toggle button, auto-close on route change, clean up z-index layering, remove
duplicate translate logic, and respect safe-area insets for standalone PWA mode.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 21:22:23 +02:00
Arthur Belleville
378e5e5e1d
fix: resolve zod/v4/core build error and configure workbox cache limit
- Add pnpm packageExtensions to declare zod as peer dep of @hookform/resolvers
  (the package imports zod/v4/core but doesn't declare the peer dependency)
- Raise workbox maximumFileSizeToCacheInBytes to 5MB for large app bundle

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 20:07:07 +02:00
Arthur Belleville
8ae711867d
fix(pwa): address code review findings
- Fix includeAssets paths (remove incorrect public/ prefix)
- Add navigateFallback for SPA deep link resilience
- Move InstallBanner inside authenticated routes only

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:57:39 +02:00
Arthur Belleville
8e6e8b6d71
style(pwa): fix biome formatting in hook and banner
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:54:46 +02:00
Arthur Belleville
2ffe4b1b41
feat(pwa): wire InstallBanner into app shell
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:52:29 +02:00
Arthur Belleville
8e41b031aa
feat(pwa): add InstallBanner component with tests
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:51:38 +02:00
Arthur Belleville
e23013b0af
feat(pwa): add useInstallPrompt hook with tests
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:48:13 +02:00
Arthur Belleville
c80a6fa94b
fix(pwa): resolve workbox-window build error with Cloudflare plugin
Add workbox-window as direct dependency and set injectRegister: false
to prevent conflict between vite-plugin-pwa and @cloudflare/vite-plugin.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:42:10 +02:00
Arthur Belleville
d199e9e3a8
feat(pwa): add safe area insets for standalone mode
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:35:08 +02:00
Arthur Belleville
9dc4ad95c5
feat(pwa): register service worker with auto-update
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:34:38 +02:00
Arthur Belleville
a467e2c167
feat(pwa): add PWA meta tags and update viewport for standalone mode
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:32:31 +02:00
Arthur Belleville
4e01b8cab4
feat(pwa): configure vite-plugin-pwa with manifest and workbox precaching
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:32:14 +02:00
Arthur Belleville
6d5f78aecf
feat(pwa): add icon generation script and generated PWA icons 2026-04-02 19:01:21 +02:00
Arthur Belleville
ab38e8115b
feat(pwa): add vite-plugin-pwa and sharp dependencies 2026-04-02 18:58:54 +02:00
Arthur Belleville
949888ec63
fix: resolve insertBefore DOM reconciliation error in React 19
UserStoreProvider was switching between three different return structures
(LoadingSpinner / children directly / Context.Provider wrapping children),
causing full fiber tree restructures in React 19 concurrent mode. When
batched with other state updates (e.g. UpgradeBlockContext loading),
React called insertBefore with a reference node already detached from
the DOM.

- Always render UserStoreContext.Provider so tree structure is stable;
  spinner vs children toggle happens inside it
- Use useRef to hold a stable Zustand store (update via setState instead
  of recreating on every render)
- Move inline <style> from App.tsx JSX into main.css to avoid React 19
  style-tag edge cases with conditional sibling rendering

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 23:07:47 +02:00
Arthur Belleville
0b0d7b6cf0
Block app access until organizations add a paid plan 2026-03-24 21:41:38 +01:00
Arthur Belleville
50ee39104b
Update founder signup copy to highlight unlimited features 2026-03-24 20:58:49 +01:00
Arthur Belleville
530e4a0257
Clarify Founder 50-seat limit on signup pages 2026-03-24 20:42:43 +01:00
Arthur Belleville
f6e5c39dcc
feat: implement trial period for checkout sessions and enforce team plan member limit
Added a 14-day trial period for the "solo" and "team" plans during checkout session creation. Also, enforced a member limit of 3 for the "team" plan in the user invitation process and updated the settings page to reflect this limit with appropriate messaging.
2026-03-16 10:21:34 +01:00
Arthur Belleville
9cd51e9f0b
refactor: remove debug log from settings page 2026-03-16 10:07:10 +01:00
Arthur Belleville
9e0529f73b
feat: add plan badge to overview and settings pages
Show the active subscription plan pill (Founder/Teams/Solo) next to the
user's name on the overview greeting and in the settings page header.

Made-with: Cursor
2026-03-16 09:52:34 +01:00
Arthur Belleville
65ea60a91c
Add pill in profile 2026-03-16 09:43:18 +01:00
Arthur Belleville
63edd59c57
feat: add PlanAnnouncement component to display active subscription plan notifications 2026-03-16 09:31:26 +01:00
Arthur Belleville
4d22e987de
Rename env var 2026-03-16 08:44:33 +01:00
Arthur Belleville
1a0d77857e
Fix missing Stripe price config 2026-03-16 08:41:02 +01:00
Arthur Belleville
c481f2c577
Retry signup tests with Stripe CLI 2026-03-15 19:09:35 +01:00
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
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
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
Arthur Belleville
20bee5a661
Fix pre-existing TypeScript errors
- ExceptionModal: cast Zod v4 schema with `as any` to satisfy @hookform/resolvers v5 type definitions
- TopBar: wrap logout mutate call in arrow function to match MouseEventHandler type

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 14:46:12 +01:00
Arthur Belleville
a3f5cf5e4e
Redesign overview dashboard with new project cards and task list
- Replace renderTabloListView with reusable ProjectCard / ProjectCardList components
  - Card layout with status badge, progress bar, date, and delete action
  - Default view shows 6 tablos with expand/collapse toggle
- Add DashboardTaskList component showing tasks assigned to the current user
  - Toggle done/todo inline; "Add Task" button opens TaskModal with tablo selection
- Wire TopBar search input to URL param ?q= to filter tablos on the overview page
- Add TopBar component to Layout (was missing)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 14:35:12 +01:00
Arthur Belleville
4347adedd9
Folder 2025-12-18 11:25:00 +01:00
Arthur Belleville
65e65e8de1
Try passThroughEnv 2025-12-05 09:52:17 +01:00
Arthur Belleville
25e3014882
Empty commit (test) 2025-12-05 09:28:52 +01:00
Arthur Belleville
20d236c48a
Put back the Events Page 2025-12-05 09:10:11 +01:00
Arthur Belleville
f152d7d45a
Big UI update
Remove notes and follow the figma
2025-12-04 23:37:18 +01:00
Arthur Belleville
50a27fea98
Grant all RUM tracking 2025-12-03 21:03:18 +01:00
Arthur Belleville
b253342ec9
Improve the onboarding flow (UI) 2025-12-02 22:17:04 +01:00
Arthur Belleville
65eda86b34
Onboarding 2025-12-02 21:42:35 +01:00
Arthur Belleville
5965e2423b
Fix copies 2025-12-02 09:48:55 +01:00
Arthur Belleville
6e5d4709d4
Merge branch 'main' into develop 2025-12-01 22:49:47 +01:00
Arthur Belleville
3a3fdd2837
Allow logout from upgrade panel 2025-12-01 22:45:54 +01:00
Arthur Belleville
ce11d37a9d
Freemium 2025-12-01 22:21:49 +01:00
Arthur Belleville
06f2ac541b
Onboarding + freemium 2025-12-01 19:34:30 +01:00
Arthur Belleville
9ba49c68ca
Allow infinite users 2025-11-25 10:11:04 +01:00
Arthur Belleville
1342f69efa
Finish stripe integration for MVP 2025-11-25 10:06:35 +01:00
Arthur Belleville
ebc65ef000
Fix price 2025-11-25 09:21:38 +01:00
Arthur Belleville
0b07049334
Fix copies in subscription card 2025-11-25 09:18:55 +01:00
Arthur Belleville
e4570db38b
Merge pull request #46 from artslidd/develop
Add beta plan + upsell modals + block past_due users
2025-11-25 09:07:29 +01:00