Commit Graph

1463 Commits

Author SHA1 Message Date
Usman
a992afe04b Merge pull request #73 from ciphera-net/staging
Dashboard shell, breadcrumb navigation, sidebar redesign & integration pages SEO overhaul
2026-03-29 00:30:29 +01:00
Usman Baig
066f1288f1 feat: trim integration pages from 75 to 25 + migrate to MDX
- Add dedicatedPage flag to integration registry (25 true, 50 false)
- Delete hardcoded nextjs/react/vue/wordpress route pages (wrong metadata)
- Hub page routes non-dedicated integrations to /integrations/script-tag
- Add 301 redirects for 50 removed slugs → /integrations/script-tag
- Migrate guide content from TSX to MDX (content/integrations/*.mdx)
- Add gray-matter, next-mdx-remote, remark-gfm dependencies
- Add content loader (lib/integration-content.ts) matching ciphera-website pattern
- Add prebuild script for integration guide index generation
- Sitemap reduced from 83 to 35 URLs with real lastmod dates
- Remove seoDescription from registry (now in MDX frontmatter)
2026-03-29 00:28:47 +01:00
Usman Baig
20d7bdd482 fix: larger sidebar tooltips (text-sm, more padding) 2026-03-28 22:56:57 +01:00
Usman Baig
ef1cb32c51 fix: consistent group header height prevents icon shift on toggle 2026-03-28 22:54:47 +01:00
Usman Baig
3067101fec fix: tooltip uses content panel bg (neutral-950) + 100ms delay 2026-03-28 22:53:25 +01:00
Usman Baig
16fd913351 fix: increase sidebar tooltip delay to 400ms 2026-03-28 22:52:12 +01:00
Usman Baig
c7f2600460 fix: portal-based sidebar tooltips, visible when collapsed
Old tooltips were clipped by overflow-hidden on the aside.
New SidebarTooltip renders via createPortal with fixed positioning,
100ms delay, rounded-lg glass styling with border and shadow.
2026-03-28 22:48:30 +01:00
Usman Baig
62df9b3521 Revert "feat: double sidebar with icon rail + nav panel"
This reverts commit 24fb5258d5.
2026-03-28 22:27:15 +01:00
Usman Baig
24fb5258d5 feat: double sidebar with icon rail + nav panel
Rail (always visible, 56px): Pulse logo, home icon, site favicons
with quick switch, add site, notifications, profile.
Panel (collapsible, 200px): context-specific nav groups.
Site favicons in rail show ring highlight for active site.
Collapse toggle hides panel, rail stays visible.
2026-03-28 22:21:49 +01:00
Usman Baig
9053004e25 fix(search): show skeleton until overview data loads, not just GSC status 2026-03-28 21:26:28 +01:00
Usman Baig
4c1f70655a feat: move app switcher from sidebar to breadcrumbs
Breadcrumbs now show: Pulse ▾ > Your Sites > site ▾ > Page
"Pulse ▾" opens the Ciphera apps dropdown (Drop, Auth).
Removed AppLauncher and CIPHERA label from sidebar top.
2026-03-28 21:20:09 +01:00
Usman Baig
48320c4db3 feat: move site picker from sidebar to breadcrumbs
Replaced simple breadcrumb dropdown with the full sidebar-style
site picker (search, favicons, name+domain, add new site, animation).
Removed SitePicker from sidebar and cleaned up unused props.
2026-03-28 20:57:29 +01:00
Usman Baig
ff256a5986 fix: center breadcrumb caret, remove dropdown padding gaps 2026-03-28 20:23:08 +01:00
Usman Baig
2113ee348a feat: add site switcher dropdown to breadcrumbs
Site name in breadcrumbs is now clickable with a dropdown showing
all sites with favicons. Selecting a site navigates to the same
section on that site. Lazy-loads site list on first open.
2026-03-28 20:14:14 +01:00
Usman Baig
9feffa5cc6 feat: add breadcrumb navigation to GlassTopBar
Site pages show: Your Sites > site-name > Page Title
Each segment is clickable for navigation back.
Home/non-site pages show plain title as before.
2026-03-28 20:04:51 +01:00
Usman Baig
663abc9b9e feat: DashboardShell for all auth pages, site settings modal from home
- layout-content wraps integrations/pricing in DashboardShell
- GlassTopBar derives title per page (Integrations, Pricing, etc.)
- Site card gear icon opens settings modal with siteId context
- Removed delete button from site cards (accessible via site settings)
- Extended InitialTab to accept optional siteId for cross-page use
2026-03-28 19:42:42 +01:00
Usman Baig
c36c1b0696 feat: wrap all authenticated pages in DashboardShell, fix site card actions
- Move DashboardShell wrapping to layout-content.tsx for all dashboard
  pages (home, integrations, pricing) instead of per-page
- GlassTopBar derives page title from pathname (Integrations, Pricing)
- Site card: gear icon now opens site settings, separate trash icon for delete
2026-03-28 19:35:23 +01:00
Usman Baig
45c518b3ba feat: add home sidebar nav (sites list, workspace, resources)
Three nav groups in home mode:
- Your Sites: each site with favicon, Add New Site
- Workspace: Integrations, Pricing, Workspace Settings
- Resources: Documentation (external link)

Same styling as site dashboard sidebar nav items.
2026-03-28 19:24:41 +01:00
Usman Baig
9413fb2a07 fix: match home page max-width to dashboard (max-w-7xl) 2026-03-28 19:15:33 +01:00
Usman Baig
a6054469ee feat: wrap home page in DashboardShell, remove stat cards
Home page now uses the same sidebar layout as dashboard pages.
Sidebar shows simplified home mode (logo, app switcher, profile)
without site-specific nav groups. Stat cards removed — plan info
lives in settings, site count is self-evident from the list.
2026-03-28 19:12:45 +01:00
Usman Baig
07546576c1 fix(pricing): default slider to first tier (10k) instead of third (100k) 2026-03-28 18:57:57 +01:00
Usman
4c5102ced1 Merge pull request #72 from ciphera-net/staging
Invoice list with VAT breakdown and PDF download
2026-03-28 16:40:01 +01:00
Usman Baig
05d183fe2c fix(billing): use full API_URL for PDF download endpoint 2026-03-28 15:53:50 +01:00
Usman Baig
9c5a47ff3a feat(billing): update invoice list with real data, PDF download, and VAT breakdown 2026-03-28 14:45:02 +01:00
Usman
84edcf9889 Merge pull request #71 from ciphera-net/staging
Add Mollie checkout flow, billing UI, and payment UX polish
2026-03-28 11:28:03 +01:00
Usman Baig
07401a4ce2 fix: use accessible button color tokens for WCAG AA contrast
Swap bg-brand-orange to bg-brand-orange-button on all interactive
buttons with white text. Decorative uses unchanged. Bumps
@ciphera-net/ui to 0.3.6.
2026-03-28 00:48:05 +01:00
Usman Baig
8c0700f406 fix: filter by all merged referrers when clicking a group (e.g. Pulse covers both prod and staging) 2026-03-28 00:24:04 +01:00
Usman Baig
94f9db9e51 feat: add Pulse to referrer registry — shows 'Pulse' with logo for pulse.ciphera.net and pulse-staging.ciphera.net 2026-03-28 00:05:51 +01:00
Usman Baig
0af290dc0b feat: add 22 URL map entries for remaining Lighthouse audits 2026-03-27 23:16:57 +01:00
Usman Baig
00423ee599 fix: auto-scroll to submit button when card payment is selected 2026-03-27 22:17:04 +01:00
Usman Baig
23132a5194 fix: hide redirect text when no payment method is selected 2026-03-27 22:12:29 +01:00
Usman Baig
6aea24f018 fix: checkout UX — no auto-select payment method, stable price table during loading, add spacing before submit button 2026-03-27 22:04:09 +01:00
Usman Baig
a9cf1484fd fix: always show table-style price breakdown on checkout, even without country selected 2026-03-27 21:50:16 +01:00
Usman Baig
c2b448672c fix: also preserve referrer for pulse and pulse-staging domains 2026-03-27 18:24:15 +01:00
Usman Baig
80ee2fb614 fix: preserve referrer for ciphera.net learn links, keep noreferrer for external 2026-03-27 18:23:40 +01:00
Usman Baig
22295302ee feat: expand learn link URL map to 116 entries — full Lighthouse audit coverage 2026-03-27 18:10:51 +01:00
Usman Baig
9c9066b75f refactor: update learn link URLs to product-based routing (/learn/pulse/...) 2026-03-27 17:51:30 +01:00
Usman Baig
773e91d490 feat: remap PageSpeed audit links to ciphera.net/learn articles 2026-03-27 17:44:40 +01:00
Usman Baig
324ba131d4 chore: bump @ciphera-net/ui to 0.3.4 (session refresh retry fix) 2026-03-27 16:23:58 +01:00
Usman Baig
e206399f9d fix: pause carousel on hidden tab, remove payment tile labels
Carousel: listen to visibilitychange to prevent animation backlog when
tab is backgrounded. Payment tiles: logo-only, no text labels.
2026-03-27 15:53:20 +01:00
Usman Baig
5faa0dec80 fix: pause carousel interval when tab is hidden
Prevents animation backlog from setInterval firing while the browser
throttles rAF in background tabs, which caused a blank carousel on return.
2026-03-27 15:52:17 +01:00
Usman Baig
eca42d56ca fix: use real official payment method logos instead of hand-drawn SVGs
Add official brand SVGs (Visa, Mastercard, Bancontact, iDEAL, Apple Pay,
Google Pay, SEPA) as static assets and render via img tags.
2026-03-27 15:39:30 +01:00
Usman Baig
5c90b15b2e feat: branded payment tiles, add Google Pay, remove Bank Transfer
Replace generic icons with colored brand SVGs (Mastercard, Bancontact,
iDEAL, Apple Pay, Google Pay, SEPA). Compact equal-height tiles.
2026-03-27 15:30:52 +01:00
Usman Baig
9c7afda80d feat: payment method selector with foldable card form
Checkout shows payment method tiles (Card, Bancontact, iDEAL,
Apple Pay, SEPA DD, Bank Transfer). Card selection expands the
embedded form; other methods redirect to Mollie hosted checkout
with the method pre-selected.
2026-03-27 15:12:27 +01:00
Usman Baig
a55f9a91bd fix: hide VAT warning during loading and when VAT is valid
Warning no longer flashes during VIES lookup or shows alongside
company info for Belgian B2B (valid VAT but not exempt).
2026-03-27 12:48:51 +01:00
Usman Baig
3306508bf0 fix: show Verified for valid VAT IDs regardless of exemption
Use company_name presence to determine validity instead of
vat_exempt, so Belgian B2B shows Verified + company info
even though 21% VAT still applies.
2026-03-27 12:43:59 +01:00
Usman Baig
cb7e4c7c98 fix: title-case VIES data, animate company info, no price flash
VIES returns ALL CAPS — now title-cased for display. Company info
slides in with framer-motion. Price breakdown stays visible during
VAT verification instead of flashing to a loading spinner.
2026-03-27 12:42:07 +01:00
Usman Baig
9656225b60 fix: eliminate double VIES call on Verify click
Let the verifiedVatId useEffect handle the fetch instead of
calling fetchVAT directly in handleVerifyVatId. Prevents
VIES MS_MAX_CONCURRENT_REQ rate limiting.
2026-03-27 12:37:08 +01:00
Usman Baig
8db8f65fca fix: show Verified only when VIES confirms valid VAT ID
Split isVatVerified into isVatChecked (user clicked Verify) and
isVatValid (VIES confirmed exempt). Button now shows Verify and
stays enabled after a failed check so the user can retry.
2026-03-27 12:28:10 +01:00
Usman Baig
a495ef8389 fix: only show slider focus ring on keyboard navigation
Replace focus: with focus-visible: on range input so the
orange ring only appears during keyboard nav, not on click.
2026-03-27 12:26:54 +01:00