claude-session-dashboard 0.1.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +156 -14
- package/dist/client/assets/_dashboard-I7m6D7BE.js +1 -0
- package/dist/client/assets/_sessionId-DEliIff6.js +12 -0
- package/dist/client/assets/app-D7yorIIh.css +1 -0
- package/dist/client/assets/{createServerFn-Le0d8Pjz.js → createServerFn-Bn6_ISOt.js} +1 -1
- package/dist/client/assets/format-Bsprb3az.js +1 -0
- package/dist/client/assets/index-BkqRvnEf.js +1 -0
- package/dist/client/assets/{main-CzD8HjLq.js → main-CfJIADCp.js} +7 -7
- package/dist/client/assets/sessions.queries-CrJg4dYU.js +1 -0
- package/dist/client/assets/settings-C4_lsEzl.js +1 -0
- package/dist/client/assets/{settings.types-B4841OLF.js → settings.types-9Qf5WcRY.js} +1 -1
- package/dist/client/assets/stats-_r1gmaTe.js +4 -0
- package/dist/client/assets/useSessionCost-DPZ-ubM1.js +65 -0
- package/dist/client/favicon.svg +3 -0
- package/dist/server/assets/_dashboard-TUzgwLqB.js +112 -0
- package/dist/server/assets/{_sessionId-BwZK4Ezz.js → _sessionId-C-XZIPqn.js} +57 -35
- package/dist/server/assets/_tanstack-start-manifest_v-B51mSkGz.js +4 -0
- package/dist/server/assets/{claude-path-CkuljM34.js → claude-path-BdwflgZ1.js} +9 -3
- package/dist/server/assets/{format-CGmJnuhZ.js → format-DIZHV7IJ.js} +3 -3
- package/dist/server/assets/{index-D4VWrt2z.js → index-CKfH7HpA.js} +28 -60
- package/dist/server/assets/project-analytics.server-BkWSd6a8.js +61 -0
- package/dist/server/assets/{router-xTSe9UH_.js → router-Cb_hBXHI.js} +62 -31
- package/dist/server/assets/{session-detail.server-azkRfON2.js → session-detail.server-DLXl-Pn-.js} +1 -1
- package/dist/server/assets/session-scanner-CLfls9u-.js +93 -0
- package/dist/server/assets/sessions.queries-B5ZBiVJy.js +42 -0
- package/dist/server/assets/{sessions.server-B8zbmvSM.js → sessions.server-CUhasKW2.js} +5 -89
- package/dist/server/assets/{settings-ko61yfVs.js → settings-C0_KyVQQ.js} +66 -20
- package/dist/server/assets/stats-BtgVene-.js +886 -0
- package/dist/server/assets/{stats.server-BZWxV-mC.js → stats.server-qTOvID9-.js} +62 -3
- package/dist/server/assets/useSessionCost-CYs5UOX-.js +209 -0
- package/dist/server/server.js +13 -10
- package/package.json +11 -1
- package/dist/client/assets/_dashboard-CYwTENkn.js +0 -1
- package/dist/client/assets/_sessionId-Bwfhm_El.js +0 -12
- package/dist/client/assets/app-DhZyFob1.css +0 -1
- package/dist/client/assets/format-Bf-cSf6L.js +0 -1
- package/dist/client/assets/index-DXhX1hdS.js +0 -1
- package/dist/client/assets/settings-BSPc79zZ.js +0 -1
- package/dist/client/assets/stats-CDIvpOt9.js +0 -4
- package/dist/client/assets/useSessionCost-9NP6uhla.js +0 -61
- package/dist/server/assets/_dashboard--ukhquwO.js +0 -97
- package/dist/server/assets/_tanstack-start-manifest_v-gtQY7f-T.js +0 -4
- package/dist/server/assets/stats-DItsFPp5.js +0 -266
- package/dist/server/assets/useSessionCost-EB0VxklP.js +0 -76
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const F=Symbol.for("constructDateFrom");function g(t,e){return typeof t=="function"?t(e):t&&typeof t=="object"&&F in t?t[F](e):t instanceof Date?new t.constructor(e):new Date(e)}function m(t,e){return g(e||t,t)}let Q={};function x(){return Q}function P(t,e){const n=x(),r=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=m(t,e?.in),o=a.getDay(),s=(o<r?7:0)+o-r;return a.setDate(a.getDate()-s),a.setHours(0,0,0,0),a}function v(t,e){return P(t,{...e,weekStartsOn:1})}function H(t,e){const n=m(t,e?.in),r=n.getFullYear(),a=g(n,0);a.setFullYear(r+1,0,4),a.setHours(0,0,0,0);const o=v(a),s=g(n,0);s.setFullYear(r,0,4),s.setHours(0,0,0,0);const i=v(s);return n.getTime()>=o.getTime()?r+1:n.getTime()>=i.getTime()?r:r-1}function S(t){const e=m(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}function W(t,...e){const n=g.bind(null,t||e.find(r=>typeof r=="object"));return e.map(n)}function E(t,e){const n=m(t,e?.in);return n.setHours(0,0,0,0),n}function B(t,e,n){const[r,a]=W(n?.in,t,e),o=E(r),s=E(a),i=+o-S(o),f=+s-S(s);return Math.round((i-f)/864e5)}function L(t,e){const n=H(t,e),r=g(t,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),v(r)}function k(t,e){const n=+m(t)-+m(e);return n<0?-1:n>0?1:n}function j(t){return g(t,Date.now())}function G(t){return t instanceof Date||typeof t=="object"&&Object.prototype.toString.call(t)==="[object Date]"}function R(t){return!(!G(t)&&typeof t!="number"||isNaN(+m(t)))}function A(t,e,n){const[r,a]=W(n?.in,t,e),o=r.getFullYear()-a.getFullYear(),s=r.getMonth()-a.getMonth();return o*12+s}function V(t){return e=>{const r=(t?Math[t]:Math.trunc)(e);return r===0?0:r}}function J(t,e){return+m(t)-+m(e)}function z(t,e){const n=m(t,e?.in);return n.setHours(23,59,59,999),n}function U(t,e){const n=m(t,e?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function K(t,e){const n=m(t,e?.in);return+z(n,e)==+U(n,e)}function Z(t,e,n){const[r,a,o]=W(n?.in,t,t,e),s=k(a,o),i=Math.abs(A(a,o));if(i<1)return 0;a.getMonth()===1&&a.getDate()>27&&a.setDate(30),a.setMonth(a.getMonth()-s*i);let f=k(a,o)===-s;K(r)&&i===1&&k(r,o)===1&&(f=!1);const l=s*(i-+f);return l===0?0:l}function tt(t,e,n){const r=J(t,e)/1e3;return V(n?.roundingMethod)(r)}function et(t,e){const n=m(t,e?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const nt={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},rt=(t,e,n)=>{let r;const a=nt[t];return typeof a=="string"?r=a:e===1?r=a.one:r=a.other.replace("{{count}}",e.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function T(t){return(e={})=>{const n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}const at={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ot={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},it={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},st={date:T({formats:at,defaultWidth:"full"}),time:T({formats:ot,defaultWidth:"full"}),dateTime:T({formats:it,defaultWidth:"full"})},ut={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},ct=(t,e,n,r)=>ut[t];function p(t){return(e,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&t.formattingValues){const s=t.defaultFormattingWidth||t.defaultWidth,i=n?.width?String(n.width):s;a=t.formattingValues[i]||t.formattingValues[s]}else{const s=t.defaultWidth,i=n?.width?String(n.width):t.defaultWidth;a=t.values[i]||t.values[s]}const o=t.argumentCallback?t.argumentCallback(e):e;return a[o]}}const dt={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},ft={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},ht={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},mt={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},lt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},gt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},wt=(t,e)=>{const n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},yt={ordinalNumber:wt,era:p({values:dt,defaultWidth:"wide"}),quarter:p({values:ft,defaultWidth:"wide",argumentCallback:t=>t-1}),month:p({values:ht,defaultWidth:"wide"}),day:p({values:mt,defaultWidth:"wide"}),dayPeriod:p({values:lt,defaultWidth:"wide",formattingValues:gt,defaultFormattingWidth:"wide"})};function O(t){return(e,n={})=>{const r=n.width,a=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],o=e.match(a);if(!o)return null;const s=o[0],i=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],f=Array.isArray(i)?Mt(i,d=>d.test(s)):bt(i,d=>d.test(s));let l;l=t.valueCallback?t.valueCallback(f):f,l=n.valueCallback?n.valueCallback(l):l;const c=e.slice(s.length);return{value:l,rest:c}}}function bt(t,e){for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(t[n]))return n}function Mt(t,e){for(let n=0;n<t.length;n++)if(e(t[n]))return n}function Dt(t){return(e,n={})=>{const r=e.match(t.matchPattern);if(!r)return null;const a=r[0],o=e.match(t.parsePattern);if(!o)return null;let s=t.valueCallback?t.valueCallback(o[0]):o[0];s=n.valueCallback?n.valueCallback(s):s;const i=e.slice(a.length);return{value:s,rest:i}}}const pt=/^(\d+)(th|st|nd|rd)?/i,Ot=/\d+/i,Pt={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},xt={any:[/^b/i,/^(a|c)/i]},kt={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},vt={any:[/1/i,/2/i,/3/i,/4/i]},St={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},Wt={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Yt={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Tt={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Ft={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Et={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Ct={ordinalNumber:Dt({matchPattern:pt,parsePattern:Ot,valueCallback:t=>parseInt(t,10)}),era:O({matchPatterns:Pt,defaultMatchWidth:"wide",parsePatterns:xt,defaultParseWidth:"any"}),quarter:O({matchPatterns:kt,defaultMatchWidth:"wide",parsePatterns:vt,defaultParseWidth:"any",valueCallback:t=>t+1}),month:O({matchPatterns:St,defaultMatchWidth:"wide",parsePatterns:Wt,defaultParseWidth:"any"}),day:O({matchPatterns:Yt,defaultMatchWidth:"wide",parsePatterns:Tt,defaultParseWidth:"any"}),dayPeriod:O({matchPatterns:Ft,defaultMatchWidth:"any",parsePatterns:Et,defaultParseWidth:"any"})},_={code:"en-US",formatDistance:rt,formatLong:st,formatRelative:ct,localize:yt,match:Ct,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Nt(t,e){const n=m(t,e?.in);return B(n,et(n))+1}function qt(t,e){const n=m(t,e?.in),r=+v(n)-+L(n);return Math.round(r/6048e5)+1}function I(t,e){const n=m(t,e?.in),r=n.getFullYear(),a=x(),o=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,s=g(e?.in||t,0);s.setFullYear(r+1,0,o),s.setHours(0,0,0,0);const i=P(s,e),f=g(e?.in||t,0);f.setFullYear(r,0,o),f.setHours(0,0,0,0);const l=P(f,e);return+n>=+i?r+1:+n>=+l?r:r-1}function Xt(t,e){const n=x(),r=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=I(t,e),o=g(e?.in||t,0);return o.setFullYear(a,0,r),o.setHours(0,0,0,0),P(o,e)}function Ht(t,e){const n=m(t,e?.in),r=+P(n,e)-+Xt(n,e);return Math.round(r/6048e5)+1}function u(t,e){const n=t<0?"-":"",r=Math.abs(t).toString().padStart(e,"0");return n+r}const y={y(t,e){const n=t.getFullYear(),r=n>0?n:1-n;return u(e==="yy"?r%100:r,e.length)},M(t,e){const n=t.getMonth();return e==="M"?String(n+1):u(n+1,2)},d(t,e){return u(t.getDate(),e.length)},a(t,e){const n=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return n==="am"?"a.m.":"p.m."}},h(t,e){return u(t.getHours()%12||12,e.length)},H(t,e){return u(t.getHours(),e.length)},m(t,e){return u(t.getMinutes(),e.length)},s(t,e){return u(t.getSeconds(),e.length)},S(t,e){const n=e.length,r=t.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return u(a,e.length)}},D={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},C={G:function(t,e,n){const r=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(t,e,n){if(e==="yo"){const r=t.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return y.y(t,e)},Y:function(t,e,n,r){const a=I(t,r),o=a>0?a:1-a;if(e==="YY"){const s=o%100;return u(s,2)}return e==="Yo"?n.ordinalNumber(o,{unit:"year"}):u(o,e.length)},R:function(t,e){const n=H(t);return u(n,e.length)},u:function(t,e){const n=t.getFullYear();return u(n,e.length)},Q:function(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return u(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return u(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,n){const r=t.getMonth();switch(e){case"M":case"MM":return y.M(t,e);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,n){const r=t.getMonth();switch(e){case"L":return String(r+1);case"LL":return u(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,n,r){const a=Ht(t,r);return e==="wo"?n.ordinalNumber(a,{unit:"week"}):u(a,e.length)},I:function(t,e,n){const r=qt(t);return e==="Io"?n.ordinalNumber(r,{unit:"week"}):u(r,e.length)},d:function(t,e,n){return e==="do"?n.ordinalNumber(t.getDate(),{unit:"date"}):y.d(t,e)},D:function(t,e,n){const r=Nt(t);return e==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):u(r,e.length)},E:function(t,e,n){const r=t.getDay();switch(e){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,n,r){const a=t.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return u(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(t,e,n,r){const a=t.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return u(o,e.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(t,e,n){const r=t.getDay(),a=r===0?7:r;switch(e){case"i":return String(a);case"ii":return u(a,e.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,n){const a=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(t,e,n){const r=t.getHours();let a;switch(r===12?a=D.noon:r===0?a=D.midnight:a=r/12>=1?"pm":"am",e){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(t,e,n){const r=t.getHours();let a;switch(r>=17?a=D.evening:r>=12?a=D.afternoon:r>=4?a=D.morning:a=D.night,e){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(t,e,n){if(e==="ho"){let r=t.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return y.h(t,e)},H:function(t,e,n){return e==="Ho"?n.ordinalNumber(t.getHours(),{unit:"hour"}):y.H(t,e)},K:function(t,e,n){const r=t.getHours()%12;return e==="Ko"?n.ordinalNumber(r,{unit:"hour"}):u(r,e.length)},k:function(t,e,n){let r=t.getHours();return r===0&&(r=24),e==="ko"?n.ordinalNumber(r,{unit:"hour"}):u(r,e.length)},m:function(t,e,n){return e==="mo"?n.ordinalNumber(t.getMinutes(),{unit:"minute"}):y.m(t,e)},s:function(t,e,n){return e==="so"?n.ordinalNumber(t.getSeconds(),{unit:"second"}):y.s(t,e)},S:function(t,e){return y.S(t,e)},X:function(t,e,n){const r=t.getTimezoneOffset();if(r===0)return"Z";switch(e){case"X":return q(r);case"XXXX":case"XX":return b(r);default:return b(r,":")}},x:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"x":return q(r);case"xxxx":case"xx":return b(r);default:return b(r,":")}},O:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+N(r,":");default:return"GMT"+b(r,":")}},z:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+N(r,":");default:return"GMT"+b(r,":")}},t:function(t,e,n){const r=Math.trunc(+t/1e3);return u(r,e.length)},T:function(t,e,n){return u(+t,e.length)}};function N(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),a=Math.trunc(r/60),o=r%60;return o===0?n+String(a):n+String(a)+e+u(o,2)}function q(t,e){return t%60===0?(t>0?"-":"+")+u(Math.abs(t)/60,2):b(t,e)}function b(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),a=u(Math.trunc(r/60),2),o=u(r%60,2);return n+a+e+o}const X=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},$=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},_t=(t,e)=>{const n=t.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return X(t,e);let o;switch(r){case"P":o=e.dateTime({width:"short"});break;case"PP":o=e.dateTime({width:"medium"});break;case"PPP":o=e.dateTime({width:"long"});break;default:o=e.dateTime({width:"full"});break}return o.replace("{{date}}",X(r,e)).replace("{{time}}",$(a,e))},It={p:$,P:_t},$t=/^D+$/,Qt=/^Y+$/,Bt=["D","DD","YY","YYYY"];function Lt(t){return $t.test(t)}function jt(t){return Qt.test(t)}function Gt(t,e,n){const r=Rt(t,e,n);if(console.warn(r),Bt.includes(t))throw new RangeError(r)}function Rt(t,e,n){const r=t[0]==="Y"?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const At=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Vt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Jt=/^'([^]*?)'?$/,zt=/''/g,Ut=/[a-zA-Z]/;function Kt(t,e,n){const r=x(),a=r.locale??_,o=r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,s=r.weekStartsOn??r.locale?.options?.weekStartsOn??0,i=m(t,n?.in);if(!R(i))throw new RangeError("Invalid time value");let f=e.match(Vt).map(c=>{const d=c[0];if(d==="p"||d==="P"){const h=It[d];return h(c,a.formatLong)}return c}).join("").match(At).map(c=>{if(c==="''")return{isToken:!1,value:"'"};const d=c[0];if(d==="'")return{isToken:!1,value:Zt(c)};if(C[d])return{isToken:!0,value:c};if(d.match(Ut))throw new RangeError("Format string contains an unescaped latin alphabet character `"+d+"`");return{isToken:!1,value:c}});a.localize.preprocessor&&(f=a.localize.preprocessor(i,f));const l={firstWeekContainsDate:o,weekStartsOn:s,locale:a};return f.map(c=>{if(!c.isToken)return c.value;const d=c.value;(jt(d)||Lt(d))&&Gt(d,e,String(t));const h=C[d[0]];return h(i,d,a.localize,l)}).join("")}function Zt(t){const e=t.match(Jt);return e?e[1].replace(zt,"'"):t}function te(t,e,n){const r=x(),a=n?.locale??r.locale??_,o=2520,s=k(t,e);if(isNaN(s))throw new RangeError("Invalid time value");const i=Object.assign({},n,{addSuffix:n?.addSuffix,comparison:s}),[f,l]=W(n?.in,...s>0?[e,t]:[t,e]),c=tt(l,f),d=(S(l)-S(f))/1e3,h=Math.round((c-d)/60);let M;if(h<2)return n?.includeSeconds?c<5?a.formatDistance("lessThanXSeconds",5,i):c<10?a.formatDistance("lessThanXSeconds",10,i):c<20?a.formatDistance("lessThanXSeconds",20,i):c<40?a.formatDistance("halfAMinute",0,i):c<60?a.formatDistance("lessThanXMinutes",1,i):a.formatDistance("xMinutes",1,i):h===0?a.formatDistance("lessThanXMinutes",1,i):a.formatDistance("xMinutes",h,i);if(h<45)return a.formatDistance("xMinutes",h,i);if(h<90)return a.formatDistance("aboutXHours",1,i);if(h<1440){const w=Math.round(h/60);return a.formatDistance("aboutXHours",w,i)}else{if(h<o)return a.formatDistance("xDays",1,i);if(h<43200){const w=Math.round(h/1440);return a.formatDistance("xDays",w,i)}else if(h<43200*2)return M=Math.round(h/43200),a.formatDistance("aboutXMonths",M,i)}if(M=Z(l,f),M<12){const w=Math.round(h/43200);return a.formatDistance("xMonths",w,i)}else{const w=M%12,Y=Math.trunc(M/12);return w<3?a.formatDistance("aboutXYears",Y,i):w<9?a.formatDistance("overXYears",Y,i):a.formatDistance("almostXYears",Y+1,i)}}function ee(t,e){return te(t,j(t),e)}function ne(t){if(t<1e3)return"<1s";const e=Math.floor(t/1e3),n=Math.floor(e/60),r=Math.floor(n/60);if(r>0){const a=n%60;return a>0?`${r}h ${a}m`:`${r}h`}if(n>0){const a=e%60;return a>0?`${n}m ${a}s`:`${n}m`}return`${e}s`}function re(t){return ee(new Date(t),{addSuffix:!0})}function ae(t){return Kt(new Date(t),"MMM d, yyyy HH:mm")}function oe(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toString()}function ie(t){return t>=1073741824?`${(t/1073741824).toFixed(1)} GB`:t>=1048576?`${(t/1048576).toFixed(1)} MB`:t>=1024?`${(t/1024).toFixed(1)} KB`:`${t} B`}function se(t){return Number.isFinite(t)?t<.005?"<$0.01":t>=100?`$${Math.round(t)}`:`$${t.toFixed(2)}`:"$0.00"}export{oe as a,se as b,ne as c,re as d,ie as e,Kt as f,ae as g};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as j,o as M,s as N,e as q,n as S,k as $,j as e,r as x,u as A,L as F,b as T,d as I}from"./main-CzD8HjLq.js";import{c as v,q as E,u as w}from"./createServerFn-Le0d8Pjz.js";import{c as z,d as G,e as _}from"./format-Bf-cSf6L.js";v({method:"GET"}).handler(j("bf8e4a7901f1843bdc9c46be1ad5ad59c615b8bbe611b73eb3ff28f20e43ee0d"));const B=v({method:"GET"}).handler(j("839d29fe93dfa2a6d506af7b48ca25197190a5ff4c796e970ddfdc6e8c98827f"));M({page:S().int().min(1),pageSize:S().int().min(5).max(100),search:N(),status:q(["all","active","completed"]),project:N()});const K=v({method:"GET"}).handler(j("a3f42f9012fd83586787da8f7cb90649da739dd947d867eb67572f68735ff495")),Q=E({queryKey:["sessions","active"],queryFn:()=>B(),refetchInterval:3e3});function O(t){return E({queryKey:["sessions","paginated",t],queryFn:()=>K({data:t}),placeholderData:$,refetchInterval:3e4})}function V({isActive:t}){return t?e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-emerald-500/15 px-2.5 py-0.5 text-xs font-medium text-emerald-400",children:[e.jsxs("span",{className:"relative flex h-2 w-2",children:[e.jsx("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-emerald-400 opacity-75"}),e.jsx("span",{className:"relative inline-flex h-2 w-2 rounded-full bg-emerald-500"})]}),"Active"]}):e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-gray-500/15 px-2.5 py-0.5 text-xs font-medium text-gray-400",children:[e.jsx("span",{className:"h-2 w-2 rounded-full bg-gray-500"}),"Completed"]})}function Y({startedAt:t}){const[l,n]=x.useState(()=>Date.now()-new Date(t).getTime());return x.useEffect(()=>{const s=setInterval(()=>{n(Date.now()-new Date(t).getTime())},1e3);return()=>clearInterval(s)},[t]),e.jsx("span",{className:"text-emerald-400",children:z(l)})}function Z({session:t}){const{privacyMode:l,anonymizePath:n,anonymizeProjectName:s}=A(),c=l?s(t.projectName):t.projectName,a=t.cwd?l?n(t.cwd):t.cwd:null;return e.jsxs(F,{to:"/sessions/$sessionId",params:{sessionId:t.sessionId},search:{project:t.projectPath},className:"group block rounded-xl border border-gray-800 bg-gray-900/50 p-4 transition-all hover:border-gray-700 hover:bg-gray-900",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"truncate text-sm font-semibold text-white",children:c}),e.jsx(V,{isActive:t.isActive})]}),t.branch&&e.jsx("p",{className:"mt-1 truncate text-xs text-gray-500",children:e.jsx("span",{className:"font-mono",children:t.branch})})]}),e.jsx("span",{className:"shrink-0 text-xs text-gray-500",children:G(t.lastActiveAt)})]}),e.jsxs("div",{className:"mt-3 flex items-center gap-4 text-xs text-gray-400",children:[e.jsx("span",{title:"Duration",children:t.isActive?e.jsx(Y,{startedAt:t.startedAt}):z(t.durationMs)}),e.jsxs("span",{title:"Messages",children:[t.messageCount," msgs"]}),t.model&&e.jsx("span",{title:"Model",className:"truncate font-mono text-gray-500",children:t.model.replace(/^claude-/,"").split("-202")[0]}),e.jsx("span",{title:"File size",className:"text-gray-500",children:_(t.fileSizeBytes)})]}),a&&e.jsx("p",{className:"mt-2 truncate text-xs font-mono text-gray-600",children:a})]})}function H({projects:t,activeCount:l}){const n=T(),{search:s,status:c,project:a}=I.useSearch(),{privacyMode:i,anonymizeProjectName:f}=A(),[h,d]=x.useState(s),o=x.useRef(null);x.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]),x.useEffect(()=>{d(s)},[s]);function p(r){d(r),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{n({to:"/sessions",search:m=>({...m,search:r,page:1})})},300)}function y(r){n({to:"/sessions",search:m=>({...m,status:r,page:1})})}function b(r){n({to:"/sessions",search:m=>({...m,project:r,page:1})})}return e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsx("input",{type:"text",placeholder:"Search sessions...",value:h,onChange:r=>p(r.target.value),className:"rounded-lg border border-gray-700 bg-gray-800/50 px-3 py-1.5 text-sm text-gray-200 placeholder-gray-500 outline-none focus:border-blue-500 focus:ring-1 focus:ring-blue-500"}),e.jsx("div",{className:"flex rounded-lg border border-gray-700 text-xs",children:["all","active","completed"].map(r=>e.jsxs("button",{onClick:()=>y(r),className:`px-3 py-1.5 capitalize transition-colors ${c===r?"bg-gray-700 text-white":"text-gray-400 hover:text-gray-200"} ${r==="all"?"rounded-l-lg":""} ${r==="completed"?"rounded-r-lg":""}`,children:[r,r==="active"&&l>0&&e.jsxs("span",{className:"ml-1 text-emerald-400",children:["(",l,")"]})]},r))}),t.length>1&&e.jsxs("select",{value:a,onChange:r=>b(r.target.value),className:"rounded-lg border border-gray-700 bg-gray-800/50 px-3 py-1.5 text-sm text-gray-200 outline-none focus:border-blue-500",children:[e.jsx("option",{value:"",children:"All projects"}),t.map(r=>e.jsx("option",{value:r,children:i?f(r):r},r))]})]})}const P="claude-dashboard:page-size",k=[5,10,25,50];function C(t){return k.includes(t)}function J(){const[t,l]=x.useState(null);x.useEffect(()=>{try{const s=localStorage.getItem(P);if(s!==null){const c=Number(s);C(c)&&l(c)}}catch{}},[]);const n=x.useCallback(s=>{if(C(s))try{localStorage.setItem(P,String(s)),l(s)}catch{}},[]);return{storedPageSize:t,setPageSize:n}}function U({page:t,totalPages:l,totalCount:n,pageSize:s,onPageChange:c,onPageSizeChange:a}){if(n===0)return null;const i=(t-1)*s+1,f=Math.min(t*s,n),h=l>1,d=h?W(t,l):[];return e.jsxs("div",{className:"flex flex-col items-center gap-3 sm:flex-row sm:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("select",{value:s,onChange:o=>a(Number(o.target.value)),className:"rounded-lg border border-gray-700 bg-gray-800/50 px-2 py-1 text-xs text-gray-200 outline-none focus:border-blue-500",children:k.map(o=>e.jsxs("option",{value:o,children:[o," / page"]},o))}),e.jsxs("p",{className:"text-xs text-gray-400",children:["Showing"," ",e.jsxs("span",{className:"font-mono text-gray-300",children:[i,"-",f]})," ","of"," ",e.jsx("span",{className:"font-mono text-gray-300",children:n})," sessions"]})]}),h&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>c(t-1),disabled:t<=1,className:"rounded-lg border border-gray-700 bg-gray-800 px-2.5 py-1.5 text-xs text-gray-400 transition-colors hover:bg-gray-700 hover:text-gray-200 disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:bg-gray-800 disabled:hover:text-gray-400",children:"Previous"}),d.map((o,p)=>o==="ellipsis"?e.jsx("span",{className:"px-1.5 text-xs text-gray-500",children:"..."},`ellipsis-${p}`):e.jsx("button",{onClick:()=>c(o),className:`min-w-[2rem] rounded-lg px-2 py-1.5 text-xs font-mono transition-colors ${o===t?"bg-blue-600 text-white":"border border-gray-700 bg-gray-800 text-gray-400 hover:bg-gray-700 hover:text-gray-200"}`,children:o},o)),e.jsx("button",{onClick:()=>c(t+1),disabled:t>=l,className:"rounded-lg border border-gray-700 bg-gray-800 px-2.5 py-1.5 text-xs text-gray-400 transition-colors hover:bg-gray-700 hover:text-gray-200 disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:bg-gray-800 disabled:hover:text-gray-400",children:"Next"})]})]})}function W(t,l){if(l<=7)return Array.from({length:l},(a,i)=>i+1);const n=new Set;n.add(1),n.add(l);for(let a=t-2;a<=t+2;a++)a>=1&&a<=l&&n.add(a);const s=Array.from(n).sort((a,i)=>a-i),c=[];for(let a=0;a<s.length;a++)a>0&&s[a]-s[a-1]>1&&c.push("ellipsis"),c.push(s[a]);return c}function X(){const t=T(),{page:l,pageSize:n,search:s,status:c,project:a}=I.useSearch(),{storedPageSize:i,setPageSize:f}=J(),h=x.useRef(!1);x.useEffect(()=>{i!==null&&!h.current&&i!==n&&(h.current=!0,t({to:"/sessions",search:u=>({...u,pageSize:i,page:1}),replace:!0}))},[i,n,t]);const{data:d,isLoading:o}=w(O({page:l,pageSize:n,search:s,status:c,project:a})),{data:p=[]}=w(Q),y=x.useMemo(()=>{if(!d)return[];const u=new Set(p.map(g=>g.sessionId));return d.sessions.map(g=>({...g,isActive:u.has(g.sessionId)||g.isActive}))},[d,p]);function b(u){t({to:"/sessions",search:g=>({...g,page:u})})}function r(u){f(u),t({to:"/sessions",search:g=>({...g,pageSize:u,page:1})})}if(o)return e.jsx("div",{className:"space-y-3",children:Array.from({length:n}).map((u,g)=>e.jsx("div",{className:"h-28 animate-pulse rounded-xl border border-gray-800 bg-gray-900/50"},g))});const m=d?.totalCount??0,D=d?.totalPages??1,R=d?.projects??[],L=p.length;return e.jsxs("div",{children:[e.jsx(H,{projects:R,activeCount:L}),e.jsx("div",{className:"mt-4 space-y-2",children:y.length===0?e.jsx("div",{className:"py-12 text-center text-sm text-gray-500",children:m===0&&!s&&c==="all"&&!a?"No sessions found in ~/.claude":"No sessions match your filters"}):y.map(u=>e.jsx(Z,{session:u},u.sessionId))}),e.jsx("div",{className:"mt-4",children:e.jsx(U,{page:d?.page??l,totalPages:D,totalCount:m,pageSize:n,onPageChange:b,onPageSizeChange:r})})]})}function ae(){return e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-white",children:"Sessions"}),e.jsx("p",{className:"mt-1 text-sm text-gray-400",children:"All Claude Code sessions from ~/.claude"}),e.jsx("div",{className:"mt-6",children:e.jsx(X,{})})]})}export{ae as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e,r as g}from"./main-CzD8HjLq.js";import{u as f}from"./createServerFn-Le0d8Pjz.js";import{S as j,D as p,u as v,a as b,s as N}from"./settings.types-B4841OLF.js";function k({value:o,onChange:u}){return e.jsx("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3 lg:grid-cols-4",children:j.map(r=>{const d=o===r.id;return e.jsxs("button",{type:"button",onClick:()=>u(r.id),className:`rounded-lg border px-3 py-2 text-left transition-colors ${d?"border-blue-500 bg-blue-500/10 text-white":"border-gray-800 bg-gray-900/50 text-gray-400 hover:border-gray-700 hover:text-gray-300"}`,children:[e.jsx("div",{className:"text-sm font-medium",children:r.displayName}),e.jsx("div",{className:"mt-0.5 font-mono text-[10px] text-gray-500",children:r.monthlyUSD!==null?`$${r.monthlyUSD}/mo`:"Custom"})]},r.id)})})}const y=[{key:"inputPerMTok",label:"Input"},{key:"outputPerMTok",label:"Output"},{key:"cacheReadPerMTok",label:"Cache Read"},{key:"cacheWritePerMTok",label:"Cache Write"}];function T({overrides:o,onChange:u}){function r(t,s,i){const n=parseFloat(i);if(!Number.isFinite(n)||n<0||n>1e6)return;const a=p.find(l=>l.modelId===t);if(!a)return;const c=o[t]?{...o[t]}:{inputPerMTok:a.inputPerMTok,outputPerMTok:a.outputPerMTok,cacheReadPerMTok:a.cacheReadPerMTok,cacheWritePerMTok:a.cacheWritePerMTok};c[s]=n;const h=c.inputPerMTok===a.inputPerMTok&&c.outputPerMTok===a.outputPerMTok&&c.cacheReadPerMTok===a.cacheReadPerMTok&&c.cacheWritePerMTok===a.cacheWritePerMTok,m={...o};h?delete m[t]:m[t]=c,u(m)}function d(t,s){const i=o[t.modelId];return i?i[s]:t[s]}function x(t,s){const i=o[t];if(!i)return!1;const n=p.find(a=>a.modelId===t);return n?i[s]!==n[s]:!1}return e.jsxs("div",{className:"overflow-x-auto",children:[e.jsxs("table",{className:"w-full text-left text-xs",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-gray-800",children:[e.jsx("th",{className:"pb-2 pr-4 text-gray-400 font-medium",children:"Model"}),y.map(t=>e.jsx("th",{className:"pb-2 px-2 text-right text-gray-400 font-medium",children:t.label},t.key))]})}),e.jsx("tbody",{children:p.map(t=>e.jsxs("tr",{className:"border-b border-gray-800/50",children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-gray-300",children:t.displayName}),y.map(s=>{const i=d(t,s.key),n=x(t.modelId,s.key);return e.jsx("td",{className:"px-1 py-1.5",children:e.jsx("input",{type:"number",step:"0.01",min:"0",value:i,onChange:a=>r(t.modelId,s.key,a.target.value),className:`w-20 rounded border px-2 py-1 text-right font-mono text-xs ${n?"border-blue-500/50 bg-blue-500/10 text-blue-400":"border-gray-700 bg-gray-800 text-gray-300"} focus:border-blue-500 focus:outline-none`})},s.key)})]},t.modelId))})]}),e.jsx("p",{className:"mt-2 text-[10px] text-gray-600",children:"Prices in USD per million tokens. Overridden values shown in blue."})]})}function P(){const{data:o,isLoading:u}=f(N),r=v(),[d,x]=g.useState("pro"),[t,s]=g.useState({}),[i,n]=g.useState(!1);g.useEffect(()=>{o&&(x(o.subscriptionTier),s(o.pricingOverrides),n(!1))},[o]);function a(l){x(l),n(!0)}function c(l){s(l),n(!0)}function h(){x(b.subscriptionTier),s(b.pricingOverrides),n(!0)}function m(){const l={version:1,subscriptionTier:d,pricingOverrides:t};r.mutate(l,{onSuccess:()=>{n(!1)}})}return u?e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"h-8 w-48 animate-pulse rounded bg-gray-800"}),e.jsx("div",{className:"h-64 animate-pulse rounded-xl bg-gray-900/50"})]}):e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-bold text-white",children:"Settings"}),e.jsx("p",{className:"mt-1 text-xs text-gray-500",children:"Configure your subscription tier and API pricing for cost estimation."}),e.jsxs("div",{className:"mt-6",children:[e.jsx("h2",{className:"text-sm font-semibold text-gray-300",children:"Subscription Tier"}),e.jsx("p",{className:"mt-1 text-[10px] text-gray-500",children:"Select your Claude subscription plan. This is informational only and does not affect cost calculations."}),e.jsx("div",{className:"mt-3",children:e.jsx(k,{value:d,onChange:a})})]}),e.jsxs("div",{className:"mt-6",children:[e.jsx("h2",{className:"text-sm font-semibold text-gray-300",children:"API Pricing (per million tokens)"}),e.jsx("p",{className:"mt-1 text-[10px] text-gray-500",children:"Default prices from Anthropic. Override any value to match your negotiated rates."}),e.jsx("div",{className:"mt-3 rounded-xl border border-gray-800 bg-gray-900/50 p-4",children:e.jsx(T,{overrides:t,onChange:c})})]}),e.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e.jsx("button",{type:"button",onClick:h,className:"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 transition-colors hover:border-gray-600 hover:text-gray-300",children:"Reset to Defaults"}),e.jsxs("div",{className:"flex items-center gap-3",children:[r.isSuccess&&!i&&e.jsx("span",{className:"text-xs text-emerald-400",children:"Saved"}),r.isError&&e.jsxs("span",{className:"text-xs text-red-400",children:["Failed to save: ",r.error?.message??"Unknown error"]}),e.jsx("button",{type:"button",onClick:m,disabled:!i||r.isPending,className:`rounded-lg px-4 py-1.5 text-xs font-medium transition-colors ${i&&!r.isPending?"bg-blue-600 text-white hover:bg-blue-500":"cursor-not-allowed bg-gray-800 text-gray-500"}`,children:r.isPending?"Saving...":"Save"})]})]})]})}function R(){return e.jsx(P,{})}export{R as component};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{c as yt,R as d,g as We,r as de,j as u}from"./main-CzD8HjLq.js";import{c as gt,q as bt,u as xt}from"./createServerFn-Le0d8Pjz.js";import{f as At,a as qe,b as _e,c as Ot}from"./format-Bf-cSf6L.js";import{c as B,f as O,r as He,a as Pt,b as Ue,d as jt,i as I,T as Pe,p as D,L as $,g as Ye,e as je,h as Ze,D as kt,C as wt,j as Z,k as H,S as St,A as _t,l as Tt,m as Te,n as Et,o as w,q as Nt,u as Rt,G as $t,s as ae,t as It,v as Qe,w as Ct,x as ie,y as le,z as Lt,B as Dt,E as zt,F as Ft,H as Bt,I as Xe,J as Je,K as et,M as tt,N as rt,O as oe,X as nt,Y as it,P as Mt,Q as Kt,R as at,U as ot,V as Vt,W as Gt}from"./useSessionCost-9NP6uhla.js";import"./settings.types-B4841OLF.js";const Wt=gt({method:"GET"}).handler(yt("4b9a58c176f487b49800a372100037cdf33cf048f3592a449f115c7e3f5ea799")),qt=bt({queryKey:["stats"],queryFn:()=>Wt(),refetchInterval:6e4});var Ht=["points","className","baseLinePoints","connectNulls"];function U(){return U=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},U.apply(this,arguments)}function Ut(e,t){if(e==null)return{};var n=Yt(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Yt(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ee(e){return Jt(e)||Xt(e)||Qt(e)||Zt()}function Zt(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
2
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qt(e,t){if(e){if(typeof e=="string")return be(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return be(e,t)}}function Xt(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Jt(e){if(Array.isArray(e))return be(e)}function be(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ne=function(t){return t&&t.x===+t.x&&t.y===+t.y},er=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return t.forEach(function(r){Ne(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),Ne(t[0])&&n[n.length-1].push(t[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},te=function(t,n){var r=er(t);n&&(r=[r.reduce(function(a,o){return[].concat(Ee(a),Ee(o))},[])]);var i=r.map(function(a){return a.reduce(function(o,c,f){return"".concat(o).concat(f===0?"M":"L").concat(c.x,",").concat(c.y)},"")}).join("");return r.length===1?"".concat(i,"Z"):i},tr=function(t,n,r){var i=te(t,r);return"".concat(i.slice(-1)==="Z"?i.slice(0,-1):i,"L").concat(te(n.reverse(),r).slice(1))},rr=function(t){var n=t.points,r=t.className,i=t.baseLinePoints,a=t.connectNulls,o=Ut(t,Ht);if(!n||!n.length)return null;var c=B("recharts-polygon",r);if(i&&i.length){var f=o.stroke&&o.stroke!=="none",l=tr(n,i,a);return d.createElement("g",{className:c},d.createElement("path",U({},O(o,!0),{fill:l.slice(-1)==="Z"?o.fill:"none",stroke:"none",d:l})),f?d.createElement("path",U({},O(o,!0),{fill:"none",d:te(n,a)})):null,f?d.createElement("path",U({},O(o,!0),{fill:"none",d:te(i,a)})):null)}var s=te(n,a);return d.createElement("path",U({},O(o,!0),{fill:s.slice(-1)==="Z"?o.fill:"none",className:c,d:s}))},ye,Re;function nr(){if(Re)return ye;Re=1;var e=He(),t=Pt(),n=Ue();function r(i,a){return i&&i.length?e(i,n(a,2),t):void 0}return ye=r,ye}var ir=nr();const ar=We(ir);var ge,$e;function or(){if($e)return ge;$e=1;var e=He(),t=Ue(),n=jt();function r(i,a){return i&&i.length?e(i,t(a,2),n):void 0}return ge=r,ge}var sr=or();const lr=We(sr);var cr=["cx","cy","angle","ticks","axisLine"],ur=["ticks","tick","angle","tickFormatter","stroke"];function Q(e){"@babel/helpers - typeof";return Q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Q(e)}function re(){return re=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},re.apply(this,arguments)}function Ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function M(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ie(Object(n),!0).forEach(function(r){he(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ie(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Ce(e,t){if(e==null)return{};var n=fr(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function fr(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function dr(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Le(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,lt(r.key),r)}}function hr(e,t,n){return t&&Le(e.prototype,t),n&&Le(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function pr(e,t,n){return t=ce(t),vr(e,st()?Reflect.construct(t,n||[],ce(e).constructor):t.apply(e,n))}function vr(e,t){if(t&&(Q(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return mr(e)}function mr(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function st(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(st=function(){return!!e})()}function ce(e){return ce=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ce(e)}function yr(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xe(e,t)}function xe(e,t){return xe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},xe(e,t)}function he(e,t,n){return t=lt(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lt(e){var t=gr(e,"string");return Q(t)=="symbol"?t:t+""}function gr(e,t){if(Q(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Q(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var pe=(function(e){function t(){return dr(this,t),pr(this,t,arguments)}return yr(t,e),hr(t,[{key:"getTickValueCoord",value:function(r){var i=r.coordinate,a=this.props,o=a.angle,c=a.cx,f=a.cy;return D(c,f,i,o)}},{key:"getTickTextAnchor",value:function(){var r=this.props.orientation,i;switch(r){case"left":i="end";break;case"right":i="start";break;default:i="middle";break}return i}},{key:"getViewBox",value:function(){var r=this.props,i=r.cx,a=r.cy,o=r.angle,c=r.ticks,f=ar(c,function(s){return s.coordinate||0}),l=lr(c,function(s){return s.coordinate||0});return{cx:i,cy:a,startAngle:o,endAngle:o,innerRadius:l.coordinate||0,outerRadius:f.coordinate||0}}},{key:"renderAxisLine",value:function(){var r=this.props,i=r.cx,a=r.cy,o=r.angle,c=r.ticks,f=r.axisLine,l=Ce(r,cr),s=c.reduce(function(m,h){return[Math.min(m[0],h.coordinate),Math.max(m[1],h.coordinate)]},[1/0,-1/0]),v=D(i,a,s[0],o),p=D(i,a,s[1],o),y=M(M(M({},O(l,!1)),{},{fill:"none"},O(f,!1)),{},{x1:v.x,y1:v.y,x2:p.x,y2:p.y});return d.createElement("line",re({className:"recharts-polar-radius-axis-line"},y))}},{key:"renderTicks",value:function(){var r=this,i=this.props,a=i.ticks,o=i.tick,c=i.angle,f=i.tickFormatter,l=i.stroke,s=Ce(i,ur),v=this.getTickTextAnchor(),p=O(s,!1),y=O(o,!1),m=a.map(function(h,g){var x=r.getTickValueCoord(h),A=M(M(M(M({textAnchor:v,transform:"rotate(".concat(90-c,", ").concat(x.x,", ").concat(x.y,")")},p),{},{stroke:"none",fill:l},y),{},{index:g},x),{},{payload:h});return d.createElement($,re({className:B("recharts-polar-radius-axis-tick",Ye(o)),key:"tick-".concat(h.coordinate)},je(r.props,h,g)),t.renderTickItem(o,A,f?f(h.value,g):h.value))});return d.createElement($,{className:"recharts-polar-radius-axis-ticks"},m)}},{key:"render",value:function(){var r=this.props,i=r.ticks,a=r.axisLine,o=r.tick;return!i||!i.length?null:d.createElement($,{className:B("recharts-polar-radius-axis",this.props.className)},a&&this.renderAxisLine(),o&&this.renderTicks(),Ze.renderCallByParent(this.props,this.getViewBox()))}}],[{key:"renderTickItem",value:function(r,i,a){var o;return d.isValidElement(r)?o=d.cloneElement(r,i):I(r)?o=r(i):o=d.createElement(Pe,re({},i,{className:"recharts-polar-radius-axis-tick-value"}),a),o}}])})(de.PureComponent);he(pe,"displayName","PolarRadiusAxis");he(pe,"axisType","radiusAxis");he(pe,"defaultProps",{type:"number",radiusAxisId:0,cx:0,cy:0,angle:0,orientation:"right",stroke:"#ccc",axisLine:!0,tick:!0,tickCount:5,allowDataOverflow:!1,scale:"auto",allowDuplicatedCategory:!0});function X(e){"@babel/helpers - typeof";return X=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},X(e)}function V(){return V=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},V.apply(this,arguments)}function De(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?De(Object(n),!0).forEach(function(r){ve(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):De(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function br(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ze(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ut(r.key),r)}}function xr(e,t,n){return t&&ze(e.prototype,t),n&&ze(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Ar(e,t,n){return t=ue(t),Or(e,ct()?Reflect.construct(t,n||[],ue(e).constructor):t.apply(e,n))}function Or(e,t){if(t&&(X(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Pr(e)}function Pr(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(ct=function(){return!!e})()}function ue(e){return ue=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ue(e)}function jr(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ae(e,t)}function Ae(e,t){return Ae=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Ae(e,t)}function ve(e,t,n){return t=ut(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ut(e){var t=kr(e,"string");return X(t)=="symbol"?t:t+""}function kr(e,t){if(X(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(X(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var wr=Math.PI/180,Fe=1e-5,me=(function(e){function t(){return br(this,t),Ar(this,t,arguments)}return jr(t,e),xr(t,[{key:"getTickLineCoord",value:function(r){var i=this.props,a=i.cx,o=i.cy,c=i.radius,f=i.orientation,l=i.tickSize,s=l||8,v=D(a,o,c,r.coordinate),p=D(a,o,c+(f==="inner"?-1:1)*s,r.coordinate);return{x1:v.x,y1:v.y,x2:p.x,y2:p.y}}},{key:"getTickTextAnchor",value:function(r){var i=this.props.orientation,a=Math.cos(-r.coordinate*wr),o;return a>Fe?o=i==="outer"?"start":"end":a<-Fe?o=i==="outer"?"end":"start":o="middle",o}},{key:"renderAxisLine",value:function(){var r=this.props,i=r.cx,a=r.cy,o=r.radius,c=r.axisLine,f=r.axisLineType,l=K(K({},O(this.props,!1)),{},{fill:"none"},O(c,!1));if(f==="circle")return d.createElement(kt,V({className:"recharts-polar-angle-axis-line"},l,{cx:i,cy:a,r:o}));var s=this.props.ticks,v=s.map(function(p){return D(i,a,o,p.coordinate)});return d.createElement(rr,V({className:"recharts-polar-angle-axis-line"},l,{points:v}))}},{key:"renderTicks",value:function(){var r=this,i=this.props,a=i.ticks,o=i.tick,c=i.tickLine,f=i.tickFormatter,l=i.stroke,s=O(this.props,!1),v=O(o,!1),p=K(K({},s),{},{fill:"none"},O(c,!1)),y=a.map(function(m,h){var g=r.getTickLineCoord(m),x=r.getTickTextAnchor(m),A=K(K(K({textAnchor:x},s),{},{stroke:"none",fill:l},v),{},{index:h,payload:m,x:g.x2,y:g.y2});return d.createElement($,V({className:B("recharts-polar-angle-axis-tick",Ye(o)),key:"tick-".concat(m.coordinate)},je(r.props,m,h)),c&&d.createElement("line",V({className:"recharts-polar-angle-axis-tick-line"},p,g)),o&&t.renderTickItem(o,A,f?f(m.value,h):m.value))});return d.createElement($,{className:"recharts-polar-angle-axis-ticks"},y)}},{key:"render",value:function(){var r=this.props,i=r.ticks,a=r.radius,o=r.axisLine;return a<=0||!i||!i.length?null:d.createElement($,{className:B("recharts-polar-angle-axis",this.props.className)},o&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,i,a){var o;return d.isValidElement(r)?o=d.cloneElement(r,i):I(r)?o=r(i):o=d.createElement(Pe,V({},i,{className:"recharts-polar-angle-axis-tick-value"}),a),o}}])})(de.PureComponent);ve(me,"displayName","PolarAngleAxis");ve(me,"axisType","angleAxis");ve(me,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var se;function J(e){"@babel/helpers - typeof";return J=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},J(e)}function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Y.apply(this,arguments)}function Be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Be(Object(n),!0).forEach(function(r){E(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Be(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Sr(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Me(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,dt(r.key),r)}}function _r(e,t,n){return t&&Me(e.prototype,t),n&&Me(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Tr(e,t,n){return t=fe(t),Er(e,ft()?Reflect.construct(t,n||[],fe(e).constructor):t.apply(e,n))}function Er(e,t){if(t&&(J(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Nr(e)}function Nr(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ft(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(ft=function(){return!!e})()}function fe(e){return fe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},fe(e)}function Rr(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Oe(e,t)}function Oe(e,t){return Oe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Oe(e,t)}function E(e,t,n){return t=dt(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dt(e){var t=$r(e,"string");return J(t)=="symbol"?t:t+""}function $r(e,t){if(J(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(J(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var z=(function(e){function t(n){var r;return Sr(this,t),r=Tr(this,t,[n]),E(r,"pieRef",null),E(r,"sectorRefs",[]),E(r,"id",Rt("recharts-pie-")),E(r,"handleAnimationEnd",function(){var i=r.props.onAnimationEnd;r.setState({isAnimationFinished:!0}),I(i)&&i()}),E(r,"handleAnimationStart",function(){var i=r.props.onAnimationStart;r.setState({isAnimationFinished:!1}),I(i)&&i()}),r.state={isAnimationFinished:!n.isAnimationActive,prevIsAnimationActive:n.isAnimationActive,prevAnimationId:n.animationId,sectorToFocus:0},r}return Rr(t,e),_r(t,[{key:"isActiveIndex",value:function(r){var i=this.props.activeIndex;return Array.isArray(i)?i.indexOf(r)!==-1:r===i}},{key:"hasActiveIndex",value:function(){var r=this.props.activeIndex;return Array.isArray(r)?r.length!==0:r||r===0}},{key:"renderLabels",value:function(r){var i=this.props.isAnimationActive;if(i&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.label,c=a.labelLine,f=a.dataKey,l=a.valueKey,s=O(this.props,!1),v=O(o,!1),p=O(c,!1),y=o&&o.offsetRadius||20,m=r.map(function(h,g){var x=(h.startAngle+h.endAngle)/2,A=D(h.cx,h.cy,h.outerRadius+y,x),P=b(b(b(b({},s),h),{},{stroke:"none"},v),{},{index:g,textAnchor:t.getTextAnchor(A.x,h.cx)},A),C=b(b(b(b({},s),h),{},{fill:"none",stroke:h.fill},p),{},{index:g,points:[D(h.cx,h.cy,h.outerRadius,x),A]}),S=f;return Z(f)&&Z(l)?S="value":Z(f)&&(S=l),d.createElement($,{key:"label-".concat(h.startAngle,"-").concat(h.endAngle,"-").concat(h.midAngle,"-").concat(g)},c&&t.renderLabelLineItem(c,C,"line"),t.renderLabelItem(o,P,H(h,S)))});return d.createElement($,{className:"recharts-pie-labels"},m)}},{key:"renderSectorsStatically",value:function(r){var i=this,a=this.props,o=a.activeShape,c=a.blendStroke,f=a.inactiveShape;return r.map(function(l,s){if(l?.startAngle===0&&l?.endAngle===0&&r.length!==1)return null;var v=i.isActiveIndex(s),p=f&&i.hasActiveIndex()?f:null,y=v?o:p,m=b(b({},l),{},{stroke:c?l.fill:l.stroke,tabIndex:-1});return d.createElement($,Y({ref:function(g){g&&!i.sectorRefs.includes(g)&&i.sectorRefs.push(g)},tabIndex:-1,className:"recharts-pie-sector"},je(i.props,l,s),{key:"sector-".concat(l?.startAngle,"-").concat(l?.endAngle,"-").concat(l.midAngle,"-").concat(s)}),d.createElement(St,Y({option:y,isActive:v,shapeType:"sector"},m)))})}},{key:"renderSectorsWithAnimation",value:function(){var r=this,i=this.props,a=i.sectors,o=i.isAnimationActive,c=i.animationBegin,f=i.animationDuration,l=i.animationEasing,s=i.animationId,v=this.state,p=v.prevSectors,y=v.prevIsAnimationActive;return d.createElement(_t,{begin:c,duration:f,isActive:o,easing:l,from:{t:0},to:{t:1},key:"pie-".concat(s,"-").concat(y),onAnimationStart:this.handleAnimationStart,onAnimationEnd:this.handleAnimationEnd},function(m){var h=m.t,g=[],x=a&&a[0],A=x.startAngle;return a.forEach(function(P,C){var S=p&&p[C],_=C>0?Tt(P,"paddingAngle",0):0;if(S){var N=Te(S.endAngle-S.startAngle,P.endAngle-P.startAngle),j=b(b({},P),{},{startAngle:A+_,endAngle:A+N(h)+_});g.push(j),A=j.endAngle}else{var R=P.endAngle,T=P.startAngle,L=Te(0,R-T),ne=L(h),F=b(b({},P),{},{startAngle:A+_,endAngle:A+ne+_});g.push(F),A=F.endAngle}}),d.createElement($,null,r.renderSectorsStatically(g))})}},{key:"attachKeyboardHandlers",value:function(r){var i=this;r.onkeydown=function(a){if(!a.altKey)switch(a.key){case"ArrowLeft":{var o=++i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[o].focus(),i.setState({sectorToFocus:o});break}case"ArrowRight":{var c=--i.state.sectorToFocus<0?i.sectorRefs.length-1:i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[c].focus(),i.setState({sectorToFocus:c});break}case"Escape":{i.sectorRefs[i.state.sectorToFocus].blur(),i.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var r=this.props,i=r.sectors,a=r.isAnimationActive,o=this.state.prevSectors;return a&&i&&i.length&&(!o||!Et(o,i))?this.renderSectorsWithAnimation():this.renderSectorsStatically(i)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var r=this,i=this.props,a=i.hide,o=i.sectors,c=i.className,f=i.label,l=i.cx,s=i.cy,v=i.innerRadius,p=i.outerRadius,y=i.isAnimationActive,m=this.state.isAnimationFinished;if(a||!o||!o.length||!w(l)||!w(s)||!w(v)||!w(p))return null;var h=B("recharts-pie",c);return d.createElement($,{tabIndex:this.props.rootTabIndex,className:h,ref:function(x){r.pieRef=x}},this.renderSectors(),f&&this.renderLabels(o),Ze.renderCallByParent(this.props,null,!1),(!y||m)&&Nt.renderCallByParent(this.props,o,!1))}}],[{key:"getDerivedStateFromProps",value:function(r,i){return i.prevIsAnimationActive!==r.isAnimationActive?{prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:[],isAnimationFinished:!0}:r.isAnimationActive&&r.animationId!==i.prevAnimationId?{prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:i.curSectors,isAnimationFinished:!0}:r.sectors!==i.curSectors?{curSectors:r.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(r,i){return r>i?"start":r<i?"end":"middle"}},{key:"renderLabelLineItem",value:function(r,i,a){if(d.isValidElement(r))return d.cloneElement(r,i);if(I(r))return r(i);var o=B("recharts-pie-label-line",typeof r!="boolean"?r.className:"");return d.createElement(wt,Y({},i,{key:a,type:"linear",className:o}))}},{key:"renderLabelItem",value:function(r,i,a){if(d.isValidElement(r))return d.cloneElement(r,i);var o=a;if(I(r)&&(o=r(i),d.isValidElement(o)))return o;var c=B("recharts-pie-label-text",typeof r!="boolean"&&!I(r)?r.className:"");return d.createElement(Pe,Y({},i,{alignmentBaseline:"middle",className:c}),o)}}])})(de.PureComponent);se=z;E(z,"displayName","Pie");E(z,"defaultProps",{stroke:"#fff",fill:"#808080",legendType:"rect",cx:"50%",cy:"50%",startAngle:0,endAngle:360,innerRadius:0,outerRadius:"80%",paddingAngle:0,labelLine:!0,hide:!1,minAngle:0,isAnimationActive:!$t.isSsr,animationBegin:400,animationDuration:1500,animationEasing:"ease",nameKey:"name",blendStroke:!1,rootTabIndex:0});E(z,"parseDeltaAngle",function(e,t){var n=ae(t-e),r=Math.min(Math.abs(t-e),360);return n*r});E(z,"getRealPieData",function(e){var t=e.data,n=e.children,r=O(e,!1),i=It(n,Qe);return t&&t.length?t.map(function(a,o){return b(b(b({payload:a},r),a),i&&i[o]&&i[o].props)}):i&&i.length?i.map(function(a){return b(b({},r),a.props)}):[]});E(z,"parseCoordinateOfPie",function(e,t){var n=t.top,r=t.left,i=t.width,a=t.height,o=Ct(i,a),c=r+ie(e.cx,i,i/2),f=n+ie(e.cy,a,a/2),l=ie(e.innerRadius,o,0),s=ie(e.outerRadius,o,o*.8),v=e.maxRadius||Math.sqrt(i*i+a*a)/2;return{cx:c,cy:f,innerRadius:l,outerRadius:s,maxRadius:v}});E(z,"getComposedData",function(e){var t=e.item,n=e.offset,r=t.type.defaultProps!==void 0?b(b({},t.type.defaultProps),t.props):t.props,i=se.getRealPieData(r);if(!i||!i.length)return null;var a=r.cornerRadius,o=r.startAngle,c=r.endAngle,f=r.paddingAngle,l=r.dataKey,s=r.nameKey,v=r.valueKey,p=r.tooltipType,y=Math.abs(r.minAngle),m=se.parseCoordinateOfPie(r,n),h=se.parseDeltaAngle(o,c),g=Math.abs(h),x=l;Z(l)&&Z(v)?(le(!1,`Use "dataKey" to specify the value of pie,
|
|
3
|
-
the props "valueKey" will be deprecated in 1.1.0`),x="value"):Z(l)&&(le(!1,`Use "dataKey" to specify the value of pie,
|
|
4
|
-
the props "valueKey" will be deprecated in 1.1.0`),x=v);var A=i.filter(function(j){return H(j,x,0)!==0}).length,P=(g>=360?A:A-1)*f,C=g-A*y-P,S=i.reduce(function(j,R){var T=H(R,x,0);return j+(w(T)?T:0)},0),_;if(S>0){var N;_=i.map(function(j,R){var T=H(j,x,0),L=H(j,s,R),ne=(w(T)?T:0)/S,F;R?F=N.endAngle+ae(h)*f*(T!==0?1:0):F=o;var ke=F+ae(h)*((T!==0?y:0)+ne*C),we=(F+ke)/2,Se=(m.innerRadius+m.outerRadius)/2,vt=[{name:L,value:T,payload:j,dataKey:x,type:p}],mt=D(m.cx,m.cy,Se,we);return N=b(b(b({percent:ne,cornerRadius:a,name:L,tooltipPayload:vt,midAngle:we,middleRadius:Se,tooltipPosition:mt},j),m),{},{value:H(j,x),startAngle:F,endAngle:ke,payload:j,paddingAngle:ae(h)*f}),N})}return b(b({},m),{},{sectors:_,data:i})});var Ir=["x1","y1","x2","y2","key"],Cr=["offset"];function W(e){"@babel/helpers - typeof";return W=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},W(e)}function Ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ke(Object(n),!0).forEach(function(r){Lr(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Lr(e,t,n){return t=Dr(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Dr(e){var t=zr(e,"string");return W(t)=="symbol"?t:t+""}function zr(e,t){if(W(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(W(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function G(){return G=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},G.apply(this,arguments)}function Ve(e,t){if(e==null)return{};var n=Fr(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fr(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Br=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,i=t.x,a=t.y,o=t.width,c=t.height,f=t.ry;return d.createElement("rect",{x:i,y:a,ry:f,width:o,height:c,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function ht(e,t){var n;if(d.isValidElement(e))n=d.cloneElement(e,t);else if(I(e))n=e(t);else{var r=t.x1,i=t.y1,a=t.x2,o=t.y2,c=t.key,f=Ve(t,Ir),l=O(f,!1);l.offset;var s=Ve(l,Cr);n=d.createElement("line",G({},s,{x1:r,y1:i,x2:a,y2:o,fill:"none",key:c}))}return n}function Mr(e){var t=e.x,n=e.width,r=e.horizontal,i=r===void 0?!0:r,a=e.horizontalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(c,f){var l=k(k({},e),{},{x1:t,y1:c,x2:t+n,y2:c,key:"line-".concat(f),index:f});return ht(i,l)});return d.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function Kr(e){var t=e.y,n=e.height,r=e.vertical,i=r===void 0?!0:r,a=e.verticalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(c,f){var l=k(k({},e),{},{x1:c,y1:t,x2:c,y2:t+n,key:"line-".concat(f),index:f});return ht(i,l)});return d.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function Vr(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,i=e.y,a=e.width,o=e.height,c=e.horizontalPoints,f=e.horizontal,l=f===void 0?!0:f;if(!l||!t||!t.length)return null;var s=c.map(function(p){return Math.round(p+i-i)}).sort(function(p,y){return p-y});i!==s[0]&&s.unshift(0);var v=s.map(function(p,y){var m=!s[y+1],h=m?i+o-p:s[y+1]-p;if(h<=0)return null;var g=y%t.length;return d.createElement("rect",{key:"react-".concat(y),y:p,x:r,height:h,width:a,stroke:"none",fill:t[g],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return d.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},v)}function Gr(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,c=e.width,f=e.height,l=e.verticalPoints;if(!n||!r||!r.length)return null;var s=l.map(function(p){return Math.round(p+a-a)}).sort(function(p,y){return p-y});a!==s[0]&&s.unshift(0);var v=s.map(function(p,y){var m=!s[y+1],h=m?a+c-p:s[y+1]-p;if(h<=0)return null;var g=y%r.length;return d.createElement("rect",{key:"react-".concat(y),x:p,y:o,width:h,height:f,stroke:"none",fill:r[g],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return d.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},v)}var Wr=function(t,n){var r=t.xAxis,i=t.width,a=t.height,o=t.offset;return Xe(Je(k(k(k({},tt.defaultProps),r),{},{ticks:et(r,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.left,o.left+o.width,n)},qr=function(t,n){var r=t.yAxis,i=t.width,a=t.height,o=t.offset;return Xe(Je(k(k(k({},tt.defaultProps),r),{},{ticks:et(r,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.top,o.top+o.height,n)},q={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function pt(e){var t,n,r,i,a,o,c=Lt(),f=Dt(),l=zt(),s=k(k({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:q.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:q.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:q.horizontal,horizontalFill:(i=e.horizontalFill)!==null&&i!==void 0?i:q.horizontalFill,vertical:(a=e.vertical)!==null&&a!==void 0?a:q.vertical,verticalFill:(o=e.verticalFill)!==null&&o!==void 0?o:q.verticalFill,x:w(e.x)?e.x:l.left,y:w(e.y)?e.y:l.top,width:w(e.width)?e.width:l.width,height:w(e.height)?e.height:l.height}),v=s.x,p=s.y,y=s.width,m=s.height,h=s.syncWithTicks,g=s.horizontalValues,x=s.verticalValues,A=Ft(),P=Bt();if(!w(y)||y<=0||!w(m)||m<=0||!w(v)||v!==+v||!w(p)||p!==+p)return null;var C=s.verticalCoordinatesGenerator||Wr,S=s.horizontalCoordinatesGenerator||qr,_=s.horizontalPoints,N=s.verticalPoints;if((!_||!_.length)&&I(S)){var j=g&&g.length,R=S({yAxis:P?k(k({},P),{},{ticks:j?g:P.ticks}):void 0,width:c,height:f,offset:l},j?!0:h);le(Array.isArray(R),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(W(R),"]")),Array.isArray(R)&&(_=R)}if((!N||!N.length)&&I(C)){var T=x&&x.length,L=C({xAxis:A?k(k({},A),{},{ticks:T?x:A.ticks}):void 0,width:c,height:f,offset:l},T?!0:h);le(Array.isArray(L),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(W(L),"]")),Array.isArray(L)&&(N=L)}return d.createElement("g",{className:"recharts-cartesian-grid"},d.createElement(Br,{fill:s.fill,fillOpacity:s.fillOpacity,x:s.x,y:s.y,width:s.width,height:s.height,ry:s.ry}),d.createElement(Mr,G({},s,{offset:l,horizontalPoints:_,xAxis:A,yAxis:P})),d.createElement(Kr,G({},s,{offset:l,verticalPoints:N,xAxis:A,yAxis:P})),d.createElement(Vr,G({},s,{horizontalPoints:_})),d.createElement(Gr,G({},s,{verticalPoints:N})))}pt.displayName="CartesianGrid";var Hr=rt({chartName:"BarChart",GraphicalChild:oe,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:nt},{axisType:"yAxis",AxisComp:it}],formatAxisMap:Mt}),Ur=rt({chartName:"PieChart",GraphicalChild:z,validateTooltipEventTypes:["item"],defaultTooltipEventType:"item",legendContent:"children",axisComponents:[{axisType:"angleAxis",AxisComp:me},{axisType:"radiusAxis",AxisComp:pe}],formatAxisMap:Kt,defaultProps:{layout:"centric",startAngle:0,endAngle:360,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}});function Yr({data:e}){const t=e.map(n=>({...n,dateLabel:At(new Date(n.date),"MMM d")}));return u.jsxs("div",{className:"rounded-xl border border-gray-800 bg-gray-900/50 p-4",children:[u.jsx("h3",{className:"text-sm font-semibold text-gray-300",children:"Daily Activity"}),u.jsx("p",{className:"mt-1 text-xs text-gray-500",children:"Messages, sessions, and tool calls per day"}),u.jsx("div",{className:"mt-4 h-64",children:u.jsx(at,{width:"100%",height:"100%",children:u.jsxs(Hr,{data:t,children:[u.jsx(pt,{strokeDasharray:"3 3",stroke:"#1f2937"}),u.jsx(nt,{dataKey:"dateLabel",tick:{fill:"#6b7280",fontSize:10},tickLine:!1}),u.jsx(it,{tick:{fill:"#6b7280",fontSize:10},tickLine:!1,axisLine:!1}),u.jsx(ot,{contentStyle:{backgroundColor:"#111827",border:"1px solid #374151",borderRadius:"8px",fontSize:"12px"}}),u.jsx(oe,{dataKey:"messageCount",name:"Messages",fill:"#3b82f6",radius:[2,2,0,0]}),u.jsx(oe,{dataKey:"toolCallCount",name:"Tool Calls",fill:"#8b5cf6",radius:[2,2,0,0]}),u.jsx(oe,{dataKey:"sessionCount",name:"Sessions",fill:"#10b981",radius:[2,2,0,0]})]})})})]})}const Ge=["#3b82f6","#8b5cf6","#10b981","#f59e0b","#ef4444","#6366f1"];function Zr({data:e}){const t=Object.entries(e).map(([n,r])=>({name:n.replace(/^claude-/,"").split("-202")[0],fullName:n,totalTokens:r.inputTokens+r.outputTokens,outputTokens:r.outputTokens}));return t.sort((n,r)=>r.totalTokens-n.totalTokens),u.jsxs("div",{className:"rounded-xl border border-gray-800 bg-gray-900/50 p-4",children:[u.jsx("h3",{className:"text-sm font-semibold text-gray-300",children:"Model Usage"}),u.jsx("p",{className:"mt-1 text-xs text-gray-500",children:"Token usage by model"}),u.jsx("div",{className:"mt-4 h-64",children:u.jsx(at,{width:"100%",height:"100%",children:u.jsxs(Ur,{children:[u.jsx(z,{data:t,cx:"50%",cy:"50%",innerRadius:50,outerRadius:80,dataKey:"totalTokens",nameKey:"name",strokeWidth:0,children:t.map((n,r)=>u.jsx(Qe,{fill:Ge[r%Ge.length],opacity:.8},r))}),u.jsx(ot,{formatter:n=>qe(n),contentStyle:{backgroundColor:"#111827",border:"1px solid #374151",borderRadius:"8px",fontSize:"12px"}}),u.jsx(Vt,{wrapperStyle:{fontSize:"11px"}})]})})})]})}function Qr({hourCounts:e}){const t=Array.from({length:24},(r,i)=>({hour:i,label:`${i.toString().padStart(2,"0")}:00`,count:e[String(i)]??0})),n=Math.max(...t.map(r=>r.count),1);return u.jsxs("div",{className:"rounded-xl border border-gray-800 bg-gray-900/50 p-4",children:[u.jsx("h3",{className:"text-sm font-semibold text-gray-300",children:"Hourly Distribution"}),u.jsx("p",{className:"mt-1 text-xs text-gray-500",children:"Session starts by hour of day"}),u.jsx("div",{className:"mt-4 flex items-end gap-0.5",style:{height:"120px"},children:t.map(r=>{const i=r.count>0?Math.max(r.count/n*100,4):0,a=r.count/n;return u.jsxs("div",{className:"group relative flex-1",style:{height:"100%"},children:[u.jsx("div",{className:"absolute bottom-0 w-full rounded-t transition-colors",style:{height:`${i}%`,backgroundColor:`rgba(59, 130, 246, ${.2+a*.6})`}}),u.jsxs("div",{className:"absolute -top-8 left-1/2 hidden -translate-x-1/2 whitespace-nowrap rounded bg-gray-800 px-1.5 py-0.5 text-[10px] text-gray-300 group-hover:block",children:[r.label,": ",r.count]})]},r.hour)})}),u.jsxs("div",{className:"mt-1 flex justify-between text-[10px] text-gray-600",children:[u.jsx("span",{children:"00:00"}),u.jsx("span",{children:"06:00"}),u.jsx("span",{children:"12:00"}),u.jsx("span",{children:"18:00"}),u.jsx("span",{children:"23:00"})]})]})}const Xr={};function an(){const{data:e,isLoading:t}=xt(qt),n=de.useMemo(()=>{if(!e)return Xr;const a={};for(const[o,c]of Object.entries(e.modelUsage))a[o]={inputTokens:c.inputTokens,outputTokens:c.outputTokens,cacheReadInputTokens:c.cacheReadInputTokens,cacheCreationInputTokens:c.cacheCreationInputTokens};return a},[e]),{cost:r}=Gt(n);if(t)return u.jsxs("div",{className:"space-y-4",children:[u.jsx("div",{className:"h-8 w-32 animate-pulse rounded bg-gray-800"}),Array.from({length:3}).map((a,o)=>u.jsx("div",{className:"h-64 animate-pulse rounded-xl bg-gray-900/50"},o))]});if(!e)return u.jsx("div",{className:"py-12 text-center text-sm text-gray-500",children:"No stats data found. Check ~/.claude/stats-cache.json"});const i=Object.values(e.modelUsage).reduce((a,o)=>a+o.inputTokens+o.outputTokens,0);return u.jsxs("div",{children:[u.jsx("h1",{className:"text-2xl font-bold text-white",children:"Stats"}),u.jsxs("p",{className:"mt-1 text-sm text-gray-400",children:["Aggregate usage from ",e.firstSessionDate?.split("T")[0]," to"," ",e.lastComputedDate]}),u.jsxs("div",{className:"mt-6 grid grid-cols-2 gap-3 md:grid-cols-5",children:[u.jsx(ee,{label:"Total Sessions",value:String(e.totalSessions)}),u.jsx(ee,{label:"Total Messages",value:e.totalMessages.toLocaleString()}),u.jsx(ee,{label:"Total Tokens",value:qe(i),sub:r?`~${_e(r.totalUSD)}`:void 0}),u.jsx(ee,{label:"Total Estimated Cost",value:r?`~${_e(r.totalUSD)}`:"N/A"}),u.jsx(ee,{label:"Longest Session",value:Ot(e.longestSession.duration),sub:`${e.longestSession.messageCount} messages`})]}),u.jsx("div",{className:"mt-6",children:u.jsx(Yr,{data:e.dailyActivity})}),u.jsxs("div",{className:"mt-4 grid grid-cols-1 gap-4 md:grid-cols-2",children:[u.jsx(Zr,{data:e.modelUsage}),u.jsx(Qr,{hourCounts:e.hourCounts})]})]})}function ee({label:e,value:t,sub:n}){return u.jsxs("div",{className:"rounded-xl border border-gray-800 bg-gray-900/50 p-4",children:[u.jsx("p",{className:"text-xs text-gray-400",children:e}),u.jsx("p",{className:"mt-1 text-xl font-bold text-white",children:t}),n&&u.jsx("p",{className:"mt-0.5 text-xs text-gray-500",children:n})]})}export{an as component};
|