<% var planLimit = plan ? plan.daily_ai_limit : (account.plan === 'pro' ? null : 15); var pct = (planLimit && planLimit > 0) ? Math.min(100, Math.round((usedToday / planLimit) * 100)) : 0; var maxDay = Math.max.apply(null, days.map(function (d) { return d.count; }).concat([1])); var favs = (sync && sync.data && sync.data.favorites) ? sync.data.favorites : []; var prompts = (sync && sync.data && sync.data.prompts) ? sync.data.prompts : []; var hist = (sync && sync.data && sync.data.history) ? sync.data.history : []; var typeBadge = { url: 'bg-sky-50 text-sky-700', email: 'bg-amber-50 text-amber-700', code: 'bg-violet-50 text-violet-700', phone: 'bg-emerald-50 text-emerald-700', color: 'bg-pink-50 text-pink-700', number: 'bg-indigo-50 text-indigo-700', json: 'bg-orange-50 text-orange-700', date: 'bg-teal-50 text-teal-700', address: 'bg-lime-50 text-lime-700' }; function badgeCls(t) { return typeBadge[t] || 'bg-zinc-100 text-zinc-600'; } function fmtWhen(ts) { if (!ts) return ''; try { return new Date(ts).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' }); } catch (e) { return ''; } } function hostOf(u) { try { return new URL(u).hostname.replace(/^www\./, ''); } catch (e) { return ''; } } var currency = { USD: '$', EUR: '€', TRY: '₺', GBP: '£' }; var isFree = !plan || Number(plan.price) === 0; var menu = [ { key: 'profile', label: 'Profile', icon: 'M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM5 21c1.5-3.8 4-5.5 7-5.5s5.5 1.7 7 5.5' }, { key: 'plan', label: 'Subscription & Billing', icon: 'M3 10h18M5 6h14a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z' }, { key: 'usage', label: 'Usage & History', icon: 'M3 3v18h18M8 16v-5m4 5V8m4 8v-3' }, { key: 'synced', label: 'Synced Data', icon: 'M4 12a8 8 0 0 1 14-5m2-3v5h-5M20 12a8 8 0 0 1-14 5m-2 3v-5h5' }, { key: 'support', label: 'Support', icon: 'M12 22a10 10 0 1 0-10-10c0 1.8.5 3.5 1.3 5L2 22l5-1.3A10 10 0 0 0 12 22zM12 8v4m0 4h.01' } ]; var titles = { profile: ['Profile', 'Your personal details from Google sign-in'], plan: ['Subscription & Billing', 'Your current plan and what it includes'], usage: ['Usage & History', 'Your AI activity across the last 30 days'], synced: ['Synced Data', 'Clipboard history, favorites and prompts you synced from the extension'], support: ['Support', 'We usually reply within one business day'] }; %>

<%= titles[tab][0] %>

<%= titles[tab][1] %>

<% if (tab === 'profile') { %>
<%= account.name || '—' %>
<%= account.email %>
<%= new Date(account.created_at).toLocaleDateString('en-US', { day: 'numeric', month: 'long', year: 'numeric' }) %>
<% if (account.status === 'active') { %> Active <% } else { %> Suspended <% } %>

Name and e-mail come from your Google account and can't be edited here.


Request data deletion <% } else if (tab === 'plan') { %>
<%= plan ? plan.name : account.plan %>
<%= account.plan_expires_at ? ('Valid until ' + new Date(account.plan_expires_at).toLocaleDateString('en-US', { day: 'numeric', month: 'long', year: 'numeric' })) : 'No end date' %>
<% if (plan && Number(plan.price) > 0) { %>
<%= (currency[plan.currency] || plan.currency + ' ') %><%= Number(plan.price) %>
/ <%= plan.period === 'year' ? 'year' : 'month' %>
<% } else { %> FREE <% } %>
Daily AI actions
<%= planLimit == null ? 'Unlimited' : planLimit %>
Cloud sync
<%= (plan ? plan.cloud_sync : account.plan === 'pro') ? 'Included' : 'Not included' %>
Used today
<%= usedToday %><%= planLimit != null ? ' / ' + planLimit : '' %>
<% if (isFree) { %> Upgrade to Pro <% } else { %>

To change or cancel your plan, contact us.

<% } %>
<% } else if (tab === 'usage') { %>
Today
<%= usedToday %><% if (planLimit != null) { %> / <%= planLimit %><% } %>
<% if (planLimit != null && planLimit > 0) { %>
<%= pct %>% used
<% } %>
Last 7 days
<% days.forEach(function (d) { %>
<%= d.count %>
<%= new Date(d.day).toLocaleDateString('en-US', { weekday: 'short' }) %>
<% }) %>

History — last 30 days

<% if (usageHistory.length === 0) { %>

No AI activity yet. Run an AI action in the extension and it will show up here.

<% } else { %>
<% usageHistory.forEach(function (r) { %> <% }) %>
DateAI actions
<%= new Date(r.day).toLocaleDateString('en-US', { weekday: 'short', day: 'numeric', month: 'long' }) %><%= r.count %>
<% } %>

This page shows AI usage counts only. Your clipboard history stays on your device unless you sync it — synced items appear under Synced Data. See the Privacy Policy.

<% } else if (tab === 'synced') { %> <% var totalSynced = hist.length + favs.length + prompts.length; %> <% if (totalSynced === 0) { %>
<% if (plan && plan.cloud_sync) { %>

Nothing synced yet

Open the extension's Settings → Sync now and your clipboard history, favorites and prompts will appear here.

<% } else { %>

Cloud sync is a Pro feature

Keep your clipboard history, favorites and prompts available on every device you use.

Upgrade <% } %>
<% } else { %>
<% if (sync && sync.updated_at) { %>Last synced: <%= new Date(sync.updated_at).toLocaleString('en-US') %><% } %>
<% if (hist.length > 0) { %>

Clipboard history

<%= hist.length %>
    <% hist.slice(0, 500).forEach(function (h) { %>
  • <%= h.type || 'text' %>

    <%= h.text %>

    <% if (h.pinned) { %>Pinned·<% } %> <%= fmtWhen(h.createdAt) %> <% if (h.sourceUrl && hostOf(h.sourceUrl)) { %>·<%= hostOf(h.sourceUrl) %><% } %>
  • <% }) %>
<% } %> <% if (favs.length > 0) { %>

Favorites

<%= favs.length %>
    <% favs.slice(0, 300).forEach(function (f) { %>
  • <%= f.type || 'text' %>

    <%= f.title || f.text %>

    <% if (f.createdAt) { %>
    <%= fmtWhen(f.createdAt) %>
    <% } %>
  • <% }) %>
<% } %> <% if (prompts.length > 0) { %>

Prompts

<%= prompts.length %>
    <% prompts.slice(0, 300).forEach(function (p) { %>
  • <%= p.title || 'Untitled' %> <%= p.folder || 'General' %>
    <% if (p.text) { %>

    <%= p.text %>

    <% } %>
  • <% }) %>
<% } %>

Deleting here removes the copy stored on our server. If the item still exists in your extension, the next Sync now may bring it back — delete it in the extension too to remove it everywhere.

<% } %> <% } else { %> <% } %>