New component that doesn't require a website, with textarea config
field. Added requiresWebsite flag to ComponentDefinition so board
components can opt out of the websiteId requirement.
Allows BoardControls to render filter bar and date picker without
requiring a websiteId. Website-specific features (segments, cohorts,
filter value autocomplete, save segment) are gracefully hidden when
no websiteId is available.
- Replace raw strings with useMessages hook in BoardColumn and BoardComponentSelect
- Show WebsiteControls on edit screen so users can test filters
- Disable board body editing until a website is selected
- Scope website select to team websites when editing a team board
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Allows users to select and inject analytics components into board cells.
Includes component registry, renderer, selector modal with category
menu, config fields for MetricsTable, and live preview. Also scopes
website select to team websites when editing a team board.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Board creation from team context was not passing teamId to the API,
causing boards to be saved as personal boards instead of team boards.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove invalid 3rd parameter from GET handler and parse report type from
query params instead. Pass teamId to WebsiteSelect in BoardEditHeader so
it shows team websites in team context.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Renames all files, components, database schema, API routes, hooks,
messages, and build config from "recording" to "replay" terminology.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements full session recording with rrweb for DOM capture and rrweb-player
for playback. Includes: Prisma schema for SessionRecording model, chunked
gzip-compressed storage, recorder script built via Rollup, collection API
endpoint, recordings list/playback UI pages, website recording settings,
and cascade delete support.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract BoardRow, BoardColumn, BoardViewHeader, BoardEditHeader, and
boardConstants into separate files. Remove 9 console.log statements
from BoardBody and BoardProvider.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move sidebar rendering logic into WebsiteNav with isCollapsed prop so
SideNav uses WebsiteNav directly instead of duplicating code. Add
overflow hidden to prevent horizontal scrollbar during expand transition.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fall back to queried website name when local state hasn't been set yet,
since useState only captures the initial value which is undefined before
the query resolves.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the separate 240px WebsiteNav sidebar with website navigation
integrated into the main SideNav. When a websiteId is active, SideNav
shows a back arrow, WebsiteSelect dropdown, and grouped nav items
instead of the main links. Extract shared useWebsiteNavItems hook used
by both SideNav and WebsiteNav (still used by MobileNav).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove unnecessary wrapper Row around DateFilter and set min-width
on the date picker popover to 200px.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Show NavButton text whenever sidebar is not collapsed, not only on
pages without sub-navigation. Also remove unused Sidebar component.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace render function children with mapped ListItem elements and remove
the unsupported items prop across all Select instances.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rename SideMenu to NavMenu with visible group title labels and selected item highlighting
- Update react-zen to 0.242.0 and fix responsive breakpoints (xs -> base)
- Style floating tooltips with inverted background across WorldMap, charts, and WeeklyTraffic
- Add CSS variables for primary color and use IconLabel consistently
- Remove stray console.log from LoadingPanel
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
/boards/[id] is now view mode (read-only) with an edit button.
/boards/[id]/edit is edit mode with save and cancel buttons.
Save navigates back to view, cancel discards changes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>