Commit Graph

427 Commits

Author SHA1 Message Date
Usman Baig
6fcb6df295 fix: widen collapsed sidebar to 64px, prevent header flash on refresh
Collapsed width 56px→64px to stop clipping site picker badge and icons.
Return null while auth is loading on site pages to prevent brief flash
of the public floating header before the sidebar layout renders.
2026-03-18 16:51:01 +01:00
Usman Baig
db5cd4cbcb feat: replace sidebar with 21st.dev hover-to-expand component
Use framer-motion animated sidebar from 21st.dev — collapses to icons,
expands on hover. Phosphor icons instead of lucide. Remove old manual
collapse/expand and sidebar-context. Top bar has Pulse logo + user
actions, sidebar below with site picker and nav groups.
2026-03-18 16:20:32 +01:00
Usman Baig
1d25368292 feat: Dokploy-style sidebar layout for site pages
Sidebar takes full viewport height with Pulse logo at top. No Header
on site pages — UtilityBar in content area provides theme toggle, app
launcher, notifications, and user menu. Non-site authenticated pages
keep static Header. No footer on dashboard pages.
2026-03-18 15:58:06 +01:00
Usman Baig
7ae5facd0c fix: proper dashboard layout — header + sidebar + content fill viewport
Use h-screen overflow-hidden on the root container for authenticated
views. Sidebar and content fill the remaining height below the header.
Remove footer from dashboard pages. Content scrolls inside its own
container, sidebar stays fixed in place.
2026-03-18 15:38:58 +01:00
Usman Baig
80ae8311dc feat: static header + collapsible sidebar navigation
Replace floating pill header with static variant for authenticated
views. Add collapsible sidebar with site picker, grouped navigation
(Analytics/Infrastructure), and mobile overlay drawer. Remove
horizontal SiteNav tab bar.
2026-03-18 15:30:27 +01:00
Usman Baig
4c7ed858f7 feat(funnels): add step-level breakdown drawer with dimension tabs 2026-03-18 14:34:07 +01:00
Usman Baig
efd0c144b5 feat(funnels): add conversion trends line chart with per-step toggles 2026-03-18 14:33:25 +01:00
Usman Baig
585cb4fd88 feat(funnels): add edit funnel page with pre-populated form 2026-03-18 14:27:45 +01:00
Usman Baig
2811945d3e feat(funnels): add filter bar and exit path display to funnel detail 2026-03-18 14:26:26 +01:00
Usman Baig
18e66917d3 feat(funnels): extract reusable FunnelForm with category toggle, property filters, and conversion window 2026-03-18 14:23:25 +01:00
Usman Baig
311f546261 fix: improve code quality in soft-delete frontend (loading state, imports, confirm dialog) 2026-03-18 11:15:14 +01:00
Usman Baig
ad1c8c5420 fix: address spec compliance gaps in soft-delete frontend 2026-03-18 11:15:14 +01:00
Usman Baig
51723bea5d feat: replace prompt() delete with DeleteSiteModal on settings page 2026-03-18 11:15:14 +01:00
Usman Baig
d7f374472a feat: integrate delete modal and soft-deleted sites list on dashboard 2026-03-18 11:15:14 +01:00
Usman Baig
b16f01bd7f fix: rename Step 1 to Entry in columns view, max depth to 6 2026-03-16 22:08:14 +01:00
Usman Baig
52427fea93 fix: change journey depth default to 4, max to 5 2026-03-16 22:02:29 +01:00
Usman Baig
6f42d4d3de feat: add Columns/Flow view toggle to journeys page 2026-03-16 14:01:18 +01:00
Usman Baig
be1d9a2f46 feat: add shimmer bar when dashboard is refetching after filter change
Shows a thin animated orange bar below the filter bar while SWR
revalidates, so users know their filter was applied. Hidden on
initial load where the skeleton already provides feedback.
2026-03-16 11:39:28 +01:00
Usman Baig
2e444849ef fix: make step 1 clicks show connector lines like other steps
Previously clicking a step 1 block would set it as an entry point filter
instead of showing connection lines. Now all steps behave consistently —
clicking any step toggles selection and draws connector lines to the next
column. Entry point filtering remains available via the dropdown.
2026-03-16 09:42:59 +01:00
Usman Baig
d864d951f9 fix: rebuild depth slider from scratch
- Use min=2 max=10 directly on range input (no array index mapping)
- Debounce via useEffect instead of manual timer refs
- Always render Reset button with opacity transition (no layout shift)
- Immediate setCommittedDepth on reset for instant response
2026-03-15 20:08:15 +01:00
Usman Baig
d5b48ac985 fix: rebuild depth slider with single state + debounce
Replace dual-state (depth/displayDepth) with a single depth state
and a debounced value for API calls. Eliminates glitchy reset button
and simplifies the slider to just onChange.
2026-03-15 20:04:36 +01:00
Usman Baig
3c9d5b47be fix: show reset button while dragging depth slider 2026-03-15 20:00:51 +01:00
Usman Baig
76248233b9 fix: revalidate funnels list after creating a new funnel
Mutate the SWR funnels cache key before navigating back so the
list page shows the newly created funnel without requiring a refresh.
2026-03-15 18:38:51 +01:00
Usman Baig
220d3905be fix: use 0-based step order when creating funnels
Backend expects sequential order starting from 0 (0, 1, 2, ...),
but the frontend was sending 1-based order (1, 2, 3, ...).
2026-03-15 18:33:30 +01:00
Usman Baig
6d6c1ee8f6 fix: prevent grid children from overflowing on mobile
Add [&>*]:min-w-0 to lg:grid-cols-2 grids so widget cards
respect the grid track width instead of expanding to content size.
2026-03-15 18:20:08 +01:00
Usman Baig
24c71f7991 fix: mobile responsiveness across all pages
- SiteNav: add horizontal scroll for 8 tabs on mobile
- NotificationCenter: full-width dropdown on mobile
- ContentStats/Locations/TechSpecs: scrollable tab bars
- FrustrationTable: fix selector text overflow
- FrustrationByPageTable: horizontal scroll on mobile
- CDN: better stat card grid breakpoints
- Home: reduce stat card height, prevent button wrap
- Billing: shorter invoice labels on mobile
- Bump @ciphera-net/ui to 0.2.6 (AppLauncher mobile fix)
2026-03-15 18:15:06 +01:00
Usman Baig
e7907d68bf fix: default depth 10, bar rounding, exit row height, connection line reach 2026-03-15 13:39:41 +01:00
Usman Baig
e8f00e06ec feat: replace sankey chart with column-based journey visualization 2026-03-15 12:17:48 +01:00
Usman Baig
7e30d04df3 feat: redesign top paths as breadcrumb cards with icons 2026-03-15 11:47:52 +01:00
Usman Baig
47d884e47b fix: remove focus ring from depth slider, debounce API calls until drag ends 2026-03-15 11:43:04 +01:00
Usman Baig
f858bb7811 refactor: remake journeys page with pricing-style slider, remove top paths table 2026-03-15 11:39:33 +01:00
Usman Baig
302e683b32 feat: increase journey depth slider max from 5 to 10 2026-03-15 11:27:18 +01:00
Usman Baig
b305b5345b refactor: remove performance insights (Web Vitals) feature entirely
Remove Performance tab, PerformanceStats component, settings toggle,
Web Vitals observers from tracking script, and all related API types
and SWR hooks. Duration tracking is preserved.
2026-03-14 22:47:33 +01:00
Usman Baig
7247281ce2 feat: move performance to dedicated tab, fix 0/99999 metrics bug
Performance metrics moved from dashboard into a new Performance tab.
Fixed null handling so "No data" shows instead of misleading zeros.
Script no longer sends INP=0 when no interaction occurred.
2026-03-14 22:01:44 +01:00
Usman Baig
f278aada7a fix: use flag icons, show per-datacenter dots on map, format tooltip as bytes 2026-03-14 21:35:26 +01:00
Usman Baig
1e61926bc6 fix: parse bunnycdn datacenter codes to ISO country codes for map dots and flags 2026-03-14 21:26:51 +01:00
Usman Baig
77b280341b fix: use official bunnycdn logo, redesign traffic distribution with map and country grid 2026-03-14 21:21:53 +01:00
Usman Baig
d9c01b9b06 feat: add traffic distribution dotted map to CDN tab 2026-03-14 21:12:07 +01:00
Usman Baig
2512be0d57 fix: bunnycdn logo and api key security 2026-03-14 21:08:42 +01:00
Usman Baig
fb85c431f0 feat: add BunnyCDN integration 2026-03-14 20:46:26 +01:00
Usman Baig
a8fe171c8c fix: use ShieldCheck icon for Data & Privacy settings tab 2026-03-14 18:30:41 +01:00
Usman Baig
4d869d8cb1 fix: place Search and Goals side by side in two-column grid 2026-03-14 18:13:07 +01:00
Usman Baig
a3f50dc38f fix: restore Peak Hours layout and hide empty Search panel
Peak Hours back in its original grid position next to Campaigns.
Search panel now placed below as a standalone row, and hides
entirely when there's no GSC data instead of showing zeros.
2026-03-14 18:09:07 +01:00
Usman Baig
8f00193e0f feat: add Search panel to dashboard and enrich Search tab
Dashboard: compact Search Performance panel showing top 5 queries,
clicks, impressions, and avg position alongside Campaigns.

