Adds SessionProvider to main.tsx, creates ClientLayout with minimal top bar,
AuthCallback for magic link handling, ClientTabloPage with all 7 tabs using
tablo-views components, and ClientTabloListPage with auto-redirect for single tablo.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds three React Query hooks (usePendingClientInvites, useCreateClientInvite, useCancelClientInvite) and a new Client Access section in the share dialog with email input, pending invite list, expiry countdown, and orange warning badge for invites expiring in less than 5 days.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add @xtablo/tablo-views workspace dependency to apps/main
- Update tablo-details.tsx to import from @xtablo/tablo-views and pass required props
- Remove inline EtapesSection and RoadmapSection functions (now in tablo-views)
- Update chat.tsx to import ChatMessages, useChat, useChatUnread from @xtablo/tablo-views
- Fix broken imports in DashboardTaskList, TabloOverviewSection, tablo.tsx, tasks.tsx
- Update kanban/index.ts to re-export from @xtablo/tablo-views
- Fix test files to import components from @xtablo/tablo-views
- Add is_client: false to test mock user objects
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Moves kanban, gantt, section components, chat hooks and extracted
EtapesSection/RoadmapSection from apps/main into the new shared
packages/tablo-views package. Components that previously depended on
app-specific providers (UserStoreProvider, useIsReadOnlyUser, etc.) are
refactored to receive data/callbacks as props, keeping the package free
of apps/main dependencies.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>