usage-board 2.0.0 → 2.1.1

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.
@@ -1 +1 @@
1
- import{_ as o,u as s,o as a,c as i,a as t,t as r}from"./BFLIXB9O.js";const u={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},l={class:"max-w-520px text-center"},c=["textContent"],d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:500},statusText:{type:String,default:"Internal server error"},description:{type:String,default:"This page is temporarily unavailable."},refresh:{type:String,default:"Refresh this page"}},setup(e){const n=e;return s({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(h,m)=>(a(),i("div",u,[t("div",l,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:r(e.status)},null,8,c),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:r(e.statusText)},null,8,d),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:r(e.description)},null,8,p)])]))}},b=o(f,[["__scopeId","data-v-784a2264"]]);export{b as default};
1
+ import{_ as o,u as s,o as a,c as i,a as t,t as r}from"./CBNzCW3N.js";const u={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},l={class:"max-w-520px text-center"},c=["textContent"],d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:500},statusText:{type:String,default:"Internal server error"},description:{type:String,default:"This page is temporarily unavailable."},refresh:{type:String,default:"Refresh this page"}},setup(e){const n=e;return s({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(h,m)=>(a(),i("div",u,[t("div",l,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:r(e.status)},null,8,c),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:r(e.statusText)},null,8,d),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:r(e.description)},null,8,p)])]))}},b=o(f,[["__scopeId","data-v-784a2264"]]);export{b as default};
@@ -1 +1 @@
1
- import{_ as s,u as a,o as i,c as u,a as t,t as n,b as c,w as l,d,e as f}from"./BFLIXB9O.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],b=["textContent"],x=["textContent"],g={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return a({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,w)=>{const o=f;return i(),u("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.status)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusText)},null,8,b),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,x),t("div",g,[c(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:l(()=>[d(n(e.backHome),1)]),_:1})])])])}}},v=s(y,[["__scopeId","data-v-0abdad73"]]);export{v as default};
1
+ import{_ as s,u as a,o as i,c as u,a as t,t as n,b as c,w as l,d,e as f}from"./CBNzCW3N.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],b=["textContent"],x=["textContent"],g={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return a({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,w)=>{const o=f;return i(),u("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.status)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusText)},null,8,b),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,x),t("div",g,[c(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:l(()=>[d(n(e.backHome),1)]),_:1})])])])}}},v=s(y,[["__scopeId","data-v-0abdad73"]]);export{v as default};
@@ -0,0 +1,21 @@
1
+ import{i as wt,P as fo,V as mo,u as Ue,a as vo,D as go,b as ct,c as yo,d as jt,h as ho,T as _o,e as bo,S as wo,C as So,f as St,z as xo,A as ko,_ as To,g as me,j as Co,k as xt,l as Po,m as H,n as te,o as Ut,p as Ft,q as Nt,r as Io,s as Vt,t as zt,v as Ht,w as Wt,x as Kt,y as Yt,B as Gt,E as Eo,F as Do,G as qo,H as Bo,I as $o,J as Mo}from"./4bxbFgue.js";import{f as Ro,g as Ao,h as I,r as O,i as ge,j as pt,k as Oo,l as kt,m as Lo,n as Be,p as $e,q as jo,s as ft,v as Xt,x as Uo,y as Fo,z as L,A as _e,o as g,B as T,w as u,C as N,D as n,P as de,E as mt,F as No,G as vt,H as Tt,c as U,I as ee,J as le,K as ie,L as Z,M as Qe,a as z,b as v,N as He,O as Vo,Q as Te,R as zo,S as je,T as gt,U as yt,V as Ho,d as D,W as Wo,t as A,X as Ye,Y as We,Z as ve,$ as it,a0 as Ko,a1 as Yo,a2 as Go,a3 as Ze,a4 as se,a5 as Xo,a6 as Jo,a7 as Zo,a8 as Qo}from"./CBNzCW3N.js";import{i as Jt,g as ue,u as Fe,a as en,_ as Zt,b as tn,c as on,d as nn,e as an,f as sn}from"./DJtZPkAh.js";import{_ as Qt,a as ln}from"./Rw8uLrAX.js";function Ct(t,e=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY){return Math.min(o,Math.max(e,t))}const rn=Ao(()=>{const t=O(new Map),e=O(),o=I(()=>{for(const a of t.value.values())if(a)return!0;return!1}),s=Jt({scrollBody:O(!0)});let l=null;const d=()=>{document.body.style.paddingRight="",document.body.style.marginRight="",document.body.style.pointerEvents="",document.documentElement.style.removeProperty("--scrollbar-width"),document.body.style.overflow=e.value??"",kt&&l?.(),e.value=void 0};return ge(o,(a,i)=>{if(!pt)return;if(!a){i&&d();return}e.value===void 0&&(e.value=document.body.style.overflow);const f=window.innerWidth-document.documentElement.clientWidth,y={padding:f,margin:0},r=s.scrollBody?.value?typeof s.scrollBody.value=="object"?Oo({padding:s.scrollBody.value.padding===!0?f:s.scrollBody.value.padding,margin:s.scrollBody.value.margin===!0?f:s.scrollBody.value.margin},y):y:{padding:0,margin:0};f>0&&(document.body.style.paddingRight=typeof r.padding=="number"?`${r.padding}px`:String(r.padding),document.body.style.marginRight=typeof r.margin=="number"?`${r.margin}px`:String(r.margin),document.documentElement.style.setProperty("--scrollbar-width",`${f}px`),document.body.style.overflow="hidden"),kt&&(l=Lo(document,"touchmove",p=>dn(p),{passive:!1})),Be(()=>{o.value&&(document.body.style.pointerEvents="none",document.body.style.overflow="hidden")})},{immediate:!0,flush:"sync"}),t});function un(t){const e=Math.random().toString(36).substring(2,7),o=rn();o.value.set(e,t??!1);const s=I({get:()=>o.value.get(e)??!1,set:l=>o.value.set(e,l)});return Ro(()=>{o.value.delete(e)}),s}function eo(t){const e=window.getComputedStyle(t);if(e.overflowX==="scroll"||e.overflowY==="scroll"||e.overflowX==="auto"&&t.clientWidth<t.scrollWidth||e.overflowY==="auto"&&t.clientHeight<t.scrollHeight)return!0;{const o=t.parentNode;return!(o instanceof Element)||o.tagName==="BODY"?!1:eo(o)}}function dn(t){const e=t||window.event,o=e.target;return o instanceof Element&&eo(o)?!1:e.touches.length>1?!0:(e.preventDefault&&e.cancelable&&e.preventDefault(),!1)}let nt=0;function cn(){$e(t=>{if(!pt)return;const e=document.querySelectorAll("[data-reka-focus-guard]");document.body.insertAdjacentElement("afterbegin",e[0]??Pt()),document.body.insertAdjacentElement("beforeend",e[1]??Pt()),nt++,t(()=>{nt===1&&document.querySelectorAll("[data-reka-focus-guard]").forEach(o=>o.remove()),nt--})})}function Pt(){const t=document.createElement("span");return t.setAttribute("data-reka-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}function pn(t){return I(()=>jo(t)?!!ft(t)?.closest("form"):!0)}var fn=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},Le=new WeakMap,Ge=new WeakMap,Xe={},at=0,to=function(t){return t&&(t.host||to(t.parentNode))},mn=function(t,e){return e.map(function(o){if(t.contains(o))return o;var s=to(o);return s&&t.contains(s)?s:(console.error("aria-hidden",o,"in not contained inside",t,". Doing nothing"),null)}).filter(function(o){return!!o})},vn=function(t,e,o,s){var l=mn(e,Array.isArray(t)?t:[t]);Xe[o]||(Xe[o]=new WeakMap);var d=Xe[o],a=[],i=new Set,f=new Set(l),y=function(p){!p||i.has(p)||(i.add(p),y(p.parentNode))};l.forEach(y);var r=function(p){!p||f.has(p)||Array.prototype.forEach.call(p.children,function(h){if(i.has(h))r(h);else try{var x=h.getAttribute(s),w=x!==null&&x!=="false",S=(Le.get(h)||0)+1,C=(d.get(h)||0)+1;Le.set(h,S),d.set(h,C),a.push(h),S===1&&w&&Ge.set(h,!0),C===1&&h.setAttribute(o,"true"),w||h.setAttribute(s,"true")}catch(j){console.error("aria-hidden: cannot operate on ",h,j)}})};return r(e),i.clear(),at++,function(){a.forEach(function(p){var h=Le.get(p)-1,x=d.get(p)-1;Le.set(p,h),d.set(p,x),h||(Ge.has(p)||p.removeAttribute(s),Ge.delete(p)),x||p.removeAttribute(o)}),at--,at||(Le=new WeakMap,Le=new WeakMap,Ge=new WeakMap,Xe={})}},gn=function(t,e,o){o===void 0&&(o="data-aria-hidden");var s=Array.from(Array.isArray(t)?t:[t]),l=fn(t);return l?(s.push.apply(s,Array.from(l.querySelectorAll("[aria-live], script"))),vn(s,l,o,"aria-hidden")):function(){return null}};function yn(t){let e;ge(()=>ft(t),o=>{let s=!1;try{s=!!o?.closest("[popover]:not(:popover-open)")}catch{}o&&!s?e=gn(o):e&&e()}),Xt(()=>{e&&e()})}function oo(t){const e=Uo("",1e3);return{search:e,handleTypeaheadSearch:(l,d)=>{e.value=e.value+l;{const a=ue(),i=d.map(h=>({...h,textValue:h.value?.textValue??h.ref.textContent?.trim()??""})),f=i.find(h=>h.ref===a),y=i.map(h=>h.textValue),r=_n(y,e.value,f?.textValue),p=i.find(h=>h.textValue===r);return p&&p.ref.focus(),p?.ref}},resetTypeahead:()=>{e.value=""}}}function hn(t,e){return t.map((o,s)=>t[(e+s)%t.length])}function _n(t,e,o){const l=e.length>1&&Array.from(e).every(y=>y===e[0])?e[0]:e,d=o?t.indexOf(o):-1;let a=hn(t,Math.max(d,0));l.length===1&&(a=a.filter(y=>y!==o));const f=a.find(y=>y.toLowerCase().startsWith(l.toLowerCase()));return f!==o?f:void 0}const bn=Fo(()=>O([]));function wn(){const t=bn();return{add(e){const o=t.value[0];e!==o&&o?.pause(),t.value=It(t.value,e),t.value.unshift(e)},remove(e){t.value=It(t.value,e),t.value[0]?.resume()}}}function It(t,e){const o=[...t],s=o.indexOf(e);return s!==-1&&o.splice(s,1),o}const st="focusScope.autoFocusOnMount",lt="focusScope.autoFocusOnUnmount",Et={bubbles:!1,cancelable:!0};function Sn(t,{select:e=!1}={}){const o=ue();for(const s of t)if(ke(s,{select:e}),ue()!==o)return!0}function xn(t){const e=no(t),o=Dt(e,t),s=Dt(e.reverse(),t);return[o,s]}function no(t){const e=[],o=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:s=>{const l=s.tagName==="INPUT"&&s.type==="hidden";return s.disabled||s.hidden||l?NodeFilter.FILTER_SKIP:s.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)e.push(o.currentNode);return e}function Dt(t,e){for(const o of t)if(!kn(o,{upTo:e}))return o}function kn(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function Tn(t){return t instanceof HTMLInputElement&&"select"in t}function ke(t,{select:e=!1}={}){if(t&&t.focus){const o=ue();t.focus({preventScroll:!0}),t!==o&&Tn(t)&&e&&t.select()}}var Cn=L({__name:"FocusScope",props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["mountAutoFocus","unmountAutoFocus"],setup(t,{emit:e}){const o=t,s=e,{currentRef:l,currentElement:d}=_e(),a=O(null),i=wn(),f=mt({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});$e(r=>{if(!pt)return;const p=d.value;if(!o.trapped)return;function h(C){if(f.paused||!p)return;const j=C.target;p.contains(j)?a.value=j:ke(a.value,{select:!0})}function x(C){if(f.paused||!p)return;const j=C.relatedTarget;j!==null&&(p.contains(j)||ke(a.value,{select:!0}))}function w(C){const j=a.value;if(j===null||!C.some(b=>b.removedNodes.length>0))return;p.contains(j)||ke(p)}document.addEventListener("focusin",h),document.addEventListener("focusout",x);const S=new MutationObserver(w);p&&S.observe(p,{childList:!0,subtree:!0}),r(()=>{document.removeEventListener("focusin",h),document.removeEventListener("focusout",x),S.disconnect()})}),$e(async r=>{const p=d.value;if(await Be(),!p)return;i.add(f);const h=ue();if(!p.contains(h)){const w=new CustomEvent(st,Et);p.addEventListener(st,S=>s("mountAutoFocus",S)),p.dispatchEvent(w),w.defaultPrevented||(Sn(no(p),{select:!0}),ue()===h&&ke(p))}r(()=>{p.removeEventListener(st,C=>s("mountAutoFocus",C));const w=new CustomEvent(lt,Et),S=C=>{s("unmountAutoFocus",C)};p.addEventListener(lt,S),p.dispatchEvent(w),setTimeout(()=>{w.defaultPrevented||ke(h??document.body,{select:!0}),p.removeEventListener(lt,S),i.remove(f)},0)})});function y(r){if(!o.loop&&!o.trapped||f.paused)return;const p=r.key==="Tab"&&!r.altKey&&!r.ctrlKey&&!r.metaKey,h=ue();if(p&&h){const x=r.currentTarget,[w,S]=xn(x);w&&S?!r.shiftKey&&h===S?(r.preventDefault(),o.loop&&ke(w,{select:!0})):r.shiftKey&&h===w&&(r.preventDefault(),o.loop&&ke(S,{select:!0})):h===x&&r.preventDefault()}}return(r,p)=>(g(),T(n(de),{ref_key:"currentRef",ref:l,tabindex:"-1","as-child":r.asChild,as:r.as,onKeydown:y},{default:u(()=>[N(r.$slots,"default")]),_:3},8,["as-child","as"]))}}),Pn=Cn;function qt(t){const e=ue();for(const o of t)if(o===e||(o.focus(),ue()!==e))return}function In(t){const e=Jt({nonce:O()});return I(()=>t?.value||e.nonce?.value)}const En=[" ","Enter","ArrowUp","ArrowDown"],Dn=[" ","Enter"],re=10;function Ke(t,e,o){return t===void 0?!1:Array.isArray(t)?t.some(s=>ut(s,e,o)):ut(t,e,o)}function ut(t,e,o){return t===void 0||e===void 0?!1:typeof t=="string"?t===e:typeof o=="function"?o(t,e):typeof o=="string"?t?.[o]===e?.[o]:No(t,e)}function qn(t){return t==null||t===""||Array.isArray(t)&&t.length===0}const Bn={key:0,value:""},[Ce,ao]=Qe("SelectRoot");var $n=L({inheritAttrs:!1,__name:"SelectRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","update:open"],setup(t,{emit:e}){const o=t,s=e,{required:l,disabled:d,multiple:a,dir:i}=vt(o),f=Tt(o,"modelValue",s,{defaultValue:o.defaultValue??(a.value?[]:void 0),passive:o.modelValue===void 0,deep:!0}),y=Tt(o,"open",s,{defaultValue:o.defaultOpen,passive:o.open===void 0}),r=O(),p=O(),h=O({x:0,y:0}),x=I(()=>a.value&&Array.isArray(f.value)?f.value?.length===0:wt(f.value));Fe({isProvider:!0});const w=en(i),S=pn(r),C=O(new Set),j=I(()=>Array.from(C.value).map(b=>b.value).join(";"));function W(b){if(a.value){const q=Array.isArray(f.value)?[...f.value]:[],P=q.findIndex(B=>ut(B,b,o.by));P===-1?q.push(b):q.splice(P,1),f.value=[...q]}else f.value=b}function $(b){return Array.from(C.value).find(q=>Ke(b,q.value,o.by))}return ao({triggerElement:r,onTriggerChange:b=>{r.value=b},valueElement:p,onValueElementChange:b=>{p.value=b},contentId:"",modelValue:f,onValueChange:W,by:o.by,open:y,multiple:a,required:l,onOpenChange:b=>{y.value=b},dir:w,triggerPointerDownPosRef:h,disabled:d,isEmptyModelValue:x,optionsSet:C,onOptionAdd:b=>{const q=$(b.value);q&&C.value.delete(q),C.value.add(b)},onOptionRemove:b=>{const q=$(b.value);q&&C.value.delete(q)}}),(b,q)=>(g(),T(n(fo),null,{default:u(()=>[N(b.$slots,"default",{modelValue:n(f),open:n(y)}),n(S)&&b.name?(g(),T(An,{key:j.value,"aria-hidden":"true",tabindex:"-1",multiple:n(a),required:n(l),name:b.name,autocomplete:b.autocomplete,disabled:n(d),value:n(f)},{default:u(()=>[n(wt)(n(f))?(g(),U("option",Bn)):ee("v-if",!0),(g(!0),U(le,null,ie(Array.from(C.value),P=>(g(),U("option",Z({key:P.value??""},{ref_for:!0},P),null,16))),128))]),_:1},8,["multiple","required","name","autocomplete","disabled","value"])):ee("v-if",!0)]),_:3}))}}),Mn=$n,Rn=L({__name:"BubbleSelect",props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(t){const e=t,o=O(),s=Ce();ge(()=>e.value,(d,a)=>{const i=window.HTMLSelectElement.prototype,y=Object.getOwnPropertyDescriptor(i,"value").set;if(d!==a&&y&&o.value){const r=new Event("change",{bubbles:!0});y.call(o.value,d),o.value.dispatchEvent(r)}});function l(d){s.onValueChange(d.target.value)}return(d,a)=>(g(),T(n(mo),{"as-child":""},{default:u(()=>[z("select",Z({ref_key:"selectElement",ref:o},e,{onInput:l}),[N(d.$slots,"default")],16)]),_:3}))}}),An=Rn,On=L({__name:"SelectPopperPosition",props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:"start"},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:re},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const o=Ue(t);return(s,l)=>(g(),T(n(vo),Z(n(o),{style:{boxSizing:"border-box","--reka-select-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-select-content-available-width":"var(--reka-popper-available-width)","--reka-select-content-available-height":"var(--reka-popper-available-height)","--reka-select-trigger-width":"var(--reka-popper-anchor-width)","--reka-select-trigger-height":"var(--reka-popper-anchor-height)"}}),{default:u(()=>[N(s.$slots,"default")]),_:3},16))}}),Ln=On;const jn={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[Me,so]=Qe("SelectContent");var Un=L({__name:"SelectContentImpl",props:{position:{type:String,required:!1,default:"item-aligned"},bodyLock:{type:Boolean,required:!1,default:!0},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:"start"},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:["closeAutoFocus","escapeKeyDown","pointerDownOutside"],setup(t,{emit:e}){const o=t,s=e,l=Ce();cn(),un(o.bodyLock);const{CollectionSlot:d,getItems:a}=Fe(),i=O();yn(i);const{search:f,handleTypeaheadSearch:y}=oo(),r=O(),p=O(),h=O(),x=O(!1),w=O(!1),S=O(!1);function C(){p.value&&i.value&&qt([p.value,i.value])}ge(x,()=>{C()});const{onOpenChange:j,triggerPointerDownPosRef:W}=l;$e(P=>{if(!i.value)return;let B={x:0,y:0};const M=R=>{B={x:Math.abs(Math.round(R.pageX)-(W.value?.x??0)),y:Math.abs(Math.round(R.pageY)-(W.value?.y??0))}},V=R=>{R.pointerType!=="touch"&&(B.x<=10&&B.y<=10?R.preventDefault():i.value?.contains(R.target)||j(!1),document.removeEventListener("pointermove",M),W.value=null)};W.value!==null&&(document.addEventListener("pointermove",M),document.addEventListener("pointerup",V,{capture:!0,once:!0})),P(()=>{document.removeEventListener("pointermove",M),document.removeEventListener("pointerup",V,{capture:!0})})});function $(P){const B=P.ctrlKey||P.altKey||P.metaKey;if(P.key==="Tab"&&P.preventDefault(),!B&&P.key.length===1&&y(P.key,a()),["ArrowUp","ArrowDown","Home","End"].includes(P.key)){let V=[...a().map(R=>R.ref)];if(["ArrowUp","End"].includes(P.key)&&(V=V.slice().reverse()),["ArrowUp","ArrowDown"].includes(P.key)){const R=P.target,ae=V.indexOf(R);V=V.slice(ae+1)}setTimeout(()=>qt(V)),P.preventDefault()}}const b=I(()=>o.position==="popper"?o:{}),q=Ue(b.value);return so({content:i,viewport:r,onViewportChange:P=>{r.value=P},itemRefCallback:(P,B,M)=>{const V=!w.value&&!M,R=Ke(l.modelValue.value,B,l.by);if(l.multiple.value){if(S.value)return;(R||V)&&(p.value=P,R&&(S.value=!0))}else(R||V)&&(p.value=P);V&&(w.value=!0)},selectedItem:p,selectedItemText:h,onItemLeave:()=>{i.value?.focus()},itemTextRefCallback:(P,B,M)=>{const V=!w.value&&!M;(Ke(l.modelValue.value,B,l.by)||V)&&(h.value=P)},focusSelectedItem:C,position:o.position,isPositioned:x,searchRef:f}),(P,B)=>(g(),T(n(d),null,{default:u(()=>[v(n(Pn),{"as-child":"",onMountAutoFocus:B[6]||(B[6]=He(()=>{},["prevent"])),onUnmountAutoFocus:B[7]||(B[7]=M=>{s("closeAutoFocus",M),!M.defaultPrevented&&(n(l).triggerElement.value?.focus({preventScroll:!0}),M.preventDefault())})},{default:u(()=>[v(n(go),{"as-child":"","disable-outside-pointer-events":P.disableOutsidePointerEvents,onFocusOutside:B[2]||(B[2]=He(()=>{},["prevent"])),onDismiss:B[3]||(B[3]=M=>n(l).onOpenChange(!1)),onEscapeKeyDown:B[4]||(B[4]=M=>s("escapeKeyDown",M)),onPointerDownOutside:B[5]||(B[5]=M=>s("pointerDownOutside",M))},{default:u(()=>[(g(),T(Vo(P.position==="popper"?Ln:zn),Z({...P.$attrs,...n(q)},{id:n(l).contentId,ref:M=>{if(!M)return;const V=n(ft)(M);V?.hasAttribute("data-reka-popper-content-wrapper")?i.value=V.firstElementChild:i.value=V},role:"listbox","data-state":n(l).open.value?"open":"closed",dir:n(l).dir.value,style:{display:"flex",flexDirection:"column",outline:"none"},onContextmenu:B[0]||(B[0]=He(()=>{},["prevent"])),onPlaced:B[1]||(B[1]=M=>x.value=!0),onKeydown:$}),{default:u(()=>[N(P.$slots,"default")]),_:3},16,["id","data-state","dir","onKeydown"]))]),_:3},8,["disable-outside-pointer-events"])]),_:3})]),_:3}))}}),Fn=Un;const[ht,Nn]=Qe("SelectItemAlignedPosition");var Vn=L({inheritAttrs:!1,__name:"SelectItemAlignedPosition",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["placed"],setup(t,{emit:e}){const o=t,s=e,{getItems:l}=Fe(),d=Ce(),a=Me(),i=O(!1),f=O(!0),y=O(),{forwardRef:r,currentElement:p}=_e(),{viewport:h,selectedItem:x,selectedItemText:w,focusSelectedItem:S}=a;function C(){if(d.triggerElement.value&&d.valueElement.value&&y.value&&p.value&&h?.value&&x?.value&&w?.value){const $=d.triggerElement.value.getBoundingClientRect(),b=p.value.getBoundingClientRect(),q=d.valueElement.value.getBoundingClientRect(),P=w.value.getBoundingClientRect();if(d.dir.value!=="rtl"){const X=P.left-b.left,_=q.left-X,m=$.left-_,k=$.width+m,F=Math.max(k,b.width),ne=window.innerWidth-re,Q=Ct(_,re,Math.max(re,ne-F));y.value.style.minWidth=`${k}px`,y.value.style.left=`${Q}px`}else{const X=b.right-P.right,_=window.innerWidth-q.right-X,m=window.innerWidth-$.right-_,k=$.width+m,F=Math.max(k,b.width),ne=window.innerWidth-re,Q=Ct(_,re,Math.max(re,ne-F));y.value.style.minWidth=`${k}px`,y.value.style.right=`${Q}px`}const B=l().map(X=>X.ref),M=window.innerHeight-re*2,V=h.value.scrollHeight,R=window.getComputedStyle(p.value),ae=Number.parseInt(R.borderTopWidth,10),ce=Number.parseInt(R.paddingTop,10),be=Number.parseInt(R.borderBottomWidth,10),Pe=Number.parseInt(R.paddingBottom,10),K=ae+ce+V+Pe+be,ye=Math.min(x.value.offsetHeight*5,K),we=window.getComputedStyle(h.value),Ie=Number.parseInt(we.paddingTop,10),pe=Number.parseInt(we.paddingBottom,10),G=$.top+$.height/2-re,Se=M-G,fe=x.value.offsetHeight/2,he=x.value.offsetTop+fe,oe=ae+ce+he,xe=K-oe;if(oe<=G){const X=x.value===B.at(-1);y.value.style.bottom="0px";const _=p.value.clientHeight-h.value.offsetTop-h.value.offsetHeight,m=Math.max(Se,fe+(X?pe:0)+_+be),k=oe+m;y.value.style.height=`${k}px`}else{const X=x.value===B[0];y.value.style.top="0px";const m=Math.max(G,ae+h.value.offsetTop+(X?Ie:0)+fe)+xe;y.value.style.height=`${m}px`,h.value.scrollTop=oe-G+h.value.offsetTop}y.value.style.margin=`${re}px 0`,y.value.style.minHeight=`${ye}px`,y.value.style.maxHeight=`${M}px`,s("placed"),requestAnimationFrame(()=>i.value=!0)}}const j=O("");Te(async()=>{await Be(),C(),p.value&&(j.value=window.getComputedStyle(p.value).zIndex)});function W($){$&&f.value===!0&&(C(),S?.(),f.value=!1)}return zo(d.triggerElement,()=>{C()}),Nn({contentWrapper:y,shouldExpandOnScrollRef:i,onScrollButtonChange:W}),($,b)=>(g(),U("div",{ref_key:"contentWrapperElement",ref:y,style:je({display:"flex",flexDirection:"column",position:"fixed",zIndex:j.value})},[v(n(de),Z({ref:n(r),style:{boxSizing:"border-box",maxHeight:"100%"}},{...$.$attrs,...o}),{default:u(()=>[N($.$slots,"default")]),_:3},16)],4))}}),zn=Vn,Hn=L({inheritAttrs:!1,__name:"SelectProvider",props:{context:{type:Object,required:!0}},setup(t){return ao(t.context),so(jn),(o,s)=>N(o.$slots,"default")}}),Wn=Hn;const Kn={key:1};var Yn=L({inheritAttrs:!1,__name:"SelectContent",props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["closeAutoFocus","escapeKeyDown","pointerDownOutside"],setup(t,{emit:e}){const o=t,l=ct(o,e),d=Ce(),a=O();Te(()=>{a.value=new DocumentFragment});const i=O(),f=I(()=>o.forceMount||d.open.value),y=O(f.value);return ge(f,()=>{setTimeout(()=>y.value=f.value)}),(r,p)=>f.value||y.value||i.value?.present?(g(),T(n(yo),{key:0,ref_key:"presenceRef",ref:i,present:f.value},{default:u(()=>[v(Fn,gt(yt({...n(l),...r.$attrs})),{default:u(()=>[N(r.$slots,"default")]),_:3},16)]),_:3},8,["present"])):a.value?(g(),U("div",Kn,[(g(),T(Ho,{to:a.value},[v(Wn,{context:n(d)},{default:u(()=>[N(r.$slots,"default")]),_:3},8,["context"])],8,["to"]))])):ee("v-if",!0)}}),Gn=Yn,Xn=L({__name:"SelectIcon",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(t){return(e,o)=>(g(),T(n(de),{"aria-hidden":"true",as:e.as,"as-child":e.asChild},{default:u(()=>[N(e.$slots,"default",{},()=>[o[0]||(o[0]=D("▼"))])]),_:3},8,["as","as-child"]))}}),Jn=Xn;const[lo,Zn]=Qe("SelectItem");var Qn=L({__name:"SelectItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(t,{emit:e}){const o=t,s=e,{disabled:l}=vt(o),d=Ce(),a=Me(),{forwardRef:i,currentElement:f}=_e(),{CollectionItem:y}=Fe(),r=I(()=>Ke(d.modelValue?.value,o.value,d.by)),p=O(!1),h=O(o.textValue??""),x=jt(void 0,"reka-select-item-text"),w="select.select";async function S(b){if(b.defaultPrevented)return;const q={originalEvent:b,value:o.value};ho(w,C,q)}async function C(b){await Be(),s("select",b),!b.defaultPrevented&&(l.value||(d.onValueChange(o.value),d.multiple.value||d.onOpenChange(!1)))}async function j(b){await Be(),!b.defaultPrevented&&(l.value?a.onItemLeave?.():b.currentTarget?.focus({preventScroll:!0}))}async function W(b){await Be(),!b.defaultPrevented&&b.currentTarget===ue()&&a.onItemLeave?.()}async function $(b){await Be(),!(b.defaultPrevented||a.searchRef?.value!==""&&b.key===" ")&&(Dn.includes(b.key)&&S(b),b.key===" "&&b.preventDefault())}if(o.value==="")throw new Error("A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return Te(()=>{f.value&&a.itemRefCallback(f.value,o.value,o.disabled)}),Zn({value:o.value,disabled:l,textId:x,isSelected:r,onItemTextChange:b=>{h.value=((h.value||b?.textContent)??"").trim()}}),(b,q)=>(g(),T(n(y),{value:{textValue:h.value}},{default:u(()=>[v(n(de),{ref:n(i),role:"option","aria-labelledby":n(x),"data-highlighted":p.value?"":void 0,"aria-selected":r.value,"data-state":r.value?"checked":"unchecked","aria-disabled":n(l)||void 0,"data-disabled":n(l)?"":void 0,tabindex:n(l)?void 0:-1,as:b.as,"as-child":b.asChild,onFocus:q[0]||(q[0]=P=>p.value=!0),onBlur:q[1]||(q[1]=P=>p.value=!1),onPointerup:S,onPointerdown:q[2]||(q[2]=P=>{P.currentTarget.focus({preventScroll:!0})}),onTouchend:q[3]||(q[3]=He(()=>{},["prevent","stop"])),onPointermove:j,onPointerleave:W,onKeydown:$},{default:u(()=>[N(b.$slots,"default")]),_:3},8,["aria-labelledby","data-highlighted","aria-selected","data-state","aria-disabled","data-disabled","tabindex","as","as-child"])]),_:3},8,["value"]))}}),ea=Qn,ta=L({__name:"SelectItemIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(t){const e=t,o=lo();return(s,l)=>n(o).isSelected.value?(g(),T(n(de),Z({key:0,"aria-hidden":"true"},e),{default:u(()=>[N(s.$slots,"default")]),_:3},16)):ee("v-if",!0)}}),oa=ta,na=L({inheritAttrs:!1,__name:"SelectItemText",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(t){const e=t,o=Ce(),s=Me(),l=lo(),{forwardRef:d,currentElement:a}=_e(),i=I(()=>({value:l.value,disabled:l.disabled.value,textContent:a.value?.textContent??l.value?.toString()??""}));return Te(()=>{a.value&&(l.onItemTextChange(a.value),s.itemTextRefCallback(a.value,l.value,l.disabled.value),o.onOptionAdd(i.value))}),Xt(()=>{o.onOptionRemove(i.value)}),(f,y)=>(g(),T(n(de),Z({id:n(l).textId,ref:n(d)},{...e,...f.$attrs}),{default:u(()=>[N(f.$slots,"default")]),_:3},16,["id"]))}}),aa=na,sa=L({__name:"SelectPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(t){const e=t;return(o,s)=>(g(),T(n(_o),gt(yt(e)),{default:u(()=>[N(o.$slots,"default")]),_:3},16))}}),la=sa,ra=L({__name:"SelectScrollButtonImpl",emits:["autoScroll"],setup(t,{emit:e}){const o=e,{getItems:s}=Fe(),l=Me(),d=O(null);function a(){d.value!==null&&(window.clearInterval(d.value),d.value=null)}$e(()=>{s().map(r=>r.ref).find(r=>r===ue())?.scrollIntoView({block:"nearest"})});function i(){d.value===null&&(d.value=window.setInterval(()=>{o("autoScroll")},50))}function f(){l.onItemLeave?.(),d.value===null&&(d.value=window.setInterval(()=>{o("autoScroll")},50))}return Wo(()=>a()),(y,r)=>(g(),T(n(de),Z({"aria-hidden":"true",style:{flexShrink:0}},y.$parent?.$props,{onPointerdown:i,onPointermove:f,onPointerleave:r[0]||(r[0]=()=>{a()})}),{default:u(()=>[N(y.$slots,"default")]),_:3},16))}}),ro=ra,ia=L({__name:"SelectScrollDownButton",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const e=Me(),o=e.position==="item-aligned"?ht():void 0,{forwardRef:s,currentElement:l}=_e(),d=O(!1);return $e(a=>{if(e.viewport?.value&&e.isPositioned?.value){let f=function(){const y=i.scrollHeight-i.clientHeight;d.value=Math.ceil(i.scrollTop)<y};const i=e.viewport.value;f(),i.addEventListener("scroll",f),a(()=>i.removeEventListener("scroll",f))}}),ge(l,()=>{l.value&&o?.onScrollButtonChange(l.value)}),(a,i)=>d.value?(g(),T(ro,{key:0,ref:n(s),onAutoScroll:i[0]||(i[0]=()=>{const{viewport:f,selectedItem:y}=n(e);f?.value&&y?.value&&(f.value.scrollTop=f.value.scrollTop+y.value.offsetHeight)})},{default:u(()=>[N(a.$slots,"default")]),_:3},512)):ee("v-if",!0)}}),ua=ia,da=L({__name:"SelectScrollUpButton",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const e=Me(),o=e.position==="item-aligned"?ht():void 0,{forwardRef:s,currentElement:l}=_e(),d=O(!1);return $e(a=>{if(e.viewport?.value&&e.isPositioned?.value){let f=function(){d.value=i.scrollTop>0};const i=e.viewport.value;f(),i.addEventListener("scroll",f),a(()=>i.removeEventListener("scroll",f))}}),ge(l,()=>{l.value&&o?.onScrollButtonChange(l.value)}),(a,i)=>d.value?(g(),T(ro,{key:0,ref:n(s),onAutoScroll:i[0]||(i[0]=()=>{const{viewport:f,selectedItem:y}=n(e);f?.value&&y?.value&&(f.value.scrollTop=f.value.scrollTop-y.value.offsetHeight)})},{default:u(()=>[N(a.$slots,"default")]),_:3},512)):ee("v-if",!0)}}),ca=da,pa=L({__name:"SelectTrigger",props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(t){const e=t,o=Ce(),{forwardRef:s,currentElement:l}=_e(),d=I(()=>o.disabled?.value||e.disabled);o.contentId||=jt(void 0,"reka-select-content"),Te(()=>{o.onTriggerChange(l.value)});const{getItems:a}=Fe(),{search:i,handleTypeaheadSearch:f,resetTypeahead:y}=oo();function r(){d.value||(o.onOpenChange(!0),y())}function p(h){r(),o.triggerPointerDownPosRef.value={x:Math.round(h.pageX),y:Math.round(h.pageY)}}return(h,x)=>(g(),T(n(bo),{"as-child":"",reference:h.reference},{default:u(()=>[v(n(de),{ref:n(s),role:"combobox",type:h.as==="button"?"button":void 0,"aria-controls":n(o).contentId,"aria-expanded":n(o).open.value||!1,"aria-required":n(o).required?.value,"aria-autocomplete":"none",disabled:d.value,dir:n(o)?.dir.value,"data-state":n(o)?.open.value?"open":"closed","data-disabled":d.value?"":void 0,"data-placeholder":n(qn)(n(o).modelValue?.value)?"":void 0,"as-child":h.asChild,as:h.as,onClick:x[0]||(x[0]=w=>{w?.currentTarget?.focus()}),onPointerdown:x[1]||(x[1]=w=>{if(w.pointerType==="touch")return w.preventDefault();const S=w.target;S.hasPointerCapture(w.pointerId)&&S.releasePointerCapture(w.pointerId),w.button===0&&w.ctrlKey===!1&&(p(w),w.preventDefault())}),onPointerup:x[2]||(x[2]=He(w=>{w.pointerType==="touch"&&p(w)},["prevent"])),onKeydown:x[3]||(x[3]=w=>{const S=n(i)!=="";!(w.ctrlKey||w.altKey||w.metaKey)&&w.key.length===1&&S&&w.key===" "||(n(f)(w.key,n(a)()),n(En).includes(w.key)&&(r(),w.preventDefault()))})},{default:u(()=>[N(h.$slots,"default")]),_:3},8,["type","aria-controls","aria-expanded","aria-required","disabled","dir","data-state","data-disabled","data-placeholder","as-child","as"])]),_:3},8,["reference"]))}}),fa=pa,ma=L({__name:"SelectValue",props:{placeholder:{type:String,required:!1,default:""},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(t){const e=t,{forwardRef:o,currentElement:s}=_e(),l=Ce();Te(()=>{l.valueElement=s});const d=I(()=>{let i=[];const f=Array.from(l.optionsSet.value),y=r=>f.find(p=>Ke(r,p.value,l.by));return Array.isArray(l.modelValue.value)?i=l.modelValue.value.map(r=>y(r)?.textContent??""):i=[y(l.modelValue.value)?.textContent??""],i.filter(Boolean)}),a=I(()=>d.value.length?d.value.join(", "):e.placeholder);return(i,f)=>(g(),T(n(de),{ref:n(o),as:i.as,"as-child":i.asChild,style:{pointerEvents:"none"},"data-placeholder":d.value.length?void 0:e.placeholder},{default:u(()=>[N(i.$slots,"default",{selectedLabel:d.value,modelValue:n(l).modelValue.value},()=>[D(A(a.value),1)])]),_:3},8,["as","as-child","data-placeholder"]))}}),va=ma,ga=L({__name:"SelectViewport",props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const e=t,{nonce:o}=vt(e),s=In(o),l=Me(),d=l.position==="item-aligned"?ht():void 0,{forwardRef:a,currentElement:i}=_e();Te(()=>{l?.onViewportChange(i.value)});const f=O(0);function y(r){const p=r.currentTarget,{shouldExpandOnScrollRef:h,contentWrapper:x}=d??{};if(h?.value&&x?.value){const w=Math.abs(f.value-p.scrollTop);if(w>0){const S=window.innerHeight-re*2,C=Number.parseFloat(x.value.style.minHeight),j=Number.parseFloat(x.value.style.height),W=Math.max(C,j);if(W<S){const $=W+w,b=Math.min(S,$),q=$-b;x.value.style.height=`${b}px`,x.value.style.bottom==="0px"&&(p.scrollTop=q>0?q:0,x.value.style.justifyContent="flex-end")}}}f.value=p.scrollTop}return(r,p)=>(g(),U(le,null,[v(n(de),Z({ref:n(a),"data-reka-select-viewport":"",role:"presentation"},{...r.$attrs,...e},{style:{position:"relative",flex:1,overflow:"hidden auto"},onScroll:y}),{default:u(()=>[N(r.$slots,"default")]),_:3},16),v(n(de),{as:"style",nonce:n(s)},{default:u(()=>p[0]||(p[0]=[D(" /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } ")])),_:1,__:[0]},8,["nonce"])],64))}}),ya=ga;const ha=L({__name:"Select",props:{open:{type:Boolean},defaultOpen:{type:Boolean},defaultValue:{},modelValue:{},by:{type:[String,Function]},dir:{},multiple:{type:Boolean},autocomplete:{},disabled:{type:Boolean},name:{},required:{type:Boolean}},emits:["update:modelValue","update:open"],setup(t,{emit:e}){const l=ct(t,e);return(d,a)=>(g(),T(n(Mn),Z({"data-slot":"select"},n(l)),{default:u(i=>[N(d.$slots,"default",gt(yt(i)))]),_:3},16))}}),_a=L({inheritAttrs:!1,__name:"SelectContent",props:{forceMount:{type:Boolean},position:{default:"popper"},bodyLock:{type:Boolean},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:["closeAutoFocus","escapeKeyDown","pointerDownOutside"],setup(t,{emit:e}){const o=t,s=e,l=Ye(o,"class"),d=ct(l,s);return(a,i)=>(g(),T(n(la),null,{default:u(()=>[v(n(Gn),Z({"data-slot":"select-content"},{...a.$attrs,...n(d)},{class:n(ve)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--reka-select-content-available-height) min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border shadow-md",t.position==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",o.class)}),{default:u(()=>[v(n(Da)),v(n(ya),{class:We(n(ve)("p-1",t.position==="popper"&&"h-[var(--reka-select-trigger-height)] w-full min-w-[var(--reka-select-trigger-width)] scroll-my-1"))},{default:u(()=>[N(a.$slots,"default")]),_:3},8,["class"]),v(n(Ea))]),_:3},16,["class"])]),_:3}))}});const Bt=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ba=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,o,s)=>s?s.toUpperCase():o.toLowerCase()),wa=t=>{const e=ba(t);return e.charAt(0).toUpperCase()+e.slice(1)},Sa=(...t)=>t.filter((e,o,s)=>!!e&&e.trim()!==""&&s.indexOf(e)===o).join(" ").trim(),$t=t=>t==="";var ze={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};const xa=({name:t,iconNode:e,absoluteStrokeWidth:o,"absolute-stroke-width":s,strokeWidth:l,"stroke-width":d,size:a=ze.width,color:i=ze.stroke,...f},{slots:y})=>it("svg",{...ze,...f,width:a,height:a,stroke:i,"stroke-width":$t(o)||$t(s)||o===!0||s===!0?Number(l||d||ze["stroke-width"])*24/Number(a):l||d||ze["stroke-width"],class:Sa("lucide",f.class,...t?[`lucide-${Bt(wa(t))}-icon`,`lucide-${Bt(t)}`]:["lucide-icon"])},[...e.map(r=>it(...r)),...y.default?[y.default()]:[]]);const et=(t,e)=>(o,{slots:s,attrs:l})=>it(xa,{...l,...o,iconNode:e,name:t},s);const ka=et("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const io=et("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const Ta=et("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);const Ca=et("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),Pa={class:"absolute right-2 flex size-3.5 items-center justify-center"},Ia=L({__name:"SelectItem",props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){const e=t,o=Ye(e,"class"),s=Ue(o);return(l,d)=>(g(),T(n(ea),Z({"data-slot":"select-item"},n(s),{class:n(ve)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e.class)}),{default:u(()=>[z("span",Pa,[v(n(oa),null,{default:u(()=>[N(l.$slots,"indicator-icon",{},()=>[v(n(ka),{class:"size-4"})])]),_:3})]),v(n(aa),null,{default:u(()=>[N(l.$slots,"default")]),_:3})]),_:3},16,["class"]))}}),Ea=L({__name:"SelectScrollDownButton",props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){const e=t,o=Ye(e,"class"),s=Ue(o);return(l,d)=>(g(),T(n(ua),Z({"data-slot":"select-scroll-down-button"},n(s),{class:n(ve)("flex cursor-default items-center justify-center py-1",e.class)}),{default:u(()=>[N(l.$slots,"default",{},()=>[v(n(io),{class:"size-4"})])]),_:3},16,["class"]))}}),Da=L({__name:"SelectScrollUpButton",props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){const e=t,o=Ye(e,"class"),s=Ue(o);return(l,d)=>(g(),T(n(ca),Z({"data-slot":"select-scroll-up-button"},n(s),{class:n(ve)("flex cursor-default items-center justify-center py-1",e.class)}),{default:u(()=>[N(l.$slots,"default",{},()=>[v(n(Ta),{class:"size-4"})])]),_:3},16,["class"]))}}),qa=L({__name:"SelectTrigger",props:{disabled:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},size:{default:"default"}},setup(t){const e=t,o=Ye(e,"class","size"),s=Ue(o);return(l,d)=>(g(),T(n(fa),Z({"data-slot":"select-trigger","data-size":t.size},n(s),{class:n(ve)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e.class)}),{default:u(()=>[N(l.$slots,"default"),v(n(Jn),{"as-child":""},{default:u(()=>[v(n(io),{class:"size-4 opacity-50"})]),_:1})]),_:3},16,["data-size","class"]))}}),Ba=L({__name:"SelectValue",props:{placeholder:{},asChild:{type:Boolean},as:{}},setup(t){const e=t;return(o,s)=>(g(),T(n(va),Z({"data-slot":"select-value"},e),{default:u(()=>[N(o.$slots,"default")]),_:3},16))}}),$a=L({__name:"Spinner",props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){const e=t;return(o,s)=>(g(),T(n(Ca),{role:"status","aria-label":"Loading",class:We(n(ve)("size-4 animate-spin",e.class))},null,8,["class"]))}}),Ma={class:"space-y-4"},Ra={key:0,class:"pointer-events-none absolute inset-0 z-10"},Aa={class:"flex flex-wrap items-center justify-center gap-3 text-xs text-muted-foreground"},Oa={class:"max-w-40 truncate",translate:"no"},La={class:"font-medium text-foreground tabular-nums"},ja=.24,Ua="#94a3b8",Fa=288,Na=L({__name:"ProjectLineChart",props:{series:{},tooltipLabels:{},tickIndexes:{},xLabels:{}},setup(t){const e=t,o={bottom:32,left:56,right:28,top:8},s={left:8,right:18},l=[0,void 0],d=Ko({selector:"html",attribute:"class",storageKey:"app-color-mode"}),a=new Intl.DateTimeFormat("en-US",{day:"numeric",month:"short"}),i=new Intl.DateTimeFormat("en-US",{month:"short"}),f=Yo("chartRoot"),{width:y}=Go(f),r=mt({datumIndex:null,pointerY:null}),p=I(()=>e.xLabels.map((_,m)=>({index:m,label:e.tooltipLabels?.[m]??_,values:Object.fromEntries(e.series.map(k=>[k.label,k.points[m]??0]))}))),h=I(()=>e.xLabels.map((_,m)=>Se(_,m,e.xLabels.length))),x=I(()=>e.series.map(_=>({..._,color:xe(_.color),total:_.points.reduce((m,k)=>m+k,0)})).sort((_,m)=>m.total-_.total)),w=I(()=>x.value.map(_=>m=>m.values[_.label]??0)),S=I(()=>Object.fromEntries(x.value.map(_=>[_.label,{color:_.color,label:_.label}]))),C=I(()=>x.value.map(_=>`
2
+ <linearGradient id="${fe(_.label)}" x1="0" y1="0" x2="0" y2="1">
3
+ <stop offset="0%" stop-color="${_.color}" stop-opacity="0.42" />
4
+ <stop offset="100%" stop-color="${_.color}" stop-opacity="0.07" />
5
+ </linearGradient>
6
+ `).join("")),j=I(()=>p.value.length>0&&x.value.length>0),W=I(()=>[0,Math.max(e.xLabels.length-1,0)]),$=I(()=>o.left),b=I(()=>o.top),q=I(()=>Math.max(y.value-o.left-o.right,0)),P=I(()=>Math.max(Fa-o.top-o.bottom,0)),B=I(()=>b.value+P.value),M=I(()=>Math.max(q.value-s.left-s.right,0)),V=I(()=>Math.max(...p.value.map(_=>Object.values(_.values).reduce((m,k)=>m+k,0)),0)),R=I(()=>{if(r.datumIndex===null||r.pointerY===null)return null;const _=p.value[r.datumIndex];if(!_||q.value<=0||P.value<=0)return null;const m=e.xLabels.length<=1?0:r.datumIndex/(e.xLabels.length-1),k=$.value+s.left+m*M.value,F=he(r.pointerY,b.value,B.value),Q=(P.value<=0?0:1-(F-b.value)/P.value)*V.value;return{x:k,xLabel:_.label,y:F,yLabel:me(Q)}}),ae=I(()=>{if(e.tickIndexes&&e.tickIndexes.length>0)return e.tickIndexes;const _=e.xLabels.length,m=_>12?5:1;return e.xLabels.map((k,F)=>F).filter(k=>k===0||k===_-1||k%m===0)});function ce(_){return _?.index??0}function be(_,m){const k=x.value[m];return k?`url(#${fe(k.label)})`:"#2563eb"}function Pe(_,m){return x.value[m]?.color??"#2563eb"}function K(_,m){return x.value[m]?.color??"#2563eb"}function ye(_){return _ instanceof Date?"":h.value[_]??""}function we(_){return _ instanceof Date?"":me(_)}function Ie(_){if(!_)return"";const m=x.value.map(k=>({...k,value:_.values[k.label]??0})).sort((k,F)=>F.value-k.value);return`
7
+ <div class="grid min-w-48 gap-2 rounded-md border bg-background px-3 py-2 text-xs shadow-lg">
8
+ <div class="font-medium text-foreground">${oe(_.label)}</div>
9
+ <div class="grid gap-1 text-muted-foreground">
10
+ ${m.map(k=>`
11
+ <div class="flex items-center justify-between gap-4">
12
+ <span class="flex min-w-0 items-center gap-2">
13
+ <span class="size-2 shrink-0 rounded-sm" style="background-color: ${k.color}"></span>
14
+ <span class="truncate">${oe(k.label)}</span>
15
+ </span>
16
+ <span class="font-mono font-medium text-foreground">${me(k.value)}</span>
17
+ </div>
18
+ `).join("")}
19
+ </div>
20
+ </div>
21
+ `}function pe(_){const m=f.value?.getBoundingClientRect();if(!m)return;const k=_.clientX-m.left,F=_.clientY-m.top,ne=$.value+q.value,Q=$.value+s.left,Ne=ne-s.right;if(k<$.value||k>ne||F<b.value||F>B.value||M.value<=0||e.xLabels.length===0){G();return}const Ae=he((k-Q)/Math.max(Ne-Q,1),0,1),Ee=e.xLabels.length<=1?0:Math.round(Ae*(e.xLabels.length-1));r.datumIndex=Ee,r.pointerY=F}function G(){r.datumIndex=null,r.pointerY=null}function Se(_,m,k){const F=new Date(_);if(Number.isNaN(F.getTime()))return _;const ne=m===0||m===k-1;return k>=90&&!ne&&F.getDate()===1?i.format(F):a.format(F)}function fe(_){return`project-line-${_.replace(/[^a-z0-9]+/gi,"-").toLowerCase()}`}function he(_,m,k){return Math.min(Math.max(_,m),k)}function oe(_){return _.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function xe(_){if(d.value!=="dark")return _;const m=Re(_);return m!==null&&m<ja?Ua:_}function Re(_){const m=_.trim().replace(/^#/,""),k=m.length===3?m.split("").map(Ve=>`${Ve}${Ve}`).join(""):m;if(!/^[\da-f]{6}$/i.test(k))return null;const F=Number.parseInt(k.slice(0,2),16)/255,ne=Number.parseInt(k.slice(2,4),16)/255,Q=Number.parseInt(k.slice(4,6),16)/255,Ne=X(F),Ae=X(ne),Ee=X(Q);return .2126*Ne+.7152*Ae+.0722*Ee}function X(_){return _<=.03928?_/12.92:((_+.055)/1.055)**2.4}return(_,m)=>{const k=To;return g(),U("div",Ma,[z("div",{ref_key:"chartRoot",ref:f,class:"relative",onPointerleave:G,onPointermove:pe},[v(k,{class:"h-72 w-full",config:n(S)},{default:u(()=>[v(n(wo),{"auto-margin":!1,data:n(p),height:288,margin:o,padding:s,"svg-defs":n(C),"x-domain":n(W),"y-domain":l},{default:u(()=>[v(n(So),{color:be,"curve-type":"monotoneX",line:!0,"line-color":Pe,"line-width":2,opacity:.82,x:ce,y:n(w)},null,8,["y"]),v(n(St),{"grid-line":!1,"tick-format":ye,"tick-padding":10,"tick-text-hide-overlapping":!0,"tick-text-width":56,"tick-values":n(ae),type:"x"},null,8,["tick-values"]),v(n(St),{"num-ticks":4,"tick-format":we,type:"y"}),n(j)?(g(),T(n(xo),{key:0})):ee("",!0),n(j)?(g(),T(n(ko),{key:1,color:K,template:Ie,x:ce,"y-stacked":n(w)},null,8,["y-stacked"])):ee("",!0)]),_:1},8,["data","svg-defs","x-domain"])]),_:1},8,["config"]),n(R)?(g(),U("div",Ra,[z("div",{class:"absolute border-l border-dashed border-border/80",style:je({height:`${n(P)}px`,left:`${n(R).x}px`,top:`${n(b)}px`})},null,4),z("div",{class:"absolute border-t border-dashed border-border/80",style:je({left:`${n($)}px`,top:`${n(R).y}px`,width:`${n(q)}px`})},null,4),z("div",{class:"absolute rounded-sm bg-foreground px-2 py-1 text-[11px] font-medium text-background shadow-sm",style:je({left:`${n(R).x}px`,top:`${n(B)+6}px`,transform:"translateX(-50%)"})},A(n(R).xLabel),5),z("div",{class:"absolute rounded-sm bg-foreground px-2 py-1 text-[11px] font-medium text-background shadow-sm",style:je({left:`${Math.max(n($)-8,0)}px`,top:`${n(R).y}px`,transform:"translate(-100%, -50%)"})},A(n(R).yLabel),5)])):ee("",!0)],544),z("div",Aa,[(g(!0),U(le,null,ie(n(x),F=>(g(),U("div",{key:F.label,class:"flex items-center gap-2"},[z("span",{class:"size-2.5 rounded-sm",style:je({backgroundColor:F.color})},null,4),z("span",Oa,A(F.label),1),z("span",La,A(n(me)(F.total)),1)]))),128))])])}}}),Va=Object.assign(Na,{__name:"DashboardProjectLineChart"}),Mt=["#2563eb","#f97316","#0891b2","#7c3aed","#16a34a","#dc2626","#64748b"],za=["claudeCode","codex","gemini"],Ha={claudeCode:{aiIcon:"claude_code",color:"#d97757",label:"Claude Code"},codex:{aiIcon:"codex",color:"#111827",label:"Codex"},gemini:{aiIcon:"gemini",color:"#0ea5e9",label:"Gemini"}},_t=za.map(t=>({...Ha[t],value:t})),Wa=Object.fromEntries(_t.map(t=>[t.value,t])),Ka=[{label:"All",value:"all"},..._t];function Rt(t){return Wa[t]}function dt(t){const e=new Date;return Array.from({length:t},(o,s)=>{const l=new Date(e);return l.setHours(0,0,0,0),l.setDate(e.getDate()-(t-1-s)),Ft(Nt(l))})}function Ya(t){return t.map((e,o)=>({date:new Date(e),index:o})).filter(({date:e,index:o})=>o===0||o===t.length-1?!0:Number.isFinite(e.getTime())&&e.getUTCDate()===1).map(({index:e})=>e)}function Ga(t){const e=co(t);return[{detail:`${H(e.totalTokens)} total tokens in this project`,icon:"solar:cpu-line-duotone",name:"Total Tokens",trend:"project total",trendTone:"neutral",value:me(e.totalTokens)},{detail:`${te(e.costUSD)} total project spend`,icon:"lucide:wallet",name:"Total Spend",trend:"all time",trendTone:"neutral",value:te(e.costUSD)},{detail:`${H(e.sessions)} sessions across all tools`,icon:"lucide:messages-square",name:"Sessions",trend:"all tools",trendTone:"neutral",value:String(e.sessions)},{detail:`${H(e.cachedInputTokens)} of ${H(e.inputTokens)} input tokens were served from cache`,icon:"lucide:database-zap",name:"Cache Hit Rate",trend:`${me(e.cachedInputTokens)} cached`,trendTone:"neutral",value:Ut(e.inputTokens>0?e.cachedInputTokens/e.inputTokens:0)},{detail:`${te(e.costUSD)} across ${H(e.sessions)} sessions`,icon:"lucide:circle-dollar-sign",name:"Avg Session Cost",trend:"per session",trendTone:"neutral",value:te(e.sessions>0?e.costUSD/e.sessions:0)}]}function Xa(t,e){const o=co(t),[s="",l=""]=dt(2).slice().reverse(),d=e.find(h=>h.date===s),a=e.find(h=>h.date===l),i=Ot(t,s),f=Ot(t,l),y=xt(d?.totalTokens??0,a?.totalTokens??0,me),r=xt(d?.costUSD??0,a?.costUSD??0,te),p=Po(i,f);return[{detail:`${H(d?.totalTokens??0)} tokens used today`,icon:"solar:cpu-line-duotone",name:"Today Tokens",trend:y.trend,trendTone:y.trendTone,value:me(d?.totalTokens??0)},{detail:`${te(d?.costUSD??0)} spent today`,icon:"lucide:wallet",name:"Today Spend",trend:r.trend,trendTone:r.trendTone,value:te(d?.costUSD??0)},{detail:`${H(i)} sessions recorded today`,icon:"lucide:messages-square",name:"Today Sessions",trend:p.label,trendTone:p.tone,value:String(i)},{detail:`${te(o.costUSD)} total project spend`,icon:"lucide:receipt-text",name:"Total Spend",trend:"all time",trendTone:"neutral",value:te(o.costUSD)},{detail:`${H(o.sessions)} total sessions for this platform`,icon:"lucide:list-checks",name:"Sessions",trend:"project total",trendTone:"neutral",value:String(o.sessions)},{detail:`${H(o.cachedInputTokens)} of ${H(o.inputTokens)} input tokens were served from cache`,icon:"lucide:database-zap",name:"Cache Hit Rate",trend:`${me(o.cachedInputTokens)} cached`,trendTone:"neutral",value:Ut(o.inputTokens>0?o.cachedInputTokens/o.inputTokens:0)},{detail:`${te(o.costUSD)} across ${H(o.sessions)} sessions`,icon:"lucide:circle-dollar-sign",name:"Avg Session Cost",trend:"per session",trendTone:"neutral",value:te(o.sessions>0?o.costUSD/o.sessions:0)}]}function At(t,e){const o=new Set(e),s=t.filter(a=>o.has(a.date)),d=Co(s.flatMap(a=>Object.keys(a.models))).map(a=>({model:a,totalTokens:s.reduce((i,f)=>i+(f.models[a]?.totalTokens??0),0)})).sort((a,i)=>i.totalTokens-a.totalTokens||a.model.localeCompare(i.model)).map(a=>a.model).map((a,i)=>({color:Mt[i%Mt.length],label:a,points:e.map(f=>t.find(y=>y.date===f)?.models[a]?.totalTokens??0)}));return{labels:e,series:d}}function Ja(t,e){const o=es(e);return t.map(s=>({cacheTokens:H(s.cachedInputTokens),cost:te(s.costUSD),inputTokens:H(s.inputTokens),label:s.date,models:Object.keys(s.models).sort((l,d)=>l.localeCompare(d)).join(", ")||"-",outputTokens:H(s.outputTokens),reasoningTokens:H(s.reasoningOutputTokens),sessions:String(o.get(s.date)??0),tokens:H(s.totalTokens)}))}function uo(t,e){return{cacheTokens:H(t.cachedInputTokens),cost:te(t.costUSD),duration:t.duration||"-",id:`${e}:${t.sessionId}`,inputTokens:H(t.inputTokens),model:t.models?.join(", ")||t.model||"unknown",outputTokens:H(t.outputTokens),platform:e,reasoningTokens:H(t.reasoningOutputTokens),sessionId:t.sessionId,startedAt:ts(t.startedAt),threadName:t.threadName,tokens:H(t.tokenTotal)}}function Za(t,e){return t.map(o=>uo(o,e))}function co(t){return t.reduce((e,o)=>({cachedInputTokens:e.cachedInputTokens+o.cachedInputTokens,costUSD:e.costUSD+o.costUSD,inputTokens:e.inputTokens+o.inputTokens,outputTokens:e.outputTokens+o.outputTokens,reasoningOutputTokens:e.reasoningOutputTokens+o.reasoningOutputTokens,sessions:e.sessions+1,totalTokens:e.totalTokens+o.tokenTotal}),{cachedInputTokens:0,costUSD:0,inputTokens:0,outputTokens:0,reasoningOutputTokens:0,sessions:0,totalTokens:0})}function Qa(t){return t.reduce((e,o)=>({costUSD:e.costUSD+o.costUSD,sessions:e.sessions+1,totalTokens:e.totalTokens+o.tokenTotal}),{costUSD:0,sessions:0,totalTokens:0})}function es(t){return t.reduce((e,o)=>{const s=po(o.startedAt);return s&&e.set(s,(e.get(s)??0)+1),e},new Map)}function po(t){if(!t)return"";const e=new Date(t);return Number.isFinite(e.getTime())?Ft(Nt(e)):""}function ts(t){if(!t)return"-";const e=new Date(t);return Number.isFinite(e.getTime())?Io(e):"-"}function Ot(t,e){return t.filter(o=>po(o.startedAt)===e).length}const os={class:"flex items-center gap-2"},ns=L({__name:"ProjectSessionTable",props:{items:{},pageSize:{default:10}},setup(t){const e=t,o=se(1),s=I(()=>Math.max(1,Math.ceil(e.items.length/e.pageSize))),l=I(()=>{const a=(Math.min(o.value,s.value)-1)*e.pageSize;return e.items.slice(a,a+e.pageSize)});return ge(()=>e.items,()=>{o.value=1}),(d,a)=>{const i=Ht,f=zt,y=Vt,r=Gt,p=Qt,h=Zt,x=Wt,w=Kt,S=Yt;return g(),U("div",null,[v(w,null,{default:u(()=>[v(y,null,{default:u(()=>[v(f,null,{default:u(()=>[v(i,null,{default:u(()=>[...a[1]||(a[1]=[D("Session ID",-1)])]),_:1}),v(i,null,{default:u(()=>[...a[2]||(a[2]=[D("Tool",-1)])]),_:1}),v(i,null,{default:u(()=>[...a[3]||(a[3]=[D("Model",-1)])]),_:1}),v(i,null,{default:u(()=>[...a[4]||(a[4]=[D("Started",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[5]||(a[5]=[D(" Duration ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[6]||(a[6]=[D(" Input ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[7]||(a[7]=[D(" Output ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[8]||(a[8]=[D(" Reasoning ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[9]||(a[9]=[D(" Cache Read ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[10]||(a[10]=[D(" Tokens ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[11]||(a[11]=[D(" Cost ",-1)])]),_:1})]),_:1})]),_:1}),v(x,null,{default:u(()=>[(g(!0),U(le,null,ie(n(l),C=>(g(),T(f,{key:C.id},{default:u(()=>[v(r,{class:"max-w-72 truncate font-medium font-mono text-xs",title:C.threadName?`${C.sessionId} (${C.threadName})`:C.sessionId,translate:"no"},{default:u(()=>[D(A(C.sessionId),1)]),_:2},1032,["title"]),v(r,null,{default:u(()=>[z("div",os,[v(p,{name:n(Rt)(C.platform).aiIcon},null,8,["name"]),z("span",null,A(n(Rt)(C.platform).label),1)])]),_:2},1024),v(r,{class:"max-w-56 truncate",translate:"no"},{default:u(()=>[D(A(C.model),1)]),_:2},1024),v(r,{class:"whitespace-nowrap"},{default:u(()=>[D(A(C.startedAt),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(C.duration),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(C.inputTokens),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(C.outputTokens),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(C.reasoningTokens),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(C.cacheTokens),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(C.tokens),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(C.cost),1)]),_:2},1024)]),_:2},1024))),128)),t.items.length===0?(g(),T(h,{key:0,colspan:11},{default:u(()=>[...a[12]||(a[12]=[D(" No sessions found. ",-1)])]),_:1})):ee("",!0)]),_:1})]),_:1}),t.items.length>t.pageSize?(g(),T(S,{key:0,page:n(o),"onUpdate:page":a[0]||(a[0]=C=>Ze(o)?o.value=C:null),"page-count":n(s),"page-size":t.pageSize,total:t.items.length},null,8,["page","page-count","page-size","total"])):ee("",!0)])}}}),as=Object.assign(ns,{__name:"DashboardProjectSessionTable"}),ss=L({__name:"ProjectTokenUsageTable",props:{items:{},pageSize:{default:10}},setup(t){const e=t,o=se(1),s=I(()=>Math.max(1,Math.ceil(e.items.length/e.pageSize))),l=I(()=>{const a=(Math.min(o.value,s.value)-1)*e.pageSize;return e.items.slice(a,a+e.pageSize)});return ge(()=>e.items,()=>{o.value=1}),(d,a)=>{const i=Ht,f=zt,y=Vt,r=Gt,p=Zt,h=Wt,x=Kt,w=Yt;return g(),U("div",null,[v(x,null,{default:u(()=>[v(y,null,{default:u(()=>[v(f,null,{default:u(()=>[v(i,null,{default:u(()=>[...a[1]||(a[1]=[D("Period",-1)])]),_:1}),v(i,null,{default:u(()=>[...a[2]||(a[2]=[D("Models",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[3]||(a[3]=[D(" Sessions ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[4]||(a[4]=[D(" Input ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[5]||(a[5]=[D(" Output ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[6]||(a[6]=[D(" Reasoning ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[7]||(a[7]=[D(" Cache Read ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[8]||(a[8]=[D(" Total Tokens ",-1)])]),_:1}),v(i,{class:"text-right"},{default:u(()=>[...a[9]||(a[9]=[D(" Cost ",-1)])]),_:1})]),_:1})]),_:1}),v(h,null,{default:u(()=>[(g(!0),U(le,null,ie(n(l),S=>(g(),T(f,{key:S.label},{default:u(()=>[v(r,{class:"max-w-72 truncate font-medium"},{default:u(()=>[D(A(S.label),1)]),_:2},1024),v(r,{class:"max-w-56 truncate",translate:"no"},{default:u(()=>[D(A(S.models),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(S.sessions),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(S.inputTokens),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(S.outputTokens),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(S.reasoningTokens),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(S.cacheTokens),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(S.tokens),1)]),_:2},1024),v(r,{class:"text-right tabular-nums"},{default:u(()=>[D(A(S.cost),1)]),_:2},1024)]),_:2},1024))),128)),t.items.length===0?(g(),T(p,{key:0,colspan:9},{default:u(()=>[...a[10]||(a[10]=[D(" No token usage found. ",-1)])]),_:1})):ee("",!0)]),_:1})]),_:1}),t.items.length>t.pageSize?(g(),T(w,{key:0,page:n(o),"onUpdate:page":a[0]||(a[0]=S=>Ze(o)?o.value=S:null),"page-count":n(s),"page-size":t.pageSize,total:t.items.length},null,8,["page","page-count","page-size","total"])):ee("",!0)])}}}),ls=Object.assign(ss,{__name:"DashboardProjectTokenUsageTable"}),rt=["meta","daily_trend","model_usage","token_usage","session_list"],rs=30,is=365,us=180,ds=600,cs=45e3,Lt=Ka,Je=_t,ps={dailyRows:[],dailyTokenUsage:[]},fs={dailyTokenUsage:[],monthlyModelUsage:[]},ms={dailyRows:[],monthlyRows:[],sessionRows:[],weeklyRows:[]},vs={sessionRows:[],sessionUsage:[],sessions:[]};function gs(){const t=se(""),e=se("all"),o=se(!1),s=se([]),l=se(""),d=se(null),a=se(null),i=se(null),f=se(null),y=se(null),r=mt({daily_trend:!1,meta:!1,model_usage:!1,overview_cards:!1,session_interactions:!1,session_list:!1,token_usage:!1});let p=0,h=0,x=Promise.resolve();const w=new Map,S=I(()=>`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`),{open:C,send:j,status:W}=Xo(S,{immediate:!1,autoReconnect:{delay:1e3,retries:3},onConnected(){fe()},onDisconnected(){k(new Error("WebSocket connection closed."))},onError(){l.value="WebSocket connection error."},onMessage(c,E){X(E.data)}}),$=I(()=>s.value.map(c=>({id:c.label,name:c.label,path:c.path,type:c.type}))),b=I(()=>rt.some(c=>r[c])),q=I(()=>o.value||b.value||$.value.length===0),P=I(()=>Ae("session_list")),B=I(()=>Object.fromEntries(Lt.map(c=>{const E=Qa(De(c.value).sessions);return[c.value,{cost:te(E.costUSD),label:c.label,sessions:String(E.sessions),tokens:me(E.totalTokens)}]}))),M=I(()=>B.value[e.value]),V=I(()=>[{label:"Tokens",value:M.value.tokens},{label:"Spend",value:M.value.cost},{label:"Sessions",value:M.value.sessions}]),R=I(()=>dt(rs)),ae=I(()=>dt(is)),ce=I(()=>Ya(ae.value)),be=I(()=>Ga(De("all").sessions)),Pe=I(()=>Ja(Ee("all").dailyTokenUsage,De("all").sessions)),K=I(()=>Je.flatMap(c=>De(c.value).sessions.map(E=>({platform:c.value,session:E}))).sort((c,E)=>Date.parse(E.session.startedAt)-Date.parse(c.session.startedAt)).map(({platform:c,session:E})=>uo(E,c))),ye=I(()=>R.value),we=I(()=>ye.value),Ie=I(()=>Je.map(c=>({color:c.color,label:c.label,points:bt(c.value,ye.value)}))),pe=I(()=>At(Ve("all").dailyTokenUsage,R.value)),G=I(()=>Object.fromEntries(Je.map(c=>{const E=ae.value,Y=At(Ve(c.value).dailyTokenUsage,E);return[c.value,{modelLabels:Y.labels,modelSeries:Y.series,modelTickIndexes:ce.value,dayRows:Eo(De(c.value).sessions),monthRows:tt(c.value).monthlyRows,overviewCards:Xa(De(c.value).sessions,Ee(c.value).dailyTokenUsage),sessionRows:tt(c.value).sessionRows,sessionTableRows:Za(De(c.value).sessions,c.value),trendLabels:E,trendSeries:[{color:c.color,label:c.label,points:bt(c.value,E)}],trendTickIndexes:ce.value,trendTooltipLabels:E,weekRows:tt(c.value).weeklyRows}]})));Te(()=>{C()}),Zo(()=>{k(new Error("Project dashboard disposed."))}),ge(t,c=>{Se(),c||Q()}),Jo(t,c=>{c&&he(c)},{debounce:us,maxWait:ds});function Se(){p+=1,Q(),l.value=""}async function fe(){return o.value=!0,l.value="",xe({type:"project"}).then(c=>{s.value=c;const E=c.find(Y=>Y.label===t.value);t.value=E?.label??c[0]?.label??""}).catch(c=>{l.value=c.message}).finally(()=>{o.value=!1})}async function he(c){const E=$.value.find(J=>J.id===c);if(!E){Q();return}const Y=p+1;p=Y,Q(),await oe(E,rt,0,Y)}async function oe(c,E,Y,J){if(Y>=E.length||J!==p)return;const qe=E[Y];r[qe]=!0;try{const Oe=await xe({module:qe,path:c.path,project:c.id,type:"project_data"});if(J!==p||Oe.label!==c.id)return;Ne(Oe)}catch(Oe){if(J!==p)return;l.value=Oe instanceof Error?Oe.message:"Failed to load project module."}finally{J===p&&(r[qe]=!1)}await oe(c,E,Y+1,J)}function xe(c){const E=x.then(()=>Re(c));return x=E.catch(()=>{}),E}function Re(c){if(W.value!=="OPEN")return Promise.reject(new Error("WebSocket is not connected."));const E=m();return new Promise((Y,J)=>{const qe=window.setTimeout(()=>{w.delete(E),J(new Error("WebSocket request timed out."))},cs);w.set(E,{reject:ot=>{window.clearTimeout(qe),J(ot)},requestId:E,resolve:ot=>{window.clearTimeout(qe),Y(ot)}}),j(JSON.stringify({...c,requestId:E}))||(window.clearTimeout(qe),w.delete(E),J(new Error("Failed to send WebSocket request.")))})}function X(c){if(typeof c!="string")return;const E=_(c);if(!E)return;if(F(E)){k(new Error(E.message));return}if(!ne(E))return;const Y=w.get(E.requestId);Y&&(w.delete(E.requestId),Y.resolve(E.data))}function _(c){try{return JSON.parse(c)}catch{return null}}function m(){return h+=1,`${Date.now()}-${h}`}function k(c){for(const E of w.values())E.reject(c);w.clear()}function F(c){if(!c||typeof c!="object")return!1;const E=c;return E.type==="error"&&typeof E.message=="string"}function ne(c){if(!c||typeof c!="object")return!1;const E=c;return typeof E.requestId=="string"&&"data"in E}function Q(){d.value=null,a.value=null,i.value=null,f.value=null,y.value=null;for(const c of rt)r[c]=!1}function Ne(c){if(c.module==="meta"){d.value=c.data;return}if(c.module==="daily_trend"){a.value=c.data;return}if(c.module==="model_usage"){i.value=c.data;return}if(c.module==="token_usage"){f.value=c.data;return}c.module==="session_list"&&(y.value=c.data)}function Ae(c){return c==="meta"?d.value!==null:c==="daily_trend"?a.value!==null:c==="model_usage"?i.value!==null:c==="token_usage"?f.value!==null:c==="session_list"?y.value!==null:!1}function Ee(c){return a.value?.[c]??ps}function Ve(c){return i.value?.[c]??fs}function tt(c){return f.value?.[c]??ms}function De(c){return y.value?.[c]??vs}function bt(c,E){const Y=new Map(Ee(c).dailyTokenUsage.map(J=>[J.date,J.totalTokens]));return E.map(J=>Y.get(J)??0)}return{activeScopeItems:V,activeTab:e,allDailyUsageRows:Pe,allModelChart:pe,allOverviewCards:be,allSessionRows:K,catalogLoading:o,dailySeries:Ie,dailyTooltipLabels:we,dailyTrendLabels:ye,isModuleLoaded:Ae,isProjectModuleLoading:b,isProjectSelectDisabled:q,isScopeReady:P,loadingModules:r,metaModule:d,platformTabs:Je,platformViews:G,projects:$,selectedProjectId:t,tabSummaries:B,tabs:Lt,websocketError:l}}const ys={class:"relative flex flex-col border-b z-10 pb-5 mb-5"},hs={class:"container mx-auto flex flex-col gap-3"},_s={class:"relative flex justify-between items-stretch"},bs={key:0,class:"flex items-center gap-2 text-xs text-muted-foreground"},ws={class:"flex justify-between items-center"},Ss={class:"min-w-0 flex-1"},xs={class:"flex flex-col items-start gap-1.5"},ks={class:"w-full flex justify-between items-center"},Ts={class:"truncate text-sm font-medium"},Cs={key:1,class:"block truncate text-xs text-muted-foreground tabular-nums"},Ps={class:"grid grid-cols-3 gap-4"},Is={key:1,class:"truncate text-sm font-semibold tabular-nums"},Es={class:"truncate text-xs font-medium uppercase tracking-wide text-muted-foreground"},Ds={key:0,class:"text-xs text-destructive"},qs={key:1,class:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-5 md:col-span-12"},Bs={class:"md:col-span-12"},$s={key:0,class:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4 xl:grid-cols-7"},Ms={key:1,class:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4 xl:grid-cols-7"},js=L({__name:"project",setup(t){const{activeScopeItems:e,activeTab:o,allDailyUsageRows:s,allModelChart:l,allOverviewCards:d,allSessionRows:a,dailySeries:i,dailyTooltipLabels:f,dailyTrendLabels:y,isModuleLoaded:r,isProjectModuleLoading:p,isProjectSelectDisabled:h,isScopeReady:x,platformTabs:w,platformViews:S,projects:C,selectedProjectId:j,tabSummaries:W,tabs:$,websocketError:b}=gs();return(q,P)=>{const B=Ba,M=qa,V=Ia,R=_a,ae=ha,ce=$a,be=Qo,Pe=Qt,K=ln,ye=on,we=tn,Ie=Bo,pe=Va,G=$o,Se=as,fe=ls,he=qo,oe=nn,xe=Mo,Re=an,X=Do,_=sn;return g(),T(_,{modelValue:n(o),"onUpdate:modelValue":P[1]||(P[1]=m=>Ze(o)?o.value=m:null)},{default:u(()=>[z("div",ys,[z("div",hs,[z("div",_s,[z("div",{class:We(n(ve)("flex items-center gap-4","before:content-[' '] before:absolute","before:w-1 before:h-full","before:rounded-full","before:bg-amber-500"))},[v(ae,{modelValue:n(j),"onUpdate:modelValue":P[0]||(P[0]=m=>Ze(j)?j.value=m:null),disabled:n(h)},{default:u(()=>[v(M,{"aria-label":"Select Project",class:We(n(ve)("bg-transparent dark:bg-transparent! border-0 px-0 py-0 font-semibold","tracking-tight shadow-none focus-visible:ring-0","ml-4"))},{default:u(()=>[v(B,{placeholder:"Choose project"})]),_:1},8,["class"]),v(R,null,{default:u(()=>[(g(!0),U(le,null,ie(n(C),m=>(g(),T(V,{key:m.id,value:m.id},{default:u(()=>[D(A(m.name),1)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["modelValue","disabled"]),n(p)?(g(),U("div",bs,[v(ce,{class:"size-3.5"}),P[2]||(P[2]=z("span",null,"Switching project...",-1))])):ee("",!0)],2)]),z("div",ws,[v(we,{"aria-label":"Project platform scope",class:"flex h-auto justify-start bg-transparent gap-5"},{default:u(()=>[(g(!0),U(le,null,ie(n($),m=>(g(),T(ye,{key:m.value,"aria-label":m.label,value:m.value,class:We(["flex justify-start gap-3 shadow-none",n(ve)("data-[state=active]:border","data-[state=active]:border-dashed","data-[state=active]:border-amber-500","data-[state=active]:bg-transparent")])},{default:u(()=>[m.value==="all"?(g(),T(be,{key:0,"aria-hidden":"true",class:"size-4 text-muted-foreground",mode:"svg",name:"lucide:layout-dashboard"})):(g(),T(Pe,{key:1,class:"flex items-center [&_svg]:size-5!",name:m.aiIcon},null,8,["name"])),z("div",Ss,[z("div",xs,[z("div",ks,[z("span",Ts,A(m.label),1)]),n(x)?(g(),U("span",Cs,A(n(W)[m.value].tokens)+" tokens ",1)):(g(),T(K,{key:0,class:"h-3 w-20"}))])])]),_:2},1032,["aria-label","value","class"]))),128))]),_:1}),z("div",Ps,[(g(!0),U(le,null,ie(n(e),m=>(g(),U("div",{key:m.label,class:"flex flex-col items-start gap-3 rounded-md border border-dotted px-3 py-2"},[n(x)?(g(),U("p",Is,A(m.value),1)):(g(),T(K,{key:0,class:"h-5 w-16"})),z("p",Es,A(m.label),1)]))),128))])]),n(b)?(g(),U("p",Ds,A(n(b)),1)):ee("",!0)])]),v(X,null,{default:u(()=>[v(oe,{class:"m-0",value:"all"},{default:u(()=>[v(he,null,{default:u(()=>[n(r)("session_list")?(g(),T(Ie,{key:0,cards:n(d),class:"md:col-span-12 lg:grid-cols-5"},null,8,["cards"])):(g(),U("div",qs,[(g(),U(le,null,ie(5,m=>v(K,{key:m,class:"h-28 rounded-md"})),64))])),v(G,{class:"md:col-span-12",description:"Recent usage by provider",icon:"lucide:activity",title:"Daily Token Trend"},{default:u(()=>[n(r)("model_usage")?(g(),T(pe,{key:0,series:n(i),"tooltip-labels":n(f),"x-labels":n(y)},null,8,["series","tooltip-labels","x-labels"])):(g(),T(K,{key:1,class:"h-80 w-full rounded-md"}))]),_:1}),v(G,{class:"md:col-span-12",description:"Usage by model",icon:"solar:cpu-line-duotone",title:"Model Usage"},{default:u(()=>[n(r)("model_usage")?(g(),T(pe,{key:0,series:n(l).series,"tooltip-labels":n(l).labels,"x-labels":n(l).labels},null,8,["series","tooltip-labels","x-labels"])):(g(),T(K,{key:1,class:"h-80 w-full rounded-md"}))]),_:1}),v(G,{class:"md:col-span-12",description:"Sessions in this project",icon:"lucide:messages-square",title:"Session Statistics"},{default:u(()=>[n(r)("session_list")?(g(),T(Se,{key:0,items:n(a)},null,8,["items"])):(g(),T(K,{key:1,class:"h-72 w-full rounded-md"}))]),_:1}),v(G,{class:"md:col-span-12",description:"Daily model activity by token type, cache reads, total usage, and cost",icon:"lucide:calendar-days",title:"Daily Token Usage"},{default:u(()=>[n(r)("daily_trend")?(g(),T(fe,{key:0,items:n(s)},null,8,["items"])):(g(),T(K,{key:1,class:"h-72 w-full rounded-md"}))]),_:1})]),_:1})]),_:1}),(g(!0),U(le,null,ie(n(w),m=>(g(),T(oe,{key:m.value,value:m.value,class:"m-0"},{default:u(()=>[v(he,null,{default:u(()=>[z("div",Bs,[n(r)("daily_trend")&&n(r)("session_list")?(g(),U("div",$s,[(g(!0),U(le,null,ie(n(S)[m.value].overviewCards,k=>(g(),T(xe,{key:k.name,detail:k.detail,icon:k.icon,name:k.name,trend:k.trend,"trend-tone":k.trendTone,value:k.value},null,8,["detail","icon","name","trend","trend-tone","value"]))),128))])):(g(),U("div",Ms,[(g(),U(le,null,ie(7,k=>v(K,{key:k,class:"h-28 rounded-md"})),64))]))]),v(G,{description:`${m.label} token usage within the current project`,class:"md:col-span-12",icon:"lucide:chart-area",title:"Token Trend"},{default:u(()=>[n(r)("daily_trend")?(g(),T(pe,{key:0,series:n(S)[m.value].trendSeries,"tick-indexes":n(S)[m.value].trendTickIndexes,"tooltip-labels":n(S)[m.value].trendTooltipLabels,"x-labels":n(S)[m.value].trendLabels},null,8,["series","tick-indexes","tooltip-labels","x-labels"])):(g(),T(K,{key:1,class:"h-80 w-full rounded-md"}))]),_:2},1032,["description"]),v(G,{description:`${m.label} model trend within the current project`,class:"md:col-span-12",icon:"solar:cpu-line-duotone",title:"Model Usage Trend"},{default:u(()=>[n(r)("daily_trend")?(g(),T(pe,{key:0,series:n(S)[m.value].modelSeries,"tick-indexes":n(S)[m.value].modelTickIndexes,"tooltip-labels":n(S)[m.value].modelLabels,"x-labels":n(S)[m.value].modelLabels},null,8,["series","tick-indexes","tooltip-labels","x-labels"])):(g(),T(K,{key:1,class:"h-80 w-full rounded-md"}))]),_:2},1032,["description"]),n(r)("token_usage")&&n(r)("session_list")?(g(),T(Re,{key:0,class:"md:col-span-12","daily-items":n(S)[m.value].dayRows,"monthly-items":n(S)[m.value].monthRows,"product-name":m.label,"session-items":n(S)[m.value].sessionRows,"weekly-items":n(S)[m.value].weekRows},null,8,["daily-items","monthly-items","product-name","session-items","weekly-items"])):(g(),T(K,{key:1,class:"h-72 rounded-md md:col-span-12"})),v(G,{description:`${m.label} sessions in the current project`,class:"md:col-span-12",icon:"lucide:list-tree",title:"Session List"},{default:u(()=>[n(r)("session_list")?(g(),T(Se,{key:0,items:n(S)[m.value].sessionTableRows},null,8,["items"])):(g(),T(K,{key:1,class:"h-72 w-full rounded-md"}))]),_:2},1032,["description"])]),_:2},1024)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["modelValue"])}}});export{js as default};
@@ -0,0 +1,25 @@
1
+ import{I as ne,S as ve,C as be,f as ue,z as he,A as ye,_ as xe,g as $,n as z}from"./4bxbFgue.js";import{z as ae,a1 as ke,a2 as _e,o as i,B as q,w as K,a as n,b as R,D as l,I as Y,c as b,S as U,t as m,K as A,J as I,h as s,a4 as ce,a8 as $e,Y as te}from"./CBNzCW3N.js";const we={key:0,class:"pointer-events-none absolute inset-0 z-10"},Te={class:"mt-4 flex flex-wrap items-center justify-center gap-3 text-xs text-muted-foreground"},Me={class:"font-medium text-foreground tabular-nums"},Ce=288,De=ae({name:"StatisticalAnalysisModelUsagePanel",__name:"ModelUsagePanel",props:{monthlyItems:{},year:{}},setup(H){const g=H,B=["#2563eb","#f97316","#0891b2","#8b5cf6","#059669","#f43f5e"],k={bottom:32,left:56,right:12,top:8},F=[0,void 0],S=ke("chartRoot"),{width:P}=_e(S),w=ce(null),d=ce(null),T=s(()=>g.year??ge(g.monthlyItems)??new Date().getFullYear()),f=s(()=>Array.from({length:12},(e,r)=>{const u=`${r+1}`.padStart(2,"0");return`${T.value}-${u}`})),N=s(()=>[0,Math.max(f.value.length-1,0)]),p=s(()=>f.value.map((e,r)=>r)),G=s(()=>g.monthlyItems.filter(e=>e.month.startsWith(`${T.value}-`))),J=s(()=>Array.from(new Set(G.value.map(e=>e.model)))),j=s(()=>f.value.map((e,r)=>{const u=Object.fromEntries(J.value.map(c=>[c,G.value.find(v=>v.month===e&&v.model===c)?.tokenTotal??0]));return{month:e,monthIndex:r,tokensByModel:u,totalTokens:Object.values(u).reduce((c,v)=>c+v,0)}})),_=s(()=>J.value.map((e,r)=>{const u=ee(r),c=j.value.reduce((v,X)=>v+(X.tokensByModel[e]??0),0);return{color:u,model:e,totalLabel:$(c),totalTokens:c}}).sort((e,r)=>r.totalTokens-e.totalTokens)),O=s(()=>_.value.map(e=>r=>r.tokensByModel[e.model]??0)),Q=s(()=>Object.fromEntries(_.value.map(e=>[e.model,{color:e.color,label:e.model}]))),Z=s(()=>_.value.map(e=>`
2
+ <linearGradient id="${re(e.model)}" x1="0" y1="0" x2="0" y2="1">
3
+ <stop offset="0%" stop-color="${e.color}" stop-opacity="0.45" />
4
+ <stop offset="100%" stop-color="${e.color}" stop-opacity="0.08" />
5
+ </linearGradient>
6
+ `).join("")),V=s(()=>j.value.length>0&&_.value.length>0),L=s(()=>k.left),M=s(()=>k.top),C=s(()=>Math.max(P.value-k.left-k.right,0)),D=s(()=>Math.max(Ce-k.top-k.bottom,0)),E=s(()=>M.value+D.value),t=s(()=>Math.max(...j.value.map(e=>e.totalTokens),0)),a=s(()=>{if(w.value===null||d.value===null)return null;const e=j.value[w.value];if(!e||C.value<=0||D.value<=0)return null;const r=f.value.length<=1?0:w.value/(f.value.length-1),u=L.value+r*C.value,c=le(d.value,M.value,E.value),X=(D.value<=0?0:1-(c-M.value)/D.value)*t.value;return{x:u,xLabel:me(e.month),y:c,yLabel:$(X)}});function h(e){return e.monthIndex}function o(e,r){const u=_.value[r];return u?`url(#${re(u.model)})`:ee(0)}function W(e,r){return _.value[r]?.color??ee(0)}function y(e,r){return _.value[r]?.color??ee(0)}function x(e){const r=_.value.map(u=>({...u,tokenTotal:e.tokensByModel[u.model]??0})).sort((u,c)=>c.tokenTotal-u.tokenTotal);return`
7
+ <div class="grid min-w-48 gap-2 rounded-md border bg-background px-3 py-2 text-xs shadow-lg">
8
+ <div class="font-medium text-foreground">${oe(e.month)} ${e.month.slice(0,4)}</div>
9
+ <div class="grid gap-1 text-muted-foreground">
10
+ ${r.map(u=>`
11
+ <div class="flex items-center justify-between gap-4">
12
+ <span class="flex items-center gap-2">
13
+ <span class="size-2 rounded-sm" style="background-color: ${u.color}"></span>
14
+ ${fe(u.model)}
15
+ </span>
16
+ <span class="font-mono font-medium text-foreground">${$(u.tokenTotal)}</span>
17
+ </div>
18
+ `).join("")}
19
+ </div>
20
+ <div class="flex justify-between gap-4 border-t pt-2 text-muted-foreground">
21
+ <span>Total</span>
22
+ <span class="font-mono font-semibold text-foreground">${$(e.totalTokens)}</span>
23
+ </div>
24
+ </div>
25
+ `}function ie(e){if(e instanceof Date)return"";const r=f.value[e];return r?oe(r):""}function de(e){return e instanceof Date?"":$(e)}function oe(e){const[r,u]=e.split("-"),c=new Date(Number(r),Number(u)-1,1);return new Intl.DateTimeFormat("en-US",{month:"short"}).format(c)}function me(e){return`${oe(e)} ${e.slice(0,4)}`}function pe(e){const r=S.value?.getBoundingClientRect();if(!r)return;const u=e.clientX-r.left,c=e.clientY-r.top,v=L.value+C.value;if(u<L.value||u>v||c<M.value||c>E.value||C.value<=0||!V.value||f.value.length===0){se();return}const X=le((u-L.value)/Math.max(C.value,1),0,1);w.value=f.value.length<=1?0:Math.round(X*(f.value.length-1)),d.value=c}function se(){w.value=null,d.value=null}function ge(e){const u=[...e].sort((c,v)=>v.month.localeCompare(c.month))[0]?.month?.split("-")[0];return u?Number(u):null}function re(e){return`model-usage-${e.replace(/[^a-z0-9]+/gi,"-").toLowerCase()}`}function ee(e){return B[e%B.length]??"#2563eb"}function le(e,r,u){return Math.min(Math.max(e,r),u)}function fe(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}return(e,r)=>{const u=xe,c=ne;return i(),q(c,{description:"Monthly token trends by model",icon:"solar:cpu-line-duotone",title:"Model Usage"},{default:K(()=>[n("div",{ref_key:"chartRoot",ref:S,class:"relative",onPointerleave:se,onPointermove:pe},[R(u,{class:"h-72 w-full",config:l(Q)},{default:K(()=>[R(l(ve),{"auto-margin":!1,data:l(j),height:288,margin:k,"svg-defs":l(Z),"x-domain":l(N),"y-domain":F},{default:K(()=>[R(l(be),{color:o,line:!0,"line-color":W,"line-width":2.5,opacity:.82,x:h,y:l(O)},null,8,["y"]),R(l(ue),{"grid-line":!1,"tick-format":ie,"tick-values":l(p),type:"x"},null,8,["tick-values"]),R(l(ue),{"num-ticks":4,"tick-format":de,type:"y"}),l(V)?(i(),q(l(he),{key:0})):Y("",!0),l(V)?(i(),q(l(ye),{key:1,color:y,template:x,x:h,"y-stacked":l(O)},null,8,["y-stacked"])):Y("",!0)]),_:1},8,["data","svg-defs","x-domain"])]),_:1},8,["config"]),l(a)?(i(),b("div",we,[n("div",{class:"absolute border-l border-dashed border-border/80",style:U({height:`${l(D)}px`,left:`${l(a).x}px`,top:`${l(M)}px`})},null,4),n("div",{class:"absolute border-t border-dashed border-border/80",style:U({left:`${l(L)}px`,top:`${l(a).y}px`,width:`${l(C)}px`})},null,4),n("div",{class:"absolute rounded-sm bg-foreground px-2 py-1 text-[11px] font-medium text-background shadow-sm",style:U({left:`${l(a).x}px`,top:`${l(E)+6}px`,transform:"translateX(-50%)"})},m(l(a).xLabel),5),n("div",{class:"absolute rounded-sm bg-foreground px-2 py-1 text-[11px] font-medium text-background shadow-sm",style:U({left:`${Math.max(l(L)-8,0)}px`,top:`${l(a).y}px`,transform:"translate(-100%, -50%)"})},m(l(a).yLabel),5)])):Y("",!0)],544),n("div",Te,[(i(!0),b(I,null,A(l(_),v=>(i(),b("div",{key:v.model,class:"flex items-center gap-2"},[n("span",{class:"size-2.5 rounded-sm",style:U({backgroundColor:v.color})},null,4),n("span",null,m(v.model),1),n("span",Me,m(v.totalLabel),1)]))),128))])]),_:1})}}}),ut=Object.assign(De,{__name:"StatisticalAnalysisModelUsagePanel"}),Se={class:"space-y-3"},Le={class:"flex flex-col flex-1"},Ue={class:"truncate text-sm font-medium tracking-tight"},Be={class:"mt-1 truncate text-xs text-muted-foreground"},Pe={class:"text-right"},je={class:"text-xs font-medium tracking-tight tabular-nums"},Ae={class:"mt-1 flex items-center justify-end gap-1"},Ie=ae({name:"StatisticalAnalysisProjectUsagePanel",__name:"ProjectUsagePanel",props:{items:{}},setup(H){const g=H,B=[{trend:"+12.4%",trendTone:"up"},{trend:"-8.2%",trendTone:"down"},{trend:"+22.1%",trendTone:"up"},{trend:"+15.8%",trendTone:"up"},{trend:"-3.4%",trendTone:"down"},{trend:"+9.6%",trendTone:"up"},{trend:"-5.1%",trendTone:"down"},{trend:"+4.7%",trendTone:"up"}],k=s(()=>g.items.slice(0,6).map((d,T)=>{const f=B[T]??{trend:"+0.0%",trendTone:"up"};return{...d,shortName:w(d.label),trend:f.trend,trendTone:f.trendTone}}));function F(d){return d==="down"?"lucide:trending-down":"lucide:trending-up"}function S(d){return d==="down"?"size-3 text-red-500":"size-3 text-emerald-600 dark:text-emerald-400"}function P(d){return d==="down"?"text-sm font-medium text-red-500 tabular-nums":"text-sm font-medium text-emerald-600 dark:text-emerald-400 tabular-nums"}function w(d){return d.split(/[-_\s]+/).filter(Boolean).slice(0,2).map(T=>T[0]?.toUpperCase()??"").join("")}return(d,T)=>{const f=$e,N=ne;return i(),q(N,{description:"Best performers by spend",icon:"lucide:folder-git-2",title:"Top Projects"},{default:K(()=>[n("div",Se,[(i(!0),b(I,null,A(l(k),p=>(i(),b("div",{key:p.repository,class:"flex justify-between items-center gap-3 rounded-md transition-colors"},[n("div",Le,[n("p",Ue,m(p.label),1),n("p",Be,m(p.detail),1)]),n("div",Pe,[n("p",je,m(p.value),1),n("div",Ae,[R(f,{class:te(S(p.trendTone)),mode:"svg",name:F(p.trendTone)},null,8,["class","name"]),n("span",{class:te(P(p.trendTone))},m(p.trend),3)])])]))),128))])]),_:1})}}}),ct=Object.assign(Ie,{__name:"StatisticalAnalysisProjectUsagePanel"}),Ne={class:"mb-4 grid grid-cols-1 gap-3 sm:grid-cols-3"},ze={class:"text-xs text-muted-foreground"},Re={class:"mt-1 text-lg font-semibold tabular-nums"},Ye={class:"border-b pb-4"},He=["aria-label","tabindex"],Fe={class:"sr-only"},Ge={key:0,class:"pointer-events-none absolute bottom-full left-1/2 z-30 mb-2 hidden min-w-40 -translate-x-1/2 gap-1 rounded-md border bg-popover px-2.5 py-1.5 text-xs text-popover-foreground shadow-md group-hover:grid group-focus-visible:grid",role:"tooltip"},Oe={class:"font-medium"},Ve={key:0,class:"flex items-center justify-between gap-4 text-muted-foreground"},Ee={class:"font-mono font-medium text-foreground"},We={class:"flex items-center justify-between gap-4 text-muted-foreground"},Xe={class:"font-mono font-medium text-foreground"},qe={key:1,class:"flex items-center justify-between gap-4 text-muted-foreground"},Ke={class:"font-mono font-medium text-foreground"},Je={class:"mt-4 flex items-center justify-between gap-4"},Qe={class:"text-xs text-muted-foreground"},Ze={class:"flex items-center gap-1 text-xs text-muted-foreground"},et={class:"mt-4 grid grid-cols-1 gap-3 sm:grid-cols-3"},tt={class:"text-xs text-muted-foreground"},ot={class:"mt-1 flex items-center justify-between gap-2"},nt={class:"text-sm font-semibold"},at={class:"text-xs text-muted-foreground"},st=ae({name:"UsageHeatmapPanel",__name:"UsageHeatmapPanel",props:{heatMetric:{default:"tokens"},items:{},title:{}},setup(H){const g=H,B=["bg-zinc-100 dark:bg-zinc-800/80","bg-emerald-50 dark:bg-emerald-950/70","bg-emerald-100 dark:bg-emerald-900/70","bg-teal-100 dark:bg-teal-900/75","bg-teal-200 dark:bg-teal-800/80","bg-cyan-200 dark:bg-cyan-800/85","bg-cyan-300 dark:bg-cyan-700/90","bg-sky-300 dark:bg-sky-600/90","bg-sky-400 dark:bg-sky-500/95","bg-blue-500 dark:bg-blue-400"],k=[...B],F=[{key:"sun",label:"S",row:"1"},{key:"mon",label:"M",row:"2"},{key:"tue",label:"T",row:"3"},{key:"wed",label:"W",row:"4"},{key:"thu",label:"T",row:"5"},{key:"fri",label:"F",row:"6"},{key:"sat",label:"S",row:"7"}],S=s(()=>M(new Date)),P=s(()=>{const t=M(S.value);return t.setDate(t.getDate()-364),t}),w=s(()=>`${D(P.value)} - ${D(S.value)}`),d=s(()=>g.heatMetric==="cost"?"spend":"tokens"),T=s(()=>`${w.value} ${d.value} heatmap. Darker cells mean higher daily ${d.value}.`),f=s(()=>`Colored by daily ${d.value}`),N=s(()=>{const t=new Map(g.items.map(a=>[C(L(a.date)),a]));return Array.from({length:365},(a,h)=>{const o=M(P.value);return o.setDate(o.getDate()+h),{date:o,usage:t.get(C(o))}})}),p=s(()=>{const t=Math.max(...N.value.map(a=>g.heatMetric==="cost"?a.usage?.costUSD??0:a.usage?.totalTokens??0));return N.value.map(a=>{const h=a.usage?.costUSD??0,o=a.usage?.totalTokens??0,W=g.heatMetric==="cost"?h:o;return{colorClass:B[E(W,t)],costLabel:z(h),costUSD:h,date:D(a.date),hasUsage:!!a.usage,tokenLabel:$(o),totalTokens:o}})}),G=s(()=>{const t=P.value.getDay(),a=(7-(t+p.value.length)%7)%7,h=Array.from({length:t},(y,x)=>({column:String(Math.floor(x/7)+2),colorClass:"bg-transparent",costLabel:"",date:"",isBlank:!0,key:`blank-${x}`,row:String(x%7+1),title:"No date",tokenLabel:""})),o=p.value.map((y,x)=>({...y,column:String(Math.floor((t+x)/7)+2),isBlank:!1,key:y.date,row:String((t+x)%7+1),title:g.heatMetric==="cost"?`${y.date}: ${z(y.costUSD)} / ${$(y.totalTokens)} tokens`:`${y.date}: ${$(y.totalTokens)} tokens / ${z(y.costUSD)}`})),W=Array.from({length:a},(y,x)=>({column:String(Math.floor((t+p.value.length+x)/7)+2),colorClass:"bg-transparent",costLabel:"",date:"",isBlank:!0,key:`trailing-blank-${x}`,row:String((t+p.value.length+x)%7+1),title:"No date",tokenLabel:""}));return[...h,...o,...W]}),J=s(()=>Math.ceil(G.value.length/7)),j=s(()=>({gridTemplateColumns:`max-content repeat(${J.value}, minmax(0, 1fr))`,gridTemplateRows:"repeat(7, minmax(0, 1fr))"})),_=s(()=>p.value.filter(t=>t.hasUsage).slice(-3)),O=s(()=>p.value.filter(t=>t.hasUsage).length),Q=s(()=>z(p.value.reduce((t,a)=>t+a.costUSD,0))),Z=s(()=>$(p.value.reduce((t,a)=>t+a.totalTokens,0))),V=s(()=>g.heatMetric==="cost"?[{key:"year-cost",label:"Year Spend",value:Q.value},{key:"year-tokens",label:"Year Tokens",value:Z.value},{key:"active-days",label:"Active Days",value:String(O.value)}]:[{key:"year-tokens",label:"Year Tokens",value:Z.value},{key:"year-cost",label:"Year Spend",value:Q.value},{key:"active-days",label:"Active Days",value:String(O.value)}]);function L(t){return new Date(t)}function M(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function C(t){const a=t.getFullYear(),h=`${t.getMonth()+1}`.padStart(2,"0"),o=`${t.getDate()}`.padStart(2,"0");return`${a}-${h}-${o}`}function D(t){return new Intl.DateTimeFormat("en-US",{day:"2-digit",month:"short",year:"numeric"}).format(t)}function E(t,a){return t<=0||a<=0?0:Math.min(9,Math.max(1,Math.ceil(t/a*9)))}return(t,a)=>{const h=ne;return i(),q(h,{description:T.value,icon:"lucide:calendar-days",title:g.title},{default:K(()=>[n("div",Ne,[(i(!0),b(I,null,A(V.value,o=>(i(),b("div",{key:o.key,class:"rounded-md border px-3 py-2"},[n("p",ze,m(o.label),1),n("p",Re,m(o.value),1)]))),128))]),n("div",Ye,[n("div",{class:"grid w-full gap-1",style:U(j.value)},[(i(),b(I,null,A(F,o=>n("span",{key:o.key,class:"flex items-center justify-end pr-1 text-[10px] text-muted-foreground",style:U({gridColumn:"1",gridRow:o.row})},m(o.label),5)),64)),(i(!0),b(I,null,A(G.value,o=>(i(),b("div",{key:o.key,class:te(["group relative aspect-square w-full max-w-3 justify-self-center rounded-sm border border-black/5 outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring/50 dark:border-white/10",[o.colorClass,{"border-transparent opacity-0":o.isBlank}]]),"aria-label":o.title,style:U({gridColumn:o.column,gridRow:o.row}),tabindex:o.isBlank?-1:0},[n("span",Fe,m(o.title),1),o.isBlank?Y("",!0):(i(),b("div",Ge,[n("span",Oe,m(o.date),1),g.heatMetric==="tokens"?(i(),b("span",Ve,[a[0]||(a[0]=n("span",null,"Tokens",-1)),n("span",Ee,m(o.tokenLabel),1)])):Y("",!0),n("span",We,[a[1]||(a[1]=n("span",null,"Cost",-1)),n("span",Xe,m(o.costLabel),1)]),g.heatMetric==="cost"?(i(),b("span",qe,[a[2]||(a[2]=n("span",null,"Tokens",-1)),n("span",Ke,m(o.tokenLabel),1)])):Y("",!0),a[3]||(a[3]=n("span",{class:"absolute top-full left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rotate-45 border-r border-b border-border bg-popover"},null,-1))]))],14,He))),128))],4),n("div",Je,[n("p",Qe,m(f.value),1),n("div",Ze,[a[4]||(a[4]=n("span",null,"Less",-1)),(i(),b(I,null,A(k,o=>n("span",{key:o,class:te(["size-3 rounded-[2px] border border-black/5 dark:border-white/10",o])},null,2)),64)),a[5]||(a[5]=n("span",null,"More",-1))])])]),n("div",et,[(i(!0),b(I,null,A(_.value,o=>(i(),b("div",{key:o.date,class:"rounded-md border px-3 py-2"},[n("p",tt,m(o.date),1),n("div",ot,[n("span",nt,m(g.heatMetric==="cost"?("formatCurrency"in t?t.formatCurrency:l(z))(o.costUSD):("formatCompactNumber"in t?t.formatCompactNumber:l($))(o.totalTokens)),1),n("span",at,m(g.heatMetric==="cost"?("formatCompactNumber"in t?t.formatCompactNumber:l($))(o.totalTokens):("formatCurrency"in t?t.formatCurrency:l(z))(o.costUSD)),1)])]))),128))])]),_:1},8,["description","title"])}}}),it=Object.assign(st,{__name:"UsageHeatmapPanel"});export{ut as _,ct as a,it as b};