8 lines
137 KiB
JavaScript
8 lines
137 KiB
JavaScript
var za=Object.defineProperty;var Ds=e=>{throw TypeError(e)};var Fa=(e,t,s)=>t in e?za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var ve=(e,t,s)=>Fa(e,typeof t!="symbol"?t+"":t,s),Rs=(e,t,s)=>t.has(e)||Ds("Cannot "+s);var X=(e,t,s)=>(Rs(e,t,"read from private field"),s?s.call(e):t.get(e)),$e=(e,t,s)=>t.has(e)?Ds("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),Oe=(e,t,s,n)=>(Rs(e,t,"write to private field"),n?n.call(e,s):t.set(e,s),s);import"./modulepreload-polyfill-B5Qt9EMX.js";import{a9 as js,aa as gs,d as V,o as m,b as w,i as J,n as A,t as i,x as f,j as a,h as o,f as r,g as U,q as E,R as Na,ab as pe,ac as z,r as I,c as D,l as re,a as ne,y as j,F as ye,ad as Ve,ae as De,P as Z,Q as te,z as wt,af as ea,N as ge,e as Be,$ as Cs,ag as Wa,ah as Ha,_ as Ge,ai as ts,m as Ss,A as Ya,p as Ka,aj as ta,ak as sa,al as Ja,am as qs,k as Xa,X as Qa,an as Ga,ao as Za}from"./vendor/vue-D7guW3iV.js";import{g as aa,A as Ie,C as hs,O as ae,S as Le,n as en,s as xt,a as tn,b as na,c as ms,d as zs,e as Ae,D as _s,t as sn,f as an,h as Is,r as la,i as oa,j as Ft,k as Et,l as nn,m as ia,L as ln,o as Fs,p as on,q as Ms,M as ra,u as ua,v as rn,w as un,x as je,P as Ns,y as cn,z as Ws,B as dn}from"./Scheduler-ITpj7yeF.js";import{_ as ie,R as ca,a as fn,b as pn,c as mn,d as vn,e as gn,f as ss,g as pt,h as at,i as da,j as fa,k as pa,l as hn,m as _n,n as yn,o as bn,p as wn,q as Te,r as xn,s as $n,t as kn,u as Cn,v as Q,w as Ps,x as as,y as ns,z as ls,A as os,B as ma,C as is,X as va,D as ga,E as rs,F as ha,G as _a,H as fe,I as Ot,J as Ut,K as At,L as Es,M as Rt,N as jt,O as qt,P as Sn,Q as In,S as Mn,T as Pn,U as ya,V as En,W as On,Y as Un,Z as An,$ as Tn,a0 as Bn,a1 as Ln,a2 as us,a3 as ot,a4 as Nt,a5 as $t,a6 as kt,a7 as Ct,a8 as Vn,a9 as Dn,aa as Rn,ab as jn,ac as gt,ad as be,ae as zt,af as Wt,ag as ys,ah as qn,ai as zn,aj as ba,ak as wa,al as xa,am as Fn,an as Hs,ao as $a,ap as Nn,aq as Wn,ar as Hn,as as Yn,at as Kn,au as Jn,av as Xn,aw as Qn,ax as Gn,ay as Zn,az as el,aA as tl,aB as sl,aC as al,aD as nl,aE as ll,aF as ol,aG as il,aH as rl,aI as ul}from"./vendor/ui-wAfM84aV.js";import{l as Y,c as bt}from"./Logger-kUgoCvAm.js";import{E as le,C as cs,a as Ys}from"./index.esm-DBQD-6dI.js";import{R as cl}from"./RuntimeBridge-DW3w8fNi.js";import{B as dl}from"./MessageBridge-C2lz_3Ul.js";import"./SandboxBridge-D2h3sBK3.js";import"./vendor/aws-C9aIMT75.js";const ka=new Set,_e=new WeakMap,it=new WeakMap,Xe=new WeakMap,bs=new WeakMap,fl=new WeakMap,rt=new WeakMap,Ht=new WeakMap,ht=new WeakSet;let ze,Os=0,Us=0;const Re="__aa_tgt",St="__aa_del",Yt="__aa_new",pl=e=>{const t=yl(e);t&&t.forEach(s=>bl(s))},ml=e=>{e.forEach(t=>{t.target===ze&&gl(),_e.has(t.target)&&Ze(t.target)})};function vl(e){const t=bs.get(e);t==null||t.disconnect();let s=_e.get(e),n=0;const l=5;s||(s=ut(e),_e.set(e,s));const{offsetWidth:c,offsetHeight:u}=ze,p=[s.top-l,c-(s.left+l+s.width),u-(s.top+l+s.height),s.left-l].map(g=>`${-1*Math.floor(g)}px`).join(" "),v=new IntersectionObserver(()=>{++n>1&&Ze(e)},{root:ze,threshold:1,rootMargin:p});v.observe(e),bs.set(e,v)}function Ze(e){clearTimeout(Ht.get(e));const t=ds(e),s=It(t)?500:t.duration;Ht.set(e,setTimeout(async()=>{const n=Xe.get(e);try{await(n==null?void 0:n.finished),_e.set(e,ut(e)),vl(e)}catch{}},s))}function gl(){clearTimeout(Ht.get(ze)),Ht.set(ze,setTimeout(()=>{ka.forEach(e=>Ma(e,t=>Ca(()=>Ze(t))))},100))}function hl(e){setTimeout(()=>{fl.set(e,setInterval(()=>Ca(Ze.bind(null,e)),2e3))},Math.round(2e3*Math.random()))}function Ca(e){typeof requestIdleCallback=="function"?requestIdleCallback(()=>e()):requestAnimationFrame(()=>e())}let ws,st;const _l=typeof window<"u"&&"ResizeObserver"in window;_l&&(ze=document.documentElement,ws=new MutationObserver(pl),st=new ResizeObserver(ml),window.addEventListener("scroll",()=>{Us=window.scrollY,Os=window.scrollX}),st.observe(ze));function yl(e){return e.reduce((n,l)=>[...n,...Array.from(l.addedNodes),...Array.from(l.removedNodes)],[]).every(n=>n.nodeName==="#comment")?!1:e.reduce((n,l)=>{if(n===!1)return!1;if(l.target instanceof Element){if(vs(l.target),!n.has(l.target)){n.add(l.target);for(let c=0;c<l.target.children.length;c++){const u=l.target.children.item(c);if(u){if(St in u)return!1;vs(l.target,u),n.add(u)}}}if(l.removedNodes.length)for(let c=0;c<l.removedNodes.length;c++){const u=l.removedNodes[c];if(St in u)return!1;u instanceof Element&&(n.add(u),vs(l.target,u),it.set(u,[l.previousSibling,l.nextSibling]))}}return n},new Set)}function vs(e,t){!t&&!(Re in e)?Object.defineProperty(e,Re,{value:e}):t&&!(Re in t)&&Object.defineProperty(t,Re,{value:e})}function bl(e){var t;const s=e.isConnected,n=_e.has(e);s&&it.has(e)&&it.delete(e),Xe.has(e)&&((t=Xe.get(e))===null||t===void 0||t.cancel()),Yt in e?Ks(e):n&&s?xl(e):n&&!s?$l(e):Ks(e)}function Ue(e){return Number(e.replace(/[^0-9.\-]/g,""))}function wl(e){let t=e.parentElement;for(;t;){if(t.scrollLeft||t.scrollTop)return{x:t.scrollLeft,y:t.scrollTop};t=t.parentElement}return{x:0,y:0}}function ut(e){const t=e.getBoundingClientRect(),{x:s,y:n}=wl(e);return{top:t.top+n,left:t.left+s,width:t.width,height:t.height}}function Sa(e,t,s){let n=t.width,l=t.height,c=s.width,u=s.height;const d=getComputedStyle(e);if(d.getPropertyValue("box-sizing")==="content-box"){const v=Ue(d.paddingTop)+Ue(d.paddingBottom)+Ue(d.borderTopWidth)+Ue(d.borderBottomWidth),g=Ue(d.paddingLeft)+Ue(d.paddingRight)+Ue(d.borderRightWidth)+Ue(d.borderLeftWidth);n-=g,c-=g,l-=v,u-=v}return[n,c,l,u].map(Math.round)}function ds(e){return Re in e&&rt.has(e[Re])?rt.get(e[Re]):{duration:250,easing:"ease-in-out"}}function Ia(e){if(Re in e)return e[Re]}function As(e){const t=Ia(e);return t?ht.has(t):!1}function Ma(e,...t){t.forEach(s=>s(e,rt.has(e)));for(let s=0;s<e.children.length;s++){const n=e.children.item(s);n&&t.forEach(l=>l(n,rt.has(n)))}}function Ts(e){return Array.isArray(e)?e:[e]}function It(e){return typeof e=="function"}function xl(e){const t=_e.get(e),s=ut(e);if(!As(e))return _e.set(e,s);let n;if(!t)return;const l=ds(e);if(typeof l!="function"){const c=t.left-s.left,u=t.top-s.top,[d,p,v,g]=Sa(e,t,s),h={transform:`translate(${c}px, ${u}px)`},$={transform:"translate(0, 0)"};d!==p&&(h.width=`${d}px`,$.width=`${p}px`),v!==g&&(h.height=`${v}px`,$.height=`${g}px`),n=e.animate([h,$],{duration:l.duration,easing:l.easing})}else{const[c]=Ts(l(e,"remain",t,s));n=new Animation(c),n.play()}Xe.set(e,n),_e.set(e,s),n.addEventListener("finish",Ze.bind(null,e))}function Ks(e){Yt in e&&delete e[Yt];const t=ut(e);_e.set(e,t);const s=ds(e);if(!As(e))return;let n;if(typeof s!="function")n=e.animate([{transform:"scale(.98)",opacity:0},{transform:"scale(0.98)",opacity:0,offset:.5},{transform:"scale(1)",opacity:1}],{duration:s.duration*1.5,easing:"ease-in"});else{const[l]=Ts(s(e,"add",t));n=new Animation(l),n.play()}Xe.set(e,n),n.addEventListener("finish",Ze.bind(null,e))}function Js(e,t){var s;e.remove(),_e.delete(e),it.delete(e),Xe.delete(e),(s=bs.get(e))===null||s===void 0||s.disconnect(),setTimeout(()=>{if(St in e&&delete e[St],Object.defineProperty(e,Yt,{value:!0,configurable:!0}),t&&e instanceof HTMLElement)for(const n in t)e.style[n]=""},0)}function $l(e){var t;if(!it.has(e)||!_e.has(e))return;const[s,n]=it.get(e);Object.defineProperty(e,St,{value:!0,configurable:!0});const l=window.scrollX,c=window.scrollY;if(n&&n.parentNode&&n.parentNode instanceof Element?n.parentNode.insertBefore(e,n):s&&s.parentNode?s.parentNode.appendChild(e):(t=Ia(e))===null||t===void 0||t.appendChild(e),!As(e))return Js(e);const[u,d,p,v]=Cl(e),g=ds(e),h=_e.get(e);(l!==Os||c!==Us)&&kl(e,l,c,g);let $,x={position:"absolute",top:`${u}px`,left:`${d}px`,width:`${p}px`,height:`${v}px`,margin:"0",pointerEvents:"none",transformOrigin:"center",zIndex:"100"};if(!It(g))Object.assign(e.style,x),$=e.animate([{transform:"scale(1)",opacity:1},{transform:"scale(.98)",opacity:0}],{duration:g.duration,easing:"ease-out"});else{const[y,_]=Ts(g(e,"remove",h));(_==null?void 0:_.styleReset)!==!1&&(x=(_==null?void 0:_.styleReset)||x,Object.assign(e.style,x)),$=new Animation(y),$.play()}Xe.set(e,$),$.addEventListener("finish",Js.bind(null,e,x))}function kl(e,t,s,n){const l=Os-t,c=Us-s,u=document.documentElement.style.scrollBehavior;if(getComputedStyle(ze).scrollBehavior==="smooth"&&(document.documentElement.style.scrollBehavior="auto"),window.scrollTo(window.scrollX+l,window.scrollY+c),!e.parentElement)return;const p=e.parentElement;let v=p.clientHeight,g=p.clientWidth;const h=performance.now();function $(){requestAnimationFrame(()=>{if(!It(n)){const x=v-p.clientHeight,y=g-p.clientWidth;h+n.duration>performance.now()?(window.scrollTo({left:window.scrollX-y,top:window.scrollY-x}),v=p.clientHeight,g=p.clientWidth,$()):document.documentElement.style.scrollBehavior=u}})}$()}function Cl(e){const t=_e.get(e),[s,,n]=Sa(e,t,ut(e));let l=e.parentElement;for(;l&&(getComputedStyle(l).position==="static"||l instanceof HTMLBodyElement);)l=l.parentElement;l||(l=document.body);const c=getComputedStyle(l),u=_e.get(l)||ut(l),d=Math.round(t.top-u.top)-Ue(c.borderTopWidth),p=Math.round(t.left-u.left)-Ue(c.borderLeftWidth);return[d,p,s,n]}function Sl(e,t={}){return ws&&st&&(window.matchMedia("(prefers-reduced-motion: reduce)").matches&&!It(t)&&!t.disrespectUserMotionPreference||(ht.add(e),getComputedStyle(e).position==="static"&&Object.assign(e.style,{position:"relative"}),Ma(e,Ze,hl,l=>st==null?void 0:st.observe(l)),It(t)?rt.set(e,t):rt.set(e,{duration:250,easing:"ease-in-out",...t}),ws.observe(e,{childList:!0}),ka.add(e))),Object.freeze({parent:e,enable:()=>{ht.add(e)},disable:()=>{ht.delete(e)},isEnabled:()=>ht.has(e)})}const Il={mounted:(e,t)=>{Sl(e,t.value||{})},getSSRProps:()=>({})},Ml=Il,Pl={install(e){e.directive("auto-animate",Ml)}};var El=function e(t,s){if(t===s)return!0;if(t&&s&&typeof t=="object"&&typeof s=="object"){if(t.constructor!==s.constructor)return!1;var n,l,c;if(Array.isArray(t)){if(n=t.length,n!=s.length)return!1;for(l=n;l--!==0;)if(!e(t[l],s[l]))return!1;return!0}if(t instanceof Map&&s instanceof Map){if(t.size!==s.size)return!1;for(l of t.entries())if(!s.has(l[0]))return!1;for(l of t.entries())if(!e(l[1],s.get(l[0])))return!1;return!0}if(t instanceof Set&&s instanceof Set){if(t.size!==s.size)return!1;for(l of t.entries())if(!s.has(l[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(s)){if(n=t.length,n!=s.length)return!1;for(l=n;l--!==0;)if(t[l]!==s[l])return!1;return!0}if(t.constructor===RegExp)return t.source===s.source&&t.flags===s.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===s.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===s.toString();if(c=Object.keys(t),n=c.length,n!==Object.keys(s).length)return!1;for(l=n;l--!==0;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;for(l=n;l--!==0;){var u=c[l];if(!e(t[u],s[u]))return!1}return!0}return t!==t&&s!==s};const Pa=aa(El);var Ol=e=>new Promise(t=>setTimeout(t,e));const Ul=aa(Ol);async function Al(e,t,{delayRejection:s=!0}={}){const n=Ul(t);return await(s?n:Promise.all([e,n])),e}class Kt extends Event{}ve(Kt,"PresetsUpdated","presets-updated");var se,Xt,Mt;const ce=class ce extends EventTarget{constructor(){super();$e(this,se,[]);$e(this,Xt,100);$e(this,Mt,async s=>{s.presets&&(Oe(this,se,[...s.presets.newValue??[]]),this.dispatchEvent(new Kt(Kt.PresetsUpdated)))});this.load(),chrome.storage.local.onChanged.addListener(X(this,Mt)),chrome.storage.sync.onChanged.addListener(X(this,Mt))}static getInstance(){return ce.instance||(ce.instance=new ce),ce.instance}get presets(){return X(this,se)}async load(s=!0){let n=await chrome.storage.local.get(ce.StorageKey),l=(n==null?void 0:n[ce.StorageKey])??[],c=[];if(s){const d=await chrome.storage.sync.get(ce.StorageKey);c=(d==null?void 0:d[ce.StorageKey])??[]}const u=new Map;[...l,...c].sort((d,p)=>{var v,g;return((v=d[1])==null?void 0:v.updatedAt)-((g=p[1])==null?void 0:g.updatedAt)}).forEach(d=>u.set(d.meta.id,d)),Oe(this,se,[...u.values()]),X(this,se).length>0&&Y.info(`Loaded ${X(this,se).length} presets`)}async save(s,n=!0){Oe(this,se,s),await chrome.storage.local.set({[ce.StorageKey]:X(this,se)}),n&&await chrome.storage.sync.set({[ce.StorageKey]:X(this,se)}),Y.info(`Saved ${X(this,se).length} presets`)}async add(s){js(s)&&(s=gs(s)),X(this,se).push(s),await this.save(X(this,se))}async remove(s){const n=new Set(Array.isArray(s)?s.map(l=>l.meta.id):[s.meta.id]);Oe(this,se,X(this,se).filter(l=>!n.has(l.meta.id))),await this.save(X(this,se))}async update(s){js(s)&&(s=gs(s)),Oe(this,se,X(this,se).map(n=>n.meta.id===s.meta.id?s:n)),await this.save(X(this,se))}async clear(s=!0){await chrome.storage.local.remove(ce.StorageKey),s&&await chrome.storage.sync.remove(ce.StorageKey),Oe(this,se,[]),Y.info("Cleared presets")}async has(s){return X(this,se).some(n=>{var l;return((l=n==null?void 0:n.meta)==null?void 0:l.id)===s})}async get(s){return X(this,se).find(n=>{var l;return((l=n==null?void 0:n.meta)==null?void 0:l.id)===s})}hasName(s,n){return X(this,se).some(l=>l.meta.name===s&&l.meta.id!==n)}getUniqueName(s="New preset"){const n=parseInt(s.replace(/\D/g,""))||1,l=s.replace(/\s*\(\d+\)$/,"");let c=s,u=n;for(;this.hasName(c);)if(c=`${l} (${u++})`,u>X(this,Xt))throw new Error("Could not generate unique name");return c}};se=new WeakMap,Xt=new WeakMap,Mt=new WeakMap,ve(ce,"instance"),ve(ce,"DefaultPresetName","Default"),ve(ce,"DefaultPresetId","default"),ve(ce,"StorageKey","presets");let ct=ce;class dt{}ve(dt,"read",async t=>{if(!t)throw new Error("No file provided to import");return new Promise((s,n)=>{const l=new FileReader;l.onload=()=>s(l),l.onerror=c=>n(c),l.readAsDataURL(t)}).then(async s=>{const n=s.result;return await fetch(n)}).catch(s=>{throw new Error(`Could not read file. ${s}`)})}),ve(dt,"download",async(t,s)=>{s=s||`clearcache.download.${Date.now()}.json`,t=typeof t=="string"?t:JSON.stringify(t,void 0,2);const n=new Blob([t],{type:"application/json"}),l=URL.createObjectURL(n),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download",s),c.style.display="none",c.click(),URL.revokeObjectURL(l)});var Qt,Gt,Zt,es,Pt;const Ce=class Ce extends EventTarget{constructor(){super();ve(this,"reset",async(s=!0,n=X(Ce,Qt))=>{const l=await chrome.storage.local.get().then(p=>Object.keys(p)),c=await chrome.storage.sync.get().then(p=>Object.keys(p)),d=[...new Set([...l,...c]).values()].filter(p=>!n.includes(p));Y.info("Removing keys:",d),await chrome.storage.local.remove(d),s&&await chrome.storage.sync.remove(d),Y.info("Storage was reset")});ve(this,"import",async s=>{try{const n=await dt.read(s),l=X(this,Pt).call(this,await n.json());await X(this,es).call(this,l),Y.info(`Settings imported from ${s==null?void 0:s.name}`)}catch(n){throw new Error(`Could not import settings. ${n}`)}});ve(this,"export",async()=>{try{const s=await this.getData(),n=JSON.stringify(s,void 0,2),l=`clearcache.config.${Date.now()}.json`;return dt.download(n,l)}catch(s){throw new Error(`Could not export settings. ${s}`)}});ve(this,"getData",async()=>{const s=await X(this,Zt).call(this);return X(this,Pt).call(this,s)});$e(this,Zt,async()=>{var l;const s=await chrome.storage.local.get();if(s&&!((l=s==null?void 0:s.extension)!=null&&l.sync))return s;const n=await chrome.storage.sync.get();return{...s??{},...n??{}}});$e(this,es,async s=>{var l,c;const n=((c=(l=s[hs.StorageKey])==null?void 0:l.extension)==null?void 0:c.sync)??!1;await chrome.storage.local.set(s),n&&await chrome.storage.sync.set(s)});$e(this,Pt,s=>{const n={};return X(Ce,Gt).forEach(l=>{l in s&&(n[l]={...s[l]})}),n})}static getInstance(){return Ce.instance||(Ce.instance=new Ce),Ce.instance}};Qt=new WeakMap,Gt=new WeakMap,Zt=new WeakMap,es=new WeakMap,Pt=new WeakMap,ve(Ce,"instance"),$e(Ce,Qt,[ct.StorageKey,Ie.StorageKey]),$e(Ce,Gt,[ct.StorageKey,hs.StorageKey]);let Jt=Ce;const Tl=["href","target"],T=V({__name:"Link",props:{href:String,target:{type:String,default:"_blank"},useBrowserApi:{type:Boolean,default:!1},highContrast:{type:Boolean,default:!1}},setup(e){const{href:t,target:s,useBrowserApi:n}=e,l=c=>{s==="_blank"&&n&&(c.preventDefault(),chrome.tabs.create({url:t}))};return(c,u)=>(m(),w("a",{href:e.href,onClick:l,target:e.target,class:A(["font-medium text-primary hover:underline underline-offset-2 cursor-pointer",{"brightness-125":e.highContrast}])},[J(c.$slots,"default")],10,Tl))}}),Bl={class:"max-md:flex-wrap max-md:space-y-2 flex space-x-4 items-center justify-center text-sm text-primary-foreground"},Ll={class:"max-md:basis-full text-center"},Vl={class:"flex space-x-4 text-center"},Dl=V({__name:"Footer",props:{isExtension:{type:Boolean,default:!0}},setup(e){const{isExtension:t}=e,s=t?"https://clearcache.io":"",n=s+"/support",l=s+"/privacy",c=s+"/terms",u=s+"/refunds",d=t?"_blank":"_self";return(p,v)=>(m(),w("footer",Bl,[J(p.$slots,"before"),i("span",Ll,[f("© 2024 "),a(T,{"high-contrast":!0,href:r(le).links.author,target:"_blank"},{default:o(()=>[f("Little Void LLC")]),_:1},8,["href"]),f(" all rights reserved. ")]),a(r(ie),{orientation:"vertical",class:"h-3 border-muted max-md:hidden"}),i("span",Vl,[a(T,{"high-contrast":!0,href:n,target:r(d)},{default:o(()=>[f("Support")]),_:1},8,["target"]),a(r(ie),{orientation:"vertical",class:"h-3 border-muted max-md:hidden"}),a(T,{"high-contrast":!0,href:u,target:r(d)},{default:o(()=>[f("Refunds")]),_:1},8,["target"]),a(r(ie),{orientation:"vertical",class:"h-3 border-muted max-md:hidden"}),a(T,{"high-contrast":!0,href:l,target:r(d)},{default:o(()=>[f("Privacy")]),_:1},8,["target"]),a(r(ie),{orientation:"vertical",class:"h-3 border-muted max-md:hidden"}),a(T,{"high-contrast":!0,href:c,target:r(d)},{default:o(()=>[f("Terms")]),_:1},8,["target"]),e.isExtension?(m(),U(r(ie),{key:0,orientation:"vertical",class:"h-3 border-muted max-md:hidden"})):E("",!0),e.isExtension?(m(),U(T,{key:1,"high-contrast":!0,href:r(s),target:"_blank"},{default:o(()=>[f("clearcache.io")]),_:1},8,["href"])):E("",!0)]),J(p.$slots,"after")]))}}),Rl={key:0,class:"scroll-m-20 text-5xl font-medium tracking-tight lg:text-5xl"},jl={key:1,class:"scroll-m-20 pb-2 text-3xl font-medium tracking-tight transition-colors first:mt-0"},ql={key:2,class:"scroll-m-20 text-2xl font-medium tracking-tight"},zl={key:3,class:"scroll-m-20 text-xl font-medium tracking-tight"},Fl={key:4,class:"scroll-m-20 text-lg font-medium tracking-tight"},Nl={key:5,class:"scroll-m-20 text-md font-medium tracking-tight"},we=V({__name:"Heading",props:{level:{default:1}},setup(e){return(t,s)=>t.level===1?(m(),w("h1",Rl,[J(t.$slots,"default")])):t.level===2?(m(),w("h2",jl,[J(t.$slots,"default")])):t.level===3?(m(),w("h3",ql,[J(t.$slots,"default")])):t.level===4?(m(),w("h4",zl,[J(t.$slots,"default")])):t.level===5?(m(),w("h5",Fl,[J(t.$slots,"default")])):(m(),w("h6",Nl,[J(t.$slots,"default")]))}}),Wl=V({__name:"Logo",setup(e){return(t,s)=>(m(),U(r(ca),{class:"drop-shadow-md"}))}}),Hl={class:"flex flex-col items-center gap-2 py-8 md:py-12 md:pb-8 lg:py-24 lg:pb-20 pb-8 text-logo"},Yl=V({__name:"Header",setup(e){return(t,s)=>(m(),w("header",Hl,[a(Wl,{class:"w-1/2 max-w-48 size-full"}),a(we,{level:1,class:"drop-shadow-md"},{default:o(()=>[f("Clear Cache")]),_:1})]))}}),et=V({__name:"Section",setup(e){const t=Na(),s=()=>t.title||t.description;return(n,l)=>(m(),U(r(ss),{class:"break-inside-avoid drop-shadow-md"},{default:o(()=>[s()?(m(),U(r(fn),{key:0},{default:o(()=>[n.$slots.title?(m(),U(r(pn),{key:0,class:"text-2xl font-medium"},{default:o(()=>[J(n.$slots,"title")]),_:3})):E("",!0),n.$slots.description?(m(),U(r(mn),{key:1},{default:o(()=>[J(n.$slots,"description")]),_:3})):E("",!0)]),_:3})):E("",!0),n.$slots.default?(m(),U(r(vn),{key:1,class:A({"pt-6":!s()})},{default:o(()=>[J(n.$slots,"default")]),_:3},8,["class"])):E("",!0),n.$slots.footer?(m(),U(r(gn),{key:2},{default:o(()=>[J(n.$slots,"footer")]),_:3})):E("",!0)]),_:3}))}}),Kl=V({__name:"HoverLabel",props:pe({forProp:{}},{disabled:{type:Boolean,default:!1},disabledModifiers:{}}),emits:["update:disabled"],setup(e){const t=z(e,"disabled");return(s,n)=>(m(),U(r(pt),{for:s.forProp,class:A(["gap-x-4 p-2 rounded-md transition-colors cursor-pointer hover:bg-muted",{disabled:t.value}])},{default:o(()=>[J(s.$slots,"default",{},void 0,!0)]),_:3},8,["for","class"]))}}),oe=(e,t)=>{const s=e.__vccOpts||e;for(const[n,l]of t)s[n]=l;return s},de=oe(Kl,[["__scopeId","data-v-abbd0dc1"]]),Jl={},Xl={class:"font-light text-sm text-muted-foreground font"};function Ql(e,t){return m(),w("p",Xl,[J(e.$slots,"default")])}const Se=oe(Jl,[["render",Ql]]),Gl={class:"space-y-1"},Zl=i("span",null,"Active Tab Only",-1),eo=V({__name:"ActiveTabOnly",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(e){let t=I(ae.All);const s=z(e,"modelValue"),n=D({get:()=>s.value===ae.ActiveTab,set:l=>s.value=l?ae.ActiveTab:t.value});return re(()=>{t.value=s.value??ae.All}),ne(s,l=>{l!==ae.ActiveTab&&(t.value=l)}),(l,c)=>(m(),U(de,{class:"flex grow justify-between items-center"},{default:o(()=>[i("div",Gl,[Zl,a(Se,null,{default:o(()=>[f("Only clear data for the current tab")]),_:1})]),a(r(at),{checked:n.value,"onUpdate:checked":c[0]||(c[0]=u=>n.value=u)},null,8,["checked"])]),_:1}))}}),to={class:"space-y-1"},so=i("span",null,"Auto Reload",-1),ao=V({__name:"AutoReload",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(e){const t=z(e,"modelValue");return(s,n)=>(m(),U(de,{class:"flex grow justify-between items-center"},{default:o(()=>[i("div",to,[so,a(Se,null,{default:o(()=>[f("Reload active tab after clearing data")]),_:1})]),a(r(at),{checked:t.value,"onUpdate:checked":n[0]||(n[0]=l=>t.value=l)},null,8,["checked"])]),_:1}))}}),no={};function lo(e,t){return m(),w("ul",null,[J(e.$slots,"default",{},void 0,!0)])}const tt=oe(no,[["render",lo],["__scopeId","data-v-f993e580"]]),oo={class:"text-muted-foreground"},ke=V({__name:"ChangelogVersion",props:{version:String,date:String},setup(e){return(t,s)=>(m(),w(ye,null,[a(we,{level:6,class:"flex flex-row justify-between"},{default:o(()=>[i("code",null,j(e.version),1),i("span",oo,j(e.date),1)]),_:1}),a(tt,{class:"pb-8"},{default:o(()=>[J(t.$slots,"default")]),_:3})],64))}}),H=e=>(Ve("data-v-88a1e09a"),e=e(),De(),e),io=H(()=>i("li",null,"Fixed random clear delay",-1)),ro=H(()=>i("li",null,"Added diagnostics button for troubleshooting",-1)),uo=H(()=>i("li",null,"Fixed reloading wrong tab when quickly switching tabs after clearing cache",-1)),co=H(()=>i("li",null,"Toolbar icon now remains highlighted while cache is being cleared",-1)),fo=H(()=>i("li",null,"Added 1 minute time interval option for Automation",-1)),po=H(()=>i("li",null,"Minor copy and UI changes to Time Span",-1)),mo=H(()=>i("li",null,"Fixed options page opening from background",-1)),vo=H(()=>i("li",null,"Minor copy changes and fixes",-1)),go=H(()=>i("li",null,"Fixed subscription checkout error",-1)),ho=H(()=>i("li",null,"Clear cache at custom intervals",-1)),_o=H(()=>i("li",null,"Clear cache at browser startup",-1)),yo=H(()=>i("li",null,"Clear cache when computer is idle",-1)),bo=H(()=>i("li",null,"Clear cache when a tab is closed",-1)),wo=H(()=>i("li",null,"Streamline options page layout with new Time period UI",-1)),xo=H(()=>i("li",null,"Add quick option to select default data to remove types",-1)),$o=H(()=>i("li",null,"Minor bug fixes",-1)),ko=H(()=>i("li",null,"Import/export your settings",-1)),Co=H(()=>i("li",null,"Create and manage presets",-1)),So=H(()=>i("li",null,[f("Custom domain filters "),i("em",null,"per data type")],-1)),Io=H(()=>i("li",null,"Close all windows after clearing data",-1)),Mo=H(()=>i("li",null,"New icon animation",-1)),Po=H(()=>i("li",null,"Added dark/light mode toggles in options",-1)),Eo=H(()=>i("li",null,"Added domain filters for all browser data (previously just cookies)",-1)),Oo=H(()=>i("li",null,"Added support to sync settings across devices (on by default)",-1)),Uo=H(()=>i("li",null,"Added ability to import settings from Chrome's native browsing data dialog",-1)),Ao=H(()=>i("li",null,[f("Better privacy by removing "),i("code",null,j("<all_urls>")),f(" and "),i("code",null,j("cookies")),f(" permissions")],-1)),To=H(()=>i("li",null,"UI and code rewritten from scratch using modern standards",-1)),Bo=H(()=>i("li",null,"Directly preview and link to key board shortcut in options",-1)),Lo=H(()=>i("li",null,[f("Added "),i("em",null,"Last 15 Minutes"),f(" time period")],-1)),Vo=H(()=>i("li",null,"Added options save status indicator",-1)),Do=H(()=>i("li",null,"Fix auto reload in saved tab groups",-1)),Ro=H(()=>i("li",null,[f("Added "),i("code",null,"cacheStorage"),f(" and "),i("code",null,"serviceWorkers"),f(" options")],-1)),jo=H(()=>i("li",null,"Updated icon for better dark mode and high dpi support",-1)),qo=H(()=>i("li",null,"Updated keyboard shortcut link in Options page",-1)),zo=H(()=>i("li",null,"Added descriptions for data types to remove",-1)),Fo=V({__name:"Changelog",setup(e){const t=I(!1);return(s,n)=>(m(),U(r(pa),{open:t.value,"onUpdate:open":n[2]||(n[2]=l=>t.value=l),class:"flex flex-col text-left space-y-4 text-xs"},{default:o(()=>[a(ke,{version:"2.1.10",date:"November 22, 2024"},{default:o(()=>[io,ro]),_:1}),a(r(da),null,{default:o(()=>[a(T,null,{default:o(()=>[i("span",null,j(t.value?"Hide":"Show")+" older versions",1)]),_:1})]),_:1}),a(r(fa),null,{default:o(()=>[a(r(ie),{class:"my-4"}),a(ke,{version:"2.1.9",date:"November 22, 2024"},{default:o(()=>[uo,co,fo,po]),_:1}),a(r(ie),{class:"my-4"}),a(ke,{version:"2.1.8",date:"July 22, 2024"},{default:o(()=>[mo]),_:1}),a(r(ie),{class:"my-4"}),a(ke,{version:"2.1.7",date:"July 22, 2024"},{default:o(()=>[vo]),_:1}),a(r(ie),{class:"my-4"}),a(ke,{version:"2.1.6",date:"July 22, 2024"},{default:o(()=>[go]),_:1}),a(r(ie),{class:"my-4"}),a(ke,{version:"2.1.5",date:"July 18, 2024"},{default:o(()=>[i("li",null,[f("New "),a(T,{onClick:n[0]||(n[0]=l=>r(Le).getInstance().requestCheckout()),class:"text-plus-gradient font-bold"},{default:o(()=>[f("Plus")]),_:1}),f(" Automation features "),a(tt,null,{default:o(()=>[ho,_o,yo,bo]),_:1})]),wo,xo,$o]),_:1}),a(r(ie),{class:"my-4"}),a(ke,{version:"2.1.0",date:"June 21, 2024"},{default:o(()=>[i("li",null,[i("span",null,[f("Introducing Clear Cache "),a(T,{onClick:n[1]||(n[1]=l=>r(Le).getInstance().requestCheckout()),class:"text-plus-gradient font-bold"},{default:o(()=>[f("Plus")]),_:1}),f(": ")]),a(tt,null,{default:o(()=>[ko,Co,So,Io,Mo]),_:1})]),Po,Eo,Oo,Uo]),_:1}),a(r(ie),{class:"my-4"}),a(ke,{version:"2.0.0",date:"June 3, 2024"},{default:o(()=>[i("li",null,[f("Upgraded to "),a(T,{href:"https://developer.chrome.com/docs/extensions/develop/migrate"},{default:o(()=>[f("Chrome Extensions Manifest V3")]),_:1})]),Ao,To,Bo,Lo,Vo,Do]),_:1}),a(r(ie),{class:"my-4"}),a(ke,{version:"1.1.4",date:"July 11, 2021"},{default:o(()=>[a(tt,{class:"mt-0"},{default:o(()=>[i("li",null,[f("Simplified options to replace "),a(T,{href:"https://developer.chrome.com/docs/extensions/reference/tabs/",target:"_blank"},{default:o(()=>[f("tabs")]),_:1}),f(" permission with "),a(T,{href:"https://developer.chrome.com/docs/extensions/mv3/manifest/activeTab/",target:"_blank"},{default:o(()=>[f(" activeTab")]),_:1})])]),_:1})]),_:1}),a(r(ie),{class:"my-4"}),a(ke,{version:"1.1.3",date:"April 11, 2020"},{default:o(()=>[a(tt,{class:"mt-0"},{default:o(()=>[Ro,jo,qo]),_:1})]),_:1}),a(r(ie),{class:"my-4"}),a(ke,{version:"1.1",date:"September 21, 2014"},{default:o(()=>[a(tt,{class:"mt-0"},{default:o(()=>[zo]),_:1})]),_:1})]),_:1})]),_:1},8,["open"]))}}),No=oe(Fo,[["__scopeId","data-v-88a1e09a"]]),Wo=i("span",null,"Don't ask again",-1),Qe=V({__name:"Confirm",props:pe({destructive:{type:Boolean,required:!1,default:!0},suppressionId:{type:String,required:!1,default:void 0}},{open:{type:Boolean,required:!1,default:void 0},openModifiers:{},defaultOpen:{type:Boolean,required:!1,default:void 0},defaultOpenModifiers:{}}),emits:pe(["cancelled","confirmed","opened","closed"],["update:open","update:defaultOpen"]),setup(e,{emit:t}){const{destructive:s,suppressionId:n}=e,l=t,c=z(e,"open"),u=z(e,"defaultOpen"),d=b=>{c.value=c.value===void 0?b:c.value,l(b?"opened":"closed")},p=D({get:()=>c.value&&!v.value,set:b=>{c.value=b&&!v.value}}),v=I(!1),g=I(!1),h=async b=>{if(b=b??g.value,n){const M=await chrome.storage.local.get("suppressedAlerts"),O=(M==null?void 0:M.suppressedAlerts)??{};O[n]=b,v.value=b,g.value=v.value,await chrome.storage.local.set({suppressedAlerts:O})}},$=async()=>{if(n){const b=await chrome.storage.local.get("suppressedAlerts"),M=(b==null?void 0:b.suppressedAlerts)??{};return v.value=M[n]===!0,g.value=v.value,v.value}return!1};re(async()=>{await $(),chrome.storage.onChanged.addListener(async(b,M)=>{M==="local"&&n&&b.suppressedAlerts&&await $()}),ne(c,async b=>{b&&v.value?(await wt(),l("confirmed")):!b&&g.value&&await h(!0)})});const x=async()=>{l("cancelled")},y=async()=>{await h(g.value),l("confirmed")},_=D(()=>s?"bg-destructive text-destructive-foreground hover:bg-destructive hover:text-destructive-foreground hover:opacity-85":"");return(b,M)=>(m(),w("div",null,[a(r(Cn),{open:p.value,defaultOpen:u.value,"onUpdate:open":d},{default:o(()=>[b.$slots.trigger?(m(),U(r(hn),{key:0,class:"size-full"},{default:o(()=>[J(b.$slots,"trigger")]),_:3})):E("",!0),a(r(_n),null,{default:o(()=>[a(r(yn),null,{default:o(()=>[a(r(bn),null,{default:o(()=>[J(b.$slots,"title",{},()=>[f(" Are you sure? ")])]),_:3}),b.$slots.default?(m(),U(r(wn),{key:0},{default:o(()=>[J(b.$slots,"default")]),_:3})):E("",!0)]),_:3}),Z(a(de,{class:"flex items-center"},{default:o(()=>[a(Te,{checked:g.value,"onUpdate:checked":M[0]||(M[0]=O=>g.value=O)},null,8,["checked"]),Wo]),_:1},512),[[te,e.suppressionId]]),a(r(xn),null,{default:o(()=>[a(r($n),{onClick:x},{default:o(()=>[f("Cancel")]),_:1}),a(r(kn),{onClick:y,class:A(_.value)},{default:o(()=>[f("Continue")]),_:1},8,["class"])]),_:1})]),_:3})]),_:3},8,["open","defaultOpen"])]))}}),Ho={class:"space-y-1 grow"},Yo=i("span",null,"Close all Windows",-1),Ko=i("div",{class:"flex flex-col space-y-4"},[i("p",null,"Any unsaved progress in your browser will be lost once you clear your cache with this option enabled.")],-1),Jo=V({__name:"CloseAllWindows",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(e){const t=z(e,"modelValue"),s=I(!1),n=async()=>{t.value?s.value=!1:s.value=!0},l=async()=>{t.value=!0,s.value=!1},c=()=>{t.value=!1,s.value=!1};return(u,d)=>(m(),w("div",null,[a(de,{class:"flex grow justify-between items-center",onClickCapture:n},{default:o(()=>[i("div",Ho,[Yo,a(Se,null,{default:o(()=>[f("Close all open Chrome windows after clearing data")]),_:1})]),a(r(at),{checked:t.value,"onUpdate:checked":d[0]||(d[0]=p=>t.value=p)},null,8,["checked"])]),_:1}),a(Qe,{open:s.value,"onUpdate:open":d[1]||(d[1]=p=>s.value=p),onConfirmed:l,onCancelled:c,class:"w-full lg:w-auto","suppression-id":"closeAllWindows"},{default:o(()=>[Ko]),_:1},8,["open"])]))}}),Xo=V({__name:"IconButton",props:["variant","size","noPadding"],setup(e){return(t,s)=>(m(),U(r(Q),{variant:e.variant??"default",size:e.size,class:A({[`variant-${e.variant??"default"}`]:!0,[`size-${e.size??"default"}`]:!0,"no-text":t.$slots.default===void 0,"has-text":t.$slots.default!==void 0,"no-padding":e.noPadding!==void 0})},{default:o(()=>[J(t.$slots,"icon",{},void 0,!0),J(t.$slots,"default",{},void 0,!0)]),_:3},8,["variant","size","class"]))}}),_t=oe(Xo,[["__scopeId","data-v-2e0237ea"]]),fs=e=>(Ve("data-v-c0470c1b"),e=e(),De(),e),Qo=fs(()=>i("button",{type:"submit",class:"hidden"},null,-1)),Go={name:"list",tag:"ul",class:"space-y-4 p-4"},Zo={class:"flex flex-row gap-2"},ei={class:"flex h-[3em] w-[4em] self-center items-center justify-center rounded-full border cursor-default"},ti=["innerHTML"],si=["innerHTML"],ai={class:"flex flex-col pt-4 pb-8 items-center"},ni=fs(()=>i("p",null,[f("This will remove "),i("em",null,"all"),f(" domains from the list. "),i("strong",null,"Any edits will be lost.")],-1)),li={class:"absolute inset-0 content-center text-center"},oi=fs(()=>i("span",{class:"text-muted-foreground"},"No domains added",-1)),ii=[oi],ri=["innerHTML"],ui=fs(()=>i("p",null,[f("You have unsaved changes. "),i("strong",null,"Any edits will be lost.")],-1)),Xs="https://sub.domain.com",ci=V({__name:"OriginsList",props:pe({label:String,description:String},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){let t=0;const s=Xs,n=z(e,"modelValue"),l=I([]),c=I([]),u=I([]),d=I(""),p=I(!1),v=I(!1),g=I([]),h=()=>`origin-${t++}`,$=(S="")=>{l==null||l.value.push({origin:S,id:h()}),c==null||c.value.push(""),u==null||u.value.push(""),wt(()=>{_(g.value.length-1)})},x=S=>{var q;(q=l.value)==null||q.splice(S,1),c.value.splice(S,1),u.value.splice(S,1)},y=()=>{l.value=[],c.value=[],u.value=[]},_=S=>{const q=g.value[S],K=q==null?void 0:q.querySelector("input");K==null||K.focus()},b=()=>{for(const S of g.value){const q=S==null?void 0:S.querySelector("input");q==null||q.blur()}},M=()=>F()?(n.value=[...l.value].map(S=>S.origin),d.value="",c.value=l.value.map(()=>""),u.value=l.value.map(()=>""),!0):!1,O=()=>{l.value=[...n.value].map(S=>({origin:S,id:h()})),d.value="",c.value=l.value.map(()=>""),u.value=l.value.map(()=>"")},N=S=>{if(S<0||S>=l.value.length)return!1;const q=l.value[S],K=(q==null?void 0:q.origin)??"";Y.debug("Validating",S,K),c.value[S]="",u.value[S]="";try{const ee=en(K);if(ee!==K){const P=`Normalized from <strong>${K}</strong>`;c.value[S]=xt(P),l.value[S].origin=ee}return!0}catch{const P=`Please enter a valid URL (e.g. ${Xs})`;return u.value[S]=xt(P),!1}},F=()=>{d.value="",c.value=l.value.map(()=>""),u.value=l.value.map(()=>"");let S=!0;return[...l.value].forEach((K,ee)=>{N(ee)||(S=!1,S&&_(ee))}),S},G=D(()=>{for(let S=0;S<l.value.length;S++)if(l.value[S].origin!==n.value[S])return!0;return!1}),k=S=>{if(p.value&&!S){if(!F()){d.value="Please fix all errors before saving";return}if(G.value){Y.debug("Confirm close"),v.value=!0;return}C()}else!p.value&&S&&O()},C=()=>{p.value=!1};return re(()=>{O()}),(S,q)=>{const K=ea("auto-animate");return m(),w("div",null,[a(r(rs),{open:p.value,"onUpdate:open":k},{default:o(()=>[a(r(Ps),{"as-child":""},{default:o(()=>[a(T,{class:"p-2 cursor-pointer",onClick:q[0]||(q[0]=ee=>p.value=!0)},{default:o(()=>[f("Edit")]),_:1})]),_:1}),a(r(as),{class:"sm:max-w-[425px] h-[600px] gap-y-4 flex flex-col justify-between"},{default:o(()=>[a(r(ns),{class:"gap-y-2"},{default:o(()=>[a(r(ls),{class:"capitalize"},{default:o(()=>[f(j(e.label),1)]),_:1}),a(r(os),{innerHTML:e.description},null,8,["innerHTML"])]),_:1}),a(r(ma),{class:"rounded-md border h-full flex flex-col justify-stretch content-stretch"},{default:o(()=>{var ee,P;return[Z(i("form",{onSubmit:ge(b,["prevent"])},[Qo,Z((m(),w("ul",Go,[(m(!0),w(ye,null,Be(l.value,(B,L)=>(m(),w("li",{key:B.id,class:"flex flex-col",ref_for:!0,ref_key:"listItemRefs",ref:g},[i("div",Zo,[i("code",ei,j(L+1),1),a(r(is),{modelValue:l.value[L].origin,"onUpdate:modelValue":xe=>l.value[L].origin=xe,placeholder:r(s),onBlur:xe=>N(L),class:A(["flex-grow font-normal placeholder-muted",{"border-primary":c.value[L],"border-destructive":u.value[L],"focus-visible:outline-primary":c.value[L],"focus-visible:outline-destructive":u.value[L]}])},null,8,["modelValue","onUpdate:modelValue","placeholder","onBlur","class"]),a(r(Q),{variant:"ghost",class:"self-center p-2",title:"Remove",onClick:xe=>x(L)},{default:o(()=>[a(r(va),{size:16})]),_:2},1032,["onClick"])]),Z(i("p",{class:"py-1 px-3 text-primary",innerHTML:c.value[L]},null,8,ti),[[te,c.value[L]]]),Z(i("p",{class:"py-1 px-3 text-destructive",innerHTML:u.value[L]},null,8,si),[[te,u.value[L]]])]))),128))])),[[K]]),i("p",ai,[a(Qe,{onConfirmed:y},{trigger:o(()=>[a(r(Q),{variant:"destructive"},{default:o(()=>[f("Remove All")]),_:1})]),default:o(()=>[ni]),_:1})]),Z(i("div",li,ii,512),[[te,((ee=l.value)==null?void 0:ee.length)===0]])],544),[[te,((P=l.value)==null?void 0:P.length)>0]])]}),_:1}),a(r(Q),{variant:"default",onClick:q[1]||(q[1]=ee=>$()),class:"gap-x-1"},{default:o(()=>[f(" Add Domain ")]),_:1}),a(r(ga),{class:"flex flex-wrap w-full gap-4"},{default:o(()=>[a(r(Q),{variant:"outline",onClick:q[2]||(q[2]=ee=>{O(),C()})},{default:o(()=>[f("Cancel")]),_:1}),a(r(Q),{variant:"default",onClick:q[3]||(q[3]=ee=>{M()&&C()}),class:"grow w-full sm:w-auto sm:grow-0",disabled:!G.value},{default:o(()=>[f("Save")]),_:1},8,["disabled"]),Z(i("p",{class:"basis-full text-destructive text-right",innerHTML:d.value},null,8,ri),[[te,d.value]])]),_:1}),a(Qe,{open:v.value,onConfirmed:q[4]||(q[4]=ee=>{v.value=!1,C()}),onCancelled:q[5]||(q[5]=ee=>v.value=!1),class:"self-center w-full"},{title:o(()=>[f("Close without saving?")]),trigger:o(()=>[Z(a(r(Q),{variant:"destructive"},{default:o(()=>[f("Cancel")]),_:1},512),[[te,!1]])]),default:o(()=>[ui]),_:1},8,["open"])]),_:1})]),_:1},8,["open"])])}}}),Qs=oe(ci,[["__scopeId","data-v-c0470c1b"]]),Tt=e=>(Ve("data-v-08b78220"),e=e(),De(),e),di={class:"gap-0 w-full"},fi=Tt(()=>i("span",{class:"grow"},"Websites",-1)),pi=Tt(()=>i("span",{class:"text-muted-foreground font-light"},"Unprotected Web",-1)),mi=Tt(()=>i("span",{class:"grow"},"Web Apps",-1)),vi=Tt(()=>i("span",{class:"text-muted-foreground font-light"},"Protected Web",-1)),gi=Tt(()=>i("span",{class:"grow"},"Extensions",-1)),hi={class:"space-x-1"},_i=V({__name:"OriginTypes",props:pe({showWarning:{type:Boolean,default:!0}},{modelValue:{required:!0},modelModifiers:{},disabled:{type:Boolean},disabledModifiers:{},tooltip:{},tooltipModifiers:{}}),emits:["update:modelValue","update:disabled","update:tooltip"],setup(e){const t=z(e,"modelValue"),s=z(e,"disabled"),n=z(e,"tooltip"),l=I({protectedWeb:{isOpen:!1,message:"This will clear data for all installed apps, which may cause them to break.",link:"chrome://apps",linkText:"Review your installed apps here",get value(){return t.value.protectedWeb},set value(c){t.value.protectedWeb=c}},extension:{isOpen:!1,message:"This will clear data for all extensions, which may cause them to break.",link:"chrome://extensions",linkText:"Review your extensions here",get value(){return t.value.extension},set value(c){t.value.extension=c}}});return re(()=>{ne(()=>t.value.protectedWeb,c=>{l.value.protectedWeb.isOpen=!s.value&&(c??!1)}),ne(()=>t.value.extension,c=>{l.value.extension.isOpen=!s.value&&(c??!1)})}),(c,u)=>(m(),w("div",di,[a(de,{class:A(["flex items-center",{disabled:s.value}]),title:n.value,onClickCapture:u[1]||(u[1]=ge(d=>t.value.unprotectedWeb=!t.value.unprotectedWeb,["prevent"]))},{default:o(()=>[a(r(Te),{checked:t.value.unprotectedWeb,"onUpdate:checked":u[0]||(u[0]=d=>t.value.unprotectedWeb=d)},null,8,["checked"]),fi,pi]),_:1},8,["class","title"]),a(de,{class:A(["flex items-center",{disabled:s.value}]),title:n.value,onClickCapture:u[3]||(u[3]=ge(d=>t.value.protectedWeb=!t.value.protectedWeb,["prevent"]))},{default:o(()=>[a(r(Te),{checked:t.value.protectedWeb,"onUpdate:checked":u[2]||(u[2]=d=>t.value.protectedWeb=d)},null,8,["checked"]),mi,vi]),_:1},8,["class","title"]),a(de,{class:A(["flex items-center",{disabled:s.value}]),title:n.value,onClickCapture:u[5]||(u[5]=ge(d=>t.value.extension=!t.value.extension,["prevent"]))},{default:o(()=>[a(r(Te),{checked:t.value.extension,"onUpdate:checked":u[4]||(u[4]=d=>t.value.extension=d)},null,8,["checked"]),gi]),_:1},8,["class","title"]),(m(!0),w(ye,null,Be(l.value,(d,p)=>(m(),U(Qe,{open:d.isOpen,"suppression-id":p,onCancelled:v=>{d.isOpen=!1,d.value=!1},onConfirmed:v=>{d.isOpen=!1,d.value=!0}},{default:o(()=>[i("div",hi,[i("span",null,j(d.message),1),a(T,{href:d.link,"use-browser-api":!0},{default:o(()=>[f(j(d.linkText),1)]),_:2},1032,["href"])])]),_:2},1032,["open","suppression-id","onCancelled","onConfirmed"]))),256))]))}}),yi=oe(_i,[["__scopeId","data-v-08b78220"]]),bi={class:"flex flex-col lg:flex-row lg: lg:items-center lg:gap-4"},wi={class:"lg:min-w-20"},xi=["innerHTML"],$i={key:0},ki=i("span",{class:"grow"},"Include browser data even when filtering by domains",-1),Ea=V({__name:"Origins",props:pe({idPrefix:{default:""}},{removalOptions:{required:!0},removalOptionsModifiers:{},originMode:{required:!0},originModeModifiers:{},alwaysClearBrowserData:{type:Boolean,required:!1,default:void 0},alwaysClearBrowserDataModifiers:{},disabled:{type:Boolean,required:!1,default:void 0},disabledModifiers:{}}),emits:["update:removalOptions","update:originMode","update:alwaysClearBrowserData","update:disabled"],setup(e){const t=z(e,"removalOptions"),s=z(e,"originMode"),n=z(e,"alwaysClearBrowserData"),l=z(e,"disabled"),{idPrefix:c}=e,u=D(()=>Object.values(ae)),d=D({get:()=>g.value?{unprotectedWeb:!0,protectedWeb:!0,extension:!0}:t.value.originTypes??tn(),set:x=>t.value.originTypes=x}),p=D({get:()=>t.value.origins??[],set:x=>t.value.origins=x}),v=D({get:()=>t.value.excludeOrigins??[],set:x=>t.value.excludeOrigins=x}),g=D(()=>s.value===ae.ActiveTab||l.value),h=D(()=>s.value===ae.All),$=D(()=>g.value?"Overriden by Active Tab filter":"");return(x,y)=>(m(),w("div",{class:A(["flex flex-col space-y-4",{"text-muted-foreground":l.value}])},[i("div",null,[a(we,{level:6},{default:o(()=>[f("Origins")]),_:1}),a(r(ha),{modelValue:s.value,"onUpdate:modelValue":y[2]||(y[2]=_=>s.value=_),class:"gap-y-0",disabled:l.value},{default:o(()=>[(m(!0),w(ye,null,Be(u.value,_=>(m(),w("div",{class:"flex flex-row grow items-center",key:_},[a(de,{for:c+_,class:"flex flex-row grow items-center",disabled:l.value,onClick:b=>s.value=_},{default:o(()=>[a(r(_a),{value:_,id:c+_},null,8,["value","id"]),i("div",bi,[i("span",wi,j(r(na)[_]),1),a(Se,null,{default:o(()=>[i("span",{innerHTML:r(ms)[_]},null,8,xi)]),_:2},1024)])]),_:2},1032,["for","disabled","onClick"]),_===r(ae).Include&&!l.value?(m(),U(Qs,{key:0,modelValue:p.value,"onUpdate:modelValue":y[0]||(y[0]=b=>p.value=b),mode:_,label:r(zs)[_],description:r(ms)[_]},null,8,["modelValue","mode","label","description"])):_===r(ae).Exclude&&!l.value?(m(),U(Qs,{key:1,modelValue:v.value,"onUpdate:modelValue":y[1]||(y[1]=b=>v.value=b),mode:_,label:r(zs)[_],description:r(ms)[_]},null,8,["modelValue","mode","label","description"])):E("",!0)]))),128))]),_:1},8,["modelValue","disabled"])]),n.value!==void 0?(m(),w("div",$i,[a(we,{level:6},{default:o(()=>[f("Browser Data")]),_:1}),a(de,{class:A(["flex items-center",{disabled:h.value}])},{default:o(()=>[a(r(Te),{checked:n.value,"onUpdate:checked":y[3]||(y[3]=_=>n.value=_),disabled:h.value||l.value},null,8,["checked","disabled"]),ki]),_:1},8,["class"])])):E("",!0),i("div",null,[a(we,{level:6},{default:o(()=>[f("Types")]),_:1}),a(yi,{modelValue:d.value,"onUpdate:modelValue":y[4]||(y[4]=_=>d.value=_),disabled:g.value,"onUpdate:disabled":y[5]||(y[5]=_=>g.value=_),tooltip:$.value,"onUpdate:tooltip":y[6]||(y[6]=_=>$.value=_),"show-warning":!0},null,8,["modelValue","disabled","tooltip"])])],2))}}),Ci={class:"font-light text-muted-foreground space-x-1 max-w-full text-ellipsis truncate"},Si={class:"text-primary font-normal"},Ii={class:"tag text-warning"},Mi={class:"text-primary font-normal"},Pi=["innerHTML"],Ei={key:1,class:"tag text-warning"},Oi=V({__name:"OriginsSummary",props:{removalOptions:{required:!0},removalOptionsModifiers:{},originMode:{required:!0},originModeModifiers:{}},emits:["update:removalOptions","update:originMode"],setup(e){const t=z(e,"removalOptions"),s=z(e,"originMode"),n=D(()=>t.value.originTypes),l=D(()=>s.value===ae.Include||s.value===ae.Exclude),c=D(()=>s.value===ae.ActiveTab),u=D(()=>{switch(s.value){case ae.All:return"All";case ae.Include:return"Only";case ae.Exclude:return"All";case ae.ActiveTab:return"All"}}),d=D(()=>{switch(s.value){case ae.All:return"";case ae.Include:return"on";case ae.Exclude:return"except on";case ae.ActiveTab:return"on the active tab"}}),p=D(()=>{let g=[];switch(s.value){case ae.Include:g=[...t.value.origins??[]];break;case ae.Exclude:g=[...t.value.excludeOrigins??[]];break;default:return""}const h='<span class="tag">',$="</span>";return g=g.map(x=>`${h}${xt(x)}${$}`),g.join(", ")}),v=D(()=>{var h,$,x;let g=[];return((h=n.value)!=null&&h.unprotectedWeb||c.value)&&g.push("websites"),(($=n.value)!=null&&$.protectedWeb||c.value)&&g.push("apps"),((x=n.value)!=null&&x.extension||c.value)&&g.push("extensions"),g.join(", ")});return(g,h)=>(m(),w("span",Ci,[i("span",Si,j(u.value),1),Z(i("span",null,j(v.value),513),[[te,v.value.length]]),Z(i("span",Ii,"(no types selected)",512),[[te,!v.value.length]]),i("span",Mi,j(d.value),1),p.value.length?(m(),w("span",{key:0,innerHTML:p.value},null,8,Pi)):l.value?(m(),w("span",Ei,"(no "+j(r(na)[s.value].toLowerCase())+"d domains selected)",1)):E("",!0)]))}}),Oa=oe(Oi,[["__scopeId","data-v-7c2a5d80"]]);var qe;const He=class He{constructor(){$e(this,qe);ve(this,"isShowing",()=>X(this,qe)!==void 0);ve(this,"clearIfShowing",t=>{t!==void 0&&X(this,qe)===t&&Oe(this,qe,void 0)})}static get(t){return He.groups[t]||(He.groups[t]=new He),He.groups[t]}get toastId(){return X(this,qe)}set toastId(t){Oe(this,qe,t)}};qe=new WeakMap,ve(He,"groups",{});let xs=He;const Ui=e=>(Ve("data-v-b5fbc69f"),e=e(),De(),e),Ai={class:"content"},Ti={class:"overlay"},Bi={class:"block text-sm text-secondary-foreground/60 w-full text-center"},Li={key:0,class:"text-plus-gradient"},Vi=Ui(()=>i("span",{class:"text-plus-gradient"},"PLUS",-1)),Di={key:1,class:"unlocked","data-unlocked":"true"},Ri=V({__name:"Lock",props:pe({size:{default:"normal"},shallow:{type:Boolean,default:!1}},{isSubscribed:{type:Boolean,default:!1},isSubscribedModifiers:{},alwaysUnlocked:{type:Boolean,default:!1},alwaysUnlockedModifiers:{},isLocked:{type:Boolean,default:!0},isLockedModifiers:{}}),emits:["update:isSubscribed","update:alwaysUnlocked","update:isLocked"],setup(e){const{size:t,shallow:s}=e,n=z(e,"isSubscribed"),l=z(e,"alwaysUnlocked"),c=z(e,"isLocked"),u=xs.get("lock"),d=Le.getInstance();Cs("isLocked",c);const p=(h,$=!1)=>(h.preventDefault(),h.stopPropagation(),$&&!u.isShowing()&&(u.toastId=fe.info("This feature is only availbale with Clear Cache PLUS.",{action:{label:"Try 7 days for free",onClick:()=>{d.requestCheckout()}},icon:x=>"♻️",onAutoClose(x){u.clearIfShowing(x==null?void 0:x.id)},onDismiss(x){u.clearIfShowing(x==null?void 0:x.id)}})),!1),v=()=>{n.value=d.isSubscribed()},g=()=>{c.value=!l.value&&!n.value};return re(()=>{d.addEventListener(Ae.SubscriptionValidated,v),d.addEventListener(Ae.SubscriptionInvalidated,v),ne(n,g),ne(l,g),v()}),(h,$)=>c.value?(m(),w("div",{key:0,class:A(["locked",{shallow:s,[`size-${t}`]:!0}]),"data-locked":"true",onClickCapture:$[0]||($[0]=x=>p(x,!0)),onTouchstartCapturePassive:p,onPointerdownCapture:p,onFocusCapture:p,onFocusinCapture:p,onBeforeinputCapture:p,onKeydownCapture:p},[i("div",Ai,[J(h.$slots,"default",{},void 0,!0)]),i("div",Ti,[i("span",Bi,[t==="small"?(m(),w("span",Li,"PLUS")):(m(),w("span",{key:1,class:A({"text-xl":t==="large"})},[f("Requires a "),Vi,f(" subscription")],2))])])],34)):(m(),w("div",Di,[J(h.$slots,"default",{},void 0,!0)]))}}),nt=oe(Ri,[["__scopeId","data-v-b5fbc69f"]]),ji={class:"flex flex-row gap-x-2 items-center max-w-full truncate"},qi={class:"grow shrink-0"},zi={class:"truncate text-ellipsis text-right"},Fi={key:1},Ni={class:"flex flex-col space-y-1"},Wi=i("span",{class:"text-muted-foreground font-light"},"Overrides global settings for this type",-1),Hi=["cite"],Yi={key:0},Ki={key:1},Gs=V({__name:"DataRemovalType",props:pe({id:{}},{modelValue:{type:Boolean,required:!0,default:void 0},modelModifiers:{},disabled:{type:Boolean},disabledModifiers:{},options:{required:!1,default:void 0},optionsModifiers:{}}),emits:["update:modelValue","update:disabled","update:options"],setup(e){const{id:t}=e,s=z(e,"modelValue"),n=z(e,"disabled"),l=z(e,"options"),c=D(()=>{var x;return((x=p==null?void 0:p.value)==null?void 0:x.flags.requiresPlus)??!1}),u=D(()=>{var x;return((x=p==null?void 0:p.value)==null?void 0:x.flags.confirmFirst)??!1}),d=I(!1),p=I(),v=I(!1),g=I(!1),h=I(!1),$=()=>{u.value&&!s.value?g.value=!0:g.value=!1};return re(()=>{p.value=_s.allItems.get(t)}),(x,y)=>(m(),w("div",null,[a(r(qt),{open:v.value,"onUpdate:open":y[14]||(y[14]=_=>v.value=_)},{default:o(()=>[i("div",ji,[a(de,{class:"flex grow shrink-0 items-center",disabled:n.value},{default:o(()=>{var _;return[a(r(Te),{checked:s.value,"onUpdate:checked":y[0]||(y[0]=b=>s.value=b),disabled:n.value,onClick:$},null,8,["checked","disabled"]),i("span",qi,j((_=p.value)==null?void 0:_.label),1),a(Qe,{"suppression-id":x.id,open:g.value,"onUpdate:open":y[1]||(y[1]=b=>g.value=b),onConfirmed:y[2]||(y[2]=b=>{s.value=!0,g.value=!1}),onCancelled:y[3]||(y[3]=b=>{s.value=!1,g.value=!1})},{title:o(()=>{var b;return[f(" Are you sure you want to remove "+j((b=p.value)==null?void 0:b.label)+"? ",1)]}),default:o(()=>{var b;return[f(j((b=p.value)==null?void 0:b.description),1)]}),_:1},8,["suppression-id","open"])]}),_:1},8,["disabled"]),l.value?(m(),U(nt,{key:0,"is-locked":d.value,"onUpdate:isLocked":y[12]||(y[12]=_=>d.value=_),"always-unlocked":!c.value,size:"small",class:A({"max-w-[50%] truncate":!d.value&&l.value.override,"grow-0":d.value})},{default:o(()=>[i("div",zi,[a(r(Ot),{open:h.value,"onUpdate:open":y[11]||(y[11]=_=>h.value=_)},{default:o(()=>[a(T,{onClick:y[6]||(y[6]=_=>h.value=!h.value)},{default:o(()=>[l.value.override&&!d.value?(m(),U(Oa,{key:0,"removal-options":l.value.removalOptions,"onUpdate:removalOptions":y[4]||(y[4]=_=>l.value.removalOptions=_),"origin-mode":l.value.originMode,"onUpdate:originMode":y[5]||(y[5]=_=>l.value.originMode=_)},null,8,["removal-options","origin-mode"])):(m(),w("span",Fi,"Advanced"))]),_:1}),a(r(Ut)),a(r(At),{class:"w-[40vw] min-w-96 max-w-[500px] space-y-4"},{default:o(()=>{var _;return[a(de,{class:"flex items-center"},{default:o(()=>{var b;return[a(r(Te),{checked:l.value.override,"onUpdate:checked":y[7]||(y[7]=M=>l.value.override=M)},null,8,["checked"]),i("div",Ni,[i("span",null,[f("Custom domain settings for "),i("em",null,j(((b=p.value)==null?void 0:b.label)||"this type"),1)]),Wi])]}),_:1}),a(Ea,{class:A({disabled:!l.value.override}),disabled:!l.value.override,onClick:y[8]||(y[8]=ge(()=>{},["stop","prevent"])),"id-prefix":((_=p.value)==null?void 0:_.key)+"-","removal-options":l.value.removalOptions,"onUpdate:removalOptions":y[9]||(y[9]=b=>l.value.removalOptions=b),"origin-mode":l.value.originMode,"onUpdate:originMode":y[10]||(y[10]=b=>l.value.originMode=b)},null,8,["class","disabled","id-prefix","removal-options","origin-mode"])]}),_:1})]),_:1},8,["open"])])]),_:1},8,["is-locked","always-unlocked","class"])):E("",!0),a(_t,{class:"shrink-0 grow-0",size:"xs",title:"More info",variant:v.value?"outline":"ghost",onClick:y[13]||(y[13]=_=>v.value=!v.value)},{icon:o(()=>[a(r(Es))]),_:1},8,["variant"]),a(r(Rt),{class:"flex justify-end"})]),a(r(jt),{class:"space-y-2 w-[16vw] min-w-80 max-w-96"},{default:o(()=>{var _,b,M,O,N;return[i("blockquote",{cite:(_=p.value)==null?void 0:_.source},[(b=p.value)!=null&&b.description?(m(),w("p",Yi,j((M=p.value)==null?void 0:M.description),1)):E("",!0),(O=p.value)!=null&&O.source?(m(),w("p",Ki,[a(T,{href:(N=p.value)==null?void 0:N.source,isInfoOpen:"_blank"},{default:o(()=>[f("More Info")]),_:1},8,["href"])])):E("",!0)],8,Hi)]}),_:1})]),_:1},8,["open"])]))}}),Ji=V({__name:"TimePeriod",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(e){const t=z(e,"modelValue");return(s,n)=>(m(),U(r(In),{modelValue:t.value,"onUpdate:modelValue":n[0]||(n[0]=l=>t.value=l),"default-value":t.value},{default:o(()=>[a(r(Sn),{class:"flex-1 flex-wrap w-full h-auto rounded-lg"},{default:o(()=>[(m(!0),w(ye,null,Be(r(sn),l=>(m(),U(r(Mn),{value:l,class:"transition-all flex-1 rounded-md hover:text-primary hover:bg-card hover:bg-opacity-50"},{default:o(()=>[i("span",{class:A({"text-primary":t.value===l})},j(r(an)(l)),3)]),_:2},1032,["value"]))),256))]),_:1})]),_:1},8,["modelValue","default-value"]))}}),Xi={class:"flex flex-col gap-y-8"},Qi={class:"space-y-1"},Gi={class:"space-y-1"},Zi={class:"space-y-1"},er={class:"flex justify-start space-x-2"},tr=i("span",null,"Select",-1),sr=V({__name:"DataToRemove",props:{dataTypes:{required:!0},dataTypesModifiers:{},dataOptions:{required:!0},dataOptionsModifiers:{},disableBrowserData:{type:Boolean,required:!0},disableBrowserDataModifiers:{},timeperiod:{required:!0},timeperiodModifiers:{}},emits:["update:dataTypes","update:dataOptions","update:disableBrowserData","update:timeperiod"],setup(e){const t=z(e,"dataTypes"),s=z(e,"dataOptions"),n=z(e,"disableBrowserData"),l=z(e,"timeperiod"),c=D(()=>[..._s.allItems].filter(([v,g])=>g.flags.supportsOrigins)),u=D(()=>[..._s.allItems].filter(([v,g])=>!g.flags.supportsOrigins)),d=v=>{for(const g in t.value)t.value[g]=v},p=()=>{const g=Is().browser.dataToRemove;for(const h in t.value)t.value[h]=g[h]};return(v,g)=>(m(),w("div",Xi,[i("div",Qi,[a(we,{level:5},{default:o(()=>[f("Time Span")]),_:1}),a(Ji,{modelValue:l.value,"onUpdate:modelValue":g[0]||(g[0]=h=>l.value=h)},null,8,["modelValue"])]),i("div",Gi,[a(we,{level:5},{default:o(()=>[f("Websites")]),_:1}),(m(!0),w(ye,null,Be(c.value,([h,$])=>(m(),U(Gs,{key:h,id:h,modelValue:t.value[h],"onUpdate:modelValue":x=>t.value[h]=x,options:s.value[h],"onUpdate:options":x=>s.value[h]=x},null,8,["id","modelValue","onUpdate:modelValue","options","onUpdate:options"]))),128))]),i("div",Zi,[a(we,{level:5},{default:o(()=>[f("Browser")]),_:1}),Z(a(Se,null,{default:o(()=>[f("Your domain settings override these options.")]),_:1},512),[[te,n.value]]),(m(!0),w(ye,null,Be(u.value,([h,$])=>(m(),U(Gs,{key:h,id:h,modelValue:t.value[h],"onUpdate:modelValue":x=>t.value[h]=x,disabled:n.value,"onUpdate:disabled":g[1]||(g[1]=x=>n.value=x),options:s.value[h],"onUpdate:options":x=>s.value[h]=x},null,8,["id","modelValue","onUpdate:modelValue","disabled","options","onUpdate:options"]))),128))]),i("div",er,[tr,a(T,{onClick:g[2]||(g[2]=h=>d(!0))},{default:o(()=>[f("All")]),_:1}),a(r(ie),{class:"h-[1rem]",orientation:"vertical"}),a(T,{onClick:g[3]||(g[3]=h=>p())},{default:o(()=>[f("Default")]),_:1}),a(r(ie),{class:"h-[1rem]",orientation:"vertical"}),a(T,{onClick:g[4]||(g[4]=h=>d(!1))},{default:o(()=>[f("None")]),_:1})])]))}});var lt;const Ye=class Ye{static getInstance(){return X(Ye,lt)||Oe(Ye,lt,new Ye),X(Ye,lt)}constructor(){}getCommands(){return chrome.commands.getAll()}getActionCommand(){return chrome.commands.getAll().then(t=>t.find(s=>s.name==="_execute_action"))}getActionShortcut(){return this.getActionCommand().then(t=>t==null?void 0:t.shortcut)}};lt=new WeakMap,$e(Ye,lt);let $s=Ye;const ar={class:"space-y-1"},nr=i("span",null,"Keyboard Shortcut",-1),lr=V({__name:"KeyboardShortcut",setup(e){const t=I(void 0),s=Wa();ne(s,()=>{s.value&&n()});const n=async()=>{t.value=await $s.getInstance().getActionShortcut()},l=async()=>{chrome.tabs.create({url:"chrome://extensions/shortcuts#:~:text=Clear%20Cache"})};return re(async()=>{n()}),(c,u)=>(m(),U(de,{class:"flex grow justify-between items-center",onClick:l,title:"Click to edit"},{default:o(()=>[i("div",ar,[nr,a(Se,null,{default:o(()=>[f("Clear from anywhere within Chrome")]),_:1})]),i("code",{class:A(["font-light bg-muted px-1.5 py-1 rounded-lg text-xs",t.value?"bg-primary text-white align-middle":"bg-muted text-muted-foreground"])},j(t.value||"Not set"),3)]),_:1}))}}),or={class:"flex flex-col gap-2 w-full"},ir={class:"flex grow"},rr=i("span",null,"Sync across devices",-1),ur={class:"grid grid-cols-2 gap-2 justify-items-stretch"},cr={class:"flex flex-col space-y-4"},dr=i("em",null,"Data to Remove",-1),fr=i("em",null,"Time Period",-1),pr=i("p",{class:"font-light"},"Please note that Chrome bundles certain settings in a way that may select more data to be removed than you might expect.",-1),mr={class:"flex flex-col space-y-4"},vr=i("p",null,[f("This will reset "),i("em",null,"all"),f(" Clear Cache extension settings to their default values. "),i("strong",null,"This action cannot be undone.")],-1),gr=i("span",null,"Also remove all presets",-1),hr=V({__name:"Manage",props:{includePresetsOnReset:{type:Boolean,required:!1,default:!1},includePresetsOnResetModifiers:{},config:{required:!0},configModifiers:{}},emits:pe(["export","import","reset","loadBrowser"],["update:includePresetsOnReset","update:config"]),setup(e,{emit:t}){const s=z(e,"includePresetsOnReset"),n=z(e,"config"),l=t,c=()=>{document.getElementById("fileInput").click()},u=()=>{var h;const g=(h=document.getElementById("fileInput").files)==null?void 0:h.item(0);l("import",g)},d=()=>{l("loadBrowser",null)},p=()=>{l("reset")};return(v,g)=>(m(),w("div",or,[i("div",ir,[a(de,{class:"space-x-2 sm:w-full lg:w-auto align-middle"},{default:o(()=>[a(r(Te),{checked:n.value.extension.sync,"onUpdate:checked":g[0]||(g[0]=h=>n.value.extension.sync=h),class:"align-top"},null,8,["checked"]),rr]),_:1})]),i("div",ur,[a(Qe,{onConfirmed:d,class:"flex w-full lg:w-auto order-1"},{trigger:o(()=>[a(_t,{class:"w-full"},{default:o(()=>[a(r(Pn)),f(" Import from Browser ")]),_:1})]),default:o(()=>[i("div",cr,[i("p",null,[f("This will import "),a(T,{"use-browser-api":!0,href:"chrome://settings/clearBrowserData"},{default:o(()=>[f("your chrome settings")]),_:1}),f(" and overwrite Clear Cache extension settings for "),dr,f(" and "),fr,f(". ")]),pr])]),_:1}),a(Qe,{onConfirmed:p,class:"w-full lg:w-auto order-3"},{trigger:o(()=>[a(_t,{variant:"destructive",class:"w-full"},{default:o(()=>[a(r(ya)),f(" Reset to Defaults ")]),_:1})]),default:o(()=>[i("div",mr,[vr,a(r(pt),{class:"flex flex-row w-full space-x-2 items-center"},{default:o(()=>[a(r(Te),{checked:s.value,"onUpdate:checked":g[1]||(g[1]=h=>s.value=h)},null,8,["checked"]),gr]),_:1})])]),_:1}),a(nt,{class:"flex w-full lg:w-auto order-2",shallow:!0,size:"small"},{default:o(()=>[a(_t,{class:"w-full",onClick:c},{default:o(()=>[a(r(En)),f(" Import from File "),i("input",{type:"file",id:"fileInput",hidden:"",onChange:u},null,32)]),_:1})]),_:1}),a(nt,{class:"flex w-full lg:w-auto order-4",shallow:!0,size:"small"},{default:o(()=>[a(_t,{class:"w-full",onClick:g[2]||(g[2]=h=>v.$emit("export"))},{default:o(()=>[a(r(On)),f(" Export to File ")]),_:1})]),_:1})])]))}}),_r={class:"group flex flex-row align-end gap-x-4 items-center drop-shadow-md"},yr=V({__name:"DarkModeToggle",setup(e){const{system:t,store:s}=Ha();function n(){switch(s.value){case"auto":s.value=t.value==="light"?"dark":"light";break;case"dark":s.value=t.value==="dark"?"auto":"light";break;case"light":s.value=t.value==="light"?"auto":"dark";break}}function l(){switch(s.value){case"auto":return"System";case"dark":return"Dark";case"light":return"Light"}}return(c,u)=>(m(),w("div",_r,[a(r(pt),{class:"transition-all opacity-0 translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 text-primary-foreground"},{default:o(()=>[f(j(l()),1)]),_:1}),a(r(Q),{variant:"outline",onClick:n},{default:o(()=>[Z(a(r(Un),{class:"absolute h-[1.2rem] w-[1.2rem]"},null,512),[[te,r(s)==="auto"]]),Z(a(r(An),{class:"absolute h-[1.2rem] w-[1.2rem]"},null,512),[[te,r(s)==="dark"]]),Z(a(r(Tn),{class:"absolute h-[1.2rem] w-[1.2rem]"},null,512),[[te,r(s)==="light"]])]),_:1})]))}}),br={key:0},Ke=V({__name:"FormStep",setup(e){const t=Ge("wizardContext");if(!t)throw new Error("FormStep must be used within a FormWizard");const s=t.addStep(),n=D(()=>t.isCurrent(s));return Cs("stepIndex",s),(l,c)=>n.value?(m(),w("div",br,[J(l.$slots,"default")])):E("",!0)}});class he extends Error{constructor(t,s){super(s),this.field=t,this.name="FormError"}}const wr=V({__name:"Spinner",setup(e){return(t,s)=>(m(),U(r(Bn),{class:"spinner text-primary"}))}}),ft=oe(wr,[["__scopeId","data-v-04b76cf7"]]),xr={key:0,class:"absolute flex items-center justify-center top-0 left-0 right-0 bottom-0 bg-card/75 pointer-events-none z-10"},$r={class:"flex flex-row-reverse pt-2 gap-2 place-content-end"},kr=V({__name:"FormWizard",props:pe({validationSchemas:{},formOptions:{},routeToNext:{type:Function},routeToPrev:{type:Function}},{currentStep:{type:Number,default:0},currentStepModifiers:{}}),emits:pe(["submit","stepChanged"],["update:currentStep"]),setup(e,{expose:t,emit:s}){const{validationSchemas:n,formOptions:l,routeToNext:c,routeToPrev:u}=e,d=z(e,"currentStep"),p=I(),v=s,g=I(!1),h=[],$=[],x=[],y=[],_=I(),b=I(),M=D(()=>d.value===K()-1),O=D(()=>d.value===0),N=D(()=>{const R=n.length,W=Math.max(0,Math.min(d.value,R-1));return n[W]}),{values:F,handleSubmit:G,setFieldError:k}=Ln({...l,validationSchema:N,keepValuesOnUnmount:!0}),C=G(async R=>ee(d.value+1),({errors:R})=>{if(!R||Object.keys(R).length===0)return;const W=Object.keys(R)[0],me=document.querySelector(`input[name="${W}"]`);me==null||me.focus()}),S=async()=>C(),q=async()=>{ee(d.value-1)},K=()=>h.length,ee=async(R,W=!1)=>{var Bs,Ls,Vs;B(),g.value=!0,R=Math.max(0,Math.min(R,y.length-1));let me=d.value,ue=R;const We=R-d.value,Vt=We>0,Dt=We<0,vt=y[me];let Ee=!0;try{We>=0&&We<=1&&vt&&await vt(),Vt?ue=await c(me,ue):Dt&&(ue=await u(me,ue))}catch(qa){P(qa),ue=d.value,Ee=!1}Y.debug(bt.gray(`Moving from step ${me} to ${ue}`)),ue!==me||W?((Bs=x[me])==null||Bs.call(x,ue,me),xe(ue),d.value=ue,await((Ls=h[ue])==null?void 0:Ls.call(h,ue,me).catch(P))):Ee&&ue===K()-1?v("submit",F):await((Vs=$[ue])==null?void 0:Vs.call($,ue,me).catch(P)),L(),g.value=!1},P=R=>{let W=String(R)??"Something went wrong. Please try again.";R instanceof he&&(W=R.message,k(R.field,W)),Y.debug(bt.red("Error in step:",d.value),W)},B=()=>{document.querySelectorAll("input").forEach(W=>{W.blur()})},L=async()=>{var W;const R=(W=p.value)==null?void 0:W.querySelector("input");R==null||R.focus()},xe=(R=d.value)=>{_.value=Pe(R),b.value=Ne(R)},Pe=(R=d.value)=>({text:"Back",disabled:R===0,visible:R>0}),Ne=(R=d.value)=>({text:R>=K()-1?"Submit":"Continue",disabled:!1,visible:!0}),mt={addStep:()=>(h.push(async()=>{}),$.push(async()=>{}),x.push(async()=>{}),y.push(async()=>{}),K()-1),getTotal:K,isCurrent:R=>d.value===R,getCurrent:()=>d.value,goTo:R=>ee(R),goToPrev:()=>q(),goToNext:()=>S(),getNext:()=>M.value?d.value:d.value+1,getPrevious:()=>O.value?d.value:d.value-1,onShow:async(R,W)=>{if(W=Lt(W),Y.debug(bt.magenta(`Adding show callback for step index: ${W}`)),h[W]=R,d.value===W)return R(W,d.value).catch(P)},onReload(R,W){W=Lt(W),$[W]=R},onHide(R,W){W=Lt(W),x[W]=R},handleStepSubmit(R,W){W=Lt(W),y[W]=R},setButtonStates:(R={},W={})=>{_.value={...Pe(),...R},b.value={...Ne(),...W}},showSpinner:()=>g.value=!0,hideSpinner:()=>g.value=!1},Lt=R=>R??d.value;return re(()=>{xe(),ne(d,R=>{v("stepChanged",R)})}),Cs("wizardContext",mt),t({context:mt}),(R,W)=>{var me,ue,We,Vt,Dt,vt;return m(),w("form",{onSubmit:W[0]||(W[0]=ge((...Ee)=>r(C)&&r(C)(...Ee),["prevent"]))},[i("div",{class:A(["relative py-2 transition-opacity",{"pointer-events-none":g.value}]),ref_key:"container",ref:p},[J(R.$slots,"default",{},void 0,!0),a(ts,null,{default:o(()=>[g.value?(m(),w("div",xr,[a(ft,{class:"size-20"})])):E("",!0)]),_:1})],2),i("div",null,[i("div",$r,[(me=b.value)!=null&&me.visible?(m(),U(r(Q),{key:0,type:"submit",ref:"nextBtn",disabled:!((ue=b.value)!=null&&ue.visible)||((We=b.value)==null?void 0:We.disabled)||g.value},{default:o(()=>{var Ee;return[f(j((Ee=b.value)==null?void 0:Ee.text),1)]}),_:1},8,["disabled"])):E("",!0),(Vt=_.value)!=null&&Vt.visible?(m(),U(r(Q),{key:1,type:"button",ref:"prevBtn",disabled:!((Dt=_.value)!=null&&Dt.visible)||((vt=_.value)==null?void 0:vt.disabled)||g.value,onClick:ge(q,["self"])},{default:o(()=>{var Ee;return[f(j((Ee=_.value)==null?void 0:Ee.text),1)]}),_:1},8,["disabled"])):E("",!0)])])],32)}}}),Ua=oe(kr,[["__scopeId","data-v-0ad062e3"]]),Cr=["data-selected"],Sr={class:"inner bg-plus-gradient text-plus-foreground"},Ir={class:"inner-bg"},Mr=V({inheritAttrs:!1,__name:"MagicButton",props:{style:{type:String,default:"linear"},selected:{type:Boolean,default:!1},muted:{type:Boolean,default:!1}},setup(e){return(t,s)=>(m(),w("a",Ss(t.$attrs,{class:["outer",[e.style,{selected:e.selected,muted:e.muted}]],"data-selected":e.selected}),[i("span",Sr,[i("span",Ir,[J(t.$slots,"default",{},void 0,!0)])])],16,Cr))}}),Fe=oe(Mr,[["__scopeId","data-v-cf8fef8b"]]),Aa=e=>(Ve("data-v-5e9204d5"),e=e(),De(),e),Pr={class:"flex flex-col gap-2"},Er={class:"flex items-center space-x-2 my-2"},Or={class:"grow text-left"},Ur=Aa(()=>i("span",null,"Can't find your subscription?",-1)),Ar=Aa(()=>i("span",null,"Don't have an account yet?",-1)),Tr=V({__name:"EnterEmail",props:{isSignUp:{type:Boolean,default:!0},autoSignInIfExisting:{type:Boolean,default:!0},autoSignUpIfNonExisting:{type:Boolean,default:!1}},emits:["subscribe"],setup(e,{emit:t}){const s=Ge("wizardContext");if(!s)throw new Error("EnterEmail must be used within a Checkout component");const n=e,l=t,c=us(),u=Ie.getInstance(),d=I(n.isSignUp?1:0),p=D(()=>d.value===1||n.isSignUp===!0),v=I(!1),g=async()=>{try{Y.debug("Signin up with email..."),d.value=1;const y=c.value.email;if(!c.value.termsAccepted)throw new he("email","Please review our terms and select agree to continue.");if(!y)throw new he("termsAccepted","Please enter your email address");const b=await u.signUp(y,new Date);if(b!=null&&b.isSignUpComplete)await u.resendSignInCode(y);else throw new he("email","Log in failed")}catch(y){return await x(y)}},h=async()=>{try{Y.debug("Signin in with email..."),d.value=0;const y=c.value.email;if(!y)throw new he("email","Please enter your email address");const _=await u.signIn(y);if(!(_!=null&&_.isSignedIn)&&!(_!=null&&_.nextStep))throw new he("email",`Could not sign in with email "${y}". Please try again.`)}catch(y){return await x(y)}},$=async()=>{Y.debug("Subscribing..."),l("subscribe",c.value.email)},x=async y=>{if(y instanceof Error)switch(y.name){case"UsernameExistsException":if(n.autoSignInIfExisting&&d.value===1)return Y.debug("User already exists, signing in with email..."),h();throw new he("email","An account with that email address already exists.");case"UserNotFoundException":if(d.value===0)throw n.autoSignUpIfNonExisting?(Y.debug("User not found, signing up with email..."),d.value=1,c.value.termsAccepted=!1,s.handleStepSubmit(g)):v.value=!0,new he("email","We couldn't find an account with that email address.")}throw y};return re(()=>{n.isSignUp?s.handleStepSubmit(g):s.handleStepSubmit(h),!c.value.termsAccepted&&!p.value&&(c.value.termsAccepted=!0)}),(y,_)=>{var b,M;return m(),w("div",Pr,[a(r(Ct),{name:"email","validate-on-model-update":!1,"validate-on-blur":!!((M=(b=r(c))==null?void 0:b.email)!=null&&M.length)},{default:o(({componentField:O})=>[a(r(ot),null,{default:o(()=>[a(r(Nt),null,{default:o(()=>[f("Enter your email")]),_:1}),a(r($t),null,{default:o(()=>[a(r(is),Ss({type:"email",placeholder:"Your email address"},O,{autofocus:""}),null,16)]),_:2},1024),a(r(kt))]),_:2},1024)]),_:1},8,["validate-on-blur"]),p.value?(m(),U(r(Ct),{key:0,type:"checkbox",name:"termsAccepted"},{default:o(({value:O,handleChange:N})=>[a(r(ot),{class:"flex flex-col gap-2"},{default:o(()=>[i("div",Er,[a(r($t),{class:"inline-block"},{default:o(()=>[a(r(Te),{checked:O,"onUpdate:checked":N},null,8,["checked","onUpdate:checked"])]),_:2},1024),a(r(Nt),null,{default:o(()=>[i("span",Or,[f(" I agree to the "),a(T,{href:"https://clearcache.io/terms",target:"_blank",tabindex:"-1"},{default:o(()=>[f("Terms of Service")]),_:1}),f(", "),a(T,{href:"https://clearcache.io/privacy",target:"_blank",tabindex:"-1"},{default:o(()=>[f("Privacy")]),_:1}),f(" and "),a(T,{href:"https://clearcache.io/refunds",target:"_blank",tabindex:"-1"},{default:o(()=>[f("Refund Policy")]),_:1})])]),_:1})]),a(r(kt))]),_:2},1024)]),_:1})):E("",!0),v.value?(m(),U(ts,{key:1},{default:o(()=>[a(r(ss),{class:"grid grid-cols-2 gap-2 p-4 items-center text-center text-xs bg-muted text-muted-foreground"},{default:o(()=>[Ur,Ar,a(T,{href:"https://paddle.net/verify-email",target:"_blank"},{default:o(()=>[f("Click here")]),_:1}),a(Fe,{class:"inline-block"},{default:o(()=>[i("div",{onClick:$,class:"px-3 py-2 text-sm font-medium"}," Sign up now ")]),_:1})]),_:1})]),_:1})):E("",!0)])}}}),Ta=oe(Tr,[["__scopeId","data-v-5e9204d5"]]),Ba=V({__name:"VerifyEmail",setup(e){const t=Ge("wizardContext");if(!t)throw new Error("VerifyEmail must be used within a Checkout component");const s=Ie.getInstance(),n=us(),l=Vn(),c=I(le.emailCodeLength),u=Ya(!1),d=I(),p=async()=>{var _;g();const y=((_=n.value.emailCode)==null?void 0:_.join(""))??"";try{const b=await s.confirmSignIn(y);if(!(b!=null&&b.isSignedIn)){let M=new Error("We couldn't verify your email. Please try again.");throw M.name="CodeMismatchException",M}}catch(b){let M="Something went wrong. Please try again.";if(b instanceof Error)switch(b.name){case"CodeMismatchException":throw new he("emailCode",b.message??"That code didn't match. Please try again.");case"NotAuthorizedException":case"ExpiredCodeException":throw n.value.emailCode=[],u.value=!0,new he("emailCode","Your code has expired. Please request a new code.");default:M=b.message??"Something went wrong. Please try again.";break}throw new he("emailCode",M)}},v=()=>{var y;u.value=!1,n.value.emailCode=[],(y=d.value)==null||y.querySelectorAll("input").forEach(_=>{_.value="",_.focus()})},g=()=>{var y;(y=d.value)==null||y.querySelectorAll("input").forEach(_=>{_.blur()})},h=async()=>{if(t.showSpinner(),v(),!n.value.email)throw new Error("Please re-enter your email address");await s.resendSignInCode(n.value.email),t.hideSpinner()},$=async()=>{if(l.value.emailCode===void 0)return t.goToNext()},x=y=>{u.value=!1,n.value.emailCode=y.filter(Boolean)};return re(()=>{t.handleStepSubmit(p),t.onShow(async()=>{v()}),n.value.emailCode=[]}),(y,_)=>(m(),U(r(Ct),{name:"emailCode"},{default:o(({componentField:b,value:M})=>[a(r(ot),{class:"flex flex-col gap-2"},{default:o(()=>[a(r(Nt),null,{default:o(()=>[f("Verify your Email")]),_:1}),a(r($t),null,{default:o(()=>[i("span",{ref_key:"inputsContainer",ref:d},[a(r(Dn),{modelValue:M,"onUpdate:modelValue":[O=>M=O,x],placeholder:"○",otp:"",type:"number",name:b.name,onComplete:$,autofocus:""},{default:o(()=>[a(r(Rn),null,{default:o(()=>[(m(!0),w(ye,null,Be(c.value,(O,N)=>(m(),U(r(jn),{key:O,index:N,class:"bg-secondary text-secondary-foreground"},null,8,["index"]))),128))]),_:1})]),_:2},1032,["modelValue","onUpdate:modelValue","name"])],512)]),_:2},1024),i("p",null,[i("span",{class:A({"ring-primary ring-1 transition-all rounded-lg p-2":u.value})},[a(T,{onClick:h},{default:o(()=>[f("Resend code")]),_:1})],2)]),a(r(kt))]),_:2},1024)]),_:1}))}}),Je={ChoosePlan:gt(be.object({planId:be.string().min(1,"Please select a plan"),planInterval:be.string().default(cs.YEAR)})),EnterEmail:gt(be.object({email:be.string().email("Please enter a valid email address"),termsAccepted:be.boolean().refine(e=>e===!0,{message:"Please review the terms and conditions and select agree to continue."})})),VerifyEmail:gt(be.object({emailCode:be.array(be.coerce.string()).length(le.emailCodeLength,{message:`Please enter all ${le.emailCodeLength} digits of the code`})})),Payment:gt(be.object({status:be.string().optional()})),CheckStatus:gt(be.object({status:be.string().optional()}))},Br=e=>e?parseFloat(e)>0:!1,La=e=>Br(e)?"+ tax":"",Lr=e=>e?e.replace(/[\d.,]/g,"").trim():"",Vr=(e,t)=>(typeof e=="string"&&(e=parseFloat(e)),e=Math.ceil(e)/100,`${t}${e.toFixed(2)}`),Dr=e=>!!(e!=null&&e.trialPeriod),Rr=(e,t=!0)=>{var c,u,d;if(!e||!e.trialPeriod||((c=e.trialPeriod)==null?void 0:c.frequency)<=0)return"";const s=((u=e.trialPeriod)==null?void 0:u.frequency)??0,n=(d=e.trialPeriod)==null?void 0:d.interval,l=s>1&&t?n+"s":n;return`${s} ${l}`},Va=e=>{const n=(Array.isArray(e)?e:e==null?void 0:e.data.details.lineItems).map(l=>({amount:yt(l.price),interval:"year",item:l})).reduce((l,c)=>l.amount<((c==null?void 0:c.amount)??0)?l:c,{amount:1/0});return{amount:n.amount/12,interval:"month",item:n.item}},yt=e=>{var n;if(!e)return 0;const t=(n=e.billingCycle)==null?void 0:n.interval,s=parseFloat(e.unitPrice.amount);switch(t){case"year":return s;case"month":return s*12;case"week":return s*52;case"day":return s*365}return s},jr=(e,t,s=10)=>{if(!t||!(e!=null&&e.price))return null;const n=t.reduce((d,p)=>{const v=yt(d==null?void 0:d.price),g=yt(p==null?void 0:p.price);return v<g?p:d});if(!n||n.price.id===e.price.id)return null;const l=yt(e.price),c=yt(n.price);let u=Math.floor(100*(c-parseFloat(e.price.unitPrice.amount))/c);return{amount:c-l,percent:Math.floor(u/s)*s,numMonths:Math.min(12,Math.round(u/100*12)),item:e,maxItem:n}},Da=e=>{var s;switch(typeof e=="string"?e:(s=e==null?void 0:e.billingCycle)==null?void 0:s.interval){case"day":return"Daily";case"week":return"Weekly";case"month":return"Monthly";case"year":return"Yearly";default:return""}},qr=e=>{var s;const t=e==null?void 0:e.items;return t?Da((s=t[0])==null?void 0:s.price):""},zr=e=>{var n;const t=(n=e==null?void 0:e.items[0].trialDates)==null?void 0:n.endsAt;if(!t)return"";const s=oa(t);return s<=0?"":la(s)},Fr=(e,t="text-warning",s="text-success")=>{if(!e)return"";const{action:n,effectiveAt:l,resumeAt:c}=e,u=oa(l);if(u<=0)return"";const d=xt(n)+"ed",p=la(u);let v=`Scheduled to be <span class="${t}">${d}</span> in <span class="${t}">${p}</span>.`;return c&&(v+=` It will be <span class="${s}">resumed</span> on <span class="${s}">${new Date(xt(c)).toLocaleDateString()}</span>.`),v},Nr=i("p",{class:"text-xl text-muted-foreground"},"Loading subscription...",-1),Wr=i("p",{class:"font-semibold text-base"},"No subscription found",-1),Hr={class:"text-warning"},Yr={key:0,class:"flex gap-4 items-center"},Kr={class:"block h-full align-middle"},Jr={class:"flex items-center justify-center gap-1 text-muted-foreground"},Xr=["innerHTML"],Qr={key:2},Gr=i("span",{class:"text-primary"},"trial",-1),Zr={class:"text-primary"},eu=i("p",{class:"text-xl text-muted-foreground"},"Subscription canceled",-1),tu=i("p",null,"Your subscription has been canceled 😢",-1),su=["innerHTML"],au=i("div",{class:"p-3 font-medium"},"Re-Subscribe",-1),nu=i("p",{class:"text-xl text-muted-foreground"},"Subscription paused",-1),lu=i("p",null,"Your subscription is currently paused 😴",-1),ou=["innerHTML"],iu=i("p",{class:"text-xl text-muted-foreground"},"Subscription Past Due",-1),ru=i("p",null,"Your subscription is past due 😬",-1),uu=i("p",{class:"font-semibold text-base"},"Please sign in",-1),cu=i("p",null,"You need to be signed in to check your subscription status.",-1),du=i("span",{class:"text-muted-foreground"},"Click here",-1),fu=i("p",{class:"font-semibold text-base"},"Something went wrong",-1),pu=i("span",{class:"text-muted-foreground"},"Click here",-1),mu={key:0,class:"flex gap-2 justify-between items-center"},vu=i("span",{class:"text-muted-foreground"},"Manage Subscription",-1),gu={class:"flex gap-2 justify-between items-center"},hu=i("span",{class:"text-muted-foreground"},"Refresh",-1),_u=i("span",{class:"text-muted-foreground"},"Log Out",-1),Ra=V({__name:"SubscriptionStatus",props:{spacing:{default:"default"},showLinks:{type:Boolean,default:!0},showSpinner:{type:Boolean,default:!0}},emits:["subscribe"],setup(e,{emit:t}){const s=e,n=t,l=Ge("wizardContext",void 0);let c;const u=I("loading"),d=Le.getInstance(),p=Ie.getInstance(),v=I(""),g=I(""),h=I(""),$=I(""),x=I(""),y=I("");let _;const b=async P=>{await O(!0,!0)},M=async P=>{await O(!1,!0)},O=async(P,B=!0)=>{var Ne,mt;if(u.value="loading",p.isLoggedIn()||await p.update(),!p.isLoggedIn()){u.value="logged-out";return}v.value=await p.getUserEmail(),P&&await d.update(3);const L=d.isSubscribed();_=await d.getSubscription();const xe=_==null?void 0:_.scheduledChange,Pe=_==null?void 0:_.status;if(x.value=((Ne=_==null?void 0:_.managementUrls)==null?void 0:Ne.updatePaymentMethod)??"",y.value=((mt=_==null?void 0:_.managementUrls)==null?void 0:mt.cancel)??"",!Pe){u.value="none";return}if(!L&&Pe==="active"){u.value="error";return}if(u.value=Pe,g.value=qr(_),$.value=Fr(xe),Pe==="trialing"&&(h.value=zr(_)),Pe==="canceled"&&(y.value=void 0),!B&&u.value==="error")throw new he("status","Could not update subscription")},N=()=>{var P,B,L;if(l){n("subscribe",v.value);return}else{const xe=(P=_==null?void 0:_.items)!=null&&P.length?(L=(B=_.items[0].price)==null?void 0:B.billingCycle)==null?void 0:L.interval:void 0;d.requestCheckout({email:v.value,cycle:xe})}},F=async()=>{await p.signOut().catch()},G=async P=>{try{return await d.cancel(),P.preventDefault(),P.stopPropagation(),!1}catch(B){Y.error("Failed to cancel subscription via Paddle. Opening cancel link...",B),chrome.tabs.create({url:d.getCancelUrl()})}},k=D(()=>u.value==="loading"),C=D(()=>{switch(s.spacing){case"tight":return"space-y-4 tracking-relaxed";default:return"space-y-4 tracking-relaxed"}}),S=D(()=>{switch(s.spacing){case"tight":return"pt-4";default:return"pt-4"}}),q=D(()=>{switch(s.spacing){case"tight":return"size-12";default:return"size-16"}}),K=D(()=>{switch(s.spacing){case"tight":return"text-xs";default:return"text-sm"}}),ee=P=>{if(l)switch(l.handleStepSubmit(()=>O(!0,!1)),l.hideSpinner(),P){case"loading":l.setButtonStates({visible:!1},{visible:!1});break;case"error":l.setButtonStates({text:"Back"},{text:"Try Again"});break;default:l.setButtonStates({visible:!1},{text:"Continue"}),l.handleStepSubmit(async()=>{});break}};return re(async()=>{p.addEventListener(Ft.Changed,b),d.addEventListener(Ae.SubscriptionValidated,M),d.addEventListener(Ae.SubscriptionInvalidated,M),l?(u.value="loading",c=ne(u,ee),ee(u.value),l.onShow(()=>O(!0,!1))):O(!0)}),Ka(()=>{p.removeEventListener(Ft.Changed,b),d.removeEventListener(Ae.SubscriptionValidated,M),d.removeEventListener(Ae.SubscriptionInvalidated,M),c&&(c(),c=void 0)}),(P,B)=>(m(),w(ye,null,[i("div",{class:A(["text-center text-balance",[C.value,K.value]])},[u.value==="loading"?(m(),w("div",{key:0,class:A(C.value)},[Nr,P.showSpinner?(m(),U(ft,{key:0,class:A(["block mx-auto",q.value])},null,8,["class"])):E("",!0)],2)):u.value==="none"?(m(),w("div",{key:1,class:A(C.value)},[i("div",{class:A(["flex flex-col items-center p-4 bg-muted text-muted-foreground rounded-md",C.value])},[Wr,a(r(zt),{class:A(["block mx-auto text-warning",q.value])},null,8,["class"]),i("p",Hr,[f("We couldn't find an active subscription for "),i("em",null,j(v.value),1),f(" in our system.")])],2),i("p",null,[f("If you're having trouble accessing your subscription, or if you have any questions, please "),a(T,{href:r(le).links.support},{default:o(()=>[f("contact support")]),_:1},8,["href"]),f(". ")])],2)):u.value==="active"||u.value==="trialing"?(m(),w("div",{key:2,class:A(C.value)},[i("div",{class:A(["flex flex-col items-center bg-muted text-muted-foreground rounded-md",C.value,{"p-4":P.spacing==="tight","p-8 text-base":P.spacing==="default"}])},[i("p",{class:A({"text-xl":P.spacing==="tight","text-2xl":P.spacing==="default"})},"You're subscribed!",2),P.spacing==="tight"?(m(),w("div",Yr,[a(r(Wt),{class:A(["block mx-auto text-primary",q.value])},null,8,["class"]),i("div",Kr,[f("Plan: "),a(r(ys),null,{default:o(()=>[f(j(g.value),1)]),_:1})])])):(m(),w("div",{key:1,class:A(C.value)},[a(r(Wt),{class:A(["block mx-auto text-primary",q.value])},null,8,["class"]),i("p",null,[f("Thanks for supporting this extension with your "),a(r(ys),null,{default:o(()=>[f(j(g.value),1)]),_:1}),f(" subscription.")])],2))],2),i("p",Jr,[$.value||u.value==="trialing"?(m(),U(r(Es),{key:0,class:"size-4"})):E("",!0),$.value?(m(),w("span",{key:1,innerHTML:$.value},null,8,Xr)):u.value==="trialing"?(m(),w("span",Qr,[f("Your "),Gr,f(" will end "),i("span",Zr,j(h.value),1)])):E("",!0)])],2)):u.value==="canceled"?(m(),w("div",{key:3,class:A(C.value)},[i("div",{class:A(["flex flex-col items-center p-4 bg-muted text-muted-foreground rounded-md",C.value])},[eu,a(r(qn),{class:A(["block mx-auto text-warning",q.value])},null,8,["class"]),tu,$.value?(m(),w("p",{key:0,innerHTML:$.value},null,8,su)):E("",!0),i("p",null,[a(Fe,{onClick:N},{default:o(()=>[au]),_:1})])],2)],2)):u.value==="paused"?(m(),w("div",{key:4,class:A(C.value)},[i("div",{class:A(["flex flex-col items-center p-4 bg-muted text-muted-foreground rounded-md",C.value])},[nu,a(r(zn),{class:A(["block mx-auto text-warning",q.value])},null,8,["class"]),lu,$.value?(m(),w("p",{key:0,innerHTML:$.value},null,8,ou)):E("",!0)],2)],2)):u.value==="past_due"?(m(),w("div",{key:5,class:A(C.value)},[i("div",{class:A(["flex flex-col items-center p-4 bg-muted text-muted-foreground rounded-md",C.value])},[iu,a(r(zt),{class:A(["block mx-auto text-warning",q.value])},null,8,["class"]),ru],2),i("p",null,[f("If you have any questions, please "),a(T,{href:r(le).links.support},{default:o(()=>[f("contact support")]),_:1},8,["href"]),f(". ")])],2)):u.value==="logged-out"?(m(),w("div",{key:6,class:A(C.value)},[i("div",{class:A(["flex flex-col items-center p-4 bg-muted text-muted-foreground rounded-md",C.value])},[uu,a(r(zt),{class:A(["block mx-auto text-warning",q.value])},null,8,["class"]),cu],2),i("p",null,[f("Can't find your subscription? "),a(T,{href:"https://paddle.net/verify-email"},{default:o(()=>[du]),_:1})]),i("p",null,[f("If you have any questions, please "),a(T,{href:r(le).links.support},{default:o(()=>[f("contact support")]),_:1},8,["href"]),f(". ")])],2)):(m(),w("div",{key:7,class:A(C.value)},[i("div",{class:A(["flex flex-col items-center p-4 bg-muted text-muted-foreground rounded-md",C.value])},[fu,a(r(ya),{class:A(["block mx-auto text-danger",q.value])},null,8,["class"]),i("p",null,[f("There was an error while checking your subscription status. Please "),a(T,{onClick:O},{default:o(()=>[f("click here to retry")]),_:1}),f(". ")])],2),i("p",null,[f("Can't find your subscription? "),a(T,{href:"https://paddle.net/verify-email"},{default:o(()=>[pu]),_:1})]),i("p",null,[f("If the problem persists, "),a(T,{href:r(le).links.support},{default:o(()=>[f("contact support")]),_:1},8,["href"]),f(". ")])],2))],2),i("div",{class:A([S.value])},[P.showLinks?(m(),w("p",mu,[a(r(Ot),null,{default:o(()=>[a(r(Ut),null,{default:o(()=>[(x.value||y.value)&&!k.value?(m(),U(T,{key:0,title:"Manage your subscription"},{default:o(()=>[vu]),_:1})):E("",!0)]),_:1}),a(r(At),{"align-offset":8,sideOffset:12,class:"max-w-48 text-center"},{default:o(()=>[i("ul",null,[i("li",null,[x.value&&!k.value?(m(),U(T,{key:0,href:x.value,title:"Update your subscription payment method"},{default:o(()=>[f("Update Payment Method")]),_:1},8,["href"])):E("",!0)]),i("li",null,[y.value&&!k.value?(m(),U(T,{key:0,onClick:G,title:"Cancel your subscription"},{default:o(()=>[f("Cancel Subscription")]),_:1})):E("",!0)])]),a(r(ba),{width:16,height:8,class:"fill-popover mt-[-1px]"})]),_:1})]),_:1}),i("span",gu,[k.value?E("",!0):(m(),U(T,{key:0,onClick:O,title:"Refresh subscription status"},{default:o(()=>[hu]),_:1})),k.value?E("",!0):(m(),U(r(ie),{key:1,orientation:"vertical",class:"inline-block w-[1px] h-3 border-red-500"})),a(T,{onClick:F,title:"Log out of your account"},{default:o(()=>[_u]),_:1})])])):E("",!0)],2)],64))}}),yu=V({__name:"SignIn",props:{isOpen:{type:Boolean,type:Boolean,default:!1},isOpenModifiers:{}},emits:pe(["subscribe"],["update:isOpen"]),setup(e,{emit:t}){const s=I([Je.EnterEmail,Je.VerifyEmail,Je.CheckStatus]),n={initialValues:{email:"",termsAccepted:!1,emailCode:Array(le.emailCodeLength).fill("")}},l=I(0),c=D(()=>y[l.value]),u=D(()=>_[l.value]),d=z(e,"isOpen"),p=t,v=async b=>{d.value=!1,p("subscribe",b)},g=async(b,M)=>M,h=async(b,M)=>b===2?(await Ie.getInstance().signOut().catch(),0):M,$=b=>{b&&(l.value=0),d.value=b},x=async()=>{d.value=!1},y={0:"Log in with your email",1:"Confirm your email",2:"Subscription status"},_={0:"Enter the email address you signed up with.",1:"Please confirm your email address by entering the code we sent you. If you can't find it, check your spam folder.",2:""};return(b,M)=>(m(),U(r(rs),{open:d.value,"onUpdate:open":[M[1]||(M[1]=O=>d.value=O),$]},{default:o(()=>[a(r(Ps),{class:"flex flex-col gap-2"},{default:o(()=>[J(b.$slots,"trigger",{},()=>[a(r(pt),{class:"flex gap-2 items-center"},{default:o(()=>[a(T,null,{default:o(()=>[f("Log In")]),_:1})]),_:1})],!0)]),_:3}),a(r(as),{class:"p-6"},{default:o(()=>[a(r(ns),null,{default:o(()=>[a(r(ls),null,{default:o(()=>[a(we,{level:2},{default:o(()=>[f(j(c.value),1)]),_:1})]),_:1}),a(r(os),{innerHTML:u.value},null,8,["innerHTML"])]),_:1}),d.value?(m(),U(Ua,{key:0,onSubmit:x,validationSchemas:s.value,"form-options":n,"current-step":l.value,"onUpdate:currentStep":M[0]||(M[0]=O=>l.value=O),"route-to-next":g,"route-to-prev":h},{default:o(()=>[a(Ke,null,{default:o(()=>[a(Ta,{isSignUp:!1,onSubscribe:v})]),_:1}),a(Ke,null,{default:o(()=>[a(Ba)]),_:1}),a(Ke,null,{default:o(()=>[a(Ra,{onSubscribe:v,"show-links":!1})]),_:1})]),_:1},8,["validationSchemas","current-step"])):E("",!0)]),_:1})]),_:3},8,["open"]))}}),bu=oe(yu,[["__scopeId","data-v-2d21b508"]]),wu={key:0},xu=V({__name:"HeightTransition",setup(e){const t=ta(),s=c=>{if(!(c instanceof HTMLElement))return;const u=c,d=getComputedStyle(u).width;u.style.width=d,u.style.position="absolute",u.style.visibility="hidden",u.style.height="auto";const p=getComputedStyle(u).height;u.style.width="",u.style.position="",u.style.visibility="",u.style.height="0",getComputedStyle(u).height,requestAnimationFrame(()=>{u.style.height=p})},n=c=>{if(!(c instanceof HTMLElement))return;const u=c;u.style.height="auto"},l=c=>{if(!(c instanceof HTMLElement))return;const u=c,d=getComputedStyle(u).height;u.style.height=d,getComputedStyle(u).height,requestAnimationFrame(()=>{u.style.height="0"})};return(c,u)=>r(t)==="reduce"?(m(),w("div",wu,[J(c.$slots,"default",{},void 0,!0)])):(m(),U(ts,{key:1,name:"expand",onEnter:s,onAfterEnter:n,onLeave:l},{default:o(()=>[J(c.$slots,"default",{},void 0,!0)]),_:3}))}}),ks=oe(xu,[["__scopeId","data-v-39d8b29b"]]),$u={key:0},ku=V({__name:"Prices",props:{primaryClass:{type:String,default:"font-normal block"},secondaryClass:{type:String,default:"text-xs lowercase font-light text-muted-foreground"}},setup(e){const t=I(),s=I(),n=I(""),l=I("");return re(async()=>{var v,g,h;const c=await Et.getInstance().getPricePreviews(!1).catch();t.value=Va(c),s.value=t.value.item;const u=Lr((v=t.value.item)==null?void 0:v.formattedTotals.subtotal),d=Vr(t.value.amount,u),p=La((g=t.value.item)==null?void 0:g.unitTotals.tax);if(!d){Y.info("Could not load price info");return}n.value=`Only ${d} per ${t.value.interval}`,l.value+=`with a ${Da((h=t.value.item)==null?void 0:h.price)} plan`,l.value+=p?` (${p})`:""}),(c,u)=>(m(),U(ks,null,{default:o(()=>[n.value?(m(),w("div",$u,[i("span",{class:A(e.primaryClass)},j(n.value),3),i("span",{class:A(e.secondaryClass)},j(l.value),3)])):E("",!0)]),_:1}))}}),Cu={class:"items-stretch"},Su=sa('<ul class="space-y-0.5 grow"><li>✅ Customize domains to clear</li><li>✅ Clear only the active tab</li><li>✅ Clear data from the last 15 minutes</li><li>✅ Clear app and extension data</li><li>✅ Sync settings across devices</li><li>✅ Import Browser settings</li><li>✅ New UI and icon</li><li>✅ Dark/light mode</li><li>🆓 Free to use 🚫 No ads 🚫 No tracking</li></ul><span class="grow"></span>',2),Iu={key:1,class:"flex justify-center"},Mu=i("span",{class:"text-plus-gradient"},"PLUS",-1),Pu={class:"space-y-0.5 grow"},Eu=i("span",null,"🌟 Customize domains ",-1),Ou={class:"text-muted-foreground inline"},Uu=i("p",null,"For example:",-1),Au=i("ul",null,[i("li",null,[f("💫 Clear cookies on "),i("code",null,"facebook.com")]),i("li",null,[f("💫 Clear cache on the "),i("code",null,"active tab")]),i("li",null,[f("💫 Clear localStorage on "),i("code",null,"localhost")])],-1),Tu=i("p",null,[i("em",null,"All in one click!")],-1),Bu=i("span",null,"🌟 Create ",-1),Lu={class:"text-muted-foreground inline"},Vu=i("p",null,"For example:",-1),Du=i("ul",null,[i("li",null,"💫 One preset per project"),i("li",null,"💫 Preset for work and personal use"),i("li",null,"💫 Preset to clear everything"),i("li",null,"💫 Preset for specific sites")],-1),Ru=i("span",null,"🌟 Automated ",-1),ju={class:"text-muted-foreground inline"},qu=i("p",null,"For example, clear data...",-1),zu=i("ul",null,[i("li",null,"💫 ...every 15, 30, ... minutes"),i("li",null,"💫 ...when a tab is closed"),i("li",null,"💫 ...when Chrome starts"),i("li",null,"💫 ...on idle")],-1),Fu=i("li",null,"🌟 Close all windows after clearing",-1),Nu=i("li",null,"🌟 Import/export settings",-1),Wu=i("li",{class:"italic"},"🌟 Coming Soon: Notifications",-1),Hu={key:1,class:"text-center leading-4 grow items-center py-2"},Yu={key:2,class:"flex justify-center"},Ku=i("div",{class:"p-3 font-medium"},[f("Try "),i("em",null,"PLUS"),f(),i("span",{class:"underline"},"free"),f(" for 7 days")],-1),Ju=V({__name:"Features",props:{showBasic:{type:Boolean,default:!0},showPlus:{type:Boolean,default:!0},compact:{type:Boolean,default:!1},showButtons:{type:Boolean,default:!0}},emits:["explore","subscribe"],setup(e,{emit:t}){const s=e,n=t,l=I(!1),c=I(!1),u=I(!1);return(d,p)=>(m(),w("div",Cu,[s.showBasic?(m(),w("div",{key:0,class:A(["flex flex-col justify-start min-h-full space-y-4 border-[1px] rounded-lg px-5 py-4 transition-all",{"hover:drop-shadow-lg hover:-translate-y-1":!s.compact}])},[s.compact?E("",!0):(m(),U(we,{key:0,level:3,class:"text-center font-normal"},{default:o(()=>[f("What's New")]),_:1})),Su,s.compact?E("",!0):(m(),w("p",Iu,[a(r(Q),{class:"inline-block",onClick:p[0]||(p[0]=v=>n("explore"))},{default:o(()=>[f("Explore the new features")]),_:1})]))],2)):E("",!0),s.showPlus?(m(),w("div",{key:1,class:A(["flex flex-col h-full justify-start space-y-4 border-[1px] rounded-lg px-5 py-4 bg-gradient-to-tr from-plus-gradient-stop/15 to-plus-gradient-start/15 transition-all",{"hover:drop-shadow-lg hover:-translate-y-1":!s.compact}])},[s.compact?E("",!0):(m(),U(we,{key:0,level:3,class:"text-center font-normal"},{default:o(()=>[Mu,f(" advanced features")]),_:1})),i("ul",Pu,[i("li",null,[Eu,i("span",Ou,[a(r(qt),{open:l.value,"onUpdate:open":p[2]||(p[2]=v=>l.value=v)},{default:o(()=>[a(T,{onClick:p[1]||(p[1]=v=>l.value=!0),class:"font-medium text-primary"},{default:o(()=>[f("per data type")]),_:1}),a(r(Rt)),a(r(jt),{class:"space-y-1"},{default:o(()=>[Uu,Au,Tu]),_:1})]),_:1},8,["open"])])]),i("li",null,[Bu,i("span",Lu,[a(r(qt),{open:u.value,"onUpdate:open":p[4]||(p[4]=v=>u.value=v)},{default:o(()=>[a(T,{onClick:p[3]||(p[3]=v=>u.value=!0),class:"font-medium text-primary"},{default:o(()=>[f("custom presets")]),_:1}),a(r(Rt)),a(r(jt),{class:"space-y-1"},{default:o(()=>[Vu,Du]),_:1})]),_:1},8,["open"])])]),i("li",null,[Ru,i("span",ju,[a(r(qt),{open:c.value,"onUpdate:open":p[6]||(p[6]=v=>c.value=v)},{default:o(()=>[a(T,{onClick:p[5]||(p[5]=v=>c.value=!0),class:"font-medium text-primary"},{default:o(()=>[f("schedule and triggers")]),_:1}),a(r(Rt)),a(r(jt),{class:"space-y-1"},{default:o(()=>[qu,zu]),_:1})]),_:1},8,["open"])])]),Fu,Nu,Wu]),s.compact?E("",!0):(m(),w("div",Hu,[a(ku)])),s.compact?E("",!0):(m(),w("p",Yu,[a(Fe,{class:"inline-block",onClick:p[7]||(p[7]=v=>n("subscribe"))},{default:o(()=>[Ku]),_:1})]))],2)):E("",!0)]))}}),Xu={key:0,title:"Compared to a monthly plan"},Qu=["title"],Gu=V({__name:"Savings",props:{item:{},itemModifiers:{},allItems:{},allItemsModifiers:{}},emits:["update:item","update:allItems"],setup(e){const t=I(),s=z(e,"item"),n=z(e,"allItems"),l=()=>{t.value=jr(s.value,n.value,5)};return ne(s,l),ne(n,l),re(l),(c,u)=>{var d,p,v;return t.value?(m(),w("span",Xu,[f(" Save "+j((d=t.value)==null?void 0:d.percent)+"% ",1),(p=t.value)!=null&&p.numMonths?(m(),w("span",{key:0,title:`Compared to the ${t.value.maxItem.price.name} plan`},"("+j((v=t.value)==null?void 0:v.numMonths)+" month value)",9,Qu)):E("",!0)])):E("",!0)}}}),Zu=V({__name:"CopyToClipboard",props:{modelValue:{required:!0,default:""},modelModifiers:{}},emits:["update:modelValue"],setup(e){const t=z(e,"modelValue"),{copy:s,copied:n,isSupported:l}=Ja({source:t});return(c,u)=>r(l)?(m(),w("button",{key:0,onClick:u[0]||(u[0]=ge(d=>r(s)(t.value),["prevent","stop"])),title:"Copy to clipboard",class:"inline-block overflow-auto size-5 rounded-md border-border border-[1px] border-solid hover:border-accent-foreground"},[r(n)?(m(),U(r(xa),{key:1,class:"size-full bg-primary text-primary-foreground p-1"})):(m(),U(r(wa),{key:0,class:"size-full p-1 bg-secondary text-secondary-foreground"}))])):E("",!0)}}),ec={class:"gap-2 flex items-center"},tc={key:1,class:"grow space-x-1 first-letter:capitalize"},sc={key:0},ac={key:1,class:"text-plus-gradient"},nc={key:2},lc={key:3},oc={class:"font-medium bg-primary text-primary-foreground rounded-md px-1"},ic=V({__name:"Discount",props:pe({icon:{type:Boolean,default:!1}},{item:{},itemModifiers:{}}),emits:["update:item"],setup(e){const t=z(e,"item"),s=I(),n=async()=>{var c,u;try{if(!t.value){const v=await Et.getInstance().getPricePreviews(!1).catch(),g=v==null?void 0:v.data.details.lineItems.filter($=>$.discounts!=null&&$.discounts.length>0),h=Va(g);h.item&&(t.value=h.item)}let d=((u=(c=t.value)==null?void 0:c.discounts)==null?void 0:u.filter(v=>v.discount.status==="active"))??[];d=d.sort((v,g)=>parseFloat(g.discount.amount)-parseFloat(v.discount.amount));const p=d.length>0;s.value=p?d[0]:void 0}catch(d){Y.error("Failed to load discounts",d),s.value=void 0}},l=D(()=>{var p,v,g,h;const c=(p=s.value)==null?void 0:p.discount.maximumRecurringIntervals,u=(v=s.value)==null?void 0:v.discount.recur,d=(h=(g=t.value)==null?void 0:g.price.billingCycle)==null?void 0:h.interval;if(!u||c===1)return`one ${d}`;if(c){if(c>1)return`for ${c} ${d}s`}else return`every ${d}`});return ne(t,n),re(n),(c,u)=>Z((m(),w("span",ec,[e.icon?(m(),U(r(Fn),{key:0,class:"inline-block align-bottom size-8 shrink-0 text-secondary-foreground/50","stroke-width":"1"})):E("",!0),s.value&&t.value?(m(),w("span",tc,[s.value.discount.usageLimit?(m(),w("span",sc,"first "+j(s.value.discount.usageLimit)+" subscribers get",1)):E("",!0),s.value.discount.amount?(m(),w("span",ac,j(s.value.discount.amount)+"% off",1)):E("",!0),l.value?(m(),w("span",nc,j(l.value),1)):E("",!0),s.value.discount.code?(m(),w("span",lc,[f("with code "),i("code",oc,j(s.value.discount.code),1),a(Zu,{"model-value":s.value.discount.code,class:"align-text-top ml-1"},null,8,["model-value"])])):E("",!0)])):E("",!0)],512)),[[te,s.value&&t.value]])}}),rc=e=>(Ve("data-v-6626d182"),e=e(),De(),e),uc={class:"flex flex-col gap-4 items-center w-full"},cc={class:"flex flex-col text-center space-y-0.5 drop-shadow-lg"},dc={class:"text-2xl uppercase tracking-wider font-normal group-[.selected]:font-semibold"},fc={key:0,class:"text-xs py-1 font-light"},pc={class:"block font-normal group-[.selected]:font-semibold"},mc={class:"text-lg"},vc={class:"text-xs font-light leading-none"},gc=rc(()=>i("p",{class:"text-lg font-light tracking-tight text-center"},[f("What you get with "),i("span",{class:"text-plus-gradient"},"Plus"),f(":")],-1)),hc=V({__name:"ChoosePlan",setup(e){const t=Ge("wizardContext"),s=I(),n=I(),l=us();if(!t)throw new Error("ChoosePlan must be used within a Checkout component");const c=async()=>{l.value.planId==="undefined"&&(l.value.planId=void 0),Y.debug("Updating plans...",l.value.planId),t.setButtonStates({},{}),t.handleStepSubmit(async()=>{}),t.showSpinner();try{const v=Ie.getInstance(),g=Et.getInstance(),h=v.isLoggedIn();s.value=await g.getPricePreviews(h);const $=l.value.planId,x=l.value.planInterval,y=await g.getBestMatchingPlanId($,x,n.value,h);u(y.price.id),t.hideSpinner()}catch{throw t.hideSpinner(),t.setButtonStates({},{text:"Try Again"}),t.handleStepSubmit(c),l.value.planId="undefined",new he("planId","Could not load plans. Please ensure you're connected to the internet, or try again later.")}},u=v=>{var x,y,_;if(!v)return;const g=((x=s.value)==null?void 0:x.data.details.lineItems)??[];n.value=g.sort((b,M)=>{const O=parseFloat(b.price.unitPrice.amount),N=parseFloat(M.price.unitPrice.amount);return O-N});const h=(y=n.value)==null?void 0:y.find(b=>b.price.id===v),$=((_=h==null?void 0:h.price.billingCycle)==null?void 0:_.interval)??cs.YEAR;l.value.planId=(h==null?void 0:h.price.id)??"",l.value.planInterval=$},d=v=>v===0,p=v=>{var g;return v===(((g=n==null?void 0:n.value)==null?void 0:g.length)??0)-1};return t.onShow(async()=>c()),(v,g)=>(m(),U(r(Ct),{name:"planId",type:"radio"},{default:o(({componentField:h})=>[a(r(ot),null,{default:o(()=>[a(r($t),null,{default:o(()=>[a(r(ha),Ss(h,{class:"grid grid-cols-2 gap-8 pb-4","onUpdate:modelValue":u}),{default:o(()=>[n.value!==void 0?(m(!0),w(ye,{key:0},Be(n.value,($,x)=>(m(),U(r(ot),null,{default:o(()=>[a(r($t),null,{default:o(()=>[a(r(_a),{name:"planId",value:$.price.id,class:"sr-only"},null,8,["value"])]),_:2},1024),a(r(Nt),null,{default:o(()=>[i("div",uc,[a(Fe,{selected:r(l).planId===$.price.id,class:A(["self-stretch group peer data-[selected=false]:opacity-80 data-[selected=true]:scale-105 data-[selected=true]:shadow-xl",{"origin-left":d(x),"origin-right":p(x)}])},{default:o(()=>[a(r(Hs),{class:"aspect-square place-content-center space-y-0 transition-all text-plus-foreground"},{default:o(()=>[a(r(ca),{class:"size-20 my-1 mx-auto group-hover:scale-110 drop-shadow-lg"}),i("div",cc,[i("p",dc,j($.price.name),1),r(Dr)($.price)?(m(),w("p",fc,"Free "+j(r(Rr)($.price,!1))+" trial, then",1)):E("",!0),i("div",pc,[i("p",mc,j($.formattedUnitTotals.subtotal),1),i("p",vc,j(r(La)($.unitTotals.tax)),1)])])]),_:2},1024)]),_:2},1032,["selected","class"]),a(Gu,{item:n.value[x],"onUpdate:item":y=>n.value[x]=y,"all-items":n.value,"onUpdate:allItems":g[0]||(g[0]=y=>n.value=y),class:A(["px-3 py-1 rounded-full text-primary-foreground bg-plus-gradient text-center text-balance text-xs font-normal opacity-80 shadow-md scale-100 peer-[.selected]:scale-105 peer-[.selected]:translate-y-2 peer-[.selected]:opacity-100 peer-[.selected]:shadow-lg",{"origin-left":d(x),"origin-right":p(x)}])},null,8,["item","onUpdate:item","all-items","class"])])]),_:2},1024)]),_:2},1024))),256)):E("",!0)]),_:2},1040),a(r(kt)),a(ic,{class:"w-full mt-6 p-1 text-sm font-light tracking-tight leading-7 text-center border-primary border-dashed border-[1px] rounded-xl"})]),_:2},1024),a(r(Hs),{class:"space-y-2"},{default:o(()=>[gc,a(Ju,{"show-basic":!1,compact:!0,class:"text-base font-light tracking-tight leading-normal"})]),_:1})]),_:2},1024)]),_:1}))}}),_c=oe(hc,[["__scopeId","data-v-6626d182"]]),Me=e=>(Ve("data-v-bee7c488"),e=e(),De(),e),yc={class:"font-normal text-base flex flex-col gap-4"},bc={class:"flex justify-center items"},wc={key:0},xc={key:0,class:"text-muted-foreground"},$c={key:0},kc={key:1,class:"space-y-2"},Cc=Me(()=>i("p",null,"Requesting permissions to contact our subscriptions backend...",-1)),Sc=Me(()=>i("em",{class:"text-primary"},"Allow",-1)),Ic={key:1,class:"space-y-8 text-balance"},Mc=Me(()=>i("p",{class:"text-xl"},"Welcome back! ♻️",-1)),Pc=Me(()=>i("p",null,[f("It looks like you already tried Clear Cache "),i("span",{class:"text-plus-gradient"},"Plus"),f(" previously, and trials are only available to new users.")],-1)),Ec={class:"text-primary"},Oc={class:"flex flex-col space-y-4"},Uc={key:2,class:"space-y-4"},Ac={key:3,class:"space-y-4"},Tc={key:4,class:"space-y-4"},Bc=Me(()=>i("p",{class:"status warning"},"We're still syncing your subscription with our backend.",-1)),Lc={key:5,class:"space-y-4"},Vc={key:0},Dc={key:6,class:"space-y-4"},Rc=Me(()=>i("p",null,[i("strong",null,"Welcome back!")],-1)),jc={class:"text-success"},qc=Me(()=>i("p",{class:"status success"},[f("Enjoy Clear Cache "),i("span",{class:"text-plus-gradient"},"Plus"),f("! 😊♻️")],-1)),zc={key:7,class:"space-y-8"},Fc=Me(()=>i("p",null,[i("strong",null,"Thanks for subscribing!")],-1)),Nc=Me(()=>i("p",{class:"status success"},[f("Enjoy Clear Cache "),i("span",{class:"text-plus-gradient"},"Plus"),f("! 😊♻️")],-1)),Wc=Me(()=>i("blockquote",{class:"italic space-y-2 text-balance"},[i("p",null,"Your support means a lot and contributes to the development of this extension."),i("p",null,"Thank you, Ben")],-1)),Hc={class:"text-xs text-muted-foreground space-y-1 flex justify-between items-end"},Yc={class:"flex gap-1"},Kc=Me(()=>i("span",null,"Questions?",-1)),Jc=V({__name:"Payment",setup(e){const t=Ge("wizardContext");if(!t)throw new Error("Payment must be used within a Checkout component");const s=Le.getInstance(),n=Ie.getInstance(),l=Et.getInstance(),c=us(),u=I("Processing"),d=qs(async()=>await s.hasPermissions());let p;const v=async()=>{var F,G;if(Y.info("Checking out..."),u.value==="Completed"||u.value==="Subscription Restored"){Y.info("Checkout completed, proceeding to next step");return}try{u.value="Processing",await s.ensurePermissions(),c.value.email||(c.value.email=n.getUserEmail());let k=n.getCustomerId();const C=c.value.planId,S=c.value.planInterval,q=c.value.email;if(!C)throw u.value="Session error",new Error("Your session has expired (plan was not found).");if(!q&&!k)throw u.value="Session error",new Error("Your session has expired.");await s.update();const K=s.getSubscription();if(K){if(K.status==="active"||K.status==="trialing")throw u.value="Subscription Restored",new Error;if(K.status==="paused"||K.status==="past_due"){u.value="Subscription on Hold";const Ne=K.status==="paused"?"paused":"past due";throw new Error(`You have a subscription that is currently ${Ne}.`)}const B=await y(!0),L=await l.getBestMatchingPlanId(C,S,B,!0),xe=L.price.id===C,Pe=L.price.trialPeriod??!1;if(!xe&&!Pe)throw u.value="Plan not available",new Error}const ee=h(C,q,k),P=await s.checkout(ee);if(Y.debug(bt.green("Checkout result:"),P),P.status===Ys.canceled)throw Y.info(bt.yellow("Checkout canceled:"),P.status),u.value="Checkout canceled",new Error("Checkout canceled.");if(P.status!==Ys.COMPLETED||((F=P.customer)==null?void 0:F.id)===void 0)throw Y.error("Checkout failed:",P.status,(G=P.customer)==null?void 0:G.id),u.value="Checkout failed",new Error(`Checkout failed: ${P.status}`);k=P.customer.id,await n.saveCustomerId(k),await g(!1),u.value="Completed"}catch(k){const C=k instanceof Error?(k==null?void 0:k.message)??k:k;if(Y.debug("Checkout error:",C,`checkout status: ${u.value}`),k instanceof Error&&k.name===nn.CheckoutClosed?u.value="Checkout canceled":u.value==="Processing"&&(u.value="Checkout failed"),k.message)throw new he("status",(k==null?void 0:k.message)||"Something went wrong.")}},g=async(F=!0)=>{if(await s.update(10,!0),!s.isSubscribed()&&(u.value="Validation failed",!F))throw new Error("Could not verify your subscription at this time.")},h=(F,G,k)=>{let C;if(k)C={id:k};else if(G)C={email:G};else throw new Error("No email or customer ID provided.");return{customer:C,items:[{priceId:F,quantity:1}],customData:{userId:n.getUserId()}}},$=async()=>{await v().catch(()=>{})},x=async()=>{var S;const F=c.value.planId,G=c.value.planInterval,k=await y(),C=await l.getBestMatchingPlanId(F,G,k,!0);if(C&&C.price.id!==F){Y.info("Switching to eligible plan:",C.price.name,C.price.id);const q=C.price.id,K=((S=C.price.billingCycle)==null?void 0:S.interval)??cs.YEAR;c.value.planId=q,c.value.planInterval=K,await v()}},y=async(F=!1)=>((!p||F)&&(p=(await l.getPricePreviews(!0,F)).data.details.lineItems),p),_=async()=>{await t.goTo(0)},b=D(()=>s.getUpdatePaymentUrl()),M=qs(async()=>{var k;const F=await y(!0),G=F==null?void 0:F.find(C=>C.price.id===c.value.planId);return((k=G==null?void 0:G.price)==null?void 0:k.name)??""}),O=async()=>{switch(u.value){case"Completed":case"Subscription Restored":case"Validation failed":return;case"Plan not available":case"Checkout canceled":case"Checkout failed":case"Session error":default:return _()}},N=async F=>{switch(F==="Processing"?t.showSpinner():t.hideSpinner(),t.handleStepSubmit(async()=>v()),F){case"Processing":t.setButtonStates({visible:!1},{visible:!1});break;case"Completed":t.setButtonStates({visible:!1},{text:"Continue"});break;case"Subscription Restored":t.setButtonStates({visible:!1},{text:"Continue"});break;case"Plan not available":t.setButtonStates({text:"Review Plans"},{text:"Confirm"}),t.handleStepSubmit(async()=>x());break;case"Checkout canceled":case"Checkout failed":t.setButtonStates({text:"Review Plans"},{text:"Retry"});break;case"Validation failed":t.setButtonStates({visible:!1},{text:"Retry"});break;case"Subscription on Hold":case"Session error":default:t.setButtonStates({text:"Try Again"},{visible:!1});break}};return ne(u,N),re(()=>{N(u.value),t.onShow(async()=>v()),t.onReload(async()=>v())}),(F,G)=>(m(),w("div",yc,[i("p",bc,[r(M)?(m(),w("span",wc,[f("Selected plan: "),a(T,{class:"text-xs shrink-0",onClick:O,title:"Click to change"},{default:o(()=>[a(r(ys),{variant:"default"},{default:o(()=>[f(j(r(M)),1)]),_:1})]),_:1})])):E("",!0)]),a(r(ss),{class:"text-sm text-center p-8 text-balance"},{default:o(()=>[a(r(Ct),{name:"status"},{default:o(()=>[a(r(ot),null,{default:o(()=>[a(r(kt),{class:"mb-8"})]),_:1})]),_:1}),u.value==="Processing"?(m(),w("div",xc,[r(d)?(m(),w("p",$c,"Connecting you to our subscriptions backend...")):(m(),w("div",kc,[Cc,a(ft,{class:"block mx-auto w-12 h-12 text-primary"}),a(we,{level:4},{default:o(()=>[f("Please select "),Sc,f(" to continue.")]),_:1})]))])):u.value==="Plan not available"?(m(),w("div",Ic,[Mc,Pc,i("p",null,[f("Would you like to continue with a "),i("span",Ec,j(r(M)),1),f(" subscription?")]),i("p",Oc,[a(r(Q),{onClick:x},{default:o(()=>[f("Sign me up!")]),_:1})]),i("p",null,[a(T,{onClick:_,class:"text-xs"},{default:o(()=>[f("Review all available Plans")]),_:1})])])):E("",!0),u.value==="Session error"?(m(),w("div",Uc,[i("p",null,[f("Please "),a(T,{onClick:_},{default:o(()=>[f("go back to enter your email")]),_:1}),f(". ")])])):E("",!0),u.value==="Checkout canceled"||u.value==="Checkout failed"?(m(),w("div",Ac,[i("p",null,[a(T,{onClick:$},{default:o(()=>[f("Click here to try again")]),_:1})]),i("p",null,[f("Please "),a(T,{onClick:$},{default:o(()=>[f("try again")]),_:1}),f(" or contact support at "),a(T,{href:r(le).links.support},{default:o(()=>[f("clearcache.io/support")]),_:1},8,["href"]),f(". ")])])):u.value==="Validation failed"?(m(),w("div",Tc,[Bc,i("p",null,[a(T,{onClick:g},{default:o(()=>[f("Click here to refresh your status")]),_:1}),f(" or contact support at "),a(T,{href:r(le).links.support},{default:o(()=>[f("clearcache.io/support")]),_:1},8,["href"]),f(" if the issue persists. ")])])):u.value==="Subscription on Hold"?(m(),w("div",Lc,[b.value?(m(),w("p",Vc,[a(T,{href:b.value},{default:o(()=>[f("Update your payment method")]),_:1},8,["href"]),f(" to continue your subscription, or contact "),a(T,{href:r(le).links.support},{default:o(()=>[f("clearcache.io/support")]),_:1},8,["href"]),f(" if you have any questions. ")])):E("",!0)])):u.value==="Subscription Restored"?(m(),w("div",Dc,[Rc,a(r(Wt),{class:"block mx-auto w-12 h-12 text-success"}),i("p",null,[f("We found an active subscription for "),i("em",jc,j(r(c).email),1),f(".")]),i("p",null,[f("We haven't made any changes to your account. You can always "),a(T,{href:r(s).getUpdatePaymentUrl()??""},{default:o(()=>[f("review and manage your subscription here")]),_:1},8,["href"]),f(". ")]),qc])):u.value==="Completed"?(m(),w("div",zc,[Fc,a(r(Wt),{class:"block mx-auto w-12 h-12 text-success"}),Nc,Wc])):E("",!0)]),_:1}),i("div",Hc,[i("p",Yc,[Kc,a(T,{href:r(le).links.support},{default:o(()=>[f("clearcache.io/support")]),_:1},8,["href"])])])]))}}),Xc=oe(Jc,[["__scopeId","data-v-bee7c488"]]),Qc=V({__name:"Checkout",props:{isOpen:{type:Boolean,type:Boolean,default:!1},isOpenModifiers:{}},emits:["update:isOpen"],setup(e,{expose:t}){const s=I([Je.ChoosePlan,Je.EnterEmail,Je.VerifyEmail,Je.Payment]),n={initialValues:{planId:"",planInterval:cs.YEAR,email:"",termsAccepted:!1,emailCode:Array(le.emailCodeLength).fill("")}},l=Ie.getInstance(),c=I(0),u=D(()=>g[c.value]),d=D(()=>h[c.value]),p=D(()=>$[c.value]),v=z(e,"isOpen"),g={0:'Clear Cache <span class="text-plus-gradient">PLUS</span>',1:"Set up an Account",2:"Confirm your Email",3:"Checkout"},h={0:ia("Pick a flexible monthly plan, or save with a yearly plan."),1:"We store your email securely and only use it for payments and subscription management.",2:"Confirm your email by entering the code we sent you. If you can't find it, check your spam folder.",3:""},$={0:"text-lg tracking-tight ",1:"",2:"",3:""},x=async(b,M)=>{if(Math.abs(M-b)>1)return M;switch(b){case 0:return l.isLoggedIn()?3:M;case 1:return l.isLoggedIn()?3:2;case 2:case 3:default:return M}},y=async(b,M)=>b===3?0:M,_=async()=>{v.value=!1};return t({open:async b=>{b&&n.initialValues&&(n.initialValues.email=b),v.value=!0}}),ne(v,b=>{b&&(c.value=0)}),(b,M)=>(m(),U(r(rs),{open:v.value,"onUpdate:open":M[1]||(M[1]=O=>v.value=O)},{default:o(()=>[a(r(Ps),{class:"flex flex-col gap-2"},{default:o(()=>[J(b.$slots,"trigger",{},()=>[a(r(pt),{class:"flex gap-2 items-center"},{default:o(()=>[a(r(Q),null,{default:o(()=>[f("Subscribe")]),_:1})]),_:1})],!0)]),_:3}),a(r(as),{class:"p-6 overflow-auto max-h-screen"},{default:o(()=>[a(r(ns),null,{default:o(()=>[a(r(ls),null,{default:o(()=>[a(we,{level:2,innerHTML:u.value},null,8,["innerHTML"])]),_:1}),a(r(os),{innerHTML:d.value,class:A(["text-base leading-tight font-light",p.value])},null,8,["innerHTML","class"])]),_:1}),v.value?(m(),U(Ua,{key:0,onSubmit:_,validationSchemas:s.value,"form-options":n,"current-step":c.value,"onUpdate:currentStep":M[0]||(M[0]=O=>c.value=O),"route-to-next":x,"route-to-prev":y},{default:o(()=>[a(Ke,null,{default:o(()=>[a(_c)]),_:1}),a(Ke,null,{default:o(()=>[a(Ta)]),_:1}),a(Ke,null,{default:o(()=>[a(Ba)]),_:1}),a(Ke,null,{default:o(()=>[a(Xc)]),_:1})]),_:1},8,["validationSchemas","current-step"])):E("",!0)]),_:1})]),_:3},8,["open"]))}}),Gc=oe(Qc,[["__scopeId","data-v-23e44516"]]),Zc=e=>(Ve("data-v-13a0d6cb"),e=e(),De(),e),ed={key:0},td={class:"flex gap-4 items-center"},sd={key:0},ad={class:"h-full flex items-center pl-2"},nd={key:1},ld={key:1},od=Zc(()=>i("div",{class:"p-3 font-medium"},[f("Get "),i("em",null,"PLUS")],-1)),id={key:2},rd={class:"flex flex-col items-start drop-shadow-md"},ud={key:1},cd=V({__name:"Session",setup(e){const t=Ie.getInstance(),s=Le.getInstance(),n=I(),l=I(!1),c=I(void 0),u=I(!1),d=I(!1),p=I(!1),v=I(),g=I(),h=D(()=>{const O=v.value==="paused"||v.value==="past_due";return p.value||!O&&(!l.value||c.value===!1)}),$=D(()=>!l.value||d.value),x=D(()=>v.value==="loading"),y=async O=>{n.value=(O==null?void 0:O.session)??t.getSession(),l.value=t.isLoggedIn();try{c.value=s.isSubscribed(!0);let N=s.getStatus();N===void 0&&(N=l.value&&s.isLoading()?"loading":"none"),v.value=N}catch{v.value="error"}Y.debug(`Auth updated (logged in: ${l.value}, sub: ${s.getStatus()??"none"})`)},_=O=>{var N;(N=g.value)==null||N.open(O)},b=D(()=>{switch(v.value){case"active":case"trialing":return"bg-plus-gradient text-plus-foreground";case"paused":case"canceled":return"bg-warning text-warning-foreground";case"error":case"past_due":return"bg-destructive text-destructive-foreground";case"loading":default:return"bg-secondary text-secondary-foreground"}}),M=D(()=>{switch(v.value){case"active":return"PLUS";case"trialing":return"PLUS | Trial";case"paused":return"Paused";case"canceled":return"Canceled";case"past_due":return"Past Due";case"none":return"Not Subscribed";case"error":return"Error";case"logged-out":return"Logged Out";case"loading":return"loading";default:return"..."}});return re(async()=>{v.value="loading",t.addEventListener(Ft.Changed,y),s.addEventListener(Ae.SubscriptionValidated,y),s.addEventListener(Ae.SubscriptionInvalidated,y),s.addEventListener(Ae.CheckoutRequested,O=>{var N;_((N=O.options)==null?void 0:N.email)}),await t.init(),await s.waitForInit(),await s.update(),await y(),u.value=!0}),(O,N)=>(m(),U(ts,null,{default:o(()=>[u.value?(m(),w("div",ed,[i("div",td,[l.value?(m(),w("div",sd,[a(r(Ot),null,{default:o(()=>[a(r(Ut),null,{default:o(()=>[a(r(Q),{class:"flex p-0 gap-2 rounded-lg bg-card drop-shadow-md items-stretch overflow-hidden",variant:"ghost"},{default:o(()=>{var F;return[i("span",ad,j((F=n.value)==null?void 0:F.username),1),i("span",{class:A(["h-full flex items-center p-2 drop-shadow-md relative min-w-8",b.value])},[x.value?(m(),U(ft,{key:0,class:"absolute size-4 m-0 text-primary"})):(m(),w("span",nd,j(M.value),1))],2)]}),_:1})]),_:1}),a(r(At),{class:"w-80","avoid-collisions":!0,"collision-padding":32,sideOffset:8},{default:o(()=>[a(Ra,{spacing:"tight"}),a(r(ba),{width:16,height:8,class:"fill-popover mt-[-1px]"})]),_:1})]),_:1})])):E("",!0),h.value?(m(),w("div",ld,[a(Gc,{"is-open":p.value,"onUpdate:isOpen":N[0]||(N[0]=F=>p.value=F),ref_key:"checkoutRef",ref:g},{trigger:o(()=>[Z(a(Fe,null,{default:o(()=>[od]),_:1},512),[[te,!c.value&&!x.value]])]),_:1},8,["is-open"])])):E("",!0),$.value?(m(),w("div",id,[a(bu,{onSubscribe:_,"is-open":d.value,"onUpdate:isOpen":N[1]||(N[1]=F=>d.value=F)},{trigger:o(()=>[Z(i("div",rd,[a(T,{class:"text-sm text-primary-foreground",title:"Already signed up?"},{default:o(()=>[f("Log In")]),_:1})],512),[[te,!l.value]])]),_:1},8,["is-open"])])):E("",!0)])])):(m(),w("div",ud,[a(ft,{class:"block size-6 m-2 text-primary-foreground opacity-75"})]))]),_:1}))}}),dd=oe(cd,[["__scopeId","data-v-13a0d6cb"]]),fd=V({__name:"Nav",setup(e){const t=I();return(s,n)=>(m(),w("nav",{class:"fixed top-8 left-8 right-8 z-10",ref_key:"nav",ref:t},[a(yr,{class:"absolute right-0"}),a(dd,{class:"absolute left-0"})],512))}}),pd=V({__name:"LogoAnimation",props:pe({logoImgPath:{},duration:{default:3500}},{isComplete:{type:Boolean,required:!1,default:!1},isCompleteModifiers:{}}),emits:pe(["started","completed"],["update:isComplete"]),setup(e,{emit:t}){const s=ta(),{logoImgPath:n,duration:l}=e,c=I();let u,d=400,p=I(d/2);const v=z(e,"isComplete"),g=t;return re(async()=>{var x;u=new ln(d,d,(x=c.value)==null?void 0:x.transferControlToOffscreen()),u.offset={x:0,y:0},u.scale=1,u.gradientCenter=.5;const h={r:0,g:255,b:64,a:1},$={r:0,g:64,b:255,a:1};u.startColorA={r:100,g:100,b:100,a:1},u.startColorB={r:100,g:100,b:100,a:1},u.gradientStopA={...$,a:.75},u.gradientStopB={...h,a:.75},u.endColorA={...h,a:1},u.endColorB={...$,a:1},u.shadowColorString="none",u.addEventListener(Fs.AnimationStart,()=>{v.value=!1,g("started")}),u.addEventListener(Fs.AnimationStop,()=>{v.value=!0,g("completed")}),await u.preload(n),s.value==="reduce"?(u.animationStyle=on.fade,u.animationDuration=l*.5,u.startAnimation()):(u.animationRotations=10.1,u.animationDuration=l,u.startAnimation())}),(h,$)=>(m(),w("canvas",{ref_key:"canvas",ref:c,style:Xa({width:`${r(p)}px`,height:`${r(p)}px`})},null,4))}}),ps=e=>(Ve("data-v-c93e9142"),e=e(),De(),e),md={class:"leading-tight font-light text-muted-foreground text-balance text-lg mb-2"},vd=sa('<p class="text-2xl text-foreground" data-v-c93e9142>Welcome to <span class="font-medium" data-v-c93e9142>Clear Cache 2</span> 👋<br data-v-c93e9142> Still free, still private — no ads, no data selling.</p><div class="leading-relaxed tracking-tight text-muted-foreground" data-v-c93e9142><ul data-v-c93e9142><li data-v-c93e9142><strong data-v-c93e9142>✨ New Features</strong>: So many! Clear only the active tab, custom domains, and much more</li><li data-v-c93e9142><strong data-v-c93e9142>🛡️ Better Privacy</strong>: Upgraded to <a href="https://developer.chrome.com/docs/extensions/develop/migrate/what-is-mv3" target="_blank" class="hover:text-primary" data-v-c93e9142>Manifest V3</a></li><li data-v-c93e9142><strong data-v-c93e9142>🎨 Fresh UI</strong>: Rewritten from the ground up</li></ul></div>',2),gd=ps(()=>i("p",null,"Like Clear Cache? Help me continue development:",-1)),hd={class:"w-full grid grid-flow-col gap-12 items-stretch justify-center place-content-between text-base"},_d=ps(()=>i("div",{class:"px-5 py-3 font-medium text-lg leading-snug"},[i("span",{class:"block"},[f("Support with "),i("em",null,"PLUS")]),i("span",{class:"block text-sm font-light opacity-75"},"for advanced features")],-1)),yd=ps(()=>i("div",{class:"px-5 py-3 font-medium text-lg leading-snug"},[i("span",{class:"block"},"Buy me a coffee"),i("span",{class:"block text-sm font-light opacity-75"},"to fuel development")],-1)),bd={class:"max-w-[500px] mx-auto"},wd=["href"],xd=ps(()=>i("span",null,"Ben",-1)),$d=["src"],kd={class:"text-right"},Cd=V({__name:"Welcome",emits:["close","subscribe"],setup(e,{emit:t}){const s=t;return(n,l)=>(m(),w("div",md,[vd,a(r(ss),{class:"p-8 space-y-8 text-muted-foreground bg-muted dark:bg-card"},{default:o(()=>[gd,i("div",hd,[a(Fe,{onClick:l[0]||(l[0]=c=>s("subscribe")),class:"shadow-md"},{default:o(()=>[_d]),_:1}),a(Fe,{href:r(le).links.coffee,target:"_blank",class:"shadow-md"},{default:o(()=>[yd]),_:1},8,["href"])]),i("p",bd,[f("Thanks for your support! "),i("a",{class:"hover:text-primary",href:r(le).links.author,target:"_blank",title:"Ben Bojko"},[xd,a(r($a),{class:"size-6 ml-2 align-middle"},{default:o(()=>[i("img",{src:r(Ms).authorIconPath},null,8,$d)]),_:1})],8,wd)])]),_:1}),i("div",kd,[a(Q,{class:"p-6 rounded-md text-base",onClick:l[1]||(l[1]=c=>s("close"))},{default:o(()=>[f("Continue with Free Version "),a(r(Nn),{class:"size-4 ml-1"})]),_:1})])]))}}),Sd=oe(Cd,[["__scopeId","data-v-c93e9142"]]),Id=i("span",null,"Updating Clear Cache",-1),Md={key:0,class:"flex flex-col text-center space-y-8 text-lg"},Pd={class:"flex flex-col pt-4 w-full items-center scale-75"},Ed={class:"space-y-8 pb-8"},Od={key:0,class:"align-top"},Ud={key:1,class:"space-y-4"},Ad={key:0},Td={key:2,class:"text-primary"},Bd={key:3,class:"flex flex-col items-center text-balance gap-8 text-sm text-muted-foreground"},Ld=["innerHTML"],Vd={key:1},Dd={key:1},Rd={class:"flex w-full justify-end space-x-4"},jd=V({__name:"Migration",props:{isMigrating:{type:Boolean,required:!0,default:!1},isMigratingModifiers:{},migrations:{required:!1,default:[]},migrationsModifiers:{}},emits:["update:isMigrating","update:migrations"],setup(e){const t=D(()=>d.value>1||h.value!==""&&d.value>0),s=D(()=>d.value<1),n=()=>{t.value&&d.value--},l=()=>{s?d.value++:c()},c=()=>{p.value=!1},u=async()=>{c(),Le.getInstance().requestCheckout()},d=I(0),p=I(!1),v=I(!1),g=I(!1),h=I(""),$=z(e,"isMigrating"),x=z(e,"migrations"),y=D(()=>($.value||!!h.value)&&v.value),_=I(""),b=async()=>dt.download(_.value,"clearcache-backup.json"),M=F=>{$.value?p.value=!0:F||(p.value=!1,$.value=!1,x.value=[])},O=()=>{Y.debug("Animation complete"),v.value=!0,N()},N=()=>{$.value||!v.value||d.value!==0||g.value||h.value!==""||l()};return ne($,F=>{F?p.value=!0:p.value&&N()}),ne(x,async F=>{const G=F.map(S=>S.message??"").filter(S=>S!==""),k=F.flatMap(S=>S.errors??[]);h.value=G.join(`
|
|
|
|
`),k.length>0&&(g.value=!0,h.value+=`
|
|
|
|
`+k.join(`
|
|
|
|
`)),h.value&&(h.value=ia(h.value));const C=await ra.getInstance().getBackups();_.value=JSON.stringify(C??{})}),(F,G)=>{const k=ea("auto-animate");return m(),w("div",{class:A({"is-migrating":p.value||$.value})},[a(r(rs),{open:p.value,"onUpdate:open":M},{default:o(()=>[a(r(as),{class:"max-w-[650px] max-h-full overflow-y-auto font-light"},{default:o(()=>[d.value===0?(m(),U(r(ns),{key:0},{default:o(()=>[a(r(ls),{class:"text-center text-4xl font-medium text-nowrap pt-8"},{default:o(()=>[Id]),_:1}),a(r(os),{class:"hidden"})]),_:1})):E("",!0),a(ks,null,{default:o(()=>[d.value===0?(m(),w("div",Md,[i("div",Pd,[a(pd,{"logo-img-path":r(Ms).logoImgPath,onCompleted:O,duration:3500},null,8,["logo-img-path"])]),Z((m(),w("div",Ed,[$.value||!v.value?(m(),w("div",Od,[a(ft,{class:"inline-block size-6 align-text-bottom"}),f(" Migrating your settings. ")])):g.value?(m(),w("div",Ud,[a(r(zt),{class:"inline size-4 align-baseline"}),f(" Migration complete, but we hit some snags. Please double-check your settings. "),_.value?(m(),w("span",Ad,[f("You can also "),a(T,{onClick:b},{default:o(()=>[f("download a backup")]),_:1}),f(" of your old settings. ")])):E("",!0)])):(m(),w("span",Td,"All settings migrated successfully!")),y.value?(m(),w("div",Bd,[h.value?(m(),U(r(ma),{key:0,class:A(["p-4 w-full bg-muted rounded-lg max-h-48 overflow-y-auto result-message",{"text-destructive":g.value}])},{default:o(()=>[i("div",{innerHTML:h.value},null,8,Ld)]),_:1},8,["class"])):E("",!0),g.value?(m(),w("p",Vd,[f("For support, visit "),a(T,{href:r(le).links.support},{default:o(()=>[f("clearcache.io/support")]),_:1},8,["href"])])):E("",!0)])):E("",!0)])),[[k]])])):d.value===1?(m(),w("div",Dd,[a(Sd,{onSubscribe:u,onClose:c,class:"space-y-8 font-light text-balance text-center text-muted-foreground"})])):E("",!0)]),_:1}),a(ks,null,{default:o(()=>[!$.value&&v.value&&d.value!==1?(m(),U(r(ga),{key:0},{default:o(()=>[i("div",Rd,[t.value?(m(),U(r(Q),{key:0,class:"inline-block",onClick:n,variant:"outline"},{default:o(()=>[f("Back")]),_:1})):E("",!0),a(r(Q),{class:"inline-block",onClick:l},{default:o(()=>[f("Continue")]),_:1})])]),_:1})):E("",!0)]),_:1})]),_:1})]),_:1},8,["open"])],2)}}}),qd={class:"flex flex-col space-y-1 w-full truncate"},zd={class:"text-right self-center min-w-8 p-1 pr-0"},Fd={class:"text-primary"},Nd={class:"bg-primary text-primary-foreground p-1 rounded-md"},Wd=V({__name:"OriginsCollapsible",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(e){const t=z(e,"modelValue");let s=I(!1);return(n,l)=>(m(),U(r(pa),{class:A(["space-y-4 rounded-lg border-border transition-all",r(s)?"p-2 border-[1px]":""]),"onUpdate:open":l[5]||(l[5]=c=>Qa(s)?s.value=c:s=c)},{default:o(()=>[a(r(da),{class:"w-full"},{default:o(()=>[a(de,{class:"flex flex-row items-center text-left gap-4 justify-between w-full"},{default:o(()=>[i("div",qd,[a(r(pt),{class:"cursor-pointer"},{default:o(()=>[f("Domains")]),_:1}),a(Oa,{"removal-options":t.value.browser.options,"onUpdate:removalOptions":l[0]||(l[0]=c=>t.value.browser.options=c),"origin-mode":t.value.extension.originMode,"onUpdate:originMode":l[1]||(l[1]=c=>t.value.extension.originMode=c),class:"truncate text-ellipsis py-1"},null,8,["removal-options","origin-mode"])]),i("div",zd,[Z(i("span",Fd,"Edit",512),[[te,!r(s)]]),Z(i("span",Nd,"Done",512),[[te,r(s)]])])]),_:1})]),_:1}),a(r(fa),{class:"p-4"},{default:o(()=>[a(Ea,{"removal-options":t.value.browser.options,"onUpdate:removalOptions":l[2]||(l[2]=c=>t.value.browser.options=c),"origin-mode":t.value.extension.originMode,"onUpdate:originMode":l[3]||(l[3]=c=>t.value.extension.originMode=c),"always-clear-browser-data":t.value.extension.alwaysClearBrowserData,"onUpdate:alwaysClearBrowserData":l[4]||(l[4]=c=>t.value.extension.alwaysClearBrowserData=c)},null,8,["removal-options","origin-mode","always-clear-browser-data"])]),_:1})]),_:1},8,["class"]))}}),Hd=i("span",{domRef:"confirmBtn"},"Create",-1),Zs=V({__name:"CreatePreset",props:{name:{required:!0},nameModifiers:{}},emits:pe(["opened","confirmed","cancelled"],["update:name"]),setup(e,{emit:t}){const s=I(!1),n=z(e,"name"),l=t,c=()=>{s.value=!0,l("opened")},u=()=>{s.value=!1,l("confirmed",n.value)},d=()=>{s.value=!1,l("cancelled")};return(p,v)=>(m(),U(r(Ot),{open:s.value,"onUpdate:open":v[1]||(v[1]=g=>s.value=g)},{default:o(()=>[a(r(Ut),{class:"rounded-lg",onClick:c},{default:o(()=>[J(p.$slots,"default",{},()=>[a(r(Q),{variant:"outline",class:"aspect-square p-2.5",title:"Create preset"},{default:o(()=>[a(r(Hn),{"stroke-width":"1.5"})]),_:1})])]),_:3}),a(r(At),{class:"flex flex-col space-y-2"},{default:o(()=>[i("form",{onSubmit:ge(u,["prevent"])},[a(r(is),{modelValue:n.value,"onUpdate:modelValue":v[0]||(v[0]=g=>n.value=g),placeholder:"Preset name"},null,8,["modelValue"])],32),a(r(Wn),{class:"block text-right space-x-2",ref:"confirmBtn"},{default:o(()=>[a(r(Q),{size:"sm",onClick:d,variant:"outline"},{default:o(()=>[f("Cancel")]),_:1}),a(r(Q),{size:"sm",onClick:u},{default:o(()=>[Hd]),_:1})]),_:1},512)]),_:1})]),_:3},8,["open"]))}}),Yd={class:"flex w-full p-2 pl-9 justify-items-between"},Kd={class:"grow line-through opacity-25"},Jd=V({__name:"Preset",props:{isCurrent:{type:Boolean,required:!0},isCurrentModifiers:{},isOpen:{type:Boolean,required:!0},isOpenModifiers:{},shouldRemove:{type:Boolean,default:!1},shouldRemoveModifiers:{},preset:{required:!0},presetModifiers:{}},emits:pe(["duplicate","save","select","remove"],["update:isCurrent","update:isOpen","update:shouldRemove","update:preset"]),setup(e,{emit:t}){const s=I(!1),n=z(e,"isCurrent"),l=z(e,"isOpen"),c=z(e,"shouldRemove"),u=z(e,"preset"),d=I(),p=t,v=()=>{s.value||p("select",u.value)},g=()=>{s.value=!0},h=()=>{s.value=!1,p("save",u.value)},$=()=>{c.value=!1},x=()=>{c.value=!0};return ne(s,async y=>{var _,b,M,O;y&&(await wt(),(b=(_=d.value)==null?void 0:_.domRef)==null||b.focus(),(O=(M=d.value)==null?void 0:M.domRef)==null||O.select())}),ne(l,async y=>{y||(s.value=!1,c.value&&p("remove",u.value))}),(y,_)=>(m(),w(ye,null,[Z(i("div",{onClick:v,class:"flex w-full p-2 gap-2 justify-items-between cursor-pointer"},[a(r(xa),{class:A(["icon",n.value?"opacity-100":"opacity-0"]),title:"Current"},null,8,["class"]),i("form",{onSubmit:ge(h,["prevent"]),class:A(["grow",{truncate:!s.value}])},[Z(i("span",null,j(u.value.meta.name),513),[[te,!s.value]]),Z(a(r(is),{class:"p-0.5 h-full",ref_key:"input",ref:d,"model-value":u.value.meta.name,"onUpdate:modelValue":_[0]||(_[0]=b=>u.value.meta.name=b),placeholder:"Preset name",onBlur:_[1]||(_[1]=b=>s.value=!1)},null,8,["model-value"]),[[te,s.value]])],34),Z(a(r(Q),{variant:"outline",class:"icon hover bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground",title:"Save",onClick:ge(h,["stop"])},{default:o(()=>[a(r(Yn))]),_:1},512),[[te,s.value]]),Z(a(r(Q),{variant:"outline",class:"icon hover",title:"Rename",onClick:ge(g,["stop"])},{default:o(()=>[a(r(Kn))]),_:1},512),[[te,!s.value]]),a(r(Q),{variant:"outline",class:"icon hover",title:"Duplicate",onClick:_[2]||(_[2]=ge(b=>y.$emit("duplicate",u.value),["stop"]))},{default:o(()=>[a(r(wa))]),_:1}),a(r(Q),{variant:"outline",class:"icon hover hover:bg-destructive hover:text-destructive-foreground",title:"Remove",onClick:ge(x,["stop"])},{default:o(()=>[a(r(va))]),_:1})],512),[[te,!c.value]]),Z(i("span",Yd,[i("span",Kd,j(u.value.meta.name),1),a(r(Q),{variant:"outline",class:"icon hover",title:"Undo",onClick:ge($,["stop"])},{default:o(()=>[a(r(Jn))]),_:1})],512),[[te,c.value]])],64))}}),Xd=oe(Jd,[["__scopeId","data-v-3b7c1778"]]),Qd={class:"flex flex-row gap-2 items-center"},Gd=i("span",{class:"font-light"},"Quickly load and save settings using presets.",-1),Zd={class:"flex p-2 w-full justify-end"},ef=V({__name:"Presets",props:{config:{required:!0},configModifiers:{},selected:{required:!1,default:void 0},selectedModifiers:{}},emits:["update:config","update:selected"],setup(e){const t=I(!1),s=I([]),n=ct.getInstance(),l=z(e,"config"),c=z(e,"selected"),u=I(""),d=I([]),p=async k=>{k=k??je(l.value);const C=await n.has(k.meta.id);n.hasName(k.meta.name,k.meta.id)&&(k.meta.name=n.getUniqueName(k.meta.name)),C?(k.meta.updatedAt=Date.now(),await n.update(k)):(k.meta.createdAt=Date.now(),k.meta.updatedAt=k.meta.createdAt,await n.add(k)),s.value=n.presets,c.value=k,l.value=je(k),fe.info(`Saved preset "${k.meta.name}"`)},v=async(k,C)=>{C=C??(k.meta.id===rn?"New preset":k.meta.name),C=n.getUniqueName(C);const S=un(C,gs(k));return await n.add(S),s.value=n.presets,l.value.meta.id===k.meta.id&&(c.value=S,l.value=je(S)),setTimeout(()=>fe.info(`Added preset "${C}"`),50),S},g=async k=>{O(k)&&(c.value=void 0),d.value.push(k),h()},h=ua(async()=>{let k=d.value.length;await n.remove(d.value),d.value=[],s.value=n.presets,fe.info(`Removed ${k} preset${k>1?"s":""}`)},50),$=async k=>{const C=await n.get(k.meta.id);c.value=C?je(C):void 0},x=async()=>$(l.value),y=async()=>{s.value=n.presets,await wt(),await wt(),await $(l.value)},_=async k=>{N(c.value)&&Y.info("Discarding changes"),k&&(l.value=je(k))},b=D(()=>c.value?F(c.value):"Manage presets..."),M=(k,C)=>!k||!C?!1:(k=je(k,!1),C=je(C,!1),Pa(k,C)),O=k=>l.value.meta.id===(k==null?void 0:k.meta.id),N=k=>O(k)&&!M(k,l.value),F=k=>{const C=N(k)?"*":"";return k.meta.name+C},G=()=>n.presets.length===0?"New preset":n.getUniqueName(l.value.meta.name);return re(async()=>{await n.load(),n.addEventListener(Kt.PresetsUpdated,y),s.value=n.presets,await x(),ne(l,x,{deep:!0})}),(k,C)=>(m(),w("div",Qd,[a(r(Ot),{open:t.value,"onUpdate:open":C[7]||(C[7]=S=>t.value=S)},{default:o(()=>[a(r(Ut),{"as-child":""},{default:o(()=>[a(r(Q),{variant:"outline",role:"combobox","aria-expanded":t.value,class:"w-[400px] justify-between"},{default:o(()=>[i("span",{class:A(["grow text-left truncate",{"text-muted-foreground":!c.value,"font-normal":!c.value}])},j(b.value),3),Z(a(r(Q),{variant:"link",size:"xs",class:"self-center shrink-0",onClick:C[0]||(C[0]=ge(S=>p(l.value),["stop"]))},{default:o(()=>[f(" Save ")]),_:1},512),[[te,N(c.value)]]),a(r(Xn),{class:"ml-2 h-4 w-4 shrink-0 opacity-50"})]),_:1},8,["aria-expanded"])]),_:1}),a(r(At),{class:"w-[400px] p-0"},{default:o(()=>[a(r(Qn),null,{default:o(()=>[a(r(Gn),null,{default:o(()=>[Gd,a(Zs,{name:u.value,"onUpdate:name":C[1]||(C[1]=S=>u.value=S),onOpened:C[2]||(C[2]=S=>u.value=G()),onConfirmed:C[3]||(C[3]=S=>v(l.value,u.value))},{default:o(()=>[a(r(Q),{variant:"link",size:"xs",class:"mt-2"},{default:o(()=>[f("Create one now.")]),_:1})]),_:1},8,["name"])]),_:1}),a(r(Zn),null,{default:o(()=>[a(r(el),null,{default:o(()=>[(m(!0),w(ye,null,Be(s.value,S=>(m(),U(r(tl),{key:S.meta.id,value:S,class:"p-0"},{default:o(()=>[a(Xd,{preset:S,"is-current":O(S),"is-open":t.value,onSelect:_,onDuplicate:v,onRemove:g,onSave:p},null,8,["preset","is-current","is-open"])]),_:2},1032,["value"]))),128))]),_:1}),Z(i("div",Zd,[a(Zs,{name:u.value,"onUpdate:name":C[4]||(C[4]=S=>u.value=S),onOpened:C[5]||(C[5]=S=>u.value=G()),onConfirmed:C[6]||(C[6]=S=>v(l.value,u.value))},{default:o(()=>[a(r(Q),{variant:"link",size:"xs"},{default:o(()=>[f("Create")]),_:1})]),_:1},8,["name"])],512),[[te,s.value.length]])]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])]))}}),tf={class:"text-base font-light tracking-tight leading-tight space-y-4"},sf=i("span",{class:"text-plus-gradient"},"Plus",-1),af=i("p",null,"Thank you, Ben!",-1),nf={class:"flex justify-center gap-x-8"},lf=i("div",{class:"p-3"},"Buy me a coffee ☕",-1),of=V({__name:"BuyMeACoffee",setup(e){const t=Le.getInstance();return(s,n)=>(m(),w("div",tf,[i("p",null,[f("Hi! I'm "),a(T,{href:r(le).links.author,target:"_blank",title:"About me"},{default:o(()=>[f("Ben Bojko")]),_:1},8,["href"]),f(", the creator of Clear Cache. This is my passion project, and I'm committed to providing a free, privacy-focused extension without tracking. ")]),i("p",null,[f("If you enjoy this extension, please consider "),a(T,{onClick:n[0]||(n[0]=l=>r(t).requestCheckout()),title:"Buy me a coffee"},{default:o(()=>[f("subscribing to "),sf]),_:1}),f(" or "),a(T,{href:r(le).links.coffee,title:"Buy me a coffee"},{default:o(()=>[f("buying me a coffee")]),_:1},8,["href"]),f(" or "),a(T,{href:r(le).links.reviews},{default:o(()=>[f("leaving a review")]),_:1},8,["href"]),f(" to support its continued development. ")]),af,i("p",nf,[a(Fe,{class:"font-medium",href:r(le).links.coffee,target:"_blank"},{default:o(()=>[lf]),_:1},8,["href"])])]))}}),Bt=e=>(Ve("data-v-ff724ff4"),e=e(),De(),e),rf={class:"flex flex-col space-y-2"},uf={class:"space-y-1"},cf=Bt(()=>i("span",null,"Time Interval",-1)),df={class:"flex justify-center items-center gap-2"},ff={class:"space-y-1"},pf=Bt(()=>i("span",null,"Startup",-1)),mf={class:"space-y-1"},vf=Bt(()=>i("span",null,"Idle",-1)),gf={class:"space-y-1"},hf=Bt(()=>i("span",null,"Tab Closed",-1)),_f={class:"pt-2 justify-center opacity-50"},yf=Bt(()=>i("em",null,"Chrome must be running to automatically clear data",-1)),bf=V({__name:"Scheduler",props:{config:{required:!0},configModifiers:{}},emits:["update:config"],setup(e){const t=z(e,"config"),s=Ge("isLocked"),n=D(()=>{var d;return s!=null&&s.value?{}:((d=t.value.extension)==null?void 0:d.scheduler)??{}}),l=[{label:"Never",value:-1},{label:"1 min",value:1*60*1e3},{label:"5 min",value:5*60*1e3},{label:"15 min",value:15*60*1e3},{label:"30 min",value:30*60*1e3},{label:"1 hour",value:60*60*1e3},{label:"2 hours",value:2*60*60*1e3},{label:"4 hours",value:4*60*60*1e3},{label:"8 hours",value:8*60*60*1e3},{label:"12 hours",value:12*60*60*1e3},{label:"24 hours",value:24*60*60*1e3}],c=D({get:()=>{var d;return((d=l.find(p=>p.value===n.value.clearInterval))==null?void 0:d.value.toString())??""},set:d=>{const p=parseInt(d),v=l.find(g=>g.value===p);v?n.value.clearInterval=v.value:n.value.clearInterval=-1}}),u=async(d,p)=>{if(await Ns.has(p).catch(()=>!1))return!0;await Ns.ensure(p).catch(()=>!1)?cn.getInstance().update(t.value):(d==="clearInterval"?n.value[d]=-1:n.value[d]=!1,await new Promise(g=>setTimeout(g,100)),fe.error(`Permission "${p}" is required for this feature.`))};return ne(()=>n.value.clearInterval,async d=>{d&&u("clearOnIdle","alarms")}),ne(()=>n.value.clearOnTabClose,async d=>{d&&u("clearOnTabClose","tabs")}),ne(()=>n.value.clearOnIdle,async d=>{d&&u("clearOnIdle","idle")}),re(()=>{const d=Is();t.value.extension.scheduler||(t.value.extension.scheduler=d.extension.scheduler)}),(d,p)=>(m(),w("div",rf,[a(de,{class:"flex grow justify-between items-center"},{default:o(()=>[i("div",uf,[cf,a(Se,null,{default:o(()=>[f("Clear data at regular intervals ")]),_:1})]),i("div",df,[a(Se,null,{default:o(()=>[f("Every")]),_:1}),a(r(sl),{modelValue:c.value,"onUpdate:modelValue":p[0]||(p[0]=v=>c.value=v)},{default:o(()=>[a(r(al),{class:"w-[120px]"},{default:o(()=>[a(r(nl),{placeholder:"Select an interval",class:A({"text-primary":!r(s)&&c.value!=="-1"})},null,8,["class"])]),_:1}),a(r(ll),null,{default:o(()=>[a(r(ol),null,{default:o(()=>[(m(),w(ye,null,Be(l,v=>a(r(il),{key:v.value,value:v.value.toString()},{default:o(()=>[f(j(v.label),1)]),_:2},1032,["value"])),64))]),_:1})]),_:1})]),_:1},8,["modelValue"])])]),_:1}),a(de,{class:"flex grow justify-between items-center"},{default:o(()=>[i("div",ff,[pf,a(Se,null,{default:o(()=>[f("Clear data when Chrome starts ")]),_:1})]),a(r(at),{checked:n.value.clearOnStartup,"onUpdate:checked":p[1]||(p[1]=v=>n.value.clearOnStartup=v)},null,8,["checked"])]),_:1}),a(de,{class:"flex grow justify-between items-center"},{default:o(()=>[i("div",mf,[vf,a(Se,null,{default:o(()=>[f("Clear data when computer is inactive ")]),_:1})]),a(r(at),{checked:n.value.clearOnIdle,"onUpdate:checked":p[2]||(p[2]=v=>n.value.clearOnIdle=v)},null,8,["checked"])]),_:1}),a(de,{class:"flex grow justify-between items-center"},{default:o(()=>[i("div",gf,[hf,a(Se,null,{default:o(()=>[f("Clear data for a tab's domain when closed ")]),_:1})]),a(r(at),{checked:n.value.clearOnTabClose,"onUpdate:checked":p[3]||(p[3]=v=>n.value.clearOnTabClose=v)},null,8,["checked"])]),_:1}),i("aside",_f,[a(r(Es),{class:"inline-block size-3"}),f(),yf])]))}}),wf=oe(bf,[["__scopeId","data-v-ff724ff4"]]),xf=i("span",{class:"font-normal"},"Save Diagnostics",-1),$f=V({__name:"Diagnostics",setup(e){const t=Jt.getInstance(),s=Ie.getInstance(),n=Le.getInstance(),l=new cl(dl.Onscreen,()=>!1),c=async()=>l.sendMessage({type:"get-logs"}),u=async()=>{const d={timestamp:Date.now(),runtime:{id:chrome.runtime.id,userAgent:navigator.userAgent,lastError:chrome.runtime.lastError,platform:await chrome.runtime.getPlatformInfo(),manifest:chrome.runtime.getManifest()},auth:{isLoggedIn:s.isLoggedIn()},subscription:{status:n.getStatus(),scheduledChange:n.getScheduledChange()},storage:await t.getData(),logs:{options:Y.getCache(),service:await c()}},p=JSON.stringify(d,void 0,2),v=`clearcache.diagnostics.${d.timestamp}.json`;return console.log(d),dt.download(p,v)};return(d,p)=>(m(),U(T,{onClick:u,class:"text-xs tracking-tight flex space-x-1 self-end"},{default:o(()=>[a(r(rl),{class:"size-4","stroke-width":1}),xf]),_:1}))}}),kf={id:"options",class:"container mx-auto"},Cf={class:"flex flex-col gap-8 pb-8"},Sf={class:"space-y-8 md:space-y-0 md:grid md:grid-cols-2 gap-8"},If={class:"col-span-2"},Mf={class:"flex w-full justify-between"},Pf=i("span",null,"From the Developer",-1),Ef=["href"],Of=["src"],Uf=V({__name:"App",setup(e){const t=Ga();let s;const n=I(Is()),l=ra.getInstance(),c=I(!1),u=I(!1),d=I(!1),p=I([]),v=Et.getInstance(),g=Ie.getInstance(),h=hs.getInstance(),$=ct.getInstance(),x=Jt.getInstance(),y=Le.getInstance();re(async()=>{await M(),await O(),await g.init(),await y.init(window),h.addEventListener(Ws.Updated,P=>{if(P instanceof Ws){const B=n.value,L=P.config;Pa(B,L)||(n.value=je(L))}}),g.addEventListener(Ft.LoggedOut,()=>K(!0)),y.addEventListener(Ae.SubscriptionInvalidated,()=>K(!0)),S(),q(),K()});const _=ua(async()=>{fe.success("Settings saved")},3e3,{leading:!0}),b=async P=>h.save(P).then(_).catch(B=>{fe.error(`Could not save settings: ${B}`)}),M=async()=>{const P=[];try{if(await l.hasPending()){d.value=!0;let L=await Al(l.run(),2e3);P.push(...L)}}catch(B){fe.error(`Failed to migrate settings: ${B}`)}p.value=P,d.value=!1},O=async()=>{try{n.value=await h.load()}catch(P){fe.error(`Could not load settings: ${P}`)}},N=async()=>{C();try{const P=n.value.extension.sync;await x.reset(P),await h.reset(P),u.value&&await $.clear(P)}catch(P){fe.error(`Failed to reset settings: ${P}`)}fe.info("Settings reset to defaults"),S()},F=async()=>{C();try{await h.save(n.value),await x.export(),fe.info("Settings exported")}catch(P){fe.error(`Failed to export settings: ${P}`)}S()},G=async P=>{C();try{await x.import(P),n.value=await h.load(),fe.info("Settings imported")}catch(B){fe.error(`Failed to import settings: ${B}`)}S()},k=async()=>{C();try{n.value=await h.loadBrowserSettings(),fe.info("Browser settings loaded")}catch(P){fe.error(`Failed to load browser settings: ${P}`)}S()},C=()=>{s&&s(),s=void 0},S=()=>{C(),s=ne(n,async(P,B)=>{c.value||(c.value=!0,await b(P),c.value=!1)},{deep:!0})},q=()=>ne(t,async(P,B)=>{P==="visible"&&B==="hidden"&&(Y.debug("Document became visible, refreshing subscription status..."),await y.update(1,!1))}),K=async(P=!1)=>{if(!(y.isSubscribed()&&!P))return dn(async()=>v.getPricePreviews(g.isLoggedIn(),P),{forever:!0}).catch(B=>{Y.info(`Failed to load prices: ${B}`)})},ee=D(()=>n.value.extension.originMode!==ae.All&&!n.value.extension.alwaysClearBrowserData);return(P,B)=>(m(),w(ye,null,[a(r(ul),{visibleToasts:3,"rich-colors":""}),i("main",kf,[a(Yl),a(fd),i("div",Cf,[a(nt,{class:"self-center"},{default:o(()=>[a(ef,{config:n.value,"onUpdate:config":B[0]||(B[0]=L=>n.value=L)},null,8,["config"])]),_:1}),i("div",Sf,[a(et,{class:"md:row-span-2"},{title:o(()=>[f("Data to Remove")]),default:o(()=>[a(sr,{"data-types":n.value.browser.dataToRemove,"onUpdate:dataTypes":B[1]||(B[1]=L=>n.value.browser.dataToRemove=L),"data-options":n.value.dataOptions,"onUpdate:dataOptions":B[2]||(B[2]=L=>n.value.dataOptions=L),"disable-browser-data":ee.value,"onUpdate:disableBrowserData":B[3]||(B[3]=L=>ee.value=L),timeperiod:n.value.extension.timeperiod,"onUpdate:timeperiod":B[4]||(B[4]=L=>n.value.extension.timeperiod=L)},null,8,["data-types","data-options","disable-browser-data","timeperiod"])]),_:1}),a(et,{class:"flex flex-col"},{title:o(()=>[f("Behavior")]),default:o(()=>[a(lr),a(ao,{modelValue:n.value.extension.reloadOnClear,"onUpdate:modelValue":B[5]||(B[5]=L=>n.value.extension.reloadOnClear=L)},null,8,["modelValue"]),a(eo,{modelValue:n.value.extension.originMode,"onUpdate:modelValue":B[6]||(B[6]=L=>n.value.extension.originMode=L)},null,8,["modelValue"]),a(nt,null,{default:o(()=>[a(Jo,{modelValue:n.value.extension.closeAllWindows,"onUpdate:modelValue":B[7]||(B[7]=L=>n.value.extension.closeAllWindows=L)},null,8,["modelValue"])]),_:1}),a(Wd,{modelValue:n.value,"onUpdate:modelValue":B[8]||(B[8]=L=>n.value=L)},null,8,["modelValue"])]),_:1}),a(nt,{size:"large"},{default:o(()=>[a(et,null,{title:o(()=>[f("Automation")]),description:o(()=>[f("Set when to automatically clear browsing data using the current settings. ")]),default:o(()=>[a(wf,{config:n.value,"onUpdate:config":B[9]||(B[9]=L=>n.value=L)},null,8,["config"])]),_:1})]),_:1}),i("div",If,[a(r(ie),{class:"mx-auto w-1/2 my-16 opacity-50 dark:bg-foreground"})]),a(et,null,{title:o(()=>[i("span",Mf,[Pf,i("a",{href:r(le).links.coffee,target:"_blank",title:"Buy me a coffee"},[a(r($a),{class:"size-6 align-middle self-end"},{default:o(()=>[i("img",{src:r(Ms).authorIconPath},null,8,Of)]),_:1})],8,Ef)])]),default:o(()=>[a(of)]),_:1}),a(et,null,{title:o(()=>[f("Manage Settings")]),default:o(()=>[a(hr,{config:n.value,"onUpdate:config":B[10]||(B[10]=L=>n.value=L),"include-presets-on-reset":u.value,"onUpdate:includePresetsOnReset":B[11]||(B[11]=L=>u.value=L),onExport:F,onImport:G,onLoadBrowser:k,onReset:N},null,8,["config","include-presets-on-reset"])]),_:1})]),a(r(ie),{class:"mx-auto w-1/2 my-16 opacity-50 dark:bg-foreground"}),a(et,{class:"mx-auto w-full md:w-1/2 opacity-75 hover:opacity-100 transition-opacity"},{title:o(()=>[f("What's New?")]),default:o(()=>[a(No)]),_:1}),a(jd,{"is-migrating":d.value,"onUpdate:isMigrating":B[12]||(B[12]=L=>d.value=L),migrations:p.value,"onUpdate:migrations":B[13]||(B[13]=L=>p.value=L)},null,8,["is-migrating","migrations"]),a(Dl,{class:"m-8"}),a($f)])])],64))}});window.global=window;window.process={env:{DEBUG:void 0}};const ja=Za(Uf);ja.use(Pl);ja.mount("#app");
|