tokentracker-cli 0.3.0 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dashboard/dist/assets/{DashboardPage-CdsMxGgP.js → DashboardPage-DwwjNQP7.js} +1 -1
- package/dashboard/dist/assets/{LandingExtras-BPCBL0OB.js → LandingExtras-BsrCd4pK.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardPage-T0DeP6QE.js → LeaderboardPage-ZIRnfiXX.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardProfilePage-DeXNLaq5.js → LeaderboardProfilePage-CoLDY-lR.js} +1 -1
- package/dashboard/dist/assets/{MatrixRain-DNvnkted.js → MatrixRain-B2DIJ0ID.js} +1 -1
- package/dashboard/dist/assets/{MatrixShell-p6MtAS33.js → MatrixShell-Byc-iwIr.js} +1 -1
- package/dashboard/dist/assets/{main-CvjKTqMk.js → main-C3QpHBOP.js} +4 -4
- package/dashboard/dist/assets/{vibeusage-api-By1xP_lg.js → vibeusage-api-EQ444MvB.js} +1 -1
- package/dashboard/dist/index.html +1 -1
- package/dashboard/dist/share.html +1 -1
- package/package.json +1 -1
- package/src/commands/sync.js +28 -2
- package/src/lib/rollout.js +200 -0
package/README.md
CHANGED
|
@@ -58,7 +58,7 @@ tokentracker doctor # Health check
|
|
|
58
58
|
|
|
59
59
|
## Features
|
|
60
60
|
|
|
61
|
-
- **Multi-Source Tracking** — Claude Code, Codex CLI, Cursor, Gemini CLI, OpenCode, OpenClaw, Every Code
|
|
61
|
+
- **Multi-Source Tracking** — Claude Code, Codex CLI, Cursor, Kiro, Gemini CLI, OpenCode, OpenClaw, Every Code
|
|
62
62
|
- **Local-First** — All data stays on your machine. No cloud account required.
|
|
63
63
|
- **Zero-Config** — Hooks auto-detect and configure on first run
|
|
64
64
|
- **Built-in Dashboard** — Web UI with usage trends, model breakdowns, heatmaps
|
|
@@ -71,6 +71,7 @@ tokentracker doctor # Health check
|
|
|
71
71
|
| **Claude Code** | ✅ |
|
|
72
72
|
| **Codex CLI** | ✅ |
|
|
73
73
|
| **Cursor** | ✅ (via API) |
|
|
74
|
+
| **Kiro** | ✅ |
|
|
74
75
|
| **Gemini CLI** | ✅ |
|
|
75
76
|
| **OpenCode** | ✅ |
|
|
76
77
|
| **OpenClaw** | ✅ |
|
|
@@ -79,7 +80,7 @@ tokentracker doctor # Health check
|
|
|
79
80
|
## How It Works
|
|
80
81
|
|
|
81
82
|
```
|
|
82
|
-
AI CLI Tools (Claude, Codex, Cursor, Gemini, OpenCode, ...)
|
|
83
|
+
AI CLI Tools (Claude, Codex, Cursor, Kiro, Gemini, OpenCode, ...)
|
|
83
84
|
│
|
|
84
85
|
│ hooks auto-trigger on usage
|
|
85
86
|
▼
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as h,u as Dn,i as Yf,a as Rt,g as zf,b as en,c as tn,d as ot,e as Br,f as Yn,h as js,j as pi,k as Xt,t as Ue,l as P,T as qf,m as g,n as Pe,o as gi,p as Al,q as Pl,s as ie,N as Rl,v as Ml,w as yi,x as pt,y as Dl,E as yn,z as bi,A as Xf,B as nn,C as jo,D as Zf,F as Nl,G as Ls,H as jl,I as Jf,J as At,K as tr,L as Qf,M as nr,O as Lo,P as eh,Q as th,R as Ll,S as nh,U as sh,V as rh,W as ih,X as oh,Y as xi,Z as Vl,_ as ah,$ as lh,a0 as ch,a1 as uh,a2 as dh,a3 as fh,a4 as hh,a5 as mh,a6 as ht,a7 as ph,a8 as gh,a9 as sr}from"./main-CvjKTqMk.js";import{g as yh,a as vi,b as bh,c as xh,d as vh,e as rr,f as wh,r as Sh,h as Vo,i as kh,j as Th,t as Ch,s as Eh}from"./vibeusage-api-By1xP_lg.js";const Ah=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ph=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,s)=>s?s.toUpperCase():n.toLowerCase()),Io=e=>{const t=Ph(e);return t.charAt(0).toUpperCase()+t.slice(1)},Il=(...e)=>e.filter((t,n,s)=>!!t&&t.trim()!==""&&s.indexOf(t)===n).join(" ").trim(),Rh=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var Mh={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Dh=h.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:s,className:r="",children:i,iconNode:o,...a},l)=>h.createElement("svg",{ref:l,...Mh,width:t,height:t,stroke:e,strokeWidth:s?Number(n)*24/Number(t):n,className:Il("lucide",r),...!i&&!Rh(a)&&{"aria-hidden":"true"},...a},[...o.map(([c,u])=>h.createElement(c,u)),...Array.isArray(i)?i:[i]]));const Nh=(e,t)=>{const n=h.forwardRef(({className:s,...r},i)=>h.createElement(Dh,{ref:i,iconNode:t,className:Il(`lucide-${Ah(Io(e))}`,`lucide-${e}`,s),...r}));return n.displayName=Io(e),n};const jh=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Lh=Nh("info",jh),Vh="data-base-ui-click-trigger",Ih={clipPath:"inset(50%)",position:"fixed",top:0,left:0},Fh=[];function Fl(e){h.useEffect(e,Fh)}const fn=0;class Zt{static create(){return new Zt}currentId=fn;start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=fn,n()},t)}isStarted(){return this.currentId!==fn}clear=()=>{this.currentId!==fn&&(clearTimeout(this.currentId),this.currentId=fn)};disposeEffect=()=>this.clear}function ps(){const e=Dn(Zt.create).current;return Fl(e.disposeEffect),e}function Nn(e){return e?.ownerDocument||document}const sn=typeof navigator<"u",ir=$h(),_l=Wh(),Ol=Uh(),_h=typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter:none"),Bl=ir.platform==="MacIntel"&&ir.maxTouchPoints>1?!0:/iP(hone|ad|od)|iOS/.test(ir.platform),Oh=sn&&/apple/i.test(navigator.vendor),$r=sn&&/android/i.test(_l)||/android/i.test(Ol);sn&&_l.toLowerCase().startsWith("mac")&&navigator.maxTouchPoints;const Bh=Ol.includes("jsdom/");function $h(){if(!sn)return{platform:"",maxTouchPoints:-1};const e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??"",maxTouchPoints:navigator.maxTouchPoints??-1}}function Uh(){if(!sn)return"";const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:t,version:n})=>`${t}/${n}`).join(" "):navigator.userAgent}function Wh(){if(!sn)return"";const e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??""}const Ur="data-base-ui-focusable",$l="active",Ul="selected",Kh="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";function Ut(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function we(e,t){if(!e||!t)return!1;const n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&Yf(n)){let s=t;for(;s;){if(e===s)return!0;s=s.parentNode||s.host}}return!1}function Xe(e){return"composedPath"in e?e.composedPath()[0]:e.target}function Ye(e,t){if(t==null)return!1;if("composedPath"in e)return e.composedPath().includes(t);const n=e;return n.target!=null&&t.contains(n.target)}function Hh(e){return e.matches("html,body")}function Ve(e){return e?.ownerDocument||document}function Gh(e){return Rt(e)&&e.matches(Kh)}function Fo(e){return e?e.getAttribute("role")==="combobox"&&Gh(e):!1}function Wr(e){return e?e.hasAttribute(Ur)?e:e.querySelector(`[${Ur}]`)||e:null}function zt(e,t,n=!0){return e.filter(r=>r.parentId===t&&(!n||r.context?.open)).flatMap(r=>[r,...zt(e,r.id,n)])}function _o(e,t){let n=[],s=e.find(r=>r.id===t)?.parentId;for(;s;){const r=e.find(i=>i.id===s);s=r?.parentId,r&&(n=n.concat(r))}return n}function Yh(e){e.preventDefault(),e.stopPropagation()}function zh(e){return"nativeEvent"in e}function qh(e){return e.mozInputSource===0&&e.isTrusted?!0:$r&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Xh(e){return Bh?!1:!$r&&e.width===0&&e.height===0||$r&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType==="touch"}function Zh(e){const t=e.type;return t==="click"||t==="mousedown"||t==="keydown"||t==="keyup"}var Jh=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],gs=Jh.join(","),Wl=typeof Element>"u",Jt=Wl?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,ys=!Wl&&Element.prototype.getRootNode?function(e){var t;return e==null||(t=e.getRootNode)===null||t===void 0?void 0:t.call(e)}:function(e){return e?.ownerDocument},bs=function(t,n){var s;n===void 0&&(n=!0);var r=t==null||(s=t.getAttribute)===null||s===void 0?void 0:s.call(t,"inert"),i=r===""||r==="true",o=i||n&&t&&(typeof t.closest=="function"?t.closest("[inert]"):bs(t.parentNode));return o},Qh=function(t){var n,s=t==null||(n=t.getAttribute)===null||n===void 0?void 0:n.call(t,"contenteditable");return s===""||s==="true"},Kl=function(t,n,s){if(bs(t))return[];var r=Array.prototype.slice.apply(t.querySelectorAll(gs));return n&&Jt.call(t,gs)&&r.unshift(t),r=r.filter(s),r},xs=function(t,n,s){for(var r=[],i=Array.from(t);i.length;){var o=i.shift();if(!bs(o,!1))if(o.tagName==="SLOT"){var a=o.assignedElements(),l=a.length?a:o.children,c=xs(l,!0,s);s.flatten?r.push.apply(r,c):r.push({scopeParent:o,candidates:c})}else{var u=Jt.call(o,gs);u&&s.filter(o)&&(n||!t.includes(o))&&r.push(o);var d=o.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(o),f=!bs(d,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(o));if(d&&f){var m=xs(d===!0?o.children:d.children,!0,s);s.flatten?r.push.apply(r,m):r.push({scopeParent:o,candidates:m})}else i.unshift.apply(i,o.children)}}return r},Hl=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},Gl=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||Qh(t))&&!Hl(t)?0:t.tabIndex},em=function(t,n){var s=Gl(t);return s<0&&n&&!Hl(t)?0:s},tm=function(t,n){return t.tabIndex===n.tabIndex?t.documentOrder-n.documentOrder:t.tabIndex-n.tabIndex},Yl=function(t){return t.tagName==="INPUT"},nm=function(t){return Yl(t)&&t.type==="hidden"},sm=function(t){var n=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(s){return s.tagName==="SUMMARY"});return n},rm=function(t,n){for(var s=0;s<t.length;s++)if(t[s].checked&&t[s].form===n)return t[s]},im=function(t){if(!t.name)return!0;var n=t.form||ys(t),s=function(a){return n.querySelectorAll('input[type="radio"][name="'+a+'"]')},r;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")r=s(window.CSS.escape(t.name));else try{r=s(t.name)}catch(o){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",o.message),!1}var i=rm(r,t.form);return!i||i===t},om=function(t){return Yl(t)&&t.type==="radio"},am=function(t){return om(t)&&!im(t)},lm=function(t){var n,s=t&&ys(t),r=(n=s)===null||n===void 0?void 0:n.host,i=!1;if(s&&s!==t){var o,a,l;for(i=!!((o=r)!==null&&o!==void 0&&(a=o.ownerDocument)!==null&&a!==void 0&&a.contains(r)||t!=null&&(l=t.ownerDocument)!==null&&l!==void 0&&l.contains(t));!i&&r;){var c,u,d;s=ys(r),r=(c=s)===null||c===void 0?void 0:c.host,i=!!((u=r)!==null&&u!==void 0&&(d=u.ownerDocument)!==null&&d!==void 0&&d.contains(r))}}return i},Oo=function(t){var n=t.getBoundingClientRect(),s=n.width,r=n.height;return s===0&&r===0},cm=function(t,n){var s=n.displayCheck,r=n.getShadowRoot;if(s==="full-native"&&"checkVisibility"in t){var i=t.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});return!i}if(getComputedStyle(t).visibility==="hidden")return!0;var o=Jt.call(t,"details>summary:first-of-type"),a=o?t.parentElement:t;if(Jt.call(a,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="full-native"||s==="legacy-full"){if(typeof r=="function"){for(var l=t;t;){var c=t.parentElement,u=ys(t);if(c&&!c.shadowRoot&&r(c)===!0)return Oo(t);t.assignedSlot?t=t.assignedSlot:!c&&u!==t.ownerDocument?t=u.host:t=c}t=l}if(lm(t))return!t.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return Oo(t);return!1},um=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var n=t.parentElement;n;){if(n.tagName==="FIELDSET"&&n.disabled){for(var s=0;s<n.children.length;s++){var r=n.children.item(s);if(r.tagName==="LEGEND")return Jt.call(n,"fieldset[disabled] *")?!0:!r.contains(t)}return!0}n=n.parentElement}return!1},Kr=function(t,n){return!(n.disabled||nm(n)||cm(n,t)||sm(n)||um(n))},Hr=function(t,n){return!(am(n)||Gl(n)<0||!Kr(t,n))},dm=function(t){var n=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(n)||n>=0)},zl=function(t){var n=[],s=[];return t.forEach(function(r,i){var o=!!r.scopeParent,a=o?r.scopeParent:r,l=em(a,o),c=o?zl(r.candidates):a;l===0?o?n.push.apply(n,c):n.push(a):s.push({documentOrder:i,tabIndex:l,item:r,isScope:o,content:c})}),s.sort(tm).reduce(function(r,i){return i.isScope?r.push.apply(r,i.content):r.push(i.content),r},[]).concat(n)},Vs=function(t,n){n=n||{};var s;return n.getShadowRoot?s=xs([t],n.includeContainer,{filter:Hr.bind(null,n),flatten:!1,getShadowRoot:n.getShadowRoot,shadowRootFilter:dm}):s=Kl(t,n.includeContainer,Hr.bind(null,n)),zl(s)},fm=function(t,n){n=n||{};var s;return n.getShadowRoot?s=xs([t],n.includeContainer,{filter:Kr.bind(null,n),flatten:!0,getShadowRoot:n.getShadowRoot}):s=Kl(t,n.includeContainer,Kr.bind(null,n)),s},ql=function(t,n){if(n=n||{},!t)throw new Error("No node provided");return Jt.call(t,gs)===!1?!1:Hr(n,t)};const jn=()=>({getShadowRoot:!0,displayCheck:typeof ResizeObserver=="function"&&ResizeObserver.toString().includes("[native code]")?"full":"none"});function Xl(e,t){const n=Vs(e,jn()),s=n.length;if(s===0)return;const r=Ut(Ve(e)),i=n.indexOf(r),o=i===-1?t===1?0:s-1:i+t;return n[o]}function Zl(e){return Xl(Ve(e).body,1)||e}function Jl(e){return Xl(Ve(e).body,-1)||e}function bn(e,t){const n=t||e.currentTarget,s=e.relatedTarget;return!s||!we(n,s)}function hm(e){Vs(e,jn()).forEach(n=>{n.dataset.tabindex=n.getAttribute("tabindex")||"",n.setAttribute("tabindex","-1")})}function Bo(e){e.querySelectorAll("[data-tabindex]").forEach(n=>{const s=n.dataset.tabindex;delete n.dataset.tabindex,s?n.setAttribute("tabindex",s):n.removeAttribute("tabindex")})}function mm({baseUrl:e,accessToken:t,guestAllowed:n=!1,weeks:s=52,weekStartsOn:r="sun",cacheKey:i,timeZone:o,tzOffsetMinutes:a,now:l}={}){const c=h.useMemo(()=>zf({weeks:s,weekStartsOn:r,now:l}),[l,s,r]),[u,d]=h.useState([]),[f,m]=h.useState(null),[p,y]=h.useState("edge"),[b,x]=h.useState(!1),[w,v]=h.useState(null),T=en(),S=tn(t),R=!n,N=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),C=h.useMemo(()=>{if(!i)return null;const $=js({timeZone:o,offsetMinutes:a});return`vibeusage.heatmap.${i}.${s}.${r}.${$}`},[i,o,a,s,r]),I=h.useCallback(()=>{if(!C||typeof window>"u")return null;try{const $=window.localStorage.getItem(C);if(!$)return null;const j=JSON.parse($);return!j||!j.heatmap?null:j}catch{return null}},[C]),A=h.useCallback($=>{if(!(!C||typeof window>"u"))try{window.localStorage.setItem(C,JSON.stringify($))}catch{}},[C]),M=h.useCallback(()=>{if(!(!C||typeof window>"u"))try{window.localStorage.removeItem(C)}catch{}},[C]),U=h.useCallback(async()=>{const $=await ot(t);if(!(!$&&!T&&!N)){x(!0),v(null);try{try{const D=await yh({baseUrl:e,accessToken:$,weeks:s,to:c.to,weekStartsOn:r,timeZone:o,tzOffsetMinutes:a}),_=Array.isArray(D?.weeks)?D.weeks:[];if(!_.length&&R){const X=I();if(X?.heatmap){m(X.heatmap),d(X.daily||[]),y("cache");return}}if(!_.some(X=>(Array.isArray(X)?X:[]).some(se=>se&&Number.isFinite(Number(se.level))))&&_.length){const X=[];for(const H of _)for(const Q of Array.isArray(H)?H:[])Q?.day&&X.push({day:Q.day,total_tokens:Q.total_tokens??Q.value??0,billable_total_tokens:Q.billable_total_tokens??Q.value??Q.total_tokens??0});const se=Br({dailyRows:X,weeks:s,to:D?.to||c.to,weekStartsOn:r});d(X),m({...se,week_starts_on:r,active_days:X.filter(H=>Number(H?.billable_total_tokens??H?.total_tokens)>0).length,streak_days:Yn({dailyRows:X,to:D?.to||c.to})}),y("client"),R?A({heatmap:{...se,week_starts_on:r,active_days:X.filter(H=>Number(H?.billable_total_tokens??H?.total_tokens)>0).length,streak_days:Yn({dailyRows:X,to:D?.to||c.to})},daily:X,fetchedAt:new Date().toISOString()}):M();return}m(D||null),d([]),y("edge"),D&&R?A({heatmap:D,daily:[],fetchedAt:new Date().toISOString()}):R||M();return}catch(D){const _=D,z=_?.status??_?.statusCode;if(z===401||z===403)throw D}const j=await vi({baseUrl:e,accessToken:$,from:c.from,to:c.to,timeZone:o,tzOffsetMinutes:a}),W=Array.isArray(j?.data)?j.data:[];d(W);const pe=Br({dailyRows:W,weeks:s,to:c.to,weekStartsOn:r});m({...pe,week_starts_on:r,active_days:W.filter(D=>Number(D?.billable_total_tokens??D?.total_tokens)>0).length,streak_days:Yn({dailyRows:W,to:c.to})}),y("client"),R?A({heatmap:{...pe,week_starts_on:r,active_days:W.filter(D=>Number(D?.billable_total_tokens??D?.total_tokens)>0).length,streak_days:Yn({dailyRows:W,to:c.to})},daily:W,fetchedAt:new Date().toISOString()}):M()}catch(j){if(R){const W=I();if(W?.heatmap)m(W.heatmap),d(W.daily||[]),y("cache"),v(null);else{const pe=j;v(pe?.message||String(pe)),d([]),m(null),y("edge")}}else{const W=j;v(W?.message||String(W)),d([]),m(null),y("edge")}}finally{x(!1)}}},[t,e,T,n,R,c.from,c.to,I,S,o,a,r,s,M,A,N]);return h.useEffect(()=>{if(!S&&!n&&!T&&!N){d([]),x(!1),v(null),m(null),y("edge");return}if(!R)M(),d([]),v(null),m(null),y("edge");else{const $=I();$?.heatmap&&(m($.heatmap),d($.daily||[]),y("cache"))}U()},[t,T,I,U,S,n,R,M,N]),{range:c,daily:u,heatmap:f,source:T?"mock":p==="client"?"edge":p,loading:b,error:w,refresh:U}}function pm({baseUrl:e,accessToken:t,limit:n=3,from:s,to:r,source:i,timeZone:o,tzOffsetMinutes:a}={}){const[l,c]=h.useState([]),[u,d]=h.useState(!1),[f,m]=h.useState(null),p=en(),y=tn(t),b=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),x=h.useCallback(async()=>{const w=await ot(t);if(!w&&!p&&!b){c([]),m(null),d(!1);return}d(!0),m(null);try{const v=await bh({baseUrl:e,accessToken:w,limit:n,from:s,to:r,source:i,timeZone:o,tzOffsetMinutes:a});c(Array.isArray(v?.entries)?v.entries:[])}catch(v){const T=v?.message||String(v);m(T),c([])}finally{d(!1)}},[t,e,s,n,p,i,o,r,a,b]);return h.useEffect(()=>{if(!y&&!p&&!b){c([]),m(null),d(!1);return}x()},[p,x,y,b]),{entries:l,loading:u,error:f,refresh:x}}const gm=24;function ym({baseUrl:e,accessToken:t,guestAllowed:n=!1,period:s,from:r,to:i,months:o=gm,cacheKey:a,timeZone:l,tzOffsetMinutes:c,now:u,sharedRows:d,sharedRange:f}={}){const[m,p]=h.useState([]),[y,b]=h.useState(()=>({from:r,to:i})),[x,w]=h.useState("edge"),[v,T]=h.useState(null),[S,R]=h.useState(!1),[N,C]=h.useState(null),I=en(),A=tn(t),M=!n,U=Array.isArray(d),L=f?.from||r,$=f?.to||i,j=h.useMemo(()=>s==="day"?"hourly":s==="total"?"monthly":"daily",[s]),W=(()=>{if(!a)return null;const H=bm(e)||"default",Q=js({timeZone:l,offsetMinutes:c});if(j==="hourly")return`vibeusage.trend.${a}.${H}.hourly.${i||r||"day"}.${Q}`;if(j==="monthly")return`vibeusage.trend.${a}.${H}.monthly.${o}.${i||"today"}.${Q}`;const ee=`${r||""}.${i||""}`;return`vibeusage.trend.${a}.${H}.daily.${ee}.${Q}`})(),pe=h.useCallback(()=>{if(!W||typeof window>"u")return null;try{const H=window.localStorage.getItem(W);if(!H)return null;const Q=JSON.parse(H);return!Q||!Array.isArray(Q.rows)?null:Q}catch{return null}},[W]),D=h.useCallback(H=>{if(!(!W||typeof window>"u"))try{window.localStorage.setItem(W,JSON.stringify(H))}catch{}},[W]),_=h.useCallback(()=>{if(!(!W||typeof window>"u"))try{window.localStorage.removeItem(W)}catch{}},[W]),z=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),X=h.useCallback(async()=>{if(U){p(Array.isArray(d)?d:[]),b({from:L,to:$}),w("shared"),T(null),R(!1),C(null);return}const H=await ot(t);if(!(!H&&!I&&!z)){R(!0),C(null);try{let Q;j==="hourly"?Q=await xh({baseUrl:e,accessToken:H,day:i||r,timeZone:l,tzOffsetMinutes:c}):j==="monthly"?Q=await vh({baseUrl:e,accessToken:H,months:o,to:i,timeZone:l,tzOffsetMinutes:c}):Q=await vi({baseUrl:e,accessToken:H,from:r,to:i,timeZone:l,tzOffsetMinutes:c});const ee=Q?.from||r||Q?.day||null,de=Q?.to||i||Q?.day||null;let be=Array.isArray(Q?.data)?Q.data:[];j==="daily"?be=ar(be,ee||r,de||i,{timeZone:l,offsetMinutes:c,now:u}):j==="hourly"?be=lr(be,{timeZone:l,offsetMinutes:c,now:u}):j==="monthly"&&(be=cr(be,{timeZone:l,offsetMinutes:c,now:u}));const Ne=new Date().toISOString();p(be),b({from:ee,to:de}),w("edge"),T(Ne),M?D({rows:be,from:ee,to:de,mode:j,fetchedAt:Ne}):_()}catch(Q){if(M){const ee=pe();if(ee?.rows){let de=j==="daily"?ar(ee.rows||[],ee.from||r,ee.to||i,{timeZone:l,offsetMinutes:c,now:u}):Array.isArray(ee.rows)?ee.rows:[];j==="hourly"?de=lr(de,{timeZone:l,offsetMinutes:c,now:u}):j==="monthly"&&(de=cr(de,{timeZone:l,offsetMinutes:c,now:u})),p(de),b({from:ee.from||r,to:ee.to||i}),w("cache"),T(ee.fetchedAt||null),C(null)}else{p([]),b({from:r,to:i}),w("edge"),T(null);const de=Q;C(de?.message||String(de))}}else{p([]),b({from:r,to:i}),w("edge"),T(null);const ee=Q;C(ee?.message||String(ee))}}finally{R(!1)}}},[t,e,r,I,n,M,j,o,pe,A,U,L,d,$,l,i,c,u,_,D,z]);h.useEffect(()=>{if(U){p(Array.isArray(d)?d:[]),b({from:L,to:$}),w("shared"),T(null),R(!1),C(null);return}if(!A&&!n&&!I&&!z){p([]),b({from:r,to:i}),C(null),R(!1),w("edge"),T(null);return}if(!M)_(),p([]),b({from:r,to:i}),C(null),w("edge"),T(null);else{const H=pe();if(H?.rows){let Q=j==="daily"?ar(H.rows||[],H.from||r,H.to||i,{timeZone:l,offsetMinutes:c,now:u}):Array.isArray(H.rows)?H.rows:[];j==="hourly"?Q=lr(Q,{timeZone:l,offsetMinutes:c,now:u}):j==="monthly"&&(Q=cr(Q,{timeZone:l,offsetMinutes:c,now:u})),p(Q),b({from:H.from||r,to:H.to||i}),w("cache"),T(H.fetchedAt||null)}}X()},[t,I,pe,X,U,L,d,$,A,n,M,_,z]);const se=I?"mock":x;return{rows:m,from:y.from||r,to:y.to||i,source:se,fetchedAt:v,loading:S,error:N,refresh:X}}function bm(e){try{return new URL(e).host}catch{return null}}function or(e){if(!e)return null;const t=String(e).trim(),n=t.split("-");if(n.length!==3)return null;const s=Number(n[0]),r=Number(n[1])-1,i=Number(n[2]);if(!Number.isFinite(s)||!Number.isFinite(r)||!Number.isFinite(i))return null;const o=new Date(Date.UTC(s,r,i));return Number.isFinite(o.getTime())&&Xt(o)===t?o:null}function xm(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function ar(e,t,n,{timeZone:s,offsetMinutes:r,now:i}={}){const o=or(t),a=or(n);if(!o||!a||a<o)return Array.isArray(e)?e:[];const l=i instanceof Date&&Number.isFinite(i.getTime())?i:new Date,c=pi({timeZone:s,offsetMinutes:r,date:l}),u=or(c),d=u?u.getTime():l.getTime(),f=new Map;for(const p of e||[])p?.day&&f.set(p.day,p);const m=[];for(let p=o;p<=a;p=xm(p,1)){const y=Xt(p),b=f.get(y),x=p.getTime()>d;if(b){m.push({...b,missing:!1,future:x});continue}m.push({day:y,total_tokens:null,billable_total_tokens:null,input_tokens:null,cached_input_tokens:null,output_tokens:null,reasoning_output_tokens:null,missing:!x,future:x})}return m}function lr(e,{timeZone:t,offsetMinutes:n,now:s}={}){if(!Array.isArray(e))return[];const r=Ql({timeZone:t,offsetMinutes:n,now:s});return r?e.map(i=>{const o=i?.hour||i?.label||"",a=vm(o);if(!a)return{...i,future:!1};const l=a.dayNum>r.dayNum||a.dayNum===r.dayNum&&a.slot>r.slot;return{...i,future:l}}):e}function cr(e,{timeZone:t,offsetMinutes:n,now:s}={}){if(!Array.isArray(e))return[];const r=Ql({timeZone:t,offsetMinutes:n,now:s});return r?e.map(i=>{const o=i?.month||i?.label||"",a=wm(o);if(!a)return{...i,future:!1};const l=a.year>r.year||a.year===r.year&&a.month>r.month;return{...i,future:l}}):e}function Ql({timeZone:e,offsetMinutes:t,now:n}={}){const s=n instanceof Date&&Number.isFinite(n.getTime())?n:new Date;if(e&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const f=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(s).reduce((w,v)=>(v.type&&v.value&&(w[v.type]=v.value),w),{}),m=Number(f.year),p=Number(f.month),y=Number(f.day),b=Number(f.hour),x=Number(f.minute);if(Number.isFinite(m)&&Number.isFinite(p)&&Number.isFinite(y)&&Number.isFinite(b)&&Number.isFinite(x)){const w=b*2+(x>=30?1:0);return{year:m,month:p,day:y,hour:b,minute:x,dayNum:m*1e4+p*100+y,slot:w}}}catch{}if(Number.isFinite(t)){const u=new Date(s.getTime()+t*60*1e3),d=u.getUTCFullYear(),f=u.getUTCMonth()+1,m=u.getUTCDate(),p=u.getUTCHours(),y=u.getUTCMinutes(),b=p*2+(y>=30?1:0);return{year:d,month:f,day:m,hour:p,minute:y,dayNum:d*1e4+f*100+m,slot:b}}const r=s.getFullYear(),i=s.getMonth()+1,o=s.getDate(),a=s.getHours(),l=s.getMinutes(),c=a*2+(l>=30?1:0);return{year:r,month:i,day:o,hour:a,minute:l,dayNum:r*1e4+i*100+o,slot:c}}function vm(e){if(!e)return null;const t=String(e).trim(),[n,s]=t.split("T");if(!n||!s)return null;const r=n.split("-");if(r.length!==3)return null;const i=Number(r[0]),o=Number(r[1]),a=Number(r[2]);if(!Number.isFinite(i)||!Number.isFinite(o)||!Number.isFinite(a))return null;const l=s.split(":"),c=Number(l[0]),u=Number(l[1]);if(!Number.isFinite(c)||c<0||c>23||!Number.isFinite(u)||u<0||u>59)return null;const d=c*2+(u>=30?1:0);return{dayNum:i*1e4+o*100+a,slot:d}}function wm(e){if(!e)return null;const n=String(e).trim().split("-");if(n.length!==2)return null;const s=Number(n[0]),r=Number(n[1]);return!Number.isFinite(s)||!Number.isFinite(r)||r<1||r>12?null:{year:s,month:r}}function $o({baseUrl:e,accessToken:t,guestAllowed:n=!1,from:s,to:r,includeDaily:i=!0,cacheKey:o,timeZone:a,tzOffsetMinutes:l,now:c}={}){const[u,d]=h.useState([]),[f,m]=h.useState(null),[p,y]=h.useState(null),[b,x]=h.useState("edge"),[w,v]=h.useState(null),[T,S]=h.useState(!1),[R,N]=h.useState(null),C=en(),I=tn(t),A=!n,M=(()=>{if(!o)return null;const D=Sm(e)||"default",_=i?"daily":"summary",z=js({timeZone:a,offsetMinutes:l});return`vibeusage.usage.${o}.${D}.${s}.${r}.${_}.${z}`})(),U=h.useCallback(()=>{if(!M||typeof window>"u")return null;try{const D=window.localStorage.getItem(M);if(!D)return null;const _=JSON.parse(D);return!_||!_.summary?null:_}catch{return null}},[M]),L=h.useCallback(D=>{if(!(!M||typeof window>"u"))try{window.localStorage.setItem(M,JSON.stringify(D))}catch{}},[M]),$=h.useCallback(()=>{if(!(!M||typeof window>"u"))try{window.localStorage.removeItem(M)}catch{}},[M]),j=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),W=h.useCallback(async()=>{const D=await ot(t);if(!(!D&&!C&&!j)){S(!0),N(null);try{let _=null,z=null;if(i){const[ee,de]=await Promise.allSettled([vi({baseUrl:e,accessToken:D,from:s,to:r,timeZone:a,tzOffsetMinutes:l}),rr({baseUrl:e,accessToken:D,from:s,to:r,timeZone:a,tzOffsetMinutes:l,rolling:!0})]);if(ee.status==="rejected")throw ee.reason;_=ee.value,z=de.status==="fulfilled"?de.value:null}else z=await rr({baseUrl:e,accessToken:D,from:s,to:r,timeZone:a,tzOffsetMinutes:l,rolling:!0});let X=i&&Array.isArray(_?.data)?_.data:[];i&&(X=dr(X,s,r,{timeZone:a,offsetMinutes:l,now:c}));let se=z?.totals||_?.summary?.totals||null,H=z?.rolling||_?.summary?.rolling||null;if(i&&!se&&!z)try{const ee=await rr({baseUrl:e,accessToken:D,from:s,to:r,timeZone:a,tzOffsetMinutes:l,rolling:!0});se=ee?.totals||null,H=ee?.rolling||H}catch{}const Q=new Date().toISOString();d(X),m(se),y(H),x("edge"),v(Q),se&&A?L({summary:se,rolling:H,daily:X,from:s,to:r,includeDaily:i,fetchedAt:Q}):A||$()}catch(_){if(A){const z=U();if(z?.summary){m(z.summary),y(z.rolling||null);const X=Array.isArray(z.daily)?z.daily:[],se=i?dr(X,z.from||s,z.to||r,{timeZone:a,offsetMinutes:l,now:c}):X;d(se),x("cache"),v(z.fetchedAt||null),N(null)}else{const X=_;N(X?.message||String(X)),d([]),m(null),y(null),x("edge"),v(null)}}else{const z=_;N(z?.message||String(z)),d([]),m(null),y(null),x("edge"),v(null)}}finally{S(!1)}}},[t,e,s,i,C,n,A,c,U,I,a,r,l,$,L,j]);return h.useEffect(()=>{const D=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1");if(!I&&!n&&!C&&!D){d([]),m(null),y(null),N(null),S(!1),x("edge"),v(null);return}if(!A)$(),d([]),m(null),y(null),N(null),x("edge"),v(null);else{const _=U();if(_?.summary){m(_.summary),y(_.rolling||null);const z=Array.isArray(_.daily)?_.daily:[],X=i?dr(z,_.from||s,_.to||r,{timeZone:a,offsetMinutes:l,now:c}):z;d(X),x("cache"),v(_.fetchedAt||null)}}W()},[t,C,U,W,I,n,A,$,j]),{daily:u,summary:f,rolling:p,source:C?"mock":b,fetchedAt:w,loading:T,error:R,refresh:W}}function Sm(e){try{return new URL(e).host}catch{return null}}function ur(e){if(!e)return null;const t=String(e).trim(),n=t.split("-");if(n.length!==3)return null;const s=Number(n[0]),r=Number(n[1])-1,i=Number(n[2]);if(!Number.isFinite(s)||!Number.isFinite(r)||!Number.isFinite(i))return null;const o=new Date(Date.UTC(s,r,i));return Number.isFinite(o.getTime())&&Xt(o)===t?o:null}function km(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function dr(e,t,n,{timeZone:s,offsetMinutes:r,now:i}={}){const o=ur(t),a=ur(n);if(!o||!a||a<o)return Array.isArray(e)?e:[];const l=i instanceof Date&&Number.isFinite(i.getTime())?i:new Date,c=pi({timeZone:s,offsetMinutes:r,date:l}),u=ur(c),d=u?u.getTime():l.getTime(),f=new Map;for(const p of e||[])p?.day&&f.set(p.day,p);const m=[];for(let p=o;p<=a;p=km(p,1)){const y=Xt(p),b=f.get(y),x=p.getTime()>d;if(b){m.push({...b,missing:!1,future:x});continue}m.push({day:y,total_tokens:null,billable_total_tokens:null,input_tokens:null,cached_input_tokens:null,output_tokens:null,reasoning_output_tokens:null,missing:!x,future:x})}return m}function Tm({baseUrl:e,accessToken:t,guestAllowed:n=!1,from:s,to:r,cacheKey:i,timeZone:o,tzOffsetMinutes:a}={}){const[l,c]=h.useState(null),[u,d]=h.useState("edge"),[f,m]=h.useState(!1),[p,y]=h.useState(null),b=en(),x=tn(t),w=!n,v=h.useMemo(()=>{if(!i)return null;const A=Cm(e)||"default",M=js({timeZone:o,offsetMinutes:a});return`vibeusage.modelBreakdown.${i}.${A}.${s}.${r}.${M}`},[e,i,s,o,r,a]),T=h.useCallback(()=>{if(!v||typeof window>"u")return null;try{const A=window.localStorage.getItem(v);if(!A)return null;const M=JSON.parse(A);return!M||!M.breakdown?null:M}catch{return null}},[v]),S=h.useCallback(A=>{if(!(!v||typeof window>"u"))try{window.localStorage.setItem(v,JSON.stringify(A))}catch{}},[v]),R=h.useCallback(()=>{if(!(!v||typeof window>"u"))try{window.localStorage.removeItem(v)}catch{}},[v]),N=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),C=h.useCallback(async()=>{const A=await ot(t);if(!(!A&&!b&&!N)){m(!0),y(null);try{const M=await wh({baseUrl:e,accessToken:A,from:s,to:r,timeZone:o,tzOffsetMinutes:a});c(M||null),d("edge"),M&&w?S({breakdown:M,fetchedAt:new Date().toISOString()}):w||R()}catch(M){if(w){const U=T();if(U?.breakdown)c(U.breakdown),d("cache"),y(null);else{c(null),d("edge");const L=M;y(L?.message||String(L))}}else{c(null),d("edge");const U=M;y(U?.message||String(U))}}finally{m(!1)}}},[t,e,s,b,n,w,T,o,r,x,a,R,S,N]);return h.useEffect(()=>{if(!x&&!n&&!b&&!N){c(null),d("edge"),y(null),m(!1);return}if(!w)R(),c(null),d("edge"),y(null);else{const A=T();A?.breakdown&&(c(A.breakdown),d("cache"))}C()},[t,b,T,C,x,n,w,R,N]),{breakdown:l,source:b?"mock":u,loading:f,error:p,refresh:C}}function Cm(e){try{return new URL(e).host}catch{return null}}const ec=new Set(["day","hour","month"]);function Em(e){return ec.has(e)}function Uo(e){if(e==null)return null;const t=String(e).trim();if(!/^[0-9]+$/.test(t))return null;const n=t.replace(/^0+/,"");return n.length===0?"0":n}function Am(e,t){const n=Uo(e),s=Uo(t);if(n&&s)return n.length!==s.length?n.length<s.length?-1:1:n===s?0:n<s?-1:1;const r=Ue(e),i=Ue(t);return r==null&&i==null?0:r==null?1:i==null?-1:r===i?0:r<i?-1:1}function Pm(e,t){const n=typeof e=="string"?e:String(e||""),s=typeof t=="string"?t:String(t||"");return n===s?0:n<s?-1:1}function Rm(e){if(!e)return null;const n=String(e).trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!n)return null;const s=Number(n[1]),r=Number(n[2]),i=Number(n[3]);if(!Number.isFinite(s)||!Number.isFinite(r)||!Number.isFinite(i))return null;const o=new Date(Date.UTC(s,r-1,i));return!Number.isFinite(o.getTime())||o.getUTCFullYear()!==s||o.getUTCMonth()+1!==r||o.getUTCDate()!==i?null:o.getTime()}function Mm(e){if(!e)return null;const n=String(e).trim().match(/^(\d{4})-(\d{2})$/);if(!n)return null;const s=Number(n[1]),r=Number(n[2]);if(!Number.isFinite(s)||!Number.isFinite(r)||r<1||r>12)return null;const i=new Date(Date.UTC(s,r-1,1));return Number.isFinite(i.getTime())?i.getTime():null}function Dm(e){if(!e)return null;const n=String(e).trim().match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2}))?Z?$/);if(!n)return null;const s=Number(n[1]),r=Number(n[2]),i=Number(n[3]),o=Number(n[4]),a=Number(n[5]),l=Number(n[6]||0);if(!Number.isFinite(s)||!Number.isFinite(r)||!Number.isFinite(i)||!Number.isFinite(o)||!Number.isFinite(a)||!Number.isFinite(l)||r<1||r>12||i<1||i>31||o<0||o>23||a<0||a>59||l<0||l>59)return null;const c=new Date(Date.UTC(s,r-1,i,o,a,l));return Number.isFinite(c.getTime())?c.getTime():null}function Nm(e,t,n){const s=n==="hour"?Dm:n==="month"?Mm:Rm,r=s(e),i=s(t);return r!=null&&i!=null?r===i?0:r<i?-1:1:Pm(e,t)}function tc(e,{key:t,dir:n}){const s=n==="asc"?1:-1,r=Array.isArray(e)?e:[],i=ec.has(t)?(a,l)=>Nm(a,l,t):Am,o=a=>t==="total_tokens"&&a?.billable_total_tokens!=null?a.billable_total_tokens:a?.[t];return r.map((a,l)=>({row:a,index:l})).sort((a,l)=>{const c=o(a.row),u=o(l.row),d=c==null,f=u==null;if(d&&f)return a.index-l.index;if(d)return 1;if(f)return-1;const m=i(c,u);return m!==0?m*s:a.index-l.index}).map(a=>a.row)}const jm=[{key:"day",label:P("daily.sort.date.label"),title:P("daily.sort.date.title")},{key:"total_tokens",label:P("daily.sort.total.label"),title:P("daily.sort.total.title")},{key:"input_tokens",label:P("daily.sort.input.label"),title:P("daily.sort.input.title")},{key:"output_tokens",label:P("daily.sort.output.label"),title:P("daily.sort.output.title")},{key:"cached_input_tokens",label:P("daily.sort.cached.label"),title:P("daily.sort.cached.title")},{key:"reasoning_output_tokens",label:P("daily.sort.reasoning.label"),title:P("daily.sort.reasoning.title")},{key:"conversation_count",label:P("daily.sort.conversations.label"),title:P("daily.sort.conversations.title")}];function Wo(e){const t=Em(e)?e:"day";return jm.map((n,s)=>s===0?{...n,key:t}:n)}function Ko(e,{key:t,dir:n}){return tc(e,{key:t,dir:n})}const vs=12,Lm=["total_tokens","billable_total_tokens","input_tokens","cached_input_tokens","cache_creation_input_tokens","output_tokens","reasoning_output_tokens"];function Vm(e){if(typeof e=="bigint")return e!==0n;if(typeof e=="number")return Number.isFinite(e)&&e!==0;if(e==null)return!1;const t=String(e).trim();if(!t||!/^-?\d+$/.test(t))return!1;const n=t.startsWith("-")?t.slice(1):t;return/[1-9]/.test(n)}function Im(e){return Lm.some(t=>Vm(e?.[t]))}function Fm(e){const t=Array.isArray(e)?e:[];if(!t.length)return[];const n=tc(t,{key:"month",dir:"asc"}),s=n.findIndex(r=>r?.month&&Im(r));return s===-1?t:n.slice(s)}function _m(e,t,n=vs){const s=Array.isArray(e)?e:[],r=Number.isFinite(n)&&n>0?n:vs,o=(Number.isFinite(t)&&t>=0?Math.floor(t):0)*r;return s.slice(o,o+r)}function Om({publicMode:e,screenshotMode:t,forceInstall:n,accessEnabled:s,heatmapLoading:r,activeDays:i,hasActiveDeviceToken:o}={}){return e||t?!1:n?!0:s&&!r&&i===0&&!o}function nc(e){if(typeof e!="string")return null;const t=e.trim();return t?t.toLowerCase():null}function Bm(e){const t=nc(e?.model_id);return t||null}function sc(e,t){return e?.model?String(e.model):t}function $m(e,{copyFn:t}={}){const n=typeof t=="function"?t:o=>o,r=(Array.isArray(e?.sources)?e.sources:[]).map(o=>{const a=Ue(o?.totals?.billable_total_tokens??o?.totals?.total_tokens)??0,l=Ue(o?.totals?.total_cost_usd)??0;return{source:o?.source,totalTokens:Number.isFinite(a)?a:0,totalCost:Number.isFinite(l)?l:0,models:Array.isArray(o?.models)?o.models:[]}}).filter(o=>o.totalTokens>0);if(!r.length)return[];const i=r.reduce((o,a)=>o+a.totalTokens,0);return typeof e?.pricing?.pricing_mode=="string"&&e.pricing.pricing_mode.toUpperCase(),r.slice().sort((o,a)=>a.totalTokens-o.totalTokens).map(o=>{const a=o.source?String(o.source).toUpperCase():n("shared.placeholder.short"),l=i>0?o.totalTokens/i*100:0,c=Number.isFinite(l)?l.toFixed(1):"0.0",u=o.models.map(d=>{const f=Ue(d?.totals?.billable_total_tokens??d?.totals?.total_tokens)??0;if(!Number.isFinite(f)||f<=0)return null;const m=o.totalTokens>0?Math.round(f/o.totalTokens*1e3)/10:0,p=sc(d,n("shared.placeholder.short")),y=Bm(d),b=o.totalCost>0&&o.totalTokens>0?f/o.totalTokens*o.totalCost:null;return{id:y,name:p,share:m,usage:f,cost:b}}).filter(Boolean);return{label:a,totalPercent:String(c),usd:o.totalCost,usage:o.totalTokens,models:u}})}function Um(e,{limit:t=3,copyFn:n}={}){const s=typeof n=="function"?n:f=>f,r=Array.isArray(e?.sources)?e.sources:[];if(!r.length)return[];const i=new Map,o=new Map,a=new Map;let l=0;for(const f of r){const m=Array.isArray(f?.models)?f.models:[];for(const p of m){const y=Ue(p?.totals?.billable_total_tokens)??0;if(!Number.isFinite(y)||y<=0)continue;l+=y;const b=sc(p,s("shared.placeholder.short")),x=nc(b);if(!x)continue;i.set(x,(i.get(x)||0)+y);const w=a.get(x)||0;y>=w&&(a.set(x,y),o.set(x,b))}}if(!i.size)return[];const c=Array.from(i.values()).reduce((f,m)=>f+m,0),u=l>0?l:c,d=Number.isFinite(t)?Math.max(0,Math.floor(t)):3;return Array.from(i.entries()).map(([f,m])=>{const p=u>0?(m/u*100).toFixed(1):"0.0";return{id:f,name:o.get(f)||s("shared.placeholder.short"),tokens:m,percent:String(p)}}).sort((f,m)=>m.tokens!==f.tokens?m.tokens-f.tokens:String(f.name).localeCompare(String(m.name))).slice(0,d)}function wi(){const e=h.useContext(qf);if(e===null)throw new Error("useTheme must be used within a ThemeProvider");return e}const Ct=12,hn=3,fr=26,Wm=["#ecfdf5","#a7f3d0","#6ee7b7","#34d399","#10b981"],Km=["#064e3b","#065f46","#059669","#10b981","#34d399"],Hm=[P("heatmap.month.jan"),P("heatmap.month.feb"),P("heatmap.month.mar"),P("heatmap.month.apr"),P("heatmap.month.may"),P("heatmap.month.jun"),P("heatmap.month.jul"),P("heatmap.month.aug"),P("heatmap.month.sep"),P("heatmap.month.oct"),P("heatmap.month.nov"),P("heatmap.month.dec")];function Gm(e){if(typeof e=="bigint")return e.toLocaleString();if(typeof e=="number")return Number.isFinite(e)?Math.round(e).toLocaleString():"0";if(typeof e=="string"){const t=Number(e);return Number.isFinite(t)?Math.round(t).toLocaleString():e}return"0"}function Ym(e){if(typeof e!="string")return null;const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;const n=new Date(Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3])));return Number.isFinite(n.getTime())?n:null}function rc(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function zm(e,t){return Math.floor((Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())-Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()))/864e5)}function qm(e,t){const n=t==="mon"?1:0,s=e.getUTCDay();return rc(e,-((s-n+7)%7))}function Xm(e,t,n){if(!e)return[];const s=Ym(t)||new Date,r=[];for(let c=11;c>=0;c-=1)r.push(new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth()-c,1)));const i=qm(s,n),o=rc(i,-(e-1)*7),a=[],l=new Set;for(const c of r){const u=Math.floor(zm(o,c)/7);u<0||u>=e||l.has(u)||(l.add(u),a.push({label:Hm[c.getUTCMonth()],index:u}))}return a}function Zm({heatmap:e,timeZoneLabel:t,timeZoneShortLabel:n,hideLegend:s=!1}){const{resolvedTheme:r}=wi(),o=r==="dark"?Km:Wm,a=h.useRef(null);h.useEffect(()=>{const p=a.current;p&&(p.scrollLeft=p.scrollWidth)},[e?.weeks]);const l=e?.week_starts_on==="mon"?"mon":"sun",c=h.useMemo(()=>{const p=Array.isArray(e?.weeks)?e.weeks:[];if(!p.length)return{weeks:[]};const y=[];for(const b of p)for(const x of Array.isArray(b)?b:[])x?.day&&y.push({day:x.day,total_tokens:x.total_tokens??x.value??0,billable_total_tokens:x.billable_total_tokens??x.value??x.total_tokens??0});return Br({dailyRows:y,weeks:Math.max(52,p.length),to:e?.to,weekStartsOn:l})},[e?.to,e?.weeks,l]),u=c?.weeks||[],d=l==="mon"?["Mon","Tue","Wed","Thu","Fri","Sat","Sun"].map(p=>P(`heatmap.day.${p.toLowerCase()}`)):["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(p=>P(`heatmap.day.${p.toLowerCase()}`)),f=h.useMemo(()=>Xm(u.length,c?.to,l),[c?.to,u.length,l]);if(!u.length)return g.jsx("div",{className:"py-8 text-center text-sm text-oai-gray-500",children:P("heatmap.empty")});const m=fr+u.length*Ct+Math.max(0,u.length-1)*hn;return g.jsxs("div",{className:"rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-5",children:[g.jsxs("div",{className:"flex items-baseline justify-between mb-3",children:[g.jsx("h3",{className:"text-sm font-medium text-oai-gray-500 dark:text-oai-gray-300 uppercase tracking-wide",children:P("heatmap.title")}),g.jsx("span",{className:"text-xs text-oai-gray-400 dark:text-oai-gray-400",children:n||P("heatmap.legend.utc")})]}),g.jsx("div",{ref:a,className:"overflow-x-auto overflow-y-hidden heatmap-scroll-thin",children:g.jsxs("div",{style:{minWidth:m},children:[g.jsxs("div",{className:"grid text-[10px] uppercase text-oai-gray-400 dark:text-oai-gray-400 mb-1",style:{gridTemplateColumns:`${fr}px repeat(${u.length}, ${Ct}px)`,columnGap:hn},children:[g.jsx("span",{}),f.map(p=>g.jsx("span",{style:{gridColumnStart:p.index+2},className:"whitespace-nowrap",children:p.label},`${p.label}-${p.index}`))]}),g.jsxs("div",{className:"grid",style:{gridTemplateColumns:`${fr}px repeat(${u.length}, ${Ct}px)`,columnGap:hn},children:[g.jsx("div",{className:"grid text-[10px] text-oai-gray-400 dark:text-oai-gray-400 sticky left-0 bg-white dark:bg-oai-gray-900 pr-2",style:{gridTemplateRows:`repeat(7, ${Ct}px)`,rowGap:hn},children:d.map(p=>g.jsx("span",{className:"leading-none",children:p},p))}),g.jsx("div",{className:"grid",style:{gridAutoFlow:"column",gridTemplateRows:`repeat(7, ${Ct}px)`,gap:hn},children:u.map((p,y)=>(Array.isArray(p)?p:[]).map((b,x)=>{if(!b)return null;const w=b.day||`e-${y}-${x}`,v=Number(b.level)||0,T=o[v]||o[0],S=t||n||P("heatmap.legend.utc");return g.jsx("span",{title:P("heatmap.tooltip",{day:b.day,value:Gm(b.value),unit:P("heatmap.unit.tokens"),tz:S}),className:"rounded-[2px] transition-transform hover:scale-125 hover:z-10",style:{width:Ct,height:Ct,background:T}},w)}))})]})]})}),!s&&g.jsxs("div",{className:"flex items-center justify-center gap-2 mt-3",children:[g.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400",children:P("heatmap.legend.less")}),g.jsx("div",{className:"flex gap-0.5",children:o.map((p,y)=>g.jsx("span",{className:"rounded-[1px]",style:{width:10,height:10,background:p}},y))}),g.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400",children:P("heatmap.legend.more")})]})]})}const Jm={clipPath:"inset(50%)",overflow:"hidden",whiteSpace:"nowrap",border:0,padding:0,width:1,height:1,margin:-1},ic={...Jm,position:"fixed",top:0,left:0};function zn(e){const t=Dn(Qm,e).current;return t.next=e,Pe(t.effect),t}function Qm(e){const t={current:e,next:e,effect:()=>{t.current=t.next}};return t}var ws=Symbol("NOT_FOUND");function ep(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function tp(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!="object")throw new TypeError(t)}function np(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(n=>typeof n=="function")){const n=e.map(s=>typeof s=="function"?`function ${s.name||"unnamed"}()`:typeof s).join(", ");throw new TypeError(`${t}[${n}]`)}}var Ho=e=>Array.isArray(e)?e:[e];function sp(e){const t=Array.isArray(e[0])?e[0]:e;return np(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function rp(e,t){const n=[],{length:s}=e;for(let r=0;r<s;r++)n.push(e[r].apply(null,t));return n}function ip(e){let t;return{get(n){return t&&e(t.key,n)?t.value:ws},put(n,s){t={key:n,value:s}},getEntries(){return t?[t]:[]},clear(){t=void 0}}}function op(e,t){let n=[];function s(a){const l=n.findIndex(c=>t(a,c.key));if(l>-1){const c=n[l];return l>0&&(n.splice(l,1),n.unshift(c)),c.value}return ws}function r(a,l){s(a)===ws&&(n.unshift({key:a,value:l}),n.length>e&&n.pop())}function i(){return n}function o(){n=[]}return{get:s,put:r,getEntries:i,clear:o}}var ap=(e,t)=>e===t;function lp(e){return function(n,s){if(n===null||s===null||n.length!==s.length)return!1;const{length:r}=n;for(let i=0;i<r;i++)if(!e(n[i],s[i]))return!1;return!0}}function cp(e,t){const n=typeof t=="object"?t:{equalityCheck:t},{equalityCheck:s=ap,maxSize:r=1,resultEqualityCheck:i}=n,o=lp(s);let a=0;const l=r<=1?ip(o):op(r,o);function c(){let u=l.get(arguments);if(u===ws){if(u=e.apply(null,arguments),a++,i){const f=l.getEntries().find(m=>i(m.value,u));f&&(u=f.value,a!==0&&a--)}l.put(arguments,u)}return u}return c.clearCache=()=>{l.clear(),c.resetResultsCount()},c.resultsCount=()=>a,c.resetResultsCount=()=>{a=0},c}var up=class{constructor(e){this.value=e}deref(){return this.value}},dp=typeof WeakRef<"u"?WeakRef:up,fp=0,Go=1;function qn(){return{s:fp,v:void 0,o:null,p:null}}function oc(e,t={}){let n=qn();const{resultEqualityCheck:s}=t;let r,i=0;function o(){let a=n;const{length:l}=arguments;for(let d=0,f=l;d<f;d++){const m=arguments[d];if(typeof m=="function"||typeof m=="object"&&m!==null){let p=a.o;p===null&&(a.o=p=new WeakMap);const y=p.get(m);y===void 0?(a=qn(),p.set(m,a)):a=y}else{let p=a.p;p===null&&(a.p=p=new Map);const y=p.get(m);y===void 0?(a=qn(),p.set(m,a)):a=y}}const c=a;let u;if(a.s===Go)u=a.v;else if(u=e.apply(null,arguments),i++,s){const d=r?.deref?.()??r;d!=null&&s(d,u)&&(u=d,i!==0&&i--),r=typeof u=="object"&&u!==null||typeof u=="function"?new dp(u):u}return c.s=Go,c.v=u,u}return o.clearCache=()=>{n=qn(),o.resetResultsCount()},o.resultsCount=()=>i,o.resetResultsCount=()=>{i=0},o}function ac(e,...t){const n=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,s=(...r)=>{let i=0,o=0,a,l={},c=r.pop();typeof c=="object"&&(l=c,c=r.pop()),ep(c,`createSelector expects an output function after the inputs, but received: [${typeof c}]`);const u={...n,...l},{memoize:d,memoizeOptions:f=[],argsMemoize:m=oc,argsMemoizeOptions:p=[]}=u,y=Ho(f),b=Ho(p),x=sp(r),w=d(function(){return i++,c.apply(null,arguments)},...y),v=m(function(){o++;const S=rp(x,arguments);return a=w.apply(null,S),a},...b);return Object.assign(v,{resultFunc:c,memoizedResultFunc:w,dependencies:x,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>a,recomputations:()=>i,resetRecomputations:()=>{i=0},memoize:d,argsMemoize:m})};return Object.assign(s,{withTypes:()=>s}),s}var hp=ac(oc),mp=Object.assign((e,t=hp)=>{tp(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);const n=Object.keys(e),s=n.map(i=>e[i]);return t(s,(...i)=>i.reduce((o,a,l)=>(o[n[l]]=a,o),{}))},{withTypes:()=>mp});ac({memoize:cp,memoizeOptions:{maxSize:1,equalityCheck:Object.is}});const oe=(e,t,n,s,r,i,...o)=>{if(o.length>0)throw new Error(gi(1));let a;if(e)a=e;else throw new Error("Missing arguments");return a};var hr={exports:{}},mr={};var Yo;function pp(){if(Yo)return mr;Yo=1;var e=Al();function t(d,f){return d===f&&(d!==0||1/d===1/f)||d!==d&&f!==f}var n=typeof Object.is=="function"?Object.is:t,s=e.useState,r=e.useEffect,i=e.useLayoutEffect,o=e.useDebugValue;function a(d,f){var m=f(),p=s({inst:{value:m,getSnapshot:f}}),y=p[0].inst,b=p[1];return i(function(){y.value=m,y.getSnapshot=f,l(y)&&b({inst:y})},[d,m,f]),r(function(){return l(y)&&b({inst:y}),d(function(){l(y)&&b({inst:y})})},[d]),o(m),m}function l(d){var f=d.getSnapshot;d=d.value;try{var m=f();return!n(d,m)}catch{return!0}}function c(d,f){return f()}var u=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?c:a;return mr.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:u,mr}var zo;function lc(){return zo||(zo=1,hr.exports=pp()),hr.exports}var gp=lc(),pr={exports:{}},gr={};var qo;function yp(){if(qo)return gr;qo=1;var e=Al(),t=lc();function n(c,u){return c===u&&(c!==0||1/c===1/u)||c!==c&&u!==u}var s=typeof Object.is=="function"?Object.is:n,r=t.useSyncExternalStore,i=e.useRef,o=e.useEffect,a=e.useMemo,l=e.useDebugValue;return gr.useSyncExternalStoreWithSelector=function(c,u,d,f,m){var p=i(null);if(p.current===null){var y={hasValue:!1,value:null};p.current=y}else y=p.current;p=a(function(){function x(R){if(!w){if(w=!0,v=R,R=f(R),m!==void 0&&y.hasValue){var N=y.value;if(m(N,R))return T=N}return T=R}if(N=T,s(v,R))return N;var C=f(R);return m!==void 0&&m(N,C)?(v=R,N):(v=R,T=C)}var w=!1,v,T,S=d===void 0?null:d;return[function(){return x(u())},S===null?void 0:function(){return x(S())}]},[u,d,f,m]);var b=r(c,p[0],p[1]);return o(function(){y.hasValue=!0,y.value=b},[b]),l(b),b},gr}var Xo;function bp(){return Xo||(Xo=1,pr.exports=yp()),pr.exports}var xp=bp();const vp=Pl(19),wp=vp?kp:Tp;function Sp(e,t,n,s,r){return wp(e,t,n,s,r)}function kp(e,t,n,s,r){const i=h.useCallback(()=>t(e.getSnapshot(),n,s,r),[e,t,n,s,r]);return gp.useSyncExternalStore(e.subscribe,i,i)}function Tp(e,t,n,s,r){return xp.useSyncExternalStoreWithSelector(e.subscribe,e.getSnapshot,e.getSnapshot,i=>t(i,n,s,r))}class xn{constructor(t){this.state=t,this.listeners=new Set,this.updateTick=0}subscribe=t=>(this.listeners.add(t),()=>{this.listeners.delete(t)});getSnapshot=()=>this.state;setState(t){if(this.state===t)return;this.state=t,this.updateTick+=1;const n=this.updateTick;for(const s of this.listeners){if(n!==this.updateTick)return;s(t)}}update(t){for(const n in t)if(!Object.is(this.state[n],t[n])){xn.prototype.setState.call(this,{...this.state,...t});return}}set(t,n){Object.is(this.state[t],n)||xn.prototype.setState.call(this,{...this.state,[t]:n})}notifyAll(){const t={...this.state};xn.prototype.setState.call(this,t)}}class cc extends xn{constructor(t,n={},s){super(t),this.context=n,this.selectors=s}controlledValues=new Map;useSyncedValue(t,n){h.useDebugValue(t),Pe(()=>{this.state[t]!==n&&this.set(t,n)},[t,n])}useSyncedValueWithCleanup(t,n){const s=this;Pe(()=>(s.state[t]!==n&&s.set(t,n),()=>{s.set(t,void 0)}),[s,t,n])}useSyncedValues(t){const n=this,s=Object.values(t);Pe(()=>{n.update(t)},[n,...s])}useControlledProp(t,n,s){h.useDebugValue(t);const r=this,i=n!==void 0;this.controlledValues.has(t)||(this.controlledValues.set(t,i),!i&&!Object.is(this.state[t],s)&&super.setState({...this.state,[t]:s})),Pe(()=>{i&&!Object.is(r.state[t],n)&&super.setState({...r.state,[t]:n})},[r,t,n,s,i])}set(t,n){this.controlledValues.get(t)!==!0&&super.set(t,n)}update(t){const n={...t};for(const s in n)if(Object.hasOwn(n,s)&&this.controlledValues.get(s)===!0){delete n[s];continue}super.update(n)}setState(t){const n={...t};for(const s in n)if(Object.hasOwn(n,s)&&this.controlledValues.get(s)===!0){delete n[s];continue}super.setState({...this.state,...n})}select=(t,n,s,r)=>{const i=this.selectors[t];return i(this.state,n,s,r)};useState=(t,n,s,r)=>{h.useDebugValue(t);const i=this.selectors[t];return Sp(this,i,n,s,r)};useContextCallback(t,n){h.useDebugValue(t);const s=ie(n??Rl);this.context[t]=s}useStateSetter(t){const n=h.useRef(void 0);return n.current===void 0&&(n.current=s=>{this.set(t,s)}),n.current}observe(t,n){let s;typeof t=="function"?s=t:s=this.selectors[t];let r=s(this.state);return n(r,r,this),this.subscribe(i=>{const o=s(i);if(!Object.is(r,o)){const a=r;r=o,n(o,a,this)}})}}const Xn=null;class Cp{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=t=>{this.isScheduled=!1;const n=this.callbacks,s=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,s>0)for(let r=0;r<n.length;r+=1)n[r]?.(t)};request(t){const n=this.nextId;return this.nextId+=1,this.callbacks.push(t),this.callbacksCount+=1,!this.isScheduled&&(requestAnimationFrame(this.tick),this.isScheduled=!0),n}cancel(t){const n=t-this.startId;n<0||n>=this.callbacks.length||(this.callbacks[n]=null,this.callbacksCount-=1)}}const Zn=new Cp;class rt{static create(){return new rt}static request(t){return Zn.request(t)}static cancel(t){return Zn.cancel(t)}currentId=Xn;request(t){this.cancel(),this.currentId=Zn.request(()=>{this.currentId=Xn,t()})}cancel=()=>{this.currentId!==Xn&&(Zn.cancel(this.currentId),this.currentId=Xn)};disposeEffect=()=>this.cancel}function uc(){const e=Dn(rt.create).current;return Fl(e.disposeEffect),e}function Ep(){const e=new Map;return{emit(t,n){e.get(t)?.forEach(s=>s(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){e.get(t)?.delete(n)}}}const Ap=h.createContext(null),Pp=h.createContext(null),dc=()=>h.useContext(Ap)?.id||null,fc=e=>{const t=h.useContext(Pp);return e??t};function Ss(e){return`data-base-ui-${e}`}const ks=h.forwardRef(function(t,n){const[s,r]=h.useState();Pe(()=>{Oh&&r("button")},[]);const i={tabIndex:0,role:s};return g.jsx("span",{...t,ref:n,style:ic,"aria-hidden":s?void 0:!0,...i,"data-base-ui-focus-guard":""})});let Zo=0;function yr(e,t={}){const{preventScroll:n=!1,cancelPrevious:s=!0,sync:r=!1}=t;s&&cancelAnimationFrame(Zo);const i=()=>e?.focus({preventScroll:n});r?i():Zo=requestAnimationFrame(i)}const qt={inert:new WeakMap,"aria-hidden":new WeakMap,none:new WeakMap};function Jo(e){return e==="inert"?qt.inert:e==="aria-hidden"?qt["aria-hidden"]:qt.none}let Jn=new WeakSet,Qn={},br=0;const hc=e=>e&&(e.host||hc(e.parentNode)),Rp=(e,t)=>t.map(n=>{if(e.contains(n))return n;const s=hc(n);return e.contains(s)?s:null}).filter(n=>n!=null);function Mp(e,t,n,s){const r="data-base-ui-inert",i=s?"inert":n?"aria-hidden":null,o=Rp(t,e),a=new Set,l=new Set(o),c=[];Qn[r]||(Qn[r]=new WeakMap);const u=Qn[r];o.forEach(d),f(t),a.clear();function d(m){!m||a.has(m)||(a.add(m),m.parentNode&&d(m.parentNode))}function f(m){!m||l.has(m)||[].forEach.call(m.children,p=>{if(Ml(p)!=="script")if(a.has(p))f(p);else{const y=i?p.getAttribute(i):null,b=y!==null&&y!=="false",x=Jo(i),w=(x.get(p)||0)+1,v=(u.get(p)||0)+1;x.set(p,w),u.set(p,v),c.push(p),w===1&&b&&Jn.add(p),v===1&&p.setAttribute(r,""),!b&&i&&p.setAttribute(i,i==="inert"?"":"true")}})}return br+=1,()=>{c.forEach(m=>{const p=Jo(i),b=(p.get(m)||0)-1,x=(u.get(m)||0)-1;p.set(m,b),u.set(m,x),b||(!Jn.has(m)&&i&&m.removeAttribute(i),Jn.delete(m)),x||m.removeAttribute(r)}),br-=1,br||(qt.inert=new WeakMap,qt["aria-hidden"]=new WeakMap,qt.none=new WeakMap,Jn=new WeakSet,Qn={})}}function Dp(e,t=!1,n=!1){const s=Ve(e[0]).body;return Mp(e.concat(Array.from(s.querySelectorAll("[aria-live]"))),s,t,n)}const mc=h.createContext(null),pc=()=>h.useContext(mc),Np=Ss("portal");function jp(e={}){const{ref:t,container:n,componentProps:s=yn,elementProps:r,elementState:i}=e,o=bi(),l=pc()?.portalNode,[c,u]=h.useState(null),[d,f]=h.useState(null),m=ie(x=>{x!==null&&f(x)}),p=h.useRef(null);Pe(()=>{if(n===null){p.current&&(p.current=null,f(null),u(null));return}if(o==null)return;const x=(n&&(Xf(n)?n:n.current))??l??document.body;if(x==null){p.current&&(p.current=null,f(null),u(null));return}p.current!==x&&(p.current=x,f(null),u(x))},[n,l,o]);const y=nn("div",s,{ref:[t,m],state:i,props:[{id:o,[Np]:""},r]});return{portalNode:d,portalSubtree:c&&y?yi.createPortal(y,c):null}}const Lp=h.forwardRef(function(t,n){const{children:s,container:r,className:i,render:o,renderGuards:a,...l}=t,{portalNode:c,portalSubtree:u}=jp({container:r,ref:n,componentProps:t,elementProps:l}),d=h.useRef(null),f=h.useRef(null),m=h.useRef(null),p=h.useRef(null),[y,b]=h.useState(null),x=y?.modal,w=y?.open,v=typeof a=="boolean"?a:!!y&&!y.modal&&y.open&&!!c;h.useEffect(()=>{if(!c||x)return;function S(R){c&&R.relatedTarget&&bn(R)&&(R.type==="focusin"?Bo:hm)(c)}return c.addEventListener("focusin",S,!0),c.addEventListener("focusout",S,!0),()=>{c.removeEventListener("focusin",S,!0),c.removeEventListener("focusout",S,!0)}},[c,x]),h.useEffect(()=>{!c||w||Bo(c)},[w,c]);const T=h.useMemo(()=>({beforeOutsideRef:d,afterOutsideRef:f,beforeInsideRef:m,afterInsideRef:p,portalNode:c,setFocusManagerState:b}),[c]);return g.jsxs(h.Fragment,{children:[u,g.jsxs(mc.Provider,{value:T,children:[v&&c&&g.jsx(ks,{"data-type":"outside",ref:d,onFocus:S=>{if(bn(S,c))m.current?.focus();else{const R=y?y.domReference:null;Jl(R)?.focus()}}}),v&&c&&g.jsx("span",{"aria-owns":c.id,style:Ih}),c&&yi.createPortal(s,c),v&&c&&g.jsx(ks,{"data-type":"outside",ref:f,onFocus:S=>{if(bn(S,c))p.current?.focus();else{const R=y?y.domReference:null;Zl(R)?.focus(),y?.closeOnFocusOut&&y?.onOpenChange(!1,pt(Dl,S.nativeEvent))}}})]})]})});function mt(e){return e==null?e:"current"in e?e.current:e}function Vp(e,t){const n=Ls(e.target);return e instanceof n.KeyboardEvent?"keyboard":e instanceof n.FocusEvent?t||"keyboard":"pointerType"in e?e.pointerType||"keyboard":"touches"in e?"touch":e instanceof n.MouseEvent?t||(e.detail===0?"keyboard":"mouse"):""}const Qo=20;let xt=[];function Si(){xt=xt.filter(e=>e.isConnected)}function Ip(e){Si(),e&&Ml(e)!=="body"&&(xt.push(e),xt.length>Qo&&(xt=xt.slice(-Qo)))}function xr(){return Si(),xt[xt.length-1]}function Fp(e){if(!e)return null;const t=jn();return ql(e,t)?e:Vs(e,t)[0]||e}function _p(e){return!e||!e.isConnected?!1:typeof e.checkVisibility=="function"?e.checkVisibility():jl(e).display!=="none"}function ea(e,t){if(!t.current.includes("floating")&&!e.getAttribute("role")?.includes("dialog"))return;const n=jn(),r=fm(e,n).filter(o=>{const a=o.getAttribute("data-tabindex")||"";return ql(o,n)||o.hasAttribute("data-tabindex")&&!a.startsWith("-")}),i=e.getAttribute("tabindex");t.current.includes("floating")||r.length===0?i!=="0"&&e.setAttribute("tabindex","0"):(i!=="-1"||e.hasAttribute("data-tabindex")&&e.getAttribute("data-tabindex")!=="-1")&&(e.setAttribute("tabindex","-1"),e.setAttribute("data-tabindex","-1"))}function Op(e){const{context:t,children:n,disabled:s=!1,order:r=["content"],initialFocus:i=!0,returnFocus:o=!0,restoreFocus:a=!1,modal:l=!0,closeOnFocusOut:c=!0,openInteractionType:u="",getInsideElements:d=()=>[],nextFocusableElement:f,previousFocusableElement:m,beforeContentFocusGuardRef:p,externalTree:y}=e,b="rootStore"in t?t.rootStore:t,x=b.useState("open"),w=b.useState("domReferenceElement"),v=b.useState("floatingElement"),{events:T,dataRef:S}=b.context,R=ie(()=>S.current.floatingContext?.nodeId),N=ie(d),C=i===!1,I=Fo(w)&&C,A=zn(r),M=zn(i),U=zn(o),L=zn(u),$=fc(y),j=pc(),W=h.useRef(null),pe=h.useRef(null),D=h.useRef(!1),_=h.useRef(!1),z=h.useRef(!1),X=h.useRef(-1),se=h.useRef(""),H=h.useRef(""),Q=h.useRef(null),ee=h.useRef(null),de=jo(Q,p,j?.beforeInsideRef),be=jo(ee,j?.afterInsideRef),Ne=ps(),Be=ps(),Qe=uc(),et=j!=null,E=Wr(v),te=ie((V=E)=>V?Vs(V,jn()):[]),G=ie(V=>{const J=te(V);return A.current.map(()=>J).filter(Boolean).flat()});h.useEffect(()=>{if(s||!l)return;function V(Z){Z.key==="Tab"&&we(E,Ut(Ve(E)))&&te().length===0&&!I&&Yh(Z)}const J=Ve(E);return J.addEventListener("keydown",V),()=>{J.removeEventListener("keydown",V)}},[s,w,E,l,A,I,te,G]),h.useEffect(()=>{if(s||!v)return;function V(J){const Z=Xe(J),ce=te().indexOf(Z);ce!==-1&&(X.current=ce)}return v.addEventListener("focusin",V),()=>{v.removeEventListener("focusin",V)}},[s,v,te]),h.useEffect(()=>{if(s||!x)return;const V=Ve(E);function J(){z.current=!1}function Z(ce){const K=Xe(ce),Y=we(v,K)||we(w,K)||we(j?.portalNode,K);z.current=!Y,H.current=ce.pointerType||"keyboard"}function ne(){H.current="keyboard"}return V.addEventListener("pointerdown",Z,!0),V.addEventListener("pointerup",J,!0),V.addEventListener("pointercancel",J,!0),V.addEventListener("keydown",ne,!0),()=>{V.removeEventListener("pointerdown",Z,!0),V.removeEventListener("pointerup",J,!0),V.removeEventListener("pointercancel",J,!0),V.removeEventListener("keydown",ne,!0)}},[s,v,w,E,x,j]),h.useEffect(()=>{if(s||!c)return;function V(){_.current=!0,Be.start(0,()=>{_.current=!1})}function J(K){const Y=K.relatedTarget,Ee=K.currentTarget,he=Xe(K);queueMicrotask(()=>{const je=R(),Le=b.context.triggerElements,ct=Y?.hasAttribute(Ss("focus-guard"))&&[Q.current,ee.current,j?.beforeInsideRef.current,j?.afterInsideRef.current,j?.beforeOutsideRef.current,j?.afterOutsideRef.current,mt(m),mt(f)].includes(Y),ve=!(we(w,Y)||we(v,Y)||we(Y,v)||we(j?.portalNode,Y)||Y!=null&&Le.hasElement(Y)||Le.hasMatchingElement(re=>we(re,Y))||ct||$&&(zt($.nodesRef.current,je).find(re=>we(re.context?.elements.floating,Y)||we(re.context?.elements.domReference,Y))||_o($.nodesRef.current,je).find(re=>[re.context?.elements.floating,Wr(re.context?.elements.floating)].includes(Y)||re.context?.elements.domReference===Y)));if(Ee===w&&E&&ea(E,A),a&&Ee!==w&&!_p(he)&&Ut(Ve(E))===Ve(E).body){if(Rt(E)&&(E.focus(),a==="popup")){Qe.request(()=>{E.focus()});return}const re=X.current,Re=te(),Ie=Re[re]||Re[Re.length-1]||E;Rt(Ie)&&Ie.focus()}if(S.current.insideReactTree){S.current.insideReactTree=!1;return}(I||!l)&&Y&&ve&&!_.current&&(I||Y!==xr())&&(D.current=!0,b.setOpen(!1,pt(Dl,K)))})}function Z(){z.current||(S.current.insideReactTree=!0,Ne.start(0,()=>{S.current.insideReactTree=!1}))}const ne=Rt(w)?w:null,ce=[];if(!(!v&&!ne))return ne&&(ne.addEventListener("focusout",J),ne.addEventListener("pointerdown",V),ce.push(()=>{ne.removeEventListener("focusout",J),ne.removeEventListener("pointerdown",V)})),v&&(v.addEventListener("focusout",J),j&&(v.addEventListener("focusout",Z,!0),ce.push(()=>{v.removeEventListener("focusout",Z,!0)})),ce.push(()=>{v.removeEventListener("focusout",J)})),()=>{ce.forEach(K=>{K()})}},[s,w,v,E,l,$,j,b,c,a,te,I,R,A,S,Ne,Be,Qe,f,m]),h.useEffect(()=>{if(s||!v||!x)return;const V=Array.from(j?.portalNode?.querySelectorAll(`[${Ss("portal")}]`)||[]),Z=($?_o($.nodesRef.current,R()):[]).find(K=>Fo(K.context?.elements.domReference||null))?.context?.elements.domReference,ne=[v,Z,...V,...N(),W.current,pe.current,Q.current,ee.current,j?.beforeOutsideRef.current,j?.afterOutsideRef.current,mt(m),mt(f),I?w:null].filter(K=>K!=null),ce=Dp(ne,l||I);return()=>{ce()}},[x,s,w,v,l,A,j,I,$,R,N,f,m]),Pe(()=>{if(!x||s||!Rt(E))return;const V=Ve(E),J=Ut(V);queueMicrotask(()=>{const Z=G(E),ne=M.current,ce=typeof ne=="function"?ne(L.current||""):ne;if(ce===void 0||ce===!1)return;let K;ce===!0||ce===null?K=Z[0]||E:K=mt(ce),K=K||Z[0]||E,!we(E,J)&&yr(K,{preventScroll:K===E})})},[s,x,E,C,G,M,L]),Pe(()=>{if(s||!E)return;const V=Ve(E),J=Ut(V);Ip(J);function Z(K){if(K.open||(se.current=Vp(K.nativeEvent,H.current)),K.reason===Zf&&K.nativeEvent.type==="mouseleave"&&(D.current=!0),K.reason===Nl)if(K.nested)D.current=!1;else if(qh(K.nativeEvent)||Xh(K.nativeEvent))D.current=!1;else{let Y=!1;document.createElement("div").focus({get preventScroll(){return Y=!0,!1}}),Y?D.current=!1:D.current=!0}}T.on("openchange",Z);const ne=V.createElement("span");ne.setAttribute("tabindex","-1"),ne.setAttribute("aria-hidden","true"),Object.assign(ne.style,ic),et&&w&&w.insertAdjacentElement("afterend",ne);function ce(){const K=U.current;let Y=typeof K=="function"?K(se.current):K;if(Y===void 0||Y===!1)return null;if(Y===null&&(Y=!0),typeof Y=="boolean"){const he=w||xr();return he&&he.isConnected?he:ne}const Ee=w||xr()||ne;return mt(Y)||Ee}return()=>{T.off("openchange",Z);const K=Ut(V),Y=we(v,K)||$&&zt($.nodesRef.current,R(),!1).some(he=>we(he.context?.elements.floating,K)),Ee=ce();queueMicrotask(()=>{const he=Fp(Ee),je=typeof U.current!="boolean";U.current&&!D.current&&Rt(he)&&(!(!je&&he!==K&&K!==V.body)||Y)&&he.focus({preventScroll:!0}),ne.remove()})}},[s,v,E,U,S,T,$,et,w,R]),h.useEffect(()=>{queueMicrotask(()=>{D.current=!1})},[s]),h.useEffect(()=>{if(s||!x)return;function V(Z){Xe(Z)?.closest(`[${Vh}]`)&&(_.current=!0)}const J=Ve(E);return J.addEventListener("pointerdown",V,!0),()=>{J.removeEventListener("pointerdown",V,!0)}},[s,x,E]),Pe(()=>{if(!s&&j)return j.setFocusManagerState({modal:l,closeOnFocusOut:c,open:x,onOpenChange:b.setOpen,domReference:w}),()=>{j.setFocusManagerState(null)}},[s,j,l,x,b,c,w]),Pe(()=>{if(!(s||!E))return ea(E,A),()=>{queueMicrotask(Si)}},[s,E,A]);const xe=!s&&(l?!I:!0)&&(et||l);return g.jsxs(h.Fragment,{children:[xe&&g.jsx(ks,{"data-type":"inside",ref:de,onFocus:V=>{if(l){const J=G();yr(J[J.length-1])}else j?.portalNode&&(D.current=!1,bn(V,j.portalNode)?Zl(w)?.focus():mt(m??j.beforeOutsideRef)?.focus())}}),n,xe&&g.jsx(ks,{"data-type":"inside",ref:be,onFocus:V=>{l?yr(G()[0]):j?.portalNode&&(c&&(D.current=!0),bn(V,j.portalNode)?Jl(w)?.focus():mt(f??j.afterOutsideRef)?.focus())}})]})}const Bp={intentional:"onClick",sloppy:"onPointerDown"};function $p(e){return{escapeKey:typeof e=="boolean"?e:e?.escapeKey??!1,outsidePress:typeof e=="boolean"?e:e?.outsidePress??!0}}function Up(e,t={}){const n="rootStore"in e?e.rootStore:e,s=n.useState("open"),r=n.useState("floatingElement"),i=n.useState("referenceElement"),o=n.useState("domReferenceElement"),{onOpenChange:a,dataRef:l}=n.context,{enabled:c=!0,escapeKey:u=!0,outsidePress:d=!0,outsidePressEvent:f="sloppy",referencePress:m=!1,referencePressEvent:p="sloppy",ancestorScroll:y=!1,bubbles:b,externalTree:x}=t,w=fc(x),v=ie(typeof d=="function"?d:()=>!1),T=typeof d=="function"?v:d,S=h.useRef(!1),{escapeKey:R,outsidePress:N}=$p(b),C=h.useRef(null),I=ps(),A=ps(),M=ie(()=>{A.clear(),l.current.insideReactTree=!1}),U=h.useRef(!1),L=h.useRef(""),$=ie(E=>{L.current=E.pointerType}),j=ie(()=>{const E=L.current,te=E==="pen"||!E?"mouse":E,G=typeof f=="function"?f():f;return typeof G=="string"?G:G[te]}),W=ie(E=>{if(!s||!c||!u||E.key!=="Escape"||U.current)return;const te=l.current.floatingContext?.nodeId,G=w?zt(w.nodesRef.current,te):[];if(!R&&G.length>0){let J=!0;if(G.forEach(Z=>{Z.context?.open&&!Z.context.dataRef.current.__escapeKeyBubbles&&(J=!1)}),!J)return}const xe=zh(E)?E.nativeEvent:E,V=pt(Jf,xe);n.setOpen(!1,V),!R&&!V.isPropagationAllowed&&E.stopPropagation()}),pe=ie(E=>{const te=j();return te==="intentional"&&E.type!=="click"||te==="sloppy"&&E.type==="click"}),D=ie(()=>{l.current.insideReactTree=!0,A.start(0,M)}),_=ie((E,te=!1)=>{if(pe(E)){M();return}if(l.current.insideReactTree){M();return}if(j()==="intentional"&&te||typeof T=="function"&&!T(E))return;const G=Xe(E),xe=`[${Ss("inert")}]`,V=Ve(n.select("floatingElement")).querySelectorAll(xe),J=n.context.triggerElements;if(G&&(J.hasElement(G)||J.hasMatchingElement(Y=>we(Y,G))))return;let Z=At(G)?G:null;for(;Z&&!tr(Z);){const Y=Qf(Z);if(tr(Y)||!At(Y))break;Z=Y}if(V.length&&At(G)&&!Hh(G)&&!we(G,n.select("floatingElement"))&&Array.from(V).every(Y=>!we(Z,Y)))return;if(Rt(G)&&!("touches"in E)){const Y=tr(G),Ee=jl(G),he=/auto|scroll/,je=Y||he.test(Ee.overflowX),Le=Y||he.test(Ee.overflowY),ct=je&&G.clientWidth>0&&G.scrollWidth>G.clientWidth,ve=Le&&G.clientHeight>0&&G.scrollHeight>G.clientHeight,re=Ee.direction==="rtl",Re=ve&&(re?E.offsetX<=G.offsetWidth-G.clientWidth:E.offsetX>G.clientWidth),Ie=ct&&E.offsetY>G.clientHeight;if(Re||Ie)return}const ne=l.current.floatingContext?.nodeId,ce=w&&zt(w.nodesRef.current,ne).some(Y=>Ye(E,Y.context?.elements.floating));if(Ye(E,n.select("floatingElement"))||Ye(E,n.select("domReferenceElement"))||ce)return;const K=w?zt(w.nodesRef.current,ne):[];if(K.length>0){let Y=!0;if(K.forEach(Ee=>{Ee.context?.open&&!Ee.context.dataRef.current.__outsidePressBubbles&&(Y=!1)}),!Y)return}n.setOpen(!1,pt(Nl,E)),M()}),z=ie(E=>{j()!=="sloppy"||E.pointerType==="touch"||!n.select("open")||!c||Ye(E,n.select("floatingElement"))||Ye(E,n.select("domReferenceElement"))||_(E)}),X=ie(E=>{if(j()!=="sloppy"||!n.select("open")||!c||Ye(E,n.select("floatingElement"))||Ye(E,n.select("domReferenceElement")))return;const te=E.touches[0];te&&(C.current={startTime:Date.now(),startX:te.clientX,startY:te.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},I.start(1e3,()=>{C.current&&(C.current.dismissOnTouchEnd=!1,C.current.dismissOnMouseDown=!1)}))}),se=ie(E=>{const te=Xe(E);function G(){X(E),te?.removeEventListener(E.type,G)}te?.addEventListener(E.type,G)}),H=ie(E=>{const te=S.current;if(S.current=!1,I.clear(),E.type==="mousedown"&&C.current&&!C.current.dismissOnMouseDown)return;const G=Xe(E);function xe(){E.type==="pointerdown"?z(E):_(E,te),G?.removeEventListener(E.type,xe)}G?.addEventListener(E.type,xe)}),Q=ie(E=>{if(j()!=="sloppy"||!C.current||Ye(E,n.select("floatingElement"))||Ye(E,n.select("domReferenceElement")))return;const te=E.touches[0];if(!te)return;const G=Math.abs(te.clientX-C.current.startX),xe=Math.abs(te.clientY-C.current.startY),V=Math.sqrt(G*G+xe*xe);V>5&&(C.current.dismissOnTouchEnd=!0),V>10&&(_(E),I.clear(),C.current=null)}),ee=ie(E=>{const te=Xe(E);function G(){Q(E),te?.removeEventListener(E.type,G)}te?.addEventListener(E.type,G)}),de=ie(E=>{j()!=="sloppy"||!C.current||Ye(E,n.select("floatingElement"))||Ye(E,n.select("domReferenceElement"))||(C.current.dismissOnTouchEnd&&_(E),I.clear(),C.current=null)}),be=ie(E=>{const te=Xe(E);function G(){de(E),te?.removeEventListener(E.type,G)}te?.addEventListener(E.type,G)});h.useEffect(()=>{if(!s||!c)return;l.current.__escapeKeyBubbles=R,l.current.__outsidePressBubbles=N;const E=new Zt;function te(Z){n.setOpen(!1,pt(th,Z))}function G(){E.clear(),U.current=!0}function xe(){E.start(eh()?5:0,()=>{U.current=!1})}const V=Ve(r);V.addEventListener("pointerdown",$,!0),u&&(V.addEventListener("keydown",W),V.addEventListener("compositionstart",G),V.addEventListener("compositionend",xe)),T&&(V.addEventListener("click",H,!0),V.addEventListener("pointerdown",H,!0),V.addEventListener("touchstart",se,!0),V.addEventListener("touchmove",ee,!0),V.addEventListener("touchend",be,!0),V.addEventListener("mousedown",H,!0));let J=[];return y&&(At(o)&&(J=nr(o)),At(r)&&(J=J.concat(nr(r))),!At(i)&&i&&i.contextElement&&(J=J.concat(nr(i.contextElement)))),J=J.filter(Z=>Z!==V.defaultView?.visualViewport),J.forEach(Z=>{Z.addEventListener("scroll",te,{passive:!0})}),()=>{V.removeEventListener("pointerdown",$,!0),u&&(V.removeEventListener("keydown",W),V.removeEventListener("compositionstart",G),V.removeEventListener("compositionend",xe)),T&&(V.removeEventListener("click",H,!0),V.removeEventListener("pointerdown",H,!0),V.removeEventListener("touchstart",se,!0),V.removeEventListener("touchmove",ee,!0),V.removeEventListener("touchend",be,!0),V.removeEventListener("mousedown",H,!0)),J.forEach(Z=>{Z.removeEventListener("scroll",te)}),E.clear(),S.current=!1}},[l,r,i,o,u,T,s,a,y,c,R,N,W,_,H,z,se,ee,be,$,n]),h.useEffect(M,[T,M]);const Ne=h.useMemo(()=>({onKeyDown:W,...m&&{[Bp[p]]:E=>{n.setOpen(!1,pt(Lo,E.nativeEvent))},...p!=="intentional"&&{onClick(E){n.setOpen(!1,pt(Lo,E.nativeEvent))}}}}),[W,n,m,p]),Be=ie(E=>{const te=Xe(E.nativeEvent);!we(n.select("floatingElement"),te)||E.button!==0||(S.current=!0)}),Qe=ie(E=>{!s||!c||E.button!==0||(S.current=!0)}),et=h.useMemo(()=>({onKeyDown:W,onPointerDown:Be,onMouseDown:Be,onMouseUp:Be,onClickCapture:D,onMouseDownCapture(E){D(),Qe(E)},onPointerDownCapture(E){D(),Qe(E)},onMouseUpCapture:D,onTouchEndCapture:D,onTouchMoveCapture:D}),[W,Be,D,Qe]);return h.useMemo(()=>c?{reference:Ne,floating:et,trigger:Ne}:{},[c,Ne,et])}const Wp={open:oe(e=>e.open),domReferenceElement:oe(e=>e.domReferenceElement),referenceElement:oe(e=>e.positionReference??e.referenceElement),floatingElement:oe(e=>e.floatingElement),floatingId:oe(e=>e.floatingId)};class gc extends cc{constructor(t){const{nested:n,noEmit:s,onOpenChange:r,triggerElements:i,...o}=t;super({...o,positionReference:o.referenceElement,domReferenceElement:o.referenceElement},{onOpenChange:r,dataRef:{current:{}},events:Ep(),nested:n,noEmit:s,triggerElements:i},Wp)}setOpen=(t,n)=>{if((!t||!this.state.open||Zh(n.event))&&(this.context.dataRef.current.openEvent=t?n.event:void 0),!this.context.noEmit){const s={open:t,reason:n.reason,nativeEvent:n.event,nested:this.context.nested,triggerElement:n.trigger};this.context.events.emit("openchange",s)}this.context.onOpenChange?.(t,n)}}function Kp(e,t=!1,n=!1){const[s,r]=h.useState(e&&t?"idle":void 0),[i,o]=h.useState(e);return e&&!i&&(o(!0),r("starting")),!e&&i&&s!=="ending"&&!n&&r("ending"),!e&&!i&&s==="ending"&&r(void 0),Pe(()=>{if(!e&&i&&s!=="ending"&&n){const a=rt.request(()=>{r("ending")});return()=>{rt.cancel(a)}}},[e,i,s,n]),Pe(()=>{if(!e||t)return;const a=rt.request(()=>{r(void 0)});return()=>{rt.cancel(a)}},[t,e]),Pe(()=>{if(!e||!t)return;e&&i&&s!=="idle"&&r("starting");const a=rt.request(()=>{r("idle")});return()=>{rt.cancel(a)}},[t,e,i,r,s]),h.useMemo(()=>({mounted:i,setMounted:o,transitionStatus:s}),[i,s])}let Cn=(function(e){return e.startingStyle="data-starting-style",e.endingStyle="data-ending-style",e})({});const Hp={[Cn.startingStyle]:""},Gp={[Cn.endingStyle]:""},ki={transitionStatus(e){return e==="starting"?Hp:e==="ending"?Gp:null}};function Yp(e,t=!1,n=!0){const s=uc();return ie((r,i=null)=>{s.cancel();function o(){yi.flushSync(r)}const a=mt(e);if(a==null)return;const l=a;if(typeof l.getAnimations!="function"||globalThis.BASE_UI_ANIMATIONS_DISABLED)r();else{let c=function(){const d=Cn.startingStyle;if(!l.hasAttribute(d)){s.request(u);return}const f=new MutationObserver(()=>{l.hasAttribute(d)||(f.disconnect(),u())});f.observe(l,{attributes:!0,attributeFilter:[d]}),i?.addEventListener("abort",()=>f.disconnect(),{once:!0})},u=function(){Promise.all(l.getAnimations().map(d=>d.finished)).then(()=>{i?.aborted||o()}).catch(()=>{const d=l.getAnimations();if(n){if(i?.aborted)return;o()}else d.length>0&&d.some(f=>f.pending||f.playState!=="finished")&&u()})};if(t){c();return}s.request(u)}})}function yc(e){const{enabled:t=!0,open:n,ref:s,onComplete:r}=e,i=ie(r),o=Yp(s,n,!1);h.useEffect(()=>{if(!t)return;const a=new AbortController;return o(i,a.signal),()=>{a.abort()}},[t,n,i,o])}function zp(e){const t=e.useState("open");Pe(()=>{if(t&&!e.select("activeTriggerId")&&e.context.triggerElements.size===1){const n=e.context.triggerElements.entries().next();if(!n.done){const[s,r]=n.value;e.update({activeTriggerId:s,activeTriggerElement:r})}}},[t,e])}function qp(e,t,n){const{mounted:s,setMounted:r,transitionStatus:i}=Kp(e);t.useSyncedValues({mounted:s,transitionStatus:i});const o=ie(()=>{r(!1),t.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1}),n?.(),t.context.onOpenChangeComplete?.(!1)}),a=t.useState("preventUnmountingOnClose");return yc({enabled:!a,open:e,ref:t.context.popupRef,onComplete(){e||o()}}),{forceUnmount:o,transitionStatus:i}}class bc{constructor(){this.elements=new Set,this.idMap=new Map}add(t,n){const s=this.idMap.get(t);s!==n&&(s!==void 0&&this.elements.delete(s),this.elements.add(n),this.idMap.set(t,n))}delete(t){const n=this.idMap.get(t);n&&(this.elements.delete(n),this.idMap.delete(t))}hasElement(t){return this.elements.has(t)}hasMatchingElement(t){for(const n of this.elements)if(t(n))return!0;return!1}getById(t){return this.idMap.get(t)}entries(){return this.idMap.entries()}get size(){return this.idMap.size}}function Xp(){return new gc({open:!1,floatingElement:null,referenceElement:null,triggerElements:new bc,floatingId:"",nested:!1,noEmit:!1,onOpenChange:void 0})}function Zp(){return{open:!1,mounted:!1,transitionStatus:"idle",floatingRootContext:Xp(),preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,popupElement:null,positionerElement:null,activeTriggerProps:yn,inactiveTriggerProps:yn,popupProps:yn}}const Jp={open:oe(e=>e.open),mounted:oe(e=>e.mounted),transitionStatus:oe(e=>e.transitionStatus),floatingRootContext:oe(e=>e.floatingRootContext),preventUnmountingOnClose:oe(e=>e.preventUnmountingOnClose),payload:oe(e=>e.payload),activeTriggerId:oe(e=>e.activeTriggerId),activeTriggerElement:oe(e=>e.mounted?e.activeTriggerElement:null),isTriggerActive:oe((e,t)=>t!==void 0&&e.activeTriggerId===t),isOpenedByTrigger:oe((e,t)=>t!==void 0&&e.activeTriggerId===t&&e.open),isMountedByTrigger:oe((e,t)=>t!==void 0&&e.activeTriggerId===t&&e.mounted),triggerProps:oe((e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps),popupProps:oe(e=>e.popupProps),popupElement:oe(e=>e.popupElement),positionerElement:oe(e=>e.positionerElement)};function Qp(e){const{popupStore:t,noEmit:n=!1,treatPopupAsFloatingElement:s=!1,onOpenChange:r}=e,i=bi(),o=dc()!=null,a=t.useState("open"),l=t.useState("activeTriggerElement"),c=t.useState(s?"popupElement":"positionerElement"),u=t.context.triggerElements,d=Dn(()=>new gc({open:a,referenceElement:l,floatingElement:c,triggerElements:u,onOpenChange:r,floatingId:i,nested:o,noEmit:n})).current;return Pe(()=>{const f={open:a,floatingId:i,referenceElement:l,floatingElement:c};At(l)&&(f.domReferenceElement=l),d.state.positionReference===d.state.referenceElement&&(f.positionReference=l),d.update(f)},[a,i,l,c,d]),d.context.onOpenChange=r,d.context.nested=o,d.context.noEmit=n,d}function eg(e=[]){const t=e.map(c=>c?.reference),n=e.map(c=>c?.floating),s=e.map(c=>c?.item),r=e.map(c=>c?.trigger),i=h.useCallback(c=>es(c,e,"reference"),t),o=h.useCallback(c=>es(c,e,"floating"),n),a=h.useCallback(c=>es(c,e,"item"),s),l=h.useCallback(c=>es(c,e,"trigger"),r);return h.useMemo(()=>({getReferenceProps:i,getFloatingProps:o,getItemProps:a,getTriggerProps:l}),[i,o,a,l])}function es(e,t,n){const s=new Map,r=n==="item",i={};n==="floating"&&(i.tabIndex=-1,i[Ur]="");for(const o in e)r&&e&&(o===$l||o===Ul)||(i[o]=e[o]);for(let o=0;o<t.length;o+=1){let a;const l=t[o]?.[n];typeof l=="function"?a=e?l(e):null:a=l,a&&ta(i,a,r,s)}return ta(i,e,r,s),i}function ta(e,t,n,s){for(const r in t){const i=t[r];n&&(r===$l||r===Ul)||(r.startsWith("on")?(s.has(r)||s.set(r,[]),typeof i=="function"&&(s.get(r)?.push(i),e[r]=(...o)=>s.get(r)?.map(a=>a(...o)).find(a=>a!==void 0))):e[r]=i)}}const tg=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);function ng(e,t={}){const n="rootStore"in e?e.rootStore:e,s=n.useState("open"),r=n.useState("floatingId"),i=n.useState("domReferenceElement"),o=n.useState("floatingElement"),{enabled:a=!0,role:l="dialog"}=t,c=bi(),u=i?.id||c,d=h.useMemo(()=>Wr(o)?.id||r,[o,r]),f=tg.get(l)??l,p=dc()!=null,y=h.useMemo(()=>f==="tooltip"||l==="label"?yn:{"aria-haspopup":f==="alertdialog"?"dialog":f,"aria-expanded":"false",...f==="listbox"&&{role:"combobox"},...f==="menu"&&p&&{role:"menuitem"},...l==="select"&&{"aria-autocomplete":"none"},...l==="combobox"&&{"aria-autocomplete":"list"}},[f,p,l]),b=h.useMemo(()=>f==="tooltip"||l==="label"?{[`aria-${l==="label"?"labelledby":"describedby"}`]:s?d:void 0}:{...y,"aria-expanded":s?"true":"false","aria-controls":s?d:void 0,...f==="menu"&&{id:u}},[f,d,s,u,l,y]),x=h.useMemo(()=>{const v={id:d,...f&&{role:f}};return f==="tooltip"||l==="label"?v:{...v,...f==="menu"&&{"aria-labelledby":u}}},[f,d,u,l]),w=h.useCallback(({active:v,selected:T})=>{const S={role:"option",...v&&{id:`${d}-fui-option`}};switch(l){case"select":case"combobox":return{...S,"aria-selected":T}}return{}},[d,l]);return h.useMemo(()=>a?{reference:b,floating:x,item:w,trigger:y}:{},[a,b,x,y,w])}function sg(e){const t=h.useRef(""),n=h.useCallback(r=>{r.defaultPrevented||(t.current=r.pointerType,e(r,r.pointerType))},[e]);return{onClick:h.useCallback(r=>{if(r.detail===0){e(r,"keyboard");return}"pointerType"in r&&e(r,r.pointerType),e(r,t.current),t.current=""},[e]),onPointerDown:n}}function rg(e){const[t,n]=h.useState(null),s=ie((a,l)=>{e||n(l||(Bl?"touch":""))}),r=h.useCallback(()=>{n(null)},[]),{onClick:i,onPointerDown:o}=sg(s);return h.useMemo(()=>({openMethod:t,reset:r,triggerProps:{onClick:i,onPointerDown:o}}),[t,r,i,o])}let Ze=(function(e){return e.open="data-open",e.closed="data-closed",e[e.startingStyle=Cn.startingStyle]="startingStyle",e[e.endingStyle=Cn.endingStyle]="endingStyle",e.anchorHidden="data-anchor-hidden",e})({});const ig={[Ze.open]:""},og={[Ze.closed]:""},ag={[Ze.anchorHidden]:""},Ti={open(e){return e?ig:og},anchorHidden(e){return e?ag:null}};function lg(e){return Pl(19)?e:e?"true":void 0}let na={},sa={},ra="";function cg(e){if(typeof document>"u")return!1;const t=Nn(e);return Ls(t).innerWidth-t.documentElement.clientWidth>0}function ug(e){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const s=Nn(e).documentElement,r={scrollbarGutter:s.style.scrollbarGutter,overflowY:s.style.overflowY};s.style.scrollbarGutter="stable",s.style.overflowY="scroll";const i=s.offsetWidth;s.style.overflowY="hidden";const o=s.offsetWidth;return Object.assign(s.style,r),i===o}function dg(e){const t=Nn(e),n=t.documentElement,s=t.body,r=Ll(n)?n:s,i=r.style.overflow;return r.style.overflow="hidden",()=>{r.style.overflow=i}}function fg(e){const t=Nn(e),n=t.documentElement,s=t.body,r=Ls(n);let i=0,o=0,a=!1;const l=rt.create();if(_h&&(r.visualViewport?.scale??1)!==1)return()=>{};function c(){const f=r.getComputedStyle(n),m=r.getComputedStyle(s),b=(f.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";i=n.scrollTop,o=n.scrollLeft,na={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},ra=n.style.scrollBehavior,sa={position:s.style.position,height:s.style.height,width:s.style.width,boxSizing:s.style.boxSizing,overflowY:s.style.overflowY,overflowX:s.style.overflowX,scrollBehavior:s.style.scrollBehavior};const x=n.scrollHeight>n.clientHeight,w=n.scrollWidth>n.clientWidth,v=f.overflowY==="scroll"||m.overflowY==="scroll",T=f.overflowX==="scroll"||m.overflowX==="scroll",S=Math.max(0,r.innerWidth-s.clientWidth),R=Math.max(0,r.innerHeight-s.clientHeight),N=parseFloat(m.marginTop)+parseFloat(m.marginBottom),C=parseFloat(m.marginLeft)+parseFloat(m.marginRight),I=Ll(n)?n:s;if(a=ug(e),a){n.style.scrollbarGutter=b,I.style.overflowY="hidden",I.style.overflowX="hidden";return}Object.assign(n.style,{scrollbarGutter:b,overflowY:"hidden",overflowX:"hidden"}),(x||v)&&(n.style.overflowY="scroll"),(w||T)&&(n.style.overflowX="scroll"),Object.assign(s.style,{position:"relative",height:N||R?`calc(100dvh - ${N+R}px)`:"100dvh",width:C||S?`calc(100vw - ${C+S}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),s.scrollTop=i,s.scrollLeft=o,n.setAttribute("data-base-ui-scroll-locked",""),n.style.scrollBehavior="unset"}function u(){Object.assign(n.style,na),Object.assign(s.style,sa),a||(n.scrollTop=i,n.scrollLeft=o,n.removeAttribute("data-base-ui-scroll-locked"),n.style.scrollBehavior=ra)}function d(){u(),l.request(c)}return c(),r.addEventListener("resize",d),()=>{l.cancel(),u(),typeof r.removeEventListener=="function"&&r.removeEventListener("resize",d)}}class hg{lockCount=0;restore=null;timeoutLock=Zt.create();timeoutUnlock=Zt.create();acquire(t){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(t)),this.release}release=()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(t){if(this.lockCount===0||this.restore!==null)return;const s=Nn(t).documentElement,r=Ls(s).getComputedStyle(s).overflowY;if(r==="hidden"||r==="clip"){this.restore=Rl;return}const i=Bl||!cg(t);this.restore=i?dg(t):fg(t)}}const mg=new hg;function pg(e=!0,t=null){Pe(()=>{if(e)return mg.acquire(t)},[e,t])}const gg=h.forwardRef(function(t,n){const{cutout:s,...r}=t;let i;if(s){const o=s?.getBoundingClientRect();i=`polygon(
|
|
1
|
+
import{r as h,u as Dn,i as Yf,a as Rt,g as zf,b as en,c as tn,d as ot,e as Br,f as Yn,h as js,j as pi,k as Xt,t as Ue,l as P,T as qf,m as g,n as Pe,o as gi,p as Al,q as Pl,s as ie,N as Rl,v as Ml,w as yi,x as pt,y as Dl,E as yn,z as bi,A as Xf,B as nn,C as jo,D as Zf,F as Nl,G as Ls,H as jl,I as Jf,J as At,K as tr,L as Qf,M as nr,O as Lo,P as eh,Q as th,R as Ll,S as nh,U as sh,V as rh,W as ih,X as oh,Y as xi,Z as Vl,_ as ah,$ as lh,a0 as ch,a1 as uh,a2 as dh,a3 as fh,a4 as hh,a5 as mh,a6 as ht,a7 as ph,a8 as gh,a9 as sr}from"./main-C3QpHBOP.js";import{g as yh,a as vi,b as bh,c as xh,d as vh,e as rr,f as wh,r as Sh,h as Vo,i as kh,j as Th,t as Ch,s as Eh}from"./vibeusage-api-EQ444MvB.js";const Ah=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ph=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,s)=>s?s.toUpperCase():n.toLowerCase()),Io=e=>{const t=Ph(e);return t.charAt(0).toUpperCase()+t.slice(1)},Il=(...e)=>e.filter((t,n,s)=>!!t&&t.trim()!==""&&s.indexOf(t)===n).join(" ").trim(),Rh=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var Mh={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Dh=h.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:s,className:r="",children:i,iconNode:o,...a},l)=>h.createElement("svg",{ref:l,...Mh,width:t,height:t,stroke:e,strokeWidth:s?Number(n)*24/Number(t):n,className:Il("lucide",r),...!i&&!Rh(a)&&{"aria-hidden":"true"},...a},[...o.map(([c,u])=>h.createElement(c,u)),...Array.isArray(i)?i:[i]]));const Nh=(e,t)=>{const n=h.forwardRef(({className:s,...r},i)=>h.createElement(Dh,{ref:i,iconNode:t,className:Il(`lucide-${Ah(Io(e))}`,`lucide-${e}`,s),...r}));return n.displayName=Io(e),n};const jh=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Lh=Nh("info",jh),Vh="data-base-ui-click-trigger",Ih={clipPath:"inset(50%)",position:"fixed",top:0,left:0},Fh=[];function Fl(e){h.useEffect(e,Fh)}const fn=0;class Zt{static create(){return new Zt}currentId=fn;start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=fn,n()},t)}isStarted(){return this.currentId!==fn}clear=()=>{this.currentId!==fn&&(clearTimeout(this.currentId),this.currentId=fn)};disposeEffect=()=>this.clear}function ps(){const e=Dn(Zt.create).current;return Fl(e.disposeEffect),e}function Nn(e){return e?.ownerDocument||document}const sn=typeof navigator<"u",ir=$h(),_l=Wh(),Ol=Uh(),_h=typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter:none"),Bl=ir.platform==="MacIntel"&&ir.maxTouchPoints>1?!0:/iP(hone|ad|od)|iOS/.test(ir.platform),Oh=sn&&/apple/i.test(navigator.vendor),$r=sn&&/android/i.test(_l)||/android/i.test(Ol);sn&&_l.toLowerCase().startsWith("mac")&&navigator.maxTouchPoints;const Bh=Ol.includes("jsdom/");function $h(){if(!sn)return{platform:"",maxTouchPoints:-1};const e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??"",maxTouchPoints:navigator.maxTouchPoints??-1}}function Uh(){if(!sn)return"";const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:t,version:n})=>`${t}/${n}`).join(" "):navigator.userAgent}function Wh(){if(!sn)return"";const e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??""}const Ur="data-base-ui-focusable",$l="active",Ul="selected",Kh="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";function Ut(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function we(e,t){if(!e||!t)return!1;const n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&Yf(n)){let s=t;for(;s;){if(e===s)return!0;s=s.parentNode||s.host}}return!1}function Xe(e){return"composedPath"in e?e.composedPath()[0]:e.target}function Ye(e,t){if(t==null)return!1;if("composedPath"in e)return e.composedPath().includes(t);const n=e;return n.target!=null&&t.contains(n.target)}function Hh(e){return e.matches("html,body")}function Ve(e){return e?.ownerDocument||document}function Gh(e){return Rt(e)&&e.matches(Kh)}function Fo(e){return e?e.getAttribute("role")==="combobox"&&Gh(e):!1}function Wr(e){return e?e.hasAttribute(Ur)?e:e.querySelector(`[${Ur}]`)||e:null}function zt(e,t,n=!0){return e.filter(r=>r.parentId===t&&(!n||r.context?.open)).flatMap(r=>[r,...zt(e,r.id,n)])}function _o(e,t){let n=[],s=e.find(r=>r.id===t)?.parentId;for(;s;){const r=e.find(i=>i.id===s);s=r?.parentId,r&&(n=n.concat(r))}return n}function Yh(e){e.preventDefault(),e.stopPropagation()}function zh(e){return"nativeEvent"in e}function qh(e){return e.mozInputSource===0&&e.isTrusted?!0:$r&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Xh(e){return Bh?!1:!$r&&e.width===0&&e.height===0||$r&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType==="touch"}function Zh(e){const t=e.type;return t==="click"||t==="mousedown"||t==="keydown"||t==="keyup"}var Jh=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],gs=Jh.join(","),Wl=typeof Element>"u",Jt=Wl?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,ys=!Wl&&Element.prototype.getRootNode?function(e){var t;return e==null||(t=e.getRootNode)===null||t===void 0?void 0:t.call(e)}:function(e){return e?.ownerDocument},bs=function(t,n){var s;n===void 0&&(n=!0);var r=t==null||(s=t.getAttribute)===null||s===void 0?void 0:s.call(t,"inert"),i=r===""||r==="true",o=i||n&&t&&(typeof t.closest=="function"?t.closest("[inert]"):bs(t.parentNode));return o},Qh=function(t){var n,s=t==null||(n=t.getAttribute)===null||n===void 0?void 0:n.call(t,"contenteditable");return s===""||s==="true"},Kl=function(t,n,s){if(bs(t))return[];var r=Array.prototype.slice.apply(t.querySelectorAll(gs));return n&&Jt.call(t,gs)&&r.unshift(t),r=r.filter(s),r},xs=function(t,n,s){for(var r=[],i=Array.from(t);i.length;){var o=i.shift();if(!bs(o,!1))if(o.tagName==="SLOT"){var a=o.assignedElements(),l=a.length?a:o.children,c=xs(l,!0,s);s.flatten?r.push.apply(r,c):r.push({scopeParent:o,candidates:c})}else{var u=Jt.call(o,gs);u&&s.filter(o)&&(n||!t.includes(o))&&r.push(o);var d=o.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(o),f=!bs(d,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(o));if(d&&f){var m=xs(d===!0?o.children:d.children,!0,s);s.flatten?r.push.apply(r,m):r.push({scopeParent:o,candidates:m})}else i.unshift.apply(i,o.children)}}return r},Hl=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},Gl=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||Qh(t))&&!Hl(t)?0:t.tabIndex},em=function(t,n){var s=Gl(t);return s<0&&n&&!Hl(t)?0:s},tm=function(t,n){return t.tabIndex===n.tabIndex?t.documentOrder-n.documentOrder:t.tabIndex-n.tabIndex},Yl=function(t){return t.tagName==="INPUT"},nm=function(t){return Yl(t)&&t.type==="hidden"},sm=function(t){var n=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(s){return s.tagName==="SUMMARY"});return n},rm=function(t,n){for(var s=0;s<t.length;s++)if(t[s].checked&&t[s].form===n)return t[s]},im=function(t){if(!t.name)return!0;var n=t.form||ys(t),s=function(a){return n.querySelectorAll('input[type="radio"][name="'+a+'"]')},r;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")r=s(window.CSS.escape(t.name));else try{r=s(t.name)}catch(o){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",o.message),!1}var i=rm(r,t.form);return!i||i===t},om=function(t){return Yl(t)&&t.type==="radio"},am=function(t){return om(t)&&!im(t)},lm=function(t){var n,s=t&&ys(t),r=(n=s)===null||n===void 0?void 0:n.host,i=!1;if(s&&s!==t){var o,a,l;for(i=!!((o=r)!==null&&o!==void 0&&(a=o.ownerDocument)!==null&&a!==void 0&&a.contains(r)||t!=null&&(l=t.ownerDocument)!==null&&l!==void 0&&l.contains(t));!i&&r;){var c,u,d;s=ys(r),r=(c=s)===null||c===void 0?void 0:c.host,i=!!((u=r)!==null&&u!==void 0&&(d=u.ownerDocument)!==null&&d!==void 0&&d.contains(r))}}return i},Oo=function(t){var n=t.getBoundingClientRect(),s=n.width,r=n.height;return s===0&&r===0},cm=function(t,n){var s=n.displayCheck,r=n.getShadowRoot;if(s==="full-native"&&"checkVisibility"in t){var i=t.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});return!i}if(getComputedStyle(t).visibility==="hidden")return!0;var o=Jt.call(t,"details>summary:first-of-type"),a=o?t.parentElement:t;if(Jt.call(a,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="full-native"||s==="legacy-full"){if(typeof r=="function"){for(var l=t;t;){var c=t.parentElement,u=ys(t);if(c&&!c.shadowRoot&&r(c)===!0)return Oo(t);t.assignedSlot?t=t.assignedSlot:!c&&u!==t.ownerDocument?t=u.host:t=c}t=l}if(lm(t))return!t.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return Oo(t);return!1},um=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var n=t.parentElement;n;){if(n.tagName==="FIELDSET"&&n.disabled){for(var s=0;s<n.children.length;s++){var r=n.children.item(s);if(r.tagName==="LEGEND")return Jt.call(n,"fieldset[disabled] *")?!0:!r.contains(t)}return!0}n=n.parentElement}return!1},Kr=function(t,n){return!(n.disabled||nm(n)||cm(n,t)||sm(n)||um(n))},Hr=function(t,n){return!(am(n)||Gl(n)<0||!Kr(t,n))},dm=function(t){var n=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(n)||n>=0)},zl=function(t){var n=[],s=[];return t.forEach(function(r,i){var o=!!r.scopeParent,a=o?r.scopeParent:r,l=em(a,o),c=o?zl(r.candidates):a;l===0?o?n.push.apply(n,c):n.push(a):s.push({documentOrder:i,tabIndex:l,item:r,isScope:o,content:c})}),s.sort(tm).reduce(function(r,i){return i.isScope?r.push.apply(r,i.content):r.push(i.content),r},[]).concat(n)},Vs=function(t,n){n=n||{};var s;return n.getShadowRoot?s=xs([t],n.includeContainer,{filter:Hr.bind(null,n),flatten:!1,getShadowRoot:n.getShadowRoot,shadowRootFilter:dm}):s=Kl(t,n.includeContainer,Hr.bind(null,n)),zl(s)},fm=function(t,n){n=n||{};var s;return n.getShadowRoot?s=xs([t],n.includeContainer,{filter:Kr.bind(null,n),flatten:!0,getShadowRoot:n.getShadowRoot}):s=Kl(t,n.includeContainer,Kr.bind(null,n)),s},ql=function(t,n){if(n=n||{},!t)throw new Error("No node provided");return Jt.call(t,gs)===!1?!1:Hr(n,t)};const jn=()=>({getShadowRoot:!0,displayCheck:typeof ResizeObserver=="function"&&ResizeObserver.toString().includes("[native code]")?"full":"none"});function Xl(e,t){const n=Vs(e,jn()),s=n.length;if(s===0)return;const r=Ut(Ve(e)),i=n.indexOf(r),o=i===-1?t===1?0:s-1:i+t;return n[o]}function Zl(e){return Xl(Ve(e).body,1)||e}function Jl(e){return Xl(Ve(e).body,-1)||e}function bn(e,t){const n=t||e.currentTarget,s=e.relatedTarget;return!s||!we(n,s)}function hm(e){Vs(e,jn()).forEach(n=>{n.dataset.tabindex=n.getAttribute("tabindex")||"",n.setAttribute("tabindex","-1")})}function Bo(e){e.querySelectorAll("[data-tabindex]").forEach(n=>{const s=n.dataset.tabindex;delete n.dataset.tabindex,s?n.setAttribute("tabindex",s):n.removeAttribute("tabindex")})}function mm({baseUrl:e,accessToken:t,guestAllowed:n=!1,weeks:s=52,weekStartsOn:r="sun",cacheKey:i,timeZone:o,tzOffsetMinutes:a,now:l}={}){const c=h.useMemo(()=>zf({weeks:s,weekStartsOn:r,now:l}),[l,s,r]),[u,d]=h.useState([]),[f,m]=h.useState(null),[p,y]=h.useState("edge"),[b,x]=h.useState(!1),[w,v]=h.useState(null),T=en(),S=tn(t),R=!n,N=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),C=h.useMemo(()=>{if(!i)return null;const $=js({timeZone:o,offsetMinutes:a});return`vibeusage.heatmap.${i}.${s}.${r}.${$}`},[i,o,a,s,r]),I=h.useCallback(()=>{if(!C||typeof window>"u")return null;try{const $=window.localStorage.getItem(C);if(!$)return null;const j=JSON.parse($);return!j||!j.heatmap?null:j}catch{return null}},[C]),A=h.useCallback($=>{if(!(!C||typeof window>"u"))try{window.localStorage.setItem(C,JSON.stringify($))}catch{}},[C]),M=h.useCallback(()=>{if(!(!C||typeof window>"u"))try{window.localStorage.removeItem(C)}catch{}},[C]),U=h.useCallback(async()=>{const $=await ot(t);if(!(!$&&!T&&!N)){x(!0),v(null);try{try{const D=await yh({baseUrl:e,accessToken:$,weeks:s,to:c.to,weekStartsOn:r,timeZone:o,tzOffsetMinutes:a}),_=Array.isArray(D?.weeks)?D.weeks:[];if(!_.length&&R){const X=I();if(X?.heatmap){m(X.heatmap),d(X.daily||[]),y("cache");return}}if(!_.some(X=>(Array.isArray(X)?X:[]).some(se=>se&&Number.isFinite(Number(se.level))))&&_.length){const X=[];for(const H of _)for(const Q of Array.isArray(H)?H:[])Q?.day&&X.push({day:Q.day,total_tokens:Q.total_tokens??Q.value??0,billable_total_tokens:Q.billable_total_tokens??Q.value??Q.total_tokens??0});const se=Br({dailyRows:X,weeks:s,to:D?.to||c.to,weekStartsOn:r});d(X),m({...se,week_starts_on:r,active_days:X.filter(H=>Number(H?.billable_total_tokens??H?.total_tokens)>0).length,streak_days:Yn({dailyRows:X,to:D?.to||c.to})}),y("client"),R?A({heatmap:{...se,week_starts_on:r,active_days:X.filter(H=>Number(H?.billable_total_tokens??H?.total_tokens)>0).length,streak_days:Yn({dailyRows:X,to:D?.to||c.to})},daily:X,fetchedAt:new Date().toISOString()}):M();return}m(D||null),d([]),y("edge"),D&&R?A({heatmap:D,daily:[],fetchedAt:new Date().toISOString()}):R||M();return}catch(D){const _=D,z=_?.status??_?.statusCode;if(z===401||z===403)throw D}const j=await vi({baseUrl:e,accessToken:$,from:c.from,to:c.to,timeZone:o,tzOffsetMinutes:a}),W=Array.isArray(j?.data)?j.data:[];d(W);const pe=Br({dailyRows:W,weeks:s,to:c.to,weekStartsOn:r});m({...pe,week_starts_on:r,active_days:W.filter(D=>Number(D?.billable_total_tokens??D?.total_tokens)>0).length,streak_days:Yn({dailyRows:W,to:c.to})}),y("client"),R?A({heatmap:{...pe,week_starts_on:r,active_days:W.filter(D=>Number(D?.billable_total_tokens??D?.total_tokens)>0).length,streak_days:Yn({dailyRows:W,to:c.to})},daily:W,fetchedAt:new Date().toISOString()}):M()}catch(j){if(R){const W=I();if(W?.heatmap)m(W.heatmap),d(W.daily||[]),y("cache"),v(null);else{const pe=j;v(pe?.message||String(pe)),d([]),m(null),y("edge")}}else{const W=j;v(W?.message||String(W)),d([]),m(null),y("edge")}}finally{x(!1)}}},[t,e,T,n,R,c.from,c.to,I,S,o,a,r,s,M,A,N]);return h.useEffect(()=>{if(!S&&!n&&!T&&!N){d([]),x(!1),v(null),m(null),y("edge");return}if(!R)M(),d([]),v(null),m(null),y("edge");else{const $=I();$?.heatmap&&(m($.heatmap),d($.daily||[]),y("cache"))}U()},[t,T,I,U,S,n,R,M,N]),{range:c,daily:u,heatmap:f,source:T?"mock":p==="client"?"edge":p,loading:b,error:w,refresh:U}}function pm({baseUrl:e,accessToken:t,limit:n=3,from:s,to:r,source:i,timeZone:o,tzOffsetMinutes:a}={}){const[l,c]=h.useState([]),[u,d]=h.useState(!1),[f,m]=h.useState(null),p=en(),y=tn(t),b=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),x=h.useCallback(async()=>{const w=await ot(t);if(!w&&!p&&!b){c([]),m(null),d(!1);return}d(!0),m(null);try{const v=await bh({baseUrl:e,accessToken:w,limit:n,from:s,to:r,source:i,timeZone:o,tzOffsetMinutes:a});c(Array.isArray(v?.entries)?v.entries:[])}catch(v){const T=v?.message||String(v);m(T),c([])}finally{d(!1)}},[t,e,s,n,p,i,o,r,a,b]);return h.useEffect(()=>{if(!y&&!p&&!b){c([]),m(null),d(!1);return}x()},[p,x,y,b]),{entries:l,loading:u,error:f,refresh:x}}const gm=24;function ym({baseUrl:e,accessToken:t,guestAllowed:n=!1,period:s,from:r,to:i,months:o=gm,cacheKey:a,timeZone:l,tzOffsetMinutes:c,now:u,sharedRows:d,sharedRange:f}={}){const[m,p]=h.useState([]),[y,b]=h.useState(()=>({from:r,to:i})),[x,w]=h.useState("edge"),[v,T]=h.useState(null),[S,R]=h.useState(!1),[N,C]=h.useState(null),I=en(),A=tn(t),M=!n,U=Array.isArray(d),L=f?.from||r,$=f?.to||i,j=h.useMemo(()=>s==="day"?"hourly":s==="total"?"monthly":"daily",[s]),W=(()=>{if(!a)return null;const H=bm(e)||"default",Q=js({timeZone:l,offsetMinutes:c});if(j==="hourly")return`vibeusage.trend.${a}.${H}.hourly.${i||r||"day"}.${Q}`;if(j==="monthly")return`vibeusage.trend.${a}.${H}.monthly.${o}.${i||"today"}.${Q}`;const ee=`${r||""}.${i||""}`;return`vibeusage.trend.${a}.${H}.daily.${ee}.${Q}`})(),pe=h.useCallback(()=>{if(!W||typeof window>"u")return null;try{const H=window.localStorage.getItem(W);if(!H)return null;const Q=JSON.parse(H);return!Q||!Array.isArray(Q.rows)?null:Q}catch{return null}},[W]),D=h.useCallback(H=>{if(!(!W||typeof window>"u"))try{window.localStorage.setItem(W,JSON.stringify(H))}catch{}},[W]),_=h.useCallback(()=>{if(!(!W||typeof window>"u"))try{window.localStorage.removeItem(W)}catch{}},[W]),z=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),X=h.useCallback(async()=>{if(U){p(Array.isArray(d)?d:[]),b({from:L,to:$}),w("shared"),T(null),R(!1),C(null);return}const H=await ot(t);if(!(!H&&!I&&!z)){R(!0),C(null);try{let Q;j==="hourly"?Q=await xh({baseUrl:e,accessToken:H,day:i||r,timeZone:l,tzOffsetMinutes:c}):j==="monthly"?Q=await vh({baseUrl:e,accessToken:H,months:o,to:i,timeZone:l,tzOffsetMinutes:c}):Q=await vi({baseUrl:e,accessToken:H,from:r,to:i,timeZone:l,tzOffsetMinutes:c});const ee=Q?.from||r||Q?.day||null,de=Q?.to||i||Q?.day||null;let be=Array.isArray(Q?.data)?Q.data:[];j==="daily"?be=ar(be,ee||r,de||i,{timeZone:l,offsetMinutes:c,now:u}):j==="hourly"?be=lr(be,{timeZone:l,offsetMinutes:c,now:u}):j==="monthly"&&(be=cr(be,{timeZone:l,offsetMinutes:c,now:u}));const Ne=new Date().toISOString();p(be),b({from:ee,to:de}),w("edge"),T(Ne),M?D({rows:be,from:ee,to:de,mode:j,fetchedAt:Ne}):_()}catch(Q){if(M){const ee=pe();if(ee?.rows){let de=j==="daily"?ar(ee.rows||[],ee.from||r,ee.to||i,{timeZone:l,offsetMinutes:c,now:u}):Array.isArray(ee.rows)?ee.rows:[];j==="hourly"?de=lr(de,{timeZone:l,offsetMinutes:c,now:u}):j==="monthly"&&(de=cr(de,{timeZone:l,offsetMinutes:c,now:u})),p(de),b({from:ee.from||r,to:ee.to||i}),w("cache"),T(ee.fetchedAt||null),C(null)}else{p([]),b({from:r,to:i}),w("edge"),T(null);const de=Q;C(de?.message||String(de))}}else{p([]),b({from:r,to:i}),w("edge"),T(null);const ee=Q;C(ee?.message||String(ee))}}finally{R(!1)}}},[t,e,r,I,n,M,j,o,pe,A,U,L,d,$,l,i,c,u,_,D,z]);h.useEffect(()=>{if(U){p(Array.isArray(d)?d:[]),b({from:L,to:$}),w("shared"),T(null),R(!1),C(null);return}if(!A&&!n&&!I&&!z){p([]),b({from:r,to:i}),C(null),R(!1),w("edge"),T(null);return}if(!M)_(),p([]),b({from:r,to:i}),C(null),w("edge"),T(null);else{const H=pe();if(H?.rows){let Q=j==="daily"?ar(H.rows||[],H.from||r,H.to||i,{timeZone:l,offsetMinutes:c,now:u}):Array.isArray(H.rows)?H.rows:[];j==="hourly"?Q=lr(Q,{timeZone:l,offsetMinutes:c,now:u}):j==="monthly"&&(Q=cr(Q,{timeZone:l,offsetMinutes:c,now:u})),p(Q),b({from:H.from||r,to:H.to||i}),w("cache"),T(H.fetchedAt||null)}}X()},[t,I,pe,X,U,L,d,$,A,n,M,_,z]);const se=I?"mock":x;return{rows:m,from:y.from||r,to:y.to||i,source:se,fetchedAt:v,loading:S,error:N,refresh:X}}function bm(e){try{return new URL(e).host}catch{return null}}function or(e){if(!e)return null;const t=String(e).trim(),n=t.split("-");if(n.length!==3)return null;const s=Number(n[0]),r=Number(n[1])-1,i=Number(n[2]);if(!Number.isFinite(s)||!Number.isFinite(r)||!Number.isFinite(i))return null;const o=new Date(Date.UTC(s,r,i));return Number.isFinite(o.getTime())&&Xt(o)===t?o:null}function xm(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function ar(e,t,n,{timeZone:s,offsetMinutes:r,now:i}={}){const o=or(t),a=or(n);if(!o||!a||a<o)return Array.isArray(e)?e:[];const l=i instanceof Date&&Number.isFinite(i.getTime())?i:new Date,c=pi({timeZone:s,offsetMinutes:r,date:l}),u=or(c),d=u?u.getTime():l.getTime(),f=new Map;for(const p of e||[])p?.day&&f.set(p.day,p);const m=[];for(let p=o;p<=a;p=xm(p,1)){const y=Xt(p),b=f.get(y),x=p.getTime()>d;if(b){m.push({...b,missing:!1,future:x});continue}m.push({day:y,total_tokens:null,billable_total_tokens:null,input_tokens:null,cached_input_tokens:null,output_tokens:null,reasoning_output_tokens:null,missing:!x,future:x})}return m}function lr(e,{timeZone:t,offsetMinutes:n,now:s}={}){if(!Array.isArray(e))return[];const r=Ql({timeZone:t,offsetMinutes:n,now:s});return r?e.map(i=>{const o=i?.hour||i?.label||"",a=vm(o);if(!a)return{...i,future:!1};const l=a.dayNum>r.dayNum||a.dayNum===r.dayNum&&a.slot>r.slot;return{...i,future:l}}):e}function cr(e,{timeZone:t,offsetMinutes:n,now:s}={}){if(!Array.isArray(e))return[];const r=Ql({timeZone:t,offsetMinutes:n,now:s});return r?e.map(i=>{const o=i?.month||i?.label||"",a=wm(o);if(!a)return{...i,future:!1};const l=a.year>r.year||a.year===r.year&&a.month>r.month;return{...i,future:l}}):e}function Ql({timeZone:e,offsetMinutes:t,now:n}={}){const s=n instanceof Date&&Number.isFinite(n.getTime())?n:new Date;if(e&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const f=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(s).reduce((w,v)=>(v.type&&v.value&&(w[v.type]=v.value),w),{}),m=Number(f.year),p=Number(f.month),y=Number(f.day),b=Number(f.hour),x=Number(f.minute);if(Number.isFinite(m)&&Number.isFinite(p)&&Number.isFinite(y)&&Number.isFinite(b)&&Number.isFinite(x)){const w=b*2+(x>=30?1:0);return{year:m,month:p,day:y,hour:b,minute:x,dayNum:m*1e4+p*100+y,slot:w}}}catch{}if(Number.isFinite(t)){const u=new Date(s.getTime()+t*60*1e3),d=u.getUTCFullYear(),f=u.getUTCMonth()+1,m=u.getUTCDate(),p=u.getUTCHours(),y=u.getUTCMinutes(),b=p*2+(y>=30?1:0);return{year:d,month:f,day:m,hour:p,minute:y,dayNum:d*1e4+f*100+m,slot:b}}const r=s.getFullYear(),i=s.getMonth()+1,o=s.getDate(),a=s.getHours(),l=s.getMinutes(),c=a*2+(l>=30?1:0);return{year:r,month:i,day:o,hour:a,minute:l,dayNum:r*1e4+i*100+o,slot:c}}function vm(e){if(!e)return null;const t=String(e).trim(),[n,s]=t.split("T");if(!n||!s)return null;const r=n.split("-");if(r.length!==3)return null;const i=Number(r[0]),o=Number(r[1]),a=Number(r[2]);if(!Number.isFinite(i)||!Number.isFinite(o)||!Number.isFinite(a))return null;const l=s.split(":"),c=Number(l[0]),u=Number(l[1]);if(!Number.isFinite(c)||c<0||c>23||!Number.isFinite(u)||u<0||u>59)return null;const d=c*2+(u>=30?1:0);return{dayNum:i*1e4+o*100+a,slot:d}}function wm(e){if(!e)return null;const n=String(e).trim().split("-");if(n.length!==2)return null;const s=Number(n[0]),r=Number(n[1]);return!Number.isFinite(s)||!Number.isFinite(r)||r<1||r>12?null:{year:s,month:r}}function $o({baseUrl:e,accessToken:t,guestAllowed:n=!1,from:s,to:r,includeDaily:i=!0,cacheKey:o,timeZone:a,tzOffsetMinutes:l,now:c}={}){const[u,d]=h.useState([]),[f,m]=h.useState(null),[p,y]=h.useState(null),[b,x]=h.useState("edge"),[w,v]=h.useState(null),[T,S]=h.useState(!1),[R,N]=h.useState(null),C=en(),I=tn(t),A=!n,M=(()=>{if(!o)return null;const D=Sm(e)||"default",_=i?"daily":"summary",z=js({timeZone:a,offsetMinutes:l});return`vibeusage.usage.${o}.${D}.${s}.${r}.${_}.${z}`})(),U=h.useCallback(()=>{if(!M||typeof window>"u")return null;try{const D=window.localStorage.getItem(M);if(!D)return null;const _=JSON.parse(D);return!_||!_.summary?null:_}catch{return null}},[M]),L=h.useCallback(D=>{if(!(!M||typeof window>"u"))try{window.localStorage.setItem(M,JSON.stringify(D))}catch{}},[M]),$=h.useCallback(()=>{if(!(!M||typeof window>"u"))try{window.localStorage.removeItem(M)}catch{}},[M]),j=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),W=h.useCallback(async()=>{const D=await ot(t);if(!(!D&&!C&&!j)){S(!0),N(null);try{let _=null,z=null;if(i){const[ee,de]=await Promise.allSettled([vi({baseUrl:e,accessToken:D,from:s,to:r,timeZone:a,tzOffsetMinutes:l}),rr({baseUrl:e,accessToken:D,from:s,to:r,timeZone:a,tzOffsetMinutes:l,rolling:!0})]);if(ee.status==="rejected")throw ee.reason;_=ee.value,z=de.status==="fulfilled"?de.value:null}else z=await rr({baseUrl:e,accessToken:D,from:s,to:r,timeZone:a,tzOffsetMinutes:l,rolling:!0});let X=i&&Array.isArray(_?.data)?_.data:[];i&&(X=dr(X,s,r,{timeZone:a,offsetMinutes:l,now:c}));let se=z?.totals||_?.summary?.totals||null,H=z?.rolling||_?.summary?.rolling||null;if(i&&!se&&!z)try{const ee=await rr({baseUrl:e,accessToken:D,from:s,to:r,timeZone:a,tzOffsetMinutes:l,rolling:!0});se=ee?.totals||null,H=ee?.rolling||H}catch{}const Q=new Date().toISOString();d(X),m(se),y(H),x("edge"),v(Q),se&&A?L({summary:se,rolling:H,daily:X,from:s,to:r,includeDaily:i,fetchedAt:Q}):A||$()}catch(_){if(A){const z=U();if(z?.summary){m(z.summary),y(z.rolling||null);const X=Array.isArray(z.daily)?z.daily:[],se=i?dr(X,z.from||s,z.to||r,{timeZone:a,offsetMinutes:l,now:c}):X;d(se),x("cache"),v(z.fetchedAt||null),N(null)}else{const X=_;N(X?.message||String(X)),d([]),m(null),y(null),x("edge"),v(null)}}else{const z=_;N(z?.message||String(z)),d([]),m(null),y(null),x("edge"),v(null)}}finally{S(!1)}}},[t,e,s,i,C,n,A,c,U,I,a,r,l,$,L,j]);return h.useEffect(()=>{const D=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1");if(!I&&!n&&!C&&!D){d([]),m(null),y(null),N(null),S(!1),x("edge"),v(null);return}if(!A)$(),d([]),m(null),y(null),N(null),x("edge"),v(null);else{const _=U();if(_?.summary){m(_.summary),y(_.rolling||null);const z=Array.isArray(_.daily)?_.daily:[],X=i?dr(z,_.from||s,_.to||r,{timeZone:a,offsetMinutes:l,now:c}):z;d(X),x("cache"),v(_.fetchedAt||null)}}W()},[t,C,U,W,I,n,A,$,j]),{daily:u,summary:f,rolling:p,source:C?"mock":b,fetchedAt:w,loading:T,error:R,refresh:W}}function Sm(e){try{return new URL(e).host}catch{return null}}function ur(e){if(!e)return null;const t=String(e).trim(),n=t.split("-");if(n.length!==3)return null;const s=Number(n[0]),r=Number(n[1])-1,i=Number(n[2]);if(!Number.isFinite(s)||!Number.isFinite(r)||!Number.isFinite(i))return null;const o=new Date(Date.UTC(s,r,i));return Number.isFinite(o.getTime())&&Xt(o)===t?o:null}function km(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function dr(e,t,n,{timeZone:s,offsetMinutes:r,now:i}={}){const o=ur(t),a=ur(n);if(!o||!a||a<o)return Array.isArray(e)?e:[];const l=i instanceof Date&&Number.isFinite(i.getTime())?i:new Date,c=pi({timeZone:s,offsetMinutes:r,date:l}),u=ur(c),d=u?u.getTime():l.getTime(),f=new Map;for(const p of e||[])p?.day&&f.set(p.day,p);const m=[];for(let p=o;p<=a;p=km(p,1)){const y=Xt(p),b=f.get(y),x=p.getTime()>d;if(b){m.push({...b,missing:!1,future:x});continue}m.push({day:y,total_tokens:null,billable_total_tokens:null,input_tokens:null,cached_input_tokens:null,output_tokens:null,reasoning_output_tokens:null,missing:!x,future:x})}return m}function Tm({baseUrl:e,accessToken:t,guestAllowed:n=!1,from:s,to:r,cacheKey:i,timeZone:o,tzOffsetMinutes:a}={}){const[l,c]=h.useState(null),[u,d]=h.useState("edge"),[f,m]=h.useState(!1),[p,y]=h.useState(null),b=en(),x=tn(t),w=!n,v=h.useMemo(()=>{if(!i)return null;const A=Cm(e)||"default",M=js({timeZone:o,offsetMinutes:a});return`vibeusage.modelBreakdown.${i}.${A}.${s}.${r}.${M}`},[e,i,s,o,r,a]),T=h.useCallback(()=>{if(!v||typeof window>"u")return null;try{const A=window.localStorage.getItem(v);if(!A)return null;const M=JSON.parse(A);return!M||!M.breakdown?null:M}catch{return null}},[v]),S=h.useCallback(A=>{if(!(!v||typeof window>"u"))try{window.localStorage.setItem(v,JSON.stringify(A))}catch{}},[v]),R=h.useCallback(()=>{if(!(!v||typeof window>"u"))try{window.localStorage.removeItem(v)}catch{}},[v]),N=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),C=h.useCallback(async()=>{const A=await ot(t);if(!(!A&&!b&&!N)){m(!0),y(null);try{const M=await wh({baseUrl:e,accessToken:A,from:s,to:r,timeZone:o,tzOffsetMinutes:a});c(M||null),d("edge"),M&&w?S({breakdown:M,fetchedAt:new Date().toISOString()}):w||R()}catch(M){if(w){const U=T();if(U?.breakdown)c(U.breakdown),d("cache"),y(null);else{c(null),d("edge");const L=M;y(L?.message||String(L))}}else{c(null),d("edge");const U=M;y(U?.message||String(U))}}finally{m(!1)}}},[t,e,s,b,n,w,T,o,r,x,a,R,S,N]);return h.useEffect(()=>{if(!x&&!n&&!b&&!N){c(null),d("edge"),y(null),m(!1);return}if(!w)R(),c(null),d("edge"),y(null);else{const A=T();A?.breakdown&&(c(A.breakdown),d("cache"))}C()},[t,b,T,C,x,n,w,R,N]),{breakdown:l,source:b?"mock":u,loading:f,error:p,refresh:C}}function Cm(e){try{return new URL(e).host}catch{return null}}const ec=new Set(["day","hour","month"]);function Em(e){return ec.has(e)}function Uo(e){if(e==null)return null;const t=String(e).trim();if(!/^[0-9]+$/.test(t))return null;const n=t.replace(/^0+/,"");return n.length===0?"0":n}function Am(e,t){const n=Uo(e),s=Uo(t);if(n&&s)return n.length!==s.length?n.length<s.length?-1:1:n===s?0:n<s?-1:1;const r=Ue(e),i=Ue(t);return r==null&&i==null?0:r==null?1:i==null?-1:r===i?0:r<i?-1:1}function Pm(e,t){const n=typeof e=="string"?e:String(e||""),s=typeof t=="string"?t:String(t||"");return n===s?0:n<s?-1:1}function Rm(e){if(!e)return null;const n=String(e).trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!n)return null;const s=Number(n[1]),r=Number(n[2]),i=Number(n[3]);if(!Number.isFinite(s)||!Number.isFinite(r)||!Number.isFinite(i))return null;const o=new Date(Date.UTC(s,r-1,i));return!Number.isFinite(o.getTime())||o.getUTCFullYear()!==s||o.getUTCMonth()+1!==r||o.getUTCDate()!==i?null:o.getTime()}function Mm(e){if(!e)return null;const n=String(e).trim().match(/^(\d{4})-(\d{2})$/);if(!n)return null;const s=Number(n[1]),r=Number(n[2]);if(!Number.isFinite(s)||!Number.isFinite(r)||r<1||r>12)return null;const i=new Date(Date.UTC(s,r-1,1));return Number.isFinite(i.getTime())?i.getTime():null}function Dm(e){if(!e)return null;const n=String(e).trim().match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2}))?Z?$/);if(!n)return null;const s=Number(n[1]),r=Number(n[2]),i=Number(n[3]),o=Number(n[4]),a=Number(n[5]),l=Number(n[6]||0);if(!Number.isFinite(s)||!Number.isFinite(r)||!Number.isFinite(i)||!Number.isFinite(o)||!Number.isFinite(a)||!Number.isFinite(l)||r<1||r>12||i<1||i>31||o<0||o>23||a<0||a>59||l<0||l>59)return null;const c=new Date(Date.UTC(s,r-1,i,o,a,l));return Number.isFinite(c.getTime())?c.getTime():null}function Nm(e,t,n){const s=n==="hour"?Dm:n==="month"?Mm:Rm,r=s(e),i=s(t);return r!=null&&i!=null?r===i?0:r<i?-1:1:Pm(e,t)}function tc(e,{key:t,dir:n}){const s=n==="asc"?1:-1,r=Array.isArray(e)?e:[],i=ec.has(t)?(a,l)=>Nm(a,l,t):Am,o=a=>t==="total_tokens"&&a?.billable_total_tokens!=null?a.billable_total_tokens:a?.[t];return r.map((a,l)=>({row:a,index:l})).sort((a,l)=>{const c=o(a.row),u=o(l.row),d=c==null,f=u==null;if(d&&f)return a.index-l.index;if(d)return 1;if(f)return-1;const m=i(c,u);return m!==0?m*s:a.index-l.index}).map(a=>a.row)}const jm=[{key:"day",label:P("daily.sort.date.label"),title:P("daily.sort.date.title")},{key:"total_tokens",label:P("daily.sort.total.label"),title:P("daily.sort.total.title")},{key:"input_tokens",label:P("daily.sort.input.label"),title:P("daily.sort.input.title")},{key:"output_tokens",label:P("daily.sort.output.label"),title:P("daily.sort.output.title")},{key:"cached_input_tokens",label:P("daily.sort.cached.label"),title:P("daily.sort.cached.title")},{key:"reasoning_output_tokens",label:P("daily.sort.reasoning.label"),title:P("daily.sort.reasoning.title")},{key:"conversation_count",label:P("daily.sort.conversations.label"),title:P("daily.sort.conversations.title")}];function Wo(e){const t=Em(e)?e:"day";return jm.map((n,s)=>s===0?{...n,key:t}:n)}function Ko(e,{key:t,dir:n}){return tc(e,{key:t,dir:n})}const vs=12,Lm=["total_tokens","billable_total_tokens","input_tokens","cached_input_tokens","cache_creation_input_tokens","output_tokens","reasoning_output_tokens"];function Vm(e){if(typeof e=="bigint")return e!==0n;if(typeof e=="number")return Number.isFinite(e)&&e!==0;if(e==null)return!1;const t=String(e).trim();if(!t||!/^-?\d+$/.test(t))return!1;const n=t.startsWith("-")?t.slice(1):t;return/[1-9]/.test(n)}function Im(e){return Lm.some(t=>Vm(e?.[t]))}function Fm(e){const t=Array.isArray(e)?e:[];if(!t.length)return[];const n=tc(t,{key:"month",dir:"asc"}),s=n.findIndex(r=>r?.month&&Im(r));return s===-1?t:n.slice(s)}function _m(e,t,n=vs){const s=Array.isArray(e)?e:[],r=Number.isFinite(n)&&n>0?n:vs,o=(Number.isFinite(t)&&t>=0?Math.floor(t):0)*r;return s.slice(o,o+r)}function Om({publicMode:e,screenshotMode:t,forceInstall:n,accessEnabled:s,heatmapLoading:r,activeDays:i,hasActiveDeviceToken:o}={}){return e||t?!1:n?!0:s&&!r&&i===0&&!o}function nc(e){if(typeof e!="string")return null;const t=e.trim();return t?t.toLowerCase():null}function Bm(e){const t=nc(e?.model_id);return t||null}function sc(e,t){return e?.model?String(e.model):t}function $m(e,{copyFn:t}={}){const n=typeof t=="function"?t:o=>o,r=(Array.isArray(e?.sources)?e.sources:[]).map(o=>{const a=Ue(o?.totals?.billable_total_tokens??o?.totals?.total_tokens)??0,l=Ue(o?.totals?.total_cost_usd)??0;return{source:o?.source,totalTokens:Number.isFinite(a)?a:0,totalCost:Number.isFinite(l)?l:0,models:Array.isArray(o?.models)?o.models:[]}}).filter(o=>o.totalTokens>0);if(!r.length)return[];const i=r.reduce((o,a)=>o+a.totalTokens,0);return typeof e?.pricing?.pricing_mode=="string"&&e.pricing.pricing_mode.toUpperCase(),r.slice().sort((o,a)=>a.totalTokens-o.totalTokens).map(o=>{const a=o.source?String(o.source).toUpperCase():n("shared.placeholder.short"),l=i>0?o.totalTokens/i*100:0,c=Number.isFinite(l)?l.toFixed(1):"0.0",u=o.models.map(d=>{const f=Ue(d?.totals?.billable_total_tokens??d?.totals?.total_tokens)??0;if(!Number.isFinite(f)||f<=0)return null;const m=o.totalTokens>0?Math.round(f/o.totalTokens*1e3)/10:0,p=sc(d,n("shared.placeholder.short")),y=Bm(d),b=o.totalCost>0&&o.totalTokens>0?f/o.totalTokens*o.totalCost:null;return{id:y,name:p,share:m,usage:f,cost:b}}).filter(Boolean);return{label:a,totalPercent:String(c),usd:o.totalCost,usage:o.totalTokens,models:u}})}function Um(e,{limit:t=3,copyFn:n}={}){const s=typeof n=="function"?n:f=>f,r=Array.isArray(e?.sources)?e.sources:[];if(!r.length)return[];const i=new Map,o=new Map,a=new Map;let l=0;for(const f of r){const m=Array.isArray(f?.models)?f.models:[];for(const p of m){const y=Ue(p?.totals?.billable_total_tokens)??0;if(!Number.isFinite(y)||y<=0)continue;l+=y;const b=sc(p,s("shared.placeholder.short")),x=nc(b);if(!x)continue;i.set(x,(i.get(x)||0)+y);const w=a.get(x)||0;y>=w&&(a.set(x,y),o.set(x,b))}}if(!i.size)return[];const c=Array.from(i.values()).reduce((f,m)=>f+m,0),u=l>0?l:c,d=Number.isFinite(t)?Math.max(0,Math.floor(t)):3;return Array.from(i.entries()).map(([f,m])=>{const p=u>0?(m/u*100).toFixed(1):"0.0";return{id:f,name:o.get(f)||s("shared.placeholder.short"),tokens:m,percent:String(p)}}).sort((f,m)=>m.tokens!==f.tokens?m.tokens-f.tokens:String(f.name).localeCompare(String(m.name))).slice(0,d)}function wi(){const e=h.useContext(qf);if(e===null)throw new Error("useTheme must be used within a ThemeProvider");return e}const Ct=12,hn=3,fr=26,Wm=["#ecfdf5","#a7f3d0","#6ee7b7","#34d399","#10b981"],Km=["#064e3b","#065f46","#059669","#10b981","#34d399"],Hm=[P("heatmap.month.jan"),P("heatmap.month.feb"),P("heatmap.month.mar"),P("heatmap.month.apr"),P("heatmap.month.may"),P("heatmap.month.jun"),P("heatmap.month.jul"),P("heatmap.month.aug"),P("heatmap.month.sep"),P("heatmap.month.oct"),P("heatmap.month.nov"),P("heatmap.month.dec")];function Gm(e){if(typeof e=="bigint")return e.toLocaleString();if(typeof e=="number")return Number.isFinite(e)?Math.round(e).toLocaleString():"0";if(typeof e=="string"){const t=Number(e);return Number.isFinite(t)?Math.round(t).toLocaleString():e}return"0"}function Ym(e){if(typeof e!="string")return null;const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;const n=new Date(Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3])));return Number.isFinite(n.getTime())?n:null}function rc(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function zm(e,t){return Math.floor((Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())-Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()))/864e5)}function qm(e,t){const n=t==="mon"?1:0,s=e.getUTCDay();return rc(e,-((s-n+7)%7))}function Xm(e,t,n){if(!e)return[];const s=Ym(t)||new Date,r=[];for(let c=11;c>=0;c-=1)r.push(new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth()-c,1)));const i=qm(s,n),o=rc(i,-(e-1)*7),a=[],l=new Set;for(const c of r){const u=Math.floor(zm(o,c)/7);u<0||u>=e||l.has(u)||(l.add(u),a.push({label:Hm[c.getUTCMonth()],index:u}))}return a}function Zm({heatmap:e,timeZoneLabel:t,timeZoneShortLabel:n,hideLegend:s=!1}){const{resolvedTheme:r}=wi(),o=r==="dark"?Km:Wm,a=h.useRef(null);h.useEffect(()=>{const p=a.current;p&&(p.scrollLeft=p.scrollWidth)},[e?.weeks]);const l=e?.week_starts_on==="mon"?"mon":"sun",c=h.useMemo(()=>{const p=Array.isArray(e?.weeks)?e.weeks:[];if(!p.length)return{weeks:[]};const y=[];for(const b of p)for(const x of Array.isArray(b)?b:[])x?.day&&y.push({day:x.day,total_tokens:x.total_tokens??x.value??0,billable_total_tokens:x.billable_total_tokens??x.value??x.total_tokens??0});return Br({dailyRows:y,weeks:Math.max(52,p.length),to:e?.to,weekStartsOn:l})},[e?.to,e?.weeks,l]),u=c?.weeks||[],d=l==="mon"?["Mon","Tue","Wed","Thu","Fri","Sat","Sun"].map(p=>P(`heatmap.day.${p.toLowerCase()}`)):["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(p=>P(`heatmap.day.${p.toLowerCase()}`)),f=h.useMemo(()=>Xm(u.length,c?.to,l),[c?.to,u.length,l]);if(!u.length)return g.jsx("div",{className:"py-8 text-center text-sm text-oai-gray-500",children:P("heatmap.empty")});const m=fr+u.length*Ct+Math.max(0,u.length-1)*hn;return g.jsxs("div",{className:"rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-5",children:[g.jsxs("div",{className:"flex items-baseline justify-between mb-3",children:[g.jsx("h3",{className:"text-sm font-medium text-oai-gray-500 dark:text-oai-gray-300 uppercase tracking-wide",children:P("heatmap.title")}),g.jsx("span",{className:"text-xs text-oai-gray-400 dark:text-oai-gray-400",children:n||P("heatmap.legend.utc")})]}),g.jsx("div",{ref:a,className:"overflow-x-auto overflow-y-hidden heatmap-scroll-thin",children:g.jsxs("div",{style:{minWidth:m},children:[g.jsxs("div",{className:"grid text-[10px] uppercase text-oai-gray-400 dark:text-oai-gray-400 mb-1",style:{gridTemplateColumns:`${fr}px repeat(${u.length}, ${Ct}px)`,columnGap:hn},children:[g.jsx("span",{}),f.map(p=>g.jsx("span",{style:{gridColumnStart:p.index+2},className:"whitespace-nowrap",children:p.label},`${p.label}-${p.index}`))]}),g.jsxs("div",{className:"grid",style:{gridTemplateColumns:`${fr}px repeat(${u.length}, ${Ct}px)`,columnGap:hn},children:[g.jsx("div",{className:"grid text-[10px] text-oai-gray-400 dark:text-oai-gray-400 sticky left-0 bg-white dark:bg-oai-gray-900 pr-2",style:{gridTemplateRows:`repeat(7, ${Ct}px)`,rowGap:hn},children:d.map(p=>g.jsx("span",{className:"leading-none",children:p},p))}),g.jsx("div",{className:"grid",style:{gridAutoFlow:"column",gridTemplateRows:`repeat(7, ${Ct}px)`,gap:hn},children:u.map((p,y)=>(Array.isArray(p)?p:[]).map((b,x)=>{if(!b)return null;const w=b.day||`e-${y}-${x}`,v=Number(b.level)||0,T=o[v]||o[0],S=t||n||P("heatmap.legend.utc");return g.jsx("span",{title:P("heatmap.tooltip",{day:b.day,value:Gm(b.value),unit:P("heatmap.unit.tokens"),tz:S}),className:"rounded-[2px] transition-transform hover:scale-125 hover:z-10",style:{width:Ct,height:Ct,background:T}},w)}))})]})]})}),!s&&g.jsxs("div",{className:"flex items-center justify-center gap-2 mt-3",children:[g.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400",children:P("heatmap.legend.less")}),g.jsx("div",{className:"flex gap-0.5",children:o.map((p,y)=>g.jsx("span",{className:"rounded-[1px]",style:{width:10,height:10,background:p}},y))}),g.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400",children:P("heatmap.legend.more")})]})]})}const Jm={clipPath:"inset(50%)",overflow:"hidden",whiteSpace:"nowrap",border:0,padding:0,width:1,height:1,margin:-1},ic={...Jm,position:"fixed",top:0,left:0};function zn(e){const t=Dn(Qm,e).current;return t.next=e,Pe(t.effect),t}function Qm(e){const t={current:e,next:e,effect:()=>{t.current=t.next}};return t}var ws=Symbol("NOT_FOUND");function ep(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function tp(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!="object")throw new TypeError(t)}function np(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(n=>typeof n=="function")){const n=e.map(s=>typeof s=="function"?`function ${s.name||"unnamed"}()`:typeof s).join(", ");throw new TypeError(`${t}[${n}]`)}}var Ho=e=>Array.isArray(e)?e:[e];function sp(e){const t=Array.isArray(e[0])?e[0]:e;return np(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function rp(e,t){const n=[],{length:s}=e;for(let r=0;r<s;r++)n.push(e[r].apply(null,t));return n}function ip(e){let t;return{get(n){return t&&e(t.key,n)?t.value:ws},put(n,s){t={key:n,value:s}},getEntries(){return t?[t]:[]},clear(){t=void 0}}}function op(e,t){let n=[];function s(a){const l=n.findIndex(c=>t(a,c.key));if(l>-1){const c=n[l];return l>0&&(n.splice(l,1),n.unshift(c)),c.value}return ws}function r(a,l){s(a)===ws&&(n.unshift({key:a,value:l}),n.length>e&&n.pop())}function i(){return n}function o(){n=[]}return{get:s,put:r,getEntries:i,clear:o}}var ap=(e,t)=>e===t;function lp(e){return function(n,s){if(n===null||s===null||n.length!==s.length)return!1;const{length:r}=n;for(let i=0;i<r;i++)if(!e(n[i],s[i]))return!1;return!0}}function cp(e,t){const n=typeof t=="object"?t:{equalityCheck:t},{equalityCheck:s=ap,maxSize:r=1,resultEqualityCheck:i}=n,o=lp(s);let a=0;const l=r<=1?ip(o):op(r,o);function c(){let u=l.get(arguments);if(u===ws){if(u=e.apply(null,arguments),a++,i){const f=l.getEntries().find(m=>i(m.value,u));f&&(u=f.value,a!==0&&a--)}l.put(arguments,u)}return u}return c.clearCache=()=>{l.clear(),c.resetResultsCount()},c.resultsCount=()=>a,c.resetResultsCount=()=>{a=0},c}var up=class{constructor(e){this.value=e}deref(){return this.value}},dp=typeof WeakRef<"u"?WeakRef:up,fp=0,Go=1;function qn(){return{s:fp,v:void 0,o:null,p:null}}function oc(e,t={}){let n=qn();const{resultEqualityCheck:s}=t;let r,i=0;function o(){let a=n;const{length:l}=arguments;for(let d=0,f=l;d<f;d++){const m=arguments[d];if(typeof m=="function"||typeof m=="object"&&m!==null){let p=a.o;p===null&&(a.o=p=new WeakMap);const y=p.get(m);y===void 0?(a=qn(),p.set(m,a)):a=y}else{let p=a.p;p===null&&(a.p=p=new Map);const y=p.get(m);y===void 0?(a=qn(),p.set(m,a)):a=y}}const c=a;let u;if(a.s===Go)u=a.v;else if(u=e.apply(null,arguments),i++,s){const d=r?.deref?.()??r;d!=null&&s(d,u)&&(u=d,i!==0&&i--),r=typeof u=="object"&&u!==null||typeof u=="function"?new dp(u):u}return c.s=Go,c.v=u,u}return o.clearCache=()=>{n=qn(),o.resetResultsCount()},o.resultsCount=()=>i,o.resetResultsCount=()=>{i=0},o}function ac(e,...t){const n=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,s=(...r)=>{let i=0,o=0,a,l={},c=r.pop();typeof c=="object"&&(l=c,c=r.pop()),ep(c,`createSelector expects an output function after the inputs, but received: [${typeof c}]`);const u={...n,...l},{memoize:d,memoizeOptions:f=[],argsMemoize:m=oc,argsMemoizeOptions:p=[]}=u,y=Ho(f),b=Ho(p),x=sp(r),w=d(function(){return i++,c.apply(null,arguments)},...y),v=m(function(){o++;const S=rp(x,arguments);return a=w.apply(null,S),a},...b);return Object.assign(v,{resultFunc:c,memoizedResultFunc:w,dependencies:x,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>a,recomputations:()=>i,resetRecomputations:()=>{i=0},memoize:d,argsMemoize:m})};return Object.assign(s,{withTypes:()=>s}),s}var hp=ac(oc),mp=Object.assign((e,t=hp)=>{tp(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);const n=Object.keys(e),s=n.map(i=>e[i]);return t(s,(...i)=>i.reduce((o,a,l)=>(o[n[l]]=a,o),{}))},{withTypes:()=>mp});ac({memoize:cp,memoizeOptions:{maxSize:1,equalityCheck:Object.is}});const oe=(e,t,n,s,r,i,...o)=>{if(o.length>0)throw new Error(gi(1));let a;if(e)a=e;else throw new Error("Missing arguments");return a};var hr={exports:{}},mr={};var Yo;function pp(){if(Yo)return mr;Yo=1;var e=Al();function t(d,f){return d===f&&(d!==0||1/d===1/f)||d!==d&&f!==f}var n=typeof Object.is=="function"?Object.is:t,s=e.useState,r=e.useEffect,i=e.useLayoutEffect,o=e.useDebugValue;function a(d,f){var m=f(),p=s({inst:{value:m,getSnapshot:f}}),y=p[0].inst,b=p[1];return i(function(){y.value=m,y.getSnapshot=f,l(y)&&b({inst:y})},[d,m,f]),r(function(){return l(y)&&b({inst:y}),d(function(){l(y)&&b({inst:y})})},[d]),o(m),m}function l(d){var f=d.getSnapshot;d=d.value;try{var m=f();return!n(d,m)}catch{return!0}}function c(d,f){return f()}var u=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?c:a;return mr.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:u,mr}var zo;function lc(){return zo||(zo=1,hr.exports=pp()),hr.exports}var gp=lc(),pr={exports:{}},gr={};var qo;function yp(){if(qo)return gr;qo=1;var e=Al(),t=lc();function n(c,u){return c===u&&(c!==0||1/c===1/u)||c!==c&&u!==u}var s=typeof Object.is=="function"?Object.is:n,r=t.useSyncExternalStore,i=e.useRef,o=e.useEffect,a=e.useMemo,l=e.useDebugValue;return gr.useSyncExternalStoreWithSelector=function(c,u,d,f,m){var p=i(null);if(p.current===null){var y={hasValue:!1,value:null};p.current=y}else y=p.current;p=a(function(){function x(R){if(!w){if(w=!0,v=R,R=f(R),m!==void 0&&y.hasValue){var N=y.value;if(m(N,R))return T=N}return T=R}if(N=T,s(v,R))return N;var C=f(R);return m!==void 0&&m(N,C)?(v=R,N):(v=R,T=C)}var w=!1,v,T,S=d===void 0?null:d;return[function(){return x(u())},S===null?void 0:function(){return x(S())}]},[u,d,f,m]);var b=r(c,p[0],p[1]);return o(function(){y.hasValue=!0,y.value=b},[b]),l(b),b},gr}var Xo;function bp(){return Xo||(Xo=1,pr.exports=yp()),pr.exports}var xp=bp();const vp=Pl(19),wp=vp?kp:Tp;function Sp(e,t,n,s,r){return wp(e,t,n,s,r)}function kp(e,t,n,s,r){const i=h.useCallback(()=>t(e.getSnapshot(),n,s,r),[e,t,n,s,r]);return gp.useSyncExternalStore(e.subscribe,i,i)}function Tp(e,t,n,s,r){return xp.useSyncExternalStoreWithSelector(e.subscribe,e.getSnapshot,e.getSnapshot,i=>t(i,n,s,r))}class xn{constructor(t){this.state=t,this.listeners=new Set,this.updateTick=0}subscribe=t=>(this.listeners.add(t),()=>{this.listeners.delete(t)});getSnapshot=()=>this.state;setState(t){if(this.state===t)return;this.state=t,this.updateTick+=1;const n=this.updateTick;for(const s of this.listeners){if(n!==this.updateTick)return;s(t)}}update(t){for(const n in t)if(!Object.is(this.state[n],t[n])){xn.prototype.setState.call(this,{...this.state,...t});return}}set(t,n){Object.is(this.state[t],n)||xn.prototype.setState.call(this,{...this.state,[t]:n})}notifyAll(){const t={...this.state};xn.prototype.setState.call(this,t)}}class cc extends xn{constructor(t,n={},s){super(t),this.context=n,this.selectors=s}controlledValues=new Map;useSyncedValue(t,n){h.useDebugValue(t),Pe(()=>{this.state[t]!==n&&this.set(t,n)},[t,n])}useSyncedValueWithCleanup(t,n){const s=this;Pe(()=>(s.state[t]!==n&&s.set(t,n),()=>{s.set(t,void 0)}),[s,t,n])}useSyncedValues(t){const n=this,s=Object.values(t);Pe(()=>{n.update(t)},[n,...s])}useControlledProp(t,n,s){h.useDebugValue(t);const r=this,i=n!==void 0;this.controlledValues.has(t)||(this.controlledValues.set(t,i),!i&&!Object.is(this.state[t],s)&&super.setState({...this.state,[t]:s})),Pe(()=>{i&&!Object.is(r.state[t],n)&&super.setState({...r.state,[t]:n})},[r,t,n,s,i])}set(t,n){this.controlledValues.get(t)!==!0&&super.set(t,n)}update(t){const n={...t};for(const s in n)if(Object.hasOwn(n,s)&&this.controlledValues.get(s)===!0){delete n[s];continue}super.update(n)}setState(t){const n={...t};for(const s in n)if(Object.hasOwn(n,s)&&this.controlledValues.get(s)===!0){delete n[s];continue}super.setState({...this.state,...n})}select=(t,n,s,r)=>{const i=this.selectors[t];return i(this.state,n,s,r)};useState=(t,n,s,r)=>{h.useDebugValue(t);const i=this.selectors[t];return Sp(this,i,n,s,r)};useContextCallback(t,n){h.useDebugValue(t);const s=ie(n??Rl);this.context[t]=s}useStateSetter(t){const n=h.useRef(void 0);return n.current===void 0&&(n.current=s=>{this.set(t,s)}),n.current}observe(t,n){let s;typeof t=="function"?s=t:s=this.selectors[t];let r=s(this.state);return n(r,r,this),this.subscribe(i=>{const o=s(i);if(!Object.is(r,o)){const a=r;r=o,n(o,a,this)}})}}const Xn=null;class Cp{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=t=>{this.isScheduled=!1;const n=this.callbacks,s=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,s>0)for(let r=0;r<n.length;r+=1)n[r]?.(t)};request(t){const n=this.nextId;return this.nextId+=1,this.callbacks.push(t),this.callbacksCount+=1,!this.isScheduled&&(requestAnimationFrame(this.tick),this.isScheduled=!0),n}cancel(t){const n=t-this.startId;n<0||n>=this.callbacks.length||(this.callbacks[n]=null,this.callbacksCount-=1)}}const Zn=new Cp;class rt{static create(){return new rt}static request(t){return Zn.request(t)}static cancel(t){return Zn.cancel(t)}currentId=Xn;request(t){this.cancel(),this.currentId=Zn.request(()=>{this.currentId=Xn,t()})}cancel=()=>{this.currentId!==Xn&&(Zn.cancel(this.currentId),this.currentId=Xn)};disposeEffect=()=>this.cancel}function uc(){const e=Dn(rt.create).current;return Fl(e.disposeEffect),e}function Ep(){const e=new Map;return{emit(t,n){e.get(t)?.forEach(s=>s(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){e.get(t)?.delete(n)}}}const Ap=h.createContext(null),Pp=h.createContext(null),dc=()=>h.useContext(Ap)?.id||null,fc=e=>{const t=h.useContext(Pp);return e??t};function Ss(e){return`data-base-ui-${e}`}const ks=h.forwardRef(function(t,n){const[s,r]=h.useState();Pe(()=>{Oh&&r("button")},[]);const i={tabIndex:0,role:s};return g.jsx("span",{...t,ref:n,style:ic,"aria-hidden":s?void 0:!0,...i,"data-base-ui-focus-guard":""})});let Zo=0;function yr(e,t={}){const{preventScroll:n=!1,cancelPrevious:s=!0,sync:r=!1}=t;s&&cancelAnimationFrame(Zo);const i=()=>e?.focus({preventScroll:n});r?i():Zo=requestAnimationFrame(i)}const qt={inert:new WeakMap,"aria-hidden":new WeakMap,none:new WeakMap};function Jo(e){return e==="inert"?qt.inert:e==="aria-hidden"?qt["aria-hidden"]:qt.none}let Jn=new WeakSet,Qn={},br=0;const hc=e=>e&&(e.host||hc(e.parentNode)),Rp=(e,t)=>t.map(n=>{if(e.contains(n))return n;const s=hc(n);return e.contains(s)?s:null}).filter(n=>n!=null);function Mp(e,t,n,s){const r="data-base-ui-inert",i=s?"inert":n?"aria-hidden":null,o=Rp(t,e),a=new Set,l=new Set(o),c=[];Qn[r]||(Qn[r]=new WeakMap);const u=Qn[r];o.forEach(d),f(t),a.clear();function d(m){!m||a.has(m)||(a.add(m),m.parentNode&&d(m.parentNode))}function f(m){!m||l.has(m)||[].forEach.call(m.children,p=>{if(Ml(p)!=="script")if(a.has(p))f(p);else{const y=i?p.getAttribute(i):null,b=y!==null&&y!=="false",x=Jo(i),w=(x.get(p)||0)+1,v=(u.get(p)||0)+1;x.set(p,w),u.set(p,v),c.push(p),w===1&&b&&Jn.add(p),v===1&&p.setAttribute(r,""),!b&&i&&p.setAttribute(i,i==="inert"?"":"true")}})}return br+=1,()=>{c.forEach(m=>{const p=Jo(i),b=(p.get(m)||0)-1,x=(u.get(m)||0)-1;p.set(m,b),u.set(m,x),b||(!Jn.has(m)&&i&&m.removeAttribute(i),Jn.delete(m)),x||m.removeAttribute(r)}),br-=1,br||(qt.inert=new WeakMap,qt["aria-hidden"]=new WeakMap,qt.none=new WeakMap,Jn=new WeakSet,Qn={})}}function Dp(e,t=!1,n=!1){const s=Ve(e[0]).body;return Mp(e.concat(Array.from(s.querySelectorAll("[aria-live]"))),s,t,n)}const mc=h.createContext(null),pc=()=>h.useContext(mc),Np=Ss("portal");function jp(e={}){const{ref:t,container:n,componentProps:s=yn,elementProps:r,elementState:i}=e,o=bi(),l=pc()?.portalNode,[c,u]=h.useState(null),[d,f]=h.useState(null),m=ie(x=>{x!==null&&f(x)}),p=h.useRef(null);Pe(()=>{if(n===null){p.current&&(p.current=null,f(null),u(null));return}if(o==null)return;const x=(n&&(Xf(n)?n:n.current))??l??document.body;if(x==null){p.current&&(p.current=null,f(null),u(null));return}p.current!==x&&(p.current=x,f(null),u(x))},[n,l,o]);const y=nn("div",s,{ref:[t,m],state:i,props:[{id:o,[Np]:""},r]});return{portalNode:d,portalSubtree:c&&y?yi.createPortal(y,c):null}}const Lp=h.forwardRef(function(t,n){const{children:s,container:r,className:i,render:o,renderGuards:a,...l}=t,{portalNode:c,portalSubtree:u}=jp({container:r,ref:n,componentProps:t,elementProps:l}),d=h.useRef(null),f=h.useRef(null),m=h.useRef(null),p=h.useRef(null),[y,b]=h.useState(null),x=y?.modal,w=y?.open,v=typeof a=="boolean"?a:!!y&&!y.modal&&y.open&&!!c;h.useEffect(()=>{if(!c||x)return;function S(R){c&&R.relatedTarget&&bn(R)&&(R.type==="focusin"?Bo:hm)(c)}return c.addEventListener("focusin",S,!0),c.addEventListener("focusout",S,!0),()=>{c.removeEventListener("focusin",S,!0),c.removeEventListener("focusout",S,!0)}},[c,x]),h.useEffect(()=>{!c||w||Bo(c)},[w,c]);const T=h.useMemo(()=>({beforeOutsideRef:d,afterOutsideRef:f,beforeInsideRef:m,afterInsideRef:p,portalNode:c,setFocusManagerState:b}),[c]);return g.jsxs(h.Fragment,{children:[u,g.jsxs(mc.Provider,{value:T,children:[v&&c&&g.jsx(ks,{"data-type":"outside",ref:d,onFocus:S=>{if(bn(S,c))m.current?.focus();else{const R=y?y.domReference:null;Jl(R)?.focus()}}}),v&&c&&g.jsx("span",{"aria-owns":c.id,style:Ih}),c&&yi.createPortal(s,c),v&&c&&g.jsx(ks,{"data-type":"outside",ref:f,onFocus:S=>{if(bn(S,c))p.current?.focus();else{const R=y?y.domReference:null;Zl(R)?.focus(),y?.closeOnFocusOut&&y?.onOpenChange(!1,pt(Dl,S.nativeEvent))}}})]})]})});function mt(e){return e==null?e:"current"in e?e.current:e}function Vp(e,t){const n=Ls(e.target);return e instanceof n.KeyboardEvent?"keyboard":e instanceof n.FocusEvent?t||"keyboard":"pointerType"in e?e.pointerType||"keyboard":"touches"in e?"touch":e instanceof n.MouseEvent?t||(e.detail===0?"keyboard":"mouse"):""}const Qo=20;let xt=[];function Si(){xt=xt.filter(e=>e.isConnected)}function Ip(e){Si(),e&&Ml(e)!=="body"&&(xt.push(e),xt.length>Qo&&(xt=xt.slice(-Qo)))}function xr(){return Si(),xt[xt.length-1]}function Fp(e){if(!e)return null;const t=jn();return ql(e,t)?e:Vs(e,t)[0]||e}function _p(e){return!e||!e.isConnected?!1:typeof e.checkVisibility=="function"?e.checkVisibility():jl(e).display!=="none"}function ea(e,t){if(!t.current.includes("floating")&&!e.getAttribute("role")?.includes("dialog"))return;const n=jn(),r=fm(e,n).filter(o=>{const a=o.getAttribute("data-tabindex")||"";return ql(o,n)||o.hasAttribute("data-tabindex")&&!a.startsWith("-")}),i=e.getAttribute("tabindex");t.current.includes("floating")||r.length===0?i!=="0"&&e.setAttribute("tabindex","0"):(i!=="-1"||e.hasAttribute("data-tabindex")&&e.getAttribute("data-tabindex")!=="-1")&&(e.setAttribute("tabindex","-1"),e.setAttribute("data-tabindex","-1"))}function Op(e){const{context:t,children:n,disabled:s=!1,order:r=["content"],initialFocus:i=!0,returnFocus:o=!0,restoreFocus:a=!1,modal:l=!0,closeOnFocusOut:c=!0,openInteractionType:u="",getInsideElements:d=()=>[],nextFocusableElement:f,previousFocusableElement:m,beforeContentFocusGuardRef:p,externalTree:y}=e,b="rootStore"in t?t.rootStore:t,x=b.useState("open"),w=b.useState("domReferenceElement"),v=b.useState("floatingElement"),{events:T,dataRef:S}=b.context,R=ie(()=>S.current.floatingContext?.nodeId),N=ie(d),C=i===!1,I=Fo(w)&&C,A=zn(r),M=zn(i),U=zn(o),L=zn(u),$=fc(y),j=pc(),W=h.useRef(null),pe=h.useRef(null),D=h.useRef(!1),_=h.useRef(!1),z=h.useRef(!1),X=h.useRef(-1),se=h.useRef(""),H=h.useRef(""),Q=h.useRef(null),ee=h.useRef(null),de=jo(Q,p,j?.beforeInsideRef),be=jo(ee,j?.afterInsideRef),Ne=ps(),Be=ps(),Qe=uc(),et=j!=null,E=Wr(v),te=ie((V=E)=>V?Vs(V,jn()):[]),G=ie(V=>{const J=te(V);return A.current.map(()=>J).filter(Boolean).flat()});h.useEffect(()=>{if(s||!l)return;function V(Z){Z.key==="Tab"&&we(E,Ut(Ve(E)))&&te().length===0&&!I&&Yh(Z)}const J=Ve(E);return J.addEventListener("keydown",V),()=>{J.removeEventListener("keydown",V)}},[s,w,E,l,A,I,te,G]),h.useEffect(()=>{if(s||!v)return;function V(J){const Z=Xe(J),ce=te().indexOf(Z);ce!==-1&&(X.current=ce)}return v.addEventListener("focusin",V),()=>{v.removeEventListener("focusin",V)}},[s,v,te]),h.useEffect(()=>{if(s||!x)return;const V=Ve(E);function J(){z.current=!1}function Z(ce){const K=Xe(ce),Y=we(v,K)||we(w,K)||we(j?.portalNode,K);z.current=!Y,H.current=ce.pointerType||"keyboard"}function ne(){H.current="keyboard"}return V.addEventListener("pointerdown",Z,!0),V.addEventListener("pointerup",J,!0),V.addEventListener("pointercancel",J,!0),V.addEventListener("keydown",ne,!0),()=>{V.removeEventListener("pointerdown",Z,!0),V.removeEventListener("pointerup",J,!0),V.removeEventListener("pointercancel",J,!0),V.removeEventListener("keydown",ne,!0)}},[s,v,w,E,x,j]),h.useEffect(()=>{if(s||!c)return;function V(){_.current=!0,Be.start(0,()=>{_.current=!1})}function J(K){const Y=K.relatedTarget,Ee=K.currentTarget,he=Xe(K);queueMicrotask(()=>{const je=R(),Le=b.context.triggerElements,ct=Y?.hasAttribute(Ss("focus-guard"))&&[Q.current,ee.current,j?.beforeInsideRef.current,j?.afterInsideRef.current,j?.beforeOutsideRef.current,j?.afterOutsideRef.current,mt(m),mt(f)].includes(Y),ve=!(we(w,Y)||we(v,Y)||we(Y,v)||we(j?.portalNode,Y)||Y!=null&&Le.hasElement(Y)||Le.hasMatchingElement(re=>we(re,Y))||ct||$&&(zt($.nodesRef.current,je).find(re=>we(re.context?.elements.floating,Y)||we(re.context?.elements.domReference,Y))||_o($.nodesRef.current,je).find(re=>[re.context?.elements.floating,Wr(re.context?.elements.floating)].includes(Y)||re.context?.elements.domReference===Y)));if(Ee===w&&E&&ea(E,A),a&&Ee!==w&&!_p(he)&&Ut(Ve(E))===Ve(E).body){if(Rt(E)&&(E.focus(),a==="popup")){Qe.request(()=>{E.focus()});return}const re=X.current,Re=te(),Ie=Re[re]||Re[Re.length-1]||E;Rt(Ie)&&Ie.focus()}if(S.current.insideReactTree){S.current.insideReactTree=!1;return}(I||!l)&&Y&&ve&&!_.current&&(I||Y!==xr())&&(D.current=!0,b.setOpen(!1,pt(Dl,K)))})}function Z(){z.current||(S.current.insideReactTree=!0,Ne.start(0,()=>{S.current.insideReactTree=!1}))}const ne=Rt(w)?w:null,ce=[];if(!(!v&&!ne))return ne&&(ne.addEventListener("focusout",J),ne.addEventListener("pointerdown",V),ce.push(()=>{ne.removeEventListener("focusout",J),ne.removeEventListener("pointerdown",V)})),v&&(v.addEventListener("focusout",J),j&&(v.addEventListener("focusout",Z,!0),ce.push(()=>{v.removeEventListener("focusout",Z,!0)})),ce.push(()=>{v.removeEventListener("focusout",J)})),()=>{ce.forEach(K=>{K()})}},[s,w,v,E,l,$,j,b,c,a,te,I,R,A,S,Ne,Be,Qe,f,m]),h.useEffect(()=>{if(s||!v||!x)return;const V=Array.from(j?.portalNode?.querySelectorAll(`[${Ss("portal")}]`)||[]),Z=($?_o($.nodesRef.current,R()):[]).find(K=>Fo(K.context?.elements.domReference||null))?.context?.elements.domReference,ne=[v,Z,...V,...N(),W.current,pe.current,Q.current,ee.current,j?.beforeOutsideRef.current,j?.afterOutsideRef.current,mt(m),mt(f),I?w:null].filter(K=>K!=null),ce=Dp(ne,l||I);return()=>{ce()}},[x,s,w,v,l,A,j,I,$,R,N,f,m]),Pe(()=>{if(!x||s||!Rt(E))return;const V=Ve(E),J=Ut(V);queueMicrotask(()=>{const Z=G(E),ne=M.current,ce=typeof ne=="function"?ne(L.current||""):ne;if(ce===void 0||ce===!1)return;let K;ce===!0||ce===null?K=Z[0]||E:K=mt(ce),K=K||Z[0]||E,!we(E,J)&&yr(K,{preventScroll:K===E})})},[s,x,E,C,G,M,L]),Pe(()=>{if(s||!E)return;const V=Ve(E),J=Ut(V);Ip(J);function Z(K){if(K.open||(se.current=Vp(K.nativeEvent,H.current)),K.reason===Zf&&K.nativeEvent.type==="mouseleave"&&(D.current=!0),K.reason===Nl)if(K.nested)D.current=!1;else if(qh(K.nativeEvent)||Xh(K.nativeEvent))D.current=!1;else{let Y=!1;document.createElement("div").focus({get preventScroll(){return Y=!0,!1}}),Y?D.current=!1:D.current=!0}}T.on("openchange",Z);const ne=V.createElement("span");ne.setAttribute("tabindex","-1"),ne.setAttribute("aria-hidden","true"),Object.assign(ne.style,ic),et&&w&&w.insertAdjacentElement("afterend",ne);function ce(){const K=U.current;let Y=typeof K=="function"?K(se.current):K;if(Y===void 0||Y===!1)return null;if(Y===null&&(Y=!0),typeof Y=="boolean"){const he=w||xr();return he&&he.isConnected?he:ne}const Ee=w||xr()||ne;return mt(Y)||Ee}return()=>{T.off("openchange",Z);const K=Ut(V),Y=we(v,K)||$&&zt($.nodesRef.current,R(),!1).some(he=>we(he.context?.elements.floating,K)),Ee=ce();queueMicrotask(()=>{const he=Fp(Ee),je=typeof U.current!="boolean";U.current&&!D.current&&Rt(he)&&(!(!je&&he!==K&&K!==V.body)||Y)&&he.focus({preventScroll:!0}),ne.remove()})}},[s,v,E,U,S,T,$,et,w,R]),h.useEffect(()=>{queueMicrotask(()=>{D.current=!1})},[s]),h.useEffect(()=>{if(s||!x)return;function V(Z){Xe(Z)?.closest(`[${Vh}]`)&&(_.current=!0)}const J=Ve(E);return J.addEventListener("pointerdown",V,!0),()=>{J.removeEventListener("pointerdown",V,!0)}},[s,x,E]),Pe(()=>{if(!s&&j)return j.setFocusManagerState({modal:l,closeOnFocusOut:c,open:x,onOpenChange:b.setOpen,domReference:w}),()=>{j.setFocusManagerState(null)}},[s,j,l,x,b,c,w]),Pe(()=>{if(!(s||!E))return ea(E,A),()=>{queueMicrotask(Si)}},[s,E,A]);const xe=!s&&(l?!I:!0)&&(et||l);return g.jsxs(h.Fragment,{children:[xe&&g.jsx(ks,{"data-type":"inside",ref:de,onFocus:V=>{if(l){const J=G();yr(J[J.length-1])}else j?.portalNode&&(D.current=!1,bn(V,j.portalNode)?Zl(w)?.focus():mt(m??j.beforeOutsideRef)?.focus())}}),n,xe&&g.jsx(ks,{"data-type":"inside",ref:be,onFocus:V=>{l?yr(G()[0]):j?.portalNode&&(c&&(D.current=!0),bn(V,j.portalNode)?Jl(w)?.focus():mt(f??j.afterOutsideRef)?.focus())}})]})}const Bp={intentional:"onClick",sloppy:"onPointerDown"};function $p(e){return{escapeKey:typeof e=="boolean"?e:e?.escapeKey??!1,outsidePress:typeof e=="boolean"?e:e?.outsidePress??!0}}function Up(e,t={}){const n="rootStore"in e?e.rootStore:e,s=n.useState("open"),r=n.useState("floatingElement"),i=n.useState("referenceElement"),o=n.useState("domReferenceElement"),{onOpenChange:a,dataRef:l}=n.context,{enabled:c=!0,escapeKey:u=!0,outsidePress:d=!0,outsidePressEvent:f="sloppy",referencePress:m=!1,referencePressEvent:p="sloppy",ancestorScroll:y=!1,bubbles:b,externalTree:x}=t,w=fc(x),v=ie(typeof d=="function"?d:()=>!1),T=typeof d=="function"?v:d,S=h.useRef(!1),{escapeKey:R,outsidePress:N}=$p(b),C=h.useRef(null),I=ps(),A=ps(),M=ie(()=>{A.clear(),l.current.insideReactTree=!1}),U=h.useRef(!1),L=h.useRef(""),$=ie(E=>{L.current=E.pointerType}),j=ie(()=>{const E=L.current,te=E==="pen"||!E?"mouse":E,G=typeof f=="function"?f():f;return typeof G=="string"?G:G[te]}),W=ie(E=>{if(!s||!c||!u||E.key!=="Escape"||U.current)return;const te=l.current.floatingContext?.nodeId,G=w?zt(w.nodesRef.current,te):[];if(!R&&G.length>0){let J=!0;if(G.forEach(Z=>{Z.context?.open&&!Z.context.dataRef.current.__escapeKeyBubbles&&(J=!1)}),!J)return}const xe=zh(E)?E.nativeEvent:E,V=pt(Jf,xe);n.setOpen(!1,V),!R&&!V.isPropagationAllowed&&E.stopPropagation()}),pe=ie(E=>{const te=j();return te==="intentional"&&E.type!=="click"||te==="sloppy"&&E.type==="click"}),D=ie(()=>{l.current.insideReactTree=!0,A.start(0,M)}),_=ie((E,te=!1)=>{if(pe(E)){M();return}if(l.current.insideReactTree){M();return}if(j()==="intentional"&&te||typeof T=="function"&&!T(E))return;const G=Xe(E),xe=`[${Ss("inert")}]`,V=Ve(n.select("floatingElement")).querySelectorAll(xe),J=n.context.triggerElements;if(G&&(J.hasElement(G)||J.hasMatchingElement(Y=>we(Y,G))))return;let Z=At(G)?G:null;for(;Z&&!tr(Z);){const Y=Qf(Z);if(tr(Y)||!At(Y))break;Z=Y}if(V.length&&At(G)&&!Hh(G)&&!we(G,n.select("floatingElement"))&&Array.from(V).every(Y=>!we(Z,Y)))return;if(Rt(G)&&!("touches"in E)){const Y=tr(G),Ee=jl(G),he=/auto|scroll/,je=Y||he.test(Ee.overflowX),Le=Y||he.test(Ee.overflowY),ct=je&&G.clientWidth>0&&G.scrollWidth>G.clientWidth,ve=Le&&G.clientHeight>0&&G.scrollHeight>G.clientHeight,re=Ee.direction==="rtl",Re=ve&&(re?E.offsetX<=G.offsetWidth-G.clientWidth:E.offsetX>G.clientWidth),Ie=ct&&E.offsetY>G.clientHeight;if(Re||Ie)return}const ne=l.current.floatingContext?.nodeId,ce=w&&zt(w.nodesRef.current,ne).some(Y=>Ye(E,Y.context?.elements.floating));if(Ye(E,n.select("floatingElement"))||Ye(E,n.select("domReferenceElement"))||ce)return;const K=w?zt(w.nodesRef.current,ne):[];if(K.length>0){let Y=!0;if(K.forEach(Ee=>{Ee.context?.open&&!Ee.context.dataRef.current.__outsidePressBubbles&&(Y=!1)}),!Y)return}n.setOpen(!1,pt(Nl,E)),M()}),z=ie(E=>{j()!=="sloppy"||E.pointerType==="touch"||!n.select("open")||!c||Ye(E,n.select("floatingElement"))||Ye(E,n.select("domReferenceElement"))||_(E)}),X=ie(E=>{if(j()!=="sloppy"||!n.select("open")||!c||Ye(E,n.select("floatingElement"))||Ye(E,n.select("domReferenceElement")))return;const te=E.touches[0];te&&(C.current={startTime:Date.now(),startX:te.clientX,startY:te.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},I.start(1e3,()=>{C.current&&(C.current.dismissOnTouchEnd=!1,C.current.dismissOnMouseDown=!1)}))}),se=ie(E=>{const te=Xe(E);function G(){X(E),te?.removeEventListener(E.type,G)}te?.addEventListener(E.type,G)}),H=ie(E=>{const te=S.current;if(S.current=!1,I.clear(),E.type==="mousedown"&&C.current&&!C.current.dismissOnMouseDown)return;const G=Xe(E);function xe(){E.type==="pointerdown"?z(E):_(E,te),G?.removeEventListener(E.type,xe)}G?.addEventListener(E.type,xe)}),Q=ie(E=>{if(j()!=="sloppy"||!C.current||Ye(E,n.select("floatingElement"))||Ye(E,n.select("domReferenceElement")))return;const te=E.touches[0];if(!te)return;const G=Math.abs(te.clientX-C.current.startX),xe=Math.abs(te.clientY-C.current.startY),V=Math.sqrt(G*G+xe*xe);V>5&&(C.current.dismissOnTouchEnd=!0),V>10&&(_(E),I.clear(),C.current=null)}),ee=ie(E=>{const te=Xe(E);function G(){Q(E),te?.removeEventListener(E.type,G)}te?.addEventListener(E.type,G)}),de=ie(E=>{j()!=="sloppy"||!C.current||Ye(E,n.select("floatingElement"))||Ye(E,n.select("domReferenceElement"))||(C.current.dismissOnTouchEnd&&_(E),I.clear(),C.current=null)}),be=ie(E=>{const te=Xe(E);function G(){de(E),te?.removeEventListener(E.type,G)}te?.addEventListener(E.type,G)});h.useEffect(()=>{if(!s||!c)return;l.current.__escapeKeyBubbles=R,l.current.__outsidePressBubbles=N;const E=new Zt;function te(Z){n.setOpen(!1,pt(th,Z))}function G(){E.clear(),U.current=!0}function xe(){E.start(eh()?5:0,()=>{U.current=!1})}const V=Ve(r);V.addEventListener("pointerdown",$,!0),u&&(V.addEventListener("keydown",W),V.addEventListener("compositionstart",G),V.addEventListener("compositionend",xe)),T&&(V.addEventListener("click",H,!0),V.addEventListener("pointerdown",H,!0),V.addEventListener("touchstart",se,!0),V.addEventListener("touchmove",ee,!0),V.addEventListener("touchend",be,!0),V.addEventListener("mousedown",H,!0));let J=[];return y&&(At(o)&&(J=nr(o)),At(r)&&(J=J.concat(nr(r))),!At(i)&&i&&i.contextElement&&(J=J.concat(nr(i.contextElement)))),J=J.filter(Z=>Z!==V.defaultView?.visualViewport),J.forEach(Z=>{Z.addEventListener("scroll",te,{passive:!0})}),()=>{V.removeEventListener("pointerdown",$,!0),u&&(V.removeEventListener("keydown",W),V.removeEventListener("compositionstart",G),V.removeEventListener("compositionend",xe)),T&&(V.removeEventListener("click",H,!0),V.removeEventListener("pointerdown",H,!0),V.removeEventListener("touchstart",se,!0),V.removeEventListener("touchmove",ee,!0),V.removeEventListener("touchend",be,!0),V.removeEventListener("mousedown",H,!0)),J.forEach(Z=>{Z.removeEventListener("scroll",te)}),E.clear(),S.current=!1}},[l,r,i,o,u,T,s,a,y,c,R,N,W,_,H,z,se,ee,be,$,n]),h.useEffect(M,[T,M]);const Ne=h.useMemo(()=>({onKeyDown:W,...m&&{[Bp[p]]:E=>{n.setOpen(!1,pt(Lo,E.nativeEvent))},...p!=="intentional"&&{onClick(E){n.setOpen(!1,pt(Lo,E.nativeEvent))}}}}),[W,n,m,p]),Be=ie(E=>{const te=Xe(E.nativeEvent);!we(n.select("floatingElement"),te)||E.button!==0||(S.current=!0)}),Qe=ie(E=>{!s||!c||E.button!==0||(S.current=!0)}),et=h.useMemo(()=>({onKeyDown:W,onPointerDown:Be,onMouseDown:Be,onMouseUp:Be,onClickCapture:D,onMouseDownCapture(E){D(),Qe(E)},onPointerDownCapture(E){D(),Qe(E)},onMouseUpCapture:D,onTouchEndCapture:D,onTouchMoveCapture:D}),[W,Be,D,Qe]);return h.useMemo(()=>c?{reference:Ne,floating:et,trigger:Ne}:{},[c,Ne,et])}const Wp={open:oe(e=>e.open),domReferenceElement:oe(e=>e.domReferenceElement),referenceElement:oe(e=>e.positionReference??e.referenceElement),floatingElement:oe(e=>e.floatingElement),floatingId:oe(e=>e.floatingId)};class gc extends cc{constructor(t){const{nested:n,noEmit:s,onOpenChange:r,triggerElements:i,...o}=t;super({...o,positionReference:o.referenceElement,domReferenceElement:o.referenceElement},{onOpenChange:r,dataRef:{current:{}},events:Ep(),nested:n,noEmit:s,triggerElements:i},Wp)}setOpen=(t,n)=>{if((!t||!this.state.open||Zh(n.event))&&(this.context.dataRef.current.openEvent=t?n.event:void 0),!this.context.noEmit){const s={open:t,reason:n.reason,nativeEvent:n.event,nested:this.context.nested,triggerElement:n.trigger};this.context.events.emit("openchange",s)}this.context.onOpenChange?.(t,n)}}function Kp(e,t=!1,n=!1){const[s,r]=h.useState(e&&t?"idle":void 0),[i,o]=h.useState(e);return e&&!i&&(o(!0),r("starting")),!e&&i&&s!=="ending"&&!n&&r("ending"),!e&&!i&&s==="ending"&&r(void 0),Pe(()=>{if(!e&&i&&s!=="ending"&&n){const a=rt.request(()=>{r("ending")});return()=>{rt.cancel(a)}}},[e,i,s,n]),Pe(()=>{if(!e||t)return;const a=rt.request(()=>{r(void 0)});return()=>{rt.cancel(a)}},[t,e]),Pe(()=>{if(!e||!t)return;e&&i&&s!=="idle"&&r("starting");const a=rt.request(()=>{r("idle")});return()=>{rt.cancel(a)}},[t,e,i,r,s]),h.useMemo(()=>({mounted:i,setMounted:o,transitionStatus:s}),[i,s])}let Cn=(function(e){return e.startingStyle="data-starting-style",e.endingStyle="data-ending-style",e})({});const Hp={[Cn.startingStyle]:""},Gp={[Cn.endingStyle]:""},ki={transitionStatus(e){return e==="starting"?Hp:e==="ending"?Gp:null}};function Yp(e,t=!1,n=!0){const s=uc();return ie((r,i=null)=>{s.cancel();function o(){yi.flushSync(r)}const a=mt(e);if(a==null)return;const l=a;if(typeof l.getAnimations!="function"||globalThis.BASE_UI_ANIMATIONS_DISABLED)r();else{let c=function(){const d=Cn.startingStyle;if(!l.hasAttribute(d)){s.request(u);return}const f=new MutationObserver(()=>{l.hasAttribute(d)||(f.disconnect(),u())});f.observe(l,{attributes:!0,attributeFilter:[d]}),i?.addEventListener("abort",()=>f.disconnect(),{once:!0})},u=function(){Promise.all(l.getAnimations().map(d=>d.finished)).then(()=>{i?.aborted||o()}).catch(()=>{const d=l.getAnimations();if(n){if(i?.aborted)return;o()}else d.length>0&&d.some(f=>f.pending||f.playState!=="finished")&&u()})};if(t){c();return}s.request(u)}})}function yc(e){const{enabled:t=!0,open:n,ref:s,onComplete:r}=e,i=ie(r),o=Yp(s,n,!1);h.useEffect(()=>{if(!t)return;const a=new AbortController;return o(i,a.signal),()=>{a.abort()}},[t,n,i,o])}function zp(e){const t=e.useState("open");Pe(()=>{if(t&&!e.select("activeTriggerId")&&e.context.triggerElements.size===1){const n=e.context.triggerElements.entries().next();if(!n.done){const[s,r]=n.value;e.update({activeTriggerId:s,activeTriggerElement:r})}}},[t,e])}function qp(e,t,n){const{mounted:s,setMounted:r,transitionStatus:i}=Kp(e);t.useSyncedValues({mounted:s,transitionStatus:i});const o=ie(()=>{r(!1),t.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1}),n?.(),t.context.onOpenChangeComplete?.(!1)}),a=t.useState("preventUnmountingOnClose");return yc({enabled:!a,open:e,ref:t.context.popupRef,onComplete(){e||o()}}),{forceUnmount:o,transitionStatus:i}}class bc{constructor(){this.elements=new Set,this.idMap=new Map}add(t,n){const s=this.idMap.get(t);s!==n&&(s!==void 0&&this.elements.delete(s),this.elements.add(n),this.idMap.set(t,n))}delete(t){const n=this.idMap.get(t);n&&(this.elements.delete(n),this.idMap.delete(t))}hasElement(t){return this.elements.has(t)}hasMatchingElement(t){for(const n of this.elements)if(t(n))return!0;return!1}getById(t){return this.idMap.get(t)}entries(){return this.idMap.entries()}get size(){return this.idMap.size}}function Xp(){return new gc({open:!1,floatingElement:null,referenceElement:null,triggerElements:new bc,floatingId:"",nested:!1,noEmit:!1,onOpenChange:void 0})}function Zp(){return{open:!1,mounted:!1,transitionStatus:"idle",floatingRootContext:Xp(),preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,popupElement:null,positionerElement:null,activeTriggerProps:yn,inactiveTriggerProps:yn,popupProps:yn}}const Jp={open:oe(e=>e.open),mounted:oe(e=>e.mounted),transitionStatus:oe(e=>e.transitionStatus),floatingRootContext:oe(e=>e.floatingRootContext),preventUnmountingOnClose:oe(e=>e.preventUnmountingOnClose),payload:oe(e=>e.payload),activeTriggerId:oe(e=>e.activeTriggerId),activeTriggerElement:oe(e=>e.mounted?e.activeTriggerElement:null),isTriggerActive:oe((e,t)=>t!==void 0&&e.activeTriggerId===t),isOpenedByTrigger:oe((e,t)=>t!==void 0&&e.activeTriggerId===t&&e.open),isMountedByTrigger:oe((e,t)=>t!==void 0&&e.activeTriggerId===t&&e.mounted),triggerProps:oe((e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps),popupProps:oe(e=>e.popupProps),popupElement:oe(e=>e.popupElement),positionerElement:oe(e=>e.positionerElement)};function Qp(e){const{popupStore:t,noEmit:n=!1,treatPopupAsFloatingElement:s=!1,onOpenChange:r}=e,i=bi(),o=dc()!=null,a=t.useState("open"),l=t.useState("activeTriggerElement"),c=t.useState(s?"popupElement":"positionerElement"),u=t.context.triggerElements,d=Dn(()=>new gc({open:a,referenceElement:l,floatingElement:c,triggerElements:u,onOpenChange:r,floatingId:i,nested:o,noEmit:n})).current;return Pe(()=>{const f={open:a,floatingId:i,referenceElement:l,floatingElement:c};At(l)&&(f.domReferenceElement=l),d.state.positionReference===d.state.referenceElement&&(f.positionReference=l),d.update(f)},[a,i,l,c,d]),d.context.onOpenChange=r,d.context.nested=o,d.context.noEmit=n,d}function eg(e=[]){const t=e.map(c=>c?.reference),n=e.map(c=>c?.floating),s=e.map(c=>c?.item),r=e.map(c=>c?.trigger),i=h.useCallback(c=>es(c,e,"reference"),t),o=h.useCallback(c=>es(c,e,"floating"),n),a=h.useCallback(c=>es(c,e,"item"),s),l=h.useCallback(c=>es(c,e,"trigger"),r);return h.useMemo(()=>({getReferenceProps:i,getFloatingProps:o,getItemProps:a,getTriggerProps:l}),[i,o,a,l])}function es(e,t,n){const s=new Map,r=n==="item",i={};n==="floating"&&(i.tabIndex=-1,i[Ur]="");for(const o in e)r&&e&&(o===$l||o===Ul)||(i[o]=e[o]);for(let o=0;o<t.length;o+=1){let a;const l=t[o]?.[n];typeof l=="function"?a=e?l(e):null:a=l,a&&ta(i,a,r,s)}return ta(i,e,r,s),i}function ta(e,t,n,s){for(const r in t){const i=t[r];n&&(r===$l||r===Ul)||(r.startsWith("on")?(s.has(r)||s.set(r,[]),typeof i=="function"&&(s.get(r)?.push(i),e[r]=(...o)=>s.get(r)?.map(a=>a(...o)).find(a=>a!==void 0))):e[r]=i)}}const tg=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);function ng(e,t={}){const n="rootStore"in e?e.rootStore:e,s=n.useState("open"),r=n.useState("floatingId"),i=n.useState("domReferenceElement"),o=n.useState("floatingElement"),{enabled:a=!0,role:l="dialog"}=t,c=bi(),u=i?.id||c,d=h.useMemo(()=>Wr(o)?.id||r,[o,r]),f=tg.get(l)??l,p=dc()!=null,y=h.useMemo(()=>f==="tooltip"||l==="label"?yn:{"aria-haspopup":f==="alertdialog"?"dialog":f,"aria-expanded":"false",...f==="listbox"&&{role:"combobox"},...f==="menu"&&p&&{role:"menuitem"},...l==="select"&&{"aria-autocomplete":"none"},...l==="combobox"&&{"aria-autocomplete":"list"}},[f,p,l]),b=h.useMemo(()=>f==="tooltip"||l==="label"?{[`aria-${l==="label"?"labelledby":"describedby"}`]:s?d:void 0}:{...y,"aria-expanded":s?"true":"false","aria-controls":s?d:void 0,...f==="menu"&&{id:u}},[f,d,s,u,l,y]),x=h.useMemo(()=>{const v={id:d,...f&&{role:f}};return f==="tooltip"||l==="label"?v:{...v,...f==="menu"&&{"aria-labelledby":u}}},[f,d,u,l]),w=h.useCallback(({active:v,selected:T})=>{const S={role:"option",...v&&{id:`${d}-fui-option`}};switch(l){case"select":case"combobox":return{...S,"aria-selected":T}}return{}},[d,l]);return h.useMemo(()=>a?{reference:b,floating:x,item:w,trigger:y}:{},[a,b,x,y,w])}function sg(e){const t=h.useRef(""),n=h.useCallback(r=>{r.defaultPrevented||(t.current=r.pointerType,e(r,r.pointerType))},[e]);return{onClick:h.useCallback(r=>{if(r.detail===0){e(r,"keyboard");return}"pointerType"in r&&e(r,r.pointerType),e(r,t.current),t.current=""},[e]),onPointerDown:n}}function rg(e){const[t,n]=h.useState(null),s=ie((a,l)=>{e||n(l||(Bl?"touch":""))}),r=h.useCallback(()=>{n(null)},[]),{onClick:i,onPointerDown:o}=sg(s);return h.useMemo(()=>({openMethod:t,reset:r,triggerProps:{onClick:i,onPointerDown:o}}),[t,r,i,o])}let Ze=(function(e){return e.open="data-open",e.closed="data-closed",e[e.startingStyle=Cn.startingStyle]="startingStyle",e[e.endingStyle=Cn.endingStyle]="endingStyle",e.anchorHidden="data-anchor-hidden",e})({});const ig={[Ze.open]:""},og={[Ze.closed]:""},ag={[Ze.anchorHidden]:""},Ti={open(e){return e?ig:og},anchorHidden(e){return e?ag:null}};function lg(e){return Pl(19)?e:e?"true":void 0}let na={},sa={},ra="";function cg(e){if(typeof document>"u")return!1;const t=Nn(e);return Ls(t).innerWidth-t.documentElement.clientWidth>0}function ug(e){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const s=Nn(e).documentElement,r={scrollbarGutter:s.style.scrollbarGutter,overflowY:s.style.overflowY};s.style.scrollbarGutter="stable",s.style.overflowY="scroll";const i=s.offsetWidth;s.style.overflowY="hidden";const o=s.offsetWidth;return Object.assign(s.style,r),i===o}function dg(e){const t=Nn(e),n=t.documentElement,s=t.body,r=Ll(n)?n:s,i=r.style.overflow;return r.style.overflow="hidden",()=>{r.style.overflow=i}}function fg(e){const t=Nn(e),n=t.documentElement,s=t.body,r=Ls(n);let i=0,o=0,a=!1;const l=rt.create();if(_h&&(r.visualViewport?.scale??1)!==1)return()=>{};function c(){const f=r.getComputedStyle(n),m=r.getComputedStyle(s),b=(f.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";i=n.scrollTop,o=n.scrollLeft,na={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},ra=n.style.scrollBehavior,sa={position:s.style.position,height:s.style.height,width:s.style.width,boxSizing:s.style.boxSizing,overflowY:s.style.overflowY,overflowX:s.style.overflowX,scrollBehavior:s.style.scrollBehavior};const x=n.scrollHeight>n.clientHeight,w=n.scrollWidth>n.clientWidth,v=f.overflowY==="scroll"||m.overflowY==="scroll",T=f.overflowX==="scroll"||m.overflowX==="scroll",S=Math.max(0,r.innerWidth-s.clientWidth),R=Math.max(0,r.innerHeight-s.clientHeight),N=parseFloat(m.marginTop)+parseFloat(m.marginBottom),C=parseFloat(m.marginLeft)+parseFloat(m.marginRight),I=Ll(n)?n:s;if(a=ug(e),a){n.style.scrollbarGutter=b,I.style.overflowY="hidden",I.style.overflowX="hidden";return}Object.assign(n.style,{scrollbarGutter:b,overflowY:"hidden",overflowX:"hidden"}),(x||v)&&(n.style.overflowY="scroll"),(w||T)&&(n.style.overflowX="scroll"),Object.assign(s.style,{position:"relative",height:N||R?`calc(100dvh - ${N+R}px)`:"100dvh",width:C||S?`calc(100vw - ${C+S}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),s.scrollTop=i,s.scrollLeft=o,n.setAttribute("data-base-ui-scroll-locked",""),n.style.scrollBehavior="unset"}function u(){Object.assign(n.style,na),Object.assign(s.style,sa),a||(n.scrollTop=i,n.scrollLeft=o,n.removeAttribute("data-base-ui-scroll-locked"),n.style.scrollBehavior=ra)}function d(){u(),l.request(c)}return c(),r.addEventListener("resize",d),()=>{l.cancel(),u(),typeof r.removeEventListener=="function"&&r.removeEventListener("resize",d)}}class hg{lockCount=0;restore=null;timeoutLock=Zt.create();timeoutUnlock=Zt.create();acquire(t){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(t)),this.release}release=()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(t){if(this.lockCount===0||this.restore!==null)return;const s=Nn(t).documentElement,r=Ls(s).getComputedStyle(s).overflowY;if(r==="hidden"||r==="clip"){this.restore=Rl;return}const i=Bl||!cg(t);this.restore=i?dg(t):fg(t)}}const mg=new hg;function pg(e=!0,t=null){Pe(()=>{if(e)return mg.acquire(t)},[e,t])}const gg=h.forwardRef(function(t,n){const{cutout:s,...r}=t;let i;if(s){const o=s?.getBoundingClientRect();i=`polygon(
|
|
2
2
|
0% 0%,
|
|
3
3
|
100% 0%,
|
|
4
4
|
100% 100%,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as d,m as e,l as n,X as g,ar as v,_ as b,as as j}from"./main-
|
|
1
|
+
import{r as d,m as e,l as n,X as g,ar as v,_ as b,as as j}from"./main-C3QpHBOP.js";function w(r){let t=0;for(let s=0;s<r.length;s+=1)t=r.charCodeAt(s)+((t<<5)-t);return t}function y({name:r="unknown",isAnon:t=!1,isTheOne:s=!1,size:i=64,className:l=""}){const a=d.useMemo(()=>w(String(r||"unknown")),[r]),c=d.useMemo(()=>{const f=[];for(let o=0;o<15;o+=1)f.push((a>>o&1)===1);return f},[a]),x=t?"#333":s?"#FFD700":"#00FF41",u=t?"none":s?"drop-shadow(0 0 8px rgba(255, 215, 0, 0.8)) drop-shadow(0 0 15px rgba(255, 255, 255, 0.5))":"drop-shadow(0 0 4px rgba(0, 255, 65, 0.6))";return t?e.jsx("div",{style:{width:i,height:i},className:`bg-matrix-panel border border-matrix-ghost flex items-center justify-center overflow-hidden ${l}`,children:e.jsx("span",{className:"text-matrix-primary font-black text-body opacity-60",children:n("shared.placeholder.anon_mark")})}):e.jsxs("div",{style:{width:i,height:i},className:`relative p-1 transition-transform duration-300 hover:scale-105 ${s?"bg-yellow-900/20 border border-yellow-500/50":"bg-matrix-panelStrong border border-matrix-dim"} ${l}`,children:[s?e.jsx("div",{className:"absolute inset-0 bg-white opacity-10 animate-pulse mix-blend-overlay"}):null,e.jsx("svg",{viewBox:"0 0 5 5",className:"w-full h-full",style:{filter:u},children:c.map((f,o)=>{if(!f)return null;const m=Math.floor(o/3),h=o%3;return e.jsxs(g.Fragment,{children:[e.jsx("rect",{x:h,y:m,width:"1",height:"1",fill:x}),h<2?e.jsx("rect",{x:4-h,y:m,width:"1",height:"1",fill:x}):null]},o)})})]})}const p=({title:r=n("signalbox.title_default"),children:t,className:s=""})=>e.jsxs("section",{className:`relative flex flex-col overflow-hidden border border-[#00FF41]/45 bg-[#04130b]/72 ${s}`,children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[linear-gradient(rgba(0,255,65,0)_50%,rgba(0,255,65,0.16)_50%)] bg-[length:100%_4px] opacity-25"}),e.jsx("header",{className:"relative z-10 border-b border-[#00FF41]/25 px-5 py-3",children:e.jsx("span",{className:"font-mono text-[11px] uppercase tracking-[0.16em] text-[#00FF41]/78",children:e.jsx(v,{text:r})})}),e.jsx("div",{className:"relative z-10 flex-1 min-h-0 p-4",children:t})]});function N({prefersReducedMotion:r,screenshotMode:t}){return!(t||r)}function _(){return d.useMemo(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches,[])}const M=()=>{const[r,t]=d.useState([n("live_sniffer.log.system"),n("live_sniffer.log.socket")]),s=_(),i=d.useMemo(()=>typeof window>"u"?!1:b(window.location.search),[]),l=N({prefersReducedMotion:s,screenshotMode:i});return d.useEffect(()=>{if(!l)return;const a=[n("live_sniffer.event.intercepted"),n("live_sniffer.event.quantifying"),n("live_sniffer.event.analysis"),n("live_sniffer.event.sync"),n("live_sniffer.event.batch"),n("live_sniffer.event.hooking"),n("live_sniffer.event.capture")];let c=0;const x=setInterval(()=>{t(u=>[...u.slice(-4),a[c%a.length]]),c++},1500);return()=>clearInterval(x)},[l]),e.jsx("div",{className:"font-matrix text-caption text-matrix-muted space-y-2 h-full flex flex-col justify-end",children:r.map((a,c)=>e.jsx("div",{className:"animate-pulse border-l-2 border-matrix-ghost pl-2 truncate",children:a},c))})};function k({handle:r,onHandleChange:t,specialHandle:s,handlePlaceholder:i,rankLabel:l}){return e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 w-full max-w-3xl",children:[e.jsx(p,{title:n("landing.signal.identity_probe"),className:"h-44",children:e.jsxs("div",{className:"flex items-center space-x-6 h-full",children:[e.jsx(y,{name:r,size:80,isTheOne:r===s}),e.jsxs("div",{className:"flex-1 text-left space-y-3",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx("label",{className:"text-caption text-matrix-muted uppercase mb-2 font-bold",children:n("landing.handle.label")}),e.jsx(j,{type:"text",value:r,onChange:t,className:"w-full bg-transparent border-b border-matrix-dim text-matrix-bright font-black text-2xl md:text-3xl p-1 focus:outline-none focus:border-matrix-primary transition-colors",maxLength:10,placeholder:i})]}),e.jsx("div",{className:"text-caption text-matrix-muted",children:l})]})]})}),e.jsx(p,{title:n("landing.signal.live_sniffer"),className:"h-44",children:e.jsx(M,{})})]})}export{k as LandingExtras};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aa as Ne,ab as we,b as ye,r as f,c as ve,m as e,ac as j,l as t,ad as _e,d as H,a6 as y}from"./main-CvjKTqMk.js";import{M as Pe,A as Se,B as Le}from"./MatrixShell-p6MtAS33.js";import{h as Ae,k as Me,s as Ee}from"./vibeusage-api-By1xP_lg.js";import"./MatrixRain-DNvnkted.js";function A(s,{min:r,max:l,fallback:c}){const d=Number(s);if(!Number.isFinite(d))return c;const x=Math.floor(d);return x<r?r:x>l?l:x}function ze(s,r){const l=A(r,{min:0,max:1e6,fallback:0}),c=A(s,{min:1,max:Math.max(1,l||1),fallback:1});if(l<=1)return[1];const d=new Set([1,l,c-2,c-1,c,c+1,c+2]),x=Array.from(d).filter(i=>Number.isInteger(i)&&i>=1&&i<=l).sort((i,o)=>i-o),u=[];let b=null;for(const i of x)b!=null&&i-b>1&&u.push(null),u.push(i),b=i;return u}function Ce({page:s,totalPages:r}){const l=typeof r=="number"&&Number.isFinite(r)&&r>=0,c=l?A(r,{min:0,max:1e6,fallback:0}):null,d=A(s,{min:1,max:l?Math.max(1,c||1):1e6,fallback:1}),x=d>1,u=l?d<c:!0;return{canPrev:x,canNext:u,safePage:d,safeTotal:c}}function Te({entries:s,me:r,meLabel:l,limit:c}){const d=A(c,{min:1,max:1e3,fallback:20}),x=Array.isArray(s)?s.slice(0,d):[],u=r&&typeof r.rank=="number"?r.rank:null,b=x.some(v=>!!v?.is_me);if(!u||b)return x;const i={rank:u,is_me:!0,display_name:l,avatar_url:null,gpt_tokens:r?.gpt_tokens??"0",claude_tokens:r?.claude_tokens??"0",total_tokens:r?.total_tokens??"0"},o=3,R=4,m=x.filter(v=>!v?.is_me).filter((v,I)=>I!==o).slice();return m.splice(Math.min(R,m.length),0,i),m.slice(0,d)}const J=20;function W(s){if(typeof s!="string")return null;const r=s.trim().toLowerCase();return r==="week"||r==="month"||r==="total"?r:null}function Q(s){if(!s)return t("shared.error.prefix",{error:t("leaderboard.error.unknown")});const r=s?.message||String(s),l=String(r||"").trim()||t("leaderboard.error.unknown");return t("shared.error.prefix",{error:l})}function ie(s){return typeof s!="string"?"":s.trim()}function $e(s){const r=ie(s);return r?r.toLowerCase()==="anonymous":!0}function Be(s,r=""){if(typeof s!="string")return null;const l=s.trim().toLowerCase();if(!l)return null;const c=new URLSearchParams(typeof r=="string"?r:""),d=W(c.get("period")),x=d?`?period=${d}`:"";return`/share/pv1-${l}${x}`}function Ge({baseUrl:s,auth:r,signedIn:l,sessionSoftExpired:c,signOut:d,signInUrl:x="/sign-in"}){const u=Ne(),b=we(),i=ye(),o=l&&!c,R=f.useMemo(()=>o&&(typeof r=="function"||typeof r=="string"||r&&typeof r=="object")?r:null,[r,o]),N=o?R:null,m=o&&ve(N);let v=null;o&&m&&(v=e.jsx(Le,{baseUrl:s,accessToken:N}));const I=e.jsxs("div",{className:"ml-auto flex w-max min-w-max items-center gap-2 sm:gap-3 md:gap-4",children:[e.jsx(j,{size:"header",onClick:()=>b("/"),children:t("leaderboard.nav.back")}),e.jsx(_e,{isFixed:!1,size:"header",className:"hidden sm:inline-flex"}),l?e.jsx(j,{onClick:d,size:"header",children:t("dashboard.sign_out")}):e.jsx(j,{as:"a",size:"header",href:x,children:t("shared.button.sign_in")})]}),X=t("shared.placeholder.short"),[V,M]=f.useState(1),[oe,ce]=f.useState(0),[h,$]=f.useState(()=>({loading:!1,error:null,data:null})),[E,_]=f.useState(()=>({loading:!1,saving:!1,error:null,leaderboardPublic:null})),g=f.useMemo(()=>{const a=new URLSearchParams(u?.search||"");return W(a.get("period"))||"week"},[u?.search]),de=u?.search||"",D=a=>{const n=W(a);if(!n||n===g)return;const p=new URLSearchParams(u?.search||"");p.set("period",n),M(1),b(`${u?.pathname||"/leaderboard"}?${p.toString()}`,{replace:!0})};f.useEffect(()=>{M(1)},[g]),f.useEffect(()=>{i||o&&(m||($({loading:!1,error:null,data:null}),_({loading:!1,saving:!1,error:null,leaderboardPublic:null})))},[o,m,i]);const Y=f.useMemo(()=>(A(V,{min:1,max:1e6,fallback:1})-1)*J,[V]);f.useEffect(()=>{if(!s||i||!o||!m)return;let a=!0;return _(n=>({...n,loading:!0,error:null})),(async()=>{const n=await H(N),p=await Ae({baseUrl:s,accessToken:n});a&&_(w=>({...w,loading:!1,error:null,leaderboardPublic:!!p?.enabled}))})().catch(n=>{a&&_(p=>({...p,loading:!1,error:Q(n),leaderboardPublic:null}))}),()=>{a=!1}},[o,m,s,N,i]),f.useEffect(()=>{if(!s||!i&&o&&!m)return;let a=!0;return $(n=>({...n,loading:!0,error:null})),(async()=>{const n=o?await H(N):null,p=await Me({baseUrl:s,accessToken:n,period:g,limit:J,offset:Y});a&&$({loading:!1,error:null,data:p})})().catch(n=>{a&&$({loading:!1,error:Q(n),data:null})}),()=>{a=!1}},[s,N,o,m,Y,oe,i,g]);const k=h.data,B=k?.total_pages??null,P=k?.page??V,xe=f.useMemo(()=>ze(P,B),[P,B]),Z=k?.from||null,U=k?.to||null,ee=k?.generated_at||null,ae=k?.me||null,F=t("leaderboard.me_label"),ue=t("leaderboard.anon_label"),G=t("leaderboard.public_profile.label"),me=t("leaderboard.public_profile.status.enabled"),pe=t("leaderboard.public_profile.status.disabled"),re=t("leaderboard.period.week"),te=t("leaderboard.period.month"),se=t("leaderboard.period.total"),ne=g==="month"?te:g==="total"?se:re,K=f.useMemo(()=>{const a=Array.isArray(k?.entries)?k.entries:[];return P!==1?a:Te({entries:a,me:ae,meLabel:F,limit:J})},[P,k?.entries,ae,F]),S=!!E.leaderboardPublic,le=E.loading||E.saving,fe=S?me:pe,be=async()=>{if(s&&!i&&!(!o||!m)&&!le){_(a=>({...a,saving:!0,error:null}));try{const a=await H(N),p=await Ee({baseUrl:s,accessToken:a,enabled:!S});_(w=>({...w,saving:!1,error:null,leaderboardPublic:!!p?.enabled})),ce(w=>w+1)}catch(a){_(n=>({...n,saving:!1,error:Q(a)}))}}},{canPrev:he,canNext:ge}=Ce({page:P,totalPages:B}),ke=Array.isArray(K)&&K.length!==0;let z=null;h.loading?z=e.jsx("div",{className:"px-4",children:e.jsx("p",{className:"text-[10px] uppercase text-matrix-dim mt-0",children:t("leaderboard.loading")})}):h.error?z=e.jsx("div",{className:"px-4",children:e.jsx("p",{className:"text-[10px] uppercase text-matrix-dim mt-0",children:h.error})}):ke?z=e.jsx("div",{className:"w-full overflow-x-auto",children:e.jsxs("table",{className:"w-full table-fixed text-left text-[12px]",children:[e.jsxs("colgroup",{children:[e.jsx("col",{className:"w-[72px]"}),e.jsx("col",{}),e.jsx("col",{className:"w-[112px]"}),e.jsx("col",{className:"w-[112px]"}),e.jsx("col",{className:"w-[112px]"}),e.jsx("col",{className:"w-[112px]"})]}),e.jsx("thead",{className:"uppercase text-matrix-dim tracking-[0.25em] text-[10px]",children:e.jsxs("tr",{className:"border-b border-matrix-ghost",children:[e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.rank")}),e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.user")}),e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.total")}),e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.gpt")}),e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.claude")}),e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.other")})]})}),e.jsx("tbody",{children:K.map(a=>{const n=!!a?.is_me,p=typeof a?.user_id=="string"?a.user_id:null,w=ie(a?.display_name),je=$e(w)?ue:w,C=n?F:je,T=!!p&&!n&&!!a?.is_public?Be(p,de):null,L=!!T;return n?e.jsx("tr",{className:"border-b border-matrix-ghost/40",children:e.jsx("td",{colSpan:6,className:"px-0 py-2",children:e.jsx("div",{className:"rounded-none ring-1 ring-inset ring-matrix-primary/40 bg-matrix-panelStrong/70 backdrop-blur-panel shadow-matrix-glow",children:e.jsxs("div",{className:"grid grid-cols-[72px_minmax(0,1fr)_112px_112px_112px_112px] items-center text-[12px]",children:[e.jsx("div",{className:"px-4 py-3 font-black text-matrix-ink-bright glow-text",children:a?.rank??X}),e.jsx("div",{className:"px-4 py-3 font-black truncate text-matrix-ink-bright glow-text",children:C}),e.jsx("div",{className:"px-4 py-3 font-bold",children:y(a?.total_tokens)}),e.jsx("div",{className:"px-4 py-3 font-bold",children:y(a?.gpt_tokens)}),e.jsx("div",{className:"px-4 py-3 font-bold",children:y(a?.claude_tokens)}),e.jsx("div",{className:"px-4 py-3 font-bold",children:y(a?.other_tokens)})]})})})},`row-${a?.rank}-${C}`):e.jsxs("tr",{className:`border-b border-matrix-ghost/40 bg-transparent ${L?"cursor-pointer hover:bg-matrix-panel/40":""}`,onClick:L?()=>{if(typeof window<"u"){window.location.assign(T);return}b(T)}:void 0,onKeyDown:L?q=>{if(q.key==="Enter"||q.key===" "){if(q.preventDefault(),typeof window<"u"){window.location.assign(T);return}b(T)}}:void 0,role:L?"link":void 0,tabIndex:L?0:void 0,"aria-label":L?`Open public dashboard for ${C}`:void 0,children:[e.jsx("td",{className:"px-4 py-3 font-bold",children:a?.rank??X}),e.jsx("td",{className:"px-4 py-3 font-bold truncate max-w-[240px]",children:C}),e.jsx("td",{className:"px-4 py-3",children:y(a?.total_tokens)}),e.jsx("td",{className:"px-4 py-3",children:y(a?.gpt_tokens)}),e.jsx("td",{className:"px-4 py-3",children:y(a?.claude_tokens)}),e.jsx("td",{className:"px-4 py-3",children:y(a?.other_tokens)})]},`row-${a?.rank}-${C}`)})})]})}):z=e.jsx("div",{className:"px-4",children:e.jsx("p",{className:"text-[10px] uppercase text-matrix-dim mt-0",children:t("leaderboard.empty")})});let O=null;return typeof B=="number"?O=xe.map((a,n)=>a==null?e.jsx("span",{className:"text-[10px] uppercase tracking-[0.25em] text-matrix-dim px-2",children:t("leaderboard.pagination.ellipsis")},`ellipsis-${n}`):e.jsx(j,{size:"sm",primary:a===P,onClick:()=>M(a),disabled:h.loading,children:String(a)},`page-${a}`)):O=e.jsx("span",{className:"text-[10px] uppercase tracking-[0.25em] text-matrix-dim",children:t("leaderboard.pagination.page_unknown",{page:String(P)})}),e.jsx(Pe,{headerStatus:v,headerRight:I,children:e.jsxs("div",{className:"max-w-6xl mx-auto flex flex-col gap-6",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-3",children:[e.jsx("h1",{className:"text-xl md:text-2xl font-black tracking-tight glow-text",children:t("leaderboard.title")}),e.jsx("div",{className:"text-[10px] uppercase tracking-[0.25em] text-matrix-muted",children:g==="total"?t("leaderboard.range.total"):Z&&U?t("leaderboard.range",{period:ne,from:Z,to:U}):t("leaderboard.range_loading",{period:ne})})]}),ee?e.jsx("div",{className:"text-[10px] uppercase text-matrix-dim",children:t("leaderboard.generated_at",{ts:ee})}):null]}),e.jsxs(Se,{title:t("leaderboard.table.title"),subtitle:t("leaderboard.table.subtitle"),className:"",bodyClassName:"px-0",children:[e.jsxs("div",{className:"px-4 pb-3 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{size:"sm",primary:g==="week",onClick:()=>D("week"),disabled:h.loading,children:re}),e.jsx(j,{size:"sm",primary:g==="month",onClick:()=>D("month"),disabled:h.loading,children:te}),e.jsx(j,{size:"sm",primary:g==="total",onClick:()=>D("total"),disabled:h.loading,children:se})]}),o&&m?e.jsxs("div",{className:"flex items-center justify-end gap-3",children:[E.error?e.jsx("span",{className:"text-[10px] uppercase tracking-[0.25em] text-matrix-dim",children:E.error}):null,e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-[10px] uppercase tracking-[0.25em] text-matrix-dim",children:G}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{type:"button",role:"switch","aria-checked":S,"aria-label":G,title:G,onClick:be,disabled:le,className:`relative inline-flex h-6 w-11 items-center border px-[3px] transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-matrix-primary/70 disabled:opacity-60 disabled:cursor-not-allowed ${S?"border-matrix-primary bg-matrix-primary/10":"border-matrix-ghost/60 bg-matrix-panelStrong/40"}`,children:e.jsx("span",{"aria-hidden":"true",className:`inline-block h-3.5 w-3.5 bg-matrix-primary transition-transform ${S?"translate-x-[18px] shadow-matrix-glow":"translate-x-0"}`})}),e.jsx("span",{className:`text-[10px] uppercase tracking-[0.2em] ${S?"text-matrix-primary/80":"text-matrix-dim"}`,children:fe})]})]})]}):null]}),z,e.jsxs("div",{className:"px-4 py-4 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{size:"sm",onClick:()=>M(a=>Math.max(1,a-1)),disabled:!he||h.loading,children:t("leaderboard.pagination.prev")}),e.jsx(j,{size:"sm",onClick:()=>M(a=>a+1),disabled:!ge||h.loading,children:t("leaderboard.pagination.next")})]}),e.jsx("div",{className:"flex flex-wrap items-center gap-2",children:O})]})]})]})})}export{Ge as LeaderboardPage};
|
|
1
|
+
import{aa as Ne,ab as we,b as ye,r as f,c as ve,m as e,ac as j,l as t,ad as _e,d as H,a6 as y}from"./main-C3QpHBOP.js";import{M as Pe,A as Se,B as Le}from"./MatrixShell-Byc-iwIr.js";import{h as Ae,k as Me,s as Ee}from"./vibeusage-api-EQ444MvB.js";import"./MatrixRain-B2DIJ0ID.js";function A(s,{min:r,max:l,fallback:c}){const d=Number(s);if(!Number.isFinite(d))return c;const x=Math.floor(d);return x<r?r:x>l?l:x}function ze(s,r){const l=A(r,{min:0,max:1e6,fallback:0}),c=A(s,{min:1,max:Math.max(1,l||1),fallback:1});if(l<=1)return[1];const d=new Set([1,l,c-2,c-1,c,c+1,c+2]),x=Array.from(d).filter(i=>Number.isInteger(i)&&i>=1&&i<=l).sort((i,o)=>i-o),u=[];let b=null;for(const i of x)b!=null&&i-b>1&&u.push(null),u.push(i),b=i;return u}function Ce({page:s,totalPages:r}){const l=typeof r=="number"&&Number.isFinite(r)&&r>=0,c=l?A(r,{min:0,max:1e6,fallback:0}):null,d=A(s,{min:1,max:l?Math.max(1,c||1):1e6,fallback:1}),x=d>1,u=l?d<c:!0;return{canPrev:x,canNext:u,safePage:d,safeTotal:c}}function Te({entries:s,me:r,meLabel:l,limit:c}){const d=A(c,{min:1,max:1e3,fallback:20}),x=Array.isArray(s)?s.slice(0,d):[],u=r&&typeof r.rank=="number"?r.rank:null,b=x.some(v=>!!v?.is_me);if(!u||b)return x;const i={rank:u,is_me:!0,display_name:l,avatar_url:null,gpt_tokens:r?.gpt_tokens??"0",claude_tokens:r?.claude_tokens??"0",total_tokens:r?.total_tokens??"0"},o=3,R=4,m=x.filter(v=>!v?.is_me).filter((v,I)=>I!==o).slice();return m.splice(Math.min(R,m.length),0,i),m.slice(0,d)}const J=20;function W(s){if(typeof s!="string")return null;const r=s.trim().toLowerCase();return r==="week"||r==="month"||r==="total"?r:null}function Q(s){if(!s)return t("shared.error.prefix",{error:t("leaderboard.error.unknown")});const r=s?.message||String(s),l=String(r||"").trim()||t("leaderboard.error.unknown");return t("shared.error.prefix",{error:l})}function ie(s){return typeof s!="string"?"":s.trim()}function $e(s){const r=ie(s);return r?r.toLowerCase()==="anonymous":!0}function Be(s,r=""){if(typeof s!="string")return null;const l=s.trim().toLowerCase();if(!l)return null;const c=new URLSearchParams(typeof r=="string"?r:""),d=W(c.get("period")),x=d?`?period=${d}`:"";return`/share/pv1-${l}${x}`}function Ge({baseUrl:s,auth:r,signedIn:l,sessionSoftExpired:c,signOut:d,signInUrl:x="/sign-in"}){const u=Ne(),b=we(),i=ye(),o=l&&!c,R=f.useMemo(()=>o&&(typeof r=="function"||typeof r=="string"||r&&typeof r=="object")?r:null,[r,o]),N=o?R:null,m=o&&ve(N);let v=null;o&&m&&(v=e.jsx(Le,{baseUrl:s,accessToken:N}));const I=e.jsxs("div",{className:"ml-auto flex w-max min-w-max items-center gap-2 sm:gap-3 md:gap-4",children:[e.jsx(j,{size:"header",onClick:()=>b("/"),children:t("leaderboard.nav.back")}),e.jsx(_e,{isFixed:!1,size:"header",className:"hidden sm:inline-flex"}),l?e.jsx(j,{onClick:d,size:"header",children:t("dashboard.sign_out")}):e.jsx(j,{as:"a",size:"header",href:x,children:t("shared.button.sign_in")})]}),X=t("shared.placeholder.short"),[V,M]=f.useState(1),[oe,ce]=f.useState(0),[h,$]=f.useState(()=>({loading:!1,error:null,data:null})),[E,_]=f.useState(()=>({loading:!1,saving:!1,error:null,leaderboardPublic:null})),g=f.useMemo(()=>{const a=new URLSearchParams(u?.search||"");return W(a.get("period"))||"week"},[u?.search]),de=u?.search||"",D=a=>{const n=W(a);if(!n||n===g)return;const p=new URLSearchParams(u?.search||"");p.set("period",n),M(1),b(`${u?.pathname||"/leaderboard"}?${p.toString()}`,{replace:!0})};f.useEffect(()=>{M(1)},[g]),f.useEffect(()=>{i||o&&(m||($({loading:!1,error:null,data:null}),_({loading:!1,saving:!1,error:null,leaderboardPublic:null})))},[o,m,i]);const Y=f.useMemo(()=>(A(V,{min:1,max:1e6,fallback:1})-1)*J,[V]);f.useEffect(()=>{if(!s||i||!o||!m)return;let a=!0;return _(n=>({...n,loading:!0,error:null})),(async()=>{const n=await H(N),p=await Ae({baseUrl:s,accessToken:n});a&&_(w=>({...w,loading:!1,error:null,leaderboardPublic:!!p?.enabled}))})().catch(n=>{a&&_(p=>({...p,loading:!1,error:Q(n),leaderboardPublic:null}))}),()=>{a=!1}},[o,m,s,N,i]),f.useEffect(()=>{if(!s||!i&&o&&!m)return;let a=!0;return $(n=>({...n,loading:!0,error:null})),(async()=>{const n=o?await H(N):null,p=await Me({baseUrl:s,accessToken:n,period:g,limit:J,offset:Y});a&&$({loading:!1,error:null,data:p})})().catch(n=>{a&&$({loading:!1,error:Q(n),data:null})}),()=>{a=!1}},[s,N,o,m,Y,oe,i,g]);const k=h.data,B=k?.total_pages??null,P=k?.page??V,xe=f.useMemo(()=>ze(P,B),[P,B]),Z=k?.from||null,U=k?.to||null,ee=k?.generated_at||null,ae=k?.me||null,F=t("leaderboard.me_label"),ue=t("leaderboard.anon_label"),G=t("leaderboard.public_profile.label"),me=t("leaderboard.public_profile.status.enabled"),pe=t("leaderboard.public_profile.status.disabled"),re=t("leaderboard.period.week"),te=t("leaderboard.period.month"),se=t("leaderboard.period.total"),ne=g==="month"?te:g==="total"?se:re,K=f.useMemo(()=>{const a=Array.isArray(k?.entries)?k.entries:[];return P!==1?a:Te({entries:a,me:ae,meLabel:F,limit:J})},[P,k?.entries,ae,F]),S=!!E.leaderboardPublic,le=E.loading||E.saving,fe=S?me:pe,be=async()=>{if(s&&!i&&!(!o||!m)&&!le){_(a=>({...a,saving:!0,error:null}));try{const a=await H(N),p=await Ee({baseUrl:s,accessToken:a,enabled:!S});_(w=>({...w,saving:!1,error:null,leaderboardPublic:!!p?.enabled})),ce(w=>w+1)}catch(a){_(n=>({...n,saving:!1,error:Q(a)}))}}},{canPrev:he,canNext:ge}=Ce({page:P,totalPages:B}),ke=Array.isArray(K)&&K.length!==0;let z=null;h.loading?z=e.jsx("div",{className:"px-4",children:e.jsx("p",{className:"text-[10px] uppercase text-matrix-dim mt-0",children:t("leaderboard.loading")})}):h.error?z=e.jsx("div",{className:"px-4",children:e.jsx("p",{className:"text-[10px] uppercase text-matrix-dim mt-0",children:h.error})}):ke?z=e.jsx("div",{className:"w-full overflow-x-auto",children:e.jsxs("table",{className:"w-full table-fixed text-left text-[12px]",children:[e.jsxs("colgroup",{children:[e.jsx("col",{className:"w-[72px]"}),e.jsx("col",{}),e.jsx("col",{className:"w-[112px]"}),e.jsx("col",{className:"w-[112px]"}),e.jsx("col",{className:"w-[112px]"}),e.jsx("col",{className:"w-[112px]"})]}),e.jsx("thead",{className:"uppercase text-matrix-dim tracking-[0.25em] text-[10px]",children:e.jsxs("tr",{className:"border-b border-matrix-ghost",children:[e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.rank")}),e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.user")}),e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.total")}),e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.gpt")}),e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.claude")}),e.jsx("th",{className:"px-4 py-3",children:t("leaderboard.column.other")})]})}),e.jsx("tbody",{children:K.map(a=>{const n=!!a?.is_me,p=typeof a?.user_id=="string"?a.user_id:null,w=ie(a?.display_name),je=$e(w)?ue:w,C=n?F:je,T=!!p&&!n&&!!a?.is_public?Be(p,de):null,L=!!T;return n?e.jsx("tr",{className:"border-b border-matrix-ghost/40",children:e.jsx("td",{colSpan:6,className:"px-0 py-2",children:e.jsx("div",{className:"rounded-none ring-1 ring-inset ring-matrix-primary/40 bg-matrix-panelStrong/70 backdrop-blur-panel shadow-matrix-glow",children:e.jsxs("div",{className:"grid grid-cols-[72px_minmax(0,1fr)_112px_112px_112px_112px] items-center text-[12px]",children:[e.jsx("div",{className:"px-4 py-3 font-black text-matrix-ink-bright glow-text",children:a?.rank??X}),e.jsx("div",{className:"px-4 py-3 font-black truncate text-matrix-ink-bright glow-text",children:C}),e.jsx("div",{className:"px-4 py-3 font-bold",children:y(a?.total_tokens)}),e.jsx("div",{className:"px-4 py-3 font-bold",children:y(a?.gpt_tokens)}),e.jsx("div",{className:"px-4 py-3 font-bold",children:y(a?.claude_tokens)}),e.jsx("div",{className:"px-4 py-3 font-bold",children:y(a?.other_tokens)})]})})})},`row-${a?.rank}-${C}`):e.jsxs("tr",{className:`border-b border-matrix-ghost/40 bg-transparent ${L?"cursor-pointer hover:bg-matrix-panel/40":""}`,onClick:L?()=>{if(typeof window<"u"){window.location.assign(T);return}b(T)}:void 0,onKeyDown:L?q=>{if(q.key==="Enter"||q.key===" "){if(q.preventDefault(),typeof window<"u"){window.location.assign(T);return}b(T)}}:void 0,role:L?"link":void 0,tabIndex:L?0:void 0,"aria-label":L?`Open public dashboard for ${C}`:void 0,children:[e.jsx("td",{className:"px-4 py-3 font-bold",children:a?.rank??X}),e.jsx("td",{className:"px-4 py-3 font-bold truncate max-w-[240px]",children:C}),e.jsx("td",{className:"px-4 py-3",children:y(a?.total_tokens)}),e.jsx("td",{className:"px-4 py-3",children:y(a?.gpt_tokens)}),e.jsx("td",{className:"px-4 py-3",children:y(a?.claude_tokens)}),e.jsx("td",{className:"px-4 py-3",children:y(a?.other_tokens)})]},`row-${a?.rank}-${C}`)})})]})}):z=e.jsx("div",{className:"px-4",children:e.jsx("p",{className:"text-[10px] uppercase text-matrix-dim mt-0",children:t("leaderboard.empty")})});let O=null;return typeof B=="number"?O=xe.map((a,n)=>a==null?e.jsx("span",{className:"text-[10px] uppercase tracking-[0.25em] text-matrix-dim px-2",children:t("leaderboard.pagination.ellipsis")},`ellipsis-${n}`):e.jsx(j,{size:"sm",primary:a===P,onClick:()=>M(a),disabled:h.loading,children:String(a)},`page-${a}`)):O=e.jsx("span",{className:"text-[10px] uppercase tracking-[0.25em] text-matrix-dim",children:t("leaderboard.pagination.page_unknown",{page:String(P)})}),e.jsx(Pe,{headerStatus:v,headerRight:I,children:e.jsxs("div",{className:"max-w-6xl mx-auto flex flex-col gap-6",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-3",children:[e.jsx("h1",{className:"text-xl md:text-2xl font-black tracking-tight glow-text",children:t("leaderboard.title")}),e.jsx("div",{className:"text-[10px] uppercase tracking-[0.25em] text-matrix-muted",children:g==="total"?t("leaderboard.range.total"):Z&&U?t("leaderboard.range",{period:ne,from:Z,to:U}):t("leaderboard.range_loading",{period:ne})})]}),ee?e.jsx("div",{className:"text-[10px] uppercase text-matrix-dim",children:t("leaderboard.generated_at",{ts:ee})}):null]}),e.jsxs(Se,{title:t("leaderboard.table.title"),subtitle:t("leaderboard.table.subtitle"),className:"",bodyClassName:"px-0",children:[e.jsxs("div",{className:"px-4 pb-3 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{size:"sm",primary:g==="week",onClick:()=>D("week"),disabled:h.loading,children:re}),e.jsx(j,{size:"sm",primary:g==="month",onClick:()=>D("month"),disabled:h.loading,children:te}),e.jsx(j,{size:"sm",primary:g==="total",onClick:()=>D("total"),disabled:h.loading,children:se})]}),o&&m?e.jsxs("div",{className:"flex items-center justify-end gap-3",children:[E.error?e.jsx("span",{className:"text-[10px] uppercase tracking-[0.25em] text-matrix-dim",children:E.error}):null,e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-[10px] uppercase tracking-[0.25em] text-matrix-dim",children:G}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{type:"button",role:"switch","aria-checked":S,"aria-label":G,title:G,onClick:be,disabled:le,className:`relative inline-flex h-6 w-11 items-center border px-[3px] transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-matrix-primary/70 disabled:opacity-60 disabled:cursor-not-allowed ${S?"border-matrix-primary bg-matrix-primary/10":"border-matrix-ghost/60 bg-matrix-panelStrong/40"}`,children:e.jsx("span",{"aria-hidden":"true",className:`inline-block h-3.5 w-3.5 bg-matrix-primary transition-transform ${S?"translate-x-[18px] shadow-matrix-glow":"translate-x-0"}`})}),e.jsx("span",{className:`text-[10px] uppercase tracking-[0.2em] ${S?"text-matrix-primary/80":"text-matrix-dim"}`,children:fe})]})]})]}):null]}),z,e.jsxs("div",{className:"px-4 py-4 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{size:"sm",onClick:()=>M(a=>Math.max(1,a-1)),disabled:!he||h.loading,children:t("leaderboard.pagination.prev")}),e.jsx(j,{size:"sm",onClick:()=>M(a=>a+1),disabled:!ge||h.loading,children:t("leaderboard.pagination.next")})]}),e.jsx("div",{className:"flex flex-wrap items-center gap-2",children:O})]})]})]})})}export{Ge as LeaderboardPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aa as F,b as G,r as h,c as $,m as e,ac as k,l as r,ad as q,d as H,a6 as f}from"./main-
|
|
1
|
+
import{aa as F,b as G,r as h,c as $,m as e,ac as k,l as r,ad as q,d as H,a6 as f}from"./main-C3QpHBOP.js";import{M as J,A as K,B as O}from"./MatrixShell-Byc-iwIr.js";import{l as Q}from"./vibeusage-api-EQ444MvB.js";import"./MatrixRain-B2DIJ0ID.js";function V(t){if(!t)return r("shared.error.prefix",{error:r("leaderboard.error.unknown")});const a=t?.message||String(t),c=String(a||"").trim()||r("leaderboard.error.unknown");return r("shared.error.prefix",{error:c})}function W(t){return typeof t!="string"?"":t.trim()}function X(t){if(typeof t!="string")return null;const a=t.trim().toLowerCase();return a==="week"||a==="month"||a==="total"?a:null}function ee({baseUrl:t,auth:a,signedIn:c,sessionSoftExpired:A,signOut:L,signInUrl:T="/sign-in",userId:x}){const b=F(),y=G(),s=c&&!A,z=h.useMemo(()=>s&&(typeof a=="function"||typeof a=="string"||a&&typeof a=="object")?a:null,[a,s]),m=s?z:null,g=s&&$(m),o=h.useMemo(()=>{const i=new URLSearchParams(b?.search||"");return X(i.get("period"))||"week"},[b?.search]),P=b?.search||"";let w=null;s&&g&&(w=e.jsx(O,{baseUrl:t,accessToken:m}));const E=e.jsxs("div",{className:"ml-auto flex w-max min-w-max items-center gap-2 sm:gap-3 md:gap-4",children:[e.jsx(k,{as:"a",size:"header",href:`/leaderboard${P}`,children:r("leaderboard.profile.nav.back")}),e.jsx(q,{isFixed:!1,size:"header",className:"hidden sm:inline-flex"}),c?e.jsx(k,{onClick:L,size:"header",children:r("dashboard.sign_out")}):e.jsx(k,{as:"a",size:"header",href:T,children:r("shared.button.sign_in")})]}),[p,j]=h.useState(()=>({loading:!1,error:null,data:null}));h.useEffect(()=>{if(!t||!x||!y&&(!s||!g))return;let i=!0;return j(d=>({...d,loading:!0,error:null})),(async()=>{const d=await H(m),D=await Q({baseUrl:t,accessToken:d,userId:x,period:o});i&&j({loading:!1,error:null,data:D})})().catch(d=>{i&&j({loading:!1,error:V(d),data:null})}),()=>{i=!1}},[s,g,t,m,y,o,x]);const u=p.data,v=u?.from||null,S=u?.to||null,_=u?.generated_at||null,l=u?.entry||null,M=W(l?.display_name)||r("leaderboard.anon_label"),R=r("leaderboard.period.week"),B=r("leaderboard.period.month"),C=r("leaderboard.period.total"),N=o==="month"?B:o==="total"?C:R;let n=null;return x?p.loading?n=e.jsx("div",{className:"px-4",children:e.jsx("p",{className:"text-[10px] uppercase text-matrix-dim mt-0",children:r("leaderboard.loading")})}):p.error?n=e.jsx("div",{className:"px-4",children:e.jsx("p",{className:"text-[10px] uppercase text-matrix-dim mt-0",children:p.error})}):l?n=e.jsx("div",{className:"w-full overflow-x-auto",children:e.jsxs("table",{className:"w-full text-left text-[12px]",children:[e.jsx("thead",{className:"uppercase text-matrix-dim tracking-[0.25em] text-[10px]",children:e.jsxs("tr",{className:"border-b border-matrix-ghost",children:[e.jsx("th",{className:"px-4 py-3",children:r("leaderboard.column.rank")}),e.jsx("th",{className:"px-4 py-3",children:r("leaderboard.column.total")}),e.jsx("th",{className:"px-4 py-3",children:r("leaderboard.column.gpt")}),e.jsx("th",{className:"px-4 py-3",children:r("leaderboard.column.claude")}),e.jsx("th",{className:"px-4 py-3",children:r("leaderboard.column.other")})]})}),e.jsx("tbody",{children:e.jsxs("tr",{className:"border-b border-matrix-ghost/40 bg-transparent",children:[e.jsx("td",{className:"px-4 py-3 font-bold",children:l?.rank??r("shared.placeholder.short")}),e.jsx("td",{className:"px-4 py-3",children:f(l?.total_tokens)}),e.jsx("td",{className:"px-4 py-3",children:f(l?.gpt_tokens)}),e.jsx("td",{className:"px-4 py-3",children:f(l?.claude_tokens)}),e.jsx("td",{className:"px-4 py-3",children:f(l?.other_tokens)})]})})]})}):n=e.jsx("div",{className:"px-4",children:e.jsx("p",{className:"text-[10px] uppercase text-matrix-dim mt-0",children:r("leaderboard.empty")})}):n=e.jsx("div",{className:"px-4",children:e.jsx("p",{className:"text-[10px] uppercase text-matrix-dim mt-0",children:r("leaderboard.empty")})}),e.jsx(J,{headerStatus:w,headerRight:E,children:e.jsxs("div",{className:"max-w-4xl mx-auto flex flex-col gap-6",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-3",children:[e.jsx("h1",{className:"text-xl md:text-2xl font-black tracking-tight glow-text",children:M}),e.jsx("div",{className:"text-[10px] uppercase tracking-[0.25em] text-matrix-muted",children:o==="total"?r("leaderboard.range.total"):v&&S?r("leaderboard.range",{period:N,from:v,to:S}):r("leaderboard.range_loading",{period:N})})]}),_?e.jsx("div",{className:"text-[10px] uppercase text-matrix-dim",children:r("leaderboard.generated_at",{ts:_})}):null]}),e.jsx(K,{title:r("leaderboard.profile.card.title"),subtitle:r("leaderboard.profile.card.subtitle",{period:N}),className:"",bodyClassName:"px-0",children:n})]})})}export{ee as LeaderboardProfilePage};
|