Commit Graph

457 Commits

Author SHA1 Message Date
Usman Baig
52906344cf feat(pagespeed): add PageSpeed page with gauges, CWV cards, chart, and diagnostics
- ScoreGauge SVG component with color-coded circular arcs
- Full page: disabled state, score overview, CWV metrics, trend chart
- Diagnostics accordion with opportunities/diagnostics/passed groups
- Mobile/desktop strategy toggle, manual check trigger
- Loading skeleton, frequency selector
2026-03-22 18:13:08 +01:00
Usman Baig
6a1698b794 feat: add Notifications section to settings with Reports and Alerts
- Adds purpose field to report schedule API client
- Adds useAlertSchedules SWR hook
- Reorganizes settings: Reports tab becomes Notifications tab
- Groups existing Reports and new Alerts subsections
- Alert channels reuse report delivery infrastructure (email, Slack, Discord, webhooks)
2026-03-22 16:57:04 +01:00
Usman Baig
1d26819727 feat: simplify uptime page to single auto-managed monitor with toggle
Rewrites uptime page from 978 to ~370 lines. Removes all monitor CRUD
UI (modals, monitor list, selection state). Adds enable/disable toggle
and empty state. Reads the single auto-managed monitor.
2026-03-22 16:51:42 +01:00
Usman Baig
b7e92abb40 feat: persist script feature toggles to backend
Features (scroll, 404, outbound, downloads, frustration, storage, ttl)
are saved to site.script_features JSONB column on every toggle change.
Values are read from the site object on load.
2026-03-22 15:31:45 +01:00
Usman Baig
430e6f5d48 feat: use session cookie auth for public dashboard password flow
handlePasswordSubmit now calls POST /public/sites/:id/auth which
sets an HttpOnly cookie. All subsequent API calls authenticate via
cookie automatically — no password in URLs, no captcha state needed
for data fetching. Simplifies share page state management.
2026-03-22 14:45:25 +01:00
Usman Baig
82a201a043 fix: stop password keystrokes from triggering API calls on public dashboard
Used refs for password/captcha values so loadDashboard doesn't
recreate on every keystroke. Password is only sent to API on
explicit form submit. Also fixes stale captcha state in closures.
2026-03-22 13:52:10 +01:00
Usman Baig
0805bbaeee fix: improve password protection UX with status badge and remove option
- Shows green "Password set" badge when a password is active
- Simplified placeholder to "Enter new password"
- Added helper text explaining current password persists
- Added "Remove password protection" link for easy removal
- Cleaned up dark-mode toggle styling
2026-03-22 13:40:26 +01:00
Usman Baig
3f3d81a41f fix: style bot filter checkboxes with accent-color orange 2026-03-22 13:30:29 +01:00
Usman Baig
0878bde259 fix: redesign session review as card layout instead of cramped table 2026-03-22 13:25:02 +01:00
Usman Baig
42b7363cf9 feat: add Bot & Spam settings tab with session review UI 2026-03-22 13:16:07 +01:00
Usman Baig
6444cec454 fix: use inline styles for Slack SVG fills to prevent CSS override 2026-03-22 01:06:03 +01:00
Usman Baig
5fc1a33745 fix: use official multicolored Slack logo (pink, blue, green, yellow) 2026-03-22 01:01:58 +01:00
Usman Baig
185cb8699f fix: use white color for Slack icon on dark background 2026-03-22 00:52:29 +01:00
Usman Baig
7e48d70411 fix: use real Slack and Discord brand icons in report schedule modal
Replaced generic WebhooksLogo with actual Slack SVG (pink) and
SiDiscord (blurple) in both the channel selector and the report list.
2026-03-22 00:40:02 +01:00
Usman Baig
028e4e5425 fix: reduce funnel chart height with wider aspect ratio (4:1) 2026-03-21 22:27:37 +01:00
Usman Baig
6098b5e158 feat: replace vertical funnel with horizontal funnel chart
Switched to horizontal orientation with grouped labels for better
readability across multi-step funnels.
2026-03-21 22:23:47 +01:00
Usman Baig
93347f6454 fix: revert outer container size, increase inner padding to show more bg 2026-03-21 21:05:46 +01:00
Usman Baig
b3bb0685f9 fix: smooth chart curve data, translucent dashboard, smaller demo container 2026-03-21 21:02:35 +01:00
Usman Baig
ca199b59fd feat: replace fake LiveDemo with real dashboard components and fake data 2026-03-21 20:36:55 +01:00
Usman Baig
536bb8c872 feat: add live demo dashboard to landing page hero 2026-03-21 20:26:23 +01:00
Usman Baig
911704cff2 feat: port website header with mega-menu, add showcase bg to hero, fix carousel container size 2026-03-21 20:12:01 +01:00
Usman Baig
a361649e60 feat: add tabbed FAQ, polish installation code blocks, refine integration styling 2026-03-21 19:52:32 +01:00
Usman Baig
0b7c4d528a feat: add feature sections, comparison cards, and CTA components for landing page 2026-03-21 19:46:20 +01:00
Usman Baig
acfd532194 feat: redesign landing hero to match website quality 2026-03-21 19:41:51 +01:00
Usman Baig
3710f081a6 feat: dark-only cleanup for marketing pages and authenticated landing view 2026-03-21 19:39:01 +01:00
Usman Baig
21c68b4334 fix: restore ThemeProvider with forced dark mode to fix build 2026-03-21 18:30:06 +01:00
Usman Baig
ec9d1a2c2d feat: force dark mode and match ciphera-website background 2026-03-21 18:27:35 +01:00
Usman Baig
8fdb8c4a2f fix: remove orange glow orb backgrounds from marketing pages 2026-03-21 18:17:27 +01:00
Usman Baig
7cbfbc54ca fix: tighten dashboard vertical spacing
Reduce spacing now that top header is removed:
- Main content top padding: pt-6 → pt-4
- Header section: mb-8 → mb-6
- Chart section: mb-8 → mb-6
- Grid sections: mb-8 → mb-6
- Site name margin: mb-2 → mb-1
- Header inner gap: mb-4 → mb-3
2026-03-19 12:10:30 +01:00
Usman Baig
e464b87471 feat: add filtered traffic page to admin dashboard
Add admin page at /admin/filtered-traffic showing domains blocked by the
referrer spam filter with reason badges and date range selector. Helps
operators monitor spam filtering and catch false positives.
2026-03-19 10:11:28 +01:00
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