- 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)
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.
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).
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.
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'.
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".
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.
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.
Ciphera values clarity — if a user wants to cancel, the option should
be honest and easy to find, not hidden. Neutral bordered pill that
highlights red on hover communicates this respectfully.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Add prominent trial banner at top with end date and auto-charge notice
- Separate cancel-at-period-end warning into its own banner
- Simplify plan header: name + badge + billing interval left, Change plan right
- Reduce stats grid from 5 cramped columns to 4 clean columns
- Remove redundant "Pageview Limit" stat (duplicated "Pageviews")
- Replace bulky cancel section with inline text links below the card
- Make "Payment method & invoices" a clear link with icon
- Compact invoice rows: remove avatar icons, inline date with amount
- Tighter spacing throughout for cohesive feel
Co-authored-by: Cursor <cursoragent@cursor.com>