usage-board 1.0.0 → 2.0.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.
Files changed (31) hide show
  1. package/dist/index.mjs +18 -9
  2. package/dist/public/_nuxt/B-CIibMz.js +25 -0
  3. package/dist/public/_nuxt/BFLIXB9O.js +9 -0
  4. package/dist/public/_nuxt/{DcPhnO3V.js → BNPuv5_2.js} +18 -18
  5. package/dist/public/_nuxt/Brp07rVz.js +3 -0
  6. package/dist/public/_nuxt/Bvg0CuDs.js +258 -0
  7. package/dist/public/_nuxt/CvpNFEwm.js +1 -0
  8. package/dist/public/_nuxt/D3pogf62.js +1 -0
  9. package/dist/public/_nuxt/{DLRBRF52.js → D9KD20BD.js} +1 -1
  10. package/dist/public/_nuxt/DUfyK9T8.js +21 -0
  11. package/dist/public/_nuxt/{BKFuB2T3.js → DsWoOjFk.js} +2 -2
  12. package/dist/public/_nuxt/builds/latest.json +1 -1
  13. package/dist/public/_nuxt/builds/meta/38460625-fa40-4f13-86da-ddec4bfb4ab8.json +1 -0
  14. package/dist/public/_nuxt/entry.CJkVK2j6.css +1 -0
  15. package/dist/public/_nuxt/{CileeSf2.js → f_iPFAtL.js} +1 -1
  16. package/dist/server/chunks/_/error-500.mjs +14 -0
  17. package/dist/server/chunks/_/index.min.mjs +348 -0
  18. package/dist/server/chunks/_/shared.cjs.prod.mjs +1 -1
  19. package/dist/server/chunks/build/client.precomputed.mjs +1 -1
  20. package/dist/server/chunks/nitro/nitro.mjs +164 -815
  21. package/dist/server/chunks/routes/api/payload.json.mjs +10 -348
  22. package/dist/server/chunks/routes/renderer.mjs +1 -2
  23. package/dist/server/chunks/routes/ws.mjs +1063 -0
  24. package/dist/server/index.mjs +1 -2
  25. package/package.json +6 -2
  26. package/dist/public/_nuxt/BNf7fR7M.js +0 -282
  27. package/dist/public/_nuxt/DAg3mJyk.js +0 -1
  28. package/dist/public/_nuxt/DoxGa6D0.js +0 -9
  29. package/dist/public/_nuxt/DptRzj9K.js +0 -3
  30. package/dist/public/_nuxt/builds/meta/12cca5fc-d3df-4df1-b723-c944bdd0c587.json +0 -1
  31. package/dist/public/_nuxt/entry.DrzELaFO.css +0 -1
@@ -1,4 +1,4 @@
1
- import{C as fe,q as me,S as Tt,s as Z,w as ve,r as Nt,t as st,v as z,x as W,y as Bt,z as G,A as yt,B as dt,D as At,E as zt,F as V,G as be,H as Yt,I as ye,J as _e,X as ke,O as Zt,K as X,L as Jt,M as xe,N as Se,P as ot,Q as $t,R as Te,T as Rt,U as Ae,V as Kt,W as kt,Y as $e,Z as De,$ as Ce,a0 as Qt,a1 as we,a2 as Re,a3 as Me,a4 as Le,a5 as Ue,a6 as Ot,a7 as Et,a8 as Oe,a9 as Ee,aa as te,b as Pt,ab as Pe,ac as Xt,ad as ee,ae as ne,h as gt,i as Y,af as it,ag as je,ah as Ve,ai as qt,aj as Ie,ak as Mt,al as We,am as Fe,d as Ge,_ as He,e as Ne,f as Be,c as ze,a as Ye,g as pt,k as Ke,l as Xe,m as qe,n as Ze,o as Je,j as Qe}from"./BNf7fR7M.js";import{f as Q,A as tn,E as en,v as ft,x as jt,o as F,c as K,J as nn,a1 as an,r as Vt,a6 as Dt,G as Ct,D as ae,K as se,y as oe,i as D,g as mt,w as R,a as L,t as j,b as S,I as U,$ as xt,Z as St,N as It,a7 as sn,a2 as on,d as I}from"./DoxGa6D0.js";const ln=Object.assign(Object.assign({},fe),{tooltip:void 0,annotations:void 0});class rn extends me{constructor(e,t,n){var o;super(e),this._defaultConfig=ln,this.config=this._defaultConfig,t&&(this.updateContainer(t,!0),this.component=t.component),n&&this.setData(n,!0),!((o=this.component)===null||o===void 0)&&o.datamodel.data&&this.render()}setData(e,t){var n;const{config:o}=this;this.component&&this.component.setData(e),t||this.render(),(n=o.tooltip)===null||n===void 0||n.hide()}updateContainer(e,t){super.updateContainer(e),this._removeAllChildren(),this.component=e.component,e.sizing&&(this.component.sizing=e.sizing),this.element.appendChild(this.component.element);const n=e.tooltip;n&&(n.hasContainer()||n.setContainer(this._container),n.setComponents([this.component]));const o=e.annotations;o&&this.element.appendChild(o.element),this.element.appendChild(this._svgDefs.node()),this.element.appendChild(this._svgDefsExternal.node()),t||this.render()}updateComponent(e,t){this.component.setConfig(e),t||this.render()}update(e,t,n){e&&this.updateContainer(e,!0),t&&this.updateComponent(t,!0),n&&this.setData(n,!0),this.render()}getFitWidthScale(){const{config:e,component:t}=this,n=t;if(!n.getWidth)return 1;const o=n.getWidth()+e.margin.left+e.margin.right;return this.width/o}_preRender(){var e,t;super._preRender(),this.component.setSize(this.width,this.height,this.containerWidth,this.containerHeight),this.component.setContainerMargin(this.config.margin),(e=this.config.annotations)===null||e===void 0||e.setSize(this.width,this.height,this.containerWidth,this.containerHeight),(t=this.config.annotations)===null||t===void 0||t.setContainerMargin(this.config.margin)}_render(e){var t,n;const{config:o,component:r}=this;super._render(e),r.g.attr("transform",`translate(${o.margin.left},${o.margin.top})`),r.render(e),(t=o.annotations)===null||t===void 0||t.render(e),o.tooltip&&o.tooltip.update(),(n=o.onRenderComplete)===null||n===void 0||n.call(o,this.svg.node(),o.margin,this.containerWidth,this.containerHeight,this.width,this.height)}render(e=this.config.duration){const{config:t,component:n}=this;if(t.sizing===Tt.Extend||t.sizing===Tt.FitWidth){const o=t.sizing===Tt.FitWidth,r=n,s=r.getWidth()+t.margin.left+t.margin.right,a=r.getHeight()+t.margin.top+t.margin.bottom,d=o?this.getFitWidthScale():1,l=this.svg.attr("width"),i=this.svg.attr("height"),g=s*d,m=a*d,v=l||i;Z(this.svg,v?e:0).attr("width",g).attr("height",m).attr("viewBox",`0 0 ${s} ${o?m:a}`).attr("preserveAspectRatio","xMinYMin")}else this.svg.attr("width",this.config.width||this.containerWidth).attr("height",this.config.height||this.containerHeight);this._resizeObserver||this._setUpResizeObserver(),cancelAnimationFrame(this._renderAnimationFrameId),this._renderAnimationFrameId=requestAnimationFrame(()=>{this._preRender(),this._render(e)})}_onResize(){var e;const{config:t}=this;super._onResize(),(e=t.tooltip)===null||e===void 0||e.hide()}destroy(){var e,t;const{component:n,config:o}=this;super.destroy(),n?.destroy(),(e=o.tooltip)===null||e===void 0||e.destroy(),(t=o.annotations)===null||t===void 0||t.destroy()}}function cn(p){return p.innerRadius}function un(p){return p.outerRadius}function dn(p){return p.startAngle}function gn(p){return p.endAngle}function hn(p){return p&&p.padAngle}function pn(p,e,t,n,o,r,s,a){var d=t-p,l=n-e,i=s-o,g=a-r,m=g*d-i*l;if(!(m*m<G))return m=(i*(e-r)-g*(p-o))/m,[p+m*d,e+m*l]}function vt(p,e,t,n,o,r,s){var a=p-t,d=e-n,l=(s?r:-r)/dt(a*a+d*d),i=l*d,g=-l*a,m=p+i,v=e+g,h=t+i,y=n+g,u=(m+h)/2,k=(v+y)/2,C=h-m,w=y-v,M=C*C+w*w,b=o-r,c=m*y-h*v,f=(w<0?-1:1)*dt(be(0,b*b*M-c*c)),A=(c*w-C*f)/M,E=(-c*C-w*f)/M,P=(c*w+C*f)/M,T=(-c*C+w*f)/M,O=A-u,_=E-k,$=P-u,B=T-k;return O*O+_*_>$*$+B*B&&(A=P,E=T),{cx:A,cy:E,x01:-i,y01:-g,x11:A*(o/b-1),y11:E*(o/b-1)}}function fn(){var p=cn,e=un,t=W(0),n=null,o=dn,r=gn,s=hn,a=null,d=ve(l);function l(){var i,g,m=+p.apply(this,arguments),v=+e.apply(this,arguments),h=o.apply(this,arguments)-Bt,y=r.apply(this,arguments)-Bt,u=zt(y-h),k=y>h;if(a||(a=i=d()),v<m&&(g=v,v=m,m=g),!(v>G))a.moveTo(0,0);else if(u>yt-G)a.moveTo(v*st(h),v*z(h)),a.arc(0,0,v,h,y,!k),m>G&&(a.moveTo(m*st(y),m*z(y)),a.arc(0,0,m,y,h,k));else{var C=h,w=y,M=h,b=y,c=u,f=u,A=s.apply(this,arguments)/2,E=A>G&&(n?+n.apply(this,arguments):dt(m*m+v*v)),P=At(zt(v-m)/2,+t.apply(this,arguments)),T=P,O=P,_,$;if(E>G){var B=Yt(E/m*z(A)),tt=Yt(E/v*z(A));(c-=B*2)>G?(B*=k?1:-1,M+=B,b-=B):(c=0,M=b=(h+y)/2),(f-=tt*2)>G?(tt*=k?1:-1,C+=tt,w-=tt):(f=0,C=w=(h+y)/2)}var q=v*st(C),et=v*z(C),lt=m*st(b),J=m*z(b);if(P>G){var rt=v*st(w),nt=v*z(w),ct=m*st(M),ht=m*z(M),N;if(u<Nt)if(N=pn(q,et,ct,ht,rt,nt,lt,J)){var ut=q-N[0],x=et-N[1],H=rt-N[0],at=nt-N[1],Gt=1/z(ye((ut*H+x*at)/(dt(ut*ut+x*x)*dt(H*H+at*at)))/2),Ht=dt(N[0]*N[0]+N[1]*N[1]);T=At(P,(m-Ht)/(Gt-1)),O=At(P,(v-Ht)/(Gt+1))}else T=O=0}f>G?O>G?(_=vt(ct,ht,q,et,v,O,k),$=vt(rt,nt,lt,J,v,O,k),a.moveTo(_.cx+_.x01,_.cy+_.y01),O<P?a.arc(_.cx,_.cy,O,V(_.y01,_.x01),V($.y01,$.x01),!k):(a.arc(_.cx,_.cy,O,V(_.y01,_.x01),V(_.y11,_.x11),!k),a.arc(0,0,v,V(_.cy+_.y11,_.cx+_.x11),V($.cy+$.y11,$.cx+$.x11),!k),a.arc($.cx,$.cy,O,V($.y11,$.x11),V($.y01,$.x01),!k))):(a.moveTo(q,et),a.arc(0,0,v,C,w,!k)):a.moveTo(q,et),!(m>G)||!(c>G)?a.lineTo(lt,J):T>G?(_=vt(lt,J,rt,nt,m,-T,k),$=vt(q,et,ct,ht,m,-T,k),a.lineTo(_.cx+_.x01,_.cy+_.y01),T<P?a.arc(_.cx,_.cy,T,V(_.y01,_.x01),V($.y01,$.x01),!k):(a.arc(_.cx,_.cy,T,V(_.y01,_.x01),V(_.y11,_.x11),!k),a.arc(0,0,m,V(_.cy+_.y11,_.cx+_.x11),V($.cy+$.y11,$.cx+$.x11),k),a.arc($.cx,$.cy,T,V($.y11,$.x11),V($.y01,$.x01),!k))):a.arc(0,0,m,b,M,k)}if(a.closePath(),i)return a=null,i+""||null}return l.centroid=function(){var i=(+p.apply(this,arguments)+ +e.apply(this,arguments))/2,g=(+o.apply(this,arguments)+ +r.apply(this,arguments))/2-Nt/2;return[st(g)*i,z(g)*i]},l.innerRadius=function(i){return arguments.length?(p=typeof i=="function"?i:W(+i),l):p},l.outerRadius=function(i){return arguments.length?(e=typeof i=="function"?i:W(+i),l):e},l.cornerRadius=function(i){return arguments.length?(t=typeof i=="function"?i:W(+i),l):t},l.padRadius=function(i){return arguments.length?(n=i==null?null:typeof i=="function"?i:W(+i),l):n},l.startAngle=function(i){return arguments.length?(o=typeof i=="function"?i:W(+i),l):o},l.endAngle=function(i){return arguments.length?(r=typeof i=="function"?i:W(+i),l):r},l.padAngle=function(i){return arguments.length?(s=typeof i=="function"?i:W(+i),l):s},l.context=function(i){return arguments.length?(a=i??null,l):a},l}function mn(p,e){return e<p?-1:e>p?1:e>=p?0:NaN}function vn(p){return p}function bn(){var p=vn,e=mn,t=null,n=W(0),o=W(yt),r=W(0);function s(a){var d,l=(a=_e(a)).length,i,g,m=0,v=new Array(l),h=new Array(l),y=+n.apply(this,arguments),u=Math.min(yt,Math.max(-yt,o.apply(this,arguments)-y)),k,C=Math.min(Math.abs(u)/l,r.apply(this,arguments)),w=C*(u<0?-1:1),M;for(d=0;d<l;++d)(M=h[v[d]=d]=+p(a[d],d,a))>0&&(m+=M);for(e!=null?v.sort(function(b,c){return e(h[b],h[c])}):t!=null&&v.sort(function(b,c){return t(a[b],a[c])}),d=0,g=m?(u-l*w)/m:0;d<l;++d,y=k)i=v[d],M=h[i],k=y+(M>0?M*g:0)+w,h[i]={data:a[i],index:d,value:M,startAngle:y,endAngle:k,padAngle:C};return h}return s.value=function(a){return arguments.length?(p=typeof a=="function"?a:W(+a),s):p},s.sortValues=function(a){return arguments.length?(e=a,t=null,s):e},s.sort=function(a){return arguments.length?(t=a,e=null,s):t},s.startAngle=function(a){return arguments.length?(n=typeof a=="function"?a:W(+a),s):n},s.endAngle=function(a){return arguments.length?(o=typeof a=="function"?a:W(+a),s):o},s.padAngle=function(a){return arguments.length?(r=typeof a=="function"?a:W(+a),s):r},s}function yn({x:p,y:e,w:t,h:n,tl:o=!1,tr:r=!1,bl:s=!1,br:a=!1,r:d=0}){let l;l=`M${p+d},${e}h${t-2*d}`;let i=r?d:0,g=r?0:d;return l+=`a${i},${i} 0 0 1 ${i},${i}`,l+=`h${g}v${g}`,l+=`v${n-2*d}`,i=a?d:0,g=a?0:d,l+=`a${i},${i} 0 0 1 ${-i},${i}`,l+=`v${g}h${-g}`,l+=`h${2*d-t}`,i=s?d:0,g=s?0:d,l+=`a${i},${i} 0 0 1 ${-i},${-i}`,l+=`h${-g}v${-g}`,l+=`v${2*d-n}`,i=o?d:0,g=o?0:d,l+=`a${i},${i} 0 0 1 ${i},${-i}`,l+=`v${-g}h${g}`,l+="z",l}const _n=Object.assign(Object.assign({},ke),{color:void 0,barMaxWidth:void 0,barWidth:void 0,dataStep:void 0,barPadding:0,roundedCorners:2,cursor:null,barMinHeight1Px:!1,barMinHeightZeroValue:null,orientation:Zt.Vertical}),ie=X`
1
+ import{y as me,B as fe,D as Tt,E as Z,F as ve,G as Gt,H as st,I as z,J as F,K as Nt,L as B,M as yt,N as dt,O as At,P as zt,Q as V,R as be,T as Yt,U as ye,V as _e,X as ke,W as Zt,Y as K,Z as Jt,$ as xe,a0 as Se,a1 as ot,a2 as $t,a3 as Te,a4 as Rt,a5 as Ae,a6 as Xt,a7 as kt,a8 as $e,a9 as De,aa as Ce,ab as Qt,ac as we,ad as Re,ae as Me,af as Le,ag as Ue,ah as Ot,ai as Et,aj as Oe,ak as Ee,al as te,w as Pt,S as Pe,a as Kt,z as ee,_ as ne,d as gt,f as Y,h as it,j as je,am as Ve,e as qt,an as Ie,ao as Mt,i as Fe,ap as We,l as Be,m as He,n as Ge,o as Ne,p as ze,q as Ye,c as pt,v as Xe,t as Ke,s as qe}from"./Bvg0CuDs.js";import{_ as Ze,a as Je,b as Qe}from"./B-CIibMz.js";import{z as Q,V as tn,p as en,i as mt,v as jt,o as W,c as X,C as nn,F as an,r as Vt,ax as Dt,au as Ct,ar as ae,x as se,n as oe,h as D,B as ft,w as R,a as L,t as j,b as S,D as U,Y as xt,X as St,E as It,a5 as sn,af as on,d as I}from"./BFLIXB9O.js";const ln=Object.assign(Object.assign({},me),{tooltip:void 0,annotations:void 0});class rn extends fe{constructor(e,t,n){var o;super(e),this._defaultConfig=ln,this.config=this._defaultConfig,t&&(this.updateContainer(t,!0),this.component=t.component),n&&this.setData(n,!0),!((o=this.component)===null||o===void 0)&&o.datamodel.data&&this.render()}setData(e,t){var n;const{config:o}=this;this.component&&this.component.setData(e),t||this.render(),(n=o.tooltip)===null||n===void 0||n.hide()}updateContainer(e,t){super.updateContainer(e),this._removeAllChildren(),this.component=e.component,e.sizing&&(this.component.sizing=e.sizing),this.element.appendChild(this.component.element);const n=e.tooltip;n&&(n.hasContainer()||n.setContainer(this._container),n.setComponents([this.component]));const o=e.annotations;o&&this.element.appendChild(o.element),this.element.appendChild(this._svgDefs.node()),this.element.appendChild(this._svgDefsExternal.node()),t||this.render()}updateComponent(e,t){this.component.setConfig(e),t||this.render()}update(e,t,n){e&&this.updateContainer(e,!0),t&&this.updateComponent(t,!0),n&&this.setData(n,!0),this.render()}getFitWidthScale(){const{config:e,component:t}=this,n=t;if(!n.getWidth)return 1;const o=n.getWidth()+e.margin.left+e.margin.right;return this.width/o}_preRender(){var e,t;super._preRender(),this.component.setSize(this.width,this.height,this.containerWidth,this.containerHeight),this.component.setContainerMargin(this.config.margin),(e=this.config.annotations)===null||e===void 0||e.setSize(this.width,this.height,this.containerWidth,this.containerHeight),(t=this.config.annotations)===null||t===void 0||t.setContainerMargin(this.config.margin)}_render(e){var t,n;const{config:o,component:r}=this;super._render(e),r.g.attr("transform",`translate(${o.margin.left},${o.margin.top})`),r.render(e),(t=o.annotations)===null||t===void 0||t.render(e),o.tooltip&&o.tooltip.update(),(n=o.onRenderComplete)===null||n===void 0||n.call(o,this.svg.node(),o.margin,this.containerWidth,this.containerHeight,this.width,this.height)}render(e=this.config.duration){const{config:t,component:n}=this;if(t.sizing===Tt.Extend||t.sizing===Tt.FitWidth){const o=t.sizing===Tt.FitWidth,r=n,s=r.getWidth()+t.margin.left+t.margin.right,a=r.getHeight()+t.margin.top+t.margin.bottom,d=o?this.getFitWidthScale():1,l=this.svg.attr("width"),i=this.svg.attr("height"),g=s*d,f=a*d,v=l||i;Z(this.svg,v?e:0).attr("width",g).attr("height",f).attr("viewBox",`0 0 ${s} ${o?f:a}`).attr("preserveAspectRatio","xMinYMin")}else this.svg.attr("width",this.config.width||this.containerWidth).attr("height",this.config.height||this.containerHeight);this._resizeObserver||this._setUpResizeObserver(),cancelAnimationFrame(this._renderAnimationFrameId),this._renderAnimationFrameId=requestAnimationFrame(()=>{this._preRender(),this._render(e)})}_onResize(){var e;const{config:t}=this;super._onResize(),(e=t.tooltip)===null||e===void 0||e.hide()}destroy(){var e,t;const{component:n,config:o}=this;super.destroy(),n?.destroy(),(e=o.tooltip)===null||e===void 0||e.destroy(),(t=o.annotations)===null||t===void 0||t.destroy()}}function cn(p){return p.innerRadius}function un(p){return p.outerRadius}function dn(p){return p.startAngle}function gn(p){return p.endAngle}function hn(p){return p&&p.padAngle}function pn(p,e,t,n,o,r,s,a){var d=t-p,l=n-e,i=s-o,g=a-r,f=g*d-i*l;if(!(f*f<B))return f=(i*(e-r)-g*(p-o))/f,[p+f*d,e+f*l]}function vt(p,e,t,n,o,r,s){var a=p-t,d=e-n,l=(s?r:-r)/dt(a*a+d*d),i=l*d,g=-l*a,f=p+i,v=e+g,h=t+i,y=n+g,u=(f+h)/2,k=(v+y)/2,C=h-f,w=y-v,M=C*C+w*w,b=o-r,c=f*y-h*v,m=(w<0?-1:1)*dt(be(0,b*b*M-c*c)),A=(c*w-C*m)/M,E=(-c*C-w*m)/M,P=(c*w+C*m)/M,T=(-c*C+w*m)/M,O=A-u,_=E-k,$=P-u,N=T-k;return O*O+_*_>$*$+N*N&&(A=P,E=T),{cx:A,cy:E,x01:-i,y01:-g,x11:A*(o/b-1),y11:E*(o/b-1)}}function mn(){var p=cn,e=un,t=F(0),n=null,o=dn,r=gn,s=hn,a=null,d=ve(l);function l(){var i,g,f=+p.apply(this,arguments),v=+e.apply(this,arguments),h=o.apply(this,arguments)-Nt,y=r.apply(this,arguments)-Nt,u=zt(y-h),k=y>h;if(a||(a=i=d()),v<f&&(g=v,v=f,f=g),!(v>B))a.moveTo(0,0);else if(u>yt-B)a.moveTo(v*st(h),v*z(h)),a.arc(0,0,v,h,y,!k),f>B&&(a.moveTo(f*st(y),f*z(y)),a.arc(0,0,f,y,h,k));else{var C=h,w=y,M=h,b=y,c=u,m=u,A=s.apply(this,arguments)/2,E=A>B&&(n?+n.apply(this,arguments):dt(f*f+v*v)),P=At(zt(v-f)/2,+t.apply(this,arguments)),T=P,O=P,_,$;if(E>B){var N=Yt(E/f*z(A)),tt=Yt(E/v*z(A));(c-=N*2)>B?(N*=k?1:-1,M+=N,b-=N):(c=0,M=b=(h+y)/2),(m-=tt*2)>B?(tt*=k?1:-1,C+=tt,w-=tt):(m=0,C=w=(h+y)/2)}var q=v*st(C),et=v*z(C),lt=f*st(b),J=f*z(b);if(P>B){var rt=v*st(w),nt=v*z(w),ct=f*st(M),ht=f*z(M),G;if(u<Gt)if(G=pn(q,et,ct,ht,rt,nt,lt,J)){var ut=q-G[0],x=et-G[1],H=rt-G[0],at=nt-G[1],Bt=1/z(ye((ut*H+x*at)/(dt(ut*ut+x*x)*dt(H*H+at*at)))/2),Ht=dt(G[0]*G[0]+G[1]*G[1]);T=At(P,(f-Ht)/(Bt-1)),O=At(P,(v-Ht)/(Bt+1))}else T=O=0}m>B?O>B?(_=vt(ct,ht,q,et,v,O,k),$=vt(rt,nt,lt,J,v,O,k),a.moveTo(_.cx+_.x01,_.cy+_.y01),O<P?a.arc(_.cx,_.cy,O,V(_.y01,_.x01),V($.y01,$.x01),!k):(a.arc(_.cx,_.cy,O,V(_.y01,_.x01),V(_.y11,_.x11),!k),a.arc(0,0,v,V(_.cy+_.y11,_.cx+_.x11),V($.cy+$.y11,$.cx+$.x11),!k),a.arc($.cx,$.cy,O,V($.y11,$.x11),V($.y01,$.x01),!k))):(a.moveTo(q,et),a.arc(0,0,v,C,w,!k)):a.moveTo(q,et),!(f>B)||!(c>B)?a.lineTo(lt,J):T>B?(_=vt(lt,J,rt,nt,f,-T,k),$=vt(q,et,ct,ht,f,-T,k),a.lineTo(_.cx+_.x01,_.cy+_.y01),T<P?a.arc(_.cx,_.cy,T,V(_.y01,_.x01),V($.y01,$.x01),!k):(a.arc(_.cx,_.cy,T,V(_.y01,_.x01),V(_.y11,_.x11),!k),a.arc(0,0,f,V(_.cy+_.y11,_.cx+_.x11),V($.cy+$.y11,$.cx+$.x11),k),a.arc($.cx,$.cy,T,V($.y11,$.x11),V($.y01,$.x01),!k))):a.arc(0,0,f,b,M,k)}if(a.closePath(),i)return a=null,i+""||null}return l.centroid=function(){var i=(+p.apply(this,arguments)+ +e.apply(this,arguments))/2,g=(+o.apply(this,arguments)+ +r.apply(this,arguments))/2-Gt/2;return[st(g)*i,z(g)*i]},l.innerRadius=function(i){return arguments.length?(p=typeof i=="function"?i:F(+i),l):p},l.outerRadius=function(i){return arguments.length?(e=typeof i=="function"?i:F(+i),l):e},l.cornerRadius=function(i){return arguments.length?(t=typeof i=="function"?i:F(+i),l):t},l.padRadius=function(i){return arguments.length?(n=i==null?null:typeof i=="function"?i:F(+i),l):n},l.startAngle=function(i){return arguments.length?(o=typeof i=="function"?i:F(+i),l):o},l.endAngle=function(i){return arguments.length?(r=typeof i=="function"?i:F(+i),l):r},l.padAngle=function(i){return arguments.length?(s=typeof i=="function"?i:F(+i),l):s},l.context=function(i){return arguments.length?(a=i??null,l):a},l}function fn(p,e){return e<p?-1:e>p?1:e>=p?0:NaN}function vn(p){return p}function bn(){var p=vn,e=fn,t=null,n=F(0),o=F(yt),r=F(0);function s(a){var d,l=(a=_e(a)).length,i,g,f=0,v=new Array(l),h=new Array(l),y=+n.apply(this,arguments),u=Math.min(yt,Math.max(-yt,o.apply(this,arguments)-y)),k,C=Math.min(Math.abs(u)/l,r.apply(this,arguments)),w=C*(u<0?-1:1),M;for(d=0;d<l;++d)(M=h[v[d]=d]=+p(a[d],d,a))>0&&(f+=M);for(e!=null?v.sort(function(b,c){return e(h[b],h[c])}):t!=null&&v.sort(function(b,c){return t(a[b],a[c])}),d=0,g=f?(u-l*w)/f:0;d<l;++d,y=k)i=v[d],M=h[i],k=y+(M>0?M*g:0)+w,h[i]={data:a[i],index:d,value:M,startAngle:y,endAngle:k,padAngle:C};return h}return s.value=function(a){return arguments.length?(p=typeof a=="function"?a:F(+a),s):p},s.sortValues=function(a){return arguments.length?(e=a,t=null,s):e},s.sort=function(a){return arguments.length?(t=a,e=null,s):t},s.startAngle=function(a){return arguments.length?(n=typeof a=="function"?a:F(+a),s):n},s.endAngle=function(a){return arguments.length?(o=typeof a=="function"?a:F(+a),s):o},s.padAngle=function(a){return arguments.length?(r=typeof a=="function"?a:F(+a),s):r},s}function yn({x:p,y:e,w:t,h:n,tl:o=!1,tr:r=!1,bl:s=!1,br:a=!1,r:d=0}){let l;l=`M${p+d},${e}h${t-2*d}`;let i=r?d:0,g=r?0:d;return l+=`a${i},${i} 0 0 1 ${i},${i}`,l+=`h${g}v${g}`,l+=`v${n-2*d}`,i=a?d:0,g=a?0:d,l+=`a${i},${i} 0 0 1 ${-i},${i}`,l+=`v${g}h${-g}`,l+=`h${2*d-t}`,i=s?d:0,g=s?0:d,l+=`a${i},${i} 0 0 1 ${-i},${-i}`,l+=`h${-g}v${-g}`,l+=`v${2*d-n}`,i=o?d:0,g=o?0:d,l+=`a${i},${i} 0 0 1 ${i},${-i}`,l+=`v${-g}h${g}`,l+="z",l}const _n=Object.assign(Object.assign({},ke),{color:void 0,barMaxWidth:void 0,barWidth:void 0,dataStep:void 0,barPadding:0,roundedCorners:2,cursor:null,barMinHeight1Px:!1,barMinHeightZeroValue:null,orientation:Zt.Vertical}),ie=K`
2
2
  label: stacked-bar-component;
