vestige/apps/dashboard/build/_app/immutable/nodes/16.Cth-SSqa.js
Sam Valladares 14b061f124
Release v2.1.23 Receipt Lock hardening
Hardens Sanhedrin Receipt Lock for model-agnostic use, adds fail-open telemetry and receipt docs, fixes smart_ingest batch safety, wires opt-in CUDA Qwen3 device selection, and refreshes dashboard/release assets.\n\nFixes #54\nFixes #58\nFixes #60\nRefs #59
2026-05-27 19:03:16 -05:00

9 lines
18 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import"../chunks/Bzak7iHL.js";import{o as Ve}from"../chunks/GG5zm9kr.js";import{p as Ye,d as a,e as n,g as e,f as Ze,t as y,r as t,u as S,a as qe,s as ue,h as I,c as et,n as tt}from"../chunks/CpWkWWOo.js";import{d as Ue,s as u,a as Ae}from"../chunks/BlVfL1ME.js";import{i as L}from"../chunks/B4yTwGkE.js";import{e as Q,i as pe}from"../chunks/CGEBXrjl.js";import{c as at,a as v,f as m,b as Oe}from"../chunks/CHOnp4oo.js";import{s as Fe}from"../chunks/aVbAZ-t7.js";import{a as Ee}from"../chunks/B7CfdQuM.js";import{s as M}from"../chunks/A7po6GxK.js";import{s as Re}from"../chunks/Cx-f-Pzo.js";import{p as st}from"../chunks/V6gjw5Ec.js";import{N as rt}from"../chunks/CcUbQ_Wl.js";const ze=1440*60*1e3;function xe(p){const o=typeof p=="string"?new Date(p):new Date(p);return o.setHours(0,0,0,0),o}function we(p,o){return Math.floor((xe(p).getTime()-xe(o).getTime())/ze)}function Be(p){const o=p.getFullYear(),f=String(p.getMonth()+1).padStart(2,"0"),N=String(p.getDate()).padStart(2,"0");return`${o}-${f}-${N}`}function He(p,o){if(!o)return"none";const f=new Date(o);if(Number.isNaN(f.getTime()))return"none";const N=we(f,p);return N<0?"overdue":N===0?"today":N<=7?"week":"future"}function Ke(p,o){if(!o)return null;const f=new Date(o);return Number.isNaN(f.getTime())?null:we(f,p)}function nt(p){if(p.length===0)return 0;let o=0;for(const f of p)o+=f.retentionStrength??0;return o/p.length}function it(p){const o=xe(p);return o.setDate(o.getDate()-14),o.setDate(o.getDate()-o.getDay()),o}function ot(p,o){let f=0,N=0,P=0,E=0,j=0,Z=0;const B=xe(p);for(const H of o){if(!H.nextReviewAt)continue;const K=new Date(H.nextReviewAt);if(Number.isNaN(K.getTime()))continue;const _=we(K,p);_<0&&f++,_<=0&&N++,_<=7&&P++,_<=30&&E++,_>=0&&(j+=(K.getTime()-B.getTime())/ze,Z++)}const w=Z>0?j/Z:0;return{overdue:f,dueToday:N,dueThisWeek:P,dueThisMonth:E,avgDays:w}}var dt=Oe('<line y1="0" stroke="rgba(129,140,248,0.5)" stroke-width="1"></line>'),lt=Oe('<path fill="none" stroke="var(--color-recall)" stroke-width="1.5" stroke-linejoin="round"></path>'),vt=Oe('<circle r="1.5" fill="var(--color-recall)"></circle>'),ct=m('<div class="text-[10px] text-muted font-mono uppercase tracking-wider text-center"> </div>'),ut=m('<span class="text-[9px] text-muted"> </span>'),pt=m('<span class="text-[9px] text-muted"> </span>'),xt=m('<div class="flex-1 flex flex-col items-center justify-center gap-0.5"><span class="text-base sm:text-lg font-bold leading-none"> </span> <!></div>'),gt=m('<button type="button"><div class="flex flex-col h-full"><div class="flex items-start justify-between"><span> </span> <!></div> <!></div></button>'),mt=m("<span> </span>"),ft=m('<span class="px-1 py-0.5 bg-white/[0.04] rounded text-muted"> </span>'),_t=m('<div class="flex items-start gap-3 p-2.5 rounded-lg bg-white/[0.02] hover:bg-white/[0.04] transition"><span class="w-2 h-2 mt-1.5 rounded-full flex-shrink-0"></span> <div class="flex-1 min-w-0"><p class="text-sm text-text leading-snug line-clamp-2"> </p> <div class="flex items-center gap-2 mt-1 text-[10px] text-muted"><span> </span> <!> <!></div></div> <div class="flex flex-col items-end gap-1 flex-shrink-0"><div class="w-12 h-1 bg-deep rounded-full overflow-hidden"><div class="h-full rounded-full"></div></div> <span class="text-[10px] text-muted"> </span></div></div>'),bt=m('<p class="text-xs text-muted text-center pt-2"> </p>'),ht=m('<div class="p-5 glass rounded-xl space-y-3 animate-panel-in svelte-rs1z7a"><div class="flex items-center justify-between"><div><h3 class="text-sm text-bright font-semibold"> </h3> <p class="text-xs text-dim mt-0.5"> </p></div> <button type="button" class="text-xs text-muted hover:text-dim px-2 py-1 rounded-lg hover:bg-white/[0.03]" aria-label="Close">close ×</button></div> <div class="space-y-2 max-h-96 overflow-y-auto pr-1"><!> <!></div></div>'),yt=m('<div class="space-y-4"><div class="p-4 glass-subtle rounded-xl"><div class="flex items-center justify-between mb-2"><span class="text-xs text-dim font-medium">Avg retention of memories due — last 2 weeks → next 4</span> <div class="flex items-center gap-3 text-[10px] text-muted"><span class="flex items-center gap-1"><span class="w-2 h-0.5 bg-recall"></span>retention</span> <span class="flex items-center gap-1"><span class="w-px h-3 bg-synapse-glow"></span>today</span></div></div> <svg preserveAspectRatio="none" class="w-full h-12 block" aria-hidden="true"><line x1="0" stroke="rgba(239,68,68,0.18)" stroke-dasharray="2 4" stroke-width="1"></line><line x1="0" stroke="rgba(16,185,129,0.18)" stroke-dasharray="2 4" stroke-width="1"></line><!><!><!></svg></div> <div class="grid grid-cols-7 gap-2 px-1"></div> <div class="grid grid-cols-7 gap-2"></div> <div class="flex items-center gap-4 text-[10px] text-muted flex-wrap px-1"><span class="flex items-center gap-1.5"><span class="w-3 h-3 rounded" style="background: rgba(239,68,68,0.16); border: 1px solid rgba(239,68,68,0.45);"></span> Overdue</span> <span class="flex items-center gap-1.5"><span class="w-3 h-3 rounded" style="background: rgba(245,158,11,0.18); border: 1px solid rgba(245,158,11,0.5);"></span> Due today</span> <span class="flex items-center gap-1.5"><span class="w-3 h-3 rounded" style="background: rgba(99,102,241,0.16); border: 1px solid rgba(99,102,241,0.45);"></span> Within 7 days</span> <span class="flex items-center gap-1.5"><span class="w-3 h-3 rounded" style="background: rgba(168,85,247,0.08); border: 1px solid rgba(168,85,247,0.2);"></span> Future (8+ days)</span></div> <!></div>');function wt(p,o){Ye(o,!0);let f=st(o,"anchor",19,()=>new Date),N=S(()=>xe(f())),P=S(()=>it(f())),E=S(()=>(()=>{const r=new Map;for(const s of o.memories){if(!s.nextReviewAt)continue;const i=new Date(s.nextReviewAt);if(Number.isNaN(i.getTime()))continue;const c=Be(xe(i)),k=r.get(c);k?k.push(s):r.set(c,[s])}return r})()),j=S(()=>(()=>{const r=[];for(let s=0;s<42;s++){const i=new Date(e(P));i.setDate(i.getDate()+s);const c=Be(i),k=e(E).get(c)??[],h=we(i,e(N));r.push({date:i,key:c,isToday:h===0,inWindow:h>=-14&&h<=28,memories:k,avgRetention:nt(k)})}return r})());function Z(r){if(r.memories.length===0)return{bg:"rgba(255,255,255,0.02)",border:"rgba(99,102,241,0.06)",text:"#4a4a7a"};const s=we(r.date,e(N));return s<-1?{bg:"rgba(239,68,68,0.16)",border:"rgba(239,68,68,0.45)",text:"#fca5a5"}:s>=-1&&s<=0?{bg:"rgba(245,158,11,0.18)",border:"rgba(245,158,11,0.5)",text:"#fcd34d"}:s>0&&s<=7?{bg:"rgba(99,102,241,0.16)",border:"rgba(99,102,241,0.45)",text:"#a5b4fc"}:{bg:"rgba(168,85,247,0.08)",border:"rgba(168,85,247,0.2)",text:"#c084fc"}}let B=ue(null),w=S(()=>e(j).find(r=>r.key===e(B))??null);function H(r){I(B,e(B)===r?null:r,!0)}const K=600,_=56;let Y=S(()=>(()=>{const r=[],s=e(j).length;for(let i=0;i<s;i++){const c=e(j)[i],k=i/(s-1)*K,h=c.avgRetention,A=_-6-h*(_-12);r.push({x:k,y:A,r:h,count:c.memories.length})}return r})()),ke=S(()=>(()=>{const r=e(Y).filter(s=>s.count>0);return r.length===0?"":r.map((s,i)=>`${i===0?"M":"L"} ${s.x.toFixed(1)} ${s.y.toFixed(1)}`).join(" ")})()),ge=S(()=>e(j).findIndex(r=>r.isToday)),ee=S(()=>e(ge)>=0?e(ge)/(e(j).length-1)*K:-1);const me=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function fe(r){return r.toLocaleDateString(void 0,{weekday:"long",month:"long",day:"numeric",year:"numeric"})}var ne=yt(),_e=a(ne),be=n(a(_e),2);M(be,"viewBox","0 0 600 56");var ie=a(be);M(ie,"x2",K),M(ie,"y1",_-6-.3*(_-12)),M(ie,"y2",_-6-.3*(_-12));var oe=n(ie);M(oe,"x2",K),M(oe,"y1",_-6-.7*(_-12)),M(oe,"y2",_-6-.7*(_-12));var $e=n(oe);{var Ne=r=>{var s=dt();M(s,"y2",_),y(()=>{M(s,"x1",e(ee)),M(s,"x2",e(ee))}),v(r,s)};L($e,r=>{e(ee)>=0&&r(Ne)})}var d=n($e);{var x=r=>{var s=lt();y(()=>M(s,"d",e(ke))),v(r,s)};L(d,r=>{e(ke)&&r(x)})}var g=n(d);Q(g,17,()=>e(Y),pe,(r,s)=>{var i=at(),c=Ze(i);{var k=h=>{var A=vt();y(()=>{M(A,"cx",e(s).x),M(A,"cy",e(s).y)}),v(h,A)};L(c,h=>{e(s).count>0&&h(k)})}v(r,i)}),t(be),t(_e);var D=n(_e,2);Q(D,21,()=>me,pe,(r,s)=>{var i=ct(),c=a(i,!0);t(i),y(()=>u(c,e(s))),v(r,i)}),t(D);var W=n(D,2);Q(W,21,()=>e(j),r=>r.key,(r,s)=>{const i=S(()=>Z(e(s)));var c=gt(),k=a(c),h=a(k),A=a(h),he=a(A,!0);t(A);var de=n(A,2);{var ae=b=>{var l=ut(),C=a(l,!0);t(l),y(X=>u(C,X),[()=>e(s).date.toLocaleDateString(void 0,{month:"short"})]),v(b,l)},le=S(()=>e(s).date.getDate()===1);L(de,b=>{e(le)&&b(ae)})}t(h);var ve=n(h,2);{var se=b=>{var l=xt(),C=a(l),X=a(C,!0);t(C);var G=n(C,2);{var U=z=>{var J=pt(),V=a(J);t(J),y(ye=>u(V,`${ye??""}%`),[()=>(e(s).avgRetention*100).toFixed(0)]),v(z,J)};L(G,z=>{e(s).avgRetention>0&&z(U)})}t(l),y(()=>{Re(C,`color: ${e(i).text??""}`),u(X,e(s).memories.length)}),v(b,l)};L(ve,b=>{e(s).memories.length>0&&b(se)})}t(k),t(c),y((b,l)=>{c.disabled=e(s).memories.length===0,Fe(c,1,`relative aspect-square rounded-lg p-2 text-left transition-all duration-200
${e(s).inWindow?"opacity-100":"opacity-35"}
${e(s).memories.length>0?"hover:scale-[1.03] cursor-pointer":"cursor-default"}
${e(s).isToday?"ring-2 ring-synapse/60 shadow-[0_0_16px_rgba(99,102,241,0.3)]":""}
${e(B)===e(s).key?"ring-2 ring-dream/60 shadow-[0_0_16px_rgba(168,85,247,0.3)]":""}`),Re(c,`background: ${e(i).bg??""}; border: 1px solid ${e(i).border??""};`),M(c,"title",b),Fe(A,1,`text-[10px] font-mono ${e(s).isToday?"text-synapse-glow font-bold":"text-dim"}`),u(he,l)},[()=>`${fe(e(s).date)}${e(s).memories.length} due`,()=>e(s).date.getDate()]),Ae("click",c,()=>H(e(s).key)),v(r,c)}),t(W);var q=n(W,4);{var te=r=>{var s=ht(),i=a(s),c=a(i),k=a(c),h=a(k,!0);t(k);var A=n(k,2),he=a(A);t(A),t(c);var de=n(c,2);t(i);var ae=n(i,2),le=a(ae);Q(le,17,()=>e(w).memories.slice(0,100),b=>b.id,(b,l)=>{var C=_t(),X=a(C),G=n(X,2),U=a(G),z=a(U,!0);t(U);var J=n(U,2),V=a(J),ye=a(V,!0);t(V);var Se=n(V,2);{var Ce=R=>{var F=mt(),O=a(F);t(F),y(()=>u(O,`· ${e(l).reviewCount??""} review${e(l).reviewCount===1?"":"s"}`)),v(R,F)};L(Se,R=>{e(l).reviewCount!==void 0&&R(Ce)})}var je=n(Se,2);Q(je,17,()=>e(l).tags.slice(0,2),pe,(R,F)=>{var O=ft(),De=a(O,!0);t(O),y(()=>u(De,e(F))),v(R,O)}),t(J),t(G);var $=n(G,2),T=a($),re=a(T);t(T);var ce=n(T,2),Me=a(ce);t(ce),t($),t(C),y(R=>{Re(X,`background: ${(rt[e(l).nodeType]||"#8B95A5")??""}`),u(z,e(l).content),u(ye,e(l).nodeType),Re(re,`width: ${e(l).retentionStrength*100}%; background: ${e(l).retentionStrength>.7?"var(--color-recall)":e(l).retentionStrength>.4?"var(--color-warning)":"var(--color-decay)"}`),u(Me,`${R??""}%`)},[()=>(e(l).retentionStrength*100).toFixed(0)]),v(b,C)});var ve=n(le,2);{var se=b=>{var l=bt(),C=a(l);t(l),y(()=>u(C,`+${e(w).memories.length-100} more`)),v(b,l)};L(ve,b=>{e(w).memories.length>100&&b(se)})}t(ae),t(s),y((b,l)=>{u(h,b),u(he,`${e(w).memories.length??""} memor${e(w).memories.length===1?"y":"ies"} due
· avg retention ${l??""}%`)},[()=>fe(e(w).date),()=>(e(w).avgRetention*100).toFixed(0)]),Ae("click",de,()=>I(B,null)),v(r,s)};L(q,r=>{e(w)&&e(w).memories.length>0&&r(te)})}t(ne),v(p,ne),qe()}Ue(["click"]);var kt=m('<button type="button"> </button>'),$t=m('<div class="px-3 py-2 glass-subtle rounded-lg text-[11px] text-dim"> </div>'),St=m('<div class="aspect-square glass-subtle rounded-lg animate-pulse"></div>'),Dt=m('<div class="h-20 glass-subtle rounded-xl animate-pulse"></div>'),Tt=m('<div class="grid lg:grid-cols-[1fr_280px] gap-6"><div class="space-y-3"><div class="h-14 glass-subtle rounded-xl animate-pulse"></div> <div class="grid grid-cols-7 gap-2"></div></div> <div class="space-y-3"></div></div>'),Rt=m('<div class="p-10 glass rounded-xl text-center space-y-3"><p class="text-sm text-decay">API unavailable.</p> <p class="text-xs text-dim">Could not fetch memories from /api/memories.</p></div>'),At=m(`<div class="p-10 glass rounded-xl text-center space-y-4"><div class="text-4xl text-dream/40">◷</div> <p class="text-sm text-bright font-medium">FSRS review schedule not yet populated.</p> <p class="text-xs text-dim max-w-md mx-auto"> <code class="text-muted">nextReviewAt</code> timestamp yet. Run consolidation to compute
next-review dates via FSRS-6.</p> <button type="button" class="px-4 py-2 bg-warning/20 border border-warning/40 text-warning text-sm rounded-xl hover:bg-warning/30 transition">Run Consolidation</button></div>`),Ft=m('<div class="flex items-baseline justify-between"><span class="text-xs text-dim">Overdue</span> <span class="text-2xl font-bold text-decay"> </span></div>'),Nt=m('<p class="text-xs text-muted italic">Nothing in this window.</p>'),Ct=m('<div class="p-2 rounded-lg bg-white/[0.02] hover:bg-white/[0.04] transition"><p class="text-xs text-text leading-snug line-clamp-2"> </p> <div class="flex items-center gap-2 mt-1 text-[10px]"><span> </span> <span class="text-muted"> </span></div></div>'),jt=m('<p class="text-[10px] text-muted text-center pt-1"> </p>'),Mt=m('<div class="space-y-2 max-h-96 overflow-y-auto pr-1"><!> <!></div>'),Lt=m('<div class="grid lg:grid-cols-[1fr_280px] gap-6"><div class="min-w-0"><!></div> <aside class="space-y-4"><div class="p-5 glass rounded-xl space-y-4"><h2 class="text-xs text-dim font-semibold uppercase tracking-wider">Queue</h2> <div class="space-y-3"><!> <div class="flex items-baseline justify-between"><span class="text-xs text-dim">Due today</span> <span class="text-2xl font-bold text-warning"> </span></div> <div class="flex items-baseline justify-between"><span class="text-xs text-dim">This week</span> <span class="text-2xl font-bold text-synapse-glow"> </span></div> <div class="flex items-baseline justify-between"><span class="text-xs text-dim">This month</span> <span class="text-2xl font-bold text-dream-glow"> </span></div></div> <div class="pt-3 border-t border-synapse/10"><div class="flex items-baseline justify-between"><span class="text-xs text-dim">Avg days until review</span> <span class="text-lg font-semibold text-text"> </span></div> <p class="text-[10px] text-muted mt-1"> </p></div></div> <div class="p-5 glass-subtle rounded-xl space-y-3"><div class="flex items-center justify-between"><h2 class="text-xs text-dim font-semibold uppercase tracking-wider"> </h2> <span class="text-xs text-muted"> </span></div> <!></div></aside></div>'),Wt=m('<div class="p-6 max-w-7xl mx-auto space-y-6"><div class="flex items-center justify-between flex-wrap gap-3"><div><h1 class="text-xl text-bright font-semibold">Review Schedule</h1> <p class="text-xs text-dim mt-1">FSRS-6 next-review dates across your memory corpus</p></div> <div class="flex gap-1 p-1 glass-subtle rounded-xl"></div></div> <!> <!></div>');function Gt(p,o){Ye(o,!0);let f=ue(et([])),N=ue(0),P=ue(!0),E=ue(!1),j=ue("week");const Z=2e3;async function B(){const d=await Ee.memories.list({limit:String(Z)});I(f,d.memories,!0),I(N,d.total,!0)}Ve(async()=>{try{await B()}catch{I(E,!0),I(f,[],!0)}finally{I(P,!1)}});let w=S(()=>e(f).filter(d=>!!d.nextReviewAt)),H=S(()=>new Date),K=S(()=>e(N)>e(f).length),_=S(()=>(()=>{const d=e(j);return d==="all"?e(w):e(w).filter(x=>{const g=He(e(H),x.nextReviewAt);if(g==="none")return!1;if(d==="today")return g==="overdue"||g==="today";if(d==="week")return g!=="future";const D=Ke(e(H),x.nextReviewAt);return D!==null&&D<=30})})()),Y=S(()=>ot(e(H),e(w)));async function ke(){I(P,!0);try{await Ee.consolidate(),await B(),I(E,!1)}catch{I(E,!0)}finally{I(P,!1)}}const ge=[{key:"today",label:"Due today"},{key:"week",label:"This week"},{key:"month",label:"This month"},{key:"all",label:"All upcoming"}];var ee=Wt(),me=a(ee),fe=n(a(me),2);Q(fe,21,()=>ge,pe,(d,x)=>{var g=kt(),D=a(g,!0);t(g),y(()=>{Fe(g,1,`px-3 py-1.5 text-xs rounded-lg transition-all
${e(j)===e(x).key?"bg-synapse/20 text-synapse-glow border border-synapse/30":"text-dim hover:text-text hover:bg-white/[0.03] border border-transparent"}`),u(D,e(x).label)}),Ae("click",g,()=>I(j,e(x).key,!0)),v(d,g)}),t(fe),t(me);var ne=n(me,2);{var _e=d=>{var x=$t(),g=a(x);t(x),y((D,W)=>u(g,`Showing the first ${D??""} of ${W??""} memories.
Schedule reflects this slice only.`),[()=>e(f).length.toLocaleString(),()=>e(N).toLocaleString()]),v(d,x)};L(ne,d=>{!e(P)&&!e(E)&&e(K)&&d(_e)})}var be=n(ne,2);{var ie=d=>{var x=Tt(),g=a(x),D=n(a(g),2);Q(D,20,()=>Array(42),pe,(q,te)=>{var r=St();v(q,r)}),t(D),t(g);var W=n(g,2);Q(W,20,()=>Array(5),pe,(q,te)=>{var r=Dt();v(q,r)}),t(W),t(x),v(d,x)},oe=d=>{var x=Rt();v(d,x)},$e=d=>{var x=At(),g=n(a(x),4),D=a(g);tt(2),t(g);var W=n(g,2);t(x),y(()=>u(D,`None of your ${e(f).length??""} memor${e(f).length===1?"y has":"ies have"} a `)),Ae("click",W,ke),v(d,x)},Ne=d=>{var x=Lt(),g=a(x),D=a(g);wt(D,{get memories(){return e(w)}}),t(g);var W=n(g,2),q=a(W),te=n(a(q),2),r=a(te);{var s=$=>{var T=Ft(),re=n(a(T),2),ce=a(re,!0);t(re),t(T),y(()=>u(ce,e(Y).overdue)),v($,T)};L(r,$=>{e(Y).overdue>0&&$(s)})}var i=n(r,2),c=n(a(i),2),k=a(c,!0);t(c),t(i);var h=n(i,2),A=n(a(h),2),he=a(A,!0);t(A),t(h);var de=n(h,2),ae=n(a(de),2),le=a(ae,!0);t(ae),t(de),t(te);var ve=n(te,2),se=a(ve),b=n(a(se),2),l=a(b,!0);t(b),t(se);var C=n(se,2),X=a(C);t(C),t(ve),t(q);var G=n(q,2),U=a(G),z=a(U),J=a(z,!0);t(z);var V=n(z,2),ye=a(V,!0);t(V),t(U);var Se=n(U,2);{var Ce=$=>{var T=Nt();v($,T)},je=$=>{var T=Mt(),re=a(T);Q(re,17,()=>e(_).slice().sort((R,F)=>(R.nextReviewAt??"").localeCompare(F.nextReviewAt??"")).slice(0,50),R=>R.id,(R,F)=>{const O=S(()=>He(e(H),e(F).nextReviewAt)),De=S(()=>Ke(e(H),e(F).nextReviewAt)??0);var Le=Ct(),We=a(Le),Qe=a(We,!0);t(We);var Ie=n(We,2),Te=a(Ie),Xe=a(Te,!0);t(Te);var Pe=n(Te,2),Ge=a(Pe);t(Pe),t(Ie),t(Le),y(Je=>{u(Qe,e(F).content),Fe(Te,1,e(O)==="overdue"?"text-decay":e(O)==="today"?"text-warning":e(O)==="week"?"text-synapse-glow":"text-dream-glow"),u(Xe,e(O)==="overdue"?`${-e(De)}d overdue`:e(O)==="today"?"today":`in ${e(De)}d`),u(Ge,`· ${Je??""}%`)},[()=>(e(F).retentionStrength*100).toFixed(0)]),v(R,Le)});var ce=n(re,2);{var Me=R=>{var F=jt(),O=a(F);t(F),y(()=>u(O,`+${e(_).length-50} more`)),v(R,F)};L(ce,R=>{e(_).length>50&&R(Me)})}t(T),v($,T)};L(Se,$=>{e(_).length===0?$(Ce):$(je,!1)})}t(G),t(W),t(x),y(($,T)=>{u(k,e(Y).dueToday),u(he,e(Y).dueThisWeek),u(le,e(Y).dueThisMonth),u(l,$),u(X,`Across ${e(w).length??""} scheduled memor${e(w).length===1?"y":"ies"}`),u(J,T),u(ye,e(_).length)},[()=>e(Y).avgDays.toFixed(1),()=>{var $;return($=ge.find(T=>T.key===e(j)))==null?void 0:$.label}]),v(d,x)};L(be,d=>{e(P)?d(ie):e(E)?d(oe,1):e(w).length===0?d($e,2):d(Ne,!1)})}t(ee),v(p,ee),qe()}Ue(["click"]);export{Gt as component};