agent-session-inspector 0.1.8 → 0.1.10
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 +1 -1
- 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 +3 -3
- 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 +14 -14
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- 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]/record/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 +16 -16
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +15 -15
- package/app/.next/server/app/index.segments/_full.segment.rsc +16 -16
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- 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]__014br-h._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0co499t._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0p_hyq8._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0yxic1z._.js +2 -2
- package/app/.next/server/chunks/ssr/_0e8jdju._.js +7 -0
- package/app/.next/server/chunks/ssr/_0f8nmc3._.js +1 -1
- package/app/.next/server/chunks/ssr/_0gr0upx._.js +7 -0
- 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 +2 -6
- 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/0hav9to299upa.js +1 -0
- package/app/.next/static/chunks/1-qn722atv1by.css +1 -0
- package/app/.next/static/chunks/{1fe2mxakoweia.js → 18c6__lhilfeo.js} +1 -1
- package/app/.next/static/chunks/1bgubb_nxxbrk.js +2 -0
- package/app/.next/static/chunks/1gwxc9rvk6onv.js +5 -0
- package/app/AGENTS.md +9 -0
- package/app/CLAUDE.md +1 -0
- package/app/CONTRIBUTING.md +90 -0
- package/app/Dockerfile +34 -0
- package/app/LICENSE +21 -0
- package/app/README.md +369 -0
- package/app/bin/agent-session-inspector.mjs +185 -0
- package/app/components.json +25 -0
- package/app/docs/screenshots/analytics-dark.png +0 -0
- package/app/docs/screenshots/analytics.png +0 -0
- package/app/docs/screenshots/request-table.png +0 -0
- package/app/docs/screenshots/session-overview-dark.png +0 -0
- package/app/docs/screenshots/session-overview.png +0 -0
- package/app/docs/screenshots/sessions-dark.png +0 -0
- package/app/docs/screenshots/sessions.png +0 -0
- package/app/docs/screenshots/timeline-dark.png +0 -0
- package/app/docs/screenshots/timeline.png +0 -0
- package/app/docs/screenshots/token-optimizer-dark.png +0 -0
- package/app/docs/screenshots/token-optimizer.png +0 -0
- package/app/docs/social-preview.png +0 -0
- package/app/eslint.config.mjs +20 -0
- package/app/install.sh +85 -0
- package/app/next.config.ts +17 -0
- package/app/package.json +3 -3
- package/app/pnpm-lock.yaml +7031 -0
- package/app/pnpm-workspace.yaml +3 -0
- package/app/postcss.config.mjs +7 -0
- package/app/scripts/build-cli.mjs +26 -0
- package/app/scripts/demo-data.mjs +337 -0
- package/app/scripts/deploy-docker.sh +71 -0
- package/app/scripts/package-release.sh +86 -0
- package/app/server.js +1 -1
- package/app/tsconfig.json +34 -0
- package/bin/agent-session-inspector.mjs +2 -2
- package/cli/cli.mjs +234 -84
- package/package.json +1 -1
- package/app/.next/server/chunks/ssr/_0o294sf._.js +0 -3
- package/app/.next/server/chunks/ssr/_0wfo2z0._.js +0 -3
- package/app/.next/static/chunks/1lmw5sxsr57p6.css +0 -1
- package/app/.next/static/chunks/1nuneih_2_kul.js +0 -1
- package/app/.next/static/chunks/21ckxredfe3pr.js +0 -6
- package/app/.next/static/chunks/3-g9jvt_m-6_4.js +0 -1
- /package/app/.next/static/{muuOFZsnyOfIG_5aUuqFV → QagODMnr1on0whIZ_GMxV}/_buildManifest.js +0 -0
- /package/app/.next/static/{muuOFZsnyOfIG_5aUuqFV → QagODMnr1on0whIZ_GMxV}/_clientMiddlewareManifest.js +0 -0
- /package/app/.next/static/{muuOFZsnyOfIG_5aUuqFV → QagODMnr1on0whIZ_GMxV}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52683,e=>{"use strict";var t,a,s,n,r,o,l,i,d,c,u,m=e.i(45650),h=e.i(10364),p=e.i(59920),f=e.i(3151),g=e.i(51958),x=e.i(13496);let v=(0,x.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 b=e.i(44467),y=e.i(56248);let j=(0,x.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,x.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 k=e.i(9590);let S=(0,x.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 N=e.i(42893),M=e.i(19455),C=e.i(70962),T=e.i(77572),D=e.i(46798),O=e.i(35334),E=e.i(67489);function L({value:e,onChange:t,options:a,className:s,"aria-label":n}){return(0,m.jsxs)(E.Select,{items:a,value:e,onValueChange:e=>{null!==e&&t(e)},children:[(0,m.jsx)(E.SelectTrigger,{"aria-label":n,className:s,children:(0,m.jsx)(E.SelectValue,{})}),(0,m.jsx)(E.SelectContent,{className:"w-auto min-w-[max(9rem,var(--anchor-width))]",children:(0,m.jsx)(E.SelectGroup,{children:a.map(e=>(0,m.jsx)(E.SelectItem,{value:e.value,children:e.label},e.value))})})]})}var W=e.i(4503),P=e.i(81795),$=e.i(22910),R=e.i(7067),A=e.i(84445),F=e.i(7346),U=e.i(4253),_=e.i(93304),I=e.i(93125);let Y=(0,x.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 z=e.i(10),B=e.i(32660),H=e.i(87486),G=e.i(82183),q=e.i(82574),Z=e.i(75379),V=e.i(9449),K=e.i(46816),Q=e.i(48209),X=e.i(75157);function J({icon:e,value:t,label:a}){return(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[(0,m.jsx)(e,{className:"size-3.5 opacity-70","aria-hidden":!0}),(0,m.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:t.toLocaleString()}),(0,m.jsx)("span",{children:a})]})}function ee({session:e}){let t=(0,Z.firstLine)(e.name),a=e.title??t,s=e.title?t:void 0,n=e.health,r=e.totalInputTokens??0,o=e.totalOutputTokens??0,l=e.estimatedCostUSD,i=e.unpricedModels??[],d=null!=l&&(l>0||0===i.length),c=!!e.eventCount||!!e.toolCallCount||!!e.userMessageCount||r+o>0||!!n,u=(0,K.providerStyle)(e.provider);return(0,m.jsx)(U.default,{href:`/sessions/${e.provider}/${e.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,X.cn)("mb-1 inline-flex items-center gap-1.5 rounded-full border px-2 py-0.5 text-[11px] font-medium",u.badgeCls),children:[(0,m.jsx)("span",{className:(0,X.cn)("size-1.5 rounded-full",u.dotCls),"aria-hidden":!0}),u.shortLabel]}),(0,m.jsx)("h3",{className:"line-clamp-2 break-words text-sm font-semibold leading-snug text-foreground",children:a??(0,m.jsx)("span",{className:"font-normal italic text-muted-foreground",children:"Unnamed session"})}),s&&(0,m.jsx)("p",{className:"mt-0.5 line-clamp-1 break-words text-xs text-muted-foreground",children:s})]}),(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,Q.isRunning)(e.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,Z.timeAgo)(e.updated_at)})}),(0,m.jsxs)(D.TooltipContent,{children:["Updated ",(0,Z.formatDateTime)(e.updated_at)]})]}),e.client_name&&(0,m.jsx)(H.Badge,{variant:"secondary",className:"hidden text-xs sm:inline-flex",children:e.client_name})]}),(0,m.jsx)(_.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:[e.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:e.repository})}),e.branch&&(0,m.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,m.jsx)(I.GitBranch,{className:"size-3 opacity-70","aria-hidden":!0}),(0,m.jsx)("span",{className:"font-mono",children:e.branch})]}),!e.repository&&e.cwd&&(0,m.jsx)("span",{className:"max-w-full truncate font-mono opacity-80",children:e.cwd})]}),c&&(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:[!!e.userMessageCount&&(0,m.jsx)(J,{icon:Y,value:e.userMessageCount,label:"turns"}),!!e.toolCallCount&&(0,m.jsx)(J,{icon:z.Wrench,value:e.toolCallCount,label:"tools"}),!!e.eventCount&&(0,m.jsx)(J,{icon:B.Zap,value:e.eventCount,label:"events"}),(r+o>0||d||n)&&(0,m.jsxs)("div",{className:"ml-auto flex items-center gap-1.5",children:[n&&(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsx)(G.GradeBadge,{grade:n.grade,className:"h-[22px]"})}),(0,m.jsxs)(D.TooltipContent,{children:["Health ",n.score," · ",V.OUTCOME_LABELS[n.outcome].toLowerCase(),n.signals.filter(e=>"outcome"!==e.id).map(e=>` \xb7 ${V.SIGNAL_INFO[e.id].label.toLowerCase()}`)]})]}),d&&(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,Z.formatCost)(l),i.length>0&&"+"]})}),(0,m.jsxs)(D.TooltipContent,{children:["Estimated cost at API list prices",i.length>0&&` \xb7 excludes ${i.join(", ")}`,null!=e.inheritedCostUSD&&` \xb7 plus ${(0,Z.formatCost)(e.inheritedCostUSD)} inherited from the forked session`]})]}),r>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)(q.InputTokensIcon,{className:"size-3","aria-hidden":!0}),(0,m.jsx)("span",{className:"opacity-70",children:"in"}),(0,Z.formatTokens)(r)]})}),(0,m.jsxs)(D.TooltipContent,{children:[r.toLocaleString()," input tokens"]})]}),o>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)(q.OutputTokensIcon,{className:"size-3","aria-hidden":!0}),(0,m.jsx)("span",{className:"opacity-70",children:"out"}),(0,Z.formatTokens)(o)]})}),(0,m.jsxs)(D.TooltipContent,{children:[o.toLocaleString()," output tokens"]})]})]})]})]})})}let et=(0,x.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 ea=e.i(7725);let es=(0,x.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 en=e.i(59684),er=e.i(34960);let eo={error:"text-destructive",warn:"text-amber-600 dark:text-amber-400",info:"text-foreground",debug:"text-muted-foreground"};function el(e){return e.includes("[ERROR]")?"error":e.includes("[WARN]")?"warn":e.includes("[INFO]")?"info":"debug"}function ei({logs:e,loading:t}){let[a,s]=(0,h.useState)(""),[n,r]=(0,h.useState)(null),[o,l]=(0,h.useState)(null),[i,d]=(0,h.useState)(""),[c,u]=(0,h.useState)(!1),[p,f]=(0,h.useState)(!0),g=n??e[0]?.name??null,x=e.find(e=>e.name===g)?.provider??"copilot",v=null!==g&&o?.name!==g,y=o?.name===g?o.content:"",j=(0,h.useMemo)(()=>{let t=a.trim().toLowerCase();return t?e.filter(e=>e.name.toLowerCase().includes(t)):e},[e,a]);(0,h.useEffect)(()=>{if(!g)return;let e=!1;return(async()=>{try{let t=await fetch(`/api/logs?provider=${encodeURIComponent(x)}&name=${encodeURIComponent(g)}`),a=await t.json();e||l({name:g,content:a.content||""})}catch{e||l({name:g,content:""})}})(),()=>{e=!0}},[g,x]);let w=(0,h.useMemo)(()=>y?y.split("\n"):[],[y]),k=(0,h.useMemo)(()=>{let e=i.trim().toLowerCase();return w.map((e,t)=>({text:e,n:t+1,level:el(e)})).filter(t=>(!c||"error"===t.level||"warn"===t.level)&&(!e||!!t.text.toLowerCase().includes(e)))},[w,i,c]),S=(0,h.useMemo)(()=>w.filter(e=>"error"===el(e)).length,[w]);return t?(0,m.jsxs)("div",{className:"grid gap-4 lg:h-[calc(100vh-16rem)] lg:grid-cols-[280px_1fr]",children:[(0,m.jsx)($.Skeleton,{className:"h-64 lg:h-full"}),(0,m.jsx)($.Skeleton,{className:"h-[60vh] lg:h-full"})]}):0===e.length?(0,m.jsx)(O.EmptyState,{icon:b.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)(P.SearchInput,{value:a,onChange:s,placeholder:"Filter files…","aria-label":"Filter log files"}),(0,m.jsx)(en.ScrollArea,{className:"min-h-0 flex-1 rounded-xl border border-border",children:(0,m.jsxs)("div",{className:"space-y-1 p-2",children:[j.map(e=>{let t=g===e.name;return(0,m.jsxs)("button",{onClick:()=>{r(e.name),d(""),u(!1)},"aria-current":t,className:(0,X.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",t?"bg-primary text-primary-foreground":"text-foreground hover:bg-muted"),children:[(0,m.jsx)("div",{className:"truncate font-mono",children:e.name}),(0,m.jsxs)("div",{className:(0,X.cn)("mt-0.5 flex justify-between",t?"text-primary-foreground/70":"text-muted-foreground"),children:[(0,m.jsx)("span",{children:(0,Z.formatBytes)(e.size)}),(0,m.jsx)("span",{children:(0,Z.timeAgo)(e.mtime)})]})]},e.name)}),0===j.length&&(0,m.jsxs)("p",{className:"px-3 py-6 text-center text-xs text-muted-foreground",children:["No files match “",a,"”"]})]})})]}),(0,m.jsx)("div",{className:"flex min-h-0 h-[60vh] flex-col overflow-hidden rounded-xl border border-border lg:h-auto",children:g?(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:g}),S>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)(et,{className:"size-3","aria-hidden":!0}),S," error",1===S?"":"s"]}),(0,m.jsxs)("div",{className:"ml-auto flex w-full items-center gap-1.5 sm:w-auto",children:[(0,m.jsx)(P.SearchInput,{value:i,onChange:d,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)(C.Toggle,{variant:"outline",size:"sm",pressed:c,onPressedChange:u,className:"bg-background text-muted-foreground aria-pressed:border-destructive/40 aria-pressed:bg-destructive/10 aria-pressed:text-destructive",children:[(0,m.jsx)(et,{"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)(C.Toggle,{variant:"outline",size:"sm",pressed:p,onPressedChange:f,"aria-label":"Wrap long lines",className:"bg-background text-muted-foreground aria-pressed:text-foreground",children:(0,m.jsx)(es,{"aria-hidden":!0})})}),(0,m.jsx)(D.TooltipContent,{children:"Wrap long lines"})]}),(0,m.jsx)(er.CopyButton,{value:y,label:"Copy log",size:"sm"})]})]}),(i||c)&&(0,m.jsxs)("div",{className:"border-b border-border bg-background px-3 py-1 text-[11px] text-muted-foreground",children:[k.length.toLocaleString()," of ",w.length.toLocaleString()," lines"]}),(0,m.jsx)(en.ScrollArea,{className:"min-h-0 flex-1",children:v?(0,m.jsxs)("div",{className:"flex items-center gap-2 p-4 text-sm text-muted-foreground",children:[(0,m.jsx)(ea.Loader2,{className:"size-4 animate-spin","aria-hidden":!0}),"Loading…"]}):0===k.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:k.map(e=>(0,m.jsxs)("div",{className:(0,X.cn)("flex gap-3 rounded-sm px-1 leading-5 hover:bg-muted/60",eo[e.level]),children:[(0,m.jsx)("span",{className:"w-10 shrink-0 select-none text-right text-muted-foreground/40 tabular-nums",children:e.n}),(0,m.jsx)("span",{className:(0,X.cn)("min-w-0 flex-1",p?"whitespace-pre-wrap [overflow-wrap:anywhere]":"whitespace-pre"),children:e.text||" "})]},e.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 ed=e.i(84774);let ec=[{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)"}],eu=["Project","Sessions","Cost","Input","Output","Tool calls","Last active"],em=e=>(0,Z.formatTokens)(e)??"0";function eh({projects:e,loading:t,selected:a,onSelect:s}){let[n,r]=(0,h.useState)(""),[o,l]=(0,h.useState)("recent"),i=(0,h.useMemo)(()=>{let t=n.trim().toLowerCase(),a=t?e.filter(e=>e.name.toLowerCase().includes(t)||e.path?.toLowerCase().includes(t)):e;if("recent"===o)return a;let s=[...a];switch(o){case"sessions":return s.sort((e,t)=>t.sessions-e.sessions);case"cost":return s.sort((e,t)=>t.costUSD-e.costUSD);case"tokens":return s.sort((e,t)=>t.inputTokens+t.outputTokens-(e.inputTokens+e.outputTokens));case"name":return s.sort((e,t)=>e.name.localeCompare(t.name))}},[e,n,o]);return t?(0,m.jsx)("div",{className:"space-y-2",children:Array.from({length:6},(e,t)=>(0,m.jsx)($.Skeleton,{className:"h-12 rounded-xl"},t))}):0===e.length?(0,m.jsx)(O.EmptyState,{icon:y.FolderGit2,title:"No projects yet",description:`Projects appear once a supported agent writes a transcript on this machine: ${K.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)(P.SearchInput,{value:n,onChange:r,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)(L,{value:o,onChange:l,options:ec,"aria-label":"Sort projects"})]}),(0,m.jsxs)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground",children:[i.length," of ",e.length]})]}),0===i.length?(0,m.jsx)(O.EmptyState,{icon:y.FolderGit2,title:"No matching projects",description:`Nothing matches “${n}”. Try a folder name or part of its path.`,action:(0,m.jsx)(M.Button,{variant:"outline",size:"sm",onClick:()=>r(""),children:"Clear search"})}):(0,m.jsx)("div",{className:"rounded-xl border border-border bg-card",children:(0,m.jsxs)(ed.Table,{className:"min-w-[720px]",children:[(0,m.jsx)(ed.TableHeader,{children:(0,m.jsx)(ed.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:eu.map((e,t)=>(0,m.jsx)(ed.TableHead,{className:(0,X.cn)("text-muted-foreground",t>0&&"text-right"),children:e},e))})}),(0,m.jsx)(ed.TableBody,{className:"tabular-nums",children:i.map(e=>(0,m.jsxs)(ed.TableRow,{"data-state":e.name===a?"selected":void 0,children:[(0,m.jsxs)(ed.TableCell,{className:"w-full max-w-0",children:[(0,m.jsx)("button",{type:"button",onClick:()=>s(e.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:e.name}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[e.providers.map(e=>(0,m.jsx)("span",{className:(0,X.cn)("size-1.5 shrink-0 rounded-full",(0,K.providerStyle)(e).dotCls),title:(0,K.providerStyle)(e).shortLabel},e)),(0,m.jsx)("span",{className:"truncate font-mono",title:e.path,children:e.path??"location not recorded"})]})]}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:e.sessions.toLocaleString()}),(0,m.jsxs)(ed.TableCell,{className:"text-right font-medium",children:[(0,Z.formatCost)(e.costUSD),e.unpriced&&"+"]}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:em(e.inputTokens)}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:em(e.outputTokens)}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:e.toolCalls.toLocaleString()}),(0,m.jsx)(ed.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,Z.timeAgo)(e.lastActive)||"—"})}),(0,m.jsx)(D.TooltipContent,{children:(0,Z.formatDateTime)(e.lastActive)})]})})]},e.name))})]})})]})}let ep=(0,x.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 ef=e.i(93472);function eg(e,t){let a=URL.createObjectURL(new Blob([t],{type:"text/csv"})),s=document.createElement("a");s.href=a,s.download=e,s.click(),URL.revokeObjectURL(a)}var ex=e.i(36558);let ev=["input","cacheWrite","cacheWrite1h","cacheRead","output"],eb="~/.agent-session-inspector/pricing.json";function ey({sessions:e,keep:t,scope:a,open:s,onOpenChange:n}){let r=s?function(e,t){let a=new Map,s=new Map,n={input:0,output:0,cacheRead:0,cacheWrite:0},r={},o=new Set;for(let l of e)for(let e of l.usage){if(!t(l,e))continue;let{model:i}=e,d=l.priceKeys?.[i];d&&(r[i]??=d),l.customPriced?.includes(i)&&o.add(i);let c=a.get(i);for(let t of(c||(c={model:i,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,costUSD:null===e.costUSD?null:0},a.set(i,c)),c.inputTokens+=e.inputTokens,c.outputTokens+=e.outputTokens,c.cacheReadTokens+=e.cacheReadTokens,c.cacheWriteTokens+=e.cacheWriteTokens,null!==e.costUSD&&null!==c.costUSD&&(c.costUSD+=e.costUSD),e.lines??[])){let e=null===t.rate?null:t.tokens*t.rate/1e6,a=`${i}|${t.kind}|${t.rate}`,r=s.get(a);r?(r.tokens+=t.tokens,null!==r.usd&&null!==e&&(r.usd+=e)):s.set(a,{model:i,...t,usd:e}),null!==e&&(n["cacheWrite1h"===t.kind?"cacheWrite":t.kind]+=e)}}let l=[...a.values()].filter(e=>e.inputTokens+e.outputTokens+e.cacheReadTokens+e.cacheWriteTokens>0).sort((e,t)=>(t.costUSD??-1)-(e.costUSD??-1));return{totalUSD:l.reduce((e,t)=>e+(t.costUSD??0),0),breakdown:n,byModel:l,lines:l.flatMap(e=>[...s.values()].filter(t=>t.model===e.model).sort((e,t)=>ev.indexOf(e.kind)-ev.indexOf(t.kind)||(e.rate??0)-(t.rate??0))),prices:{},priceKeys:r,customPriced:l.filter(e=>o.has(e.model)).map(e=>e.model),overridePath:eb,unpricedModels:l.filter(e=>null===e.costUSD).map(e=>e.model)}}(e,t):null,o=r?r.byModel.filter(e=>"unknown"!==e.model).map(e=>`model=${encodeURIComponent(e.model)}`).join("&"):"",[l,i]=(0,h.useState)(null);if((0,h.useEffect)(()=>{if(!o)return;let e=!1;return fetch(`/api/pricing?${o}`).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&i({query:o,info:t})}).catch(()=>{}),()=>{e=!0}},[o]),!r)return null;let d=l?.query===o?l.info:null;return(0,m.jsx)(ex.CostDialog,{cost:d?{...r,prices:d.prices,overridePath:d.overridePath}:r,open:!0,onOpenChange:n,scope:a})}function ej({title:e,note:t,action:a,className:s,children:n}){return(0,m.jsxs)("section",{className:(0,X.cn)("min-w-0 rounded-xl border border-border bg-card p-4",s),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:[e,t&&(0,m.jsx)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:t})]}),a]}),n]})}var ew=e.i(48154),ek=e.i(52558),eS=e.i(50395),eN=e.i(76639),eM=e.i(71932);let eC="unknown",eT={target:"_blank",rel:"noreferrer"};function eD({children:e}){return(0,m.jsx)("code",{className:"font-mono text-foreground",children:e})}function eO({models:e}){let[t,a]=(0,h.useState)(!1),[s,n]=(0,h.useState)(null),r=(0,h.useRef)("");if(0===e.length)return null;let o=e.length>1,l=e.filter(e=>e!==eC),i=l.length>1,d=s?.overridePath??eb,c=[...new Set(l.map(e=>s?.keys[e]??e.toLowerCase()))],u=JSON.stringify(Object.fromEntries(c.map(e=>[e,{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)(p.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:e.join(", ")}),", so cost figures leave ",o?"them":"it"," out. Token counts still include ",o?"them":"it","."]}),l.length>0&&(0,m.jsxs)(M.Button,{variant:"outline",size:"xs",onClick:function(){a(!0);let e=l.map(e=>`model=${encodeURIComponent(e)}`).join("&");r.current!==e&&(r.current=e,fetch(`/api/pricing?${e}`).then(e=>e.ok?e.json():null).then(n).catch(()=>n(null)))},"aria-haspopup":"dialog",className:"-my-1 shrink-0",children:[(0,m.jsx)(eS.Info,{"aria-hidden":!0}),"Add ",i?"prices":"a price"]})]}),(0,m.jsx)(eN.Dialog,{open:t,onOpenChange:a,children:(0,m.jsxs)(eN.DialogContent,{className:"gap-0 overflow-hidden p-0 sm:max-w-xl",children:[(0,m.jsxs)("div",{className:"space-y-1.5 border-b border-border px-5 pt-5 pb-3",children:[(0,m.jsxs)(eN.DialogTitle,{children:["Add ",i?"the missing prices":"the missing price"]}),(0,m.jsx)(eN.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)("div",{className:"flex min-h-0 shrink! flex-col gap-4 overflow-y-auto px-5 pt-4 pb-5 *:shrink-0",children:[(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:c.map(e=>{let t=(0,eM.sourceOf)(e);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:e}),(0,m.jsxs)("a",{href:t.url,...eT,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:[t.label," pricing",(0,m.jsx)(ek.ExternalLink,{className:"size-3","aria-hidden":!0})]})]},e)})}),(0,m.jsxs)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:["All price lists:"," ",[...eM.PRICE_SOURCES,eM.CATALOG].map((e,t)=>(0,m.jsxs)("span",{children:[t>0&&" · ",(0,m.jsx)("a",{href:e.url,...eT,className:"text-foreground underline underline-offset-2 hover:text-brand",children:e.label})]},e.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)(eD,{children:d})," if it does not exist, or add"," ",i?"these entries":"this entry"," to the one you have, and replace the zeros."]}),(0,m.jsx)(er.CopyButton,{value:d,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:u}),(0,m.jsx)(er.CopyButton,{value:u,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)(eD,{children:"input"})," and ",(0,m.jsx)(eD,{children:"output"})," are required. ",(0,m.jsx)(eD,{children:"cacheRead"}),","," ",(0,m.jsx)(eD,{children:"cacheWrite"})," and ",(0,m.jsx)(eD,{children:"cacheWrite1h"})," are optional: the first two fall back to the input price, and ",(0,m.jsx)(eD,{children:"cacheWrite1h"})," to"," ",(0,m.jsx)(eD,{children:"cacheWrite"}),"."]}),(0,m.jsxs)("li",{children:["A model you run yourself costs nothing per token: leave ",(0,m.jsx)(eD,{children:"input"})," and"," ",(0,m.jsx)(eD,{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)(eD,{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.",l.length<e.length&&(0,m.jsxs)(m.Fragment,{children:[" ","Usage listed as ",(0,m.jsx)(eD,{children:eC})," was recorded without a model name, so it cannot be given a price."]})]})]})]})})]})}var eE=e.i(75858);let eL=["messages","sessions","outputTokens","costUSD"],eW={messages:"Messages",sessions:"Sessions",outputTokens:"Output tokens",costUSD:"Cost"},eP=[{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}],e$=()=>({sessions:0,messages:0,toolCalls:0,outputTokens:0,activeMs:0,costUSD:0});function eR(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function eA(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+t)}function eF(e){let t=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return`${e.getFullYear()}-${t}-${a}`}function eU(e,t){return 0===e.length?0:e[Math.min(e.length-1,Math.floor(t*e.length))]}function e_(){return Array.from({length:7},()=>Array(24).fill(0))}function eI(e){return[...new Set(e.map(e=>e.model).filter(e=>!!e))].sort()}function eY(e){let[t,a]=(0,h.useState)(null),[s,n]=(0,h.useState)(!1);return(0,h.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/analytics");if(!t.ok)throw Error("Request failed");let s=await t.json();if(e)return;a(s),n(!1)}catch{e||n(!0)}})(),()=>{e=!0}},[e]),{sessions:t,error:s}}let ez=new Set;function eB(e){return ez.add(e),window.addEventListener("storage",e),()=>{ez.delete(e),window.removeEventListener("storage",e)}}let eH=e=>"local"===e?localStorage:sessionStorage;function eG(e,t,a,s="local"){let n=`asv-${e}`,r=(0,h.useSyncExternalStore)(eB,()=>(function(e,t){try{return eH(e).getItem(t)}catch{return null}})(s,n),()=>null),o=(0,h.useCallback)(e=>(function(e,t,a){try{null===a?eH(e).removeItem(t):eH(e).setItem(t,a)}catch{}for(let e of ez)e()})(s,n,e===t?null:e),[s,n,t]);return[null!==r&&a(r)?r:t,o]}let eq=e=>t=>e.includes(t),eZ=()=>!0,eV=["bg-muted","bg-brand/25","bg-brand/50","bg-brand/75","bg-brand"],eK=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function eQ(e,t){return e<=0||t<=0?0:Math.max(1,Math.ceil(4*Math.sqrt(e/t)))}function eX(e,t){if("costUSD"===e)return(0,Z.formatCost)(t);let a="outputTokens"===e?(0,Z.formatTokens)(t)??"0":t.toLocaleString(),s=eW[e].toLowerCase();return`${a} ${1===t?s.replace(/s$/,""):s}`}function eJ({readout:e,hint:t}){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,X.cn)("truncate",e&&"text-foreground"),"aria-live":"polite",children:e??t}),(0,m.jsxs)("span",{className:"flex shrink-0 items-center gap-1","aria-hidden":!0,children:["Less",eV.map(e=>(0,m.jsx)("span",{className:(0,X.cn)("size-3 rounded-[3px]",e)},e)),"More"]})]})}let e0=e=>e.toLocaleDateString([],{weekday:"short",month:"short",day:"numeric",year:"numeric"});function e1({days:e,metric:t}){let[a,s]=(0,h.useState)(null),n=Math.max(0,...e.map(e=>e[t])),r=[...Array(e[0]?.date.getDay()??0).fill(null),...e],o=[];for(let e=0;e<r.length;e+=7)o.push(r.slice(e,e+7));let l=o.length<=14?20:o.length<=27?16:13,i=-1,d=o.map(e=>{let t=e.find(e=>null!==e);return t&&t.date.getMonth()!==i?(i=t.date.getMonth(),t.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":`${eW[t]} per day over ${e.length} days`,className:"inline-flex gap-[3px]",style:{"--cell":`${l}px`},onMouseLeave:()=>s(null),children:[(0,m.jsx)("div",{className:"mr-1 flex flex-col gap-[3px] pt-[19px] text-[10px] leading-(--cell) text-muted-foreground",children:eK.map((e,t)=>(0,m.jsx)("span",{className:"h-(--cell)",children:t%2==1?e:""},e))}),o.map((e,a)=>(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:d[a]}),e.map((e,a)=>e?(0,m.jsx)("span",{title:`${e0(e.date)}: ${eX(t,e[t])}`,onMouseEnter:()=>s(`${e0(e.date)} \xb7 ${eX(t,e[t])}`),className:(0,X.cn)("size-(--cell) rounded-[3px] hover:ring-1 hover:ring-foreground/50",eV[eQ(e[t],n)])},e.day):(0,m.jsx)("span",{className:"size-(--cell)"},a))]},a))]})}),(0,m.jsx)(eJ,{readout:a,hint:"Hover a day for its count"})]})}let e2=Array.from({length:24},(e,t)=>t),e5=e=>String(e%24).padStart(2,"0");function e3({grid:e,metric:t}){let[a,s]=(0,h.useState)(null),n=Math.max(0,...e.flat());return(0,m.jsxs)("div",{children:[(0,m.jsxs)("div",{role:"img","aria-label":`${eW[t]} by weekday and hour of day`,className:"grid grid-cols-[auto_repeat(24,minmax(0,1fr))] gap-[3px]",onMouseLeave:()=>s(null),children:[(0,m.jsx)("span",{}),e2.map(e=>(0,m.jsx)("span",{className:"text-center text-[10px] text-muted-foreground",children:e%3==0?e:""},e)),e.map((e,a)=>(0,m.jsxs)("div",{className:"contents",children:[(0,m.jsx)("span",{className:"pr-1.5 text-[10px] leading-5 text-muted-foreground",children:eK[a]}),e.map((e,r)=>{let o=`${eK[a]} ${e5(r)}:00–${e5(r+1)}:00 \xb7 ${eX(t,e)}`;return(0,m.jsx)("span",{title:o,onMouseEnter:()=>s(o),className:(0,X.cn)("h-5 rounded-[3px] hover:ring-1 hover:ring-foreground/50",eV[eQ(e,n)])},r)})]},a))]}),(0,m.jsx)(eJ,{readout:a,hint:`Times in ${Intl.DateTimeFormat().resolvedOptions().timeZone}`})]})}let e4=e=>e.toLocaleDateString([],{month:"short",day:"numeric"});function e7({weeks:e}){let[t,a]=(0,h.useState)(null),s=Math.max(1,...e.map(e=>e.toolCalls));return(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{role:"img","aria-label":`Tool calls per week over ${e.length} weeks`,className:"flex h-24 items-end gap-[2px] border-b border-border",onMouseLeave:()=>a(null),children:e.map(e=>{let t=`Week of ${e4(e.start)} \xb7 ${e.toolCalls.toLocaleString()} tool calls`;return(0,m.jsx)("div",{title:t,onMouseEnter:()=>a(t),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:e.toolCalls>0?`max(2px, ${e.toolCalls/s*100}%)`:0}})},e.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:e.length>0&&e4(e[0].start)}),(0,m.jsx)("span",{className:(0,X.cn)("truncate text-xs",t&&"text-foreground"),"aria-live":"polite",children:t??`peak ${s.toLocaleString()} calls in a week`}),(0,m.jsx)("span",{className:"shrink-0",children:e.length>1&&e4(e[e.length-1].start)})]})]})}let e6=eL.map(e=>({value:e,label:eW[e]})),e8=[{value:"messages",label:"Messages"},{value:"activeMs",label:"Active time"},{value:"outputTokens",label:"Output tokens"},{value:"costUSD",label:"Cost"}],e9=[{value:"servers",label:"Servers"},{value:"tools",label:"Tools"}],te=[{value:"messages",label:"Messages"},{value:"costUSD",label:"Cost"}],tt=["Agent","Sessions","Cost","Messages","Tool calls","Output","Active","Msgs/min","Tools/min","Top tools"];function ta({reloadToken:e,project:t,onProjectChange:a,projectOptions:s}){let{sessions:n,error:r}=eY(e),[o,l]=(0,h.useState)(!1),[i,d]=eG("analytics-range","90",eq(eP.map(e=>e.value))),[c,u]=eG("analytics-provider","all",eZ),[g,x]=eG("analytics-model","all",eZ),v=!n||n.some(e=>e.provider===c)?c:"all",b=!n||eI(n).includes(g)?g:"all",[y,j]=eG("analytics-calendar-metric","messages",eq(eL)),[w,k]=eG("analytics-hour-metric","messages",eq(eL)),[S,N]=eG("analytics-top","messages",eq(e8.map(e=>e.value))),[C,T]=eG("analytics-projects","messages",eq(te.map(e=>e.value))),[D,E]=eG("analytics-mcp","servers",eq(e9.map(e=>e.value))),W=(0,h.useMemo)(()=>({days:eP.find(e=>e.value===i)?.days??null,project:t,provider:v,model:b}),[i,t,v,b]),P=null===W.days?null:eA(eR(new Date),1-W.days).getTime(),R=(0,h.useMemo)(()=>n?function(e,t,a=new Date){let s=eR(a),n=null===t.days?null:eA(s,1-t.days).getTime(),r=new Map,o={messages:e_(),sessions:e_(),outputTokens:e_(),costUSD:e_()},l=new Set,i=[],d=new Map,c=new Map,u=new Map,m=new Map,h=new Map,p=s.getTime();for(let a of e){if("all"!==t.provider&&a.provider!==t.provider||"all"!==t.project&&a.project!==t.project||"all"!==t.model&&a.model!==t.model)continue;let e={provider:a.provider,id:a.id,label:a.label,project:a.project,messages:0,toolCalls:0,outputTokens:0,activeMs:0,costUSD:0},s=h.get(a.provider);s||(s={provider:a.provider,...e$(),topTools:[],tools:new Map},h.set(a.provider,s));let f=new Set,g=new Set,x=new Set,v=!1;for(let t of a.activity){if(null!==n&&t.t<n)continue;v=!0;let a=new Date(t.t),l=eF(a),i=r.get(l);i||(i={day:l,date:eR(a),...e$()},r.set(l,i),p=Math.min(p,i.date.getTime()));let d=a.getDay(),h=a.getHours();for(let a of[e,i,s])a.messages+=t.messages,a.toolCalls+=t.toolCalls,a.outputTokens+=t.outputTokens,a.activeMs+=t.activeMs,a.costUSD+=t.costUSD??0;o.messages[d][h]+=t.messages,o.outputTokens[d][h]+=t.outputTokens,o.costUSD[d][h]+=t.costUSD??0,!f.has(l)&&(f.add(l),i.sessions++);let b=24*d+h;for(let[e,a]of(!g.has(b)&&(g.add(b),o.sessions[d][h]++),Object.entries(t.tools??{})))c.set(e,(c.get(e)??0)+a),s.tools.set(e,(s.tools.get(e)??0)+a);for(let[e,a]of Object.entries(t.skills??{})){let t=u.get(e);t||u.set(e,t={name:e,value:0,sessions:0}),t.value+=a,!x.has(e)&&(x.add(e),t.sessions++)}for(let[e,a]of Object.entries(t.mcp??{})){let t=e.indexOf("__"),s=e.slice(0,t),n=e.slice(t+2),r=m.get(s);r||m.set(s,r=new Map),r.set(n,(r.get(n)??0)+a)}}if(!v)continue;for(let t of(i.push(e),s.sessions++,a.unpricedModels??[]))l.add(t);let b=d.get(e.project)??{name:e.project,sessions:0,messages:0,costUSD:0};b.sessions++,b.messages+=e.messages,b.costUSD+=e.costUSD,d.set(e.project,b)}let f=new Date(null===n?p:n),g=[];for(let e=f;e.getTime()<=s.getTime();e=eA(e,1)){let t=eF(e);g.push(r.get(t)??{day:t,date:e,...e$()})}let x=[];for(let e of g){let t=eA(e.date,-e.date.getDay()),a=x[x.length-1];a&&a.start.getTime()===t.getTime()||(a={start:t,...e$()},x.push(a)),a.sessions+=e.sessions,a.messages+=e.messages,a.toolCalls+=e.toolCalls,a.outputTokens+=e.outputTokens,a.activeMs+=e.activeMs,a.costUSD+=e.costUSD}let v={...e$(),sessions:i.length,projects:d.size,activeDays:r.size};for(let e of i)v.messages+=e.messages,v.toolCalls+=e.toolCalls,v.outputTokens+=e.outputTokens,v.activeMs+=e.activeMs,v.costUSD+=e.costUSD;let b=i.map(e=>e.messages).sort((e,t)=>e-t),y=(e,t)=>t[1]-e[1];return{totals:v,messagesPerSession:{mean:i.length?v.messages/i.length:0,median:eU(b,.5),p90:eU(b,.9)},days:g,weeks:x,hourly:o,sessions:i,projects:[...d.values()].sort((e,t)=>t.messages-e.messages),tools:[...c.entries()].sort(y).map(([e,t])=>({name:e,value:t})),skills:[...u.values()].sort((e,t)=>t.value-e.value),mcpServers:[...m.entries()].map(([e,t])=>{let a=[...t.entries()].sort(y);return{name:e,value:a.reduce((e,[,t])=>e+t,0),tools:a.map(([e,t])=>({name:e,value:t}))}}).sort((e,t)=>t.value-e.value),agents:[...h.values()].filter(e=>e.sessions>0).sort((e,t)=>t.messages-e.messages).map(({tools:e,...t})=>({...t,topTools:[...e.entries()].sort(y).slice(0,3).map(([e])=>e)})),unpricedModels:[...l].sort()}}(n,W):null,[n,W]),A=(0,h.useMemo)(()=>K.PROVIDER_ORDER.filter(e=>n?.some(t=>t.provider===e)),[n]),F=(0,h.useMemo)(()=>eI(n??[]),[n]),_=(0,h.useMemo)(()=>[{value:"all",label:"All agents"},...A.map(e=>({value:e,label:(0,K.providerStyle)(e).shortLabel}))],[A]),I=(0,h.useMemo)(()=>[{value:"all",label:"All models"},...F.map(e=>({value:e,label:e}))],[F]),Y=(0,h.useMemo)(()=>R?[...R.sessions].sort((e,t)=>t[S]-e[S]).filter(e=>e[S]>0).slice(0,10):[],[R,S]);if(r&&!n)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)(p.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(!n||!R)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},(e,t)=>(0,m.jsx)($.Skeleton,{className:"h-[86px] rounded-xl"},t))}),(0,m.jsx)($.Skeleton,{className:"h-48 rounded-xl"})]});if(0===n.length)return(0,m.jsx)(O.EmptyState,{icon:f.BarChart3,title:"Nothing to chart yet",description:`Analytics appear once a supported agent writes a transcript on this machine: ${K.SUPPORTED_AGENTS}.`});let{totals:z,messagesPerSession:B}=R,H=R.projects[0],G=R.skills.reduce((e,t)=>e+t.value,0),q=R.mcpServers.reduce((e,t)=>e+t.value,0),V="servers"===D?R.mcpServers:R.mcpServers.flatMap(e=>e.tools.map(t=>({name:`${e.name} › ${t.name}`,value:t.value}))),Q=(e,t)=>t>0?(e/(t/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)(L,{value:i,onChange:d,options:eP,"aria-label":"Date range"}),s.length>2&&(0,m.jsx)(L,{value:t,onChange:a,options:s,"aria-label":"Project",className:"max-w-56"}),A.length>1&&(0,m.jsx)(L,{value:v,onChange:u,options:_,"aria-label":"Agent"}),F.length>1&&(0,m.jsx)(L,{value:b,onChange:x,options:I,"aria-label":"Model",className:"max-w-56"}),(0,m.jsxs)(M.Button,{variant:"outline",onClick:()=>eg(`agent-activity-${i}.csv`,["date,sessions,messages,tool_calls,output_tokens,active_minutes,estimated_cost_usd",...R.days.map(e=>[e.day,e.sessions,e.messages,e.toolCalls,e.outputTokens,Math.round(e.activeMs/6e4),e.costUSD.toFixed(2)].join(","))].join("\n")+"\n"),className:"ml-auto",children:[(0,m.jsx)(ep,{"aria-hidden":!0}),"Export CSV"]})]}),0===z.sessions?(0,m.jsx)(O.EmptyState,{icon:f.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)(eE.StatCardGrid,{children:[(0,m.jsx)(eE.StatCard,{label:"Est. cost",value:(0,Z.formatCost)(z.costUSD),sub:R.unpricedModels.length>0?`${R.unpricedModels.length} model${R.unpricedModels.length>1?"s":""} unpriced`:"at API list prices",accent:!0,onClick:()=>l(!0)}),(0,m.jsx)(eE.StatCard,{label:"Sessions",value:z.sessions.toLocaleString()}),(0,m.jsx)(eE.StatCard,{label:"Messages",value:(0,Z.formatCount)(z.messages)}),(0,m.jsx)(eE.StatCard,{label:"Msgs / session",value:B.mean.toFixed(1),sub:`median ${B.median} \xb7 p90 ${B.p90}`}),(0,m.jsx)(eE.StatCard,{label:"Tool calls",value:(0,Z.formatCount)(z.toolCalls)}),(0,m.jsx)(eE.StatCard,{label:"Output tokens",value:(0,Z.formatTokens)(z.outputTokens)??"0"}),(0,m.jsx)(eE.StatCard,{label:"Active time",value:(0,Z.formatDuration)(z.activeMs),sub:"excl. pauses > 5 min"}),(0,m.jsx)(eE.StatCard,{label:"Active days",value:z.activeDays.toLocaleString(),sub:`of ${R.days.length}`}),(0,m.jsx)(eE.StatCard,{label:"Projects",value:z.projects.toLocaleString(),sub:H&&z.messages>0?`${Math.round(H.messages/z.messages*100)}% in ${H.name}`:void 0})]}),(0,m.jsx)(ey,{sessions:n,keep:(e,a)=>("all"===v||e.provider===v)&&("all"===t||e.project===t)&&("all"===b||e.model===b)&&(null===P||a.t>=P),scope:{sessions:z.sessions,period:eP.find(e=>e.value===i)?.label.toLowerCase()??"all time"},open:o,onOpenChange:l}),(0,m.jsx)(eO,{models:R.unpricedModels}),(0,m.jsx)(ej,{title:"Activity",action:(0,m.jsx)(ew.Segmented,{label:"Activity metric",value:y,onChange:j,options:e6}),children:(0,m.jsx)(e1,{days:R.days,metric:y})}),(0,m.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,m.jsx)(ej,{title:"By weekday and hour",action:(0,m.jsx)(ew.Segmented,{label:"Weekday and hour metric",value:w,onChange:k,options:e6}),children:(0,m.jsx)(e3,{grid:R.hourly[w],metric:w})}),(0,m.jsx)(ej,{title:"Top sessions",action:(0,m.jsx)(ew.Segmented,{label:"Rank sessions by",value:S,onChange:N,options:e8}),children:(0,m.jsx)("ol",{className:"-mx-2",children:Y.map((e,t)=>(0,m.jsx)("li",{children:(0,m.jsxs)(U.default,{href:`/sessions/${e.provider}/${e.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:t+1}),(0,m.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,m.jsx)("span",{className:"block truncate text-sm",children:e.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,X.cn)("size-1.5 rounded-full",(0,K.providerStyle)(e.provider).dotCls),"aria-hidden":!0}),(0,K.providerStyle)(e.provider).shortLabel," · ",e.project]})]}),(0,m.jsx)("span",{className:"shrink-0 text-sm font-medium tabular-nums",children:"costUSD"===S?(0,Z.formatCost)(e.costUSD):"activeMs"===S?(0,Z.formatDuration)(e.activeMs):"outputTokens"===S?(0,Z.formatTokens)(e.outputTokens)??"0":e.messages.toLocaleString()})]})},`${e.provider}:${e.id}`))})}),(0,m.jsx)(ej,{title:"Projects",note:`${z.projects} total`,action:(0,m.jsx)(ew.Segmented,{label:"Rank projects by",value:C,onChange:T,options:te}),children:(0,m.jsx)(ef.BarList,{items:R.projects.map(e=>({name:e.name,value:e[C]})),limit:10,format:"costUSD"===C?Z.formatCost:void 0})}),(0,m.jsxs)(ej,{title:"Tool usage",note:`${z.toolCalls.toLocaleString()} calls`,children:[(0,m.jsx)(ef.BarList,{items:R.tools,limit:8,emptyLabel:"No tool calls"}),R.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)(e7,{weeks:R.weeks})]})]}),(0,m.jsxs)(ej,{title:"Skills",note:`${G.toLocaleString()} call${1===G?"":"s"} \xb7 ${R.skills.length} skill${1===R.skills.length?"":"s"}`,children:[(0,m.jsx)(ef.BarList,{items:R.skills,limit:8,emptyLabel:"No skill was loaded in this range"}),R.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:R.skills[0].name}),", in"," ",R.skills[0].sessions," session",1===R.skills[0].sessions?"":"s","."]})]}),(0,m.jsx)(ej,{title:"MCP tools",note:`${q.toLocaleString()} call${1===q?"":"s"} \xb7 ${R.mcpServers.length} server${1===R.mcpServers.length?"":"s"}`,action:R.mcpServers.length>0?(0,m.jsx)(ew.Segmented,{label:"Group MCP calls by",value:D,onChange:E,options:e9}):void 0,children:(0,m.jsx)(ef.BarList,{items:V,limit:8,emptyLabel:"No MCP tool was called in this range"})})]}),(0,m.jsx)(ej,{title:"Agent comparison",children:(0,m.jsxs)(ed.Table,{className:"min-w-[720px]",children:[(0,m.jsx)(ed.TableHeader,{children:(0,m.jsx)(ed.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:tt.map((e,t)=>(0,m.jsx)(ed.TableHead,{className:(0,X.cn)("text-muted-foreground",t>0&&t<tt.length-1&&"text-right"),children:e},e))})}),(0,m.jsx)(ed.TableBody,{className:"tabular-nums",children:R.agents.map(e=>(0,m.jsxs)(ed.TableRow,{children:[(0,m.jsx)(ed.TableCell,{children:(0,m.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:[(0,m.jsx)("span",{className:(0,X.cn)("size-2 rounded-full",(0,K.providerStyle)(e.provider).dotCls),"aria-hidden":!0}),(0,K.providerStyle)(e.provider).shortLabel]})}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:e.sessions.toLocaleString()}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:(0,Z.formatCost)(e.costUSD)}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:e.messages.toLocaleString()}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:e.toolCalls.toLocaleString()}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:(0,Z.formatTokens)(e.outputTokens)??"0"}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:(0,Z.formatDuration)(e.activeMs)}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:Q(e.messages,e.activeMs)}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:Q(e.toolCalls,e.activeMs)}),(0,m.jsx)(ed.TableCell,{className:"max-w-56 truncate font-mono text-xs text-muted-foreground",children:e.topTools.join(", ")||"—"})]},e.provider))})]})})]})]})}let ts=["project","model","agent"],tn={project:"Project",model:"Model",agent:"Agent"},tr=()=>({project:{},model:{},agent:{}});function to(e,t,a,s){let n=e[t]??={costUSD:0,tokens:0};n.costUSD+=a,n.tokens+=s}function tl(e){return[...new Set(e.flatMap(e=>e.usage.map(e=>e.model)))].sort()}var ti=e.i(19390);let td=[{value:"costUSD",label:"Cost"},{value:"tokens",label:"Tokens"}],tc=ts.map(e=>({value:e,label:tn[e]})),tu=["Session","Input","Cached","Output","Cost"],tm=e=>(0,Z.formatTokens)(e)??"0";function th({reloadToken:e,project:t,onProjectChange:a,projectOptions:s}){let{sessions:n,error:r}=eY(e),[o,l]=(0,h.useState)(!1),[i,d]=eG("usage-range","30",eq(eP.map(e=>e.value))),[c,u]=eG("usage-provider","all",eZ),[f,g]=eG("usage-model","all",eZ),x=!n||n.some(e=>e.provider===c)?c:"all",v=!n||tl(n).includes(f)?f:"all",[b,y]=eG("usage-unit","costUSD",eq(td.map(e=>e.value))),[j,w]=eG("usage-dimension","project",eq(ts)),k=(0,h.useMemo)(()=>({days:eP.find(e=>e.value===i)?.days??null,project:t,provider:x,model:v}),[i,t,x,v]),S=null===k.days?null:eA(eR(new Date),1-k.days).getTime(),C=(0,h.useMemo)(()=>n?function(e,t,a=new Date){let s=eR(a),n=null===t.days?null:eA(s,1-t.days).getTime(),r=new Map,o={project:new Map,model:new Map,agent:new Map},l=[],i=new Set,d=s.getTime();for(let a of e){if("all"!==t.provider&&a.provider!==t.provider||"all"!==t.project&&a.project!==t.project)continue;let e={provider:a.provider,id:a.id,label:a.label,project:a.project,costUSD:0,tokens:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0},s={project:a.project,model:"",agent:a.provider},c=new Set;for(let l of a.usage){if("all"!==t.model&&l.model!==t.model||null!==n&&l.t<n)continue;let a=l.inputTokens+l.outputTokens+l.cacheReadTokens+l.cacheWriteTokens;if(0===a)continue;let u=l.costUSD??0;null===l.costUSD&&i.add(l.model);let m=new Date(l.t),h=eF(m),p=r.get(h);for(let t of(p||(p={start:eR(m),days:1,costUSD:0,tokens:0,by:tr()},r.set(h,p),d=Math.min(d,p.start.getTime())),p.costUSD+=u,p.tokens+=a,e.costUSD+=u,e.tokens+=a,e.inputTokens+=l.inputTokens,e.outputTokens+=l.outputTokens,e.cacheReadTokens+=l.cacheReadTokens,e.cacheWriteTokens+=l.cacheWriteTokens,s.model=l.model,ts)){let e=s[t];to(p.by[t],e,u,a);let n=o[t].get(e);n||(n={name:e,sessions:0,costUSD:0,tokens:0},o[t].set(e,n)),n.costUSD+=u,n.tokens+=a;let r=`${t}|${e}`;!c.has(r)&&(c.add(r),n.sessions++)}}e.tokens>0&&l.push(e)}let c=new Date(null===n?d:n),u=[];for(let e=c;e.getTime()<=s.getTime();e=eA(e,1))u.push(r.get(eF(e))??{start:e,days:1,costUSD:0,tokens:0,by:tr()});let m={costUSD:0,tokens:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,sessions:l.length,activeDays:r.size};for(let e of l)m.costUSD+=e.costUSD,m.tokens+=e.tokens,m.inputTokens+=e.inputTokens,m.outputTokens+=e.outputTokens,m.cacheReadTokens+=e.cacheReadTokens,m.cacheWriteTokens+=e.cacheWriteTokens;let h=m.inputTokens+m.cacheReadTokens+m.cacheWriteTokens,p=null;for(let e of r.values())(!p||e.costUSD>p.costUSD)&&(p=e);let f=e=>[...o[e].values()];return{totals:m,cacheHitRate:h>0?m.cacheReadTokens/h:0,days:u,peakDay:p,attribution:{project:f("project"),model:f("model"),agent:f("agent")},sessions:l,unpricedModels:[...i].sort()}}(n,k):null,[n,k]),T=(0,h.useMemo)(()=>K.PROVIDER_ORDER.filter(e=>n?.some(t=>t.provider===e)),[n]),D=(0,h.useMemo)(()=>[{value:"all",label:"All agents"},...T.map(e=>({value:e,label:(0,K.providerStyle)(e).shortLabel}))],[T]),E=(0,h.useMemo)(()=>[{value:"all",label:"All models"},...tl(n??[]).map(e=>({value:e,label:e}))],[n]),W=e=>"agent"===j?(0,K.providerStyle)(e).shortLabel:e,P=(0,h.useMemo)(()=>C?[...C.attribution[j]].filter(e=>e[b]>0).sort((e,t)=>t[b]-e[b]):[],[C,j,b]),R=(0,h.useMemo)(()=>C?[...C.sessions].sort((e,t)=>t[b]-e[b]).filter(e=>e[b]>0).slice(0,10):[],[C,b]);if(r&&!n)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)(p.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(!n||!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},(e,t)=>(0,m.jsx)($.Skeleton,{className:"h-[86px] rounded-xl"},t))}),(0,m.jsx)($.Skeleton,{className:"h-64 rounded-xl"})]});if(0===n.length)return(0,m.jsx)(O.EmptyState,{icon:N.Wallet,title:"No usage yet",description:`Cost and token usage appear once a supported agent writes a transcript on this machine: ${K.SUPPORTED_AGENTS}.`});let{totals:A,peakDay:F}=C,_=C.unpricedModels,I=C.days.length>92?function(e){let t=[];for(let a of e){let e=eA(a.start,-a.start.getDay()),s=t[t.length-1];for(let n of(s&&eA(s.start,-s.start.getDay()).getTime()===e.getTime()||(s={start:a.start,days:0,costUSD:0,tokens:0,by:tr()},t.push(s)),s.days++,s.costUSD+=a.costUSD,s.tokens+=a.tokens,ts))for(let[e,t]of Object.entries(a.by[n]))to(s.by[n],e,t.costUSD,t.tokens)}return t}(C.days):C.days,Y=P.slice(0,ti.SERIES_COLORS.length).map((e,t)=>({name:e.name,label:W(e.name),color:ti.SERIES_COLORS[t]}));P.length>Y.length&&Y.push({name:ti.OTHER,label:`Other (${P.length-Y.length})`,color:ti.OTHER_COLOR});let z=e=>Y.find(t=>t.name===e)?.color??ti.OTHER_COLOR,B=P.reduce((e,t)=>e+t[b],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)(L,{value:i,onChange:d,options:eP,"aria-label":"Date range"}),s.length>2&&(0,m.jsx)(L,{value:t,onChange:a,options:s,"aria-label":"Project",className:"max-w-56"}),T.length>1&&(0,m.jsx)(L,{value:x,onChange:u,options:D,"aria-label":"Agent"}),E.length>2&&(0,m.jsx)(L,{value:v,onChange:g,options:E,"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)(ew.Segmented,{label:"Measure",value:b,onChange:y,options:td,size:"default"}),(0,m.jsxs)(M.Button,{variant:"outline",onClick:()=>eg(`agent-usage-${i}-by-${j}.csv`,function(e,t){let a=[`date,${t},tokens,estimated_cost_usd`];for(let s of e)for(let[e,n]of Object.entries(s.by[t])){let t=/[",\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e;a.push([eF(s.start),t,n.tokens,n.costUSD.toFixed(4)].join(","))}return a.join("\n")+"\n"}(C.days,j)),children:[(0,m.jsx)(ep,{"aria-hidden":!0}),"Export CSV"]})]})]}),0===A.tokens?(0,m.jsx)(O.EmptyState,{icon:N.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)(eE.StatCardGrid,{children:[(0,m.jsx)(eE.StatCard,{label:"Est. cost",value:(0,Z.formatCost)(A.costUSD),sub:_.length>0?`${_.length} model${_.length>1?"s":""} unpriced`:"at API list prices",accent:!0,onClick:()=>l(!0)}),(0,m.jsx)(eE.StatCard,{label:"Daily burn",value:(0,Z.formatCost)(A.activeDays?A.costUSD/A.activeDays:0),sub:`avg over ${A.activeDays} active day${1===A.activeDays?"":"s"}`}),(0,m.jsx)(eE.StatCard,{label:"Peak day",value:(0,Z.formatCost)(F?.costUSD??0),sub:F?.start.toLocaleDateString([],{weekday:"short",month:"short",day:"numeric"})}),(0,m.jsx)(eE.StatCard,{label:"Input tokens",value:tm(A.inputTokens),sub:`+${tm(A.cacheReadTokens)} cached`}),(0,m.jsx)(eE.StatCard,{label:"Output tokens",value:tm(A.outputTokens),sub:A.cacheWriteTokens>0?`${tm(A.cacheWriteTokens)} cache writes`:void 0}),(0,m.jsx)(eE.StatCard,{label:"Cache hit",value:`${(100*C.cacheHitRate).toFixed(1)}%`,sub:"of input read from cache"}),(0,m.jsx)(eE.StatCard,{label:"Sessions",value:A.sessions.toLocaleString(),sub:`${(0,Z.formatCost)(A.costUSD/A.sessions)} avg`})]}),(0,m.jsx)(ey,{sessions:n,keep:(e,a)=>("all"===x||e.provider===x)&&("all"===t||e.project===t)&&("all"===v||a.model===v)&&(null===S||a.t>=S),scope:{sessions:A.sessions,period:eP.find(e=>e.value===i)?.label.toLowerCase()??"all time"},open:o,onOpenChange:l}),(0,m.jsx)(eO,{models:_}),(0,m.jsx)(ej,{title:"costUSD"===b?"Cost over time":"Tokens over time",note:I===C.days?"per day":"per week",action:(0,m.jsx)(ew.Segmented,{label:"Break down by",value:j,onChange:w,options:tc}),children:(0,m.jsx)(ti.StackedBars,{periods:I,breakdownOf:e=>e.by[j],series:Y,unit:b})}),(0,m.jsx)(ej,{title:`${"costUSD"===b?"Cost":"Tokens"} by ${tn[j].toLowerCase()}`,note:`${P.length} total`,children:(0,m.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,m.jsx)(ti.Treemap,{unit:b,items:P.map(e=>({name:e.name,label:W(e.name),value:e[b],color:z(e.name)}))}),(0,m.jsx)("ol",{className:"max-h-72 space-y-1 overflow-y-auto pr-1 text-xs",children:P.map((e,t)=>(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:t+1}),(0,m.jsx)("span",{className:"size-2.5 shrink-0 rounded-[3px]",style:{background:z(e.name)},"aria-hidden":!0}),(0,m.jsx)("span",{className:"min-w-0 flex-1 truncate",title:W(e.name),children:W(e.name)}),(0,m.jsxs)("span",{className:"shrink-0 text-muted-foreground",children:[e.sessions," session",1===e.sessions?"":"s"]}),(0,m.jsx)("span",{className:"w-14 shrink-0 text-right font-medium tabular-nums",children:(0,ti.formatUnit)(b,e[b])}),(0,m.jsxs)("span",{className:"w-11 shrink-0 text-right tabular-nums text-muted-foreground",children:[(e[b]/B*100).toFixed(1),"%"]})]},e.name))})]})}),(0,m.jsx)(ej,{title:`Top sessions by ${"costUSD"===b?"cost":"tokens"}`,children:(0,m.jsxs)(ed.Table,{className:"min-w-[640px]",children:[(0,m.jsx)(ed.TableHeader,{children:(0,m.jsx)(ed.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:tu.map((e,t)=>(0,m.jsx)(ed.TableHead,{className:(0,X.cn)("text-muted-foreground",t>0&&"text-right"),children:e},e))})}),(0,m.jsx)(ed.TableBody,{className:"tabular-nums",children:R.map(e=>(0,m.jsxs)(ed.TableRow,{children:[(0,m.jsxs)(ed.TableCell,{className:"max-w-0 w-full",children:[(0,m.jsx)(U.default,{href:`/sessions/${e.provider}/${e.id}`,className:"block truncate font-medium hover:underline focus-visible:outline-2 focus-visible:outline-ring",children:e.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,X.cn)("size-1.5 rounded-full",(0,K.providerStyle)(e.provider).dotCls),"aria-hidden":!0}),(0,K.providerStyle)(e.provider).shortLabel," · ",e.project]})]}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:tm(e.inputTokens)}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:tm(e.cacheReadTokens)}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:tm(e.outputTokens)}),(0,m.jsx)(ed.TableCell,{className:"text-right font-medium",children:(0,Z.formatCost)(e.costUSD)})]},`${e.provider}:${e.id}`))})]})})]})]})}var tp=e.i(26162);function tf(e){return e>=90?"A":e>=80?"B":e>=70?"C":e>=60?"D":"F"}let tg=["outcome","tool_failures","retry_loops","api_errors","aborted_turns","compactions"];function tx(e,t,a){let s=e.get(t)??{sessions:0,score:0,completed:0,failures:0};s.sessions++,s.score+=a.score,"completed"===a.outcome&&s.completed++,s.failures+=a.toolFailures,e.set(t,s)}function tv(e){return[...e.entries()].map(([e,t])=>({name:e,sessions:t.sessions,avgScore:t.score/t.sessions,completed:t.completed/t.sessions,avgFailures:t.failures/t.sessions})).sort((e,t)=>t.sessions-e.sessions||e.name.localeCompare(t.name))}let tb=["Sessions","Avg score","Completed","Failures/session"],ty=[{value:"agent",label:"Agent"},{value:"project",label:"Project"}],tj=(e,t)=>t>0?`${Math.round(e/t*100)}%`:"—",tw=e=>e.toLocaleDateString([],{month:"short",day:"numeric"});function tk({session:e}){return(0,m.jsxs)(U.default,{href:`/sessions/${e.provider}/${e.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)(G.GradeBadge,{grade:e.health.grade,score:e.health.score}),(0,m.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,m.jsx)("span",{className:"block truncate text-sm",children:e.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,X.cn)("size-1.5 shrink-0 rounded-full",(0,K.providerStyle)(e.provider).dotCls),"aria-hidden":!0}),(0,m.jsxs)("span",{className:"truncate",children:[(0,K.providerStyle)(e.provider).shortLabel," · ",e.project," ·"," ",[V.OUTCOME_LABELS[e.health.outcome].toLowerCase(),...e.health.signals.filter(e=>"outcome"!==e.id).map(e=>V.SIGNAL_INFO[e.id].label.toLowerCase())].join(", ")]})]})]})]})}function tS({rows:e}){let t=e.reduce((e,t)=>e+t.value,0);return(0,m.jsx)("div",{className:"space-y-1.5",children:e.map(e=>(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:e.label}),(0,m.jsx)("div",{className:"h-4 flex-1 overflow-hidden rounded-sm bg-muted",children:e.value>0&&(0,m.jsx)("div",{className:(0,X.cn)("h-full rounded-sm",e.bar),style:{width:`${Math.max(e.value/t*100,2)}%`}})}),(0,m.jsx)("div",{className:"w-8 shrink-0 text-right font-medium tabular-nums",children:e.value}),(0,m.jsx)("div",{className:"w-9 shrink-0 text-right tabular-nums text-muted-foreground",children:tj(e.value,t)})]},e.key))})}function tN({periods:e,weekly:t}){let[a,s]=(0,h.useState)(null);return(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{role:"img","aria-label":`Average health score per ${t?"week":"day"} over ${e.length} ${t?"weeks":"days"}`,className:"flex h-24 items-end gap-[2px] border-b border-border",onMouseLeave:()=>s(null),children:e.map(e=>{let a=`${t?"Week of ":""}${tw(e.start)}`,n=null===e.avgScore?`${a} \xb7 no sessions`:`${a} \xb7 average ${Math.round(e.avgScore)} over ${e.sessions} session${1===e.sessions?"":"s"}`;return(0,m.jsx)("div",{title:n,onMouseEnter:()=>s(n),className:"group flex h-full min-w-0 max-w-10 flex-1 items-end",children:null!==e.avgScore&&(0,m.jsx)("div",{className:(0,X.cn)("w-full rounded-t group-hover:opacity-75",V.GRADE_STYLES[tf(Math.round(e.avgScore))].bar),style:{height:`max(2px, ${e.avgScore}%)`}})},e.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:e.length>0&&tw(e[0].start)}),(0,m.jsx)("span",{className:(0,X.cn)("truncate text-xs",a&&"text-foreground"),"aria-live":"polite",children:a??"bar height is the average score, colour its grade"}),(0,m.jsx)("span",{className:"shrink-0",children:e.length>1&&tw(e[e.length-1].start)})]})]})}function tM({rows:e,groupKey:t}){return(0,m.jsxs)(ed.Table,{className:"min-w-[520px]",children:[(0,m.jsx)(ed.TableHeader,{children:(0,m.jsxs)(ed.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:[(0,m.jsx)(ed.TableHead,{className:"text-muted-foreground",children:"agent"===t?"Agent":"Project"}),tb.map(e=>(0,m.jsx)(ed.TableHead,{className:"text-right text-muted-foreground",children:e},e))]})}),(0,m.jsx)(ed.TableBody,{className:"tabular-nums",children:e.map(e=>(0,m.jsxs)(ed.TableRow,{children:[(0,m.jsx)(ed.TableCell,{className:"max-w-0 w-full",children:(0,m.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:["agent"===t&&(0,m.jsx)("span",{className:(0,X.cn)("size-2 shrink-0 rounded-full",(0,K.providerStyle)(e.name).dotCls),"aria-hidden":!0}),(0,m.jsx)("span",{className:"truncate",children:"agent"===t?(0,K.providerStyle)(e.name).shortLabel:e.name})]})}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:e.sessions.toLocaleString()}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:(0,m.jsxs)("span",{className:"inline-flex items-center gap-2",children:[Math.round(e.avgScore),(0,m.jsx)(G.GradeBadge,{grade:tf(Math.round(e.avgScore))})]})}),(0,m.jsxs)(ed.TableCell,{className:"text-right",children:[Math.round(100*e.completed),"%"]}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:e.avgFailures.toFixed(1)})]},e.name))})]})}function tC({reloadToken:e,project:t,onProjectChange:a,projectOptions:s}){let{sessions:n,error:r}=eY(e),[o,l]=eG("quality-range","90",eq(eP.map(e=>e.value))),[i,d]=eG("quality-provider","all",eZ),[c,u]=eG("quality-model","all",eZ),f=!n||n.some(e=>e.provider===i)?i:"all",g=!n||eI(n).includes(c)?c:"all",[x,v]=eG("quality-group","agent",eq(ty.map(e=>e.value))),b=(0,h.useMemo)(()=>({days:eP.find(e=>e.value===o)?.days??null,project:t,provider:f,model:g}),[o,t,f,g]),y=(0,h.useMemo)(()=>n?function(e,t,a=new Date){let s=eR(a),n=null===t.days?null:eA(s,1-t.days).getTime(),r=[],o=0;for(let a of e){if("all"!==t.provider&&a.provider!==t.provider||"all"!==t.project&&a.project!==t.project||"all"!==t.model&&a.model!==t.model)continue;let e=-1/0;for(let t of a.activity)(null===n||t.t>=n)&&(e=Math.max(e,t.t));if(e!==-1/0){if(!a.health){o++;continue}r.push({provider:a.provider,id:a.id,label:a.label,project:a.project,health:a.health,lastActive:e})}}let l={A:0,B:0,C:0,D:0,F:0},i={completed:0,in_progress:0,abandoned:0,errored:0},d=new Map,c=new Map,u=new Map,m=new Map,h=0,p=0,f=0,g=s.getTime();for(let e of r){let{health:t}=e;h+=t.score,l[t.grade]++,i[t.outcome]++,p+=Math.max(t.toolResults,t.toolFailures),f+=t.toolFailures,tx(d,e.provider,t),tx(c,e.project,t);let a=eR(new Date(e.lastActive));g=Math.min(g,a.getTime());let s=u.get(eF(a))??{sessions:0,score:0};for(let n of(s.sessions++,s.score+=t.score,u.set(eF(a),s),t.signals)){let t=m.get(n.id)??{count:0,rows:[]};t.count+=n.count,t.rows.push({s:e,penalty:n.penalty}),m.set(n.id,t)}}let x=[],v=new Date(null===n?g:n);for(let e=v;e.getTime()<=s.getTime();e=eA(e,1)){let t=u.get(eF(e));x.push({start:e,sessions:t?.sessions??0,avgScore:t?t.score/t.sessions:null})}let b=r.length?h/r.length:0;return{scored:r.length,unscored:o,avgScore:b,grade:tf(Math.round(b)),grades:l,outcomes:i,toolResults:p,toolFailures:f,patterns:tg.flatMap(e=>{let t=m.get(e);return t?{id:e,sessions:t.rows.length,count:t.count,examples:t.rows.sort((e,t)=>t.penalty-e.penalty||e.s.health.score-t.s.health.score).slice(0,3).map(e=>e.s)}:[]}).sort((e,t)=>t.sessions-e.sessions),days:x,agents:tv(d),projects:tv(c),sessions:r.sort((e,t)=>e.health.score-t.health.score||t.lastActive-e.lastActive)}}(n,b):null,[n,b]),w=(0,h.useMemo)(()=>K.PROVIDER_ORDER.filter(e=>n?.some(t=>t.provider===e)),[n]),k=(0,h.useMemo)(()=>[{value:"all",label:"All agents"},...w.map(e=>({value:e,label:(0,K.providerStyle)(e).shortLabel}))],[w]),S=(0,h.useMemo)(()=>[{value:"all",label:"All models"},...eI(n??[]).map(e=>({value:e,label:e}))],[n]);if(r&&!n)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)(p.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(!n||!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},(e,t)=>(0,m.jsx)($.Skeleton,{className:"h-[86px] rounded-xl"},t))}),(0,m.jsx)($.Skeleton,{className:"h-64 rounded-xl"})]});if(0===n.length)return(0,m.jsx)(O.EmptyState,{icon:j,title:"No sessions to score yet",description:`Health scores appear once a supported agent writes a transcript on this machine: ${K.SUPPORTED_AGENTS}.`});let N=y.days.length>92,C=N?function(e){let t=[];for(let a of e){let e=eA(a.start,-a.start.getDay()),s=t[t.length-1];s&&s.start.getTime()===e.getTime()||(s={start:e,sessions:0,avgScore:null,total:0},t.push(s)),s.sessions+=a.sessions,s.total+=(a.avgScore??0)*a.sessions,s.avgScore=s.sessions?s.total/s.sessions:null}return t.map(({start:e,sessions:t,avgScore:a})=>({start:e,sessions:t,avgScore:a}))}(y.days):y.days,T=y.outcomes.abandoned+y.outcomes.errored,D=y.patterns.find(e=>"tool_failures"===e.id)?.sessions??0,E=y.grades.D+y.grades.F,W=y.sessions.filter(e=>e.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)(L,{value:o,onChange:l,options:eP,"aria-label":"Date range"}),s.length>2&&(0,m.jsx)(L,{value:t,onChange:a,options:s,"aria-label":"Project",className:"max-w-56"}),w.length>1&&(0,m.jsx)(L,{value:f,onChange:d,options:k,"aria-label":"Agent"}),S.length>2&&(0,m.jsx)(L,{value:g,onChange:u,options:S,"aria-label":"Model",className:"max-w-56"}),(0,m.jsxs)(M.Button,{variant:"outline",className:"ml-auto",disabled:0===y.scored,onClick:()=>{var e;return eg(`agent-quality-${o}.csv`,(e=y.sessions,[["agent","session_id","project","last_active","score","grade","outcome","tool_results","tool_failures",...tg.filter(e=>"outcome"!==e&&"tool_failures"!==e)].join(","),...e.map(e=>{let t=t=>e.health.signals.find(e=>e.id===t)?.count??0;return[e.provider,e.id,`"${e.project.replace(/"/g,'""')}"`,new Date(e.lastActive).toISOString(),e.health.score,e.health.grade,e.health.outcome,e.health.toolResults,e.health.toolFailures,t("retry_loops"),t("api_errors"),t("aborted_turns"),t("compactions")].join(",")})].join("\n")+"\n"))},children:[(0,m.jsx)(ep,{"aria-hidden":!0}),"Export CSV"]})]}),0===y.scored?(0,m.jsx)(O.EmptyState,{icon:j,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)(eE.StatCardGrid,{children:[(0,m.jsx)(eE.StatCard,{label:"Avg score",value:`${Math.round(y.avgScore)}`,sub:`grade ${y.grade}`,accent:!0}),(0,m.jsx)(eE.StatCard,{label:"Scored",value:y.scored.toLocaleString(),sub:y.unscored>0?`${y.unscored} with no agent activity`:"sessions"}),(0,m.jsx)(eE.StatCard,{label:"Completed",value:tj(y.outcomes.completed,y.scored),sub:`${y.outcomes.completed.toLocaleString()} sessions`}),(0,m.jsx)(eE.StatCard,{label:"Unfinished",value:T.toLocaleString(),sub:`${y.outcomes.abandoned} abandoned \xb7 ${y.outcomes.errored} errored`}),(0,m.jsx)(eE.StatCard,{label:"Tool failures",value:tj(D,y.scored),sub:`${D.toLocaleString()} sessions affected`}),(0,m.jsx)(eE.StatCard,{label:"Failure rate",value:y.toolResults>0?`${(y.toolFailures/y.toolResults*100).toFixed(1)}%`:"—",sub:`${y.toolFailures.toLocaleString()} of ${y.toolResults.toLocaleString()} results`}),(0,m.jsx)(eE.StatCard,{label:"Low grades",value:E.toLocaleString(),sub:"sessions graded D or F"})]}),(0,m.jsx)(ej,{title:"Recurring problems",note:"rule-based, from the transcripts",children:0===y.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)(tp.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:y.patterns.map(e=>{let t=V.SIGNAL_INFO[e.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:t.label}),(0,m.jsxs)("span",{className:"text-xs tabular-nums text-muted-foreground",children:[e.sessions," of ",y.scored," sessions (",tj(e.sessions,y.scored),")","outcome"!==e.id&&` \xb7 ${e.count.toLocaleString()} in total`]})]}),(0,m.jsx)("p",{className:"mt-0.5 text-xs leading-relaxed text-muted-foreground",children:t.advice}),(0,m.jsx)("ol",{className:"-mx-2 mt-1.5",children:e.examples.map(e=>(0,m.jsx)("li",{children:(0,m.jsx)(tk,{session:e})},`${e.provider}:${e.id}`))})]},e.id)})})}),(0,m.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,m.jsx)(ej,{title:"Grades",note:`${y.scored} scored`,children:(0,m.jsx)(tS,{rows:V.GRADES.map(e=>({key:e,label:(0,m.jsx)(G.GradeBadge,{grade:e}),value:y.grades[e],bar:V.GRADE_STYLES[e].bar}))})}),(0,m.jsx)(ej,{title:"Outcomes",children:(0,m.jsx)(tS,{rows:V.OUTCOMES.filter(e=>"in_progress"!==e||y.outcomes.in_progress>0).map(e=>({key:e,label:V.OUTCOME_LABELS[e],value:y.outcomes[e],bar:V.OUTCOME_BARS[e]}))})})]}),C.length>1&&(0,m.jsx)(ej,{title:"Health trend",note:N?"per week":"per day",children:(0,m.jsx)(tN,{periods:C,weekly:N})}),(0,m.jsx)(ej,{title:"Comparison",action:(0,m.jsx)(ew.Segmented,{label:"Compare by",value:x,onChange:v,options:ty}),children:(0,m.jsx)(tM,{rows:"agent"===x?y.agents:y.projects,groupKey:x})}),W.length>0&&(0,m.jsx)(ej,{title:"Lowest scores",note:"worst first",children:(0,m.jsx)("ol",{className:"-mx-2",children:W.map(e=>(0,m.jsx)("li",{children:(0,m.jsx)(tk,{session:e})},`${e.provider}:${e.id}`))})})]})]})}var tT=e.i(50267);let tD=(0,x.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),tO={},tE={};function tL(e,t){try{let a=(tO[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];if(a in tE)return tE[a];return tP(a,a.split(":"))}catch{if(e in tE)return tE[e];let t=e?.match(tW);if(t)return tP(e,t.slice(1));return NaN}}let tW=/([+-]\d\d):?(\d\d)?/;function tP(e,t){let a=+(t[0]||0),s=+(t[1]||0),n=(t[2]||0)/60;return tE[e]=60*a+s>0?60*a+s+n:60*a-s-n}class t$ extends Date{constructor(...e){super(),e.length>1&&"string"==typeof e[e.length-1]&&(this.timeZone=e.pop()),this.internal=new Date,isNaN(tL(this.timeZone,this))?this.setTime(NaN):e.length?"number"==typeof e[0]&&(1===e.length||2===e.length&&"number"!=typeof e[1])?this.setTime(e[0]):"string"==typeof e[0]?this.setTime(+new Date(e[0])):e[0]instanceof Date?this.setTime(+e[0]):(this.setTime(+new Date(...e)),tF(this,e)):this.setTime(Date.now())}static tz(e,...t){return t.length?new t$(...t,e):new t$(Date.now(),e)}withTimeZone(e){return new t$(+this,e)}getTimezoneOffset(){let e=-tL(this.timeZone,this);return e>0?Math.floor(e):Math.ceil(e)}setTime(e){return Date.prototype.setTime.apply(this,arguments),tA(this),+this}[Symbol.for("constructDateFrom")](e){return new t$(+new Date(e),this.timeZone)}}let tR=/^(get|set)(?!UTC)/;function tA(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-(60*tL(e.timeZone,e))))}function tF(e,t){var a;let s=Array.isArray(t)?Date.UTC((a=t)[0],a.length>1?a[1]:0,a.length>2?a[2]:1,...a.slice(3)):+e.internal,n=tL(e.timeZone,e),r=n>0?Math.floor(n):Math.ceil(n),o=new Date(+e);o.setUTCHours(o.getUTCHours()-1);let l=-new Date(+e).getTimezoneOffset(),i=-new Date(+o).getTimezoneOffset(),d=l;if(l-i&&l!==r&&Date.prototype.getHours.apply(e)!==(Array.isArray(t)?t[3]||0:e.internal.getUTCHours())){let t=new Date(+e),a=l-r;a&&t.setUTCMinutes(t.getUTCMinutes()+a);let s=tL(e.timeZone,t);(s>0?Math.floor(s):Math.ceil(s))===r&&(d=i)}let c=d-r;c&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+c);let u=new Date(+e);u.setUTCSeconds(0);let m=l>0?u.getSeconds():(u.getSeconds()-60)%60,h=Math.round(-(60*tL(e.timeZone,e)))%60;(h||m)&&Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+h+m);let p=tL(e.timeZone,e),f=p>0?Math.floor(p):Math.ceil(p),g=-new Date(+e).getTimezoneOffset()-f-c,x=f-r,v=x>0&&tU(e)-s==60*x*1e3&&tU(e,s-60*f*1e3)!==s;if(f!==r&&g&&!v){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+g);let t=tL(e.timeZone,e),a=f-(t>0?Math.floor(t):Math.ceil(t));a&&g<0&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+a)}tA(e);let b=(t?s:s+1e3*h)-e.internal;b&&18e5>Math.abs(b)&&(Date.prototype.setTime.call(e,+e+b),tA(e))}function tU(e,t){let a=new Date(t??+e);return a.setUTCSeconds(a.getUTCSeconds()-Math.round(-(60*tL(e.timeZone,a)))),+a}Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!tR.test(e))return;let t=e.replace(tR,"$1UTC");t$.prototype[t]&&(e.startsWith("get")?t$.prototype[e]=function(){return this.internal[t]()}:(t$.prototype[e]=function(){var e;return Date.prototype[t].apply(this.internal,arguments),e=this,Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),tF(e),+this},t$.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),tA(this),+this}))});class t_ extends t${static tz(e,...t){return t.length?new t_(...t,e):new t_(Date.now(),e)}toISOString(){let[e,t,a]=this.tzComponents(),s=`${e}${t}:${a}`;return this.internal.toISOString().slice(0,-1)+s}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){let[e,t,a,s]=this.internal.toUTCString().split(" ");return`${e?.slice(0,-1)} ${a} ${t} ${s}`}toTimeString(){let e=this.internal.toUTCString().split(" ")[4],[t,a,s]=this.tzComponents();return`${e} GMT${t}${a}${s} (${function(e,t,a="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:a}).format(t).split(/\s/g).slice(2).join(" ")}(this.timeZone,this)})`}toLocaleString(e,t){return Date.prototype.toLocaleString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleDateString(e,t){return Date.prototype.toLocaleDateString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleTimeString(e,t){return Date.prototype.toLocaleTimeString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}tzComponents(){let e=this.getTimezoneOffset(),t=String(Math.floor(Math.abs(e)/60)).padStart(2,"0"),a=String(Math.abs(e)%60).padStart(2,"0");return[e>0?"-":"+",t,a]}withTimeZone(e){return new t_(+this,e)}[Symbol.for("constructDateFrom")](e){return new t_(+new Date(e),this.timeZone)}}let tI=Symbol.for("constructDateFrom");function tY(e,t){return"function"==typeof e?e(t):e&&"object"==typeof e&&tI in e?e[tI](t):e instanceof Date?new e.constructor(t):new Date(t)}function tz(e,t){return tY(t||e,e)}function tB(e,t,a){let s=tz(e,a?.in);return isNaN(t)?tY(a?.in||e,NaN):(t&&s.setDate(s.getDate()+t),s)}function tH(e,t,a){let s=tz(e,a?.in);if(isNaN(t))return tY(a?.in||e,NaN);if(!t)return s;let n=s.getDate(),r=tY(a?.in||e,s.getTime());return(r.setMonth(s.getMonth()+t+1,0),n>=r.getDate())?r:(s.setFullYear(r.getFullYear(),r.getMonth(),n),s)}function tG(e){let t=tz(e),a=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return a.setUTCFullYear(t.getFullYear()),e-a}function tq(e,...t){let a=tY.bind(null,e||t.find(e=>"object"==typeof e));return t.map(a)}function tZ(e,t){let a=tz(e,t?.in);return a.setHours(0,0,0,0),a}function tV(e,t,a){let[s,n]=tq(a?.in,e,t),r=tZ(s),o=tZ(n);return Math.round((r-tG(r)-(o-tG(o)))/864e5)}function tK(e,t,a){let[s,n]=tq(a?.in,e,t);return 12*(s.getFullYear()-n.getFullYear())+(s.getMonth()-n.getMonth())}function tQ(e,t){let[a,s]=tq(e,t.start,t.end);return{start:a,end:s}}let tX={};function tJ(e,t){let a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??tX.weekStartsOn??tX.locale?.options?.weekStartsOn??0,s=tz(e,t?.in),n=s.getDay();return s.setDate(s.getDate()+((n<a?-7:0)+6-(n-a))),s.setHours(23,59,59,999),s}let t0={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 t1(e){return (t={})=>{let a=t.width?String(t.width):e.defaultWidth;return e.formats[a]||e.formats[e.defaultWidth]}}let t2={date:t1({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:t1({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:t1({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},t5={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function t3(e){return(t,a)=>{let s;if("formatting"===(a?.context?String(a.context):"standalone")&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,n=a?.width?String(a.width):t;s=e.formattingValues[n]||e.formattingValues[t]}else{let t=e.defaultWidth,n=a?.width?String(a.width):e.defaultWidth;s=e.values[n]||e.values[t]}return s[e.argumentCallback?e.argumentCallback(t):t]}}function t4(e){return(t,a={})=>{let s,n=a.width,r=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],o=t.match(r);if(!o)return null;let l=o[0],i=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(i)?function(e,t){for(let a=0;a<e.length;a++)if(t(e[a]))return a}(i,e=>e.test(l)):function(e,t){for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)&&t(e[a]))return a}(i,e=>e.test(l));return s=e.valueCallback?e.valueCallback(d):d,{value:s=a.valueCallback?a.valueCallback(s):s,rest:t.slice(l.length)}}}let t7={code:"en-US",formatDistance:(e,t,a)=>{let s,n=t0[e];if(s="string"==typeof n?n:1===t?n.one:n.other.replace("{{count}}",t.toString()),a?.addSuffix)if(a.comparison&&a.comparison>0)return"in "+s;else return s+" ago";return s},formatLong:t2,formatRelative:(e,t,a,s)=>t5[e],localize:{ordinalNumber:(e,t)=>{let a=Number(e),s=a%100;if(s>20||s<10)switch(s%10){case 1:return a+"st";case 2:return a+"nd";case 3:return a+"rd"}return a+"th"},era:t3({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:t3({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:t3({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:t3({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:t3({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:(t={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)},(e,a={})=>{let s=e.match(t.matchPattern);if(!s)return null;let n=s[0],r=e.match(t.parsePattern);if(!r)return null;let o=t.valueCallback?t.valueCallback(r[0]):r[0];return{value:o=a.valueCallback?a.valueCallback(o):o,rest:e.slice(n.length)}}),era:t4({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:t4({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:e=>e+1}),month:t4({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:t4({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:t4({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 t6(e,t){let a=tz(e,t?.in);return a.setFullYear(a.getFullYear(),0,1),a.setHours(0,0,0,0),a}function t8(e,t){let a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??tX.weekStartsOn??tX.locale?.options?.weekStartsOn??0,s=tz(e,t?.in),n=s.getDay();return s.setDate(s.getDate()-(7*(n<a)+n-a)),s.setHours(0,0,0,0),s}function t9(e,t){return t8(e,{...t,weekStartsOn:1})}function ae(e,t){let a=tz(e,t?.in),s=a.getFullYear(),n=tY(a,0);n.setFullYear(s+1,0,4),n.setHours(0,0,0,0);let r=t9(n),o=tY(a,0);o.setFullYear(s,0,4),o.setHours(0,0,0,0);let l=t9(o);return a.getTime()>=r.getTime()?s+1:a.getTime()>=l.getTime()?s:s-1}function at(e,t){let a,s,n=tz(e,t?.in);return Math.round((t9(n)-(a=ae(n,void 0),(s=tY(n,0)).setFullYear(a,0,4),s.setHours(0,0,0,0),t9(s)))/6048e5)+1}function aa(e,t){let a=tz(e,t?.in),s=a.getFullYear(),n=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??tX.firstWeekContainsDate??tX.locale?.options?.firstWeekContainsDate??1,r=tY(t?.in||e,0);r.setFullYear(s+1,0,n),r.setHours(0,0,0,0);let o=t8(r,t),l=tY(t?.in||e,0);l.setFullYear(s,0,n),l.setHours(0,0,0,0);let i=t8(l,t);return+a>=+o?s+1:+a>=+i?s:s-1}function as(e,t){let a,s,n,r=tz(e,t?.in);return Math.round((t8(r,t)-(a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??tX.firstWeekContainsDate??tX.locale?.options?.firstWeekContainsDate??1,s=aa(r,t),(n=tY(t?.in||r,0)).setFullYear(s,0,a),n.setHours(0,0,0,0),t8(n,t)))/6048e5)+1}function an(e,t){let a=Math.abs(e).toString().padStart(t,"0");return(e<0?"-":"")+a}let ar={y(e,t){let a=e.getFullYear(),s=a>0?a:1-a;return an("yy"===t?s%100:s,t.length)},M(e,t){let a=e.getMonth();return"M"===t?String(a+1):an(a+1,2)},d:(e,t)=>an(e.getDate(),t.length),a(e,t){let a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return a.toUpperCase();case"aaa":return a;case"aaaaa":return a[0];default:return"am"===a?"a.m.":"p.m."}},h:(e,t)=>an(e.getHours()%12||12,t.length),H:(e,t)=>an(e.getHours(),t.length),m:(e,t)=>an(e.getMinutes(),t.length),s:(e,t)=>an(e.getSeconds(),t.length),S(e,t){let a=t.length;return an(Math.trunc(e.getMilliseconds()*Math.pow(10,a-3)),t.length)}},ao={G:function(e,t,a){let s=+(e.getFullYear()>0);switch(t){case"G":case"GG":case"GGG":return a.era(s,{width:"abbreviated"});case"GGGGG":return a.era(s,{width:"narrow"});default:return a.era(s,{width:"wide"})}},y:function(e,t,a){if("yo"===t){let t=e.getFullYear();return a.ordinalNumber(t>0?t:1-t,{unit:"year"})}return ar.y(e,t)},Y:function(e,t,a,s){let n=aa(e,s),r=n>0?n:1-n;return"YY"===t?an(r%100,2):"Yo"===t?a.ordinalNumber(r,{unit:"year"}):an(r,t.length)},R:function(e,t){return an(ae(e),t.length)},u:function(e,t){return an(e.getFullYear(),t.length)},Q:function(e,t,a){let s=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(s);case"QQ":return an(s,2);case"Qo":return a.ordinalNumber(s,{unit:"quarter"});case"QQQ":return a.quarter(s,{width:"abbreviated",context:"formatting"});case"QQQQQ":return a.quarter(s,{width:"narrow",context:"formatting"});default:return a.quarter(s,{width:"wide",context:"formatting"})}},q:function(e,t,a){let s=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(s);case"qq":return an(s,2);case"qo":return a.ordinalNumber(s,{unit:"quarter"});case"qqq":return a.quarter(s,{width:"abbreviated",context:"standalone"});case"qqqqq":return a.quarter(s,{width:"narrow",context:"standalone"});default:return a.quarter(s,{width:"wide",context:"standalone"})}},M:function(e,t,a){let s=e.getMonth();switch(t){case"M":case"MM":return ar.M(e,t);case"Mo":return a.ordinalNumber(s+1,{unit:"month"});case"MMM":return a.month(s,{width:"abbreviated",context:"formatting"});case"MMMMM":return a.month(s,{width:"narrow",context:"formatting"});default:return a.month(s,{width:"wide",context:"formatting"})}},L:function(e,t,a){let s=e.getMonth();switch(t){case"L":return String(s+1);case"LL":return an(s+1,2);case"Lo":return a.ordinalNumber(s+1,{unit:"month"});case"LLL":return a.month(s,{width:"abbreviated",context:"standalone"});case"LLLLL":return a.month(s,{width:"narrow",context:"standalone"});default:return a.month(s,{width:"wide",context:"standalone"})}},w:function(e,t,a,s){let n=as(e,s);return"wo"===t?a.ordinalNumber(n,{unit:"week"}):an(n,t.length)},I:function(e,t,a){let s=at(e);return"Io"===t?a.ordinalNumber(s,{unit:"week"}):an(s,t.length)},d:function(e,t,a){return"do"===t?a.ordinalNumber(e.getDate(),{unit:"date"}):ar.d(e,t)},D:function(e,t,a){let s,n=tV(s=tz(e,void 0),t6(s))+1;return"Do"===t?a.ordinalNumber(n,{unit:"dayOfYear"}):an(n,t.length)},E:function(e,t,a){let s=e.getDay();switch(t){case"E":case"EE":case"EEE":return a.day(s,{width:"abbreviated",context:"formatting"});case"EEEEE":return a.day(s,{width:"narrow",context:"formatting"});case"EEEEEE":return a.day(s,{width:"short",context:"formatting"});default:return a.day(s,{width:"wide",context:"formatting"})}},e:function(e,t,a,s){let n=e.getDay(),r=(n-s.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return an(r,2);case"eo":return a.ordinalNumber(r,{unit:"day"});case"eee":return a.day(n,{width:"abbreviated",context:"formatting"});case"eeeee":return a.day(n,{width:"narrow",context:"formatting"});case"eeeeee":return a.day(n,{width:"short",context:"formatting"});default:return a.day(n,{width:"wide",context:"formatting"})}},c:function(e,t,a,s){let n=e.getDay(),r=(n-s.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return an(r,t.length);case"co":return a.ordinalNumber(r,{unit:"day"});case"ccc":return a.day(n,{width:"abbreviated",context:"standalone"});case"ccccc":return a.day(n,{width:"narrow",context:"standalone"});case"cccccc":return a.day(n,{width:"short",context:"standalone"});default:return a.day(n,{width:"wide",context:"standalone"})}},i:function(e,t,a){let s=e.getDay(),n=0===s?7:s;switch(t){case"i":return String(n);case"ii":return an(n,t.length);case"io":return a.ordinalNumber(n,{unit:"day"});case"iii":return a.day(s,{width:"abbreviated",context:"formatting"});case"iiiii":return a.day(s,{width:"narrow",context:"formatting"});case"iiiiii":return a.day(s,{width:"short",context:"formatting"});default:return a.day(s,{width:"wide",context:"formatting"})}},a:function(e,t,a){let s=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return a.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"aaa":return a.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return a.dayPeriod(s,{width:"narrow",context:"formatting"});default:return a.dayPeriod(s,{width:"wide",context:"formatting"})}},b:function(e,t,a){let s,n=e.getHours();switch(s=12===n?"noon":0===n?"midnight":n/12>=1?"pm":"am",t){case"b":case"bb":return a.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"bbb":return a.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return a.dayPeriod(s,{width:"narrow",context:"formatting"});default:return a.dayPeriod(s,{width:"wide",context:"formatting"})}},B:function(e,t,a){let s,n=e.getHours();switch(s=n>=17?"evening":n>=12?"afternoon":n>=4?"morning":"night",t){case"B":case"BB":case"BBB":return a.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"BBBBB":return a.dayPeriod(s,{width:"narrow",context:"formatting"});default:return a.dayPeriod(s,{width:"wide",context:"formatting"})}},h:function(e,t,a){if("ho"===t){let t=e.getHours()%12;return 0===t&&(t=12),a.ordinalNumber(t,{unit:"hour"})}return ar.h(e,t)},H:function(e,t,a){return"Ho"===t?a.ordinalNumber(e.getHours(),{unit:"hour"}):ar.H(e,t)},K:function(e,t,a){let s=e.getHours()%12;return"Ko"===t?a.ordinalNumber(s,{unit:"hour"}):an(s,t.length)},k:function(e,t,a){let s=e.getHours();return(0===s&&(s=24),"ko"===t)?a.ordinalNumber(s,{unit:"hour"}):an(s,t.length)},m:function(e,t,a){return"mo"===t?a.ordinalNumber(e.getMinutes(),{unit:"minute"}):ar.m(e,t)},s:function(e,t,a){return"so"===t?a.ordinalNumber(e.getSeconds(),{unit:"second"}):ar.s(e,t)},S:function(e,t){return ar.S(e,t)},X:function(e,t,a){let s=e.getTimezoneOffset();if(0===s)return"Z";switch(t){case"X":return ai(s);case"XXXX":case"XX":return ad(s);default:return ad(s,":")}},x:function(e,t,a){let s=e.getTimezoneOffset();switch(t){case"x":return ai(s);case"xxxx":case"xx":return ad(s);default:return ad(s,":")}},O:function(e,t,a){let s=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+al(s,":");default:return"GMT"+ad(s,":")}},z:function(e,t,a){let s=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+al(s,":");default:return"GMT"+ad(s,":")}},t:function(e,t,a){return an(Math.trunc(e/1e3),t.length)},T:function(e,t,a){return an(+e,t.length)}};function al(e,t=""){let a=e>0?"-":"+",s=Math.abs(e),n=Math.trunc(s/60),r=s%60;return 0===r?a+String(n):a+String(n)+t+an(r,2)}function ai(e,t){return e%60==0?(e>0?"-":"+")+an(Math.abs(e)/60,2):ad(e,t)}function ad(e,t=""){let a=Math.abs(e);return(e>0?"-":"+")+an(Math.trunc(a/60),2)+t+an(a%60,2)}let ac=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},au=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},am={p:au,P:(e,t)=>{let a,s=e.match(/(P+)(p+)?/)||[],n=s[1],r=s[2];if(!r)return ac(e,t);switch(n){case"P":a=t.dateTime({width:"short"});break;case"PP":a=t.dateTime({width:"medium"});break;case"PPP":a=t.dateTime({width:"long"});break;default:a=t.dateTime({width:"full"})}return a.replace("{{date}}",ac(n,t)).replace("{{time}}",au(r,t))}},ah=/^D+$/,ap=/^Y+$/,af=["D","DD","YY","YYYY"];function ag(e){return e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e)}let ax=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,av=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ab=/^'([^]*?)'?$/,ay=/''/g,aj=/[a-zA-Z]/;function aw(e,t,a){let s=a?.locale??tX.locale??t7,n=a?.firstWeekContainsDate??a?.locale?.options?.firstWeekContainsDate??tX.firstWeekContainsDate??tX.locale?.options?.firstWeekContainsDate??1,r=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??tX.weekStartsOn??tX.locale?.options?.weekStartsOn??0,o=tz(e,a?.in);if(!ag(o)&&"number"!=typeof o||isNaN(+tz(o)))throw RangeError("Invalid time value");let l=t.match(av).map(e=>{let t=e[0];return"p"===t||"P"===t?(0,am[t])(e,s.formatLong):e}).join("").match(ax).map(e=>{if("''"===e)return{isToken:!1,value:"'"};let t=e[0];if("'"===t){var a;let t;return{isToken:!1,value:(t=(a=e).match(ab))?t[1].replace(ay,"'"):a}}if(ao[t])return{isToken:!0,value:e};if(t.match(aj))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});s.localize.preprocessor&&(l=s.localize.preprocessor(o,l));let i={firstWeekContainsDate:n,weekStartsOn:r,locale:s};return l.map(n=>{if(!n.isToken)return n.value;let r=n.value;return(!a?.useAdditionalWeekYearTokens&&ap.test(r)||!a?.useAdditionalDayOfYearTokens&&ah.test(r))&&function(e,t,a){var s,n,r;let o,l=(s=e,n=t,r=a,o="Y"===s[0]?"years":"days of the month",`Use \`${s.toLowerCase()}\` instead of \`${s}\` (in \`${n}\`) for formatting ${o} to the input \`${r}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`);if(console.warn(l),af.includes(e))throw RangeError(l)}(r,t,String(e)),(0,ao[r[0]])(o,r,s.localize,i)}).join("")}function ak(e,t){let a=t.startOfMonth(e),s=a.getDay();return 1===s?a:0===s?t.addDays(a,-6):t.addDays(a,-1*(s-1))}let aS={...t7,labels:{labelDayButton:(e,t,a,s)=>{let n=(s&&"function"==typeof s.format?s.format.bind(s):(e,t)=>aw(e,t,{locale:t7,...a}))(e,"PPPP");return t.today&&(n=`Today, ${n}`),t.selected&&(n=`${n}, selected`),n},labelMonthDropdown:"Choose the Month",labelNext:"Go to the Next Month",labelPrevious:"Go to the Previous Month",labelWeekNumber:e=>`Week ${e}`,labelYearDropdown:"Choose the Year",labelGrid:(e,t,a)=>(a&&"function"==typeof a.format?a.format.bind(a):(e,a)=>aw(e,a,{locale:t7,...t}))(e,"LLLL yyyy"),labelGridcell:(e,t,a,s)=>{let n=(s&&"function"==typeof s.format?s.format.bind(s):(e,t)=>aw(e,t,{locale:t7,...a}))(e,"PPPP");return t?.today&&(n=`Today, ${n}`),n},labelNav:"Navigation bar",labelWeekNumberHeader:"Week Number",labelWeekday:(e,t,a)=>(a&&"function"==typeof a.format?a.format.bind(a):(e,a)=>aw(e,a,{locale:t7,...t}))(e,"cccc")}};class aN{constructor(e,t){this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?t_.tz(this.options.timeZone):new(this.options.Date??Date),this.newDate=(e,t,a)=>this.overrides?.newDate?this.overrides.newDate(e,t,a):this.options.timeZone?new t_(e,t,a,this.options.timeZone):new Date(e,t,a),this.addDays=(e,t)=>this.overrides?.addDays?this.overrides.addDays(e,t):tB(e,t),this.addMonths=(e,t)=>this.overrides?.addMonths?this.overrides.addMonths(e,t):tH(e,t),this.addWeeks=(e,t)=>this.overrides?.addWeeks?this.overrides.addWeeks(e,t):tB(e,7*t,void 0),this.addYears=(e,t)=>this.overrides?.addYears?this.overrides.addYears(e,t):tH(e,12*t,void 0),this.differenceInCalendarDays=(e,t)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(e,t):tV(e,t),this.differenceInCalendarMonths=(e,t)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(e,t):tK(e,t),this.eachMonthOfInterval=e=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(e):function(e){let{start:t,end:a}=tQ(void 0,e),s=+t>+a,n=s?+t:+a,r=s?a:t;r.setHours(0,0,0,0),r.setDate(1);let o=(void 0)??1;if(!o)return[];o<0&&(o=-o,s=!s);let l=[];for(;+r<=n;)l.push(tY(t,r)),r.setMonth(r.getMonth()+o);return s?l.reverse():l}(e),this.eachYearOfInterval=e=>{let t=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(e):function(e){let{start:t,end:a}=tQ(void 0,e),s=+t>+a,n=s?+t:+a,r=s?a:t;r.setHours(0,0,0,0),r.setMonth(0,1);let o=(void 0)??1;if(!o)return[];o<0&&(o=-o,s=!s);let l=[];for(;+r<=n;)l.push(tY(t,r)),r.setFullYear(r.getFullYear()+o);return s?l.reverse():l}(e),a=new Set(t.map(e=>this.getYear(e)));if(a.size===t.length)return t;let s=[];return a.forEach(e=>{s.push(new Date(e,0,1))}),s},this.endOfBroadcastWeek=e=>{let t,a,s,n,r,o;return this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(e):(t=ak(e,this),s=(a=this.startOfMonth(e)).getDay()>0?a.getDay():7,n=this.addDays(e,-s+1),r=this.addDays(n,34),o=this.getMonth(e)===this.getMonth(r)?5:4,this.addDays(t,7*o-1))},this.endOfISOWeek=e=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(e):tJ(e,{...void 0,weekStartsOn:1}),this.endOfMonth=e=>{let t,a;return this.overrides?.endOfMonth?this.overrides.endOfMonth(e):(a=(t=tz(e,void 0)).getMonth(),t.setFullYear(t.getFullYear(),a+1,0),t.setHours(23,59,59,999),t)},this.endOfWeek=(e,t)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(e,t):tJ(e,this.options),this.endOfYear=e=>{let t,a;return this.overrides?.endOfYear?this.overrides.endOfYear(e):(a=(t=tz(e,void 0)).getFullYear(),t.setFullYear(a+1,0,0),t.setHours(23,59,59,999),t)},this.format=(e,t,a)=>{let s=this.overrides?.format?this.overrides.format(e,t,this.options):aw(e,t,this.options);return this.options.numerals&&"latn"!==this.options.numerals?this.replaceDigits(s):s},this.getISOWeek=e=>this.overrides?.getISOWeek?this.overrides.getISOWeek(e):at(e),this.getMonth=(e,t)=>{var a;return this.overrides?.getMonth?this.overrides.getMonth(e,this.options):(a=this.options,tz(e,a?.in).getMonth())},this.getYear=(e,t)=>{var a;return this.overrides?.getYear?this.overrides.getYear(e,this.options):(a=this.options,tz(e,a?.in).getFullYear())},this.getWeek=(e,t)=>this.overrides?.getWeek?this.overrides.getWeek(e,this.options):as(e,this.options),this.isAfter=(e,t)=>this.overrides?.isAfter?this.overrides.isAfter(e,t):+tz(e)>+tz(t),this.isBefore=(e,t)=>this.overrides?.isBefore?this.overrides.isBefore(e,t):+tz(e)<+tz(t),this.isDate=e=>this.overrides?.isDate?this.overrides.isDate(e):ag(e),this.isSameDay=(e,t)=>this.overrides?.isSameDay?this.overrides.isSameDay(e,t):function(e,t){let[a,s]=tq(void 0,e,t);return+tZ(a)==+tZ(s)}(e,t),this.isSameMonth=(e,t)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(e,t):function(e,t){let[a,s]=tq(void 0,e,t);return a.getFullYear()===s.getFullYear()&&a.getMonth()===s.getMonth()}(e,t),this.isSameYear=(e,t)=>this.overrides?.isSameYear?this.overrides.isSameYear(e,t):function(e,t){let[a,s]=tq(void 0,e,t);return a.getFullYear()===s.getFullYear()}(e,t),this.max=e=>{let t,a;return this.overrides?.max?this.overrides.max(e):(a=void 0,e.forEach(e=>{a||"object"!=typeof e||(a=tY.bind(null,e));let s=tz(e,a);(!t||t<s||isNaN(+s))&&(t=s)}),tY(a,t||NaN))},this.min=e=>{let t,a;return this.overrides?.min?this.overrides.min(e):(a=void 0,e.forEach(e=>{a||"object"!=typeof e||(a=tY.bind(null,e));let s=tz(e,a);(!t||t>s||isNaN(+s))&&(t=s)}),tY(a,t||NaN))},this.setMonth=(e,t)=>{var a,s;let n,r,o,l,i,d,c,u,m;return this.overrides?.setMonth?this.overrides.setMonth(e,t):(a=e,s=t,d=(i=tz(a,void 0)).getFullYear(),c=i.getDate(),(u=tY(a,0)).setFullYear(d,s,15),u.setHours(0,0,0,0),m=(r=(n=tz(u,void 0)).getFullYear(),o=n.getMonth(),(l=tY(n,0)).setFullYear(r,o+1,0),l.setHours(0,0,0,0),l.getDate()),i.setMonth(s,Math.min(c,m)),i)},this.setYear=(e,t)=>{let a;return this.overrides?.setYear?this.overrides.setYear(e,t):isNaN(+(a=tz(e,void 0)))?tY(e,NaN):(a.setFullYear(t),a)},this.startOfBroadcastWeek=(e,t)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(e,this):ak(e,this),this.startOfDay=e=>this.overrides?.startOfDay?this.overrides.startOfDay(e):tZ(e),this.startOfISOWeek=e=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(e):t9(e),this.startOfMonth=e=>{let t;return this.overrides?.startOfMonth?this.overrides.startOfMonth(e):((t=tz(e,void 0)).setDate(1),t.setHours(0,0,0,0),t)},this.startOfWeek=(e,t)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(e,this.options):t8(e,this.options),this.startOfYear=e=>this.overrides?.startOfYear?this.overrides.startOfYear(e):t6(e),this.options={locale:aS,...e},this.overrides=t}getDigitMap(){let{numerals:e="latn"}=this.options,t=new Intl.NumberFormat("en-US",{numberingSystem:e}),a={};for(let e=0;e<10;e++)a[e.toString()]=t.format(e);return a}replaceDigits(e){let t=this.getDigitMap();return e.replace(/\d/g,e=>t[e]||e)}formatNumber(e){return this.replaceDigits(e.toString())}getMonthYearOrder(){let e=this.options.locale?.code;return e&&aN.yearFirstLocales.has(e)?"year-first":"month-first"}formatMonthYear(e){let{locale:t,timeZone:a,numerals:s}=this.options,n=t?.code;if(n&&aN.yearFirstLocales.has(n))try{return new Intl.DateTimeFormat(n,{month:"long",year:"numeric",timeZone:a,numberingSystem:s}).format(e)}catch{}let r="year-first"===this.getMonthYearOrder()?"y LLLL":"LLLL y";return this.format(e,r)}}aN.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 aM=new aN;function aC(e,t,a=!1,s=aM){let{from:n,to:r}=e,{differenceInCalendarDays:o,isSameDay:l}=s;return n&&r?(0>o(r,n)&&([n,r]=[r,n]),o(t,n)>=+!!a&&o(r,t)>=+!!a):!a&&r?l(r,t):!a&&!!n&&l(n,t)}function aT(e){return!!(e&&"object"==typeof e&&"before"in e&&"after"in e)}function aD(e){return!!(e&&"object"==typeof e&&"from"in e)}function aO(e){return!!(e&&"object"==typeof e&&"after"in e)}function aE(e){return!!(e&&"object"==typeof e&&"before"in e)}function aL(e){return!!(e&&"object"==typeof e&&"dayOfWeek"in e)}function aW(e,t){return Array.isArray(e)&&e.every(t.isDate)}function aP(e,t,a=aM){let s=Array.isArray(t)?t:[t],{isSameDay:n,differenceInCalendarDays:r,isAfter:o}=a;return s.some(t=>{if("boolean"==typeof t)return t;if(a.isDate(t))return n(e,t);if(aW(t,a))return t.some(t=>n(e,t));if(aD(t))return aC(t,e,!1,a);if(aL(t))return Array.isArray(t.dayOfWeek)?t.dayOfWeek.includes(e.getDay()):t.dayOfWeek===e.getDay();if(aT(t)){let a=r(t.before,e),s=r(t.after,e),n=a>0,l=s<0;return o(t.before,t.after)?l&&n:n||l}return aO(t)?r(e,t.after)>0:aE(t)?r(t.before,e)>0:"function"==typeof t&&t(e)})}function a$(e){return h.default.createElement("span",{...e})}function aR(e){let{size:t=24,orientation:a="left",className:s,style:n}=e;return h.default.createElement("svg",{className:s,style:n,width:t,height:t,viewBox:"0 0 24 24"},"up"===a&&h.default.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),"down"===a&&h.default.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),"left"===a&&h.default.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),"right"===a&&h.default.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function aA(e){let{day:t,modifiers:a,...s}=e;return h.default.createElement("td",{...s})}function aF(e){let{day:t,modifiers:a,...s}=e,n=h.default.useRef(null);return h.default.useEffect(()=>{a.focused&&n.current?.focus()},[a.focused]),h.default.createElement("button",{ref:n,...s})}(a=l||(l={})).Root="root",a.Chevron="chevron",a.Day="day",a.DayButton="day_button",a.CaptionLabel="caption_label",a.Dropdowns="dropdowns",a.Dropdown="dropdown",a.DropdownRoot="dropdown_root",a.Footer="footer",a.MonthGrid="month_grid",a.MonthCaption="month_caption",a.MonthsDropdown="months_dropdown",a.Month="month",a.Months="months",a.Nav="nav",a.NextMonthButton="button_next",a.PreviousMonthButton="button_previous",a.Week="week",a.Weeks="weeks",a.Weekday="weekday",a.Weekdays="weekdays",a.WeekNumber="week_number",a.WeekNumberHeader="week_number_header",a.YearsDropdown="years_dropdown",(s=i||(i={})).disabled="disabled",s.hidden="hidden",s.outside="outside",s.focused="focused",s.today="today",(n=d||(d={})).range_end="range_end",n.range_middle="range_middle",n.range_start="range_start",n.selected="selected",(r=c||(c={})).weeks_before_enter="weeks_before_enter",r.weeks_before_exit="weeks_before_exit",r.weeks_after_enter="weeks_after_enter",r.weeks_after_exit="weeks_after_exit",r.caption_after_enter="caption_after_enter",r.caption_after_exit="caption_after_exit",r.caption_before_enter="caption_before_enter",r.caption_before_exit="caption_before_exit",e.s([],87448),e.i(87448),e.s(["CaptionLabel",0,a$],38437),e.i(38437),e.s(["Chevron",0,aR],94877),e.i(94877),e.s(["Day",0,aA],49444),e.i(49444),e.s(["DayButton",0,aF],71105),e.i(71105);let aU=(0,h.createContext)(void 0);function a_(){let e=(0,h.useContext)(aU);if(void 0===e)throw Error("useDayPicker() must be used within a custom component.");return e}function aI(e){let{options:t,className:a,...s}=e,{classNames:n,components:r,styles:o}=a_(),i=[n[l.Dropdown],a].join(" "),d=t?.find(({value:e})=>e===s.value);return h.default.createElement("span",{"data-disabled":s.disabled,className:n[l.DropdownRoot],style:o?.[l.DropdownRoot]},h.default.createElement(r.Select,{className:i,...s},t?.map(({value:e,label:t,disabled:a})=>h.default.createElement(r.Option,{key:e,value:e,disabled:a},t))),h.default.createElement("span",{className:n[l.CaptionLabel],style:o?.[l.CaptionLabel],"aria-hidden":!0},d?.label,h.default.createElement(r.Chevron,{orientation:"down",size:18,className:n[l.Chevron],style:o?.[l.Chevron]})))}function aY(e){return h.default.createElement("div",{...e})}function az(e){return h.default.createElement("div",{...e})}function aB(e){let{calendarMonth:t,displayIndex:a,...s}=e;return h.default.createElement("div",{...s},e.children)}function aH(e){let{calendarMonth:t,displayIndex:a,...s}=e;return h.default.createElement("div",{...s})}function aG(e){return h.default.createElement("table",{...e})}function aq(e){return h.default.createElement("div",{...e})}function aZ(e){let{components:t}=a_();return h.default.createElement(t.Dropdown,{...e})}function aV(e){let{onPreviousClick:t,onNextClick:a,previousMonth:s,nextMonth:n,...r}=e,{components:o,classNames:i,styles:d,labels:{labelPrevious:c,labelNext:u}}=a_(),m=(0,h.useCallback)(e=>{n&&a?.(e)},[n,a]),p=(0,h.useCallback)(e=>{s&&t?.(e)},[s,t]);return h.default.createElement("nav",{...r},h.default.createElement(o.PreviousMonthButton,{type:"button",className:i[l.PreviousMonthButton],style:d?.[l.PreviousMonthButton],tabIndex:s?void 0:-1,"aria-disabled":!s||void 0,"aria-label":c(s),onClick:p},h.default.createElement(o.Chevron,{disabled:!s||void 0,className:i[l.Chevron],style:d?.[l.Chevron],orientation:"left"})),h.default.createElement(o.NextMonthButton,{type:"button",className:i[l.NextMonthButton],style:d?.[l.NextMonthButton],tabIndex:n?void 0:-1,"aria-disabled":!n||void 0,"aria-label":u(n),onClick:m},h.default.createElement(o.Chevron,{disabled:!n||void 0,orientation:"right",className:i[l.Chevron],style:d?.[l.Chevron]})))}function aK(e){return h.default.createElement("button",{...e})}function aQ(e){return h.default.createElement("option",{...e})}function aX(e){return h.default.createElement("button",{...e})}function aJ(e){let{rootRef:t,...a}=e;return h.default.createElement("div",{...a,ref:t})}function a0(e){return h.default.createElement("select",{...e})}function a1(e){let{week:t,...a}=e;return h.default.createElement("tr",{...a})}function a2(e){return h.default.createElement("th",{...e})}function a5(e){return h.default.createElement("thead",{"aria-hidden":!0},h.default.createElement("tr",{...e}))}function a3(e){let{week:t,...a}=e;return h.default.createElement("th",{...a})}function a4(e){return h.default.createElement("th",{...e})}function a7(e){return h.default.createElement("tbody",{...e})}function a6(e){let{components:t}=a_();return h.default.createElement(t.Dropdown,{...e})}e.s(["Dropdown",0,aI],71258),e.i(71258),e.s(["DropdownNav",0,aY],54909),e.i(54909),e.s(["Footer",0,az],77676),e.i(77676),e.s(["Month",0,aB],81298),e.i(81298),e.s(["MonthCaption",0,aH],71917),e.i(71917),e.s(["MonthGrid",0,aG],41600),e.i(41600),e.s(["Months",0,aq],73381),e.i(73381),e.s(["MonthsDropdown",0,aZ],7686),e.i(7686),e.s(["Nav",0,aV],64312),e.i(64312),e.s(["NextMonthButton",0,aK],45138),e.i(45138),e.s(["Option",0,aQ],31684),e.i(31684),e.s(["PreviousMonthButton",0,aX],72298),e.i(72298),e.s(["Root",0,aJ],6984),e.i(6984),e.s(["Select",0,a0],95259),e.i(95259),e.s(["Week",0,a1],55248),e.i(55248),e.s(["Weekday",0,a2],53848),e.i(53848),e.s(["Weekdays",0,a5],13674),e.i(13674),e.s(["WeekNumber",0,a3],97373),e.i(97373),e.s(["WeekNumberHeader",0,a4],22259),e.i(22259),e.s(["Weeks",0,a7],81695),e.i(81695),e.s(["YearsDropdown",0,a6],3131),e.i(3131),e.s(["CaptionLabel",0,a$,"Chevron",0,aR,"Day",0,aA,"DayButton",0,aF,"Dropdown",0,aI,"DropdownNav",0,aY,"Footer",0,az,"Month",0,aB,"MonthCaption",0,aH,"MonthGrid",0,aG,"Months",0,aq,"MonthsDropdown",0,aZ,"Nav",0,aV,"NextMonthButton",0,aK,"Option",0,aQ,"PreviousMonthButton",0,aX,"Root",0,aJ,"Select",0,a0,"Week",0,a1,"WeekNumber",0,a3,"WeekNumberHeader",0,a4,"Weekday",0,a2,"Weekdays",0,a5,"Weeks",0,a7,"YearsDropdown",0,a6],21068);var a8=e.i(21068);function a9(){let e={};for(let t in l)e[l[t]]=`rdp-${l[t]}`;for(let t in i)e[i[t]]=`rdp-${i[t]}`;for(let t in d)e[d[t]]=`rdp-${d[t]}`;for(let t in c)e[c[t]]=`rdp-${c[t]}`;return e}function se(e,t,a){return(a??new aN(t)).formatMonthYear(e)}function st(e,t,a){return(a??new aN(t)).format(e,"d")}function sa(e,t=aM){return t.format(e,"LLLL")}function ss(e,t,a){return(a??new aN(t)).format(e,"cccccc")}function sn(e,t=aM){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function sr(){return""}function so(e,t=aM){return t.format(e,"yyyy")}e.s([],95970),e.i(95970),e.s(["formatCaption",0,se],45340),e.i(45340),e.s(["formatDay",0,st],24953),e.i(24953),e.s(["formatMonthDropdown",0,sa],65656),e.i(65656),e.s(["formatWeekdayName",0,ss],67985),e.i(67985),e.s(["formatWeekNumber",0,sn],85529),e.i(85529),e.s(["formatWeekNumberHeader",0,sr],17886),e.i(17886),e.s(["formatYearDropdown",0,so],10230),e.i(10230),e.s(["formatCaption",0,se,"formatDay",0,st,"formatMonthDropdown",0,sa,"formatWeekNumber",0,sn,"formatWeekNumberHeader",0,sr,"formatWeekdayName",0,ss,"formatYearDropdown",0,so],15789);var sl=e.i(15789);function si(e,t,a,s){let n=(s??new aN(a)).format(e,"PPPP");return t.today&&(n=`Today, ${n}`),t.selected&&(n=`${n}, selected`),n}function sd(e,t,a){return(a??new aN(t)).formatMonthYear(e)}function sc(e,t,a,s){let n=(s??new aN(a)).format(e,"PPPP");return t?.today&&(n=`Today, ${n}`),n}function su(e){return"Choose the Month"}function sm(){return""}function sh(e,t){return"Go to the Next Month"}function sp(e){return"Go to the Previous Month"}function sf(e,t,a){return(a??new aN(t)).format(e,"cccc")}function sg(e,t){return`Week ${e}`}function sx(e){return"Week Number"}function sv(e){return"Choose the Year"}e.s([],11623),e.i(11623),e.s(["labelDayButton",0,si],28271),e.i(28271),e.s(["labelGrid",0,sd],32718),e.i(32718),e.s(["labelGridcell",0,sc],78343),e.i(78343),e.s(["labelMonthDropdown",0,su],18918),e.i(18918),e.s(["labelNav",0,sm],32908),e.i(32908),e.s(["labelNext",0,sh],45970),e.i(45970),e.s(["labelPrevious",0,sp],37904),e.i(37904),e.s(["labelWeekday",0,sf],51176),e.i(51176),e.s(["labelWeekNumber",0,sg],28937),e.i(28937),e.s(["labelWeekNumberHeader",0,sx],81880),e.i(81880),e.s(["labelYearDropdown",0,sv],38246),e.i(38246),e.s(["labelDayButton",0,si,"labelGrid",0,sd,"labelGridcell",0,sc,"labelMonthDropdown",0,su,"labelNav",0,sm,"labelNext",0,sh,"labelPrevious",0,sp,"labelWeekNumber",0,sg,"labelWeekNumberHeader",0,sx,"labelWeekday",0,sf,"labelYearDropdown",0,sv],41896);var sb=e.i(41896);let sy=(e,t,a)=>t||(a?"function"==typeof a?a:(...e)=>a:e),sj=e=>e instanceof HTMLElement?e:null,sw=e=>[...e.querySelectorAll("[data-animated-month]")??[]],sk=e=>sj(e.querySelector("[data-animated-caption]")),sS=e=>sj(e.querySelector("[data-animated-weeks]"));function sN(e,t,a,s){let{month:n,defaultMonth:r,today:o=s.today(),numberOfMonths:l=1}=e,i=n||r||o,{differenceInCalendarMonths:d,addMonths:c,startOfMonth:u}=s;return a&&d(a,i)<l-1&&(i=c(a,-1*(l-1))),t&&0>d(i,t)&&(i=t),u(i)}class sM{constructor(e,t,a=aM){this.date=e,this.displayMonth=t,this.outside=!!(t&&!a.isSameMonth(e,t)),this.dateLib=a,this.isoDate=a.format(e,"yyyy-MM-dd"),this.displayMonthId=a.format(t,"yyyy-MM"),this.dateMonthId=a.format(e,"yyyy-MM")}isEqualTo(e){return this.dateLib.isSameDay(e.date,this.date)&&this.dateLib.isSameMonth(e.displayMonth,this.displayMonth)}}class sC{constructor(e,t){this.date=e,this.weeks=t}}class sT{constructor(e,t){this.days=t,this.weekNumber=e}}function sD(e,t){let[a,s]=(0,h.useState)(e);return[void 0===t?a:t,s]}function sO(e){return!e[i.disabled]&&!e[i.hidden]&&!e[i.outside]}function sE(e,t,a=aM){return aC(e,t.from,!1,a)||aC(e,t.to,!1,a)||aC(t,e.from,!1,a)||aC(t,e.to,!1,a)}function sL(e,t){return e instanceof t_&&e.timeZone===t?e:new t_(e,t)}function sW(e,t,a){if(!a)return sL(e,t);let s=sL(e,t);return new Date(new t_(s.getFullYear(),s.getMonth(),s.getDate(),12,0,0,t).getTime())}function sP(e,t,a){return"boolean"==typeof e||"function"==typeof e?e:e instanceof Date?sW(e,t,a):Array.isArray(e)?e.map(e=>e instanceof Date?sW(e,t,a):e):aD(e)?{...e,from:e.from?sL(e.from,t):e.from,to:e.to?sL(e.to,t):e.to}:aT(e)?{before:sW(e.before,t,a),after:sW(e.after,t,a)}:aO(e)?{after:sW(e.after,t,a)}:aE(e)?{before:sW(e.before,t,a)}:e}function s$(e,t,a){return e?Array.isArray(e)?e.map(e=>sP(e,t,a)):sP(e,t,a):e}function sR(e){var t;let a,s=e,n=s.timeZone;if(n&&((s={...e,timeZone:n}).today&&(s.today=sL(s.today,n)),s.month&&(s.month=sL(s.month,n)),s.defaultMonth&&(s.defaultMonth=sL(s.defaultMonth,n)),s.startMonth&&(s.startMonth=sL(s.startMonth,n)),s.endMonth&&(s.endMonth=sL(s.endMonth,n)),"single"===s.mode&&s.selected?s.selected=sL(s.selected,n):"multiple"===s.mode&&s.selected?s.selected=s.selected?.map(e=>sL(e,n)):"range"===s.mode&&s.selected&&(s.selected={from:s.selected.from?sL(s.selected.from,n):s.selected.from,to:s.selected.to?sL(s.selected.to,n):s.selected.to}),void 0!==s.disabled&&(s.disabled=s$(s.disabled,n)),void 0!==s.hidden&&(s.hidden=s$(s.hidden,n)),s.modifiers)){let e={};Object.keys(s.modifiers).forEach(t=>{e[t]=s$(s.modifiers?.[t],n)}),s.modifiers=e}let{components:r,formatters:o,labels:m,dateLib:p,locale:f,classNames:g}=(0,h.useMemo)(()=>{var e,t,a,n;let r,o={...aS,...s.locale},l=s.broadcastCalendar?1:s.weekStartsOn,i=s.noonSafe&&s.timeZone?function(e,t={}){let{weekStartsOn:a,locale:s}=t,n=a??s?.options?.weekStartsOn??0,r=t=>{let a="number"==typeof t||"string"==typeof t?new Date(t):t;return new t_(a.getFullYear(),a.getMonth(),a.getDate(),12,0,0,e)},o=e=>{let t=r(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0)};return{today:()=>r(t_.tz(e)),newDate:(t,a,s)=>new t_(t,a,s,12,0,0,e),startOfDay:e=>r(e),startOfWeek:(e,t)=>{let a=r(e),s=t?.weekStartsOn??n,o=(a.getDay()-s+7)%7;return a.setDate(a.getDate()-o),a},startOfISOWeek:e=>{let t=r(e),a=(t.getDay()-1+7)%7;return t.setDate(t.getDate()-a),t},startOfMonth:e=>{let t=r(e);return t.setDate(1),t},startOfYear:e=>{let t=r(e);return t.setMonth(0,1),t},endOfWeek:(e,t)=>{let a=r(e),s=(((t?.weekStartsOn??n)+6)%7-a.getDay()+7)%7;return a.setDate(a.getDate()+s),a},endOfISOWeek:e=>{let t=r(e),a=(7-t.getDay())%7;return t.setDate(t.getDate()+a),t},endOfMonth:e=>{let t=r(e);return t.setMonth(t.getMonth()+1,0),t},endOfYear:e=>{let t=r(e);return t.setMonth(11,31),t},eachMonthOfInterval:t=>{let a=r(t.start),s=r(t.end),n=[],o=new t_(a.getFullYear(),a.getMonth(),1,12,0,0,e),l=12*s.getFullYear()+s.getMonth();for(;12*o.getFullYear()+o.getMonth()<=l;)n.push(new t_(o,e)),o.setMonth(o.getMonth()+1,1);return n},addDays:(e,t)=>{let a=r(e);return a.setDate(a.getDate()+t),a},addWeeks:(e,t)=>{let a=r(e);return a.setDate(a.getDate()+7*t),a},addMonths:(e,t)=>{let a=r(e);return a.setMonth(a.getMonth()+t),a},addYears:(e,t)=>{let a=r(e);return a.setFullYear(a.getFullYear()+t),a},eachYearOfInterval:t=>{let a=r(t.start),s=r(t.end),n=[],o=new t_(a.getFullYear(),0,1,12,0,0,e);for(;o.getFullYear()<=s.getFullYear();)n.push(new t_(o,e)),o.setFullYear(o.getFullYear()+1,0,1);return n},getWeek:(e,t)=>as(o(e),{weekStartsOn:t?.weekStartsOn??n,firstWeekContainsDate:t?.firstWeekContainsDate??s?.options?.firstWeekContainsDate??1}),getISOWeek:e=>at(o(e)),differenceInCalendarDays:(e,t)=>tV(o(e),o(t)),differenceInCalendarMonths:(e,t)=>tK(o(e),o(t))}}(s.timeZone,{weekStartsOn:l,locale:o}):void 0,d=s.dateLib&&i?{...i,...s.dateLib}:s.dateLib??i,c=new aN({locale:o,weekStartsOn:l,firstWeekContainsDate:s.firstWeekContainsDate,useAdditionalWeekYearTokens:s.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:s.useAdditionalDayOfYearTokens,timeZone:s.timeZone,numerals:s.numerals},d);return{dateLib:c,components:(e=s.components,{...a8,...e}),formatters:(t=s.formatters,{...sl,...t}),labels:(a=s.labels,n=c.options,r=n.locale?.labels??{},{...sb,...a??{},labelDayButton:sy(sb.labelDayButton,a?.labelDayButton,r.labelDayButton),labelMonthDropdown:sy(sb.labelMonthDropdown,a?.labelMonthDropdown,r.labelMonthDropdown),labelNext:sy(sb.labelNext,a?.labelNext,r.labelNext),labelPrevious:sy(sb.labelPrevious,a?.labelPrevious,r.labelPrevious),labelWeekNumber:sy(sb.labelWeekNumber,a?.labelWeekNumber,r.labelWeekNumber),labelYearDropdown:sy(sb.labelYearDropdown,a?.labelYearDropdown,r.labelYearDropdown),labelGrid:sy(sb.labelGrid,a?.labelGrid,r.labelGrid),labelGridcell:sy(sb.labelGridcell,a?.labelGridcell,r.labelGridcell),labelNav:sy(sb.labelNav,a?.labelNav,r.labelNav),labelWeekNumberHeader:sy(sb.labelWeekNumberHeader,a?.labelWeekNumberHeader,r.labelWeekNumberHeader),labelWeekday:sy(sb.labelWeekday,a?.labelWeekday,r.labelWeekday)}),locale:o,classNames:{...a9(),...s.classNames}}},[s.locale,s.broadcastCalendar,s.weekStartsOn,s.firstWeekContainsDate,s.useAdditionalWeekYearTokens,s.useAdditionalDayOfYearTokens,s.timeZone,s.numerals,s.dateLib,s.noonSafe,s.components,s.formatters,s.labels,s.classNames]);s.today||(s={...s,today:p.today()});let{captionLayout:x,mode:v,navLayout:b,numberOfMonths:y=1,onDayBlur:j,onDayClick:w,onDayFocus:k,onDayKeyDown:S,onDayMouseEnter:N,onDayMouseLeave:M,onNextClick:C,onPrevClick:T,showWeekNumber:D,styles:O}=s,{formatCaption:E,formatDay:L,formatMonthDropdown:W,formatWeekNumber:P,formatWeekNumberHeader:$,formatWeekdayName:R,formatYearDropdown:A}=o,F=function(e,t){let[a,s]=function(e,t){let{startMonth:a,endMonth:s}=e,{startOfYear:n,startOfDay:r,startOfMonth:o,endOfMonth:l,addYears:i,endOfYear:d,today:c}=t,u="dropdown"===e.captionLayout||"dropdown-years"===e.captionLayout;return a?a=o(a):!a&&u&&(a=n(i(e.today??c(),-100))),s?s=l(s):!s&&u&&(s=d(e.today??c())),[a?r(a):a,s?r(s):s]}(e,t),{startOfMonth:n,endOfMonth:r}=t,o=sN(e,a,s,t),[l,i]=sD(o,e.month?o:void 0);(0,h.useEffect)(()=>{i(sN(e,a,s,t))},[e.timeZone]);let{months:d,weeks:c,days:u,previousMonth:m,nextMonth:p}=(0,h.useMemo)(()=>{let n,o=function(e,t,a,s){let{numberOfMonths:n=1}=a,r=[];for(let a=0;a<n;a++){let n=s.addMonths(e,a);if(t&&n>t)break;r.push(n)}return r}(l,s,{numberOfMonths:e.numberOfMonths},t),i=function(e,t,a,s){let n=e[0],r=e[e.length-1],{ISOWeek:o,fixedWeeks:l,broadcastCalendar:i}=a??{},{addDays:d,differenceInCalendarDays:c,differenceInCalendarMonths:u,endOfBroadcastWeek:m,endOfISOWeek:h,endOfMonth:p,endOfWeek:f,isAfter:g,startOfBroadcastWeek:x,startOfISOWeek:v,startOfWeek:b}=s,y=i?x(n,s):o?v(n):b(n),j=i?m(r):o?h(p(r)):f(p(r)),w=t&&(i?m(t):o?h(t):f(t)),k=c(w&&g(j,w)?w:j,y),S=u(r,n)+1,N=[];for(let e=0;e<=k;e++){let t=d(y,e);N.push(t)}let M=(i?35:42)*S;if(l&&N.length<M){let e=M-N.length;for(let t=0;t<e;t++){let e=d(N[N.length-1],1);N.push(e)}}return N}(o,e.endMonth?r(e.endMonth):void 0,{ISOWeek:e.ISOWeek,fixedWeeks:e.fixedWeeks,broadcastCalendar:e.broadcastCalendar},t),d=function(e,t,a,s){let{addDays:n,endOfBroadcastWeek:r,endOfISOWeek:o,endOfMonth:l,endOfWeek:i,getISOWeek:d,getWeek:c,startOfBroadcastWeek:u,startOfISOWeek:m,startOfWeek:h}=s,p=e.reduce((e,p)=>{let f=a.broadcastCalendar?u(p,s):a.ISOWeek?m(p):h(p),g=a.broadcastCalendar?r(p):a.ISOWeek?o(l(p)):i(l(p)),x=t.filter(e=>e>=f&&e<=g),v=a.broadcastCalendar?35:42;if(a.fixedWeeks&&x.length<v){let e=t.filter(e=>{let t=v-x.length;return e>g&&e<=n(g,t)});x.push(...e)}let b=x.reduce((e,t)=>{let n=a.ISOWeek?d(t):c(t),r=e.find(e=>e.weekNumber===n),o=new sM(t,p,s);return r?r.days.push(o):e.push(new sT(n,[o])),e},[]),y=new sC(p,b);return e.push(y),e},[]);return a.reverseMonths?p.reverse():p}(o,i,{broadcastCalendar:e.broadcastCalendar,fixedWeeks:e.fixedWeeks,ISOWeek:e.ISOWeek,reverseMonths:e.reverseMonths},t),c=d.reduce((e,t)=>e.concat(t.weeks.slice()),[]),u=(n=[],d.reduce((e,t)=>{let a=t.weeks.reduce((e,t)=>e.concat(t.days.slice()),n.slice());return e.concat(a.slice())},n.slice()));return{months:d,weeks:c,days:u,previousMonth:function(e,t,a,s){if(a.disableNavigation)return;let{pagedNavigation:n,numberOfMonths:r}=a,{startOfMonth:o,addMonths:l,differenceInCalendarMonths:i}=s,d=o(e);if(!t||!(0>=i(d,t)))return l(d,-(n?r??1:1))}(l,a,e,t),nextMonth:function(e,t,a,s){if(a.disableNavigation)return;let{pagedNavigation:n,numberOfMonths:r=1}=a,{startOfMonth:o,addMonths:l,differenceInCalendarMonths:i}=s,d=o(e);if(!t||!(i(t,e)<r))return l(d,n?r:1)}(l,s,e,t)}},[t,l.getTime(),s?.getTime(),a?.getTime(),e.disableNavigation,e.broadcastCalendar,e.endMonth?.getTime(),e.fixedWeeks,e.ISOWeek,e.numberOfMonths,e.pagedNavigation,e.reverseMonths]),{disableNavigation:f,onMonthChange:g}=e,x=e=>{if(f)return;let t=n(e);a&&t<n(a)&&(t=n(a)),s&&t>n(s)&&(t=n(s)),i(t),g?.(t)};return{months:d,weeks:c,days:u,navStart:a,navEnd:s,previousMonth:m,nextMonth:p,goToMonth:x,goToDay:e=>{c.some(t=>t.days.some(t=>t.isEqualTo(e)))||x(e.date)}}}(s,p),{days:U,months:_,navStart:I,navEnd:Y,previousMonth:z,nextMonth:B,goToMonth:H}=F,G=function(e,t,a,s,n){let{disabled:r,hidden:o,modifiers:l,showOutsideDays:d,broadcastCalendar:c,today:u=n.today()}=t,{isSameDay:m,isSameMonth:h,startOfMonth:p,isBefore:f,endOfMonth:g,isAfter:x}=n,v=a&&p(a),b=s&&g(s),y={[i.focused]:[],[i.outside]:[],[i.disabled]:[],[i.hidden]:[],[i.today]:[]},j={};for(let t of e){let{date:e,displayMonth:a}=t,s=!!(a&&!h(e,a)),i=!!(v&&f(e,v)),p=!!(b&&x(e,b)),g=!!(r&&aP(e,r,n)),w=!!(o&&aP(e,o,n))||i||p||!c&&!d&&s||c&&!1===d&&s,k=m(e,u);s&&y.outside.push(t),g&&y.disabled.push(t),w&&y.hidden.push(t),k&&y.today.push(t),l&&Object.keys(l).forEach(a=>{let s=l?.[a];s&&aP(e,s,n)&&(j[a]?j[a].push(t):j[a]=[t])})}return e=>{let t={[i.focused]:!1,[i.disabled]:!1,[i.hidden]:!1,[i.outside]:!1,[i.today]:!1},a={};for(let a in y){let s=y[a];t[a]=s.some(t=>t===e)}for(let t in j)a[t]=j[t].some(t=>t===e);return{...t,...a}}}(U,s,I,Y,p),{isSelected:q,select:Z,selected:V}=function(e,t){let a=function(e,t){let{selected:a,required:s,onSelect:n}=e,[r,o]=sD(a,n?a:void 0),l=n?a:r,{isSameDay:i}=t;return{selected:l,select:(e,t,a)=>{let r=e;return!s&&l&&l&&i(e,l)&&(r=void 0),n||o(r),n?.(r,e,t,a),r},isSelected:e=>!!l&&i(l,e)}}(e,t),s=function(e,t){let{selected:a,required:s,onSelect:n}=e,[r,o]=sD(a,n?a:void 0),l=n?a:r,{isSameDay:i}=t,d=e=>l?.some(t=>i(t,e))??!1,{min:c,max:u}=e;return{selected:l,select:(e,t,a)=>{let r=[...l??[]];if(d(e)){if(l?.length===c||s&&l?.length===1)return;r=l?.filter(t=>!i(t,e))}else r=l?.length===u?[e]:[...r,e];return n||o(r),n?.(r,e,t,a),r},isSelected:d}}(e,t),n=function(e,t){let{disabled:a,excludeDisabled:s,resetOnSelect:n,selected:r,required:o,onSelect:l}=e,[i,d]=sD(r,l?r:void 0),c=l?r:i;return{selected:c,select:(r,i,u)=>{let m,{min:h,max:p}=e;if(r){let e=c?.from,a=c?.to,s=!!e&&!!a&&t.isSameDay(e,a)&&t.isSameDay(r,e);m=n&&(e&&a||!c?.from)?!o&&s?void 0:{from:r,to:void 0}:function(e,t,a=0,s=0,n=!1,r=aM){let o,{from:l,to:i}=t||{},{isSameDay:d,isAfter:c,isBefore:u}=r;if(l||i){if(l&&!i)o=d(l,e)?0===a?{from:l,to:e}:n?{from:l,to:void 0}:void 0:u(e,l)?{from:e,to:l}:{from:l,to:e};else if(l&&i)if(d(l,e)&&d(i,e))o=n?{from:l,to:i}:void 0;else if(d(l,e))o={from:l,to:a>0?void 0:e};else if(d(i,e))o={from:e,to:a>0?void 0:e};else if(u(e,l))o={from:e,to:i};else if(c(e,l))o={from:l,to:e};else if(c(e,i))o={from:l,to:e};else throw Error("Invalid range")}else o={from:e,to:a>0?void 0:e};if(o?.from&&o?.to){let t=r.differenceInCalendarDays(o.to,o.from);s>0&&t>s?o={from:e,to:void 0}:a>1&&t<a&&(o={from:e,to:void 0})}return o}(r,c,h,p,o,t)}return s&&a&&m?.from&&m.to&&function(e,t,a=aM){let s=Array.isArray(t)?t:[t];if(s.filter(e=>"function"!=typeof e).some(t=>"boolean"==typeof t?t:a.isDate(t)?aC(e,t,!1,a):aW(t,a)?t.some(t=>aC(e,t,!1,a)):aD(t)?!!t.from&&!!t.to&&sE(e,{from:t.from,to:t.to},a):aL(t)?function(e,t,a=aM){let s=Array.isArray(t)?t:[t],n=e.from,r=Math.min(a.differenceInCalendarDays(e.to,e.from),6);for(let e=0;e<=r;e++){if(s.includes(n.getDay()))return!0;n=a.addDays(n,1)}return!1}(e,t.dayOfWeek,a):aT(t)?a.isAfter(t.before,t.after)?sE(e,{from:a.addDays(t.after,1),to:a.addDays(t.before,-1)},a):aP(e.from,t,a)||aP(e.to,t,a):!!(aO(t)||aE(t))&&(aP(e.from,t,a)||aP(e.to,t,a))))return!0;let n=s.filter(e=>"function"==typeof e);if(n.length){let t=e.from,s=a.differenceInCalendarDays(e.to,e.from);for(let e=0;e<=s;e++){if(n.some(e=>e(t)))return!0;t=a.addDays(t,1)}}return!1}({from:m.from,to:m.to},a,t)&&(m.from=r,m.to=void 0),l||d(m),l?.(m,r,i,u),m},isSelected:e=>c&&aC(c,e,!1,t)}}(e,t);switch(e.mode){case"single":return a;case"multiple":return s;case"range":return n;default:return}}(s,p)??{},{blur:K,focused:Q,isFocusTarget:X,moveFocus:J,setFocused:ee}=function(e,t,a,s,n){let{autoFocus:r}=e,[o,l]=(0,h.useState)(),d=function(e,t,a,s){let n,r=-1;for(let o of e){let e=t(o);sO(e)&&(e[i.focused]&&r<u.FocusedModifier?(n=o,r=u.FocusedModifier):s?.isEqualTo(o)&&r<u.LastFocused?(n=o,r=u.LastFocused):a(o.date)&&r<u.Selected?(n=o,r=u.Selected):e[i.today]&&r<u.Today&&(n=o,r=u.Today))}return n||(n=e.find(e=>sO(t(e)))),n}(t.days,a,s||(()=>!1),o),[c,m]=(0,h.useState)(r?d:void 0);return(0,h.useEffect)(()=>{c&&d&&(t.days.some(e=>e.isEqualTo(c))||m(d))},[t.days,c,d]),{isFocusTarget:e=>!!d?.isEqualTo(e),setFocused:m,focused:c,blur:()=>{l(c),m(void 0)},moveFocus:(a,s)=>{if(!c)return;let r=function e(t,a,s,n,r,o,l,i=0){if(i>365)return;let d=function(e,t,a,s,n,r,o){let{ISOWeek:l,broadcastCalendar:i}=r,{addDays:d,addMonths:c,addWeeks:u,addYears:m,endOfBroadcastWeek:h,endOfISOWeek:p,endOfWeek:f,max:g,min:x,startOfBroadcastWeek:v,startOfISOWeek:b,startOfWeek:y}=o,j=({day:d,week:u,month:c,year:m,startOfWeek:e=>i?v(e,o):l?b(e):y(e),endOfWeek:e=>i?h(e):l?p(e):f(e)})[e](a,"after"===t?1:-1);return"before"===t&&s?j=g([s,j]):"after"===t&&n&&(j=x([n,j])),j}(t,a,s.date,n,r,o,l),c=!!(o.disabled&&aP(d,o.disabled,l)),u=!!(o.hidden&&aP(d,o.hidden,l)),m=new sM(d,d,l);return c||u?e(t,a,m,n,r,o,l,i+1):m}(a,s,c,t.navStart,t.navEnd,e,n);if(r){if(e.disableNavigation&&!t.days.some(e=>e.isEqualTo(r)))return;t.goToDay(r),m(r)}}}}(s,F,G,q??(()=>!1),p),{labelDayButton:et,labelGridcell:ea,labelGrid:es,labelMonthDropdown:en,labelNav:er,labelPrevious:eo,labelNext:el,labelWeekday:ei,labelWeekNumber:ed,labelWeekNumberHeader:ec,labelYearDropdown:eu}=m,em=(0,h.useMemo)(()=>(function(e,t,a,s){let n=s??e.today(),r=a?e.startOfBroadcastWeek(n,e):t?e.startOfISOWeek(n):e.startOfWeek(n),o=[];for(let t=0;t<7;t++){let a=e.addDays(r,t);o.push(a)}return o})(p,s.ISOWeek,s.broadcastCalendar,s.today),[p,s.ISOWeek,s.broadcastCalendar,s.today]),eh=void 0!==v||void 0!==w,ep=(0,h.useCallback)(()=>{z&&(H(z),T?.(z))},[z,H,T]),ef=(0,h.useCallback)(()=>{B&&(H(B),C?.(B))},[H,B,C]),eg=(0,h.useCallback)((e,t)=>a=>{a.preventDefault(),a.stopPropagation(),ee(e),t.disabled||(Z?.(e.date,t,a),w?.(e.date,t,a))},[Z,w,ee]),ex=(0,h.useCallback)((e,t)=>a=>{ee(e),k?.(e.date,t,a)},[k,ee]),ev=(0,h.useCallback)((e,t)=>a=>{K(),j?.(e.date,t,a)},[K,j]),eb=(0,h.useCallback)((e,t)=>a=>{let n={ArrowLeft:[a.shiftKey?"month":"day","rtl"===s.dir?"after":"before"],ArrowRight:[a.shiftKey?"month":"day","rtl"===s.dir?"before":"after"],ArrowDown:[a.shiftKey?"year":"week","after"],ArrowUp:[a.shiftKey?"year":"week","before"],PageUp:[a.shiftKey?"year":"month","before"],PageDown:[a.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(n[a.key]){a.preventDefault(),a.stopPropagation();let[e,t]=n[a.key];J(e,t)}S?.(e.date,t,a)},[J,S,s.dir]),ey=(0,h.useCallback)((e,t)=>a=>{N?.(e.date,t,a)},[N]),ej=(0,h.useCallback)((e,t)=>a=>{M?.(e.date,t,a)},[M]),ew=(0,h.useCallback)((e,t)=>a=>{let s=Number(a.target.value),n=p.setMonth(p.startOfMonth(e),s);H(p.addMonths(n,-t))},[p,H]),ek=(0,h.useCallback)((e,t)=>a=>{let s=Number(a.target.value),n=p.setYear(p.startOfMonth(e),s);H(p.addMonths(n,-t))},[p,H]),{className:eS,style:eN}=(0,h.useMemo)(()=>({className:[g[l.Root],s.className].filter(Boolean).join(" "),style:{...O?.[l.Root],...s.style}}),[g,s.className,s.style,O]),eM=(a={"data-mode":(t=s).mode??void 0,"data-required":"required"in t?t.required:void 0,"data-multiple-months":t.numberOfMonths&&t.numberOfMonths>1||void 0,"data-week-numbers":t.showWeekNumber||void 0,"data-broadcast-calendar":t.broadcastCalendar||void 0,"data-nav-layout":t.navLayout||void 0},Object.entries(t).forEach(([e,t])=>{e.startsWith("data-")&&(a[e]=t)}),a),eC=e=>{let t=O?.[l.Dropdown],a=O?.[e];if(t||a)return{...t,...a}},eT=(0,h.useRef)(null);!function(e,t,{classNames:a,months:s,focused:n,dateLib:r}){let o=(0,h.useRef)(null),l=(0,h.useRef)(s),i=(0,h.useRef)(!1);(0,h.useLayoutEffect)(()=>{let d=l.current;if(l.current=s,!t||!e.current||!(e.current instanceof HTMLElement)||0===s.length||0===d.length||s.length!==d.length)return;let u=r.isSameMonth(s[0].date,d[0].date),m=r.isAfter(s[0].date,d[0].date),h=m?a[c.caption_after_enter]:a[c.caption_before_enter],p=m?a[c.weeks_after_enter]:a[c.weeks_before_enter],f=o.current,g=e.current.cloneNode(!0);if(g instanceof HTMLElement?(sw(g).forEach(e=>{if(!(e instanceof HTMLElement))return;let t=sj(e.querySelector("[data-animated-month]"));t&&e.contains(t)&&e.removeChild(t);let a=sk(e);a&&a.classList.remove(h);let s=sS(e);s&&s.classList.remove(p)}),o.current=g):o.current=null,i.current||u||n)return;let x=f instanceof HTMLElement?sw(f):[],v=sw(e.current);if(v?.every(e=>e instanceof HTMLElement)&&x?.every(e=>e instanceof HTMLElement)){i.current=!0;let t=[];e.current.style.isolation="isolate";let s=sj(e.current.querySelector("[data-animated-nav]"));s&&(s.style.zIndex="1"),v.forEach((n,r)=>{let o=x[r];if(!o)return;n.style.position="relative",n.style.overflow="hidden";let l=sk(n);l&&l.classList.add(h);let d=sS(n);d&&d.classList.add(p);let u=()=>{i.current=!1,e.current&&(e.current.style.isolation=""),s&&(s.style.zIndex=""),l&&l.classList.remove(h),d&&d.classList.remove(p),n.style.position="",n.style.overflow="",n.contains(o)&&n.removeChild(o)};t.push(u),o.style.pointerEvents="none",o.style.position="absolute",o.style.overflow="hidden",o.setAttribute("aria-hidden","true");let f=sj(o.querySelector("[data-animated-weekdays]"));f&&(f.style.opacity="0");let g=sk(o);g&&(g.classList.add(m?a[c.caption_before_exit]:a[c.caption_after_exit]),g.addEventListener("animationend",u));let v=sS(o);v&&v.classList.add(m?a[c.weeks_before_exit]:a[c.weeks_after_exit]),n.insertBefore(o,n.firstChild)})}})}(eT,!!s.animate,{classNames:g,months:_,focused:Q,dateLib:p});let eD={dayPickerProps:s,selected:V,select:Z,isSelected:q,months:_,nextMonth:B,previousMonth:z,goToMonth:H,getModifiers:G,components:r,classNames:g,styles:O,labels:m,formatters:o};return h.default.createElement(aU.Provider,{value:eD},h.default.createElement(r.Root,{rootRef:s.animate?eT:void 0,className:eS,style:eN,dir:s.dir,id:s.id,lang:s.lang??f.code,nonce:s.nonce,title:s.title,role:s.role,"aria-label":s["aria-label"],"aria-labelledby":s["aria-labelledby"],...eM},h.default.createElement(r.Months,{className:g[l.Months],style:O?.[l.Months]},!s.hideNavigation&&!b&&h.default.createElement(r.Nav,{"data-animated-nav":s.animate?"true":void 0,className:g[l.Nav],style:O?.[l.Nav],"aria-label":er(),onPreviousClick:ep,onNextClick:ef,previousMonth:z,nextMonth:B}),_.map((e,t)=>{let a,n,c=s.reverseMonths?_.length-1-t:t;return h.default.createElement(r.Month,{"data-animated-month":s.animate?"true":void 0,className:g[l.Month],style:O?.[l.Month],key:t,displayIndex:t,calendarMonth:e},"around"===b&&!s.hideNavigation&&0===t&&h.default.createElement(r.PreviousMonthButton,{type:"button",className:g[l.PreviousMonthButton],style:O?.[l.PreviousMonthButton],tabIndex:z?void 0:-1,"aria-disabled":!z||void 0,"aria-label":eo(z),onClick:ep,"data-animated-button":s.animate?"true":void 0},h.default.createElement(r.Chevron,{disabled:!z||void 0,className:g[l.Chevron],style:O?.[l.Chevron],orientation:"rtl"===s.dir?"right":"left"})),h.default.createElement(r.MonthCaption,{"data-animated-caption":s.animate?"true":void 0,className:g[l.MonthCaption],style:O?.[l.MonthCaption],calendarMonth:e,displayIndex:t},x?.startsWith("dropdown")?h.default.createElement(r.DropdownNav,{className:g[l.Dropdowns],style:O?.[l.Dropdowns]},(a="dropdown"===x||"dropdown-months"===x?h.default.createElement(r.MonthsDropdown,{key:"month",className:g[l.MonthsDropdown],"aria-label":en(),disabled:!!s.disableNavigation,onChange:ew(e.date,c),options:function(e,t,a,s,n){let{startOfMonth:r,startOfYear:o,endOfYear:l,eachMonthOfInterval:i,getMonth:d}=n;return i({start:o(e),end:l(e)}).map(e=>{let o=s.formatMonthDropdown(e,n);return{value:d(e),label:o,disabled:t&&e<r(t)||a&&e>r(a)||!1}})}(e.date,I,Y,o,p),style:eC(l.MonthsDropdown),value:p.getMonth(e.date)}):h.default.createElement("span",{key:"month"},W(e.date,p)),n="dropdown"===x||"dropdown-years"===x?h.default.createElement(r.YearsDropdown,{key:"year",className:g[l.YearsDropdown],"aria-label":eu(p.options),disabled:!!s.disableNavigation,onChange:ek(e.date,c),options:function(e,t,a,s,n=!1){if(!e||!t)return;let{startOfYear:r,endOfYear:o,eachYearOfInterval:l,getYear:i}=s,d=l({start:r(e),end:o(t)});return n&&d.reverse(),d.map(e=>{let t=a.formatYearDropdown(e,s);return{value:i(e),label:t,disabled:!1}})}(I,Y,o,p,!!s.reverseYears),style:eC(l.YearsDropdown),value:p.getYear(e.date)}):h.default.createElement("span",{key:"year"},A(e.date,p)),"year-first"===p.getMonthYearOrder()?[n,a]:[a,n]),h.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"}},E(e.date,p.options,p))):h.default.createElement(r.CaptionLabel,{className:g[l.CaptionLabel],style:O?.[l.CaptionLabel],role:"status","aria-live":"polite"},E(e.date,p.options,p))),"around"===b&&!s.hideNavigation&&t===y-1&&h.default.createElement(r.NextMonthButton,{type:"button",className:g[l.NextMonthButton],style:O?.[l.NextMonthButton],tabIndex:B?void 0:-1,"aria-disabled":!B||void 0,"aria-label":el(B),onClick:ef,"data-animated-button":s.animate?"true":void 0},h.default.createElement(r.Chevron,{disabled:!B||void 0,className:g[l.Chevron],style:O?.[l.Chevron],orientation:"rtl"===s.dir?"left":"right"})),t===y-1&&"after"===b&&!s.hideNavigation&&h.default.createElement(r.Nav,{"data-animated-nav":s.animate?"true":void 0,className:g[l.Nav],style:O?.[l.Nav],"aria-label":er(),onPreviousClick:ep,onNextClick:ef,previousMonth:z,nextMonth:B}),h.default.createElement(r.MonthGrid,{role:"grid","aria-multiselectable":"multiple"===v||"range"===v,"aria-label":es(e.date,p.options,p)||void 0,className:g[l.MonthGrid],style:O?.[l.MonthGrid]},!s.hideWeekdays&&h.default.createElement(r.Weekdays,{"data-animated-weekdays":s.animate?"true":void 0,className:g[l.Weekdays],style:O?.[l.Weekdays]},D&&h.default.createElement(r.WeekNumberHeader,{"aria-label":ec(p.options),className:g[l.WeekNumberHeader],style:O?.[l.WeekNumberHeader],scope:"col"},$()),em.map(e=>h.default.createElement(r.Weekday,{"aria-label":ei(e,p.options,p),className:g[l.Weekday],key:String(e),style:O?.[l.Weekday],scope:"col"},R(e,p.options,p)))),h.default.createElement(r.Weeks,{"data-animated-weeks":s.animate?"true":void 0,className:g[l.Weeks],style:O?.[l.Weeks]},e.weeks.map(e=>h.default.createElement(r.Week,{className:g[l.Week],key:e.weekNumber,style:O?.[l.Week],week:e},D&&h.default.createElement(r.WeekNumber,{week:e,style:O?.[l.WeekNumber],"aria-label":ed(e.weekNumber,{locale:f}),className:g[l.WeekNumber],scope:"row",role:"rowheader"},P(e.weekNumber,p)),e.days.map(e=>{let{date:t}=e,a=G(e);if(a[i.focused]=!a.hidden&&!!Q?.isEqualTo(e),a[d.selected]=q?.(t)||a.selected,aD(V)){let{from:e,to:s}=V;a[d.range_start]=!!(e&&s&&p.isSameDay(t,e)),a[d.range_end]=!!(e&&s&&p.isSameDay(t,s)),a[d.range_middle]=aC(V,t,!0,p)}let n=function(e,t={},a={}){let s={...t?.[l.Day]};return Object.entries(e).filter(([,e])=>!0===e).forEach(([e])=>{s={...s,...a?.[e]}}),s}(a,O,s.modifiersStyles),o=function(e,t,a={}){return Object.entries(e).filter(([,e])=>!0===e).reduce((e,[s])=>(a[s]?e.push(a[s]):t[i[s]]?e.push(t[i[s]]):t[d[s]]&&e.push(t[d[s]]),e),[t[l.Day]])}(a,g,s.modifiersClassNames),c=eh||a.hidden?void 0:ea(t,a,p.options,p);return h.default.createElement(r.Day,{key:`${e.isoDate}_${e.displayMonthId}`,day:e,modifiers:a,className:o.join(" "),style:n,role:"gridcell","aria-selected":a.selected||void 0,"aria-label":c,"data-day":e.isoDate,"data-month":e.outside?e.dateMonthId:void 0,"data-selected":a.selected||void 0,"data-disabled":a.disabled||void 0,"data-hidden":a.hidden||void 0,"data-outside":e.outside||void 0,"data-focused":a.focused||void 0,"data-today":a.today||void 0},!a.hidden&&eh?h.default.createElement(r.DayButton,{className:g[l.DayButton],style:O?.[l.DayButton],type:"button",day:e,modifiers:a,disabled:!a.focused&&a.disabled||void 0,"aria-disabled":a.focused&&a.disabled||void 0,tabIndex:X(e)?0:-1,"aria-label":et(t,a,p.options,p),onClick:eg(e,a),onBlur:ev(e,a),onFocus:ex(e,a),onKeyDown:eb(e,a),onMouseEnter:ey(e,a),onMouseLeave:ej(e,a)},L(t,p.options,p)):!a.hidden&&L(e.date,p.options,p))}))))))})),s.footer&&h.default.createElement(r.Footer,{className:g[l.Footer],style:O?.[l.Footer],role:"status","aria-live":"polite"},s.footer)))}(o=u||(u={}))[o.Today=0]="Today",o[o.Selected=1]="Selected",o[o.LastFocused=2]="LastFocused",o[o.FocusedModifier=3]="FocusedModifier";var sA=e.i(98993),sA=sA,sF=e.i(98464);function sU({className:e,classNames:t,showOutsideDays:a=!0,captionLayout:s="label",buttonVariant:n="ghost",locale:r,formatters:o,components:l,...i}){let d=a9();return(0,m.jsx)(sR,{showOutsideDays:a,className:(0,X.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`,e),captionLayout:s,locale:r,formatters:{formatMonthDropdown:e=>e.toLocaleString(r?.code,{month:"short"}),...o},classNames:{root:(0,X.cn)("w-fit",d.root),months:(0,X.cn)("relative flex flex-col gap-4 md:flex-row",d.months),month:(0,X.cn)("flex w-full flex-col gap-4",d.month),nav:(0,X.cn)("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",d.nav),button_previous:(0,X.cn)((0,M.buttonVariants)({variant:n}),"size-(--cell-size) p-0 select-none aria-disabled:opacity-50",d.button_previous),button_next:(0,X.cn)((0,M.buttonVariants)({variant:n}),"size-(--cell-size) p-0 select-none aria-disabled:opacity-50",d.button_next),month_caption:(0,X.cn)("flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)",d.month_caption),dropdowns:(0,X.cn)("flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium",d.dropdowns),dropdown_root:(0,X.cn)("relative rounded-(--cell-radius)",d.dropdown_root),dropdown:(0,X.cn)("absolute inset-0 bg-popover opacity-0",d.dropdown),caption_label:(0,X.cn)("font-medium select-none","label"===s?"text-sm":"flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground",d.caption_label),month_grid:(0,X.cn)("w-full border-collapse",d.month_grid),weekdays:(0,X.cn)("flex",d.weekdays),weekday:(0,X.cn)("flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none",d.weekday),week:(0,X.cn)("mt-2 flex w-full",d.week),week_number_header:(0,X.cn)("w-(--cell-size) select-none",d.week_number_header),week_number:(0,X.cn)("text-[0.8rem] text-muted-foreground select-none",d.week_number),day:(0,X.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)",d.day),range_start:(0,X.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",d.range_start),range_middle:(0,X.cn)("rounded-none",d.range_middle),range_end:(0,X.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",d.range_end),today:(0,X.cn)("rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none",d.today),outside:(0,X.cn)("text-muted-foreground aria-selected:text-muted-foreground",d.outside),disabled:(0,X.cn)("text-muted-foreground opacity-50",d.disabled),hidden:(0,X.cn)("invisible",d.hidden),...t},components:{Root:({className:e,rootRef:t,...a})=>(0,m.jsx)("div",{"data-slot":"calendar",ref:t,className:(0,X.cn)(e),...a}),Chevron:({className:e,orientation:t,...a})=>"left"===t?(0,m.jsx)(tD,{className:(0,X.cn)("size-4",e),...a}):"right"===t?(0,m.jsx)(sA.default,{className:(0,X.cn)("size-4",e),...a}):(0,m.jsx)(sF.ChevronDownIcon,{className:(0,X.cn)("size-4",e),...a}),DayButton:({...e})=>(0,m.jsx)(s_,{locale:r,...e}),WeekNumber:({children:e,...t})=>(0,m.jsx)("td",{...t,children:(0,m.jsx)("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:e})}),...l},...i})}function s_({className:e,day:t,modifiers:a,locale:s,...n}){let r=a9(),o=h.useRef(null);return h.useEffect(()=>{a.focused&&o.current?.focus()},[a.focused]),(0,m.jsx)(M.Button,{variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(s?.code),"data-selected-single":a.selected&&!a.range_start&&!a.range_end&&!a.range_middle,"data-range-start":a.range_start,"data-range-end":a.range_end,"data-range-middle":a.range_middle,className:(0,X.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",r.day,e),...n})}e.s([],55761),e.i(55761);var sI=e.i(28698),sY=e.i(80553),sz=e.i(82420);let sB=h.createContext(void 0);function sH(e){let t=h.useContext(sB);if(void 0===t&&!e)throw Error((0,sz.default)(47));return t}var sG=e.i(16941),sq=e.i(68790),sZ=e.i(2304),sV=e.i(53076),sK=e.i(99389),sQ=e.i(53526),sX=e.i(1556),sJ=e.i(26931),s0=e.i(47385),s1=e.i(51162);let s2={...sJ.popupStoreSelectors,disabled:e=>e.disabled,instantType:e=>e.instantType,openMethod:e=>e.openMethod,openChangeReason:e=>e.openChangeReason,modal:e=>e.modal,focusManagerModal:e=>e.focusManagerModal,stickIfOpen:e=>e.stickIfOpen,titleElementId:e=>e.titleElementId,descriptionElementId:e=>e.descriptionElementId,openOnHover:e=>e.openOnHover,closeDelay:e=>e.closeDelay,adaptiveOrigin:e=>e.adaptiveOrigin};class s5 extends sq.ReactStore{constructor(e,t,a){const s=new s0.PopupTriggerMap;super(s3(e,s,t,a),s4(s),s2)}setOpen=(e,t)=>{let a,s=t.reason===sK.REASONS.triggerHover,n=t.reason===sK.REASONS.triggerPress&&0===t.event.detail,r=!e&&(t.reason===sK.REASONS.escapeKey||null==t.reason),o=(0,sX.attachPreventUnmountOnClose)(t),l=this.select("activeTriggerId");if(e||t.reason!==sK.REASONS.closePress||null!=t.trigger||null==l||(t.trigger=this.context.triggerElements.getById(l)??this.select("activeTriggerElement")??void 0),this.context.onOpenChange?.(e,t),t.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(e,t);let i=()=>{let a={open:e,openChangeReason:t.reason};(0,sX.setPopupOpenState)(a,e,t.trigger,o()),this.update(a)};s?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start(s1.PATIENT_CLICK_THRESHOLD,()=>{this.set("stickIfOpen",!1)}),sG.flushSync(i)):i(),n?a="click":r?a="dismiss":t.reason===sK.REASONS.focusOut&&(a="focus"),this.set("instantType",a)}}function s3(e,t,a,s=!1){let n={...(0,sJ.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,...e};return n.open&&e?.mounted===void 0&&(n.mounted=!0),n.floatingRootContext=(0,sJ.createPopupFloatingRootContext)(t,a,s),n}function s4(e){return{popupRef:h.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerFocusTargetRef:h.createRef(),beforeContentFocusGuardRef:h.createRef(),stickIfOpenTimeout:new sZ.Timeout,triggerElements:e}}var s7=e.i(51068);function s6({props:e}){var t;let a,{children:s,open:n,defaultOpen:r=!1,onOpenChange:o,onOpenChangeComplete:l,modal:i=!1,handle:d,triggerId:c,defaultTriggerId:u=null}=e,p=(t={modal:i,open:r,openProp:n,activeTriggerId:u,triggerIdProp:c},a=(0,sX.usePopupRootStore)((e,a)=>new s5(t,e,a)),h.useEffect(()=>a.context.stickIfOpenTimeout.disposeEffect(),[a]),a);p.useControlledProp("openProp",n),p.useControlledProp("triggerIdProp",c);let f=p.useState("open"),g=p.useState("mounted"),x=p.useState("payload");p.useContextCallback("onOpenChange",o),p.useContextCallback("onOpenChangeComplete",l),(0,sX.usePopupRootSync)(p,f),(0,sX.useImplicitActiveTrigger)(p);let{forceUnmount:v}=(0,sX.useOpenStateTransitions)(f,p,()=>{p.update({stickIfOpen:!0,openChangeReason:null})});p.useSyncedValues({modal:i}),h.useEffect(()=>{f||p.context.stickIfOpenTimeout.clear()},[p,f]),h.useImperativeHandle(e.actionsRef,()=>({unmount:v,close:()=>p.setOpen(!1,(0,s7.createChangeEventDetails)(sK.REASONS.imperativeAction))}),[v,p]);let b=f||g;return(0,m.jsxs)(sB.Provider,{value:p,children:[d&&(0,m.jsx)(sX.PopupHandleAttachment,{handle:d,store:p}),b&&(0,m.jsx)(s8,{store:p,modal:i}),"function"==typeof s?s({payload:x}):s]})}function s8({store:e,modal:t}){let a=e.useState("floatingRootContext"),s=(0,sI.useDismiss)(a,{outsidePressEvent:{mouse:"trap-focus"===t?"sloppy":"intentional",touch:"sloppy"}}),n=s.reference,r=s.floating;return(0,sX.usePopupInteractionProps)(e,{activeTriggerProps:n,inactiveTriggerProps:n,popupProps:r}),null}var s9=e.i(45034),ne=e.i(72343),nt=e.i(50403),na=e.i(65180),ns=e.i(76072),nn=e.i(2054),nr=e.i(99281),no=e.i(39352),nl=e.i(30523),ni=e.i(29148),nd=e.i(26603),nc=e.i(27229);let nu=h.forwardRef(function(e,t){let a,{render:s,className:n,style:r,disabled:o=!1,nativeButton:l=!0,handle:i,payload:d,openOnHover:c=!1,delay:u=300,closeDelay:p=0,id:f,...g}=e,x=sH(!0),v=(0,nl.usePopupHandleStore)(i)??x;if(!v)throw Error((0,sz.default)(74));let b=(0,nr.useBaseUiId)(f),y=v.useState("isTriggerActive",b),j=v.useState("floatingRootContext"),w=v.useState("isOpenedByTrigger",b),k=v.useState("triggerPopupId",b),S=h.useRef(null),{registerTrigger:N,isMountedByThisTrigger:M}=(0,sX.useTriggerDataForwarding)(b,S,v,{payload:d,disabled:o,openOnHover:c,closeDelay:p}),C=v.useState("openChangeReason"),T=v.useState("stickIfOpen"),D=v.useState("openMethod"),O=v.useState("focusManagerModal"),E=(0,nn.useHoverReferenceInteraction)(j,{enabled:!o&&c&&("touch"!==D||C!==sK.REASONS.triggerPress),mouseOnly:!0,move:!1,handleClose:(0,na.safePolygon)(),restMs:u,delay:{close:p},triggerElementRef:S,isActiveTrigger:y,isClosing:()=>"ending"===v.select("transitionStatus")}),L=(0,ns.useClick)(j,{stickIfOpen:T}),W=(0,nc.useOpenMethodTriggerProps)(()=>v.select("open"),e=>{v.set("openMethod",e)}),P=v.useState("triggerProps",M),{getButtonProps:$,buttonRef:R}=(0,s9.useButton)({disabled:o,native:l}),{preFocusGuardRef:A,handlePreFocusGuardFocus:F,handleFocusTargetFocus:U}={preFocusGuardRef:a=h.useRef(null),handlePreFocusGuardFocus:function(e){sG.flushSync(()=>{v.setOpen(!1,(0,s7.createChangeEventDetails)(sK.REASONS.focusOut,e.nativeEvent,e.currentTarget))});let t=(0,nd.getTabbableBeforeElement)(a.current);t?.focus()},handleFocusTargetFocus:function(e){let t=v.select("positionerElement");if(t&&(0,nd.isOutsideEvent)(e,t))v.context.beforeContentFocusGuardRef.current?.focus();else{sG.flushSync(()=>{v.setOpen(!1,(0,s7.createChangeEventDetails)(sK.REASONS.focusOut,e.nativeEvent,e.currentTarget))});let a=(0,nd.getTabbableAfterElement)(v.context.triggerFocusTargetRef.current||S.current);for(;null!==a&&(0,ni.contains)(t,a);){let e=a;if((a=(0,nd.getNextTabbable)(a))===e)break}a?.focus()}}},_=(0,nt.useRenderElement)("button",e,{state:{disabled:o,open:w},ref:[R,t,N,S],props:[L.reference,E,P,W,{[s1.CLICK_TRIGGER_IDENTIFIER]:"",id:b,"aria-haspopup":"dialog","aria-expanded":w,"aria-controls":k},g,$],stateAttributesMapping:{open:e=>e&&C===sK.REASONS.triggerPress?ne.pressableTriggerOpenStateMapping.open(e):ne.triggerOpenStateMapping.open(e)}}),I=(0,m.jsx)(h.Fragment,{children:_},b);return M&&!O?(0,m.jsxs)(h.Fragment,{children:[(0,m.jsx)(no.FocusGuard,{ref:A,onFocus:F}),I,(0,m.jsx)(no.FocusGuard,{ref:v.context.triggerFocusTargetRef,onFocus:U})]}):I});var nm=e.i(45247);let nh=h.createContext(void 0),np=h.forwardRef(function(e,t){let{keepMounted:a=!1,...s}=e;return sH().useState("mounted")||a?(0,m.jsx)(nh.Provider,{value:a,children:(0,m.jsx)(nm.FloatingPortal,{ref:t,...s})}):null});var nf=e.i(33262),ng=e.i(61362);let nx=h.createContext(void 0);function nv(){let e=h.useContext(nx);if(!e)throw Error((0,sz.default)(46));return e}var nb=e.i(58479),ny=e.i(54222),nj=e.i(51633),nw=e.i(2690),nk=e.i(59019);let nS=h.forwardRef(function(e,t){let{render:a,className:s,style:n,anchor:r,positionMethod:o,side:l,align:i,sideOffset:d,alignOffset:c,collisionBoundary:u="clipping-ancestors",collisionPadding:p,arrowPadding:f,sticky:g,disableAnchorTracking:x=!1,collisionAvoidance:v=s1.POPUP_COLLISION_AVOIDANCE,...b}=e,y=sH(),j=function(){let e=h.useContext(nh);if(void 0===e)throw Error((0,sz.default)(45));return e}(),w=(0,sY.useFloatingNodeId)(),k=y.useState("floatingRootContext"),S=y.useState("mounted"),N=y.useState("open"),M=y.useState("openChangeReason"),C=y.useState("activeTriggerElement"),T=y.useState("modal"),D=y.useState("openMethod"),O=y.useState("positionerElement"),E=y.useState("instantType"),L=y.useState("transitionStatus"),W=y.useState("adaptiveOrigin"),P=h.useRef(null),$=(0,nj.useAnimationsFinished)(O),R=(0,nb.useAnchorPositioning)({anchor:r,floatingRootContext:k,positionMethod:o,mounted:S,side:l,sideOffset:d,align:i,alignOffset:c,arrowPadding:f,collisionBoundary:u,collisionPadding:p,sticky:g,disableAnchorTracking:x,keepMounted:j,nodeId:w,collisionAvoidance:v,adaptiveOrigin:W}),A=k.useState("domReferenceElement");(0,ng.useIsoLayoutEffect)(()=>{let e=P.current;if(A&&(P.current=A),e&&A&&A!==e){y.set("instantType",void 0);let e=new AbortController;return $(()=>{y.set("instantType","trigger-change")},e.signal),()=>{e.abort()}}},[A,$,y]);let F=!0===T&&M!==sK.REASONS.triggerHover;(0,nk.useAnchoredPopupScrollLock)(N&&F,"touch"===D,O,C);let U=y.useStateSetter("positionerElement"),_={open:N,side:R.side,align:R.align,anchorHidden:R.anchorHidden,instant:E},I=(0,nw.usePositioner)(e,_,{styles:R.positionerStyles,transitionStatus:L,props:b,refs:[t,U],hidden:!S,inert:!N});return(0,m.jsxs)(nx.Provider,{value:R,children:[S&&F&&(0,m.jsx)(ny.InternalBackdrop,{inert:(0,nf.inertValue)(!N),cutout:C}),(0,m.jsx)(sY.FloatingNode,{id:w,children:I})]})});var nN=e.i(80269),nM=e.i(45237),nC=e.i(69821),nT=e.i(11296),nD=e.i(35987),nO=e.i(92975),nE=e.i(51131),nL=e.i(19458);let nW=h.createContext(void 0),nP=h.forwardRef(function(e,t){let{render:a,className:s,style:n,initialFocus:r,finalFocus:o,...l}=e,i=sH(),d=nv(),c=null!=(0,nO.useToolbarRootContext)(!0),{context:u,hasClosePart:p}=function(){let[e,t]=h.useState(0),a=(0,nL.useStableCallback)(()=>(t(e=>e+1),()=>{t(e=>Math.max(0,e-1))}));return{context:h.useMemo(()=>({register:a}),[a]),hasClosePart:e>0}}(),f=i.useState("open"),g=i.useState("openMethod"),x=i.useState("instantType"),v=i.useState("transitionStatus"),b=i.useState("popupProps"),y=i.useState("titleElementId"),j=i.useState("descriptionElementId"),w=i.useState("modal"),k=i.useState("mounted"),S=i.useState("openChangeReason"),N=i.useState("activeTriggerElement"),M=i.useState("floatingRootContext"),C=M.useState("floatingId"),T=i.useState("disabled"),D=i.useState("openOnHover"),O=i.useState("closeDelay");(0,nT.useOpenChangeComplete)({open:f,ref:i.context.popupRef,onComplete(){f&&i.context.onOpenChangeComplete?.(!0)}}),(0,nC.useHoverFloatingInteraction)(M,{enabled:D&&!T,closeDelay:O});let E=void 0===r?(0,sX.createDefaultInitialFocus)(i.context.popupRef):r,L=!1!==w&&p;i.useSyncedValue("focusManagerModal",L);let W=i.useStateSetter("popupElement"),P={open:f,side:d.side,align:d.align,instant:x,transitionStatus:v},$=(0,nt.useRenderElement)("div",e,{state:P,ref:[t,i.context.popupRef,W],props:[b,{id:C,role:"dialog",...sX.FOCUSABLE_POPUP_PROPS,"aria-labelledby":y,"aria-describedby":j,onKeyDown(e){c&&nD.COMPOSITE_KEYS.has(e.key)&&e.stopPropagation()}},(0,nE.getDisabledMountTransitionStyles)(v),l],stateAttributesMapping:ne.popupTransitionStateMapping});return(0,m.jsx)(nM.FloatingFocusManager,{context:M,openInteractionType:g,modal:L,disabled:!k||S===sK.REASONS.triggerHover,initialFocus:E,returnFocus:o,restoreFocus:"popup",previousFocusableElement:(0,nN.isHTMLElement)(N)?N:void 0,nextFocusableElement:i.context.triggerFocusTargetRef,beforeContentFocusGuardRef:i.context.beforeContentFocusGuardRef,children:(0,m.jsx)(nW.Provider,{value:u,children:$})})}),n$=h.forwardRef(function(e,t){let{render:a,className:s,style:n,...r}=e,o=sH().useState("open"),{arrowRef:l,side:i,align:d,arrowUncentered:c,arrowStyles:u}=nv();return(0,nt.useRenderElement)("div",e,{state:{open:o,side:i,align:d,uncentered:c},ref:[t,l],props:[{style:u,"aria-hidden":!0},r],stateAttributesMapping:ne.popupStateMapping})}),nR=h.forwardRef(function(e,t){let{render:a,className:s,style:n,...r}=e,o=sH(),l=o.useState("open"),i=o.useState("mounted"),d=o.useState("transitionStatus"),c=o.useState("openChangeReason");return(0,nt.useRenderElement)("div",e,{state:{open:l,transitionStatus:d},ref:t,props:[{role:"presentation",hidden:!i,style:{pointerEvents:c===sK.REASONS.triggerHover?"none":void 0,userSelect:"none",WebkitUserSelect:"none"}},r],stateAttributesMapping:ne.popupTransitionStateMapping})}),nA=h.forwardRef(function(e,t){let{render:a,className:s,style:n,...r}=e,o=sH(),l=(0,nr.useBaseUiId)(r.id);return o.useSyncedValueWithCleanup("titleElementId",l),(0,nt.useRenderElement)("h2",e,{ref:t,props:[{id:l},r]})}),nF=h.forwardRef(function(e,t){let{render:a,className:s,style:n,...r}=e,o=sH(),l=(0,nr.useBaseUiId)(r.id);return o.useSyncedValueWithCleanup("descriptionElementId",l),(0,nt.useRenderElement)("p",e,{ref:t,props:[{id:l},r]})}),nU=h.forwardRef(function(e,t){let a,{render:s,className:n,style:r,disabled:o=!1,nativeButton:l=!0,...i}=e,{buttonRef:d,getButtonProps:c}=(0,s9.useButton)({disabled:o,focusableWhenDisabled:!1,native:l}),u=sH();return a=h.useContext(nW),(0,ng.useIsoLayoutEffect)(()=>a?.register(),[a]),(0,nt.useRenderElement)("button",e,{ref:[t,d],props:[{onClick(e){u.setOpen(!1,(0,s7.createChangeEventDetails)(sK.REASONS.closePress,e.nativeEvent))}},i,c]})});var n_=e.i(73691);let nI=h.forwardRef(function(e,t){let{render:a,className:s,style:n,children:r,...o}=e,l=sH(),{side:i}=nv(),d=l.useState("instantType"),{children:c,state:u}=(0,n_.usePopupViewport)({store:l,side:i,children:r}),m={activationDirection:u.activationDirection,transitioning:u.transitioning,instant:d};return(0,nt.useRenderElement)("div",e,{state:m,ref:t,props:[o,{children:c}],stateAttributesMapping:n_.popupViewportStateMapping})});var nY=e.i(60657);class nz extends nY.BasePopupHandle{constructor(){super(function(){let e=new s0.PopupTriggerMap;return Object.assign(new sQ.NullStore(Object.freeze(s3(void 0,e)),Object.freeze(s4(e)),s2),{setOpen:sV.NOOP})}(),"Popover")}open(e){this.openByTrigger(e)}close(){this.closePopup()}get isOpen(){return this.attachedStore?.select("open")??!1}}e.s(["Arrow",0,n$,"Backdrop",0,nR,"Close",0,nU,"Description",0,nF,"Handle",0,nz,"Popup",0,nP,"Portal",0,np,"Positioner",0,nS,"Root",0,function(e){return sH(!0)?(0,m.jsx)(s6,{props:e}):(0,m.jsx)(sY.FloatingTree,{children:(0,m.jsx)(s6,{props:e})})},"Title",0,nA,"Trigger",0,nu,"Viewport",0,nI,"createHandle",0,function(){return new nz}],86752);var nB=e.i(86752),nB=nB;function nH({...e}){return(0,m.jsx)(nB.Root,{"data-slot":"popover",...e})}function nG({...e}){return(0,m.jsx)(nB.Trigger,{"data-slot":"popover-trigger",...e})}function nq({className:e,align:t="center",alignOffset:a=0,side:s="bottom",sideOffset:n=4,...r}){return(0,m.jsx)(nB.Portal,{children:(0,m.jsx)(nB.Positioner,{align:t,alignOffset:a,side:s,sideOffset:n,className:"isolate z-50",children:(0,m.jsx)(nB.Popup,{"data-slot":"popover-content",className:(0,X.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",e),...r})})})}let nZ=(e,t)=>("all"===t.provider||e.provider===t.provider)&&("all"===t.project||e.project===t.project);function nV(e){let t=e.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return null;let a=new Date(Number(t[1]),Number(t[2])-1,Number(t[3]));return eF(a)===e?a:null}function nK(e,t,a){let s=e.get(t);return s||e.set(t,s=a()),s}function nQ(e,t){return Math.round((eR(t).getTime()-eR(e).getTime())/864e5)+1}let nX=[{value:"activeMs",label:"Agent time"},{value:"costUSD",label:"Cost"}],nJ=["Session","Model","Window","Messages","Tool calls","Tokens","Agent time","Cost"],n0=e=>(0,Z.formatTokens)(e)??"0",n1=/^(\d{4}-\d{2}-\d{2})\|(\d{4}-\d{2}-\d{2})\|(\d{4}-\d{2}-\d{2})$/,n2=[{label:"Today",range:e=>[e,e]},{label:"Yesterday",range:e=>[eA(e,-1),eA(e,-1)]},{label:"Last 7 days",range:e=>[eA(e,-6),e]},{label:"Last 30 days",range:e=>[eA(e,-29),e]},{label:"This month",range:e=>[new Date(e.getFullYear(),e.getMonth(),1),e]},{label:"Last month",range:e=>[new Date(e.getFullYear(),e.getMonth()-1,1),new Date(e.getFullYear(),e.getMonth(),0)]}],n5=e=>new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1}),n3=e=>`${Math.round(e/6e4)}m`,n4=(e,t)=>`${Math.round(e/t*100)}%`,n7=e=>e.toLocaleDateString([],{month:"short",day:"numeric",year:"numeric"}),n6=e=>e.toLocaleDateString([],{month:"short",day:"numeric"});function n8(e,t){return e.getTime()===t.getTime()?n7(e):e.getFullYear()===t.getFullYear()?`${n6(e)} – ${n7(t)}`:`${n7(e)} – ${n7(t)}`}function n9({days:e,peak:t}){let[a,s]=(0,h.useState)(null),n=Math.max(1,...e.map(e=>e.activeMs)),r=Math.max(1,Math.ceil(e.length/8));return(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{role:"img","aria-label":`Agent time per day over ${e.length} days`,className:"flex h-28 items-end gap-0.5 border-b border-border",onMouseLeave:()=>s(null),children:e.map(e=>{let t=`${n7(new Date(e.t))} \xb7 ${e.sessions} session${1===e.sessions?"":"s"}${e.activeMs>0?` \xb7 ${(0,Z.formatDuration)(e.activeMs)} agent time \xb7 ${(0,Z.formatCost)(e.costUSD)}`:""}`;return(0,m.jsx)("div",{title:t,onMouseEnter:()=>s(t),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:e.activeMs>0?`max(3px, ${e.activeMs/n*100}%)`:0}})},e.t)})}),(0,m.jsx)("div",{className:"mt-1 flex text-[10px] text-muted-foreground","aria-hidden":!0,children:e.map((e,t)=>(0,m.jsx)("span",{className:"min-w-0 flex-1 overflow-visible whitespace-nowrap",children:t%r==0?n6(new Date(e.t)):""},e.t))}),(0,m.jsx)("p",{className:(0,X.cn)("mt-2 truncate text-xs text-muted-foreground",a&&"text-foreground"),"aria-live":"polite",children:a??`Agent time per day \xb7 at most ${t} session${1===t?"":"s"} at once`})]})}function re({slots:e,peak:t}){let[a,s]=(0,h.useState)(null),n=Math.max(1,t),r=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 ${t}`,className:"flex h-28 items-end gap-px border-b border-border",onMouseLeave:()=>s(null),children:e.map(e=>{let t=`${n5(e.t)}–${n5(e.t+9e5)} \xb7 ${e.sessions} session${1===e.sessions?"":"s"}${e.sessions>0?` \xb7 ${(0,Z.formatDuration)(e.activeMs)} agent time`:""}`;return(0,m.jsx)("div",{title:t,onMouseEnter:()=>s(t),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:e.sessions>0?`max(3px, ${e.sessions/n*100}%)`:0}})},e.t)})}),(0,m.jsx)("div",{className:"mt-1 flex text-[10px] text-muted-foreground","aria-hidden":!0,children:e.map((e,t)=>t%(3*r)==0?(0,m.jsx)("span",{className:"min-w-0 flex-1 overflow-visible whitespace-nowrap",children:n5(e.t)},e.t):(0,m.jsx)("span",{className:"min-w-0 flex-1"},e.t))}),(0,m.jsx)("p",{className:(0,X.cn)("mt-2 truncate text-xs text-muted-foreground",a&&"text-foreground"),"aria-live":"polite",children:a??`${Math.round(15)}-minute slots \xb7 times in ${Intl.DateTimeFormat().resolvedOptions().timeZone}`})]})}function rt({reloadToken:e,project:t,onProjectChange:a,projectOptions:s}){let{sessions:n,error:r}=eY(e),o=eF(new Date),[l,i]=eG("activity-range","",eZ,"session"),[d,c]=eG("activity-provider","all",eZ),[u,f]=eG("activity-share","activeMs",eq(nX.map(e=>e.value))),[g,x]=(0,h.useState)(!1),[b,y]=(0,h.useState)(!1),[j,w]=(0,h.useState)(null),[k,S]=(0,h.useMemo)(()=>{let e=function(e,t){let a=e.match(n1);if(!a||a[1]!==t)return null;let[s,n]=[a[2],a[3]];return nV(s)&&nV(n)&&s<=n&&n<=t?{from:s,to:n}:null}(l,o)??{from:o,to:o};return[nV(e.from)??new Date,nV(e.to)??new Date]},[l,o]),N={from:eF(k),to:eF(S)},C=N.from===N.to,T=C&&N.from===o;function D(e,t){i(e===o&&t===o?"":`${o}|${e}|${t}`)}let E=!n||n.some(e=>e.provider===d)?d:"all",W=(0,h.useMemo)(()=>({project:t,provider:E}),[t,E]),P=(0,h.useMemo)(()=>n?function(e,t){let a=new Set;for(let s of e)if(nZ(s,t))for(let e of s.activity)a.add(eF(new Date(e.t)));return[...a].sort()}(n,W):[],[n,W]),R=(0,h.useMemo)(()=>P.flatMap(e=>nV(e)??[]),[P]),A=(0,h.useMemo)(()=>n?function(e,t,a,s){let n=eR(t).getTime(),r=eA(a,1).getTime(),o=Array.from({length:Math.ceil((r-n)/9e5)},(e,t)=>({t:n+9e5*t,sessions:0,activeMs:0})),l=Array.from({length:nQ(t,a)},(e,a)=>({t:eA(t,a).getTime(),sessions:0,activeMs:0,costUSD:0})),i=e=>{let t=l.length-1;for(;t>0&&l[t].t>e;)t--;return l[t]},d=[],c=new Map,u=new Map,m=new Map,h={inputTokens:0,cacheWriteTokens:0,cacheReadTokens:0,outputTokens:0},p=new Set;for(let t of e){if(!nZ(t,s))continue;let e=null;for(let a of t.activity){if(a.t<n||a.t>=r)continue;e??={provider:t.provider,id:t.id,label:t.label,project:t.project,model:t.model,messages:0,toolCalls:0,activeMs:0,costUSD:0,tokens:0,start:a.t,end:a.t},e.messages+=a.messages,e.toolCalls+=a.toolCalls,e.activeMs+=a.activeMs,e.costUSD+=a.costUSD??0,e.start=Math.min(e.start,a.t),e.end=Math.max(e.end,a.t+9e5);let s=o[Math.floor((a.t-n)/9e5)];s&&(s.sessions++,s.activeMs+=a.activeMs);let l=i(a.t);!p.has(l.t)&&(p.add(l.t),l.sessions++),l.activeMs+=a.activeMs,l.costUSD+=a.costUSD??0}if(p.clear(),!e)continue;for(let t of(d.push(e),[nK(c,e.project,()=>({name:e.project,activeMs:0,costUSD:0})),nK(m,e.provider,()=>({name:e.provider,provider:e.provider,activeMs:0,costUSD:0}))]))t.activeMs+=e.activeMs,t.costUSD+=e.costUSD;for(let a of t.usage)a.t<n||a.t>=r||(nK(u,a.model,()=>({name:a.model,activeMs:0,costUSD:0})).costUSD+=a.costUSD??0,h.inputTokens+=a.inputTokens,h.cacheWriteTokens+=a.cacheWriteTokens,h.cacheReadTokens+=a.cacheReadTokens,h.outputTokens+=a.outputTokens,e.tokens+=a.inputTokens+a.cacheWriteTokens+a.cacheReadTokens+a.outputTokens);let a=e.model??"unknown";nK(u,a,()=>({name:a,activeMs:0,costUSD:0})).activeMs+=e.activeMs}let f={...h,sessions:d.length,projects:c.size,messages:0,toolCalls:0,activeMs:0,costUSD:0,peak:0,peakAt:null};for(let e of d)f.messages+=e.messages,f.toolCalls+=e.toolCalls,f.activeMs+=e.activeMs,f.costUSD+=e.costUSD;for(let e of o)e.sessions>f.peak&&(f.peak=e.sessions,f.peakAt=e.t);let g=e=>[...e.values()].sort((e,t)=>t.activeMs-e.activeMs||t.costUSD-e.costUSD);return{slots:o,days:l,sessions:d.sort((e,t)=>e.start-t.start),totals:f,byProject:g(c),byModel:g(u),byAgent:g(m)}}(n,k,S,W):null,[n,k,S,W]),F=(0,h.useMemo)(()=>K.PROVIDER_ORDER.filter(e=>n?.some(t=>t.provider===e)),[n]),I=(0,h.useMemo)(()=>[{value:"all",label:"All agents"},...F.map(e=>({value:e,label:(0,K.providerStyle)(e).shortLabel}))],[F]);if(r&&!n)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)(p.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(!n||!A)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},(e,t)=>(0,m.jsx)($.Skeleton,{className:"h-[86px] rounded-xl"},t))}),(0,m.jsx)($.Skeleton,{className:"h-48 rounded-xl"})]});let Y=nQ(k,S),z=e=>{let t=eA(S,e),a=eF(t)>o?new Date:t;D(eF(eA(a,-(Y-1))),eF(a))},B=C?P.findLast(e=>e<N.from):null,H=C?P.find(e=>e>N.from):null,G=P[P.length-1],{totals:q}=A,V=q.inputTokens+q.cacheWriteTokens+q.cacheReadTokens,Q=V+q.outputTokens,J=(e,t=e=>e.name)=>e.map(e=>({name:t(e),value:e[u]})).filter(e=>e.value>0),ee="costUSD"===u?Z.formatCost:n3;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)(M.Button,{variant:"outline",size:"icon",disabled:C&&!B,onClick:()=>C?B&&D(B,B):z(-Y),"aria-label":C?"Previous active day":`Previous ${Y} days`,title:C?"Previous active day":`Previous ${Y} days`,children:(0,m.jsx)(tD,{"aria-hidden":!0})}),(0,m.jsxs)(nH,{open:g,onOpenChange:e=>{x(e),w(null)},children:[(0,m.jsx)(nG,{render:(0,m.jsxs)(M.Button,{variant:"outline",className:"min-w-36 justify-start font-normal tabular-nums",children:[(0,m.jsx)(tT.CalendarDays,{className:"text-muted-foreground","aria-hidden":!0}),n8(k,S)]})}),(0,m.jsx)(nq,{align:"start",className:"w-auto p-0",children:(0,m.jsxs)("div",{className:"flex flex-col sm:flex-row",children:[(0,m.jsx)("div",{className:"flex flex-wrap gap-1 border-b border-border p-2 sm:w-32 sm:flex-col sm:flex-nowrap sm:border-r sm:border-b-0",children:n2.map(e=>{let[t,a]=e.range(nV(o)??new Date).map(eF);return(0,m.jsx)(M.Button,{variant:t===N.from&&a===N.to?"secondary":"ghost",size:"sm",className:"justify-start font-normal",onClick:()=>{D(t,a),x(!1)},children:e.label},e.label)})}),(0,m.jsxs)("div",{className:"w-min",children:[(0,m.jsx)(sU,{mode:"range",selected:{from:k,to:S},defaultMonth:S,disabled:{after:new Date},modifiers:{active:R},modifiersClassNames:{active:"[&>button]:font-semibold [&>button]:text-brand data-[outside=true]:[&>button]:text-brand/45"},onSelect:(e,t)=>{let a=eF(t);if(null===j){D(a,a),w(a);return}D(...a<j?[a,j]:[j,a]),w(null),x(!1)}}),(0,m.jsx)("p",{className:"px-3 pb-3 text-xs text-muted-foreground",children:j?"Click another day to make a range, or close to keep this day.":"Click a day, then another to pick a range."})]})]})})]}),(0,m.jsx)(M.Button,{variant:"outline",size:"icon",disabled:C?!H:N.to>=o,onClick:()=>C?H&&D(H,H):z(Y),"aria-label":C?"Next active day":`Next ${Y} days`,title:C?"Next active day":`Next ${Y} days`,children:(0,m.jsx)(_.ChevronRight,{"aria-hidden":!0})})]}),!T&&(0,m.jsx)(M.Button,{variant:"outline",onClick:()=>D(o,o),children:"Today"}),s.length>2&&(0,m.jsx)(L,{value:t,onChange:a,options:s,"aria-label":"Project",className:"max-w-56"}),F.length>1&&(0,m.jsx)(L,{value:E,onChange:c,options:I,"aria-label":"Agent"}),(0,m.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:C?k.toLocaleDateString([],{weekday:"long",month:"long",day:"numeric",year:"numeric"}):`${Y} days`})]}),0===q.sessions?(0,m.jsx)(O.EmptyState,{icon:v,title:T?"No activity yet today":C?"No activity on this day":"No activity in this range",description:G?`No agent wrote to a transcript ${C?"on this day":"in these days"} with these filters.`:"No session matches these filters on any day.",action:G?(0,m.jsx)(M.Button,{variant:"outline",size:"sm",onClick:()=>D(G,G),children:"Go to latest active day"}):void 0}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(eE.StatCardGrid,{children:[(0,m.jsx)(eE.StatCard,{label:"Agent time",value:(0,Z.formatDuration)(q.activeMs),sub:"summed over sessions",accent:!0}),(0,m.jsx)(eE.StatCard,{label:"Peak at once",value:q.peak.toLocaleString(),sub:null!==q.peakAt?C?`at ${n5(q.peakAt)}`:`${n6(new Date(q.peakAt))} at ${n5(q.peakAt)}`:void 0}),(0,m.jsx)(eE.StatCard,{label:"Sessions",value:q.sessions.toLocaleString()}),(0,m.jsx)(eE.StatCard,{label:"Projects",value:q.projects.toLocaleString()}),(0,m.jsx)(eE.StatCard,{label:"Messages",value:q.messages.toLocaleString()}),(0,m.jsx)(eE.StatCard,{label:"Tool calls",value:q.toolCalls.toLocaleString()}),(0,m.jsx)(eE.StatCard,{label:"Est. cost",value:(0,Z.formatCost)(q.costUSD),sub:"at API list prices",onClick:()=>y(!0)}),Q>0&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(eE.StatCard,{label:"Total tokens",value:n0(Q),sub:`${n0(V)} in \xb7 ${n0(q.outputTokens)} out`,hint:"Everything sent to and returned by the model: uncached input, cache writes, cache reads and output."}),(0,m.jsx)(eE.StatCard,{label:"Uncached input",value:n0(q.inputTokens),sub:V>0?`${n4(q.inputTokens,V)} of input`:void 0,hint:"Input the model had not seen before, billed at the full input rate."}),(0,m.jsx)(eE.StatCard,{label:"Cache writes",value:n0(q.cacheWriteTokens),sub:V>0?`${n4(q.cacheWriteTokens,V)} of input`:void 0,hint:"Input stored in the prompt cache so later requests can reuse it."}),(0,m.jsx)(eE.StatCard,{label:"Cache reads",value:n0(q.cacheReadTokens),sub:V>0?`${n4(q.cacheReadTokens,V)} of input`:void 0,hint:"Input served from the prompt cache at a steep discount."}),(0,m.jsx)(eE.StatCard,{label:"Output",value:n0(q.outputTokens),sub:"generated",hint:"Tokens the model wrote: replies, tool calls and reasoning."})]})]}),C?(0,m.jsx)(ej,{title:"Concurrency",note:`peak ${q.peak} at once`,children:(0,m.jsx)(re,{slots:A.slots,peak:q.peak})}):(0,m.jsx)(ej,{title:"Daily activity",note:`${A.days.filter(e=>e.sessions>0).length} of ${Y} days active`,children:(0,m.jsx)(n9,{days:A.days,peak:q.peak})}),(0,m.jsx)(ey,{sessions:n,keep:(e,a)=>("all"===E||e.provider===E)&&("all"===t||e.project===t)&&a.t>=k.getTime()&&a.t<eA(S,1).getTime(),scope:{sessions:q.sessions,period:n8(k,S)},open:b,onOpenChange:y}),(0,m.jsx)(ej,{title:"Sessions",note:`${q.sessions} total`,children:(0,m.jsxs)(ed.Table,{className:"min-w-[800px]",children:[(0,m.jsx)(ed.TableHeader,{children:(0,m.jsx)(ed.TableRow,{className:"text-xs uppercase tracking-wider hover:bg-transparent",children:nJ.map((e,t)=>(0,m.jsx)(ed.TableHead,{className:(0,X.cn)("text-muted-foreground",t>2&&"text-right"),children:e},e))})}),(0,m.jsx)(ed.TableBody,{className:"tabular-nums",children:A.sessions.map(e=>{var t,a;let s,n;return(0,m.jsxs)(ed.TableRow,{children:[(0,m.jsxs)(ed.TableCell,{className:"w-full max-w-0",children:[(0,m.jsx)(U.default,{href:`/sessions/${e.provider}/${e.id}`,className:"block truncate rounded-sm font-medium hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:e.label}),(0,m.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,m.jsx)("span",{className:(0,X.cn)("size-1.5 shrink-0 rounded-full",(0,K.providerStyle)(e.provider).dotCls),"aria-hidden":!0}),(0,m.jsxs)("span",{className:"truncate",children:[(0,K.providerStyle)(e.provider).shortLabel," · ",e.project]})]})]}),(0,m.jsx)(ed.TableCell,{className:"max-w-40 truncate font-mono text-xs text-muted-foreground",children:e.model??"—"}),(0,m.jsx)(ed.TableCell,{className:"whitespace-nowrap text-muted-foreground",children:C?`${n5(e.start)}–${n5(e.end)}`:(t=e.start,a=e.end,s=new Date(t),n=new Date(a-1),eF(s)===eF(n)?`${n6(s)} ${n5(t)}–${n5(a)}`:`${n6(s)} ${n5(t)} – ${n6(n)} ${n5(a)}`)}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:e.messages.toLocaleString()}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:e.toolCalls.toLocaleString()}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:n0(e.tokens)}),(0,m.jsx)(ed.TableCell,{className:"text-right",children:(0,Z.formatDuration)(e.activeMs)}),(0,m.jsx)(ed.TableCell,{className:"text-right font-medium",children:(0,Z.formatCost)(e.costUSD)})]},`${e.provider}:${e.id}`)})})]})}),(0,m.jsx)(ej,{title:"Breakdown",action:(0,m.jsx)(ew.Segmented,{label:"Break down by",value:u,onChange:f,options:nX}),children:(0,m.jsx)("div",{className:"grid gap-5 lg:grid-cols-3",children:[["Project",J(A.byProject)],["Model",J(A.byModel)],["Agent",J(A.byAgent,e=>(0,K.providerStyle)(e.name).shortLabel)]].map(([e,t])=>(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:e}),(0,m.jsx)(ef.BarList,{items:t,limit:6,format:ee,emptyLabel:"Nothing recorded"})]},e))})})]})]})}var ra=e.i(19007),rs=e.i(44581);function rn(e){return e.project??"unknown"}var rr=e.i(27195),ro=e.i(42526);let rl=["analytics","usage","activity","quality","projects","sessions","logs"];function ri(){let[e,t]=(0,ro.useTabParam)(rl,"analytics"),[a,s]=(0,ro.useQueryParam)("project","all"),[n,r]=(0,h.useState)([]),[o,l]=(0,h.useState)([]),[i,d]=(0,h.useState)("all"),[c,u]=(0,h.useState)([]),[x,C]=(0,h.useState)(!0),[E,U]=(0,h.useState)(null),[_,I]=(0,h.useState)(""),[Y,z]=(0,rr.useSessionSort)(),[B,H]=(0,h.useState)(0);function G(){C(!0),U(null),H(e=>e+1)}(0,h.useEffect)(()=>{let e=!1;return(async()=>{try{let[t,a,s]=await Promise.all([fetch("/api/sessions"),fetch("/api/logs"),fetch("/api/providers")]);if(!t.ok||!a.ok||!s.ok)throw Error("Request failed");let[n,o,i]=await Promise.all([t.json(),a.json(),s.json()]);if(e)return;r(n),u(o),l(i)}catch{e||U("Could not read the agent session directories. Are ~/.copilot, ~/.claude or ~/.codex present and readable?")}finally{e||C(!1)}})(),()=>{e=!0}},[B]);let q=(0,h.useMemo)(()=>o.filter(e=>e.available&&(e.sessionCount??0)>0),[o]),Z=(0,h.useMemo)(()=>(function(e){let t=new Map;for(let a of e){let e=rn(a),s=t.get(e);s||(s={name:e,path:a.projectPath,sessions:0,costUSD:0,unpriced:!1,inputTokens:0,outputTokens:0,toolCalls:0,lastActive:"",providers:[]},t.set(e,s)),s.sessions+=1,s.costUSD+=a.estimatedCostUSD??0,a.unpricedModels?.length&&(s.unpriced=!0),s.inputTokens+=a.totalInputTokens??0,s.outputTokens+=a.totalOutputTokens??0,s.toolCalls+=a.toolCallCount??0;let n=a.updated_at??a.created_at??"";n>s.lastActive&&(s.lastActive=n),s.providers.includes(a.provider)||s.providers.push(a.provider)}return[...t.values()].sort((e,t)=>t.lastActive.localeCompare(e.lastActive))})(n),[n]),V=x||Z.some(e=>e.name===a)?a:"all",Q=(0,h.useMemo)(()=>[{value:"all",label:"All projects"},...[...Z].sort((e,t)=>e.name.localeCompare(t.name)).map(e=>({value:e.name,label:e.name}))],[Z]),J=(0,h.useMemo)(()=>"all"===V?n:n.filter(e=>rn(e)===V),[n,V]),et=(0,h.useMemo)(()=>"all"===i?J:J.filter(e=>e.provider===i),[J,i]),ea=(0,h.useMemo)(()=>{let e=_.trim().toLowerCase(),t=e?et.filter(t=>t.name?.toLowerCase().includes(e)||t.title?.toLowerCase().includes(e)||t.repository?.toLowerCase().includes(e)||t.branch?.toLowerCase().includes(e)||t.cwd?.toLowerCase().includes(e)||t.id.toLowerCase().includes(e)):et;return(0,rr.sortSessions)(t,Y)},[et,_,Y]);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)(g.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",rs.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,X.cn)("inline-block size-2 rounded-full",E?"bg-destructive":"bg-emerald-500"),"aria-hidden":!0}),(0,m.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:et.length}),"sessions"]}),(0,m.jsx)(A.SearchTrigger,{}),(0,m.jsxs)(D.Tooltip,{children:[(0,m.jsx)(D.TooltipTrigger,{render:(0,m.jsx)(M.Button,{variant:"outline",size:"icon",onClick:G,disabled:x,"aria-label":"Refresh",className:"text-muted-foreground",children:(0,m.jsx)(S,{className:(0,X.cn)("size-3.5",x&&"animate-spin"),"aria-hidden":!0})})}),(0,m.jsx)(D.TooltipContent,{children:"Refresh"})]}),(0,m.jsx)(R.PalettePicker,{}),(0,m.jsx)(F.ThemeToggle,{}),(0,m.jsx)(ra.AboutDialog,{providers:o})]})]})}),(0,m.jsxs)("main",{id:"main",className:"mx-auto max-w-6xl px-4 py-6 sm:px-6",children:[E&&(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)(p.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:E})]}),(0,m.jsx)(M.Button,{variant:"outline",size:"sm",onClick:G,children:"Retry"})]}),(0,m.jsxs)(T.Tabs,{value:e,onValueChange:t,children:[(0,m.jsxs)(T.TabsList,{className:"mb-5 max-w-full justify-start overflow-x-auto",children:[(0,m.jsxs)(T.TabsTrigger,{value:"analytics",className:"px-3",children:[(0,m.jsx)(f.BarChart3,{className:"size-4","aria-hidden":!0}),"Analytics"]}),(0,m.jsxs)(T.TabsTrigger,{value:"usage",className:"px-3",children:[(0,m.jsx)(N.Wallet,{className:"size-4","aria-hidden":!0}),"Usage"]}),(0,m.jsxs)(T.TabsTrigger,{value:"activity",className:"px-3",children:[(0,m.jsx)(v,{className:"size-4","aria-hidden":!0}),"Activity"]}),(0,m.jsxs)(T.TabsTrigger,{value:"quality",className:"px-3",children:[(0,m.jsx)(j,{className:"size-4","aria-hidden":!0}),"Quality"]}),(0,m.jsxs)(T.TabsTrigger,{value:"projects",className:"px-3",children:[(0,m.jsx)(y.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:Z.length})]}),(0,m.jsxs)(T.TabsTrigger,{value:"sessions",className:"px-3",children:[(0,m.jsx)(k.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:J.length})]}),(0,m.jsxs)(T.TabsTrigger,{value:"logs",className:"px-3",children:[(0,m.jsx)(b.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:c.length})]})]}),(0,m.jsx)(T.TabsContent,{value:"analytics",children:(0,m.jsx)(ta,{reloadToken:B,project:V,onProjectChange:s,projectOptions:Q})}),(0,m.jsx)(T.TabsContent,{value:"usage",children:(0,m.jsx)(th,{reloadToken:B,project:V,onProjectChange:s,projectOptions:Q})}),(0,m.jsx)(T.TabsContent,{value:"activity",children:(0,m.jsx)(rt,{reloadToken:B,project:V,onProjectChange:s,projectOptions:Q})}),(0,m.jsx)(T.TabsContent,{value:"quality",children:(0,m.jsx)(tC,{reloadToken:B,project:V,onProjectChange:s,projectOptions:Q})}),(0,m.jsx)(T.TabsContent,{value:"projects",children:(0,m.jsx)(eh,{projects:Z,loading:x,selected:V,onSelect:function(e){s(e),t("sessions")}})}),(0,m.jsxs)(T.TabsContent,{value:"sessions",children:[q.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)(rd,{active:"all"===i,onClick:()=>d("all"),label:"All agents",count:J.length}),q.map(e=>(0,m.jsx)(rd,{active:i===e.id,onClick:()=>d(e.id),label:(0,K.providerStyle)(e.id).shortLabel,count:J.filter(t=>t.provider===e.id).length,dotCls:(0,K.providerStyle)(e.id).dotCls},e.id))]}),(0,m.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-3",children:[(0,m.jsx)(P.SearchInput,{value:_,onChange:I,shortcut:!0,placeholder:"Search title, repo, branch or id…","aria-label":"Search sessions",className:"w-full max-w-sm"}),Q.length>2&&(0,m.jsx)(L,{value:V,onChange:s,options:Q,"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)(L,{value:Y,onChange:z,options:rr.SORT_OPTIONS,"aria-label":"Sort sessions"})]}),(0,m.jsx)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground",children:x?"Loading…":`${ea.length} of ${et.length}`})]}),(0,m.jsx)("div",{className:"grid gap-2",children:x?Array.from({length:5},(e,t)=>(0,m.jsx)($.SessionCardSkeleton,{},t)):ea.length>0?ea.map(e=>(0,m.jsx)(ee,{session:e},`${e.provider}:${e.id}`)):(0,m.jsx)(O.EmptyState,{icon:w,title:_?"No matching sessions":"No sessions yet",description:_?`Nothing matches “${_}”. Try a repository name, branch or session id.`:"all"!==V?`No ${(0,K.providerStyle)(i).shortLabel} sessions in ${V}.`:`Sessions appear here once a supported agent writes a transcript on this machine: ${K.SUPPORTED_AGENTS}.`,action:_?(0,m.jsx)(M.Button,{variant:"outline",size:"sm",onClick:()=>I(""),children:"Clear search"}):void 0})})]}),(0,m.jsx)(T.TabsContent,{value:"logs",children:(0,m.jsx)(ei,{logs:c,loading:x})})]})]}),(0,m.jsx)(W.ScrollToTop,{})]})}function rd({active:e,onClick:t,label:a,count:s,dotCls:n}){return(0,m.jsxs)(C.Toggle,{variant:"outline",size:"sm",pressed:e,onPressedChange:t,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:[n&&(0,m.jsx)("span",{className:(0,X.cn)("size-1.5 rounded-full",n),"aria-hidden":!0}),a,(0,m.jsx)("span",{className:"rounded-sm bg-foreground/10 px-1.5 tabular-nums",children:s})]})}e.s(["default",0,function(){return(0,m.jsx)(h.Suspense,{children:(0,m.jsx)(ri,{})})}],52683)}]);
|