Usman Baig
d6d42b5759
fix: portal delete modal to body so backdrop-blur covers header
...
The modal was rendered inside <main> which is a sibling of the
fixed header. Browser compositing didn't apply backdrop-blur
across the header's separate GPU layer. Using createPortal to
render at document.body matches how the delete account modal
works (rendered as sibling to header via SettingsModalWrapper).
2026-03-13 20:35:04 +01:00
Usman Baig
618c4fd5fe
fix: bump delete modal z-index to z-[100] to cover fixed header
...
Header uses fixed z-50 with backdrop-blur which creates its own
stacking context. z-[60] wasn't enough, z-[100] matches the
pattern used by VerificationModal.
2026-03-13 20:29:47 +01:00
Usman Baig
39e06183c3
fix: delete modal overlay z-index above navbar
2026-03-13 20:10:23 +01:00
Usman Baig
6c31f3fc60
fix: show org name in delete modal and fix subscription card visibility
...
Modal now says "Delete Ciphera?" instead of generic "Delete Organization?".
Subscription cancellation card now shows for any paid plan (solo/team/business)
regardless of subscription_status, which could be 'active' or 'trialing'.
2026-03-13 19:58:01 +01:00
Usman Baig
86077557a8
style: redesign org delete modal to match delete account style
...
Red border, frosted overlay, destruction items as prominent
red-bordered cards with warning icons instead of small bullet
points. Button text changed to "Delete Forever".
2026-03-13 19:44:03 +01:00
Usman Baig
e86021caf8
fix: await subscription fetch before opening delete modal
...
The delete button fired loadSubscription() without awaiting it,
so the modal opened with subscription=null and the destruction
summary (sites count, active subscription) never rendered.
2026-03-13 19:35:12 +01:00
Usman Baig
0dd1f00095
fix: fetch subscription data when delete modal opens
...
Subscription was only loaded on the Billing tab, so the delete
modal showed no destruction summary when opened from General tab.
2026-03-13 18:25:34 +01:00
Usman Baig
84312ebf59
feat: show destruction summary in org delete modal
...
Lists what will be deleted: site count with analytics data,
member count, active subscription, and notification settings.
Replaces the generic warning with specific impact details.
2026-03-13 18:15:40 +01:00
Usman Baig
e336d2c7e5
feat: show verification status in site settings page
2026-03-13 16:40:37 +01:00
Usman Baig
8f06c9168a
feat: show verified/unverified badge on site cards
2026-03-13 16:32:26 +01:00
Usman Baig
b5d408b4e8
style: add skeleton loading & fade transition to behavior page
2026-03-13 14:30:01 +01:00
Usman Baig
00d232ab3f
fix: switch from natural to bump interpolation to prevent overshoot
2026-03-13 13:53:38 +01:00
Usman Baig
87f5905bd6
fix: clip chart overflow from natural spline overshoot
2026-03-13 13:50:27 +01:00
Usman Baig
58f42f945c
style: smooth chart curves with natural spline and add area fill
...
Switch from monotone to natural interpolation for rounder peaks.
Add transparent orange gradient area fill beneath the line.
2026-03-13 13:47:26 +01:00
Usman Baig
570a84889a
fix: increase hover hitbox on map location markers
2026-03-13 13:43:44 +01:00
Usman Baig
969887cc67
style: use CartesianGrid for horizontal lines aligned with Y-axis ticks
...
Replace the CSS overlay with Recharts CartesianGrid (horizontal only)
so lines align perfectly with the Y-axis values.
2026-03-13 13:08:28 +01:00
Usman Baig
453a596eaf
style: replace animated grid with subtle horizontal lines in chart
...
Simple repeating horizontal lines at 40px intervals with 50% opacity,
faded at top/bottom edges via CSS mask. No extra components needed.
2026-03-13 13:05:24 +01:00
Usman Baig
9a54d93c79
style: replace static grid with animated grid pattern in chart
...
Use AnimatedGridPattern from 21st.dev with subtle fading squares.
Scoped to CardContent only so the metric tabs and annotation footer
stay clean.
2026-03-13 13:01:03 +01:00
Usman Baig
eb0dc4a27b
style: replace dotted chart background with grid line pattern
...
Swap the old dot grid overlay inside the Recharts SVG for a GridPattern
component rendered behind the chart card. Uses a vertical mask gradient
to fade edges for a cleaner look.
2026-03-13 12:55:20 +01:00
Usman Baig
8c4bb8f861
style: add fade-in transition from skeleton to content
...
Smooth out the jarring visual pop when loading skeletons are replaced
by real content. Only animates after an actual skeleton was shown —
cached data still renders instantly with no delay.
2026-03-13 12:45:48 +01:00
Usman Baig
0abc5cd4a8
style: unify all dashboard chart colors to brand orange
2026-03-13 12:32:57 +01:00
Usman Baig
3bda7215db
fix: stat label invisible on light mode when selected
...
The active metric label (e.g. UNIQUE VISITORS) was white on a
near-white background. Switch to brand orange for visibility in
both themes.
2026-03-13 12:29:05 +01:00
Usman Baig
0112004457
fix: depth default 3 max 5, min_sessions 2, 5 nodes per column, stricter labels
2026-03-12 23:58:56 +01:00
Usman Baig
063a21adeb
feat: cap nodes per column, dynamic SVG height, smart labels, thinner exit node
2026-03-12 23:46:24 +01:00
Usman Baig
a3fa48732a
fix: correct ribbon y-offset — d3-sankey y0/y1 are center, not top
2026-03-12 23:20:33 +01:00
Usman Baig
a637d32446
revert: remove frontend same-page filter, backend fix handles this
2026-03-12 23:12:12 +01:00
Usman Baig
df394b85ef
fix: filter out same-page transitions (reloads) from Sankey
2026-03-12 23:08:30 +01:00
Usman Baig
4e7c495160
fix: use SVG-level onMouseMove with data attrs for reliable hover
2026-03-12 23:04:08 +01:00
Usman Baig
9c8943d1e3
fix: rewrite hover state to single object, fix link dimming on node hover
2026-03-12 22:56:13 +01:00
Usman Baig
e7debdeb41
fix: consolidate exit nodes into single (exit) node
2026-03-12 22:52:24 +01:00
Usman Baig
3df93bb227
fix: link color from source node, fix hover dimming, labels trigger hover
2026-03-12 22:48:31 +01:00
Usman Baig
3bde3fd4e1
fix: only highlight links on node hover, not other nodes
2026-03-12 22:40:40 +01:00
Usman Baig
5cdf353233
feat: add node hover highlighting with connection dimming
2026-03-12 22:37:40 +01:00
Usman Baig
683bbce817
fix: thick node bars, multi-hue palette, higher link opacity, more padding
2026-03-12 22:31:05 +01:00
Usman Baig
828e930a69
fix: Sankey visual overhaul — lower link opacity, column color gradient, breathing room
...
- Links: 18% opacity default (was 60%), 45% on hover, grey for exit links
- Nodes: column-based orange gradient (bright entry → dark deep), stroke outline
- Labels: larger font, better padding, higher contrast backgrounds
- Layout: more vertical padding, wider node gap (24px)
2026-03-12 22:23:52 +01:00
Usman Baig
54daf14c6a
feat: replace MUI X Charts Pro with d3-sankey custom Sankey
...
Remove paid MUI dependency. Use d3-sankey (MIT, ~5KB) for layout
algorithm + custom SVG rendering. Same visual quality: smooth bezier
ribbon links, proper node spacing via sankeyJustify, label backgrounds,
hover dimming, exit nodes.
2026-03-12 22:17:16 +01:00
Usman Baig
281a9f237a
feat: replace custom Sankey SVG with MUI X Charts Pro Sankey
2026-03-12 22:07:20 +01:00
Usman Baig
4b10f8c1fc
fix: refine Sankey visual — thinner nodes, subtle links, orange on hover
2026-03-12 21:58:50 +01:00
Usman Baig
31286c45f4
fix: use brand orange for Sankey diagram nodes and links
2026-03-12 21:51:07 +01:00
Usman Baig
908606ade2
fix: make journey empty states consistent with dashboard blocks
2026-03-12 21:49:31 +01:00
Usman Baig
b3e335ec6c
feat(journeys): add skeleton and error boundary
2026-03-12 21:36:27 +01:00
Usman Baig
e7e76bb3db
feat(journeys): add Journeys tab to site navigation
2026-03-12 21:35:43 +01:00
Usman Baig
0fa6c4aaf4
feat(journeys): add top paths table component
2026-03-12 21:32:18 +01:00
Usman Baig
c669035718
feat(journeys): add Sankey diagram SVG component
2026-03-12 21:29:45 +01:00
Usman Baig
6964be9610
refactor: remove realtime visitors detail page
...
Remove the individual session journey page and make the live visitor
count a static indicator. Prepares for the new aggregated User Journeys
feature (v0.17).
2026-03-12 20:45:58 +01:00
Usman Baig
bae492e8d9
style: show only percentage badge on hover in frustration tables
2026-03-12 20:31:21 +01:00
Usman Baig
540c774100
fix: custom tooltip with inline fill color, dynamic subtitle
...
- Replace ChartTooltipContent with custom tooltip that reads fill
directly from payload — guaranteed to show the slice color
- Subtitle adapts: shows 'current and previous period' only when
previous period data exists, otherwise 'rage vs dead breakdown'
- Filter out zero-count slices from chart data
2026-03-12 18:29:43 +01:00
Usman Baig
3bf832af92
style: use transparent orange tones for frustration pie chart
...
Rage clicks: warm orange at 70% opacity
Dead clicks: darker amber at 70% opacity
Previous period: same hues at 35% opacity
2026-03-12 18:27:57 +01:00
Usman Baig
5050422a60
refactor: match frustration tables to dashboard pattern
...
- Remove column headers for cleaner look
- Show secondary info (avg, sessions, last seen) on hover
- Add orange percentage badge that slides in on hover
- Add empty row padding for consistent card height
2026-03-12 18:27:20 +01:00
Usman Baig
13f6f53868
fix: tooltip indicator dot not showing slice color
...
bg-[--color-bg] doesn't resolve in Tailwind v4 — needs var() wrapper.
Changed to bg-[var(--color-bg)] and border-[var(--color-border)].
2026-03-12 18:25:15 +01:00