Search tab: clicks/impressions trend chart, top query position
tracker cards, and new queries badge.
2026-03-14 18:05:05 +01:00
Usman Baig
34c705549b feat: add Google Search Console integration UI
Search Console page with overview cards, top queries/pages tables,
and query↔page drill-down. Integrations tab in Settings for
connect/disconnect flow. New Search tab in site navigation.
2026-03-14 15:36:37 +01:00
Usman Baig
19db02e945 fix: lower min_sessions to 1 for journey data visibility
Journeys page showed empty state on low-traffic sites because
min_sessions=2 filtered out all single-occurrence transitions.
2026-03-14 13:40:40 +01:00
Usman Baig
25210013d3 feat: centralise date/time formatting with European conventions
All dates now use day-first ordering (14 Mar 2025) and 24-hour time
(14:30) via a single formatDate.ts module, replacing scattered inline
toLocaleDateString/toLocaleTimeString calls across 12 files.
2026-03-14 13:31:30 +01:00
Usman Baig
f7bd61187a style: make verified state match button shape of unverified state 2026-03-13 16:46:51 +01:00
Usman Baig
344838e0cd style: use subtle inline text for verified status in settings 2026-03-13 16:44:00 +01:00
Usman Baig
e336d2c7e5 feat: show verification status in site settings page 2026-03-13 16:40:37 +01:00