3
3
  `,kn=Jt`
4
4
  :root {
@@ -16,7 +16,7 @@ import{C as fe,q as me,S as Tt,s as Z,w as ve,r as Nt,t as st,v as z,x as W,y as
16
16
  body.theme-dark ${`.${ie}`} {
17
17
  --vis-stacked-bar-stroke-color: var(--vis-dark-stacked-bar-stroke-color);
18
18
  }
19
- `,_t=X`
19
+ `,_t=K`
20
20
  label: bar;
21
21
  fill: var(--vis-stacked-bar-fill-color);
22
22
  stroke: var(--vis-stacked-bar-stroke-color);
@@ -27,11 +27,11 @@ import{C as fe,q as me,S as Tt,s as Z,w as ve,r as Nt,t as st,v as z,x as W,y as
27
27
  stroke-width: var(--vis-stacked-bar-hover-stroke-width);
28
28
  stroke: var(--vis-stacked-bar-hover-stroke-color);
29
29
  }
30
- `,Lt=X`
30
+ `,Lt=K`
31
31
  label: barGroup;
32
- `,le=X`
32
+ `,le=K`
33
33
  label: barGroupExit;
34
- `,xn=Object.freeze(Object.defineProperty({__proto__:null,bar:_t,barGroup:Lt,barGroupExit:le,globalStyles:kn,root:ie},Symbol.toStringTag,{value:"Module"}));class Wt extends xe{constructor(e){super(),this._defaultConfig=_n,this.config=this._defaultConfig,this.getAccessors=()=>Se(this.config.y)?this.config.y:[this.config.y],this.stacked=!0,this.events={},this._barData=[],e&&this.setConfig(e)}get bleed(){if(this._barData=this._getVisibleData(),this._barData.length===0)return{top:0,bottom:0,left:0,right:0};const e=!this.isVertical()&&this.dataScale.range()[0]>this.dataScale.range()[1],t=this.dataScale.domain(),n=this._getBarWidth()/2,o=this._barData.map((v,h)=>ot(v,this.config.x,h)),r=$t(o),s=Te(o),a=this.dataScale(r),d=this.dataScale(s),l=this.dataScale.invert(a+(e?n:-n)),i=this.dataScale.invert(d+(e?-n:n)),g=l<=t[0]?this.dataScale(t[0])-this.dataScale(l):0,m=i>t[1]?this.dataScale(i)-this.dataScale(t[1]):0;return{top:this.isVertical()?0:e?-m:g,bottom:this.isVertical()?0:e?-g:m,left:this.isVertical()?g:0,right:this.isVertical()?m:0}}get dataScale(){return this.isVertical()?this.xScale:this.yScale}get valueScale(){return this.isVertical()?this.yScale:this.xScale}isVertical(){return this.config.orientation===Zt.Vertical}_render(e){const{config:t}=this,n=Rt(e)?e:t.duration,o=this.getAccessors(),r=Ae(this._barData,0,o,this._prevNegative);this._prevNegative=r.map(h=>!!h.isMostlyNegative);const s=this.g.selectAll(`.${Lt}`).data(this._barData,(h,y)=>{var u;return`${(u=Kt(h,t.id,y))!==null&&u!==void 0?u:y}`}),a=(h,y)=>{const u=this.dataScale(ot(h,t.x,y)),k=this.isVertical()?u:0,C=this.isVertical()?0:u;return`translate(${k},${C})`},l=s.enter().append("g").attr("class",Lt).attr("transform",a).style("opacity",1).merge(s);Z(l,n).attr("transform",a).style("opacity",1);const i=s.exit().attr("class",le);Z(i,n).style("opacity",0).remove(),Z(i.selectAll(`.${_t}`),n).attr("transform",this.isVertical()?`translate(0,${this._height/3})`:`translate(${this._width/6},0)`);const g=l.selectAll(`.${_t}`).data((h,y)=>r.map((u,k)=>({datum:h,index:y,stacked:u[y],stackIndex:k,isEnding:k===r.length-1||k<=r.length-1&&r[k+1][y][0]!==u[y][1]})).filter(u=>u.stacked[0]!==u.stacked[1]),h=>h.stackIndex),v=g.enter().append("path").attr("class",_t).attr("d",h=>this._getBarPath(h,!0)).style("fill",h=>kt(h.datum,t.color,h.stackIndex)).merge(g);Z(v,n).attr("d",h=>this._getBarPath(h)).style("fill",h=>kt(h.datum,t.color,h.stackIndex)).style("cursor",h=>Kt(h.datum,t.cursor,h.stackIndex)),Z(g.exit(),n).style("opacity",0).remove()}_getBarWidth(){const{config:e,datamodel:{data:t}}=this;if($e(t))return 0;if(e.barWidth)return $t([e.barWidth,e.barMaxWidth]);const n=this.dataScale.bandwidth,o=this.dataScale.domain?this.dataScale.domain():[];let s=1+(n?o.length:o[1]-o[0])/e.dataStep||!n&&t.filter((l,i)=>{const g=ot(l,e.x,i);return g>=o[0]&&g<=o[1]}).length||t.length;!n&&s>=2&&(s+=1);const d=(s<2?1:1-e.barPadding)*(this.isVertical()?this._width:this._height)/s;return $t([d,e.barMaxWidth])}_getVisibleData(){const{config:e,datamodel:{data:t}}=this,n=this._getBarWidth(),o=t.length<2?0:n/2,r=this.dataScale,s=Math.abs(r.invert(o)-r.invert(0));return t?.filter((d,l)=>{const i=ot(d,e.x,l),g=r.domain(),m=+g[0],v=+g[1];return i>=m-s&&i<=v+s})}_getBarPath(e,t=!1){const{config:n}=this,o=this.getAccessors(),r=this._getBarWidth(),s=e.stacked[1]<0,a=e.isEnding,d=ot(e.datum,o[e.stackIndex],e.index),l=t?0:Math.abs(this.valueScale(e.stacked[0])-this.valueScale(e.stacked[1])),i=!t&&n.barMinHeight1Px&&l<1&&isFinite(d)&&d!==n.barMinHeightZeroValue?1:l,g=t?this.valueScale(0):this.valueScale(s?e.stacked[0]:e.stacked[1])-(l<1&&n.barMinHeight1Px?1:0),m=-r/2,v=r,h=n.roundedCorners?Rt(n.roundedCorners)?+n.roundedCorners:v/2:0,y=Qt(h,0,Math.min(l,v)/2),u=this.yScale.range()[0]>this.yScale.range()[1];return yn({x:this.isVertical()?m:g-i,y:this.isVertical()?g+(u?0:-i):m,w:this.isVertical()?v:i,h:this.isVertical()?i:v,tl:a&&(this.isVertical()?!s&&u||s&&!u:s),tr:a&&(this.isVertical()?!s&&u||s&&!u:!s),br:a&&(this.isVertical()?s&&u||!s&&!u:!s),bl:a&&(this.isVertical()?s&&u||!s&&!u:s),r:y})}getValueScaleExtent(e){const{datamodel:t}=this,n=this.getAccessors(),o=e?this._getVisibleData():t.data;return De(o,...n)}getDataScaleExtent(){const{config:e,datamodel:t}=this;return Ce(t.data,e.x)}getYDataExtent(e){return this.isVertical()?this.getValueScaleExtent(e):this.getDataScaleExtent()}getXDataExtent(){return this.isVertical()?this.getDataScaleExtent():this.getValueScaleExtent(!1)}}Wt.selectors=xn;const Sn=Object.assign(Object.assign({},we),{id:(p,e)=>{var t;return(t=p.id)!==null&&t!==void 0?t:e},value:void 0,angleRange:[0,2*Math.PI],padAngle:0,sortFunction:void 0,cornerRadius:0,color:void 0,radius:void 0,arcWidth:20,centralLabel:void 0,centralSubLabel:void 0,centralSubLabelWrap:!0,showEmptySegments:!1,emptySegmentAngle:.5*Math.PI/180,showBackground:!0,backgroundAngleRange:void 0,centralLabelOffsetX:void 0,centralLabelOffsetY:void 0});function Tn(p,e){p.style("fill",t=>kt(t.data,e.color,t.index)).style("opacity",0).each((t,n,o)=>{const r=o[n],s=(t.startAngle+t.endAngle)/2,a=(t.endAngle-t.startAngle)/2;r._animState={startAngle:s-a,endAngle:s+a,innerRadius:t.innerRadius,outerRadius:t.outerRadius,padAngle:t.padAngle}})}function An(p,e,t,n){p.style("transition",`fill ${n}ms`).style("fill",r=>kt(r.data,e.color,r.index));const o=r=>e.showEmptySegments||r.value?1:0;n?Z(p,n).style("opacity",o).attrTween("d",(s,a,d)=>{const l=d[a],i={startAngle:s.startAngle,endAngle:s.endAngle,innerRadius:s.innerRadius,outerRadius:s.outerRadius,padAngle:s.padAngle},g=Re(l._animState,i);return m=>(l._animState=g(m),t(l._animState))}):p.attr("d",t).style("opacity",o)}function $n(p,e){Z(p,e).style("opacity",0).remove()}const re=Array.from({length:4},(p,e)=>{const t=-Math.PI/2+e*Math.PI/2;return[t,t+Math.PI]}),[ma,va,ba,ya]=re,ce=X`
34
+ `,xn=Object.freeze(Object.defineProperty({__proto__:null,bar:_t,barGroup:Lt,barGroupExit:le,globalStyles:kn,root:ie},Symbol.toStringTag,{value:"Module"}));class Ft extends xe{constructor(e){super(),this._defaultConfig=_n,this.config=this._defaultConfig,this.getAccessors=()=>Se(this.config.y)?this.config.y:[this.config.y],this.stacked=!0,this.events={},this._barData=[],e&&this.setConfig(e)}get bleed(){if(this._barData=this._getVisibleData(),this._barData.length===0)return{top:0,bottom:0,left:0,right:0};const e=!this.isVertical()&&this.dataScale.range()[0]>this.dataScale.range()[1],t=this.dataScale.domain(),n=this._getBarWidth()/2,o=this._barData.map((v,h)=>ot(v,this.config.x,h)),r=$t(o),s=Te(o),a=this.dataScale(r),d=this.dataScale(s),l=this.dataScale.invert(a+(e?n:-n)),i=this.dataScale.invert(d+(e?-n:n)),g=l<=t[0]?this.dataScale(t[0])-this.dataScale(l):0,f=i>t[1]?this.dataScale(i)-this.dataScale(t[1]):0;return{top:this.isVertical()?0:e?-f:g,bottom:this.isVertical()?0:e?-g:f,left:this.isVertical()?g:0,right:this.isVertical()?f:0}}get dataScale(){return this.isVertical()?this.xScale:this.yScale}get valueScale(){return this.isVertical()?this.yScale:this.xScale}isVertical(){return this.config.orientation===Zt.Vertical}_render(e){const{config:t}=this,n=Rt(e)?e:t.duration,o=this.getAccessors(),r=Ae(this._barData,0,o,this._prevNegative);this._prevNegative=r.map(h=>!!h.isMostlyNegative);const s=this.g.selectAll(`.${Lt}`).data(this._barData,(h,y)=>{var u;return`${(u=Xt(h,t.id,y))!==null&&u!==void 0?u:y}`}),a=(h,y)=>{const u=this.dataScale(ot(h,t.x,y)),k=this.isVertical()?u:0,C=this.isVertical()?0:u;return`translate(${k},${C})`},l=s.enter().append("g").attr("class",Lt).attr("transform",a).style("opacity",1).merge(s);Z(l,n).attr("transform",a).style("opacity",1);const i=s.exit().attr("class",le);Z(i,n).style("opacity",0).remove(),Z(i.selectAll(`.${_t}`),n).attr("transform",this.isVertical()?`translate(0,${this._height/3})`:`translate(${this._width/6},0)`);const g=l.selectAll(`.${_t}`).data((h,y)=>r.map((u,k)=>({datum:h,index:y,stacked:u[y],stackIndex:k,isEnding:k===r.length-1||k<=r.length-1&&r[k+1][y][0]!==u[y][1]})).filter(u=>u.stacked[0]!==u.stacked[1]),h=>h.stackIndex),v=g.enter().append("path").attr("class",_t).attr("d",h=>this._getBarPath(h,!0)).style("fill",h=>kt(h.datum,t.color,h.stackIndex)).merge(g);Z(v,n).attr("d",h=>this._getBarPath(h)).style("fill",h=>kt(h.datum,t.color,h.stackIndex)).style("cursor",h=>Xt(h.datum,t.cursor,h.stackIndex)),Z(g.exit(),n).style("opacity",0).remove()}_getBarWidth(){const{config:e,datamodel:{data:t}}=this;if($e(t))return 0;if(e.barWidth)return $t([e.barWidth,e.barMaxWidth]);const n=this.dataScale.bandwidth,o=this.dataScale.domain?this.dataScale.domain():[];let s=1+(n?o.length:o[1]-o[0])/e.dataStep||!n&&t.filter((l,i)=>{const g=ot(l,e.x,i);return g>=o[0]&&g<=o[1]}).length||t.length;!n&&s>=2&&(s+=1);const d=(s<2?1:1-e.barPadding)*(this.isVertical()?this._width:this._height)/s;return $t([d,e.barMaxWidth])}_getVisibleData(){const{config:e,datamodel:{data:t}}=this,n=this._getBarWidth(),o=t.length<2?0:n/2,r=this.dataScale,s=Math.abs(r.invert(o)-r.invert(0));return t?.filter((d,l)=>{const i=ot(d,e.x,l),g=r.domain(),f=+g[0],v=+g[1];return i>=f-s&&i<=v+s})}_getBarPath(e,t=!1){const{config:n}=this,o=this.getAccessors(),r=this._getBarWidth(),s=e.stacked[1]<0,a=e.isEnding,d=ot(e.datum,o[e.stackIndex],e.index),l=t?0:Math.abs(this.valueScale(e.stacked[0])-this.valueScale(e.stacked[1])),i=!t&&n.barMinHeight1Px&&l<1&&isFinite(d)&&d!==n.barMinHeightZeroValue?1:l,g=t?this.valueScale(0):this.valueScale(s?e.stacked[0]:e.stacked[1])-(l<1&&n.barMinHeight1Px?1:0),f=-r/2,v=r,h=n.roundedCorners?Rt(n.roundedCorners)?+n.roundedCorners:v/2:0,y=Qt(h,0,Math.min(l,v)/2),u=this.yScale.range()[0]>this.yScale.range()[1];return yn({x:this.isVertical()?f:g-i,y:this.isVertical()?g+(u?0:-i):f,w:this.isVertical()?v:i,h:this.isVertical()?i:v,tl:a&&(this.isVertical()?!s&&u||s&&!u:s),tr:a&&(this.isVertical()?!s&&u||s&&!u:!s),br:a&&(this.isVertical()?s&&u||!s&&!u:!s),bl:a&&(this.isVertical()?s&&u||!s&&!u:s),r:y})}getValueScaleExtent(e){const{datamodel:t}=this,n=this.getAccessors(),o=e?this._getVisibleData():t.data;return De(o,...n)}getDataScaleExtent(){const{config:e,datamodel:t}=this;return Ce(t.data,e.x)}getYDataExtent(e){return this.isVertical()?this.getValueScaleExtent(e):this.getDataScaleExtent()}getXDataExtent(){return this.isVertical()?this.getDataScaleExtent():this.getValueScaleExtent(!1)}}Ft.selectors=xn;const Sn=Object.assign(Object.assign({},we),{id:(p,e)=>{var t;return(t=p.id)!==null&&t!==void 0?t:e},value:void 0,angleRange:[0,2*Math.PI],padAngle:0,sortFunction:void 0,cornerRadius:0,color:void 0,radius:void 0,arcWidth:20,centralLabel:void 0,centralSubLabel:void 0,centralSubLabelWrap:!0,showEmptySegments:!1,emptySegmentAngle:.5*Math.PI/180,showBackground:!0,backgroundAngleRange:void 0,centralLabelOffsetX:void 0,centralLabelOffsetY:void 0});function Tn(p,e){p.style("fill",t=>kt(t.data,e.color,t.index)).style("opacity",0).each((t,n,o)=>{const r=o[n],s=(t.startAngle+t.endAngle)/2,a=(t.endAngle-t.startAngle)/2;r._animState={startAngle:s-a,endAngle:s+a,innerRadius:t.innerRadius,outerRadius:t.outerRadius,padAngle:t.padAngle}})}function An(p,e,t,n){p.style("transition",`fill ${n}ms`).style("fill",r=>kt(r.data,e.color,r.index));const o=r=>e.showEmptySegments||r.value?1:0;n?Z(p,n).style("opacity",o).attrTween("d",(s,a,d)=>{const l=d[a],i={startAngle:s.startAngle,endAngle:s.endAngle,innerRadius:s.innerRadius,outerRadius:s.outerRadius,padAngle:s.padAngle},g=Re(l._animState,i);return f=>(l._animState=g(f),t(l._animState))}):p.attr("d",t).style("opacity",o)}function $n(p,e){Z(p,e).style("opacity",0).remove()}const re=Array.from({length:4},(p,e)=>{const t=-Math.PI/2+e*Math.PI/2;return[t,t+Math.PI]}),[va,ba,ya,_a]=re,ce=K`
35
35
  label: donut-component;
36
36
  `,Dn=Jt`
37
37
  :root {
@@ -63,16 +63,16 @@ import{C as fe,q as me,S as Tt,s as Z,w as ve,r as Nt,t as st,v as z,x as W,y as
63
63
  --vis-donut-central-sub-label-text-color: var(--vis-dark-donut-central-sub-label-text-color);
64
64
  --vis-donut-background-color: var(--vis-dark-donut-background-color);
65
65
  }
66
- `,ue=X`
66
+ `,ue=K`
67
67
  label: background;
68
68
  fill: var(--vis-donut-background-color);
69
- `,Ut=X`
69
+ `,Ut=K`
70
70
  label: segment;
71
71
  stroke-width: var(--vis-donut-segment-stroke-width);
72
72
  stroke: var(--vis-donut-segment-stroke-color, var(--vis-donut-background-color));
73
- `,de=X`
73
+ `,de=K`
74
74
  label: segment-exit;
75
- `,ge=X`
75
+ `,ge=K`
76
76
  label: central-label;
77
77
  text-anchor: middle;
78
78
  dominant-baseline: middle;
@@ -80,7 +80,7 @@ import{C as fe,q as me,S as Tt,s as Z,w as ve,r as Nt,t as st,v as z,x as W,y as
80
80
  font-family: var(--vis-donut-central-label-font-family, var(--vis-font-family));
81
81
  font-weight: var(--vis-donut-central-label-font-weight);
82
82
  fill: var(--vis-donut-central-label-text-color);
83
- `,he=X`
83
+ `,he=K`
84
84
  label: central-label;
85
85
  text-anchor: middle;
86
86
  dominant-baseline: middle;
@@ -88,9 +88,9 @@ import{C as fe,q as me,S as Tt,s as Z,w as ve,r as Nt,t as st,v as z,x as W,y as
88
88
  font-family: var(--vis-donut-central-sub-label-font-family, var(--vis-font-family));
89
89
  font-weight: var(--vis-donut-central-sub-label-font-weight);
90
90
  fill: var(--vis-donut-central-sub-label-text-color);
91
- `,Cn=Object.freeze(Object.defineProperty({__proto__:null,background:ue,centralLabel:ge,centralSubLabel:he,root:ce,segment:Ut,segmentExit:de,variables:Dn},Symbol.toStringTag,{value:"Module"}));class Ft extends Me{constructor(e){super(),this._defaultConfig=Sn,this.config=this._defaultConfig,this.datamodel=new Le,this.arcGen=fn(),this.events={},e&&this.setConfig(e),this.arcBackground=this.g.append("path"),this.arcGroup=this.g.append("g"),this.centralLabel=this.g.append("text").attr("class",ge),this.centralSubLabel=this.g.append("text").attr("class",he)}get bleed(){return{top:0,bottom:0,left:0,right:0}}_render(e){var t,n,o,r,s,a,d,l,i,g,m,v,h,y;const{config:u,datamodel:k,bleed:C}=this,w=k.data.map((x,H)=>({index:H,datum:x})).filter(x=>u.showEmptySegments||ot(x.datum,u.value,x.index)),M=Rt(e)?e:u.duration,[b,c,f,A]=re.map(x=>u.angleRange&&u.angleRange[0]===x[0]&&u.angleRange[1]===x[1]),E=b||f,P=c||A,T=this._width*(P?2:1),O=this._height*(E?2:1),_=u.radius||Math.min(T-C.left-C.right,O-C.top-C.bottom)/2,$=u.arcWidth===0?0:Qt(_-u.arcWidth,0,_-1),B=this._height/2+(b?_/2:f?-_/2:0),tt=this._width/2+(A?_/2:c?-_/2:0),q=`translate(${tt},${B})`;this.arcGroup.attr("transform",q),this.arcGen.startAngle(x=>x.startAngle).endAngle(x=>x.endAngle).innerRadius(x=>x.innerRadius).outerRadius(x=>x.outerRadius).padAngle(x=>x.padAngle).cornerRadius(u.cornerRadius);const lt=bn().startAngle((n=(t=u.angleRange)===null||t===void 0?void 0:t[0])!==null&&n!==void 0?n:0).endAngle((r=(o=u.angleRange)===null||o===void 0?void 0:o[1])!==null&&r!==void 0?r:2*Math.PI).padAngle(u.padAngle).value(x=>ot(x.datum,u.value,x.index)||0).sort((x,H)=>{var at;return(at=u.sortFunction)===null||at===void 0?void 0:at.call(u,x.datum,H.datum)})(w).map(x=>{const H=Object.assign(Object.assign({},x),{data:x.data.datum,index:x.data.index,innerRadius:$,outerRadius:_});return u.showEmptySegments&&x.endAngle-x.startAngle-x.padAngle<=Number.EPSILON&&(H.endAngle=x.startAngle+Math.max(u.emptySegmentAngle,u.padAngle),H.padAngle=x.padAngle/2),H}),J=this.arcGroup.selectAll(`.${Ut}`).data(lt,x=>u.id(x.data,x.index)),rt=J.enter().append("path").attr("class",Ut).call(Tn,u),nt=J.merge(rt);nt.call(An,u,this.arcGen,M),nt.sort((x,H)=>H.value-x.value),J.exit().attr("class",de).call($n,M);const ct=c?"start":A?"end":"middle";this.centralLabel.attr("dy",u.centralSubLabel?"-0.55em":null).style("text-anchor",ct).text((s=u.centralLabel)!==null&&s!==void 0?s:null),this.centralSubLabel.attr("dy",u.centralLabel?"0.55em":null).style("text-anchor",ct).text((a=u.centralSubLabel)!==null&&a!==void 0?a:null),u.centralSubLabelWrap&&Ue(this.centralSubLabel,$*1.9);const ht=(u.centralLabelOffsetX||0)+tt;let N=(u.centralLabelOffsetY||0)+B;E&&u.centralLabelOffsetX===void 0&&u.centralLabelOffsetY===void 0&&(N=(b?-this.centralSubLabel.node().getBoundingClientRect().height:f?this.centralLabel.node().getBoundingClientRect().height:0)+B);const ut=`translate(${ht},${N})`;this.centralLabel.attr("transform",ut),this.centralSubLabel.attr("transform",ut),this.arcBackground.attr("class",ue).attr("visibility",u.showBackground?null:"hidden").attr("transform",q),Z(this.arcBackground,M).attr("d",this.arcGen({startAngle:(g=(l=(d=u.backgroundAngleRange)===null||d===void 0?void 0:d[0])!==null&&l!==void 0?l:(i=u.angleRange)===null||i===void 0?void 0:i[0])!==null&&g!==void 0?g:0,endAngle:(y=(v=(m=u.backgroundAngleRange)===null||m===void 0?void 0:m[1])!==null&&v!==void 0?v:(h=u.angleRange)===null||h===void 0?void 0:h[1])!==null&&y!==void 0?y:2*Math.PI,innerRadius:$,outerRadius:_}))}}Ft.selectors=Cn;const wn=Q({__name:"index",props:{component:{},tooltip:{},annotations:{},duration:{},margin:{},padding:{},sizing:{},width:{},height:{},svgDefs:{},ariaLabel:{},data:{}},setup(p,{expose:e}){const t=p,{data:n}=tn(t),o=Ot(t);let r;const s=an({component:void 0,tooltip:void 0,annotations:void 0}),a=Vt(),d=()=>{r||a.value&&s.component&&(r=new rn(a.value,{...Dt(s)},n.value))};return en(()=>{var l;d(),(l=s.component)==null||l.config,r?.updateContainer({...Dt(o.value),...Dt(s)})}),ft(n,()=>{r?r.setData(n.value,!0):d()}),jt(()=>r?.destroy()),Ct(Et,{data:n,update:l=>s.component=l,destroy:()=>s.component=void 0}),Ct(Oe,{data:n,update:l=>s.tooltip=l,destroy:()=>{s.tooltip=void 0}}),Ct(Ee,{data:n,update:l=>s.annotations=l,destroy:()=>{s.annotations=void 0}}),e({component:r}),(l,i)=>(F(),K("div",{"data-vis-single-container":"",ref_key:"elRef",ref:a,class:"unovis-single-container"},[nn(l.$slots,"default")],512))}}),Rn={"data-vis-component":""},Mn=Wt.selectors,Ln=Q({__name:"index",props:{color:{type:[Function,String,Array,null]},barWidth:{},barMaxWidth:{},dataStep:{},barPadding:{},roundedCorners:{type:[Number,Boolean]},cursor:{type:[Function,String,null]},barMinHeight1Px:{type:Boolean},barMinHeightZeroValue:{},orientation:{},x:{type:[Function,Number,null]},y:{type:[Function,Number,null,Array]},id:{type:Function},xScale:{type:[Object,Function]},yScale:{type:[Object,Function]},excludeFromDomainCalculation:{type:Boolean},duration:{},events:{},attributes:{},data:{}},setup(p,{expose:e}){const t=ae(Et),n=p,o=D(()=>t.data.value??n.data),r=Ot(n),s=Vt();return se(()=>{oe(()=>{var a;s.value=new Wt(r.value),(a=s.value)==null||a.setData(o.value),t.update(s.value)})}),jt(()=>{var a;(a=s.value)==null||a.destroy(),t.destroy()}),ft(r,(a,d)=>{var l;te(a,d)||(l=s.value)==null||l.setConfig(r.value)}),ft(o,()=>{var a;(a=s.value)==null||a.setData(o.value)}),e({component:s}),(a,d)=>(F(),K("div",Rn))}}),Un={"data-vis-component":""},On=Ft.selectors,En=Q({__name:"index",props:{id:{type:Function},value:{type:[Function,Number,null]},angleRange:{},padAngle:{},sortFunction:{type:Function},cornerRadius:{},color:{type:[Function,String,Array,null]},radius:{},arcWidth:{},centralLabel:{},centralSubLabel:{},centralSubLabelWrap:{type:Boolean},showEmptySegments:{type:Boolean},emptySegmentAngle:{},showBackground:{type:Boolean},backgroundAngleRange:{},centralLabelOffsetX:{},centralLabelOffsetY:{},duration:{},events:{},attributes:{},data:{}},setup(p,{expose:e}){const t=ae(Et),n=p,o=D(()=>t.data.value??n.data),r=Ot(n),s=Vt();return se(()=>{oe(()=>{var a;s.value=new Ft(r.value),(a=s.value)==null||a.setData(o.value),t.update(s.value)})}),jt(()=>{var a;(a=s.value)==null||a.destroy(),t.destroy()}),ft(r,(a,d)=>{var l;te(a,d)||(l=s.value)==null||l.setConfig(r.value)}),ft(o,()=>{var a;(a=s.value)==null||a.setData(o.value)}),e({component:s}),(a,d)=>(F(),K("div",Un))}}),Pn={class:"mb-4 grid grid-cols-2 gap-3"},jn={class:"rounded-md border px-3 py-2"},Vn={class:"mt-1 text-xl font-semibold tabular-nums"},In={class:"rounded-md border px-3 py-2"},Wn={class:"mt-1 text-xl font-semibold tabular-nums"},Fn={class:"mt-4 flex flex-wrap justify-center items-center gap-3 text-xs text-muted-foreground"},Gn=Q({name:"StatisticalAnalysisSessionAnalysisPanel",__name:"SessionAnalysisPanel",props:{items:{},totalSessions:{}},setup(p){const e=p,t=[{color:"#2563eb",key:"tokens",label:"Token Usage"},{color:"#b6d72f",key:"duration",label:"Duration"},{color:"#f97316",key:"cost",label:"Cost"}],n={cost:{color:t[2].color,label:t[2].label},duration:{color:t[1].color,label:t[1].label},tokens:{color:t[0].color,label:t[0].label}},o={bottom:32,left:120,right:12,top:8},r=D(()=>{const c=e.items.reduce((f,A)=>f+A.costUSD,0)/e.items.length;return gt(c)}),s=D(()=>{const c=new Map;for(const T of e.items){const O=c.get(T.project)??{costUSD:0,durationMinutes:0,sessionCount:0,tokenTotal:0};O.costUSD+=T.costUSD,O.durationMinutes+=l(T.duration),O.sessionCount+=1,O.tokenTotal+=T.tokenTotal,c.set(T.project,O)}const f=Array.from(c.entries()).map(([T,O])=>({project:T,...O})).sort((T,O)=>O.costUSD-T.costUSD),A=Math.max(...f.map(T=>T.tokenTotal),0),E=Math.max(...f.map(T=>T.durationMinutes),0),P=Math.max(...f.map(T=>T.costUSD),0);return f.map((T,O)=>({...T,costLabel:gt(T.costUSD),costScore:g(T.costUSD,P),durationLabel:i(T.durationMinutes),durationScore:g(T.durationMinutes,E),index:O,tokenLabel:Y(T.tokenTotal),tokenScore:g(T.tokenTotal,A)}))}),a=D(()=>s.value.map(c=>c.index)),d=D(()=>({[Mn.bar]:k}));function l(c){const f=c.match(/(\d+)h/)?.[1],A=c.match(/(\d+)m/)?.[1];return Number(f??0)*60+Number(A??0)}function i(c){const f=Math.floor(c/60),A=c%60;return f===0?`${A}m`:A===0?`${f}h`:`${f}h ${A}m`}function g(c,f){return f>0?c/f*100:0}function m(c){return c.index}function v(c){return c.tokenScore}function h(c){return c.durationScore}function y(c){return c.costScore}function u(c,f){return t[f]?.color??t[0].color}function k(c){const f=c.datum,A=t[c.stackIndex]??t[0],E=C(f,c.stackIndex);return`
91
+ `,Cn=Object.freeze(Object.defineProperty({__proto__:null,background:ue,centralLabel:ge,centralSubLabel:he,root:ce,segment:Ut,segmentExit:de,variables:Dn},Symbol.toStringTag,{value:"Module"}));class Wt extends Me{constructor(e){super(),this._defaultConfig=Sn,this.config=this._defaultConfig,this.datamodel=new Le,this.arcGen=mn(),this.events={},e&&this.setConfig(e),this.arcBackground=this.g.append("path"),this.arcGroup=this.g.append("g"),this.centralLabel=this.g.append("text").attr("class",ge),this.centralSubLabel=this.g.append("text").attr("class",he)}get bleed(){return{top:0,bottom:0,left:0,right:0}}_render(e){var t,n,o,r,s,a,d,l,i,g,f,v,h,y;const{config:u,datamodel:k,bleed:C}=this,w=k.data.map((x,H)=>({index:H,datum:x})).filter(x=>u.showEmptySegments||ot(x.datum,u.value,x.index)),M=Rt(e)?e:u.duration,[b,c,m,A]=re.map(x=>u.angleRange&&u.angleRange[0]===x[0]&&u.angleRange[1]===x[1]),E=b||m,P=c||A,T=this._width*(P?2:1),O=this._height*(E?2:1),_=u.radius||Math.min(T-C.left-C.right,O-C.top-C.bottom)/2,$=u.arcWidth===0?0:Qt(_-u.arcWidth,0,_-1),N=this._height/2+(b?_/2:m?-_/2:0),tt=this._width/2+(A?_/2:c?-_/2:0),q=`translate(${tt},${N})`;this.arcGroup.attr("transform",q),this.arcGen.startAngle(x=>x.startAngle).endAngle(x=>x.endAngle).innerRadius(x=>x.innerRadius).outerRadius(x=>x.outerRadius).padAngle(x=>x.padAngle).cornerRadius(u.cornerRadius);const lt=bn().startAngle((n=(t=u.angleRange)===null||t===void 0?void 0:t[0])!==null&&n!==void 0?n:0).endAngle((r=(o=u.angleRange)===null||o===void 0?void 0:o[1])!==null&&r!==void 0?r:2*Math.PI).padAngle(u.padAngle).value(x=>ot(x.datum,u.value,x.index)||0).sort((x,H)=>{var at;return(at=u.sortFunction)===null||at===void 0?void 0:at.call(u,x.datum,H.datum)})(w).map(x=>{const H=Object.assign(Object.assign({},x),{data:x.data.datum,index:x.data.index,innerRadius:$,outerRadius:_});return u.showEmptySegments&&x.endAngle-x.startAngle-x.padAngle<=Number.EPSILON&&(H.endAngle=x.startAngle+Math.max(u.emptySegmentAngle,u.padAngle),H.padAngle=x.padAngle/2),H}),J=this.arcGroup.selectAll(`.${Ut}`).data(lt,x=>u.id(x.data,x.index)),rt=J.enter().append("path").attr("class",Ut).call(Tn,u),nt=J.merge(rt);nt.call(An,u,this.arcGen,M),nt.sort((x,H)=>H.value-x.value),J.exit().attr("class",de).call($n,M);const ct=c?"start":A?"end":"middle";this.centralLabel.attr("dy",u.centralSubLabel?"-0.55em":null).style("text-anchor",ct).text((s=u.centralLabel)!==null&&s!==void 0?s:null),this.centralSubLabel.attr("dy",u.centralLabel?"0.55em":null).style("text-anchor",ct).text((a=u.centralSubLabel)!==null&&a!==void 0?a:null),u.centralSubLabelWrap&&Ue(this.centralSubLabel,$*1.9);const ht=(u.centralLabelOffsetX||0)+tt;let G=(u.centralLabelOffsetY||0)+N;E&&u.centralLabelOffsetX===void 0&&u.centralLabelOffsetY===void 0&&(G=(b?-this.centralSubLabel.node().getBoundingClientRect().height:m?this.centralLabel.node().getBoundingClientRect().height:0)+N);const ut=`translate(${ht},${G})`;this.centralLabel.attr("transform",ut),this.centralSubLabel.attr("transform",ut),this.arcBackground.attr("class",ue).attr("visibility",u.showBackground?null:"hidden").attr("transform",q),Z(this.arcBackground,M).attr("d",this.arcGen({startAngle:(g=(l=(d=u.backgroundAngleRange)===null||d===void 0?void 0:d[0])!==null&&l!==void 0?l:(i=u.angleRange)===null||i===void 0?void 0:i[0])!==null&&g!==void 0?g:0,endAngle:(y=(v=(f=u.backgroundAngleRange)===null||f===void 0?void 0:f[1])!==null&&v!==void 0?v:(h=u.angleRange)===null||h===void 0?void 0:h[1])!==null&&y!==void 0?y:2*Math.PI,innerRadius:$,outerRadius:_}))}}Wt.selectors=Cn;const wn=Q({__name:"index",props:{component:{},tooltip:{},annotations:{},duration:{},margin:{},padding:{},sizing:{},width:{},height:{},svgDefs:{},ariaLabel:{},data:{}},setup(p,{expose:e}){const t=p,{data:n}=tn(t),o=Ot(t);let r;const s=an({component:void 0,tooltip:void 0,annotations:void 0}),a=Vt(),d=()=>{r||a.value&&s.component&&(r=new rn(a.value,{...Dt(s)},n.value))};return en(()=>{var l;d(),(l=s.component)==null||l.config,r?.updateContainer({...Dt(o.value),...Dt(s)})}),mt(n,()=>{r?r.setData(n.value,!0):d()}),jt(()=>r?.destroy()),Ct(Et,{data:n,update:l=>s.component=l,destroy:()=>s.component=void 0}),Ct(Oe,{data:n,update:l=>s.tooltip=l,destroy:()=>{s.tooltip=void 0}}),Ct(Ee,{data:n,update:l=>s.annotations=l,destroy:()=>{s.annotations=void 0}}),e({component:r}),(l,i)=>(W(),X("div",{"data-vis-single-container":"",ref_key:"elRef",ref:a,class:"unovis-single-container"},[nn(l.$slots,"default")],512))}}),Rn={"data-vis-component":""},Mn=Ft.selectors,Ln=Q({__name:"index",props:{color:{type:[Function,String,Array,null]},barWidth:{},barMaxWidth:{},dataStep:{},barPadding:{},roundedCorners:{type:[Number,Boolean]},cursor:{type:[Function,String,null]},barMinHeight1Px:{type:Boolean},barMinHeightZeroValue:{},orientation:{},x:{type:[Function,Number,null]},y:{type:[Function,Number,null,Array]},id:{type:Function},xScale:{type:[Object,Function]},yScale:{type:[Object,Function]},excludeFromDomainCalculation:{type:Boolean},duration:{},events:{},attributes:{},data:{}},setup(p,{expose:e}){const t=ae(Et),n=p,o=D(()=>t.data.value??n.data),r=Ot(n),s=Vt();return se(()=>{oe(()=>{var a;s.value=new Ft(r.value),(a=s.value)==null||a.setData(o.value),t.update(s.value)})}),jt(()=>{var a;(a=s.value)==null||a.destroy(),t.destroy()}),mt(r,(a,d)=>{var l;te(a,d)||(l=s.value)==null||l.setConfig(r.value)}),mt(o,()=>{var a;(a=s.value)==null||a.setData(o.value)}),e({component:s}),(a,d)=>(W(),X("div",Rn))}}),Un={"data-vis-component":""},On=Wt.selectors,En=Q({__name:"index",props:{id:{type:Function},value:{type:[Function,Number,null]},angleRange:{},padAngle:{},sortFunction:{type:Function},cornerRadius:{},color:{type:[Function,String,Array,null]},radius:{},arcWidth:{},centralLabel:{},centralSubLabel:{},centralSubLabelWrap:{type:Boolean},showEmptySegments:{type:Boolean},emptySegmentAngle:{},showBackground:{type:Boolean},backgroundAngleRange:{},centralLabelOffsetX:{},centralLabelOffsetY:{},duration:{},events:{},attributes:{},data:{}},setup(p,{expose:e}){const t=ae(Et),n=p,o=D(()=>t.data.value??n.data),r=Ot(n),s=Vt();return se(()=>{oe(()=>{var a;s.value=new Wt(r.value),(a=s.value)==null||a.setData(o.value),t.update(s.value)})}),jt(()=>{var a;(a=s.value)==null||a.destroy(),t.destroy()}),mt(r,(a,d)=>{var l;te(a,d)||(l=s.value)==null||l.setConfig(r.value)}),mt(o,()=>{var a;(a=s.value)==null||a.setData(o.value)}),e({component:s}),(a,d)=>(W(),X("div",Un))}}),Pn={class:"mb-4 grid grid-cols-2 gap-3"},jn={class:"rounded-md border px-3 py-2"},Vn={class:"mt-1 text-xl font-semibold tabular-nums"},In={class:"rounded-md border px-3 py-2"},Fn={class:"mt-1 text-xl font-semibold tabular-nums"},Wn={class:"mt-4 flex flex-wrap justify-center items-center gap-3 text-xs text-muted-foreground"},Bn=Q({name:"StatisticalAnalysisSessionAnalysisPanel",__name:"SessionAnalysisPanel",props:{items:{},totalSessions:{}},setup(p){const e=p,t=[{color:"#2563eb",key:"tokens",label:"Token Usage"},{color:"#b6d72f",key:"duration",label:"Duration"},{color:"#f97316",key:"cost",label:"Cost"}],n={cost:{color:t[2].color,label:t[2].label},duration:{color:t[1].color,label:t[1].label},tokens:{color:t[0].color,label:t[0].label}},o={bottom:32,left:120,right:12,top:8},r=D(()=>{const c=e.items.reduce((m,A)=>m+A.costUSD,0)/e.items.length;return gt(c)}),s=D(()=>{const c=new Map;for(const T of e.items){const O=c.get(T.project)??{costUSD:0,durationMinutes:0,sessionCount:0,tokenTotal:0};O.costUSD+=T.costUSD,O.durationMinutes+=l(T.duration),O.sessionCount+=1,O.tokenTotal+=T.tokenTotal,c.set(T.project,O)}const m=Array.from(c.entries()).map(([T,O])=>({project:T,...O})).sort((T,O)=>O.costUSD-T.costUSD),A=Math.max(...m.map(T=>T.tokenTotal),0),E=Math.max(...m.map(T=>T.durationMinutes),0),P=Math.max(...m.map(T=>T.costUSD),0);return m.map((T,O)=>({...T,costLabel:gt(T.costUSD),costScore:g(T.costUSD,P),durationLabel:i(T.durationMinutes),durationScore:g(T.durationMinutes,E),index:O,tokenLabel:Y(T.tokenTotal),tokenScore:g(T.tokenTotal,A)}))}),a=D(()=>s.value.map(c=>c.index)),d=D(()=>({[Mn.bar]:k}));function l(c){const m=c.match(/(\d+)h/)?.[1],A=c.match(/(\d+)m/)?.[1];return Number(m??0)*60+Number(A??0)}function i(c){const m=Math.floor(c/60),A=c%60;return m===0?`${A}m`:A===0?`${m}h`:`${m}h ${A}m`}function g(c,m){return m>0?c/m*100:0}function f(c){return c.index}function v(c){return c.tokenScore}function h(c){return c.durationScore}function y(c){return c.costScore}function u(c,m){return t[m]?.color??t[0].color}function k(c){const m=c.datum,A=t[c.stackIndex]??t[0],E=C(m,c.stackIndex);return`
92
92
  <div class="grid min-w-44 gap-2 rounded-md border bg-background px-3 py-2 text-xs shadow-lg">
93
- <div class="font-medium text-foreground">${b(f.project)}</div>
93
+ <div class="font-medium text-foreground">${b(m.project)}</div>
94
94
  <div class="flex items-center justify-between gap-4">
95
95
  <span class="flex items-center gap-2 text-muted-foreground">
96
96
  <span class="size-2 rounded-sm" style="background-color: ${A.color}"></span>
@@ -99,13 +99,13 @@ import{C as fe,q as me,S as Tt,s as Z,w as ve,r as Nt,t as st,v as z,x as W,y as
99
99
  <span class="font-mono font-semibold text-foreground">${E}</span>
100
100
  </div>
101
101
  <div class="grid gap-1 border-t pt-2 text-muted-foreground">
102
- <div class="flex justify-between gap-4"><span>Tokens</span><span>${f.tokenLabel}</span></div>
103
- <div class="flex justify-between gap-4"><span>Duration</span><span>${f.durationLabel}</span></div>
104
- <div class="flex justify-between gap-4"><span>Cost</span><span>${f.costLabel}</span></div>
105
- <div class="flex justify-between gap-4"><span>Sessions</span><span>${f.sessionCount}</span></div>
102
+ <div class="flex justify-between gap-4"><span>Tokens</span><span>${m.tokenLabel}</span></div>
103
+ <div class="flex justify-between gap-4"><span>Duration</span><span>${m.durationLabel}</span></div>
104
+ <div class="flex justify-between gap-4"><span>Cost</span><span>${m.costLabel}</span></div>
105
+ <div class="flex justify-between gap-4"><span>Sessions</span><span>${m.sessionCount}</span></div>
106
106
  </div>
107
107
  </div>
108
- `}function C(c,f){return f===0?`${c.tokenLabel} tokens`:f===1?c.durationLabel:c.costLabel}function w(c){return c instanceof Date?"":s.value.find(f=>f.index===c)?.project??""}function M(c){return c instanceof Date?"":`${Math.round(c)}%`}function b(c){return c.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}return(c,f)=>{const A=ne,E=Pt;return F(),mt(E,{description:"Token, duration, and cost grouped by project",icon:"lucide:messages-square",title:"Session Analysis"},{default:R(()=>[L("div",Pn,[L("div",jn,[f[0]||(f[0]=L("p",{class:"text-xs text-muted-foreground"}," Total Sessions ",-1)),L("p",Vn,j(p.totalSessions),1)]),L("div",In,[f[1]||(f[1]=L("p",{class:"text-xs text-muted-foreground"}," Top Session Avg ",-1)),L("p",Wn,j(r.value),1)])]),S(A,{class:"h-80 w-full",config:n},{default:R(()=>[S(U(Pe),{"auto-margin":!1,data:s.value,height:320,margin:o,"y-direction":"south"},{default:R(()=>[S(U(Ln),{"bar-max-width":28,"bar-padding":.28,color:u,cursor:"pointer",orientation:"horizontal","rounded-corners":3,x:m,y:[v,h,y]},null,8,["y"]),S(U(Xt),{"grid-line":!1,"tick-format":w,"tick-text-width":104,"tick-values":a.value,type:"y"},null,8,["tick-values"]),S(U(Xt),{"num-ticks":4,"tick-format":M,type:"x"}),S(U(ee),{triggers:d.value},null,8,["triggers"])]),_:1},8,["data"])]),_:1}),L("div",Fn,[(F(),K(St,null,xt(t,P=>L("div",{key:P.key,class:"flex items-center gap-2"},[L("span",{class:"size-2.5 rounded-sm",style:It({backgroundColor:P.color})},null,4),L("span",null,j(P.label),1)])),64))])]),_:1})}}}),Hn=Object.assign(Gn,{__name:"StatisticalAnalysisSessionAnalysisPanel"}),Nn={class:"space-y-4"},Bn={class:"flex items-start justify-between gap-3"},zn={class:"min-w-0"},Yn={class:"truncate text-sm font-medium"},Kn={class:"truncate text-xs text-muted-foreground"},Xn={class:"shrink-0 text-sm font-semibold tabular-nums"},qn={class:"h-2 overflow-hidden rounded-full bg-secondary"},Zn=Q({name:"StatisticalAnalysisUsageBarList",__name:"UsageBarList",props:{items:{}},setup(p){function e(n){switch(n){case"green":return"bg-emerald-500";case"amber":return"bg-amber-500";case"sky":return"bg-sky-500";case"rose":return"bg-rose-500";default:return"bg-primary"}}function t(n){return`${Math.max(n.percent,n.percent>0?3:0)}%`}return(n,o)=>(F(),K("div",Nn,[(F(!0),K(St,null,xt(p.items,r=>(F(),K("div",{key:r.label,class:"space-y-2"},[L("div",Bn,[L("div",zn,[L("p",Yn,j(r.label),1),L("p",Kn,j(r.detail),1)]),L("span",Xn,j(r.value),1)]),L("div",qn,[L("div",{class:sn(["h-full rounded-full transition-[width]",e(r.tone)]),style:It({width:t(r)})},null,6)])]))),128))]))}}),Jn=Object.assign(Zn,{__name:"StatisticalAnalysisUsageBarList"}),Qn={class:"grid gap-6 lg:grid-cols-[220px_1fr] lg:items-center"},ta={class:"flex items-center justify-center"},ea={class:"space-y-3"},na={class:"flex min-w-0 items-center gap-2"},aa={class:"truncate text-sm text-muted-foreground"},sa={class:"text-sm font-semibold tabular-nums"},oa={class:"w-12 text-right text-xs text-muted-foreground tabular-nums"},ia={class:"mt-5 border-t pt-4"},la=Q({name:"StatisticalAnalysisEfficiencyCachePanel",__name:"EfficiencyCachePanel",props:{dailyItems:{},items:{}},setup(p){const e=p,t=D(()=>e.dailyItems.reduce((h,y)=>h+y.inputTokens,0)),n=D(()=>e.dailyItems.reduce((h,y)=>h+y.cachedInputTokens,0)),o=D(()=>Math.max(t.value-n.value,0)),r=D(()=>t.value>0?n.value/t.value:0),s=D(()=>it(r.value)),a=D(()=>[{color:"#059669",key:"cached",label:"Cached Input",shareLabel:it(r.value),value:n.value,valueLabel:Y(n.value)},{color:"#0ea5e9",key:"fresh",label:"Fresh Input",shareLabel:it(t.value>0?o.value/t.value:0),value:o.value,valueLabel:Y(o.value)}]),d=D(()=>Object.fromEntries(a.value.map(h=>[h.key,{color:h.color,label:h.label}]))),l=D(()=>({[On.segment]:m}));function i(h){return h.value}function g(h){return h.color}function m(h){const y=h.data;return`
108
+ `}function C(c,m){return m===0?`${c.tokenLabel} tokens`:m===1?c.durationLabel:c.costLabel}function w(c){return c instanceof Date?"":s.value.find(m=>m.index===c)?.project??""}function M(c){return c instanceof Date?"":`${Math.round(c)}%`}function b(c){return c.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}return(c,m)=>{const A=ne,E=Pt;return W(),ft(E,{description:"Token, duration, and cost grouped by project",icon:"lucide:messages-square",title:"Session Analysis"},{default:R(()=>[L("div",Pn,[L("div",jn,[m[0]||(m[0]=L("p",{class:"text-xs text-muted-foreground"}," Total Sessions ",-1)),L("p",Vn,j(p.totalSessions),1)]),L("div",In,[m[1]||(m[1]=L("p",{class:"text-xs text-muted-foreground"}," Top Session Avg ",-1)),L("p",Fn,j(r.value),1)])]),S(A,{class:"h-80 w-full",config:n},{default:R(()=>[S(U(Pe),{"auto-margin":!1,data:s.value,height:320,margin:o,"y-direction":"south"},{default:R(()=>[S(U(Ln),{"bar-max-width":28,"bar-padding":.28,color:u,cursor:"pointer",orientation:"horizontal","rounded-corners":3,x:f,y:[v,h,y]},null,8,["y"]),S(U(Kt),{"grid-line":!1,"tick-format":w,"tick-text-width":104,"tick-values":a.value,type:"y"},null,8,["tick-values"]),S(U(Kt),{"num-ticks":4,"tick-format":M,type:"x"}),S(U(ee),{triggers:d.value},null,8,["triggers"])]),_:1},8,["data"])]),_:1}),L("div",Wn,[(W(),X(St,null,xt(t,P=>L("div",{key:P.key,class:"flex items-center gap-2"},[L("span",{class:"size-2.5 rounded-sm",style:It({backgroundColor:P.color})},null,4),L("span",null,j(P.label),1)])),64))])]),_:1})}}}),Hn=Object.assign(Bn,{__name:"StatisticalAnalysisSessionAnalysisPanel"}),Gn={class:"space-y-4"},Nn={class:"flex items-start justify-between gap-3"},zn={class:"min-w-0"},Yn={class:"truncate text-sm font-medium"},Xn={class:"truncate text-xs text-muted-foreground"},Kn={class:"shrink-0 text-sm font-semibold tabular-nums"},qn={class:"h-2 overflow-hidden rounded-full bg-secondary"},Zn=Q({name:"StatisticalAnalysisUsageBarList",__name:"UsageBarList",props:{items:{}},setup(p){function e(n){switch(n){case"green":return"bg-emerald-500";case"amber":return"bg-amber-500";case"sky":return"bg-sky-500";case"rose":return"bg-rose-500";default:return"bg-primary"}}function t(n){return`${Math.max(n.percent,n.percent>0?3:0)}%`}return(n,o)=>(W(),X("div",Gn,[(W(!0),X(St,null,xt(p.items,r=>(W(),X("div",{key:r.label,class:"space-y-2"},[L("div",Nn,[L("div",zn,[L("p",Yn,j(r.label),1),L("p",Xn,j(r.detail),1)]),L("span",Kn,j(r.value),1)]),L("div",qn,[L("div",{class:sn(["h-full rounded-full transition-[width]",e(r.tone)]),style:It({width:t(r)})},null,6)])]))),128))]))}}),Jn=Object.assign(Zn,{__name:"StatisticalAnalysisUsageBarList"}),Qn={class:"grid gap-6 lg:grid-cols-[220px_1fr] lg:items-center"},ta={class:"flex items-center justify-center"},ea={class:"space-y-3"},na={class:"flex min-w-0 items-center gap-2"},aa={class:"truncate text-sm text-muted-foreground"},sa={class:"text-sm font-semibold tabular-nums"},oa={class:"w-12 text-right text-xs text-muted-foreground tabular-nums"},ia={class:"mt-5 border-t pt-4"},la=Q({name:"StatisticalAnalysisEfficiencyCachePanel",__name:"EfficiencyCachePanel",props:{dailyItems:{},items:{}},setup(p){const e=p,t=D(()=>e.dailyItems.reduce((h,y)=>h+y.inputTokens,0)),n=D(()=>e.dailyItems.reduce((h,y)=>h+y.cachedInputTokens,0)),o=D(()=>Math.max(t.value-n.value,0)),r=D(()=>t.value>0?n.value/t.value:0),s=D(()=>it(r.value)),a=D(()=>[{color:"#059669",key:"cached",label:"Cached Input",shareLabel:it(r.value),value:n.value,valueLabel:Y(n.value)},{color:"#0ea5e9",key:"fresh",label:"Fresh Input",shareLabel:it(t.value>0?o.value/t.value:0),value:o.value,valueLabel:Y(o.value)}]),d=D(()=>Object.fromEntries(a.value.map(h=>[h.key,{color:h.color,label:h.label}]))),l=D(()=>({[On.segment]:f}));function i(h){return h.value}function g(h){return h.color}function f(h){const y=h.data;return`
109
109
  <div class="grid min-w-40 gap-2 rounded-md border bg-background px-3 py-2 text-xs shadow-lg">
110
110
  <div class="flex items-center gap-2 font-medium text-foreground">
111
111
  <span class="size-2 rounded-sm" style="background-color: ${y.color}"></span>
@@ -116,4 +116,4 @@ import{C as fe,q as me,S as Tt,s as Z,w as ve,r as Nt,t as st,v as z,x as W,y as
116
116
  <div class="flex justify-between gap-4"><span>Share</span><span class="font-mono font-medium text-foreground">${y.shareLabel}</span></div>
117
117
  </div>
118
118
  </div>
119
- `}function v(h){return h.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}return(h,y)=>{const u=ne,k=Jn,C=Pt;return F(),mt(C,{description:"Cached input ratio across total input tokens",icon:"lucide:gauge",title:"Efficiency / Cache"},{default:R(()=>[L("div",Qn,[L("div",ta,[S(u,{class:"h-52 w-full max-w-56",config:U(d)},{default:R(()=>[S(U(wn),{data:U(a),height:208},{default:R(()=>[S(U(En),{"arc-width":26,"central-label":U(s),"central-sub-label":"Hit Rate",color:g,"corner-radius":4,"pad-angle":.04,value:i},null,8,["central-label"]),S(U(ee),{triggers:U(l)},null,8,["triggers"])]),_:1},8,["data"])]),_:1},8,["config"])]),L("div",ea,[(F(!0),K(St,null,xt(U(a),w=>(F(),K("div",{key:w.key,class:"grid grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-3"},[L("div",na,[L("span",{class:"size-2.5 shrink-0 rounded-full",style:It({backgroundColor:w.color})},null,4),L("span",aa,j(w.label),1)]),L("span",sa,j(w.valueLabel),1),L("span",oa,j(w.shareLabel),1)]))),128))])]),L("div",ia,[S(k,{items:p.items},null,8,["items"])])]),_:1})}}}),ra=Object.assign(la,{__name:"StatisticalAnalysisEfficiencyCachePanel"}),wt=["claudeCode","codex","gemini"];function pe(){const{payload:p}=on(),e=D(()=>p.value?wt.map(b=>p.value[b]):[]),t=D(()=>e.value.flatMap((b,c)=>b.sessionUsage.map(f=>({...f,id:`${wt[c]}:${f.id}`,sessionId:`${wt[c]}:${f.sessionId}`}))).sort((b,c)=>Date.parse(c.startedAt)-Date.parse(b.startedAt))),n=D(()=>ca(e.value.flatMap(b=>b.dailyTokenUsage))),o=D(()=>ua(e.value.flatMap(b=>b.monthlyModelUsage))),r=D(()=>Ie(t.value)),s=D(()=>n.value.reduce((b,c)=>b+c.costUSD,0)),a=D(()=>n.value.reduce((b,c)=>b+c.totalTokens,0)),d=D(()=>n.value.reduce((b,c)=>b+c.inputTokens,0)),l=D(()=>n.value.reduce((b,c)=>b+c.cachedInputTokens,0)),i=D(()=>n.value.reduce((b,c)=>b+c.outputTokens,0)),g=D(()=>n.value.reduce((b,c)=>b+c.reasoningOutputTokens,0)),m=D(()=>t.value.length),v=je(new Date),h=Ve(v),y=D(()=>n.value.find(b=>Mt(b.date)===v)),u=D(()=>n.value.find(b=>Mt(b.date)===h)),k=D(()=>qt(y.value?.costUSD??0,u.value?.costUSD??0,gt)),C=D(()=>qt(y.value?.totalTokens??0,u.value?.totalTokens??0,Y)),w=D(()=>{const b=new Map;for(const c of n.value)for(const[f,A]of Object.entries(c.models)){const E=b.get(f)??{activeDays:new Set,costUSD:0,inputTokens:0,outputTokens:0,totalTokens:0},P=c.totalTokens>0?A.totalTokens/c.totalTokens:0;E.activeDays.add(c.date),E.costUSD+=c.costUSD*P,E.inputTokens+=A.inputTokens,E.outputTokens+=A.outputTokens,E.totalTokens+=A.totalTokens,b.set(f,E)}return Array.from(b.entries()).map(([c,f],A)=>({label:c,value:gt(f.costUSD),detail:`${Y(f.totalTokens)} tokens / ${f.activeDays.size} active days`,percent:bt(f.costUSD,s.value)*100,tone:A===0?"sky":"green"})).sort((c,f)=>f.percent-c.percent)}),M=D(()=>{const b=bt(l.value,d.value),c=bt(g.value,a.value),f=bt(i.value,a.value);return[{label:"Cache Hit Rate",value:it(b),detail:`${Y(l.value)} cached input tokens`,percent:b*100,tone:"green"},{label:"Reasoning Token Share",value:it(c),detail:`${Y(g.value)} reasoning output tokens`,percent:c*100,tone:"amber"},{label:"Output Token Share",value:it(f),detail:`${Y(i.value)} output tokens`,percent:f*100,tone:"sky"}]});return{cachedInputTokens:l,costGrowthTrend:k,dailyTokenUsage:n,efficiencyMetrics:M,inputTokens:d,modelUsage:w,monthlyModelUsage:o,outputTokens:i,projectUsage:r,reasoningOutputTokens:g,sessionUsage:t,totalCost:s,totalSessions:m,totalTokens:a,tokenGrowthTrend:C}}function ca(p){const e=new Map;for(const t of p){const n=Mt(t.date),o=e.get(n)??{cachedInputTokens:0,costUSD:0,date:We(n,t.date),inputTokens:0,models:new Map,outputTokens:0,reasoningOutputTokens:0,totalTokens:0};o.cachedInputTokens+=t.cachedInputTokens,o.costUSD+=t.costUSD,o.inputTokens+=t.inputTokens,o.outputTokens+=t.outputTokens,o.reasoningOutputTokens+=t.reasoningOutputTokens,o.totalTokens+=t.totalTokens;for(const[r,s]of Object.entries(t.models)){const a=o.models.get(r)??da();a.cachedInputTokens+=s.cachedInputTokens,a.inputTokens+=s.inputTokens,a.isFallback=a.isFallback||s.isFallback,a.outputTokens+=s.outputTokens,a.reasoningOutputTokens+=s.reasoningOutputTokens,a.totalTokens+=s.totalTokens,o.models.set(r,a)}e.set(n,o)}return Array.from(e.entries()).sort((t,n)=>t[0].localeCompare(n[0])).map(([,t])=>({cachedInputTokens:t.cachedInputTokens,costUSD:Fe(t.costUSD),date:t.date,inputTokens:t.inputTokens,models:Object.fromEntries(t.models.entries()),outputTokens:t.outputTokens,reasoningOutputTokens:t.reasoningOutputTokens,totalTokens:t.totalTokens}))}function ua(p){const e=new Map;for(const t of p){const n=`${t.month}__${t.model}`,o=e.get(n)??{model:t.model,month:t.month,tokenTotal:0};o.tokenTotal+=t.tokenTotal,e.set(n,o)}return Array.from(e.values()).sort((t,n)=>t.month.localeCompare(n.month)||t.model.localeCompare(n.model))}function da(){return{cachedInputTokens:0,inputTokens:0,isFallback:!1,outputTokens:0,reasoningOutputTokens:0,totalTokens:0}}function bt(p,e){return e>0?p/e:0}const ga=Q({name:"StatisticalAnalysisTokensUsagePanel",__name:"TokensUsagePanel",setup(p){const{dailyTokenUsage:e}=pe();return(t,n)=>{const o=Ne,r=He,s=Ge,a=Ye,d=Be,l=ze,i=Pt;return F(),mt(i,{description:"Daily model activity by token type, cache reads, total usage, and cost",icon:"lucide:calendar-days",title:"Daily Token Usage"},{default:R(()=>[S(l,null,{default:R(()=>[S(s,null,{default:R(()=>[S(r,null,{default:R(()=>[S(o,null,{default:R(()=>[...n[0]||(n[0]=[I("Date",-1)])]),_:1}),S(o,null,{default:R(()=>[...n[1]||(n[1]=[I("Models",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[2]||(n[2]=[I(" Input ",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[3]||(n[3]=[I(" Output ",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[4]||(n[4]=[I(" Reasoning ",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[5]||(n[5]=[I(" Cache Read ",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[6]||(n[6]=[I(" Total Tokens ",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[7]||(n[7]=[I(" Cost (USD) ",-1)])]),_:1})]),_:1})]),_:1}),S(d,null,{default:R(()=>[(F(!0),K(St,null,xt(U(e),g=>(F(),mt(r,{key:g.date},{default:R(()=>[S(a,{class:"font-medium"},{default:R(()=>[I(j(g.date),1)]),_:2},1024),S(a,null,{default:R(()=>[I(j(Object.keys(g.models).join(", ")),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(U(pt)(g.inputTokens)),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(U(pt)(g.outputTokens)),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(U(pt)(g.reasoningOutputTokens)),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(U(pt)(g.cachedInputTokens)),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(U(pt)(g.totalTokens)),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(g.costUSD.toFixed(2)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})}}}),ha=Object.assign(ga,{__name:"StatisticalAnalysisTokensUsagePanel"}),_a=Q({__name:"index",setup(p){const{cachedInputTokens:e,costGrowthTrend:t,dailyTokenUsage:n,efficiencyMetrics:o,inputTokens:r,monthlyModelUsage:s,projectUsage:a,sessionUsage:d,totalCost:l,totalSessions:i,totalTokens:g,tokenGrowthTrend:m}=pe(),v=D(()=>[{icon:"lucide:wallet",name:"Total Spend",trend:t.value.trend,trendTone:t.value.trendTone,value:gt(l.value)},{icon:"solar:cpu-line-duotone",name:"Token Usage",trend:m.value.trend,trendTone:m.value.trendTone,value:Y(g.value)},{icon:"lucide:database-zap",name:"Cache Hit Rate",trend:`${Y(e.value)} cached`,trendTone:"neutral",value:it(r.value>0?e.value/r.value:0)},{icon:"lucide:receipt-text",name:"Avg Session Cost",trend:"across all tools",trendTone:"neutral",value:gt(i.value>0?l.value/i.value:0)}]);return(h,y)=>{const u=Ke,k=qe,C=Ze,w=Je,M=Hn,b=ra,c=ha,f=Xe,A=Qe;return F(),mt(A,null,{default:R(()=>[S(u,{cards:U(v)},null,8,["cards"]),S(f,null,{default:R(()=>[S(k,{"monthly-items":U(s),class:"md:col-span-8"},null,8,["monthly-items"]),S(C,{items:U(a),class:"md:col-span-4"},null,8,["items"]),S(w,{items:U(n),class:"md:col-span-12","heat-metric":"cost",title:"Usage Trend"},null,8,["items"]),S(M,{items:U(d),"total-sessions":U(i),class:"md:col-span-6"},null,8,["items","total-sessions"]),S(b,{"daily-items":U(n),items:U(o),class:"md:col-span-6"},null,8,["daily-items","items"]),S(c,{class:"md:col-span-12"})]),_:1})]),_:1})}}});export{_a as default};
119
+ `}function v(h){return h.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}return(h,y)=>{const u=ne,k=Jn,C=Pt;return W(),ft(C,{description:"Cached input ratio across total input tokens",icon:"lucide:gauge",title:"Efficiency / Cache"},{default:R(()=>[L("div",Qn,[L("div",ta,[S(u,{class:"h-52 w-full max-w-56",config:U(d)},{default:R(()=>[S(U(wn),{data:U(a),height:208},{default:R(()=>[S(U(En),{"arc-width":26,"central-label":U(s),"central-sub-label":"Hit Rate",color:g,"corner-radius":4,"pad-angle":.04,value:i},null,8,["central-label"]),S(U(ee),{triggers:U(l)},null,8,["triggers"])]),_:1},8,["data"])]),_:1},8,["config"])]),L("div",ea,[(W(!0),X(St,null,xt(U(a),w=>(W(),X("div",{key:w.key,class:"grid grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-3"},[L("div",na,[L("span",{class:"size-2.5 shrink-0 rounded-full",style:It({backgroundColor:w.color})},null,4),L("span",aa,j(w.label),1)]),L("span",sa,j(w.valueLabel),1),L("span",oa,j(w.shareLabel),1)]))),128))])]),L("div",ia,[S(k,{items:p.items},null,8,["items"])])]),_:1})}}}),ra=Object.assign(la,{__name:"StatisticalAnalysisEfficiencyCachePanel"}),wt=["claudeCode","codex","gemini"];function pe(){const{payload:p}=on(),e=D(()=>p.value?wt.map(b=>p.value[b]):[]),t=D(()=>e.value.flatMap((b,c)=>b.sessionUsage.map(m=>({...m,id:`${wt[c]}:${m.id}`,sessionId:`${wt[c]}:${m.sessionId}`}))).sort((b,c)=>Date.parse(c.startedAt)-Date.parse(b.startedAt))),n=D(()=>ca(e.value.flatMap(b=>b.dailyTokenUsage))),o=D(()=>ua(e.value.flatMap(b=>b.monthlyModelUsage))),r=D(()=>Ie(t.value)),s=D(()=>n.value.reduce((b,c)=>b+c.costUSD,0)),a=D(()=>n.value.reduce((b,c)=>b+c.totalTokens,0)),d=D(()=>n.value.reduce((b,c)=>b+c.inputTokens,0)),l=D(()=>n.value.reduce((b,c)=>b+c.cachedInputTokens,0)),i=D(()=>n.value.reduce((b,c)=>b+c.outputTokens,0)),g=D(()=>n.value.reduce((b,c)=>b+c.reasoningOutputTokens,0)),f=D(()=>t.value.length),v=je(new Date),h=Ve(v),y=D(()=>n.value.find(b=>Mt(b.date)===v)),u=D(()=>n.value.find(b=>Mt(b.date)===h)),k=D(()=>qt(y.value?.costUSD??0,u.value?.costUSD??0,gt)),C=D(()=>qt(y.value?.totalTokens??0,u.value?.totalTokens??0,Y)),w=D(()=>{const b=new Map;for(const c of n.value)for(const[m,A]of Object.entries(c.models)){const E=b.get(m)??{activeDays:new Set,costUSD:0,inputTokens:0,outputTokens:0,totalTokens:0},P=c.totalTokens>0?A.totalTokens/c.totalTokens:0;E.activeDays.add(c.date),E.costUSD+=c.costUSD*P,E.inputTokens+=A.inputTokens,E.outputTokens+=A.outputTokens,E.totalTokens+=A.totalTokens,b.set(m,E)}return Array.from(b.entries()).map(([c,m],A)=>({label:c,value:gt(m.costUSD),detail:`${Y(m.totalTokens)} tokens / ${m.activeDays.size} active days`,percent:bt(m.costUSD,s.value)*100,tone:A===0?"sky":"green"})).sort((c,m)=>m.percent-c.percent)}),M=D(()=>{const b=bt(l.value,d.value),c=bt(g.value,a.value),m=bt(i.value,a.value);return[{label:"Cache Hit Rate",value:it(b),detail:`${Y(l.value)} cached input tokens`,percent:b*100,tone:"green"},{label:"Reasoning Token Share",value:it(c),detail:`${Y(g.value)} reasoning output tokens`,percent:c*100,tone:"amber"},{label:"Output Token Share",value:it(m),detail:`${Y(i.value)} output tokens`,percent:m*100,tone:"sky"}]});return{cachedInputTokens:l,costGrowthTrend:k,dailyTokenUsage:n,efficiencyMetrics:M,inputTokens:d,modelUsage:w,monthlyModelUsage:o,outputTokens:i,projectUsage:r,reasoningOutputTokens:g,sessionUsage:t,totalCost:s,totalSessions:f,totalTokens:a,tokenGrowthTrend:C}}function ca(p){const e=new Map;for(const t of p){const n=Mt(t.date),o=e.get(n)??{cachedInputTokens:0,costUSD:0,date:Fe(n,t.date),inputTokens:0,models:new Map,outputTokens:0,reasoningOutputTokens:0,totalTokens:0};o.cachedInputTokens+=t.cachedInputTokens,o.costUSD+=t.costUSD,o.inputTokens+=t.inputTokens,o.outputTokens+=t.outputTokens,o.reasoningOutputTokens+=t.reasoningOutputTokens,o.totalTokens+=t.totalTokens;for(const[r,s]of Object.entries(t.models)){const a=o.models.get(r)??da();a.cachedInputTokens+=s.cachedInputTokens,a.inputTokens+=s.inputTokens,a.isFallback=a.isFallback||s.isFallback,a.outputTokens+=s.outputTokens,a.reasoningOutputTokens+=s.reasoningOutputTokens,a.totalTokens+=s.totalTokens,o.models.set(r,a)}e.set(n,o)}return Array.from(e.entries()).sort((t,n)=>t[0].localeCompare(n[0])).map(([,t])=>({cachedInputTokens:t.cachedInputTokens,costUSD:We(t.costUSD),date:t.date,inputTokens:t.inputTokens,models:Object.fromEntries(t.models.entries()),outputTokens:t.outputTokens,reasoningOutputTokens:t.reasoningOutputTokens,totalTokens:t.totalTokens}))}function ua(p){const e=new Map;for(const t of p){const n=`${t.month}__${t.model}`,o=e.get(n)??{model:t.model,month:t.month,tokenTotal:0};o.tokenTotal+=t.tokenTotal,e.set(n,o)}return Array.from(e.values()).sort((t,n)=>t.month.localeCompare(n.month)||t.model.localeCompare(n.model))}function da(){return{cachedInputTokens:0,inputTokens:0,isFallback:!1,outputTokens:0,reasoningOutputTokens:0,totalTokens:0}}function bt(p,e){return e>0?p/e:0}const ga=Q({name:"StatisticalAnalysisTokensUsagePanel",__name:"TokensUsagePanel",setup(p){const{dailyTokenUsage:e}=pe();return(t,n)=>{const o=Ge,r=He,s=Be,a=Ye,d=Ne,l=ze,i=Pt;return W(),ft(i,{description:"Daily model activity by token type, cache reads, total usage, and cost",icon:"lucide:calendar-days",title:"Daily Token Usage"},{default:R(()=>[S(l,null,{default:R(()=>[S(s,null,{default:R(()=>[S(r,null,{default:R(()=>[S(o,null,{default:R(()=>[...n[0]||(n[0]=[I("Date",-1)])]),_:1}),S(o,null,{default:R(()=>[...n[1]||(n[1]=[I("Models",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[2]||(n[2]=[I(" Input ",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[3]||(n[3]=[I(" Output ",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[4]||(n[4]=[I(" Reasoning ",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[5]||(n[5]=[I(" Cache Read ",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[6]||(n[6]=[I(" Total Tokens ",-1)])]),_:1}),S(o,{class:"text-right"},{default:R(()=>[...n[7]||(n[7]=[I(" Cost (USD) ",-1)])]),_:1})]),_:1})]),_:1}),S(d,null,{default:R(()=>[(W(!0),X(St,null,xt(U(e),g=>(W(),ft(r,{key:g.date},{default:R(()=>[S(a,{class:"font-medium"},{default:R(()=>[I(j(g.date),1)]),_:2},1024),S(a,null,{default:R(()=>[I(j(Object.keys(g.models).join(", ")),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(U(pt)(g.inputTokens)),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(U(pt)(g.outputTokens)),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(U(pt)(g.reasoningOutputTokens)),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(U(pt)(g.cachedInputTokens)),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(U(pt)(g.totalTokens)),1)]),_:2},1024),S(a,{class:"text-right"},{default:R(()=>[I(j(g.costUSD.toFixed(2)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})}}}),ha=Object.assign(ga,{__name:"StatisticalAnalysisTokensUsagePanel"}),ka=Q({__name:"index",setup(p){const{cachedInputTokens:e,costGrowthTrend:t,dailyTokenUsage:n,efficiencyMetrics:o,inputTokens:r,monthlyModelUsage:s,projectUsage:a,sessionUsage:d,totalCost:l,totalSessions:i,totalTokens:g,tokenGrowthTrend:f}=pe(),v=D(()=>[{icon:"lucide:wallet",name:"Total Spend",trend:t.value.trend,trendTone:t.value.trendTone,value:gt(l.value)},{icon:"solar:cpu-line-duotone",name:"Token Usage",trend:f.value.trend,trendTone:f.value.trendTone,value:Y(g.value)},{icon:"lucide:database-zap",name:"Cache Hit Rate",trend:`${Y(e.value)} cached`,trendTone:"neutral",value:it(r.value>0?e.value/r.value:0)},{icon:"lucide:receipt-text",name:"Avg Session Cost",trend:"across all tools",trendTone:"neutral",value:gt(i.value>0?l.value/i.value:0)}]);return(h,y)=>{const u=Xe,k=Ze,C=Je,w=Qe,M=Hn,b=ra,c=ha,m=Ke,A=qe;return W(),ft(A,null,{default:R(()=>[S(u,{cards:U(v)},null,8,["cards"]),S(m,null,{default:R(()=>[S(k,{"monthly-items":U(s),class:"md:col-span-8"},null,8,["monthly-items"]),S(C,{items:U(a),class:"md:col-span-4"},null,8,["items"]),S(w,{items:U(n),class:"md:col-span-12","heat-metric":"cost",title:"Usage Trend"},null,8,["items"]),S(M,{items:U(d),"total-sessions":U(i),class:"md:col-span-6"},null,8,["items","total-sessions"]),S(b,{"daily-items":U(n),items:U(o),class:"md:col-span-6"},null,8,["daily-items","items"]),S(c,{class:"md:col-span-12"})]),_:1})]),_:1})}}});export{ka as default};
@@ -0,0 +1,3 @@
1
+ import{J as Z,r as x,h as w,aj as Te,ak as oe,al as H,am as we,an as Ce,s as Q,ao as Ie,ap as Se,i as D,n as le,v as re,j as Ae,z as S,V as G,aq as xe,a7 as X,ar as Ee,p as Me,as as Pe,at as te,au as ke,W as ie,o as T,B as E,w as d,b as m,D as r,P as $,C as O,x as ue,O as de,a3 as Oe,E as Ne,H as ce,av as $e,Z as Re,a4 as B,R as j,a6 as q,a1 as Fe,a2 as Be,a as z,c as F,t as A,d as b,aw as je,X as L,Y as K,ab as qe,F as Ue}from"./BFLIXB9O.js";import{u as fe,m as pe,q as me,w as Ve,p as De,l as ze,n as Le,o as Ke,c as R,d as He}from"./Bvg0CuDs.js";function ae(){let t=document.activeElement;if(t==null)return null;for(;t!=null&&t.shadowRoot!=null&&t.shadowRoot.activeElement!=null;)t=t.shadowRoot.activeElement;return t}const[Ge]=Z("ConfigProvider");function ve(t){const e=Ge({dir:x("ltr")});return w(()=>t?.value||e.dir?.value||"ltr")}function We(t){const e=H(),s=e?.type.emits,n={};return s?.length||console.warn(`No emitted event found. Please check component: ${e?.type.__name}`),s?.forEach(i=>{n[Te(oe(i))]=(...c)=>t(i,...c)}),n}function W(){const t=H(),e=x(),s=w(()=>n());we(()=>{s.value!==n()&&Ce(e)});function n(){return e.value&&"$el"in e.value&&["#text","#comment"].includes(e.value.$el.nodeName)?e.value.$el.nextElementSibling:Q(e)}const i=Object.assign({},t.exposed),c={};for(const o in t.props)Object.defineProperty(c,o,{enumerable:!0,configurable:!0,get:()=>t.props[o]});if(Object.keys(i).length>0)for(const o in i)Object.defineProperty(c,o,{enumerable:!0,configurable:!0,get:()=>i[o]});Object.defineProperty(c,"$el",{enumerable:!0,configurable:!0,get:()=>t.vnode.el}),t.exposed=c;function u(o){if(e.value=o,!!o&&(Object.defineProperty(c,"$el",{enumerable:!0,configurable:!0,get:()=>o instanceof Element?o:o.$el}),!(o instanceof Element)&&!Object.hasOwn(o,"$el"))){const f=o.$.exposed,l=Object.assign({},c);for(const a in f)Object.defineProperty(l,a,{enumerable:!0,configurable:!0,get:()=>f[a]});t.exposed=l}}return{forwardRef:u,currentRef:e,currentElement:s}}function ge(t){const e=H(),s=Object.keys(e?.type.props??{}).reduce((i,c)=>{const u=(e?.type.props[c]).default;return u!==void 0&&(i[c]=u),i},{}),n=Ie(t);return w(()=>{const i={},c=e?.vnode.props??{};return Object.keys(c).forEach(u=>{i[oe(u)]=c[u]}),Object.keys({...s,...i}).reduce((u,o)=>(n.value[o]!==void 0&&(u[o]=n.value[o]),u),{})})}function Ye(t,e){const s=ge(t),n=e?We(e):{};return w(()=>({...s.value,...n}))}function Je(t,e){const s=x(t);function n(c){return e[s.value][c]??s.value}return{state:s,dispatch:c=>{s.value=n(c)}}}function Xe(t,e){const s=x({}),n=x("none"),i=x(t),c=t.value?"mounted":"unmounted";let u;const o=e.value?.ownerDocument.defaultView??Se,{state:f,dispatch:l}=Je(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}}),a=v=>{if(Ae){const y=new CustomEvent(v,{bubbles:!1,cancelable:!1});e.value?.dispatchEvent(y)}};D(t,async(v,y)=>{const P=y!==v;if(await le(),P){const k=n.value,M=V(e.value);v?(l("MOUNT"),a("enter"),M==="none"&&a("after-enter")):M==="none"||M==="undefined"||s.value?.display==="none"?(l("UNMOUNT"),a("leave"),a("after-leave")):y&&k!==M?(l("ANIMATION_OUT"),a("leave")):(l("UNMOUNT"),a("after-leave"))}},{immediate:!0});const p=v=>{const y=V(e.value),P=y.includes(CSS.escape(v.animationName)),k=f.value==="mounted"?"enter":"leave";if(v.target===e.value&&P&&(a(`after-${k}`),l("ANIMATION_END"),!i.value)){const M=e.value.style.animationFillMode;e.value.style.animationFillMode="forwards",u=o?.setTimeout(()=>{e.value?.style.animationFillMode==="forwards"&&(e.value.style.animationFillMode=M)})}v.target===e.value&&y==="none"&&l("ANIMATION_END")},g=v=>{v.target===e.value&&(n.value=V(e.value))},_=D(e,(v,y)=>{v?(s.value=getComputedStyle(v),v.addEventListener("animationstart",g),v.addEventListener("animationcancel",p),v.addEventListener("animationend",p)):(l("ANIMATION_END"),u!==void 0&&o?.clearTimeout(u),y?.removeEventListener("animationstart",g),y?.removeEventListener("animationcancel",p),y?.removeEventListener("animationend",p))},{immediate:!0}),I=D(f,()=>{const v=V(e.value);n.value=f.value==="mounted"?v:"none"});return re(()=>{_(),I()}),{isPresent:w(()=>["mounted","unmountSuspended"].includes(f.value))}}function V(t){return t&&getComputedStyle(t).animationName||"none"}var Ze=S({name:"Presence",props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(t,{slots:e,expose:s}){const{present:n,forceMount:i}=G(t),c=x(),{isPresent:u}=Xe(n,c);s({present:u});let o=e.default({present:u.value});o=xe(o||[]);const f=H();if(o&&o?.length>1){const l=f?.parent?.type.name?`<${f.parent.type.name} />`:"component";throw new Error([`Detected an invalid children for \`${l}\` for \`Presence\` component.`,"","Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.","You can apply a few solutions:",["Provide a single child element so that `presence` directive attach correctly.","Ensure the first child is an actual element instead of a raw text node or comment node."].map(a=>` - ${a}`).join(`
2
+ `)].join(`
3
+ `))}return()=>i.value||n.value||u.value?X(e.default({present:u.value})[0],{ref:l=>{const a=Q(l);return typeof a?.hasAttribute>"u"||(a?.hasAttribute("data-reka-popper-content-wrapper")?c.value=a.firstElementChild:c.value=a),a}}):null}});function ne(){const t=x(),e=w(()=>["#text","#comment"].includes(t.value?.$el.nodeName)?t.value?.$el.nextElementSibling:Q(t));return{primitiveElement:t,currentElement:e}}const se="data-reka-collection-item";function be(t={}){const{key:e="",isProvider:s=!1}=t,n=`${e}CollectionProvider`;let i;if(s){const a=x(new Map);i={collectionRef:x(),itemMap:a},ke(n,i)}else i=Ee(n);const c=(a=!1)=>{const p=i.collectionRef.value;if(!p)return[];const g=Array.from(p.querySelectorAll(`[${se}]`)),I=Array.from(i.itemMap.value.values()).sort((N,v)=>g.indexOf(N.ref)-g.indexOf(v.ref));return a?I:I.filter(N=>N.ref.dataset.disabled!=="")},u=S({name:"CollectionSlot",inheritAttrs:!1,setup(a,{slots:p,attrs:g}){const{primitiveElement:_,currentElement:I}=ne();return D(I,()=>{i.collectionRef.value=I.value}),()=>X(te,{ref:_,...g},p)}}),o=S({name:"CollectionItem",inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(a,{slots:p,attrs:g}){const{primitiveElement:_,currentElement:I}=ne();return Me(N=>{if(I.value){const v=Pe(I.value);i.itemMap.value.set(v,{ref:I.value,value:a.value}),N(()=>i.itemMap.value.delete(v))}}),()=>X(te,{...g,[se]:"",ref:_},p)}}),f=w(()=>Array.from(i.itemMap.value.values())),l=w(()=>i.itemMap.value.size);return{getItems:c,reactiveItems:f,itemMapSize:l,CollectionSlot:u,CollectionItem:o}}const Qe="rovingFocusGroup.onEntryFocus",et={bubbles:!1,cancelable:!0},tt={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function at(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function nt(t,e,s){const n=at(t.key,s);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(n))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(n)))return tt[n]}function ye(t,e=!1){const s=ae();for(const n of t)if(n===s||(n.focus({preventScroll:e}),ae()!==s))return}function st(t,e){return t.map((s,n)=>t[(e+n)%t.length])}const[ot,lt]=Z("RovingFocusGroup");var rt=S({__name:"RovingFocusGroup",props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["entryFocus","update:currentTabStopId"],setup(t,{expose:e,emit:s}){const n=t,i=s,{loop:c,orientation:u,dir:o}=G(n),f=ve(o),l=ie(n,"currentTabStopId",i,{defaultValue:n.defaultCurrentTabStopId,passive:n.currentTabStopId===void 0}),a=x(!1),p=x(!1),g=x(0),{getItems:_,CollectionSlot:I}=be({isProvider:!0});function N(y){const P=!p.value;if(y.currentTarget&&y.target===y.currentTarget&&P&&!a.value){const k=new CustomEvent(Qe,et);if(y.currentTarget.dispatchEvent(k),i("entryFocus",k),!k.defaultPrevented){const M=_().map(h=>h.ref).filter(h=>h.dataset.disabled!==""),U=M.find(h=>h.getAttribute("data-active")===""),Y=M.find(h=>h.getAttribute("data-highlighted")===""),J=M.find(h=>h.id===l.value),C=[U,Y,J,...M].filter(Boolean);ye(C,n.preventScrollOnEntryFocus)}}p.value=!1}function v(){setTimeout(()=>{p.value=!1},1)}return e({getItems:_}),lt({loop:c,dir:f,orientation:u,currentTabStopId:l,onItemFocus:y=>{l.value=y},onItemShiftTab:()=>{a.value=!0},onFocusableItemAdd:()=>{g.value++},onFocusableItemRemove:()=>{g.value--}}),(y,P)=>(T(),E(r(I),null,{default:d(()=>[m(r($),{tabindex:a.value||g.value===0?-1:0,"data-orientation":r(u),as:y.as,"as-child":y.asChild,dir:r(f),style:{outline:"none"},onMousedown:P[0]||(P[0]=k=>p.value=!0),onMouseup:v,onFocus:N,onBlur:P[1]||(P[1]=k=>a.value=!1)},{default:d(()=>[O(y.$slots,"default")]),_:3},8,["tabindex","data-orientation","as","as-child","dir"])]),_:3}))}}),it=rt,ut=S({__name:"RovingFocusItem",props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(t){const e=t,s=ot(),n=fe(),i=w(()=>e.tabStopId||n),c=w(()=>s.currentTabStopId.value===i.value),{getItems:u,CollectionItem:o}=be();ue(()=>{e.focusable&&s.onFocusableItemAdd()}),re(()=>{e.focusable&&s.onFocusableItemRemove()});function f(l){if(l.key==="Tab"&&l.shiftKey){s.onItemShiftTab();return}if(l.target!==l.currentTarget)return;const a=nt(l,s.orientation.value,s.dir.value);if(a!==void 0){if(l.metaKey||l.ctrlKey||l.altKey||!e.allowShiftKey&&l.shiftKey)return;l.preventDefault();let p=[...u().map(g=>g.ref).filter(g=>g.dataset.disabled!=="")];if(a==="last")p.reverse();else if(a==="prev"||a==="next"){a==="prev"&&p.reverse();const g=p.indexOf(l.currentTarget);p=s.loop.value?st(p,g+1):p.slice(g+1)}le(()=>ye(p))}}return(l,a)=>(T(),E(r(o),null,{default:d(()=>[m(r($),{tabindex:c.value?0:-1,"data-orientation":r(s).orientation.value,"data-active":l.active?"":void 0,"data-disabled":l.focusable?void 0:"",as:l.as,"as-child":l.asChild,onMousedown:a[0]||(a[0]=p=>{l.focusable?r(s).onItemFocus(i.value):p.preventDefault()}),onFocus:a[1]||(a[1]=p=>r(s).onItemFocus(i.value)),onKeydown:f},{default:d(()=>[O(l.$slots,"default")]),_:3},8,["tabindex","data-orientation","data-active","data-disabled","as","as-child"])]),_:3}))}}),dt=ut;const[ee,ct]=Z("TabsRoot");var ft=S({__name:"TabsRoot",props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:"horizontal"},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:"automatic"},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["update:modelValue"],setup(t,{emit:e}){const s=t,n=e,{orientation:i,unmountOnHide:c,dir:u}=G(s),o=ve(u);W();const f=ie(s,"modelValue",n,{defaultValue:s.defaultValue,passive:s.modelValue===void 0}),l=x(),a=de(new Set);return ct({modelValue:f,changeModelValue:p=>{f.value=p},orientation:i,dir:o,unmountOnHide:c,activationMode:s.activationMode,baseId:fe(void 0,"reka-tabs"),tabsList:l,contentIds:a,registerContent:p=>{a.value=new Set([...a.value,p])},unregisterContent:p=>{const g=new Set(a.value);g.delete(p),a.value=g}}),(p,g)=>(T(),E(r($),{dir:r(o),"data-orientation":r(i),"as-child":p.asChild,as:p.as},{default:d(()=>[O(p.$slots,"default",{modelValue:r(f)})]),_:3},8,["dir","data-orientation","as-child","as"]))}}),pt=ft;function _e(t,e){return`${t}-trigger-${e}`}function he(t,e){return`${t}-content-${e}`}var mt=S({__name:"TabsContent",props:{value:{type:[String,Number],required:!0},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const e=t,{forwardRef:s}=W(),n=ee(),i=w(()=>_e(n.baseId,e.value)),c=w(()=>he(n.baseId,e.value)),u=w(()=>e.value===n.modelValue.value),o=x(u.value);return ue(()=>{n.registerContent(e.value),requestAnimationFrame(()=>{o.value=!1})}),Oe(()=>{n.unregisterContent(e.value)}),(f,l)=>(T(),E(r(Ze),{present:f.forceMount||u.value,"force-mount":""},{default:d(({present:a})=>[m(r($),{id:c.value,ref:r(s),"as-child":f.asChild,as:f.as,role:"tabpanel","data-state":u.value?"active":"inactive","data-orientation":r(n).orientation.value,"aria-labelledby":i.value,hidden:!a,tabindex:"0",style:Ne({animationDuration:o.value?"0s":void 0})},{default:d(()=>[!r(n).unmountOnHide.value||a?O(f.$slots,"default",{key:0}):ce("v-if",!0)]),_:2},1032,["id","as-child","as","data-state","data-orientation","aria-labelledby","hidden","style"])]),_:3},8,["present"]))}}),vt=mt,gt=S({__name:"TabsList",props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const e=t,{loop:s}=G(e),{forwardRef:n,currentElement:i}=W(),c=ee();return c.tabsList=i,(u,o)=>(T(),E(r(it),{"as-child":"",orientation:r(c).orientation.value,dir:r(c).dir.value,loop:r(s)},{default:d(()=>[m(r($),{ref:r(n),role:"tablist","as-child":u.asChild,as:u.as,"aria-orientation":r(c).orientation.value},{default:d(()=>[O(u.$slots,"default")]),_:3},8,["as-child","as","aria-orientation"])]),_:3},8,["orientation","dir","loop"]))}}),bt=gt,yt=S({__name:"TabsTrigger",props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(t){const e=t,{forwardRef:s}=W(),n=ee(),i=w(()=>_e(n.baseId,e.value)),c=w(()=>n.contentIds.value.has(e.value)?he(n.baseId,e.value):void 0),u=w(()=>e.value===n.modelValue.value);return(o,f)=>(T(),E(r(dt),{"as-child":"",focusable:!o.disabled,active:u.value},{default:d(()=>[m(r($),{id:i.value,ref:r(s),role:"tab",type:o.as==="button"?"button":void 0,as:o.as,"as-child":o.asChild,"aria-selected":u.value?"true":"false","aria-controls":c.value,"data-state":u.value?"active":"inactive",disabled:o.disabled,"data-disabled":o.disabled?"":void 0,"data-orientation":r(n).orientation.value,onMousedown:f[0]||(f[0]=Re(l=>{!o.disabled&&l.ctrlKey===!1?r(n).changeModelValue(o.value):l.preventDefault()},["left"])),onKeydown:f[1]||(f[1]=$e(l=>r(n).changeModelValue(o.value),["enter","space"])),onFocus:f[2]||(f[2]=()=>{const l=r(n).activationMode!=="manual";!u.value&&!o.disabled&&l&&r(n).changeModelValue(o.value)})},{default:d(()=>[O(o.$slots,"default")]),_:3},8,["id","type","as","as-child","aria-selected","aria-controls","data-state","disabled","data-disabled","data-orientation"])]),_:3},8,["focusable","active"]))}}),_t=yt;const ht=S({__name:"Tabs",props:{defaultValue:{},orientation:{},dir:{},activationMode:{},modelValue:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},emits:["update:modelValue"],setup(t,{emit:e}){const s=t,n=e,i=B(s,"class"),c=Ye(i,n);return(u,o)=>(T(),E(r(pt),j({"data-slot":"tabs"},r(c),{class:r(q)("flex flex-col gap-2",s.class)}),{default:d(f=>[O(u.$slots,"default",Fe(Be(f)))]),_:3},16,["class"]))}}),Tt=S({__name:"TabsContent",props:{value:{},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){const e=t,s=B(e,"class");return(n,i)=>(T(),E(r(vt),j({"data-slot":"tabs-content",class:r(q)("flex-1 outline-none",e.class)},r(s)),{default:d(()=>[O(n.$slots,"default")]),_:3},16,["class"]))}}),wt=S({__name:"TabsList",props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){const e=t,s=B(e,"class");return(n,i)=>(T(),E(r(bt),j({"data-slot":"tabs-list"},r(s),{class:r(q)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",e.class)}),{default:d(()=>[O(n.$slots,"default")]),_:3},16,["class"]))}}),Ct=S({__name:"TabsTrigger",props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){const e=t,s=B(e,"class"),n=ge(s);return(i,c)=>(T(),E(r(_t),j({"data-slot":"tabs-trigger",class:r(q)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e.class)},r(n)),{default:d(()=>[O(i.$slots,"default")]),_:3},16,["class"]))}}),It={class:"flex items-center justify-center py-10"},St=S({__name:"TableEmpty",props:{class:{type:[Boolean,null,String,Object,Array]},colspan:{default:1}},setup(t){const e=t,s=B(e,"class");return(n,i)=>(T(),E(pe,null,{default:d(()=>[m(me,j({class:r(q)("p-4 whitespace-nowrap align-middle text-sm text-foreground",e.class)},r(s)),{default:d(()=>[z("div",It,[O(n.$slots,"default")])]),_:3},16,["class"])]),_:3}))}}),At={class:"mt-4 flex flex-col gap-3 border-t pt-4 sm:flex-row sm:items-center sm:justify-between"},xt={class:"text-sm text-muted-foreground"},Et={class:"flex items-center justify-end gap-2"},Mt={class:"flex items-center gap-1"},Pt=S({name:"UsageAnalyticsPaginationFooter",__name:"PaginationFooter",props:{page:{},pageCount:{},pageSize:{},total:{}},emits:["update:page"],setup(t,{emit:e}){const s=t,n=e,i=w(()=>{const u=Math.max(1,s.page-2),o=Math.min(s.pageCount,u+4),f=Math.max(1,o-4);return Array.from({length:o-f+1},(l,a)=>f+a)}),c=w(()=>{if(s.total===0)return"No records";const u=(s.page-1)*s.pageSize+1,o=Math.min(s.page*s.pageSize,s.total);return`${u}-${o} of ${s.total}`});return(u,o)=>{const f=je;return T(),F("div",At,[z("p",xt,A(r(c)),1),z("div",Et,[m(f,{disabled:t.page<=1,size:"sm",variant:"outline",onClick:o[0]||(o[0]=l=>n("update:page",t.page-1))},{default:d(()=>[...o[2]||(o[2]=[b(" Previous ",-1)])]),_:1},8,["disabled"]),z("div",Mt,[(T(!0),F(L,null,K(r(i),l=>(T(),E(f,{key:l,variant:l===t.page?"default":"ghost",class:"tabular-nums",size:"icon-sm",onClick:a=>n("update:page",l)},{default:d(()=>[b(A(l),1)]),_:2},1032,["variant","onClick"]))),128))]),m(f,{disabled:t.page>=t.pageCount,size:"sm",variant:"outline",onClick:o[1]||(o[1]=l=>n("update:page",t.page+1))},{default:d(()=>[...o[3]||(o[3]=[b(" Next ",-1)])]),_:1},8,["disabled"])])])}}}),kt=Object.assign(Pt,{__name:"UsageAnalyticsPaginationFooter"}),Ot=S({name:"UsageAnalyticsTokenUsageTabsPanel",__name:"TokenUsageTabsPanel",props:{dailyItems:{},weeklyItems:{},monthlyItems:{},sessionItems:{},pageSize:{default:10},productName:{default:"Product"}},setup(t){const e=t,s=de("day"),n=Ue({day:1,month:1,session:1,week:1}),i=[{heading:"Date",label:"Day",value:"day"},{heading:"Week",label:"Week",value:"week"},{heading:"Month",label:"Month",value:"month"},{heading:"Session ID",label:"Session",value:"session"}],c=w(()=>({day:e.dailyItems,month:e.monthlyItems,session:e.sessionItems,week:e.weeklyItems})),u=w(()=>Object.fromEntries(i.map(l=>{const a=c.value[l.value],p=Math.max(1,Math.ceil(a.length/e.pageSize)),g=Math.min(n[l.value],p),_=(g-1)*e.pageSize;return[l.value,{items:a,page:g,pageCount:p,paginatedItems:a.slice(_,_+e.pageSize)}]})));function o(l,a){const p=u.value[l].pageCount;n[l]=Math.min(p,Math.max(1,a))}function f(l){return l.length>0?l.join(", "):"None"}return(l,a)=>{const p=Ct,g=wt,_=Le,I=pe,N=ze,v=me,y=St,P=Ke,k=De,M=kt,U=Tt,Y=ht,J=Ve;return T(),E(J,{description:`Browse ${t.productName} token consumption by day, week, month, or session.`,icon:"lucide:table-2",title:`${t.productName} Token Usage`},{default:d(()=>[m(Y,{modelValue:r(s),"onUpdate:modelValue":a[0]||(a[0]=C=>qe(s)?s.value=C:null)},{default:d(()=>[m(g,{class:"grid w-full grid-cols-4 sm:w-fit"},{default:d(()=>[(T(),F(L,null,K(i,C=>m(p,{key:C.value,value:C.value},{default:d(()=>[b(A(C.label),1)]),_:2},1032,["value"])),64))]),_:1}),(T(),F(L,null,K(i,C=>m(U,{key:C.value,class:"mt-4",value:C.value},{default:d(()=>[m(k,null,{default:d(()=>[m(N,null,{default:d(()=>[m(I,null,{default:d(()=>[m(_,null,{default:d(()=>[b(A(C.heading),1)]),_:2},1024),m(_,null,{default:d(()=>[...a[1]||(a[1]=[b("Models",-1)])]),_:1}),m(_,null,{default:d(()=>[...a[2]||(a[2]=[b("Projects",-1)])]),_:1}),m(_,{class:"text-right"},{default:d(()=>[...a[3]||(a[3]=[b(" Sessions ",-1)])]),_:1}),m(_,{class:"text-right"},{default:d(()=>[...a[4]||(a[4]=[b(" Input ",-1)])]),_:1}),m(_,{class:"text-right"},{default:d(()=>[...a[5]||(a[5]=[b(" Output ",-1)])]),_:1}),m(_,{class:"text-right"},{default:d(()=>[...a[6]||(a[6]=[b(" Reasoning ",-1)])]),_:1}),m(_,{class:"text-right"},{default:d(()=>[...a[7]||(a[7]=[b(" Cache Read ",-1)])]),_:1}),m(_,{class:"text-right"},{default:d(()=>[...a[8]||(a[8]=[b(" Total Tokens ",-1)])]),_:1}),m(_,{class:"text-right"},{default:d(()=>[...a[9]||(a[9]=[b(" Cost ",-1)])]),_:1})]),_:2},1024)]),_:2},1024),m(P,null,{default:d(()=>[(T(!0),F(L,null,K(r(u)[C.value].paginatedItems,h=>(T(),E(I,{key:h.id},{default:d(()=>[m(v,{class:"max-w-72 truncate font-medium"},{default:d(()=>[b(A(h.label),1)]),_:2},1024),m(v,null,{default:d(()=>[b(A(f(h.models)),1)]),_:2},1024),m(v,{class:"max-w-56 truncate"},{default:d(()=>[b(A(f(h.projects)),1)]),_:2},1024),m(v,{class:"text-right tabular-nums"},{default:d(()=>[b(A(h.sessionCount),1)]),_:2},1024),m(v,{class:"text-right tabular-nums"},{default:d(()=>[b(A(r(R)(h.inputTokens)),1)]),_:2},1024),m(v,{class:"text-right tabular-nums"},{default:d(()=>[b(A(r(R)(h.outputTokens)),1)]),_:2},1024),m(v,{class:"text-right tabular-nums"},{default:d(()=>[b(A(r(R)(h.reasoningOutputTokens)),1)]),_:2},1024),m(v,{class:"text-right tabular-nums"},{default:d(()=>[b(A(r(R)(h.cachedInputTokens)),1)]),_:2},1024),m(v,{class:"text-right tabular-nums"},{default:d(()=>[b(A(r(R)(h.totalTokens)),1)]),_:2},1024),m(v,{class:"text-right tabular-nums"},{default:d(()=>[b(A(("formatCurrency"in l?l.formatCurrency:r(He))(h.costUSD)),1)]),_:2},1024)]),_:2},1024))),128)),r(u)[C.value].items.length===0?(T(),E(y,{key:0,colspan:10},{default:d(()=>[b(" No "+A(t.productName)+" token usage found. ",1)]),_:1})):ce("",!0)]),_:2},1024)]),_:2},1024),m(M,{page:r(u)[C.value].page,"page-count":r(u)[C.value].pageCount,"page-size":t.pageSize,total:r(u)[C.value].items.length,"onUpdate:page":h=>o(C.value,h)},null,8,["page","page-count","page-size","total","onUpdate:page"])]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["description","title"])}}}),Rt=Object.assign(Ot,{__name:"UsageAnalyticsTokenUsageTabsPanel"});export{Ze as P,St as _,be as a,ve as b,ge as c,Ye as d,kt as e,wt as f,ae as g,Ct as h,Ge as i,Tt as j,Rt as k,ht as l,W as u};