agent-session-inspector 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +157 -65
- package/VERSION +1 -1
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/build-manifest.json +3 -3
- package/app/.next/prerender-manifest.json +5 -5
- package/app/.next/required-server-files.json +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +16 -16
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +19 -18
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
- package/app/.next/server/app/api/analytics/route.js.nft.json +1 -1
- package/app/.next/server/app/api/logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/search/route.js.nft.json +1 -1
- package/app/.next/server/app/api/sessions/[provider]/[id]/reveal/route.js.nft.json +1 -1
- package/app/.next/server/app/api/sessions/[provider]/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +18 -18
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +16 -16
- package/app/.next/server/app/index.segments/_full.segment.rsc +18 -18
- package/app/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/sessions/[provider]/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/sessions/[provider]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0dyq0rc._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0kgkqhn._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0yxic1z._.js +3 -3
- package/app/.next/server/chunks/[root-of-the-server]__10p8y9z._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__1cceere._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__1eclfq8._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__1lz20wm._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__1zdh1mi._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__20epvou._.js +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__1ei65vj._.js +1 -1
- package/app/.next/server/chunks/ssr/_0f8nmc3._.js +1 -1
- package/app/.next/server/chunks/ssr/_0o294sf._.js +1 -1
- package/app/.next/server/chunks/ssr/_0wfo2z0._.js +3 -0
- package/app/.next/server/chunks/ssr/_12__495._.js +1 -1
- package/app/.next/server/chunks/ssr/src_app_page_tsx_1chiuah._.js +1 -1
- package/app/.next/server/chunks/ssr/src_app_sessions_[provider]_[id]_page_tsx_0uf635h._.js +3 -3
- package/app/.next/server/middleware-build-manifest.js +3 -3
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/{10x4j1wts3xx2.js → 0mihgzifdany7.js} +1 -1
- package/app/.next/static/chunks/{367imffzz5g8x.css → 0ua57-s0meis5.css} +2 -2
- package/app/.next/static/chunks/{31hdfb4m8lwzz.js → 1fe2mxakoweia.js} +1 -1
- package/app/.next/static/chunks/1uvlni5bd236c.js +6 -0
- package/app/.next/static/chunks/1z_genu21d6mc.js +1 -0
- package/app/.next/static/chunks/3-g9jvt_m-6_4.js +1 -0
- package/app/.next/static/chunks/3xq2kqjs_2byl.css +1 -0
- package/app/CONTRIBUTING.md +21 -2
- package/app/README.md +157 -65
- package/app/bin/agent-session-inspector.mjs +37 -11
- package/app/eslint.config.mjs +1 -0
- package/app/package.json +6 -2
- package/app/pnpm-lock.yaml +271 -0
- package/app/pnpm-workspace.yaml +1 -0
- package/app/scripts/build-cli.mjs +26 -0
- package/app/scripts/demo-data.mjs +48 -1
- package/app/scripts/deploy-docker.sh +6 -2
- package/app/scripts/package-release.sh +3 -1
- package/app/server.js +1 -1
- package/bin/agent-session-inspector.mjs +37 -11
- package/cli/cli.mjs +7612 -0
- package/package.json +5 -2
- package/app/.next/server/chunks/ssr/_1-5v1mi._.js +0 -3
- package/app/.next/static/chunks/1dz8a9ds45tdb.js +0 -6
- package/app/.next/static/chunks/1g3ep2o7fhgpe.css +0 -1
- package/app/.next/static/chunks/2iedud09ou282.js +0 -1
- package/app/.next/static/chunks/2k65elb1vo-2z.js +0 -1
- /package/app/.next/static/{KFq9wlUt8U-Sma3McE5Jw → rpBXcMOzD9z_w4Y9uQJJ-}/_buildManifest.js +0 -0
- /package/app/.next/static/{KFq9wlUt8U-Sma3McE5Jw → rpBXcMOzD9z_w4Y9uQJJ-}/_clientMiddlewareManifest.js +0 -0
- /package/app/.next/static/{KFq9wlUt8U-Sma3McE5Jw → rpBXcMOzD9z_w4Y9uQJJ-}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[40777,a=>{"use strict";var b,c,d,e,f,g,h,i,j,k,l,m=a.i(38742),n=a.i(73895),o=a.i(37303),p=a.i(17693),q=a.i(40762),r=a.i(70627);let s=(0,r.default)("calendar-clock",[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v3",key:"otl347"}],["path",{d:"M21 7.338V5a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h2.338",key:"7hb8p4"}],["path",{d:"M3 9h5.859",key:"numkqi"}],["path",{d:"M8 2v3",key:"1ioesn"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);var t=a.i(35789),u=a.i(21732);let v=(0,r.default)("heart-pulse",[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}],["path",{d:"M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27",key:"auskq0"}]]),w=(0,r.default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);var x=a.i(63611);let y=(0,r.default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);var z=a.i(46539),A=a.i(99570),B=a.i(73221),C=a.i(75083),D=a.i(85259),E=a.i(90892),F=a.i(80701);function G({value:a,onChange:b,options:c,className:d,"aria-label":e}){return(0,m.jsxs)(F.Select,{items:c,value:a,onValueChange:a=>{null!==a&&b(a)},children:[(0,m.jsx)(F.SelectTrigger,{"aria-label":e,className:d,children:(0,m.jsx)(F.SelectValue,{})}),(0,m.jsx)(F.SelectContent,{className:"w-auto min-w-[max(9rem,var(--anchor-width))]",children:(0,m.jsx)(F.SelectGroup,{children:c.map(a=>(0,m.jsx)(F.SelectItem,{value:a.value,children:a.label},a.value))})})]})}var H=a.i(19608),I=a.i(16543),J=a.i(59561),K=a.i(27936),L=a.i(31049),M=a.i(35540),N=a.i(24687),O=a.i(80995),P=a.i(44264);let Q=(0,r.default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);var R=a.i(46623),S=a.i(22598),T=a.i(86304),U=a.i(63167),V=a.i(96538),W=a.i(90075),X=a.i(27855),Y=a.i(80153),Z=a.i(75775),$=a.i(68114);function _({icon:a,value:b,label:c}){return(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[(0,m.jsx)(a,{className:"size-3.5 opacity-70","aria-hidden":!0}),(0,m.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:b.toLocaleString()}),(0,m.jsx)("span",{children:c})]})}function aa({session:a}){let b=(0,W.firstLine)(a.name),c=a.title??b,d=a.title?b:void 0,e=a.health,f=a.totalInputTokens??0,g=a.totalOutputTokens??0,h=a.estimatedCostUSD,i=a.unpricedModels??[],j=null!=h&&(h>0||0===i.length),k=!!a.eventCount||!!a.toolCallCount||!!a.userMessageCount||f+g>0||!!e,l=(0,Y.providerStyle)(a.provider);return(0,m.jsx)(N.default,{href:`/sessions/${a.provider}/${a.id}`,className:"group block min-w-0 rounded-xl focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:(0,m.jsxs)("article",{className:"relative rounded-xl border border-border bg-card px-4 py-3 transition-all duration-150 hover:border-brand/40 hover:shadow-md hover:shadow-foreground/5",children:[(0,m.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,m.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,m.jsxs)("span",{className:(0,$.cn)("mb-1 inline-flex items-center gap-1.5 rounded-full border px-2 py-0.5 text-[11px] font-medium",l.badgeCls),children:[(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 rounded-full",l.dotCls),"aria-hidden":!0}),l.shortLabel]}),(0,m.jsx)("h3",{className:"line-clamp-2 break-words text-sm font-semibold leading-snug text-foreground",children:c??(0,m.jsx)("span",{className:"font-normal italic text-muted-foreground",children:"Unnamed session"})}),d&&(0,m.jsx)("p",{className:"mt-0.5 line-clamp-1 break-words text-xs text-muted-foreground",children:d})]}),(0,m.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,m.jsxs)("div",{className:"flex flex-col items-end gap-1",children:[(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,Z.isRunning)(a.updated_at)?(0,m.jsxs)("span",{className:"inline-flex items-center gap-1.5 whitespace-nowrap text-xs font-medium text-emerald-600 dark:text-emerald-400",children:[(0,m.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-emerald-500","aria-hidden":!0}),"running"]}):(0,m.jsx)("span",{className:"whitespace-nowrap text-xs text-muted-foreground",children:(0,W.timeAgo)(a.updated_at)})}),(0,m.jsxs)(D.TooltipContent,{children:["Updated ",(0,W.formatDateTime)(a.updated_at)]})]}),a.client_name&&(0,m.jsx)(T.Badge,{variant:"secondary",className:"hidden text-xs sm:inline-flex",children:a.client_name})]}),(0,m.jsx)(O.ChevronRight,{className:"size-4 shrink-0 text-muted-foreground/40 transition-transform group-hover:translate-x-0.5 group-hover:text-brand","aria-hidden":!0})]})]}),(0,m.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground",children:[a.repository&&(0,m.jsx)("span",{className:"inline-flex min-w-0 items-center gap-1",children:(0,m.jsx)("span",{className:"truncate font-mono text-foreground/80",children:a.repository})}),a.branch&&(0,m.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,m.jsx)(P.GitBranch,{className:"size-3 opacity-70","aria-hidden":!0}),(0,m.jsx)("span",{className:"font-mono",children:a.branch})]}),!a.repository&&a.cwd&&(0,m.jsx)("span",{className:"max-w-full truncate font-mono opacity-80",children:a.cwd})]}),k&&(0,m.jsxs)("div",{className:"mt-2.5 flex flex-wrap items-center gap-x-3 gap-y-1.5 border-t border-border/70 pt-2.5",children:[!!a.userMessageCount&&(0,m.jsx)(_,{icon:Q,value:a.userMessageCount,label:"turns"}),!!a.toolCallCount&&(0,m.jsx)(_,{icon:R.Wrench,value:a.toolCallCount,label:"tools"}),!!a.eventCount&&(0,m.jsx)(_,{icon:S.Zap,value:a.eventCount,label:"events"}),(f+g>0||j||e)&&(0,m.jsxs)("div",{className:"ml-auto flex items-center gap-1.5",children:[e&&(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsx)(U.GradeBadge,{grade:e.grade,className:"h-[22px]"})}),(0,m.jsxs)(D.TooltipContent,{children:["Health ",e.score," · ",X.OUTCOME_LABELS[e.outcome].toLowerCase(),e.signals.filter(a=>"outcome"!==a.id).map(a=>` \xb7 ${X.SIGNAL_INFO[a.id].label.toLowerCase()}`)]})]}),j&&(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsxs)("span",{className:"inline-flex items-center rounded-sm border border-emerald-200 bg-emerald-50 px-1.5 py-0.5 font-mono text-xs text-emerald-700 dark:border-emerald-900 dark:bg-emerald-950/40 dark:text-emerald-300",children:[(0,W.formatCost)(h),i.length>0&&"+"]})}),(0,m.jsxs)(D.TooltipContent,{children:["Estimated cost at API list prices",i.length>0&&` \xb7 excludes ${i.join(", ")}`,null!=a.inheritedCostUSD&&` \xb7 plus ${(0,W.formatCost)(a.inheritedCostUSD)} inherited from the forked session`]})]}),f>0&&(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-sm border border-blue-200 bg-blue-50 px-1.5 py-0.5 font-mono text-xs text-blue-700 dark:border-blue-900 dark:bg-blue-950/40 dark:text-blue-300",children:[(0,m.jsx)(V.InputTokensIcon,{className:"size-3","aria-hidden":!0}),(0,m.jsx)("span",{className:"opacity-70",children:"in"}),(0,W.formatTokens)(f)]})}),(0,m.jsxs)(D.TooltipContent,{children:[f.toLocaleString()," input tokens"]})]}),g>0&&(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-sm border border-indigo-200 bg-indigo-50 px-1.5 py-0.5 font-mono text-xs text-indigo-700 dark:border-indigo-900 dark:bg-indigo-950/40 dark:text-indigo-300",children:[(0,m.jsx)(V.OutputTokensIcon,{className:"size-3","aria-hidden":!0}),(0,m.jsx)("span",{className:"opacity-70",children:"out"}),(0,W.formatTokens)(g)]})}),(0,m.jsxs)(D.TooltipContent,{children:[g.toLocaleString()," output tokens"]})]})]})]})]})})}let ab=(0,r.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);var ac=a.i(32465);let ad=(0,r.default)("text-wrap",[["path",{d:"m16 16-3 3 3 3",key:"117b85"}],["path",{d:"M3 12h14.5a1 1 0 0 1 0 7H13",key:"18xa6z"}],["path",{d:"M3 19h6",key:"1ygdsz"}],["path",{d:"M3 5h18",key:"1u36vt"}]]);var ae=a.i(69876),af=a.i(64151);let ag={error:"text-destructive",warn:"text-amber-600 dark:text-amber-400",info:"text-foreground",debug:"text-muted-foreground"};function ah(a){return a.includes("[ERROR]")?"error":a.includes("[WARN]")?"warn":a.includes("[INFO]")?"info":"debug"}function ai({logs:a,loading:b}){let[c,d]=(0,n.useState)(""),[e,f]=(0,n.useState)(null),[g,h]=(0,n.useState)(null),[i,j]=(0,n.useState)(""),[k,l]=(0,n.useState)(!1),[o,p]=(0,n.useState)(!0),q=e??a[0]?.name??null,r=a.find(a=>a.name===q)?.provider??"copilot",s=null!==q&&g?.name!==q,u=g?.name===q?g.content:"",v=(0,n.useMemo)(()=>{let b=c.trim().toLowerCase();return b?a.filter(a=>a.name.toLowerCase().includes(b)):a},[a,c]);(0,n.useEffect)(()=>{if(!q)return;let a=!1;return(async()=>{try{let b=await fetch(`/api/logs?provider=${encodeURIComponent(r)}&name=${encodeURIComponent(q)}`),c=await b.json();a||h({name:q,content:c.content||""})}catch{a||h({name:q,content:""})}})(),()=>{a=!0}},[q,r]);let w=(0,n.useMemo)(()=>u?u.split("\n"):[],[u]),x=(0,n.useMemo)(()=>{let a=i.trim().toLowerCase();return w.map((a,b)=>({text:a,n:b+1,level:ah(a)})).filter(b=>(!k||"error"===b.level||"warn"===b.level)&&(!a||!!b.text.toLowerCase().includes(a)))},[w,i,k]),y=(0,n.useMemo)(()=>w.filter(a=>"error"===ah(a)).length,[w]);return b?(0,m.jsxs)("div",{className:"grid gap-4 lg:h-[calc(100vh-16rem)] lg:grid-cols-[280px_1fr]",children:[(0,m.jsx)(J.Skeleton,{className:"h-64 lg:h-full"}),(0,m.jsx)(J.Skeleton,{className:"h-[60vh] lg:h-full"})]}):0===a.length?(0,m.jsx)(E.EmptyState,{icon:t.FileText,title:"No log files",description:"Nothing has been written to ~/.copilot/logs yet."}):(0,m.jsxs)("div",{className:"grid gap-4 lg:h-[calc(100vh-16rem)] lg:min-h-[420px] lg:grid-cols-[280px_1fr]",children:[(0,m.jsxs)("div",{className:"flex min-h-0 max-h-64 flex-col gap-2 lg:max-h-none",children:[(0,m.jsx)(I.SearchInput,{value:c,onChange:d,placeholder:"Filter files…","aria-label":"Filter log files"}),(0,m.jsx)(ae.ScrollArea,{className:"min-h-0 flex-1 rounded-xl border border-border",children:(0,m.jsxs)("div",{className:"space-y-1 p-2",children:[v.map(a=>{let b=q===a.name;return(0,m.jsxs)("button",{onClick:()=>{f(a.name),j(""),l(!1)},"aria-current":b,className:(0,$.cn)("w-full rounded-md px-3 py-2 text-left text-xs transition-colors","focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-ring",b?"bg-primary text-primary-foreground":"text-foreground hover:bg-muted"),children:[(0,m.jsx)("div",{className:"truncate font-mono",children:a.name}),(0,m.jsxs)("div",{className:(0,$.cn)("mt-0.5 flex justify-between",b?"text-primary-foreground/70":"text-muted-foreground"),children:[(0,m.jsx)("span",{children:(0,W.formatBytes)(a.size)}),(0,m.jsx)("span",{children:(0,W.timeAgo)(a.mtime)})]})]},a.name)}),0===v.length&&(0,m.jsxs)("p",{className:"px-3 py-6 text-center text-xs text-muted-foreground",children:["No files match “",c,"”"]})]})})]}),(0,m.jsx)("div",{className:"flex min-h-0 h-[60vh] flex-col overflow-hidden rounded-xl border border-border lg:h-auto",children:q?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-b border-border bg-muted/60 px-3 py-2",children:[(0,m.jsx)("span",{className:"min-w-0 truncate font-mono text-xs text-foreground",children:q}),y>0&&(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-sm border border-destructive/30 bg-destructive/10 px-1.5 py-0.5 text-[11px] font-medium text-destructive",children:[(0,m.jsx)(ab,{className:"size-3","aria-hidden":!0}),y," error",1===y?"":"s"]}),(0,m.jsxs)("div",{className:"ml-auto flex w-full items-center gap-1.5 sm:w-auto",children:[(0,m.jsx)(I.SearchInput,{value:i,onChange:j,size:"sm",placeholder:"Filter lines…","aria-label":"Filter log lines",className:"min-w-0 flex-1 sm:w-44 sm:flex-none"}),(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsxs)(B.Toggle,{variant:"outline",size:"sm",pressed:k,onPressedChange:l,className:"bg-background text-muted-foreground aria-pressed:border-destructive/40 aria-pressed:bg-destructive/10 aria-pressed:text-destructive",children:[(0,m.jsx)(ab,{"aria-hidden":!0}),"Problems"]})}),(0,m.jsx)(D.TooltipContent,{children:"Show only errors and warnings"})]}),(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsx)(B.Toggle,{variant:"outline",size:"sm",pressed:o,onPressedChange:p,"aria-label":"Wrap long lines",className:"bg-background text-muted-foreground aria-pressed:text-foreground",children:(0,m.jsx)(ad,{"aria-hidden":!0})})}),(0,m.jsx)(D.TooltipContent,{children:"Wrap long lines"})]}),(0,m.jsx)(af.CopyButton,{value:u,label:"Copy log",size:"sm"})]})]}),(i||k)&&(0,m.jsxs)("div",{className:"border-b border-border bg-background px-3 py-1 text-[11px] text-muted-foreground",children:[x.length.toLocaleString()," of ",w.length.toLocaleString()," lines"]}),(0,m.jsx)(ae.ScrollArea,{className:"min-h-0 flex-1",children:s?(0,m.jsxs)("div",{className:"flex items-center gap-2 p-4 text-sm text-muted-foreground",children:[(0,m.jsx)(ac.Loader2,{className:"size-4 animate-spin","aria-hidden":!0}),"Loading…"]}):0===x.length?(0,m.jsx)("p",{className:"p-6 text-center text-sm text-muted-foreground",children:"No lines match the current filter."}):(0,m.jsx)("div",{className:"p-3 font-mono text-xs",children:x.map(a=>(0,m.jsxs)("div",{className:(0,$.cn)("flex gap-3 rounded-sm px-1 leading-5 hover:bg-muted/60",ag[a.level]),children:[(0,m.jsx)("span",{className:"w-10 shrink-0 select-none text-right text-muted-foreground/40 tabular-nums",children:a.n}),(0,m.jsx)("span",{className:(0,$.cn)("min-w-0 flex-1",o?"whitespace-pre-wrap [overflow-wrap:anywhere]":"whitespace-pre"),children:a.text||" "})]},a.n))})})]}):(0,m.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:"Select a log file to view"})})]})}var aj=a.i(6015);let ak=[{value:"recent",label:"Most recent"},{value:"sessions",label:"Most sessions"},{value:"cost",label:"Highest cost"},{value:"tokens",label:"Most tokens"},{value:"name",label:"Name (A–Z)"}],al=["Project","Sessions","Cost","Input","Output","Tool calls","Last active"],am=a=>(0,W.formatTokens)(a)??"0";function an({projects:a,loading:b,selected:c,onSelect:d}){let[e,f]=(0,n.useState)(""),[g,h]=(0,n.useState)("recent"),i=(0,n.useMemo)(()=>{let b=e.trim().toLowerCase(),c=b?a.filter(a=>a.name.toLowerCase().includes(b)||a.path?.toLowerCase().includes(b)):a;if("recent"===g)return c;let d=[...c];switch(g){case"sessions":return d.sort((a,b)=>b.sessions-a.sessions);case"cost":return d.sort((a,b)=>b.costUSD-a.costUSD);case"tokens":return d.sort((a,b)=>b.inputTokens+b.outputTokens-(a.inputTokens+a.outputTokens));case"name":return d.sort((a,b)=>a.name.localeCompare(b.name))}},[a,e,g]);return b?(0,m.jsx)("div",{className:"space-y-2",children:Array.from({length:6},(a,b)=>(0,m.jsx)(J.Skeleton,{className:"h-12 rounded-xl"},b))}):0===a.length?(0,m.jsx)(E.EmptyState,{icon:u.FolderGit2,title:"No projects yet",description:"Projects appear once Copilot, Claude Code or Codex writes a transcript to your home directory."}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-3",children:[(0,m.jsx)(I.SearchInput,{value:e,onChange:f,placeholder:"Search project or path…","aria-label":"Search projects",className:"w-full max-w-sm"}),(0,m.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:"hidden sm:inline","aria-hidden":!0,children:"Sort"}),(0,m.jsx)(G,{value:g,onChange:h,options:ak,"aria-label":"Sort projects"})]}),(0,m.jsxs)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground",children:[i.length," of ",a.length]})]}),0===i.length?(0,m.jsx)(E.EmptyState,{icon:u.FolderGit2,title:"No matching projects",description:`Nothing matches “${e}”. Try a folder name or part of its path.`,action:(0,m.jsx)(A.Button,{variant:"outline",size:"sm",onClick:()=>f(""),children:"Clear search"})}):(0,m.jsx)("div",{className:"rounded-xl border border-border bg-card",children:(0,m.jsxs)(aj.Table,{className:"min-w-[720px]",children:[(0,m.jsx)(aj.TableHeader,{children:(0,m.jsx)(aj.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:al.map((a,b)=>(0,m.jsx)(aj.TableHead,{className:(0,$.cn)("text-muted-foreground",b>0&&"text-right"),children:a},a))})}),(0,m.jsx)(aj.TableBody,{className:"tabular-nums",children:i.map(a=>(0,m.jsxs)(aj.TableRow,{"data-state":a.name===c?"selected":void 0,children:[(0,m.jsxs)(aj.TableCell,{className:"w-full max-w-0",children:[(0,m.jsx)("button",{type:"button",onClick:()=>d(a.name),className:"block max-w-full truncate rounded-sm text-left font-medium hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:a.name}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[a.providers.map(a=>(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 shrink-0 rounded-full",(0,Y.providerStyle)(a).dotCls),title:(0,Y.providerStyle)(a).shortLabel},a)),(0,m.jsx)("span",{className:"truncate font-mono",title:a.path,children:a.path??"location not recorded"})]})]}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.sessions.toLocaleString()}),(0,m.jsxs)(aj.TableCell,{className:"text-right font-medium",children:[(0,W.formatCost)(a.costUSD),a.unpriced&&"+"]}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:am(a.inputTokens)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:am(a.outputTokens)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.toolCalls.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"whitespace-nowrap text-right text-muted-foreground",children:(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsx)("span",{children:(0,W.timeAgo)(a.lastActive)||"—"})}),(0,m.jsx)(D.TooltipContent,{children:(0,W.formatDateTime)(a.lastActive)})]})})]},a.name))})]})})]})}let ao=(0,r.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);var ap=a.i(4888);function aq(a,b){let c=URL.createObjectURL(new Blob([b],{type:"text/csv"})),d=document.createElement("a");d.href=c,d.download=a,d.click(),URL.revokeObjectURL(c)}function ar({title:a,note:b,action:c,className:d,children:e}){return(0,m.jsxs)("section",{className:(0,$.cn)("min-w-0 rounded-xl border border-border bg-card p-4",d),children:[(0,m.jsxs)("div",{className:"mb-3 flex flex-wrap items-center justify-between gap-2",children:[(0,m.jsxs)("h2",{className:"text-sm font-semibold",children:[a,b&&(0,m.jsx)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:b})]}),c]}),e]})}var as=a.i(45646);let at=(0,r.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);var au=a.i(89560),av=a.i(14574);let aw=[{label:"Anthropic",url:"https://platform.claude.com/docs/en/about-claude/pricing",match:/^claude/},{label:"OpenAI",url:"https://platform.openai.com/docs/pricing",match:/^(gpt|chatgpt|codex|o\d)/},{label:"Google Gemini",url:"https://ai.google.dev/gemini-api/docs/pricing",match:/^gemini/},{label:"xAI",url:"https://docs.x.ai/docs/models",match:/^grok/},{label:"Mistral",url:"https://mistral.ai/pricing",match:/^(mistral|codestral|devstral|magistral|ministral|pixtral)/},{label:"DeepSeek",url:"https://api-docs.deepseek.com/quick_start/pricing",match:/^deepseek/}],ax={label:"OpenRouter",url:"https://openrouter.ai/models"},ay="unknown",az={target:"_blank",rel:"noreferrer"};function aA({children:a}){return(0,m.jsx)("code",{className:"font-mono text-foreground",children:a})}function aB({models:a}){let[b,c]=(0,n.useState)(!1),[d,e]=(0,n.useState)(null),f=(0,n.useRef)("");if(0===a.length)return null;let g=a.length>1,h=a.filter(a=>a!==ay),i=h.length>1,j=d?.overridePath??"~/.agent-session-inspector/pricing.json",k=[...new Set(h.map(a=>d?.keys[a]??a.toLowerCase()))],l=JSON.stringify(Object.fromEntries(k.map(a=>[a,{input:0,output:0,cacheRead:0}])),null,2);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-border bg-muted/40 px-3 py-2 text-xs text-muted-foreground",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-px size-3.5 shrink-0","aria-hidden":!0}),(0,m.jsxs)("p",{className:"min-w-0 flex-1",children:["No price is known for"," ",(0,m.jsx)("span",{className:"font-mono text-foreground",children:a.join(", ")}),", so cost figures leave ",g?"them":"it"," out. Token counts still include ",g?"them":"it","."]}),h.length>0&&(0,m.jsxs)(A.Button,{variant:"outline",size:"xs",onClick:function(){c(!0);let a=h.map(a=>`model=${encodeURIComponent(a)}`).join("&");f.current!==a&&(f.current=a,fetch(`/api/pricing?${a}`).then(a=>a.ok?a.json():null).then(e).catch(()=>e(null)))},"aria-haspopup":"dialog",className:"-my-1 shrink-0",children:[(0,m.jsx)(au.Info,{"aria-hidden":!0}),"Add ",i?"prices":"a price"]})]}),(0,m.jsx)(av.Dialog,{open:b,onOpenChange:c,children:(0,m.jsxs)(av.DialogContent,{className:"sm:max-w-xl",children:[(0,m.jsxs)("div",{className:"space-y-1.5",children:[(0,m.jsxs)(av.DialogTitle,{children:["Add ",i?"the missing prices":"the missing price"]}),(0,m.jsx)(av.DialogDescription,{children:"Costs are estimated from a price table bundled with the app. A model the table does not list is left out of every cost figure until you give it a price in your own override file. Nothing is fetched: you look the price up and enter it once."})]}),(0,m.jsxs)("section",{className:"space-y-2",children:[(0,m.jsx)("h3",{className:"text-xs font-medium text-foreground",children:"1. Find the price"}),(0,m.jsx)("ul",{className:"overflow-hidden rounded-lg border border-border text-xs",children:k.map(a=>{let b=aw.find(b=>b.match.test(a))??{label:ax.label,url:`${ax.url}?q=${encodeURIComponent(a)}`};return(0,m.jsxs)("li",{className:"flex items-center gap-2 border-b border-border/60 px-3 py-2 last:border-b-0",children:[(0,m.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-foreground",children:a}),(0,m.jsxs)("a",{href:b.url,...az,className:"inline-flex shrink-0 items-center gap-1 rounded-sm font-medium text-foreground underline underline-offset-2 hover:text-brand focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:[b.label," pricing",(0,m.jsx)(at,{className:"size-3","aria-hidden":!0})]})]},a)})}),(0,m.jsxs)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:["All price lists:"," ",[...aw,ax].map((a,b)=>(0,m.jsxs)("span",{children:[b>0&&" · ",(0,m.jsx)("a",{href:a.url,...az,className:"text-foreground underline underline-offset-2 hover:text-brand",children:a.label})]},a.label)),". Use the pay-per-token API price in US dollars per million tokens."]})]}),(0,m.jsxs)("section",{className:"space-y-2 border-t border-border pt-3",children:[(0,m.jsx)("h3",{className:"text-xs font-medium text-foreground",children:"2. Add it to pricing.json"}),(0,m.jsxs)("div",{className:"flex items-center gap-1 text-xs leading-relaxed text-muted-foreground",children:[(0,m.jsxs)("p",{className:"min-w-0 flex-1",children:["Create ",(0,m.jsx)(aA,{children:j})," if it does not exist, or add"," ",i?"these entries":"this entry"," to the one you have, and replace the zeros."]}),(0,m.jsx)(af.CopyButton,{value:j,label:"Copy path"})]}),(0,m.jsxs)("div",{className:"relative",children:[(0,m.jsx)("pre",{className:"overflow-x-auto rounded-lg border border-border bg-muted/50 p-3 pr-10 font-mono text-[11px] leading-relaxed text-foreground",children:l}),(0,m.jsx)(af.CopyButton,{value:l,label:"Copy pricing.json",className:"absolute top-1.5 right-1.5"})]}),(0,m.jsxs)("ul",{className:"list-disc space-y-1 pl-4 text-xs leading-relaxed text-muted-foreground",children:[(0,m.jsxs)("li",{children:[(0,m.jsx)(aA,{children:"input"})," and ",(0,m.jsx)(aA,{children:"output"})," are required. ",(0,m.jsx)(aA,{children:"cacheRead"}),","," ",(0,m.jsx)(aA,{children:"cacheWrite"})," and ",(0,m.jsx)(aA,{children:"cacheWrite1h"})," are optional: the first two fall back to the input price, and ",(0,m.jsx)(aA,{children:"cacheWrite1h"})," to"," ",(0,m.jsx)(aA,{children:"cacheWrite"}),"."]}),(0,m.jsxs)("li",{children:["A model you run yourself costs nothing per token: leave ",(0,m.jsx)(aA,{children:"input"})," and"," ",(0,m.jsx)(aA,{children:"output"})," at 0 to count it as free."]}),(0,m.jsxs)("li",{children:["To record a price change, give the model a list of entries and mark the later one with ",(0,m.jsx)(aA,{children:'"from": "YYYY-MM-DD"'}),". Older sessions keep the old price."]})]})]}),(0,m.jsxs)("p",{className:"border-t border-border pt-3 text-xs leading-relaxed text-muted-foreground",children:[(0,m.jsx)("span",{className:"font-medium text-foreground",children:"3. Reload this page."})," The file is read on every load, so no restart is needed. Entries in it also replace the bundled price of any model they name.",h.length<a.length&&(0,m.jsxs)(m.Fragment,{children:[" ","Usage listed as ",(0,m.jsx)(aA,{children:ay})," was recorded without a model name, so it cannot be given a price."]})]})]})})]})}var aC=a.i(84213);let aD={messages:"Messages",sessions:"Sessions",outputTokens:"Output tokens",costUSD:"Cost"},aE=[{value:"7",label:"Last 7 days",days:7},{value:"30",label:"Last 30 days",days:30},{value:"90",label:"Last 90 days",days:90},{value:"365",label:"Last year",days:365},{value:"all",label:"All time",days:null}],aF=()=>({sessions:0,messages:0,toolCalls:0,outputTokens:0,activeMs:0,costUSD:0});function aG(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())}function aH(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate()+b)}function aI(a){let b=String(a.getMonth()+1).padStart(2,"0"),c=String(a.getDate()).padStart(2,"0");return`${a.getFullYear()}-${b}-${c}`}function aJ(a,b){return 0===a.length?0:a[Math.min(a.length-1,Math.floor(b*a.length))]}function aK(){return Array.from({length:7},()=>Array(24).fill(0))}function aL(a){return[...new Set(a.map(a=>a.model).filter(a=>!!a))].sort()}function aM(a){let[b,c]=(0,n.useState)(null),[d,e]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let a=!1;return(async()=>{try{let b=await fetch("/api/analytics");if(!b.ok)throw Error("Request failed");let d=await b.json();if(a)return;c(d),e(!1)}catch{a||e(!0)}})(),()=>{a=!0}},[a]),{sessions:b,error:d}}let aN=["bg-muted","bg-brand/25","bg-brand/50","bg-brand/75","bg-brand"],aO=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function aP(a,b){return a<=0||b<=0?0:Math.max(1,Math.ceil(4*Math.sqrt(a/b)))}function aQ(a,b){if("costUSD"===a)return(0,W.formatCost)(b);let c="outputTokens"===a?(0,W.formatTokens)(b)??"0":b.toLocaleString(),d=aD[a].toLowerCase();return`${c} ${1===b?d.replace(/s$/,""):d}`}function aR({readout:a,hint:b}){return(0,m.jsxs)("div",{className:"mt-3 flex items-center justify-between gap-3 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,$.cn)("truncate",a&&"text-foreground"),"aria-live":"polite",children:a??b}),(0,m.jsxs)("span",{className:"flex shrink-0 items-center gap-1","aria-hidden":!0,children:["Less",aN.map(a=>(0,m.jsx)("span",{className:(0,$.cn)("size-3 rounded-[3px]",a)},a)),"More"]})]})}let aS=a=>a.toLocaleDateString([],{weekday:"short",month:"short",day:"numeric",year:"numeric"});function aT({days:a,metric:b}){let[c,d]=(0,n.useState)(null),e=Math.max(0,...a.map(a=>a[b])),f=[...Array(a[0]?.date.getDay()??0).fill(null),...a],g=[];for(let a=0;a<f.length;a+=7)g.push(f.slice(a,a+7));let h=g.length<=14?20:g.length<=27?16:13,i=-1,j=g.map(a=>{let b=a.find(a=>null!==a);return b&&b.date.getMonth()!==i?(i=b.date.getMonth(),b.date.toLocaleDateString([],{month:"short"})):""});return(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{className:"overflow-x-auto pb-1",children:(0,m.jsxs)("div",{role:"img","aria-label":`${aD[b]} per day over ${a.length} days`,className:"inline-flex gap-[3px]",style:{"--cell":`${h}px`},onMouseLeave:()=>d(null),children:[(0,m.jsx)("div",{className:"mr-1 flex flex-col gap-[3px] pt-[19px] text-[10px] leading-(--cell) text-muted-foreground",children:aO.map((a,b)=>(0,m.jsx)("span",{className:"h-(--cell)",children:b%2==1?a:""},a))}),g.map((a,c)=>(0,m.jsxs)("div",{className:"flex flex-col gap-[3px]",children:[(0,m.jsx)("span",{className:"h-4 w-(--cell) overflow-visible whitespace-nowrap text-[10px] text-muted-foreground",children:j[c]}),a.map((a,c)=>a?(0,m.jsx)("span",{title:`${aS(a.date)}: ${aQ(b,a[b])}`,onMouseEnter:()=>d(`${aS(a.date)} \xb7 ${aQ(b,a[b])}`),className:(0,$.cn)("size-(--cell) rounded-[3px] hover:ring-1 hover:ring-foreground/50",aN[aP(a[b],e)])},a.day):(0,m.jsx)("span",{className:"size-(--cell)"},c))]},c))]})}),(0,m.jsx)(aR,{readout:c,hint:"Hover a day for its count"})]})}let aU=Array.from({length:24},(a,b)=>b),aV=a=>String(a%24).padStart(2,"0");function aW({grid:a,metric:b}){let[c,d]=(0,n.useState)(null),e=Math.max(0,...a.flat());return(0,m.jsxs)("div",{children:[(0,m.jsxs)("div",{role:"img","aria-label":`${aD[b]} by weekday and hour of day`,className:"grid grid-cols-[auto_repeat(24,minmax(0,1fr))] gap-[3px]",onMouseLeave:()=>d(null),children:[(0,m.jsx)("span",{}),aU.map(a=>(0,m.jsx)("span",{className:"text-center text-[10px] text-muted-foreground",children:a%3==0?a:""},a)),a.map((a,c)=>(0,m.jsxs)("div",{className:"contents",children:[(0,m.jsx)("span",{className:"pr-1.5 text-[10px] leading-5 text-muted-foreground",children:aO[c]}),a.map((a,f)=>{let g=`${aO[c]} ${aV(f)}:00–${aV(f+1)}:00 \xb7 ${aQ(b,a)}`;return(0,m.jsx)("span",{title:g,onMouseEnter:()=>d(g),className:(0,$.cn)("h-5 rounded-[3px] hover:ring-1 hover:ring-foreground/50",aN[aP(a,e)])},f)})]},c))]}),(0,m.jsx)(aR,{readout:c,hint:`Times in ${Intl.DateTimeFormat().resolvedOptions().timeZone}`})]})}let aX=a=>a.toLocaleDateString([],{month:"short",day:"numeric"});function aY({weeks:a}){let[b,c]=(0,n.useState)(null),d=Math.max(1,...a.map(a=>a.toolCalls));return(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{role:"img","aria-label":`Tool calls per week over ${a.length} weeks`,className:"flex h-24 items-end gap-[2px] border-b border-border",onMouseLeave:()=>c(null),children:a.map(a=>{let b=`Week of ${aX(a.start)} \xb7 ${a.toolCalls.toLocaleString()} tool calls`;return(0,m.jsx)("div",{title:b,onMouseEnter:()=>c(b),className:"group flex h-full min-w-0 max-w-10 flex-1 items-end",children:(0,m.jsx)("div",{className:"w-full rounded-t bg-brand group-hover:bg-brand/75",style:{height:a.toolCalls>0?`max(2px, ${a.toolCalls/d*100}%)`:0}})},a.start.getTime())})}),(0,m.jsxs)("div",{className:"mt-1.5 flex justify-between gap-3 text-[10px] text-muted-foreground",children:[(0,m.jsx)("span",{className:"shrink-0",children:a.length>0&&aX(a[0].start)}),(0,m.jsx)("span",{className:(0,$.cn)("truncate text-xs",b&&"text-foreground"),"aria-live":"polite",children:b??`peak ${d.toLocaleString()} calls in a week`}),(0,m.jsx)("span",{className:"shrink-0",children:a.length>1&&aX(a[a.length-1].start)})]})]})}let aZ=["messages","sessions","outputTokens","costUSD"].map(a=>({value:a,label:aD[a]})),a$=[{value:"messages",label:"Messages"},{value:"activeMs",label:"Active time"},{value:"outputTokens",label:"Output tokens"},{value:"costUSD",label:"Cost"}],a_=[{value:"servers",label:"Servers"},{value:"tools",label:"Tools"}],a0=[{value:"messages",label:"Messages"},{value:"costUSD",label:"Cost"}],a1=["Agent","Sessions","Cost","Messages","Tool calls","Output","Active","Msgs/min","Tools/min","Top tools"];function a2({reloadToken:a,project:b,onProjectChange:c,projectOptions:d}){let{sessions:e,error:f}=aM(a),[g,h]=(0,n.useState)("90"),[i,j]=(0,n.useState)("all"),[k,l]=(0,n.useState)("all"),[q,r]=(0,n.useState)("messages"),[s,t]=(0,n.useState)("messages"),[u,v]=(0,n.useState)("messages"),[w,x]=(0,n.useState)("messages"),[y,z]=(0,n.useState)("servers"),B=(0,n.useMemo)(()=>({days:aE.find(a=>a.value===g)?.days??null,project:b,provider:i,model:k}),[g,b,i,k]),C=(0,n.useMemo)(()=>e?function(a,b,c=new Date){let d=aG(c),e=null===b.days?null:aH(d,1-b.days).getTime(),f=new Map,g={messages:aK(),sessions:aK(),outputTokens:aK(),costUSD:aK()},h=new Set,i=[],j=new Map,k=new Map,l=new Map,m=new Map,n=new Map,o=d.getTime();for(let c of a){if("all"!==b.provider&&c.provider!==b.provider||"all"!==b.project&&c.project!==b.project||"all"!==b.model&&c.model!==b.model)continue;let a={provider:c.provider,id:c.id,label:c.label,project:c.project,messages:0,toolCalls:0,outputTokens:0,activeMs:0,costUSD:0},d=n.get(c.provider);d||(d={provider:c.provider,...aF(),topTools:[],tools:new Map},n.set(c.provider,d));let p=new Set,q=new Set,r=new Set,s=!1;for(let b of c.activity){if(null!==e&&b.t<e)continue;s=!0;let c=new Date(b.t),h=aI(c),i=f.get(h);i||(i={day:h,date:aG(c),...aF()},f.set(h,i),o=Math.min(o,i.date.getTime()));let j=c.getDay(),n=c.getHours();for(let c of[a,i,d])c.messages+=b.messages,c.toolCalls+=b.toolCalls,c.outputTokens+=b.outputTokens,c.activeMs+=b.activeMs,c.costUSD+=b.costUSD??0;g.messages[j][n]+=b.messages,g.outputTokens[j][n]+=b.outputTokens,g.costUSD[j][n]+=b.costUSD??0,!p.has(h)&&(p.add(h),i.sessions++);let t=24*j+n;for(let[a,c]of(!q.has(t)&&(q.add(t),g.sessions[j][n]++),Object.entries(b.tools??{})))k.set(a,(k.get(a)??0)+c),d.tools.set(a,(d.tools.get(a)??0)+c);for(let[a,c]of Object.entries(b.skills??{})){let b=l.get(a);b||l.set(a,b={name:a,value:0,sessions:0}),b.value+=c,!r.has(a)&&(r.add(a),b.sessions++)}for(let[a,c]of Object.entries(b.mcp??{})){let b=a.indexOf("__"),d=a.slice(0,b),e=a.slice(b+2),f=m.get(d);f||m.set(d,f=new Map),f.set(e,(f.get(e)??0)+c)}}if(!s)continue;for(let b of(i.push(a),d.sessions++,c.unpricedModels??[]))h.add(b);let t=j.get(a.project)??{name:a.project,sessions:0,messages:0,costUSD:0};t.sessions++,t.messages+=a.messages,t.costUSD+=a.costUSD,j.set(a.project,t)}let p=new Date(null===e?o:e),q=[];for(let a=p;a.getTime()<=d.getTime();a=aH(a,1)){let b=aI(a);q.push(f.get(b)??{day:b,date:a,...aF()})}let r=[];for(let a of q){let b=aH(a.date,-a.date.getDay()),c=r[r.length-1];c&&c.start.getTime()===b.getTime()||(c={start:b,...aF()},r.push(c)),c.sessions+=a.sessions,c.messages+=a.messages,c.toolCalls+=a.toolCalls,c.outputTokens+=a.outputTokens,c.activeMs+=a.activeMs,c.costUSD+=a.costUSD}let s={...aF(),sessions:i.length,projects:j.size,activeDays:f.size};for(let a of i)s.messages+=a.messages,s.toolCalls+=a.toolCalls,s.outputTokens+=a.outputTokens,s.activeMs+=a.activeMs,s.costUSD+=a.costUSD;let t=i.map(a=>a.messages).sort((a,b)=>a-b),u=(a,b)=>b[1]-a[1];return{totals:s,messagesPerSession:{mean:i.length?s.messages/i.length:0,median:aJ(t,.5),p90:aJ(t,.9)},days:q,weeks:r,hourly:g,sessions:i,projects:[...j.values()].sort((a,b)=>b.messages-a.messages),tools:[...k.entries()].sort(u).map(([a,b])=>({name:a,value:b})),skills:[...l.values()].sort((a,b)=>b.value-a.value),mcpServers:[...m.entries()].map(([a,b])=>{let c=[...b.entries()].sort(u);return{name:a,value:c.reduce((a,[,b])=>a+b,0),tools:c.map(([a,b])=>({name:a,value:b}))}}).sort((a,b)=>b.value-a.value),agents:[...n.values()].filter(a=>a.sessions>0).sort((a,b)=>b.messages-a.messages).map(({tools:a,...b})=>({...b,topTools:[...a.entries()].sort(u).slice(0,3).map(([a])=>a)})),unpricedModels:[...h].sort()}}(e,B):null,[e,B]),D=(0,n.useMemo)(()=>Y.PROVIDER_ORDER.filter(a=>e?.some(b=>b.provider===a)),[e]),F=(0,n.useMemo)(()=>aL(e??[]),[e]),H=(0,n.useMemo)(()=>[{value:"all",label:"All agents"},...D.map(a=>({value:a,label:(0,Y.providerStyle)(a).shortLabel}))],[D]),I=(0,n.useMemo)(()=>[{value:"all",label:"All models"},...F.map(a=>({value:a,label:a}))],[F]),K=(0,n.useMemo)(()=>C?[...C.sessions].sort((a,b)=>b[u]-a[u]).filter(a=>a[u]>0).slice(0,10):[],[C,u]);if(f&&!e)return(0,m.jsxs)("div",{className:"flex items-start gap-3 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive","aria-hidden":!0}),(0,m.jsx)("p",{className:"text-sm",children:"Could not load analytics. Use refresh to try again."})]});if(!e||!C)return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(150px,1fr))] gap-3",children:Array.from({length:7},(a,b)=>(0,m.jsx)(J.Skeleton,{className:"h-[86px] rounded-xl"},b))}),(0,m.jsx)(J.Skeleton,{className:"h-48 rounded-xl"})]});if(0===e.length)return(0,m.jsx)(E.EmptyState,{icon:p.BarChart3,title:"Nothing to chart yet",description:"Analytics appear once Copilot, Claude Code or Codex writes a transcript to your home directory."});let{totals:L,messagesPerSession:M}=C,O=C.projects[0],P=C.skills.reduce((a,b)=>a+b.value,0),Q=C.mcpServers.reduce((a,b)=>a+b.value,0),R="servers"===y?C.mcpServers:C.mcpServers.flatMap(a=>a.tools.map(b=>({name:`${a.name} › ${b.name}`,value:b.value}))),S=(a,b)=>b>0?(a/(b/6e4)).toFixed(1):"—";return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,m.jsx)(G,{value:g,onChange:h,options:aE,"aria-label":"Date range"}),d.length>2&&(0,m.jsx)(G,{value:b,onChange:c,options:d,"aria-label":"Project",className:"max-w-56"}),D.length>1&&(0,m.jsx)(G,{value:i,onChange:j,options:H,"aria-label":"Agent"}),F.length>1&&(0,m.jsx)(G,{value:k,onChange:l,options:I,"aria-label":"Model",className:"max-w-56"}),(0,m.jsxs)(A.Button,{variant:"outline",onClick:()=>aq(`agent-activity-${g}.csv`,["date,sessions,messages,tool_calls,output_tokens,active_minutes,estimated_cost_usd",...C.days.map(a=>[a.day,a.sessions,a.messages,a.toolCalls,a.outputTokens,Math.round(a.activeMs/6e4),a.costUSD.toFixed(2)].join(","))].join("\n")+"\n"),className:"ml-auto",children:[(0,m.jsx)(ao,{"aria-hidden":!0}),"Export CSV"]})]}),0===L.sessions?(0,m.jsx)(E.EmptyState,{icon:p.BarChart3,title:"No activity for these filters",description:"Try a longer date range, or clear the project, agent and model filters."}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(aC.StatCardGrid,{children:[(0,m.jsx)(aC.StatCard,{label:"Est. cost",value:(0,W.formatCost)(L.costUSD),sub:C.unpricedModels.length>0?`${C.unpricedModels.length} model${C.unpricedModels.length>1?"s":""} unpriced`:"at API list prices",accent:!0}),(0,m.jsx)(aC.StatCard,{label:"Sessions",value:L.sessions.toLocaleString()}),(0,m.jsx)(aC.StatCard,{label:"Messages",value:(0,W.formatCount)(L.messages)}),(0,m.jsx)(aC.StatCard,{label:"Msgs / session",value:M.mean.toFixed(1),sub:`median ${M.median} \xb7 p90 ${M.p90}`}),(0,m.jsx)(aC.StatCard,{label:"Tool calls",value:(0,W.formatCount)(L.toolCalls)}),(0,m.jsx)(aC.StatCard,{label:"Output tokens",value:(0,W.formatTokens)(L.outputTokens)??"0"}),(0,m.jsx)(aC.StatCard,{label:"Active time",value:(0,W.formatDuration)(L.activeMs),sub:"excl. pauses > 5 min"}),(0,m.jsx)(aC.StatCard,{label:"Active days",value:L.activeDays.toLocaleString(),sub:`of ${C.days.length}`}),(0,m.jsx)(aC.StatCard,{label:"Projects",value:L.projects.toLocaleString(),sub:O&&L.messages>0?`${Math.round(O.messages/L.messages*100)}% in ${O.name}`:void 0})]}),(0,m.jsx)(aB,{models:C.unpricedModels}),(0,m.jsx)(ar,{title:"Activity",action:(0,m.jsx)(as.Segmented,{label:"Activity metric",value:q,onChange:r,options:aZ}),children:(0,m.jsx)(aT,{days:C.days,metric:q})}),(0,m.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,m.jsx)(ar,{title:"By weekday and hour",action:(0,m.jsx)(as.Segmented,{label:"Weekday and hour metric",value:s,onChange:t,options:aZ}),children:(0,m.jsx)(aW,{grid:C.hourly[s],metric:s})}),(0,m.jsx)(ar,{title:"Top sessions",action:(0,m.jsx)(as.Segmented,{label:"Rank sessions by",value:u,onChange:v,options:a$}),children:(0,m.jsx)("ol",{className:"-mx-2",children:K.map((a,b)=>(0,m.jsx)("li",{children:(0,m.jsxs)(N.default,{href:`/sessions/${a.provider}/${a.id}`,className:"flex items-center gap-3 rounded-md px-2 py-1.5 transition-colors hover:bg-muted focus-visible:outline-2 focus-visible:outline-ring",children:[(0,m.jsx)("span",{className:"w-4 shrink-0 text-right text-xs tabular-nums text-muted-foreground",children:b+1}),(0,m.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,m.jsx)("span",{className:"block truncate text-sm",children:a.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 rounded-full",(0,Y.providerStyle)(a.provider).dotCls),"aria-hidden":!0}),(0,Y.providerStyle)(a.provider).shortLabel," · ",a.project]})]}),(0,m.jsx)("span",{className:"shrink-0 text-sm font-medium tabular-nums",children:"costUSD"===u?(0,W.formatCost)(a.costUSD):"activeMs"===u?(0,W.formatDuration)(a.activeMs):"outputTokens"===u?(0,W.formatTokens)(a.outputTokens)??"0":a.messages.toLocaleString()})]})},`${a.provider}:${a.id}`))})}),(0,m.jsx)(ar,{title:"Projects",note:`${L.projects} total`,action:(0,m.jsx)(as.Segmented,{label:"Rank projects by",value:w,onChange:x,options:a0}),children:(0,m.jsx)(ap.BarList,{items:C.projects.map(a=>({name:a.name,value:a[w]})),limit:10,format:"costUSD"===w?W.formatCost:void 0})}),(0,m.jsxs)(ar,{title:"Tool usage",note:`${L.toolCalls.toLocaleString()} calls`,children:[(0,m.jsx)(ap.BarList,{items:C.tools,limit:8,emptyLabel:"No tool calls"}),C.weeks.length>1&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)("h3",{className:"mb-2 mt-5 text-xs uppercase tracking-wider text-muted-foreground",children:"Weekly trend"}),(0,m.jsx)(aY,{weeks:C.weeks})]})]}),(0,m.jsxs)(ar,{title:"Skills",note:`${P.toLocaleString()} call${1===P?"":"s"} \xb7 ${C.skills.length} skill${1===C.skills.length?"":"s"}`,children:[(0,m.jsx)(ap.BarList,{items:C.skills,limit:8,emptyLabel:"No skill was loaded in this range"}),C.skills.length>0&&(0,m.jsxs)("p",{className:"mt-3 text-xs text-muted-foreground",children:["Most used:"," ",(0,m.jsx)("span",{className:"font-mono text-foreground",children:C.skills[0].name}),", in"," ",C.skills[0].sessions," session",1===C.skills[0].sessions?"":"s","."]})]}),(0,m.jsx)(ar,{title:"MCP tools",note:`${Q.toLocaleString()} call${1===Q?"":"s"} \xb7 ${C.mcpServers.length} server${1===C.mcpServers.length?"":"s"}`,action:C.mcpServers.length>0?(0,m.jsx)(as.Segmented,{label:"Group MCP calls by",value:y,onChange:z,options:a_}):void 0,children:(0,m.jsx)(ap.BarList,{items:R,limit:8,emptyLabel:"No MCP tool was called in this range"})})]}),(0,m.jsx)(ar,{title:"Agent comparison",children:(0,m.jsxs)(aj.Table,{className:"min-w-[720px]",children:[(0,m.jsx)(aj.TableHeader,{children:(0,m.jsx)(aj.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:a1.map((a,b)=>(0,m.jsx)(aj.TableHead,{className:(0,$.cn)("text-muted-foreground",b>0&&b<a1.length-1&&"text-right"),children:a},a))})}),(0,m.jsx)(aj.TableBody,{className:"tabular-nums",children:C.agents.map(a=>(0,m.jsxs)(aj.TableRow,{children:[(0,m.jsx)(aj.TableCell,{children:(0,m.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:[(0,m.jsx)("span",{className:(0,$.cn)("size-2 rounded-full",(0,Y.providerStyle)(a.provider).dotCls),"aria-hidden":!0}),(0,Y.providerStyle)(a.provider).shortLabel]})}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.sessions.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:(0,W.formatCost)(a.costUSD)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.messages.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.toolCalls.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:(0,W.formatTokens)(a.outputTokens)??"0"}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:(0,W.formatDuration)(a.activeMs)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:S(a.messages,a.activeMs)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:S(a.toolCalls,a.activeMs)}),(0,m.jsx)(aj.TableCell,{className:"max-w-56 truncate font-mono text-xs text-muted-foreground",children:a.topTools.join(", ")||"—"})]},a.provider))})]})})]})]})}let a3=["project","model","agent"],a4={project:"Project",model:"Model",agent:"Agent"},a5=()=>({project:{},model:{},agent:{}});function a6(a,b,c,d){let e=a[b]??={costUSD:0,tokens:0};e.costUSD+=c,e.tokens+=d}var a7=a.i(56979);let a8=[{value:"costUSD",label:"Cost"},{value:"tokens",label:"Tokens"}],a9=a3.map(a=>({value:a,label:a4[a]})),ba=["Session","Input","Cached","Output","Cost"],bb=a=>(0,W.formatTokens)(a)??"0";function bc({reloadToken:a,project:b,onProjectChange:c,projectOptions:d}){let{sessions:e,error:f}=aM(a),[g,h]=(0,n.useState)("30"),[i,j]=(0,n.useState)("all"),[k,l]=(0,n.useState)("all"),[p,q]=(0,n.useState)("costUSD"),[r,s]=(0,n.useState)("project"),t=(0,n.useMemo)(()=>({days:aE.find(a=>a.value===g)?.days??null,project:b,provider:i,model:k}),[g,b,i,k]),u=(0,n.useMemo)(()=>e?function(a,b,c=new Date){let d=aG(c),e=null===b.days?null:aH(d,1-b.days).getTime(),f=new Map,g={project:new Map,model:new Map,agent:new Map},h=[],i=new Set,j=d.getTime();for(let c of a){if("all"!==b.provider&&c.provider!==b.provider||"all"!==b.project&&c.project!==b.project)continue;let a={provider:c.provider,id:c.id,label:c.label,project:c.project,costUSD:0,tokens:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0},d={project:c.project,model:"",agent:c.provider},k=new Set;for(let h of c.usage){if("all"!==b.model&&h.model!==b.model||null!==e&&h.t<e)continue;let c=h.inputTokens+h.outputTokens+h.cacheReadTokens+h.cacheWriteTokens;if(0===c)continue;let l=h.costUSD??0;null===h.costUSD&&i.add(h.model);let m=new Date(h.t),n=aI(m),o=f.get(n);for(let b of(o||(o={start:aG(m),days:1,costUSD:0,tokens:0,by:a5()},f.set(n,o),j=Math.min(j,o.start.getTime())),o.costUSD+=l,o.tokens+=c,a.costUSD+=l,a.tokens+=c,a.inputTokens+=h.inputTokens,a.outputTokens+=h.outputTokens,a.cacheReadTokens+=h.cacheReadTokens,a.cacheWriteTokens+=h.cacheWriteTokens,d.model=h.model,a3)){let a=d[b];a6(o.by[b],a,l,c);let e=g[b].get(a);e||(e={name:a,sessions:0,costUSD:0,tokens:0},g[b].set(a,e)),e.costUSD+=l,e.tokens+=c;let f=`${b}|${a}`;!k.has(f)&&(k.add(f),e.sessions++)}}a.tokens>0&&h.push(a)}let k=new Date(null===e?j:e),l=[];for(let a=k;a.getTime()<=d.getTime();a=aH(a,1))l.push(f.get(aI(a))??{start:a,days:1,costUSD:0,tokens:0,by:a5()});let m={costUSD:0,tokens:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,sessions:h.length,activeDays:f.size};for(let a of h)m.costUSD+=a.costUSD,m.tokens+=a.tokens,m.inputTokens+=a.inputTokens,m.outputTokens+=a.outputTokens,m.cacheReadTokens+=a.cacheReadTokens,m.cacheWriteTokens+=a.cacheWriteTokens;let n=m.inputTokens+m.cacheReadTokens+m.cacheWriteTokens,o=null;for(let a of f.values())(!o||a.costUSD>o.costUSD)&&(o=a);let p=a=>[...g[a].values()];return{totals:m,cacheHitRate:n>0?m.cacheReadTokens/n:0,days:l,peakDay:o,attribution:{project:p("project"),model:p("model"),agent:p("agent")},sessions:h,unpricedModels:[...i].sort()}}(e,t):null,[e,t]),v=(0,n.useMemo)(()=>Y.PROVIDER_ORDER.filter(a=>e?.some(b=>b.provider===a)),[e]),w=(0,n.useMemo)(()=>[{value:"all",label:"All agents"},...v.map(a=>({value:a,label:(0,Y.providerStyle)(a).shortLabel}))],[v]),x=(0,n.useMemo)(()=>[{value:"all",label:"All models"},...[...new Set((e??[]).flatMap(a=>a.usage.map(a=>a.model)))].sort().map(a=>({value:a,label:a}))],[e]),y=a=>"agent"===r?(0,Y.providerStyle)(a).shortLabel:a,B=(0,n.useMemo)(()=>u?[...u.attribution[r]].filter(a=>a[p]>0).sort((a,b)=>b[p]-a[p]):[],[u,r,p]),C=(0,n.useMemo)(()=>u?[...u.sessions].sort((a,b)=>b[p]-a[p]).filter(a=>a[p]>0).slice(0,10):[],[u,p]);if(f&&!e)return(0,m.jsxs)("div",{className:"flex items-start gap-3 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive","aria-hidden":!0}),(0,m.jsx)("p",{className:"text-sm",children:"Could not load usage. Use refresh to try again."})]});if(!e||!u)return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(150px,1fr))] gap-3",children:Array.from({length:7},(a,b)=>(0,m.jsx)(J.Skeleton,{className:"h-[86px] rounded-xl"},b))}),(0,m.jsx)(J.Skeleton,{className:"h-64 rounded-xl"})]});if(0===e.length)return(0,m.jsx)(E.EmptyState,{icon:z.Wallet,title:"No usage yet",description:"Cost and token usage appear once Copilot, Claude Code or Codex writes a transcript to your home directory."});let{totals:D,peakDay:F}=u,H=u.unpricedModels,I=u.days.length>92?function(a){let b=[];for(let c of a){let a=aH(c.start,-c.start.getDay()),d=b[b.length-1];for(let e of(d&&aH(d.start,-d.start.getDay()).getTime()===a.getTime()||(d={start:c.start,days:0,costUSD:0,tokens:0,by:a5()},b.push(d)),d.days++,d.costUSD+=c.costUSD,d.tokens+=c.tokens,a3))for(let[a,b]of Object.entries(c.by[e]))a6(d.by[e],a,b.costUSD,b.tokens)}return b}(u.days):u.days,K=B.slice(0,a7.SERIES_COLORS.length).map((a,b)=>({name:a.name,label:y(a.name),color:a7.SERIES_COLORS[b]}));B.length>K.length&&K.push({name:a7.OTHER,label:`Other (${B.length-K.length})`,color:a7.OTHER_COLOR});let L=a=>K.find(b=>b.name===a)?.color??a7.OTHER_COLOR,M=B.reduce((a,b)=>a+b[p],0);return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,m.jsx)(G,{value:g,onChange:h,options:aE,"aria-label":"Date range"}),d.length>2&&(0,m.jsx)(G,{value:b,onChange:c,options:d,"aria-label":"Project",className:"max-w-56"}),v.length>1&&(0,m.jsx)(G,{value:i,onChange:j,options:w,"aria-label":"Agent"}),x.length>2&&(0,m.jsx)(G,{value:k,onChange:l,options:x,"aria-label":"Model",className:"max-w-56"}),(0,m.jsxs)("div",{className:"ml-auto flex flex-wrap items-center gap-2",children:[(0,m.jsx)(as.Segmented,{label:"Measure",value:p,onChange:q,options:a8,size:"default"}),(0,m.jsxs)(A.Button,{variant:"outline",onClick:()=>aq(`agent-usage-${g}-by-${r}.csv`,function(a,b){let c=[`date,${b},tokens,estimated_cost_usd`];for(let d of a)for(let[a,e]of Object.entries(d.by[b])){let b=/[",\n]/.test(a)?`"${a.replace(/"/g,'""')}"`:a;c.push([aI(d.start),b,e.tokens,e.costUSD.toFixed(4)].join(","))}return c.join("\n")+"\n"}(u.days,r)),children:[(0,m.jsx)(ao,{"aria-hidden":!0}),"Export CSV"]})]})]}),0===D.tokens?(0,m.jsx)(E.EmptyState,{icon:z.Wallet,title:"No usage for these filters",description:"Try a longer date range, or clear the project, agent and model filters."}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(aC.StatCardGrid,{children:[(0,m.jsx)(aC.StatCard,{label:"Est. cost",value:(0,W.formatCost)(D.costUSD),sub:H.length>0?`${H.length} model${H.length>1?"s":""} unpriced`:"at API list prices",accent:!0}),(0,m.jsx)(aC.StatCard,{label:"Daily burn",value:(0,W.formatCost)(D.activeDays?D.costUSD/D.activeDays:0),sub:`avg over ${D.activeDays} active day${1===D.activeDays?"":"s"}`}),(0,m.jsx)(aC.StatCard,{label:"Peak day",value:(0,W.formatCost)(F?.costUSD??0),sub:F?.start.toLocaleDateString([],{weekday:"short",month:"short",day:"numeric"})}),(0,m.jsx)(aC.StatCard,{label:"Input tokens",value:bb(D.inputTokens),sub:`+${bb(D.cacheReadTokens)} cached`}),(0,m.jsx)(aC.StatCard,{label:"Output tokens",value:bb(D.outputTokens),sub:D.cacheWriteTokens>0?`${bb(D.cacheWriteTokens)} cache writes`:void 0}),(0,m.jsx)(aC.StatCard,{label:"Cache hit",value:`${(100*u.cacheHitRate).toFixed(1)}%`,sub:"of input read from cache"}),(0,m.jsx)(aC.StatCard,{label:"Sessions",value:D.sessions.toLocaleString(),sub:`${(0,W.formatCost)(D.costUSD/D.sessions)} avg`})]}),(0,m.jsx)(aB,{models:H}),(0,m.jsx)(ar,{title:"costUSD"===p?"Cost over time":"Tokens over time",note:I===u.days?"per day":"per week",action:(0,m.jsx)(as.Segmented,{label:"Break down by",value:r,onChange:s,options:a9}),children:(0,m.jsx)(a7.StackedBars,{periods:I,breakdownOf:a=>a.by[r],series:K,unit:p})}),(0,m.jsx)(ar,{title:`${"costUSD"===p?"Cost":"Tokens"} by ${a4[r].toLowerCase()}`,note:`${B.length} total`,children:(0,m.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,m.jsx)(a7.Treemap,{unit:p,items:B.map(a=>({name:a.name,label:y(a.name),value:a[p],color:L(a.name)}))}),(0,m.jsx)("ol",{className:"max-h-72 space-y-1 overflow-y-auto pr-1 text-xs",children:B.map((a,b)=>(0,m.jsxs)("li",{className:"flex items-center gap-2.5",children:[(0,m.jsx)("span",{className:"w-4 shrink-0 text-right tabular-nums text-muted-foreground",children:b+1}),(0,m.jsx)("span",{className:"size-2.5 shrink-0 rounded-[3px]",style:{background:L(a.name)},"aria-hidden":!0}),(0,m.jsx)("span",{className:"min-w-0 flex-1 truncate",title:y(a.name),children:y(a.name)}),(0,m.jsxs)("span",{className:"shrink-0 text-muted-foreground",children:[a.sessions," session",1===a.sessions?"":"s"]}),(0,m.jsx)("span",{className:"w-14 shrink-0 text-right font-medium tabular-nums",children:(0,a7.formatUnit)(p,a[p])}),(0,m.jsxs)("span",{className:"w-11 shrink-0 text-right tabular-nums text-muted-foreground",children:[(a[p]/M*100).toFixed(1),"%"]})]},a.name))})]})}),(0,m.jsx)(ar,{title:`Top sessions by ${"costUSD"===p?"cost":"tokens"}`,children:(0,m.jsxs)(aj.Table,{className:"min-w-[640px]",children:[(0,m.jsx)(aj.TableHeader,{children:(0,m.jsx)(aj.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:ba.map((a,b)=>(0,m.jsx)(aj.TableHead,{className:(0,$.cn)("text-muted-foreground",b>0&&"text-right"),children:a},a))})}),(0,m.jsx)(aj.TableBody,{className:"tabular-nums",children:C.map(a=>(0,m.jsxs)(aj.TableRow,{children:[(0,m.jsxs)(aj.TableCell,{className:"max-w-0 w-full",children:[(0,m.jsx)(N.default,{href:`/sessions/${a.provider}/${a.id}`,className:"block truncate font-medium hover:underline focus-visible:outline-2 focus-visible:outline-ring",children:a.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 rounded-full",(0,Y.providerStyle)(a.provider).dotCls),"aria-hidden":!0}),(0,Y.providerStyle)(a.provider).shortLabel," · ",a.project]})]}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:bb(a.inputTokens)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:bb(a.cacheReadTokens)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:bb(a.outputTokens)}),(0,m.jsx)(aj.TableCell,{className:"text-right font-medium",children:(0,W.formatCost)(a.costUSD)})]},`${a.provider}:${a.id}`))})]})})]})]})}var bd=a.i(89065);function be(a){return a>=90?"A":a>=80?"B":a>=70?"C":a>=60?"D":"F"}let bf=["outcome","tool_failures","retry_loops","api_errors","aborted_turns","compactions"];function bg(a,b,c){let d=a.get(b)??{sessions:0,score:0,completed:0,failures:0};d.sessions++,d.score+=c.score,"completed"===c.outcome&&d.completed++,d.failures+=c.toolFailures,a.set(b,d)}function bh(a){return[...a.entries()].map(([a,b])=>({name:a,sessions:b.sessions,avgScore:b.score/b.sessions,completed:b.completed/b.sessions,avgFailures:b.failures/b.sessions})).sort((a,b)=>b.sessions-a.sessions||a.name.localeCompare(b.name))}let bi=["Sessions","Avg score","Completed","Failures/session"],bj=[{value:"agent",label:"Agent"},{value:"project",label:"Project"}],bk=(a,b)=>b>0?`${Math.round(a/b*100)}%`:"—",bl=a=>a.toLocaleDateString([],{month:"short",day:"numeric"});function bm({session:a}){return(0,m.jsxs)(N.default,{href:`/sessions/${a.provider}/${a.id}`,className:"flex items-center gap-3 rounded-md px-2 py-1.5 transition-colors hover:bg-muted focus-visible:outline-2 focus-visible:outline-ring",children:[(0,m.jsx)(U.GradeBadge,{grade:a.health.grade,score:a.health.score}),(0,m.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,m.jsx)("span",{className:"block truncate text-sm",children:a.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 shrink-0 rounded-full",(0,Y.providerStyle)(a.provider).dotCls),"aria-hidden":!0}),(0,m.jsxs)("span",{className:"truncate",children:[(0,Y.providerStyle)(a.provider).shortLabel," · ",a.project," ·"," ",[X.OUTCOME_LABELS[a.health.outcome].toLowerCase(),...a.health.signals.filter(a=>"outcome"!==a.id).map(a=>X.SIGNAL_INFO[a.id].label.toLowerCase())].join(", ")]})]})]})]})}function bn({rows:a}){let b=a.reduce((a,b)=>a+b.value,0);return(0,m.jsx)("div",{className:"space-y-1.5",children:a.map(a=>(0,m.jsxs)("div",{className:"flex items-center gap-2.5 text-xs",children:[(0,m.jsx)("div",{className:"w-24 shrink-0 text-muted-foreground",children:a.label}),(0,m.jsx)("div",{className:"h-4 flex-1 overflow-hidden rounded-sm bg-muted",children:a.value>0&&(0,m.jsx)("div",{className:(0,$.cn)("h-full rounded-sm",a.bar),style:{width:`${Math.max(a.value/b*100,2)}%`}})}),(0,m.jsx)("div",{className:"w-8 shrink-0 text-right font-medium tabular-nums",children:a.value}),(0,m.jsx)("div",{className:"w-9 shrink-0 text-right tabular-nums text-muted-foreground",children:bk(a.value,b)})]},a.key))})}function bo({periods:a,weekly:b}){let[c,d]=(0,n.useState)(null);return(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{role:"img","aria-label":`Average health score per ${b?"week":"day"} over ${a.length} ${b?"weeks":"days"}`,className:"flex h-24 items-end gap-[2px] border-b border-border",onMouseLeave:()=>d(null),children:a.map(a=>{let c=`${b?"Week of ":""}${bl(a.start)}`,e=null===a.avgScore?`${c} \xb7 no sessions`:`${c} \xb7 average ${Math.round(a.avgScore)} over ${a.sessions} session${1===a.sessions?"":"s"}`;return(0,m.jsx)("div",{title:e,onMouseEnter:()=>d(e),className:"group flex h-full min-w-0 max-w-10 flex-1 items-end",children:null!==a.avgScore&&(0,m.jsx)("div",{className:(0,$.cn)("w-full rounded-t group-hover:opacity-75",X.GRADE_STYLES[be(Math.round(a.avgScore))].bar),style:{height:`max(2px, ${a.avgScore}%)`}})},a.start.getTime())})}),(0,m.jsxs)("div",{className:"mt-1.5 flex justify-between gap-3 text-[10px] text-muted-foreground",children:[(0,m.jsx)("span",{className:"shrink-0",children:a.length>0&&bl(a[0].start)}),(0,m.jsx)("span",{className:(0,$.cn)("truncate text-xs",c&&"text-foreground"),"aria-live":"polite",children:c??"bar height is the average score, colour its grade"}),(0,m.jsx)("span",{className:"shrink-0",children:a.length>1&&bl(a[a.length-1].start)})]})]})}function bp({rows:a,groupKey:b}){return(0,m.jsxs)(aj.Table,{className:"min-w-[520px]",children:[(0,m.jsx)(aj.TableHeader,{children:(0,m.jsxs)(aj.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:[(0,m.jsx)(aj.TableHead,{className:"text-muted-foreground",children:"agent"===b?"Agent":"Project"}),bi.map(a=>(0,m.jsx)(aj.TableHead,{className:"text-right text-muted-foreground",children:a},a))]})}),(0,m.jsx)(aj.TableBody,{className:"tabular-nums",children:a.map(a=>(0,m.jsxs)(aj.TableRow,{children:[(0,m.jsx)(aj.TableCell,{className:"max-w-0 w-full",children:(0,m.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:["agent"===b&&(0,m.jsx)("span",{className:(0,$.cn)("size-2 shrink-0 rounded-full",(0,Y.providerStyle)(a.name).dotCls),"aria-hidden":!0}),(0,m.jsx)("span",{className:"truncate",children:"agent"===b?(0,Y.providerStyle)(a.name).shortLabel:a.name})]})}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.sessions.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:(0,m.jsxs)("span",{className:"inline-flex items-center gap-2",children:[Math.round(a.avgScore),(0,m.jsx)(U.GradeBadge,{grade:be(Math.round(a.avgScore))})]})}),(0,m.jsxs)(aj.TableCell,{className:"text-right",children:[Math.round(100*a.completed),"%"]}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.avgFailures.toFixed(1)})]},a.name))})]})}function bq({reloadToken:a,project:b,onProjectChange:c,projectOptions:d}){let{sessions:e,error:f}=aM(a),[g,h]=(0,n.useState)("90"),[i,j]=(0,n.useState)("all"),[k,l]=(0,n.useState)("all"),[p,q]=(0,n.useState)("agent"),r=(0,n.useMemo)(()=>({days:aE.find(a=>a.value===g)?.days??null,project:b,provider:i,model:k}),[g,b,i,k]),s=(0,n.useMemo)(()=>e?function(a,b,c=new Date){let d=aG(c),e=null===b.days?null:aH(d,1-b.days).getTime(),f=[],g=0;for(let c of a){if("all"!==b.provider&&c.provider!==b.provider||"all"!==b.project&&c.project!==b.project||"all"!==b.model&&c.model!==b.model)continue;let a=-1/0;for(let b of c.activity)(null===e||b.t>=e)&&(a=Math.max(a,b.t));if(a!==-1/0){if(!c.health){g++;continue}f.push({provider:c.provider,id:c.id,label:c.label,project:c.project,health:c.health,lastActive:a})}}let h={A:0,B:0,C:0,D:0,F:0},i={completed:0,in_progress:0,abandoned:0,errored:0},j=new Map,k=new Map,l=new Map,m=new Map,n=0,o=0,p=0,q=d.getTime();for(let a of f){let{health:b}=a;n+=b.score,h[b.grade]++,i[b.outcome]++,o+=Math.max(b.toolResults,b.toolFailures),p+=b.toolFailures,bg(j,a.provider,b),bg(k,a.project,b);let c=aG(new Date(a.lastActive));q=Math.min(q,c.getTime());let d=l.get(aI(c))??{sessions:0,score:0};for(let e of(d.sessions++,d.score+=b.score,l.set(aI(c),d),b.signals)){let b=m.get(e.id)??{count:0,rows:[]};b.count+=e.count,b.rows.push({s:a,penalty:e.penalty}),m.set(e.id,b)}}let r=[],s=new Date(null===e?q:e);for(let a=s;a.getTime()<=d.getTime();a=aH(a,1)){let b=l.get(aI(a));r.push({start:a,sessions:b?.sessions??0,avgScore:b?b.score/b.sessions:null})}let t=f.length?n/f.length:0;return{scored:f.length,unscored:g,avgScore:t,grade:be(Math.round(t)),grades:h,outcomes:i,toolResults:o,toolFailures:p,patterns:bf.flatMap(a=>{let b=m.get(a);return b?{id:a,sessions:b.rows.length,count:b.count,examples:b.rows.sort((a,b)=>b.penalty-a.penalty||a.s.health.score-b.s.health.score).slice(0,3).map(a=>a.s)}:[]}).sort((a,b)=>b.sessions-a.sessions),days:r,agents:bh(j),projects:bh(k),sessions:f.sort((a,b)=>a.health.score-b.health.score||b.lastActive-a.lastActive)}}(e,r):null,[e,r]),t=(0,n.useMemo)(()=>Y.PROVIDER_ORDER.filter(a=>e?.some(b=>b.provider===a)),[e]),u=(0,n.useMemo)(()=>[{value:"all",label:"All agents"},...t.map(a=>({value:a,label:(0,Y.providerStyle)(a).shortLabel}))],[t]),w=(0,n.useMemo)(()=>[{value:"all",label:"All models"},...aL(e??[]).map(a=>({value:a,label:a}))],[e]);if(f&&!e)return(0,m.jsxs)("div",{className:"flex items-start gap-3 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive","aria-hidden":!0}),(0,m.jsx)("p",{className:"text-sm",children:"Could not load session health. Use refresh to try again."})]});if(!e||!s)return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(150px,1fr))] gap-3",children:Array.from({length:6},(a,b)=>(0,m.jsx)(J.Skeleton,{className:"h-[86px] rounded-xl"},b))}),(0,m.jsx)(J.Skeleton,{className:"h-64 rounded-xl"})]});if(0===e.length)return(0,m.jsx)(E.EmptyState,{icon:v,title:"No sessions to score yet",description:"Health scores appear once Copilot, Claude Code or Codex writes a transcript to your home directory."});let x=s.days.length>92,y=x?function(a){let b=[];for(let c of a){let a=aH(c.start,-c.start.getDay()),d=b[b.length-1];d&&d.start.getTime()===a.getTime()||(d={start:a,sessions:0,avgScore:null,total:0},b.push(d)),d.sessions+=c.sessions,d.total+=(c.avgScore??0)*c.sessions,d.avgScore=d.sessions?d.total/d.sessions:null}return b.map(({start:a,sessions:b,avgScore:c})=>({start:a,sessions:b,avgScore:c}))}(s.days):s.days,z=s.outcomes.abandoned+s.outcomes.errored,B=s.patterns.find(a=>"tool_failures"===a.id)?.sessions??0,C=s.grades.D+s.grades.F,D=s.sessions.filter(a=>a.health.signals.length>0).slice(0,10);return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,m.jsx)(G,{value:g,onChange:h,options:aE,"aria-label":"Date range"}),d.length>2&&(0,m.jsx)(G,{value:b,onChange:c,options:d,"aria-label":"Project",className:"max-w-56"}),t.length>1&&(0,m.jsx)(G,{value:i,onChange:j,options:u,"aria-label":"Agent"}),w.length>2&&(0,m.jsx)(G,{value:k,onChange:l,options:w,"aria-label":"Model",className:"max-w-56"}),(0,m.jsxs)(A.Button,{variant:"outline",className:"ml-auto",disabled:0===s.scored,onClick:()=>{var a;return aq(`agent-quality-${g}.csv`,(a=s.sessions,[["agent","session_id","project","last_active","score","grade","outcome","tool_results","tool_failures",...bf.filter(a=>"outcome"!==a&&"tool_failures"!==a)].join(","),...a.map(a=>{let b=b=>a.health.signals.find(a=>a.id===b)?.count??0;return[a.provider,a.id,`"${a.project.replace(/"/g,'""')}"`,new Date(a.lastActive).toISOString(),a.health.score,a.health.grade,a.health.outcome,a.health.toolResults,a.health.toolFailures,b("retry_loops"),b("api_errors"),b("aborted_turns"),b("compactions")].join(",")})].join("\n")+"\n"))},children:[(0,m.jsx)(ao,{"aria-hidden":!0}),"Export CSV"]})]}),0===s.scored?(0,m.jsx)(E.EmptyState,{icon:v,title:"No scored sessions for these filters",description:"Try a longer date range, or clear the project, agent and model filters."}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(aC.StatCardGrid,{children:[(0,m.jsx)(aC.StatCard,{label:"Avg score",value:`${Math.round(s.avgScore)}`,sub:`grade ${s.grade}`,accent:!0}),(0,m.jsx)(aC.StatCard,{label:"Scored",value:s.scored.toLocaleString(),sub:s.unscored>0?`${s.unscored} with no agent activity`:"sessions"}),(0,m.jsx)(aC.StatCard,{label:"Completed",value:bk(s.outcomes.completed,s.scored),sub:`${s.outcomes.completed.toLocaleString()} sessions`}),(0,m.jsx)(aC.StatCard,{label:"Unfinished",value:z.toLocaleString(),sub:`${s.outcomes.abandoned} abandoned \xb7 ${s.outcomes.errored} errored`}),(0,m.jsx)(aC.StatCard,{label:"Tool failures",value:bk(B,s.scored),sub:`${B.toLocaleString()} sessions affected`}),(0,m.jsx)(aC.StatCard,{label:"Failure rate",value:s.toolResults>0?`${(s.toolFailures/s.toolResults*100).toFixed(1)}%`:"—",sub:`${s.toolFailures.toLocaleString()} of ${s.toolResults.toLocaleString()} results`}),(0,m.jsx)(aC.StatCard,{label:"Low grades",value:C.toLocaleString(),sub:"sessions graded D or F"})]}),(0,m.jsx)(ar,{title:"Recurring problems",note:"rule-based, from the transcripts",children:0===s.patterns.length?(0,m.jsxs)("div",{className:"flex items-center gap-2.5 rounded-xl border border-emerald-200 bg-emerald-50 px-4 py-3 dark:border-emerald-900 dark:bg-emerald-950/30",children:[(0,m.jsx)(bd.CheckCircle2,{className:"size-4 shrink-0 text-emerald-600 dark:text-emerald-400","aria-hidden":!0}),(0,m.jsx)("p",{className:"text-sm",children:"No session in this range lost any points."})]}):(0,m.jsx)("ul",{className:"divide-y divide-border",children:s.patterns.map(a=>{let b=X.SIGNAL_INFO[a.id];return(0,m.jsxs)("li",{className:"py-3 first:pt-0 last:pb-0",children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-x-3 gap-y-0.5",children:[(0,m.jsx)("h3",{className:"text-sm font-medium",children:b.label}),(0,m.jsxs)("span",{className:"text-xs tabular-nums text-muted-foreground",children:[a.sessions," of ",s.scored," sessions (",bk(a.sessions,s.scored),")","outcome"!==a.id&&` \xb7 ${a.count.toLocaleString()} in total`]})]}),(0,m.jsx)("p",{className:"mt-0.5 text-xs leading-relaxed text-muted-foreground",children:b.advice}),(0,m.jsx)("ol",{className:"-mx-2 mt-1.5",children:a.examples.map(a=>(0,m.jsx)("li",{children:(0,m.jsx)(bm,{session:a})},`${a.provider}:${a.id}`))})]},a.id)})})}),(0,m.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,m.jsx)(ar,{title:"Grades",note:`${s.scored} scored`,children:(0,m.jsx)(bn,{rows:X.GRADES.map(a=>({key:a,label:(0,m.jsx)(U.GradeBadge,{grade:a}),value:s.grades[a],bar:X.GRADE_STYLES[a].bar}))})}),(0,m.jsx)(ar,{title:"Outcomes",children:(0,m.jsx)(bn,{rows:X.OUTCOMES.filter(a=>"in_progress"!==a||s.outcomes.in_progress>0).map(a=>({key:a,label:X.OUTCOME_LABELS[a],value:s.outcomes[a],bar:X.OUTCOME_BARS[a]}))})})]}),y.length>1&&(0,m.jsx)(ar,{title:"Health trend",note:x?"per week":"per day",children:(0,m.jsx)(bo,{periods:y,weekly:x})}),(0,m.jsx)(ar,{title:"Comparison",action:(0,m.jsx)(as.Segmented,{label:"Compare by",value:p,onChange:q,options:bj}),children:(0,m.jsx)(bp,{rows:"agent"===p?s.agents:s.projects,groupKey:p})}),D.length>0&&(0,m.jsx)(ar,{title:"Lowest scores",note:"worst first",children:(0,m.jsx)("ol",{className:"-mx-2",children:D.map(a=>(0,m.jsx)("li",{children:(0,m.jsx)(bm,{session:a})},`${a.provider}:${a.id}`))})})]})]})}var br=a.i(73946);let bs=(0,r.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),bt={},bu={};function bv(a,b){try{let c=(bt[a]||=new Intl.DateTimeFormat("en-US",{timeZone:a,timeZoneName:"longOffset"}).format)(b).split("GMT")[1];if(c in bu)return bu[c];return bx(c,c.split(":"))}catch{if(a in bu)return bu[a];let b=a?.match(bw);if(b)return bx(a,b.slice(1));return NaN}}let bw=/([+-]\d\d):?(\d\d)?/;function bx(a,b){let c=+(b[0]||0),d=+(b[1]||0),e=(b[2]||0)/60;return bu[a]=60*c+d>0?60*c+d+e:60*c-d-e}class by extends Date{constructor(...a){super(),a.length>1&&"string"==typeof a[a.length-1]&&(this.timeZone=a.pop()),this.internal=new Date,isNaN(bv(this.timeZone,this))?this.setTime(NaN):a.length?"number"==typeof a[0]&&(1===a.length||2===a.length&&"number"!=typeof a[1])?this.setTime(a[0]):"string"==typeof a[0]?this.setTime(+new Date(a[0])):a[0]instanceof Date?this.setTime(+a[0]):(this.setTime(+new Date(...a)),bB(this,a)):this.setTime(Date.now())}static tz(a,...b){return b.length?new by(...b,a):new by(Date.now(),a)}withTimeZone(a){return new by(+this,a)}getTimezoneOffset(){let a=-bv(this.timeZone,this);return a>0?Math.floor(a):Math.ceil(a)}setTime(a){return Date.prototype.setTime.apply(this,arguments),bA(this),+this}[Symbol.for("constructDateFrom")](a){return new by(+new Date(a),this.timeZone)}}let bz=/^(get|set)(?!UTC)/;function bA(a){a.internal.setTime(+a),a.internal.setUTCSeconds(a.internal.getUTCSeconds()-Math.round(-(60*bv(a.timeZone,a))))}function bB(a,b){var c;let d=Array.isArray(b)?Date.UTC((c=b)[0],c.length>1?c[1]:0,c.length>2?c[2]:1,...c.slice(3)):+a.internal,e=bv(a.timeZone,a),f=e>0?Math.floor(e):Math.ceil(e),g=new Date(+a);g.setUTCHours(g.getUTCHours()-1);let h=-new Date(+a).getTimezoneOffset(),i=-new Date(+g).getTimezoneOffset(),j=h;if(h-i&&h!==f&&Date.prototype.getHours.apply(a)!==(Array.isArray(b)?b[3]||0:a.internal.getUTCHours())){let b=new Date(+a),c=h-f;c&&b.setUTCMinutes(b.getUTCMinutes()+c);let d=bv(a.timeZone,b);(d>0?Math.floor(d):Math.ceil(d))===f&&(j=i)}let k=j-f;k&&Date.prototype.setUTCMinutes.call(a,Date.prototype.getUTCMinutes.call(a)+k);let l=new Date(+a);l.setUTCSeconds(0);let m=h>0?l.getSeconds():(l.getSeconds()-60)%60,n=Math.round(-(60*bv(a.timeZone,a)))%60;(n||m)&&Date.prototype.setUTCSeconds.call(a,Date.prototype.getUTCSeconds.call(a)+n+m);let o=bv(a.timeZone,a),p=o>0?Math.floor(o):Math.ceil(o),q=-new Date(+a).getTimezoneOffset()-p-k,r=p-f,s=r>0&&bC(a)-d==60*r*1e3&&bC(a,d-60*p*1e3)!==d;if(p!==f&&q&&!s){Date.prototype.setUTCMinutes.call(a,Date.prototype.getUTCMinutes.call(a)+q);let b=bv(a.timeZone,a),c=p-(b>0?Math.floor(b):Math.ceil(b));c&&q<0&&Date.prototype.setUTCMinutes.call(a,Date.prototype.getUTCMinutes.call(a)+c)}bA(a);let t=(b?d:d+1e3*n)-a.internal;t&&18e5>Math.abs(t)&&(Date.prototype.setTime.call(a,+a+t),bA(a))}function bC(a,b){let c=new Date(b??+a);return c.setUTCSeconds(c.getUTCSeconds()-Math.round(-(60*bv(a.timeZone,c)))),+c}Object.getOwnPropertyNames(Date.prototype).forEach(a=>{if(!bz.test(a))return;let b=a.replace(bz,"$1UTC");by.prototype[b]&&(a.startsWith("get")?by.prototype[a]=function(){return this.internal[b]()}:(by.prototype[a]=function(){var a;return Date.prototype[b].apply(this.internal,arguments),a=this,Date.prototype.setFullYear.call(a,a.internal.getUTCFullYear(),a.internal.getUTCMonth(),a.internal.getUTCDate()),Date.prototype.setHours.call(a,a.internal.getUTCHours(),a.internal.getUTCMinutes(),a.internal.getUTCSeconds(),a.internal.getUTCMilliseconds()),bB(a),+this},by.prototype[b]=function(){return Date.prototype[b].apply(this,arguments),bA(this),+this}))});class bD extends by{static tz(a,...b){return b.length?new bD(...b,a):new bD(Date.now(),a)}toISOString(){let[a,b,c]=this.tzComponents(),d=`${a}${b}:${c}`;return this.internal.toISOString().slice(0,-1)+d}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){let[a,b,c,d]=this.internal.toUTCString().split(" ");return`${a?.slice(0,-1)} ${c} ${b} ${d}`}toTimeString(){let a=this.internal.toUTCString().split(" ")[4],[b,c,d]=this.tzComponents();return`${a} GMT${b}${c}${d} (${function(a,b,c="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:a,timeZoneName:c}).format(b).split(/\s/g).slice(2).join(" ")}(this.timeZone,this)})`}toLocaleString(a,b){return Date.prototype.toLocaleString.call(this,a,{...b,timeZone:b?.timeZone||this.timeZone})}toLocaleDateString(a,b){return Date.prototype.toLocaleDateString.call(this,a,{...b,timeZone:b?.timeZone||this.timeZone})}toLocaleTimeString(a,b){return Date.prototype.toLocaleTimeString.call(this,a,{...b,timeZone:b?.timeZone||this.timeZone})}tzComponents(){let a=this.getTimezoneOffset(),b=String(Math.floor(Math.abs(a)/60)).padStart(2,"0"),c=String(Math.abs(a)%60).padStart(2,"0");return[a>0?"-":"+",b,c]}withTimeZone(a){return new bD(+this,a)}[Symbol.for("constructDateFrom")](a){return new bD(+new Date(a),this.timeZone)}}let bE=Symbol.for("constructDateFrom");function bF(a,b){return"function"==typeof a?a(b):a&&"object"==typeof a&&bE in a?a[bE](b):a instanceof Date?new a.constructor(b):new Date(b)}function bG(a,b){return bF(b||a,a)}function bH(a,b,c){let d=bG(a,c?.in);return isNaN(b)?bF(c?.in||a,NaN):(b&&d.setDate(d.getDate()+b),d)}function bI(a,b,c){let d=bG(a,c?.in);if(isNaN(b))return bF(c?.in||a,NaN);if(!b)return d;let e=d.getDate(),f=bF(c?.in||a,d.getTime());return(f.setMonth(d.getMonth()+b+1,0),e>=f.getDate())?f:(d.setFullYear(f.getFullYear(),f.getMonth(),e),d)}function bJ(a){let b=bG(a),c=new Date(Date.UTC(b.getFullYear(),b.getMonth(),b.getDate(),b.getHours(),b.getMinutes(),b.getSeconds(),b.getMilliseconds()));return c.setUTCFullYear(b.getFullYear()),a-c}function bK(a,...b){let c=bF.bind(null,a||b.find(a=>"object"==typeof a));return b.map(c)}function bL(a,b){let c=bG(a,b?.in);return c.setHours(0,0,0,0),c}function bM(a,b,c){let[d,e]=bK(c?.in,a,b),f=bL(d),g=bL(e);return Math.round((f-bJ(f)-(g-bJ(g)))/864e5)}function bN(a,b,c){let[d,e]=bK(c?.in,a,b);return 12*(d.getFullYear()-e.getFullYear())+(d.getMonth()-e.getMonth())}function bO(a,b){let[c,d]=bK(a,b.start,b.end);return{start:c,end:d}}let bP={};function bQ(a,b){let c=b?.weekStartsOn??b?.locale?.options?.weekStartsOn??bP.weekStartsOn??bP.locale?.options?.weekStartsOn??0,d=bG(a,b?.in),e=d.getDay();return d.setDate(d.getDate()+((e<c?-7:0)+6-(e-c))),d.setHours(23,59,59,999),d}let bR={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function bS(a){return (b={})=>{let c=b.width?String(b.width):a.defaultWidth;return a.formats[c]||a.formats[a.defaultWidth]}}let bT={date:bS({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:bS({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:bS({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},bU={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function bV(a){return(b,c)=>{let d;if("formatting"===(c?.context?String(c.context):"standalone")&&a.formattingValues){let b=a.defaultFormattingWidth||a.defaultWidth,e=c?.width?String(c.width):b;d=a.formattingValues[e]||a.formattingValues[b]}else{let b=a.defaultWidth,e=c?.width?String(c.width):a.defaultWidth;d=a.values[e]||a.values[b]}return d[a.argumentCallback?a.argumentCallback(b):b]}}function bW(a){return(b,c={})=>{let d,e=c.width,f=e&&a.matchPatterns[e]||a.matchPatterns[a.defaultMatchWidth],g=b.match(f);if(!g)return null;let h=g[0],i=e&&a.parsePatterns[e]||a.parsePatterns[a.defaultParseWidth],j=Array.isArray(i)?function(a,b){for(let c=0;c<a.length;c++)if(b(a[c]))return c}(i,a=>a.test(h)):function(a,b){for(let c in a)if(Object.prototype.hasOwnProperty.call(a,c)&&b(a[c]))return c}(i,a=>a.test(h));return d=a.valueCallback?a.valueCallback(j):j,{value:d=c.valueCallback?c.valueCallback(d):d,rest:b.slice(h.length)}}}let bX={code:"en-US",formatDistance:(a,b,c)=>{let d,e=bR[a];if(d="string"==typeof e?e:1===b?e.one:e.other.replace("{{count}}",b.toString()),c?.addSuffix)if(c.comparison&&c.comparison>0)return"in "+d;else return d+" ago";return d},formatLong:bT,formatRelative:(a,b,c,d)=>bU[a],localize:{ordinalNumber:(a,b)=>{let c=Number(a),d=c%100;if(d>20||d<10)switch(d%10){case 1:return c+"st";case 2:return c+"nd";case 3:return c+"rd"}return c+"th"},era:bV({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:bV({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:a=>a-1}),month:bV({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:bV({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:bV({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(b={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:a=>parseInt(a,10)},(a,c={})=>{let d=a.match(b.matchPattern);if(!d)return null;let e=d[0],f=a.match(b.parsePattern);if(!f)return null;let g=b.valueCallback?b.valueCallback(f[0]):f[0];return{value:g=c.valueCallback?c.valueCallback(g):g,rest:a.slice(e.length)}}),era:bW({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:bW({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:a=>a+1}),month:bW({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:bW({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:bW({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function bY(a,b){let c=bG(a,b?.in);return c.setFullYear(c.getFullYear(),0,1),c.setHours(0,0,0,0),c}function bZ(a,b){let c=b?.weekStartsOn??b?.locale?.options?.weekStartsOn??bP.weekStartsOn??bP.locale?.options?.weekStartsOn??0,d=bG(a,b?.in),e=d.getDay();return d.setDate(d.getDate()-(7*(e<c)+e-c)),d.setHours(0,0,0,0),d}function b$(a,b){return bZ(a,{...b,weekStartsOn:1})}function b_(a,b){let c=bG(a,b?.in),d=c.getFullYear(),e=bF(c,0);e.setFullYear(d+1,0,4),e.setHours(0,0,0,0);let f=b$(e),g=bF(c,0);g.setFullYear(d,0,4),g.setHours(0,0,0,0);let h=b$(g);return c.getTime()>=f.getTime()?d+1:c.getTime()>=h.getTime()?d:d-1}function b0(a,b){let c,d,e=bG(a,b?.in);return Math.round((b$(e)-(c=b_(e,void 0),(d=bF(e,0)).setFullYear(c,0,4),d.setHours(0,0,0,0),b$(d)))/6048e5)+1}function b1(a,b){let c=bG(a,b?.in),d=c.getFullYear(),e=b?.firstWeekContainsDate??b?.locale?.options?.firstWeekContainsDate??bP.firstWeekContainsDate??bP.locale?.options?.firstWeekContainsDate??1,f=bF(b?.in||a,0);f.setFullYear(d+1,0,e),f.setHours(0,0,0,0);let g=bZ(f,b),h=bF(b?.in||a,0);h.setFullYear(d,0,e),h.setHours(0,0,0,0);let i=bZ(h,b);return+c>=+g?d+1:+c>=+i?d:d-1}function b2(a,b){let c,d,e,f=bG(a,b?.in);return Math.round((bZ(f,b)-(c=b?.firstWeekContainsDate??b?.locale?.options?.firstWeekContainsDate??bP.firstWeekContainsDate??bP.locale?.options?.firstWeekContainsDate??1,d=b1(f,b),(e=bF(b?.in||f,0)).setFullYear(d,0,c),e.setHours(0,0,0,0),bZ(e,b)))/6048e5)+1}function b3(a,b){let c=Math.abs(a).toString().padStart(b,"0");return(a<0?"-":"")+c}let b4={y(a,b){let c=a.getFullYear(),d=c>0?c:1-c;return b3("yy"===b?d%100:d,b.length)},M(a,b){let c=a.getMonth();return"M"===b?String(c+1):b3(c+1,2)},d:(a,b)=>b3(a.getDate(),b.length),a(a,b){let c=a.getHours()/12>=1?"pm":"am";switch(b){case"a":case"aa":return c.toUpperCase();case"aaa":return c;case"aaaaa":return c[0];default:return"am"===c?"a.m.":"p.m."}},h:(a,b)=>b3(a.getHours()%12||12,b.length),H:(a,b)=>b3(a.getHours(),b.length),m:(a,b)=>b3(a.getMinutes(),b.length),s:(a,b)=>b3(a.getSeconds(),b.length),S(a,b){let c=b.length;return b3(Math.trunc(a.getMilliseconds()*Math.pow(10,c-3)),b.length)}},b5={G:function(a,b,c){let d=+(a.getFullYear()>0);switch(b){case"G":case"GG":case"GGG":return c.era(d,{width:"abbreviated"});case"GGGGG":return c.era(d,{width:"narrow"});default:return c.era(d,{width:"wide"})}},y:function(a,b,c){if("yo"===b){let b=a.getFullYear();return c.ordinalNumber(b>0?b:1-b,{unit:"year"})}return b4.y(a,b)},Y:function(a,b,c,d){let e=b1(a,d),f=e>0?e:1-e;return"YY"===b?b3(f%100,2):"Yo"===b?c.ordinalNumber(f,{unit:"year"}):b3(f,b.length)},R:function(a,b){return b3(b_(a),b.length)},u:function(a,b){return b3(a.getFullYear(),b.length)},Q:function(a,b,c){let d=Math.ceil((a.getMonth()+1)/3);switch(b){case"Q":return String(d);case"QQ":return b3(d,2);case"Qo":return c.ordinalNumber(d,{unit:"quarter"});case"QQQ":return c.quarter(d,{width:"abbreviated",context:"formatting"});case"QQQQQ":return c.quarter(d,{width:"narrow",context:"formatting"});default:return c.quarter(d,{width:"wide",context:"formatting"})}},q:function(a,b,c){let d=Math.ceil((a.getMonth()+1)/3);switch(b){case"q":return String(d);case"qq":return b3(d,2);case"qo":return c.ordinalNumber(d,{unit:"quarter"});case"qqq":return c.quarter(d,{width:"abbreviated",context:"standalone"});case"qqqqq":return c.quarter(d,{width:"narrow",context:"standalone"});default:return c.quarter(d,{width:"wide",context:"standalone"})}},M:function(a,b,c){let d=a.getMonth();switch(b){case"M":case"MM":return b4.M(a,b);case"Mo":return c.ordinalNumber(d+1,{unit:"month"});case"MMM":return c.month(d,{width:"abbreviated",context:"formatting"});case"MMMMM":return c.month(d,{width:"narrow",context:"formatting"});default:return c.month(d,{width:"wide",context:"formatting"})}},L:function(a,b,c){let d=a.getMonth();switch(b){case"L":return String(d+1);case"LL":return b3(d+1,2);case"Lo":return c.ordinalNumber(d+1,{unit:"month"});case"LLL":return c.month(d,{width:"abbreviated",context:"standalone"});case"LLLLL":return c.month(d,{width:"narrow",context:"standalone"});default:return c.month(d,{width:"wide",context:"standalone"})}},w:function(a,b,c,d){let e=b2(a,d);return"wo"===b?c.ordinalNumber(e,{unit:"week"}):b3(e,b.length)},I:function(a,b,c){let d=b0(a);return"Io"===b?c.ordinalNumber(d,{unit:"week"}):b3(d,b.length)},d:function(a,b,c){return"do"===b?c.ordinalNumber(a.getDate(),{unit:"date"}):b4.d(a,b)},D:function(a,b,c){let d,e=bM(d=bG(a,void 0),bY(d))+1;return"Do"===b?c.ordinalNumber(e,{unit:"dayOfYear"}):b3(e,b.length)},E:function(a,b,c){let d=a.getDay();switch(b){case"E":case"EE":case"EEE":return c.day(d,{width:"abbreviated",context:"formatting"});case"EEEEE":return c.day(d,{width:"narrow",context:"formatting"});case"EEEEEE":return c.day(d,{width:"short",context:"formatting"});default:return c.day(d,{width:"wide",context:"formatting"})}},e:function(a,b,c,d){let e=a.getDay(),f=(e-d.weekStartsOn+8)%7||7;switch(b){case"e":return String(f);case"ee":return b3(f,2);case"eo":return c.ordinalNumber(f,{unit:"day"});case"eee":return c.day(e,{width:"abbreviated",context:"formatting"});case"eeeee":return c.day(e,{width:"narrow",context:"formatting"});case"eeeeee":return c.day(e,{width:"short",context:"formatting"});default:return c.day(e,{width:"wide",context:"formatting"})}},c:function(a,b,c,d){let e=a.getDay(),f=(e-d.weekStartsOn+8)%7||7;switch(b){case"c":return String(f);case"cc":return b3(f,b.length);case"co":return c.ordinalNumber(f,{unit:"day"});case"ccc":return c.day(e,{width:"abbreviated",context:"standalone"});case"ccccc":return c.day(e,{width:"narrow",context:"standalone"});case"cccccc":return c.day(e,{width:"short",context:"standalone"});default:return c.day(e,{width:"wide",context:"standalone"})}},i:function(a,b,c){let d=a.getDay(),e=0===d?7:d;switch(b){case"i":return String(e);case"ii":return b3(e,b.length);case"io":return c.ordinalNumber(e,{unit:"day"});case"iii":return c.day(d,{width:"abbreviated",context:"formatting"});case"iiiii":return c.day(d,{width:"narrow",context:"formatting"});case"iiiiii":return c.day(d,{width:"short",context:"formatting"});default:return c.day(d,{width:"wide",context:"formatting"})}},a:function(a,b,c){let d=a.getHours()/12>=1?"pm":"am";switch(b){case"a":case"aa":return c.dayPeriod(d,{width:"abbreviated",context:"formatting"});case"aaa":return c.dayPeriod(d,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return c.dayPeriod(d,{width:"narrow",context:"formatting"});default:return c.dayPeriod(d,{width:"wide",context:"formatting"})}},b:function(a,b,c){let d,e=a.getHours();switch(d=12===e?"noon":0===e?"midnight":e/12>=1?"pm":"am",b){case"b":case"bb":return c.dayPeriod(d,{width:"abbreviated",context:"formatting"});case"bbb":return c.dayPeriod(d,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return c.dayPeriod(d,{width:"narrow",context:"formatting"});default:return c.dayPeriod(d,{width:"wide",context:"formatting"})}},B:function(a,b,c){let d,e=a.getHours();switch(d=e>=17?"evening":e>=12?"afternoon":e>=4?"morning":"night",b){case"B":case"BB":case"BBB":return c.dayPeriod(d,{width:"abbreviated",context:"formatting"});case"BBBBB":return c.dayPeriod(d,{width:"narrow",context:"formatting"});default:return c.dayPeriod(d,{width:"wide",context:"formatting"})}},h:function(a,b,c){if("ho"===b){let b=a.getHours()%12;return 0===b&&(b=12),c.ordinalNumber(b,{unit:"hour"})}return b4.h(a,b)},H:function(a,b,c){return"Ho"===b?c.ordinalNumber(a.getHours(),{unit:"hour"}):b4.H(a,b)},K:function(a,b,c){let d=a.getHours()%12;return"Ko"===b?c.ordinalNumber(d,{unit:"hour"}):b3(d,b.length)},k:function(a,b,c){let d=a.getHours();return(0===d&&(d=24),"ko"===b)?c.ordinalNumber(d,{unit:"hour"}):b3(d,b.length)},m:function(a,b,c){return"mo"===b?c.ordinalNumber(a.getMinutes(),{unit:"minute"}):b4.m(a,b)},s:function(a,b,c){return"so"===b?c.ordinalNumber(a.getSeconds(),{unit:"second"}):b4.s(a,b)},S:function(a,b){return b4.S(a,b)},X:function(a,b,c){let d=a.getTimezoneOffset();if(0===d)return"Z";switch(b){case"X":return b7(d);case"XXXX":case"XX":return b8(d);default:return b8(d,":")}},x:function(a,b,c){let d=a.getTimezoneOffset();switch(b){case"x":return b7(d);case"xxxx":case"xx":return b8(d);default:return b8(d,":")}},O:function(a,b,c){let d=a.getTimezoneOffset();switch(b){case"O":case"OO":case"OOO":return"GMT"+b6(d,":");default:return"GMT"+b8(d,":")}},z:function(a,b,c){let d=a.getTimezoneOffset();switch(b){case"z":case"zz":case"zzz":return"GMT"+b6(d,":");default:return"GMT"+b8(d,":")}},t:function(a,b,c){return b3(Math.trunc(a/1e3),b.length)},T:function(a,b,c){return b3(+a,b.length)}};function b6(a,b=""){let c=a>0?"-":"+",d=Math.abs(a),e=Math.trunc(d/60),f=d%60;return 0===f?c+String(e):c+String(e)+b+b3(f,2)}function b7(a,b){return a%60==0?(a>0?"-":"+")+b3(Math.abs(a)/60,2):b8(a,b)}function b8(a,b=""){let c=Math.abs(a);return(a>0?"-":"+")+b3(Math.trunc(c/60),2)+b+b3(c%60,2)}let b9=(a,b)=>{switch(a){case"P":return b.date({width:"short"});case"PP":return b.date({width:"medium"});case"PPP":return b.date({width:"long"});default:return b.date({width:"full"})}},ca=(a,b)=>{switch(a){case"p":return b.time({width:"short"});case"pp":return b.time({width:"medium"});case"ppp":return b.time({width:"long"});default:return b.time({width:"full"})}},cb={p:ca,P:(a,b)=>{let c,d=a.match(/(P+)(p+)?/)||[],e=d[1],f=d[2];if(!f)return b9(a,b);switch(e){case"P":c=b.dateTime({width:"short"});break;case"PP":c=b.dateTime({width:"medium"});break;case"PPP":c=b.dateTime({width:"long"});break;default:c=b.dateTime({width:"full"})}return c.replace("{{date}}",b9(e,b)).replace("{{time}}",ca(f,b))}},cc=/^D+$/,cd=/^Y+$/,ce=["D","DD","YY","YYYY"];function cf(a){return a instanceof Date||"object"==typeof a&&"[object Date]"===Object.prototype.toString.call(a)}let cg=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ch=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ci=/^'([^]*?)'?$/,cj=/''/g,ck=/[a-zA-Z]/;function cl(a,b,c){let d=c?.locale??bP.locale??bX,e=c?.firstWeekContainsDate??c?.locale?.options?.firstWeekContainsDate??bP.firstWeekContainsDate??bP.locale?.options?.firstWeekContainsDate??1,f=c?.weekStartsOn??c?.locale?.options?.weekStartsOn??bP.weekStartsOn??bP.locale?.options?.weekStartsOn??0,g=bG(a,c?.in);if(!cf(g)&&"number"!=typeof g||isNaN(+bG(g)))throw RangeError("Invalid time value");let h=b.match(ch).map(a=>{let b=a[0];return"p"===b||"P"===b?(0,cb[b])(a,d.formatLong):a}).join("").match(cg).map(a=>{if("''"===a)return{isToken:!1,value:"'"};let b=a[0];if("'"===b){var c;let b;return{isToken:!1,value:(b=(c=a).match(ci))?b[1].replace(cj,"'"):c}}if(b5[b])return{isToken:!0,value:a};if(b.match(ck))throw RangeError("Format string contains an unescaped latin alphabet character `"+b+"`");return{isToken:!1,value:a}});d.localize.preprocessor&&(h=d.localize.preprocessor(g,h));let i={firstWeekContainsDate:e,weekStartsOn:f,locale:d};return h.map(e=>{if(!e.isToken)return e.value;let f=e.value;return(!c?.useAdditionalWeekYearTokens&&cd.test(f)||!c?.useAdditionalDayOfYearTokens&&cc.test(f))&&function(a,b,c){var d,e,f;let g,h=(d=a,e=b,f=c,g="Y"===d[0]?"years":"days of the month",`Use \`${d.toLowerCase()}\` instead of \`${d}\` (in \`${e}\`) for formatting ${g} to the input \`${f}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`);if(console.warn(h),ce.includes(a))throw RangeError(h)}(f,b,String(a)),(0,b5[f[0]])(g,f,d.localize,i)}).join("")}function cm(a,b){let c=b.startOfMonth(a),d=c.getDay();return 1===d?c:0===d?b.addDays(c,-6):b.addDays(c,-1*(d-1))}let cn={...bX,labels:{labelDayButton:(a,b,c,d)=>{let e=(d&&"function"==typeof d.format?d.format.bind(d):(a,b)=>cl(a,b,{locale:bX,...c}))(a,"PPPP");return b.today&&(e=`Today, ${e}`),b.selected&&(e=`${e}, selected`),e},labelMonthDropdown:"Choose the Month",labelNext:"Go to the Next Month",labelPrevious:"Go to the Previous Month",labelWeekNumber:a=>`Week ${a}`,labelYearDropdown:"Choose the Year",labelGrid:(a,b,c)=>(c&&"function"==typeof c.format?c.format.bind(c):(a,c)=>cl(a,c,{locale:bX,...b}))(a,"LLLL yyyy"),labelGridcell:(a,b,c,d)=>{let e=(d&&"function"==typeof d.format?d.format.bind(d):(a,b)=>cl(a,b,{locale:bX,...c}))(a,"PPPP");return b?.today&&(e=`Today, ${e}`),e},labelNav:"Navigation bar",labelWeekNumberHeader:"Week Number",labelWeekday:(a,b,c)=>(c&&"function"==typeof c.format?c.format.bind(c):(a,c)=>cl(a,c,{locale:bX,...b}))(a,"cccc")}};class co{constructor(a,b){this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?bD.tz(this.options.timeZone):new(this.options.Date??Date),this.newDate=(a,b,c)=>this.overrides?.newDate?this.overrides.newDate(a,b,c):this.options.timeZone?new bD(a,b,c,this.options.timeZone):new Date(a,b,c),this.addDays=(a,b)=>this.overrides?.addDays?this.overrides.addDays(a,b):bH(a,b),this.addMonths=(a,b)=>this.overrides?.addMonths?this.overrides.addMonths(a,b):bI(a,b),this.addWeeks=(a,b)=>this.overrides?.addWeeks?this.overrides.addWeeks(a,b):bH(a,7*b,void 0),this.addYears=(a,b)=>this.overrides?.addYears?this.overrides.addYears(a,b):bI(a,12*b,void 0),this.differenceInCalendarDays=(a,b)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(a,b):bM(a,b),this.differenceInCalendarMonths=(a,b)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(a,b):bN(a,b),this.eachMonthOfInterval=a=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(a):function(a){let{start:b,end:c}=bO(void 0,a),d=+b>+c,e=d?+b:+c,f=d?c:b;f.setHours(0,0,0,0),f.setDate(1);let g=(void 0)??1;if(!g)return[];g<0&&(g=-g,d=!d);let h=[];for(;+f<=e;)h.push(bF(b,f)),f.setMonth(f.getMonth()+g);return d?h.reverse():h}(a),this.eachYearOfInterval=a=>{let b=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(a):function(a){let{start:b,end:c}=bO(void 0,a),d=+b>+c,e=d?+b:+c,f=d?c:b;f.setHours(0,0,0,0),f.setMonth(0,1);let g=(void 0)??1;if(!g)return[];g<0&&(g=-g,d=!d);let h=[];for(;+f<=e;)h.push(bF(b,f)),f.setFullYear(f.getFullYear()+g);return d?h.reverse():h}(a),c=new Set(b.map(a=>this.getYear(a)));if(c.size===b.length)return b;let d=[];return c.forEach(a=>{d.push(new Date(a,0,1))}),d},this.endOfBroadcastWeek=a=>{let b,c,d,e,f,g;return this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(a):(b=cm(a,this),d=(c=this.startOfMonth(a)).getDay()>0?c.getDay():7,e=this.addDays(a,-d+1),f=this.addDays(e,34),g=this.getMonth(a)===this.getMonth(f)?5:4,this.addDays(b,7*g-1))},this.endOfISOWeek=a=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(a):bQ(a,{...void 0,weekStartsOn:1}),this.endOfMonth=a=>{let b,c;return this.overrides?.endOfMonth?this.overrides.endOfMonth(a):(c=(b=bG(a,void 0)).getMonth(),b.setFullYear(b.getFullYear(),c+1,0),b.setHours(23,59,59,999),b)},this.endOfWeek=(a,b)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(a,b):bQ(a,this.options),this.endOfYear=a=>{let b,c;return this.overrides?.endOfYear?this.overrides.endOfYear(a):(c=(b=bG(a,void 0)).getFullYear(),b.setFullYear(c+1,0,0),b.setHours(23,59,59,999),b)},this.format=(a,b,c)=>{let d=this.overrides?.format?this.overrides.format(a,b,this.options):cl(a,b,this.options);return this.options.numerals&&"latn"!==this.options.numerals?this.replaceDigits(d):d},this.getISOWeek=a=>this.overrides?.getISOWeek?this.overrides.getISOWeek(a):b0(a),this.getMonth=(a,b)=>{var c;return this.overrides?.getMonth?this.overrides.getMonth(a,this.options):(c=this.options,bG(a,c?.in).getMonth())},this.getYear=(a,b)=>{var c;return this.overrides?.getYear?this.overrides.getYear(a,this.options):(c=this.options,bG(a,c?.in).getFullYear())},this.getWeek=(a,b)=>this.overrides?.getWeek?this.overrides.getWeek(a,this.options):b2(a,this.options),this.isAfter=(a,b)=>this.overrides?.isAfter?this.overrides.isAfter(a,b):+bG(a)>+bG(b),this.isBefore=(a,b)=>this.overrides?.isBefore?this.overrides.isBefore(a,b):+bG(a)<+bG(b),this.isDate=a=>this.overrides?.isDate?this.overrides.isDate(a):cf(a),this.isSameDay=(a,b)=>this.overrides?.isSameDay?this.overrides.isSameDay(a,b):function(a,b){let[c,d]=bK(void 0,a,b);return+bL(c)==+bL(d)}(a,b),this.isSameMonth=(a,b)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(a,b):function(a,b){let[c,d]=bK(void 0,a,b);return c.getFullYear()===d.getFullYear()&&c.getMonth()===d.getMonth()}(a,b),this.isSameYear=(a,b)=>this.overrides?.isSameYear?this.overrides.isSameYear(a,b):function(a,b){let[c,d]=bK(void 0,a,b);return c.getFullYear()===d.getFullYear()}(a,b),this.max=a=>{let b,c;return this.overrides?.max?this.overrides.max(a):(c=void 0,a.forEach(a=>{c||"object"!=typeof a||(c=bF.bind(null,a));let d=bG(a,c);(!b||b<d||isNaN(+d))&&(b=d)}),bF(c,b||NaN))},this.min=a=>{let b,c;return this.overrides?.min?this.overrides.min(a):(c=void 0,a.forEach(a=>{c||"object"!=typeof a||(c=bF.bind(null,a));let d=bG(a,c);(!b||b>d||isNaN(+d))&&(b=d)}),bF(c,b||NaN))},this.setMonth=(a,b)=>{var c,d;let e,f,g,h,i,j,k,l,m;return this.overrides?.setMonth?this.overrides.setMonth(a,b):(c=a,d=b,j=(i=bG(c,void 0)).getFullYear(),k=i.getDate(),(l=bF(c,0)).setFullYear(j,d,15),l.setHours(0,0,0,0),m=(f=(e=bG(l,void 0)).getFullYear(),g=e.getMonth(),(h=bF(e,0)).setFullYear(f,g+1,0),h.setHours(0,0,0,0),h.getDate()),i.setMonth(d,Math.min(k,m)),i)},this.setYear=(a,b)=>{let c;return this.overrides?.setYear?this.overrides.setYear(a,b):isNaN(+(c=bG(a,void 0)))?bF(a,NaN):(c.setFullYear(b),c)},this.startOfBroadcastWeek=(a,b)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(a,this):cm(a,this),this.startOfDay=a=>this.overrides?.startOfDay?this.overrides.startOfDay(a):bL(a),this.startOfISOWeek=a=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(a):b$(a),this.startOfMonth=a=>{let b;return this.overrides?.startOfMonth?this.overrides.startOfMonth(a):((b=bG(a,void 0)).setDate(1),b.setHours(0,0,0,0),b)},this.startOfWeek=(a,b)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(a,this.options):bZ(a,this.options),this.startOfYear=a=>this.overrides?.startOfYear?this.overrides.startOfYear(a):bY(a),this.options={locale:cn,...a},this.overrides=b}getDigitMap(){let{numerals:a="latn"}=this.options,b=new Intl.NumberFormat("en-US",{numberingSystem:a}),c={};for(let a=0;a<10;a++)c[a.toString()]=b.format(a);return c}replaceDigits(a){let b=this.getDigitMap();return a.replace(/\d/g,a=>b[a]||a)}formatNumber(a){return this.replaceDigits(a.toString())}getMonthYearOrder(){let a=this.options.locale?.code;return a&&co.yearFirstLocales.has(a)?"year-first":"month-first"}formatMonthYear(a){let{locale:b,timeZone:c,numerals:d}=this.options,e=b?.code;if(e&&co.yearFirstLocales.has(e))try{return new Intl.DateTimeFormat(e,{month:"long",year:"numeric",timeZone:c,numberingSystem:d}).format(a)}catch{}let f="year-first"===this.getMonthYearOrder()?"y LLLL":"LLLL y";return this.format(a,f)}}co.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);let cp=new co;function cq(a,b,c=!1,d=cp){let{from:e,to:f}=a,{differenceInCalendarDays:g,isSameDay:h}=d;return e&&f?(0>g(f,e)&&([e,f]=[f,e]),g(b,e)>=+!!c&&g(f,b)>=+!!c):!c&&f?h(f,b):!c&&!!e&&h(e,b)}function cr(a){return!!(a&&"object"==typeof a&&"before"in a&&"after"in a)}function cs(a){return!!(a&&"object"==typeof a&&"from"in a)}function ct(a){return!!(a&&"object"==typeof a&&"after"in a)}function cu(a){return!!(a&&"object"==typeof a&&"before"in a)}function cv(a){return!!(a&&"object"==typeof a&&"dayOfWeek"in a)}function cw(a,b){return Array.isArray(a)&&a.every(b.isDate)}function cx(a,b,c=cp){let d=Array.isArray(b)?b:[b],{isSameDay:e,differenceInCalendarDays:f,isAfter:g}=c;return d.some(b=>{if("boolean"==typeof b)return b;if(c.isDate(b))return e(a,b);if(cw(b,c))return b.some(b=>e(a,b));if(cs(b))return cq(b,a,!1,c);if(cv(b))return Array.isArray(b.dayOfWeek)?b.dayOfWeek.includes(a.getDay()):b.dayOfWeek===a.getDay();if(cr(b)){let c=f(b.before,a),d=f(b.after,a),e=c>0,h=d<0;return g(b.before,b.after)?h&&e:e||h}return ct(b)?f(a,b.after)>0:cu(b)?f(b.before,a)>0:"function"==typeof b&&b(a)})}function cy(a){return n.default.createElement("span",{...a})}function cz(a){let{size:b=24,orientation:c="left",className:d,style:e}=a;return n.default.createElement("svg",{className:d,style:e,width:b,height:b,viewBox:"0 0 24 24"},"up"===c&&n.default.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),"down"===c&&n.default.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),"left"===c&&n.default.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),"right"===c&&n.default.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function cA(a){let{day:b,modifiers:c,...d}=a;return n.default.createElement("td",{...d})}function cB(a){let{day:b,modifiers:c,...d}=a,e=n.default.useRef(null);return n.default.useEffect(()=>{c.focused&&e.current?.focus()},[c.focused]),n.default.createElement("button",{ref:e,...d})}(c=h||(h={})).Root="root",c.Chevron="chevron",c.Day="day",c.DayButton="day_button",c.CaptionLabel="caption_label",c.Dropdowns="dropdowns",c.Dropdown="dropdown",c.DropdownRoot="dropdown_root",c.Footer="footer",c.MonthGrid="month_grid",c.MonthCaption="month_caption",c.MonthsDropdown="months_dropdown",c.Month="month",c.Months="months",c.Nav="nav",c.NextMonthButton="button_next",c.PreviousMonthButton="button_previous",c.Week="week",c.Weeks="weeks",c.Weekday="weekday",c.Weekdays="weekdays",c.WeekNumber="week_number",c.WeekNumberHeader="week_number_header",c.YearsDropdown="years_dropdown",(d=i||(i={})).disabled="disabled",d.hidden="hidden",d.outside="outside",d.focused="focused",d.today="today",(e=j||(j={})).range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected",(f=k||(k={})).weeks_before_enter="weeks_before_enter",f.weeks_before_exit="weeks_before_exit",f.weeks_after_enter="weeks_after_enter",f.weeks_after_exit="weeks_after_exit",f.caption_after_enter="caption_after_enter",f.caption_after_exit="caption_after_exit",f.caption_before_enter="caption_before_enter",f.caption_before_exit="caption_before_exit",a.s([],29367),a.i(29367),a.s(["CaptionLabel",0,cy],50617),a.i(50617),a.s(["Chevron",0,cz],8955),a.i(8955),a.s(["Day",0,cA],22273),a.i(22273),a.s(["DayButton",0,cB],88886),a.i(88886);let cC=(0,n.createContext)(void 0);function cD(){let a=(0,n.useContext)(cC);if(void 0===a)throw Error("useDayPicker() must be used within a custom component.");return a}function cE(a){let{options:b,className:c,...d}=a,{classNames:e,components:f,styles:g}=cD(),i=[e[h.Dropdown],c].join(" "),j=b?.find(({value:a})=>a===d.value);return n.default.createElement("span",{"data-disabled":d.disabled,className:e[h.DropdownRoot],style:g?.[h.DropdownRoot]},n.default.createElement(f.Select,{className:i,...d},b?.map(({value:a,label:b,disabled:c})=>n.default.createElement(f.Option,{key:a,value:a,disabled:c},b))),n.default.createElement("span",{className:e[h.CaptionLabel],style:g?.[h.CaptionLabel],"aria-hidden":!0},j?.label,n.default.createElement(f.Chevron,{orientation:"down",size:18,className:e[h.Chevron],style:g?.[h.Chevron]})))}function cF(a){return n.default.createElement("div",{...a})}function cG(a){return n.default.createElement("div",{...a})}function cH(a){let{calendarMonth:b,displayIndex:c,...d}=a;return n.default.createElement("div",{...d},a.children)}function cI(a){let{calendarMonth:b,displayIndex:c,...d}=a;return n.default.createElement("div",{...d})}function cJ(a){return n.default.createElement("table",{...a})}function cK(a){return n.default.createElement("div",{...a})}function cL(a){let{components:b}=cD();return n.default.createElement(b.Dropdown,{...a})}function cM(a){let{onPreviousClick:b,onNextClick:c,previousMonth:d,nextMonth:e,...f}=a,{components:g,classNames:i,styles:j,labels:{labelPrevious:k,labelNext:l}}=cD(),m=(0,n.useCallback)(a=>{e&&c?.(a)},[e,c]),o=(0,n.useCallback)(a=>{d&&b?.(a)},[d,b]);return n.default.createElement("nav",{...f},n.default.createElement(g.PreviousMonthButton,{type:"button",className:i[h.PreviousMonthButton],style:j?.[h.PreviousMonthButton],tabIndex:d?void 0:-1,"aria-disabled":!d||void 0,"aria-label":k(d),onClick:o},n.default.createElement(g.Chevron,{disabled:!d||void 0,className:i[h.Chevron],style:j?.[h.Chevron],orientation:"left"})),n.default.createElement(g.NextMonthButton,{type:"button",className:i[h.NextMonthButton],style:j?.[h.NextMonthButton],tabIndex:e?void 0:-1,"aria-disabled":!e||void 0,"aria-label":l(e),onClick:m},n.default.createElement(g.Chevron,{disabled:!e||void 0,orientation:"right",className:i[h.Chevron],style:j?.[h.Chevron]})))}function cN(a){return n.default.createElement("button",{...a})}function cO(a){return n.default.createElement("option",{...a})}function cP(a){return n.default.createElement("button",{...a})}function cQ(a){let{rootRef:b,...c}=a;return n.default.createElement("div",{...c,ref:b})}function cR(a){return n.default.createElement("select",{...a})}function cS(a){let{week:b,...c}=a;return n.default.createElement("tr",{...c})}function cT(a){return n.default.createElement("th",{...a})}function cU(a){return n.default.createElement("thead",{"aria-hidden":!0},n.default.createElement("tr",{...a}))}function cV(a){let{week:b,...c}=a;return n.default.createElement("th",{...c})}function cW(a){return n.default.createElement("th",{...a})}function cX(a){return n.default.createElement("tbody",{...a})}function cY(a){let{components:b}=cD();return n.default.createElement(b.Dropdown,{...a})}a.s(["Dropdown",0,cE],52221),a.i(52221),a.s(["DropdownNav",0,cF],48576),a.i(48576),a.s(["Footer",0,cG],65921),a.i(65921),a.s(["Month",0,cH],35494),a.i(35494),a.s(["MonthCaption",0,cI],56439),a.i(56439),a.s(["MonthGrid",0,cJ],19414),a.i(19414),a.s(["Months",0,cK],25616),a.i(25616),a.s(["MonthsDropdown",0,cL],42093),a.i(42093),a.s(["Nav",0,cM],1317),a.i(1317),a.s(["NextMonthButton",0,cN],92386),a.i(92386),a.s(["Option",0,cO],81191),a.i(81191),a.s(["PreviousMonthButton",0,cP],7441),a.i(7441),a.s(["Root",0,cQ],51161),a.i(51161),a.s(["Select",0,cR],21740),a.i(21740),a.s(["Week",0,cS],96002),a.i(96002),a.s(["Weekday",0,cT],49039),a.i(49039),a.s(["Weekdays",0,cU],5213),a.i(5213),a.s(["WeekNumber",0,cV],22797),a.i(22797),a.s(["WeekNumberHeader",0,cW],7279),a.i(7279),a.s(["Weeks",0,cX],20510),a.i(20510),a.s(["YearsDropdown",0,cY],91190),a.i(91190),a.s(["CaptionLabel",0,cy,"Chevron",0,cz,"Day",0,cA,"DayButton",0,cB,"Dropdown",0,cE,"DropdownNav",0,cF,"Footer",0,cG,"Month",0,cH,"MonthCaption",0,cI,"MonthGrid",0,cJ,"Months",0,cK,"MonthsDropdown",0,cL,"Nav",0,cM,"NextMonthButton",0,cN,"Option",0,cO,"PreviousMonthButton",0,cP,"Root",0,cQ,"Select",0,cR,"Week",0,cS,"WeekNumber",0,cV,"WeekNumberHeader",0,cW,"Weekday",0,cT,"Weekdays",0,cU,"Weeks",0,cX,"YearsDropdown",0,cY],18134);var cZ=a.i(18134);function c$(){let a={};for(let b in h)a[h[b]]=`rdp-${h[b]}`;for(let b in i)a[i[b]]=`rdp-${i[b]}`;for(let b in j)a[j[b]]=`rdp-${j[b]}`;for(let b in k)a[k[b]]=`rdp-${k[b]}`;return a}function c_(a,b,c){return(c??new co(b)).formatMonthYear(a)}function c0(a,b,c){return(c??new co(b)).format(a,"d")}function c1(a,b=cp){return b.format(a,"LLLL")}function c2(a,b,c){return(c??new co(b)).format(a,"cccccc")}function c3(a,b=cp){return a<10?b.formatNumber(`0${a.toLocaleString()}`):b.formatNumber(`${a.toLocaleString()}`)}function c4(){return""}function c5(a,b=cp){return b.format(a,"yyyy")}a.s([],11810),a.i(11810),a.s(["formatCaption",0,c_],48255),a.i(48255),a.s(["formatDay",0,c0],73300),a.i(73300),a.s(["formatMonthDropdown",0,c1],11751),a.i(11751),a.s(["formatWeekdayName",0,c2],14404),a.i(14404),a.s(["formatWeekNumber",0,c3],44870),a.i(44870),a.s(["formatWeekNumberHeader",0,c4],81466),a.i(81466),a.s(["formatYearDropdown",0,c5],62581),a.i(62581),a.s(["formatCaption",0,c_,"formatDay",0,c0,"formatMonthDropdown",0,c1,"formatWeekNumber",0,c3,"formatWeekNumberHeader",0,c4,"formatWeekdayName",0,c2,"formatYearDropdown",0,c5],54601);var c6=a.i(54601);function c7(a,b,c,d){let e=(d??new co(c)).format(a,"PPPP");return b.today&&(e=`Today, ${e}`),b.selected&&(e=`${e}, selected`),e}function c8(a,b,c){return(c??new co(b)).formatMonthYear(a)}function c9(a,b,c,d){let e=(d??new co(c)).format(a,"PPPP");return b?.today&&(e=`Today, ${e}`),e}function da(a){return"Choose the Month"}function db(){return""}function dc(a,b){return"Go to the Next Month"}function dd(a){return"Go to the Previous Month"}function de(a,b,c){return(c??new co(b)).format(a,"cccc")}function df(a,b){return`Week ${a}`}function dg(a){return"Week Number"}function dh(a){return"Choose the Year"}a.s([],60647),a.i(60647),a.s(["labelDayButton",0,c7],55036),a.i(55036),a.s(["labelGrid",0,c8],11815),a.i(11815),a.s(["labelGridcell",0,c9],93100),a.i(93100),a.s(["labelMonthDropdown",0,da],73906),a.i(73906),a.s(["labelNav",0,db],17056),a.i(17056),a.s(["labelNext",0,dc],1597),a.i(1597),a.s(["labelPrevious",0,dd],59e3),a.i(59e3),a.s(["labelWeekday",0,de],72546),a.i(72546),a.s(["labelWeekNumber",0,df],25803),a.i(25803),a.s(["labelWeekNumberHeader",0,dg],99847),a.i(99847),a.s(["labelYearDropdown",0,dh],73243),a.i(73243),a.s(["labelDayButton",0,c7,"labelGrid",0,c8,"labelGridcell",0,c9,"labelMonthDropdown",0,da,"labelNav",0,db,"labelNext",0,dc,"labelPrevious",0,dd,"labelWeekNumber",0,df,"labelWeekNumberHeader",0,dg,"labelWeekday",0,de,"labelYearDropdown",0,dh],29489);var di=a.i(29489);let dj=(a,b,c)=>b||(c?"function"==typeof c?c:(...a)=>c:a),dk=a=>a instanceof HTMLElement?a:null,dl=a=>[...a.querySelectorAll("[data-animated-month]")??[]],dm=a=>dk(a.querySelector("[data-animated-caption]")),dn=a=>dk(a.querySelector("[data-animated-weeks]"));function dp(a,b,c,d){let{month:e,defaultMonth:f,today:g=d.today(),numberOfMonths:h=1}=a,i=e||f||g,{differenceInCalendarMonths:j,addMonths:k,startOfMonth:l}=d;return c&&j(c,i)<h-1&&(i=k(c,-1*(h-1))),b&&0>j(i,b)&&(i=b),l(i)}class dq{constructor(a,b,c=cp){this.date=a,this.displayMonth=b,this.outside=!!(b&&!c.isSameMonth(a,b)),this.dateLib=c,this.isoDate=c.format(a,"yyyy-MM-dd"),this.displayMonthId=c.format(b,"yyyy-MM"),this.dateMonthId=c.format(a,"yyyy-MM")}isEqualTo(a){return this.dateLib.isSameDay(a.date,this.date)&&this.dateLib.isSameMonth(a.displayMonth,this.displayMonth)}}class dr{constructor(a,b){this.date=a,this.weeks=b}}class ds{constructor(a,b){this.days=b,this.weekNumber=a}}function dt(a,b){let[c,d]=(0,n.useState)(a);return[void 0===b?c:b,d]}function du(a){return!a[i.disabled]&&!a[i.hidden]&&!a[i.outside]}function dv(a,b,c=cp){return cq(a,b.from,!1,c)||cq(a,b.to,!1,c)||cq(b,a.from,!1,c)||cq(b,a.to,!1,c)}function dw(a,b){return a instanceof bD&&a.timeZone===b?a:new bD(a,b)}function dx(a,b,c){if(!c)return dw(a,b);let d=dw(a,b);return new Date(new bD(d.getFullYear(),d.getMonth(),d.getDate(),12,0,0,b).getTime())}function dy(a,b,c){return"boolean"==typeof a||"function"==typeof a?a:a instanceof Date?dx(a,b,c):Array.isArray(a)?a.map(a=>a instanceof Date?dx(a,b,c):a):cs(a)?{...a,from:a.from?dw(a.from,b):a.from,to:a.to?dw(a.to,b):a.to}:cr(a)?{before:dx(a.before,b,c),after:dx(a.after,b,c)}:ct(a)?{after:dx(a.after,b,c)}:cu(a)?{before:dx(a.before,b,c)}:a}function dz(a,b,c){return a?Array.isArray(a)?a.map(a=>dy(a,b,c)):dy(a,b,c):a}function dA(a){var b;let c,d=a,e=d.timeZone;if(e&&((d={...a,timeZone:e}).today&&(d.today=dw(d.today,e)),d.month&&(d.month=dw(d.month,e)),d.defaultMonth&&(d.defaultMonth=dw(d.defaultMonth,e)),d.startMonth&&(d.startMonth=dw(d.startMonth,e)),d.endMonth&&(d.endMonth=dw(d.endMonth,e)),"single"===d.mode&&d.selected?d.selected=dw(d.selected,e):"multiple"===d.mode&&d.selected?d.selected=d.selected?.map(a=>dw(a,e)):"range"===d.mode&&d.selected&&(d.selected={from:d.selected.from?dw(d.selected.from,e):d.selected.from,to:d.selected.to?dw(d.selected.to,e):d.selected.to}),void 0!==d.disabled&&(d.disabled=dz(d.disabled,e)),void 0!==d.hidden&&(d.hidden=dz(d.hidden,e)),d.modifiers)){let a={};Object.keys(d.modifiers).forEach(b=>{a[b]=dz(d.modifiers?.[b],e)}),d.modifiers=a}let{components:f,formatters:g,labels:m,dateLib:o,locale:p,classNames:q}=(0,n.useMemo)(()=>{var a,b,c,e;let f,g={...cn,...d.locale},h=d.broadcastCalendar?1:d.weekStartsOn,i=d.noonSafe&&d.timeZone?function(a,b={}){let{weekStartsOn:c,locale:d}=b,e=c??d?.options?.weekStartsOn??0,f=b=>{let c="number"==typeof b||"string"==typeof b?new Date(b):b;return new bD(c.getFullYear(),c.getMonth(),c.getDate(),12,0,0,a)},g=a=>{let b=f(a);return new Date(b.getFullYear(),b.getMonth(),b.getDate(),0,0,0,0)};return{today:()=>f(bD.tz(a)),newDate:(b,c,d)=>new bD(b,c,d,12,0,0,a),startOfDay:a=>f(a),startOfWeek:(a,b)=>{let c=f(a),d=b?.weekStartsOn??e,g=(c.getDay()-d+7)%7;return c.setDate(c.getDate()-g),c},startOfISOWeek:a=>{let b=f(a),c=(b.getDay()-1+7)%7;return b.setDate(b.getDate()-c),b},startOfMonth:a=>{let b=f(a);return b.setDate(1),b},startOfYear:a=>{let b=f(a);return b.setMonth(0,1),b},endOfWeek:(a,b)=>{let c=f(a),d=(((b?.weekStartsOn??e)+6)%7-c.getDay()+7)%7;return c.setDate(c.getDate()+d),c},endOfISOWeek:a=>{let b=f(a),c=(7-b.getDay())%7;return b.setDate(b.getDate()+c),b},endOfMonth:a=>{let b=f(a);return b.setMonth(b.getMonth()+1,0),b},endOfYear:a=>{let b=f(a);return b.setMonth(11,31),b},eachMonthOfInterval:b=>{let c=f(b.start),d=f(b.end),e=[],g=new bD(c.getFullYear(),c.getMonth(),1,12,0,0,a),h=12*d.getFullYear()+d.getMonth();for(;12*g.getFullYear()+g.getMonth()<=h;)e.push(new bD(g,a)),g.setMonth(g.getMonth()+1,1);return e},addDays:(a,b)=>{let c=f(a);return c.setDate(c.getDate()+b),c},addWeeks:(a,b)=>{let c=f(a);return c.setDate(c.getDate()+7*b),c},addMonths:(a,b)=>{let c=f(a);return c.setMonth(c.getMonth()+b),c},addYears:(a,b)=>{let c=f(a);return c.setFullYear(c.getFullYear()+b),c},eachYearOfInterval:b=>{let c=f(b.start),d=f(b.end),e=[],g=new bD(c.getFullYear(),0,1,12,0,0,a);for(;g.getFullYear()<=d.getFullYear();)e.push(new bD(g,a)),g.setFullYear(g.getFullYear()+1,0,1);return e},getWeek:(a,b)=>b2(g(a),{weekStartsOn:b?.weekStartsOn??e,firstWeekContainsDate:b?.firstWeekContainsDate??d?.options?.firstWeekContainsDate??1}),getISOWeek:a=>b0(g(a)),differenceInCalendarDays:(a,b)=>bM(g(a),g(b)),differenceInCalendarMonths:(a,b)=>bN(g(a),g(b))}}(d.timeZone,{weekStartsOn:h,locale:g}):void 0,j=d.dateLib&&i?{...i,...d.dateLib}:d.dateLib??i,k=new co({locale:g,weekStartsOn:h,firstWeekContainsDate:d.firstWeekContainsDate,useAdditionalWeekYearTokens:d.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:d.useAdditionalDayOfYearTokens,timeZone:d.timeZone,numerals:d.numerals},j);return{dateLib:k,components:(a=d.components,{...cZ,...a}),formatters:(b=d.formatters,{...c6,...b}),labels:(c=d.labels,e=k.options,f=e.locale?.labels??{},{...di,...c??{},labelDayButton:dj(di.labelDayButton,c?.labelDayButton,f.labelDayButton),labelMonthDropdown:dj(di.labelMonthDropdown,c?.labelMonthDropdown,f.labelMonthDropdown),labelNext:dj(di.labelNext,c?.labelNext,f.labelNext),labelPrevious:dj(di.labelPrevious,c?.labelPrevious,f.labelPrevious),labelWeekNumber:dj(di.labelWeekNumber,c?.labelWeekNumber,f.labelWeekNumber),labelYearDropdown:dj(di.labelYearDropdown,c?.labelYearDropdown,f.labelYearDropdown),labelGrid:dj(di.labelGrid,c?.labelGrid,f.labelGrid),labelGridcell:dj(di.labelGridcell,c?.labelGridcell,f.labelGridcell),labelNav:dj(di.labelNav,c?.labelNav,f.labelNav),labelWeekNumberHeader:dj(di.labelWeekNumberHeader,c?.labelWeekNumberHeader,f.labelWeekNumberHeader),labelWeekday:dj(di.labelWeekday,c?.labelWeekday,f.labelWeekday)}),locale:g,classNames:{...c$(),...d.classNames}}},[d.locale,d.broadcastCalendar,d.weekStartsOn,d.firstWeekContainsDate,d.useAdditionalWeekYearTokens,d.useAdditionalDayOfYearTokens,d.timeZone,d.numerals,d.dateLib,d.noonSafe,d.components,d.formatters,d.labels,d.classNames]);d.today||(d={...d,today:o.today()});let{captionLayout:r,mode:s,navLayout:t,numberOfMonths:u=1,onDayBlur:v,onDayClick:w,onDayFocus:x,onDayKeyDown:y,onDayMouseEnter:z,onDayMouseLeave:A,onNextClick:B,onPrevClick:C,showWeekNumber:D,styles:E}=d,{formatCaption:F,formatDay:G,formatMonthDropdown:H,formatWeekNumber:I,formatWeekNumberHeader:J,formatWeekdayName:K,formatYearDropdown:L}=g,M=function(a,b){let[c,d]=function(a,b){let{startMonth:c,endMonth:d}=a,{startOfYear:e,startOfDay:f,startOfMonth:g,endOfMonth:h,addYears:i,endOfYear:j,today:k}=b,l="dropdown"===a.captionLayout||"dropdown-years"===a.captionLayout;return c?c=g(c):!c&&l&&(c=e(i(a.today??k(),-100))),d?d=h(d):!d&&l&&(d=j(a.today??k())),[c?f(c):c,d?f(d):d]}(a,b),{startOfMonth:e,endOfMonth:f}=b,g=dp(a,c,d,b),[h,i]=dt(g,a.month?g:void 0);(0,n.useEffect)(()=>{i(dp(a,c,d,b))},[a.timeZone]);let{months:j,weeks:k,days:l,previousMonth:m,nextMonth:o}=(0,n.useMemo)(()=>{let e,g=function(a,b,c,d){let{numberOfMonths:e=1}=c,f=[];for(let c=0;c<e;c++){let e=d.addMonths(a,c);if(b&&e>b)break;f.push(e)}return f}(h,d,{numberOfMonths:a.numberOfMonths},b),i=function(a,b,c,d){let e=a[0],f=a[a.length-1],{ISOWeek:g,fixedWeeks:h,broadcastCalendar:i}=c??{},{addDays:j,differenceInCalendarDays:k,differenceInCalendarMonths:l,endOfBroadcastWeek:m,endOfISOWeek:n,endOfMonth:o,endOfWeek:p,isAfter:q,startOfBroadcastWeek:r,startOfISOWeek:s,startOfWeek:t}=d,u=i?r(e,d):g?s(e):t(e),v=i?m(f):g?n(o(f)):p(o(f)),w=b&&(i?m(b):g?n(b):p(b)),x=k(w&&q(v,w)?w:v,u),y=l(f,e)+1,z=[];for(let a=0;a<=x;a++){let b=j(u,a);z.push(b)}let A=(i?35:42)*y;if(h&&z.length<A){let a=A-z.length;for(let b=0;b<a;b++){let a=j(z[z.length-1],1);z.push(a)}}return z}(g,a.endMonth?f(a.endMonth):void 0,{ISOWeek:a.ISOWeek,fixedWeeks:a.fixedWeeks,broadcastCalendar:a.broadcastCalendar},b),j=function(a,b,c,d){let{addDays:e,endOfBroadcastWeek:f,endOfISOWeek:g,endOfMonth:h,endOfWeek:i,getISOWeek:j,getWeek:k,startOfBroadcastWeek:l,startOfISOWeek:m,startOfWeek:n}=d,o=a.reduce((a,o)=>{let p=c.broadcastCalendar?l(o,d):c.ISOWeek?m(o):n(o),q=c.broadcastCalendar?f(o):c.ISOWeek?g(h(o)):i(h(o)),r=b.filter(a=>a>=p&&a<=q),s=c.broadcastCalendar?35:42;if(c.fixedWeeks&&r.length<s){let a=b.filter(a=>{let b=s-r.length;return a>q&&a<=e(q,b)});r.push(...a)}let t=r.reduce((a,b)=>{let e=c.ISOWeek?j(b):k(b),f=a.find(a=>a.weekNumber===e),g=new dq(b,o,d);return f?f.days.push(g):a.push(new ds(e,[g])),a},[]),u=new dr(o,t);return a.push(u),a},[]);return c.reverseMonths?o.reverse():o}(g,i,{broadcastCalendar:a.broadcastCalendar,fixedWeeks:a.fixedWeeks,ISOWeek:a.ISOWeek,reverseMonths:a.reverseMonths},b),k=j.reduce((a,b)=>a.concat(b.weeks.slice()),[]),l=(e=[],j.reduce((a,b)=>{let c=b.weeks.reduce((a,b)=>a.concat(b.days.slice()),e.slice());return a.concat(c.slice())},e.slice()));return{months:j,weeks:k,days:l,previousMonth:function(a,b,c,d){if(c.disableNavigation)return;let{pagedNavigation:e,numberOfMonths:f}=c,{startOfMonth:g,addMonths:h,differenceInCalendarMonths:i}=d,j=g(a);if(!b||!(0>=i(j,b)))return h(j,-(e?f??1:1))}(h,c,a,b),nextMonth:function(a,b,c,d){if(c.disableNavigation)return;let{pagedNavigation:e,numberOfMonths:f=1}=c,{startOfMonth:g,addMonths:h,differenceInCalendarMonths:i}=d,j=g(a);if(!b||!(i(b,a)<f))return h(j,e?f:1)}(h,d,a,b)}},[b,h.getTime(),d?.getTime(),c?.getTime(),a.disableNavigation,a.broadcastCalendar,a.endMonth?.getTime(),a.fixedWeeks,a.ISOWeek,a.numberOfMonths,a.pagedNavigation,a.reverseMonths]),{disableNavigation:p,onMonthChange:q}=a,r=a=>{if(p)return;let b=e(a);c&&b<e(c)&&(b=e(c)),d&&b>e(d)&&(b=e(d)),i(b),q?.(b)};return{months:j,weeks:k,days:l,navStart:c,navEnd:d,previousMonth:m,nextMonth:o,goToMonth:r,goToDay:a=>{k.some(b=>b.days.some(b=>b.isEqualTo(a)))||r(a.date)}}}(d,o),{days:N,months:O,navStart:P,navEnd:Q,previousMonth:R,nextMonth:S,goToMonth:T}=M,U=function(a,b,c,d,e){let{disabled:f,hidden:g,modifiers:h,showOutsideDays:j,broadcastCalendar:k,today:l=e.today()}=b,{isSameDay:m,isSameMonth:n,startOfMonth:o,isBefore:p,endOfMonth:q,isAfter:r}=e,s=c&&o(c),t=d&&q(d),u={[i.focused]:[],[i.outside]:[],[i.disabled]:[],[i.hidden]:[],[i.today]:[]},v={};for(let b of a){let{date:a,displayMonth:c}=b,d=!!(c&&!n(a,c)),i=!!(s&&p(a,s)),o=!!(t&&r(a,t)),q=!!(f&&cx(a,f,e)),w=!!(g&&cx(a,g,e))||i||o||!k&&!j&&d||k&&!1===j&&d,x=m(a,l);d&&u.outside.push(b),q&&u.disabled.push(b),w&&u.hidden.push(b),x&&u.today.push(b),h&&Object.keys(h).forEach(c=>{let d=h?.[c];d&&cx(a,d,e)&&(v[c]?v[c].push(b):v[c]=[b])})}return a=>{let b={[i.focused]:!1,[i.disabled]:!1,[i.hidden]:!1,[i.outside]:!1,[i.today]:!1},c={};for(let c in u){let d=u[c];b[c]=d.some(b=>b===a)}for(let b in v)c[b]=v[b].some(b=>b===a);return{...b,...c}}}(N,d,P,Q,o),{isSelected:V,select:W,selected:X}=function(a,b){let c=function(a,b){let{selected:c,required:d,onSelect:e}=a,[f,g]=dt(c,e?c:void 0),h=e?c:f,{isSameDay:i}=b;return{selected:h,select:(a,b,c)=>{let f=a;return!d&&h&&h&&i(a,h)&&(f=void 0),e||g(f),e?.(f,a,b,c),f},isSelected:a=>!!h&&i(h,a)}}(a,b),d=function(a,b){let{selected:c,required:d,onSelect:e}=a,[f,g]=dt(c,e?c:void 0),h=e?c:f,{isSameDay:i}=b,j=a=>h?.some(b=>i(b,a))??!1,{min:k,max:l}=a;return{selected:h,select:(a,b,c)=>{let f=[...h??[]];if(j(a)){if(h?.length===k||d&&h?.length===1)return;f=h?.filter(b=>!i(b,a))}else f=h?.length===l?[a]:[...f,a];return e||g(f),e?.(f,a,b,c),f},isSelected:j}}(a,b),e=function(a,b){let{disabled:c,excludeDisabled:d,resetOnSelect:e,selected:f,required:g,onSelect:h}=a,[i,j]=dt(f,h?f:void 0),k=h?f:i;return{selected:k,select:(f,i,l)=>{let m,{min:n,max:o}=a;if(f){let a=k?.from,c=k?.to,d=!!a&&!!c&&b.isSameDay(a,c)&&b.isSameDay(f,a);m=e&&(a&&c||!k?.from)?!g&&d?void 0:{from:f,to:void 0}:function(a,b,c=0,d=0,e=!1,f=cp){let g,{from:h,to:i}=b||{},{isSameDay:j,isAfter:k,isBefore:l}=f;if(h||i){if(h&&!i)g=j(h,a)?0===c?{from:h,to:a}:e?{from:h,to:void 0}:void 0:l(a,h)?{from:a,to:h}:{from:h,to:a};else if(h&&i)if(j(h,a)&&j(i,a))g=e?{from:h,to:i}:void 0;else if(j(h,a))g={from:h,to:c>0?void 0:a};else if(j(i,a))g={from:a,to:c>0?void 0:a};else if(l(a,h))g={from:a,to:i};else if(k(a,h))g={from:h,to:a};else if(k(a,i))g={from:h,to:a};else throw Error("Invalid range")}else g={from:a,to:c>0?void 0:a};if(g?.from&&g?.to){let b=f.differenceInCalendarDays(g.to,g.from);d>0&&b>d?g={from:a,to:void 0}:c>1&&b<c&&(g={from:a,to:void 0})}return g}(f,k,n,o,g,b)}return d&&c&&m?.from&&m.to&&function(a,b,c=cp){let d=Array.isArray(b)?b:[b];if(d.filter(a=>"function"!=typeof a).some(b=>"boolean"==typeof b?b:c.isDate(b)?cq(a,b,!1,c):cw(b,c)?b.some(b=>cq(a,b,!1,c)):cs(b)?!!b.from&&!!b.to&&dv(a,{from:b.from,to:b.to},c):cv(b)?function(a,b,c=cp){let d=Array.isArray(b)?b:[b],e=a.from,f=Math.min(c.differenceInCalendarDays(a.to,a.from),6);for(let a=0;a<=f;a++){if(d.includes(e.getDay()))return!0;e=c.addDays(e,1)}return!1}(a,b.dayOfWeek,c):cr(b)?c.isAfter(b.before,b.after)?dv(a,{from:c.addDays(b.after,1),to:c.addDays(b.before,-1)},c):cx(a.from,b,c)||cx(a.to,b,c):!!(ct(b)||cu(b))&&(cx(a.from,b,c)||cx(a.to,b,c))))return!0;let e=d.filter(a=>"function"==typeof a);if(e.length){let b=a.from,d=c.differenceInCalendarDays(a.to,a.from);for(let a=0;a<=d;a++){if(e.some(a=>a(b)))return!0;b=c.addDays(b,1)}}return!1}({from:m.from,to:m.to},c,b)&&(m.from=f,m.to=void 0),h||j(m),h?.(m,f,i,l),m},isSelected:a=>k&&cq(k,a,!1,b)}}(a,b);switch(a.mode){case"single":return c;case"multiple":return d;case"range":return e;default:return}}(d,o)??{},{blur:Y,focused:Z,isFocusTarget:$,moveFocus:_,setFocused:aa}=function(a,b,c,d,e){let{autoFocus:f}=a,[g,h]=(0,n.useState)(),j=function(a,b,c,d){let e,f=-1;for(let g of a){let a=b(g);du(a)&&(a[i.focused]&&f<l.FocusedModifier?(e=g,f=l.FocusedModifier):d?.isEqualTo(g)&&f<l.LastFocused?(e=g,f=l.LastFocused):c(g.date)&&f<l.Selected?(e=g,f=l.Selected):a[i.today]&&f<l.Today&&(e=g,f=l.Today))}return e||(e=a.find(a=>du(b(a)))),e}(b.days,c,d||(()=>!1),g),[k,m]=(0,n.useState)(f?j:void 0);return(0,n.useEffect)(()=>{k&&j&&(b.days.some(a=>a.isEqualTo(k))||m(j))},[b.days,k,j]),{isFocusTarget:a=>!!j?.isEqualTo(a),setFocused:m,focused:k,blur:()=>{h(k),m(void 0)},moveFocus:(c,d)=>{if(!k)return;let f=function a(b,c,d,e,f,g,h,i=0){if(i>365)return;let j=function(a,b,c,d,e,f,g){let{ISOWeek:h,broadcastCalendar:i}=f,{addDays:j,addMonths:k,addWeeks:l,addYears:m,endOfBroadcastWeek:n,endOfISOWeek:o,endOfWeek:p,max:q,min:r,startOfBroadcastWeek:s,startOfISOWeek:t,startOfWeek:u}=g,v=({day:j,week:l,month:k,year:m,startOfWeek:a=>i?s(a,g):h?t(a):u(a),endOfWeek:a=>i?n(a):h?o(a):p(a)})[a](c,"after"===b?1:-1);return"before"===b&&d?v=q([d,v]):"after"===b&&e&&(v=r([e,v])),v}(b,c,d.date,e,f,g,h),k=!!(g.disabled&&cx(j,g.disabled,h)),l=!!(g.hidden&&cx(j,g.hidden,h)),m=new dq(j,j,h);return k||l?a(b,c,m,e,f,g,h,i+1):m}(c,d,k,b.navStart,b.navEnd,a,e);if(f){if(a.disableNavigation&&!b.days.some(a=>a.isEqualTo(f)))return;b.goToDay(f),m(f)}}}}(d,M,U,V??(()=>!1),o),{labelDayButton:ab,labelGridcell:ac,labelGrid:ad,labelMonthDropdown:ae,labelNav:af,labelPrevious:ag,labelNext:ah,labelWeekday:ai,labelWeekNumber:aj,labelWeekNumberHeader:ak,labelYearDropdown:al}=m,am=(0,n.useMemo)(()=>(function(a,b,c,d){let e=d??a.today(),f=c?a.startOfBroadcastWeek(e,a):b?a.startOfISOWeek(e):a.startOfWeek(e),g=[];for(let b=0;b<7;b++){let c=a.addDays(f,b);g.push(c)}return g})(o,d.ISOWeek,d.broadcastCalendar,d.today),[o,d.ISOWeek,d.broadcastCalendar,d.today]),an=void 0!==s||void 0!==w,ao=(0,n.useCallback)(()=>{R&&(T(R),C?.(R))},[R,T,C]),ap=(0,n.useCallback)(()=>{S&&(T(S),B?.(S))},[T,S,B]),aq=(0,n.useCallback)((a,b)=>c=>{c.preventDefault(),c.stopPropagation(),aa(a),b.disabled||(W?.(a.date,b,c),w?.(a.date,b,c))},[W,w,aa]),ar=(0,n.useCallback)((a,b)=>c=>{aa(a),x?.(a.date,b,c)},[x,aa]),as=(0,n.useCallback)((a,b)=>c=>{Y(),v?.(a.date,b,c)},[Y,v]),at=(0,n.useCallback)((a,b)=>c=>{let e={ArrowLeft:[c.shiftKey?"month":"day","rtl"===d.dir?"after":"before"],ArrowRight:[c.shiftKey?"month":"day","rtl"===d.dir?"before":"after"],ArrowDown:[c.shiftKey?"year":"week","after"],ArrowUp:[c.shiftKey?"year":"week","before"],PageUp:[c.shiftKey?"year":"month","before"],PageDown:[c.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(e[c.key]){c.preventDefault(),c.stopPropagation();let[a,b]=e[c.key];_(a,b)}y?.(a.date,b,c)},[_,y,d.dir]),au=(0,n.useCallback)((a,b)=>c=>{z?.(a.date,b,c)},[z]),av=(0,n.useCallback)((a,b)=>c=>{A?.(a.date,b,c)},[A]),aw=(0,n.useCallback)((a,b)=>c=>{let d=Number(c.target.value),e=o.setMonth(o.startOfMonth(a),d);T(o.addMonths(e,-b))},[o,T]),ax=(0,n.useCallback)((a,b)=>c=>{let d=Number(c.target.value),e=o.setYear(o.startOfMonth(a),d);T(o.addMonths(e,-b))},[o,T]),{className:ay,style:az}=(0,n.useMemo)(()=>({className:[q[h.Root],d.className].filter(Boolean).join(" "),style:{...E?.[h.Root],...d.style}}),[q,d.className,d.style,E]),aA=(c={"data-mode":(b=d).mode??void 0,"data-required":"required"in b?b.required:void 0,"data-multiple-months":b.numberOfMonths&&b.numberOfMonths>1||void 0,"data-week-numbers":b.showWeekNumber||void 0,"data-broadcast-calendar":b.broadcastCalendar||void 0,"data-nav-layout":b.navLayout||void 0},Object.entries(b).forEach(([a,b])=>{a.startsWith("data-")&&(c[a]=b)}),c),aB=a=>{let b=E?.[h.Dropdown],c=E?.[a];if(b||c)return{...b,...c}},aC=(0,n.useRef)(null);!function(a,b,{classNames:c,months:d,focused:e,dateLib:f}){let g=(0,n.useRef)(null),h=(0,n.useRef)(d),i=(0,n.useRef)(!1);(0,n.useLayoutEffect)(()=>{let j=h.current;if(h.current=d,!b||!a.current||!(a.current instanceof HTMLElement)||0===d.length||0===j.length||d.length!==j.length)return;let l=f.isSameMonth(d[0].date,j[0].date),m=f.isAfter(d[0].date,j[0].date),n=m?c[k.caption_after_enter]:c[k.caption_before_enter],o=m?c[k.weeks_after_enter]:c[k.weeks_before_enter],p=g.current,q=a.current.cloneNode(!0);if(q instanceof HTMLElement?(dl(q).forEach(a=>{if(!(a instanceof HTMLElement))return;let b=dk(a.querySelector("[data-animated-month]"));b&&a.contains(b)&&a.removeChild(b);let c=dm(a);c&&c.classList.remove(n);let d=dn(a);d&&d.classList.remove(o)}),g.current=q):g.current=null,i.current||l||e)return;let r=p instanceof HTMLElement?dl(p):[],s=dl(a.current);if(s?.every(a=>a instanceof HTMLElement)&&r?.every(a=>a instanceof HTMLElement)){i.current=!0;let b=[];a.current.style.isolation="isolate";let d=dk(a.current.querySelector("[data-animated-nav]"));d&&(d.style.zIndex="1"),s.forEach((e,f)=>{let g=r[f];if(!g)return;e.style.position="relative",e.style.overflow="hidden";let h=dm(e);h&&h.classList.add(n);let j=dn(e);j&&j.classList.add(o);let l=()=>{i.current=!1,a.current&&(a.current.style.isolation=""),d&&(d.style.zIndex=""),h&&h.classList.remove(n),j&&j.classList.remove(o),e.style.position="",e.style.overflow="",e.contains(g)&&e.removeChild(g)};b.push(l),g.style.pointerEvents="none",g.style.position="absolute",g.style.overflow="hidden",g.setAttribute("aria-hidden","true");let p=dk(g.querySelector("[data-animated-weekdays]"));p&&(p.style.opacity="0");let q=dm(g);q&&(q.classList.add(m?c[k.caption_before_exit]:c[k.caption_after_exit]),q.addEventListener("animationend",l));let s=dn(g);s&&s.classList.add(m?c[k.weeks_before_exit]:c[k.weeks_after_exit]),e.insertBefore(g,e.firstChild)})}})}(aC,!!d.animate,{classNames:q,months:O,focused:Z,dateLib:o});let aD={dayPickerProps:d,selected:X,select:W,isSelected:V,months:O,nextMonth:S,previousMonth:R,goToMonth:T,getModifiers:U,components:f,classNames:q,styles:E,labels:m,formatters:g};return n.default.createElement(cC.Provider,{value:aD},n.default.createElement(f.Root,{rootRef:d.animate?aC:void 0,className:ay,style:az,dir:d.dir,id:d.id,lang:d.lang??p.code,nonce:d.nonce,title:d.title,role:d.role,"aria-label":d["aria-label"],"aria-labelledby":d["aria-labelledby"],...aA},n.default.createElement(f.Months,{className:q[h.Months],style:E?.[h.Months]},!d.hideNavigation&&!t&&n.default.createElement(f.Nav,{"data-animated-nav":d.animate?"true":void 0,className:q[h.Nav],style:E?.[h.Nav],"aria-label":af(),onPreviousClick:ao,onNextClick:ap,previousMonth:R,nextMonth:S}),O.map((a,b)=>{let c,e,k=d.reverseMonths?O.length-1-b:b;return n.default.createElement(f.Month,{"data-animated-month":d.animate?"true":void 0,className:q[h.Month],style:E?.[h.Month],key:b,displayIndex:b,calendarMonth:a},"around"===t&&!d.hideNavigation&&0===b&&n.default.createElement(f.PreviousMonthButton,{type:"button",className:q[h.PreviousMonthButton],style:E?.[h.PreviousMonthButton],tabIndex:R?void 0:-1,"aria-disabled":!R||void 0,"aria-label":ag(R),onClick:ao,"data-animated-button":d.animate?"true":void 0},n.default.createElement(f.Chevron,{disabled:!R||void 0,className:q[h.Chevron],style:E?.[h.Chevron],orientation:"rtl"===d.dir?"right":"left"})),n.default.createElement(f.MonthCaption,{"data-animated-caption":d.animate?"true":void 0,className:q[h.MonthCaption],style:E?.[h.MonthCaption],calendarMonth:a,displayIndex:b},r?.startsWith("dropdown")?n.default.createElement(f.DropdownNav,{className:q[h.Dropdowns],style:E?.[h.Dropdowns]},(c="dropdown"===r||"dropdown-months"===r?n.default.createElement(f.MonthsDropdown,{key:"month",className:q[h.MonthsDropdown],"aria-label":ae(),disabled:!!d.disableNavigation,onChange:aw(a.date,k),options:function(a,b,c,d,e){let{startOfMonth:f,startOfYear:g,endOfYear:h,eachMonthOfInterval:i,getMonth:j}=e;return i({start:g(a),end:h(a)}).map(a=>{let g=d.formatMonthDropdown(a,e);return{value:j(a),label:g,disabled:b&&a<f(b)||c&&a>f(c)||!1}})}(a.date,P,Q,g,o),style:aB(h.MonthsDropdown),value:o.getMonth(a.date)}):n.default.createElement("span",{key:"month"},H(a.date,o)),e="dropdown"===r||"dropdown-years"===r?n.default.createElement(f.YearsDropdown,{key:"year",className:q[h.YearsDropdown],"aria-label":al(o.options),disabled:!!d.disableNavigation,onChange:ax(a.date,k),options:function(a,b,c,d,e=!1){if(!a||!b)return;let{startOfYear:f,endOfYear:g,eachYearOfInterval:h,getYear:i}=d,j=h({start:f(a),end:g(b)});return e&&j.reverse(),j.map(a=>{let b=c.formatYearDropdown(a,d);return{value:i(a),label:b,disabled:!1}})}(P,Q,g,o,!!d.reverseYears),style:aB(h.YearsDropdown),value:o.getYear(a.date)}):n.default.createElement("span",{key:"year"},L(a.date,o)),"year-first"===o.getMonthYearOrder()?[e,c]:[c,e]),n.default.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},F(a.date,o.options,o))):n.default.createElement(f.CaptionLabel,{className:q[h.CaptionLabel],style:E?.[h.CaptionLabel],role:"status","aria-live":"polite"},F(a.date,o.options,o))),"around"===t&&!d.hideNavigation&&b===u-1&&n.default.createElement(f.NextMonthButton,{type:"button",className:q[h.NextMonthButton],style:E?.[h.NextMonthButton],tabIndex:S?void 0:-1,"aria-disabled":!S||void 0,"aria-label":ah(S),onClick:ap,"data-animated-button":d.animate?"true":void 0},n.default.createElement(f.Chevron,{disabled:!S||void 0,className:q[h.Chevron],style:E?.[h.Chevron],orientation:"rtl"===d.dir?"left":"right"})),b===u-1&&"after"===t&&!d.hideNavigation&&n.default.createElement(f.Nav,{"data-animated-nav":d.animate?"true":void 0,className:q[h.Nav],style:E?.[h.Nav],"aria-label":af(),onPreviousClick:ao,onNextClick:ap,previousMonth:R,nextMonth:S}),n.default.createElement(f.MonthGrid,{role:"grid","aria-multiselectable":"multiple"===s||"range"===s,"aria-label":ad(a.date,o.options,o)||void 0,className:q[h.MonthGrid],style:E?.[h.MonthGrid]},!d.hideWeekdays&&n.default.createElement(f.Weekdays,{"data-animated-weekdays":d.animate?"true":void 0,className:q[h.Weekdays],style:E?.[h.Weekdays]},D&&n.default.createElement(f.WeekNumberHeader,{"aria-label":ak(o.options),className:q[h.WeekNumberHeader],style:E?.[h.WeekNumberHeader],scope:"col"},J()),am.map(a=>n.default.createElement(f.Weekday,{"aria-label":ai(a,o.options,o),className:q[h.Weekday],key:String(a),style:E?.[h.Weekday],scope:"col"},K(a,o.options,o)))),n.default.createElement(f.Weeks,{"data-animated-weeks":d.animate?"true":void 0,className:q[h.Weeks],style:E?.[h.Weeks]},a.weeks.map(a=>n.default.createElement(f.Week,{className:q[h.Week],key:a.weekNumber,style:E?.[h.Week],week:a},D&&n.default.createElement(f.WeekNumber,{week:a,style:E?.[h.WeekNumber],"aria-label":aj(a.weekNumber,{locale:p}),className:q[h.WeekNumber],scope:"row",role:"rowheader"},I(a.weekNumber,o)),a.days.map(a=>{let{date:b}=a,c=U(a);if(c[i.focused]=!c.hidden&&!!Z?.isEqualTo(a),c[j.selected]=V?.(b)||c.selected,cs(X)){let{from:a,to:d}=X;c[j.range_start]=!!(a&&d&&o.isSameDay(b,a)),c[j.range_end]=!!(a&&d&&o.isSameDay(b,d)),c[j.range_middle]=cq(X,b,!0,o)}let e=function(a,b={},c={}){let d={...b?.[h.Day]};return Object.entries(a).filter(([,a])=>!0===a).forEach(([a])=>{d={...d,...c?.[a]}}),d}(c,E,d.modifiersStyles),g=function(a,b,c={}){return Object.entries(a).filter(([,a])=>!0===a).reduce((a,[d])=>(c[d]?a.push(c[d]):b[i[d]]?a.push(b[i[d]]):b[j[d]]&&a.push(b[j[d]]),a),[b[h.Day]])}(c,q,d.modifiersClassNames),k=an||c.hidden?void 0:ac(b,c,o.options,o);return n.default.createElement(f.Day,{key:`${a.isoDate}_${a.displayMonthId}`,day:a,modifiers:c,className:g.join(" "),style:e,role:"gridcell","aria-selected":c.selected||void 0,"aria-label":k,"data-day":a.isoDate,"data-month":a.outside?a.dateMonthId:void 0,"data-selected":c.selected||void 0,"data-disabled":c.disabled||void 0,"data-hidden":c.hidden||void 0,"data-outside":a.outside||void 0,"data-focused":c.focused||void 0,"data-today":c.today||void 0},!c.hidden&&an?n.default.createElement(f.DayButton,{className:q[h.DayButton],style:E?.[h.DayButton],type:"button",day:a,modifiers:c,disabled:!c.focused&&c.disabled||void 0,"aria-disabled":c.focused&&c.disabled||void 0,tabIndex:$(a)?0:-1,"aria-label":ab(b,c,o.options,o),onClick:aq(a,c),onBlur:as(a,c),onFocus:ar(a,c),onKeyDown:at(a,c),onMouseEnter:au(a,c),onMouseLeave:av(a,c)},G(b,o.options,o)):!c.hidden&&G(a.date,o.options,o))}))))))})),d.footer&&n.default.createElement(f.Footer,{className:q[h.Footer],style:E?.[h.Footer],role:"status","aria-live":"polite"},d.footer)))}(g=l||(l={}))[g.Today=0]="Today",g[g.Selected=1]="Selected",g[g.LastFocused=2]="LastFocused",g[g.FocusedModifier=3]="FocusedModifier";var dB=a.i(94687),dB=dB,dC=a.i(3520);function dD({className:a,classNames:b,showOutsideDays:c=!0,captionLayout:d="label",buttonVariant:e="ghost",locale:f,formatters:g,components:h,...i}){let j=c$();return(0,m.jsx)(dA,{showOutsideDays:c,className:(0,$.cn)("group/calendar bg-background p-2 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(7)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,a),captionLayout:d,locale:f,formatters:{formatMonthDropdown:a=>a.toLocaleString(f?.code,{month:"short"}),...g},classNames:{root:(0,$.cn)("w-fit",j.root),months:(0,$.cn)("relative flex flex-col gap-4 md:flex-row",j.months),month:(0,$.cn)("flex w-full flex-col gap-4",j.month),nav:(0,$.cn)("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",j.nav),button_previous:(0,$.cn)((0,A.buttonVariants)({variant:e}),"size-(--cell-size) p-0 select-none aria-disabled:opacity-50",j.button_previous),button_next:(0,$.cn)((0,A.buttonVariants)({variant:e}),"size-(--cell-size) p-0 select-none aria-disabled:opacity-50",j.button_next),month_caption:(0,$.cn)("flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)",j.month_caption),dropdowns:(0,$.cn)("flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium",j.dropdowns),dropdown_root:(0,$.cn)("relative rounded-(--cell-radius)",j.dropdown_root),dropdown:(0,$.cn)("absolute inset-0 bg-popover opacity-0",j.dropdown),caption_label:(0,$.cn)("font-medium select-none","label"===d?"text-sm":"flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground",j.caption_label),month_grid:(0,$.cn)("w-full border-collapse",j.month_grid),weekdays:(0,$.cn)("flex",j.weekdays),weekday:(0,$.cn)("flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none",j.weekday),week:(0,$.cn)("mt-2 flex w-full",j.week),week_number_header:(0,$.cn)("w-(--cell-size) select-none",j.week_number_header),week_number:(0,$.cn)("text-[0.8rem] text-muted-foreground select-none",j.week_number),day:(0,$.cn)("group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)",i.showWeekNumber?"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)":"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)",j.day),range_start:(0,$.cn)("relative isolate z-0 rounded-l-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-muted",j.range_start),range_middle:(0,$.cn)("rounded-none",j.range_middle),range_end:(0,$.cn)("relative isolate z-0 rounded-r-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-muted",j.range_end),today:(0,$.cn)("rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none",j.today),outside:(0,$.cn)("text-muted-foreground aria-selected:text-muted-foreground",j.outside),disabled:(0,$.cn)("text-muted-foreground opacity-50",j.disabled),hidden:(0,$.cn)("invisible",j.hidden),...b},components:{Root:({className:a,rootRef:b,...c})=>(0,m.jsx)("div",{"data-slot":"calendar",ref:b,className:(0,$.cn)(a),...c}),Chevron:({className:a,orientation:b,...c})=>"left"===b?(0,m.jsx)(bs,{className:(0,$.cn)("size-4",a),...c}):"right"===b?(0,m.jsx)(dB.default,{className:(0,$.cn)("size-4",a),...c}):(0,m.jsx)(dC.ChevronDownIcon,{className:(0,$.cn)("size-4",a),...c}),DayButton:({...a})=>(0,m.jsx)(dE,{locale:f,...a}),WeekNumber:({children:a,...b})=>(0,m.jsx)("td",{...b,children:(0,m.jsx)("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:a})}),...h},...i})}function dE({className:a,day:b,modifiers:c,locale:d,...e}){let f=c$(),g=n.useRef(null);return n.useEffect(()=>{c.focused&&g.current?.focus()},[c.focused]),(0,m.jsx)(A.Button,{variant:"ghost",size:"icon","data-day":b.date.toLocaleDateString(d?.code),"data-selected-single":c.selected&&!c.range_start&&!c.range_end&&!c.range_middle,"data-range-start":c.range_start,"data-range-end":c.range_end,"data-range-middle":c.range_middle,className:(0,$.cn)("relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70",f.day,a),...e})}a.s([],68656),a.i(68656);var dF=a.i(99395),dG=a.i(76510),dH=a.i(90874);let dI=n.createContext(void 0);function dJ(a){let b=n.useContext(dI);if(void 0===b&&!a)throw Error((0,dH.default)(47));return b}var dK=a.i(30144),dL=a.i(30499),dM=a.i(10764),dN=a.i(13461),dO=a.i(81353),dP=a.i(31022),dQ=a.i(74737),dR=a.i(69620),dS=a.i(9374),dT=a.i(55389);let dU={...dR.popupStoreSelectors,disabled:a=>a.disabled,instantType:a=>a.instantType,openMethod:a=>a.openMethod,openChangeReason:a=>a.openChangeReason,modal:a=>a.modal,focusManagerModal:a=>a.focusManagerModal,stickIfOpen:a=>a.stickIfOpen,titleElementId:a=>a.titleElementId,descriptionElementId:a=>a.descriptionElementId,openOnHover:a=>a.openOnHover,closeDelay:a=>a.closeDelay,adaptiveOrigin:a=>a.adaptiveOrigin};class dV extends dL.ReactStore{constructor(a,b,c){const d=new dS.PopupTriggerMap;super(dW(a,d,b,c),dX(d),dU)}setOpen=(a,b)=>{let c,d=b.reason===dO.REASONS.triggerHover,e=b.reason===dO.REASONS.triggerPress&&0===b.event.detail,f=!a&&(b.reason===dO.REASONS.escapeKey||null==b.reason),g=(0,dQ.attachPreventUnmountOnClose)(b),h=this.select("activeTriggerId");if(a||b.reason!==dO.REASONS.closePress||null!=b.trigger||null==h||(b.trigger=this.context.triggerElements.getById(h)??this.select("activeTriggerElement")??void 0),this.context.onOpenChange?.(a,b),b.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(a,b);let i=()=>{let c={open:a,openChangeReason:b.reason};(0,dQ.setPopupOpenState)(c,a,b.trigger,g()),this.update(c)};d?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start(dT.PATIENT_CLICK_THRESHOLD,()=>{this.set("stickIfOpen",!1)}),dK.flushSync(i)):i(),e?c="click":f?c="dismiss":b.reason===dO.REASONS.focusOut&&(c="focus"),this.set("instantType",c)}}function dW(a,b,c,d=!1){let e={...(0,dR.createInitialPopupStoreState)(),disabled:!1,modal:!1,focusManagerModal:!1,instantType:void 0,openMethod:null,openChangeReason:null,titleElementId:void 0,descriptionElementId:void 0,stickIfOpen:!0,openOnHover:!1,closeDelay:0,adaptiveOrigin:void 0,...a};return e.open&&a?.mounted===void 0&&(e.mounted=!0),e.floatingRootContext=(0,dR.createPopupFloatingRootContext)(b,c,d),e}function dX(a){return{popupRef:n.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerFocusTargetRef:n.createRef(),beforeContentFocusGuardRef:n.createRef(),stickIfOpenTimeout:new dM.Timeout,triggerElements:a}}var dY=a.i(4268);function dZ({props:a}){var b;let c,{children:d,open:e,defaultOpen:f=!1,onOpenChange:g,onOpenChangeComplete:h,modal:i=!1,handle:j,triggerId:k,defaultTriggerId:l=null}=a,o=(b={modal:i,open:f,openProp:e,activeTriggerId:l,triggerIdProp:k},c=(0,dQ.usePopupRootStore)((a,c)=>new dV(b,a,c)),n.useEffect(()=>c.context.stickIfOpenTimeout.disposeEffect(),[c]),c);o.useControlledProp("openProp",e),o.useControlledProp("triggerIdProp",k);let p=o.useState("open"),q=o.useState("mounted"),r=o.useState("payload");o.useContextCallback("onOpenChange",g),o.useContextCallback("onOpenChangeComplete",h),(0,dQ.usePopupRootSync)(o,p),(0,dQ.useImplicitActiveTrigger)(o);let{forceUnmount:s}=(0,dQ.useOpenStateTransitions)(p,o,()=>{o.update({stickIfOpen:!0,openChangeReason:null})});o.useSyncedValues({modal:i}),n.useEffect(()=>{p||o.context.stickIfOpenTimeout.clear()},[o,p]),n.useImperativeHandle(a.actionsRef,()=>({unmount:s,close:()=>o.setOpen(!1,(0,dY.createChangeEventDetails)(dO.REASONS.imperativeAction))}),[s,o]);let t=p||q;return(0,m.jsxs)(dI.Provider,{value:o,children:[j&&(0,m.jsx)(dQ.PopupHandleAttachment,{handle:j,store:o}),t&&(0,m.jsx)(d$,{store:o,modal:i}),"function"==typeof d?d({payload:r}):d]})}function d$({store:a,modal:b}){let c=a.useState("floatingRootContext"),d=(0,dF.useDismiss)(c,{outsidePressEvent:{mouse:"trap-focus"===b?"sloppy":"intentional",touch:"sloppy"}}),e=d.reference,f=d.floating;return(0,dQ.usePopupInteractionProps)(a,{activeTriggerProps:e,inactiveTriggerProps:e,popupProps:f}),null}var d_=a.i(67107),d0=a.i(41160),d1=a.i(16262),d2=a.i(31739),d3=a.i(83727),d4=a.i(17302),d5=a.i(28353),d6=a.i(29555),d7=a.i(76982),d8=a.i(18727),d9=a.i(65100),ea=a.i(60407);let eb=n.forwardRef(function(a,b){let c,{render:d,className:e,style:f,disabled:g=!1,nativeButton:h=!0,handle:i,payload:j,openOnHover:k=!1,delay:l=300,closeDelay:o=0,id:p,...q}=a,r=dJ(!0),s=(0,d7.usePopupHandleStore)(i)??r;if(!s)throw Error((0,dH.default)(74));let t=(0,d5.useBaseUiId)(p),u=s.useState("isTriggerActive",t),v=s.useState("floatingRootContext"),w=s.useState("isOpenedByTrigger",t),x=s.useState("triggerPopupId",t),y=n.useRef(null),{registerTrigger:z,isMountedByThisTrigger:A}=(0,dQ.useTriggerDataForwarding)(t,y,s,{payload:j,disabled:g,openOnHover:k,closeDelay:o}),B=s.useState("openChangeReason"),C=s.useState("stickIfOpen"),D=s.useState("openMethod"),E=s.useState("focusManagerModal"),F=(0,d4.useHoverReferenceInteraction)(v,{enabled:!g&&k&&("touch"!==D||B!==dO.REASONS.triggerPress),mouseOnly:!0,move:!1,handleClose:(0,d2.safePolygon)(),restMs:l,delay:{close:o},triggerElementRef:y,isActiveTrigger:u,isClosing:()=>"ending"===s.select("transitionStatus")}),G=(0,d3.useClick)(v,{stickIfOpen:C}),H=(0,ea.useOpenMethodTriggerProps)(()=>s.select("open"),a=>{s.set("openMethod",a)}),I=s.useState("triggerProps",A),{getButtonProps:J,buttonRef:K}=(0,d_.useButton)({disabled:g,native:h}),{preFocusGuardRef:L,handlePreFocusGuardFocus:M,handleFocusTargetFocus:N}={preFocusGuardRef:c=n.useRef(null),handlePreFocusGuardFocus:function(a){dK.flushSync(()=>{s.setOpen(!1,(0,dY.createChangeEventDetails)(dO.REASONS.focusOut,a.nativeEvent,a.currentTarget))});let b=(0,d9.getTabbableBeforeElement)(c.current);b?.focus()},handleFocusTargetFocus:function(a){let b=s.select("positionerElement");if(b&&(0,d9.isOutsideEvent)(a,b))s.context.beforeContentFocusGuardRef.current?.focus();else{dK.flushSync(()=>{s.setOpen(!1,(0,dY.createChangeEventDetails)(dO.REASONS.focusOut,a.nativeEvent,a.currentTarget))});let c=(0,d9.getTabbableAfterElement)(s.context.triggerFocusTargetRef.current||y.current);for(;null!==c&&(0,d8.contains)(b,c);){let a=c;if((c=(0,d9.getNextTabbable)(c))===a)break}c?.focus()}}},O=(0,d1.useRenderElement)("button",a,{state:{disabled:g,open:w},ref:[K,b,z,y],props:[G.reference,F,I,H,{[dT.CLICK_TRIGGER_IDENTIFIER]:"",id:t,"aria-haspopup":"dialog","aria-expanded":w,"aria-controls":x},q,J],stateAttributesMapping:{open:a=>a&&B===dO.REASONS.triggerPress?d0.pressableTriggerOpenStateMapping.open(a):d0.triggerOpenStateMapping.open(a)}}),P=(0,m.jsx)(n.Fragment,{children:O},t);return A&&!E?(0,m.jsxs)(n.Fragment,{children:[(0,m.jsx)(d6.FocusGuard,{ref:L,onFocus:M}),P,(0,m.jsx)(d6.FocusGuard,{ref:s.context.triggerFocusTargetRef,onFocus:N})]}):P});var ec=a.i(91175);let ed=n.createContext(void 0),ee=n.forwardRef(function(a,b){let{keepMounted:c=!1,...d}=a;return dJ().useState("mounted")||c?(0,m.jsx)(ed.Provider,{value:c,children:(0,m.jsx)(ec.FloatingPortal,{ref:b,...d})}):null});var ef=a.i(35571),eg=a.i(45351);let eh=n.createContext(void 0);function ei(){let a=n.useContext(eh);if(!a)throw Error((0,dH.default)(46));return a}var ej=a.i(28638),ek=a.i(72113),el=a.i(88885),em=a.i(69660),en=a.i(34680);let eo=n.forwardRef(function(a,b){let{render:c,className:d,style:e,anchor:f,positionMethod:g,side:h,align:i,sideOffset:j,alignOffset:k,collisionBoundary:l="clipping-ancestors",collisionPadding:o,arrowPadding:p,sticky:q,disableAnchorTracking:r=!1,collisionAvoidance:s=dT.POPUP_COLLISION_AVOIDANCE,...t}=a,u=dJ(),v=function(){let a=n.useContext(ed);if(void 0===a)throw Error((0,dH.default)(45));return a}(),w=(0,dG.useFloatingNodeId)(),x=u.useState("floatingRootContext"),y=u.useState("mounted"),z=u.useState("open"),A=u.useState("openChangeReason"),B=u.useState("activeTriggerElement"),C=u.useState("modal"),D=u.useState("openMethod"),E=u.useState("positionerElement"),F=u.useState("instantType"),G=u.useState("transitionStatus"),H=u.useState("adaptiveOrigin"),I=n.useRef(null),J=(0,el.useAnimationsFinished)(E),K=(0,ej.useAnchorPositioning)({anchor:f,floatingRootContext:x,positionMethod:g,mounted:y,side:h,sideOffset:j,align:i,alignOffset:k,arrowPadding:p,collisionBoundary:l,collisionPadding:o,sticky:q,disableAnchorTracking:r,keepMounted:v,nodeId:w,collisionAvoidance:s,adaptiveOrigin:H}),L=x.useState("domReferenceElement");(0,eg.useIsoLayoutEffect)(()=>{let a=I.current;if(L&&(I.current=L),a&&L&&L!==a){u.set("instantType",void 0);let a=new AbortController;return J(()=>{u.set("instantType","trigger-change")},a.signal),()=>{a.abort()}}},[L,J,u]);let M=!0===C&&A!==dO.REASONS.triggerHover;(0,en.useAnchoredPopupScrollLock)(z&&M,"touch"===D,E,B);let N=u.useStateSetter("positionerElement"),O={open:z,side:K.side,align:K.align,anchorHidden:K.anchorHidden,instant:F},P=(0,em.usePositioner)(a,O,{styles:K.positionerStyles,transitionStatus:G,props:t,refs:[b,N],hidden:!y,inert:!z});return(0,m.jsxs)(eh.Provider,{value:K,children:[y&&M&&(0,m.jsx)(ek.InternalBackdrop,{inert:(0,ef.inertValue)(!z),cutout:B}),(0,m.jsx)(dG.FloatingNode,{id:w,children:P})]})});var ep=a.i(59907),eq=a.i(75610),er=a.i(39358),es=a.i(20580),et=a.i(57535),eu=a.i(21697),ev=a.i(43374),ew=a.i(28050);let ex=n.createContext(void 0),ey=n.forwardRef(function(a,b){let{render:c,className:d,style:e,initialFocus:f,finalFocus:g,...h}=a,i=dJ(),j=ei(),k=null!=(0,eu.useToolbarRootContext)(!0),{context:l,hasClosePart:o}=function(){let[a,b]=n.useState(0),c=(0,ew.useStableCallback)(()=>(b(a=>a+1),()=>{b(a=>Math.max(0,a-1))}));return{context:n.useMemo(()=>({register:c}),[c]),hasClosePart:a>0}}(),p=i.useState("open"),q=i.useState("openMethod"),r=i.useState("instantType"),s=i.useState("transitionStatus"),t=i.useState("popupProps"),u=i.useState("titleElementId"),v=i.useState("descriptionElementId"),w=i.useState("modal"),x=i.useState("mounted"),y=i.useState("openChangeReason"),z=i.useState("activeTriggerElement"),A=i.useState("floatingRootContext"),B=A.useState("floatingId"),C=i.useState("disabled"),D=i.useState("openOnHover"),E=i.useState("closeDelay");(0,es.useOpenChangeComplete)({open:p,ref:i.context.popupRef,onComplete(){p&&i.context.onOpenChangeComplete?.(!0)}}),(0,er.useHoverFloatingInteraction)(A,{enabled:D&&!C,closeDelay:E});let F=void 0===f?(0,dQ.createDefaultInitialFocus)(i.context.popupRef):f,G=!1!==w&&o;i.useSyncedValue("focusManagerModal",G);let H=i.useStateSetter("popupElement"),I={open:p,side:j.side,align:j.align,instant:r,transitionStatus:s},J=(0,d1.useRenderElement)("div",a,{state:I,ref:[b,i.context.popupRef,H],props:[t,{id:B,role:"dialog",...dQ.FOCUSABLE_POPUP_PROPS,"aria-labelledby":u,"aria-describedby":v,onKeyDown(a){k&&et.COMPOSITE_KEYS.has(a.key)&&a.stopPropagation()}},(0,ev.getDisabledMountTransitionStyles)(s),h],stateAttributesMapping:d0.popupTransitionStateMapping});return(0,m.jsx)(eq.FloatingFocusManager,{context:A,openInteractionType:q,modal:G,disabled:!x||y===dO.REASONS.triggerHover,initialFocus:F,returnFocus:g,restoreFocus:"popup",previousFocusableElement:(0,ep.isHTMLElement)(z)?z:void 0,nextFocusableElement:i.context.triggerFocusTargetRef,beforeContentFocusGuardRef:i.context.beforeContentFocusGuardRef,children:(0,m.jsx)(ex.Provider,{value:l,children:J})})}),ez=n.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=dJ().useState("open"),{arrowRef:h,side:i,align:j,arrowUncentered:k,arrowStyles:l}=ei();return(0,d1.useRenderElement)("div",a,{state:{open:g,side:i,align:j,uncentered:k},ref:[b,h],props:[{style:l,"aria-hidden":!0},f],stateAttributesMapping:d0.popupStateMapping})}),eA=n.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=dJ(),h=g.useState("open"),i=g.useState("mounted"),j=g.useState("transitionStatus"),k=g.useState("openChangeReason");return(0,d1.useRenderElement)("div",a,{state:{open:h,transitionStatus:j},ref:b,props:[{role:"presentation",hidden:!i,style:{pointerEvents:k===dO.REASONS.triggerHover?"none":void 0,userSelect:"none",WebkitUserSelect:"none"}},f],stateAttributesMapping:d0.popupTransitionStateMapping})}),eB=n.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=dJ(),h=(0,d5.useBaseUiId)(f.id);return g.useSyncedValueWithCleanup("titleElementId",h),(0,d1.useRenderElement)("h2",a,{ref:b,props:[{id:h},f]})}),eC=n.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=dJ(),h=(0,d5.useBaseUiId)(f.id);return g.useSyncedValueWithCleanup("descriptionElementId",h),(0,d1.useRenderElement)("p",a,{ref:b,props:[{id:h},f]})}),eD=n.forwardRef(function(a,b){let c,{render:d,className:e,style:f,disabled:g=!1,nativeButton:h=!0,...i}=a,{buttonRef:j,getButtonProps:k}=(0,d_.useButton)({disabled:g,focusableWhenDisabled:!1,native:h}),l=dJ();return c=n.useContext(ex),(0,eg.useIsoLayoutEffect)(()=>c?.register(),[c]),(0,d1.useRenderElement)("button",a,{ref:[b,j],props:[{onClick(a){l.setOpen(!1,(0,dY.createChangeEventDetails)(dO.REASONS.closePress,a.nativeEvent))}},i,k]})});var eE=a.i(10288);let eF=n.forwardRef(function(a,b){let{render:c,className:d,style:e,children:f,...g}=a,h=dJ(),{side:i}=ei(),j=h.useState("instantType"),{children:k,state:l}=(0,eE.usePopupViewport)({store:h,side:i,children:f}),m={activationDirection:l.activationDirection,transitioning:l.transitioning,instant:j};return(0,d1.useRenderElement)("div",a,{state:m,ref:b,props:[g,{children:k}],stateAttributesMapping:eE.popupViewportStateMapping})});var eG=a.i(33143);class eH extends eG.BasePopupHandle{constructor(){super(function(){let a=new dS.PopupTriggerMap;return Object.assign(new dP.NullStore(Object.freeze(dW(void 0,a)),Object.freeze(dX(a)),dU),{setOpen:dN.NOOP})}(),"Popover")}open(a){this.openByTrigger(a)}close(){this.closePopup()}get isOpen(){return this.attachedStore?.select("open")??!1}}a.s(["Arrow",0,ez,"Backdrop",0,eA,"Close",0,eD,"Description",0,eC,"Handle",0,eH,"Popup",0,ey,"Portal",0,ee,"Positioner",0,eo,"Root",0,function(a){return dJ(!0)?(0,m.jsx)(dZ,{props:a}):(0,m.jsx)(dG.FloatingTree,{children:(0,m.jsx)(dZ,{props:a})})},"Title",0,eB,"Trigger",0,eb,"Viewport",0,eF,"createHandle",0,function(){return new eH}],44413);var eI=a.i(44413),eI=eI;function eJ({...a}){return(0,m.jsx)(eI.Root,{"data-slot":"popover",...a})}function eK({...a}){return(0,m.jsx)(eI.Trigger,{"data-slot":"popover-trigger",...a})}function eL({className:a,align:b="center",alignOffset:c=0,side:d="bottom",sideOffset:e=4,...f}){return(0,m.jsx)(eI.Portal,{children:(0,m.jsx)(eI.Positioner,{align:b,alignOffset:c,side:d,sideOffset:e,className:"isolate z-50",children:(0,m.jsx)(eI.Popup,{"data-slot":"popover-content",className:(0,$.cn)("z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...f})})})}let eM=(a,b)=>("all"===b.provider||a.provider===b.provider)&&("all"===b.project||a.project===b.project);function eN(a){let b=a.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!b)return null;let c=new Date(Number(b[1]),Number(b[2])-1,Number(b[3]));return aI(c)===a?c:null}function eO(a,b,c){let d=a.get(b);return d||a.set(b,d=c()),d}let eP=[{value:"activeMs",label:"Agent time"},{value:"costUSD",label:"Cost"}],eQ=["Session","Model","Window","Messages","Tool calls","Agent time","Cost"],eR=a=>new Date(a).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1}),eS=a=>`${Math.round(a/6e4)}m`;function eT({slots:a,peak:b}){let[c,d]=(0,n.useState)(null),e=Math.max(1,b),f=Math.round(4);return(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{role:"img","aria-label":`Sessions working at once through the day, peaking at ${b}`,className:"flex h-28 items-end gap-px border-b border-border",onMouseLeave:()=>d(null),children:a.map(a=>{let b=`${eR(a.t)}–${eR(a.t+9e5)} \xb7 ${a.sessions} session${1===a.sessions?"":"s"}${a.sessions>0?` \xb7 ${(0,W.formatDuration)(a.activeMs)} agent time`:""}`;return(0,m.jsx)("div",{title:b,onMouseEnter:()=>d(b),className:"group flex h-full min-w-0 flex-1 items-end",children:(0,m.jsx)("div",{className:"w-full rounded-t-[2px] bg-brand group-hover:bg-brand/75",style:{height:a.sessions>0?`max(3px, ${a.sessions/e*100}%)`:0}})},a.t)})}),(0,m.jsx)("div",{className:"mt-1 flex text-[10px] text-muted-foreground","aria-hidden":!0,children:a.map((a,b)=>b%(3*f)==0?(0,m.jsx)("span",{className:"min-w-0 flex-1 overflow-visible whitespace-nowrap",children:eR(a.t)},a.t):(0,m.jsx)("span",{className:"min-w-0 flex-1"},a.t))}),(0,m.jsx)("p",{className:(0,$.cn)("mt-2 truncate text-xs text-muted-foreground",c&&"text-foreground"),"aria-live":"polite",children:c??`${Math.round(15)}-minute slots \xb7 times in ${Intl.DateTimeFormat().resolvedOptions().timeZone}`})]})}function eU({reloadToken:a,project:b,onProjectChange:c,projectOptions:d}){let{sessions:e,error:f}=aM(a),[g,h]=(0,n.useState)(null),[i,j]=(0,n.useState)("all"),[k,l]=(0,n.useState)("activeMs"),[p,q]=(0,n.useState)(!1),r=(0,n.useMemo)(()=>({project:b,provider:i}),[b,i]),t=aI(new Date),u=g??t,v=(0,n.useMemo)(()=>eN(u)??new Date,[u]),w=(0,n.useMemo)(()=>e?function(a,b){let c=new Set;for(let d of a)if(eM(d,b))for(let a of d.activity)c.add(aI(new Date(a.t)));return[...c].sort()}(e,r):[],[e,r]),x=(0,n.useMemo)(()=>w.flatMap(a=>eN(a)??[]),[w]),y=(0,n.useMemo)(()=>e?function(a,b,c){let d=aG(b).getTime(),e=aH(b,1).getTime(),f=Array.from({length:Math.ceil((e-d)/9e5)},(a,b)=>({t:d+9e5*b,sessions:0,activeMs:0})),g=[],h=new Map,i=new Map,j=new Map;for(let b of a){if(!eM(b,c))continue;let a=null;for(let c of b.activity){if(c.t<d||c.t>=e)continue;a??={provider:b.provider,id:b.id,label:b.label,project:b.project,model:b.model,messages:0,toolCalls:0,activeMs:0,costUSD:0,start:c.t,end:c.t},a.messages+=c.messages,a.toolCalls+=c.toolCalls,a.activeMs+=c.activeMs,a.costUSD+=c.costUSD??0,a.start=Math.min(a.start,c.t),a.end=Math.max(a.end,c.t+9e5);let g=f[Math.floor((c.t-d)/9e5)];g&&(g.sessions++,g.activeMs+=c.activeMs)}if(!a)continue;for(let b of(g.push(a),[eO(h,a.project,()=>({name:a.project,activeMs:0,costUSD:0})),eO(j,a.provider,()=>({name:a.provider,provider:a.provider,activeMs:0,costUSD:0}))]))b.activeMs+=a.activeMs,b.costUSD+=a.costUSD;for(let a of b.usage)a.t<d||a.t>=e||(eO(i,a.model,()=>({name:a.model,activeMs:0,costUSD:0})).costUSD+=a.costUSD??0);let k=a.model??"unknown";eO(i,k,()=>({name:k,activeMs:0,costUSD:0})).activeMs+=a.activeMs}let k={sessions:g.length,projects:h.size,messages:0,toolCalls:0,activeMs:0,costUSD:0,peak:0,peakAt:null};for(let a of g)k.messages+=a.messages,k.toolCalls+=a.toolCalls,k.activeMs+=a.activeMs,k.costUSD+=a.costUSD;for(let a of f)a.sessions>k.peak&&(k.peak=a.sessions,k.peakAt=a.t);let l=a=>[...a.values()].sort((a,b)=>b.activeMs-a.activeMs||b.costUSD-a.costUSD);return{slots:f,sessions:g.sort((a,b)=>a.start-b.start),totals:k,byProject:l(h),byModel:l(i),byAgent:l(j)}}(e,v,r):null,[e,v,r]),z=(0,n.useMemo)(()=>Y.PROVIDER_ORDER.filter(a=>e?.some(b=>b.provider===a)),[e]),B=(0,n.useMemo)(()=>[{value:"all",label:"All agents"},...z.map(a=>({value:a,label:(0,Y.providerStyle)(a).shortLabel}))],[z]);if(f&&!e)return(0,m.jsxs)("div",{className:"flex items-start gap-3 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive","aria-hidden":!0}),(0,m.jsx)("p",{className:"text-sm",children:"Could not load activity. Use refresh to try again."})]});if(!e||!y)return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(150px,1fr))] gap-3",children:Array.from({length:6},(a,b)=>(0,m.jsx)(J.Skeleton,{className:"h-[86px] rounded-xl"},b))}),(0,m.jsx)(J.Skeleton,{className:"h-48 rounded-xl"})]});let C=w.findLast(a=>a<u),D=w.find(a=>a>u),F=w[w.length-1],{totals:H}=y,I=(a,b=a=>a.name)=>a.map(a=>({name:b(a),value:a[k]})).filter(a=>a.value>0),K="costUSD"===k?W.formatCost:eS;return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,m.jsxs)("div",{className:"flex items-center gap-1",children:[(0,m.jsx)(A.Button,{variant:"outline",size:"icon",disabled:!C,onClick:()=>C&&h(C),"aria-label":"Previous active day",title:"Previous active day",children:(0,m.jsx)(bs,{"aria-hidden":!0})}),(0,m.jsxs)(eJ,{open:p,onOpenChange:q,children:[(0,m.jsx)(eK,{render:(0,m.jsxs)(A.Button,{variant:"outline",className:"min-w-36 justify-start font-normal tabular-nums",children:[(0,m.jsx)(br.CalendarDays,{className:"text-muted-foreground","aria-hidden":!0}),v.toLocaleDateString([],{month:"short",day:"numeric",year:"numeric"})]})}),(0,m.jsx)(eL,{align:"start",className:"w-auto p-0",children:(0,m.jsx)(dD,{mode:"single",selected:v,defaultMonth:v,disabled:{after:new Date},modifiers:{active:x},modifiersClassNames:{active:"[&>button]:font-semibold [&>button]:text-brand"},onSelect:a=>{if(!a)return;let b=aI(a);h(b===t?null:b),q(!1)}})})]}),(0,m.jsx)(A.Button,{variant:"outline",size:"icon",disabled:!D,onClick:()=>D&&h(D===t?null:D),"aria-label":"Next active day",title:"Next active day",children:(0,m.jsx)(O.ChevronRight,{"aria-hidden":!0})})]}),u!==t&&(0,m.jsx)(A.Button,{variant:"outline",onClick:()=>h(null),children:"Today"}),d.length>2&&(0,m.jsx)(G,{value:b,onChange:c,options:d,"aria-label":"Project",className:"max-w-56"}),z.length>1&&(0,m.jsx)(G,{value:i,onChange:j,options:B,"aria-label":"Agent"}),(0,m.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:v.toLocaleDateString([],{weekday:"long",month:"long",day:"numeric",year:"numeric"})})]}),0===H.sessions?(0,m.jsx)(E.EmptyState,{icon:s,title:u===t?"No activity yet today":"No activity on this day",description:F?"No agent wrote to a transcript on this day with these filters.":"No session matches these filters on any day.",action:F?(0,m.jsx)(A.Button,{variant:"outline",size:"sm",onClick:()=>h(F===t?null:F),children:"Go to latest active day"}):void 0}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(aC.StatCardGrid,{children:[(0,m.jsx)(aC.StatCard,{label:"Agent time",value:(0,W.formatDuration)(H.activeMs),sub:"summed over sessions",accent:!0}),(0,m.jsx)(aC.StatCard,{label:"Peak at once",value:H.peak.toLocaleString(),sub:null!==H.peakAt?`at ${eR(H.peakAt)}`:void 0}),(0,m.jsx)(aC.StatCard,{label:"Sessions",value:H.sessions.toLocaleString()}),(0,m.jsx)(aC.StatCard,{label:"Projects",value:H.projects.toLocaleString()}),(0,m.jsx)(aC.StatCard,{label:"Messages",value:H.messages.toLocaleString()}),(0,m.jsx)(aC.StatCard,{label:"Tool calls",value:H.toolCalls.toLocaleString()}),(0,m.jsx)(aC.StatCard,{label:"Est. cost",value:(0,W.formatCost)(H.costUSD),sub:"at API list prices"})]}),(0,m.jsx)(ar,{title:"Concurrency",note:`peak ${H.peak} at once`,children:(0,m.jsx)(eT,{slots:y.slots,peak:H.peak})}),(0,m.jsx)(ar,{title:"Sessions",note:`${H.sessions} total`,children:(0,m.jsxs)(aj.Table,{className:"min-w-[720px]",children:[(0,m.jsx)(aj.TableHeader,{children:(0,m.jsx)(aj.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:eQ.map((a,b)=>(0,m.jsx)(aj.TableHead,{className:(0,$.cn)("text-muted-foreground",b>2&&"text-right"),children:a},a))})}),(0,m.jsx)(aj.TableBody,{className:"tabular-nums",children:y.sessions.map(a=>(0,m.jsxs)(aj.TableRow,{children:[(0,m.jsxs)(aj.TableCell,{className:"w-full max-w-0",children:[(0,m.jsx)(N.default,{href:`/sessions/${a.provider}/${a.id}`,className:"block truncate rounded-sm font-medium hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:a.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 shrink-0 rounded-full",(0,Y.providerStyle)(a.provider).dotCls),"aria-hidden":!0}),(0,m.jsxs)("span",{className:"truncate",children:[(0,Y.providerStyle)(a.provider).shortLabel," · ",a.project]})]})]}),(0,m.jsx)(aj.TableCell,{className:"max-w-40 truncate font-mono text-xs text-muted-foreground",children:a.model??"—"}),(0,m.jsxs)(aj.TableCell,{className:"whitespace-nowrap text-muted-foreground",children:[eR(a.start),"–",eR(a.end)]}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.messages.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.toolCalls.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:(0,W.formatDuration)(a.activeMs)}),(0,m.jsx)(aj.TableCell,{className:"text-right font-medium",children:(0,W.formatCost)(a.costUSD)})]},`${a.provider}:${a.id}`))})]})}),(0,m.jsx)(ar,{title:"Breakdown",action:(0,m.jsx)(as.Segmented,{label:"Break down by",value:k,onChange:l,options:eP}),children:(0,m.jsx)("div",{className:"grid gap-5 lg:grid-cols-3",children:[["Project",I(y.byProject)],["Model",I(y.byModel)],["Agent",I(y.byAgent,a=>(0,Y.providerStyle)(a.name).shortLabel)]].map(([a,b])=>(0,m.jsxs)("div",{className:"min-w-0",children:[(0,m.jsx)("h3",{className:"mb-2 text-xs uppercase tracking-wider text-muted-foreground",children:a}),(0,m.jsx)(ap.BarList,{items:b,limit:6,format:K,emptyLabel:"Nothing recorded"})]},a))})})]})]})}var eV=a.i(34597),eW=a.i(45128);function eX(a){return a.project??"unknown"}var eY=a.i(88285),eZ=a.i(87105);let e$=["analytics","usage","activity","quality","projects","sessions","logs"];function e_(){let[a,b]=(0,eZ.useTabParam)(e$,"analytics"),[c,d]=(0,eZ.useQueryParam)("project","all"),[e,f]=(0,n.useState)([]),[g,h]=(0,n.useState)([]),[i,j]=(0,n.useState)("all"),[k,l]=(0,n.useState)([]),[r,B]=(0,n.useState)(!0),[F,N]=(0,n.useState)(null),[O,P]=(0,n.useState)(""),[Q,R]=(0,eY.useSessionSort)(),[S,T]=(0,n.useState)(0);function U(){B(!0),N(null),T(a=>a+1)}(0,n.useEffect)(()=>{let a=!1;return(async()=>{try{let[b,c,d]=await Promise.all([fetch("/api/sessions"),fetch("/api/logs"),fetch("/api/providers")]);if(!b.ok||!c.ok||!d.ok)throw Error("Request failed");let[e,g,i]=await Promise.all([b.json(),c.json(),d.json()]);if(a)return;f(e),l(g),h(i)}catch{a||N("Could not read the agent session directories. Are ~/.copilot, ~/.claude or ~/.codex present and readable?")}finally{a||B(!1)}})(),()=>{a=!0}},[S]);let V=(0,n.useMemo)(()=>g.filter(a=>a.available),[g]),W=(0,n.useMemo)(()=>(function(a){let b=new Map;for(let c of a){let a=eX(c),d=b.get(a);d||(d={name:a,path:c.projectPath,sessions:0,costUSD:0,unpriced:!1,inputTokens:0,outputTokens:0,toolCalls:0,lastActive:"",providers:[]},b.set(a,d)),d.sessions+=1,d.costUSD+=c.estimatedCostUSD??0,c.unpricedModels?.length&&(d.unpriced=!0),d.inputTokens+=c.totalInputTokens??0,d.outputTokens+=c.totalOutputTokens??0,d.toolCalls+=c.toolCallCount??0;let e=c.updated_at??c.created_at??"";e>d.lastActive&&(d.lastActive=e),d.providers.includes(c.provider)||d.providers.push(c.provider)}return[...b.values()].sort((a,b)=>b.lastActive.localeCompare(a.lastActive))})(e),[e]),X=r||W.some(a=>a.name===c)?c:"all",Z=(0,n.useMemo)(()=>[{value:"all",label:"All projects"},...[...W].sort((a,b)=>a.name.localeCompare(b.name)).map(a=>({value:a.name,label:a.name}))],[W]),_=(0,n.useMemo)(()=>"all"===X?e:e.filter(a=>eX(a)===X),[e,X]),ab=(0,n.useMemo)(()=>"all"===i?_:_.filter(a=>a.provider===i),[_,i]),ac=(0,n.useMemo)(()=>{let a=O.trim().toLowerCase(),b=a?ab.filter(b=>b.name?.toLowerCase().includes(a)||b.title?.toLowerCase().includes(a)||b.repository?.toLowerCase().includes(a)||b.branch?.toLowerCase().includes(a)||b.cwd?.toLowerCase().includes(a)||b.id.toLowerCase().includes(a)):ab;return(0,eY.sortSessions)(b,Q)},[ab,O,Q]);return(0,m.jsxs)("div",{className:"min-h-screen bg-background text-foreground",children:[(0,m.jsx)("header",{className:"sticky top-0 z-20 border-b border-border bg-background/85 backdrop-blur supports-[backdrop-filter]:bg-background/70",children:(0,m.jsxs)("div",{className:"mx-auto flex max-w-6xl items-center gap-3 px-4 py-3 sm:px-6",children:[(0,m.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[(0,m.jsx)("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-lg bg-brand text-brand-foreground",children:(0,m.jsx)(q.Bot,{className:"size-4","aria-hidden":!0})}),(0,m.jsxs)("div",{className:"min-w-0",children:[(0,m.jsxs)("h1",{className:"truncate text-sm font-semibold leading-none tracking-tight",children:["Agent ",(0,m.jsx)("span",{className:"text-brand",children:"Session"})," Inspector"]}),(0,m.jsxs)("p",{className:"mt-1 truncate font-mono text-xs text-muted-foreground",children:["v",eW.APP_INFO.version]})]})]}),(0,m.jsxs)("div",{className:"ml-auto flex items-center gap-2 sm:gap-3",children:[(0,m.jsxs)("span",{className:"hidden items-center gap-1.5 text-sm text-muted-foreground sm:flex",children:[(0,m.jsx)("span",{className:(0,$.cn)("inline-block size-2 rounded-full",F?"bg-destructive":"bg-emerald-500"),"aria-hidden":!0}),(0,m.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:ab.length}),"sessions"]}),(0,m.jsx)(L.SearchTrigger,{}),(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsx)(A.Button,{variant:"outline",size:"icon",onClick:U,disabled:r,"aria-label":"Refresh",className:"text-muted-foreground",children:(0,m.jsx)(y,{className:(0,$.cn)("size-3.5",r&&"animate-spin"),"aria-hidden":!0})})}),(0,m.jsx)(D.TooltipContent,{children:"Refresh"})]}),(0,m.jsx)(K.PalettePicker,{}),(0,m.jsx)(M.ThemeToggle,{}),(0,m.jsx)(eV.AboutDialog,{providers:g})]})]})}),(0,m.jsxs)("main",{id:"main",className:"mx-auto max-w-6xl px-4 py-6 sm:px-6",children:[F&&(0,m.jsxs)("div",{className:"mb-5 flex items-start gap-3 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive","aria-hidden":!0}),(0,m.jsxs)("div",{className:"flex-1",children:[(0,m.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Failed to load sessions"}),(0,m.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:F})]}),(0,m.jsx)(A.Button,{variant:"outline",size:"sm",onClick:U,children:"Retry"})]}),(0,m.jsxs)(C.Tabs,{value:a,onValueChange:b,children:[(0,m.jsxs)(C.TabsList,{className:"mb-5 max-w-full justify-start overflow-x-auto",children:[(0,m.jsxs)(C.TabsTrigger,{value:"analytics",className:"px-3",children:[(0,m.jsx)(p.BarChart3,{className:"size-4","aria-hidden":!0}),"Analytics"]}),(0,m.jsxs)(C.TabsTrigger,{value:"usage",className:"px-3",children:[(0,m.jsx)(z.Wallet,{className:"size-4","aria-hidden":!0}),"Usage"]}),(0,m.jsxs)(C.TabsTrigger,{value:"activity",className:"px-3",children:[(0,m.jsx)(s,{className:"size-4","aria-hidden":!0}),"Activity"]}),(0,m.jsxs)(C.TabsTrigger,{value:"quality",className:"px-3",children:[(0,m.jsx)(v,{className:"size-4","aria-hidden":!0}),"Quality"]}),(0,m.jsxs)(C.TabsTrigger,{value:"projects",className:"px-3",children:[(0,m.jsx)(u.FolderGit2,{className:"size-4","aria-hidden":!0}),"Projects",(0,m.jsx)("span",{className:"ml-1 rounded-sm bg-foreground/10 px-1.5 text-[11px] tabular-nums",children:W.length})]}),(0,m.jsxs)(C.TabsTrigger,{value:"sessions",className:"px-3",children:[(0,m.jsx)(x.ListTree,{className:"size-4","aria-hidden":!0}),"Sessions",(0,m.jsx)("span",{className:"ml-1 rounded-sm bg-foreground/10 px-1.5 text-[11px] tabular-nums",children:_.length})]}),(0,m.jsxs)(C.TabsTrigger,{value:"logs",className:"px-3",children:[(0,m.jsx)(t.FileText,{className:"size-4","aria-hidden":!0}),"Logs",(0,m.jsx)("span",{className:"ml-1 rounded-sm bg-foreground/10 px-1.5 text-[11px] tabular-nums",children:k.length})]})]}),(0,m.jsx)(C.TabsContent,{value:"analytics",children:(0,m.jsx)(a2,{reloadToken:S,project:X,onProjectChange:d,projectOptions:Z})}),(0,m.jsx)(C.TabsContent,{value:"usage",children:(0,m.jsx)(bc,{reloadToken:S,project:X,onProjectChange:d,projectOptions:Z})}),(0,m.jsx)(C.TabsContent,{value:"activity",children:(0,m.jsx)(eU,{reloadToken:S,project:X,onProjectChange:d,projectOptions:Z})}),(0,m.jsx)(C.TabsContent,{value:"quality",children:(0,m.jsx)(bq,{reloadToken:S,project:X,onProjectChange:d,projectOptions:Z})}),(0,m.jsx)(C.TabsContent,{value:"projects",children:(0,m.jsx)(an,{projects:W,loading:r,selected:X,onSelect:function(a){d(a),b("sessions")}})}),(0,m.jsxs)(C.TabsContent,{value:"sessions",children:[V.length>1&&(0,m.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",role:"group","aria-label":"Filter by agent",children:[(0,m.jsx)(e0,{active:"all"===i,onClick:()=>j("all"),label:"All agents",count:_.length}),V.map(a=>(0,m.jsx)(e0,{active:i===a.id,onClick:()=>j(a.id),label:(0,Y.providerStyle)(a.id).shortLabel,count:_.filter(b=>b.provider===a.id).length,dotCls:(0,Y.providerStyle)(a.id).dotCls},a.id))]}),(0,m.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-3",children:[(0,m.jsx)(I.SearchInput,{value:O,onChange:P,shortcut:!0,placeholder:"Search title, repo, branch or id…","aria-label":"Search sessions",className:"w-full max-w-sm"}),Z.length>2&&(0,m.jsx)(G,{value:X,onChange:d,options:Z,"aria-label":"Project",className:"max-w-56"}),(0,m.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:"hidden sm:inline","aria-hidden":!0,children:"Sort"}),(0,m.jsx)(G,{value:Q,onChange:R,options:eY.SORT_OPTIONS,"aria-label":"Sort sessions"})]}),(0,m.jsx)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground",children:r?"Loading…":`${ac.length} of ${ab.length}`})]}),(0,m.jsx)("div",{className:"grid gap-2",children:r?Array.from({length:5},(a,b)=>(0,m.jsx)(J.SessionCardSkeleton,{},b)):ac.length>0?ac.map(a=>(0,m.jsx)(aa,{session:a},`${a.provider}:${a.id}`)):(0,m.jsx)(E.EmptyState,{icon:w,title:O?"No matching sessions":"No sessions yet",description:O?`Nothing matches “${O}”. Try a repository name, branch or session id.`:"all"!==X?`No ${(0,Y.providerStyle)(i).shortLabel} sessions in ${X}.`:"Sessions appear here once Copilot, Claude Code or Codex writes a transcript to your home directory.",action:O?(0,m.jsx)(A.Button,{variant:"outline",size:"sm",onClick:()=>P(""),children:"Clear search"}):void 0})})]}),(0,m.jsx)(C.TabsContent,{value:"logs",children:(0,m.jsx)(ai,{logs:k,loading:r})})]})]}),(0,m.jsx)(H.ScrollToTop,{})]})}function e0({active:a,onClick:b,label:c,count:d,dotCls:e}){return(0,m.jsxs)(B.Toggle,{variant:"outline",size:"sm",pressed:a,onPressedChange:b,className:"gap-1.5 rounded-full bg-background px-3 text-xs text-muted-foreground aria-pressed:border-brand/50 aria-pressed:bg-brand/10 aria-pressed:text-foreground",children:[e&&(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 rounded-full",e),"aria-hidden":!0}),c,(0,m.jsx)("span",{className:"rounded-sm bg-foreground/10 px-1.5 tabular-nums",children:d})]})}a.s(["default",0,function(){return(0,m.jsx)(n.Suspense,{children:(0,m.jsx)(e_,{})})}],40777)}];
|
|
1
|
+
module.exports=[40777,a=>{"use strict";var b,c,d,e,f,g,h,i,j,k,l,m=a.i(38742),n=a.i(73895),o=a.i(37303),p=a.i(17693),q=a.i(40762),r=a.i(70627);let s=(0,r.default)("calendar-clock",[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v3",key:"otl347"}],["path",{d:"M21 7.338V5a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h2.338",key:"7hb8p4"}],["path",{d:"M3 9h5.859",key:"numkqi"}],["path",{d:"M8 2v3",key:"1ioesn"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);var t=a.i(35789),u=a.i(21732);let v=(0,r.default)("heart-pulse",[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}],["path",{d:"M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27",key:"auskq0"}]]),w=(0,r.default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);var x=a.i(63611);let y=(0,r.default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);var z=a.i(46539),A=a.i(99570),B=a.i(73221),C=a.i(75083),D=a.i(85259),E=a.i(90892),F=a.i(80701);function G({value:a,onChange:b,options:c,className:d,"aria-label":e}){return(0,m.jsxs)(F.Select,{items:c,value:a,onValueChange:a=>{null!==a&&b(a)},children:[(0,m.jsx)(F.SelectTrigger,{"aria-label":e,className:d,children:(0,m.jsx)(F.SelectValue,{})}),(0,m.jsx)(F.SelectContent,{className:"w-auto min-w-[max(9rem,var(--anchor-width))]",children:(0,m.jsx)(F.SelectGroup,{children:c.map(a=>(0,m.jsx)(F.SelectItem,{value:a.value,children:a.label},a.value))})})]})}var H=a.i(19608),I=a.i(16543),J=a.i(59561),K=a.i(27936),L=a.i(31049),M=a.i(35540),N=a.i(24687),O=a.i(80995),P=a.i(44264);let Q=(0,r.default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);var R=a.i(46623),S=a.i(22598),T=a.i(86304),U=a.i(63167),V=a.i(96538),W=a.i(90075),X=a.i(27855),Y=a.i(80153),Z=a.i(75775),$=a.i(68114);function _({icon:a,value:b,label:c}){return(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[(0,m.jsx)(a,{className:"size-3.5 opacity-70","aria-hidden":!0}),(0,m.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:b.toLocaleString()}),(0,m.jsx)("span",{children:c})]})}function aa({session:a}){let b=(0,W.firstLine)(a.name),c=a.title??b,d=a.title?b:void 0,e=a.health,f=a.totalInputTokens??0,g=a.totalOutputTokens??0,h=a.estimatedCostUSD,i=a.unpricedModels??[],j=null!=h&&(h>0||0===i.length),k=!!a.eventCount||!!a.toolCallCount||!!a.userMessageCount||f+g>0||!!e,l=(0,Y.providerStyle)(a.provider);return(0,m.jsx)(N.default,{href:`/sessions/${a.provider}/${a.id}`,className:"group block min-w-0 rounded-xl focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:(0,m.jsxs)("article",{className:"relative rounded-xl border border-border bg-card px-4 py-3 transition-all duration-150 hover:border-brand/40 hover:shadow-md hover:shadow-foreground/5",children:[(0,m.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,m.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,m.jsxs)("span",{className:(0,$.cn)("mb-1 inline-flex items-center gap-1.5 rounded-full border px-2 py-0.5 text-[11px] font-medium",l.badgeCls),children:[(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 rounded-full",l.dotCls),"aria-hidden":!0}),l.shortLabel]}),(0,m.jsx)("h3",{className:"line-clamp-2 break-words text-sm font-semibold leading-snug text-foreground",children:c??(0,m.jsx)("span",{className:"font-normal italic text-muted-foreground",children:"Unnamed session"})}),d&&(0,m.jsx)("p",{className:"mt-0.5 line-clamp-1 break-words text-xs text-muted-foreground",children:d})]}),(0,m.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,m.jsxs)("div",{className:"flex flex-col items-end gap-1",children:[(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,Z.isRunning)(a.updated_at)?(0,m.jsxs)("span",{className:"inline-flex items-center gap-1.5 whitespace-nowrap text-xs font-medium text-emerald-600 dark:text-emerald-400",children:[(0,m.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-emerald-500","aria-hidden":!0}),"running"]}):(0,m.jsx)("span",{className:"whitespace-nowrap text-xs text-muted-foreground",children:(0,W.timeAgo)(a.updated_at)})}),(0,m.jsxs)(D.TooltipContent,{children:["Updated ",(0,W.formatDateTime)(a.updated_at)]})]}),a.client_name&&(0,m.jsx)(T.Badge,{variant:"secondary",className:"hidden text-xs sm:inline-flex",children:a.client_name})]}),(0,m.jsx)(O.ChevronRight,{className:"size-4 shrink-0 text-muted-foreground/40 transition-transform group-hover:translate-x-0.5 group-hover:text-brand","aria-hidden":!0})]})]}),(0,m.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground",children:[a.repository&&(0,m.jsx)("span",{className:"inline-flex min-w-0 items-center gap-1",children:(0,m.jsx)("span",{className:"truncate font-mono text-foreground/80",children:a.repository})}),a.branch&&(0,m.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,m.jsx)(P.GitBranch,{className:"size-3 opacity-70","aria-hidden":!0}),(0,m.jsx)("span",{className:"font-mono",children:a.branch})]}),!a.repository&&a.cwd&&(0,m.jsx)("span",{className:"max-w-full truncate font-mono opacity-80",children:a.cwd})]}),k&&(0,m.jsxs)("div",{className:"mt-2.5 flex flex-wrap items-center gap-x-3 gap-y-1.5 border-t border-border/70 pt-2.5",children:[!!a.userMessageCount&&(0,m.jsx)(_,{icon:Q,value:a.userMessageCount,label:"turns"}),!!a.toolCallCount&&(0,m.jsx)(_,{icon:R.Wrench,value:a.toolCallCount,label:"tools"}),!!a.eventCount&&(0,m.jsx)(_,{icon:S.Zap,value:a.eventCount,label:"events"}),(f+g>0||j||e)&&(0,m.jsxs)("div",{className:"ml-auto flex items-center gap-1.5",children:[e&&(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsx)(U.GradeBadge,{grade:e.grade,className:"h-[22px]"})}),(0,m.jsxs)(D.TooltipContent,{children:["Health ",e.score," · ",X.OUTCOME_LABELS[e.outcome].toLowerCase(),e.signals.filter(a=>"outcome"!==a.id).map(a=>` \xb7 ${X.SIGNAL_INFO[a.id].label.toLowerCase()}`)]})]}),j&&(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsxs)("span",{className:"inline-flex items-center rounded-sm border border-emerald-200 bg-emerald-50 px-1.5 py-0.5 font-mono text-xs text-emerald-700 dark:border-emerald-900 dark:bg-emerald-950/40 dark:text-emerald-300",children:[(0,W.formatCost)(h),i.length>0&&"+"]})}),(0,m.jsxs)(D.TooltipContent,{children:["Estimated cost at API list prices",i.length>0&&` \xb7 excludes ${i.join(", ")}`,null!=a.inheritedCostUSD&&` \xb7 plus ${(0,W.formatCost)(a.inheritedCostUSD)} inherited from the forked session`]})]}),f>0&&(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-sm border border-blue-200 bg-blue-50 px-1.5 py-0.5 font-mono text-xs text-blue-700 dark:border-blue-900 dark:bg-blue-950/40 dark:text-blue-300",children:[(0,m.jsx)(V.InputTokensIcon,{className:"size-3","aria-hidden":!0}),(0,m.jsx)("span",{className:"opacity-70",children:"in"}),(0,W.formatTokens)(f)]})}),(0,m.jsxs)(D.TooltipContent,{children:[f.toLocaleString()," input tokens"]})]}),g>0&&(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-sm border border-indigo-200 bg-indigo-50 px-1.5 py-0.5 font-mono text-xs text-indigo-700 dark:border-indigo-900 dark:bg-indigo-950/40 dark:text-indigo-300",children:[(0,m.jsx)(V.OutputTokensIcon,{className:"size-3","aria-hidden":!0}),(0,m.jsx)("span",{className:"opacity-70",children:"out"}),(0,W.formatTokens)(g)]})}),(0,m.jsxs)(D.TooltipContent,{children:[g.toLocaleString()," output tokens"]})]})]})]})]})})}let ab=(0,r.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);var ac=a.i(32465);let ad=(0,r.default)("text-wrap",[["path",{d:"m16 16-3 3 3 3",key:"117b85"}],["path",{d:"M3 12h14.5a1 1 0 0 1 0 7H13",key:"18xa6z"}],["path",{d:"M3 19h6",key:"1ygdsz"}],["path",{d:"M3 5h18",key:"1u36vt"}]]);var ae=a.i(69876),af=a.i(64151);let ag={error:"text-destructive",warn:"text-amber-600 dark:text-amber-400",info:"text-foreground",debug:"text-muted-foreground"};function ah(a){return a.includes("[ERROR]")?"error":a.includes("[WARN]")?"warn":a.includes("[INFO]")?"info":"debug"}function ai({logs:a,loading:b}){let[c,d]=(0,n.useState)(""),[e,f]=(0,n.useState)(null),[g,h]=(0,n.useState)(null),[i,j]=(0,n.useState)(""),[k,l]=(0,n.useState)(!1),[o,p]=(0,n.useState)(!0),q=e??a[0]?.name??null,r=a.find(a=>a.name===q)?.provider??"copilot",s=null!==q&&g?.name!==q,u=g?.name===q?g.content:"",v=(0,n.useMemo)(()=>{let b=c.trim().toLowerCase();return b?a.filter(a=>a.name.toLowerCase().includes(b)):a},[a,c]);(0,n.useEffect)(()=>{if(!q)return;let a=!1;return(async()=>{try{let b=await fetch(`/api/logs?provider=${encodeURIComponent(r)}&name=${encodeURIComponent(q)}`),c=await b.json();a||h({name:q,content:c.content||""})}catch{a||h({name:q,content:""})}})(),()=>{a=!0}},[q,r]);let w=(0,n.useMemo)(()=>u?u.split("\n"):[],[u]),x=(0,n.useMemo)(()=>{let a=i.trim().toLowerCase();return w.map((a,b)=>({text:a,n:b+1,level:ah(a)})).filter(b=>(!k||"error"===b.level||"warn"===b.level)&&(!a||!!b.text.toLowerCase().includes(a)))},[w,i,k]),y=(0,n.useMemo)(()=>w.filter(a=>"error"===ah(a)).length,[w]);return b?(0,m.jsxs)("div",{className:"grid gap-4 lg:h-[calc(100vh-16rem)] lg:grid-cols-[280px_1fr]",children:[(0,m.jsx)(J.Skeleton,{className:"h-64 lg:h-full"}),(0,m.jsx)(J.Skeleton,{className:"h-[60vh] lg:h-full"})]}):0===a.length?(0,m.jsx)(E.EmptyState,{icon:t.FileText,title:"No log files",description:"Nothing has been written to ~/.copilot/logs yet."}):(0,m.jsxs)("div",{className:"grid gap-4 lg:h-[calc(100vh-16rem)] lg:min-h-[420px] lg:grid-cols-[280px_1fr]",children:[(0,m.jsxs)("div",{className:"flex min-h-0 max-h-64 flex-col gap-2 lg:max-h-none",children:[(0,m.jsx)(I.SearchInput,{value:c,onChange:d,placeholder:"Filter files…","aria-label":"Filter log files"}),(0,m.jsx)(ae.ScrollArea,{className:"min-h-0 flex-1 rounded-xl border border-border",children:(0,m.jsxs)("div",{className:"space-y-1 p-2",children:[v.map(a=>{let b=q===a.name;return(0,m.jsxs)("button",{onClick:()=>{f(a.name),j(""),l(!1)},"aria-current":b,className:(0,$.cn)("w-full rounded-md px-3 py-2 text-left text-xs transition-colors","focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-ring",b?"bg-primary text-primary-foreground":"text-foreground hover:bg-muted"),children:[(0,m.jsx)("div",{className:"truncate font-mono",children:a.name}),(0,m.jsxs)("div",{className:(0,$.cn)("mt-0.5 flex justify-between",b?"text-primary-foreground/70":"text-muted-foreground"),children:[(0,m.jsx)("span",{children:(0,W.formatBytes)(a.size)}),(0,m.jsx)("span",{children:(0,W.timeAgo)(a.mtime)})]})]},a.name)}),0===v.length&&(0,m.jsxs)("p",{className:"px-3 py-6 text-center text-xs text-muted-foreground",children:["No files match “",c,"”"]})]})})]}),(0,m.jsx)("div",{className:"flex min-h-0 h-[60vh] flex-col overflow-hidden rounded-xl border border-border lg:h-auto",children:q?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-b border-border bg-muted/60 px-3 py-2",children:[(0,m.jsx)("span",{className:"min-w-0 truncate font-mono text-xs text-foreground",children:q}),y>0&&(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-sm border border-destructive/30 bg-destructive/10 px-1.5 py-0.5 text-[11px] font-medium text-destructive",children:[(0,m.jsx)(ab,{className:"size-3","aria-hidden":!0}),y," error",1===y?"":"s"]}),(0,m.jsxs)("div",{className:"ml-auto flex w-full items-center gap-1.5 sm:w-auto",children:[(0,m.jsx)(I.SearchInput,{value:i,onChange:j,size:"sm",placeholder:"Filter lines…","aria-label":"Filter log lines",className:"min-w-0 flex-1 sm:w-44 sm:flex-none"}),(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsxs)(B.Toggle,{variant:"outline",size:"sm",pressed:k,onPressedChange:l,className:"bg-background text-muted-foreground aria-pressed:border-destructive/40 aria-pressed:bg-destructive/10 aria-pressed:text-destructive",children:[(0,m.jsx)(ab,{"aria-hidden":!0}),"Problems"]})}),(0,m.jsx)(D.TooltipContent,{children:"Show only errors and warnings"})]}),(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsx)(B.Toggle,{variant:"outline",size:"sm",pressed:o,onPressedChange:p,"aria-label":"Wrap long lines",className:"bg-background text-muted-foreground aria-pressed:text-foreground",children:(0,m.jsx)(ad,{"aria-hidden":!0})})}),(0,m.jsx)(D.TooltipContent,{children:"Wrap long lines"})]}),(0,m.jsx)(af.CopyButton,{value:u,label:"Copy log",size:"sm"})]})]}),(i||k)&&(0,m.jsxs)("div",{className:"border-b border-border bg-background px-3 py-1 text-[11px] text-muted-foreground",children:[x.length.toLocaleString()," of ",w.length.toLocaleString()," lines"]}),(0,m.jsx)(ae.ScrollArea,{className:"min-h-0 flex-1",children:s?(0,m.jsxs)("div",{className:"flex items-center gap-2 p-4 text-sm text-muted-foreground",children:[(0,m.jsx)(ac.Loader2,{className:"size-4 animate-spin","aria-hidden":!0}),"Loading…"]}):0===x.length?(0,m.jsx)("p",{className:"p-6 text-center text-sm text-muted-foreground",children:"No lines match the current filter."}):(0,m.jsx)("div",{className:"p-3 font-mono text-xs",children:x.map(a=>(0,m.jsxs)("div",{className:(0,$.cn)("flex gap-3 rounded-sm px-1 leading-5 hover:bg-muted/60",ag[a.level]),children:[(0,m.jsx)("span",{className:"w-10 shrink-0 select-none text-right text-muted-foreground/40 tabular-nums",children:a.n}),(0,m.jsx)("span",{className:(0,$.cn)("min-w-0 flex-1",o?"whitespace-pre-wrap [overflow-wrap:anywhere]":"whitespace-pre"),children:a.text||" "})]},a.n))})})]}):(0,m.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:"Select a log file to view"})})]})}var aj=a.i(6015);let ak=[{value:"recent",label:"Most recent"},{value:"sessions",label:"Most sessions"},{value:"cost",label:"Highest cost"},{value:"tokens",label:"Most tokens"},{value:"name",label:"Name (A–Z)"}],al=["Project","Sessions","Cost","Input","Output","Tool calls","Last active"],am=a=>(0,W.formatTokens)(a)??"0";function an({projects:a,loading:b,selected:c,onSelect:d}){let[e,f]=(0,n.useState)(""),[g,h]=(0,n.useState)("recent"),i=(0,n.useMemo)(()=>{let b=e.trim().toLowerCase(),c=b?a.filter(a=>a.name.toLowerCase().includes(b)||a.path?.toLowerCase().includes(b)):a;if("recent"===g)return c;let d=[...c];switch(g){case"sessions":return d.sort((a,b)=>b.sessions-a.sessions);case"cost":return d.sort((a,b)=>b.costUSD-a.costUSD);case"tokens":return d.sort((a,b)=>b.inputTokens+b.outputTokens-(a.inputTokens+a.outputTokens));case"name":return d.sort((a,b)=>a.name.localeCompare(b.name))}},[a,e,g]);return b?(0,m.jsx)("div",{className:"space-y-2",children:Array.from({length:6},(a,b)=>(0,m.jsx)(J.Skeleton,{className:"h-12 rounded-xl"},b))}):0===a.length?(0,m.jsx)(E.EmptyState,{icon:u.FolderGit2,title:"No projects yet",description:`Projects appear once a supported agent writes a transcript on this machine: ${Y.SUPPORTED_AGENTS}.`}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-3",children:[(0,m.jsx)(I.SearchInput,{value:e,onChange:f,placeholder:"Search project or path…","aria-label":"Search projects",className:"w-full max-w-sm"}),(0,m.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:"hidden sm:inline","aria-hidden":!0,children:"Sort"}),(0,m.jsx)(G,{value:g,onChange:h,options:ak,"aria-label":"Sort projects"})]}),(0,m.jsxs)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground",children:[i.length," of ",a.length]})]}),0===i.length?(0,m.jsx)(E.EmptyState,{icon:u.FolderGit2,title:"No matching projects",description:`Nothing matches “${e}”. Try a folder name or part of its path.`,action:(0,m.jsx)(A.Button,{variant:"outline",size:"sm",onClick:()=>f(""),children:"Clear search"})}):(0,m.jsx)("div",{className:"rounded-xl border border-border bg-card",children:(0,m.jsxs)(aj.Table,{className:"min-w-[720px]",children:[(0,m.jsx)(aj.TableHeader,{children:(0,m.jsx)(aj.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:al.map((a,b)=>(0,m.jsx)(aj.TableHead,{className:(0,$.cn)("text-muted-foreground",b>0&&"text-right"),children:a},a))})}),(0,m.jsx)(aj.TableBody,{className:"tabular-nums",children:i.map(a=>(0,m.jsxs)(aj.TableRow,{"data-state":a.name===c?"selected":void 0,children:[(0,m.jsxs)(aj.TableCell,{className:"w-full max-w-0",children:[(0,m.jsx)("button",{type:"button",onClick:()=>d(a.name),className:"block max-w-full truncate rounded-sm text-left font-medium hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:a.name}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[a.providers.map(a=>(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 shrink-0 rounded-full",(0,Y.providerStyle)(a).dotCls),title:(0,Y.providerStyle)(a).shortLabel},a)),(0,m.jsx)("span",{className:"truncate font-mono",title:a.path,children:a.path??"location not recorded"})]})]}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.sessions.toLocaleString()}),(0,m.jsxs)(aj.TableCell,{className:"text-right font-medium",children:[(0,W.formatCost)(a.costUSD),a.unpriced&&"+"]}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:am(a.inputTokens)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:am(a.outputTokens)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.toolCalls.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"whitespace-nowrap text-right text-muted-foreground",children:(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsx)("span",{children:(0,W.timeAgo)(a.lastActive)||"—"})}),(0,m.jsx)(D.TooltipContent,{children:(0,W.formatDateTime)(a.lastActive)})]})})]},a.name))})]})})]})}let ao=(0,r.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);var ap=a.i(4888);function aq(a,b){let c=URL.createObjectURL(new Blob([b],{type:"text/csv"})),d=document.createElement("a");d.href=c,d.download=a,d.click(),URL.revokeObjectURL(c)}function ar({title:a,note:b,action:c,className:d,children:e}){return(0,m.jsxs)("section",{className:(0,$.cn)("min-w-0 rounded-xl border border-border bg-card p-4",d),children:[(0,m.jsxs)("div",{className:"mb-3 flex flex-wrap items-center justify-between gap-2",children:[(0,m.jsxs)("h2",{className:"text-sm font-semibold",children:[a,b&&(0,m.jsx)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:b})]}),c]}),e]})}var as=a.i(45646);let at=(0,r.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);var au=a.i(89560),av=a.i(14574);let aw=[{label:"Anthropic",url:"https://platform.claude.com/docs/en/about-claude/pricing",match:/^claude/},{label:"OpenAI",url:"https://platform.openai.com/docs/pricing",match:/^(gpt|chatgpt|codex|o\d)/},{label:"Google Gemini",url:"https://ai.google.dev/gemini-api/docs/pricing",match:/^gemini/},{label:"xAI",url:"https://docs.x.ai/docs/models",match:/^grok/},{label:"Mistral",url:"https://mistral.ai/pricing",match:/^(mistral|codestral|devstral|magistral|ministral|pixtral)/},{label:"DeepSeek",url:"https://api-docs.deepseek.com/quick_start/pricing",match:/^deepseek/}],ax={label:"OpenRouter",url:"https://openrouter.ai/models"},ay="unknown",az={target:"_blank",rel:"noreferrer"};function aA({children:a}){return(0,m.jsx)("code",{className:"font-mono text-foreground",children:a})}function aB({models:a}){let[b,c]=(0,n.useState)(!1),[d,e]=(0,n.useState)(null),f=(0,n.useRef)("");if(0===a.length)return null;let g=a.length>1,h=a.filter(a=>a!==ay),i=h.length>1,j=d?.overridePath??"~/.agent-session-inspector/pricing.json",k=[...new Set(h.map(a=>d?.keys[a]??a.toLowerCase()))],l=JSON.stringify(Object.fromEntries(k.map(a=>[a,{input:0,output:0,cacheRead:0}])),null,2);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-border bg-muted/40 px-3 py-2 text-xs text-muted-foreground",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-px size-3.5 shrink-0","aria-hidden":!0}),(0,m.jsxs)("p",{className:"min-w-0 flex-1",children:["No price is known for"," ",(0,m.jsx)("span",{className:"font-mono text-foreground",children:a.join(", ")}),", so cost figures leave ",g?"them":"it"," out. Token counts still include ",g?"them":"it","."]}),h.length>0&&(0,m.jsxs)(A.Button,{variant:"outline",size:"xs",onClick:function(){c(!0);let a=h.map(a=>`model=${encodeURIComponent(a)}`).join("&");f.current!==a&&(f.current=a,fetch(`/api/pricing?${a}`).then(a=>a.ok?a.json():null).then(e).catch(()=>e(null)))},"aria-haspopup":"dialog",className:"-my-1 shrink-0",children:[(0,m.jsx)(au.Info,{"aria-hidden":!0}),"Add ",i?"prices":"a price"]})]}),(0,m.jsx)(av.Dialog,{open:b,onOpenChange:c,children:(0,m.jsxs)(av.DialogContent,{className:"sm:max-w-xl",children:[(0,m.jsxs)("div",{className:"space-y-1.5",children:[(0,m.jsxs)(av.DialogTitle,{children:["Add ",i?"the missing prices":"the missing price"]}),(0,m.jsx)(av.DialogDescription,{children:"Costs are estimated from a price table bundled with the app. A model the table does not list is left out of every cost figure until you give it a price in your own override file. Nothing is fetched: you look the price up and enter it once."})]}),(0,m.jsxs)("section",{className:"space-y-2",children:[(0,m.jsx)("h3",{className:"text-xs font-medium text-foreground",children:"1. Find the price"}),(0,m.jsx)("ul",{className:"overflow-hidden rounded-lg border border-border text-xs",children:k.map(a=>{let b=aw.find(b=>b.match.test(a))??{label:ax.label,url:`${ax.url}?q=${encodeURIComponent(a)}`};return(0,m.jsxs)("li",{className:"flex items-center gap-2 border-b border-border/60 px-3 py-2 last:border-b-0",children:[(0,m.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-foreground",children:a}),(0,m.jsxs)("a",{href:b.url,...az,className:"inline-flex shrink-0 items-center gap-1 rounded-sm font-medium text-foreground underline underline-offset-2 hover:text-brand focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:[b.label," pricing",(0,m.jsx)(at,{className:"size-3","aria-hidden":!0})]})]},a)})}),(0,m.jsxs)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:["All price lists:"," ",[...aw,ax].map((a,b)=>(0,m.jsxs)("span",{children:[b>0&&" · ",(0,m.jsx)("a",{href:a.url,...az,className:"text-foreground underline underline-offset-2 hover:text-brand",children:a.label})]},a.label)),". Use the pay-per-token API price in US dollars per million tokens."]})]}),(0,m.jsxs)("section",{className:"space-y-2 border-t border-border pt-3",children:[(0,m.jsx)("h3",{className:"text-xs font-medium text-foreground",children:"2. Add it to pricing.json"}),(0,m.jsxs)("div",{className:"flex items-center gap-1 text-xs leading-relaxed text-muted-foreground",children:[(0,m.jsxs)("p",{className:"min-w-0 flex-1",children:["Create ",(0,m.jsx)(aA,{children:j})," if it does not exist, or add"," ",i?"these entries":"this entry"," to the one you have, and replace the zeros."]}),(0,m.jsx)(af.CopyButton,{value:j,label:"Copy path"})]}),(0,m.jsxs)("div",{className:"relative",children:[(0,m.jsx)("pre",{className:"overflow-x-auto rounded-lg border border-border bg-muted/50 p-3 pr-10 font-mono text-[11px] leading-relaxed text-foreground",children:l}),(0,m.jsx)(af.CopyButton,{value:l,label:"Copy pricing.json",className:"absolute top-1.5 right-1.5"})]}),(0,m.jsxs)("ul",{className:"list-disc space-y-1 pl-4 text-xs leading-relaxed text-muted-foreground",children:[(0,m.jsxs)("li",{children:[(0,m.jsx)(aA,{children:"input"})," and ",(0,m.jsx)(aA,{children:"output"})," are required. ",(0,m.jsx)(aA,{children:"cacheRead"}),","," ",(0,m.jsx)(aA,{children:"cacheWrite"})," and ",(0,m.jsx)(aA,{children:"cacheWrite1h"})," are optional: the first two fall back to the input price, and ",(0,m.jsx)(aA,{children:"cacheWrite1h"})," to"," ",(0,m.jsx)(aA,{children:"cacheWrite"}),"."]}),(0,m.jsxs)("li",{children:["A model you run yourself costs nothing per token: leave ",(0,m.jsx)(aA,{children:"input"})," and"," ",(0,m.jsx)(aA,{children:"output"})," at 0 to count it as free."]}),(0,m.jsxs)("li",{children:["To record a price change, give the model a list of entries and mark the later one with ",(0,m.jsx)(aA,{children:'"from": "YYYY-MM-DD"'}),". Older sessions keep the old price."]})]})]}),(0,m.jsxs)("p",{className:"border-t border-border pt-3 text-xs leading-relaxed text-muted-foreground",children:[(0,m.jsx)("span",{className:"font-medium text-foreground",children:"3. Reload this page."})," The file is read on every load, so no restart is needed. Entries in it also replace the bundled price of any model they name.",h.length<a.length&&(0,m.jsxs)(m.Fragment,{children:[" ","Usage listed as ",(0,m.jsx)(aA,{children:ay})," was recorded without a model name, so it cannot be given a price."]})]})]})})]})}var aC=a.i(84213);let aD={messages:"Messages",sessions:"Sessions",outputTokens:"Output tokens",costUSD:"Cost"},aE=[{value:"7",label:"Last 7 days",days:7},{value:"30",label:"Last 30 days",days:30},{value:"90",label:"Last 90 days",days:90},{value:"365",label:"Last year",days:365},{value:"all",label:"All time",days:null}],aF=()=>({sessions:0,messages:0,toolCalls:0,outputTokens:0,activeMs:0,costUSD:0});function aG(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())}function aH(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate()+b)}function aI(a){let b=String(a.getMonth()+1).padStart(2,"0"),c=String(a.getDate()).padStart(2,"0");return`${a.getFullYear()}-${b}-${c}`}function aJ(a,b){return 0===a.length?0:a[Math.min(a.length-1,Math.floor(b*a.length))]}function aK(){return Array.from({length:7},()=>Array(24).fill(0))}function aL(a){return[...new Set(a.map(a=>a.model).filter(a=>!!a))].sort()}function aM(a){let[b,c]=(0,n.useState)(null),[d,e]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let a=!1;return(async()=>{try{let b=await fetch("/api/analytics");if(!b.ok)throw Error("Request failed");let d=await b.json();if(a)return;c(d),e(!1)}catch{a||e(!0)}})(),()=>{a=!0}},[a]),{sessions:b,error:d}}let aN=["bg-muted","bg-brand/25","bg-brand/50","bg-brand/75","bg-brand"],aO=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function aP(a,b){return a<=0||b<=0?0:Math.max(1,Math.ceil(4*Math.sqrt(a/b)))}function aQ(a,b){if("costUSD"===a)return(0,W.formatCost)(b);let c="outputTokens"===a?(0,W.formatTokens)(b)??"0":b.toLocaleString(),d=aD[a].toLowerCase();return`${c} ${1===b?d.replace(/s$/,""):d}`}function aR({readout:a,hint:b}){return(0,m.jsxs)("div",{className:"mt-3 flex items-center justify-between gap-3 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,$.cn)("truncate",a&&"text-foreground"),"aria-live":"polite",children:a??b}),(0,m.jsxs)("span",{className:"flex shrink-0 items-center gap-1","aria-hidden":!0,children:["Less",aN.map(a=>(0,m.jsx)("span",{className:(0,$.cn)("size-3 rounded-[3px]",a)},a)),"More"]})]})}let aS=a=>a.toLocaleDateString([],{weekday:"short",month:"short",day:"numeric",year:"numeric"});function aT({days:a,metric:b}){let[c,d]=(0,n.useState)(null),e=Math.max(0,...a.map(a=>a[b])),f=[...Array(a[0]?.date.getDay()??0).fill(null),...a],g=[];for(let a=0;a<f.length;a+=7)g.push(f.slice(a,a+7));let h=g.length<=14?20:g.length<=27?16:13,i=-1,j=g.map(a=>{let b=a.find(a=>null!==a);return b&&b.date.getMonth()!==i?(i=b.date.getMonth(),b.date.toLocaleDateString([],{month:"short"})):""});return(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{className:"overflow-x-auto pb-1",children:(0,m.jsxs)("div",{role:"img","aria-label":`${aD[b]} per day over ${a.length} days`,className:"inline-flex gap-[3px]",style:{"--cell":`${h}px`},onMouseLeave:()=>d(null),children:[(0,m.jsx)("div",{className:"mr-1 flex flex-col gap-[3px] pt-[19px] text-[10px] leading-(--cell) text-muted-foreground",children:aO.map((a,b)=>(0,m.jsx)("span",{className:"h-(--cell)",children:b%2==1?a:""},a))}),g.map((a,c)=>(0,m.jsxs)("div",{className:"flex flex-col gap-[3px]",children:[(0,m.jsx)("span",{className:"h-4 w-(--cell) overflow-visible whitespace-nowrap text-[10px] text-muted-foreground",children:j[c]}),a.map((a,c)=>a?(0,m.jsx)("span",{title:`${aS(a.date)}: ${aQ(b,a[b])}`,onMouseEnter:()=>d(`${aS(a.date)} \xb7 ${aQ(b,a[b])}`),className:(0,$.cn)("size-(--cell) rounded-[3px] hover:ring-1 hover:ring-foreground/50",aN[aP(a[b],e)])},a.day):(0,m.jsx)("span",{className:"size-(--cell)"},c))]},c))]})}),(0,m.jsx)(aR,{readout:c,hint:"Hover a day for its count"})]})}let aU=Array.from({length:24},(a,b)=>b),aV=a=>String(a%24).padStart(2,"0");function aW({grid:a,metric:b}){let[c,d]=(0,n.useState)(null),e=Math.max(0,...a.flat());return(0,m.jsxs)("div",{children:[(0,m.jsxs)("div",{role:"img","aria-label":`${aD[b]} by weekday and hour of day`,className:"grid grid-cols-[auto_repeat(24,minmax(0,1fr))] gap-[3px]",onMouseLeave:()=>d(null),children:[(0,m.jsx)("span",{}),aU.map(a=>(0,m.jsx)("span",{className:"text-center text-[10px] text-muted-foreground",children:a%3==0?a:""},a)),a.map((a,c)=>(0,m.jsxs)("div",{className:"contents",children:[(0,m.jsx)("span",{className:"pr-1.5 text-[10px] leading-5 text-muted-foreground",children:aO[c]}),a.map((a,f)=>{let g=`${aO[c]} ${aV(f)}:00–${aV(f+1)}:00 \xb7 ${aQ(b,a)}`;return(0,m.jsx)("span",{title:g,onMouseEnter:()=>d(g),className:(0,$.cn)("h-5 rounded-[3px] hover:ring-1 hover:ring-foreground/50",aN[aP(a,e)])},f)})]},c))]}),(0,m.jsx)(aR,{readout:c,hint:`Times in ${Intl.DateTimeFormat().resolvedOptions().timeZone}`})]})}let aX=a=>a.toLocaleDateString([],{month:"short",day:"numeric"});function aY({weeks:a}){let[b,c]=(0,n.useState)(null),d=Math.max(1,...a.map(a=>a.toolCalls));return(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{role:"img","aria-label":`Tool calls per week over ${a.length} weeks`,className:"flex h-24 items-end gap-[2px] border-b border-border",onMouseLeave:()=>c(null),children:a.map(a=>{let b=`Week of ${aX(a.start)} \xb7 ${a.toolCalls.toLocaleString()} tool calls`;return(0,m.jsx)("div",{title:b,onMouseEnter:()=>c(b),className:"group flex h-full min-w-0 max-w-10 flex-1 items-end",children:(0,m.jsx)("div",{className:"w-full rounded-t bg-brand group-hover:bg-brand/75",style:{height:a.toolCalls>0?`max(2px, ${a.toolCalls/d*100}%)`:0}})},a.start.getTime())})}),(0,m.jsxs)("div",{className:"mt-1.5 flex justify-between gap-3 text-[10px] text-muted-foreground",children:[(0,m.jsx)("span",{className:"shrink-0",children:a.length>0&&aX(a[0].start)}),(0,m.jsx)("span",{className:(0,$.cn)("truncate text-xs",b&&"text-foreground"),"aria-live":"polite",children:b??`peak ${d.toLocaleString()} calls in a week`}),(0,m.jsx)("span",{className:"shrink-0",children:a.length>1&&aX(a[a.length-1].start)})]})]})}let aZ=["messages","sessions","outputTokens","costUSD"].map(a=>({value:a,label:aD[a]})),a$=[{value:"messages",label:"Messages"},{value:"activeMs",label:"Active time"},{value:"outputTokens",label:"Output tokens"},{value:"costUSD",label:"Cost"}],a_=[{value:"servers",label:"Servers"},{value:"tools",label:"Tools"}],a0=[{value:"messages",label:"Messages"},{value:"costUSD",label:"Cost"}],a1=["Agent","Sessions","Cost","Messages","Tool calls","Output","Active","Msgs/min","Tools/min","Top tools"];function a2({reloadToken:a,project:b,onProjectChange:c,projectOptions:d}){let{sessions:e,error:f}=aM(a),[g,h]=(0,n.useState)("90"),[i,j]=(0,n.useState)("all"),[k,l]=(0,n.useState)("all"),[q,r]=(0,n.useState)("messages"),[s,t]=(0,n.useState)("messages"),[u,v]=(0,n.useState)("messages"),[w,x]=(0,n.useState)("messages"),[y,z]=(0,n.useState)("servers"),B=(0,n.useMemo)(()=>({days:aE.find(a=>a.value===g)?.days??null,project:b,provider:i,model:k}),[g,b,i,k]),C=(0,n.useMemo)(()=>e?function(a,b,c=new Date){let d=aG(c),e=null===b.days?null:aH(d,1-b.days).getTime(),f=new Map,g={messages:aK(),sessions:aK(),outputTokens:aK(),costUSD:aK()},h=new Set,i=[],j=new Map,k=new Map,l=new Map,m=new Map,n=new Map,o=d.getTime();for(let c of a){if("all"!==b.provider&&c.provider!==b.provider||"all"!==b.project&&c.project!==b.project||"all"!==b.model&&c.model!==b.model)continue;let a={provider:c.provider,id:c.id,label:c.label,project:c.project,messages:0,toolCalls:0,outputTokens:0,activeMs:0,costUSD:0},d=n.get(c.provider);d||(d={provider:c.provider,...aF(),topTools:[],tools:new Map},n.set(c.provider,d));let p=new Set,q=new Set,r=new Set,s=!1;for(let b of c.activity){if(null!==e&&b.t<e)continue;s=!0;let c=new Date(b.t),h=aI(c),i=f.get(h);i||(i={day:h,date:aG(c),...aF()},f.set(h,i),o=Math.min(o,i.date.getTime()));let j=c.getDay(),n=c.getHours();for(let c of[a,i,d])c.messages+=b.messages,c.toolCalls+=b.toolCalls,c.outputTokens+=b.outputTokens,c.activeMs+=b.activeMs,c.costUSD+=b.costUSD??0;g.messages[j][n]+=b.messages,g.outputTokens[j][n]+=b.outputTokens,g.costUSD[j][n]+=b.costUSD??0,!p.has(h)&&(p.add(h),i.sessions++);let t=24*j+n;for(let[a,c]of(!q.has(t)&&(q.add(t),g.sessions[j][n]++),Object.entries(b.tools??{})))k.set(a,(k.get(a)??0)+c),d.tools.set(a,(d.tools.get(a)??0)+c);for(let[a,c]of Object.entries(b.skills??{})){let b=l.get(a);b||l.set(a,b={name:a,value:0,sessions:0}),b.value+=c,!r.has(a)&&(r.add(a),b.sessions++)}for(let[a,c]of Object.entries(b.mcp??{})){let b=a.indexOf("__"),d=a.slice(0,b),e=a.slice(b+2),f=m.get(d);f||m.set(d,f=new Map),f.set(e,(f.get(e)??0)+c)}}if(!s)continue;for(let b of(i.push(a),d.sessions++,c.unpricedModels??[]))h.add(b);let t=j.get(a.project)??{name:a.project,sessions:0,messages:0,costUSD:0};t.sessions++,t.messages+=a.messages,t.costUSD+=a.costUSD,j.set(a.project,t)}let p=new Date(null===e?o:e),q=[];for(let a=p;a.getTime()<=d.getTime();a=aH(a,1)){let b=aI(a);q.push(f.get(b)??{day:b,date:a,...aF()})}let r=[];for(let a of q){let b=aH(a.date,-a.date.getDay()),c=r[r.length-1];c&&c.start.getTime()===b.getTime()||(c={start:b,...aF()},r.push(c)),c.sessions+=a.sessions,c.messages+=a.messages,c.toolCalls+=a.toolCalls,c.outputTokens+=a.outputTokens,c.activeMs+=a.activeMs,c.costUSD+=a.costUSD}let s={...aF(),sessions:i.length,projects:j.size,activeDays:f.size};for(let a of i)s.messages+=a.messages,s.toolCalls+=a.toolCalls,s.outputTokens+=a.outputTokens,s.activeMs+=a.activeMs,s.costUSD+=a.costUSD;let t=i.map(a=>a.messages).sort((a,b)=>a-b),u=(a,b)=>b[1]-a[1];return{totals:s,messagesPerSession:{mean:i.length?s.messages/i.length:0,median:aJ(t,.5),p90:aJ(t,.9)},days:q,weeks:r,hourly:g,sessions:i,projects:[...j.values()].sort((a,b)=>b.messages-a.messages),tools:[...k.entries()].sort(u).map(([a,b])=>({name:a,value:b})),skills:[...l.values()].sort((a,b)=>b.value-a.value),mcpServers:[...m.entries()].map(([a,b])=>{let c=[...b.entries()].sort(u);return{name:a,value:c.reduce((a,[,b])=>a+b,0),tools:c.map(([a,b])=>({name:a,value:b}))}}).sort((a,b)=>b.value-a.value),agents:[...n.values()].filter(a=>a.sessions>0).sort((a,b)=>b.messages-a.messages).map(({tools:a,...b})=>({...b,topTools:[...a.entries()].sort(u).slice(0,3).map(([a])=>a)})),unpricedModels:[...h].sort()}}(e,B):null,[e,B]),D=(0,n.useMemo)(()=>Y.PROVIDER_ORDER.filter(a=>e?.some(b=>b.provider===a)),[e]),F=(0,n.useMemo)(()=>aL(e??[]),[e]),H=(0,n.useMemo)(()=>[{value:"all",label:"All agents"},...D.map(a=>({value:a,label:(0,Y.providerStyle)(a).shortLabel}))],[D]),I=(0,n.useMemo)(()=>[{value:"all",label:"All models"},...F.map(a=>({value:a,label:a}))],[F]),K=(0,n.useMemo)(()=>C?[...C.sessions].sort((a,b)=>b[u]-a[u]).filter(a=>a[u]>0).slice(0,10):[],[C,u]);if(f&&!e)return(0,m.jsxs)("div",{className:"flex items-start gap-3 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive","aria-hidden":!0}),(0,m.jsx)("p",{className:"text-sm",children:"Could not load analytics. Use refresh to try again."})]});if(!e||!C)return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(150px,1fr))] gap-3",children:Array.from({length:7},(a,b)=>(0,m.jsx)(J.Skeleton,{className:"h-[86px] rounded-xl"},b))}),(0,m.jsx)(J.Skeleton,{className:"h-48 rounded-xl"})]});if(0===e.length)return(0,m.jsx)(E.EmptyState,{icon:p.BarChart3,title:"Nothing to chart yet",description:`Analytics appear once a supported agent writes a transcript on this machine: ${Y.SUPPORTED_AGENTS}.`});let{totals:L,messagesPerSession:M}=C,O=C.projects[0],P=C.skills.reduce((a,b)=>a+b.value,0),Q=C.mcpServers.reduce((a,b)=>a+b.value,0),R="servers"===y?C.mcpServers:C.mcpServers.flatMap(a=>a.tools.map(b=>({name:`${a.name} › ${b.name}`,value:b.value}))),S=(a,b)=>b>0?(a/(b/6e4)).toFixed(1):"—";return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,m.jsx)(G,{value:g,onChange:h,options:aE,"aria-label":"Date range"}),d.length>2&&(0,m.jsx)(G,{value:b,onChange:c,options:d,"aria-label":"Project",className:"max-w-56"}),D.length>1&&(0,m.jsx)(G,{value:i,onChange:j,options:H,"aria-label":"Agent"}),F.length>1&&(0,m.jsx)(G,{value:k,onChange:l,options:I,"aria-label":"Model",className:"max-w-56"}),(0,m.jsxs)(A.Button,{variant:"outline",onClick:()=>aq(`agent-activity-${g}.csv`,["date,sessions,messages,tool_calls,output_tokens,active_minutes,estimated_cost_usd",...C.days.map(a=>[a.day,a.sessions,a.messages,a.toolCalls,a.outputTokens,Math.round(a.activeMs/6e4),a.costUSD.toFixed(2)].join(","))].join("\n")+"\n"),className:"ml-auto",children:[(0,m.jsx)(ao,{"aria-hidden":!0}),"Export CSV"]})]}),0===L.sessions?(0,m.jsx)(E.EmptyState,{icon:p.BarChart3,title:"No activity for these filters",description:"Try a longer date range, or clear the project, agent and model filters."}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(aC.StatCardGrid,{children:[(0,m.jsx)(aC.StatCard,{label:"Est. cost",value:(0,W.formatCost)(L.costUSD),sub:C.unpricedModels.length>0?`${C.unpricedModels.length} model${C.unpricedModels.length>1?"s":""} unpriced`:"at API list prices",accent:!0}),(0,m.jsx)(aC.StatCard,{label:"Sessions",value:L.sessions.toLocaleString()}),(0,m.jsx)(aC.StatCard,{label:"Messages",value:(0,W.formatCount)(L.messages)}),(0,m.jsx)(aC.StatCard,{label:"Msgs / session",value:M.mean.toFixed(1),sub:`median ${M.median} \xb7 p90 ${M.p90}`}),(0,m.jsx)(aC.StatCard,{label:"Tool calls",value:(0,W.formatCount)(L.toolCalls)}),(0,m.jsx)(aC.StatCard,{label:"Output tokens",value:(0,W.formatTokens)(L.outputTokens)??"0"}),(0,m.jsx)(aC.StatCard,{label:"Active time",value:(0,W.formatDuration)(L.activeMs),sub:"excl. pauses > 5 min"}),(0,m.jsx)(aC.StatCard,{label:"Active days",value:L.activeDays.toLocaleString(),sub:`of ${C.days.length}`}),(0,m.jsx)(aC.StatCard,{label:"Projects",value:L.projects.toLocaleString(),sub:O&&L.messages>0?`${Math.round(O.messages/L.messages*100)}% in ${O.name}`:void 0})]}),(0,m.jsx)(aB,{models:C.unpricedModels}),(0,m.jsx)(ar,{title:"Activity",action:(0,m.jsx)(as.Segmented,{label:"Activity metric",value:q,onChange:r,options:aZ}),children:(0,m.jsx)(aT,{days:C.days,metric:q})}),(0,m.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,m.jsx)(ar,{title:"By weekday and hour",action:(0,m.jsx)(as.Segmented,{label:"Weekday and hour metric",value:s,onChange:t,options:aZ}),children:(0,m.jsx)(aW,{grid:C.hourly[s],metric:s})}),(0,m.jsx)(ar,{title:"Top sessions",action:(0,m.jsx)(as.Segmented,{label:"Rank sessions by",value:u,onChange:v,options:a$}),children:(0,m.jsx)("ol",{className:"-mx-2",children:K.map((a,b)=>(0,m.jsx)("li",{children:(0,m.jsxs)(N.default,{href:`/sessions/${a.provider}/${a.id}`,className:"flex items-center gap-3 rounded-md px-2 py-1.5 transition-colors hover:bg-muted focus-visible:outline-2 focus-visible:outline-ring",children:[(0,m.jsx)("span",{className:"w-4 shrink-0 text-right text-xs tabular-nums text-muted-foreground",children:b+1}),(0,m.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,m.jsx)("span",{className:"block truncate text-sm",children:a.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 rounded-full",(0,Y.providerStyle)(a.provider).dotCls),"aria-hidden":!0}),(0,Y.providerStyle)(a.provider).shortLabel," · ",a.project]})]}),(0,m.jsx)("span",{className:"shrink-0 text-sm font-medium tabular-nums",children:"costUSD"===u?(0,W.formatCost)(a.costUSD):"activeMs"===u?(0,W.formatDuration)(a.activeMs):"outputTokens"===u?(0,W.formatTokens)(a.outputTokens)??"0":a.messages.toLocaleString()})]})},`${a.provider}:${a.id}`))})}),(0,m.jsx)(ar,{title:"Projects",note:`${L.projects} total`,action:(0,m.jsx)(as.Segmented,{label:"Rank projects by",value:w,onChange:x,options:a0}),children:(0,m.jsx)(ap.BarList,{items:C.projects.map(a=>({name:a.name,value:a[w]})),limit:10,format:"costUSD"===w?W.formatCost:void 0})}),(0,m.jsxs)(ar,{title:"Tool usage",note:`${L.toolCalls.toLocaleString()} calls`,children:[(0,m.jsx)(ap.BarList,{items:C.tools,limit:8,emptyLabel:"No tool calls"}),C.weeks.length>1&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)("h3",{className:"mb-2 mt-5 text-xs uppercase tracking-wider text-muted-foreground",children:"Weekly trend"}),(0,m.jsx)(aY,{weeks:C.weeks})]})]}),(0,m.jsxs)(ar,{title:"Skills",note:`${P.toLocaleString()} call${1===P?"":"s"} \xb7 ${C.skills.length} skill${1===C.skills.length?"":"s"}`,children:[(0,m.jsx)(ap.BarList,{items:C.skills,limit:8,emptyLabel:"No skill was loaded in this range"}),C.skills.length>0&&(0,m.jsxs)("p",{className:"mt-3 text-xs text-muted-foreground",children:["Most used:"," ",(0,m.jsx)("span",{className:"font-mono text-foreground",children:C.skills[0].name}),", in"," ",C.skills[0].sessions," session",1===C.skills[0].sessions?"":"s","."]})]}),(0,m.jsx)(ar,{title:"MCP tools",note:`${Q.toLocaleString()} call${1===Q?"":"s"} \xb7 ${C.mcpServers.length} server${1===C.mcpServers.length?"":"s"}`,action:C.mcpServers.length>0?(0,m.jsx)(as.Segmented,{label:"Group MCP calls by",value:y,onChange:z,options:a_}):void 0,children:(0,m.jsx)(ap.BarList,{items:R,limit:8,emptyLabel:"No MCP tool was called in this range"})})]}),(0,m.jsx)(ar,{title:"Agent comparison",children:(0,m.jsxs)(aj.Table,{className:"min-w-[720px]",children:[(0,m.jsx)(aj.TableHeader,{children:(0,m.jsx)(aj.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:a1.map((a,b)=>(0,m.jsx)(aj.TableHead,{className:(0,$.cn)("text-muted-foreground",b>0&&b<a1.length-1&&"text-right"),children:a},a))})}),(0,m.jsx)(aj.TableBody,{className:"tabular-nums",children:C.agents.map(a=>(0,m.jsxs)(aj.TableRow,{children:[(0,m.jsx)(aj.TableCell,{children:(0,m.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:[(0,m.jsx)("span",{className:(0,$.cn)("size-2 rounded-full",(0,Y.providerStyle)(a.provider).dotCls),"aria-hidden":!0}),(0,Y.providerStyle)(a.provider).shortLabel]})}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.sessions.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:(0,W.formatCost)(a.costUSD)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.messages.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.toolCalls.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:(0,W.formatTokens)(a.outputTokens)??"0"}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:(0,W.formatDuration)(a.activeMs)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:S(a.messages,a.activeMs)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:S(a.toolCalls,a.activeMs)}),(0,m.jsx)(aj.TableCell,{className:"max-w-56 truncate font-mono text-xs text-muted-foreground",children:a.topTools.join(", ")||"—"})]},a.provider))})]})})]})]})}let a3=["project","model","agent"],a4={project:"Project",model:"Model",agent:"Agent"},a5=()=>({project:{},model:{},agent:{}});function a6(a,b,c,d){let e=a[b]??={costUSD:0,tokens:0};e.costUSD+=c,e.tokens+=d}var a7=a.i(56979);let a8=[{value:"costUSD",label:"Cost"},{value:"tokens",label:"Tokens"}],a9=a3.map(a=>({value:a,label:a4[a]})),ba=["Session","Input","Cached","Output","Cost"],bb=a=>(0,W.formatTokens)(a)??"0";function bc({reloadToken:a,project:b,onProjectChange:c,projectOptions:d}){let{sessions:e,error:f}=aM(a),[g,h]=(0,n.useState)("30"),[i,j]=(0,n.useState)("all"),[k,l]=(0,n.useState)("all"),[p,q]=(0,n.useState)("costUSD"),[r,s]=(0,n.useState)("project"),t=(0,n.useMemo)(()=>({days:aE.find(a=>a.value===g)?.days??null,project:b,provider:i,model:k}),[g,b,i,k]),u=(0,n.useMemo)(()=>e?function(a,b,c=new Date){let d=aG(c),e=null===b.days?null:aH(d,1-b.days).getTime(),f=new Map,g={project:new Map,model:new Map,agent:new Map},h=[],i=new Set,j=d.getTime();for(let c of a){if("all"!==b.provider&&c.provider!==b.provider||"all"!==b.project&&c.project!==b.project)continue;let a={provider:c.provider,id:c.id,label:c.label,project:c.project,costUSD:0,tokens:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0},d={project:c.project,model:"",agent:c.provider},k=new Set;for(let h of c.usage){if("all"!==b.model&&h.model!==b.model||null!==e&&h.t<e)continue;let c=h.inputTokens+h.outputTokens+h.cacheReadTokens+h.cacheWriteTokens;if(0===c)continue;let l=h.costUSD??0;null===h.costUSD&&i.add(h.model);let m=new Date(h.t),n=aI(m),o=f.get(n);for(let b of(o||(o={start:aG(m),days:1,costUSD:0,tokens:0,by:a5()},f.set(n,o),j=Math.min(j,o.start.getTime())),o.costUSD+=l,o.tokens+=c,a.costUSD+=l,a.tokens+=c,a.inputTokens+=h.inputTokens,a.outputTokens+=h.outputTokens,a.cacheReadTokens+=h.cacheReadTokens,a.cacheWriteTokens+=h.cacheWriteTokens,d.model=h.model,a3)){let a=d[b];a6(o.by[b],a,l,c);let e=g[b].get(a);e||(e={name:a,sessions:0,costUSD:0,tokens:0},g[b].set(a,e)),e.costUSD+=l,e.tokens+=c;let f=`${b}|${a}`;!k.has(f)&&(k.add(f),e.sessions++)}}a.tokens>0&&h.push(a)}let k=new Date(null===e?j:e),l=[];for(let a=k;a.getTime()<=d.getTime();a=aH(a,1))l.push(f.get(aI(a))??{start:a,days:1,costUSD:0,tokens:0,by:a5()});let m={costUSD:0,tokens:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,sessions:h.length,activeDays:f.size};for(let a of h)m.costUSD+=a.costUSD,m.tokens+=a.tokens,m.inputTokens+=a.inputTokens,m.outputTokens+=a.outputTokens,m.cacheReadTokens+=a.cacheReadTokens,m.cacheWriteTokens+=a.cacheWriteTokens;let n=m.inputTokens+m.cacheReadTokens+m.cacheWriteTokens,o=null;for(let a of f.values())(!o||a.costUSD>o.costUSD)&&(o=a);let p=a=>[...g[a].values()];return{totals:m,cacheHitRate:n>0?m.cacheReadTokens/n:0,days:l,peakDay:o,attribution:{project:p("project"),model:p("model"),agent:p("agent")},sessions:h,unpricedModels:[...i].sort()}}(e,t):null,[e,t]),v=(0,n.useMemo)(()=>Y.PROVIDER_ORDER.filter(a=>e?.some(b=>b.provider===a)),[e]),w=(0,n.useMemo)(()=>[{value:"all",label:"All agents"},...v.map(a=>({value:a,label:(0,Y.providerStyle)(a).shortLabel}))],[v]),x=(0,n.useMemo)(()=>[{value:"all",label:"All models"},...[...new Set((e??[]).flatMap(a=>a.usage.map(a=>a.model)))].sort().map(a=>({value:a,label:a}))],[e]),y=a=>"agent"===r?(0,Y.providerStyle)(a).shortLabel:a,B=(0,n.useMemo)(()=>u?[...u.attribution[r]].filter(a=>a[p]>0).sort((a,b)=>b[p]-a[p]):[],[u,r,p]),C=(0,n.useMemo)(()=>u?[...u.sessions].sort((a,b)=>b[p]-a[p]).filter(a=>a[p]>0).slice(0,10):[],[u,p]);if(f&&!e)return(0,m.jsxs)("div",{className:"flex items-start gap-3 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive","aria-hidden":!0}),(0,m.jsx)("p",{className:"text-sm",children:"Could not load usage. Use refresh to try again."})]});if(!e||!u)return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(150px,1fr))] gap-3",children:Array.from({length:7},(a,b)=>(0,m.jsx)(J.Skeleton,{className:"h-[86px] rounded-xl"},b))}),(0,m.jsx)(J.Skeleton,{className:"h-64 rounded-xl"})]});if(0===e.length)return(0,m.jsx)(E.EmptyState,{icon:z.Wallet,title:"No usage yet",description:`Cost and token usage appear once a supported agent writes a transcript on this machine: ${Y.SUPPORTED_AGENTS}.`});let{totals:D,peakDay:F}=u,H=u.unpricedModels,I=u.days.length>92?function(a){let b=[];for(let c of a){let a=aH(c.start,-c.start.getDay()),d=b[b.length-1];for(let e of(d&&aH(d.start,-d.start.getDay()).getTime()===a.getTime()||(d={start:c.start,days:0,costUSD:0,tokens:0,by:a5()},b.push(d)),d.days++,d.costUSD+=c.costUSD,d.tokens+=c.tokens,a3))for(let[a,b]of Object.entries(c.by[e]))a6(d.by[e],a,b.costUSD,b.tokens)}return b}(u.days):u.days,K=B.slice(0,a7.SERIES_COLORS.length).map((a,b)=>({name:a.name,label:y(a.name),color:a7.SERIES_COLORS[b]}));B.length>K.length&&K.push({name:a7.OTHER,label:`Other (${B.length-K.length})`,color:a7.OTHER_COLOR});let L=a=>K.find(b=>b.name===a)?.color??a7.OTHER_COLOR,M=B.reduce((a,b)=>a+b[p],0);return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,m.jsx)(G,{value:g,onChange:h,options:aE,"aria-label":"Date range"}),d.length>2&&(0,m.jsx)(G,{value:b,onChange:c,options:d,"aria-label":"Project",className:"max-w-56"}),v.length>1&&(0,m.jsx)(G,{value:i,onChange:j,options:w,"aria-label":"Agent"}),x.length>2&&(0,m.jsx)(G,{value:k,onChange:l,options:x,"aria-label":"Model",className:"max-w-56"}),(0,m.jsxs)("div",{className:"ml-auto flex flex-wrap items-center gap-2",children:[(0,m.jsx)(as.Segmented,{label:"Measure",value:p,onChange:q,options:a8,size:"default"}),(0,m.jsxs)(A.Button,{variant:"outline",onClick:()=>aq(`agent-usage-${g}-by-${r}.csv`,function(a,b){let c=[`date,${b},tokens,estimated_cost_usd`];for(let d of a)for(let[a,e]of Object.entries(d.by[b])){let b=/[",\n]/.test(a)?`"${a.replace(/"/g,'""')}"`:a;c.push([aI(d.start),b,e.tokens,e.costUSD.toFixed(4)].join(","))}return c.join("\n")+"\n"}(u.days,r)),children:[(0,m.jsx)(ao,{"aria-hidden":!0}),"Export CSV"]})]})]}),0===D.tokens?(0,m.jsx)(E.EmptyState,{icon:z.Wallet,title:"No usage for these filters",description:"Try a longer date range, or clear the project, agent and model filters."}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(aC.StatCardGrid,{children:[(0,m.jsx)(aC.StatCard,{label:"Est. cost",value:(0,W.formatCost)(D.costUSD),sub:H.length>0?`${H.length} model${H.length>1?"s":""} unpriced`:"at API list prices",accent:!0}),(0,m.jsx)(aC.StatCard,{label:"Daily burn",value:(0,W.formatCost)(D.activeDays?D.costUSD/D.activeDays:0),sub:`avg over ${D.activeDays} active day${1===D.activeDays?"":"s"}`}),(0,m.jsx)(aC.StatCard,{label:"Peak day",value:(0,W.formatCost)(F?.costUSD??0),sub:F?.start.toLocaleDateString([],{weekday:"short",month:"short",day:"numeric"})}),(0,m.jsx)(aC.StatCard,{label:"Input tokens",value:bb(D.inputTokens),sub:`+${bb(D.cacheReadTokens)} cached`}),(0,m.jsx)(aC.StatCard,{label:"Output tokens",value:bb(D.outputTokens),sub:D.cacheWriteTokens>0?`${bb(D.cacheWriteTokens)} cache writes`:void 0}),(0,m.jsx)(aC.StatCard,{label:"Cache hit",value:`${(100*u.cacheHitRate).toFixed(1)}%`,sub:"of input read from cache"}),(0,m.jsx)(aC.StatCard,{label:"Sessions",value:D.sessions.toLocaleString(),sub:`${(0,W.formatCost)(D.costUSD/D.sessions)} avg`})]}),(0,m.jsx)(aB,{models:H}),(0,m.jsx)(ar,{title:"costUSD"===p?"Cost over time":"Tokens over time",note:I===u.days?"per day":"per week",action:(0,m.jsx)(as.Segmented,{label:"Break down by",value:r,onChange:s,options:a9}),children:(0,m.jsx)(a7.StackedBars,{periods:I,breakdownOf:a=>a.by[r],series:K,unit:p})}),(0,m.jsx)(ar,{title:`${"costUSD"===p?"Cost":"Tokens"} by ${a4[r].toLowerCase()}`,note:`${B.length} total`,children:(0,m.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,m.jsx)(a7.Treemap,{unit:p,items:B.map(a=>({name:a.name,label:y(a.name),value:a[p],color:L(a.name)}))}),(0,m.jsx)("ol",{className:"max-h-72 space-y-1 overflow-y-auto pr-1 text-xs",children:B.map((a,b)=>(0,m.jsxs)("li",{className:"flex items-center gap-2.5",children:[(0,m.jsx)("span",{className:"w-4 shrink-0 text-right tabular-nums text-muted-foreground",children:b+1}),(0,m.jsx)("span",{className:"size-2.5 shrink-0 rounded-[3px]",style:{background:L(a.name)},"aria-hidden":!0}),(0,m.jsx)("span",{className:"min-w-0 flex-1 truncate",title:y(a.name),children:y(a.name)}),(0,m.jsxs)("span",{className:"shrink-0 text-muted-foreground",children:[a.sessions," session",1===a.sessions?"":"s"]}),(0,m.jsx)("span",{className:"w-14 shrink-0 text-right font-medium tabular-nums",children:(0,a7.formatUnit)(p,a[p])}),(0,m.jsxs)("span",{className:"w-11 shrink-0 text-right tabular-nums text-muted-foreground",children:[(a[p]/M*100).toFixed(1),"%"]})]},a.name))})]})}),(0,m.jsx)(ar,{title:`Top sessions by ${"costUSD"===p?"cost":"tokens"}`,children:(0,m.jsxs)(aj.Table,{className:"min-w-[640px]",children:[(0,m.jsx)(aj.TableHeader,{children:(0,m.jsx)(aj.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:ba.map((a,b)=>(0,m.jsx)(aj.TableHead,{className:(0,$.cn)("text-muted-foreground",b>0&&"text-right"),children:a},a))})}),(0,m.jsx)(aj.TableBody,{className:"tabular-nums",children:C.map(a=>(0,m.jsxs)(aj.TableRow,{children:[(0,m.jsxs)(aj.TableCell,{className:"max-w-0 w-full",children:[(0,m.jsx)(N.default,{href:`/sessions/${a.provider}/${a.id}`,className:"block truncate font-medium hover:underline focus-visible:outline-2 focus-visible:outline-ring",children:a.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 rounded-full",(0,Y.providerStyle)(a.provider).dotCls),"aria-hidden":!0}),(0,Y.providerStyle)(a.provider).shortLabel," · ",a.project]})]}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:bb(a.inputTokens)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:bb(a.cacheReadTokens)}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:bb(a.outputTokens)}),(0,m.jsx)(aj.TableCell,{className:"text-right font-medium",children:(0,W.formatCost)(a.costUSD)})]},`${a.provider}:${a.id}`))})]})})]})]})}var bd=a.i(89065);function be(a){return a>=90?"A":a>=80?"B":a>=70?"C":a>=60?"D":"F"}let bf=["outcome","tool_failures","retry_loops","api_errors","aborted_turns","compactions"];function bg(a,b,c){let d=a.get(b)??{sessions:0,score:0,completed:0,failures:0};d.sessions++,d.score+=c.score,"completed"===c.outcome&&d.completed++,d.failures+=c.toolFailures,a.set(b,d)}function bh(a){return[...a.entries()].map(([a,b])=>({name:a,sessions:b.sessions,avgScore:b.score/b.sessions,completed:b.completed/b.sessions,avgFailures:b.failures/b.sessions})).sort((a,b)=>b.sessions-a.sessions||a.name.localeCompare(b.name))}let bi=["Sessions","Avg score","Completed","Failures/session"],bj=[{value:"agent",label:"Agent"},{value:"project",label:"Project"}],bk=(a,b)=>b>0?`${Math.round(a/b*100)}%`:"—",bl=a=>a.toLocaleDateString([],{month:"short",day:"numeric"});function bm({session:a}){return(0,m.jsxs)(N.default,{href:`/sessions/${a.provider}/${a.id}`,className:"flex items-center gap-3 rounded-md px-2 py-1.5 transition-colors hover:bg-muted focus-visible:outline-2 focus-visible:outline-ring",children:[(0,m.jsx)(U.GradeBadge,{grade:a.health.grade,score:a.health.score}),(0,m.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,m.jsx)("span",{className:"block truncate text-sm",children:a.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 shrink-0 rounded-full",(0,Y.providerStyle)(a.provider).dotCls),"aria-hidden":!0}),(0,m.jsxs)("span",{className:"truncate",children:[(0,Y.providerStyle)(a.provider).shortLabel," · ",a.project," ·"," ",[X.OUTCOME_LABELS[a.health.outcome].toLowerCase(),...a.health.signals.filter(a=>"outcome"!==a.id).map(a=>X.SIGNAL_INFO[a.id].label.toLowerCase())].join(", ")]})]})]})]})}function bn({rows:a}){let b=a.reduce((a,b)=>a+b.value,0);return(0,m.jsx)("div",{className:"space-y-1.5",children:a.map(a=>(0,m.jsxs)("div",{className:"flex items-center gap-2.5 text-xs",children:[(0,m.jsx)("div",{className:"w-24 shrink-0 text-muted-foreground",children:a.label}),(0,m.jsx)("div",{className:"h-4 flex-1 overflow-hidden rounded-sm bg-muted",children:a.value>0&&(0,m.jsx)("div",{className:(0,$.cn)("h-full rounded-sm",a.bar),style:{width:`${Math.max(a.value/b*100,2)}%`}})}),(0,m.jsx)("div",{className:"w-8 shrink-0 text-right font-medium tabular-nums",children:a.value}),(0,m.jsx)("div",{className:"w-9 shrink-0 text-right tabular-nums text-muted-foreground",children:bk(a.value,b)})]},a.key))})}function bo({periods:a,weekly:b}){let[c,d]=(0,n.useState)(null);return(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{role:"img","aria-label":`Average health score per ${b?"week":"day"} over ${a.length} ${b?"weeks":"days"}`,className:"flex h-24 items-end gap-[2px] border-b border-border",onMouseLeave:()=>d(null),children:a.map(a=>{let c=`${b?"Week of ":""}${bl(a.start)}`,e=null===a.avgScore?`${c} \xb7 no sessions`:`${c} \xb7 average ${Math.round(a.avgScore)} over ${a.sessions} session${1===a.sessions?"":"s"}`;return(0,m.jsx)("div",{title:e,onMouseEnter:()=>d(e),className:"group flex h-full min-w-0 max-w-10 flex-1 items-end",children:null!==a.avgScore&&(0,m.jsx)("div",{className:(0,$.cn)("w-full rounded-t group-hover:opacity-75",X.GRADE_STYLES[be(Math.round(a.avgScore))].bar),style:{height:`max(2px, ${a.avgScore}%)`}})},a.start.getTime())})}),(0,m.jsxs)("div",{className:"mt-1.5 flex justify-between gap-3 text-[10px] text-muted-foreground",children:[(0,m.jsx)("span",{className:"shrink-0",children:a.length>0&&bl(a[0].start)}),(0,m.jsx)("span",{className:(0,$.cn)("truncate text-xs",c&&"text-foreground"),"aria-live":"polite",children:c??"bar height is the average score, colour its grade"}),(0,m.jsx)("span",{className:"shrink-0",children:a.length>1&&bl(a[a.length-1].start)})]})]})}function bp({rows:a,groupKey:b}){return(0,m.jsxs)(aj.Table,{className:"min-w-[520px]",children:[(0,m.jsx)(aj.TableHeader,{children:(0,m.jsxs)(aj.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:[(0,m.jsx)(aj.TableHead,{className:"text-muted-foreground",children:"agent"===b?"Agent":"Project"}),bi.map(a=>(0,m.jsx)(aj.TableHead,{className:"text-right text-muted-foreground",children:a},a))]})}),(0,m.jsx)(aj.TableBody,{className:"tabular-nums",children:a.map(a=>(0,m.jsxs)(aj.TableRow,{children:[(0,m.jsx)(aj.TableCell,{className:"max-w-0 w-full",children:(0,m.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:["agent"===b&&(0,m.jsx)("span",{className:(0,$.cn)("size-2 shrink-0 rounded-full",(0,Y.providerStyle)(a.name).dotCls),"aria-hidden":!0}),(0,m.jsx)("span",{className:"truncate",children:"agent"===b?(0,Y.providerStyle)(a.name).shortLabel:a.name})]})}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.sessions.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:(0,m.jsxs)("span",{className:"inline-flex items-center gap-2",children:[Math.round(a.avgScore),(0,m.jsx)(U.GradeBadge,{grade:be(Math.round(a.avgScore))})]})}),(0,m.jsxs)(aj.TableCell,{className:"text-right",children:[Math.round(100*a.completed),"%"]}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.avgFailures.toFixed(1)})]},a.name))})]})}function bq({reloadToken:a,project:b,onProjectChange:c,projectOptions:d}){let{sessions:e,error:f}=aM(a),[g,h]=(0,n.useState)("90"),[i,j]=(0,n.useState)("all"),[k,l]=(0,n.useState)("all"),[p,q]=(0,n.useState)("agent"),r=(0,n.useMemo)(()=>({days:aE.find(a=>a.value===g)?.days??null,project:b,provider:i,model:k}),[g,b,i,k]),s=(0,n.useMemo)(()=>e?function(a,b,c=new Date){let d=aG(c),e=null===b.days?null:aH(d,1-b.days).getTime(),f=[],g=0;for(let c of a){if("all"!==b.provider&&c.provider!==b.provider||"all"!==b.project&&c.project!==b.project||"all"!==b.model&&c.model!==b.model)continue;let a=-1/0;for(let b of c.activity)(null===e||b.t>=e)&&(a=Math.max(a,b.t));if(a!==-1/0){if(!c.health){g++;continue}f.push({provider:c.provider,id:c.id,label:c.label,project:c.project,health:c.health,lastActive:a})}}let h={A:0,B:0,C:0,D:0,F:0},i={completed:0,in_progress:0,abandoned:0,errored:0},j=new Map,k=new Map,l=new Map,m=new Map,n=0,o=0,p=0,q=d.getTime();for(let a of f){let{health:b}=a;n+=b.score,h[b.grade]++,i[b.outcome]++,o+=Math.max(b.toolResults,b.toolFailures),p+=b.toolFailures,bg(j,a.provider,b),bg(k,a.project,b);let c=aG(new Date(a.lastActive));q=Math.min(q,c.getTime());let d=l.get(aI(c))??{sessions:0,score:0};for(let e of(d.sessions++,d.score+=b.score,l.set(aI(c),d),b.signals)){let b=m.get(e.id)??{count:0,rows:[]};b.count+=e.count,b.rows.push({s:a,penalty:e.penalty}),m.set(e.id,b)}}let r=[],s=new Date(null===e?q:e);for(let a=s;a.getTime()<=d.getTime();a=aH(a,1)){let b=l.get(aI(a));r.push({start:a,sessions:b?.sessions??0,avgScore:b?b.score/b.sessions:null})}let t=f.length?n/f.length:0;return{scored:f.length,unscored:g,avgScore:t,grade:be(Math.round(t)),grades:h,outcomes:i,toolResults:o,toolFailures:p,patterns:bf.flatMap(a=>{let b=m.get(a);return b?{id:a,sessions:b.rows.length,count:b.count,examples:b.rows.sort((a,b)=>b.penalty-a.penalty||a.s.health.score-b.s.health.score).slice(0,3).map(a=>a.s)}:[]}).sort((a,b)=>b.sessions-a.sessions),days:r,agents:bh(j),projects:bh(k),sessions:f.sort((a,b)=>a.health.score-b.health.score||b.lastActive-a.lastActive)}}(e,r):null,[e,r]),t=(0,n.useMemo)(()=>Y.PROVIDER_ORDER.filter(a=>e?.some(b=>b.provider===a)),[e]),u=(0,n.useMemo)(()=>[{value:"all",label:"All agents"},...t.map(a=>({value:a,label:(0,Y.providerStyle)(a).shortLabel}))],[t]),w=(0,n.useMemo)(()=>[{value:"all",label:"All models"},...aL(e??[]).map(a=>({value:a,label:a}))],[e]);if(f&&!e)return(0,m.jsxs)("div",{className:"flex items-start gap-3 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive","aria-hidden":!0}),(0,m.jsx)("p",{className:"text-sm",children:"Could not load session health. Use refresh to try again."})]});if(!e||!s)return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(150px,1fr))] gap-3",children:Array.from({length:6},(a,b)=>(0,m.jsx)(J.Skeleton,{className:"h-[86px] rounded-xl"},b))}),(0,m.jsx)(J.Skeleton,{className:"h-64 rounded-xl"})]});if(0===e.length)return(0,m.jsx)(E.EmptyState,{icon:v,title:"No sessions to score yet",description:`Health scores appear once a supported agent writes a transcript on this machine: ${Y.SUPPORTED_AGENTS}.`});let x=s.days.length>92,y=x?function(a){let b=[];for(let c of a){let a=aH(c.start,-c.start.getDay()),d=b[b.length-1];d&&d.start.getTime()===a.getTime()||(d={start:a,sessions:0,avgScore:null,total:0},b.push(d)),d.sessions+=c.sessions,d.total+=(c.avgScore??0)*c.sessions,d.avgScore=d.sessions?d.total/d.sessions:null}return b.map(({start:a,sessions:b,avgScore:c})=>({start:a,sessions:b,avgScore:c}))}(s.days):s.days,z=s.outcomes.abandoned+s.outcomes.errored,B=s.patterns.find(a=>"tool_failures"===a.id)?.sessions??0,C=s.grades.D+s.grades.F,D=s.sessions.filter(a=>a.health.signals.length>0).slice(0,10);return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,m.jsx)(G,{value:g,onChange:h,options:aE,"aria-label":"Date range"}),d.length>2&&(0,m.jsx)(G,{value:b,onChange:c,options:d,"aria-label":"Project",className:"max-w-56"}),t.length>1&&(0,m.jsx)(G,{value:i,onChange:j,options:u,"aria-label":"Agent"}),w.length>2&&(0,m.jsx)(G,{value:k,onChange:l,options:w,"aria-label":"Model",className:"max-w-56"}),(0,m.jsxs)(A.Button,{variant:"outline",className:"ml-auto",disabled:0===s.scored,onClick:()=>{var a;return aq(`agent-quality-${g}.csv`,(a=s.sessions,[["agent","session_id","project","last_active","score","grade","outcome","tool_results","tool_failures",...bf.filter(a=>"outcome"!==a&&"tool_failures"!==a)].join(","),...a.map(a=>{let b=b=>a.health.signals.find(a=>a.id===b)?.count??0;return[a.provider,a.id,`"${a.project.replace(/"/g,'""')}"`,new Date(a.lastActive).toISOString(),a.health.score,a.health.grade,a.health.outcome,a.health.toolResults,a.health.toolFailures,b("retry_loops"),b("api_errors"),b("aborted_turns"),b("compactions")].join(",")})].join("\n")+"\n"))},children:[(0,m.jsx)(ao,{"aria-hidden":!0}),"Export CSV"]})]}),0===s.scored?(0,m.jsx)(E.EmptyState,{icon:v,title:"No scored sessions for these filters",description:"Try a longer date range, or clear the project, agent and model filters."}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(aC.StatCardGrid,{children:[(0,m.jsx)(aC.StatCard,{label:"Avg score",value:`${Math.round(s.avgScore)}`,sub:`grade ${s.grade}`,accent:!0}),(0,m.jsx)(aC.StatCard,{label:"Scored",value:s.scored.toLocaleString(),sub:s.unscored>0?`${s.unscored} with no agent activity`:"sessions"}),(0,m.jsx)(aC.StatCard,{label:"Completed",value:bk(s.outcomes.completed,s.scored),sub:`${s.outcomes.completed.toLocaleString()} sessions`}),(0,m.jsx)(aC.StatCard,{label:"Unfinished",value:z.toLocaleString(),sub:`${s.outcomes.abandoned} abandoned \xb7 ${s.outcomes.errored} errored`}),(0,m.jsx)(aC.StatCard,{label:"Tool failures",value:bk(B,s.scored),sub:`${B.toLocaleString()} sessions affected`}),(0,m.jsx)(aC.StatCard,{label:"Failure rate",value:s.toolResults>0?`${(s.toolFailures/s.toolResults*100).toFixed(1)}%`:"—",sub:`${s.toolFailures.toLocaleString()} of ${s.toolResults.toLocaleString()} results`}),(0,m.jsx)(aC.StatCard,{label:"Low grades",value:C.toLocaleString(),sub:"sessions graded D or F"})]}),(0,m.jsx)(ar,{title:"Recurring problems",note:"rule-based, from the transcripts",children:0===s.patterns.length?(0,m.jsxs)("div",{className:"flex items-center gap-2.5 rounded-xl border border-emerald-200 bg-emerald-50 px-4 py-3 dark:border-emerald-900 dark:bg-emerald-950/30",children:[(0,m.jsx)(bd.CheckCircle2,{className:"size-4 shrink-0 text-emerald-600 dark:text-emerald-400","aria-hidden":!0}),(0,m.jsx)("p",{className:"text-sm",children:"No session in this range lost any points."})]}):(0,m.jsx)("ul",{className:"divide-y divide-border",children:s.patterns.map(a=>{let b=X.SIGNAL_INFO[a.id];return(0,m.jsxs)("li",{className:"py-3 first:pt-0 last:pb-0",children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-x-3 gap-y-0.5",children:[(0,m.jsx)("h3",{className:"text-sm font-medium",children:b.label}),(0,m.jsxs)("span",{className:"text-xs tabular-nums text-muted-foreground",children:[a.sessions," of ",s.scored," sessions (",bk(a.sessions,s.scored),")","outcome"!==a.id&&` \xb7 ${a.count.toLocaleString()} in total`]})]}),(0,m.jsx)("p",{className:"mt-0.5 text-xs leading-relaxed text-muted-foreground",children:b.advice}),(0,m.jsx)("ol",{className:"-mx-2 mt-1.5",children:a.examples.map(a=>(0,m.jsx)("li",{children:(0,m.jsx)(bm,{session:a})},`${a.provider}:${a.id}`))})]},a.id)})})}),(0,m.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,m.jsx)(ar,{title:"Grades",note:`${s.scored} scored`,children:(0,m.jsx)(bn,{rows:X.GRADES.map(a=>({key:a,label:(0,m.jsx)(U.GradeBadge,{grade:a}),value:s.grades[a],bar:X.GRADE_STYLES[a].bar}))})}),(0,m.jsx)(ar,{title:"Outcomes",children:(0,m.jsx)(bn,{rows:X.OUTCOMES.filter(a=>"in_progress"!==a||s.outcomes.in_progress>0).map(a=>({key:a,label:X.OUTCOME_LABELS[a],value:s.outcomes[a],bar:X.OUTCOME_BARS[a]}))})})]}),y.length>1&&(0,m.jsx)(ar,{title:"Health trend",note:x?"per week":"per day",children:(0,m.jsx)(bo,{periods:y,weekly:x})}),(0,m.jsx)(ar,{title:"Comparison",action:(0,m.jsx)(as.Segmented,{label:"Compare by",value:p,onChange:q,options:bj}),children:(0,m.jsx)(bp,{rows:"agent"===p?s.agents:s.projects,groupKey:p})}),D.length>0&&(0,m.jsx)(ar,{title:"Lowest scores",note:"worst first",children:(0,m.jsx)("ol",{className:"-mx-2",children:D.map(a=>(0,m.jsx)("li",{children:(0,m.jsx)(bm,{session:a})},`${a.provider}:${a.id}`))})})]})]})}var br=a.i(73946);let bs=(0,r.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),bt={},bu={};function bv(a,b){try{let c=(bt[a]||=new Intl.DateTimeFormat("en-US",{timeZone:a,timeZoneName:"longOffset"}).format)(b).split("GMT")[1];if(c in bu)return bu[c];return bx(c,c.split(":"))}catch{if(a in bu)return bu[a];let b=a?.match(bw);if(b)return bx(a,b.slice(1));return NaN}}let bw=/([+-]\d\d):?(\d\d)?/;function bx(a,b){let c=+(b[0]||0),d=+(b[1]||0),e=(b[2]||0)/60;return bu[a]=60*c+d>0?60*c+d+e:60*c-d-e}class by extends Date{constructor(...a){super(),a.length>1&&"string"==typeof a[a.length-1]&&(this.timeZone=a.pop()),this.internal=new Date,isNaN(bv(this.timeZone,this))?this.setTime(NaN):a.length?"number"==typeof a[0]&&(1===a.length||2===a.length&&"number"!=typeof a[1])?this.setTime(a[0]):"string"==typeof a[0]?this.setTime(+new Date(a[0])):a[0]instanceof Date?this.setTime(+a[0]):(this.setTime(+new Date(...a)),bB(this,a)):this.setTime(Date.now())}static tz(a,...b){return b.length?new by(...b,a):new by(Date.now(),a)}withTimeZone(a){return new by(+this,a)}getTimezoneOffset(){let a=-bv(this.timeZone,this);return a>0?Math.floor(a):Math.ceil(a)}setTime(a){return Date.prototype.setTime.apply(this,arguments),bA(this),+this}[Symbol.for("constructDateFrom")](a){return new by(+new Date(a),this.timeZone)}}let bz=/^(get|set)(?!UTC)/;function bA(a){a.internal.setTime(+a),a.internal.setUTCSeconds(a.internal.getUTCSeconds()-Math.round(-(60*bv(a.timeZone,a))))}function bB(a,b){var c;let d=Array.isArray(b)?Date.UTC((c=b)[0],c.length>1?c[1]:0,c.length>2?c[2]:1,...c.slice(3)):+a.internal,e=bv(a.timeZone,a),f=e>0?Math.floor(e):Math.ceil(e),g=new Date(+a);g.setUTCHours(g.getUTCHours()-1);let h=-new Date(+a).getTimezoneOffset(),i=-new Date(+g).getTimezoneOffset(),j=h;if(h-i&&h!==f&&Date.prototype.getHours.apply(a)!==(Array.isArray(b)?b[3]||0:a.internal.getUTCHours())){let b=new Date(+a),c=h-f;c&&b.setUTCMinutes(b.getUTCMinutes()+c);let d=bv(a.timeZone,b);(d>0?Math.floor(d):Math.ceil(d))===f&&(j=i)}let k=j-f;k&&Date.prototype.setUTCMinutes.call(a,Date.prototype.getUTCMinutes.call(a)+k);let l=new Date(+a);l.setUTCSeconds(0);let m=h>0?l.getSeconds():(l.getSeconds()-60)%60,n=Math.round(-(60*bv(a.timeZone,a)))%60;(n||m)&&Date.prototype.setUTCSeconds.call(a,Date.prototype.getUTCSeconds.call(a)+n+m);let o=bv(a.timeZone,a),p=o>0?Math.floor(o):Math.ceil(o),q=-new Date(+a).getTimezoneOffset()-p-k,r=p-f,s=r>0&&bC(a)-d==60*r*1e3&&bC(a,d-60*p*1e3)!==d;if(p!==f&&q&&!s){Date.prototype.setUTCMinutes.call(a,Date.prototype.getUTCMinutes.call(a)+q);let b=bv(a.timeZone,a),c=p-(b>0?Math.floor(b):Math.ceil(b));c&&q<0&&Date.prototype.setUTCMinutes.call(a,Date.prototype.getUTCMinutes.call(a)+c)}bA(a);let t=(b?d:d+1e3*n)-a.internal;t&&18e5>Math.abs(t)&&(Date.prototype.setTime.call(a,+a+t),bA(a))}function bC(a,b){let c=new Date(b??+a);return c.setUTCSeconds(c.getUTCSeconds()-Math.round(-(60*bv(a.timeZone,c)))),+c}Object.getOwnPropertyNames(Date.prototype).forEach(a=>{if(!bz.test(a))return;let b=a.replace(bz,"$1UTC");by.prototype[b]&&(a.startsWith("get")?by.prototype[a]=function(){return this.internal[b]()}:(by.prototype[a]=function(){var a;return Date.prototype[b].apply(this.internal,arguments),a=this,Date.prototype.setFullYear.call(a,a.internal.getUTCFullYear(),a.internal.getUTCMonth(),a.internal.getUTCDate()),Date.prototype.setHours.call(a,a.internal.getUTCHours(),a.internal.getUTCMinutes(),a.internal.getUTCSeconds(),a.internal.getUTCMilliseconds()),bB(a),+this},by.prototype[b]=function(){return Date.prototype[b].apply(this,arguments),bA(this),+this}))});class bD extends by{static tz(a,...b){return b.length?new bD(...b,a):new bD(Date.now(),a)}toISOString(){let[a,b,c]=this.tzComponents(),d=`${a}${b}:${c}`;return this.internal.toISOString().slice(0,-1)+d}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){let[a,b,c,d]=this.internal.toUTCString().split(" ");return`${a?.slice(0,-1)} ${c} ${b} ${d}`}toTimeString(){let a=this.internal.toUTCString().split(" ")[4],[b,c,d]=this.tzComponents();return`${a} GMT${b}${c}${d} (${function(a,b,c="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:a,timeZoneName:c}).format(b).split(/\s/g).slice(2).join(" ")}(this.timeZone,this)})`}toLocaleString(a,b){return Date.prototype.toLocaleString.call(this,a,{...b,timeZone:b?.timeZone||this.timeZone})}toLocaleDateString(a,b){return Date.prototype.toLocaleDateString.call(this,a,{...b,timeZone:b?.timeZone||this.timeZone})}toLocaleTimeString(a,b){return Date.prototype.toLocaleTimeString.call(this,a,{...b,timeZone:b?.timeZone||this.timeZone})}tzComponents(){let a=this.getTimezoneOffset(),b=String(Math.floor(Math.abs(a)/60)).padStart(2,"0"),c=String(Math.abs(a)%60).padStart(2,"0");return[a>0?"-":"+",b,c]}withTimeZone(a){return new bD(+this,a)}[Symbol.for("constructDateFrom")](a){return new bD(+new Date(a),this.timeZone)}}let bE=Symbol.for("constructDateFrom");function bF(a,b){return"function"==typeof a?a(b):a&&"object"==typeof a&&bE in a?a[bE](b):a instanceof Date?new a.constructor(b):new Date(b)}function bG(a,b){return bF(b||a,a)}function bH(a,b,c){let d=bG(a,c?.in);return isNaN(b)?bF(c?.in||a,NaN):(b&&d.setDate(d.getDate()+b),d)}function bI(a,b,c){let d=bG(a,c?.in);if(isNaN(b))return bF(c?.in||a,NaN);if(!b)return d;let e=d.getDate(),f=bF(c?.in||a,d.getTime());return(f.setMonth(d.getMonth()+b+1,0),e>=f.getDate())?f:(d.setFullYear(f.getFullYear(),f.getMonth(),e),d)}function bJ(a){let b=bG(a),c=new Date(Date.UTC(b.getFullYear(),b.getMonth(),b.getDate(),b.getHours(),b.getMinutes(),b.getSeconds(),b.getMilliseconds()));return c.setUTCFullYear(b.getFullYear()),a-c}function bK(a,...b){let c=bF.bind(null,a||b.find(a=>"object"==typeof a));return b.map(c)}function bL(a,b){let c=bG(a,b?.in);return c.setHours(0,0,0,0),c}function bM(a,b,c){let[d,e]=bK(c?.in,a,b),f=bL(d),g=bL(e);return Math.round((f-bJ(f)-(g-bJ(g)))/864e5)}function bN(a,b,c){let[d,e]=bK(c?.in,a,b);return 12*(d.getFullYear()-e.getFullYear())+(d.getMonth()-e.getMonth())}function bO(a,b){let[c,d]=bK(a,b.start,b.end);return{start:c,end:d}}let bP={};function bQ(a,b){let c=b?.weekStartsOn??b?.locale?.options?.weekStartsOn??bP.weekStartsOn??bP.locale?.options?.weekStartsOn??0,d=bG(a,b?.in),e=d.getDay();return d.setDate(d.getDate()+((e<c?-7:0)+6-(e-c))),d.setHours(23,59,59,999),d}let bR={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function bS(a){return (b={})=>{let c=b.width?String(b.width):a.defaultWidth;return a.formats[c]||a.formats[a.defaultWidth]}}let bT={date:bS({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:bS({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:bS({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},bU={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function bV(a){return(b,c)=>{let d;if("formatting"===(c?.context?String(c.context):"standalone")&&a.formattingValues){let b=a.defaultFormattingWidth||a.defaultWidth,e=c?.width?String(c.width):b;d=a.formattingValues[e]||a.formattingValues[b]}else{let b=a.defaultWidth,e=c?.width?String(c.width):a.defaultWidth;d=a.values[e]||a.values[b]}return d[a.argumentCallback?a.argumentCallback(b):b]}}function bW(a){return(b,c={})=>{let d,e=c.width,f=e&&a.matchPatterns[e]||a.matchPatterns[a.defaultMatchWidth],g=b.match(f);if(!g)return null;let h=g[0],i=e&&a.parsePatterns[e]||a.parsePatterns[a.defaultParseWidth],j=Array.isArray(i)?function(a,b){for(let c=0;c<a.length;c++)if(b(a[c]))return c}(i,a=>a.test(h)):function(a,b){for(let c in a)if(Object.prototype.hasOwnProperty.call(a,c)&&b(a[c]))return c}(i,a=>a.test(h));return d=a.valueCallback?a.valueCallback(j):j,{value:d=c.valueCallback?c.valueCallback(d):d,rest:b.slice(h.length)}}}let bX={code:"en-US",formatDistance:(a,b,c)=>{let d,e=bR[a];if(d="string"==typeof e?e:1===b?e.one:e.other.replace("{{count}}",b.toString()),c?.addSuffix)if(c.comparison&&c.comparison>0)return"in "+d;else return d+" ago";return d},formatLong:bT,formatRelative:(a,b,c,d)=>bU[a],localize:{ordinalNumber:(a,b)=>{let c=Number(a),d=c%100;if(d>20||d<10)switch(d%10){case 1:return c+"st";case 2:return c+"nd";case 3:return c+"rd"}return c+"th"},era:bV({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:bV({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:a=>a-1}),month:bV({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:bV({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:bV({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(b={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:a=>parseInt(a,10)},(a,c={})=>{let d=a.match(b.matchPattern);if(!d)return null;let e=d[0],f=a.match(b.parsePattern);if(!f)return null;let g=b.valueCallback?b.valueCallback(f[0]):f[0];return{value:g=c.valueCallback?c.valueCallback(g):g,rest:a.slice(e.length)}}),era:bW({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:bW({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:a=>a+1}),month:bW({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:bW({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:bW({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function bY(a,b){let c=bG(a,b?.in);return c.setFullYear(c.getFullYear(),0,1),c.setHours(0,0,0,0),c}function bZ(a,b){let c=b?.weekStartsOn??b?.locale?.options?.weekStartsOn??bP.weekStartsOn??bP.locale?.options?.weekStartsOn??0,d=bG(a,b?.in),e=d.getDay();return d.setDate(d.getDate()-(7*(e<c)+e-c)),d.setHours(0,0,0,0),d}function b$(a,b){return bZ(a,{...b,weekStartsOn:1})}function b_(a,b){let c=bG(a,b?.in),d=c.getFullYear(),e=bF(c,0);e.setFullYear(d+1,0,4),e.setHours(0,0,0,0);let f=b$(e),g=bF(c,0);g.setFullYear(d,0,4),g.setHours(0,0,0,0);let h=b$(g);return c.getTime()>=f.getTime()?d+1:c.getTime()>=h.getTime()?d:d-1}function b0(a,b){let c,d,e=bG(a,b?.in);return Math.round((b$(e)-(c=b_(e,void 0),(d=bF(e,0)).setFullYear(c,0,4),d.setHours(0,0,0,0),b$(d)))/6048e5)+1}function b1(a,b){let c=bG(a,b?.in),d=c.getFullYear(),e=b?.firstWeekContainsDate??b?.locale?.options?.firstWeekContainsDate??bP.firstWeekContainsDate??bP.locale?.options?.firstWeekContainsDate??1,f=bF(b?.in||a,0);f.setFullYear(d+1,0,e),f.setHours(0,0,0,0);let g=bZ(f,b),h=bF(b?.in||a,0);h.setFullYear(d,0,e),h.setHours(0,0,0,0);let i=bZ(h,b);return+c>=+g?d+1:+c>=+i?d:d-1}function b2(a,b){let c,d,e,f=bG(a,b?.in);return Math.round((bZ(f,b)-(c=b?.firstWeekContainsDate??b?.locale?.options?.firstWeekContainsDate??bP.firstWeekContainsDate??bP.locale?.options?.firstWeekContainsDate??1,d=b1(f,b),(e=bF(b?.in||f,0)).setFullYear(d,0,c),e.setHours(0,0,0,0),bZ(e,b)))/6048e5)+1}function b3(a,b){let c=Math.abs(a).toString().padStart(b,"0");return(a<0?"-":"")+c}let b4={y(a,b){let c=a.getFullYear(),d=c>0?c:1-c;return b3("yy"===b?d%100:d,b.length)},M(a,b){let c=a.getMonth();return"M"===b?String(c+1):b3(c+1,2)},d:(a,b)=>b3(a.getDate(),b.length),a(a,b){let c=a.getHours()/12>=1?"pm":"am";switch(b){case"a":case"aa":return c.toUpperCase();case"aaa":return c;case"aaaaa":return c[0];default:return"am"===c?"a.m.":"p.m."}},h:(a,b)=>b3(a.getHours()%12||12,b.length),H:(a,b)=>b3(a.getHours(),b.length),m:(a,b)=>b3(a.getMinutes(),b.length),s:(a,b)=>b3(a.getSeconds(),b.length),S(a,b){let c=b.length;return b3(Math.trunc(a.getMilliseconds()*Math.pow(10,c-3)),b.length)}},b5={G:function(a,b,c){let d=+(a.getFullYear()>0);switch(b){case"G":case"GG":case"GGG":return c.era(d,{width:"abbreviated"});case"GGGGG":return c.era(d,{width:"narrow"});default:return c.era(d,{width:"wide"})}},y:function(a,b,c){if("yo"===b){let b=a.getFullYear();return c.ordinalNumber(b>0?b:1-b,{unit:"year"})}return b4.y(a,b)},Y:function(a,b,c,d){let e=b1(a,d),f=e>0?e:1-e;return"YY"===b?b3(f%100,2):"Yo"===b?c.ordinalNumber(f,{unit:"year"}):b3(f,b.length)},R:function(a,b){return b3(b_(a),b.length)},u:function(a,b){return b3(a.getFullYear(),b.length)},Q:function(a,b,c){let d=Math.ceil((a.getMonth()+1)/3);switch(b){case"Q":return String(d);case"QQ":return b3(d,2);case"Qo":return c.ordinalNumber(d,{unit:"quarter"});case"QQQ":return c.quarter(d,{width:"abbreviated",context:"formatting"});case"QQQQQ":return c.quarter(d,{width:"narrow",context:"formatting"});default:return c.quarter(d,{width:"wide",context:"formatting"})}},q:function(a,b,c){let d=Math.ceil((a.getMonth()+1)/3);switch(b){case"q":return String(d);case"qq":return b3(d,2);case"qo":return c.ordinalNumber(d,{unit:"quarter"});case"qqq":return c.quarter(d,{width:"abbreviated",context:"standalone"});case"qqqqq":return c.quarter(d,{width:"narrow",context:"standalone"});default:return c.quarter(d,{width:"wide",context:"standalone"})}},M:function(a,b,c){let d=a.getMonth();switch(b){case"M":case"MM":return b4.M(a,b);case"Mo":return c.ordinalNumber(d+1,{unit:"month"});case"MMM":return c.month(d,{width:"abbreviated",context:"formatting"});case"MMMMM":return c.month(d,{width:"narrow",context:"formatting"});default:return c.month(d,{width:"wide",context:"formatting"})}},L:function(a,b,c){let d=a.getMonth();switch(b){case"L":return String(d+1);case"LL":return b3(d+1,2);case"Lo":return c.ordinalNumber(d+1,{unit:"month"});case"LLL":return c.month(d,{width:"abbreviated",context:"standalone"});case"LLLLL":return c.month(d,{width:"narrow",context:"standalone"});default:return c.month(d,{width:"wide",context:"standalone"})}},w:function(a,b,c,d){let e=b2(a,d);return"wo"===b?c.ordinalNumber(e,{unit:"week"}):b3(e,b.length)},I:function(a,b,c){let d=b0(a);return"Io"===b?c.ordinalNumber(d,{unit:"week"}):b3(d,b.length)},d:function(a,b,c){return"do"===b?c.ordinalNumber(a.getDate(),{unit:"date"}):b4.d(a,b)},D:function(a,b,c){let d,e=bM(d=bG(a,void 0),bY(d))+1;return"Do"===b?c.ordinalNumber(e,{unit:"dayOfYear"}):b3(e,b.length)},E:function(a,b,c){let d=a.getDay();switch(b){case"E":case"EE":case"EEE":return c.day(d,{width:"abbreviated",context:"formatting"});case"EEEEE":return c.day(d,{width:"narrow",context:"formatting"});case"EEEEEE":return c.day(d,{width:"short",context:"formatting"});default:return c.day(d,{width:"wide",context:"formatting"})}},e:function(a,b,c,d){let e=a.getDay(),f=(e-d.weekStartsOn+8)%7||7;switch(b){case"e":return String(f);case"ee":return b3(f,2);case"eo":return c.ordinalNumber(f,{unit:"day"});case"eee":return c.day(e,{width:"abbreviated",context:"formatting"});case"eeeee":return c.day(e,{width:"narrow",context:"formatting"});case"eeeeee":return c.day(e,{width:"short",context:"formatting"});default:return c.day(e,{width:"wide",context:"formatting"})}},c:function(a,b,c,d){let e=a.getDay(),f=(e-d.weekStartsOn+8)%7||7;switch(b){case"c":return String(f);case"cc":return b3(f,b.length);case"co":return c.ordinalNumber(f,{unit:"day"});case"ccc":return c.day(e,{width:"abbreviated",context:"standalone"});case"ccccc":return c.day(e,{width:"narrow",context:"standalone"});case"cccccc":return c.day(e,{width:"short",context:"standalone"});default:return c.day(e,{width:"wide",context:"standalone"})}},i:function(a,b,c){let d=a.getDay(),e=0===d?7:d;switch(b){case"i":return String(e);case"ii":return b3(e,b.length);case"io":return c.ordinalNumber(e,{unit:"day"});case"iii":return c.day(d,{width:"abbreviated",context:"formatting"});case"iiiii":return c.day(d,{width:"narrow",context:"formatting"});case"iiiiii":return c.day(d,{width:"short",context:"formatting"});default:return c.day(d,{width:"wide",context:"formatting"})}},a:function(a,b,c){let d=a.getHours()/12>=1?"pm":"am";switch(b){case"a":case"aa":return c.dayPeriod(d,{width:"abbreviated",context:"formatting"});case"aaa":return c.dayPeriod(d,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return c.dayPeriod(d,{width:"narrow",context:"formatting"});default:return c.dayPeriod(d,{width:"wide",context:"formatting"})}},b:function(a,b,c){let d,e=a.getHours();switch(d=12===e?"noon":0===e?"midnight":e/12>=1?"pm":"am",b){case"b":case"bb":return c.dayPeriod(d,{width:"abbreviated",context:"formatting"});case"bbb":return c.dayPeriod(d,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return c.dayPeriod(d,{width:"narrow",context:"formatting"});default:return c.dayPeriod(d,{width:"wide",context:"formatting"})}},B:function(a,b,c){let d,e=a.getHours();switch(d=e>=17?"evening":e>=12?"afternoon":e>=4?"morning":"night",b){case"B":case"BB":case"BBB":return c.dayPeriod(d,{width:"abbreviated",context:"formatting"});case"BBBBB":return c.dayPeriod(d,{width:"narrow",context:"formatting"});default:return c.dayPeriod(d,{width:"wide",context:"formatting"})}},h:function(a,b,c){if("ho"===b){let b=a.getHours()%12;return 0===b&&(b=12),c.ordinalNumber(b,{unit:"hour"})}return b4.h(a,b)},H:function(a,b,c){return"Ho"===b?c.ordinalNumber(a.getHours(),{unit:"hour"}):b4.H(a,b)},K:function(a,b,c){let d=a.getHours()%12;return"Ko"===b?c.ordinalNumber(d,{unit:"hour"}):b3(d,b.length)},k:function(a,b,c){let d=a.getHours();return(0===d&&(d=24),"ko"===b)?c.ordinalNumber(d,{unit:"hour"}):b3(d,b.length)},m:function(a,b,c){return"mo"===b?c.ordinalNumber(a.getMinutes(),{unit:"minute"}):b4.m(a,b)},s:function(a,b,c){return"so"===b?c.ordinalNumber(a.getSeconds(),{unit:"second"}):b4.s(a,b)},S:function(a,b){return b4.S(a,b)},X:function(a,b,c){let d=a.getTimezoneOffset();if(0===d)return"Z";switch(b){case"X":return b7(d);case"XXXX":case"XX":return b8(d);default:return b8(d,":")}},x:function(a,b,c){let d=a.getTimezoneOffset();switch(b){case"x":return b7(d);case"xxxx":case"xx":return b8(d);default:return b8(d,":")}},O:function(a,b,c){let d=a.getTimezoneOffset();switch(b){case"O":case"OO":case"OOO":return"GMT"+b6(d,":");default:return"GMT"+b8(d,":")}},z:function(a,b,c){let d=a.getTimezoneOffset();switch(b){case"z":case"zz":case"zzz":return"GMT"+b6(d,":");default:return"GMT"+b8(d,":")}},t:function(a,b,c){return b3(Math.trunc(a/1e3),b.length)},T:function(a,b,c){return b3(+a,b.length)}};function b6(a,b=""){let c=a>0?"-":"+",d=Math.abs(a),e=Math.trunc(d/60),f=d%60;return 0===f?c+String(e):c+String(e)+b+b3(f,2)}function b7(a,b){return a%60==0?(a>0?"-":"+")+b3(Math.abs(a)/60,2):b8(a,b)}function b8(a,b=""){let c=Math.abs(a);return(a>0?"-":"+")+b3(Math.trunc(c/60),2)+b+b3(c%60,2)}let b9=(a,b)=>{switch(a){case"P":return b.date({width:"short"});case"PP":return b.date({width:"medium"});case"PPP":return b.date({width:"long"});default:return b.date({width:"full"})}},ca=(a,b)=>{switch(a){case"p":return b.time({width:"short"});case"pp":return b.time({width:"medium"});case"ppp":return b.time({width:"long"});default:return b.time({width:"full"})}},cb={p:ca,P:(a,b)=>{let c,d=a.match(/(P+)(p+)?/)||[],e=d[1],f=d[2];if(!f)return b9(a,b);switch(e){case"P":c=b.dateTime({width:"short"});break;case"PP":c=b.dateTime({width:"medium"});break;case"PPP":c=b.dateTime({width:"long"});break;default:c=b.dateTime({width:"full"})}return c.replace("{{date}}",b9(e,b)).replace("{{time}}",ca(f,b))}},cc=/^D+$/,cd=/^Y+$/,ce=["D","DD","YY","YYYY"];function cf(a){return a instanceof Date||"object"==typeof a&&"[object Date]"===Object.prototype.toString.call(a)}let cg=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ch=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ci=/^'([^]*?)'?$/,cj=/''/g,ck=/[a-zA-Z]/;function cl(a,b,c){let d=c?.locale??bP.locale??bX,e=c?.firstWeekContainsDate??c?.locale?.options?.firstWeekContainsDate??bP.firstWeekContainsDate??bP.locale?.options?.firstWeekContainsDate??1,f=c?.weekStartsOn??c?.locale?.options?.weekStartsOn??bP.weekStartsOn??bP.locale?.options?.weekStartsOn??0,g=bG(a,c?.in);if(!cf(g)&&"number"!=typeof g||isNaN(+bG(g)))throw RangeError("Invalid time value");let h=b.match(ch).map(a=>{let b=a[0];return"p"===b||"P"===b?(0,cb[b])(a,d.formatLong):a}).join("").match(cg).map(a=>{if("''"===a)return{isToken:!1,value:"'"};let b=a[0];if("'"===b){var c;let b;return{isToken:!1,value:(b=(c=a).match(ci))?b[1].replace(cj,"'"):c}}if(b5[b])return{isToken:!0,value:a};if(b.match(ck))throw RangeError("Format string contains an unescaped latin alphabet character `"+b+"`");return{isToken:!1,value:a}});d.localize.preprocessor&&(h=d.localize.preprocessor(g,h));let i={firstWeekContainsDate:e,weekStartsOn:f,locale:d};return h.map(e=>{if(!e.isToken)return e.value;let f=e.value;return(!c?.useAdditionalWeekYearTokens&&cd.test(f)||!c?.useAdditionalDayOfYearTokens&&cc.test(f))&&function(a,b,c){var d,e,f;let g,h=(d=a,e=b,f=c,g="Y"===d[0]?"years":"days of the month",`Use \`${d.toLowerCase()}\` instead of \`${d}\` (in \`${e}\`) for formatting ${g} to the input \`${f}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`);if(console.warn(h),ce.includes(a))throw RangeError(h)}(f,b,String(a)),(0,b5[f[0]])(g,f,d.localize,i)}).join("")}function cm(a,b){let c=b.startOfMonth(a),d=c.getDay();return 1===d?c:0===d?b.addDays(c,-6):b.addDays(c,-1*(d-1))}let cn={...bX,labels:{labelDayButton:(a,b,c,d)=>{let e=(d&&"function"==typeof d.format?d.format.bind(d):(a,b)=>cl(a,b,{locale:bX,...c}))(a,"PPPP");return b.today&&(e=`Today, ${e}`),b.selected&&(e=`${e}, selected`),e},labelMonthDropdown:"Choose the Month",labelNext:"Go to the Next Month",labelPrevious:"Go to the Previous Month",labelWeekNumber:a=>`Week ${a}`,labelYearDropdown:"Choose the Year",labelGrid:(a,b,c)=>(c&&"function"==typeof c.format?c.format.bind(c):(a,c)=>cl(a,c,{locale:bX,...b}))(a,"LLLL yyyy"),labelGridcell:(a,b,c,d)=>{let e=(d&&"function"==typeof d.format?d.format.bind(d):(a,b)=>cl(a,b,{locale:bX,...c}))(a,"PPPP");return b?.today&&(e=`Today, ${e}`),e},labelNav:"Navigation bar",labelWeekNumberHeader:"Week Number",labelWeekday:(a,b,c)=>(c&&"function"==typeof c.format?c.format.bind(c):(a,c)=>cl(a,c,{locale:bX,...b}))(a,"cccc")}};class co{constructor(a,b){this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?bD.tz(this.options.timeZone):new(this.options.Date??Date),this.newDate=(a,b,c)=>this.overrides?.newDate?this.overrides.newDate(a,b,c):this.options.timeZone?new bD(a,b,c,this.options.timeZone):new Date(a,b,c),this.addDays=(a,b)=>this.overrides?.addDays?this.overrides.addDays(a,b):bH(a,b),this.addMonths=(a,b)=>this.overrides?.addMonths?this.overrides.addMonths(a,b):bI(a,b),this.addWeeks=(a,b)=>this.overrides?.addWeeks?this.overrides.addWeeks(a,b):bH(a,7*b,void 0),this.addYears=(a,b)=>this.overrides?.addYears?this.overrides.addYears(a,b):bI(a,12*b,void 0),this.differenceInCalendarDays=(a,b)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(a,b):bM(a,b),this.differenceInCalendarMonths=(a,b)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(a,b):bN(a,b),this.eachMonthOfInterval=a=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(a):function(a){let{start:b,end:c}=bO(void 0,a),d=+b>+c,e=d?+b:+c,f=d?c:b;f.setHours(0,0,0,0),f.setDate(1);let g=(void 0)??1;if(!g)return[];g<0&&(g=-g,d=!d);let h=[];for(;+f<=e;)h.push(bF(b,f)),f.setMonth(f.getMonth()+g);return d?h.reverse():h}(a),this.eachYearOfInterval=a=>{let b=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(a):function(a){let{start:b,end:c}=bO(void 0,a),d=+b>+c,e=d?+b:+c,f=d?c:b;f.setHours(0,0,0,0),f.setMonth(0,1);let g=(void 0)??1;if(!g)return[];g<0&&(g=-g,d=!d);let h=[];for(;+f<=e;)h.push(bF(b,f)),f.setFullYear(f.getFullYear()+g);return d?h.reverse():h}(a),c=new Set(b.map(a=>this.getYear(a)));if(c.size===b.length)return b;let d=[];return c.forEach(a=>{d.push(new Date(a,0,1))}),d},this.endOfBroadcastWeek=a=>{let b,c,d,e,f,g;return this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(a):(b=cm(a,this),d=(c=this.startOfMonth(a)).getDay()>0?c.getDay():7,e=this.addDays(a,-d+1),f=this.addDays(e,34),g=this.getMonth(a)===this.getMonth(f)?5:4,this.addDays(b,7*g-1))},this.endOfISOWeek=a=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(a):bQ(a,{...void 0,weekStartsOn:1}),this.endOfMonth=a=>{let b,c;return this.overrides?.endOfMonth?this.overrides.endOfMonth(a):(c=(b=bG(a,void 0)).getMonth(),b.setFullYear(b.getFullYear(),c+1,0),b.setHours(23,59,59,999),b)},this.endOfWeek=(a,b)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(a,b):bQ(a,this.options),this.endOfYear=a=>{let b,c;return this.overrides?.endOfYear?this.overrides.endOfYear(a):(c=(b=bG(a,void 0)).getFullYear(),b.setFullYear(c+1,0,0),b.setHours(23,59,59,999),b)},this.format=(a,b,c)=>{let d=this.overrides?.format?this.overrides.format(a,b,this.options):cl(a,b,this.options);return this.options.numerals&&"latn"!==this.options.numerals?this.replaceDigits(d):d},this.getISOWeek=a=>this.overrides?.getISOWeek?this.overrides.getISOWeek(a):b0(a),this.getMonth=(a,b)=>{var c;return this.overrides?.getMonth?this.overrides.getMonth(a,this.options):(c=this.options,bG(a,c?.in).getMonth())},this.getYear=(a,b)=>{var c;return this.overrides?.getYear?this.overrides.getYear(a,this.options):(c=this.options,bG(a,c?.in).getFullYear())},this.getWeek=(a,b)=>this.overrides?.getWeek?this.overrides.getWeek(a,this.options):b2(a,this.options),this.isAfter=(a,b)=>this.overrides?.isAfter?this.overrides.isAfter(a,b):+bG(a)>+bG(b),this.isBefore=(a,b)=>this.overrides?.isBefore?this.overrides.isBefore(a,b):+bG(a)<+bG(b),this.isDate=a=>this.overrides?.isDate?this.overrides.isDate(a):cf(a),this.isSameDay=(a,b)=>this.overrides?.isSameDay?this.overrides.isSameDay(a,b):function(a,b){let[c,d]=bK(void 0,a,b);return+bL(c)==+bL(d)}(a,b),this.isSameMonth=(a,b)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(a,b):function(a,b){let[c,d]=bK(void 0,a,b);return c.getFullYear()===d.getFullYear()&&c.getMonth()===d.getMonth()}(a,b),this.isSameYear=(a,b)=>this.overrides?.isSameYear?this.overrides.isSameYear(a,b):function(a,b){let[c,d]=bK(void 0,a,b);return c.getFullYear()===d.getFullYear()}(a,b),this.max=a=>{let b,c;return this.overrides?.max?this.overrides.max(a):(c=void 0,a.forEach(a=>{c||"object"!=typeof a||(c=bF.bind(null,a));let d=bG(a,c);(!b||b<d||isNaN(+d))&&(b=d)}),bF(c,b||NaN))},this.min=a=>{let b,c;return this.overrides?.min?this.overrides.min(a):(c=void 0,a.forEach(a=>{c||"object"!=typeof a||(c=bF.bind(null,a));let d=bG(a,c);(!b||b>d||isNaN(+d))&&(b=d)}),bF(c,b||NaN))},this.setMonth=(a,b)=>{var c,d;let e,f,g,h,i,j,k,l,m;return this.overrides?.setMonth?this.overrides.setMonth(a,b):(c=a,d=b,j=(i=bG(c,void 0)).getFullYear(),k=i.getDate(),(l=bF(c,0)).setFullYear(j,d,15),l.setHours(0,0,0,0),m=(f=(e=bG(l,void 0)).getFullYear(),g=e.getMonth(),(h=bF(e,0)).setFullYear(f,g+1,0),h.setHours(0,0,0,0),h.getDate()),i.setMonth(d,Math.min(k,m)),i)},this.setYear=(a,b)=>{let c;return this.overrides?.setYear?this.overrides.setYear(a,b):isNaN(+(c=bG(a,void 0)))?bF(a,NaN):(c.setFullYear(b),c)},this.startOfBroadcastWeek=(a,b)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(a,this):cm(a,this),this.startOfDay=a=>this.overrides?.startOfDay?this.overrides.startOfDay(a):bL(a),this.startOfISOWeek=a=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(a):b$(a),this.startOfMonth=a=>{let b;return this.overrides?.startOfMonth?this.overrides.startOfMonth(a):((b=bG(a,void 0)).setDate(1),b.setHours(0,0,0,0),b)},this.startOfWeek=(a,b)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(a,this.options):bZ(a,this.options),this.startOfYear=a=>this.overrides?.startOfYear?this.overrides.startOfYear(a):bY(a),this.options={locale:cn,...a},this.overrides=b}getDigitMap(){let{numerals:a="latn"}=this.options,b=new Intl.NumberFormat("en-US",{numberingSystem:a}),c={};for(let a=0;a<10;a++)c[a.toString()]=b.format(a);return c}replaceDigits(a){let b=this.getDigitMap();return a.replace(/\d/g,a=>b[a]||a)}formatNumber(a){return this.replaceDigits(a.toString())}getMonthYearOrder(){let a=this.options.locale?.code;return a&&co.yearFirstLocales.has(a)?"year-first":"month-first"}formatMonthYear(a){let{locale:b,timeZone:c,numerals:d}=this.options,e=b?.code;if(e&&co.yearFirstLocales.has(e))try{return new Intl.DateTimeFormat(e,{month:"long",year:"numeric",timeZone:c,numberingSystem:d}).format(a)}catch{}let f="year-first"===this.getMonthYearOrder()?"y LLLL":"LLLL y";return this.format(a,f)}}co.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);let cp=new co;function cq(a,b,c=!1,d=cp){let{from:e,to:f}=a,{differenceInCalendarDays:g,isSameDay:h}=d;return e&&f?(0>g(f,e)&&([e,f]=[f,e]),g(b,e)>=+!!c&&g(f,b)>=+!!c):!c&&f?h(f,b):!c&&!!e&&h(e,b)}function cr(a){return!!(a&&"object"==typeof a&&"before"in a&&"after"in a)}function cs(a){return!!(a&&"object"==typeof a&&"from"in a)}function ct(a){return!!(a&&"object"==typeof a&&"after"in a)}function cu(a){return!!(a&&"object"==typeof a&&"before"in a)}function cv(a){return!!(a&&"object"==typeof a&&"dayOfWeek"in a)}function cw(a,b){return Array.isArray(a)&&a.every(b.isDate)}function cx(a,b,c=cp){let d=Array.isArray(b)?b:[b],{isSameDay:e,differenceInCalendarDays:f,isAfter:g}=c;return d.some(b=>{if("boolean"==typeof b)return b;if(c.isDate(b))return e(a,b);if(cw(b,c))return b.some(b=>e(a,b));if(cs(b))return cq(b,a,!1,c);if(cv(b))return Array.isArray(b.dayOfWeek)?b.dayOfWeek.includes(a.getDay()):b.dayOfWeek===a.getDay();if(cr(b)){let c=f(b.before,a),d=f(b.after,a),e=c>0,h=d<0;return g(b.before,b.after)?h&&e:e||h}return ct(b)?f(a,b.after)>0:cu(b)?f(b.before,a)>0:"function"==typeof b&&b(a)})}function cy(a){return n.default.createElement("span",{...a})}function cz(a){let{size:b=24,orientation:c="left",className:d,style:e}=a;return n.default.createElement("svg",{className:d,style:e,width:b,height:b,viewBox:"0 0 24 24"},"up"===c&&n.default.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),"down"===c&&n.default.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),"left"===c&&n.default.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),"right"===c&&n.default.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function cA(a){let{day:b,modifiers:c,...d}=a;return n.default.createElement("td",{...d})}function cB(a){let{day:b,modifiers:c,...d}=a,e=n.default.useRef(null);return n.default.useEffect(()=>{c.focused&&e.current?.focus()},[c.focused]),n.default.createElement("button",{ref:e,...d})}(c=h||(h={})).Root="root",c.Chevron="chevron",c.Day="day",c.DayButton="day_button",c.CaptionLabel="caption_label",c.Dropdowns="dropdowns",c.Dropdown="dropdown",c.DropdownRoot="dropdown_root",c.Footer="footer",c.MonthGrid="month_grid",c.MonthCaption="month_caption",c.MonthsDropdown="months_dropdown",c.Month="month",c.Months="months",c.Nav="nav",c.NextMonthButton="button_next",c.PreviousMonthButton="button_previous",c.Week="week",c.Weeks="weeks",c.Weekday="weekday",c.Weekdays="weekdays",c.WeekNumber="week_number",c.WeekNumberHeader="week_number_header",c.YearsDropdown="years_dropdown",(d=i||(i={})).disabled="disabled",d.hidden="hidden",d.outside="outside",d.focused="focused",d.today="today",(e=j||(j={})).range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected",(f=k||(k={})).weeks_before_enter="weeks_before_enter",f.weeks_before_exit="weeks_before_exit",f.weeks_after_enter="weeks_after_enter",f.weeks_after_exit="weeks_after_exit",f.caption_after_enter="caption_after_enter",f.caption_after_exit="caption_after_exit",f.caption_before_enter="caption_before_enter",f.caption_before_exit="caption_before_exit",a.s([],29367),a.i(29367),a.s(["CaptionLabel",0,cy],50617),a.i(50617),a.s(["Chevron",0,cz],8955),a.i(8955),a.s(["Day",0,cA],22273),a.i(22273),a.s(["DayButton",0,cB],88886),a.i(88886);let cC=(0,n.createContext)(void 0);function cD(){let a=(0,n.useContext)(cC);if(void 0===a)throw Error("useDayPicker() must be used within a custom component.");return a}function cE(a){let{options:b,className:c,...d}=a,{classNames:e,components:f,styles:g}=cD(),i=[e[h.Dropdown],c].join(" "),j=b?.find(({value:a})=>a===d.value);return n.default.createElement("span",{"data-disabled":d.disabled,className:e[h.DropdownRoot],style:g?.[h.DropdownRoot]},n.default.createElement(f.Select,{className:i,...d},b?.map(({value:a,label:b,disabled:c})=>n.default.createElement(f.Option,{key:a,value:a,disabled:c},b))),n.default.createElement("span",{className:e[h.CaptionLabel],style:g?.[h.CaptionLabel],"aria-hidden":!0},j?.label,n.default.createElement(f.Chevron,{orientation:"down",size:18,className:e[h.Chevron],style:g?.[h.Chevron]})))}function cF(a){return n.default.createElement("div",{...a})}function cG(a){return n.default.createElement("div",{...a})}function cH(a){let{calendarMonth:b,displayIndex:c,...d}=a;return n.default.createElement("div",{...d},a.children)}function cI(a){let{calendarMonth:b,displayIndex:c,...d}=a;return n.default.createElement("div",{...d})}function cJ(a){return n.default.createElement("table",{...a})}function cK(a){return n.default.createElement("div",{...a})}function cL(a){let{components:b}=cD();return n.default.createElement(b.Dropdown,{...a})}function cM(a){let{onPreviousClick:b,onNextClick:c,previousMonth:d,nextMonth:e,...f}=a,{components:g,classNames:i,styles:j,labels:{labelPrevious:k,labelNext:l}}=cD(),m=(0,n.useCallback)(a=>{e&&c?.(a)},[e,c]),o=(0,n.useCallback)(a=>{d&&b?.(a)},[d,b]);return n.default.createElement("nav",{...f},n.default.createElement(g.PreviousMonthButton,{type:"button",className:i[h.PreviousMonthButton],style:j?.[h.PreviousMonthButton],tabIndex:d?void 0:-1,"aria-disabled":!d||void 0,"aria-label":k(d),onClick:o},n.default.createElement(g.Chevron,{disabled:!d||void 0,className:i[h.Chevron],style:j?.[h.Chevron],orientation:"left"})),n.default.createElement(g.NextMonthButton,{type:"button",className:i[h.NextMonthButton],style:j?.[h.NextMonthButton],tabIndex:e?void 0:-1,"aria-disabled":!e||void 0,"aria-label":l(e),onClick:m},n.default.createElement(g.Chevron,{disabled:!e||void 0,orientation:"right",className:i[h.Chevron],style:j?.[h.Chevron]})))}function cN(a){return n.default.createElement("button",{...a})}function cO(a){return n.default.createElement("option",{...a})}function cP(a){return n.default.createElement("button",{...a})}function cQ(a){let{rootRef:b,...c}=a;return n.default.createElement("div",{...c,ref:b})}function cR(a){return n.default.createElement("select",{...a})}function cS(a){let{week:b,...c}=a;return n.default.createElement("tr",{...c})}function cT(a){return n.default.createElement("th",{...a})}function cU(a){return n.default.createElement("thead",{"aria-hidden":!0},n.default.createElement("tr",{...a}))}function cV(a){let{week:b,...c}=a;return n.default.createElement("th",{...c})}function cW(a){return n.default.createElement("th",{...a})}function cX(a){return n.default.createElement("tbody",{...a})}function cY(a){let{components:b}=cD();return n.default.createElement(b.Dropdown,{...a})}a.s(["Dropdown",0,cE],52221),a.i(52221),a.s(["DropdownNav",0,cF],48576),a.i(48576),a.s(["Footer",0,cG],65921),a.i(65921),a.s(["Month",0,cH],35494),a.i(35494),a.s(["MonthCaption",0,cI],56439),a.i(56439),a.s(["MonthGrid",0,cJ],19414),a.i(19414),a.s(["Months",0,cK],25616),a.i(25616),a.s(["MonthsDropdown",0,cL],42093),a.i(42093),a.s(["Nav",0,cM],1317),a.i(1317),a.s(["NextMonthButton",0,cN],92386),a.i(92386),a.s(["Option",0,cO],81191),a.i(81191),a.s(["PreviousMonthButton",0,cP],7441),a.i(7441),a.s(["Root",0,cQ],51161),a.i(51161),a.s(["Select",0,cR],21740),a.i(21740),a.s(["Week",0,cS],96002),a.i(96002),a.s(["Weekday",0,cT],49039),a.i(49039),a.s(["Weekdays",0,cU],5213),a.i(5213),a.s(["WeekNumber",0,cV],22797),a.i(22797),a.s(["WeekNumberHeader",0,cW],7279),a.i(7279),a.s(["Weeks",0,cX],20510),a.i(20510),a.s(["YearsDropdown",0,cY],91190),a.i(91190),a.s(["CaptionLabel",0,cy,"Chevron",0,cz,"Day",0,cA,"DayButton",0,cB,"Dropdown",0,cE,"DropdownNav",0,cF,"Footer",0,cG,"Month",0,cH,"MonthCaption",0,cI,"MonthGrid",0,cJ,"Months",0,cK,"MonthsDropdown",0,cL,"Nav",0,cM,"NextMonthButton",0,cN,"Option",0,cO,"PreviousMonthButton",0,cP,"Root",0,cQ,"Select",0,cR,"Week",0,cS,"WeekNumber",0,cV,"WeekNumberHeader",0,cW,"Weekday",0,cT,"Weekdays",0,cU,"Weeks",0,cX,"YearsDropdown",0,cY],18134);var cZ=a.i(18134);function c$(){let a={};for(let b in h)a[h[b]]=`rdp-${h[b]}`;for(let b in i)a[i[b]]=`rdp-${i[b]}`;for(let b in j)a[j[b]]=`rdp-${j[b]}`;for(let b in k)a[k[b]]=`rdp-${k[b]}`;return a}function c_(a,b,c){return(c??new co(b)).formatMonthYear(a)}function c0(a,b,c){return(c??new co(b)).format(a,"d")}function c1(a,b=cp){return b.format(a,"LLLL")}function c2(a,b,c){return(c??new co(b)).format(a,"cccccc")}function c3(a,b=cp){return a<10?b.formatNumber(`0${a.toLocaleString()}`):b.formatNumber(`${a.toLocaleString()}`)}function c4(){return""}function c5(a,b=cp){return b.format(a,"yyyy")}a.s([],11810),a.i(11810),a.s(["formatCaption",0,c_],48255),a.i(48255),a.s(["formatDay",0,c0],73300),a.i(73300),a.s(["formatMonthDropdown",0,c1],11751),a.i(11751),a.s(["formatWeekdayName",0,c2],14404),a.i(14404),a.s(["formatWeekNumber",0,c3],44870),a.i(44870),a.s(["formatWeekNumberHeader",0,c4],81466),a.i(81466),a.s(["formatYearDropdown",0,c5],62581),a.i(62581),a.s(["formatCaption",0,c_,"formatDay",0,c0,"formatMonthDropdown",0,c1,"formatWeekNumber",0,c3,"formatWeekNumberHeader",0,c4,"formatWeekdayName",0,c2,"formatYearDropdown",0,c5],54601);var c6=a.i(54601);function c7(a,b,c,d){let e=(d??new co(c)).format(a,"PPPP");return b.today&&(e=`Today, ${e}`),b.selected&&(e=`${e}, selected`),e}function c8(a,b,c){return(c??new co(b)).formatMonthYear(a)}function c9(a,b,c,d){let e=(d??new co(c)).format(a,"PPPP");return b?.today&&(e=`Today, ${e}`),e}function da(a){return"Choose the Month"}function db(){return""}function dc(a,b){return"Go to the Next Month"}function dd(a){return"Go to the Previous Month"}function de(a,b,c){return(c??new co(b)).format(a,"cccc")}function df(a,b){return`Week ${a}`}function dg(a){return"Week Number"}function dh(a){return"Choose the Year"}a.s([],60647),a.i(60647),a.s(["labelDayButton",0,c7],55036),a.i(55036),a.s(["labelGrid",0,c8],11815),a.i(11815),a.s(["labelGridcell",0,c9],93100),a.i(93100),a.s(["labelMonthDropdown",0,da],73906),a.i(73906),a.s(["labelNav",0,db],17056),a.i(17056),a.s(["labelNext",0,dc],1597),a.i(1597),a.s(["labelPrevious",0,dd],59e3),a.i(59e3),a.s(["labelWeekday",0,de],72546),a.i(72546),a.s(["labelWeekNumber",0,df],25803),a.i(25803),a.s(["labelWeekNumberHeader",0,dg],99847),a.i(99847),a.s(["labelYearDropdown",0,dh],73243),a.i(73243),a.s(["labelDayButton",0,c7,"labelGrid",0,c8,"labelGridcell",0,c9,"labelMonthDropdown",0,da,"labelNav",0,db,"labelNext",0,dc,"labelPrevious",0,dd,"labelWeekNumber",0,df,"labelWeekNumberHeader",0,dg,"labelWeekday",0,de,"labelYearDropdown",0,dh],29489);var di=a.i(29489);let dj=(a,b,c)=>b||(c?"function"==typeof c?c:(...a)=>c:a),dk=a=>a instanceof HTMLElement?a:null,dl=a=>[...a.querySelectorAll("[data-animated-month]")??[]],dm=a=>dk(a.querySelector("[data-animated-caption]")),dn=a=>dk(a.querySelector("[data-animated-weeks]"));function dp(a,b,c,d){let{month:e,defaultMonth:f,today:g=d.today(),numberOfMonths:h=1}=a,i=e||f||g,{differenceInCalendarMonths:j,addMonths:k,startOfMonth:l}=d;return c&&j(c,i)<h-1&&(i=k(c,-1*(h-1))),b&&0>j(i,b)&&(i=b),l(i)}class dq{constructor(a,b,c=cp){this.date=a,this.displayMonth=b,this.outside=!!(b&&!c.isSameMonth(a,b)),this.dateLib=c,this.isoDate=c.format(a,"yyyy-MM-dd"),this.displayMonthId=c.format(b,"yyyy-MM"),this.dateMonthId=c.format(a,"yyyy-MM")}isEqualTo(a){return this.dateLib.isSameDay(a.date,this.date)&&this.dateLib.isSameMonth(a.displayMonth,this.displayMonth)}}class dr{constructor(a,b){this.date=a,this.weeks=b}}class ds{constructor(a,b){this.days=b,this.weekNumber=a}}function dt(a,b){let[c,d]=(0,n.useState)(a);return[void 0===b?c:b,d]}function du(a){return!a[i.disabled]&&!a[i.hidden]&&!a[i.outside]}function dv(a,b,c=cp){return cq(a,b.from,!1,c)||cq(a,b.to,!1,c)||cq(b,a.from,!1,c)||cq(b,a.to,!1,c)}function dw(a,b){return a instanceof bD&&a.timeZone===b?a:new bD(a,b)}function dx(a,b,c){if(!c)return dw(a,b);let d=dw(a,b);return new Date(new bD(d.getFullYear(),d.getMonth(),d.getDate(),12,0,0,b).getTime())}function dy(a,b,c){return"boolean"==typeof a||"function"==typeof a?a:a instanceof Date?dx(a,b,c):Array.isArray(a)?a.map(a=>a instanceof Date?dx(a,b,c):a):cs(a)?{...a,from:a.from?dw(a.from,b):a.from,to:a.to?dw(a.to,b):a.to}:cr(a)?{before:dx(a.before,b,c),after:dx(a.after,b,c)}:ct(a)?{after:dx(a.after,b,c)}:cu(a)?{before:dx(a.before,b,c)}:a}function dz(a,b,c){return a?Array.isArray(a)?a.map(a=>dy(a,b,c)):dy(a,b,c):a}function dA(a){var b;let c,d=a,e=d.timeZone;if(e&&((d={...a,timeZone:e}).today&&(d.today=dw(d.today,e)),d.month&&(d.month=dw(d.month,e)),d.defaultMonth&&(d.defaultMonth=dw(d.defaultMonth,e)),d.startMonth&&(d.startMonth=dw(d.startMonth,e)),d.endMonth&&(d.endMonth=dw(d.endMonth,e)),"single"===d.mode&&d.selected?d.selected=dw(d.selected,e):"multiple"===d.mode&&d.selected?d.selected=d.selected?.map(a=>dw(a,e)):"range"===d.mode&&d.selected&&(d.selected={from:d.selected.from?dw(d.selected.from,e):d.selected.from,to:d.selected.to?dw(d.selected.to,e):d.selected.to}),void 0!==d.disabled&&(d.disabled=dz(d.disabled,e)),void 0!==d.hidden&&(d.hidden=dz(d.hidden,e)),d.modifiers)){let a={};Object.keys(d.modifiers).forEach(b=>{a[b]=dz(d.modifiers?.[b],e)}),d.modifiers=a}let{components:f,formatters:g,labels:m,dateLib:o,locale:p,classNames:q}=(0,n.useMemo)(()=>{var a,b,c,e;let f,g={...cn,...d.locale},h=d.broadcastCalendar?1:d.weekStartsOn,i=d.noonSafe&&d.timeZone?function(a,b={}){let{weekStartsOn:c,locale:d}=b,e=c??d?.options?.weekStartsOn??0,f=b=>{let c="number"==typeof b||"string"==typeof b?new Date(b):b;return new bD(c.getFullYear(),c.getMonth(),c.getDate(),12,0,0,a)},g=a=>{let b=f(a);return new Date(b.getFullYear(),b.getMonth(),b.getDate(),0,0,0,0)};return{today:()=>f(bD.tz(a)),newDate:(b,c,d)=>new bD(b,c,d,12,0,0,a),startOfDay:a=>f(a),startOfWeek:(a,b)=>{let c=f(a),d=b?.weekStartsOn??e,g=(c.getDay()-d+7)%7;return c.setDate(c.getDate()-g),c},startOfISOWeek:a=>{let b=f(a),c=(b.getDay()-1+7)%7;return b.setDate(b.getDate()-c),b},startOfMonth:a=>{let b=f(a);return b.setDate(1),b},startOfYear:a=>{let b=f(a);return b.setMonth(0,1),b},endOfWeek:(a,b)=>{let c=f(a),d=(((b?.weekStartsOn??e)+6)%7-c.getDay()+7)%7;return c.setDate(c.getDate()+d),c},endOfISOWeek:a=>{let b=f(a),c=(7-b.getDay())%7;return b.setDate(b.getDate()+c),b},endOfMonth:a=>{let b=f(a);return b.setMonth(b.getMonth()+1,0),b},endOfYear:a=>{let b=f(a);return b.setMonth(11,31),b},eachMonthOfInterval:b=>{let c=f(b.start),d=f(b.end),e=[],g=new bD(c.getFullYear(),c.getMonth(),1,12,0,0,a),h=12*d.getFullYear()+d.getMonth();for(;12*g.getFullYear()+g.getMonth()<=h;)e.push(new bD(g,a)),g.setMonth(g.getMonth()+1,1);return e},addDays:(a,b)=>{let c=f(a);return c.setDate(c.getDate()+b),c},addWeeks:(a,b)=>{let c=f(a);return c.setDate(c.getDate()+7*b),c},addMonths:(a,b)=>{let c=f(a);return c.setMonth(c.getMonth()+b),c},addYears:(a,b)=>{let c=f(a);return c.setFullYear(c.getFullYear()+b),c},eachYearOfInterval:b=>{let c=f(b.start),d=f(b.end),e=[],g=new bD(c.getFullYear(),0,1,12,0,0,a);for(;g.getFullYear()<=d.getFullYear();)e.push(new bD(g,a)),g.setFullYear(g.getFullYear()+1,0,1);return e},getWeek:(a,b)=>b2(g(a),{weekStartsOn:b?.weekStartsOn??e,firstWeekContainsDate:b?.firstWeekContainsDate??d?.options?.firstWeekContainsDate??1}),getISOWeek:a=>b0(g(a)),differenceInCalendarDays:(a,b)=>bM(g(a),g(b)),differenceInCalendarMonths:(a,b)=>bN(g(a),g(b))}}(d.timeZone,{weekStartsOn:h,locale:g}):void 0,j=d.dateLib&&i?{...i,...d.dateLib}:d.dateLib??i,k=new co({locale:g,weekStartsOn:h,firstWeekContainsDate:d.firstWeekContainsDate,useAdditionalWeekYearTokens:d.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:d.useAdditionalDayOfYearTokens,timeZone:d.timeZone,numerals:d.numerals},j);return{dateLib:k,components:(a=d.components,{...cZ,...a}),formatters:(b=d.formatters,{...c6,...b}),labels:(c=d.labels,e=k.options,f=e.locale?.labels??{},{...di,...c??{},labelDayButton:dj(di.labelDayButton,c?.labelDayButton,f.labelDayButton),labelMonthDropdown:dj(di.labelMonthDropdown,c?.labelMonthDropdown,f.labelMonthDropdown),labelNext:dj(di.labelNext,c?.labelNext,f.labelNext),labelPrevious:dj(di.labelPrevious,c?.labelPrevious,f.labelPrevious),labelWeekNumber:dj(di.labelWeekNumber,c?.labelWeekNumber,f.labelWeekNumber),labelYearDropdown:dj(di.labelYearDropdown,c?.labelYearDropdown,f.labelYearDropdown),labelGrid:dj(di.labelGrid,c?.labelGrid,f.labelGrid),labelGridcell:dj(di.labelGridcell,c?.labelGridcell,f.labelGridcell),labelNav:dj(di.labelNav,c?.labelNav,f.labelNav),labelWeekNumberHeader:dj(di.labelWeekNumberHeader,c?.labelWeekNumberHeader,f.labelWeekNumberHeader),labelWeekday:dj(di.labelWeekday,c?.labelWeekday,f.labelWeekday)}),locale:g,classNames:{...c$(),...d.classNames}}},[d.locale,d.broadcastCalendar,d.weekStartsOn,d.firstWeekContainsDate,d.useAdditionalWeekYearTokens,d.useAdditionalDayOfYearTokens,d.timeZone,d.numerals,d.dateLib,d.noonSafe,d.components,d.formatters,d.labels,d.classNames]);d.today||(d={...d,today:o.today()});let{captionLayout:r,mode:s,navLayout:t,numberOfMonths:u=1,onDayBlur:v,onDayClick:w,onDayFocus:x,onDayKeyDown:y,onDayMouseEnter:z,onDayMouseLeave:A,onNextClick:B,onPrevClick:C,showWeekNumber:D,styles:E}=d,{formatCaption:F,formatDay:G,formatMonthDropdown:H,formatWeekNumber:I,formatWeekNumberHeader:J,formatWeekdayName:K,formatYearDropdown:L}=g,M=function(a,b){let[c,d]=function(a,b){let{startMonth:c,endMonth:d}=a,{startOfYear:e,startOfDay:f,startOfMonth:g,endOfMonth:h,addYears:i,endOfYear:j,today:k}=b,l="dropdown"===a.captionLayout||"dropdown-years"===a.captionLayout;return c?c=g(c):!c&&l&&(c=e(i(a.today??k(),-100))),d?d=h(d):!d&&l&&(d=j(a.today??k())),[c?f(c):c,d?f(d):d]}(a,b),{startOfMonth:e,endOfMonth:f}=b,g=dp(a,c,d,b),[h,i]=dt(g,a.month?g:void 0);(0,n.useEffect)(()=>{i(dp(a,c,d,b))},[a.timeZone]);let{months:j,weeks:k,days:l,previousMonth:m,nextMonth:o}=(0,n.useMemo)(()=>{let e,g=function(a,b,c,d){let{numberOfMonths:e=1}=c,f=[];for(let c=0;c<e;c++){let e=d.addMonths(a,c);if(b&&e>b)break;f.push(e)}return f}(h,d,{numberOfMonths:a.numberOfMonths},b),i=function(a,b,c,d){let e=a[0],f=a[a.length-1],{ISOWeek:g,fixedWeeks:h,broadcastCalendar:i}=c??{},{addDays:j,differenceInCalendarDays:k,differenceInCalendarMonths:l,endOfBroadcastWeek:m,endOfISOWeek:n,endOfMonth:o,endOfWeek:p,isAfter:q,startOfBroadcastWeek:r,startOfISOWeek:s,startOfWeek:t}=d,u=i?r(e,d):g?s(e):t(e),v=i?m(f):g?n(o(f)):p(o(f)),w=b&&(i?m(b):g?n(b):p(b)),x=k(w&&q(v,w)?w:v,u),y=l(f,e)+1,z=[];for(let a=0;a<=x;a++){let b=j(u,a);z.push(b)}let A=(i?35:42)*y;if(h&&z.length<A){let a=A-z.length;for(let b=0;b<a;b++){let a=j(z[z.length-1],1);z.push(a)}}return z}(g,a.endMonth?f(a.endMonth):void 0,{ISOWeek:a.ISOWeek,fixedWeeks:a.fixedWeeks,broadcastCalendar:a.broadcastCalendar},b),j=function(a,b,c,d){let{addDays:e,endOfBroadcastWeek:f,endOfISOWeek:g,endOfMonth:h,endOfWeek:i,getISOWeek:j,getWeek:k,startOfBroadcastWeek:l,startOfISOWeek:m,startOfWeek:n}=d,o=a.reduce((a,o)=>{let p=c.broadcastCalendar?l(o,d):c.ISOWeek?m(o):n(o),q=c.broadcastCalendar?f(o):c.ISOWeek?g(h(o)):i(h(o)),r=b.filter(a=>a>=p&&a<=q),s=c.broadcastCalendar?35:42;if(c.fixedWeeks&&r.length<s){let a=b.filter(a=>{let b=s-r.length;return a>q&&a<=e(q,b)});r.push(...a)}let t=r.reduce((a,b)=>{let e=c.ISOWeek?j(b):k(b),f=a.find(a=>a.weekNumber===e),g=new dq(b,o,d);return f?f.days.push(g):a.push(new ds(e,[g])),a},[]),u=new dr(o,t);return a.push(u),a},[]);return c.reverseMonths?o.reverse():o}(g,i,{broadcastCalendar:a.broadcastCalendar,fixedWeeks:a.fixedWeeks,ISOWeek:a.ISOWeek,reverseMonths:a.reverseMonths},b),k=j.reduce((a,b)=>a.concat(b.weeks.slice()),[]),l=(e=[],j.reduce((a,b)=>{let c=b.weeks.reduce((a,b)=>a.concat(b.days.slice()),e.slice());return a.concat(c.slice())},e.slice()));return{months:j,weeks:k,days:l,previousMonth:function(a,b,c,d){if(c.disableNavigation)return;let{pagedNavigation:e,numberOfMonths:f}=c,{startOfMonth:g,addMonths:h,differenceInCalendarMonths:i}=d,j=g(a);if(!b||!(0>=i(j,b)))return h(j,-(e?f??1:1))}(h,c,a,b),nextMonth:function(a,b,c,d){if(c.disableNavigation)return;let{pagedNavigation:e,numberOfMonths:f=1}=c,{startOfMonth:g,addMonths:h,differenceInCalendarMonths:i}=d,j=g(a);if(!b||!(i(b,a)<f))return h(j,e?f:1)}(h,d,a,b)}},[b,h.getTime(),d?.getTime(),c?.getTime(),a.disableNavigation,a.broadcastCalendar,a.endMonth?.getTime(),a.fixedWeeks,a.ISOWeek,a.numberOfMonths,a.pagedNavigation,a.reverseMonths]),{disableNavigation:p,onMonthChange:q}=a,r=a=>{if(p)return;let b=e(a);c&&b<e(c)&&(b=e(c)),d&&b>e(d)&&(b=e(d)),i(b),q?.(b)};return{months:j,weeks:k,days:l,navStart:c,navEnd:d,previousMonth:m,nextMonth:o,goToMonth:r,goToDay:a=>{k.some(b=>b.days.some(b=>b.isEqualTo(a)))||r(a.date)}}}(d,o),{days:N,months:O,navStart:P,navEnd:Q,previousMonth:R,nextMonth:S,goToMonth:T}=M,U=function(a,b,c,d,e){let{disabled:f,hidden:g,modifiers:h,showOutsideDays:j,broadcastCalendar:k,today:l=e.today()}=b,{isSameDay:m,isSameMonth:n,startOfMonth:o,isBefore:p,endOfMonth:q,isAfter:r}=e,s=c&&o(c),t=d&&q(d),u={[i.focused]:[],[i.outside]:[],[i.disabled]:[],[i.hidden]:[],[i.today]:[]},v={};for(let b of a){let{date:a,displayMonth:c}=b,d=!!(c&&!n(a,c)),i=!!(s&&p(a,s)),o=!!(t&&r(a,t)),q=!!(f&&cx(a,f,e)),w=!!(g&&cx(a,g,e))||i||o||!k&&!j&&d||k&&!1===j&&d,x=m(a,l);d&&u.outside.push(b),q&&u.disabled.push(b),w&&u.hidden.push(b),x&&u.today.push(b),h&&Object.keys(h).forEach(c=>{let d=h?.[c];d&&cx(a,d,e)&&(v[c]?v[c].push(b):v[c]=[b])})}return a=>{let b={[i.focused]:!1,[i.disabled]:!1,[i.hidden]:!1,[i.outside]:!1,[i.today]:!1},c={};for(let c in u){let d=u[c];b[c]=d.some(b=>b===a)}for(let b in v)c[b]=v[b].some(b=>b===a);return{...b,...c}}}(N,d,P,Q,o),{isSelected:V,select:W,selected:X}=function(a,b){let c=function(a,b){let{selected:c,required:d,onSelect:e}=a,[f,g]=dt(c,e?c:void 0),h=e?c:f,{isSameDay:i}=b;return{selected:h,select:(a,b,c)=>{let f=a;return!d&&h&&h&&i(a,h)&&(f=void 0),e||g(f),e?.(f,a,b,c),f},isSelected:a=>!!h&&i(h,a)}}(a,b),d=function(a,b){let{selected:c,required:d,onSelect:e}=a,[f,g]=dt(c,e?c:void 0),h=e?c:f,{isSameDay:i}=b,j=a=>h?.some(b=>i(b,a))??!1,{min:k,max:l}=a;return{selected:h,select:(a,b,c)=>{let f=[...h??[]];if(j(a)){if(h?.length===k||d&&h?.length===1)return;f=h?.filter(b=>!i(b,a))}else f=h?.length===l?[a]:[...f,a];return e||g(f),e?.(f,a,b,c),f},isSelected:j}}(a,b),e=function(a,b){let{disabled:c,excludeDisabled:d,resetOnSelect:e,selected:f,required:g,onSelect:h}=a,[i,j]=dt(f,h?f:void 0),k=h?f:i;return{selected:k,select:(f,i,l)=>{let m,{min:n,max:o}=a;if(f){let a=k?.from,c=k?.to,d=!!a&&!!c&&b.isSameDay(a,c)&&b.isSameDay(f,a);m=e&&(a&&c||!k?.from)?!g&&d?void 0:{from:f,to:void 0}:function(a,b,c=0,d=0,e=!1,f=cp){let g,{from:h,to:i}=b||{},{isSameDay:j,isAfter:k,isBefore:l}=f;if(h||i){if(h&&!i)g=j(h,a)?0===c?{from:h,to:a}:e?{from:h,to:void 0}:void 0:l(a,h)?{from:a,to:h}:{from:h,to:a};else if(h&&i)if(j(h,a)&&j(i,a))g=e?{from:h,to:i}:void 0;else if(j(h,a))g={from:h,to:c>0?void 0:a};else if(j(i,a))g={from:a,to:c>0?void 0:a};else if(l(a,h))g={from:a,to:i};else if(k(a,h))g={from:h,to:a};else if(k(a,i))g={from:h,to:a};else throw Error("Invalid range")}else g={from:a,to:c>0?void 0:a};if(g?.from&&g?.to){let b=f.differenceInCalendarDays(g.to,g.from);d>0&&b>d?g={from:a,to:void 0}:c>1&&b<c&&(g={from:a,to:void 0})}return g}(f,k,n,o,g,b)}return d&&c&&m?.from&&m.to&&function(a,b,c=cp){let d=Array.isArray(b)?b:[b];if(d.filter(a=>"function"!=typeof a).some(b=>"boolean"==typeof b?b:c.isDate(b)?cq(a,b,!1,c):cw(b,c)?b.some(b=>cq(a,b,!1,c)):cs(b)?!!b.from&&!!b.to&&dv(a,{from:b.from,to:b.to},c):cv(b)?function(a,b,c=cp){let d=Array.isArray(b)?b:[b],e=a.from,f=Math.min(c.differenceInCalendarDays(a.to,a.from),6);for(let a=0;a<=f;a++){if(d.includes(e.getDay()))return!0;e=c.addDays(e,1)}return!1}(a,b.dayOfWeek,c):cr(b)?c.isAfter(b.before,b.after)?dv(a,{from:c.addDays(b.after,1),to:c.addDays(b.before,-1)},c):cx(a.from,b,c)||cx(a.to,b,c):!!(ct(b)||cu(b))&&(cx(a.from,b,c)||cx(a.to,b,c))))return!0;let e=d.filter(a=>"function"==typeof a);if(e.length){let b=a.from,d=c.differenceInCalendarDays(a.to,a.from);for(let a=0;a<=d;a++){if(e.some(a=>a(b)))return!0;b=c.addDays(b,1)}}return!1}({from:m.from,to:m.to},c,b)&&(m.from=f,m.to=void 0),h||j(m),h?.(m,f,i,l),m},isSelected:a=>k&&cq(k,a,!1,b)}}(a,b);switch(a.mode){case"single":return c;case"multiple":return d;case"range":return e;default:return}}(d,o)??{},{blur:Y,focused:Z,isFocusTarget:$,moveFocus:_,setFocused:aa}=function(a,b,c,d,e){let{autoFocus:f}=a,[g,h]=(0,n.useState)(),j=function(a,b,c,d){let e,f=-1;for(let g of a){let a=b(g);du(a)&&(a[i.focused]&&f<l.FocusedModifier?(e=g,f=l.FocusedModifier):d?.isEqualTo(g)&&f<l.LastFocused?(e=g,f=l.LastFocused):c(g.date)&&f<l.Selected?(e=g,f=l.Selected):a[i.today]&&f<l.Today&&(e=g,f=l.Today))}return e||(e=a.find(a=>du(b(a)))),e}(b.days,c,d||(()=>!1),g),[k,m]=(0,n.useState)(f?j:void 0);return(0,n.useEffect)(()=>{k&&j&&(b.days.some(a=>a.isEqualTo(k))||m(j))},[b.days,k,j]),{isFocusTarget:a=>!!j?.isEqualTo(a),setFocused:m,focused:k,blur:()=>{h(k),m(void 0)},moveFocus:(c,d)=>{if(!k)return;let f=function a(b,c,d,e,f,g,h,i=0){if(i>365)return;let j=function(a,b,c,d,e,f,g){let{ISOWeek:h,broadcastCalendar:i}=f,{addDays:j,addMonths:k,addWeeks:l,addYears:m,endOfBroadcastWeek:n,endOfISOWeek:o,endOfWeek:p,max:q,min:r,startOfBroadcastWeek:s,startOfISOWeek:t,startOfWeek:u}=g,v=({day:j,week:l,month:k,year:m,startOfWeek:a=>i?s(a,g):h?t(a):u(a),endOfWeek:a=>i?n(a):h?o(a):p(a)})[a](c,"after"===b?1:-1);return"before"===b&&d?v=q([d,v]):"after"===b&&e&&(v=r([e,v])),v}(b,c,d.date,e,f,g,h),k=!!(g.disabled&&cx(j,g.disabled,h)),l=!!(g.hidden&&cx(j,g.hidden,h)),m=new dq(j,j,h);return k||l?a(b,c,m,e,f,g,h,i+1):m}(c,d,k,b.navStart,b.navEnd,a,e);if(f){if(a.disableNavigation&&!b.days.some(a=>a.isEqualTo(f)))return;b.goToDay(f),m(f)}}}}(d,M,U,V??(()=>!1),o),{labelDayButton:ab,labelGridcell:ac,labelGrid:ad,labelMonthDropdown:ae,labelNav:af,labelPrevious:ag,labelNext:ah,labelWeekday:ai,labelWeekNumber:aj,labelWeekNumberHeader:ak,labelYearDropdown:al}=m,am=(0,n.useMemo)(()=>(function(a,b,c,d){let e=d??a.today(),f=c?a.startOfBroadcastWeek(e,a):b?a.startOfISOWeek(e):a.startOfWeek(e),g=[];for(let b=0;b<7;b++){let c=a.addDays(f,b);g.push(c)}return g})(o,d.ISOWeek,d.broadcastCalendar,d.today),[o,d.ISOWeek,d.broadcastCalendar,d.today]),an=void 0!==s||void 0!==w,ao=(0,n.useCallback)(()=>{R&&(T(R),C?.(R))},[R,T,C]),ap=(0,n.useCallback)(()=>{S&&(T(S),B?.(S))},[T,S,B]),aq=(0,n.useCallback)((a,b)=>c=>{c.preventDefault(),c.stopPropagation(),aa(a),b.disabled||(W?.(a.date,b,c),w?.(a.date,b,c))},[W,w,aa]),ar=(0,n.useCallback)((a,b)=>c=>{aa(a),x?.(a.date,b,c)},[x,aa]),as=(0,n.useCallback)((a,b)=>c=>{Y(),v?.(a.date,b,c)},[Y,v]),at=(0,n.useCallback)((a,b)=>c=>{let e={ArrowLeft:[c.shiftKey?"month":"day","rtl"===d.dir?"after":"before"],ArrowRight:[c.shiftKey?"month":"day","rtl"===d.dir?"before":"after"],ArrowDown:[c.shiftKey?"year":"week","after"],ArrowUp:[c.shiftKey?"year":"week","before"],PageUp:[c.shiftKey?"year":"month","before"],PageDown:[c.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(e[c.key]){c.preventDefault(),c.stopPropagation();let[a,b]=e[c.key];_(a,b)}y?.(a.date,b,c)},[_,y,d.dir]),au=(0,n.useCallback)((a,b)=>c=>{z?.(a.date,b,c)},[z]),av=(0,n.useCallback)((a,b)=>c=>{A?.(a.date,b,c)},[A]),aw=(0,n.useCallback)((a,b)=>c=>{let d=Number(c.target.value),e=o.setMonth(o.startOfMonth(a),d);T(o.addMonths(e,-b))},[o,T]),ax=(0,n.useCallback)((a,b)=>c=>{let d=Number(c.target.value),e=o.setYear(o.startOfMonth(a),d);T(o.addMonths(e,-b))},[o,T]),{className:ay,style:az}=(0,n.useMemo)(()=>({className:[q[h.Root],d.className].filter(Boolean).join(" "),style:{...E?.[h.Root],...d.style}}),[q,d.className,d.style,E]),aA=(c={"data-mode":(b=d).mode??void 0,"data-required":"required"in b?b.required:void 0,"data-multiple-months":b.numberOfMonths&&b.numberOfMonths>1||void 0,"data-week-numbers":b.showWeekNumber||void 0,"data-broadcast-calendar":b.broadcastCalendar||void 0,"data-nav-layout":b.navLayout||void 0},Object.entries(b).forEach(([a,b])=>{a.startsWith("data-")&&(c[a]=b)}),c),aB=a=>{let b=E?.[h.Dropdown],c=E?.[a];if(b||c)return{...b,...c}},aC=(0,n.useRef)(null);!function(a,b,{classNames:c,months:d,focused:e,dateLib:f}){let g=(0,n.useRef)(null),h=(0,n.useRef)(d),i=(0,n.useRef)(!1);(0,n.useLayoutEffect)(()=>{let j=h.current;if(h.current=d,!b||!a.current||!(a.current instanceof HTMLElement)||0===d.length||0===j.length||d.length!==j.length)return;let l=f.isSameMonth(d[0].date,j[0].date),m=f.isAfter(d[0].date,j[0].date),n=m?c[k.caption_after_enter]:c[k.caption_before_enter],o=m?c[k.weeks_after_enter]:c[k.weeks_before_enter],p=g.current,q=a.current.cloneNode(!0);if(q instanceof HTMLElement?(dl(q).forEach(a=>{if(!(a instanceof HTMLElement))return;let b=dk(a.querySelector("[data-animated-month]"));b&&a.contains(b)&&a.removeChild(b);let c=dm(a);c&&c.classList.remove(n);let d=dn(a);d&&d.classList.remove(o)}),g.current=q):g.current=null,i.current||l||e)return;let r=p instanceof HTMLElement?dl(p):[],s=dl(a.current);if(s?.every(a=>a instanceof HTMLElement)&&r?.every(a=>a instanceof HTMLElement)){i.current=!0;let b=[];a.current.style.isolation="isolate";let d=dk(a.current.querySelector("[data-animated-nav]"));d&&(d.style.zIndex="1"),s.forEach((e,f)=>{let g=r[f];if(!g)return;e.style.position="relative",e.style.overflow="hidden";let h=dm(e);h&&h.classList.add(n);let j=dn(e);j&&j.classList.add(o);let l=()=>{i.current=!1,a.current&&(a.current.style.isolation=""),d&&(d.style.zIndex=""),h&&h.classList.remove(n),j&&j.classList.remove(o),e.style.position="",e.style.overflow="",e.contains(g)&&e.removeChild(g)};b.push(l),g.style.pointerEvents="none",g.style.position="absolute",g.style.overflow="hidden",g.setAttribute("aria-hidden","true");let p=dk(g.querySelector("[data-animated-weekdays]"));p&&(p.style.opacity="0");let q=dm(g);q&&(q.classList.add(m?c[k.caption_before_exit]:c[k.caption_after_exit]),q.addEventListener("animationend",l));let s=dn(g);s&&s.classList.add(m?c[k.weeks_before_exit]:c[k.weeks_after_exit]),e.insertBefore(g,e.firstChild)})}})}(aC,!!d.animate,{classNames:q,months:O,focused:Z,dateLib:o});let aD={dayPickerProps:d,selected:X,select:W,isSelected:V,months:O,nextMonth:S,previousMonth:R,goToMonth:T,getModifiers:U,components:f,classNames:q,styles:E,labels:m,formatters:g};return n.default.createElement(cC.Provider,{value:aD},n.default.createElement(f.Root,{rootRef:d.animate?aC:void 0,className:ay,style:az,dir:d.dir,id:d.id,lang:d.lang??p.code,nonce:d.nonce,title:d.title,role:d.role,"aria-label":d["aria-label"],"aria-labelledby":d["aria-labelledby"],...aA},n.default.createElement(f.Months,{className:q[h.Months],style:E?.[h.Months]},!d.hideNavigation&&!t&&n.default.createElement(f.Nav,{"data-animated-nav":d.animate?"true":void 0,className:q[h.Nav],style:E?.[h.Nav],"aria-label":af(),onPreviousClick:ao,onNextClick:ap,previousMonth:R,nextMonth:S}),O.map((a,b)=>{let c,e,k=d.reverseMonths?O.length-1-b:b;return n.default.createElement(f.Month,{"data-animated-month":d.animate?"true":void 0,className:q[h.Month],style:E?.[h.Month],key:b,displayIndex:b,calendarMonth:a},"around"===t&&!d.hideNavigation&&0===b&&n.default.createElement(f.PreviousMonthButton,{type:"button",className:q[h.PreviousMonthButton],style:E?.[h.PreviousMonthButton],tabIndex:R?void 0:-1,"aria-disabled":!R||void 0,"aria-label":ag(R),onClick:ao,"data-animated-button":d.animate?"true":void 0},n.default.createElement(f.Chevron,{disabled:!R||void 0,className:q[h.Chevron],style:E?.[h.Chevron],orientation:"rtl"===d.dir?"right":"left"})),n.default.createElement(f.MonthCaption,{"data-animated-caption":d.animate?"true":void 0,className:q[h.MonthCaption],style:E?.[h.MonthCaption],calendarMonth:a,displayIndex:b},r?.startsWith("dropdown")?n.default.createElement(f.DropdownNav,{className:q[h.Dropdowns],style:E?.[h.Dropdowns]},(c="dropdown"===r||"dropdown-months"===r?n.default.createElement(f.MonthsDropdown,{key:"month",className:q[h.MonthsDropdown],"aria-label":ae(),disabled:!!d.disableNavigation,onChange:aw(a.date,k),options:function(a,b,c,d,e){let{startOfMonth:f,startOfYear:g,endOfYear:h,eachMonthOfInterval:i,getMonth:j}=e;return i({start:g(a),end:h(a)}).map(a=>{let g=d.formatMonthDropdown(a,e);return{value:j(a),label:g,disabled:b&&a<f(b)||c&&a>f(c)||!1}})}(a.date,P,Q,g,o),style:aB(h.MonthsDropdown),value:o.getMonth(a.date)}):n.default.createElement("span",{key:"month"},H(a.date,o)),e="dropdown"===r||"dropdown-years"===r?n.default.createElement(f.YearsDropdown,{key:"year",className:q[h.YearsDropdown],"aria-label":al(o.options),disabled:!!d.disableNavigation,onChange:ax(a.date,k),options:function(a,b,c,d,e=!1){if(!a||!b)return;let{startOfYear:f,endOfYear:g,eachYearOfInterval:h,getYear:i}=d,j=h({start:f(a),end:g(b)});return e&&j.reverse(),j.map(a=>{let b=c.formatYearDropdown(a,d);return{value:i(a),label:b,disabled:!1}})}(P,Q,g,o,!!d.reverseYears),style:aB(h.YearsDropdown),value:o.getYear(a.date)}):n.default.createElement("span",{key:"year"},L(a.date,o)),"year-first"===o.getMonthYearOrder()?[e,c]:[c,e]),n.default.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},F(a.date,o.options,o))):n.default.createElement(f.CaptionLabel,{className:q[h.CaptionLabel],style:E?.[h.CaptionLabel],role:"status","aria-live":"polite"},F(a.date,o.options,o))),"around"===t&&!d.hideNavigation&&b===u-1&&n.default.createElement(f.NextMonthButton,{type:"button",className:q[h.NextMonthButton],style:E?.[h.NextMonthButton],tabIndex:S?void 0:-1,"aria-disabled":!S||void 0,"aria-label":ah(S),onClick:ap,"data-animated-button":d.animate?"true":void 0},n.default.createElement(f.Chevron,{disabled:!S||void 0,className:q[h.Chevron],style:E?.[h.Chevron],orientation:"rtl"===d.dir?"left":"right"})),b===u-1&&"after"===t&&!d.hideNavigation&&n.default.createElement(f.Nav,{"data-animated-nav":d.animate?"true":void 0,className:q[h.Nav],style:E?.[h.Nav],"aria-label":af(),onPreviousClick:ao,onNextClick:ap,previousMonth:R,nextMonth:S}),n.default.createElement(f.MonthGrid,{role:"grid","aria-multiselectable":"multiple"===s||"range"===s,"aria-label":ad(a.date,o.options,o)||void 0,className:q[h.MonthGrid],style:E?.[h.MonthGrid]},!d.hideWeekdays&&n.default.createElement(f.Weekdays,{"data-animated-weekdays":d.animate?"true":void 0,className:q[h.Weekdays],style:E?.[h.Weekdays]},D&&n.default.createElement(f.WeekNumberHeader,{"aria-label":ak(o.options),className:q[h.WeekNumberHeader],style:E?.[h.WeekNumberHeader],scope:"col"},J()),am.map(a=>n.default.createElement(f.Weekday,{"aria-label":ai(a,o.options,o),className:q[h.Weekday],key:String(a),style:E?.[h.Weekday],scope:"col"},K(a,o.options,o)))),n.default.createElement(f.Weeks,{"data-animated-weeks":d.animate?"true":void 0,className:q[h.Weeks],style:E?.[h.Weeks]},a.weeks.map(a=>n.default.createElement(f.Week,{className:q[h.Week],key:a.weekNumber,style:E?.[h.Week],week:a},D&&n.default.createElement(f.WeekNumber,{week:a,style:E?.[h.WeekNumber],"aria-label":aj(a.weekNumber,{locale:p}),className:q[h.WeekNumber],scope:"row",role:"rowheader"},I(a.weekNumber,o)),a.days.map(a=>{let{date:b}=a,c=U(a);if(c[i.focused]=!c.hidden&&!!Z?.isEqualTo(a),c[j.selected]=V?.(b)||c.selected,cs(X)){let{from:a,to:d}=X;c[j.range_start]=!!(a&&d&&o.isSameDay(b,a)),c[j.range_end]=!!(a&&d&&o.isSameDay(b,d)),c[j.range_middle]=cq(X,b,!0,o)}let e=function(a,b={},c={}){let d={...b?.[h.Day]};return Object.entries(a).filter(([,a])=>!0===a).forEach(([a])=>{d={...d,...c?.[a]}}),d}(c,E,d.modifiersStyles),g=function(a,b,c={}){return Object.entries(a).filter(([,a])=>!0===a).reduce((a,[d])=>(c[d]?a.push(c[d]):b[i[d]]?a.push(b[i[d]]):b[j[d]]&&a.push(b[j[d]]),a),[b[h.Day]])}(c,q,d.modifiersClassNames),k=an||c.hidden?void 0:ac(b,c,o.options,o);return n.default.createElement(f.Day,{key:`${a.isoDate}_${a.displayMonthId}`,day:a,modifiers:c,className:g.join(" "),style:e,role:"gridcell","aria-selected":c.selected||void 0,"aria-label":k,"data-day":a.isoDate,"data-month":a.outside?a.dateMonthId:void 0,"data-selected":c.selected||void 0,"data-disabled":c.disabled||void 0,"data-hidden":c.hidden||void 0,"data-outside":a.outside||void 0,"data-focused":c.focused||void 0,"data-today":c.today||void 0},!c.hidden&&an?n.default.createElement(f.DayButton,{className:q[h.DayButton],style:E?.[h.DayButton],type:"button",day:a,modifiers:c,disabled:!c.focused&&c.disabled||void 0,"aria-disabled":c.focused&&c.disabled||void 0,tabIndex:$(a)?0:-1,"aria-label":ab(b,c,o.options,o),onClick:aq(a,c),onBlur:as(a,c),onFocus:ar(a,c),onKeyDown:at(a,c),onMouseEnter:au(a,c),onMouseLeave:av(a,c)},G(b,o.options,o)):!c.hidden&&G(a.date,o.options,o))}))))))})),d.footer&&n.default.createElement(f.Footer,{className:q[h.Footer],style:E?.[h.Footer],role:"status","aria-live":"polite"},d.footer)))}(g=l||(l={}))[g.Today=0]="Today",g[g.Selected=1]="Selected",g[g.LastFocused=2]="LastFocused",g[g.FocusedModifier=3]="FocusedModifier";var dB=a.i(94687),dB=dB,dC=a.i(3520);function dD({className:a,classNames:b,showOutsideDays:c=!0,captionLayout:d="label",buttonVariant:e="ghost",locale:f,formatters:g,components:h,...i}){let j=c$();return(0,m.jsx)(dA,{showOutsideDays:c,className:(0,$.cn)("group/calendar bg-background p-2 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(7)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,a),captionLayout:d,locale:f,formatters:{formatMonthDropdown:a=>a.toLocaleString(f?.code,{month:"short"}),...g},classNames:{root:(0,$.cn)("w-fit",j.root),months:(0,$.cn)("relative flex flex-col gap-4 md:flex-row",j.months),month:(0,$.cn)("flex w-full flex-col gap-4",j.month),nav:(0,$.cn)("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",j.nav),button_previous:(0,$.cn)((0,A.buttonVariants)({variant:e}),"size-(--cell-size) p-0 select-none aria-disabled:opacity-50",j.button_previous),button_next:(0,$.cn)((0,A.buttonVariants)({variant:e}),"size-(--cell-size) p-0 select-none aria-disabled:opacity-50",j.button_next),month_caption:(0,$.cn)("flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)",j.month_caption),dropdowns:(0,$.cn)("flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium",j.dropdowns),dropdown_root:(0,$.cn)("relative rounded-(--cell-radius)",j.dropdown_root),dropdown:(0,$.cn)("absolute inset-0 bg-popover opacity-0",j.dropdown),caption_label:(0,$.cn)("font-medium select-none","label"===d?"text-sm":"flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground",j.caption_label),month_grid:(0,$.cn)("w-full border-collapse",j.month_grid),weekdays:(0,$.cn)("flex",j.weekdays),weekday:(0,$.cn)("flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none",j.weekday),week:(0,$.cn)("mt-2 flex w-full",j.week),week_number_header:(0,$.cn)("w-(--cell-size) select-none",j.week_number_header),week_number:(0,$.cn)("text-[0.8rem] text-muted-foreground select-none",j.week_number),day:(0,$.cn)("group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)",i.showWeekNumber?"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)":"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)",j.day),range_start:(0,$.cn)("relative isolate z-0 rounded-l-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-muted",j.range_start),range_middle:(0,$.cn)("rounded-none",j.range_middle),range_end:(0,$.cn)("relative isolate z-0 rounded-r-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-muted",j.range_end),today:(0,$.cn)("rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none",j.today),outside:(0,$.cn)("text-muted-foreground aria-selected:text-muted-foreground",j.outside),disabled:(0,$.cn)("text-muted-foreground opacity-50",j.disabled),hidden:(0,$.cn)("invisible",j.hidden),...b},components:{Root:({className:a,rootRef:b,...c})=>(0,m.jsx)("div",{"data-slot":"calendar",ref:b,className:(0,$.cn)(a),...c}),Chevron:({className:a,orientation:b,...c})=>"left"===b?(0,m.jsx)(bs,{className:(0,$.cn)("size-4",a),...c}):"right"===b?(0,m.jsx)(dB.default,{className:(0,$.cn)("size-4",a),...c}):(0,m.jsx)(dC.ChevronDownIcon,{className:(0,$.cn)("size-4",a),...c}),DayButton:({...a})=>(0,m.jsx)(dE,{locale:f,...a}),WeekNumber:({children:a,...b})=>(0,m.jsx)("td",{...b,children:(0,m.jsx)("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:a})}),...h},...i})}function dE({className:a,day:b,modifiers:c,locale:d,...e}){let f=c$(),g=n.useRef(null);return n.useEffect(()=>{c.focused&&g.current?.focus()},[c.focused]),(0,m.jsx)(A.Button,{variant:"ghost",size:"icon","data-day":b.date.toLocaleDateString(d?.code),"data-selected-single":c.selected&&!c.range_start&&!c.range_end&&!c.range_middle,"data-range-start":c.range_start,"data-range-end":c.range_end,"data-range-middle":c.range_middle,className:(0,$.cn)("relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70",f.day,a),...e})}a.s([],68656),a.i(68656);var dF=a.i(99395),dG=a.i(76510),dH=a.i(90874);let dI=n.createContext(void 0);function dJ(a){let b=n.useContext(dI);if(void 0===b&&!a)throw Error((0,dH.default)(47));return b}var dK=a.i(30144),dL=a.i(30499),dM=a.i(10764),dN=a.i(13461),dO=a.i(81353),dP=a.i(31022),dQ=a.i(74737),dR=a.i(69620),dS=a.i(9374),dT=a.i(55389);let dU={...dR.popupStoreSelectors,disabled:a=>a.disabled,instantType:a=>a.instantType,openMethod:a=>a.openMethod,openChangeReason:a=>a.openChangeReason,modal:a=>a.modal,focusManagerModal:a=>a.focusManagerModal,stickIfOpen:a=>a.stickIfOpen,titleElementId:a=>a.titleElementId,descriptionElementId:a=>a.descriptionElementId,openOnHover:a=>a.openOnHover,closeDelay:a=>a.closeDelay,adaptiveOrigin:a=>a.adaptiveOrigin};class dV extends dL.ReactStore{constructor(a,b,c){const d=new dS.PopupTriggerMap;super(dW(a,d,b,c),dX(d),dU)}setOpen=(a,b)=>{let c,d=b.reason===dO.REASONS.triggerHover,e=b.reason===dO.REASONS.triggerPress&&0===b.event.detail,f=!a&&(b.reason===dO.REASONS.escapeKey||null==b.reason),g=(0,dQ.attachPreventUnmountOnClose)(b),h=this.select("activeTriggerId");if(a||b.reason!==dO.REASONS.closePress||null!=b.trigger||null==h||(b.trigger=this.context.triggerElements.getById(h)??this.select("activeTriggerElement")??void 0),this.context.onOpenChange?.(a,b),b.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(a,b);let i=()=>{let c={open:a,openChangeReason:b.reason};(0,dQ.setPopupOpenState)(c,a,b.trigger,g()),this.update(c)};d?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start(dT.PATIENT_CLICK_THRESHOLD,()=>{this.set("stickIfOpen",!1)}),dK.flushSync(i)):i(),e?c="click":f?c="dismiss":b.reason===dO.REASONS.focusOut&&(c="focus"),this.set("instantType",c)}}function dW(a,b,c,d=!1){let e={...(0,dR.createInitialPopupStoreState)(),disabled:!1,modal:!1,focusManagerModal:!1,instantType:void 0,openMethod:null,openChangeReason:null,titleElementId:void 0,descriptionElementId:void 0,stickIfOpen:!0,openOnHover:!1,closeDelay:0,adaptiveOrigin:void 0,...a};return e.open&&a?.mounted===void 0&&(e.mounted=!0),e.floatingRootContext=(0,dR.createPopupFloatingRootContext)(b,c,d),e}function dX(a){return{popupRef:n.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerFocusTargetRef:n.createRef(),beforeContentFocusGuardRef:n.createRef(),stickIfOpenTimeout:new dM.Timeout,triggerElements:a}}var dY=a.i(4268);function dZ({props:a}){var b;let c,{children:d,open:e,defaultOpen:f=!1,onOpenChange:g,onOpenChangeComplete:h,modal:i=!1,handle:j,triggerId:k,defaultTriggerId:l=null}=a,o=(b={modal:i,open:f,openProp:e,activeTriggerId:l,triggerIdProp:k},c=(0,dQ.usePopupRootStore)((a,c)=>new dV(b,a,c)),n.useEffect(()=>c.context.stickIfOpenTimeout.disposeEffect(),[c]),c);o.useControlledProp("openProp",e),o.useControlledProp("triggerIdProp",k);let p=o.useState("open"),q=o.useState("mounted"),r=o.useState("payload");o.useContextCallback("onOpenChange",g),o.useContextCallback("onOpenChangeComplete",h),(0,dQ.usePopupRootSync)(o,p),(0,dQ.useImplicitActiveTrigger)(o);let{forceUnmount:s}=(0,dQ.useOpenStateTransitions)(p,o,()=>{o.update({stickIfOpen:!0,openChangeReason:null})});o.useSyncedValues({modal:i}),n.useEffect(()=>{p||o.context.stickIfOpenTimeout.clear()},[o,p]),n.useImperativeHandle(a.actionsRef,()=>({unmount:s,close:()=>o.setOpen(!1,(0,dY.createChangeEventDetails)(dO.REASONS.imperativeAction))}),[s,o]);let t=p||q;return(0,m.jsxs)(dI.Provider,{value:o,children:[j&&(0,m.jsx)(dQ.PopupHandleAttachment,{handle:j,store:o}),t&&(0,m.jsx)(d$,{store:o,modal:i}),"function"==typeof d?d({payload:r}):d]})}function d$({store:a,modal:b}){let c=a.useState("floatingRootContext"),d=(0,dF.useDismiss)(c,{outsidePressEvent:{mouse:"trap-focus"===b?"sloppy":"intentional",touch:"sloppy"}}),e=d.reference,f=d.floating;return(0,dQ.usePopupInteractionProps)(a,{activeTriggerProps:e,inactiveTriggerProps:e,popupProps:f}),null}var d_=a.i(67107),d0=a.i(41160),d1=a.i(16262),d2=a.i(31739),d3=a.i(83727),d4=a.i(17302),d5=a.i(28353),d6=a.i(29555),d7=a.i(76982),d8=a.i(18727),d9=a.i(65100),ea=a.i(60407);let eb=n.forwardRef(function(a,b){let c,{render:d,className:e,style:f,disabled:g=!1,nativeButton:h=!0,handle:i,payload:j,openOnHover:k=!1,delay:l=300,closeDelay:o=0,id:p,...q}=a,r=dJ(!0),s=(0,d7.usePopupHandleStore)(i)??r;if(!s)throw Error((0,dH.default)(74));let t=(0,d5.useBaseUiId)(p),u=s.useState("isTriggerActive",t),v=s.useState("floatingRootContext"),w=s.useState("isOpenedByTrigger",t),x=s.useState("triggerPopupId",t),y=n.useRef(null),{registerTrigger:z,isMountedByThisTrigger:A}=(0,dQ.useTriggerDataForwarding)(t,y,s,{payload:j,disabled:g,openOnHover:k,closeDelay:o}),B=s.useState("openChangeReason"),C=s.useState("stickIfOpen"),D=s.useState("openMethod"),E=s.useState("focusManagerModal"),F=(0,d4.useHoverReferenceInteraction)(v,{enabled:!g&&k&&("touch"!==D||B!==dO.REASONS.triggerPress),mouseOnly:!0,move:!1,handleClose:(0,d2.safePolygon)(),restMs:l,delay:{close:o},triggerElementRef:y,isActiveTrigger:u,isClosing:()=>"ending"===s.select("transitionStatus")}),G=(0,d3.useClick)(v,{stickIfOpen:C}),H=(0,ea.useOpenMethodTriggerProps)(()=>s.select("open"),a=>{s.set("openMethod",a)}),I=s.useState("triggerProps",A),{getButtonProps:J,buttonRef:K}=(0,d_.useButton)({disabled:g,native:h}),{preFocusGuardRef:L,handlePreFocusGuardFocus:M,handleFocusTargetFocus:N}={preFocusGuardRef:c=n.useRef(null),handlePreFocusGuardFocus:function(a){dK.flushSync(()=>{s.setOpen(!1,(0,dY.createChangeEventDetails)(dO.REASONS.focusOut,a.nativeEvent,a.currentTarget))});let b=(0,d9.getTabbableBeforeElement)(c.current);b?.focus()},handleFocusTargetFocus:function(a){let b=s.select("positionerElement");if(b&&(0,d9.isOutsideEvent)(a,b))s.context.beforeContentFocusGuardRef.current?.focus();else{dK.flushSync(()=>{s.setOpen(!1,(0,dY.createChangeEventDetails)(dO.REASONS.focusOut,a.nativeEvent,a.currentTarget))});let c=(0,d9.getTabbableAfterElement)(s.context.triggerFocusTargetRef.current||y.current);for(;null!==c&&(0,d8.contains)(b,c);){let a=c;if((c=(0,d9.getNextTabbable)(c))===a)break}c?.focus()}}},O=(0,d1.useRenderElement)("button",a,{state:{disabled:g,open:w},ref:[K,b,z,y],props:[G.reference,F,I,H,{[dT.CLICK_TRIGGER_IDENTIFIER]:"",id:t,"aria-haspopup":"dialog","aria-expanded":w,"aria-controls":x},q,J],stateAttributesMapping:{open:a=>a&&B===dO.REASONS.triggerPress?d0.pressableTriggerOpenStateMapping.open(a):d0.triggerOpenStateMapping.open(a)}}),P=(0,m.jsx)(n.Fragment,{children:O},t);return A&&!E?(0,m.jsxs)(n.Fragment,{children:[(0,m.jsx)(d6.FocusGuard,{ref:L,onFocus:M}),P,(0,m.jsx)(d6.FocusGuard,{ref:s.context.triggerFocusTargetRef,onFocus:N})]}):P});var ec=a.i(91175);let ed=n.createContext(void 0),ee=n.forwardRef(function(a,b){let{keepMounted:c=!1,...d}=a;return dJ().useState("mounted")||c?(0,m.jsx)(ed.Provider,{value:c,children:(0,m.jsx)(ec.FloatingPortal,{ref:b,...d})}):null});var ef=a.i(35571),eg=a.i(45351);let eh=n.createContext(void 0);function ei(){let a=n.useContext(eh);if(!a)throw Error((0,dH.default)(46));return a}var ej=a.i(28638),ek=a.i(72113),el=a.i(88885),em=a.i(69660),en=a.i(34680);let eo=n.forwardRef(function(a,b){let{render:c,className:d,style:e,anchor:f,positionMethod:g,side:h,align:i,sideOffset:j,alignOffset:k,collisionBoundary:l="clipping-ancestors",collisionPadding:o,arrowPadding:p,sticky:q,disableAnchorTracking:r=!1,collisionAvoidance:s=dT.POPUP_COLLISION_AVOIDANCE,...t}=a,u=dJ(),v=function(){let a=n.useContext(ed);if(void 0===a)throw Error((0,dH.default)(45));return a}(),w=(0,dG.useFloatingNodeId)(),x=u.useState("floatingRootContext"),y=u.useState("mounted"),z=u.useState("open"),A=u.useState("openChangeReason"),B=u.useState("activeTriggerElement"),C=u.useState("modal"),D=u.useState("openMethod"),E=u.useState("positionerElement"),F=u.useState("instantType"),G=u.useState("transitionStatus"),H=u.useState("adaptiveOrigin"),I=n.useRef(null),J=(0,el.useAnimationsFinished)(E),K=(0,ej.useAnchorPositioning)({anchor:f,floatingRootContext:x,positionMethod:g,mounted:y,side:h,sideOffset:j,align:i,alignOffset:k,arrowPadding:p,collisionBoundary:l,collisionPadding:o,sticky:q,disableAnchorTracking:r,keepMounted:v,nodeId:w,collisionAvoidance:s,adaptiveOrigin:H}),L=x.useState("domReferenceElement");(0,eg.useIsoLayoutEffect)(()=>{let a=I.current;if(L&&(I.current=L),a&&L&&L!==a){u.set("instantType",void 0);let a=new AbortController;return J(()=>{u.set("instantType","trigger-change")},a.signal),()=>{a.abort()}}},[L,J,u]);let M=!0===C&&A!==dO.REASONS.triggerHover;(0,en.useAnchoredPopupScrollLock)(z&&M,"touch"===D,E,B);let N=u.useStateSetter("positionerElement"),O={open:z,side:K.side,align:K.align,anchorHidden:K.anchorHidden,instant:F},P=(0,em.usePositioner)(a,O,{styles:K.positionerStyles,transitionStatus:G,props:t,refs:[b,N],hidden:!y,inert:!z});return(0,m.jsxs)(eh.Provider,{value:K,children:[y&&M&&(0,m.jsx)(ek.InternalBackdrop,{inert:(0,ef.inertValue)(!z),cutout:B}),(0,m.jsx)(dG.FloatingNode,{id:w,children:P})]})});var ep=a.i(59907),eq=a.i(75610),er=a.i(39358),es=a.i(20580),et=a.i(57535),eu=a.i(21697),ev=a.i(43374),ew=a.i(28050);let ex=n.createContext(void 0),ey=n.forwardRef(function(a,b){let{render:c,className:d,style:e,initialFocus:f,finalFocus:g,...h}=a,i=dJ(),j=ei(),k=null!=(0,eu.useToolbarRootContext)(!0),{context:l,hasClosePart:o}=function(){let[a,b]=n.useState(0),c=(0,ew.useStableCallback)(()=>(b(a=>a+1),()=>{b(a=>Math.max(0,a-1))}));return{context:n.useMemo(()=>({register:c}),[c]),hasClosePart:a>0}}(),p=i.useState("open"),q=i.useState("openMethod"),r=i.useState("instantType"),s=i.useState("transitionStatus"),t=i.useState("popupProps"),u=i.useState("titleElementId"),v=i.useState("descriptionElementId"),w=i.useState("modal"),x=i.useState("mounted"),y=i.useState("openChangeReason"),z=i.useState("activeTriggerElement"),A=i.useState("floatingRootContext"),B=A.useState("floatingId"),C=i.useState("disabled"),D=i.useState("openOnHover"),E=i.useState("closeDelay");(0,es.useOpenChangeComplete)({open:p,ref:i.context.popupRef,onComplete(){p&&i.context.onOpenChangeComplete?.(!0)}}),(0,er.useHoverFloatingInteraction)(A,{enabled:D&&!C,closeDelay:E});let F=void 0===f?(0,dQ.createDefaultInitialFocus)(i.context.popupRef):f,G=!1!==w&&o;i.useSyncedValue("focusManagerModal",G);let H=i.useStateSetter("popupElement"),I={open:p,side:j.side,align:j.align,instant:r,transitionStatus:s},J=(0,d1.useRenderElement)("div",a,{state:I,ref:[b,i.context.popupRef,H],props:[t,{id:B,role:"dialog",...dQ.FOCUSABLE_POPUP_PROPS,"aria-labelledby":u,"aria-describedby":v,onKeyDown(a){k&&et.COMPOSITE_KEYS.has(a.key)&&a.stopPropagation()}},(0,ev.getDisabledMountTransitionStyles)(s),h],stateAttributesMapping:d0.popupTransitionStateMapping});return(0,m.jsx)(eq.FloatingFocusManager,{context:A,openInteractionType:q,modal:G,disabled:!x||y===dO.REASONS.triggerHover,initialFocus:F,returnFocus:g,restoreFocus:"popup",previousFocusableElement:(0,ep.isHTMLElement)(z)?z:void 0,nextFocusableElement:i.context.triggerFocusTargetRef,beforeContentFocusGuardRef:i.context.beforeContentFocusGuardRef,children:(0,m.jsx)(ex.Provider,{value:l,children:J})})}),ez=n.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=dJ().useState("open"),{arrowRef:h,side:i,align:j,arrowUncentered:k,arrowStyles:l}=ei();return(0,d1.useRenderElement)("div",a,{state:{open:g,side:i,align:j,uncentered:k},ref:[b,h],props:[{style:l,"aria-hidden":!0},f],stateAttributesMapping:d0.popupStateMapping})}),eA=n.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=dJ(),h=g.useState("open"),i=g.useState("mounted"),j=g.useState("transitionStatus"),k=g.useState("openChangeReason");return(0,d1.useRenderElement)("div",a,{state:{open:h,transitionStatus:j},ref:b,props:[{role:"presentation",hidden:!i,style:{pointerEvents:k===dO.REASONS.triggerHover?"none":void 0,userSelect:"none",WebkitUserSelect:"none"}},f],stateAttributesMapping:d0.popupTransitionStateMapping})}),eB=n.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=dJ(),h=(0,d5.useBaseUiId)(f.id);return g.useSyncedValueWithCleanup("titleElementId",h),(0,d1.useRenderElement)("h2",a,{ref:b,props:[{id:h},f]})}),eC=n.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=dJ(),h=(0,d5.useBaseUiId)(f.id);return g.useSyncedValueWithCleanup("descriptionElementId",h),(0,d1.useRenderElement)("p",a,{ref:b,props:[{id:h},f]})}),eD=n.forwardRef(function(a,b){let c,{render:d,className:e,style:f,disabled:g=!1,nativeButton:h=!0,...i}=a,{buttonRef:j,getButtonProps:k}=(0,d_.useButton)({disabled:g,focusableWhenDisabled:!1,native:h}),l=dJ();return c=n.useContext(ex),(0,eg.useIsoLayoutEffect)(()=>c?.register(),[c]),(0,d1.useRenderElement)("button",a,{ref:[b,j],props:[{onClick(a){l.setOpen(!1,(0,dY.createChangeEventDetails)(dO.REASONS.closePress,a.nativeEvent))}},i,k]})});var eE=a.i(10288);let eF=n.forwardRef(function(a,b){let{render:c,className:d,style:e,children:f,...g}=a,h=dJ(),{side:i}=ei(),j=h.useState("instantType"),{children:k,state:l}=(0,eE.usePopupViewport)({store:h,side:i,children:f}),m={activationDirection:l.activationDirection,transitioning:l.transitioning,instant:j};return(0,d1.useRenderElement)("div",a,{state:m,ref:b,props:[g,{children:k}],stateAttributesMapping:eE.popupViewportStateMapping})});var eG=a.i(33143);class eH extends eG.BasePopupHandle{constructor(){super(function(){let a=new dS.PopupTriggerMap;return Object.assign(new dP.NullStore(Object.freeze(dW(void 0,a)),Object.freeze(dX(a)),dU),{setOpen:dN.NOOP})}(),"Popover")}open(a){this.openByTrigger(a)}close(){this.closePopup()}get isOpen(){return this.attachedStore?.select("open")??!1}}a.s(["Arrow",0,ez,"Backdrop",0,eA,"Close",0,eD,"Description",0,eC,"Handle",0,eH,"Popup",0,ey,"Portal",0,ee,"Positioner",0,eo,"Root",0,function(a){return dJ(!0)?(0,m.jsx)(dZ,{props:a}):(0,m.jsx)(dG.FloatingTree,{children:(0,m.jsx)(dZ,{props:a})})},"Title",0,eB,"Trigger",0,eb,"Viewport",0,eF,"createHandle",0,function(){return new eH}],44413);var eI=a.i(44413),eI=eI;function eJ({...a}){return(0,m.jsx)(eI.Root,{"data-slot":"popover",...a})}function eK({...a}){return(0,m.jsx)(eI.Trigger,{"data-slot":"popover-trigger",...a})}function eL({className:a,align:b="center",alignOffset:c=0,side:d="bottom",sideOffset:e=4,...f}){return(0,m.jsx)(eI.Portal,{children:(0,m.jsx)(eI.Positioner,{align:b,alignOffset:c,side:d,sideOffset:e,className:"isolate z-50",children:(0,m.jsx)(eI.Popup,{"data-slot":"popover-content",className:(0,$.cn)("z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...f})})})}let eM=(a,b)=>("all"===b.provider||a.provider===b.provider)&&("all"===b.project||a.project===b.project);function eN(a){let b=a.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!b)return null;let c=new Date(Number(b[1]),Number(b[2])-1,Number(b[3]));return aI(c)===a?c:null}function eO(a,b,c){let d=a.get(b);return d||a.set(b,d=c()),d}let eP=[{value:"activeMs",label:"Agent time"},{value:"costUSD",label:"Cost"}],eQ=["Session","Model","Window","Messages","Tool calls","Agent time","Cost"],eR=a=>new Date(a).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1}),eS=a=>`${Math.round(a/6e4)}m`;function eT({slots:a,peak:b}){let[c,d]=(0,n.useState)(null),e=Math.max(1,b),f=Math.round(4);return(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{role:"img","aria-label":`Sessions working at once through the day, peaking at ${b}`,className:"flex h-28 items-end gap-px border-b border-border",onMouseLeave:()=>d(null),children:a.map(a=>{let b=`${eR(a.t)}–${eR(a.t+9e5)} \xb7 ${a.sessions} session${1===a.sessions?"":"s"}${a.sessions>0?` \xb7 ${(0,W.formatDuration)(a.activeMs)} agent time`:""}`;return(0,m.jsx)("div",{title:b,onMouseEnter:()=>d(b),className:"group flex h-full min-w-0 flex-1 items-end",children:(0,m.jsx)("div",{className:"w-full rounded-t-[2px] bg-brand group-hover:bg-brand/75",style:{height:a.sessions>0?`max(3px, ${a.sessions/e*100}%)`:0}})},a.t)})}),(0,m.jsx)("div",{className:"mt-1 flex text-[10px] text-muted-foreground","aria-hidden":!0,children:a.map((a,b)=>b%(3*f)==0?(0,m.jsx)("span",{className:"min-w-0 flex-1 overflow-visible whitespace-nowrap",children:eR(a.t)},a.t):(0,m.jsx)("span",{className:"min-w-0 flex-1"},a.t))}),(0,m.jsx)("p",{className:(0,$.cn)("mt-2 truncate text-xs text-muted-foreground",c&&"text-foreground"),"aria-live":"polite",children:c??`${Math.round(15)}-minute slots \xb7 times in ${Intl.DateTimeFormat().resolvedOptions().timeZone}`})]})}function eU({reloadToken:a,project:b,onProjectChange:c,projectOptions:d}){let{sessions:e,error:f}=aM(a),[g,h]=(0,n.useState)(null),[i,j]=(0,n.useState)("all"),[k,l]=(0,n.useState)("activeMs"),[p,q]=(0,n.useState)(!1),r=(0,n.useMemo)(()=>({project:b,provider:i}),[b,i]),t=aI(new Date),u=g??t,v=(0,n.useMemo)(()=>eN(u)??new Date,[u]),w=(0,n.useMemo)(()=>e?function(a,b){let c=new Set;for(let d of a)if(eM(d,b))for(let a of d.activity)c.add(aI(new Date(a.t)));return[...c].sort()}(e,r):[],[e,r]),x=(0,n.useMemo)(()=>w.flatMap(a=>eN(a)??[]),[w]),y=(0,n.useMemo)(()=>e?function(a,b,c){let d=aG(b).getTime(),e=aH(b,1).getTime(),f=Array.from({length:Math.ceil((e-d)/9e5)},(a,b)=>({t:d+9e5*b,sessions:0,activeMs:0})),g=[],h=new Map,i=new Map,j=new Map;for(let b of a){if(!eM(b,c))continue;let a=null;for(let c of b.activity){if(c.t<d||c.t>=e)continue;a??={provider:b.provider,id:b.id,label:b.label,project:b.project,model:b.model,messages:0,toolCalls:0,activeMs:0,costUSD:0,start:c.t,end:c.t},a.messages+=c.messages,a.toolCalls+=c.toolCalls,a.activeMs+=c.activeMs,a.costUSD+=c.costUSD??0,a.start=Math.min(a.start,c.t),a.end=Math.max(a.end,c.t+9e5);let g=f[Math.floor((c.t-d)/9e5)];g&&(g.sessions++,g.activeMs+=c.activeMs)}if(!a)continue;for(let b of(g.push(a),[eO(h,a.project,()=>({name:a.project,activeMs:0,costUSD:0})),eO(j,a.provider,()=>({name:a.provider,provider:a.provider,activeMs:0,costUSD:0}))]))b.activeMs+=a.activeMs,b.costUSD+=a.costUSD;for(let a of b.usage)a.t<d||a.t>=e||(eO(i,a.model,()=>({name:a.model,activeMs:0,costUSD:0})).costUSD+=a.costUSD??0);let k=a.model??"unknown";eO(i,k,()=>({name:k,activeMs:0,costUSD:0})).activeMs+=a.activeMs}let k={sessions:g.length,projects:h.size,messages:0,toolCalls:0,activeMs:0,costUSD:0,peak:0,peakAt:null};for(let a of g)k.messages+=a.messages,k.toolCalls+=a.toolCalls,k.activeMs+=a.activeMs,k.costUSD+=a.costUSD;for(let a of f)a.sessions>k.peak&&(k.peak=a.sessions,k.peakAt=a.t);let l=a=>[...a.values()].sort((a,b)=>b.activeMs-a.activeMs||b.costUSD-a.costUSD);return{slots:f,sessions:g.sort((a,b)=>a.start-b.start),totals:k,byProject:l(h),byModel:l(i),byAgent:l(j)}}(e,v,r):null,[e,v,r]),z=(0,n.useMemo)(()=>Y.PROVIDER_ORDER.filter(a=>e?.some(b=>b.provider===a)),[e]),B=(0,n.useMemo)(()=>[{value:"all",label:"All agents"},...z.map(a=>({value:a,label:(0,Y.providerStyle)(a).shortLabel}))],[z]);if(f&&!e)return(0,m.jsxs)("div",{className:"flex items-start gap-3 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive","aria-hidden":!0}),(0,m.jsx)("p",{className:"text-sm",children:"Could not load activity. Use refresh to try again."})]});if(!e||!y)return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(150px,1fr))] gap-3",children:Array.from({length:6},(a,b)=>(0,m.jsx)(J.Skeleton,{className:"h-[86px] rounded-xl"},b))}),(0,m.jsx)(J.Skeleton,{className:"h-48 rounded-xl"})]});let C=w.findLast(a=>a<u),D=w.find(a=>a>u),F=w[w.length-1],{totals:H}=y,I=(a,b=a=>a.name)=>a.map(a=>({name:b(a),value:a[k]})).filter(a=>a.value>0),K="costUSD"===k?W.formatCost:eS;return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,m.jsxs)("div",{className:"flex items-center gap-1",children:[(0,m.jsx)(A.Button,{variant:"outline",size:"icon",disabled:!C,onClick:()=>C&&h(C),"aria-label":"Previous active day",title:"Previous active day",children:(0,m.jsx)(bs,{"aria-hidden":!0})}),(0,m.jsxs)(eJ,{open:p,onOpenChange:q,children:[(0,m.jsx)(eK,{render:(0,m.jsxs)(A.Button,{variant:"outline",className:"min-w-36 justify-start font-normal tabular-nums",children:[(0,m.jsx)(br.CalendarDays,{className:"text-muted-foreground","aria-hidden":!0}),v.toLocaleDateString([],{month:"short",day:"numeric",year:"numeric"})]})}),(0,m.jsx)(eL,{align:"start",className:"w-auto p-0",children:(0,m.jsx)(dD,{mode:"single",selected:v,defaultMonth:v,disabled:{after:new Date},modifiers:{active:x},modifiersClassNames:{active:"[&>button]:font-semibold [&>button]:text-brand"},onSelect:a=>{if(!a)return;let b=aI(a);h(b===t?null:b),q(!1)}})})]}),(0,m.jsx)(A.Button,{variant:"outline",size:"icon",disabled:!D,onClick:()=>D&&h(D===t?null:D),"aria-label":"Next active day",title:"Next active day",children:(0,m.jsx)(O.ChevronRight,{"aria-hidden":!0})})]}),u!==t&&(0,m.jsx)(A.Button,{variant:"outline",onClick:()=>h(null),children:"Today"}),d.length>2&&(0,m.jsx)(G,{value:b,onChange:c,options:d,"aria-label":"Project",className:"max-w-56"}),z.length>1&&(0,m.jsx)(G,{value:i,onChange:j,options:B,"aria-label":"Agent"}),(0,m.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:v.toLocaleDateString([],{weekday:"long",month:"long",day:"numeric",year:"numeric"})})]}),0===H.sessions?(0,m.jsx)(E.EmptyState,{icon:s,title:u===t?"No activity yet today":"No activity on this day",description:F?"No agent wrote to a transcript on this day with these filters.":"No session matches these filters on any day.",action:F?(0,m.jsx)(A.Button,{variant:"outline",size:"sm",onClick:()=>h(F===t?null:F),children:"Go to latest active day"}):void 0}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(aC.StatCardGrid,{children:[(0,m.jsx)(aC.StatCard,{label:"Agent time",value:(0,W.formatDuration)(H.activeMs),sub:"summed over sessions",accent:!0}),(0,m.jsx)(aC.StatCard,{label:"Peak at once",value:H.peak.toLocaleString(),sub:null!==H.peakAt?`at ${eR(H.peakAt)}`:void 0}),(0,m.jsx)(aC.StatCard,{label:"Sessions",value:H.sessions.toLocaleString()}),(0,m.jsx)(aC.StatCard,{label:"Projects",value:H.projects.toLocaleString()}),(0,m.jsx)(aC.StatCard,{label:"Messages",value:H.messages.toLocaleString()}),(0,m.jsx)(aC.StatCard,{label:"Tool calls",value:H.toolCalls.toLocaleString()}),(0,m.jsx)(aC.StatCard,{label:"Est. cost",value:(0,W.formatCost)(H.costUSD),sub:"at API list prices"})]}),(0,m.jsx)(ar,{title:"Concurrency",note:`peak ${H.peak} at once`,children:(0,m.jsx)(eT,{slots:y.slots,peak:H.peak})}),(0,m.jsx)(ar,{title:"Sessions",note:`${H.sessions} total`,children:(0,m.jsxs)(aj.Table,{className:"min-w-[720px]",children:[(0,m.jsx)(aj.TableHeader,{children:(0,m.jsx)(aj.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:eQ.map((a,b)=>(0,m.jsx)(aj.TableHead,{className:(0,$.cn)("text-muted-foreground",b>2&&"text-right"),children:a},a))})}),(0,m.jsx)(aj.TableBody,{className:"tabular-nums",children:y.sessions.map(a=>(0,m.jsxs)(aj.TableRow,{children:[(0,m.jsxs)(aj.TableCell,{className:"w-full max-w-0",children:[(0,m.jsx)(N.default,{href:`/sessions/${a.provider}/${a.id}`,className:"block truncate rounded-sm font-medium hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:a.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 shrink-0 rounded-full",(0,Y.providerStyle)(a.provider).dotCls),"aria-hidden":!0}),(0,m.jsxs)("span",{className:"truncate",children:[(0,Y.providerStyle)(a.provider).shortLabel," · ",a.project]})]})]}),(0,m.jsx)(aj.TableCell,{className:"max-w-40 truncate font-mono text-xs text-muted-foreground",children:a.model??"—"}),(0,m.jsxs)(aj.TableCell,{className:"whitespace-nowrap text-muted-foreground",children:[eR(a.start),"–",eR(a.end)]}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.messages.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:a.toolCalls.toLocaleString()}),(0,m.jsx)(aj.TableCell,{className:"text-right",children:(0,W.formatDuration)(a.activeMs)}),(0,m.jsx)(aj.TableCell,{className:"text-right font-medium",children:(0,W.formatCost)(a.costUSD)})]},`${a.provider}:${a.id}`))})]})}),(0,m.jsx)(ar,{title:"Breakdown",action:(0,m.jsx)(as.Segmented,{label:"Break down by",value:k,onChange:l,options:eP}),children:(0,m.jsx)("div",{className:"grid gap-5 lg:grid-cols-3",children:[["Project",I(y.byProject)],["Model",I(y.byModel)],["Agent",I(y.byAgent,a=>(0,Y.providerStyle)(a.name).shortLabel)]].map(([a,b])=>(0,m.jsxs)("div",{className:"min-w-0",children:[(0,m.jsx)("h3",{className:"mb-2 text-xs uppercase tracking-wider text-muted-foreground",children:a}),(0,m.jsx)(ap.BarList,{items:b,limit:6,format:K,emptyLabel:"Nothing recorded"})]},a))})})]})]})}var eV=a.i(34597),eW=a.i(45128);function eX(a){return a.project??"unknown"}var eY=a.i(88285),eZ=a.i(87105);let e$=["analytics","usage","activity","quality","projects","sessions","logs"];function e_(){let[a,b]=(0,eZ.useTabParam)(e$,"analytics"),[c,d]=(0,eZ.useQueryParam)("project","all"),[e,f]=(0,n.useState)([]),[g,h]=(0,n.useState)([]),[i,j]=(0,n.useState)("all"),[k,l]=(0,n.useState)([]),[r,B]=(0,n.useState)(!0),[F,N]=(0,n.useState)(null),[O,P]=(0,n.useState)(""),[Q,R]=(0,eY.useSessionSort)(),[S,T]=(0,n.useState)(0);function U(){B(!0),N(null),T(a=>a+1)}(0,n.useEffect)(()=>{let a=!1;return(async()=>{try{let[b,c,d]=await Promise.all([fetch("/api/sessions"),fetch("/api/logs"),fetch("/api/providers")]);if(!b.ok||!c.ok||!d.ok)throw Error("Request failed");let[e,g,i]=await Promise.all([b.json(),c.json(),d.json()]);if(a)return;f(e),l(g),h(i)}catch{a||N("Could not read the agent session directories. Are ~/.copilot, ~/.claude or ~/.codex present and readable?")}finally{a||B(!1)}})(),()=>{a=!0}},[S]);let V=(0,n.useMemo)(()=>g.filter(a=>a.available&&(a.sessionCount??0)>0),[g]),W=(0,n.useMemo)(()=>(function(a){let b=new Map;for(let c of a){let a=eX(c),d=b.get(a);d||(d={name:a,path:c.projectPath,sessions:0,costUSD:0,unpriced:!1,inputTokens:0,outputTokens:0,toolCalls:0,lastActive:"",providers:[]},b.set(a,d)),d.sessions+=1,d.costUSD+=c.estimatedCostUSD??0,c.unpricedModels?.length&&(d.unpriced=!0),d.inputTokens+=c.totalInputTokens??0,d.outputTokens+=c.totalOutputTokens??0,d.toolCalls+=c.toolCallCount??0;let e=c.updated_at??c.created_at??"";e>d.lastActive&&(d.lastActive=e),d.providers.includes(c.provider)||d.providers.push(c.provider)}return[...b.values()].sort((a,b)=>b.lastActive.localeCompare(a.lastActive))})(e),[e]),X=r||W.some(a=>a.name===c)?c:"all",Z=(0,n.useMemo)(()=>[{value:"all",label:"All projects"},...[...W].sort((a,b)=>a.name.localeCompare(b.name)).map(a=>({value:a.name,label:a.name}))],[W]),_=(0,n.useMemo)(()=>"all"===X?e:e.filter(a=>eX(a)===X),[e,X]),ab=(0,n.useMemo)(()=>"all"===i?_:_.filter(a=>a.provider===i),[_,i]),ac=(0,n.useMemo)(()=>{let a=O.trim().toLowerCase(),b=a?ab.filter(b=>b.name?.toLowerCase().includes(a)||b.title?.toLowerCase().includes(a)||b.repository?.toLowerCase().includes(a)||b.branch?.toLowerCase().includes(a)||b.cwd?.toLowerCase().includes(a)||b.id.toLowerCase().includes(a)):ab;return(0,eY.sortSessions)(b,Q)},[ab,O,Q]);return(0,m.jsxs)("div",{className:"min-h-screen bg-background text-foreground",children:[(0,m.jsx)("header",{className:"sticky top-0 z-20 border-b border-border bg-background/85 backdrop-blur supports-[backdrop-filter]:bg-background/70",children:(0,m.jsxs)("div",{className:"mx-auto flex max-w-6xl items-center gap-3 px-4 py-3 sm:px-6",children:[(0,m.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[(0,m.jsx)("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-lg bg-brand text-brand-foreground",children:(0,m.jsx)(q.Bot,{className:"size-4","aria-hidden":!0})}),(0,m.jsxs)("div",{className:"min-w-0",children:[(0,m.jsxs)("h1",{className:"truncate text-sm font-semibold leading-none tracking-tight",children:["Agent ",(0,m.jsx)("span",{className:"text-brand",children:"Session"})," Inspector"]}),(0,m.jsxs)("p",{className:"mt-1 truncate font-mono text-xs text-muted-foreground",children:["v",eW.APP_INFO.version]})]})]}),(0,m.jsxs)("div",{className:"ml-auto flex items-center gap-2 sm:gap-3",children:[(0,m.jsxs)("span",{className:"hidden items-center gap-1.5 text-sm text-muted-foreground sm:flex",children:[(0,m.jsx)("span",{className:(0,$.cn)("inline-block size-2 rounded-full",F?"bg-destructive":"bg-emerald-500"),"aria-hidden":!0}),(0,m.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:ab.length}),"sessions"]}),(0,m.jsx)(L.SearchTrigger,{}),(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsx)(A.Button,{variant:"outline",size:"icon",onClick:U,disabled:r,"aria-label":"Refresh",className:"text-muted-foreground",children:(0,m.jsx)(y,{className:(0,$.cn)("size-3.5",r&&"animate-spin"),"aria-hidden":!0})})}),(0,m.jsx)(D.TooltipContent,{children:"Refresh"})]}),(0,m.jsx)(K.PalettePicker,{}),(0,m.jsx)(M.ThemeToggle,{}),(0,m.jsx)(eV.AboutDialog,{providers:g})]})]})}),(0,m.jsxs)("main",{id:"main",className:"mx-auto max-w-6xl px-4 py-6 sm:px-6",children:[F&&(0,m.jsxs)("div",{className:"mb-5 flex items-start gap-3 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3",children:[(0,m.jsx)(o.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive","aria-hidden":!0}),(0,m.jsxs)("div",{className:"flex-1",children:[(0,m.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Failed to load sessions"}),(0,m.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:F})]}),(0,m.jsx)(A.Button,{variant:"outline",size:"sm",onClick:U,children:"Retry"})]}),(0,m.jsxs)(C.Tabs,{value:a,onValueChange:b,children:[(0,m.jsxs)(C.TabsList,{className:"mb-5 max-w-full justify-start overflow-x-auto",children:[(0,m.jsxs)(C.TabsTrigger,{value:"analytics",className:"px-3",children:[(0,m.jsx)(p.BarChart3,{className:"size-4","aria-hidden":!0}),"Analytics"]}),(0,m.jsxs)(C.TabsTrigger,{value:"usage",className:"px-3",children:[(0,m.jsx)(z.Wallet,{className:"size-4","aria-hidden":!0}),"Usage"]}),(0,m.jsxs)(C.TabsTrigger,{value:"activity",className:"px-3",children:[(0,m.jsx)(s,{className:"size-4","aria-hidden":!0}),"Activity"]}),(0,m.jsxs)(C.TabsTrigger,{value:"quality",className:"px-3",children:[(0,m.jsx)(v,{className:"size-4","aria-hidden":!0}),"Quality"]}),(0,m.jsxs)(C.TabsTrigger,{value:"projects",className:"px-3",children:[(0,m.jsx)(u.FolderGit2,{className:"size-4","aria-hidden":!0}),"Projects",(0,m.jsx)("span",{className:"ml-1 rounded-sm bg-foreground/10 px-1.5 text-[11px] tabular-nums",children:W.length})]}),(0,m.jsxs)(C.TabsTrigger,{value:"sessions",className:"px-3",children:[(0,m.jsx)(x.ListTree,{className:"size-4","aria-hidden":!0}),"Sessions",(0,m.jsx)("span",{className:"ml-1 rounded-sm bg-foreground/10 px-1.5 text-[11px] tabular-nums",children:_.length})]}),(0,m.jsxs)(C.TabsTrigger,{value:"logs",className:"px-3",children:[(0,m.jsx)(t.FileText,{className:"size-4","aria-hidden":!0}),"Logs",(0,m.jsx)("span",{className:"ml-1 rounded-sm bg-foreground/10 px-1.5 text-[11px] tabular-nums",children:k.length})]})]}),(0,m.jsx)(C.TabsContent,{value:"analytics",children:(0,m.jsx)(a2,{reloadToken:S,project:X,onProjectChange:d,projectOptions:Z})}),(0,m.jsx)(C.TabsContent,{value:"usage",children:(0,m.jsx)(bc,{reloadToken:S,project:X,onProjectChange:d,projectOptions:Z})}),(0,m.jsx)(C.TabsContent,{value:"activity",children:(0,m.jsx)(eU,{reloadToken:S,project:X,onProjectChange:d,projectOptions:Z})}),(0,m.jsx)(C.TabsContent,{value:"quality",children:(0,m.jsx)(bq,{reloadToken:S,project:X,onProjectChange:d,projectOptions:Z})}),(0,m.jsx)(C.TabsContent,{value:"projects",children:(0,m.jsx)(an,{projects:W,loading:r,selected:X,onSelect:function(a){d(a),b("sessions")}})}),(0,m.jsxs)(C.TabsContent,{value:"sessions",children:[V.length>1&&(0,m.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",role:"group","aria-label":"Filter by agent",children:[(0,m.jsx)(e0,{active:"all"===i,onClick:()=>j("all"),label:"All agents",count:_.length}),V.map(a=>(0,m.jsx)(e0,{active:i===a.id,onClick:()=>j(a.id),label:(0,Y.providerStyle)(a.id).shortLabel,count:_.filter(b=>b.provider===a.id).length,dotCls:(0,Y.providerStyle)(a.id).dotCls},a.id))]}),(0,m.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-3",children:[(0,m.jsx)(I.SearchInput,{value:O,onChange:P,shortcut:!0,placeholder:"Search title, repo, branch or id…","aria-label":"Search sessions",className:"w-full max-w-sm"}),Z.length>2&&(0,m.jsx)(G,{value:X,onChange:d,options:Z,"aria-label":"Project",className:"max-w-56"}),(0,m.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:"hidden sm:inline","aria-hidden":!0,children:"Sort"}),(0,m.jsx)(G,{value:Q,onChange:R,options:eY.SORT_OPTIONS,"aria-label":"Sort sessions"})]}),(0,m.jsx)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground",children:r?"Loading…":`${ac.length} of ${ab.length}`})]}),(0,m.jsx)("div",{className:"grid gap-2",children:r?Array.from({length:5},(a,b)=>(0,m.jsx)(J.SessionCardSkeleton,{},b)):ac.length>0?ac.map(a=>(0,m.jsx)(aa,{session:a},`${a.provider}:${a.id}`)):(0,m.jsx)(E.EmptyState,{icon:w,title:O?"No matching sessions":"No sessions yet",description:O?`Nothing matches “${O}”. Try a repository name, branch or session id.`:"all"!==X?`No ${(0,Y.providerStyle)(i).shortLabel} sessions in ${X}.`:`Sessions appear here once a supported agent writes a transcript on this machine: ${Y.SUPPORTED_AGENTS}.`,action:O?(0,m.jsx)(A.Button,{variant:"outline",size:"sm",onClick:()=>P(""),children:"Clear search"}):void 0})})]}),(0,m.jsx)(C.TabsContent,{value:"logs",children:(0,m.jsx)(ai,{logs:k,loading:r})})]})]}),(0,m.jsx)(H.ScrollToTop,{})]})}function e0({active:a,onClick:b,label:c,count:d,dotCls:e}){return(0,m.jsxs)(B.Toggle,{variant:"outline",size:"sm",pressed:a,onPressedChange:b,className:"gap-1.5 rounded-full bg-background px-3 text-xs text-muted-foreground aria-pressed:border-brand/50 aria-pressed:bg-brand/10 aria-pressed:text-foreground",children:[e&&(0,m.jsx)("span",{className:(0,$.cn)("size-1.5 rounded-full",e),"aria-hidden":!0}),c,(0,m.jsx)("span",{className:"rounded-sm bg-foreground/10 px-1.5 tabular-nums",children:d})]})}a.s(["default",0,function(){return(0,m.jsx)(n.Suspense,{children:(0,m.jsx)(e_,{})})}],40777)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_page_tsx_1chiuah._.js.map
|