@coreplane/switchboard 1.240.0 → 1.241.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/config/config.example.yaml +26 -7
- package/dist/assets/deploy/cloudflare/worker.ts +77 -18
- package/dist/assets/deploy/cloudflare-resident/worker.ts +1 -0
- package/dist/assets/deploy/secrets.manifest.json +6 -0
- package/dist/assets/package-lock.json +3 -3
- package/dist/assets/package.json +1 -1
- package/dist/assets/source.json +3 -3
- package/dist/assets/src/agents/registry.ts +27 -8
- package/dist/assets/src/core/authz/actor.ts +5 -0
- package/dist/assets/src/core/authz/grants.ts +20 -9
- package/dist/assets/src/core/coordinator/contract.ts +37 -0
- package/dist/assets/src/core/coordinator/driver.ts +17 -1
- package/dist/assets/src/core/coordinator/instancesRoute.ts +72 -0
- package/dist/assets/src/core/costs.ts +10 -5
- package/dist/assets/src/core/ship/coordinator.ts +22 -7
- package/dist/assets/src/core/trace/attrs.ts +1 -1
- package/dist/assets/src/execution/bindingPurge.ts +2 -2
- package/dist/assets/web/dist/.vite/manifest.json +422 -420
- package/dist/assets/web/dist/assets/AppShell-DEy5jRuS.js +1 -0
- package/dist/assets/web/dist/assets/{CostsPage-BD3w5j_S.js → CostsPage-BuHD-Bv7.js} +2 -2
- package/dist/assets/web/dist/assets/{DeliveryPage-BtvzKA1m.js → DeliveryPage-BGpPr5xr.js} +1 -1
- package/dist/assets/web/dist/assets/HomePage-dKBvWh-E.js +2 -0
- package/dist/assets/web/dist/assets/{NotFoundPage-DwOX1HaZ.js → NotFoundPage-DtmQM2gD.js} +1 -1
- package/dist/assets/web/dist/assets/PendingTurnRow-CrEAWx5b.js +1 -0
- package/dist/assets/web/dist/assets/{ResidentDetailPage-CUAOh5d9.js → ResidentDetailPage-C-48fxat.js} +1 -1
- package/dist/assets/web/dist/assets/{ResidentsIndexPage-B3KUlYy2.js → ResidentsIndexPage-CBBIjPOa.js} +1 -1
- package/dist/assets/web/dist/assets/RunFoldRow-B6vxjcBI.js +1 -0
- package/dist/assets/web/dist/assets/RunRoutePage-CQjd3Cz-.js +6 -0
- package/dist/assets/web/dist/assets/RunsIndexPage-Cy9G6D0p.js +1 -0
- package/dist/assets/web/dist/assets/{RunsTabs-BnkvCBrM.js → RunsTabs-CtNGNnhN.js} +1 -1
- package/dist/assets/web/dist/assets/{ScheduledPage-C1y9jgAk.js → ScheduledPage-Ci1Ygqnc.js} +1 -1
- package/dist/assets/web/dist/assets/SettingsPage-DxmJvAmT.js +1 -0
- package/dist/assets/web/dist/assets/{StatusDot-CiByEtoR.js → StatusDot-DPWE1JmO.js} +1 -1
- package/dist/assets/web/dist/assets/{Tooltip-DyRxk8A8.js → Tooltip-DKhSRH9t.js} +1 -1
- package/dist/assets/web/dist/assets/{UnitRoutePage-CnWyOizV.js → UnitRoutePage-DEN5bSQf.js} +1 -1
- package/dist/assets/web/dist/assets/{angular-html-DAQ_1T1v.js → angular-html-DgSK1qvr.js} +1 -1
- package/dist/assets/web/dist/assets/{angular-ts-D4kxRVp1.js → angular-ts-D3gNdiSG.js} +1 -1
- package/dist/assets/web/dist/assets/{apl-Dy07l64y.js → apl-CkHCYM8I.js} +1 -1
- package/dist/assets/web/dist/assets/{astro-DZIbTlc7.js → astro-DLm45axt.js} +1 -1
- package/dist/assets/web/dist/assets/{blade-CmSXWX3l.js → blade-BKa-VE-c.js} +1 -1
- package/dist/assets/web/dist/assets/{c-ggzVdJLK.js → c-C8NCNWai.js} +1 -1
- package/dist/assets/web/dist/assets/{chapel-Bo1wktsG.js → chapel-DqDQ7IKH.js} +1 -1
- package/dist/assets/web/dist/assets/{cobol-DJUmtKM2.js → cobol-j4vCD6AJ.js} +1 -1
- package/dist/assets/web/dist/assets/{coffee-BZWOVz4C.js → coffee-C6oDVH-0.js} +1 -1
- package/dist/assets/web/dist/assets/{cpp-Dtk39yMw.js → cpp-Bd3A1Rtc.js} +1 -1
- package/dist/assets/web/dist/assets/{crystal-CGf_-Zoj.js → crystal-CUOgOw0d.js} +1 -1
- package/dist/assets/web/dist/assets/{css-CX2fcL4u.js → css-RYljyv7G.js} +1 -1
- package/dist/assets/web/dist/assets/{dist-D8TaC961.js → dist-BnJXKHCY.js} +2 -2
- package/dist/assets/web/dist/assets/{edge-BYS8FtgQ.js → edge-BJhNdQDc.js} +1 -1
- package/dist/assets/web/dist/assets/{elixir-fhUpi3nO.js → elixir-g1AWOAfT.js} +1 -1
- package/dist/assets/web/dist/assets/{elm-DAQNiwsN.js → elm-CER5e4Dz.js} +1 -1
- package/dist/assets/web/dist/assets/{erb-CWzEys6U.js → erb-D5aOmMQf.js} +1 -1
- package/dist/assets/web/dist/assets/{git-rebase-9rY3p-Rw.js → git-rebase-D6rfV8jp.js} +1 -1
- package/dist/assets/web/dist/assets/{glimmer-js-tY7hy0nE.js → glimmer-js-BvDH3-mC.js} +1 -1
- package/dist/assets/web/dist/assets/{glimmer-ts-CTrLv5JF.js → glimmer-ts-DChtNs9V.js} +1 -1
- package/dist/assets/web/dist/assets/{glsl-BRJbiDfq.js → glsl-BHlsWrxf.js} +1 -1
- package/dist/assets/web/dist/assets/{graphql-B-MtVLh2.js → graphql-BsaBHb53.js} +1 -1
- package/dist/assets/web/dist/assets/{hack-BtIkOypQ.js → hack-0lbDosCd.js} +1 -1
- package/dist/assets/web/dist/assets/{haml-CoOH6gfa.js → haml-BKtco2vr.js} +1 -1
- package/dist/assets/web/dist/assets/{handlebars-DgrRu-GP.js → handlebars-BE_cj04z.js} +1 -1
- package/dist/assets/web/dist/assets/{html-DZaaI7ca.js → html-BNcr8EVd.js} +1 -1
- package/dist/assets/web/dist/assets/{html-derivative-DgHvT-qZ.js → html-derivative-BsJt2Kei.js} +1 -1
- package/dist/assets/web/dist/assets/{http-CvAd51yz.js → http-BR5P8ER_.js} +1 -1
- package/dist/assets/web/dist/assets/{hurl-CXGqAfzx.js → hurl-CtHalpWS.js} +1 -1
- package/dist/assets/web/dist/assets/{indexRow-Cse3JGb0.js → indexRow-BD1VT8o8.js} +1 -1
- package/dist/assets/web/dist/assets/{java-CIQStIXF.js → java-BXVdhN11.js} +1 -1
- package/dist/assets/web/dist/assets/{javascript-WbH8s7E3.js → javascript-CyoShgNQ.js} +1 -1
- package/dist/assets/web/dist/assets/{jinja-DzyWEVKC.js → jinja-BQYZzHex.js} +1 -1
- package/dist/assets/web/dist/assets/{jison-CrT-zCa-.js → jison-DqrUa1Eq.js} +1 -1
- package/dist/assets/web/dist/assets/{json-lHjpjXMQ.js → json-CQiTF9Jj.js} +1 -1
- package/dist/assets/web/dist/assets/{jsx-WTwYCHW6.js → jsx-Y16MkCYQ.js} +1 -1
- package/dist/assets/web/dist/assets/{julia-Bqpk9H7E.js → julia-zn16YONe.js} +1 -1
- package/dist/assets/web/dist/assets/{just-LdXk1r3m.js → just-DcVeN_MN.js} +1 -1
- package/dist/assets/web/dist/assets/{latex-h_y2A5KD.js → latex-BNNoF-WP.js} +1 -1
- package/dist/assets/web/dist/assets/{liquid-CY7bF2_p.js → liquid-DAi6qHzn.js} +1 -1
- package/dist/assets/web/dist/assets/{lua-oQ7XVZOY.js → lua-BswS0axw.js} +1 -1
- package/dist/assets/web/dist/assets/{main-CGO6fQ8k.js → main-B3is4sk6.js} +2 -2
- package/dist/assets/web/dist/assets/main-DP_zSemY.css +1 -0
- package/dist/assets/web/dist/assets/{marko-zv_qZ4QV.js → marko-C-4hkmQZ.js} +1 -1
- package/dist/assets/web/dist/assets/{mdc-Dl4kL_YK.js → mdc-0ZaHUkS7.js} +1 -1
- package/dist/assets/web/dist/assets/{nginx-CAHCZj4F.js → nginx-DBDg5tOR.js} +1 -1
- package/dist/assets/web/dist/assets/{nim-BOtmwCJH.js → nim-BVMz49Yw.js} +1 -1
- package/dist/assets/web/dist/assets/{org-DspQk3HQ.js → org-1hO_K6ya.js} +1 -1
- package/dist/assets/web/dist/assets/{perl-CAXmvVl0.js → perl-CVRQLvVk.js} +1 -1
- package/dist/assets/web/dist/assets/{php-CMUx4VyM.js → php-K9nCrB9n.js} +1 -1
- package/dist/assets/web/dist/assets/{pug-B55xVJTv.js → pug-CTxOcmO3.js} +1 -1
- package/dist/assets/web/dist/assets/{qml-DsNKCCRk.js → qml-CmCkfG5q.js} +1 -1
- package/dist/assets/web/dist/assets/{r-DbhP0VvO.js → r-pP47Xn1X.js} +1 -1
- package/dist/assets/web/dist/assets/{razor-BCpE6P-p.js → razor-BpW6r3tC.js} +1 -1
- package/dist/assets/web/dist/assets/{regexp-BllsjiN4.js → regexp-CINgdY4N.js} +1 -1
- package/dist/assets/web/dist/assets/{rst-CO5Rpq9V.js → rst-BZIUEq2Q.js} +1 -1
- package/dist/assets/web/dist/assets/{ruby-C2A4OgQq.js → ruby-nzAOxz6r.js} +1 -1
- package/dist/assets/web/dist/assets/{sas-Butzoyql.js → sas-QIS1bFth.js} +1 -1
- package/dist/assets/web/dist/assets/{scss-PEUwJBpf.js → scss-BuhBBVNt.js} +1 -1
- package/dist/assets/web/dist/assets/{shellscript-3Yhq0khE.js → shellscript-CQc1vXbk.js} +1 -1
- package/dist/assets/web/dist/assets/{shellsession-04Hkb7m3.js → shellsession-CoubCAUv.js} +1 -1
- package/dist/assets/web/dist/assets/{soy-BnId73cP.js → soy-CPRzlder.js} +1 -1
- package/dist/assets/web/dist/assets/{sql-BKwdc0ch.js → sql-W9krb8-9.js} +1 -1
- package/dist/assets/web/dist/assets/{sseReplay-DutHNghE.js → sseReplay-yji8a1wM.js} +1 -1
- package/dist/assets/web/dist/assets/{stata-BPPtNkay.js → stata-CuISJEC0.js} +1 -1
- package/dist/assets/web/dist/assets/{surrealql-CDPChcYP.js → surrealql-CSet7584.js} +1 -1
- package/dist/assets/web/dist/assets/{svelte-B15DIQ-z.js → svelte-ChXTSYwK.js} +1 -1
- package/dist/assets/web/dist/assets/{templ-D-rp_AiB.js → templ-Bm55v62k.js} +1 -1
- package/dist/assets/web/dist/assets/{tex-BnVDCD7p.js → tex-CICMX8Gj.js} +1 -1
- package/dist/assets/web/dist/assets/{ts-tags-cpujdyAR.js → ts-tags-CA1UzWyB.js} +1 -1
- package/dist/assets/web/dist/assets/{tsx-D1vO4L72.js → tsx-Dy04HNbv.js} +1 -1
- package/dist/assets/web/dist/assets/{twig-oQGnQGRc.js → twig-BBHsVnVD.js} +1 -1
- package/dist/assets/web/dist/assets/{typescript-CKSFpXiH.js → typescript-Dvc-wVBT.js} +1 -1
- package/dist/assets/web/dist/assets/{typst-DKHFo8BF.js → typst-Dvlqx3_q.js} +1 -1
- package/dist/assets/web/dist/assets/{vue-html-DpCp0_Sz.js → vue-html-D4YxT3An.js} +1 -1
- package/dist/assets/web/dist/assets/{vue-vine-y5d5wUb1.js → vue-vine-0YE7uQlH.js} +1 -1
- package/dist/assets/web/dist/assets/{vue-BstokpiS.js → vue-zWi1MNU2.js} +1 -1
- package/dist/assets/web/dist/assets/{xml-Br2hx5Ax.js → xml-gm-iksZB.js} +1 -1
- package/dist/assets/web/dist/assets/{xsl-Bc8Cobap.js → xsl-D_W5BcrY.js} +1 -1
- package/dist/assets/web/dist/assets/{yaml-LOITy_I1.js → yaml-CHmZ21wZ.js} +1 -1
- package/dist/cli.js +3411 -502
- package/package.json +1 -1
- package/dist/assets/web/dist/assets/AppShell-CM_fh-WW.js +0 -1
- package/dist/assets/web/dist/assets/HomePage-BU6aRCSe.js +0 -2
- package/dist/assets/web/dist/assets/RunFoldRow-Dulcbg25.js +0 -1
- package/dist/assets/web/dist/assets/RunRoutePage-DGoGrQZq.js +0 -6
- package/dist/assets/web/dist/assets/RunsIndexPage-37W7OZbC.js +0 -1
- package/dist/assets/web/dist/assets/SettingsPage-ggfB-Rqr.js +0 -1
- package/dist/assets/web/dist/assets/Slideover-CX-LEklF.js +0 -1
- package/dist/assets/web/dist/assets/main-O8UXRuEv.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$n as e,$r as t,$t as n,A as r,An as i,Ar as a,At as o,B as s,Bn as c,Br as l,Bt as u,C as d,Ci as f,Cn as p,Cr as m,Ct as h,D as g,Dn as _,Dr as v,Dt as y,E as b,En as x,Er as S,Et as C,F as w,Fn as T,Fr as E,Ft as ee,G as te,Gn as D,Gr as ne,Gt as re,H as ie,Hn as O,Hr as ae,Ht as oe,In as se,Ir as ce,It as le,J as ue,Jn as de,Jr as fe,Jt as pe,K as me,Kn as he,Kr as ge,Kt as _e,L as ve,Ln as ye,Lr as k,Lt as be,M as xe,Mn as Se,Mr as A,Mt as Ce,N as j,Nn as we,Nr as Te,Nt as Ee,O as De,On as Oe,Or as ke,Ot as Ae,P as je,Pn as Me,Pr as Ne,Pt as Pe,Q as Fe,Qn as Ie,Qr as Le,Qt as Re,R as ze,Rn as Be,Rr as Ve,Rt as He,S as Ue,Si as M,Sn as We,Sr as Ge,St as Ke,T as qe,Ti as Je,Tn as Ye,Tr as Xe,Tt as Ze,U as Qe,Un as $e,Ur as et,Ut as tt,Vn as nt,Vr as rt,Vt as it,W as at,Wn as N,Wr as ot,Wt as st,X as ct,Xn as lt,Xr as ut,Xt as dt,Y as ft,Yn as pt,Yr as mt,Yt as ht,Z as gt,Zn as _t,Zr as vt,Zt as yt,_ as bt,_i as xt,_n as P,_r as St,a as Ct,ai as wt,an as Tt,ar as Et,at as Dt,b as Ot,bi as kt,bn as At,br as jt,c as Mt,ci as F,cn as I,cr as Nt,ct as Pt,d as Ft,di as It,dn as Lt,dr as L,dt as Rt,ei as zt,en as Bt,er as Vt,f as Ht,fi as Ut,fn as Wt,fr as Gt,ft as Kt,g as qt,gi as Jt,gn as Yt,gr as Xt,h as Zt,hi as Qt,hn as $t,hr as en,ii as tn,in as nn,ir as R,j as rn,jn as an,jr as on,jt as sn,k as cn,kn as z,kr as ln,kt as un,l as dn,li as fn,ln as B,lr as pn,lt as mn,m as hn,mi as gn,mn as _n,mr as vn,mt as yn,ni as bn,nn as xn,nr as Sn,o as Cn,oi as wn,on as V,or as Tn,p as En,pi as Dn,pn as On,pr as kn,pt as An,q as jn,qn as Mn,qr as Nn,qt as Pn,ri as Fn,rn as In,rr as Ln,s as Rn,si as zn,sn as H,sr as Bn,st as Vn,t as Hn,ti as Un,tn as Wn,tr as Gn,tt as Kn,u as qn,ui as Jn,un as U,ur as Yn,ut as Xn,vi as W,vn as Zn,vr as Qn,w as $n,wi as er,wn as tr,wr as nr,wt as rr,x as ir,xi as G,xn as ar,xr as or,xt as sr,y as cr,yi as lr,yn as K,yr as ur,z as q,zn as dr,zr as fr,zt as pr}from"./seed-DeKSHrt2.js";var mr=Object.defineProperty,hr=(e,t)=>{let n={};for(var r in e)mr(n,r,{get:e[r],enumerable:!0});return t||mr(n,Symbol.toStringTag,{value:`Module`}),n},gr=hr({BaseTransition:()=>re,BaseTransitionPropsValidators:()=>_e,Comment:()=>Pn,DeprecationTypes:()=>null,EffectScope:()=>ae,ErrorCodes:()=>pe,ErrorTypeStrings:()=>ht,Fragment:()=>dt,KeepAlive:()=>yt,ReactiveEffect:()=>et,Static:()=>Re,Suspense:()=>n,Teleport:()=>Bt,Text:()=>Wn,TrackOpTypes:()=>ot,Transition:()=>sr,TransitionGroup:()=>Ke,TriggerOpTypes:()=>ne,VueElement:()=>h,assertNumber:()=>xn,callWithAsyncErrorHandling:()=>In,callWithErrorHandling:()=>nn,camelize:()=>lr,capitalize:()=>kt,cloneVNode:()=>Tt,compatUtils:()=>null,compile:()=>_r,computed:()=>V,createApp:()=>rr,createBlock:()=>I,createCommentVNode:()=>B,createElementBlock:()=>U,createElementVNode:()=>H,createHydrationRenderer:()=>Lt,createPropsRestProxy:()=>Wt,createRenderer:()=>On,createSSRApp:()=>Ze,createSlots:()=>_n,createStaticVNode:()=>$t,createTextVNode:()=>Yt,createVNode:()=>P,customRef:()=>ge,defineAsyncComponent:()=>Zn,defineComponent:()=>K,defineCustomElement:()=>C,defineEmits:()=>At,defineExpose:()=>ar,defineModel:()=>We,defineOptions:()=>p,defineProps:()=>tr,defineSSRCustomElement:()=>y,defineSlots:()=>Ye,devtools:()=>x,effect:()=>Nn,effectScope:()=>fe,getCurrentInstance:()=>_,getCurrentScope:()=>mt,getCurrentWatcher:()=>ut,getTransitionRawChildren:()=>Oe,guardReactiveProps:()=>z,h:()=>i,handleError:()=>an,hasInjectionContext:()=>Se,hydrate:()=>Ae,hydrateOnIdle:()=>we,hydrateOnInteraction:()=>Me,hydrateOnMediaQuery:()=>T,hydrateOnVisible:()=>se,initCustomFormatter:()=>ye,initDirectivesForSSR:()=>un,inject:()=>Be,isMemoSame:()=>dr,isProxy:()=>vt,isReactive:()=>Le,isReadonly:()=>t,isRef:()=>zt,isRuntimeOnly:()=>c,isShallow:()=>Un,isVNode:()=>nt,markRaw:()=>bn,mergeDefaults:()=>O,mergeModels:()=>$e,mergeProps:()=>N,nextTick:()=>D,nodeOps:()=>o,normalizeClass:()=>G,normalizeProps:()=>M,normalizeStyle:()=>f,onActivated:()=>he,onBeforeMount:()=>Mn,onBeforeUnmount:()=>de,onBeforeUpdate:()=>pt,onDeactivated:()=>lt,onErrorCaptured:()=>_t,onMounted:()=>Ie,onRenderTracked:()=>e,onRenderTriggered:()=>Vt,onScopeDispose:()=>Fn,onServerPrefetch:()=>Gn,onUnmounted:()=>Sn,onUpdated:()=>Ln,onWatcherCleanup:()=>tn,openBlock:()=>R,patchProp:()=>sn,popScopeId:()=>Et,provide:()=>Tn,proxyRefs:()=>wt,pushScopeId:()=>Bn,queuePostFlushCb:()=>Nt,reactive:()=>wn,readonly:()=>zn,ref:()=>F,registerRuntimeCompiler:()=>pn,render:()=>Ce,renderList:()=>Yn,renderSlot:()=>L,resolveComponent:()=>Gt,resolveDirective:()=>kn,resolveDynamicComponent:()=>vn,resolveFilter:()=>null,resolveTransitionHooks:()=>en,setBlockTracking:()=>Xt,setDevtoolsHook:()=>St,setTransitionHooks:()=>Qn,shallowReactive:()=>fn,shallowReadonly:()=>Jn,shallowRef:()=>It,ssrContextKey:()=>ur,ssrUtils:()=>jt,stop:()=>Ut,toDisplayString:()=>er,toHandlerKey:()=>Je,toHandlers:()=>or,toRaw:()=>Dn,toRef:()=>gn,toRefs:()=>Qt,toValue:()=>Jt,transformVNodeArgs:()=>Ge,triggerRef:()=>xt,unref:()=>W,useAttrs:()=>m,useCssModule:()=>Ee,useCssVars:()=>Pe,useHost:()=>ee,useId:()=>nr,useModel:()=>Xe,useSSRContext:()=>S,useShadowRoot:()=>le,useSlots:()=>v,useTemplateRef:()=>ke,useTransitionState:()=>ln,vModelCheckbox:()=>be,vModelDynamic:()=>He,vModelRadio:()=>pr,vModelSelect:()=>u,vModelText:()=>it,vShow:()=>oe,version:()=>a,warn:()=>on,watch:()=>A,watchEffect:()=>Te,watchPostEffect:()=>Ne,watchSyncEffect:()=>E,withAsyncContext:()=>ce,withCtx:()=>k,withDefaults:()=>Ve,withDirectives:()=>fr,withKeys:()=>tt,withMemo:()=>l,withModifiers:()=>st,withScopeId:()=>rt}),_r=()=>{},vr={meta:``,ctrl:``,alt:``,win:`⊞`,command:`⌘`,shift:`⇧`,control:`⌃`,option:`⌥`,enter:`↵`,delete:`⌦`,backspace:`⌫`,escape:`Esc`,tab:`⇥`,capslock:`⇪`,arrowup:`↑`,arrowright:`→`,arrowdown:`↓`,arrowleft:`←`,pageup:`⇞`,pagedown:`⇟`,home:`↖`,end:`↘`},yr=Pt(()=>{let e=V(()=>navigator&&navigator.userAgent&&navigator.userAgent.match(/Macintosh;/)),t=wn({meta:` `,alt:` `,ctrl:` `});Ie(()=>{t.meta=e.value?vr.command:`Ctrl`,t.ctrl=e.value?vr.control:`Ctrl`,t.alt=e.value?vr.option:`Alt`});function n(e){if(e)return[`meta`,`alt`,`ctrl`].includes(e)?t[e]:vr[e]||e}return{macOS:e,getKbdKey:n}});function br(e,t,n){let r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),r.dispatchEvent(i)}var xr=[`INPUT`,`TEXTAREA`];function Sr(e,t,n,r={}){if(!t||r.enableIgnoredElement&&xr.includes(t.nodeName))return null;let{arrowKeyOptions:i=`both`,attributeName:a=`[data-reka-collection-item]`,itemsArray:o=[],loop:s=!0,dir:c=`ltr`,preventScroll:l=!0,focus:u=!1}=r,[d,f,p,m,h,g]=[e.key===`ArrowRight`,e.key===`ArrowLeft`,e.key===`ArrowUp`,e.key===`ArrowDown`,e.key===`Home`,e.key===`End`],_=p||m,v=d||f;if(!h&&!g&&(!_&&!v||i===`vertical`&&v||i===`horizontal`&&_))return null;let y=n?Array.from(n.querySelectorAll(a)):o;if(!y.length)return null;l&&e.preventDefault();let b=null;return v||_?b=Cr(y,t,{goForward:_?m:c===`ltr`?d:f,loop:s}):h?b=y.at(0)||null:g&&(b=y.at(-1)||null),u&&b?.focus(),b}function Cr(e,t,n,r=e.includes(t)?e.length:e.length+1){if(--r===0)return null;let i=e.indexOf(t),a;if(a=i===-1?n.goForward?0:e.length-1:n.goForward?i+1:i-1,!n.loop&&(a<0||a>=e.length))return null;let o=e[(a+e.length)%e.length];return o?o.hasAttribute(`disabled`)&&o.getAttribute(`disabled`)!==`false`?Cr(e,o,n,r):o:null}var wr=Pt(()=>{let e=F(new Map),t=F(),n=V(()=>{for(let t of e.value.values())if(t)return!0;return!1}),r=ve({scrollBody:F(!0)}),i=null,a=()=>{document.body.style.paddingRight=``,document.body.style.marginRight=``,w.layersWithOutsidePointerEventsDisabled.size===0&&(document.body.style.pointerEvents=``),document.documentElement.style.removeProperty(`--scrollbar-width`),document.body.style.overflow=t.value??``,Xn&&i?.(),t.value=void 0};return A(n,(e,o)=>{if(!mn)return;if(!e){o&&a();return}t.value===void 0&&(t.value=document.body.style.overflow);let s=window.innerWidth-document.documentElement.clientWidth,c={padding:s,margin:0},l=r.scrollBody?.value?typeof r.scrollBody.value==`object`?jn({padding:r.scrollBody.value.padding===!0?s:r.scrollBody.value.padding,margin:r.scrollBody.value.margin===!0?s:r.scrollBody.value.margin},c):c:{padding:0,margin:0};s>0&&(document.body.style.paddingRight=typeof l.padding==`number`?`${l.padding}px`:String(l.padding),document.body.style.marginRight=typeof l.margin==`number`?`${l.margin}px`:String(l.margin),document.documentElement.style.setProperty(`--scrollbar-width`,`${s}px`),document.body.style.overflow=`hidden`),Xn&&(i=Kn(document,`touchmove`,e=>Dr(e),{passive:!1})),D(()=>{n.value&&(document.body.style.pointerEvents=`none`,document.body.style.overflow=`hidden`)})},{immediate:!0,flush:`sync`}),e});function Tr(e){let t=Math.random().toString(36).substring(2,7),n=wr();n.value.set(t,e??!1);let r=V({get:()=>n.value.get(t)??!1,set:e=>n.value.set(t,e)});return yn(()=>{n.value.delete(t)}),r}function Er(e){let t=window.getComputedStyle(e);if(t.overflowX===`scroll`||t.overflowY===`scroll`||t.overflowX===`auto`&&e.clientWidth<e.scrollWidth||t.overflowY===`auto`&&e.clientHeight<e.scrollHeight)return!0;{let t=e.parentNode;return!(t instanceof Element)||t.tagName===`BODY`?!1:Er(t)}}function Dr(e){let t=e||window.event,n=t.target;return n instanceof Element&&Er(n)?!1:t.touches.length>1||(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}var Or=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Bopomofo}]/u,kr=/android/i;function Ar(){return typeof navigator<`u`&&kr.test(navigator.userAgent)}function jr(e){let t=F(!1),n=F(!0),r=F(!1),i=V(()=>t.value&&n.value);function a(){t.value=!0,n.value=!0,r.value=!1}function o(e){e.data&&(Or.test(e.data)?(n.value=!0,r.value=!0):Ar()&&!r.value&&(n.value=!1))}function s(n){D(()=>{t.value=!1,e?.(n)})}return{isComposing:t,shouldDeferInput:i,handleCompositionStart:a,handleCompositionUpdate:o,handleCompositionEnd:s}}function Mr(e){let t=ve({dir:F(`ltr`)});return V(()=>e?.value||t.dir?.value||`ltr`)}function Nr(e){let t=V(()=>W(e)),n=V(()=>new Intl.Collator(`en`,{usage:`search`,...t.value}));return{startsWith:(e,t)=>t.length===0||(e=e.normalize(`NFC`),t=t.normalize(`NFC`),n.value.compare(e.slice(0,t.length),t)===0),endsWith:(e,t)=>t.length===0||(e=e.normalize(`NFC`),t=t.normalize(`NFC`),n.value.compare(e.slice(-t.length),t)===0),contains:(e,t)=>{if(t.length===0)return!0;e=e.normalize(`NFC`),t=t.normalize(`NFC`);let r=0,i=t.length;for(;r+i<=e.length;r++){let a=e.slice(r,r+i);if(n.value.compare(t,a)===0)return!0}return!1}}}var Pr=0;function Fr(){Te(e=>{if(!mn)return;let t=document.querySelectorAll(`[data-reka-focus-guard]`);document.body.insertAdjacentElement(`afterbegin`,t[0]??Ir()),document.body.insertAdjacentElement(`beforeend`,t[1]??Ir()),Pr++,e(()=>{Pr===1&&document.querySelectorAll(`[data-reka-focus-guard]`).forEach(e=>e.remove()),Pr--})})}function Ir(){let e=document.createElement(`span`);return e.setAttribute(`data-reka-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}function J(e,t){let n=xe(e),r=t?je(t):{};return V(()=>({...n.value,...r}))}var Lr=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},Rr=new WeakMap,zr=new WeakMap,Br={},Vr=0,Hr=function(e){return e&&(e.host||Hr(e.parentNode))},Ur=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=Hr(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Wr=function(e,t,n,r){var i=Ur(t,Array.isArray(e)?e:[e]);Br[n]||(Br[n]=new WeakMap);var a=Br[n],o=[],s=new Set,c=new Set(i),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(Rr.get(e)||0)+1,l=(a.get(e)||0)+1;Rr.set(e,c),a.set(e,l),o.push(e),c===1&&i&&zr.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),Vr++,function(){o.forEach(function(e){var t=Rr.get(e)-1,i=a.get(e)-1;Rr.set(e,t),a.set(e,i),t||(zr.has(e)||e.removeAttribute(r),zr.delete(e)),i||e.removeAttribute(n)}),Vr--,Vr||(Rr=new WeakMap,Rr=new WeakMap,zr=new WeakMap,Br={})}},Gr=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Lr(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Wr(r,i,n,`aria-hidden`)):function(){return null}};function Kr(e){let t;A(()=>gt(e),e=>{let n=!1;try{n=!!e?.closest(`[popover]:not(:popover-open)`)}catch{}e&&!n?t=Gr(e):t&&t()}),Sn(()=>{t&&t()})}var qr=0;function Jr(e,t=`reka`){if(e)return e;let n,r=ve({useId:void 0});return n=r.useId?r.useId():`useId`in gr?nr?.():`${++qr}`,t?`${t}-${n}`:n}function Yr(e){let t=F(),n=V(()=>t.value?.width??0),r=V(()=>t.value?.height??0),i;return Ie(()=>{let n=gt(e);n?(t.value={width:n.offsetWidth,height:n.offsetHeight},i=new ResizeObserver(e=>{if(!Array.isArray(e)||!e.length)return;let r=e[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=n.offsetWidth,a=n.offsetHeight;t.value={width:i,height:a}}),i.observe(n,{box:`border-box`})):t.value=void 0}),Sn(()=>{i?.disconnect(),i=void 0}),{width:n,height:r}}function Xr(e){let t=An(``,1e3);return{search:t,handleTypeaheadSearch:(n,r)=>{if(t.value+=n,e)e(n);else{let e=q(),n=r.map(e=>({...e,textValue:e.value?.textValue??e.ref.textContent?.trim()??``})),i=n.find(t=>t.ref===e),a=Qr(n.map(e=>e.textValue),t.value,i?.textValue),o=n.find(e=>e.textValue===a);return o&&o.ref.focus(),o?.ref}},resetTypeahead:()=>{t.value=``}}}function Zr(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Qr(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Zr(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}var $r=`dismissableLayer.pointerDownOutside`,ei=`dismissableLayer.focusOutside`;function ti(e,t){if(!(t instanceof Element))return!1;let n=t.closest(`[data-dismissable-layer]`),r=e.dataset.dismissableLayer===``?e:e.querySelector(`[data-dismissable-layer]`),i=Array.from(e.ownerDocument.querySelectorAll(`[data-dismissable-layer]`));return!!(n&&(r===n||i.indexOf(r)<i.indexOf(n)))}function ni(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=F(!1),a=F(()=>{});return Te(o=>{if(!mn||!Jt(n))return;let s=async n=>{let o=n.target;if(t?.value&&o){if(ti(t.value,o)){i.value=!1;return}if(n.target&&!i.value){let t={originalEvent:n};function i(){br($r,e,t)}n.pointerType===`touch`?(r.removeEventListener(`click`,a.value),a.value=i,r.addEventListener(`click`,a.value,{once:!0})):i()}else r.removeEventListener(`click`,a.value);i.value=!1}},c=window.setTimeout(()=>{r.addEventListener(`pointerdown`,s)},0);o(()=>{window.clearTimeout(c),r.removeEventListener(`pointerdown`,s),r.removeEventListener(`click`,a.value)})}),{onPointerDownCapture:()=>{Jt(n)&&(i.value=!0)}}}function ri(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=F(!1);return Te(a=>{if(!mn||!Jt(n))return;let o=async n=>{if(!t?.value)return;await D(),await D();let r=n.target;t.value&&r&&!ti(t.value,r)&&n.target&&!i.value&&br(ei,e,{originalEvent:n})};r.addEventListener(`focusin`,o),a(()=>r.removeEventListener(`focusin`,o))}),{onFocusCapture:()=>{Jt(n)&&(i.value=!0)},onBlurCapture:()=>{Jt(n)&&(i.value=!1)}}}var ii=K({__name:`DismissableLayer`,props:{disableOutsidePointerEvents:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`dismiss`],setup(e,{emit:t}){let n=e,i=t,{forwardRef:a,currentElement:o}=j(),s=V(()=>o.value?.ownerDocument??globalThis.document),c=V(()=>w.layersRoot),l=V(()=>o.value?Array.from(c.value).indexOf(o.value):-1),u=V(()=>w.layersWithOutsidePointerEventsDisabled.size>0),d=V(()=>{let e=Array.from(c.value),[t]=[...w.layersWithOutsidePointerEventsDisabled].slice(-1),n=e.indexOf(t);return l.value>=n}),p=ni(async e=>{let t=[...w.branches].some(t=>t?.contains(e.target));n.present&&d.value&&!t&&(i(`pointerDownOutside`,e),i(`interactOutside`,e),await D(),e.defaultPrevented||i(`dismiss`))},o,()=>n.present),m=ri(e=>{let t=[...w.branches].some(t=>t?.contains(e.target));n.present&&!t&&(i(`focusOutside`,e),i(`interactOutside`,e),e.defaultPrevented||i(`dismiss`))},o);return ct(`Escape`,e=>{n.present&&l.value===c.value.size-1&&(i(`escapeKeyDown`,e),e.defaultPrevented||i(`dismiss`))}),A([o,()=>n.disableOutsidePointerEvents,()=>n.present],([e,t,n],r,i)=>{e&&n&&t&&(w.layersWithOutsidePointerEventsDisabled.size===0&&(w.originalBodyPointerEvents=s.value.body.style.pointerEvents,s.value.body.style.pointerEvents=`none`),w.layersWithOutsidePointerEventsDisabled.add(e),i(()=>{w.layersWithOutsidePointerEventsDisabled.delete(e),w.layersWithOutsidePointerEventsDisabled.size===0&&!ze(w.originalBodyPointerEvents)&&(s.value.body.style.pointerEvents=w.originalBodyPointerEvents)}))},{immediate:!0}),A([o,()=>n.present],([e,t],n,r)=>{e&&t&&(c.value.add(e),r(()=>{c.value.delete(e)}))},{immediate:!0}),Te(e=>{e(()=>{o.value&&(c.value.delete(o.value),w.layersWithOutsidePointerEventsDisabled.delete(o.value))})}),(e,t)=>(R(),I(W(r),{ref:W(a),"as-child":e.asChild,as:e.as,"data-dismissable-layer":``,style:f({pointerEvents:u.value?d.value?`auto`:`none`:void 0}),onFocusCapture:W(m).onFocusCapture,onBlurCapture:W(m).onBlurCapture,onPointerdownCapture:W(p).onPointerDownCapture},{default:k(()=>[L(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`style`,`onFocusCapture`,`onBlurCapture`,`onPointerdownCapture`]))}}),ai=Vn(()=>F([]));function oi(){let e=ai();return{add(t){let n=e.value[0];t!==n&&n?.pause(),e.value=si(e.value,t),e.value.unshift(t)},remove(t){e.value=si(e.value,t),e.value[0]?.resume()}}}function si(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}var ci=K({__name:`FocusScope`,props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},present:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`mountAutoFocus`,`unmountAutoFocus`],setup(e,{emit:t}){let n=e,i=t,{currentRef:a,currentElement:o}=j(),s=F(null),c=oi(),l=wn({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});Te(e=>{if(!mn)return;let t=o.value;if(!n.trapped)return;function r(e){if(l.paused||!t)return;let n=e.target;t.contains(n)?s.value=n:qe(s.value,{select:!0})}function i(e){if(l.paused||!t)return;let n=e.relatedTarget;n!==null&&(t.contains(n)||qe(s.value,{select:!0}))}function a(e){let n=s.value;if(n===null||!e.some(e=>e.removedNodes.length>0))return;let r=q();r&&t.contains(r)||t.contains(n)||qe(t)}document.addEventListener(`focusin`,r),document.addEventListener(`focusout`,i);let c=new MutationObserver(a);t&&c.observe(t,{childList:!0,subtree:!0}),e(()=>{document.removeEventListener(`focusin`,r),document.removeEventListener(`focusout`,i),c.disconnect()})});function u(e,t){let n=new CustomEvent(Ue,$n),r=e=>i(`mountAutoFocus`,e);e.addEventListener(Ue,r),e.dispatchEvent(n),e.removeEventListener(Ue,r),n.defaultPrevented||(b(g(e),{select:!0}),q()===t&&qe(e))}Te(async e=>{let t=o.value;if(await D(),!t)return;n.present!==!1&&c.add(l);let r=q();!t.contains(r)&&n.present!==!1&&u(t,r),e(()=>{let e=new CustomEvent(d,$n),n=e=>{i(`unmountAutoFocus`,e)};t.addEventListener(d,n),t.dispatchEvent(e),t.setAttribute(`data-focus-scope-unmounting`,``),setTimeout(()=>{e.defaultPrevented||qe(r??document.body,{select:!0}),t.removeEventListener(d,n),c.remove(l),t.removeAttribute(`data-focus-scope-unmounting`)},0)})}),A(()=>n.present,async(e,t)=>{if(!mn)return;if(e===!1&&t===!0){c.remove(l);return}if(e!==!0||t!==!1)return;c.add(l),await D();let n=o.value;if(!n)return;let r=q();n.contains(r)||u(n,r)});function f(e){if(!n.loop&&!n.trapped||l.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,r=q();if(t&&r){let t=e.currentTarget,[i,a]=De(t);i&&a?!e.shiftKey&&r===a?(e.preventDefault(),n.loop&&qe(i,{select:!0})):e.shiftKey&&r===i&&(e.preventDefault(),n.loop&&qe(a,{select:!0})):r===t&&e.preventDefault()}}return(e,t)=>(R(),I(W(r),{ref_key:`currentRef`,ref:a,tabindex:`-1`,"as-child":e.asChild,as:e.as,onKeydown:f},{default:k(()=>[L(e.$slots,`default`)]),_:3},8,[`as-child`,`as`]))}}),li=`menu.itemSelect`,ui=[`Enter`,` `],di=[`ArrowDown`,`PageUp`,`Home`],fi=[`ArrowUp`,`PageDown`,`End`],pi=[...di,...fi],mi={ltr:[...ui,`ArrowRight`],rtl:[...ui,`ArrowLeft`]},hi={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]};function gi(e){return e?`open`:`closed`}function _i(e){return e===`indeterminate`}function vi(e){return _i(e)?`indeterminate`:e?`checked`:`unchecked`}function yi(e){let t=q();for(let n of e)if(n===t||(n.focus(),q()!==t))return}function bi(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function xi(e,t){return t?bi({x:e.clientX,y:e.clientY},t):!1}function Si(e){return e.pointerType===`mouse`}var Ci=`rovingFocusGroup.onEntryFocus`,wi={bubbles:!1,cancelable:!0},Ti={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Ei(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Di(e,t,n){let r=Ei(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return Ti[r]}function Oi(e,t=!1){let n=q();for(let r of e)if(r===n||(r.focus({preventScroll:t}),q()!==n))return}function ki(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[Ai,ji]=s(`PopperRoot`),Mi=K({inheritAttrs:!1,__name:`PopperRoot`,setup(e){let t=F();return ji({anchor:t,onAnchorChange:e=>t.value=e}),(e,t)=>L(e.$slots,`default`)}}),Ni=K({__name:`PopperAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n,currentElement:i}=j(),a=Ai();return Ne(()=>{a.onAnchorChange(t.reference??i.value)}),(e,t)=>(R(),I(W(r),{ref:W(n),as:e.as,"as-child":e.asChild},{default:k(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}}),Pi={key:0,d:`M0 0L6 6L12 0`},Fi={key:1,d:`M0 0L4.58579 4.58579C5.36683 5.36683 6.63316 5.36684 7.41421 4.58579L12 0`},Ii=K({__name:`Arrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return j(),(e,n)=>(R(),I(W(r),N(t,{width:e.width,height:e.height,viewBox:e.asChild?void 0:`0 0 12 6`,preserveAspectRatio:e.asChild?void 0:`none`}),{default:k(()=>[L(e.$slots,`default`,{},()=>[e.rounded?(R(),U(`path`,Fi)):(R(),U(`path`,Pi))])]),_:3},16,[`width`,`height`,`viewBox`,`preserveAspectRatio`]))}});function Li(e){return e!==null}function Ri(e){return{name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=zi(n),u={start:e.dir===`rtl`?`100%`:`0%`,center:`50%`,end:e.dir===`rtl`?`0%`:`100%`}[l],d={start:`0%`,center:`50%`,end:`100%`}[l],f=(i.arrow?.x??0)+o/2,p=(i.arrow?.y??0)+s/2,m=``,h=``;return c===`bottom`?(m=a?u:`${f}px`,h=`${-s}px`):c===`top`?(m=a?u:`${f}px`,h=`${r.floating.height+s}px`):c===`right`?(m=`${-s}px`,h=a?d:`${p}px`):c===`left`&&(m=`${r.floating.width+s}px`,h=a?d:`${p}px`),{data:{x:m,y:h}}}}}function zi(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var Bi=[`top`,`right`,`bottom`,`left`],Vi=Math.min,Hi=Math.max,Ui=Math.round,Wi=Math.floor,Gi=e=>({x:e,y:e}),Ki={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function qi(e,t,n){return Hi(e,Vi(t,n))}function Ji(e,t){return typeof e==`function`?e(t):e}function Yi(e){return e.split(`-`)[0]}function Xi(e){return e.split(`-`)[1]}function Zi(e){return e===`x`?`y`:`x`}function Qi(e){return e===`y`?`height`:`width`}function Y(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function $i(e){return Zi(Y(e))}function ea(e,t,n){n===void 0&&(n=!1);let r=Xi(e),i=$i(e),a=Qi(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=la(o)),[o,la(o)]}function ta(e){let t=la(e);return[na(e),t,na(t)]}function na(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var ra=[`left`,`right`],ia=[`right`,`left`],aa=[`top`,`bottom`],oa=[`bottom`,`top`];function sa(e,t,n){switch(e){case`top`:case`bottom`:return n?t?ia:ra:t?ra:ia;case`left`:case`right`:return t?aa:oa;default:return[]}}function ca(e,t,n,r){let i=Xi(e),a=sa(Yi(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(na)))),a}function la(e){let t=Yi(e);return Ki[t]+e.slice(t.length)}function ua(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function da(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:ua(e)}function fa(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function pa(e,t,n){let{reference:r,floating:i}=e,a=Y(t),o=$i(t),s=Qi(o),c=Yi(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=Xi(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function ma(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Ji(t,e),p=da(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=fa(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=fa(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var ha=50,ga=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:ma},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=pa(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<ha&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=pa(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},_a=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=Ji(e,t)||{};if(l==null)return{};let d=da(u),f={x:n,y:r},p=$i(i),m=Qi(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=Vi(d[_],T),ee=Vi(d[v],T),te=C-h[m]-ee,D=C/2-h[m]/2+w,ne=qi(E,D,te),re=!c.arrow&&Xi(i)!=null&&D!==ne&&a.reference[m]/2-(D<E?E:ee)-h[m]/2<0,ie=re?D<E?D-E:D-te:0;return{[p]:f[p]+ie,data:{[p]:ne,centerOffset:D-ne-ie,...re&&{alignmentOffset:ie}},reset:re}}}),va=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Ji(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=Yi(r),_=Y(o),v=Yi(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[la(o)]:ta(o)),x=p!==`none`;!d&&x&&b.push(...ca(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=ea(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===Y(t)||T.every(e=>Y(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=Y(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}};function ya(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function ba(e){return Bi.some(t=>e[t]>=0)}var xa=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=Ji(e,t);switch(i){case`referenceHidden`:{let e=ya(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:ba(e)}}}case`escaped`:{let e=ya(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:ba(e)}}}default:return{}}}}},Sa=new Set([`left`,`top`]);async function Ca(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Yi(n),s=Xi(n),c=Y(n)===`y`,l=Sa.has(o)?-1:1,u=a&&c?-1:1,d=Ji(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var wa=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Ca(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Ta=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Ji(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=Y(i),p=Zi(f),m=u[p],h=u[f],g=(e,t)=>qi(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},Ea=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=Ji(e,t),u={x:n,y:r},d=Y(i),f=Zi(d),p=u[f],m=u[d],h=Ji(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:h.mainAxis??0,crossAxis:h.crossAxis??0};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Sa.has(Yi(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Da=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=Ji(e,t),c=await i.detectOverflow(t,s),l=Yi(n),u=Xi(n),d=Y(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=Vi(p-c[m],g),y=Vi(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*Hi(c.left,c.right):S=p-2*Hi(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}};function Oa(){return typeof window<`u`}function ka(e){return ja(e)?(e.nodeName||``).toLowerCase():`#document`}function X(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Aa(e){return((ja(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function ja(e){return Oa()?e instanceof Node||e instanceof X(e).Node:!1}function Z(e){return Oa()?e instanceof Element||e instanceof X(e).Element:!1}function Ma(e){return Oa()?e instanceof HTMLElement||e instanceof X(e).HTMLElement:!1}function Na(e){return!Oa()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof X(e).ShadowRoot}function Pa(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Q(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Fa(e){return/^(table|td|th)$/.test(ka(e))}function Ia(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var La=/transform|translate|scale|rotate|perspective|filter/,Ra=/paint|layout|strict|content/,za=e=>!!e&&e!==`none`,Ba;function Va(e){let t=Z(e)?Q(e):e;return za(t.transform)||za(t.translate)||za(t.scale)||za(t.rotate)||za(t.perspective)||!Ua()&&(za(t.backdropFilter)||za(t.filter))||La.test(t.willChange||``)||Ra.test(t.contain||``)}function Ha(e){let t=Ka(e);for(;Ma(t)&&!Wa(t);){if(Va(t))return t;if(Ia(t))return null;t=Ka(t)}return null}function Ua(){return Ba??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ba}function Wa(e){return/^(html|body|#document)$/.test(ka(e))}function Q(e){return X(e).getComputedStyle(e)}function Ga(e){return Z(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ka(e){if(ka(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Na(e)&&e.host||Aa(e);return Na(t)?t.host:t}function qa(e){let t=Ka(e);return Wa(t)?(e.ownerDocument||e).body:Ma(t)&&Pa(t)?t:qa(t)}function Ja(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=qa(e),i=r===e.ownerDocument?.body,a=X(r);if(i){let e=Ya(a);return t.concat(a,a.visualViewport||[],Pa(r)?r:[],e&&n?Ja(e):[])}return t.concat(r,Ja(r,[],n))}function Ya(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Xa(e){let t=Q(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Ma(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=Ui(n)!==a||Ui(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Za(e){return Z(e)?e:e.contextElement}function Qa(e){let t=Za(e);if(!Ma(t))return Gi(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Xa(t),o=(a?Ui(n.width):n.width)/r,s=(a?Ui(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var $a=Gi(0);function eo(e){let t=X(e);return!Ua()||!t.visualViewport?$a:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function to(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===X(e)}function no(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Za(e),o=Gi(1);t&&(r?Z(r)&&(o=Qa(r)):o=Qa(e));let s=to(a,n,r)?eo(a):Gi(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=X(a),t=Z(r)?X(r):r,n=e,i=Ya(n);for(;i&&t!==n;){let e=Qa(i),t=i.getBoundingClientRect(),r=Q(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=X(i),i=Ya(n)}}return fa({width:u,height:d,x:c,y:l})}function ro(e,t){let n=Ga(e).scrollLeft;return t?t.left+n:no(Aa(e)).left+n}function io(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-ro(e,n),y:n.top+t.scrollTop}}function ao(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Aa(r),s=t?Ia(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Gi(1),u=Gi(0),d=Ma(r);if((d||!a)&&((ka(r)!==`body`||Pa(o))&&(c=Ga(r)),d)){let e=no(r);l=Qa(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?io(o,c):Gi(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function oo(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function so(e){let t=Ga(e),n=e.ownerDocument.body,r=Hi(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=Hi(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+ro(e),o=-t.scrollTop;return Q(n).direction===`rtl`&&(a+=Hi(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var co=25;function lo(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=X(e),a=Aa(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!Ua()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(ro(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=co&&(s-=o)}return{width:s,height:c,x:l,y:u}}function uo(e,t){let n=no(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Qa(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function fo(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=lo(e,n,t);else if(t===`document`)r=so(Aa(e));else if(Z(t))r=uo(t,n);else{let n=eo(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return fa(r)}function po(e,t){let n=t.get(e);if(n)return n;let r=Ja(e,[],!1).filter(e=>Z(e)&&ka(e)!==`body`),i=null,a=Q(e).position===`fixed`,o=a?Ka(e):e;for(;Z(o)&&!Wa(o);){let e=Q(o),t=Va(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=Ka(o)}return t.set(e,r),r}function mo(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Ia(t)?[]:po(t,this._c):[].concat(n),r],o=fo(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=fo(t,a[e],i);s=Hi(n.top,s),c=Vi(n.right,c),l=Vi(n.bottom,l),u=Hi(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function ho(e){let{width:t,height:n}=Xa(e);return{width:t,height:n}}function go(e,t,n){let r=Ma(t),i=Aa(t),a=n===`fixed`,o=no(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=Gi(0);if((r||!a)&&((ka(t)!==`body`||Pa(i))&&(s=Ga(t)),r)){let e=no(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=ro(i));let l=i&&!r&&!a?io(i,s):Gi(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function _o(e){return Q(e).position===`static`}function vo(e,t){if(!Ma(e)||Q(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Aa(e)===n&&(n=n.ownerDocument.body),n}function yo(e,t){let n=X(e);if(Ia(e))return n;if(!Ma(e)){let t=Ka(e);for(;t&&!Wa(t);){if(Z(t)&&!_o(t))return t;t=Ka(t)}return n}let r=vo(e,t);for(;r&&Fa(r)&&_o(r);)r=vo(r,t);return r&&Wa(r)&&_o(r)&&!Va(r)?n:r||Ha(e)||n}var bo=async function(e){let t=this.getOffsetParent||yo,n=this.getDimensions,r=await n(e.floating);return{reference:go(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function xo(e){return Q(e).direction===`rtl`}var So={convertOffsetParentRelativeRectToViewportRelativeRect:ao,getDocumentElement:Aa,getClippingRect:mo,getOffsetParent:yo,getElementRects:bo,getClientRects:oo,getDimensions:ho,getScale:Qa,isElement:Z,isRTL:xo};function Co(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function wo(e,t,n){let r=null,i,a=Aa(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=Wi(d),h=Wi(a.clientWidth-(u+f)),g=Wi(a.clientHeight-(d+p)),_=Wi(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:Hi(0,Vi(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!Co(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=X(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function To(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Za(e),u=i||a?[...l?Ja(l):[],...t?Ja(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?wo(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?no(e):null;c&&g();function g(){let t=no(e);h&&!Co(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Eo=wa,Do=Ta,Oo=va,ko=Da,Ao=xa,jo=_a,Mo=Ea,No=(e,t,n)=>{let r=new Map,i=n??{},a={...So,...i.platform,_c:r};return ga(e,t,{...i,platform:a})};function Po(e){return typeof e==`object`&&!!e&&`$el`in e}function Fo(e){if(Po(e)){let t=e.$el;return ja(t)&&ka(t)===`#comment`?null:t}return e}function Io(e){return typeof e==`function`?e():W(e)}function Lo(e){return{name:`arrow`,options:e,fn(t){let n=Fo(Io(e.element));return n==null?{}:jo({element:n,padding:e.padding}).fn(t)}}}function Ro(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function zo(e,t){let n=Ro(e);return Math.round(t*n)/n}function Bo(e,t,n){n===void 0&&(n={});let r=n.whileElementsMounted,i=V(()=>Io(n.open)??!0),a=V(()=>Io(n.middleware)),o=V(()=>Io(n.placement)??`bottom`),s=V(()=>Io(n.strategy)??`absolute`),c=V(()=>Io(n.transform)??!0),l=V(()=>Fo(e.value)),u=V(()=>Fo(t.value)),d=F(0),f=F(0),p=F(s.value),m=F(o.value),h=It({}),g=F(!1),_=V(()=>{let e={position:p.value,left:`0`,top:`0`};if(!u.value)return e;let t=zo(u.value,d.value),n=zo(u.value,f.value);return c.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...Ro(u.value)>=1.5&&{willChange:`transform`}}:{position:p.value,left:t+`px`,top:n+`px`}}),v;function y(){if(l.value==null||u.value==null)return;let e=i.value;No(l.value,u.value,{middleware:a.value,placement:o.value,strategy:s.value}).then(t=>{d.value=t.x,f.value=t.y,p.value=t.strategy,m.value=t.placement,h.value=t.middlewareData,g.value=e!==!1})}function b(){typeof v==`function`&&(v(),v=void 0)}function x(){if(b(),r===void 0){y();return}if(l.value!=null&&u.value!=null){v=r(l.value,u.value,y);return}}function S(){i.value||(g.value=!1)}return A([a,o,s,i],y,{flush:`sync`}),A([l,u],x,{flush:`sync`}),A(i,S,{flush:`sync`}),mt()&&Fn(b),{x:Jn(d),y:Jn(f),strategy:Jn(p),placement:Jn(m),middlewareData:Jn(h),isPositioned:Jn(g),floatingStyles:_,update:y}}var Vo=[`dir`],Ho={side:`bottom`,sideOffset:0,sideFlip:!0,align:`center`,alignOffset:0,alignFlip:!0,arrowPadding:0,hideShiftedArrow:!0,avoidCollisions:!0,collisionBoundary:()=>[],collisionPadding:0,sticky:`partial`,hideWhenDetached:!1,positionStrategy:`fixed`,updatePositionStrategy:`optimized`,prioritizePosition:!1},[Uo,Wo]=s(`PopperContent`),Go=K({inheritAttrs:!1,__name:`PopperContent`,props:O({memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...Ho}),emits:[`placed`],setup(e,{emit:t}){let n=e,i=t,a=Ai(),{forwardRef:o,currentElement:s}=j(),c=Mr(V(()=>n.dir)),u=F(),d=F(),{width:p,height:m}=Yr(d),h=V(()=>n.side+(n.align===`center`?``:`-${n.align}`)),g=V(()=>typeof n.collisionPadding==`number`?n.collisionPadding:{top:0,right:0,bottom:0,left:0,...n.collisionPadding}),_=V(()=>Array.isArray(n.collisionBoundary)?n.collisionBoundary:[n.collisionBoundary]),v=V(()=>({padding:g.value,boundary:_.value.filter(Li),altBoundary:_.value.length>0})),y=V(()=>({mainAxis:n.sideFlip,crossAxis:n.alignFlip})),b=V(()=>[Eo({mainAxis:n.sideOffset+m.value,alignmentAxis:n.alignOffset}),n.prioritizePosition&&n.avoidCollisions&&Oo({...v.value,...y.value}),n.avoidCollisions&&Do({mainAxis:!0,crossAxis:!!n.prioritizePosition,limiter:n.sticky===`partial`?Mo():void 0,...v.value}),!n.prioritizePosition&&n.avoidCollisions&&Oo({...v.value,...y.value}),ko({...v.value,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--reka-popper-available-width`,`${n}px`),o.setProperty(`--reka-popper-available-height`,`${r}px`),o.setProperty(`--reka-popper-anchor-width`,`${i}px`),o.setProperty(`--reka-popper-anchor-height`,`${a}px`)}}),d.value&&Lo({element:d.value,padding:n.arrowPadding}),Ri({arrowWidth:p.value,arrowHeight:m.value,dir:c.value}),n.hideWhenDetached&&Ao({strategy:`referenceHidden`,...v.value})]),{floatingStyles:x,placement:S,isPositioned:C,middlewareData:w,update:T}=Bo(V(()=>n.reference??a.anchor.value),u,{strategy:n.positionStrategy,placement:h,whileElementsMounted:(...e)=>To(...e,{layoutShift:!n.disableUpdateOnLayoutShift,animationFrame:n.updatePositionStrategy===`always`}),middleware:b}),E=V(()=>zi(S.value)[0]),ee=V(()=>zi(S.value)[1]);Ne(()=>{C.value&&i(`placed`)});let te=V(()=>{let e=w.value.arrow?.centerOffset!==0;return n.hideShiftedArrow&&e}),D=F(``);return Te(()=>{s.value&&(D.value=window.getComputedStyle(s.value).zIndex)}),Wo({placedSide:E,onArrowChange:e=>d.value=e,arrowX:V(()=>w.value.arrow?.x??0),arrowY:V(()=>w.value.arrow?.y??0),shouldHideArrow:te}),(e,t)=>(R(),U(`div`,{ref_key:`floatingRef`,ref:u,"data-reka-popper-content-wrapper":``,dir:W(c),style:f({...W(x),transform:W(C)?W(x).transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:D.value,"--reka-popper-transform-origin":[W(w).transformOrigin?.x,W(w).transformOrigin?.y].join(` `),...W(w).hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}})},[n.memoDependencies?l([n.asChild,n.as,E.value,ee.value,W(C),...Object.values(e.$attrs),...n.memoDependencies],()=>(R(),I(W(r),N({key:0,ref:W(o)},e.$attrs,{"as-child":n.asChild,as:n.as,"data-side":E.value,"data-align":ee.value,style:{animation:W(C)?void 0:`none`}}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`style`])),t,0):(R(),I(W(r),N({key:1,ref:W(o)},e.$attrs,{"as-child":n.asChild,as:n.as,"data-side":E.value,"data-align":ee.value,dir:W(c),style:{animation:W(C)?void 0:`none`}}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`dir`,`style`]))],12,Vo))}}),Ko={top:`bottom`,right:`left`,bottom:`top`,left:`right`},qo=K({inheritAttrs:!1,__name:`PopperArrow`,props:{width:{type:Number,required:!1},height:{type:Number,required:!1},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let{forwardRef:t}=j(),n=Uo(),r=V(()=>Ko[n.placedSide.value]);return(e,i)=>(R(),U(`span`,{ref:e=>{W(n).onArrowChange(e??void 0)},style:f({position:`absolute`,left:W(n).arrowX?.value?`${W(n).arrowX?.value}px`:void 0,top:W(n).arrowY?.value?`${W(n).arrowY?.value}px`:void 0,[r.value]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[W(n).placedSide.value],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[W(n).placedSide.value],visibility:W(n).shouldHideArrow.value?`hidden`:void 0})},[P(Ii,N(e.$attrs,{ref:W(t),style:{display:`block`},as:e.as,"as-child":e.asChild,rounded:e.rounded,width:e.width,height:e.height}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`rounded`,`width`,`height`])],4))}}),[Jo,Yo]=s(`RovingFocusGroup`),Xo=K({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:t,emit:n}){let i=e,a=n,{loop:o,orientation:s,dir:c}=Qt(i),l=Mr(c),u=Dt(i,`currentTabStopId`,a,{defaultValue:i.defaultCurrentTabStopId,passive:i.currentTabStopId===void 0}),d=F(!1),f=F(!1),p=F(0),{getItems:m,CollectionSlot:h}=Ot({isProvider:!0});function g(e){let t=!f.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!d.value){let t=new CustomEvent(Ci,wi);if(e.currentTarget.dispatchEvent(t),a(`entryFocus`,t),!t.defaultPrevented){let e=m().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);Oi([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===u.value),...e].filter(Boolean),i.preventScrollOnEntryFocus)}}f.value=!1}function _(){setTimeout(()=>{f.value=!1},1)}return t({getItems:m}),Yo({loop:o,dir:l,orientation:s,currentTabStopId:u,onItemFocus:e=>{u.value=e},onItemShiftTab:()=>{d.value=!0},onFocusableItemAdd:()=>{p.value++},onFocusableItemRemove:()=>{p.value--}}),(e,t)=>(R(),I(W(h),null,{default:k(()=>[P(W(r),{tabindex:d.value||p.value===0?-1:0,"data-orientation":W(s),as:e.as,"as-child":e.asChild,dir:W(l),style:{outline:`none`},onMousedown:t[0]||=e=>f.value=!0,onMouseup:_,onFocus:g,onBlur:t[1]||=e=>d.value=!1},{default:k(()=>[L(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),Zo=K({__name:`MenuAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(R(),I(W(Ni),M(z(t)),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),Qo=K({__name:`MenuArrow`,props:{width:{type:Number,required:!1},height:{type:Number,required:!1},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(R(),I(W(qo),M(z(t)),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}});function $o(){let e=F(!1);return Ie(()=>{Kn(`keydown`,()=>{e.value=!0},{capture:!0,passive:!0}),Kn([`pointerdown`,`pointermove`],()=>{e.value=!1},{capture:!0,passive:!0})}),e}var es=Pt($o),[ts,ns]=s([`MenuRoot`,`MenuSub`],`MenuContext`),[rs,is]=s(`MenuRoot`),as=K({__name:`MenuRoot`,props:{open:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,{modal:i,dir:a}=Qt(n),o=Mr(a),s=Dt(n,`open`,r),c=F(),l=es();return ns({open:s,onOpenChange:e=>{s.value=e},content:c,onContentChange:e=>{c.value=e}}),is({onClose:()=>{s.value=!1},isUsingKeyboardRef:l,dir:o,modal:i}),(e,t)=>(R(),I(W(Mi),null,{default:k(()=>[L(e.$slots,`default`)]),_:3}))}}),[os,ss]=s(`MenuContent`),cs=K({__name:`MenuContentImpl`,props:O({loop:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},disableOutsideScroll:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...Ho}),emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,i=ts(),a=rs(),{trapFocus:o,disableOutsidePointerEvents:s,loop:c}=Qt(n);Fr(),Tr(s.value);let l=F(``),u=F(0),d=F(0),f=F(null),p=F(`right`),m=F(0),h=F(null),g=F(),{forwardRef:_,currentElement:v}=j(),{handleTypeaheadSearch:y}=Xr(),b=F();function x(e){let t=Sr(e,b.value||q(),v.value,{loop:c.value,arrowKeyOptions:`vertical`,dir:a?.dir.value,focus:!1,attributeName:`[data-reka-collection-item]:not([data-disabled])`});t&&(b.value=t,t.scrollIntoView({block:`nearest`}))}function S(){b.value&&b.value.click()}let C=F(),w=F();A(b,e=>{if(w.value&&(e===void 0||e!==w.value.trigger.value)){if(e===void 0)return;w.value.onOpenChange(!1),w.value=void 0}}),A(v,e=>{i.onContentChange(e)}),Sn(()=>{window.clearTimeout(u.value)});function T(e){return p.value===f.value?.side&&xi(e,f.value?.area)}async function E(e){r(`openAutoFocus`,e),!e.defaultPrevented&&(e.preventDefault(),v.value?.focus({preventScroll:!0}))}function ee(e){if(e.defaultPrevented)return;let t=e.target,n=t.closest(`[data-reka-menu-content]`)===e.currentTarget,r=[`input`,`textarea`].includes(t.tagName.toLowerCase()),i=e.ctrlKey||e.altKey||e.metaKey,o=e.key.length===1,s=Sr(e,q(),v.value,{loop:c.value,arrowKeyOptions:`vertical`,dir:a?.dir.value,focus:!0,attributeName:`[data-reka-collection-item]:not([data-disabled])`});if(s)return s?.focus();if(e.code===`Space`)return;let l=g.value?.getItems()??[];if(n&&(e.key===`Tab`&&a.modal.value&&e.preventDefault(),!i&&o&&!r&&y(e.key,l)),e.target!==v.value||!pi.includes(e.key))return;e.preventDefault();let u=[...l.map(e=>e.ref)];fi.includes(e.key)&&u.reverse(),yi(u)}function te(e){e?.currentTarget?.contains?.(e.target)||(window.clearTimeout(u.value),l.value=``)}function D(e){if(!Si(e))return;let t=e.target,n=m.value!==e.clientX;if((e?.currentTarget)?.contains(t)&&n){let t=e.clientX>m.value?`right`:`left`;p.value=t,m.value=e.clientX}}function ne(e){Si(e)&&C.value&&C.value.focus()}return ss({onItemEnter:e=>!!T(e),onItemLeave:e=>T(e)?!0:([`INPUT`,`TEXTAREA`].includes(q()?.tagName||``)||v.value?.focus(),h.value=null,!1),onTriggerLeave:e=>!!T(e),searchRef:l,highlightedElement:b,onKeydownNavigation:x,onKeydownEnter:S,filterElement:C,onFilterElementChange:e=>{C.value=e},activeSubmenuContext:w,pointerGraceTimerRef:d,onPointerGraceIntentChange:e=>{f.value=e}}),(e,t)=>(R(),I(W(ci),{"as-child":``,trapped:W(o),onMountAutoFocus:E,onUnmountAutoFocus:t[7]||=e=>r(`closeAutoFocus`,e)},{default:k(()=>[P(W(ii),{"as-child":``,"disable-outside-pointer-events":W(s),onEscapeKeyDown:t[2]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[3]||=e=>r(`pointerDownOutside`,e),onFocusOutside:t[4]||=e=>r(`focusOutside`,e),onInteractOutside:t[5]||=e=>r(`interactOutside`,e),onDismiss:t[6]||=e=>r(`dismiss`)},{default:k(()=>[P(W(Xo),{ref_key:`rovingFocusGroupRef`,ref:g,"current-tab-stop-id":h.value,"onUpdate:currentTabStopId":t[0]||=e=>h.value=e,"as-child":``,orientation:`vertical`,dir:W(a).dir.value,loop:W(c),onEntryFocus:t[1]||=e=>{r(`entryFocus`,e),W(a).isUsingKeyboardRef.value||e.preventDefault()}},{default:k(()=>[P(W(Go),{ref:W(_),role:`menu`,as:e.as,"as-child":e.asChild,"aria-orientation":`vertical`,"data-reka-menu-content":``,"data-state":W(gi)(W(i).open.value),dir:W(a).dir.value,side:e.side,"side-offset":e.sideOffset,align:e.align,"align-offset":e.alignOffset,"avoid-collisions":e.avoidCollisions,"collision-boundary":e.collisionBoundary,"collision-padding":e.collisionPadding,"arrow-padding":e.arrowPadding,"prioritize-position":e.prioritizePosition,"position-strategy":e.positionStrategy,"update-position-strategy":e.updatePositionStrategy,sticky:e.sticky,"hide-when-detached":e.hideWhenDetached,reference:e.reference,onKeydown:ee,onBlur:te,onPointermove:D,onPointerenter:ne},{default:k(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`,`dir`,`side`,`side-offset`,`align`,`align-offset`,`avoid-collisions`,`collision-boundary`,`collision-padding`,`arrow-padding`,`prioritize-position`,`position-strategy`,`update-position-strategy`,`sticky`,`hide-when-detached`,`reference`])]),_:3},8,[`current-tab-stop-id`,`dir`,`loop`])]),_:3},8,[`disable-outside-pointer-events`])]),_:3},8,[`trapped`]))}}),ls=K({inheritAttrs:!1,__name:`MenuItemImpl`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=os(),{forwardRef:i,currentElement:a}=j(),{CollectionItem:o}=Ot(),s=F(!1),c=V(()=>s.value||a.value!=null&&n.highlightedElement.value===a.value);async function l(e){if(!e.defaultPrevented&&Si(e)){if(t.disabled)n.onItemLeave(e);else if(!n.onItemEnter(e)){let t=e.currentTarget;n.highlightedElement.value=t,[`INPUT`,`TEXTAREA`].includes(q()?.tagName||``)||t.focus({preventScroll:!0})}}}async function u(e){await D(),!e.defaultPrevented&&Si(e)&&n.highlightedElement.value===a.value&&!n.onItemLeave(e)&&n.highlightedElement.value===a.value&&(n.highlightedElement.value=void 0)}return(e,t)=>(R(),I(W(o),{value:{textValue:e.textValue}},{default:k(()=>[P(W(r),N({ref:W(i),role:`menuitem`,tabindex:`-1`},e.$attrs,{as:e.as,"as-child":e.asChild,"aria-disabled":e.disabled||void 0,"data-disabled":e.disabled?``:void 0,"data-highlighted":c.value?``:void 0,onPointermove:l,onPointerleave:u,onFocus:t[0]||=async t=>{await D(),!(t.defaultPrevented||e.disabled)&&(s.value=!0,W(n).highlightedElement.value=t.currentTarget)},onBlur:t[1]||=async e=>{await D(),!e.defaultPrevented&&(s.value=!1)}}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`aria-disabled`,`data-disabled`,`data-highlighted`])]),_:3},8,[`value`]))}}),us=K({__name:`MenuItem`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,{forwardRef:i,currentElement:a}=j(),o=rs(),s=os(),c=F(!1);async function l(){let e=a.value;if(!n.disabled&&e){let e=new CustomEvent(li,{bubbles:!0,cancelable:!0});r(`select`,e),await D(),e.defaultPrevented?c.value=!1:o.onClose()}}return(e,t)=>(R(),I(ls,N(n,{ref:W(i),onClick:l,onPointerdown:t[0]||=()=>{c.value=!0},onPointerup:t[1]||=async e=>{await D(),!e.defaultPrevented&&(c.value||e.currentTarget?.click())},onKeydown:t[2]||=async t=>{let n=W(s).searchRef.value!==``;e.disabled||n&&t.key===` `||W(ui).includes(t.key)&&(t.currentTarget?.click(),t.preventDefault())}}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),[ds,fs]=s([`MenuCheckboxItem`,`MenuRadioItem`],`MenuItemIndicatorContext`),ps=K({__name:`MenuItemIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=ds({modelValue:F(!1)});return(e,n)=>(R(),I(W(rn),{present:e.forceMount||W(_i)(W(t).modelValue.value)||W(t).modelValue.value===!0},{default:k(()=>[P(W(r),{as:e.as,"as-child":e.asChild,"data-state":W(vi)(W(t).modelValue.value)},{default:k(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`])]),_:3},8,[`present`]))}}),ms=K({__name:`MenuCheckboxItem`,props:{modelValue:{type:[Boolean,String],required:!1,default:!1},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`,`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=Rt(n,[`modelValue`]),a=xe(i),o=Dt(n,`modelValue`,r);return fs({modelValue:o}),(e,t)=>(R(),I(us,N({role:`menuitemcheckbox`},W(a),{"aria-checked":W(_i)(W(o))?`mixed`:W(o),"data-state":W(vi)(W(o)),onSelect:t[0]||=async e=>{r(`select`,e),W(_i)(W(o))?o.value=!0:o.value=!W(o)}}),{default:k(()=>[L(e.$slots,`default`,{modelValue:W(o)})]),_:3},16,[`aria-checked`,`data-state`]))}}),hs=K({__name:`MenuRootContentModal`,props:{loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=J(n,r),a=ts(),{forwardRef:o,currentElement:s}=j();return Kr(s),(e,t)=>(R(),I(cs,N(W(i),{ref:W(o),"trap-focus":W(a).open.value,"disable-outside-pointer-events":W(a).open.value,"disable-outside-scroll":!0,onDismiss:t[0]||=e=>W(a).onOpenChange(!1),onFocusOutside:t[1]||=st(e=>r(`focusOutside`,e),[`prevent`])}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16,[`trap-focus`,`disable-outside-pointer-events`]))}}),gs=K({__name:`MenuRootContentNonModal`,props:{loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t),r=ts();return(e,t)=>(R(),I(cs,N(W(n),{"trap-focus":!1,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,onDismiss:t[0]||=e=>W(r).onOpenChange(!1)}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),_s=K({__name:`MenuContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t),r=ts(),i=rs();return(e,t)=>(R(),I(W(rn),{present:e.forceMount||W(r).open.value},{default:k(()=>[W(i).modal.value?(R(),I(hs,M(N({key:0},{...e.$attrs,...W(n)})),{default:k(()=>[L(e.$slots,`default`)]),_:3},16)):(R(),I(gs,M(N({key:1},{...e.$attrs,...W(n)})),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),[vs,ys]=s(`MenuGroup`),bs=K({__name:`MenuGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=Jr(void 0,`reka-menu-group`);return ys({id:n}),(e,i)=>(R(),I(W(r),N({role:`group`},t,{"aria-labelledby":W(n)}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16,[`aria-labelledby`]))}}),xs=K({__name:`MenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,n=vs({id:``});return(e,i)=>(R(),I(W(r),N(t,{id:W(n).id||void 0}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),Ss=K({__name:`MenuPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(R(),I(W(ir),M(z(t)),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),[Cs,ws]=s(`MenuRadioGroup`),Ts=K({__name:`MenuRadioGroup`,props:{modelValue:{type:null,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=Rt(n,[`modelValue`]),a=xe(i),o=Dt(n,`modelValue`,r);return ws({modelValue:o,onValueChange:e=>{o.value=e}}),(e,t)=>(R(),I(bs,M(z(W(a))),{default:k(()=>[L(e.$slots,`default`,{modelValue:W(o)})]),_:3},16))}}),Es=K({__name:`MenuRadioItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=Rt(n,[`value`]),a=xe(i),{value:o}=Qt(n),s=Cs(),c=V(()=>s.modelValue.value===o?.value);return fs({modelValue:c}),(e,t)=>(R(),I(us,N({role:`menuitemradio`},W(a),{"aria-checked":c.value,"data-state":W(vi)(c.value),onSelect:t[0]||=async e=>{r(`select`,e),W(s).onValueChange(W(o))}}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16,[`aria-checked`,`data-state`]))}}),Ds=K({__name:`MenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(R(),I(W(r),N(t,{role:`separator`,"aria-orientation":`horizontal`}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),[Os,ks]=s(`MenuSub`),As=K({__name:`MenuSub`,props:{open:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=Dt(n,`open`,t,{defaultValue:!1,passive:n.open===void 0}),i=ts(),a=F(),o=F();return Te(e=>{i?.open.value===!1&&(r.value=!1),e(()=>r.value=!1)}),ns({open:r,onOpenChange:e=>{r.value=e},content:o,onContentChange:e=>{o.value=e}}),ks({triggerId:``,contentId:``,trigger:a,onTriggerChange:e=>{a.value=e}}),(e,t)=>(R(),I(W(Mi),null,{default:k(()=>[L(e.$slots,`default`)]),_:3}))}}),js=K({__name:`MenuSubContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1,default:!0},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t),r=ts(),i=rs(),a=Os(),o=os(),{forwardRef:s,currentElement:c}=j();return a.contentId||=Jr(void 0,`reka-menu-sub-content`),(e,t)=>(R(),I(W(rn),{present:e.forceMount||W(r).open.value},{default:k(()=>[P(cs,N(W(n),{id:W(a).contentId,ref:W(s),"aria-labelledby":W(a).triggerId,align:`start`,side:W(i).dir.value===`rtl`?`left`:`right`,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,"trap-focus":!1,onOpenAutoFocus:t[0]||=st(e=>{W(i).isUsingKeyboardRef.value&&W(c)?.focus()},[`prevent`]),onCloseAutoFocus:t[1]||=st(()=>{},[`prevent`]),onFocusOutside:t[2]||=e=>{if(e.defaultPrevented)return;let t=W(o).filterElement.value?.contains(e.target);e.target!==W(a).trigger.value&&!t&&W(r).onOpenChange(!1)},onEscapeKeyDown:t[3]||=e=>{W(i).onClose(),e.preventDefault()},onKeydown:t[4]||=e=>{let t=e.currentTarget?.contains(e.target),n=W(hi)[W(i).dir.value].includes(e.key);t&&n&&(W(r).onOpenChange(!1),W(o).filterElement.value?(W(o).filterElement.value.focus(),W(o).highlightedElement.value=W(a).trigger.value,W(a).trigger.value?.scrollIntoView({block:`nearest`})):W(a).trigger.value?.focus(),e.preventDefault())}}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`,`side`])]),_:3},8,[`present`]))}}),Ms=K({__name:`MenuSubTrigger`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=ts(),r=rs(),i=Os(),a=os();A(n.open,e=>{e?a.activeSubmenuContext.value={onOpenChange:n.onOpenChange,trigger:i.trigger}:a.activeSubmenuContext.value?.trigger.value===i.trigger.value&&(a.activeSubmenuContext.value=void 0)});let o=F(null);i.triggerId||=Jr(void 0,`reka-menu-sub-trigger`);function s(){o.value&&window.clearTimeout(o.value),o.value=null}Sn(()=>{s()});function c(e){Si(e)&&(a.onItemEnter(e)||!t.disabled&&!n.open.value&&!o.value&&(a.onPointerGraceIntentChange(null),o.value=window.setTimeout(()=>{n.onOpenChange(!0),s()},100)))}async function l(e){if(!Si(e))return;s();let t=n.content.value?.getBoundingClientRect();if(t?.width){let r=n.content.value?.dataset.side,i=r===`right`,o=i?-5:5,s=t[i?`left`:`right`],c=t[i?`right`:`left`];a.onPointerGraceIntentChange({area:[{x:e.clientX+o,y:e.clientY},{x:s,y:t.top},{x:c,y:t.top},{x:c,y:t.bottom},{x:s,y:t.bottom}],side:r}),window.clearTimeout(a.pointerGraceTimerRef.value),a.pointerGraceTimerRef.value=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(e))return;a.onPointerGraceIntentChange(null)}}async function u(e){let i=a.searchRef.value!==``;t.disabled||i&&e.key===` `||mi[r.dir.value].includes(e.key)&&(n.onOpenChange(!0),await D(),n.content.value?.focus(),e.preventDefault())}return(e,r)=>(R(),I(Zo,{"as-child":``},{default:k(()=>[P(ls,N(t,{id:W(i).triggerId,ref:e=>{e&&W(i)?.onTriggerChange(e?.$el)},"aria-haspopup":`menu`,"aria-expanded":W(n).open.value,"aria-controls":W(i).contentId,"data-state":W(gi)(W(n).open.value),onClick:r[0]||=async e=>{t.disabled||e.defaultPrevented||(e.currentTarget?.focus(),W(n).open.value||W(n).onOpenChange(!0))},onPointermove:c,onPointerleave:l,onKeydown:u}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`aria-expanded`,`aria-controls`,`data-state`])]),_:3}))}}),Ns=K({__name:`DropdownMenuArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return j(),(e,n)=>(R(),I(W(Qo),M(z(t)),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),Ps=K({__name:`DropdownMenuCheckboxItem`,props:{modelValue:{type:[Boolean,String],required:!1},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`,`update:modelValue`],setup(e,{emit:t}){let n=e,r=je(t);return j(),(e,t)=>(R(),I(W(ms),M(z({...n,...W(r)})),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),[Fs,Is]=s(`DropdownMenuRoot`),Ls=K({__name:`DropdownMenuRoot`,props:{defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1,default:void 0},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t;j();let i=Dt(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),a=F(),{modal:o,dir:s}=Qt(n),c=Mr(s);return Is({open:i,onOpenChange:e=>{i.value=e},onOpenToggle:()=>{i.value=!i.value},triggerId:``,triggerElement:a,contentId:``,modal:o,dir:c}),(e,t)=>(R(),I(W(as),{open:W(i),"onUpdate:open":t[0]||=e=>zt(i)?i.value=e:null,dir:W(c),modal:W(o)},{default:k(()=>[L(e.$slots,`default`,{open:W(i)})]),_:3},8,[`open`,`dir`,`modal`]))}}),Rs=K({__name:`DropdownMenuContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t);j();let r=Fs(),i=F(!1);function a(e){e.defaultPrevented||(i.value||setTimeout(()=>{r.triggerElement.value?.focus()},0),i.value=!1,e.preventDefault())}return r.contentId||=Jr(void 0,`reka-dropdown-menu-content`),(e,t)=>(R(),I(W(_s),N(W(n),{id:W(r).contentId,"aria-labelledby":W(r)?.triggerId,style:{"--reka-dropdown-menu-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-dropdown-menu-content-available-width":`var(--reka-popper-available-width)`,"--reka-dropdown-menu-content-available-height":`var(--reka-popper-available-height)`,"--reka-dropdown-menu-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-dropdown-menu-trigger-height":`var(--reka-popper-anchor-height)`},onCloseAutoFocus:a,onInteractOutside:t[0]||=e=>{if(e.defaultPrevented)return;let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,a=t.button===2||n;(!W(r).modal.value||a)&&(i.value=!0),W(r).triggerElement.value?.contains(e.target)&&e.preventDefault()}}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`]))}}),zs=K({__name:`DropdownMenuFilter`,props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`input`}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,i=Dt(n,`modelValue`,t,{defaultValue:``,passive:n.modelValue===void 0}),a=rs(),o=os(),s=Os(null);A(i,e=>{o.searchRef.value=e??``},{immediate:!0});let{primitiveElement:c,currentElement:l}=cn(),u=V(()=>n.disabled||!1),d=F();E(()=>d.value=o.highlightedElement.value?.id),Ie(()=>{o.onFilterElementChange(l.value),setTimeout(()=>{n.autoFocus&&(!s||a.isUsingKeyboardRef.value)&&l.value?.focus()},1)}),Sn(()=>{o.onFilterElementChange(void 0),o.searchRef.value=``});let{isComposing:f,shouldDeferInput:p,handleCompositionStart:m,handleCompositionUpdate:h,handleCompositionEnd:g}=jr(e=>{let t=e.target;t&&(i.value=t.value,o.searchRef.value=t.value)});function _(e){if(u.value||p.value)return;let t=e.target;i.value=t.value,o.searchRef.value=t.value}function v(e){if(!u.value){if(f.value){e.stopPropagation();return}[`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key)?(e.preventDefault(),o.onKeydownNavigation(e)):e.key===`Enter`?(e.preventDefault(),o.onKeydownEnter(e)):e.key===`Escape`&&i.value&&(e.stopPropagation(),i.value=``,o.searchRef.value=``)}}return(e,t)=>(R(),I(W(r),{ref_key:`primitiveElement`,ref:c,as:e.as,"as-child":e.asChild,value:W(i),disabled:u.value?``:void 0,"data-disabled":u.value?``:void 0,"aria-disabled":u.value?!0:void 0,"aria-activedescendant":d.value,type:`text`,role:`searchbox`,onInput:_,onKeydown:v,onCompositionstart:W(m),onCompositionupdate:W(h),onCompositionend:W(g)},{default:k(()=>[L(e.$slots,`default`,{modelValue:W(i)})]),_:3},8,[`as`,`as-child`,`value`,`disabled`,`data-disabled`,`aria-disabled`,`aria-activedescendant`,`onCompositionstart`,`onCompositionupdate`,`onCompositionend`]))}}),Bs=K({__name:`DropdownMenuGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return j(),(e,n)=>(R(),I(W(bs),M(z(t)),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),Vs=K({__name:`DropdownMenuItem`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=je(t);return j(),(e,t)=>(R(),I(W(us),M(z({...n,...W(r)})),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),Hs=K({__name:`DropdownMenuItemIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return j(),(e,n)=>(R(),I(W(ps),M(z(t)),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),Us=K({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return j(),(e,n)=>(R(),I(W(xs),M(z(t)),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),Ws=K({__name:`DropdownMenuPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(R(),I(W(Ss),M(z(t)),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),Gs=K({__name:`DropdownMenuRadioGroup`,props:{modelValue:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=je(t);return j(),(e,t)=>(R(),I(W(Ts),M(z({...n,...W(r)})),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),Ks=K({__name:`DropdownMenuRadioItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=J(e,t);return j(),(e,t)=>(R(),I(W(Es),M(z(W(n))),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),qs=K({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return j(),(e,n)=>(R(),I(W(Ds),M(z(t)),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),Js=K({__name:`DropdownMenuSub`,props:{defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=Dt(n,`open`,t,{passive:n.open===void 0,defaultValue:n.defaultOpen??!1});return j(),(e,t)=>(R(),I(W(As),{open:W(r),"onUpdate:open":t[0]||=e=>zt(r)?r.value=e:null},{default:k(()=>[L(e.$slots,`default`,{open:W(r)})]),_:3},8,[`open`]))}}),Ys=K({__name:`DropdownMenuSubContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t);return j(),(e,t)=>(R(),I(W(js),N(W(n),{style:{"--reka-dropdown-menu-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-dropdown-menu-content-available-width":`var(--reka-popper-available-width)`,"--reka-dropdown-menu-content-available-height":`var(--reka-popper-available-height)`,"--reka-dropdown-menu-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-dropdown-menu-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),Xs=K({__name:`DropdownMenuSubTrigger`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return j(),(e,n)=>(R(),I(W(Ms),M(z(t)),{default:k(()=>[L(e.$slots,`default`)]),_:3},16))}}),Zs=K({__name:`DropdownMenuTrigger`,props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Fs(),{forwardRef:i,currentElement:a}=j();return Ie(()=>{n.triggerElement=a}),n.triggerId||=Jr(void 0,`reka-dropdown-menu-trigger`),(e,a)=>(R(),I(W(Zo),{"as-child":``},{default:k(()=>[P(W(r),{id:W(n).triggerId,ref:W(i),type:e.as===`button`?`button`:void 0,"as-child":t.asChild,as:e.as,"aria-haspopup":`menu`,"aria-expanded":W(n).open.value,"aria-controls":W(n).open.value?W(n).contentId:void 0,"data-disabled":e.disabled?``:void 0,disabled:e.disabled,"data-state":W(n).open.value?`open`:`closed`,onClick:a[0]||=async t=>{!e.disabled&&t.button===0&&t.ctrlKey===!1&&(W(n)?.onOpenToggle(),await D(),W(n).open.value&&t.preventDefault())},onKeydown:a[1]||=tt(t=>{e.disabled||([`Enter`,` `].includes(t.key)&&W(n).onOpenToggle(),t.key===`ArrowDown`&&W(n).onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(t.key)&&t.preventDefault())},[`enter`,`space`,`arrow-down`])},{default:k(()=>[L(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as-child`,`as`,`aria-expanded`,`aria-controls`,`data-disabled`,`disabled`,`data-state`])]),_:3}))}}),$={Root:Ls,Trigger:Zs,Portal:Ws,Content:Rs,Arrow:Ns,Item:Vs,Group:Bs,Separator:qs,CheckboxItem:Ps,ItemIndicator:Hs,Label:Us,RadioGroup:Gs,RadioItem:Ks,Sub:Js,SubContent:Ys,SubTrigger:Xs,Filter:zs};function Qs(){let{contains:e,startsWith:t}=Nr({sensitivity:`base`});function n(n,r){return e(n,r)?e(r,n)?0:t(n,r)?1:2:null}function r(e,t,r){if(typeof e!=`object`||!e)return n(String(e),t);let i=null;for(let a of r){let r=Qe(e,a);if(r==null)continue;let o=Array.isArray(r)?r.map(String):[String(r)];for(let e of o){let r=n(e,t);if(r!==null&&(i===null||r<i)&&(i=r),i===0)return 0}}return i}function i(e,t,n){if(!t)return e;let i=[];for(let a of e){let e=r(a,t,n);e!==null&&i.push({item:a,score:e})}return i.sort((e,t)=>e.score-t.score),i.map(({item:e})=>e)}function a(e,t,n){return t?e.map(e=>{let i=[];for(let a of e){if(a==null)continue;if(n.isStructural?.(a)){i.push({item:a,score:-1});continue}let e=r(a,t,n.fields);e!==null&&i.push({item:a,score:e})}return i.sort((e,t)=>e.score-t.score),i.map(({item:e})=>e)}).filter(e=>e.some(e=>!n.isStructural?.(e))):e}return{score:n,scoreItem:r,filter:i,filterGroups:a}}var $s={slots:{root:`relative inline-flex items-center`,base:[`w-full rounded-md border-0 appearance-none placeholder:text-dimmed disabled:cursor-not-allowed disabled:opacity-75`,`transition-colors`],leading:`absolute inset-y-0 start-0 flex items-center`,leadingIcon:`shrink-0 text-dimmed`,leadingAvatar:`shrink-0`,leadingAvatarSize:``,trailing:`absolute inset-y-0 end-0 flex items-center`,trailingIcon:`shrink-0 text-dimmed`},variants:{fieldGroup:{horizontal:{root:`group has-focus-visible:z-[1]`,base:`group-not-only:group-first:rounded-e-none group-not-only:group-last:rounded-s-none group-not-last:group-not-first:rounded-none`},vertical:{root:`group has-focus-visible:z-[1]`,base:`group-not-only:group-first:rounded-b-none group-not-only:group-last:rounded-t-none group-not-last:group-not-first:rounded-none`}},size:{xs:{base:`px-2 py-1 text-sm/4 gap-1`,leading:`ps-2`,trailing:`pe-2`,leadingIcon:`size-4`,leadingAvatarSize:`3xs`,trailingIcon:`size-4`},sm:{base:`px-2.5 py-1.5 text-sm/4 gap-1.5`,leading:`ps-2.5`,trailing:`pe-2.5`,leadingIcon:`size-4`,leadingAvatarSize:`3xs`,trailingIcon:`size-4`},md:{base:`px-2.5 py-1.5 text-base/5 gap-1.5`,leading:`ps-2.5`,trailing:`pe-2.5`,leadingIcon:`size-5`,leadingAvatarSize:`2xs`,trailingIcon:`size-5`},lg:{base:`px-3 py-2 text-base/5 gap-2`,leading:`ps-3`,trailing:`pe-3`,leadingIcon:`size-5`,leadingAvatarSize:`2xs`,trailingIcon:`size-5`},xl:{base:`px-3 py-2 text-base gap-2`,leading:`ps-3`,trailing:`pe-3`,leadingIcon:`size-6`,leadingAvatarSize:`xs`,trailingIcon:`size-6`}},variant:{outline:`text-highlighted bg-default ring ring-inset ring-accented`,soft:`text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50`,subtle:`text-highlighted bg-elevated ring ring-inset ring-accented`,ghost:`text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent`,none:`text-highlighted bg-transparent focus:outline-none`},color:{primary:``,secondary:``,success:``,info:``,warning:``,error:``,neutral:``},leading:{true:``},trailing:{true:``},loading:{true:``},highlight:{true:``},fixed:{false:``},type:{file:`file:me-1.5 file:font-medium file:text-muted file:outline-none`}},compoundVariants:[{color:`primary`,variant:[`outline`,`subtle`],class:`outline-primary/25 focus-visible:outline-3 focus-visible:ring-primary`},{color:`secondary`,variant:[`outline`,`subtle`],class:`outline-secondary/25 focus-visible:outline-3 focus-visible:ring-secondary`},{color:`success`,variant:[`outline`,`subtle`],class:`outline-success/25 focus-visible:outline-3 focus-visible:ring-success`},{color:`info`,variant:[`outline`,`subtle`],class:`outline-info/25 focus-visible:outline-3 focus-visible:ring-info`},{color:`warning`,variant:[`outline`,`subtle`],class:`outline-warning/25 focus-visible:outline-3 focus-visible:ring-warning`},{color:`error`,variant:[`outline`,`subtle`],class:`outline-error/25 focus-visible:outline-3 focus-visible:ring-error`},{color:`primary`,variant:[`soft`,`ghost`],class:`outline-primary/25 focus-visible:outline-3`},{color:`secondary`,variant:[`soft`,`ghost`],class:`outline-secondary/25 focus-visible:outline-3`},{color:`success`,variant:[`soft`,`ghost`],class:`outline-success/25 focus-visible:outline-3`},{color:`info`,variant:[`soft`,`ghost`],class:`outline-info/25 focus-visible:outline-3`},{color:`warning`,variant:[`soft`,`ghost`],class:`outline-warning/25 focus-visible:outline-3`},{color:`error`,variant:[`soft`,`ghost`],class:`outline-error/25 focus-visible:outline-3`},{color:`primary`,highlight:!0,class:`ring ring-inset ring-primary`},{color:`secondary`,highlight:!0,class:`ring ring-inset ring-secondary`},{color:`success`,highlight:!0,class:`ring ring-inset ring-success`},{color:`info`,highlight:!0,class:`ring ring-inset ring-info`},{color:`warning`,highlight:!0,class:`ring ring-inset ring-warning`},{color:`error`,highlight:!0,class:`ring ring-inset ring-error`},{color:`neutral`,variant:[`outline`,`subtle`],class:`outline-inverted/25 focus-visible:outline-3 focus-visible:ring-inverted`},{color:`neutral`,variant:[`soft`,`ghost`],class:`outline-inverted/25 focus-visible:outline-3`},{color:`neutral`,highlight:!0,class:`ring ring-inset ring-inverted`},{leading:!0,size:`xs`,class:`ps-7`},{leading:!0,size:`sm`,class:`ps-8`},{leading:!0,size:`md`,class:`ps-9`},{leading:!0,size:`lg`,class:`ps-10`},{leading:!0,size:`xl`,class:`ps-11`},{trailing:!0,size:`xs`,class:`pe-7`},{trailing:!0,size:`sm`,class:`pe-8`},{trailing:!0,size:`md`,class:`pe-9`},{trailing:!0,size:`lg`,class:`pe-10`},{trailing:!0,size:`xl`,class:`pe-11`},{loading:!0,leading:!0,class:{leadingIcon:`animate-spin`}},{loading:!0,leading:!1,trailing:!0,class:{trailingIcon:`animate-spin`}},{fixed:!1,size:`xs`,class:`md:text-xs`},{fixed:!1,size:`sm`,class:`md:text-xs`},{fixed:!1,size:`md`,class:`md:text-sm`},{fixed:!1,size:`lg`,class:`md:text-sm`}],defaultVariants:{size:`md`,color:`primary`,variant:`outline`}},ec=[`id`,`type`,`value`,`name`,`placeholder`,`disabled`,`required`,`autocomplete`],tc=Object.assign({inheritAttrs:!1},{__name:`Input`,props:{as:{type:null,required:!1},id:{type:String,required:!1},name:{type:String,required:!1},type:{type:null,required:!1,default:`text`},placeholder:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},required:{type:Boolean,required:!1},autocomplete:{type:[String,Object],required:!1,default:`off`},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},disabled:{type:Boolean,required:!1},highlight:{type:Boolean,required:!1},fixed:{type:Boolean,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},modelModifiers:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},emits:[`update:modelValue`,`blur`,`change`],setup(e,{expose:t,emit:n}){let i=e,a=n,o=v(),s=bt(`input`,i),c=Dt(s,`modelValue`,a,{defaultValue:s.defaultValue}),l=ue(),{emitFormBlur:u,emitFormInput:d,emitFormChange:f,size:p,color:m,id:h,name:g,highlight:_,disabled:y,emitFormFocus:b,ariaAttrs:x}=dn(i,{deferInputValidation:!0}),{orientation:S,size:C}=Ft(i),{isLeading:w,isTrailing:T,leadingIconName:E,trailingIconName:ee}=Ht(s),D=V(()=>m.value??s.color),ne=V(()=>_.value??s.highlight),re=V(()=>C.value??p.value??s.size),ie=V(()=>y.value??s.disabled),O=V(()=>Zt({extend:$s,...l.ui?.input||{}})({type:s.type,color:D.value,variant:s.variant,size:re.value,loading:s.loading,highlight:ne.value,fixed:s.fixed,leading:w.value||!!s.avatar||!!o.leading,trailing:T.value||!!o.trailing,fieldGroup:S.value})),ae=ke(`inputRef`);function oe(e){s.modelModifiers?.trim&&(typeof e==`string`||e==null)&&(e=e?.trim()??null),(s.modelModifiers?.number||s.type===`number`)&&(e=te(e)),s.modelModifiers?.nullable&&(e||=null),s.modelModifiers?.optional&&!s.modelModifiers?.nullable&&e!==null&&(e||=void 0),c.value=e,d()}function se(e){s.modelModifiers?.lazy||oe(e.target.value)}function ce(e){let t=e.target.value;s.modelModifiers?.lazy&&oe(t),s.modelModifiers?.trim&&(e.target.value=t.trim()),f(),a(`change`,e)}function le(e){u(),a(`blur`,e)}function de(){s.autofocus&&ae.value?.focus()}let fe;return Ie(()=>{fe=setTimeout(()=>{de()},s.autofocusDelay)}),Fn(()=>clearTimeout(fe)),t({inputRef:ae}),(e,t)=>(R(),I(W(r),{as:W(s).as,"data-slot":e.$attrs[`data-slot`]??`root`,class:G(O.value.root({class:[W(s).ui?.root,W(s).class]}))},{default:k(()=>[H(`input`,N({id:W(h),ref_key:`inputRef`,ref:ae,type:W(s).type,value:W(c),name:W(g),placeholder:W(s).placeholder,class:O.value.base({class:W(s).ui?.base}),disabled:ie.value,required:W(s).required,autocomplete:W(s).autocomplete},{...e.$attrs,...W(x)},{"data-slot":`base`,onInput:se,onBlur:le,onChange:ce,onFocus:t[0]||=(...e)=>W(b)&&W(b)(...e)}),null,16,ec),L(e.$slots,`default`,{ui:O.value}),W(w)||W(s).avatar||o.leading?(R(),U(`span`,{key:0,"data-slot":`leading`,class:G(O.value.leading({class:W(s).ui?.leading}))},[L(e.$slots,`leading`,{ui:O.value},()=>[W(w)&&W(E)?(R(),I(hn,{key:0,name:W(E),"data-slot":`leadingIcon`,class:G(O.value.leadingIcon({class:W(s).ui?.leadingIcon}))},null,8,[`name`,`class`])):W(s).avatar?(R(),I(En,N({key:1,size:W(s).ui?.leadingAvatarSize||O.value.leadingAvatarSize()},W(s).avatar,{"data-slot":`leadingAvatar`,class:O.value.leadingAvatar({class:W(s).ui?.leadingAvatar})}),null,16,[`size`,`class`])):B(``,!0)])],2)):B(``,!0),W(T)||o.trailing?(R(),U(`span`,{key:1,"data-slot":`trailing`,class:G(O.value.trailing({class:W(s).ui?.trailing}))},[L(e.$slots,`trailing`,{ui:O.value},()=>[W(ee)?(R(),I(hn,{key:0,name:W(ee),"data-slot":`trailingIcon`,class:G(O.value.trailingIcon({class:W(s).ui?.trailingIcon}))},null,8,[`name`,`class`])):B(``,!0)])],2)):B(``,!0)]),_:3},8,[`as`,`data-slot`,`class`]))}}),nc={base:`inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase`,variants:{color:{primary:``,secondary:``,success:``,info:``,warning:``,error:``,neutral:``},variant:{solid:``,outline:``,soft:``,subtle:``},size:{sm:`h-4 min-w-[16px] text-[10px]`,md:`h-5 min-w-[20px] text-[11px]`,lg:`h-6 min-w-[24px] text-[12px]`}},compoundVariants:[{color:`primary`,variant:`solid`,class:`text-inverted bg-primary`},{color:`secondary`,variant:`solid`,class:`text-inverted bg-secondary`},{color:`success`,variant:`solid`,class:`text-inverted bg-success`},{color:`info`,variant:`solid`,class:`text-inverted bg-info`},{color:`warning`,variant:`solid`,class:`text-inverted bg-warning`},{color:`error`,variant:`solid`,class:`text-inverted bg-error`},{color:`primary`,variant:`outline`,class:`ring ring-inset ring-primary/50 text-primary`},{color:`secondary`,variant:`outline`,class:`ring ring-inset ring-secondary/50 text-secondary`},{color:`success`,variant:`outline`,class:`ring ring-inset ring-success/50 text-success`},{color:`info`,variant:`outline`,class:`ring ring-inset ring-info/50 text-info`},{color:`warning`,variant:`outline`,class:`ring ring-inset ring-warning/50 text-warning`},{color:`error`,variant:`outline`,class:`ring ring-inset ring-error/50 text-error`},{color:`primary`,variant:`soft`,class:`text-primary bg-primary/10`},{color:`secondary`,variant:`soft`,class:`text-secondary bg-secondary/10`},{color:`success`,variant:`soft`,class:`text-success bg-success/10`},{color:`info`,variant:`soft`,class:`text-info bg-info/10`},{color:`warning`,variant:`soft`,class:`text-warning bg-warning/10`},{color:`error`,variant:`soft`,class:`text-error bg-error/10`},{color:`primary`,variant:`subtle`,class:`text-primary ring ring-inset ring-primary/25 bg-primary/10`},{color:`secondary`,variant:`subtle`,class:`text-secondary ring ring-inset ring-secondary/25 bg-secondary/10`},{color:`success`,variant:`subtle`,class:`text-success ring ring-inset ring-success/25 bg-success/10`},{color:`info`,variant:`subtle`,class:`text-info ring ring-inset ring-info/25 bg-info/10`},{color:`warning`,variant:`subtle`,class:`text-warning ring ring-inset ring-warning/25 bg-warning/10`},{color:`error`,variant:`subtle`,class:`text-error ring ring-inset ring-error/25 bg-error/10`},{color:`neutral`,variant:`solid`,class:`text-inverted bg-inverted`},{color:`neutral`,variant:`outline`,class:`ring ring-inset ring-accented text-default bg-default`},{color:`neutral`,variant:`soft`,class:`text-default bg-elevated`},{color:`neutral`,variant:`subtle`,class:`ring ring-inset ring-accented text-default bg-elevated`}],defaultVariants:{variant:`outline`,color:`neutral`,size:`md`}},rc={__name:`Kbd`,props:{as:{type:null,required:!1,default:`kbd`},value:{type:null,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(e){let t=bt(`kbd`,e),{getKbdKey:n}=yr(),i=ue(),a=V(()=>Zt({extend:nc,...i.ui?.kbd||{}}));return(e,i)=>(R(),I(W(r),{as:W(t).as,class:G(a.value({class:[W(t).ui?.base,W(t).class],color:W(t).color,variant:W(t).variant,size:W(t).size}))},{default:k(()=>[L(e.$slots,`default`,{},()=>[Yt(er(W(n)(W(t).value)),1)])]),_:3},8,[`as`,`class`]))}},ic={__name:`DropdownMenuContent`,props:{items:{type:null,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0},sub:{type:Boolean,required:!1},labelKey:{type:null,required:!0},descriptionKey:{type:null,required:!0},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0},size:{type:null,required:!1},filter:{type:[Boolean,Object],required:!1},filterFields:{type:Array,required:!1},ignoreFilter:{type:Boolean,required:!1},searchTerm:{type:String,required:!1},class:{type:null,required:!1},ui:{type:null,required:!0},uiOverride:{type:null,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1}},emits:[`update:searchTerm`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=v(),{t:a,dir:o}=ie(),s=ue(),{filterGroups:c}=Qs(),l=F(``),u=V({get:()=>n.searchTerm??l.value,set:e=>{l.value=e,r(`update:searchTerm`,e)}}),d=gn(()=>jn(n.filter,{placeholder:a(`dropdownMenu.search`),variant:`none`})),f=cr(gn(()=>n.portal)),p=J(Rt(n,`sub`,`items`,`portal`,`labelKey`,`descriptionKey`,`checkedIcon`,`loadingIcon`,`externalIcon`,`size`,`filter`,`filterFields`,`ignoreFilter`,`searchTerm`,`class`,`ui`,`uiOverride`),r),m=()=>me(i,[`default`]),[h,g]=ft(),_=V(()=>o.value===`rtl`?s.ui.icons.chevronLeft:s.ui.icons.chevronRight),y=V(()=>n.items?.length?at(n.items)?n.items:[n.items]:[]),b=e=>!!e.type&&[`label`,`separator`].includes(e.type),x=V(()=>{if(!n.filter||n.ignoreFilter||!u.value)return y.value;let e=Array.isArray(n.filterFields)&&n.filterFields.length?n.filterFields:[n.labelKey];return c(y.value,u.value,{fields:e,isStructural:b})}),S=V(()=>x.value.some(e=>e.some(e=>!b(e))));return(t,r)=>(R(),U(dt,null,[P(W(h),null,{default:k(({item:r,active:a,index:o})=>[L(t.$slots,r.slot||`item`,{item:r,index:o,ui:e.ui},()=>[L(t.$slots,r.slot?`${r.slot}-leading`:`item-leading`,{item:r,active:a,index:o,ui:e.ui},()=>[r.loading?(R(),I(hn,{key:0,name:e.loadingIcon||W(s).ui.icons.loading,"data-slot":`itemLeadingIcon`,class:G(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,r.ui?.itemLeadingIcon],color:r?.color,loading:!0}))},null,8,[`name`,`class`])):r.icon?(R(),I(hn,{key:1,name:r.icon,"data-slot":`itemLeadingIcon`,class:G(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,r.ui?.itemLeadingIcon],color:r?.color,active:a}))},null,8,[`name`,`class`])):r.avatar?(R(),I(En,N({key:2,size:r.ui?.itemLeadingAvatarSize||e.uiOverride?.itemLeadingAvatarSize||e.ui.itemLeadingAvatarSize()},r.avatar,{"data-slot":`itemLeadingAvatar`,class:e.ui.itemLeadingAvatar({class:[e.uiOverride?.itemLeadingAvatar,r.ui?.itemLeadingAvatar],active:a})}),null,16,[`size`,`class`])):B(``,!0)]),W(Qe)(r,n.labelKey)||i[r.slot?`${r.slot}-label`:`item-label`]||W(Qe)(r,n.descriptionKey)||i[r.slot?`${r.slot}-description`:`item-description`]?(R(),U(`span`,{key:0,"data-slot":`itemWrapper`,class:G(e.ui.itemWrapper({class:[e.uiOverride?.itemWrapper,r.ui?.itemWrapper]}))},[H(`span`,{"data-slot":`itemLabel`,class:G(e.ui.itemLabel({class:[e.uiOverride?.itemLabel,r.ui?.itemLabel],active:a}))},[L(t.$slots,r.slot?`${r.slot}-label`:`item-label`,{item:r,active:a,index:o},()=>[Yt(er(W(Qe)(r,n.labelKey)),1)]),r.target===`_blank`&&e.externalIcon!==!1?(R(),I(hn,{key:0,name:typeof e.externalIcon==`string`?e.externalIcon:W(s).ui.icons.external,"data-slot":`itemLabelExternalIcon`,class:G(e.ui.itemLabelExternalIcon({class:[e.uiOverride?.itemLabelExternalIcon,r.ui?.itemLabelExternalIcon],color:r?.color,active:a}))},null,8,[`name`,`class`])):B(``,!0)],2),W(Qe)(r,n.descriptionKey)||i[r.slot?`${r.slot}-description`:`item-description`]?(R(),U(`span`,{key:0,"data-slot":`itemDescription`,class:G(e.ui.itemDescription({class:[e.uiOverride?.itemDescription,r.ui?.itemDescription]}))},[L(t.$slots,r.slot?`${r.slot}-description`:`item-description`,{item:r,active:a,index:o},()=>[Yt(er(W(Qe)(r,n.descriptionKey)),1)])],2)):B(``,!0)],2)):B(``,!0),H(`span`,{"data-slot":`itemTrailing`,class:G(e.ui.itemTrailing({class:[e.uiOverride?.itemTrailing,r.ui?.itemTrailing]}))},[L(t.$slots,r.slot?`${r.slot}-trailing`:`item-trailing`,{item:r,active:a,index:o,ui:e.ui},()=>[r.children?.length?(R(),I(hn,{key:0,name:_.value,"data-slot":`itemTrailingIcon`,class:G(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,r.ui?.itemTrailingIcon],color:r?.color,active:a}))},null,8,[`name`,`class`])):r.kbds?.length?(R(),U(`span`,{key:1,"data-slot":`itemTrailingKbds`,class:G(e.ui.itemTrailingKbds({class:[e.uiOverride?.itemTrailingKbds,r.ui?.itemTrailingKbds]}))},[(R(!0),U(dt,null,Yn(r.kbds,(t,n)=>(R(),I(rc,N({key:n,size:r.ui?.itemTrailingKbdsSize||e.uiOverride?.itemTrailingKbdsSize||e.ui.itemTrailingKbdsSize()},{ref_for:!0},typeof t==`string`?{value:t}:t),null,16,[`size`]))),128))],2)):B(``,!0)]),P(W($).ItemIndicator,{"as-child":``},{default:k(()=>[P(hn,{name:e.checkedIcon||W(s).ui.icons.check,"data-slot":`itemTrailingIcon`,class:G(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,r.ui?.itemTrailingIcon],color:r?.color}))},null,8,[`name`,`class`])]),_:2},1024)],2)])]),_:3}),P(W($).Portal,M(z(W(f))),{default:k(()=>[P(W(qn),null,{default:k(()=>[(R(),I(vn(e.sub?W($).SubContent:W($).Content),N({"data-slot":`content`,class:e.ui.content({class:[e.uiOverride?.content,n.class]})},W(p)),{default:k(()=>[e.filter?(R(),I(W($).Filter,{key:0,modelValue:u.value,"onUpdate:modelValue":r[1]||=e=>u.value=e,"as-child":``},{default:k(()=>[P(tc,N({autofocus:``,autocomplete:`off`,size:e.size},d.value,{"data-slot":`input`,class:e.ui.input({class:e.uiOverride?.input}),onChange:r[0]||=st(()=>{},[`stop`])}),null,16,[`size`,`class`])]),_:1},8,[`modelValue`])):B(``,!0),L(t.$slots,`content-top`,{sub:e.sub??!1}),!u.value||S.value?(R(),U(`div`,{key:1,role:`presentation`,"data-slot":`viewport`,class:G(e.ui.viewport({class:e.uiOverride?.viewport}))},[(R(!0),U(dt,null,Yn(x.value,(r,i)=>(R(),I(W($).Group,{key:`group-${i}`,"data-slot":`group`,class:G(e.ui.group({class:e.uiOverride?.group}))},{default:k(()=>[(R(!0),U(dt,null,Yn(r,(r,a)=>(R(),U(dt,{key:`group-${i}-${a}`},[r.type===`label`?(R(),I(W($).Label,{key:0,"data-slot":`label`,class:G(e.ui.label({class:[e.uiOverride?.label,r.ui?.label,r.class]}))},{default:k(()=>[P(W(g),{item:r,index:a},null,8,[`item`,`index`])]),_:2},1032,[`class`])):r.type===`separator`?(R(),I(W($).Separator,{key:1,"data-slot":`separator`,class:G(e.ui.separator({class:[e.uiOverride?.separator,r.ui?.separator,r.class]}))},null,8,[`class`])):r?.children?.length?(R(),I(W($).Sub,{key:2,open:r.open,"default-open":r.defaultOpen},{default:k(()=>[P(W($).SubTrigger,{as:`button`,type:`button`,disabled:r.disabled,"text-value":W(Qe)(r,n.labelKey),"data-slot":`item`,class:G(e.ui.item({class:[e.uiOverride?.item,r.ui?.item,r.class],color:r?.color}))},{default:k(()=>[P(W(g),{item:r,index:a},null,8,[`item`,`index`])]),_:2},1032,[`disabled`,`text-value`,`class`]),P(ic,N({sub:``,class:r.ui?.content,ui:e.ui,"ui-override":e.uiOverride,portal:e.portal,items:r.children,align:`start`,"align-offset":-4,"side-offset":3,"label-key":e.labelKey,"description-key":e.descriptionKey,"checked-icon":e.checkedIcon,"loading-icon":e.loadingIcon,"external-icon":e.externalIcon,size:e.size,filter:r.filter,"filter-fields":r.filterFields||e.filterFields,"ignore-filter":r.ignoreFilter??e.ignoreFilter},{ref_for:!0},r.content),_n({_:2},[Yn(m(),(e,n)=>({name:n,fn:k(e=>[L(t.$slots,n,N({ref_for:!0},e))])}))]),1040,[`class`,`ui`,`ui-override`,`portal`,`items`,`label-key`,`description-key`,`checked-icon`,`loading-icon`,`external-icon`,`size`,`filter`,`filter-fields`,`ignore-filter`])]),_:2},1032,[`open`,`default-open`])):r.type===`checkbox`?(R(),I(W($).CheckboxItem,{key:3,"model-value":r.checked,disabled:r.disabled,"text-value":W(Qe)(r,n.labelKey),"data-slot":`item`,class:G(e.ui.item({class:[e.uiOverride?.item,r.ui?.item,r.class],color:r?.color})),"onUpdate:modelValue":r.onUpdateChecked,onSelect:r.onSelect},{default:k(()=>[P(W(g),{item:r,index:a},null,8,[`item`,`index`])]),_:2},1032,[`model-value`,`disabled`,`text-value`,`class`,`onUpdate:modelValue`,`onSelect`])):(R(),I(Cn,N({key:4,ref_for:!0},W(Mt)(r),{custom:``}),{default:k(({active:t,...i})=>[P(W($).Item,{"as-child":``,disabled:r.disabled,"text-value":W(Qe)(r,n.labelKey),onSelect:r.onSelect},{default:k(()=>[P(Rn,N({ref_for:!0},i,{"data-slot":`item`,class:e.ui.item({class:[e.uiOverride?.item,r.ui?.item,r.class],color:r?.color,active:t})}),{default:k(()=>[P(W(g),{item:r,active:t,index:a},null,8,[`item`,`active`,`index`])]),_:2},1040,[`class`])]),_:2},1032,[`disabled`,`text-value`,`onSelect`])]),_:2},1040))],64))),128))]),_:2},1032,[`class`]))),128))],2)):B(``,!0),u.value&&!S.value?(R(),U(`div`,{key:2,"data-slot":`empty`,class:G(e.ui.empty({class:e.uiOverride?.empty}))},[L(t.$slots,`empty`,{searchTerm:u.value},()=>[Yt(er(W(a)(`dropdownMenu.noMatch`,{searchTerm:u.value})),1)])],2)):B(``,!0),L(t.$slots,`default`),L(t.$slots,`content-bottom`,{sub:e.sub??!1})]),_:3},16,[`class`]))]),_:3})]),_:3},16)],64))}},ac={slots:{content:`min-w-32 max-h-(--reka-dropdown-menu-content-available-height) bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_100ms_var(--ease-out)] origin-(--reka-dropdown-menu-content-transform-origin) flex flex-col`,input:`border-b border-default`,empty:`text-center text-muted`,viewport:`relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1`,arrow:`fill-bg stroke-default`,group:`p-1 isolate`,label:`w-full flex items-center font-semibold text-highlighted`,separator:`-mx-1 my-1 h-px bg-border`,item:`group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75`,itemLeadingIcon:`shrink-0`,itemLeadingAvatar:`shrink-0`,itemLeadingAvatarSize:``,itemTrailing:`ms-auto inline-flex gap-1.5 items-center`,itemTrailingIcon:`shrink-0`,itemTrailingKbds:`hidden lg:inline-flex items-center shrink-0`,itemTrailingKbdsSize:``,itemWrapper:`flex-1 flex flex-col text-start min-w-0`,itemLabel:`truncate`,itemDescription:`truncate text-muted`,itemLabelExternalIcon:`inline-block size-3 align-top text-dimmed`},variants:{color:{primary:``,secondary:``,success:``,info:``,warning:``,error:``,neutral:``},active:{true:{item:`text-highlighted before:bg-elevated`,itemLeadingIcon:`text-default`},false:{item:[`text-default data-highlighted:text-highlighted data-[state=open]:text-highlighted data-highlighted:before:bg-elevated/50 data-[state=open]:before:bg-elevated/50`,`transition-colors before:transition-colors`],itemLeadingIcon:[`text-dimmed group-data-highlighted:text-default group-data-[state=open]:text-default`,`transition-colors`]}},loading:{true:{itemLeadingIcon:`animate-spin`}},size:{xs:{label:`p-1 text-xs gap-1`,item:`p-1 text-xs gap-1`,empty:`p-2 text-xs`,itemLeadingIcon:`size-4`,itemLeadingAvatarSize:`3xs`,itemTrailingIcon:`size-4`,itemTrailingKbds:`gap-0.5`,itemTrailingKbdsSize:`sm`},sm:{label:`p-1.5 text-xs gap-1.5`,item:`p-1.5 text-xs gap-1.5`,empty:`p-2.5 text-xs`,itemLeadingIcon:`size-4`,itemLeadingAvatarSize:`3xs`,itemTrailingIcon:`size-4`,itemTrailingKbds:`gap-0.5`,itemTrailingKbdsSize:`sm`},md:{label:`p-1.5 text-sm gap-1.5`,item:`p-1.5 text-sm gap-1.5`,empty:`p-2.5 text-sm`,itemLeadingIcon:`size-5`,itemLeadingAvatarSize:`2xs`,itemTrailingIcon:`size-5`,itemTrailingKbds:`gap-0.5`,itemTrailingKbdsSize:`md`},lg:{label:`p-2 text-sm gap-2`,item:`p-2 text-sm gap-2`,empty:`p-3 text-sm`,itemLeadingIcon:`size-5`,itemLeadingAvatarSize:`2xs`,itemTrailingIcon:`size-5`,itemTrailingKbds:`gap-1`,itemTrailingKbdsSize:`md`},xl:{label:`p-2 text-base gap-2`,item:`p-2 text-base gap-2`,empty:`p-3 text-base`,itemLeadingIcon:`size-6`,itemLeadingAvatarSize:`xs`,itemTrailingIcon:`size-6`,itemTrailingKbds:`gap-1`,itemTrailingKbdsSize:`lg`}}},compoundVariants:[{color:`primary`,active:!1,class:{item:`text-primary data-highlighted:text-primary data-highlighted:before:bg-primary/10 data-[state=open]:before:bg-primary/10`,itemLeadingIcon:`text-primary/75 group-data-highlighted:text-primary group-data-[state=open]:text-primary`}},{color:`secondary`,active:!1,class:{item:`text-secondary data-highlighted:text-secondary data-highlighted:before:bg-secondary/10 data-[state=open]:before:bg-secondary/10`,itemLeadingIcon:`text-secondary/75 group-data-highlighted:text-secondary group-data-[state=open]:text-secondary`}},{color:`success`,active:!1,class:{item:`text-success data-highlighted:text-success data-highlighted:before:bg-success/10 data-[state=open]:before:bg-success/10`,itemLeadingIcon:`text-success/75 group-data-highlighted:text-success group-data-[state=open]:text-success`}},{color:`info`,active:!1,class:{item:`text-info data-highlighted:text-info data-highlighted:before:bg-info/10 data-[state=open]:before:bg-info/10`,itemLeadingIcon:`text-info/75 group-data-highlighted:text-info group-data-[state=open]:text-info`}},{color:`warning`,active:!1,class:{item:`text-warning data-highlighted:text-warning data-highlighted:before:bg-warning/10 data-[state=open]:before:bg-warning/10`,itemLeadingIcon:`text-warning/75 group-data-highlighted:text-warning group-data-[state=open]:text-warning`}},{color:`error`,active:!1,class:{item:`text-error data-highlighted:text-error data-highlighted:before:bg-error/10 data-[state=open]:before:bg-error/10`,itemLeadingIcon:`text-error/75 group-data-highlighted:text-error group-data-[state=open]:text-error`}},{color:`primary`,active:!0,class:{item:`text-primary before:bg-primary/10`,itemLeadingIcon:`text-primary`}},{color:`secondary`,active:!0,class:{item:`text-secondary before:bg-secondary/10`,itemLeadingIcon:`text-secondary`}},{color:`success`,active:!0,class:{item:`text-success before:bg-success/10`,itemLeadingIcon:`text-success`}},{color:`info`,active:!0,class:{item:`text-info before:bg-info/10`,itemLeadingIcon:`text-info`}},{color:`warning`,active:!0,class:{item:`text-warning before:bg-warning/10`,itemLeadingIcon:`text-warning`}},{color:`error`,active:!0,class:{item:`text-error before:bg-error/10`,itemLeadingIcon:`text-error`}}],defaultVariants:{size:`md`}},oc={__name:`DropdownMenu`,props:$e({size:{type:null,required:!1},items:{type:null,required:!1},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},labelKey:{type:null,required:!1,default:`label`},descriptionKey:{type:null,required:!1,default:`description`},filter:{type:[Boolean,Object],required:!1,default:!1},filterFields:{type:Array,required:!1},ignoreFilter:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0}},{searchTerm:{type:String,default:``},searchTermModifiers:{}}),emits:$e([`update:open`],[`update:searchTerm`]),setup(e,{emit:t}){let n=e,r=t,i=v(),a=Xe(e,`searchTerm`,{type:String,default:``}),o=bt(`dropdownMenu`,n),s=ue(),c=qt(Kt(o,`defaultOpen`,`open`,`modal`),r),l=gn(()=>jn(o.content,{side:`bottom`,sideOffset:8,collisionPadding:8})),u=gn(()=>jn(o.arrow,{rounded:!0})),d=()=>me(i,[`default`]),f=V(()=>Zt({extend:ac,...s.ui?.dropdownMenu||{}})({size:o.size}));return(e,t)=>(R(),I(W(Ls),M(z(W(c))),{default:k(({open:n})=>[i.default?(R(),I(W(Zs),{key:0,"as-child":``,class:G(W(o).class),disabled:W(o).disabled},{default:k(()=>[L(e.$slots,`default`,{open:n})]),_:2},1032,[`class`,`disabled`])):B(``,!0),P(ic,N({"search-term":a.value,"onUpdate:searchTerm":t[0]||=e=>a.value=e,class:f.value.content({class:[!i.default&&W(o).class,W(o).ui?.content]}),ui:f.value,"ui-override":W(o).ui},l.value,{items:W(o).items,portal:W(o).portal,"label-key":W(o).labelKey,"description-key":W(o).descriptionKey,"checked-icon":W(o).checkedIcon,"loading-icon":W(o).loadingIcon,"external-icon":W(o).externalIcon,size:W(o).size,filter:W(o).filter,"filter-fields":W(o).filterFields,"ignore-filter":W(o).ignoreFilter}),_n({default:k(()=>[W(o).arrow?(R(),I(W(Ns),N({key:0},u.value,{"data-slot":`arrow`,class:f.value.arrow({class:W(o).ui?.arrow})}),null,16,[`class`])):B(``,!0)]),_:2},[Yn(d(),(t,n)=>({name:n,fn:k(t=>[L(e.$slots,n,M(z(t)))])}))]),1040,[`search-term`,`class`,`ui`,`ui-override`,`items`,`portal`,`label-key`,`description-key`,`checked-icon`,`loading-icon`,`external-icon`,`size`,`filter`,`filter-fields`,`ignore-filter`])]),_:3},16))}};function sc(){return Be(Hn,null)?.capabilities??null}var cc=[{id:`home`,label:`Threads`,href:`/threads`,icon:`i-lucide-message-square`},{id:`runs`,label:`Runs`,href:`/runs`,icon:`i-lucide-list`},{id:`residents`,label:`Residents`,href:`/residents`,icon:`i-lucide-server`,on:e=>e.residents},{id:`costs`,label:`Costs`,href:`/costs`,icon:`i-lucide-circle-dollar-sign`,on:e=>e.costs},{id:`delivery`,label:`Delivery`,href:`/delivery`,icon:`i-lucide-git-merge`,on:e=>e.github}];function lc(e,t){return cc.filter(n=>n.id===t||n.on===void 0||e!==null&&n.on(e))}var uc={class:`site flex items-center gap-3.5 text-[0.8rem]`,"aria-label":`Sections`},dc=[`href`,`aria-current`],fc=K({__name:`AppNav`,props:{current:{}},setup(e){let t=e,n=sc(),r=V(()=>lc(n,t.current));return(t,n)=>(R(),U(`nav`,uc,[(R(!0),U(dt,null,Yn(r.value,t=>(R(),U(`a`,{key:t.id,href:t.href,"aria-current":t.id===e.current?`page`:void 0,class:`font-medium text-muted no-underline decoration-1 underline-offset-[6px] hover:text-highlighted aria-[current=page]:text-highlighted aria-[current=page]:underline aria-[current=page]:decoration-(--ui-border-accented)`},er(t.label),9,dc))),128))]))}}),pc=`/docs`,mc=`Docs`,hc=`i-lucide-book-open`,gc=K({__name:`DocsLink`,props:{size:{}},setup(e){return(t,n)=>{let r=Ct;return R(),I(r,{class:`docs-link`,href:pc,target:`_blank`,rel:`noopener`,color:`neutral`,variant:`ghost`,size:e.size??`xs`,icon:hc,"aria-label":mc,title:`Docs (opens in a new tab)`},null,8,[`size`])}}}),_c=`/settings`,vc=`Settings`,yc=`i-lucide-settings`,bc=K({__name:`SettingsLink`,props:{size:{},current:{type:Boolean}},setup(e){return(t,n)=>{let r=Ct;return R(),I(r,{class:`settings-link`,href:_c,color:`neutral`,variant:`ghost`,size:e.size??`xs`,icon:yc,"aria-label":vc,"aria-current":e.current?`page`:void 0,title:vc},null,8,[`size`,`aria-current`])}}}),xc=K({__name:`ThemeToggle`,setup(e){let t=Fe({emitAuto:!0}),n={light:`i-lucide-sun`,dark:`i-lucide-moon`,auto:`i-lucide-monitor`},r=V(()=>[{label:`Light`,value:`light`},{label:`Dark`,value:`dark`},{label:`System`,value:`auto`}].map(e=>({label:e.label,icon:n[e.value],type:`checkbox`,checked:t.value===e.value,onSelect(){t.value=e.value}})));return(e,i)=>{let a=Ct,o=oc;return R(),I(o,{items:r.value,content:{align:`end`}},{default:k(()=>[P(a,{class:`theme-toggle`,color:`neutral`,variant:`ghost`,size:`xs`,icon:n[W(t)]??n.auto,"aria-label":`Theme`},null,8,[`icon`])]),_:1},8,[`items`])}}}),Sc=Symbol(`sb-mark-pulse`),Cc=K({__name:`BrandMark`,props:{draw:{type:Boolean},idle:{type:Boolean}},setup(e){let t=Be(Sc,null),n=F(!1);return t&&A(t,()=>{n.value=!1,requestAnimationFrame(()=>{n.value=!0})}),(t,r)=>(R(),U(`svg`,{viewBox:`0 0 64 64`,class:G([`mark inline-block size-[1.35em] shrink-0 align-[-0.3em]`,[e.draw?`mark-draw`:``,e.idle?`mark-idle`:``,n.value?`mark-pulse`:``]]),"aria-label":`Switchboard`,role:`img`,onAnimationend:r[0]||=e=>n.value=!1},[...r[1]||=[$t(`<g transform="translate(0 2)" stroke-linejoin="round" stroke-linecap="round" stroke-width="4"><polygon points="32,30 59,43 32,56 5,43" fill="none" stroke="currentColor"></polygon><polygon points="32,17 59,30 32,43 5,30" fill="currentColor" stroke="currentColor"></polygon><polygon points="32,4 59,17 32,30 5,17" fill="var(--ui-bg)" stroke="currentColor"></polygon><path class="route" d="M32 17 L32 30 L19 37 M32 30 L45 37" fill="none" stroke="var(--sb-ok)"></path><path class="pulse" d="M32 17 L32 30 L19 37 M32 30 L45 37" fill="none" stroke="var(--ui-bg)"></path><circle cx="32" cy="17" r="4" fill="var(--sb-ok)" stroke="var(--ui-bg)" stroke-width="3"></circle><circle cx="19" cy="37" r="4" fill="var(--sb-ok)" stroke="currentColor" stroke-width="3"></circle><circle cx="45" cy="37" r="4" fill="var(--sb-ok)" stroke="currentColor" stroke-width="3"></circle></g>`,1)]],34))}}),wc={navigate(e){window.location.assign(e)},reload(){window.location.reload()},pathname(){return window.location.pathname},replaceUrl(e){window.history.replaceState(window.history.state,``,e)},confirm(e){return window.confirm(e)},setTitle(e){document.title=e},setFavicon(e){document.getElementById(`favicon`)?.setAttribute(`href`,e)},copyText(e){return navigator.clipboard?.writeText(e)??Promise.resolve()}},Tc={class:`mx-auto max-w-[80rem] px-3 pb-16 sm:px-5`},Ec={class:`sticky top-0 z-20 -mx-3 mb-4 flex flex-wrap items-center gap-x-4 gap-y-2 border-b border-default bg-default/75 px-3 pb-3 pt-4 backdrop-blur sm:-mx-5 sm:px-5`},Dc={class:`flex min-w-0 items-center gap-2 text-base tracking-tight`},Oc={class:`home brand flex shrink-0 items-center gap-2 font-medium text-highlighted no-underline`,href:`/threads`,"aria-label":`Switchboard home`},kc={class:`title min-w-0 truncate font-normal text-toned`},Ac={class:`ml-auto flex items-center gap-4`},jc={class:`hidden items-center gap-4 sm:flex`},Mc=K({__name:`AppShell`,props:{title:{},nav:{}},setup(e){let t=e,n=sc(),r=V(()=>lc(n,t.nav)),i=Fe({emitAuto:!0}),a=[{label:`Light`,value:`light`,icon:`i-lucide-sun`},{label:`Dark`,value:`dark`,icon:`i-lucide-moon`},{label:`System`,value:`auto`,icon:`i-lucide-monitor`}],o=V(()=>[[{label:mc,icon:hc,to:pc,target:`_blank`},{label:vc,icon:yc,type:`checkbox`,checked:t.nav===`settings`,onSelect:()=>wc.navigate(_c)}],r.value.map(e=>({label:e.label,icon:e.icon,type:`checkbox`,checked:e.id===t.nav,onSelect:()=>wc.navigate(e.href)})),a.map(e=>({label:e.label,icon:e.icon,type:`checkbox`,checked:i.value===e.value,onSelect:()=>{i.value=e.value}}))]);return(t,n)=>{let r=Ct,i=oc;return R(),U(`div`,Tc,[H(`header`,Ec,[L(t.$slots,`leading`),H(`h1`,Dc,[H(`a`,Oc,[P(Cc),n[0]||=H(`span`,{class:`wordmark`},`Switchboard`,-1)]),n[1]||=H(`span`,{class:`sep select-none text-dimmed`,"aria-hidden":`true`},`/`,-1),H(`span`,kc,er(e.title),1)]),L(t.$slots,`status`),H(`span`,Ac,[L(t.$slots,`actions`),H(`span`,jc,[P(fc,{current:e.nav},null,8,[`current`]),P(bc,{current:e.nav===`settings`},null,8,[`current`]),P(gc),P(xc)]),P(i,{items:o.value,content:{align:`end`},class:`sm:hidden`},{default:k(()=>[P(r,{class:`-my-1`,size:`md`,color:`neutral`,variant:`ghost`,icon:`i-lucide-menu`,"aria-label":`Menu`})]),_:1},8,[`items`])])]),L(t.$slots,`default`)])}}});export{Mr as C,J as S,hr as T,gi as _,sc as a,Jr as b,Xo as c,Go as d,Ni as f,ki as g,Di as h,Sc as i,Jo as l,Oi as m,wc as n,oc as o,Mi as p,Cc as r,rc as s,Mc as t,qo as u,ci as v,Tr as w,Kr as x,ii as y};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./AppShell-
|
|
2
|
-
`)}function R(e){let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.getTime())?e:`${[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][t.getUTCMonth()]} ${t.getUTCDate()}`}function ue(e,t,n){let r=t.map(t=>({series:t,usd:N(e,t),estimated:t===`LLM (Anthropic)`&&e.llmEstimated})).filter(e=>e.usd>0).sort((e,t)=>t.usd-e.usd);return{date:e.date,label:R(e.date),partial:n,total:e.total,rows:r}}function z(e,t){let n={t:12,r:12,b:30,l:48},r=960-n.l-n.r,i=260-n.t-n.b,a=e.days,o=Math.max(1e-9,...a.map(e=>e.total))*1.08,s=r/Math.max(1,a.length),c=Math.min(10,s*.28),l=e=>n.t+i-e/o*i,u=Array.from({length:5},(e,t)=>{let n=o/4*t;return{y:Number(l(n).toFixed(1)),label:j(n)}}),d=[],f=[],p=[];return a.forEach((r,o)=>{let u=0,m=n.l+o*s+c/2,h=s-c;f.push({x:Number((n.l+o*s).toFixed(1)),y:n.t,width:Number(s.toFixed(1)),height:i,title:le(r,t,e.range.partialLastDay&&o===a.length-1),tip:ue(r,t,e.range.partialLastDay&&o===a.length-1)}),t.forEach((e,t)=>{let n=N(r,e);if(n<=0)return;let i=l(u+n),a=l(u),o=Math.max(0,a-i-2);d.push({seriesIndex:t,x:Number(m.toFixed(1)),y:Number(i.toFixed(1)),width:Number(h.toFixed(1)),height:Number(o.toFixed(1))}),u+=n}),(a.length<=16||o%Math.ceil(a.length/16)===0)&&p.push({x:Number((m+h/2).toFixed(1)),label:r.date.slice(5)})}),{width:960,height:260,gridLines:u,segments:d,dayHovers:f,dayLabels:p,axisY:Number(l(0).toFixed(1)),marginLeft:n.l,marginRight:n.r}}function de(e){let t=e.totals.byResource,n=[[`Memory (provisioned while awake)`,t.memory],[`vCPU (active use only)`,t.cpu],[`Durable Object duration + requests`,t.durableObjects],[`Disk (provisioned while awake)`,t.disk],[`Workers requests + CPU`,t.workers],[`Durable Object SQLite rows`,t.doRows],[`Durable Object SQLite storage`,t.doStorage],[`R2 storage + operations`,t.r2],[`Workflow steps + state`,t.workflows]],r=n.reduce((e,t)=>e+t[1],0)||1;return n.map(([e,t])=>({label:e,usd:t,percent:t/r*100}))}var B=[`fill-[#4478b8] dark:fill-[#7aa7e0]`,`fill-[#c8823b] dark:fill-[#e0a95a]`,`fill-[#4c8c57] dark:fill-[#6fae7a]`,`fill-[#b8963e] dark:fill-[#d4b45a]`,`fill-[#b0568c] dark:fill-[#d489b8]`,`fill-[#6b7bcc] dark:fill-[#98a5e6]`,`fill-[#d05252] dark:fill-[#e07a74]`,`fill-[#3e8e96] dark:fill-[#6fb9c0]`],V=[`bg-[#4478b8] dark:bg-[#7aa7e0]`,`bg-[#c8823b] dark:bg-[#e0a95a]`,`bg-[#4c8c57] dark:bg-[#6fae7a]`,`bg-[#b8963e] dark:bg-[#d4b45a]`,`bg-[#b0568c] dark:bg-[#d489b8]`,`bg-[#6b7bcc] dark:bg-[#98a5e6]`,`bg-[#d05252] dark:bg-[#e07a74]`,`bg-[#3e8e96] dark:bg-[#6fb9c0]`],H={class:`overflow-x-auto`},U=[`viewBox`],W=[`x1`,`x2`,`y1`,`y2`],G=[`x`,`y`],K=[`x`,`y`,`width`,`height`],q=[`aria-label`,`x`,`y`,`width`,`height`,`onPointerenter`,`onPointermove`],J=[`x`,`y`],Y=[`x1`,`x2`,`y1`,`y2`],fe={class:`tip-head mb-1.5 flex items-baseline justify-between gap-3 border-b border-muted pb-1.5`},X={class:`font-medium text-highlighted`},pe={key:0,class:`ml-1.5 font-normal text-dimmed`},me={class:`font-medium text-highlighted`},he={class:`tip-name truncate text-muted`},ge={class:`text-highlighted`},Z={class:`tip-usd`},_e={key:0,class:`ml-1 text-dimmed`},Q=256,$=12,ve=S({__name:`CostChart`,props:{report:{},series:{}},setup(e){let n=e,r=m(()=>z(n.report,n.series)),i=e=>44+e*20,a=c(null),s=c(null);function l(e,t){let n=s.value,r=n?.getBoundingClientRect(),o=t.clientX-(r?.left??0),c=t.clientY-(r?.top??0),l=n?.clientWidth??0,u=n?.clientHeight??0,d=i(e.tip.rows.length),f=l>0&&o+$+Q>l,p=u>0&&c+$+d>u;a.value={x:Math.max(0,f?o-$-Q:o+$),y:Math.max(0,p?c-$-d:c+$),data:e.tip}}return(e,n)=>(d(),_(`div`,{ref_key:`host`,ref:s,class:`chart-host relative`},[g(`div`,H,[(d(),_(`svg`,{class:`block h-auto w-full font-mono`,viewBox:`0 0 ${r.value.width} ${r.value.height}`,role:`img`,"aria-label":`Daily cost, stacked by component`},[(d(!0),_(o,null,v(r.value.gridLines,(e,t)=>(d(),_(o,{key:`g${t}`},[g(`line`,{class:`stroke-(--ui-border-muted)`,x1:r.value.marginLeft,x2:r.value.width-r.value.marginRight,y1:e.y,y2:e.y},null,8,W),g(`text`,{class:`fill-(--ui-text-dimmed) text-[11px] tabular-nums`,x:r.value.marginLeft-8,y:e.y+4,"text-anchor":`end`},b(e.label),9,G)],64))),128)),(d(!0),_(o,null,v(r.value.segments,(e,t)=>(d(),_(`rect`,{key:`s${t}`,class:x([`seg hover:opacity-85`,y(B)[e.seriesIndex%y(B).length]]),x:e.x,y:e.y,width:e.width,height:e.height},null,10,K))),128)),(d(!0),_(o,null,v(r.value.dayHovers,(e,t)=>(d(),_(`rect`,{key:`h${t}`,class:`day fill-transparent`,role:`img`,"aria-label":e.title,x:e.x,y:e.y,width:e.width,height:e.height,onPointerenter:t=>l(e,t),onPointermove:t=>l(e,t),onPointerleave:n[0]||=e=>a.value=null},null,40,q))),128)),(d(!0),_(o,null,v(r.value.dayLabels,(e,t)=>(d(),_(`text`,{key:`d${t}`,class:`fill-(--ui-text-dimmed) text-[11px]`,x:e.x,y:r.value.height-10,"text-anchor":`middle`},b(e.label),9,J))),128)),g(`line`,{class:`stroke-(--ui-border)`,x1:r.value.marginLeft,x2:r.value.width-r.value.marginRight,y1:r.value.axisY,y2:r.value.axisY},null,8,Y)],8,U))]),a.value?(d(),_(`div`,{key:0,class:`chart-tip pointer-events-none absolute z-10 w-64 rounded-md border border-default bg-elevated px-3 py-2 font-mono text-xs tabular-nums whitespace-nowrap shadow-lg`,role:`tooltip`,style:t({left:`${a.value.x}px`,top:`${a.value.y}px`})},[g(`div`,fe,[g(`span`,X,[u(b(a.value.data.label),1),a.value.data.partial?(d(),_(`span`,pe,`partial day`)):f(``,!0)]),g(`span`,me,b(y(j)(a.value.data.total)),1)]),(d(!0),_(o,null,v(a.value.data.rows,e=>(d(),_(`div`,{key:e.series,class:`tip-row flex items-baseline justify-between gap-3 leading-5`},[g(`span`,he,b(e.series),1),g(`span`,ge,[g(`span`,Z,b(y(j)(e.usd)),1),e.estimated?(d(),_(`span`,_e,`est.`)):f(``,!0)])]))),128))],4)):f(``,!0)],512))}}),ye={class:`by-user grid gap-3`},be={class:`flex flex-wrap items-center gap-x-4 gap-y-2`},xe={class:`flex items-center gap-2 text-sm text-muted`},Se=[`title`],Ce=[`disabled`,`aria-describedby`],we={key:0,id:`me-hint`,class:`me-hint text-xs text-dimmed`},Te={class:`coverage font-mono text-xs tabular-nums text-muted`},Ee={class:`overflow-x-auto`},De={class:`users w-full min-w-[40rem] border-collapse whitespace-nowrap font-mono text-[0.8125rem] tabular-nums`},Oe=[`title`],ke={class:`text-highlighted`},Ae={class:`ml-1.5 text-xs text-dimmed`},je={key:0,class:`ml-1.5 rounded-xs bg-accented px-1 text-xs text-highlighted`},Me=[`title`],Ne={class:`border-b border-muted px-2.5 py-1.5 text-right`},Pe={class:`border-b border-muted px-2.5 py-1.5 text-right`},Fe={class:`border-b border-muted px-2.5 py-1.5 text-right`},Ie={class:`border-b border-muted px-2.5 py-1.5 text-right font-medium text-highlighted`},Le={class:`border-b border-muted px-2.5 py-1.5 text-right`},Re={key:0},ze={class:`empty px-2.5 py-3 text-sm text-muted`,colspan:`6`},Be={key:0},Ve={class:`px-2.5 py-1.5 text-right text-xs text-muted`},He={class:`px-2.5 py-1.5 text-right text-xs text-muted`},Ue={class:`reconciliation font-mono text-xs tabular-nums text-muted`},We=S({__name:`CostsByUser`,props:{report:{}},setup(e){let t=e,n=c(``),i=c(!1),s=m(()=>t.report.viewer.userIds.length>0),l=m(()=>{let e=n.value.trim().toLowerCase(),r=new Set(t.report.viewer.userIds);return t.report.users.filter(t=>i.value&&!r.has(t.userId)?!1:!e||t.userId.toLowerCase().includes(e)||(t.userName??``).toLowerCase().includes(e))}),p=m(()=>t.report.users.reduce((e,t)=>e+t.totalUsd,0)),h=m(()=>l.value.reduce((e,t)=>e+t.totalUsd,0)),S=e=>t.report.viewer.userIds.includes(e.userId),w=e=>e.userName??e.userId.replace(/^[a-z]+:/,``),T=e=>e.userId.split(`:`)[0]??``,E=e=>`${e} day${e===1?``:`s`}`;return(t,c)=>(d(),_(`section`,ye,[g(`div`,be,[g(`label`,xe,[c[2]||=g(`span`,null,`Filter`,-1),C(g(`input`,{"onUpdate:modelValue":c[0]||=e=>n.value=e,class:`user-filter rounded-md border border-default bg-elevated px-2.5 py-1 font-mono text-xs text-highlighted`,type:`search`,placeholder:`name or id`,"aria-label":`Filter users`},null,512),[[a,n.value]])]),g(`label`,{class:x([`me-toggle flex items-center gap-2 text-sm`,s.value?`text-muted`:`text-dimmed`]),title:s.value?`Only your own runs`:void 0},[C(g(`input`,{"onUpdate:modelValue":c[1]||=e=>i.value=e,type:`checkbox`,disabled:!s.value,"aria-label":`Only me`,"aria-describedby":s.value?void 0:`me-hint`},null,8,Ce),[[r,i.value]]),c[3]||=g(`span`,null,`me`,-1),s.value?f(``,!0):(d(),_(`span`,we,`— your sign-in email matched no Slack user in this range`))],10,Se),g(`p`,Te,[e.report.coverage.historyOn?(d(),_(o,{key:1},[u(` runs from `+b(y(R)(e.report.coverage.from))+` to `+b(y(R)(e.report.range.to)),1),e.report.coverage.clamped?(d(),_(o,{key:0},[u(` · earlier days are past the history's `+b(e.report.coverage.retentionDays)+`-day window`,1)],64)):f(``,!0),e.report.pending>0?(d(),_(o,{key:1},[u(` · `+b(e.report.pending)+` run`+b(e.report.pending===1?``:`s`)+` still being priced`,1)],64)):f(``,!0)],64)):(d(),_(o,{key:0},[u(`run history is off — no runs to attribute`)],64))])]),g(`div`,Ee,[g(`table`,De,[c[5]||=g(`thead`,null,[g(`tr`,null,[g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-left text-xs font-medium text-muted`},` User `),g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` Runs `),g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` LLM `),g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},[u(` Cloud `),g(`span`,{class:`font-normal text-dimmed`},`allocated`)]),g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` Total `),g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` Share `)])],-1),g(`tbody`,null,[(d(!0),_(o,null,v(l.value,e=>(d(),_(`tr`,{key:e.userId,class:x([`user-row`,S(e)?`is-me`:``])},[g(`td`,{class:`border-b border-muted px-2.5 py-1.5`,title:e.userId},[g(`span`,ke,b(w(e)),1),g(`span`,Ae,b(T(e)),1),S(e)?(d(),_(`span`,je,`me`)):f(``,!0),e.unpricedTokens>0?(d(),_(`span`,{key:1,class:`ml-1.5 text-xs text-warn`,title:`${e.unpricedTokens} tokens ran under a model with no list price`},`unpriced tokens`,8,Me)):f(``,!0)],8,Oe),g(`td`,Ne,b(e.runs),1),g(`td`,Pe,b(y(j)(e.llmUsd)),1),g(`td`,Fe,b(y(j)(e.cloudUsd)),1),g(`td`,Ie,b(y(j)(e.totalUsd)),1),g(`td`,Le,b(p.value>0?Math.round(e.totalUsd/p.value*100):0)+`% `,1)],2))),128)),l.value.length===0?(d(),_(`tr`,Re,[g(`td`,ze,b(e.report.users.length===0?`no runs in this range`:`no user matches`),1)])):f(``,!0)]),l.value.length>0&&l.value.length<e.report.users.length?(d(),_(`tfoot`,Be,[g(`tr`,null,[c[4]||=g(`td`,{class:`px-2.5 py-1.5 text-xs text-muted`,colspan:`4`},`shown`,-1),g(`td`,Ve,b(y(j)(h.value)),1),g(`td`,He,b(p.value>0?Math.round(h.value/p.value*100):0)+`% `,1)])])):f(``,!0)])]),g(`p`,Ue,[e.report.reconciliation.comparedDays>0?(d(),_(o,{key:0},[u(` LLM attributed `+b(y(j)(e.report.reconciliation.attributedLlmUsd))+` of `+b(y(j)(e.report.reconciliation.workspaceLlmUsd))+` on the workspace over `+b(E(e.report.reconciliation.comparedDays))+` · `,1),e.report.reconciliation.unattributedLlmUsd>=0?(d(),_(o,{key:0},[u(b(y(j)(e.report.reconciliation.unattributedLlmUsd))+` unattributed (router, review abridges, runs without a record, list vs invoice) `,1)],64)):(d(),_(o,{key:1},[u(b(y(j)(-e.report.reconciliation.unattributedLlmUsd))+` more attributed than the workspace figure (list vs invoice, or spend billed outside this workspace on a compared day) `,1)],64))],64)):(d(),_(o,{key:1},[u(`no day in range has a workspace LLM figure to compare against`)],64)),e.report.reconciliation.uncomparedDays>0?(d(),_(o,{key:2},[u(` · `+b(E(e.report.reconciliation.uncomparedDays))+` with `+b(y(j)(e.report.reconciliation.uncomparedLlmUsd))+` of run tokens but no workspace figure (billed outside this workspace) not compared`,1)],64)):f(``,!0),u(` · cloud allocated `+b(y(j)(e.report.reconciliation.cloudAllocatedUsd)),1),e.report.reconciliation.cloudUnallocatedUsd>0?(d(),_(o,{key:3},[u(` · `+b(y(j)(e.report.reconciliation.cloudUnallocatedUsd))+` on days with no runs`,1)],64)):f(``,!0)]),c[6]||=g(`p`,{class:`text-xs text-dimmed`},` A user's LLM is their runs' tokens at Anthropic list (cache writes at the 5-minute rate); a child run bills to whoever started its parent. Cloud is each day's Cloudflare spend split by share of run wall-clock — an allocation, not a meter. `,-1)]))}}),Ge={class:`mb-4 flex flex-wrap items-center gap-x-4 gap-y-2`},Ke={class:`flex items-center gap-1`,"aria-label":`Range`},qe={key:0,class:`rounded-md bg-accented px-2.5 py-1 font-mono text-xs font-medium tabular-nums text-highlighted`,"aria-current":`page`},Je=[`href`],Ye={key:0,class:`flex items-center gap-1`,"aria-label":`Cost groups`},Xe={key:0,class:`rounded-md bg-accented px-2.5 py-1 text-xs font-medium text-highlighted`,"aria-current":`page`},Ze=[`href`],Qe={class:`font-mono text-sm tabular-nums text-muted`},$e={key:1,class:`flex basis-full flex-wrap items-center gap-x-3 gap-y-1`},et={class:`font-mono text-xs tabular-nums text-dimmed`,"data-snapshot-status":``},tt=[`disabled`],nt={key:1,class:`text-xs text-error`,role:`status`,"data-snapshot-error":``},rt={class:`mb-5 grid grid-cols-[repeat(auto-fit,minmax(190px,1fr))] gap-3`},it={key:0,class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},at={class:`font-mono text-2xl font-medium tabular-nums`},ot={class:`text-xs text-muted`},st={key:1,class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},ct={class:`font-mono text-2xl font-medium tabular-nums`},lt={class:`text-xs text-muted`},ut={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},dt={class:`font-mono text-2xl font-medium tabular-nums`},ft={class:`text-xs text-muted`},pt={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},mt={class:`font-mono text-2xl font-medium tabular-nums`},ht={class:`text-xs text-muted`},gt={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},_t={class:`font-mono text-2xl font-medium tabular-nums`},vt={class:`text-xs text-muted`},yt={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},bt={class:`font-mono text-2xl font-medium tabular-nums`},xt={class:`text-xs text-muted`},St=[`href`,`title`],Ct=[`href`],wt={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},Tt={class:`flex flex-wrap items-baseline justify-between gap-x-4 gap-y-2`},Et={class:`legend flex flex-wrap gap-x-4 gap-y-1.5 text-xs text-muted`},Dt=[`href`,`title`],Ot={key:0,class:`text-xs text-warn`},kt={key:1,class:`text-xs text-muted`},At={class:`mb-3 flex items-center gap-1 border-b border-default`,"aria-label":`View`},jt={key:0,class:`-mb-px border-b-2 border-primary px-3 py-1.5 text-sm font-medium text-highlighted`,"aria-current":`page`},Mt=[`href`],Nt={key:0,class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},Pt={key:1,class:`text-sm text-warn`},Ft={class:`text-xs text-muted`},It={class:`rounded bg-accented px-1 py-0.5`},Lt={key:1,class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},Rt={class:`w-full border-collapse font-mono text-[0.8125rem] tabular-nums`},zt={class:`px-2.5 py-1.5`},Bt=[`href`],Vt={class:`px-2.5 py-1.5 text-right`},Ht={class:`px-2.5 py-1.5 text-right`},Ut={class:`w-2/5 px-2.5 py-1.5`},Wt={key:2,class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},Gt={open:``},Kt={class:`mt-2.5 overflow-x-auto`},qt={class:`data w-full min-w-[38rem] border-collapse whitespace-nowrap font-mono text-[0.8125rem] tabular-nums`},Jt=[`title`],Yt={key:0,class:`text-xs text-dimmed`},Xt={key:1,class:`text-xs text-dimmed`},Zt={class:`border-b border-muted px-2.5 py-1.5 text-right font-medium`},Qt={class:`text-xs text-muted`},$t={class:`rounded bg-accented px-1 py-0.5`},en={class:`border-t border-default pt-3.5 text-xs text-dimmed`},tn={class:`mt-2 grid gap-1.5`},nn=[`href`],rn={key:2},an=[`href`],on={key:2},sn=[`href`],cn=[`href`],ln={class:`mb-4 flex flex-wrap items-center gap-x-4 gap-y-2`},un={key:0,class:`flex items-center gap-1`,"aria-label":`Cost groups`},dn={key:0,class:`rounded-md bg-accented px-2.5 py-1 text-xs font-medium text-highlighted`,"aria-current":`page`},fn=[`href`],pn={class:`mb-5 grid gap-2 rounded-lg border border-default bg-elevated px-5 py-4`},mn={class:`flex flex-wrap items-center gap-x-3 gap-y-1`},hn={class:`font-mono text-xs tabular-nums text-muted`,"data-snapshot-status":``},gn=[`disabled`],_n={key:1,class:`text-xs text-error`,role:`status`,"data-snapshot-error":``},vn=S({__name:`CostsPage`,setup(r){let a=h(`costs`),S=c(a?.report??null),C=m(()=>a?.groups??[]),w=m(()=>a?.group??S.value?.group??``),T=c(a?.snapshot??null),E=ne(void 0,6e4),D=m(()=>T.value?ie(T.value,E.value):``),O=m(()=>a?.view??`daily`),k=c(a?.view===`users`?a?.users??null:null),A=m(()=>a?.canSnapshot===!0),M=m(()=>typeof window>`u`?null:new URLSearchParams(window.location.search).get(`days`)),P=e=>`/costs/${w.value}${e}${M.value?`?days=${M.value}`:``}`,F=a?.snapshot?.snapshot?.takenAt??null,I=F,L=null;async function le(){try{let[e,t]=await Promise.all([fetch(P(`.json`),{credentials:`same-origin`}),O.value===`users`?fetch(P(`/users.json`),{credentials:`same-origin`}):Promise.resolve(null)]);return e.ok?(S.value=await e.json(),t?.ok&&(k.value=await t.json()),!0):!1}catch{return!1}}function R(){if(L||I===null||I===F)return;let e=I;L=le().then(t=>{t&&(F=e)}).finally(()=>{L=null,I!==e&&R()})}function ue(e){T.value=e;let t=e.snapshot?.takenAt??null;t&&(I=t,R())}let z=ee(),B=null;i(()=>{w.value&&(B=z(`/costs/${w.value}?stream=1`),B.onmessage=e=>{let t=re(e.data);t&&ue(t)})}),p(()=>B?.close());let H=c(!1),U=c(``);async function W(){H.value=!0,U.value=``;let e=await te(fetch,`costs.snapshot`,{});e.ok||(U.value=e.failure.message),H.value=!1}function G(e,t,n){let r=[`days=${t}`];return n===`users`&&r.push(`view=users`),`/costs/${e}?${r.join(`&`)}`}let K=m(()=>S.value?ae(S.value):[]),q=m(()=>S.value?oe(S.value):null),J=m(()=>S.value?de(S.value):[]),Y=m(()=>S.value?se(S.value):null),fe=m(()=>S.value?ce(S.value):``);function X(e){let t=Y.value;if(t){if(/^(Memory|vCPU|Disk)/.test(e))return t.containers;if(e.startsWith(`Durable Object`))return t.durableObjects;if(e.startsWith(`Workers`))return t.workers;if(e.startsWith(`R2`))return t.r2;if(e.startsWith(`Workflow`))return t.workflows}}function pe(e){let t=Y.value;if(t)return e===`LLM (Anthropic)`?t.anthropic:e===`Durable Objects`?t.durableObjects:e===`Workers · storage · R2`?t.workers:t.containers}let me=m(()=>{let e=S.value,t=q.value;if(!e||!t)return``;let n=t.projection,r=`cloud ${j(n.cloudRate)}/day`,i=n.cloudBasis===`today`?`cloud from today so far`:`cloud from the last 7 full days`;if(!e.llmAvailable)return`${r} × 30.4 · ${i} · before plan fees and included allowances`;let a=`LLM ${j(n.llmRate)}/day`,o=n.llmBasis===`closed-days`?`LLM from ${n.llmClosedDays} closed day${n.llmClosedDays===1?``:`s`}`:n.llmBasis===`today`?`LLM from today so far`:`no LLM spend in range`;return`${r} + ${a} · × 30.4 · ${n.cloudBasis===`today`&&n.llmBasis===`today`?`both from today so far`:`${i} · ${o}`}`}),he=m(()=>S.value?[...S.value.days].reverse():[]),ge=[1,7,30,90],Z=e=>e===1?`today`:`${e}d`,_e=m(()=>{let e=S.value,t=q.value;if(!e||!t)return``;if(!e.llmAvailable)return`LLM spend not configured`;let n=[];return t.llm.yesterday!==void 0&&n.push(`yesterday ${j(t.llm.yesterday)}`),t.llm.today&&n.push(`today ${j(t.llm.today.usd)}${t.llm.today.estimated?` (estimate)`:``}`),n.length?n.join(` · `):`in range`});function Q(e){let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.getTime())?e:`${[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][t.getUTCMonth()]} ${t.getUTCDate()}`}return(r,i)=>S.value&&q.value?(d(),l(e,{key:0,title:`${S.value.label} spend`,nav:`costs`},{default:n(()=>[g(`div`,Ge,[g(`nav`,Ke,[(d(),_(o,null,v(ge,e=>(d(),_(o,{key:e},[e===S.value.range.days?(d(),_(`span`,qe,b(Z(e)),1)):(d(),_(`a`,{key:1,class:`rounded-md px-2.5 py-1 font-mono text-xs tabular-nums text-muted no-underline hover:bg-elevated hover:text-highlighted`,href:G(S.value.group,e,O.value)},b(Z(e)),9,Je))],64))),64))]),C.value.length>1?(d(),_(`nav`,Ye,[(d(!0),_(o,null,v(C.value,e=>(d(),_(o,{key:e},[e===S.value.group?(d(),_(`span`,Xe,b(e),1)):(d(),_(`a`,{key:1,class:`rounded-md px-2.5 py-1 text-xs text-muted no-underline hover:bg-elevated hover:text-highlighted`,href:G(e,S.value.range.days,O.value)},b(e),9,Ze))],64))),128))])):f(``,!0),g(`p`,Qe,[u(b(Q(S.value.range.from))+` → `+b(Q(S.value.range.to))+` · `+b(S.value.range.days)+`d`,1),S.value.range.partialLastDay?(d(),_(o,{key:0},[u(` · today partial`)],64)):f(``,!0)]),D.value?(d(),_(`div`,$e,[g(`p`,et,b(D.value),1),A.value?(d(),_(`button`,{key:0,type:`button`,class:`rounded-md border border-default px-2 py-0.5 text-xs text-muted hover:bg-elevated hover:text-highlighted disabled:cursor-not-allowed disabled:opacity-60`,disabled:H.value||T.value?.inFlight!==null,"data-snapshot-now":``,onClick:W},b(T.value?.inFlight?`Taking…`:`Snapshot now`),9,tt)):f(``,!0),U.value?(d(),_(`span`,nt,b(U.value),1)):f(``,!0)])):f(``,!0)]),g(`section`,rt,[q.value.yesterday?(d(),_(`div`,it,[i[0]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Yesterday`,-1),g(`span`,at,b(y(j)(q.value.yesterday.total)),1),g(`span`,ot,b(q.value.yesterday.date)+` · last full day`,1)])):(d(),_(`div`,st,[i[1]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Today so far`,-1),g(`span`,ct,b(q.value.today?y(j)(q.value.today.total):`—`),1),g(`span`,lt,b(q.value.today?`${q.value.today.date} · partial day, UTC`:`no day in range`),1)])),g(`div`,ut,[i[2]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`7-day average`,-1),g(`span`,dt,b(q.value.avg7===void 0?`—`:y(j)(q.value.avg7)),1),g(`span`,ft,b(q.value.avg7===void 0?`no full day yet in this range`:`per day, full days only`),1)]),g(`div`,pt,[i[3]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Projected month`,-1),g(`span`,mt,b(y(j)(q.value.projection.monthUsd,0)),1),g(`span`,ht,b(me.value),1)]),g(`div`,gt,[i[4]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`LLM spend`,-1),g(`span`,_t,b(S.value.llmAvailable?y(j)(q.value.llm.range):`—`),1),g(`span`,vt,b(_e.value),1)]),g(`div`,yt,[i[6]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Share of account`,-1),g(`span`,bt,b(q.value.accountShare)+`%`,1),g(`span`,xt,[u(b(y(j)(S.value.totals.cloudUsd))+` of `+b(y(j)(S.value.account.cloudUsd))+` on `,1),Y.value?(d(),_(`a`,{key:0,class:`text-primary hover:underline`,href:Y.value.account,target:`_blank`,rel:`noopener noreferrer`,title:`Cloudflare account ${S.value.account.id}`},b(fe.value),9,St)):f(``,!0),i[5]||=u(` · Cloudflare spend in range · `,-1),Y.value?(d(),_(`a`,{key:1,class:`text-primary hover:underline`,href:Y.value.billing,target:`_blank`,rel:`noopener noreferrer`},`billing`,8,Ct)):f(``,!0)])])]),g(`section`,wt,[g(`div`,Tt,[i[7]||=g(`div`,null,[g(`h2`,{class:`text-[0.9375rem] font-medium`},`Daily cost`),g(`p`,{class:`text-sm text-muted`},`Stacked by component · USD list price`)],-1),g(`div`,Et,[(d(!0),_(o,null,v(K.value,(e,t)=>(d(),_(`a`,{key:e,class:`inline-flex items-center gap-1.5 no-underline hover:text-highlighted hover:underline`,href:pe(e),target:`_blank`,rel:`noopener noreferrer`,title:`Open where ${e} is billed`},[g(`i`,{class:x([`inline-block size-2.5 rounded-xs`,y(V)[t%y(V).length]])},null,2),u(b(e),1)],8,Dt))),128))])]),s(ve,{report:S.value,series:K.value},null,8,[`report`,`series`]),S.value.llmAvailable?S.value.days.some(e=>e.llmEstimated)?(d(),_(`p`,kt,[i[9]||=u(` A day the Anthropic cost report has not closed yet (today, and yesterday until a few hours after midnight UTC) shows its LLM figure as an estimate: the hourly usage report priced at list. The closed days are the cost report itself. `,-1),S.value.days.some(e=>e.llmUnpricedTokens>0)?(d(),_(o,{key:0},[u(` Some tokens ran under a model this page has no price for and are not in the estimate. `)],64)):f(``,!0)])):f(``,!0):(d(),_(`p`,Ot,[...i[8]||=[u(` LLM spend not configured — set `,-1),g(`code`,null,`ANTHROPIC_ADMIN_KEY`,-1),u(` and the group's `,-1),g(`code`,null,`anthropicWorkspaceId`,-1),u(` to layer it in. `,-1)]]))]),g(`nav`,At,[(d(),_(o,null,v([`daily`,`users`],e=>(d(),_(o,{key:e},[e===O.value?(d(),_(`span`,jt,b(e===`daily`?`Daily`:`By user`),1)):(d(),_(`a`,{key:1,class:`-mb-px border-b-2 border-transparent px-3 py-1.5 text-sm text-muted no-underline hover:border-muted hover:text-highlighted`,href:G(S.value.group,S.value.range.days,e)},b(e===`daily`?`Daily`:`By user`),9,Mt))],64))),64))]),O.value===`users`?(d(),_(`section`,Nt,[i[12]||=g(`div`,null,[g(`h2`,{class:`text-[0.9375rem] font-medium`},`Cost by user`),g(`p`,{class:`text-sm text-muted`},` Who started the runs · LLM at list from their tokens · cloud allocated by wall-clock `)],-1),k.value?(d(),l(We,{key:0,report:k.value},null,8,[`report`])):(d(),_(`p`,Pt,`The by-user report did not load with this page.`)),g(`p`,Ft,[i[10]||=u(` Machine-readable twin: `,-1),g(`code`,It,`GET /costs/`+b(S.value.group)+`/users.json`,1),i[11]||=u(` (same Access gate). `,-1)])])):f(``,!0),O.value===`daily`?(d(),_(`section`,Lt,[i[13]||=g(`div`,null,[g(`h2`,{class:`text-[0.9375rem] font-medium`},`What each cloud dollar buys`)],-1),g(`table`,Rt,[g(`tbody`,null,[(d(!0),_(o,null,v(J.value,e=>(d(),_(`tr`,{key:e.label,class:`border-b border-muted`},[g(`td`,zt,[X(e.label)?(d(),_(`a`,{key:0,class:`no-underline hover:text-highlighted hover:underline`,href:X(e.label),target:`_blank`,rel:`noopener noreferrer`,title:`Open where this is billed on Cloudflare`},b(e.label),9,Bt)):(d(),_(o,{key:1},[u(b(e.label),1)],64))]),g(`td`,Vt,b(y(j)(e.usd)),1),g(`td`,Ht,b(Math.round(e.percent))+`%`,1),g(`td`,Ut,[g(`i`,{class:`block h-2.5 rounded-xs bg-primary opacity-75`,style:t({width:`${e.percent.toFixed(1)}%`})},null,4)])]))),128))])])])):f(``,!0),O.value===`daily`?(d(),_(`section`,Wt,[g(`details`,Gt,[i[16]||=g(`summary`,{class:`cursor-pointer text-sm text-muted`},`Table view — daily cost by component (USD)`,-1),g(`div`,Kt,[g(`table`,qt,[g(`thead`,null,[g(`tr`,null,[i[14]||=g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-left text-xs font-medium text-muted`},` Date `,-1),(d(!0),_(o,null,v(K.value,e=>(d(),_(`th`,{key:e,class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},b(e),1))),128)),i[15]||=g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` Total `,-1)])]),g(`tbody`,null,[(d(!0),_(o,null,v(he.value,e=>(d(),_(`tr`,{key:e.date},[g(`td`,{class:`border-b border-muted px-2.5 py-1.5`,title:e.date},[u(b(Q(e.date))+` `,1),S.value.range.partialLastDay&&e.date===S.value.range.to?(d(),_(`span`,Yt,`(partial day`+b(e.llmEstimated?` · LLM estimated`:``)+`)`,1)):e.llmEstimated?(d(),_(`span`,Xt,`(LLM estimated)`)):f(``,!0)],8,Jt),(d(!0),_(o,null,v(K.value,t=>(d(),_(`td`,{key:t,class:`border-b border-muted px-2.5 py-1.5 text-right`},b(y(j)(y(N)(e,t),3)),1))),128)),g(`td`,Zt,b(y(j)(e.total,3)),1)]))),128))])])])]),g(`p`,Qt,[i[17]||=u(` Machine-readable twin: `,-1),g(`code`,$t,`GET /costs/`+b(S.value.group)+`.json`,1),i[18]||=u(` (same Access gate). `,-1)])])):f(``,!0),g(`footer`,en,[g(`details`,null,[i[26]||=g(`summary`,{class:`cursor-pointer text-muted`},`How these numbers are computed`,-1),g(`div`,tn,[i[24]||=g(`div`,null,[g(`b`,null,`Snapshot.`),u(` Both billing sources and the run history are read once over the widest range this page offers and kept as a snapshot; every figure here, the JSON twins and the By user tab are arithmetic over it, with `),g(`em`,null,`today`),u(` the day it was taken. The line under the range says when that was, how old it is and when the next one is due (`),g(`code`,null,`costs.snapshot.everyHours`),u(`, daily by default); `),g(`code`,null,`costs snapshot`),u(` takes one now. Cloudflare bills vCPU on active use only; memory and disk bill on the provisioned size for every second a container is awake. LLM spend is the Anthropic Admin API cost report for this group's workspace (gross, USD); a day the cost report has not closed is the Admin API usage report, hourly, priced at Anthropic list per model (input, output, cache writes, cache reads) and marked as an estimate. `)],-1),i[25]||=g(`div`,null,[g(`b`,null,`Method.`),u(` Cloudflare GraphQL Analytics, every meter a Workers deployment is billed on: `),g(`code`,null,`containersUsageAdaptiveGroups`),u(` (cpuTimeSec, allocatedMemory, allocatedDisk per app per UTC day), `),g(`code`,null,`durableObjectsPeriodicGroups`),u(` (billable `),g(`code`,null,`duration`),u(` GB-s and SQLite rows read and written per namespace), `),g(`code`,null,`durableObjectsInvocationsAdaptiveGroups`),u(` (requests per namespace), `),g(`code`,null,`durableObjectsSqlStorageGroups`),u(` (bytes stored), `),g(`code`,null,`workersInvocationsAdaptive`),u(` (requests, CPU time), `),g(`code`,null,`r2StorageAdaptiveGroups`),u(` and `),g(`code`,null,`r2OperationsAdaptiveGroups`),u(` (bytes stored, class A/B operations). Prices: vCPU $0.000020/s, memory $0.0000025/GiB-s, disk $0.00000007/GB-s, DO duration $12.50 per million GB-s, DO requests $0.15/M, SQLite rows $0.001/M read and $1.00/M written, DO storage $0.20/GB-month, Workers $0.30/M requests and $0.02/M CPU-ms, R2 $0.015/GB-month, $4.50/M class A and $0.36/M class B (deletes free). Storage is the day's peak, prorated over a 30.44-day month. Gross list price — plan fees and included allowances are not subtracted; Workers Logs volume has no analytics dataset and is not priced. `)],-1),g(`div`,null,[i[19]||=g(`b`,null,`Scope.`,-1),i[20]||=u(` Attributed to this group: the Workers `,-1),(d(!0),_(o,null,v(S.value.attribution.workers,(e,t)=>(d(),_(o,{key:e},[t>0?(d(),_(o,{key:0},[u(`, `)],64)):f(``,!0),Y.value?(d(),_(`a`,{key:1,class:`font-mono hover:underline`,href:Y.value.worker(e),target:`_blank`,rel:`noopener noreferrer`},b(e),9,nn)):(d(),_(`code`,rn,b(e),1))],64))),128)),u(`, every Durable Object namespace they host (`+b(Object.keys(S.value.attribution.durableObjectNamespaces).length)+`), the R2 buckets named after them (`,1),(d(!0),_(o,null,v(Object.keys(S.value.attribution.r2Buckets),(e,t)=>(d(),_(o,{key:e},[t>0?(d(),_(o,{key:0},[u(`, `)],64)):f(``,!0),Y.value?(d(),_(`a`,{key:1,class:`font-mono hover:underline`,href:Y.value.bucket(e),target:`_blank`,rel:`noopener noreferrer`},b(e),9,an)):(d(),_(`code`,on,b(e),1))],64))),128)),Object.keys(S.value.attribution.r2Buckets).length===0?(d(),_(o,{key:0},[u(`none`)],64)):f(``,!0),i[21]||=u(`), and the container apps mapped in `,-1),g(`code`,null,`costs.groups.`+b(S.value.group),1),u(` (`+b(Object.keys(S.value.attribution.containerApps).length)+`). Everything else in the account is priced the same way into the account total, which is what "share of account" divides by. Every figure above links to where it is billed: the `,1),Y.value?(d(),_(`a`,{key:1,class:`hover:underline`,href:Y.value.account,target:`_blank`,rel:`noopener noreferrer`},`Cloudflare dashboard`,8,sn)):f(``,!0),i[22]||=u(` for the account `,-1),g(`code`,null,b(S.value.account.id),1),u(b(S.value.account.name?` (${S.value.account.name})`:``)+`, and `,1),Y.value?(d(),_(`a`,{key:2,class:`hover:underline`,href:Y.value.anthropic,target:`_blank`,rel:`noopener noreferrer`},`Anthropic's cost page`,8,cn)):f(``,!0),i[23]||=u(` for the LLM line. `,-1)])])])])]),_:1},8,[`title`])):(d(),l(e,{key:1,title:`${w.value} spend`,nav:`costs`},{default:n(()=>[g(`div`,ln,[C.value.length>1?(d(),_(`nav`,un,[(d(!0),_(o,null,v(C.value,e=>(d(),_(o,{key:e},[e===w.value?(d(),_(`span`,dn,b(e),1)):(d(),_(`a`,{key:1,class:`rounded-md px-2.5 py-1 text-xs text-muted no-underline hover:bg-elevated hover:text-highlighted`,href:`/costs/${e}`},b(e),9,fn))],64))),128))])):f(``,!0)]),g(`section`,pn,[i[27]||=g(`h2`,{class:`text-sm font-medium text-highlighted`},`Nothing to show yet`,-1),g(`div`,mn,[g(`p`,hn,b(D.value),1),A.value?(d(),_(`button`,{key:0,type:`button`,class:`rounded-md border border-default px-2 py-0.5 text-xs text-muted hover:bg-elevated hover:text-highlighted disabled:cursor-not-allowed disabled:opacity-60`,disabled:H.value||T.value?.inFlight!==null,"data-snapshot-now":``,onClick:W},b(T.value?.inFlight?`Taking…`:`Snapshot now`),9,gn)):f(``,!0),U.value?(d(),_(`span`,_n,b(U.value),1)):f(``,!0)]),i[28]||=g(`p`,{class:`text-xs text-dimmed`},[u(` The page prices a stored snapshot of both billing sources, never a live read; the figures appear here the moment the first one lands (this page listens for it), or take one now with `),g(`code`,null,`costs snapshot`),u(`. `)],-1)])]),_:1},8,[`title`]))}});export{vn as default};
|
|
1
|
+
import{t as e}from"./AppShell-DEy5jRuS.js";import{Ci as t,Lr as n,Lt as r,Qn as i,Vt as a,Xt as o,_n as s,ci as c,cn as l,gn as u,ir as d,ln as f,nr as p,on as m,r as h,sn as g,un as _,ur as v,vi as y,wi as b,xi as x,yn as S,zr as C}from"./seed-DeKSHrt2.js";import{d as w,f as T,l as E}from"./delivery-CTdOqpVK.js";import{t as ee}from"./eventSource-tRprhqm7.js";import{i as te}from"./settingsApi-priOPiwu.js";import{t as ne}from"./wallClock-61NpVkY6.js";var D=`Durable Objects`;function re(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t)return null;let n=t;if(n.type!==`status`||typeof n.everyHours!=`number`)return null;let{type:r,...i}=n;return i}var O=e=>e===`schedule`?`on schedule`:`by ${e}`;function ie(e,t){let n=[];return e.inFlight?(n.push(`Taking a snapshot now — started ${w(e.inFlight.startedAt,t)} ${O(e.inFlight.by)}`),e.snapshot&&n.push(`showing the one from ${E(e.snapshot.takenAt)} meanwhile`)):e.snapshot?(n.push(`Snapshot from ${E(e.snapshot.takenAt)}, ${w(e.snapshot.takenAt,t)} ${O(e.snapshot.takenBy)}`),e.nextAt&&n.push(`next ${T(e.nextAt,t)}`)):n.push(`No snapshot yet — the first one is taken within a minute of startup`),e.lastFailure&&!e.inFlight&&n.push(`last attempt ${w(e.lastFailure.at,t)} failed: ${e.lastFailure.message.slice(0,120)}`),n.join(` · `)}var k=`Workers · storage · R2`,A=`LLM (Anthropic)`,j=(e,t=2)=>`$${e.toFixed(t)}`,M=e=>e.workersUsd+e.doRowsUsd+e.doStorageUsd+e.r2Usd+e.workflowsUsd;function ae(e){let t=[];for(let n of e.days)for(let e of Object.keys(n.containers))t.includes(e)||t.push(e);return e.days.some(e=>Object.keys(e.durableObjects).length>0)&&t.push(D),e.days.some(e=>M(e)>0)&&t.push(k),e.llmAvailable&&t.push(A),t}function N(e,t){return t===`Durable Objects`?Object.values(e.durableObjects).reduce((e,t)=>e+t,0)+e.doRequestsUsd:t===`Workers · storage · R2`?M(e):t===`LLM (Anthropic)`?e.llmUsd:e.containers[t]?.total??0}var P=30.4;function oe(e){let t=e.range.partialLastDay?e.days.slice(0,-1):e.days,n=e.range.partialLastDay?e.days[e.days.length-1]:void 0,r=t[t.length-1],i=t.slice(-7),a=i.length?i.reduce((e,t)=>e+t.total,0)/i.length:void 0,o=e.account.cloudUsd>0?Math.round(e.totals.cloudUsd/e.account.cloudUsd*100):0;return{...r?{yesterday:{date:r.date,total:r.total}}:{},...n?{today:{date:n.date,total:n.total}}:{},...a===void 0?{}:{avg7:a},projection:L(e,t,n),llm:{range:e.totals.llmUsd,...r?{yesterday:r.llmUsd}:{},...n?{today:{usd:n.llmUsd,estimated:n.llmEstimated}}:{}},accountShare:o}}var F=e=>e.reduce((e,t)=>e+t,0)/e.length;function I(e,t){let n=Date.parse(`${t.date}T00:00:00Z`),r=(e.generatedAt-n)/864e5;return Math.min(1,Math.max(1/24,Number.isFinite(r)?r:1))}function L(e,t,n){let r=n?I(e,n):1,i=t.slice(-7),a=0,o=`full-days`;i.length?a=F(i.map(e=>e.cloudUsd)):n&&(a=n.cloudUsd/r,o=`today`);let s=0,c=`none`,l=0;if(e.llmAvailable){let e=t.findIndex(e=>e.llmUsd>0),i=e===-1?[]:t.slice(e).slice(-7);i.length?(s=F(i.map(e=>e.llmUsd)),c=`closed-days`,l=i.length):n&&n.llmUsd>0&&(s=n.llmUsd/r,c=`today`)}return{monthUsd:(a+s)*P,cloudRate:a,llmRate:s,cloudBasis:o,llmBasis:c,llmClosedDays:l}}function se(e){let t=`https://dash.cloudflare.com/${e.account.id}`;return{account:t,billing:`${t}/billing`,containers:`${t}/workers/containers`,durableObjects:`${t}/workers/durable-objects`,workers:`${t}/workers-and-pages`,r2:`${t}/r2/overview`,workflows:`${t}/workers/workflows`,worker:e=>`${t}/workers/services/view/${encodeURIComponent(e)}/production/metrics`,bucket:e=>`${t}/r2/default/buckets/${encodeURIComponent(e)}`,anthropic:`https://platform.claude.com/cost`}}var ce=e=>e.account.name??`${e.account.id.slice(0,8)}…`;function le(e,t,n){let r=[`${e.date} · total ${j(e.total)}${n?` (partial day)`:``}`];for(let n of t){let t=N(e,n);t<=0||r.push(`${n} ${j(t)}${n===`LLM (Anthropic)`&&e.llmEstimated?` (estimate)`:``}`)}return r.join(`
|
|
2
|
+
`)}function R(e){let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.getTime())?e:`${[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][t.getUTCMonth()]} ${t.getUTCDate()}`}function ue(e,t,n){let r=t.map(t=>({series:t,usd:N(e,t),estimated:t===`LLM (Anthropic)`&&e.llmEstimated})).filter(e=>e.usd>0).sort((e,t)=>t.usd-e.usd);return{date:e.date,label:R(e.date),partial:n,total:e.total,rows:r}}function z(e,t){let n={t:12,r:12,b:30,l:48},r=960-n.l-n.r,i=260-n.t-n.b,a=e.days,o=Math.max(1e-9,...a.map(e=>e.total))*1.08,s=r/Math.max(1,a.length),c=Math.min(10,s*.28),l=e=>n.t+i-e/o*i,u=Array.from({length:5},(e,t)=>{let n=o/4*t;return{y:Number(l(n).toFixed(1)),label:j(n)}}),d=[],f=[],p=[];return a.forEach((r,o)=>{let u=0,m=n.l+o*s+c/2,h=s-c;f.push({x:Number((n.l+o*s).toFixed(1)),y:n.t,width:Number(s.toFixed(1)),height:i,title:le(r,t,e.range.partialLastDay&&o===a.length-1),tip:ue(r,t,e.range.partialLastDay&&o===a.length-1)}),t.forEach((e,t)=>{let n=N(r,e);if(n<=0)return;let i=l(u+n),a=l(u),o=Math.max(0,a-i-2);d.push({seriesIndex:t,x:Number(m.toFixed(1)),y:Number(i.toFixed(1)),width:Number(h.toFixed(1)),height:Number(o.toFixed(1))}),u+=n}),(a.length<=16||o%Math.ceil(a.length/16)===0)&&p.push({x:Number((m+h/2).toFixed(1)),label:r.date.slice(5)})}),{width:960,height:260,gridLines:u,segments:d,dayHovers:f,dayLabels:p,axisY:Number(l(0).toFixed(1)),marginLeft:n.l,marginRight:n.r}}function de(e){let t=e.totals.byResource,n=[[`Memory (provisioned while awake)`,t.memory],[`vCPU (active use only)`,t.cpu],[`Durable Object duration + requests`,t.durableObjects],[`Disk (provisioned while awake)`,t.disk],[`Workers requests + CPU`,t.workers],[`Durable Object SQLite rows`,t.doRows],[`Durable Object SQLite storage`,t.doStorage],[`R2 storage + operations`,t.r2],[`Workflow steps + state`,t.workflows]],r=n.reduce((e,t)=>e+t[1],0)||1;return n.map(([e,t])=>({label:e,usd:t,percent:t/r*100}))}var B=[`fill-[#4478b8] dark:fill-[#7aa7e0]`,`fill-[#c8823b] dark:fill-[#e0a95a]`,`fill-[#4c8c57] dark:fill-[#6fae7a]`,`fill-[#b8963e] dark:fill-[#d4b45a]`,`fill-[#b0568c] dark:fill-[#d489b8]`,`fill-[#6b7bcc] dark:fill-[#98a5e6]`,`fill-[#d05252] dark:fill-[#e07a74]`,`fill-[#3e8e96] dark:fill-[#6fb9c0]`],V=[`bg-[#4478b8] dark:bg-[#7aa7e0]`,`bg-[#c8823b] dark:bg-[#e0a95a]`,`bg-[#4c8c57] dark:bg-[#6fae7a]`,`bg-[#b8963e] dark:bg-[#d4b45a]`,`bg-[#b0568c] dark:bg-[#d489b8]`,`bg-[#6b7bcc] dark:bg-[#98a5e6]`,`bg-[#d05252] dark:bg-[#e07a74]`,`bg-[#3e8e96] dark:bg-[#6fb9c0]`],H={class:`overflow-x-auto`},U=[`viewBox`],W=[`x1`,`x2`,`y1`,`y2`],G=[`x`,`y`],K=[`x`,`y`,`width`,`height`],q=[`aria-label`,`x`,`y`,`width`,`height`,`onPointerenter`,`onPointermove`],J=[`x`,`y`],Y=[`x1`,`x2`,`y1`,`y2`],fe={class:`tip-head mb-1.5 flex items-baseline justify-between gap-3 border-b border-muted pb-1.5`},X={class:`font-medium text-highlighted`},pe={key:0,class:`ml-1.5 font-normal text-dimmed`},me={class:`font-medium text-highlighted`},he={class:`tip-name truncate text-muted`},ge={class:`text-highlighted`},Z={class:`tip-usd`},_e={key:0,class:`ml-1 text-dimmed`},Q=256,$=12,ve=S({__name:`CostChart`,props:{report:{},series:{}},setup(e){let n=e,r=m(()=>z(n.report,n.series)),i=e=>44+e*20,a=c(null),s=c(null);function l(e,t){let n=s.value,r=n?.getBoundingClientRect(),o=t.clientX-(r?.left??0),c=t.clientY-(r?.top??0),l=n?.clientWidth??0,u=n?.clientHeight??0,d=i(e.tip.rows.length),f=l>0&&o+$+Q>l,p=u>0&&c+$+d>u;a.value={x:Math.max(0,f?o-$-Q:o+$),y:Math.max(0,p?c-$-d:c+$),data:e.tip}}return(e,n)=>(d(),_(`div`,{ref_key:`host`,ref:s,class:`chart-host relative`},[g(`div`,H,[(d(),_(`svg`,{class:`block h-auto w-full font-mono`,viewBox:`0 0 ${r.value.width} ${r.value.height}`,role:`img`,"aria-label":`Daily cost, stacked by component`},[(d(!0),_(o,null,v(r.value.gridLines,(e,t)=>(d(),_(o,{key:`g${t}`},[g(`line`,{class:`stroke-(--ui-border-muted)`,x1:r.value.marginLeft,x2:r.value.width-r.value.marginRight,y1:e.y,y2:e.y},null,8,W),g(`text`,{class:`fill-(--ui-text-dimmed) text-[11px] tabular-nums`,x:r.value.marginLeft-8,y:e.y+4,"text-anchor":`end`},b(e.label),9,G)],64))),128)),(d(!0),_(o,null,v(r.value.segments,(e,t)=>(d(),_(`rect`,{key:`s${t}`,class:x([`seg hover:opacity-85`,y(B)[e.seriesIndex%y(B).length]]),x:e.x,y:e.y,width:e.width,height:e.height},null,10,K))),128)),(d(!0),_(o,null,v(r.value.dayHovers,(e,t)=>(d(),_(`rect`,{key:`h${t}`,class:`day fill-transparent`,role:`img`,"aria-label":e.title,x:e.x,y:e.y,width:e.width,height:e.height,onPointerenter:t=>l(e,t),onPointermove:t=>l(e,t),onPointerleave:n[0]||=e=>a.value=null},null,40,q))),128)),(d(!0),_(o,null,v(r.value.dayLabels,(e,t)=>(d(),_(`text`,{key:`d${t}`,class:`fill-(--ui-text-dimmed) text-[11px]`,x:e.x,y:r.value.height-10,"text-anchor":`middle`},b(e.label),9,J))),128)),g(`line`,{class:`stroke-(--ui-border)`,x1:r.value.marginLeft,x2:r.value.width-r.value.marginRight,y1:r.value.axisY,y2:r.value.axisY},null,8,Y)],8,U))]),a.value?(d(),_(`div`,{key:0,class:`chart-tip pointer-events-none absolute z-10 w-64 rounded-md border border-default bg-elevated px-3 py-2 font-mono text-xs tabular-nums whitespace-nowrap shadow-lg`,role:`tooltip`,style:t({left:`${a.value.x}px`,top:`${a.value.y}px`})},[g(`div`,fe,[g(`span`,X,[u(b(a.value.data.label),1),a.value.data.partial?(d(),_(`span`,pe,`partial day`)):f(``,!0)]),g(`span`,me,b(y(j)(a.value.data.total)),1)]),(d(!0),_(o,null,v(a.value.data.rows,e=>(d(),_(`div`,{key:e.series,class:`tip-row flex items-baseline justify-between gap-3 leading-5`},[g(`span`,he,b(e.series),1),g(`span`,ge,[g(`span`,Z,b(y(j)(e.usd)),1),e.estimated?(d(),_(`span`,_e,`est.`)):f(``,!0)])]))),128))],4)):f(``,!0)],512))}}),ye={class:`by-user grid gap-3`},be={class:`flex flex-wrap items-center gap-x-4 gap-y-2`},xe={class:`flex items-center gap-2 text-sm text-muted`},Se=[`title`],Ce=[`disabled`,`aria-describedby`],we={key:0,id:`me-hint`,class:`me-hint text-xs text-dimmed`},Te={class:`coverage font-mono text-xs tabular-nums text-muted`},Ee={class:`overflow-x-auto`},De={class:`users w-full min-w-[40rem] border-collapse whitespace-nowrap font-mono text-[0.8125rem] tabular-nums`},Oe=[`title`],ke={class:`text-highlighted`},Ae={class:`ml-1.5 text-xs text-dimmed`},je={key:0,class:`ml-1.5 rounded-xs bg-accented px-1 text-xs text-highlighted`},Me=[`title`],Ne={class:`border-b border-muted px-2.5 py-1.5 text-right`},Pe={class:`border-b border-muted px-2.5 py-1.5 text-right`},Fe={class:`border-b border-muted px-2.5 py-1.5 text-right`},Ie={class:`border-b border-muted px-2.5 py-1.5 text-right font-medium text-highlighted`},Le={class:`border-b border-muted px-2.5 py-1.5 text-right`},Re={key:0},ze={class:`empty px-2.5 py-3 text-sm text-muted`,colspan:`6`},Be={key:0},Ve={class:`px-2.5 py-1.5 text-right text-xs text-muted`},He={class:`px-2.5 py-1.5 text-right text-xs text-muted`},Ue={class:`reconciliation font-mono text-xs tabular-nums text-muted`},We=S({__name:`CostsByUser`,props:{report:{}},setup(e){let t=e,n=c(``),i=c(!1),s=m(()=>t.report.viewer.userIds.length>0),l=m(()=>{let e=n.value.trim().toLowerCase(),r=new Set(t.report.viewer.userIds);return t.report.users.filter(t=>i.value&&!r.has(t.userId)?!1:!e||t.userId.toLowerCase().includes(e)||(t.userName??``).toLowerCase().includes(e))}),p=m(()=>t.report.users.reduce((e,t)=>e+t.totalUsd,0)),h=m(()=>l.value.reduce((e,t)=>e+t.totalUsd,0)),S=e=>t.report.viewer.userIds.includes(e.userId),w=e=>e.userName??e.userId.replace(/^[a-z]+:/,``),T=e=>e.userId.split(`:`)[0]??``,E=e=>`${e} day${e===1?``:`s`}`;return(t,c)=>(d(),_(`section`,ye,[g(`div`,be,[g(`label`,xe,[c[2]||=g(`span`,null,`Filter`,-1),C(g(`input`,{"onUpdate:modelValue":c[0]||=e=>n.value=e,class:`user-filter rounded-md border border-default bg-elevated px-2.5 py-1 font-mono text-xs text-highlighted`,type:`search`,placeholder:`name or id`,"aria-label":`Filter users`},null,512),[[a,n.value]])]),g(`label`,{class:x([`me-toggle flex items-center gap-2 text-sm`,s.value?`text-muted`:`text-dimmed`]),title:s.value?`Only your own runs`:void 0},[C(g(`input`,{"onUpdate:modelValue":c[1]||=e=>i.value=e,type:`checkbox`,disabled:!s.value,"aria-label":`Only me`,"aria-describedby":s.value?void 0:`me-hint`},null,8,Ce),[[r,i.value]]),c[3]||=g(`span`,null,`me`,-1),s.value?f(``,!0):(d(),_(`span`,we,`— your sign-in email matched no Slack user in this range`))],10,Se),g(`p`,Te,[e.report.coverage.historyOn?(d(),_(o,{key:1},[u(` runs from `+b(y(R)(e.report.coverage.from))+` to `+b(y(R)(e.report.range.to)),1),e.report.coverage.clamped?(d(),_(o,{key:0},[u(` · earlier days are past the history's `+b(e.report.coverage.retentionDays)+`-day window`,1)],64)):f(``,!0),e.report.pending>0?(d(),_(o,{key:1},[u(` · `+b(e.report.pending)+` run`+b(e.report.pending===1?``:`s`)+` still being priced`,1)],64)):f(``,!0)],64)):(d(),_(o,{key:0},[u(`run history is off — no runs to attribute`)],64))])]),g(`div`,Ee,[g(`table`,De,[c[5]||=g(`thead`,null,[g(`tr`,null,[g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-left text-xs font-medium text-muted`},` User `),g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` Runs `),g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` LLM `),g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},[u(` Cloud `),g(`span`,{class:`font-normal text-dimmed`},`allocated`)]),g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` Total `),g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` Share `)])],-1),g(`tbody`,null,[(d(!0),_(o,null,v(l.value,e=>(d(),_(`tr`,{key:e.userId,class:x([`user-row`,S(e)?`is-me`:``])},[g(`td`,{class:`border-b border-muted px-2.5 py-1.5`,title:e.userId},[g(`span`,ke,b(w(e)),1),g(`span`,Ae,b(T(e)),1),S(e)?(d(),_(`span`,je,`me`)):f(``,!0),e.unpricedTokens>0?(d(),_(`span`,{key:1,class:`ml-1.5 text-xs text-warn`,title:`${e.unpricedTokens} tokens ran under a model with no list price`},`unpriced tokens`,8,Me)):f(``,!0)],8,Oe),g(`td`,Ne,b(e.runs),1),g(`td`,Pe,b(y(j)(e.llmUsd)),1),g(`td`,Fe,b(y(j)(e.cloudUsd)),1),g(`td`,Ie,b(y(j)(e.totalUsd)),1),g(`td`,Le,b(p.value>0?Math.round(e.totalUsd/p.value*100):0)+`% `,1)],2))),128)),l.value.length===0?(d(),_(`tr`,Re,[g(`td`,ze,b(e.report.users.length===0?`no runs in this range`:`no user matches`),1)])):f(``,!0)]),l.value.length>0&&l.value.length<e.report.users.length?(d(),_(`tfoot`,Be,[g(`tr`,null,[c[4]||=g(`td`,{class:`px-2.5 py-1.5 text-xs text-muted`,colspan:`4`},`shown`,-1),g(`td`,Ve,b(y(j)(h.value)),1),g(`td`,He,b(p.value>0?Math.round(h.value/p.value*100):0)+`% `,1)])])):f(``,!0)])]),g(`p`,Ue,[e.report.reconciliation.comparedDays>0?(d(),_(o,{key:0},[u(` LLM attributed `+b(y(j)(e.report.reconciliation.attributedLlmUsd))+` of `+b(y(j)(e.report.reconciliation.workspaceLlmUsd))+` on the workspace over `+b(E(e.report.reconciliation.comparedDays))+` · `,1),e.report.reconciliation.unattributedLlmUsd>=0?(d(),_(o,{key:0},[u(b(y(j)(e.report.reconciliation.unattributedLlmUsd))+` unattributed (router, review abridges, runs without a record, list vs invoice) `,1)],64)):(d(),_(o,{key:1},[u(b(y(j)(-e.report.reconciliation.unattributedLlmUsd))+` more attributed than the workspace figure (list vs invoice, or spend billed outside this workspace on a compared day) `,1)],64))],64)):(d(),_(o,{key:1},[u(`no day in range has a workspace LLM figure to compare against`)],64)),e.report.reconciliation.uncomparedDays>0?(d(),_(o,{key:2},[u(` · `+b(E(e.report.reconciliation.uncomparedDays))+` with `+b(y(j)(e.report.reconciliation.uncomparedLlmUsd))+` of run tokens but no workspace figure (billed outside this workspace) not compared`,1)],64)):f(``,!0),u(` · cloud allocated `+b(y(j)(e.report.reconciliation.cloudAllocatedUsd)),1),e.report.reconciliation.cloudUnallocatedUsd>0?(d(),_(o,{key:3},[u(` · `+b(y(j)(e.report.reconciliation.cloudUnallocatedUsd))+` on days with no runs`,1)],64)):f(``,!0)]),c[6]||=g(`p`,{class:`text-xs text-dimmed`},` A user's LLM is their runs' tokens at Anthropic list (cache writes at the 5-minute rate); a child run bills to whoever started its parent. Cloud is each day's Cloudflare spend split by share of run wall-clock — an allocation, not a meter. `,-1)]))}}),Ge={class:`mb-4 flex flex-wrap items-center gap-x-4 gap-y-2`},Ke={class:`flex items-center gap-1`,"aria-label":`Range`},qe={key:0,class:`rounded-md bg-accented px-2.5 py-1 font-mono text-xs font-medium tabular-nums text-highlighted`,"aria-current":`page`},Je=[`href`],Ye={key:0,class:`flex items-center gap-1`,"aria-label":`Cost groups`},Xe={key:0,class:`rounded-md bg-accented px-2.5 py-1 text-xs font-medium text-highlighted`,"aria-current":`page`},Ze=[`href`],Qe={class:`font-mono text-sm tabular-nums text-muted`},$e={key:1,class:`flex basis-full flex-wrap items-center gap-x-3 gap-y-1`},et={class:`font-mono text-xs tabular-nums text-dimmed`,"data-snapshot-status":``},tt=[`disabled`],nt={key:1,class:`text-xs text-error`,role:`status`,"data-snapshot-error":``},rt={class:`mb-5 grid grid-cols-[repeat(auto-fit,minmax(190px,1fr))] gap-3`},it={key:0,class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},at={class:`font-mono text-2xl font-medium tabular-nums`},ot={class:`text-xs text-muted`},st={key:1,class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},ct={class:`font-mono text-2xl font-medium tabular-nums`},lt={class:`text-xs text-muted`},ut={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},dt={class:`font-mono text-2xl font-medium tabular-nums`},ft={class:`text-xs text-muted`},pt={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},mt={class:`font-mono text-2xl font-medium tabular-nums`},ht={class:`text-xs text-muted`},gt={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},_t={class:`font-mono text-2xl font-medium tabular-nums`},vt={class:`text-xs text-muted`},yt={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},bt={class:`font-mono text-2xl font-medium tabular-nums`},xt={class:`text-xs text-muted`},St=[`href`,`title`],Ct=[`href`],wt={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},Tt={class:`flex flex-wrap items-baseline justify-between gap-x-4 gap-y-2`},Et={class:`legend flex flex-wrap gap-x-4 gap-y-1.5 text-xs text-muted`},Dt=[`href`,`title`],Ot={key:0,class:`text-xs text-warn`},kt={key:1,class:`text-xs text-muted`},At={class:`mb-3 flex items-center gap-1 border-b border-default`,"aria-label":`View`},jt={key:0,class:`-mb-px border-b-2 border-primary px-3 py-1.5 text-sm font-medium text-highlighted`,"aria-current":`page`},Mt=[`href`],Nt={key:0,class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},Pt={key:1,class:`text-sm text-warn`},Ft={class:`text-xs text-muted`},It={class:`rounded bg-accented px-1 py-0.5`},Lt={key:1,class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},Rt={class:`w-full border-collapse font-mono text-[0.8125rem] tabular-nums`},zt={class:`px-2.5 py-1.5`},Bt=[`href`],Vt={class:`px-2.5 py-1.5 text-right`},Ht={class:`px-2.5 py-1.5 text-right`},Ut={class:`w-2/5 px-2.5 py-1.5`},Wt={key:2,class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},Gt={open:``},Kt={class:`mt-2.5 overflow-x-auto`},qt={class:`data w-full min-w-[38rem] border-collapse whitespace-nowrap font-mono text-[0.8125rem] tabular-nums`},Jt=[`title`],Yt={key:0,class:`text-xs text-dimmed`},Xt={key:1,class:`text-xs text-dimmed`},Zt={class:`border-b border-muted px-2.5 py-1.5 text-right font-medium`},Qt={class:`text-xs text-muted`},$t={class:`rounded bg-accented px-1 py-0.5`},en={class:`border-t border-default pt-3.5 text-xs text-dimmed`},tn={class:`mt-2 grid gap-1.5`},nn=[`href`],rn={key:2},an=[`href`],on={key:2},sn=[`href`],cn=[`href`],ln={class:`mb-4 flex flex-wrap items-center gap-x-4 gap-y-2`},un={key:0,class:`flex items-center gap-1`,"aria-label":`Cost groups`},dn={key:0,class:`rounded-md bg-accented px-2.5 py-1 text-xs font-medium text-highlighted`,"aria-current":`page`},fn=[`href`],pn={class:`mb-5 grid gap-2 rounded-lg border border-default bg-elevated px-5 py-4`},mn={class:`flex flex-wrap items-center gap-x-3 gap-y-1`},hn={class:`font-mono text-xs tabular-nums text-muted`,"data-snapshot-status":``},gn=[`disabled`],_n={key:1,class:`text-xs text-error`,role:`status`,"data-snapshot-error":``},vn=S({__name:`CostsPage`,setup(r){let a=h(`costs`),S=c(a?.report??null),C=m(()=>a?.groups??[]),w=m(()=>a?.group??S.value?.group??``),T=c(a?.snapshot??null),E=ne(void 0,6e4),D=m(()=>T.value?ie(T.value,E.value):``),O=m(()=>a?.view??`daily`),k=c(a?.view===`users`?a?.users??null:null),A=m(()=>a?.canSnapshot===!0),M=m(()=>typeof window>`u`?null:new URLSearchParams(window.location.search).get(`days`)),P=e=>`/costs/${w.value}${e}${M.value?`?days=${M.value}`:``}`,F=a?.snapshot?.snapshot?.takenAt??null,I=F,L=null;async function le(){try{let[e,t]=await Promise.all([fetch(P(`.json`),{credentials:`same-origin`}),O.value===`users`?fetch(P(`/users.json`),{credentials:`same-origin`}):Promise.resolve(null)]);return e.ok?(S.value=await e.json(),t?.ok&&(k.value=await t.json()),!0):!1}catch{return!1}}function R(){if(L||I===null||I===F)return;let e=I;L=le().then(t=>{t&&(F=e)}).finally(()=>{L=null,I!==e&&R()})}function ue(e){T.value=e;let t=e.snapshot?.takenAt??null;t&&(I=t,R())}let z=ee(),B=null;i(()=>{w.value&&(B=z(`/costs/${w.value}?stream=1`),B.onmessage=e=>{let t=re(e.data);t&&ue(t)})}),p(()=>B?.close());let H=c(!1),U=c(``);async function W(){H.value=!0,U.value=``;let e=await te(fetch,`costs.snapshot`,{});e.ok||(U.value=e.failure.message),H.value=!1}function G(e,t,n){let r=[`days=${t}`];return n===`users`&&r.push(`view=users`),`/costs/${e}?${r.join(`&`)}`}let K=m(()=>S.value?ae(S.value):[]),q=m(()=>S.value?oe(S.value):null),J=m(()=>S.value?de(S.value):[]),Y=m(()=>S.value?se(S.value):null),fe=m(()=>S.value?ce(S.value):``);function X(e){let t=Y.value;if(t){if(/^(Memory|vCPU|Disk)/.test(e))return t.containers;if(e.startsWith(`Durable Object`))return t.durableObjects;if(e.startsWith(`Workers`))return t.workers;if(e.startsWith(`R2`))return t.r2;if(e.startsWith(`Workflow`))return t.workflows}}function pe(e){let t=Y.value;if(t)return e===`LLM (Anthropic)`?t.anthropic:e===`Durable Objects`?t.durableObjects:e===`Workers · storage · R2`?t.workers:t.containers}let me=m(()=>{let e=S.value,t=q.value;if(!e||!t)return``;let n=t.projection,r=`cloud ${j(n.cloudRate)}/day`,i=n.cloudBasis===`today`?`cloud from today so far`:`cloud from the last 7 full days`;if(!e.llmAvailable)return`${r} × 30.4 · ${i} · before plan fees and included allowances`;let a=`LLM ${j(n.llmRate)}/day`,o=n.llmBasis===`closed-days`?`LLM from ${n.llmClosedDays} closed day${n.llmClosedDays===1?``:`s`}`:n.llmBasis===`today`?`LLM from today so far`:`no LLM spend in range`;return`${r} + ${a} · × 30.4 · ${n.cloudBasis===`today`&&n.llmBasis===`today`?`both from today so far`:`${i} · ${o}`}`}),he=m(()=>S.value?[...S.value.days].reverse():[]),ge=[1,7,30],Z=e=>e===1?`today`:`${e}d`,_e=m(()=>{let e=S.value,t=q.value;if(!e||!t)return``;if(!e.llmAvailable)return`LLM spend not configured`;let n=[];return t.llm.yesterday!==void 0&&n.push(`yesterday ${j(t.llm.yesterday)}`),t.llm.today&&n.push(`today ${j(t.llm.today.usd)}${t.llm.today.estimated?` (estimate)`:``}`),n.length?n.join(` · `):`in range`});function Q(e){let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.getTime())?e:`${[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][t.getUTCMonth()]} ${t.getUTCDate()}`}return(r,i)=>S.value&&q.value?(d(),l(e,{key:0,title:`${S.value.label} spend`,nav:`costs`},{default:n(()=>[g(`div`,Ge,[g(`nav`,Ke,[(d(),_(o,null,v(ge,e=>(d(),_(o,{key:e},[e===S.value.range.days?(d(),_(`span`,qe,b(Z(e)),1)):(d(),_(`a`,{key:1,class:`rounded-md px-2.5 py-1 font-mono text-xs tabular-nums text-muted no-underline hover:bg-elevated hover:text-highlighted`,href:G(S.value.group,e,O.value)},b(Z(e)),9,Je))],64))),64))]),C.value.length>1?(d(),_(`nav`,Ye,[(d(!0),_(o,null,v(C.value,e=>(d(),_(o,{key:e},[e===S.value.group?(d(),_(`span`,Xe,b(e),1)):(d(),_(`a`,{key:1,class:`rounded-md px-2.5 py-1 text-xs text-muted no-underline hover:bg-elevated hover:text-highlighted`,href:G(e,S.value.range.days,O.value)},b(e),9,Ze))],64))),128))])):f(``,!0),g(`p`,Qe,[u(b(Q(S.value.range.from))+` → `+b(Q(S.value.range.to))+` · `+b(S.value.range.days)+`d`,1),S.value.range.partialLastDay?(d(),_(o,{key:0},[u(` · today partial`)],64)):f(``,!0)]),D.value?(d(),_(`div`,$e,[g(`p`,et,b(D.value),1),A.value?(d(),_(`button`,{key:0,type:`button`,class:`rounded-md border border-default px-2 py-0.5 text-xs text-muted hover:bg-elevated hover:text-highlighted disabled:cursor-not-allowed disabled:opacity-60`,disabled:H.value||T.value?.inFlight!==null,"data-snapshot-now":``,onClick:W},b(T.value?.inFlight?`Taking…`:`Snapshot now`),9,tt)):f(``,!0),U.value?(d(),_(`span`,nt,b(U.value),1)):f(``,!0)])):f(``,!0)]),g(`section`,rt,[q.value.yesterday?(d(),_(`div`,it,[i[0]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Yesterday`,-1),g(`span`,at,b(y(j)(q.value.yesterday.total)),1),g(`span`,ot,b(q.value.yesterday.date)+` · last full day`,1)])):(d(),_(`div`,st,[i[1]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Today so far`,-1),g(`span`,ct,b(q.value.today?y(j)(q.value.today.total):`—`),1),g(`span`,lt,b(q.value.today?`${q.value.today.date} · partial day, UTC`:`no day in range`),1)])),g(`div`,ut,[i[2]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`7-day average`,-1),g(`span`,dt,b(q.value.avg7===void 0?`—`:y(j)(q.value.avg7)),1),g(`span`,ft,b(q.value.avg7===void 0?`no full day yet in this range`:`per day, full days only`),1)]),g(`div`,pt,[i[3]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Projected month`,-1),g(`span`,mt,b(y(j)(q.value.projection.monthUsd,0)),1),g(`span`,ht,b(me.value),1)]),g(`div`,gt,[i[4]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`LLM spend`,-1),g(`span`,_t,b(S.value.llmAvailable?y(j)(q.value.llm.range):`—`),1),g(`span`,vt,b(_e.value),1)]),g(`div`,yt,[i[6]||=g(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Share of account`,-1),g(`span`,bt,b(q.value.accountShare)+`%`,1),g(`span`,xt,[u(b(y(j)(S.value.totals.cloudUsd))+` of `+b(y(j)(S.value.account.cloudUsd))+` on `,1),Y.value?(d(),_(`a`,{key:0,class:`text-primary hover:underline`,href:Y.value.account,target:`_blank`,rel:`noopener noreferrer`,title:`Cloudflare account ${S.value.account.id}`},b(fe.value),9,St)):f(``,!0),i[5]||=u(` · Cloudflare spend in range · `,-1),Y.value?(d(),_(`a`,{key:1,class:`text-primary hover:underline`,href:Y.value.billing,target:`_blank`,rel:`noopener noreferrer`},`billing`,8,Ct)):f(``,!0)])])]),g(`section`,wt,[g(`div`,Tt,[i[7]||=g(`div`,null,[g(`h2`,{class:`text-[0.9375rem] font-medium`},`Daily cost`),g(`p`,{class:`text-sm text-muted`},`Stacked by component · USD list price`)],-1),g(`div`,Et,[(d(!0),_(o,null,v(K.value,(e,t)=>(d(),_(`a`,{key:e,class:`inline-flex items-center gap-1.5 no-underline hover:text-highlighted hover:underline`,href:pe(e),target:`_blank`,rel:`noopener noreferrer`,title:`Open where ${e} is billed`},[g(`i`,{class:x([`inline-block size-2.5 rounded-xs`,y(V)[t%y(V).length]])},null,2),u(b(e),1)],8,Dt))),128))])]),s(ve,{report:S.value,series:K.value},null,8,[`report`,`series`]),S.value.llmAvailable?S.value.days.some(e=>e.llmEstimated)?(d(),_(`p`,kt,[i[9]||=u(` A day the Anthropic cost report has not closed yet (today, and yesterday until a few hours after midnight UTC) shows its LLM figure as an estimate: the hourly usage report priced at list. The closed days are the cost report itself. `,-1),S.value.days.some(e=>e.llmUnpricedTokens>0)?(d(),_(o,{key:0},[u(` Some tokens ran under a model this page has no price for and are not in the estimate. `)],64)):f(``,!0)])):f(``,!0):(d(),_(`p`,Ot,[...i[8]||=[u(` LLM spend not configured — set `,-1),g(`code`,null,`ANTHROPIC_ADMIN_KEY`,-1),u(` and the group's `,-1),g(`code`,null,`anthropicWorkspaceId`,-1),u(` to layer it in. `,-1)]]))]),g(`nav`,At,[(d(),_(o,null,v([`daily`,`users`],e=>(d(),_(o,{key:e},[e===O.value?(d(),_(`span`,jt,b(e===`daily`?`Daily`:`By user`),1)):(d(),_(`a`,{key:1,class:`-mb-px border-b-2 border-transparent px-3 py-1.5 text-sm text-muted no-underline hover:border-muted hover:text-highlighted`,href:G(S.value.group,S.value.range.days,e)},b(e===`daily`?`Daily`:`By user`),9,Mt))],64))),64))]),O.value===`users`?(d(),_(`section`,Nt,[i[12]||=g(`div`,null,[g(`h2`,{class:`text-[0.9375rem] font-medium`},`Cost by user`),g(`p`,{class:`text-sm text-muted`},` Who started the runs · LLM at list from their tokens · cloud allocated by wall-clock `)],-1),k.value?(d(),l(We,{key:0,report:k.value},null,8,[`report`])):(d(),_(`p`,Pt,`The by-user report did not load with this page.`)),g(`p`,Ft,[i[10]||=u(` Machine-readable twin: `,-1),g(`code`,It,`GET /costs/`+b(S.value.group)+`/users.json`,1),i[11]||=u(` (same Access gate). `,-1)])])):f(``,!0),O.value===`daily`?(d(),_(`section`,Lt,[i[13]||=g(`div`,null,[g(`h2`,{class:`text-[0.9375rem] font-medium`},`What each cloud dollar buys`)],-1),g(`table`,Rt,[g(`tbody`,null,[(d(!0),_(o,null,v(J.value,e=>(d(),_(`tr`,{key:e.label,class:`border-b border-muted`},[g(`td`,zt,[X(e.label)?(d(),_(`a`,{key:0,class:`no-underline hover:text-highlighted hover:underline`,href:X(e.label),target:`_blank`,rel:`noopener noreferrer`,title:`Open where this is billed on Cloudflare`},b(e.label),9,Bt)):(d(),_(o,{key:1},[u(b(e.label),1)],64))]),g(`td`,Vt,b(y(j)(e.usd)),1),g(`td`,Ht,b(Math.round(e.percent))+`%`,1),g(`td`,Ut,[g(`i`,{class:`block h-2.5 rounded-xs bg-primary opacity-75`,style:t({width:`${e.percent.toFixed(1)}%`})},null,4)])]))),128))])])])):f(``,!0),O.value===`daily`?(d(),_(`section`,Wt,[g(`details`,Gt,[i[16]||=g(`summary`,{class:`cursor-pointer text-sm text-muted`},`Table view — daily cost by component (USD)`,-1),g(`div`,Kt,[g(`table`,qt,[g(`thead`,null,[g(`tr`,null,[i[14]||=g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-left text-xs font-medium text-muted`},` Date `,-1),(d(!0),_(o,null,v(K.value,e=>(d(),_(`th`,{key:e,class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},b(e),1))),128)),i[15]||=g(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` Total `,-1)])]),g(`tbody`,null,[(d(!0),_(o,null,v(he.value,e=>(d(),_(`tr`,{key:e.date},[g(`td`,{class:`border-b border-muted px-2.5 py-1.5`,title:e.date},[u(b(Q(e.date))+` `,1),S.value.range.partialLastDay&&e.date===S.value.range.to?(d(),_(`span`,Yt,`(partial day`+b(e.llmEstimated?` · LLM estimated`:``)+`)`,1)):e.llmEstimated?(d(),_(`span`,Xt,`(LLM estimated)`)):f(``,!0)],8,Jt),(d(!0),_(o,null,v(K.value,t=>(d(),_(`td`,{key:t,class:`border-b border-muted px-2.5 py-1.5 text-right`},b(y(j)(y(N)(e,t),3)),1))),128)),g(`td`,Zt,b(y(j)(e.total,3)),1)]))),128))])])])]),g(`p`,Qt,[i[17]||=u(` Machine-readable twin: `,-1),g(`code`,$t,`GET /costs/`+b(S.value.group)+`.json`,1),i[18]||=u(` (same Access gate). `,-1)])])):f(``,!0),g(`footer`,en,[g(`details`,null,[i[26]||=g(`summary`,{class:`cursor-pointer text-muted`},`How these numbers are computed`,-1),g(`div`,tn,[i[24]||=g(`div`,null,[g(`b`,null,`Snapshot.`),u(` Both billing sources and the run history are read once over the widest range this page offers and kept as a snapshot; every figure here, the JSON twins and the By user tab are arithmetic over it, with `),g(`em`,null,`today`),u(` the day it was taken. The line under the range says when that was, how old it is and when the next one is due (`),g(`code`,null,`costs.snapshot.everyHours`),u(`, daily by default); `),g(`code`,null,`costs snapshot`),u(` takes one now. Cloudflare bills vCPU on active use only; memory and disk bill on the provisioned size for every second a container is awake. LLM spend is the Anthropic Admin API cost report for this group's workspace (gross, USD); a day the cost report has not closed is the Admin API usage report, hourly, priced at Anthropic list per model (input, output, cache writes, cache reads) and marked as an estimate. `)],-1),i[25]||=g(`div`,null,[g(`b`,null,`Method.`),u(` Cloudflare GraphQL Analytics, every meter a Workers deployment is billed on: `),g(`code`,null,`containersUsageAdaptiveGroups`),u(` (cpuTimeSec, allocatedMemory, allocatedDisk per app per UTC day), `),g(`code`,null,`durableObjectsPeriodicGroups`),u(` (billable `),g(`code`,null,`duration`),u(` GB-s and SQLite rows read and written per namespace), `),g(`code`,null,`durableObjectsInvocationsAdaptiveGroups`),u(` (requests per namespace), `),g(`code`,null,`durableObjectsSqlStorageGroups`),u(` (bytes stored), `),g(`code`,null,`workersInvocationsAdaptive`),u(` (requests, CPU time), `),g(`code`,null,`r2StorageAdaptiveGroups`),u(` and `),g(`code`,null,`r2OperationsAdaptiveGroups`),u(` (bytes stored, class A/B operations). Prices: vCPU $0.000020/s, memory $0.0000025/GiB-s, disk $0.00000007/GB-s, DO duration $12.50 per million GB-s, DO requests $0.15/M, SQLite rows $0.001/M read and $1.00/M written, DO storage $0.20/GB-month, Workers $0.30/M requests and $0.02/M CPU-ms, R2 $0.015/GB-month, $4.50/M class A and $0.36/M class B (deletes free). Storage is the day's peak, prorated over a 30.44-day month. Gross list price — plan fees and included allowances are not subtracted; Workers Logs volume has no analytics dataset and is not priced. `)],-1),g(`div`,null,[i[19]||=g(`b`,null,`Scope.`,-1),i[20]||=u(` Attributed to this group: the Workers `,-1),(d(!0),_(o,null,v(S.value.attribution.workers,(e,t)=>(d(),_(o,{key:e},[t>0?(d(),_(o,{key:0},[u(`, `)],64)):f(``,!0),Y.value?(d(),_(`a`,{key:1,class:`font-mono hover:underline`,href:Y.value.worker(e),target:`_blank`,rel:`noopener noreferrer`},b(e),9,nn)):(d(),_(`code`,rn,b(e),1))],64))),128)),u(`, every Durable Object namespace they host (`+b(Object.keys(S.value.attribution.durableObjectNamespaces).length)+`), the R2 buckets named after them (`,1),(d(!0),_(o,null,v(Object.keys(S.value.attribution.r2Buckets),(e,t)=>(d(),_(o,{key:e},[t>0?(d(),_(o,{key:0},[u(`, `)],64)):f(``,!0),Y.value?(d(),_(`a`,{key:1,class:`font-mono hover:underline`,href:Y.value.bucket(e),target:`_blank`,rel:`noopener noreferrer`},b(e),9,an)):(d(),_(`code`,on,b(e),1))],64))),128)),Object.keys(S.value.attribution.r2Buckets).length===0?(d(),_(o,{key:0},[u(`none`)],64)):f(``,!0),i[21]||=u(`), and the container apps mapped in `,-1),g(`code`,null,`costs.groups.`+b(S.value.group),1),u(` (`+b(Object.keys(S.value.attribution.containerApps).length)+`). Everything else in the account is priced the same way into the account total, which is what "share of account" divides by. Every figure above links to where it is billed: the `,1),Y.value?(d(),_(`a`,{key:1,class:`hover:underline`,href:Y.value.account,target:`_blank`,rel:`noopener noreferrer`},`Cloudflare dashboard`,8,sn)):f(``,!0),i[22]||=u(` for the account `,-1),g(`code`,null,b(S.value.account.id),1),u(b(S.value.account.name?` (${S.value.account.name})`:``)+`, and `,1),Y.value?(d(),_(`a`,{key:2,class:`hover:underline`,href:Y.value.anthropic,target:`_blank`,rel:`noopener noreferrer`},`Anthropic's cost page`,8,cn)):f(``,!0),i[23]||=u(` for the LLM line. `,-1)])])])])]),_:1},8,[`title`])):(d(),l(e,{key:1,title:`${w.value} spend`,nav:`costs`},{default:n(()=>[g(`div`,ln,[C.value.length>1?(d(),_(`nav`,un,[(d(!0),_(o,null,v(C.value,e=>(d(),_(o,{key:e},[e===w.value?(d(),_(`span`,dn,b(e),1)):(d(),_(`a`,{key:1,class:`rounded-md px-2.5 py-1 text-xs text-muted no-underline hover:bg-elevated hover:text-highlighted`,href:`/costs/${e}`},b(e),9,fn))],64))),128))])):f(``,!0)]),g(`section`,pn,[i[27]||=g(`h2`,{class:`text-sm font-medium text-highlighted`},`Nothing to show yet`,-1),g(`div`,mn,[g(`p`,hn,b(D.value),1),A.value?(d(),_(`button`,{key:0,type:`button`,class:`rounded-md border border-default px-2 py-0.5 text-xs text-muted hover:bg-elevated hover:text-highlighted disabled:cursor-not-allowed disabled:opacity-60`,disabled:H.value||T.value?.inFlight!==null,"data-snapshot-now":``,onClick:W},b(T.value?.inFlight?`Taking…`:`Snapshot now`),9,gn)):f(``,!0),U.value?(d(),_(`span`,_n,b(U.value),1)):f(``,!0)]),i[28]||=g(`p`,{class:`text-xs text-dimmed`},[u(` The page prices a stored snapshot of both billing sources, never a live read; the figures appear here the moment the first one lands (this page listens for it), or take one now with `),g(`code`,null,`costs snapshot`),u(`. `)],-1)])]),_:1},8,[`title`]))}});export{vn as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./AppShell-
|
|
1
|
+
import{t as e}from"./AppShell-DEy5jRuS.js";import{Lr as t,Xt as n,cn as ee,gn as r,ir as i,ln as a,on as o,r as s,sn as c,un as l,ur as u,vi as d,wi as f,xi as p,yn as te}from"./seed-DeKSHrt2.js";import{a as m,c as ne,d as re,i as h,l as g,n as ie,o as _,r as v,s as y,t as b,u as ae}from"./delivery-CTdOqpVK.js";import{t as oe}from"./wallClock-61NpVkY6.js";function x(e,t){return e.truncated&&e.completeFrom!==void 0&&Date.parse(`${t}T00:00:00Z`)<Date.parse(e.completeFrom)}Object.freeze({reviewers:[],agentLogins:[],agentCoauthors:[]}),Object.freeze({default:60,min:5,max:1440});var S={class:`text-xs text-muted`},C={key:1,class:`text-highlighted`},w=[`href`],T={class:`mb-4 flex flex-wrap items-center gap-x-4 gap-y-2`},E={key:0,class:`flex items-center gap-1`,"aria-label":`Repositories`},D={key:0,class:`rounded-md bg-accented px-2.5 py-1 text-xs font-medium text-highlighted`,"aria-current":`page`},O=[`href`],k={class:`font-mono text-sm tabular-nums text-muted`},A={class:`mb-5 grid gap-3`},j={key:0,class:`text-sm text-muted`},M={class:`grid grid-cols-[repeat(auto-fit,minmax(190px,1fr))] gap-3`},N={class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},P={class:`font-mono text-2xl font-medium tabular-nums`},F={class:`text-xs text-muted`},I={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},L={class:`overflow-x-auto`},R={class:`weeks w-full min-w-[52rem] border-collapse whitespace-nowrap font-mono text-[0.8125rem] tabular-nums`},z=[`title`],B={key:0,class:`ml-1 text-xs`},se={key:0,class:`text-xs text-muted`},V={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},H={key:0,class:`text-sm text-muted`},U={key:1,class:`overflow-x-auto`},W={class:`units w-full min-w-[52rem] border-collapse font-mono text-[0.8125rem] tabular-nums`},G=[`href`],K={key:1,class:`text-dimmed`},ce=[`title`],le=[`href`],ue={class:`text-xs text-muted`},de={class:`rounded bg-accented px-1 py-0.5`},fe={class:`border-t border-default pt-3.5 text-xs text-dimmed`},pe={key:0,class:`mb-2 font-mono tabular-nums text-muted`},me=[`href`],he={class:`mt-2 grid gap-1.5`},q=`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-xs font-medium text-muted whitespace-nowrap`,J=`border-b border-muted px-2.5 py-1.5`,Y=te({__name:`DeliveryPage`,setup(te){let Y=s(`delivery`),X=o(()=>Y?.report??null),Z=o(()=>Y?.repos??[]),ge=o(()=>X.value?ae(X.value):[]),Q=o(()=>X.value?ie(X.value):void 0),$=e=>X.value?x(X.value,e):!1,_e=o(()=>X.value?.weeks.some(e=>$(e.week))??!1),ve=[1,2,4,8,13],ye=oe(void 0,6e4),be=typeof window>`u`?``:window.location.search;return(o,s)=>X.value?(i(),ee(e,{key:0,title:`${X.value.repo} delivery`,nav:`delivery`},{actions:t(()=>[c(`span`,S,[(i(),l(n,null,u(ve,(e,t)=>(i(),l(n,{key:e},[t>0?(i(),l(n,{key:0},[r(` · `)],64)):a(``,!0),e===X.value.range.weeks?(i(),l(`b`,C,f(e)+`w`,1)):(i(),l(`a`,{key:2,class:`text-primary hover:underline`,href:`/delivery/${X.value.repo}?weeks=${e}`},f(e)+`w`,9,w))],64))),64))])]),default:t(()=>[c(`div`,T,[Z.value.length>1?(i(),l(`nav`,E,[(i(!0),l(n,null,u(Z.value,e=>(i(),l(n,{key:e},[e===X.value.repo?(i(),l(`span`,D,f(e),1)):(i(),l(`a`,{key:1,class:`rounded-md px-2.5 py-1 text-xs text-muted no-underline hover:bg-elevated hover:text-highlighted`,href:`/delivery/${e}`},f(e),9,O))],64))),128))])):a(``,!0),c(`p`,k,f(d(_)(X.value.range.since))+` → `+f(d(_)(X.value.range.until))+` · `+f(X.value.range.weeks)+`w · weeks start Monday, UTC `,1)]),c(`section`,A,[Q.value?(i(),l(`p`,j,f(Q.value),1)):a(``,!0),c(`div`,M,[(i(!0),l(n,null,u(ge.value,e=>(i(),l(`div`,{key:e.label,class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},[c(`span`,N,f(e.label),1),c(`span`,P,f(e.value),1),c(`span`,F,f(e.note),1)]))),128))])]),c(`section`,I,[s[0]||=c(`div`,null,[c(`h2`,{class:`text-[0.9375rem] font-medium`},`By week`),c(`p`,{class:`text-sm text-muted`},`One row per Monday-start week · merged pull requests only`)],-1),c(`div`,L,[c(`table`,R,[c(`thead`,null,[c(`tr`,null,[c(`th`,{class:p([q,`text-left`])},`Week`,2),c(`th`,{class:p([q,`text-right`])},`Merged`,2),c(`th`,{class:p([q,`text-right`])},`Agent-authored`,2),c(`th`,{class:p([q,`text-right`])},`Issue → merge`,2),c(`th`,{class:p([q,`text-right`])},`First-pass CI`,2),c(`th`,{class:p([q,`text-right`])},`Rounds / PR`,2),c(`th`,{class:p([q,`text-right`])},`Findings`,2),c(`th`,{class:p([q,`text-right`])},`No human edit`,2),c(`th`,{class:p([q,`text-right`])},`Agent run min`,2)])]),c(`tbody`,null,[(i(!0),l(n,null,u(X.value.weeks,e=>(i(),l(`tr`,{key:e.week,class:p($(e.week)?`text-dimmed`:``)},[c(`td`,{class:p(J),title:`${e.week} → ${e.until}`},[r(f(d(_)(e.week))+` – `+f(d(_)(e.until))+` `,1),$(e.week)?(i(),l(`span`,B,`(incomplete)`)):a(``,!0)],8,z),c(`td`,{class:p([J,`text-right font-medium`])},f(e.prsMerged),3),c(`td`,{class:p([J,`text-right`])},f(e.agentAuthoredPrs),3),c(`td`,{class:p([J,`text-right`])},f(d(m)(e.leadTimeHours.median)),3),c(`td`,{class:p([J,`text-right`])},f(d(b)(e)),3),c(`td`,{class:p([J,`text-right`])},f(d(ne)(e.reviewRounds.perPr)),3),c(`td`,{class:p([J,`text-right`])},f(d(v)(e)),3),c(`td`,{class:p([J,`text-right`])},f(d(y)(e.findings.noHumanEditShare)),3),c(`td`,{class:p([J,`text-right`])},f(e.agentRuns.minutes.toFixed(0)),3)],2))),128))])])]),_e.value&&X.value.completeFrom?(i(),l(`p`,se,` Incomplete weeks hold the newest pull requests the read reached — it is complete from `+f(d(g)(X.value.completeFrom))+` — so their numbers are a floor on the merges, not the week's. `,1)):a(``,!0)]),c(`section`,V,[s[3]||=c(`div`,null,[c(`h2`,{class:`text-[0.9375rem] font-medium`},`By unit`),c(`p`,{class:`text-sm text-muted`},` One row per board issue the pull requests link · the issue's opening starts the clock `)],-1),X.value.units.length===0?(i(),l(`p`,H,`Nothing merged in range.`)):(i(),l(`div`,U,[c(`table`,W,[c(`thead`,null,[c(`tr`,null,[c(`th`,{class:p([q,`text-left`])},`Issue`,2),c(`th`,{class:p([q,`text-left`])},`Unit`,2),c(`th`,{class:p([q,`text-left`])},`PRs`,2),c(`th`,{class:p([q,`text-right`])},`Issue → merge`,2),c(`th`,{class:p([q,`text-right`])},`First-pass CI`,2),c(`th`,{class:p([q,`text-right`])},`Rounds`,2),c(`th`,{class:p([q,`text-right`])},`Findings`,2),c(`th`,{class:p([q,`text-right`])},`No human edit`,2)])]),c(`tbody`,null,[(i(!0),l(n,null,u(X.value.units,e=>(i(),l(`tr`,{key:e.issue??`none`},[c(`td`,{class:p([J,`whitespace-nowrap`])},[e.issue===null?(i(),l(`span`,K,`—`)):(i(),l(`a`,{key:0,class:`text-primary hover:underline`,href:`https://github.com/${X.value.repo}/issues/${e.issue}`},`#`+f(e.issue),9,G))],2),c(`td`,{class:p([J,`max-w-[28rem] truncate font-sans`]),title:e.title},f(e.title),11,ce),c(`td`,{class:p([J,`whitespace-nowrap`])},[(i(!0),l(n,null,u(e.prs,(e,t)=>(i(),l(n,{key:e},[t>0?(i(),l(n,{key:0},[r(`, `)],64)):a(``,!0),c(`a`,{class:`text-primary hover:underline`,href:`https://github.com/${X.value.repo}/pull/${e}`},f(e),9,le)],64))),128))],2),c(`td`,{class:p([J,`text-right`])},f(d(m)(e.leadTimeHours.median)),3),c(`td`,{class:p([J,`text-right`])},f(d(b)(e)),3),c(`td`,{class:p([J,`text-right`])},f(e.reviewRounds.verdicts),3),c(`td`,{class:p([J,`text-right`])},f(d(v)(e)),3),c(`td`,{class:p([J,`text-right`])},f(d(y)(e.findings.noHumanEditShare)),3)]))),128))])])])),c(`p`,ue,[s[1]||=r(` Machine-readable twin: `,-1),c(`code`,de,`GET /delivery/`+f(X.value.repo)+`.json`,1),s[2]||=r(` (same gate). `,-1)])]),c(`footer`,fe,[X.value.snapshotAt?(i(),l(`p`,pe,[r(` As of `+f(d(g)(X.value.snapshotAt))+`, `+f(d(re)(X.value.snapshotAt,d(ye)))+` · `,1),c(`a`,{class:`text-primary hover:underline`,href:d(h)(d(be))},`read GitHub now`,8,me)])):a(``,!0),c(`details`,null,[s[13]||=c(`summary`,{class:`cursor-pointer text-muted`},`How these numbers are computed`,-1),c(`div`,he,[s[11]||=c(`div`,null,[c(`b`,null,`Snapshot.`),r(` GitHub's record of the merged pull requests (each one's timeline and its branch's workflow runs, the board issue its body links) is read on an interval and kept as a snapshot the page, its JSON twin and `),c(`code`,null,`delivery report`),r(` serve; `),c(`code`,null,`?fresh=1`),r(` reads GitHub now. The run history you may see joins on every load. `)],-1),s[12]||=c(`div`,null,[c(`b`,null,`Issue → merge`),r(` runs from the linked board issue's opening (a closing keyword or a `),c(`code`,null,`board item`),r(` reference in the body) to the merge; a pull request that links no issue counts from its own opening. `),c(`b`,null,`First-pass CI`),r(` is green when every pull-request-triggered workflow run (`),c(`code`,null,`pull_request`),r(`, `),c(`code`,null,`pull_request_target`),r(`) on the first head succeeded at its first attempt — a rerun or a red run fails it; a head with no such run is not counted. `),c(`b`,null,`Review rounds`),r(` are the review agent's verdicts; a `),c(`i`,null,`fix round`),r(` is a verdict that followed a push. `),c(`b`,null,`No human edit`),r(` is the share of the agent's findings on pull requests where every push after the first verdict was an agent's: a bot login, or a commit co-authored by an agent. `),c(`b`,null,`Agent run minutes`),r(` are the finished runs of this repository that named a pull request. `)],-1),c(`div`,null,[s[5]||=c(`b`,null,`Identities.`,-1),s[6]||=r(` Verdicts by `,-1),c(`code`,null,f(X.value.identities.reviewers.join(`, `)||`(none configured)`),1),s[7]||=r(`; agent logins end in `,-1),s[8]||=c(`code`,null,`[bot]`,-1),X.value.identities.agentLogins.length?(i(),l(n,{key:0},[s[4]||=r(`, plus `,-1),c(`code`,null,f(X.value.identities.agentLogins.join(`, `)),1)],64)):a(``,!0),s[9]||=r(`; agent co-authors named `,-1),c(`code`,null,f(X.value.identities.agentCoauthors.join(`, `)||`(none)`),1),s[10]||=r(`. `,-1)])])])])]),_:1},8,[`title`])):a(``,!0)}});export{Y as default};
|