mirror of
https://github.com/lukaszraczylo/git-velocity.git
synced 2026-07-07 06:25:00 +00:00
12 lines
200 KiB
JavaScript
12 lines
200 KiB
JavaScript
import{C as dn,r as La}from"./chart-Bcjh2pZL.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function s(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(n){if(n.ep)return;n.ep=!0;const i=s(n);fetch(n.href,i)}})();function Dr(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const de={},Wt=[],it=()=>{},ii=()=>!1,qs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Nr=e=>e.startsWith("onUpdate:"),Te=Object.assign,Lr=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},ja=Object.prototype.hasOwnProperty,ae=(e,t)=>ja.call(e,t),q=Array.isArray,Kt=e=>Rs(e)==="[object Map]",Us=e=>Rs(e)==="[object Set]",un=e=>Rs(e)==="[object Date]",z=e=>typeof e=="function",he=e=>typeof e=="string",Ke=e=>typeof e=="symbol",ue=e=>e!==null&&typeof e=="object",ai=e=>(ue(e)||z(e))&&z(e.then)&&z(e.catch),oi=Object.prototype.toString,Rs=e=>oi.call(e),Fa=e=>Rs(e).slice(8,-1),li=e=>Rs(e)==="[object Object]",jr=e=>he(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cs=Dr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ws=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},Va=/-\w/g,qe=Ws(e=>e.replace(Va,t=>t.slice(1).toUpperCase())),Ha=/\B([A-Z])/g,jt=Ws(e=>e.replace(Ha,"-$1").toLowerCase()),Ks=Ws(e=>e.charAt(0).toUpperCase()+e.slice(1)),ar=Ws(e=>e?`on${Ks(e)}`:""),St=(e,t)=>!Object.is(e,t),Os=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},ci=(e,t,s,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:s})},Fr=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let fn;const zs=()=>fn||(fn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function At(e){if(q(e)){const t={};for(let s=0;s<e.length;s++){const r=e[s],n=he(r)?Ua(r):At(r);if(n)for(const i in n)t[i]=n[i]}return t}else if(he(e)||ue(e))return e}const Ba=/;(?![^(]*\))/g,Ga=/:([^]+)/,qa=/\/\*[^]*?\*\//g;function Ua(e){const t={};return e.replace(qa,"").split(Ba).forEach(s=>{if(s){const r=s.split(Ga);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Q(e){let t="";if(he(e))t=e;else if(q(e))for(let s=0;s<e.length;s++){const r=Q(e[s]);r&&(t+=r+" ")}else if(ue(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const Wa="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Ka=Dr(Wa);function di(e){return!!e||e===""}function za(e,t){if(e.length!==t.length)return!1;let s=!0;for(let r=0;s&&r<e.length;r++)s=Qs(e[r],t[r]);return s}function Qs(e,t){if(e===t)return!0;let s=un(e),r=un(t);if(s||r)return s&&r?e.getTime()===t.getTime():!1;if(s=Ke(e),r=Ke(t),s||r)return e===t;if(s=q(e),r=q(t),s||r)return s&&r?za(e,t):!1;if(s=ue(e),r=ue(t),s||r){if(!s||!r)return!1;const n=Object.keys(e).length,i=Object.keys(t).length;if(n!==i)return!1;for(const a in e){const o=e.hasOwnProperty(a),l=t.hasOwnProperty(a);if(o&&!l||!o&&l||!Qs(e[a],t[a]))return!1}}return String(e)===String(t)}function ui(e,t){return e.findIndex(s=>Qs(s,t))}const fi=e=>!!(e&&e.__v_isRef===!0),v=e=>he(e)?e:e==null?"":q(e)||ue(e)&&(e.toString===oi||!z(e.toString))?fi(e)?v(e.value):JSON.stringify(e,mi,2):String(e),mi=(e,t)=>fi(t)?mi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[r,n],i)=>(s[or(r,i)+" =>"]=n,s),{})}:Us(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>or(s))}:Ke(t)?or(t):ue(t)&&!q(t)&&!li(t)?String(t):t,or=(e,t="")=>{var s;return Ke(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};let Le;class Qa{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Le,!t&&Le&&(this.index=(Le.scopes||(Le.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].pause();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].resume();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].resume()}}run(t){if(this._active){const s=Le;try{return Le=this,t()}finally{Le=s}}}on(){++this._on===1&&(this.prevScope=Le,Le=this)}off(){this._on>0&&--this._on===0&&(Le=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let s,r;for(s=0,r=this.effects.length;s<r;s++)this.effects[s].stop();for(this.effects.length=0,s=0,r=this.cleanups.length;s<r;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,r=this.scopes.length;s<r;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const n=this.parent.scopes.pop();n&&n!==this&&(this.parent.scopes[this.index]=n,n.index=this.index)}this.parent=void 0}}}function Ja(){return Le}let me;const lr=new WeakSet;class gi{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Le&&Le.active&&Le.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,lr.has(this)&&(lr.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||hi(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,mn(this),xi(this);const t=me,s=We;me=this,We=!0;try{return this.fn()}finally{yi(this),me=t,We=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Br(t);this.deps=this.depsTail=void 0,mn(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?lr.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){br(this)&&this.run()}get dirty(){return br(this)}}let pi=0,ds,us;function hi(e,t=!1){if(e.flags|=8,t){e.next=us,us=e;return}e.next=ds,ds=e}function Vr(){pi++}function Hr(){if(--pi>0)return;if(us){let t=us;for(us=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;ds;){let t=ds;for(ds=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=s}}if(e)throw e}function xi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function yi(e){let t,s=e.depsTail,r=s;for(;r;){const n=r.prevDep;r.version===-1?(r===s&&(s=n),Br(r),Ya(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=n}e.deps=t,e.depsTail=s}function br(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(vi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function vi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===xs)||(e.globalVersion=xs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!br(e))))return;e.flags|=2;const t=e.dep,s=me,r=We;me=e,We=!0;try{xi(e);const n=e.fn(e._value);(t.version===0||St(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(n){throw t.version++,n}finally{me=s,We=r,yi(e),e.flags&=-3}}function Br(e,t=!1){const{dep:s,prevSub:r,nextSub:n}=e;if(r&&(r.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=r,e.nextSub=void 0),s.subs===e&&(s.subs=r,!r&&s.computed)){s.computed.flags&=-5;for(let i=s.computed.deps;i;i=i.nextDep)Br(i,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Ya(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let We=!0;const bi=[];function mt(){bi.push(We),We=!1}function gt(){const e=bi.pop();We=e===void 0?!0:e}function mn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=me;me=void 0;try{t()}finally{me=s}}}let xs=0;class Xa{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Gr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!me||!We||me===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==me)s=this.activeLink=new Xa(me,this),me.deps?(s.prevDep=me.depsTail,me.depsTail.nextDep=s,me.depsTail=s):me.deps=me.depsTail=s,_i(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const r=s.nextDep;r.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=r),s.prevDep=me.depsTail,s.nextDep=void 0,me.depsTail.nextDep=s,me.depsTail=s,me.deps===s&&(me.deps=r)}return s}trigger(t){this.version++,xs++,this.notify(t)}notify(t){Vr();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Hr()}}}function _i(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)_i(r)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const _r=new WeakMap,Dt=Symbol(""),kr=Symbol(""),ys=Symbol("");function Se(e,t,s){if(We&&me){let r=_r.get(e);r||_r.set(e,r=new Map);let n=r.get(s);n||(r.set(s,n=new Gr),n.map=r,n.key=s),n.track()}}function ut(e,t,s,r,n,i){const a=_r.get(e);if(!a){xs++;return}const o=l=>{l&&l.trigger()};if(Vr(),t==="clear")a.forEach(o);else{const l=q(e),c=l&&jr(s);if(l&&s==="length"){const u=Number(r);a.forEach((f,p)=>{(p==="length"||p===ys||!Ke(p)&&p>=u)&&o(f)})}else switch((s!==void 0||a.has(void 0))&&o(a.get(s)),c&&o(a.get(ys)),t){case"add":l?c&&o(a.get("length")):(o(a.get(Dt)),Kt(e)&&o(a.get(kr)));break;case"delete":l||(o(a.get(Dt)),Kt(e)&&o(a.get(kr)));break;case"set":Kt(e)&&o(a.get(Dt));break}}Hr()}function Gt(e){const t=ie(e);return t===e?t:(Se(t,"iterate",ys),Be(e)?t:t.map(ze))}function Js(e){return Se(e=ie(e),"iterate",ys),e}function kt(e,t){return pt(e)?Nt(e)?Xt(ze(t)):Xt(t):ze(t)}const Za={__proto__:null,[Symbol.iterator](){return cr(this,Symbol.iterator,e=>kt(this,e))},concat(...e){return Gt(this).concat(...e.map(t=>q(t)?Gt(t):t))},entries(){return cr(this,"entries",e=>(e[1]=kt(this,e[1]),e))},every(e,t){return lt(this,"every",e,t,void 0,arguments)},filter(e,t){return lt(this,"filter",e,t,s=>s.map(r=>kt(this,r)),arguments)},find(e,t){return lt(this,"find",e,t,s=>kt(this,s),arguments)},findIndex(e,t){return lt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return lt(this,"findLast",e,t,s=>kt(this,s),arguments)},findLastIndex(e,t){return lt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return lt(this,"forEach",e,t,void 0,arguments)},includes(...e){return dr(this,"includes",e)},indexOf(...e){return dr(this,"indexOf",e)},join(e){return Gt(this).join(e)},lastIndexOf(...e){return dr(this,"lastIndexOf",e)},map(e,t){return lt(this,"map",e,t,void 0,arguments)},pop(){return ns(this,"pop")},push(...e){return ns(this,"push",e)},reduce(e,...t){return gn(this,"reduce",e,t)},reduceRight(e,...t){return gn(this,"reduceRight",e,t)},shift(){return ns(this,"shift")},some(e,t){return lt(this,"some",e,t,void 0,arguments)},splice(...e){return ns(this,"splice",e)},toReversed(){return Gt(this).toReversed()},toSorted(e){return Gt(this).toSorted(e)},toSpliced(...e){return Gt(this).toSpliced(...e)},unshift(...e){return ns(this,"unshift",e)},values(){return cr(this,"values",e=>kt(this,e))}};function cr(e,t,s){const r=Js(e),n=r[t]();return r!==e&&!Be(e)&&(n._next=n.next,n.next=()=>{const i=n._next();return i.done||(i.value=s(i.value)),i}),n}const eo=Array.prototype;function lt(e,t,s,r,n,i){const a=Js(e),o=a!==e&&!Be(e),l=a[t];if(l!==eo[t]){const f=l.apply(e,i);return o?ze(f):f}let c=s;a!==e&&(o?c=function(f,p){return s.call(this,kt(e,f),p,e)}:s.length>2&&(c=function(f,p){return s.call(this,f,p,e)}));const u=l.call(a,c,r);return o&&n?n(u):u}function gn(e,t,s,r){const n=Js(e);let i=s;return n!==e&&(Be(e)?s.length>3&&(i=function(a,o,l){return s.call(this,a,o,l,e)}):i=function(a,o,l){return s.call(this,a,kt(e,o),l,e)}),n[t](i,...r)}function dr(e,t,s){const r=ie(e);Se(r,"iterate",ys);const n=r[t](...s);return(n===-1||n===!1)&&Wr(s[0])?(s[0]=ie(s[0]),r[t](...s)):n}function ns(e,t,s=[]){mt(),Vr();const r=ie(e)[t].apply(e,s);return Hr(),gt(),r}const to=Dr("__proto__,__v_isRef,__isVue"),ki=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ke));function so(e){Ke(e)||(e=String(e));const t=ie(this);return Se(t,"has",e),t.hasOwnProperty(e)}class wi{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,r){if(s==="__v_skip")return t.__v_skip;const n=this._isReadonly,i=this._isShallow;if(s==="__v_isReactive")return!n;if(s==="__v_isReadonly")return n;if(s==="__v_isShallow")return i;if(s==="__v_raw")return r===(n?i?mo:Ai:i?Si:Ri).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const a=q(t);if(!n){let l;if(a&&(l=Za[s]))return l;if(s==="hasOwnProperty")return so}const o=Reflect.get(t,s,Ee(t)?t:r);if((Ke(s)?ki.has(s):to(s))||(n||Se(t,"get",s),i))return o;if(Ee(o)){const l=a&&jr(s)?o:o.value;return n&&ue(l)?Cr(l):l}return ue(o)?n?Cr(o):Ys(o):o}}class Ci extends wi{constructor(t=!1){super(!1,t)}set(t,s,r,n){let i=t[s];const a=q(t)&&jr(s);if(!this._isShallow){const c=pt(i);if(!Be(r)&&!pt(r)&&(i=ie(i),r=ie(r)),!a&&Ee(i)&&!Ee(r))return c||(i.value=r),!0}const o=a?Number(s)<t.length:ae(t,s),l=Reflect.set(t,s,r,Ee(t)?t:n);return t===ie(n)&&(o?St(r,i)&&ut(t,"set",s,r):ut(t,"add",s,r)),l}deleteProperty(t,s){const r=ae(t,s);t[s];const n=Reflect.deleteProperty(t,s);return n&&r&&ut(t,"delete",s,void 0),n}has(t,s){const r=Reflect.has(t,s);return(!Ke(s)||!ki.has(s))&&Se(t,"has",s),r}ownKeys(t){return Se(t,"iterate",q(t)?"length":Dt),Reflect.ownKeys(t)}}class ro extends wi{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const no=new Ci,io=new ro,ao=new Ci(!0);const wr=e=>e,Ps=e=>Reflect.getPrototypeOf(e);function oo(e,t,s){return function(...r){const n=this.__v_raw,i=ie(n),a=Kt(i),o=e==="entries"||e===Symbol.iterator&&a,l=e==="keys"&&a,c=n[e](...r),u=s?wr:t?Xt:ze;return!t&&Se(i,"iterate",l?kr:Dt),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:o?[u(f[0]),u(f[1])]:u(f),done:p}},[Symbol.iterator](){return this}}}}function Ts(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function lo(e,t){const s={get(n){const i=this.__v_raw,a=ie(i),o=ie(n);e||(St(n,o)&&Se(a,"get",n),Se(a,"get",o));const{has:l}=Ps(a),c=t?wr:e?Xt:ze;if(l.call(a,n))return c(i.get(n));if(l.call(a,o))return c(i.get(o));i!==a&&i.get(n)},get size(){const n=this.__v_raw;return!e&&Se(ie(n),"iterate",Dt),n.size},has(n){const i=this.__v_raw,a=ie(i),o=ie(n);return e||(St(n,o)&&Se(a,"has",n),Se(a,"has",o)),n===o?i.has(n):i.has(n)||i.has(o)},forEach(n,i){const a=this,o=a.__v_raw,l=ie(o),c=t?wr:e?Xt:ze;return!e&&Se(l,"iterate",Dt),o.forEach((u,f)=>n.call(i,c(u),c(f),a))}};return Te(s,e?{add:Ts("add"),set:Ts("set"),delete:Ts("delete"),clear:Ts("clear")}:{add(n){!t&&!Be(n)&&!pt(n)&&(n=ie(n));const i=ie(this);return Ps(i).has.call(i,n)||(i.add(n),ut(i,"add",n,n)),this},set(n,i){!t&&!Be(i)&&!pt(i)&&(i=ie(i));const a=ie(this),{has:o,get:l}=Ps(a);let c=o.call(a,n);c||(n=ie(n),c=o.call(a,n));const u=l.call(a,n);return a.set(n,i),c?St(i,u)&&ut(a,"set",n,i):ut(a,"add",n,i),this},delete(n){const i=ie(this),{has:a,get:o}=Ps(i);let l=a.call(i,n);l||(n=ie(n),l=a.call(i,n)),o&&o.call(i,n);const c=i.delete(n);return l&&ut(i,"delete",n,void 0),c},clear(){const n=ie(this),i=n.size!==0,a=n.clear();return i&&ut(n,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(n=>{s[n]=oo(n,e,t)}),s}function qr(e,t){const s=lo(e,t);return(r,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?r:Reflect.get(ae(s,n)&&n in r?s:r,n,i)}const co={get:qr(!1,!1)},uo={get:qr(!1,!0)},fo={get:qr(!0,!1)};const Ri=new WeakMap,Si=new WeakMap,Ai=new WeakMap,mo=new WeakMap;function go(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function po(e){return e.__v_skip||!Object.isExtensible(e)?0:go(Fa(e))}function Ys(e){return pt(e)?e:Ur(e,!1,no,co,Ri)}function Ei(e){return Ur(e,!1,ao,uo,Si)}function Cr(e){return Ur(e,!0,io,fo,Ai)}function Ur(e,t,s,r,n){if(!ue(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=po(e);if(i===0)return e;const a=n.get(e);if(a)return a;const o=new Proxy(e,i===2?r:s);return n.set(e,o),o}function Nt(e){return pt(e)?Nt(e.__v_raw):!!(e&&e.__v_isReactive)}function pt(e){return!!(e&&e.__v_isReadonly)}function Be(e){return!!(e&&e.__v_isShallow)}function Wr(e){return e?!!e.__v_raw:!1}function ie(e){const t=e&&e.__v_raw;return t?ie(t):e}function ho(e){return!ae(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const ze=e=>ue(e)?Ys(e):e,Xt=e=>ue(e)?Cr(e):e;function Ee(e){return e?e.__v_isRef===!0:!1}function xe(e){return Pi(e,!1)}function xo(e){return Pi(e,!0)}function Pi(e,t){return Ee(e)?e:new yo(e,t)}class yo{constructor(t,s){this.dep=new Gr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:ie(t),this._value=s?t:ze(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,r=this.__v_isShallow||Be(t)||pt(t);t=r?t:ie(t),St(t,s)&&(this._rawValue=t,this._value=r?t:ze(t),this.dep.trigger())}}function A(e){return Ee(e)?e.value:e}const vo={get:(e,t,s)=>t==="__v_raw"?e:A(Reflect.get(e,t,s)),set:(e,t,s,r)=>{const n=e[t];return Ee(n)&&!Ee(s)?(n.value=s,!0):Reflect.set(e,t,s,r)}};function Ti(e){return Nt(e)?e:new Proxy(e,vo)}class bo{constructor(t,s,r){this.fn=t,this.setter=s,this._value=void 0,this.dep=new Gr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=xs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&me!==this)return hi(this,!0),!0}get value(){const t=this.dep.track();return vi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function _o(e,t,s=!1){let r,n;return z(e)?r=e:(r=e.get,n=e.set),new bo(r,n,s)}const $s={},Ns=new WeakMap;let Ot;function ko(e,t=!1,s=Ot){if(s){let r=Ns.get(s);r||Ns.set(s,r=[]),r.push(e)}}function wo(e,t,s=de){const{immediate:r,deep:n,once:i,scheduler:a,augmentJob:o,call:l}=s,c=L=>n?L:Be(L)||n===!1||n===0?ft(L,1):ft(L);let u,f,p,h,S=!1,M=!1;if(Ee(e)?(f=()=>e.value,S=Be(e)):Nt(e)?(f=()=>c(e),S=!0):q(e)?(M=!0,S=e.some(L=>Nt(L)||Be(L)),f=()=>e.map(L=>{if(Ee(L))return L.value;if(Nt(L))return c(L);if(z(L))return l?l(L,2):L()})):z(e)?t?f=l?()=>l(e,2):e:f=()=>{if(p){mt();try{p()}finally{gt()}}const L=Ot;Ot=u;try{return l?l(e,3,[h]):e(h)}finally{Ot=L}}:f=it,t&&n){const L=f,te=n===!0?1/0:n;f=()=>ft(L(),te)}const K=Ja(),j=()=>{u.stop(),K&&K.active&&Lr(K.effects,u)};if(i&&t){const L=t;t=(...te)=>{L(...te),j()}}let N=M?new Array(e.length).fill($s):$s;const V=L=>{if(!(!(u.flags&1)||!u.dirty&&!L))if(t){const te=u.run();if(n||S||(M?te.some((ye,ge)=>St(ye,N[ge])):St(te,N))){p&&p();const ye=Ot;Ot=u;try{const ge=[te,N===$s?void 0:M&&N[0]===$s?[]:N,h];N=te,l?l(t,3,ge):t(...ge)}finally{Ot=ye}}}else u.run()};return o&&o(V),u=new gi(f),u.scheduler=a?()=>a(V,!1):V,h=L=>ko(L,!1,u),p=u.onStop=()=>{const L=Ns.get(u);if(L){if(l)l(L,4);else for(const te of L)te();Ns.delete(u)}},t?r?V(!0):N=u.run():a?a(V.bind(null,!0),!0):u.run(),j.pause=u.pause.bind(u),j.resume=u.resume.bind(u),j.stop=j,j}function ft(e,t=1/0,s){if(t<=0||!ue(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,Ee(e))ft(e.value,t,s);else if(q(e))for(let r=0;r<e.length;r++)ft(e[r],t,s);else if(Us(e)||Kt(e))e.forEach(r=>{ft(r,t,s)});else if(li(e)){for(const r in e)ft(e[r],t,s);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&ft(e[r],t,s)}return e}function Ss(e,t,s,r){try{return r?e(...r):e()}catch(n){Xs(n,t,s)}}function at(e,t,s,r){if(z(e)){const n=Ss(e,t,s,r);return n&&ai(n)&&n.catch(i=>{Xs(i,t,s)}),n}if(q(e)){const n=[];for(let i=0;i<e.length;i++)n.push(at(e[i],t,s,r));return n}}function Xs(e,t,s,r=!0){const n=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:a}=t&&t.appContext.config||de;if(t){let o=t.parent;const l=t.proxy,c=`https://vuejs.org/error-reference/#runtime-${s}`;for(;o;){const u=o.ec;if(u){for(let f=0;f<u.length;f++)if(u[f](e,l,c)===!1)return}o=o.parent}if(i){mt(),Ss(i,null,10,[e,l,c]),gt();return}}Co(e,s,n,r,a)}function Co(e,t,s,r=!0,n=!1){if(n)throw e;console.error(e)}const Ie=[];let rt=-1;const zt=[];let wt=null,qt=0;const $i=Promise.resolve();let Ls=null;function Oi(e){const t=Ls||$i;return e?t.then(this?e.bind(this):e):t}function Ro(e){let t=rt+1,s=Ie.length;for(;t<s;){const r=t+s>>>1,n=Ie[r],i=vs(n);i<e||i===e&&n.flags&2?t=r+1:s=r}return t}function Kr(e){if(!(e.flags&1)){const t=vs(e),s=Ie[Ie.length-1];!s||!(e.flags&2)&&t>=vs(s)?Ie.push(e):Ie.splice(Ro(t),0,e),e.flags|=1,Ii()}}function Ii(){Ls||(Ls=$i.then(Di))}function So(e){q(e)?zt.push(...e):wt&&e.id===-1?wt.splice(qt+1,0,e):e.flags&1||(zt.push(e),e.flags|=1),Ii()}function pn(e,t,s=rt+1){for(;s<Ie.length;s++){const r=Ie[s];if(r&&r.flags&2){if(e&&r.id!==e.uid)continue;Ie.splice(s,1),s--,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function Mi(e){if(zt.length){const t=[...new Set(zt)].sort((s,r)=>vs(s)-vs(r));if(zt.length=0,wt){wt.push(...t);return}for(wt=t,qt=0;qt<wt.length;qt++){const s=wt[qt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}wt=null,qt=0}}const vs=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Di(e){try{for(rt=0;rt<Ie.length;rt++){const t=Ie[rt];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Ss(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;rt<Ie.length;rt++){const t=Ie[rt];t&&(t.flags&=-2)}rt=-1,Ie.length=0,Mi(),Ls=null,(Ie.length||zt.length)&&Di()}}let Ce=null,Ni=null;function js(e){const t=Ce;return Ce=e,Ni=e&&e.type.__scopeId||null,t}function Z(e,t=Ce,s){if(!t||e._n)return e;const r=(...n)=>{r._d&&Hs(-1);const i=js(t);let a;try{a=e(...n)}finally{js(i),r._d&&Hs(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function zr(e,t){if(Ce===null)return e;const s=sr(Ce),r=e.dirs||(e.dirs=[]);for(let n=0;n<t.length;n++){let[i,a,o,l=de]=t[n];i&&(z(i)&&(i={mounted:i,updated:i}),i.deep&&ft(a),r.push({dir:i,instance:s,value:a,oldValue:void 0,arg:o,modifiers:l}))}return e}function Tt(e,t,s,r){const n=e.dirs,i=t&&t.dirs;for(let a=0;a<n.length;a++){const o=n[a];i&&(o.oldValue=i[a].value);let l=o.dir[r];l&&(mt(),at(l,s,8,[e.el,o,e,t]),gt())}}const Ao=Symbol("_vte"),Eo=e=>e.__isTeleport,Po=Symbol("_leaveCb");function Qr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Qr(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Li(e,t){return z(e)?Te({name:e.name},t,{setup:e}):e}function ji(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Fs=new WeakMap;function fs(e,t,s,r,n=!1){if(q(e)){e.forEach((S,M)=>fs(S,t&&(q(t)?t[M]:t),s,r,n));return}if(Qt(r)&&!n){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&fs(e,t,s,r.component.subTree);return}const i=r.shapeFlag&4?sr(r.component):r.el,a=n?null:i,{i:o,r:l}=e,c=t&&t.r,u=o.refs===de?o.refs={}:o.refs,f=o.setupState,p=ie(f),h=f===de?ii:S=>ae(p,S);if(c!=null&&c!==l){if(hn(t),he(c))u[c]=null,h(c)&&(f[c]=null);else if(Ee(c)){c.value=null;const S=t;S.k&&(u[S.k]=null)}}if(z(l))Ss(l,o,12,[a,u]);else{const S=he(l),M=Ee(l);if(S||M){const K=()=>{if(e.f){const j=S?h(l)?f[l]:u[l]:l.value;if(n)q(j)&&Lr(j,i);else if(q(j))j.includes(i)||j.push(i);else if(S)u[l]=[i],h(l)&&(f[l]=u[l]);else{const N=[i];l.value=N,e.k&&(u[e.k]=N)}}else S?(u[l]=a,h(l)&&(f[l]=a)):M&&(l.value=a,e.k&&(u[e.k]=a))};if(a){const j=()=>{K(),Fs.delete(e)};j.id=-1,Fs.set(e,j),Fe(j,s)}else hn(e),K()}}}function hn(e){const t=Fs.get(e);t&&(t.flags|=8,Fs.delete(e))}zs().requestIdleCallback;zs().cancelIdleCallback;const Qt=e=>!!e.type.__asyncLoader,Fi=e=>e.type.__isKeepAlive;function To(e,t){Vi(e,"a",t)}function $o(e,t){Vi(e,"da",t)}function Vi(e,t,s=Ae){const r=e.__wdc||(e.__wdc=()=>{let n=s;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(Zs(t,r,s),s){let n=s.parent;for(;n&&n.parent;)Fi(n.parent.vnode)&&Oo(r,t,s,n),n=n.parent}}function Oo(e,t,s,r){const n=Zs(t,e,r,!0);Jr(()=>{Lr(r[t],n)},s)}function Zs(e,t,s=Ae,r=!1){if(s){const n=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...a)=>{mt();const o=As(s),l=at(t,s,e,a);return o(),gt(),l});return r?n.unshift(i):n.push(i),i}}const xt=e=>(t,s=Ae)=>{(!ks||e==="sp")&&Zs(e,(...r)=>t(...r),s)},Io=xt("bm"),Ft=xt("m"),Mo=xt("bu"),Do=xt("u"),No=xt("bum"),Jr=xt("um"),Lo=xt("sp"),jo=xt("rtg"),Fo=xt("rtc");function Vo(e,t=Ae){Zs("ec",e,t)}const Hi="components";function Ho(e,t){return Gi(Hi,e,!0,t)||e}const Bi=Symbol.for("v-ndc");function Bo(e){return he(e)?Gi(Hi,e,!1)||e:e||Bi}function Gi(e,t,s=!0,r=!1){const n=Ce||Ae;if(n){const i=n.type;{const o=Tl(i,!1);if(o&&(o===t||o===qe(t)||o===Ks(qe(t))))return i}const a=xn(n[e]||i[e],t)||xn(n.appContext[e],t);return!a&&r?i:a}}function xn(e,t){return e&&(e[t]||e[qe(t)]||e[Ks(qe(t))])}function be(e,t,s,r){let n;const i=s,a=q(e);if(a||he(e)){const o=a&&Nt(e);let l=!1,c=!1;o&&(l=!Be(e),c=pt(e),e=Js(e)),n=new Array(e.length);for(let u=0,f=e.length;u<f;u++)n[u]=t(l?c?Xt(ze(e[u])):ze(e[u]):e[u],u,void 0,i)}else if(typeof e=="number"){n=new Array(e);for(let o=0;o<e;o++)n[o]=t(o+1,o,void 0,i)}else if(ue(e))if(e[Symbol.iterator])n=Array.from(e,(o,l)=>t(o,l,void 0,i));else{const o=Object.keys(e);n=new Array(o.length);for(let l=0,c=o.length;l<c;l++){const u=o[l];n[l]=t(e[u],u,l,i)}}else n=[];return n}function Lt(e,t,s={},r,n){if(Ce.ce||Ce.parent&&Qt(Ce.parent)&&Ce.parent.ce){const c=Object.keys(s).length>0;return t!=="default"&&(s.name=t),y(),oe(J,null,[$("slot",s,r&&r())],c?-2:64)}let i=e[t];i&&i._c&&(i._d=!1),y();const a=i&&qi(i(s)),o=s.key||a&&a.key,l=oe(J,{key:(o&&!Ke(o)?o:`_${t}`)+(!a&&r?"_fb":"")},a||(r?r():[]),a&&e._===1?64:-2);return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),i&&i._c&&(i._d=!0),l}function qi(e){return e.some(t=>_s(t)?!(t.type===ht||t.type===J&&!qi(t.children)):!0)?e:null}const Rr=e=>e?da(e)?sr(e):Rr(e.parent):null,ms=Te(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Rr(e.parent),$root:e=>Rr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Wi(e),$forceUpdate:e=>e.f||(e.f=()=>{Kr(e.update)}),$nextTick:e=>e.n||(e.n=Oi.bind(e.proxy)),$watch:e=>Zo.bind(e)}),ur=(e,t)=>e!==de&&!e.__isScriptSetup&&ae(e,t),Go={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:r,data:n,props:i,accessCache:a,type:o,appContext:l}=e;if(t[0]!=="$"){const p=a[t];if(p!==void 0)switch(p){case 1:return r[t];case 2:return n[t];case 4:return s[t];case 3:return i[t]}else{if(ur(r,t))return a[t]=1,r[t];if(n!==de&&ae(n,t))return a[t]=2,n[t];if(ae(i,t))return a[t]=3,i[t];if(s!==de&&ae(s,t))return a[t]=4,s[t];Sr&&(a[t]=0)}}const c=ms[t];let u,f;if(c)return t==="$attrs"&&Se(e.attrs,"get",""),c(e);if((u=o.__cssModules)&&(u=u[t]))return u;if(s!==de&&ae(s,t))return a[t]=4,s[t];if(f=l.config.globalProperties,ae(f,t))return f[t]},set({_:e},t,s){const{data:r,setupState:n,ctx:i}=e;return ur(n,t)?(n[t]=s,!0):r!==de&&ae(r,t)?(r[t]=s,!0):ae(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:r,appContext:n,props:i,type:a}},o){let l;return!!(s[o]||e!==de&&o[0]!=="$"&&ae(e,o)||ur(t,o)||ae(i,o)||ae(r,o)||ae(ms,o)||ae(n.config.globalProperties,o)||(l=a.__cssModules)&&l[o])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:ae(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function yn(e){return q(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let Sr=!0;function qo(e){const t=Wi(e),s=e.proxy,r=e.ctx;Sr=!1,t.beforeCreate&&vn(t.beforeCreate,e,"bc");const{data:n,computed:i,methods:a,watch:o,provide:l,inject:c,created:u,beforeMount:f,mounted:p,beforeUpdate:h,updated:S,activated:M,deactivated:K,beforeDestroy:j,beforeUnmount:N,destroyed:V,unmounted:L,render:te,renderTracked:ye,renderTriggered:ge,errorCaptured:Re,serverPrefetch:yt,expose:Je,inheritAttrs:vt,components:Et,directives:Ye,filters:ss}=t;if(c&&Uo(c,r,null),a)for(const ce in a){const re=a[ce];z(re)&&(r[ce]=re.bind(s))}if(n){const ce=n.call(s,s);ue(ce)&&(e.data=Ys(ce))}if(Sr=!0,i)for(const ce in i){const re=i[ce],ot=z(re)?re.bind(s,s):z(re.get)?re.get.bind(s,s):it,bt=!z(re)&&z(re.set)?re.set.bind(s):it,Xe=ee({get:ot,set:bt});Object.defineProperty(r,ce,{enumerable:!0,configurable:!0,get:()=>Xe.value,set:Me=>Xe.value=Me})}if(o)for(const ce in o)Ui(o[ce],r,s,ce);if(l){const ce=z(l)?l.call(s):l;Reflect.ownKeys(ce).forEach(re=>{gs(re,ce[re])})}u&&vn(u,e,"c");function _e(ce,re){q(re)?re.forEach(ot=>ce(ot.bind(s))):re&&ce(re.bind(s))}if(_e(Io,f),_e(Ft,p),_e(Mo,h),_e(Do,S),_e(To,M),_e($o,K),_e(Vo,Re),_e(Fo,ye),_e(jo,ge),_e(No,N),_e(Jr,L),_e(Lo,yt),q(Je))if(Je.length){const ce=e.exposed||(e.exposed={});Je.forEach(re=>{Object.defineProperty(ce,re,{get:()=>s[re],set:ot=>s[re]=ot,enumerable:!0})})}else e.exposed||(e.exposed={});te&&e.render===it&&(e.render=te),vt!=null&&(e.inheritAttrs=vt),Et&&(e.components=Et),Ye&&(e.directives=Ye),yt&&ji(e)}function Uo(e,t,s=it){q(e)&&(e=Ar(e));for(const r in e){const n=e[r];let i;ue(n)?"default"in n?i=Pe(n.from||r,n.default,!0):i=Pe(n.from||r):i=Pe(n),Ee(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:a=>i.value=a}):t[r]=i}}function vn(e,t,s){at(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,s)}function Ui(e,t,s,r){let n=r.includes(".")?Qi(s,r):()=>s[r];if(he(e)){const i=t[e];z(i)&&Ge(n,i)}else if(z(e))Ge(n,e.bind(s));else if(ue(e))if(q(e))e.forEach(i=>Ui(i,t,s,r));else{const i=z(e.handler)?e.handler.bind(s):t[e.handler];z(i)&&Ge(n,i,e)}}function Wi(e){const t=e.type,{mixins:s,extends:r}=t,{mixins:n,optionsCache:i,config:{optionMergeStrategies:a}}=e.appContext,o=i.get(t);let l;return o?l=o:!n.length&&!s&&!r?l=t:(l={},n.length&&n.forEach(c=>Vs(l,c,a,!0)),Vs(l,t,a)),ue(t)&&i.set(t,l),l}function Vs(e,t,s,r=!1){const{mixins:n,extends:i}=t;i&&Vs(e,i,s,!0),n&&n.forEach(a=>Vs(e,a,s,!0));for(const a in t)if(!(r&&a==="expose")){const o=Wo[a]||s&&s[a];e[a]=o?o(e[a],t[a]):t[a]}return e}const Wo={data:bn,props:_n,emits:_n,methods:ls,computed:ls,beforeCreate:$e,created:$e,beforeMount:$e,mounted:$e,beforeUpdate:$e,updated:$e,beforeDestroy:$e,beforeUnmount:$e,destroyed:$e,unmounted:$e,activated:$e,deactivated:$e,errorCaptured:$e,serverPrefetch:$e,components:ls,directives:ls,watch:zo,provide:bn,inject:Ko};function bn(e,t){return t?e?function(){return Te(z(e)?e.call(this,this):e,z(t)?t.call(this,this):t)}:t:e}function Ko(e,t){return ls(Ar(e),Ar(t))}function Ar(e){if(q(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function $e(e,t){return e?[...new Set([].concat(e,t))]:t}function ls(e,t){return e?Te(Object.create(null),e,t):t}function _n(e,t){return e?q(e)&&q(t)?[...new Set([...e,...t])]:Te(Object.create(null),yn(e),yn(t??{})):t}function zo(e,t){if(!e)return t;if(!t)return e;const s=Te(Object.create(null),e);for(const r in t)s[r]=$e(e[r],t[r]);return s}function Ki(){return{app:null,config:{isNativeTag:ii,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Qo=0;function Jo(e,t){return function(r,n=null){z(r)||(r=Te({},r)),n!=null&&!ue(n)&&(n=null);const i=Ki(),a=new WeakSet,o=[];let l=!1;const c=i.app={_uid:Qo++,_component:r,_props:n,_container:null,_context:i,_instance:null,version:Ol,get config(){return i.config},set config(u){},use(u,...f){return a.has(u)||(u&&z(u.install)?(a.add(u),u.install(c,...f)):z(u)&&(a.add(u),u(c,...f))),c},mixin(u){return i.mixins.includes(u)||i.mixins.push(u),c},component(u,f){return f?(i.components[u]=f,c):i.components[u]},directive(u,f){return f?(i.directives[u]=f,c):i.directives[u]},mount(u,f,p){if(!l){const h=c._ceVNode||$(r,n);return h.appContext=i,p===!0?p="svg":p===!1&&(p=void 0),e(h,u,p),l=!0,c._container=u,u.__vue_app__=c,sr(h.component)}},onUnmount(u){o.push(u)},unmount(){l&&(at(o,c._instance,16),e(null,c._container),delete c._container.__vue_app__)},provide(u,f){return i.provides[u]=f,c},runWithContext(u){const f=Jt;Jt=c;try{return u()}finally{Jt=f}}};return c}}let Jt=null;function gs(e,t){if(Ae){let s=Ae.provides;const r=Ae.parent&&Ae.parent.provides;r===s&&(s=Ae.provides=Object.create(r)),s[e]=t}}function Pe(e,t,s=!1){const r=Rl();if(r||Jt){let n=Jt?Jt._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(n&&e in n)return n[e];if(arguments.length>1)return s&&z(t)?t.call(r&&r.proxy):t}}const Yo=Symbol.for("v-scx"),Xo=()=>Pe(Yo);function Ge(e,t,s){return zi(e,t,s)}function zi(e,t,s=de){const{immediate:r,deep:n,flush:i,once:a}=s,o=Te({},s),l=t&&r||!t&&i!=="post";let c;if(ks){if(i==="sync"){const h=Xo();c=h.__watcherHandles||(h.__watcherHandles=[])}else if(!l){const h=()=>{};return h.stop=it,h.resume=it,h.pause=it,h}}const u=Ae;o.call=(h,S,M)=>at(h,u,S,M);let f=!1;i==="post"?o.scheduler=h=>{Fe(h,u&&u.suspense)}:i!=="sync"&&(f=!0,o.scheduler=(h,S)=>{S?h():Kr(h)}),o.augmentJob=h=>{t&&(h.flags|=4),f&&(h.flags|=2,u&&(h.id=u.uid,h.i=u))};const p=wo(e,t,o);return ks&&(c?c.push(p):l&&p()),p}function Zo(e,t,s){const r=this.proxy,n=he(e)?e.includes(".")?Qi(r,e):()=>r[e]:e.bind(r,r);let i;z(t)?i=t:(i=t.handler,s=t);const a=As(this),o=zi(n,i.bind(r),s);return a(),o}function Qi(e,t){const s=t.split(".");return()=>{let r=e;for(let n=0;n<s.length&&r;n++)r=r[s[n]];return r}}const el=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${qe(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function tl(e,t,...s){if(e.isUnmounted)return;const r=e.vnode.props||de;let n=s;const i=t.startsWith("update:"),a=i&&el(r,t.slice(7));a&&(a.trim&&(n=s.map(u=>he(u)?u.trim():u)),a.number&&(n=s.map(Fr)));let o,l=r[o=ar(t)]||r[o=ar(qe(t))];!l&&i&&(l=r[o=ar(jt(t))]),l&&at(l,e,6,n);const c=r[o+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[o])return;e.emitted[o]=!0,at(c,e,6,n)}}const sl=new WeakMap;function Ji(e,t,s=!1){const r=s?sl:t.emitsCache,n=r.get(e);if(n!==void 0)return n;const i=e.emits;let a={},o=!1;if(!z(e)){const l=c=>{const u=Ji(c,t,!0);u&&(o=!0,Te(a,u))};!s&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!i&&!o?(ue(e)&&r.set(e,null),null):(q(i)?i.forEach(l=>a[l]=null):Te(a,i),ue(e)&&r.set(e,a),a)}function er(e,t){return!e||!qs(t)?!1:(t=t.slice(2).replace(/Once$/,""),ae(e,t[0].toLowerCase()+t.slice(1))||ae(e,jt(t))||ae(e,t))}function kn(e){const{type:t,vnode:s,proxy:r,withProxy:n,propsOptions:[i],slots:a,attrs:o,emit:l,render:c,renderCache:u,props:f,data:p,setupState:h,ctx:S,inheritAttrs:M}=e,K=js(e);let j,N;try{if(s.shapeFlag&4){const L=n||r,te=L;j=nt(c.call(te,L,u,f,h,p,S)),N=o}else{const L=t;j=nt(L.length>1?L(f,{attrs:o,slots:a,emit:l}):L(f,null)),N=t.props?o:rl(o)}}catch(L){ps.length=0,Xs(L,e,1),j=$(ht)}let V=j;if(N&&M!==!1){const L=Object.keys(N),{shapeFlag:te}=V;L.length&&te&7&&(i&&L.some(Nr)&&(N=nl(N,i)),V=Zt(V,N,!1,!0))}return s.dirs&&(V=Zt(V,null,!1,!0),V.dirs=V.dirs?V.dirs.concat(s.dirs):s.dirs),s.transition&&Qr(V,s.transition),j=V,js(K),j}const rl=e=>{let t;for(const s in e)(s==="class"||s==="style"||qs(s))&&((t||(t={}))[s]=e[s]);return t},nl=(e,t)=>{const s={};for(const r in e)(!Nr(r)||!(r.slice(9)in t))&&(s[r]=e[r]);return s};function il(e,t,s){const{props:r,children:n,component:i}=e,{props:a,children:o,patchFlag:l}=t,c=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&l>=0){if(l&1024)return!0;if(l&16)return r?wn(r,a,c):!!a;if(l&8){const u=t.dynamicProps;for(let f=0;f<u.length;f++){const p=u[f];if(a[p]!==r[p]&&!er(c,p))return!0}}}else return(n||o)&&(!o||!o.$stable)?!0:r===a?!1:r?a?wn(r,a,c):!0:!!a;return!1}function wn(e,t,s){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let n=0;n<r.length;n++){const i=r[n];if(t[i]!==e[i]&&!er(s,i))return!0}return!1}function al({vnode:e,parent:t},s){for(;t;){const r=t.subTree;if(r.suspense&&r.suspense.activeBranch===e&&(r.el=e.el),r===e)(e=t.vnode).el=s,t=t.parent;else break}}const Yi={},Xi=()=>Object.create(Yi),Zi=e=>Object.getPrototypeOf(e)===Yi;function ol(e,t,s,r=!1){const n={},i=Xi();e.propsDefaults=Object.create(null),ea(e,t,n,i);for(const a in e.propsOptions[0])a in n||(n[a]=void 0);s?e.props=r?n:Ei(n):e.type.props?e.props=n:e.props=i,e.attrs=i}function ll(e,t,s,r){const{props:n,attrs:i,vnode:{patchFlag:a}}=e,o=ie(n),[l]=e.propsOptions;let c=!1;if((r||a>0)&&!(a&16)){if(a&8){const u=e.vnode.dynamicProps;for(let f=0;f<u.length;f++){let p=u[f];if(er(e.emitsOptions,p))continue;const h=t[p];if(l)if(ae(i,p))h!==i[p]&&(i[p]=h,c=!0);else{const S=qe(p);n[S]=Er(l,o,S,h,e,!1)}else h!==i[p]&&(i[p]=h,c=!0)}}}else{ea(e,t,n,i)&&(c=!0);let u;for(const f in o)(!t||!ae(t,f)&&((u=jt(f))===f||!ae(t,u)))&&(l?s&&(s[f]!==void 0||s[u]!==void 0)&&(n[f]=Er(l,o,f,void 0,e,!0)):delete n[f]);if(i!==o)for(const f in i)(!t||!ae(t,f))&&(delete i[f],c=!0)}c&&ut(e.attrs,"set","")}function ea(e,t,s,r){const[n,i]=e.propsOptions;let a=!1,o;if(t)for(let l in t){if(cs(l))continue;const c=t[l];let u;n&&ae(n,u=qe(l))?!i||!i.includes(u)?s[u]=c:(o||(o={}))[u]=c:er(e.emitsOptions,l)||(!(l in r)||c!==r[l])&&(r[l]=c,a=!0)}if(i){const l=ie(s),c=o||de;for(let u=0;u<i.length;u++){const f=i[u];s[f]=Er(n,l,f,c[f],e,!ae(c,f))}}return a}function Er(e,t,s,r,n,i){const a=e[s];if(a!=null){const o=ae(a,"default");if(o&&r===void 0){const l=a.default;if(a.type!==Function&&!a.skipFactory&&z(l)){const{propsDefaults:c}=n;if(s in c)r=c[s];else{const u=As(n);r=c[s]=l.call(null,t),u()}}else r=l;n.ce&&n.ce._setProp(s,r)}a[0]&&(i&&!o?r=!1:a[1]&&(r===""||r===jt(s))&&(r=!0))}return r}const cl=new WeakMap;function ta(e,t,s=!1){const r=s?cl:t.propsCache,n=r.get(e);if(n)return n;const i=e.props,a={},o=[];let l=!1;if(!z(e)){const u=f=>{l=!0;const[p,h]=ta(f,t,!0);Te(a,p),h&&o.push(...h)};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!l)return ue(e)&&r.set(e,Wt),Wt;if(q(i))for(let u=0;u<i.length;u++){const f=qe(i[u]);Cn(f)&&(a[f]=de)}else if(i)for(const u in i){const f=qe(u);if(Cn(f)){const p=i[u],h=a[f]=q(p)||z(p)?{type:p}:Te({},p),S=h.type;let M=!1,K=!0;if(q(S))for(let j=0;j<S.length;++j){const N=S[j],V=z(N)&&N.name;if(V==="Boolean"){M=!0;break}else V==="String"&&(K=!1)}else M=z(S)&&S.name==="Boolean";h[0]=M,h[1]=K,(M||ae(h,"default"))&&o.push(f)}}const c=[a,o];return ue(e)&&r.set(e,c),c}function Cn(e){return e[0]!=="$"&&!cs(e)}const Yr=e=>e==="_"||e==="_ctx"||e==="$stable",Xr=e=>q(e)?e.map(nt):[nt(e)],dl=(e,t,s)=>{if(t._n)return t;const r=Z((...n)=>Xr(t(...n)),s);return r._c=!1,r},sa=(e,t,s)=>{const r=e._ctx;for(const n in e){if(Yr(n))continue;const i=e[n];if(z(i))t[n]=dl(n,i,r);else if(i!=null){const a=Xr(i);t[n]=()=>a}}},ra=(e,t)=>{const s=Xr(t);e.slots.default=()=>s},na=(e,t,s)=>{for(const r in t)(s||!Yr(r))&&(e[r]=t[r])},ul=(e,t,s)=>{const r=e.slots=Xi();if(e.vnode.shapeFlag&32){const n=t._;n?(na(r,t,s),s&&ci(r,"_",n,!0)):sa(t,r)}else t&&ra(e,t)},fl=(e,t,s)=>{const{vnode:r,slots:n}=e;let i=!0,a=de;if(r.shapeFlag&32){const o=t._;o?s&&o===1?i=!1:na(n,t,s):(i=!t.$stable,sa(t,n)),a=t}else t&&(ra(e,t),a={default:1});if(i)for(const o in n)!Yr(o)&&a[o]==null&&delete n[o]},Fe=xl;function ml(e){return gl(e)}function gl(e,t){const s=zs();s.__VUE__=!0;const{insert:r,remove:n,patchProp:i,createElement:a,createText:o,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:p,setScopeId:h=it,insertStaticContent:S}=e,M=(m,g,x,_=null,C=null,b=null,T=void 0,P=null,E=!!g.dynamicChildren)=>{if(m===g)return;m&&!is(m,g)&&(_=k(m),Me(m,C,b,!0),m=null),g.patchFlag===-2&&(E=!1,g.dynamicChildren=null);const{type:R,ref:B,shapeFlag:I}=g;switch(R){case tr:K(m,g,x,_);break;case ht:j(m,g,x,_);break;case Is:m==null&&N(g,x,_,T);break;case J:Et(m,g,x,_,C,b,T,P,E);break;default:I&1?te(m,g,x,_,C,b,T,P,E):I&6?Ye(m,g,x,_,C,b,T,P,E):(I&64||I&128)&&R.process(m,g,x,_,C,b,T,P,E,F)}B!=null&&C?fs(B,m&&m.ref,b,g||m,!g):B==null&&m&&m.ref!=null&&fs(m.ref,null,b,m,!0)},K=(m,g,x,_)=>{if(m==null)r(g.el=o(g.children),x,_);else{const C=g.el=m.el;g.children!==m.children&&c(C,g.children)}},j=(m,g,x,_)=>{m==null?r(g.el=l(g.children||""),x,_):g.el=m.el},N=(m,g,x,_)=>{[m.el,m.anchor]=S(m.children,g,x,_,m.el,m.anchor)},V=({el:m,anchor:g},x,_)=>{let C;for(;m&&m!==g;)C=p(m),r(m,x,_),m=C;r(g,x,_)},L=({el:m,anchor:g})=>{let x;for(;m&&m!==g;)x=p(m),n(m),m=x;n(g)},te=(m,g,x,_,C,b,T,P,E)=>{if(g.type==="svg"?T="svg":g.type==="math"&&(T="mathml"),m==null)ye(g,x,_,C,b,T,P,E);else{const R=m.el&&m.el._isVueCE?m.el:null;try{R&&R._beginPatch(),yt(m,g,C,b,T,P,E)}finally{R&&R._endPatch()}}},ye=(m,g,x,_,C,b,T,P)=>{let E,R;const{props:B,shapeFlag:I,transition:H,dirs:W}=m;if(E=m.el=a(m.type,b,B&&B.is,B),I&8?u(E,m.children):I&16&&Re(m.children,E,null,_,C,fr(m,b),T,P),W&&Tt(m,null,_,"created"),ge(E,m,m.scopeId,T,_),B){for(const fe in B)fe!=="value"&&!cs(fe)&&i(E,fe,null,B[fe],b,_);"value"in B&&i(E,"value",null,B.value,b),(R=B.onVnodeBeforeMount)&&st(R,_,m)}W&&Tt(m,null,_,"beforeMount");const X=pl(C,H);X&&H.beforeEnter(E),r(E,g,x),((R=B&&B.onVnodeMounted)||X||W)&&Fe(()=>{R&&st(R,_,m),X&&H.enter(E),W&&Tt(m,null,_,"mounted")},C)},ge=(m,g,x,_,C)=>{if(x&&h(m,x),_)for(let b=0;b<_.length;b++)h(m,_[b]);if(C){let b=C.subTree;if(g===b||oa(b.type)&&(b.ssContent===g||b.ssFallback===g)){const T=C.vnode;ge(m,T,T.scopeId,T.slotScopeIds,C.parent)}}},Re=(m,g,x,_,C,b,T,P,E=0)=>{for(let R=E;R<m.length;R++){const B=m[R]=P?Ct(m[R]):nt(m[R]);M(null,B,g,x,_,C,b,T,P)}},yt=(m,g,x,_,C,b,T)=>{const P=g.el=m.el;let{patchFlag:E,dynamicChildren:R,dirs:B}=g;E|=m.patchFlag&16;const I=m.props||de,H=g.props||de;let W;if(x&&$t(x,!1),(W=H.onVnodeBeforeUpdate)&&st(W,x,g,m),B&&Tt(g,m,x,"beforeUpdate"),x&&$t(x,!0),(I.innerHTML&&H.innerHTML==null||I.textContent&&H.textContent==null)&&u(P,""),R?Je(m.dynamicChildren,R,P,x,_,fr(g,C),b):T||re(m,g,P,null,x,_,fr(g,C),b,!1),E>0){if(E&16)vt(P,I,H,x,C);else if(E&2&&I.class!==H.class&&i(P,"class",null,H.class,C),E&4&&i(P,"style",I.style,H.style,C),E&8){const X=g.dynamicProps;for(let fe=0;fe<X.length;fe++){const le=X[fe],De=I[le],Ne=H[le];(Ne!==De||le==="value")&&i(P,le,De,Ne,C,x)}}E&1&&m.children!==g.children&&u(P,g.children)}else!T&&R==null&&vt(P,I,H,x,C);((W=H.onVnodeUpdated)||B)&&Fe(()=>{W&&st(W,x,g,m),B&&Tt(g,m,x,"updated")},_)},Je=(m,g,x,_,C,b,T)=>{for(let P=0;P<g.length;P++){const E=m[P],R=g[P],B=E.el&&(E.type===J||!is(E,R)||E.shapeFlag&198)?f(E.el):x;M(E,R,B,null,_,C,b,T,!0)}},vt=(m,g,x,_,C)=>{if(g!==x){if(g!==de)for(const b in g)!cs(b)&&!(b in x)&&i(m,b,g[b],null,C,_);for(const b in x){if(cs(b))continue;const T=x[b],P=g[b];T!==P&&b!=="value"&&i(m,b,P,T,C,_)}"value"in x&&i(m,"value",g.value,x.value,C)}},Et=(m,g,x,_,C,b,T,P,E)=>{const R=g.el=m?m.el:o(""),B=g.anchor=m?m.anchor:o("");let{patchFlag:I,dynamicChildren:H,slotScopeIds:W}=g;W&&(P=P?P.concat(W):W),m==null?(r(R,x,_),r(B,x,_),Re(g.children||[],x,B,C,b,T,P,E)):I>0&&I&64&&H&&m.dynamicChildren?(Je(m.dynamicChildren,H,x,C,b,T,P),(g.key!=null||C&&g===C.subTree)&&ia(m,g,!0)):re(m,g,x,B,C,b,T,P,E)},Ye=(m,g,x,_,C,b,T,P,E)=>{g.slotScopeIds=P,m==null?g.shapeFlag&512?C.ctx.activate(g,x,_,T,E):ss(g,x,_,C,b,T,E):Vt(m,g,E)},ss=(m,g,x,_,C,b,T)=>{const P=m.component=Cl(m,_,C);if(Fi(m)&&(P.ctx.renderer=F),Sl(P,!1,T),P.asyncDep){if(C&&C.registerDep(P,_e,T),!m.el){const E=P.subTree=$(ht);j(null,E,g,x),m.placeholder=E.el}}else _e(P,m,g,x,C,b,T)},Vt=(m,g,x)=>{const _=g.component=m.component;if(il(m,g,x))if(_.asyncDep&&!_.asyncResolved){ce(_,g,x);return}else _.next=g,_.update();else g.el=m.el,_.vnode=g},_e=(m,g,x,_,C,b,T)=>{const P=()=>{if(m.isMounted){let{next:I,bu:H,u:W,parent:X,vnode:fe}=m;{const et=aa(m);if(et){I&&(I.el=fe.el,ce(m,I,T)),et.asyncDep.then(()=>{m.isUnmounted||P()});return}}let le=I,De;$t(m,!1),I?(I.el=fe.el,ce(m,I,T)):I=fe,H&&Os(H),(De=I.props&&I.props.onVnodeBeforeUpdate)&&st(De,X,I,fe),$t(m,!0);const Ne=kn(m),Ze=m.subTree;m.subTree=Ne,M(Ze,Ne,f(Ze.el),k(Ze),m,C,b),I.el=Ne.el,le===null&&al(m,Ne.el),W&&Fe(W,C),(De=I.props&&I.props.onVnodeUpdated)&&Fe(()=>st(De,X,I,fe),C)}else{let I;const{el:H,props:W}=g,{bm:X,m:fe,parent:le,root:De,type:Ne}=m,Ze=Qt(g);$t(m,!1),X&&Os(X),!Ze&&(I=W&&W.onVnodeBeforeMount)&&st(I,le,g),$t(m,!0);{De.ce&&De.ce._def.shadowRoot!==!1&&De.ce._injectChildStyle(Ne);const et=m.subTree=kn(m);M(null,et,x,_,m,C,b),g.el=et.el}if(fe&&Fe(fe,C),!Ze&&(I=W&&W.onVnodeMounted)){const et=g;Fe(()=>st(I,le,et),C)}(g.shapeFlag&256||le&&Qt(le.vnode)&&le.vnode.shapeFlag&256)&&m.a&&Fe(m.a,C),m.isMounted=!0,g=x=_=null}};m.scope.on();const E=m.effect=new gi(P);m.scope.off();const R=m.update=E.run.bind(E),B=m.job=E.runIfDirty.bind(E);B.i=m,B.id=m.uid,E.scheduler=()=>Kr(B),$t(m,!0),R()},ce=(m,g,x)=>{g.component=m;const _=m.vnode.props;m.vnode=g,m.next=null,ll(m,g.props,_,x),fl(m,g.children,x),mt(),pn(m),gt()},re=(m,g,x,_,C,b,T,P,E=!1)=>{const R=m&&m.children,B=m?m.shapeFlag:0,I=g.children,{patchFlag:H,shapeFlag:W}=g;if(H>0){if(H&128){bt(R,I,x,_,C,b,T,P,E);return}else if(H&256){ot(R,I,x,_,C,b,T,P,E);return}}W&8?(B&16&&He(R,C,b),I!==R&&u(x,I)):B&16?W&16?bt(R,I,x,_,C,b,T,P,E):He(R,C,b,!0):(B&8&&u(x,""),W&16&&Re(I,x,_,C,b,T,P,E))},ot=(m,g,x,_,C,b,T,P,E)=>{m=m||Wt,g=g||Wt;const R=m.length,B=g.length,I=Math.min(R,B);let H;for(H=0;H<I;H++){const W=g[H]=E?Ct(g[H]):nt(g[H]);M(m[H],W,x,null,C,b,T,P,E)}R>B?He(m,C,b,!0,!1,I):Re(g,x,_,C,b,T,P,E,I)},bt=(m,g,x,_,C,b,T,P,E)=>{let R=0;const B=g.length;let I=m.length-1,H=B-1;for(;R<=I&&R<=H;){const W=m[R],X=g[R]=E?Ct(g[R]):nt(g[R]);if(is(W,X))M(W,X,x,null,C,b,T,P,E);else break;R++}for(;R<=I&&R<=H;){const W=m[I],X=g[H]=E?Ct(g[H]):nt(g[H]);if(is(W,X))M(W,X,x,null,C,b,T,P,E);else break;I--,H--}if(R>I){if(R<=H){const W=H+1,X=W<B?g[W].el:_;for(;R<=H;)M(null,g[R]=E?Ct(g[R]):nt(g[R]),x,X,C,b,T,P,E),R++}}else if(R>H)for(;R<=I;)Me(m[R],C,b,!0),R++;else{const W=R,X=R,fe=new Map;for(R=X;R<=H;R++){const je=g[R]=E?Ct(g[R]):nt(g[R]);je.key!=null&&fe.set(je.key,R)}let le,De=0;const Ne=H-X+1;let Ze=!1,et=0;const rs=new Array(Ne);for(R=0;R<Ne;R++)rs[R]=0;for(R=W;R<=I;R++){const je=m[R];if(De>=Ne){Me(je,C,b,!0);continue}let tt;if(je.key!=null)tt=fe.get(je.key);else for(le=X;le<=H;le++)if(rs[le-X]===0&&is(je,g[le])){tt=le;break}tt===void 0?Me(je,C,b,!0):(rs[tt-X]=R+1,tt>=et?et=tt:Ze=!0,M(je,g[tt],x,null,C,b,T,P,E),De++)}const on=Ze?hl(rs):Wt;for(le=on.length-1,R=Ne-1;R>=0;R--){const je=X+R,tt=g[je],ln=g[je+1],cn=je+1<B?ln.el||ln.placeholder:_;rs[R]===0?M(null,tt,x,cn,C,b,T,P,E):Ze&&(le<0||R!==on[le]?Xe(tt,x,cn,2):le--)}}},Xe=(m,g,x,_,C=null)=>{const{el:b,type:T,transition:P,children:E,shapeFlag:R}=m;if(R&6){Xe(m.component.subTree,g,x,_);return}if(R&128){m.suspense.move(g,x,_);return}if(R&64){T.move(m,g,x,F);return}if(T===J){r(b,g,x);for(let I=0;I<E.length;I++)Xe(E[I],g,x,_);r(m.anchor,g,x);return}if(T===Is){V(m,g,x);return}if(_!==2&&R&1&&P)if(_===0)P.beforeEnter(b),r(b,g,x),Fe(()=>P.enter(b),C);else{const{leave:I,delayLeave:H,afterLeave:W}=P,X=()=>{m.ctx.isUnmounted?n(b):r(b,g,x)},fe=()=>{b._isLeaving&&b[Po](!0),I(b,()=>{X(),W&&W()})};H?H(b,X,fe):fe()}else r(b,g,x)},Me=(m,g,x,_=!1,C=!1)=>{const{type:b,props:T,ref:P,children:E,dynamicChildren:R,shapeFlag:B,patchFlag:I,dirs:H,cacheIndex:W}=m;if(I===-2&&(C=!1),P!=null&&(mt(),fs(P,null,x,m,!0),gt()),W!=null&&(g.renderCache[W]=void 0),B&256){g.ctx.deactivate(m);return}const X=B&1&&H,fe=!Qt(m);let le;if(fe&&(le=T&&T.onVnodeBeforeUnmount)&&st(le,g,m),B&6)Pt(m.component,x,_);else{if(B&128){m.suspense.unmount(x,_);return}X&&Tt(m,null,g,"beforeUnmount"),B&64?m.type.remove(m,g,x,F,_):R&&!R.hasOnce&&(b!==J||I>0&&I&64)?He(R,g,x,!1,!0):(b===J&&I&384||!C&&B&16)&&He(E,g,x),_&&Ht(m)}(fe&&(le=T&&T.onVnodeUnmounted)||X)&&Fe(()=>{le&&st(le,g,m),X&&Tt(m,null,g,"unmounted")},x)},Ht=m=>{const{type:g,el:x,anchor:_,transition:C}=m;if(g===J){Bt(x,_);return}if(g===Is){L(m);return}const b=()=>{n(x),C&&!C.persisted&&C.afterLeave&&C.afterLeave()};if(m.shapeFlag&1&&C&&!C.persisted){const{leave:T,delayLeave:P}=C,E=()=>T(x,b);P?P(m.el,b,E):E()}else b()},Bt=(m,g)=>{let x;for(;m!==g;)x=p(m),n(m),m=x;n(g)},Pt=(m,g,x)=>{const{bum:_,scope:C,job:b,subTree:T,um:P,m:E,a:R}=m;Rn(E),Rn(R),_&&Os(_),C.stop(),b&&(b.flags|=8,Me(T,m,g,x)),P&&Fe(P,g),Fe(()=>{m.isUnmounted=!0},g)},He=(m,g,x,_=!1,C=!1,b=0)=>{for(let T=b;T<m.length;T++)Me(m[T],g,x,_,C)},k=m=>{if(m.shapeFlag&6)return k(m.component.subTree);if(m.shapeFlag&128)return m.suspense.next();const g=p(m.anchor||m.el),x=g&&g[Ao];return x?p(x):g};let D=!1;const O=(m,g,x)=>{m==null?g._vnode&&Me(g._vnode,null,null,!0):M(g._vnode||null,m,g,null,null,null,x),g._vnode=m,D||(D=!0,pn(),Mi(),D=!1)},F={p:M,um:Me,m:Xe,r:Ht,mt:ss,mc:Re,pc:re,pbc:Je,n:k,o:e};return{render:O,hydrate:void 0,createApp:Jo(O)}}function fr({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function $t({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function pl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ia(e,t,s=!1){const r=e.children,n=t.children;if(q(r)&&q(n))for(let i=0;i<r.length;i++){const a=r[i];let o=n[i];o.shapeFlag&1&&!o.dynamicChildren&&((o.patchFlag<=0||o.patchFlag===32)&&(o=n[i]=Ct(n[i]),o.el=a.el),!s&&o.patchFlag!==-2&&ia(a,o)),o.type===tr&&o.patchFlag!==-1&&(o.el=a.el),o.type===ht&&!o.el&&(o.el=a.el)}}function hl(e){const t=e.slice(),s=[0];let r,n,i,a,o;const l=e.length;for(r=0;r<l;r++){const c=e[r];if(c!==0){if(n=s[s.length-1],e[n]<c){t[r]=n,s.push(r);continue}for(i=0,a=s.length-1;i<a;)o=i+a>>1,e[s[o]]<c?i=o+1:a=o;c<e[s[i]]&&(i>0&&(t[r]=s[i-1]),s[i]=r)}}for(i=s.length,a=s[i-1];i-- >0;)s[i]=a,a=t[a];return s}function aa(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:aa(t)}function Rn(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}const oa=e=>e.__isSuspense;function xl(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):So(e)}const J=Symbol.for("v-fgt"),tr=Symbol.for("v-txt"),ht=Symbol.for("v-cmt"),Is=Symbol.for("v-stc"),ps=[];let Ve=null;function y(e=!1){ps.push(Ve=e?null:[])}function yl(){ps.pop(),Ve=ps[ps.length-1]||null}let bs=1;function Hs(e,t=!1){bs+=e,e<0&&Ve&&t&&(Ve.hasOnce=!0)}function la(e){return e.dynamicChildren=bs>0?Ve||Wt:null,yl(),bs>0&&Ve&&Ve.push(e),e}function w(e,t,s,r,n,i){return la(d(e,t,s,r,n,i,!0))}function oe(e,t,s,r,n){return la($(e,t,s,r,n,!0))}function _s(e){return e?e.__v_isVNode===!0:!1}function is(e,t){return e.type===t.type&&e.key===t.key}const ca=({key:e})=>e??null,Ms=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?he(e)||Ee(e)||z(e)?{i:Ce,r:e,k:t,f:!!s}:e:null);function d(e,t=null,s=null,r=0,n=null,i=e===J?0:1,a=!1,o=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ca(t),ref:t&&Ms(t),scopeId:Ni,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:Ce};return o?(Zr(l,s),i&128&&e.normalize(l)):s&&(l.shapeFlag|=he(s)?8:16),bs>0&&!a&&Ve&&(l.patchFlag>0||i&6)&&l.patchFlag!==32&&Ve.push(l),l}const $=vl;function vl(e,t=null,s=null,r=0,n=null,i=!1){if((!e||e===Bi)&&(e=ht),_s(e)){const o=Zt(e,t,!0);return s&&Zr(o,s),bs>0&&!i&&Ve&&(o.shapeFlag&6?Ve[Ve.indexOf(e)]=o:Ve.push(o)),o.patchFlag=-2,o}if($l(e)&&(e=e.__vccOpts),t){t=bl(t);let{class:o,style:l}=t;o&&!he(o)&&(t.class=Q(o)),ue(l)&&(Wr(l)&&!q(l)&&(l=Te({},l)),t.style=At(l))}const a=he(e)?1:oa(e)?128:Eo(e)?64:ue(e)?4:z(e)?2:0;return d(e,t,s,r,n,a,i,!0)}function bl(e){return e?Wr(e)||Zi(e)?Te({},e):e:null}function Zt(e,t,s=!1,r=!1){const{props:n,ref:i,patchFlag:a,children:o,transition:l}=e,c=t?_l(n||{},t):n,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&ca(c),ref:t&&t.ref?s&&i?q(i)?i.concat(Ms(t)):[i,Ms(t)]:Ms(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==J?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Zt(e.ssContent),ssFallback:e.ssFallback&&Zt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&Qr(u,l.clone(u)),u}function se(e=" ",t=0){return $(tr,null,e,t)}function as(e,t){const s=$(Is,null,e);return s.staticCount=t,s}function G(e="",t=!1){return t?(y(),oe(ht,null,e)):$(ht,null,e)}function nt(e){return e==null||typeof e=="boolean"?$(ht):q(e)?$(J,null,e.slice()):_s(e)?Ct(e):$(tr,null,String(e))}function Ct(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Zt(e)}function Zr(e,t){let s=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))s=16;else if(typeof t=="object")if(r&65){const n=t.default;n&&(n._c&&(n._d=!1),Zr(e,n()),n._c&&(n._d=!0));return}else{s=32;const n=t._;!n&&!Zi(t)?t._ctx=Ce:n===3&&Ce&&(Ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else z(t)?(t={default:t,_ctx:Ce},s=32):(t=String(t),r&64?(s=16,t=[se(t)]):s=8);e.children=t,e.shapeFlag|=s}function _l(...e){const t={};for(let s=0;s<e.length;s++){const r=e[s];for(const n in r)if(n==="class")t.class!==r.class&&(t.class=Q([t.class,r.class]));else if(n==="style")t.style=At([t.style,r.style]);else if(qs(n)){const i=t[n],a=r[n];a&&i!==a&&!(q(i)&&i.includes(a))&&(t[n]=i?[].concat(i,a):a)}else n!==""&&(t[n]=r[n])}return t}function st(e,t,s,r=null){at(e,t,7,[s,r])}const kl=Ki();let wl=0;function Cl(e,t,s){const r=e.type,n=(t?t.appContext:e.appContext)||kl,i={uid:wl++,vnode:e,type:r,parent:t,appContext:n,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Qa(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(n.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:ta(r,n),emitsOptions:Ji(r,n),emit:null,emitted:null,propsDefaults:de,inheritAttrs:r.inheritAttrs,ctx:de,data:de,props:de,attrs:de,slots:de,refs:de,setupState:de,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=tl.bind(null,i),e.ce&&e.ce(i),i}let Ae=null;const Rl=()=>Ae||Ce;let Bs,Pr;{const e=zs(),t=(s,r)=>{let n;return(n=e[s])||(n=e[s]=[]),n.push(r),i=>{n.length>1?n.forEach(a=>a(i)):n[0](i)}};Bs=t("__VUE_INSTANCE_SETTERS__",s=>Ae=s),Pr=t("__VUE_SSR_SETTERS__",s=>ks=s)}const As=e=>{const t=Ae;return Bs(e),e.scope.on(),()=>{e.scope.off(),Bs(t)}},Sn=()=>{Ae&&Ae.scope.off(),Bs(null)};function da(e){return e.vnode.shapeFlag&4}let ks=!1;function Sl(e,t=!1,s=!1){t&&Pr(t);const{props:r,children:n}=e.vnode,i=da(e);ol(e,r,i,t),ul(e,n,s||t);const a=i?Al(e,t):void 0;return t&&Pr(!1),a}function Al(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Go);const{setup:r}=s;if(r){mt();const n=e.setupContext=r.length>1?Pl(e):null,i=As(e),a=Ss(r,e,0,[e.props,n]),o=ai(a);if(gt(),i(),(o||e.sp)&&!Qt(e)&&ji(e),o){if(a.then(Sn,Sn),t)return a.then(l=>{An(e,l)}).catch(l=>{Xs(l,e,0)});e.asyncDep=a}else An(e,a)}else ua(e)}function An(e,t,s){z(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ue(t)&&(e.setupState=Ti(t)),ua(e)}function ua(e,t,s){const r=e.type;e.render||(e.render=r.render||it);{const n=As(e);mt();try{qo(e)}finally{gt(),n()}}}const El={get(e,t){return Se(e,"get",""),e[t]}};function Pl(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,El),slots:e.slots,emit:e.emit,expose:t}}function sr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ti(ho(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in ms)return ms[s](e)},has(t,s){return s in t||s in ms}})):e.proxy}function Tl(e,t=!0){return z(e)?e.displayName||e.name:e.name||t&&e.__name}function $l(e){return z(e)&&"__vccOpts"in e}const ee=(e,t)=>_o(e,t,ks);function fa(e,t,s){try{Hs(-1);const r=arguments.length;return r===2?ue(t)&&!q(t)?_s(t)?$(e,null,[t]):$(e,t):$(e,null,t):(r>3?s=Array.prototype.slice.call(arguments,2):r===3&&_s(s)&&(s=[s]),$(e,t,s))}finally{Hs(1)}}const Ol="3.5.25";let Tr;const En=typeof window<"u"&&window.trustedTypes;if(En)try{Tr=En.createPolicy("vue",{createHTML:e=>e})}catch{}const ma=Tr?e=>Tr.createHTML(e):e=>e,Il="http://www.w3.org/2000/svg",Ml="http://www.w3.org/1998/Math/MathML",dt=typeof document<"u"?document:null,Pn=dt&&dt.createElement("template"),Dl={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,r)=>{const n=t==="svg"?dt.createElementNS(Il,e):t==="mathml"?dt.createElementNS(Ml,e):s?dt.createElement(e,{is:s}):dt.createElement(e);return e==="select"&&r&&r.multiple!=null&&n.setAttribute("multiple",r.multiple),n},createText:e=>dt.createTextNode(e),createComment:e=>dt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>dt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,r,n,i){const a=s?s.previousSibling:t.lastChild;if(n&&(n===i||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),s),!(n===i||!(n=n.nextSibling)););else{Pn.innerHTML=ma(r==="svg"?`<svg>${e}</svg>`:r==="mathml"?`<math>${e}</math>`:e);const o=Pn.content;if(r==="svg"||r==="mathml"){const l=o.firstChild;for(;l.firstChild;)o.appendChild(l.firstChild);o.removeChild(l)}t.insertBefore(o,s)}return[a?a.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Nl=Symbol("_vtc");function Ll(e,t,s){const r=e[Nl];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Tn=Symbol("_vod"),jl=Symbol("_vsh"),Fl=Symbol(""),Vl=/(?:^|;)\s*display\s*:/;function Hl(e,t,s){const r=e.style,n=he(s);let i=!1;if(s&&!n){if(t)if(he(t))for(const a of t.split(";")){const o=a.slice(0,a.indexOf(":")).trim();s[o]==null&&Ds(r,o,"")}else for(const a in t)s[a]==null&&Ds(r,a,"");for(const a in s)a==="display"&&(i=!0),Ds(r,a,s[a])}else if(n){if(t!==s){const a=r[Fl];a&&(s+=";"+a),r.cssText=s,i=Vl.test(s)}}else t&&e.removeAttribute("style");Tn in e&&(e[Tn]=i?r.display:"",e[jl]&&(r.display="none"))}const $n=/\s*!important$/;function Ds(e,t,s){if(q(s))s.forEach(r=>Ds(e,t,r));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const r=Bl(e,t);$n.test(s)?e.setProperty(jt(r),s.replace($n,""),"important"):e[r]=s}}const On=["Webkit","Moz","ms"],mr={};function Bl(e,t){const s=mr[t];if(s)return s;let r=qe(t);if(r!=="filter"&&r in e)return mr[t]=r;r=Ks(r);for(let n=0;n<On.length;n++){const i=On[n]+r;if(i in e)return mr[t]=i}return t}const In="http://www.w3.org/1999/xlink";function Mn(e,t,s,r,n,i=Ka(t)){r&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(In,t.slice(6,t.length)):e.setAttributeNS(In,t,s):s==null||i&&!di(s)?e.removeAttribute(t):e.setAttribute(t,i?"":Ke(s)?String(s):s)}function Dn(e,t,s,r,n){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?ma(s):s);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const o=i==="OPTION"?e.getAttribute("value")||"":e.value,l=s==null?e.type==="checkbox"?"on":"":String(s);(o!==l||!("_value"in e))&&(e.value=l),s==null&&e.removeAttribute(t),e._value=s;return}let a=!1;if(s===""||s==null){const o=typeof e[t];o==="boolean"?s=di(s):s==null&&o==="string"?(s="",a=!0):o==="number"&&(s=0,a=!0)}try{e[t]=s}catch{}a&&e.removeAttribute(n||t)}function It(e,t,s,r){e.addEventListener(t,s,r)}function Gl(e,t,s,r){e.removeEventListener(t,s,r)}const Nn=Symbol("_vei");function ql(e,t,s,r,n=null){const i=e[Nn]||(e[Nn]={}),a=i[t];if(r&&a)a.value=r;else{const[o,l]=Ul(t);if(r){const c=i[t]=zl(r,n);It(e,o,c,l)}else a&&(Gl(e,o,a,l),i[t]=void 0)}}const Ln=/(?:Once|Passive|Capture)$/;function Ul(e){let t;if(Ln.test(e)){t={};let r;for(;r=e.match(Ln);)e=e.slice(0,e.length-r[0].length),t[r[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):jt(e.slice(2)),t]}let gr=0;const Wl=Promise.resolve(),Kl=()=>gr||(Wl.then(()=>gr=0),gr=Date.now());function zl(e,t){const s=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=s.attached)return;at(Ql(r,s.value),t,5,[r])};return s.value=e,s.attached=Kl(),s}function Ql(e,t){if(q(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(r=>n=>!n._stopped&&r&&r(n))}else return t}const jn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Jl=(e,t,s,r,n,i)=>{const a=n==="svg";t==="class"?Ll(e,r,a):t==="style"?Hl(e,s,r):qs(t)?Nr(t)||ql(e,t,s,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Yl(e,t,r,a))?(Dn(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Mn(e,t,r,a,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!he(r))?Dn(e,qe(t),r,i,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Mn(e,t,r,a))};function Yl(e,t,s,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&jn(t)&&z(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return jn(t)&&he(s)?!1:t in e}const Gs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?s=>Os(t,s):t};function Xl(e){e.target.composing=!0}function Fn(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Yt=Symbol("_assign");function Vn(e,t,s){return t&&(e=e.trim()),s&&(e=Fr(e)),e}const ga={created(e,{modifiers:{lazy:t,trim:s,number:r}},n){e[Yt]=Gs(n);const i=r||n.props&&n.props.type==="number";It(e,t?"change":"input",a=>{a.target.composing||e[Yt](Vn(e.value,s,i))}),(s||i)&&It(e,"change",()=>{e.value=Vn(e.value,s,i)}),t||(It(e,"compositionstart",Xl),It(e,"compositionend",Fn),It(e,"change",Fn))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:r,trim:n,number:i}},a){if(e[Yt]=Gs(a),e.composing)return;const o=(i||e.type==="number")&&!/^0\d/.test(e.value)?Fr(e.value):e.value,l=t??"";o!==l&&(document.activeElement===e&&e.type!=="range"&&(r&&t===s||n&&e.value.trim()===l)||(e.value=l))}},Zl={deep:!0,created(e,t,s){e[Yt]=Gs(s),It(e,"change",()=>{const r=e._modelValue,n=ec(e),i=e.checked,a=e[Yt];if(q(r)){const o=ui(r,n),l=o!==-1;if(i&&!l)a(r.concat(n));else if(!i&&l){const c=[...r];c.splice(o,1),a(c)}}else if(Us(r)){const o=new Set(r);i?o.add(n):o.delete(n),a(o)}else a(pa(e,i))})},mounted:Hn,beforeUpdate(e,t,s){e[Yt]=Gs(s),Hn(e,t,s)}};function Hn(e,{value:t,oldValue:s},r){e._modelValue=t;let n;if(q(t))n=ui(t,r.props.value)>-1;else if(Us(t))n=t.has(r.props.value);else{if(t===s)return;n=Qs(t,pa(e,!0))}e.checked!==n&&(e.checked=n)}function ec(e){return"_value"in e?e._value:e.value}function pa(e,t){const s=t?"_trueValue":"_falseValue";return s in e?e[s]:t}const tc=["ctrl","shift","alt","meta"],sc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>tc.some(s=>e[`${s}Key`]&&!t.includes(s))},en=(e,t)=>{const s=e._withMods||(e._withMods={}),r=t.join(".");return s[r]||(s[r]=((n,...i)=>{for(let a=0;a<t.length;a++){const o=sc[t[a]];if(o&&o(n,t))return}return e(n,...i)}))},rc=Te({patchProp:Jl},Dl);let Bn;function nc(){return Bn||(Bn=ml(rc))}const ic=((...e)=>{const t=nc().createApp(...e),{mount:s}=t;return t.mount=r=>{const n=oc(r);if(!n)return;const i=t._component;!z(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const a=s(n,!1,ac(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),a},t});function ac(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function oc(e){return he(e)?document.querySelector(e):e}const Ut=typeof document<"u";function ha(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function lc(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&ha(e.default)}const ne=Object.assign;function pr(e,t){const s={};for(const r in t){const n=t[r];s[r]=Qe(n)?n.map(e):e(n)}return s}const hs=()=>{},Qe=Array.isArray;function Gn(e,t){const s={};for(const r in e)s[r]=r in t?t[r]:e[r];return s}const xa=/#/g,cc=/&/g,dc=/\//g,uc=/=/g,fc=/\?/g,ya=/\+/g,mc=/%5B/g,gc=/%5D/g,va=/%5E/g,pc=/%60/g,ba=/%7B/g,hc=/%7C/g,_a=/%7D/g,xc=/%20/g;function tn(e){return e==null?"":encodeURI(""+e).replace(hc,"|").replace(mc,"[").replace(gc,"]")}function yc(e){return tn(e).replace(ba,"{").replace(_a,"}").replace(va,"^")}function $r(e){return tn(e).replace(ya,"%2B").replace(xc,"+").replace(xa,"%23").replace(cc,"%26").replace(pc,"`").replace(ba,"{").replace(_a,"}").replace(va,"^")}function vc(e){return $r(e).replace(uc,"%3D")}function bc(e){return tn(e).replace(xa,"%23").replace(fc,"%3F")}function _c(e){return bc(e).replace(dc,"%2F")}function ws(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const kc=/\/$/,wc=e=>e.replace(kc,"");function hr(e,t,s="/"){let r,n={},i="",a="";const o=t.indexOf("#");let l=t.indexOf("?");return l=o>=0&&l>o?-1:l,l>=0&&(r=t.slice(0,l),i=t.slice(l,o>0?o:t.length),n=e(i.slice(1))),o>=0&&(r=r||t.slice(0,o),a=t.slice(o,t.length)),r=Ac(r??t,s),{fullPath:r+i+a,path:r,query:n,hash:ws(a)}}function Cc(e,t){const s=t.query?e(t.query):"";return t.path+(s&&"?")+s+(t.hash||"")}function qn(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Rc(e,t,s){const r=t.matched.length-1,n=s.matched.length-1;return r>-1&&r===n&&es(t.matched[r],s.matched[n])&&ka(t.params,s.params)&&e(t.query)===e(s.query)&&t.hash===s.hash}function es(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ka(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const s in e)if(!Sc(e[s],t[s]))return!1;return!0}function Sc(e,t){return Qe(e)?Un(e,t):Qe(t)?Un(t,e):e===t}function Un(e,t){return Qe(t)?e.length===t.length&&e.every((s,r)=>s===t[r]):e.length===1&&e[0]===t}function Ac(e,t){if(e.startsWith("/"))return e;if(!e)return t;const s=t.split("/"),r=e.split("/"),n=r[r.length-1];(n===".."||n===".")&&r.push("");let i=s.length-1,a,o;for(a=0;a<r.length;a++)if(o=r[a],o!==".")if(o==="..")i>1&&i--;else break;return s.slice(0,i).join("/")+"/"+r.slice(a).join("/")}const _t={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Or=(function(e){return e.pop="pop",e.push="push",e})({}),xr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Ec(e){if(!e)if(Ut){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),wc(e)}const Pc=/^[^#]+#/;function Tc(e,t){return e.replace(Pc,"#")+t}function $c(e,t){const s=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-s.left-(t.left||0),top:r.top-s.top-(t.top||0)}}const rr=()=>({left:window.scrollX,top:window.scrollY});function Oc(e){let t;if("el"in e){const s=e.el,r=typeof s=="string"&&s.startsWith("#"),n=typeof s=="string"?r?document.getElementById(s.slice(1)):document.querySelector(s):s;if(!n)return;t=$c(n,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Wn(e,t){return(history.state?history.state.position-t:-1)+e}const Ir=new Map;function Ic(e,t){Ir.set(e,t)}function Mc(e){const t=Ir.get(e);return Ir.delete(e),t}function Dc(e){return typeof e=="string"||e&&typeof e=="object"}function wa(e){return typeof e=="string"||typeof e=="symbol"}let pe=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const Ca=Symbol("");pe.MATCHER_NOT_FOUND+"",pe.NAVIGATION_GUARD_REDIRECT+"",pe.NAVIGATION_ABORTED+"",pe.NAVIGATION_CANCELLED+"",pe.NAVIGATION_DUPLICATED+"";function ts(e,t){return ne(new Error,{type:e,[Ca]:!0},t)}function ct(e,t){return e instanceof Error&&Ca in e&&(t==null||!!(e.type&t))}const Nc=["params","query","hash"];function Lc(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const s of Nc)s in e&&(t[s]=e[s]);return JSON.stringify(t,null,2)}function jc(e){const t={};if(e===""||e==="?")return t;const s=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;r<s.length;++r){const n=s[r].replace(ya," "),i=n.indexOf("="),a=ws(i<0?n:n.slice(0,i)),o=i<0?null:ws(n.slice(i+1));if(a in t){let l=t[a];Qe(l)||(l=t[a]=[l]),l.push(o)}else t[a]=o}return t}function Kn(e){let t="";for(let s in e){const r=e[s];if(s=vc(s),r==null){r!==void 0&&(t+=(t.length?"&":"")+s);continue}(Qe(r)?r.map(n=>n&&$r(n)):[r&&$r(r)]).forEach(n=>{n!==void 0&&(t+=(t.length?"&":"")+s,n!=null&&(t+="="+n))})}return t}function Fc(e){const t={};for(const s in e){const r=e[s];r!==void 0&&(t[s]=Qe(r)?r.map(n=>n==null?null:""+n):r==null?r:""+r)}return t}const Vc=Symbol(""),zn=Symbol(""),sn=Symbol(""),rn=Symbol(""),Mr=Symbol("");function os(){let e=[];function t(r){return e.push(r),()=>{const n=e.indexOf(r);n>-1&&e.splice(n,1)}}function s(){e=[]}return{add:t,list:()=>e.slice(),reset:s}}function Rt(e,t,s,r,n,i=a=>a()){const a=r&&(r.enterCallbacks[n]=r.enterCallbacks[n]||[]);return()=>new Promise((o,l)=>{const c=p=>{p===!1?l(ts(pe.NAVIGATION_ABORTED,{from:s,to:t})):p instanceof Error?l(p):Dc(p)?l(ts(pe.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(a&&r.enterCallbacks[n]===a&&typeof p=="function"&&a.push(p),o())},u=i(()=>e.call(r&&r.instances[n],t,s,c));let f=Promise.resolve(u);e.length<3&&(f=f.then(c)),f.catch(p=>l(p))})}function yr(e,t,s,r,n=i=>i()){const i=[];for(const a of e)for(const o in a.components){let l=a.components[o];if(!(t!=="beforeRouteEnter"&&!a.instances[o]))if(ha(l)){const c=(l.__vccOpts||l)[t];c&&i.push(Rt(c,s,r,a,o,n))}else{let c=l();i.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${o}" at "${a.path}"`);const f=lc(u)?u.default:u;a.mods[o]=u,a.components[o]=f;const p=(f.__vccOpts||f)[t];return p&&Rt(p,s,r,a,o,n)()}))}}return i}function Hc(e,t){const s=[],r=[],n=[],i=Math.max(t.matched.length,e.matched.length);for(let a=0;a<i;a++){const o=t.matched[a];o&&(e.matched.find(c=>es(c,o))?r.push(o):s.push(o));const l=e.matched[a];l&&(t.matched.find(c=>es(c,l))||n.push(l))}return[s,r,n]}let Bc=()=>location.protocol+"//"+location.host;function Ra(e,t){const{pathname:s,search:r,hash:n}=t,i=e.indexOf("#");if(i>-1){let a=n.includes(e.slice(i))?e.slice(i).length:1,o=n.slice(a);return o[0]!=="/"&&(o="/"+o),qn(o,"")}return qn(s,e)+r+n}function Gc(e,t,s,r){let n=[],i=[],a=null;const o=({state:p})=>{const h=Ra(e,location),S=s.value,M=t.value;let K=0;if(p){if(s.value=h,t.value=p,a&&a===S){a=null;return}K=M?p.position-M.position:0}else r(h);n.forEach(j=>{j(s.value,S,{delta:K,type:Or.pop,direction:K?K>0?xr.forward:xr.back:xr.unknown})})};function l(){a=s.value}function c(p){n.push(p);const h=()=>{const S=n.indexOf(p);S>-1&&n.splice(S,1)};return i.push(h),h}function u(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(ne({},p.state,{scroll:rr()}),"")}}function f(){for(const p of i)p();i=[],window.removeEventListener("popstate",o),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",o),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:l,listen:c,destroy:f}}function Qn(e,t,s,r=!1,n=!1){return{back:e,current:t,forward:s,replaced:r,position:window.history.length,scroll:n?rr():null}}function qc(e){const{history:t,location:s}=window,r={value:Ra(e,s)},n={value:t.state};n.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(l,c,u){const f=e.indexOf("#"),p=f>-1?(s.host&&document.querySelector("base")?e:e.slice(f))+l:Bc()+e+l;try{t[u?"replaceState":"pushState"](c,"",p),n.value=c}catch(h){console.error(h),s[u?"replace":"assign"](p)}}function a(l,c){i(l,ne({},t.state,Qn(n.value.back,l,n.value.forward,!0),c,{position:n.value.position}),!0),r.value=l}function o(l,c){const u=ne({},n.value,t.state,{forward:l,scroll:rr()});i(u.current,u,!0),i(l,ne({},Qn(r.value,l,null),{position:u.position+1},c),!1),r.value=l}return{location:r,state:n,push:o,replace:a}}function Uc(e){e=Ec(e);const t=qc(e),s=Gc(e,t.state,t.location,t.replace);function r(i,a=!0){a||s.pauseListeners(),history.go(i)}const n=ne({location:"",base:e,go:r,createHref:Tc.bind(null,e)},t,s);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>t.state.value}),n}function Wc(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Uc(e)}let Mt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ve=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(ve||{});const Kc={type:Mt.Static,value:""},zc=/[a-zA-Z0-9_]/;function Qc(e){if(!e)return[[]];if(e==="/")return[[Kc]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${s})/"${c}": ${h}`)}let s=ve.Static,r=s;const n=[];let i;function a(){i&&n.push(i),i=[]}let o=0,l,c="",u="";function f(){c&&(s===ve.Static?i.push({type:Mt.Static,value:c}):s===ve.Param||s===ve.ParamRegExp||s===ve.ParamRegExpEnd?(i.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),i.push({type:Mt.Param,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=l}for(;o<e.length;){if(l=e[o++],l==="\\"&&s!==ve.ParamRegExp){r=s,s=ve.EscapeNext;continue}switch(s){case ve.Static:l==="/"?(c&&f(),a()):l===":"?(f(),s=ve.Param):p();break;case ve.EscapeNext:p(),s=r;break;case ve.Param:l==="("?s=ve.ParamRegExp:zc.test(l)?p():(f(),s=ve.Static,l!=="*"&&l!=="?"&&l!=="+"&&o--);break;case ve.ParamRegExp:l===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+l:s=ve.ParamRegExpEnd:u+=l;break;case ve.ParamRegExpEnd:f(),s=ve.Static,l!=="*"&&l!=="?"&&l!=="+"&&o--,u="";break;default:t("Unknown state");break}}return s===ve.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),f(),a(),n}const Jn="[^/]+?",Jc={sensitive:!1,strict:!1,start:!0,end:!0};var Oe=(function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e})(Oe||{});const Yc=/[.+*?^${}()[\]/\\]/g;function Xc(e,t){const s=ne({},Jc,t),r=[];let n=s.start?"^":"";const i=[];for(const c of e){const u=c.length?[]:[Oe.Root];s.strict&&!c.length&&(n+="/");for(let f=0;f<c.length;f++){const p=c[f];let h=Oe.Segment+(s.sensitive?Oe.BonusCaseSensitive:0);if(p.type===Mt.Static)f||(n+="/"),n+=p.value.replace(Yc,"\\$&"),h+=Oe.Static;else if(p.type===Mt.Param){const{value:S,repeatable:M,optional:K,regexp:j}=p;i.push({name:S,repeatable:M,optional:K});const N=j||Jn;if(N!==Jn){h+=Oe.BonusCustomRegExp;try{`${N}`}catch(L){throw new Error(`Invalid custom RegExp for param "${S}" (${N}): `+L.message)}}let V=M?`((?:${N})(?:/(?:${N}))*)`:`(${N})`;f||(V=K&&c.length<2?`(?:/${V})`:"/"+V),K&&(V+="?"),n+=V,h+=Oe.Dynamic,K&&(h+=Oe.BonusOptional),M&&(h+=Oe.BonusRepeatable),N===".*"&&(h+=Oe.BonusWildcard)}u.push(h)}r.push(u)}if(s.strict&&s.end){const c=r.length-1;r[c][r[c].length-1]+=Oe.BonusStrict}s.strict||(n+="/?"),s.end?n+="$":s.strict&&!n.endsWith("/")&&(n+="(?:/|$)");const a=new RegExp(n,s.sensitive?"":"i");function o(c){const u=c.match(a),f={};if(!u)return null;for(let p=1;p<u.length;p++){const h=u[p]||"",S=i[p-1];f[S.name]=h&&S.repeatable?h.split("/"):h}return f}function l(c){let u="",f=!1;for(const p of e){(!f||!u.endsWith("/"))&&(u+="/"),f=!1;for(const h of p)if(h.type===Mt.Static)u+=h.value;else if(h.type===Mt.Param){const{value:S,repeatable:M,optional:K}=h,j=S in c?c[S]:"";if(Qe(j)&&!M)throw new Error(`Provided param "${S}" is an array but it is not repeatable (* or + modifiers)`);const N=Qe(j)?j.join("/"):j;if(!N)if(K)p.length<2&&(u.endsWith("/")?u=u.slice(0,-1):f=!0);else throw new Error(`Missing required param "${S}"`);u+=N}}return u||"/"}return{re:a,score:r,keys:i,parse:o,stringify:l}}function Zc(e,t){let s=0;for(;s<e.length&&s<t.length;){const r=t[s]-e[s];if(r)return r;s++}return e.length<t.length?e.length===1&&e[0]===Oe.Static+Oe.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Oe.Static+Oe.Segment?1:-1:0}function Sa(e,t){let s=0;const r=e.score,n=t.score;for(;s<r.length&&s<n.length;){const i=Zc(r[s],n[s]);if(i)return i;s++}if(Math.abs(n.length-r.length)===1){if(Yn(r))return 1;if(Yn(n))return-1}return n.length-r.length}function Yn(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const ed={strict:!1,end:!0,sensitive:!1};function td(e,t,s){const r=Xc(Qc(e.path),s),n=ne(r,{record:e,parent:t,children:[],alias:[]});return t&&!n.record.aliasOf==!t.record.aliasOf&&t.children.push(n),n}function sd(e,t){const s=[],r=new Map;t=Gn(ed,t);function n(f){return r.get(f)}function i(f,p,h){const S=!h,M=Zn(f);M.aliasOf=h&&h.record;const K=Gn(t,f),j=[M];if("alias"in f){const L=typeof f.alias=="string"?[f.alias]:f.alias;for(const te of L)j.push(Zn(ne({},M,{components:h?h.record.components:M.components,path:te,aliasOf:h?h.record:M})))}let N,V;for(const L of j){const{path:te}=L;if(p&&te[0]!=="/"){const ye=p.record.path,ge=ye[ye.length-1]==="/"?"":"/";L.path=p.record.path+(te&&ge+te)}if(N=td(L,p,K),h?h.alias.push(N):(V=V||N,V!==N&&V.alias.push(N),S&&f.name&&!ei(N)&&a(f.name)),Aa(N)&&l(N),M.children){const ye=M.children;for(let ge=0;ge<ye.length;ge++)i(ye[ge],N,h&&h.children[ge])}h=h||N}return V?()=>{a(V)}:hs}function a(f){if(wa(f)){const p=r.get(f);p&&(r.delete(f),s.splice(s.indexOf(p),1),p.children.forEach(a),p.alias.forEach(a))}else{const p=s.indexOf(f);p>-1&&(s.splice(p,1),f.record.name&&r.delete(f.record.name),f.children.forEach(a),f.alias.forEach(a))}}function o(){return s}function l(f){const p=id(f,s);s.splice(p,0,f),f.record.name&&!ei(f)&&r.set(f.record.name,f)}function c(f,p){let h,S={},M,K;if("name"in f&&f.name){if(h=r.get(f.name),!h)throw ts(pe.MATCHER_NOT_FOUND,{location:f});K=h.record.name,S=ne(Xn(p.params,h.keys.filter(V=>!V.optional).concat(h.parent?h.parent.keys.filter(V=>V.optional):[]).map(V=>V.name)),f.params&&Xn(f.params,h.keys.map(V=>V.name))),M=h.stringify(S)}else if(f.path!=null)M=f.path,h=s.find(V=>V.re.test(M)),h&&(S=h.parse(M),K=h.record.name);else{if(h=p.name?r.get(p.name):s.find(V=>V.re.test(p.path)),!h)throw ts(pe.MATCHER_NOT_FOUND,{location:f,currentLocation:p});K=h.record.name,S=ne({},p.params,f.params),M=h.stringify(S)}const j=[];let N=h;for(;N;)j.unshift(N.record),N=N.parent;return{name:K,path:M,params:S,matched:j,meta:nd(j)}}e.forEach(f=>i(f));function u(){s.length=0,r.clear()}return{addRoute:i,resolve:c,removeRoute:a,clearRoutes:u,getRoutes:o,getRecordMatcher:n}}function Xn(e,t){const s={};for(const r of t)r in e&&(s[r]=e[r]);return s}function Zn(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:rd(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function rd(e){const t={},s=e.props||!1;if("component"in e)t.default=s;else for(const r in e.components)t[r]=typeof s=="object"?s[r]:s;return t}function ei(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function nd(e){return e.reduce((t,s)=>ne(t,s.meta),{})}function id(e,t){let s=0,r=t.length;for(;s!==r;){const i=s+r>>1;Sa(e,t[i])<0?r=i:s=i+1}const n=ad(e);return n&&(r=t.lastIndexOf(n,r-1)),r}function ad(e){let t=e;for(;t=t.parent;)if(Aa(t)&&Sa(e,t)===0)return t}function Aa({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ti(e){const t=Pe(sn),s=Pe(rn),r=ee(()=>{const l=A(e.to);return t.resolve(l)}),n=ee(()=>{const{matched:l}=r.value,{length:c}=l,u=l[c-1],f=s.matched;if(!u||!f.length)return-1;const p=f.findIndex(es.bind(null,u));if(p>-1)return p;const h=si(l[c-2]);return c>1&&si(u)===h&&f[f.length-1].path!==h?f.findIndex(es.bind(null,l[c-2])):p}),i=ee(()=>n.value>-1&&dd(s.params,r.value.params)),a=ee(()=>n.value>-1&&n.value===s.matched.length-1&&ka(s.params,r.value.params));function o(l={}){if(cd(l)){const c=t[A(e.replace)?"replace":"push"](A(e.to)).catch(hs);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:r,href:ee(()=>r.value.href),isActive:i,isExactActive:a,navigate:o}}function od(e){return e.length===1?e[0]:e}const ld=Li({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:ti,setup(e,{slots:t}){const s=Ys(ti(e)),{options:r}=Pe(sn),n=ee(()=>({[ri(e.activeClass,r.linkActiveClass,"router-link-active")]:s.isActive,[ri(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:s.isExactActive}));return()=>{const i=t.default&&od(t.default(s));return e.custom?i:fa("a",{"aria-current":s.isExactActive?e.ariaCurrentValue:null,href:s.href,onClick:s.navigate,class:n.value},i)}}}),ke=ld;function cd(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function dd(e,t){for(const s in t){const r=t[s],n=e[s];if(typeof r=="string"){if(r!==n)return!1}else if(!Qe(n)||n.length!==r.length||r.some((i,a)=>i!==n[a]))return!1}return!0}function si(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ri=(e,t,s)=>e??t??s,ud=Li({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:s}){const r=Pe(Mr),n=ee(()=>e.route||r.value),i=Pe(zn,0),a=ee(()=>{let c=A(i);const{matched:u}=n.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),o=ee(()=>n.value.matched[a.value]);gs(zn,ee(()=>a.value+1)),gs(Vc,o),gs(Mr,n);const l=xe();return Ge(()=>[l.value,o.value,e.name],([c,u,f],[p,h,S])=>{u&&(u.instances[f]=c,h&&h!==u&&c&&c===p&&(u.leaveGuards.size||(u.leaveGuards=h.leaveGuards),u.updateGuards.size||(u.updateGuards=h.updateGuards))),c&&u&&(!h||!es(u,h)||!p)&&(u.enterCallbacks[f]||[]).forEach(M=>M(c))},{flush:"post"}),()=>{const c=n.value,u=e.name,f=o.value,p=f&&f.components[u];if(!p)return ni(s.default,{Component:p,route:c});const h=f.props[u],S=h?h===!0?c.params:typeof h=="function"?h(c):h:null,K=fa(p,ne({},S,t,{onVnodeUnmounted:j=>{j.component.isUnmounted&&(f.instances[u]=null)},ref:l}));return ni(s.default,{Component:K,route:c})||K}}});function ni(e,t){if(!e)return null;const s=e(t);return s.length===1?s[0]:s}const fd=ud;function md(e){const t=sd(e.routes,e),s=e.parseQuery||jc,r=e.stringifyQuery||Kn,n=e.history,i=os(),a=os(),o=os(),l=xo(_t);let c=_t;Ut&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=pr.bind(null,k=>""+k),f=pr.bind(null,_c),p=pr.bind(null,ws);function h(k,D){let O,F;return wa(k)?(O=t.getRecordMatcher(k),F=D):F=k,t.addRoute(F,O)}function S(k){const D=t.getRecordMatcher(k);D&&t.removeRoute(D)}function M(){return t.getRoutes().map(k=>k.record)}function K(k){return!!t.getRecordMatcher(k)}function j(k,D){if(D=ne({},D||l.value),typeof k=="string"){const x=hr(s,k,D.path),_=t.resolve({path:x.path},D),C=n.createHref(x.fullPath);return ne(x,_,{params:p(_.params),hash:ws(x.hash),redirectedFrom:void 0,href:C})}let O;if(k.path!=null)O=ne({},k,{path:hr(s,k.path,D.path).path});else{const x=ne({},k.params);for(const _ in x)x[_]==null&&delete x[_];O=ne({},k,{params:f(x)}),D.params=f(D.params)}const F=t.resolve(O,D),Y=k.hash||"";F.params=u(p(F.params));const m=Cc(r,ne({},k,{hash:yc(Y),path:F.path})),g=n.createHref(m);return ne({fullPath:m,hash:Y,query:r===Kn?Fc(k.query):k.query||{}},F,{redirectedFrom:void 0,href:g})}function N(k){return typeof k=="string"?hr(s,k,l.value.path):ne({},k)}function V(k,D){if(c!==k)return ts(pe.NAVIGATION_CANCELLED,{from:D,to:k})}function L(k){return ge(k)}function te(k){return L(ne(N(k),{replace:!0}))}function ye(k,D){const O=k.matched[k.matched.length-1];if(O&&O.redirect){const{redirect:F}=O;let Y=typeof F=="function"?F(k,D):F;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=N(Y):{path:Y},Y.params={}),ne({query:k.query,hash:k.hash,params:Y.path!=null?{}:k.params},Y)}}function ge(k,D){const O=c=j(k),F=l.value,Y=k.state,m=k.force,g=k.replace===!0,x=ye(O,F);if(x)return ge(ne(N(x),{state:typeof x=="object"?ne({},Y,x.state):Y,force:m,replace:g}),D||O);const _=O;_.redirectedFrom=D;let C;return!m&&Rc(r,F,O)&&(C=ts(pe.NAVIGATION_DUPLICATED,{to:_,from:F}),Xe(F,F,!0,!1)),(C?Promise.resolve(C):Je(_,F)).catch(b=>ct(b)?ct(b,pe.NAVIGATION_GUARD_REDIRECT)?b:bt(b):re(b,_,F)).then(b=>{if(b){if(ct(b,pe.NAVIGATION_GUARD_REDIRECT))return ge(ne({replace:g},N(b.to),{state:typeof b.to=="object"?ne({},Y,b.to.state):Y,force:m}),D||_)}else b=Et(_,F,!0,g,Y);return vt(_,F,b),b})}function Re(k,D){const O=V(k,D);return O?Promise.reject(O):Promise.resolve()}function yt(k){const D=Bt.values().next().value;return D&&typeof D.runWithContext=="function"?D.runWithContext(k):k()}function Je(k,D){let O;const[F,Y,m]=Hc(k,D);O=yr(F.reverse(),"beforeRouteLeave",k,D);for(const x of F)x.leaveGuards.forEach(_=>{O.push(Rt(_,k,D))});const g=Re.bind(null,k,D);return O.push(g),He(O).then(()=>{O=[];for(const x of i.list())O.push(Rt(x,k,D));return O.push(g),He(O)}).then(()=>{O=yr(Y,"beforeRouteUpdate",k,D);for(const x of Y)x.updateGuards.forEach(_=>{O.push(Rt(_,k,D))});return O.push(g),He(O)}).then(()=>{O=[];for(const x of m)if(x.beforeEnter)if(Qe(x.beforeEnter))for(const _ of x.beforeEnter)O.push(Rt(_,k,D));else O.push(Rt(x.beforeEnter,k,D));return O.push(g),He(O)}).then(()=>(k.matched.forEach(x=>x.enterCallbacks={}),O=yr(m,"beforeRouteEnter",k,D,yt),O.push(g),He(O))).then(()=>{O=[];for(const x of a.list())O.push(Rt(x,k,D));return O.push(g),He(O)}).catch(x=>ct(x,pe.NAVIGATION_CANCELLED)?x:Promise.reject(x))}function vt(k,D,O){o.list().forEach(F=>yt(()=>F(k,D,O)))}function Et(k,D,O,F,Y){const m=V(k,D);if(m)return m;const g=D===_t,x=Ut?history.state:{};O&&(F||g?n.replace(k.fullPath,ne({scroll:g&&x&&x.scroll},Y)):n.push(k.fullPath,Y)),l.value=k,Xe(k,D,O,g),bt()}let Ye;function ss(){Ye||(Ye=n.listen((k,D,O)=>{if(!Pt.listening)return;const F=j(k),Y=ye(F,Pt.currentRoute.value);if(Y){ge(ne(Y,{replace:!0,force:!0}),F).catch(hs);return}c=F;const m=l.value;Ut&&Ic(Wn(m.fullPath,O.delta),rr()),Je(F,m).catch(g=>ct(g,pe.NAVIGATION_ABORTED|pe.NAVIGATION_CANCELLED)?g:ct(g,pe.NAVIGATION_GUARD_REDIRECT)?(ge(ne(N(g.to),{force:!0}),F).then(x=>{ct(x,pe.NAVIGATION_ABORTED|pe.NAVIGATION_DUPLICATED)&&!O.delta&&O.type===Or.pop&&n.go(-1,!1)}).catch(hs),Promise.reject()):(O.delta&&n.go(-O.delta,!1),re(g,F,m))).then(g=>{g=g||Et(F,m,!1),g&&(O.delta&&!ct(g,pe.NAVIGATION_CANCELLED)?n.go(-O.delta,!1):O.type===Or.pop&&ct(g,pe.NAVIGATION_ABORTED|pe.NAVIGATION_DUPLICATED)&&n.go(-1,!1)),vt(F,m,g)}).catch(hs)}))}let Vt=os(),_e=os(),ce;function re(k,D,O){bt(k);const F=_e.list();return F.length?F.forEach(Y=>Y(k,D,O)):console.error(k),Promise.reject(k)}function ot(){return ce&&l.value!==_t?Promise.resolve():new Promise((k,D)=>{Vt.add([k,D])})}function bt(k){return ce||(ce=!k,ss(),Vt.list().forEach(([D,O])=>k?O(k):D()),Vt.reset()),k}function Xe(k,D,O,F){const{scrollBehavior:Y}=e;if(!Ut||!Y)return Promise.resolve();const m=!O&&Mc(Wn(k.fullPath,0))||(F||!O)&&history.state&&history.state.scroll||null;return Oi().then(()=>Y(k,D,m)).then(g=>g&&Oc(g)).catch(g=>re(g,k,D))}const Me=k=>n.go(k);let Ht;const Bt=new Set,Pt={currentRoute:l,listening:!0,addRoute:h,removeRoute:S,clearRoutes:t.clearRoutes,hasRoute:K,getRoutes:M,resolve:j,options:e,push:L,replace:te,go:Me,back:()=>Me(-1),forward:()=>Me(1),beforeEach:i.add,beforeResolve:a.add,afterEach:o.add,onError:_e.add,isReady:ot,install(k){k.component("RouterLink",ke),k.component("RouterView",fd),k.config.globalProperties.$router=Pt,Object.defineProperty(k.config.globalProperties,"$route",{enumerable:!0,get:()=>A(l)}),Ut&&!Ht&&l.value===_t&&(Ht=!0,L(n.location).catch(F=>{}));const D={};for(const F in _t)Object.defineProperty(D,F,{get:()=>l.value[F],enumerable:!0});k.provide(sn,Pt),k.provide(rn,Ei(D)),k.provide(Mr,l);const O=k.unmount;Bt.add(k),k.unmount=function(){Bt.delete(k),Bt.size<1&&(c=_t,Ye&&Ye(),Ye=null,l.value=_t,Ht=!1,ce=!1),O()}}};function He(k){return k.reduce((D,O)=>D.then(()=>yt(O)),Promise.resolve())}return Pt}function nr(e){return Pe(rn)}const gd=["aria-label"],pd={key:0,class:"fas fa-moon text-purple-400"},hd={key:1,class:"fas fa-sun text-yellow-500"},xd={__name:"ThemeToggle",setup(e){const t=xe(!1);Ft(()=>{const n=localStorage.getItem("theme"),i=window.matchMedia("(prefers-color-scheme: dark)").matches;t.value=n==="dark"||!n&&i,s(),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",a=>{localStorage.getItem("theme")||(t.value=a.matches,s())})}),Ge(t,()=>{s(),localStorage.setItem("theme",t.value?"dark":"light")});function s(){t.value?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}function r(){t.value=!t.value}return(n,i)=>(y(),w("button",{onClick:r,class:"p-2 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-700 transition","aria-label":t.value?"Switch to light mode":"Switch to dark mode"},[t.value?(y(),w("i",pd)):(y(),w("i",hd))],8,gd))}},yd={class:"sticky top-0 z-50 glass shadow-modern"},vd={class:"container mx-auto px-4"},bd={class:"flex items-center justify-between h-16"},_d={class:"hidden md:flex items-center space-x-6"},kd={class:"flex items-center space-x-4"},wd={key:0,class:"md:hidden py-2 border-t border-gray-200 dark:border-gray-700"},Cd={class:"flex flex-col space-y-1"},Rd={__name:"Navbar",setup(e){const t=nr(),s=Pe("globalData"),r=xe(!1),n=ee(()=>s.value?.Repositories||[]);return(i,a)=>(y(),w("nav",yd,[d("div",vd,[d("div",bd,[$(A(ke),{to:"/",class:"flex items-center space-x-2"},{default:Z(()=>[...a[5]||(a[5]=[d("i",{class:"fas fa-rocket text-2xl gradient-text"},null,-1),d("span",{class:"text-xl font-bold gradient-text"},"Git Velocity",-1)])]),_:1}),d("div",_d,[$(A(ke),{to:"/",class:Q(A(t).path==="/"?"nav-link-active":"nav-link")},{default:Z(()=>[...a[6]||(a[6]=[se(" Dashboard ",-1)])]),_:1},8,["class"]),$(A(ke),{to:"/leaderboard",class:Q(A(t).path==="/leaderboard"?"nav-link-active":"nav-link")},{default:Z(()=>[...a[7]||(a[7]=[se(" Leaderboard ",-1)])]),_:1},8,["class"]),$(A(ke),{to:"/how-scoring-works",class:Q(A(t).path==="/how-scoring-works"?"nav-link-active":"nav-link")},{default:Z(()=>[...a[8]||(a[8]=[se(" How Scoring Works ",-1)])]),_:1},8,["class"]),(y(!0),w(J,null,be(n.value,o=>(y(),oe(A(ke),{key:`${o.Owner}/${o.Name}`,to:`/repos/${o.Owner}/${o.Name}`,class:Q(A(t).path.includes(`/repos/${o.Owner}/${o.Name}`)?"nav-link-active":"nav-link")},{default:Z(()=>[se(v(o.Name),1)]),_:2},1032,["to","class"]))),128))]),d("div",kd,[$(xd),d("button",{onClick:a[0]||(a[0]=o=>r.value=!r.value),class:"md:hidden p-2 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-700 transition"},[...a[9]||(a[9]=[d("i",{class:"fas fa-bars text-gray-700 dark:text-gray-200"},null,-1)])])])]),r.value?(y(),w("div",wd,[d("div",Cd,[$(A(ke),{to:"/",onClick:a[1]||(a[1]=o=>r.value=!1),class:Q(["block px-4 py-3 rounded-lg text-base font-medium transition-colors",A(t).path==="/"?"bg-primary-50 dark:bg-primary-900/20 text-primary-600 dark:text-primary-400":"text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-800"])},{default:Z(()=>[...a[10]||(a[10]=[d("i",{class:"fas fa-home mr-3 w-5 text-center"},null,-1),se("Dashboard ",-1)])]),_:1},8,["class"]),$(A(ke),{to:"/leaderboard",onClick:a[2]||(a[2]=o=>r.value=!1),class:Q(["block px-4 py-3 rounded-lg text-base font-medium transition-colors",A(t).path==="/leaderboard"?"bg-primary-50 dark:bg-primary-900/20 text-primary-600 dark:text-primary-400":"text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-800"])},{default:Z(()=>[...a[11]||(a[11]=[d("i",{class:"fas fa-trophy mr-3 w-5 text-center"},null,-1),se("Leaderboard ",-1)])]),_:1},8,["class"]),$(A(ke),{to:"/how-scoring-works",onClick:a[3]||(a[3]=o=>r.value=!1),class:Q(["block px-4 py-3 rounded-lg text-base font-medium transition-colors",A(t).path==="/how-scoring-works"?"bg-primary-50 dark:bg-primary-900/20 text-primary-600 dark:text-primary-400":"text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-800"])},{default:Z(()=>[...a[12]||(a[12]=[d("i",{class:"fas fa-calculator mr-3 w-5 text-center"},null,-1),se("How Scoring Works ",-1)])]),_:1},8,["class"]),(y(!0),w(J,null,be(n.value,o=>(y(),oe(A(ke),{key:`${o.Owner}/${o.Name}`,to:`/repos/${o.Owner}/${o.Name}`,onClick:a[4]||(a[4]=l=>r.value=!1),class:Q(["block px-4 py-3 rounded-lg text-base font-medium transition-colors",A(t).path.includes(`/repos/${o.Owner}/${o.Name}`)?"bg-primary-50 dark:bg-primary-900/20 text-primary-600 dark:text-primary-400":"text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-800"])},{default:Z(()=>[a[13]||(a[13]=d("i",{class:"fas fa-code-branch mr-3 w-5 text-center"},null,-1)),se(v(o.Name),1)]),_:2},1032,["to","class"]))),128))])])):G("",!0)])]))}},Sd={class:"py-8 px-4 mt-16 border-t border-gray-200 dark:border-gray-700"},Ad={class:"container mx-auto text-center"},Ed={key:0,class:"text-sm text-gray-400 dark:text-gray-500 mt-2"},Pd={__name:"Footer",setup(e){const t=Pe("globalData"),s=ee(()=>t.value?.GeneratedAt?new Date(t.value.GeneratedAt).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}):"");return(r,n)=>(y(),w("footer",Sd,[d("div",Ad,[n[0]||(n[0]=d("p",{class:"text-gray-500 dark:text-gray-400"},[se(" Generated by "),d("a",{href:"https://github.com/lukaszraczylo/git-velocity",class:"text-primary-500 hover:text-primary-600",target:"_blank",rel:"noopener noreferrer"}," Git Velocity ")],-1)),s.value?(y(),w("p",Ed,v(s.value),1)):G("",!0)])]))}},Td={class:"min-h-screen flex flex-col"},$d={class:"flex-1"},Od={key:0,class:"flex items-center justify-center min-h-[60vh]"},Id={key:1,class:"flex items-center justify-center min-h-[60vh]"},Md={class:"text-center"},Dd={class:"text-gray-600 dark:text-gray-400"},Nd={__name:"App",setup(e){const t=xe(null),s=xe(!0),r=xe(null);return gs("globalData",t),Ft(async()=>{try{const n=await fetch("./data/global.json");if(!n.ok)throw new Error("Failed to load data");t.value=await n.json()}catch(n){r.value=n.message}finally{s.value=!1}}),(n,i)=>{const a=Ho("router-view");return y(),w("div",Td,[$(Rd),d("main",$d,[s.value?(y(),w("div",Od,[...i[0]||(i[0]=[d("div",{class:"text-center"},[d("i",{class:"fas fa-spinner fa-spin text-4xl text-primary-500 mb-4"}),d("p",{class:"text-gray-600 dark:text-gray-400"},"Loading dashboard...")],-1)])])):r.value?(y(),w("div",Id,[d("div",Md,[i[1]||(i[1]=d("i",{class:"fas fa-exclamation-triangle text-4xl text-red-500 mb-4"},null,-1)),d("p",Dd,v(r.value),1)])])):(y(),oe(a,{key:2}))]),$(Pd)])}}};function U(e){return e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":String(e)}function Ld(e){return e==null?"-":e<1?Math.round(e*60)+"m":e<24?e.toFixed(1)+"h":(e/24).toFixed(1)+"d"}function vr(e){return e?new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}):""}function jd(e){return e==null?"0%":e.toFixed(1)+"%"}function Ea(e){return e?e.toLowerCase().replace(/\s+/g,"-").replace(/_/g,"-").replace(/[^a-z0-9-]/g,""):""}const Fd={class:"flex items-center justify-between"},Vd={class:"min-w-0 flex-1"},Hd={class:"text-xs sm:text-sm text-gray-500 dark:text-gray-400 mt-1 truncate"},we={__name:"StatCard",props:{value:{type:[Number,String],required:!0},label:{type:String,required:!0},icon:{type:String,default:""},iconColor:{type:String,default:"text-gray-500"},valueClass:{type:String,default:"gradient-text"},delay:{type:String,default:"0s"}},setup(e){return(t,s)=>(y(),w("div",{class:"card animate-fade-in-up",style:At({animationDelay:e.delay})},[d("div",Fd,[d("div",Vd,[d("div",{class:Q(["text-xl sm:text-2xl md:text-3xl font-bold truncate",e.valueClass])},v(typeof e.value=="number"?A(U)(e.value):e.value),3),d("div",Hd,v(e.label),1)]),e.icon?(y(),w("div",{key:0,class:Q(["text-2xl sm:text-3xl opacity-50 ml-2 flex-shrink-0",e.iconColor])},[d("i",{class:Q(e.icon)},null,2)],2)):G("",!0)])],4))}},Bd=["src","alt"],Es={__name:"Avatar",props:{src:{type:String,default:""},name:{type:String,required:!0},size:{type:String,default:"md"}},setup(e){const t=e,s={sm:"w-8 h-8 text-xs",md:"w-10 h-10 text-sm",lg:"w-14 h-14 text-xl",xl:"w-16 h-16 text-2xl","2xl":"w-32 h-32 text-4xl"},r=ee(()=>t.name.charAt(0).toUpperCase()),n=ee(()=>s[t.size]||s.md);return(i,a)=>e.src?(y(),w("img",{key:0,src:e.src,alt:e.name,class:Q([n.value,"rounded-full"])},null,10,Bd)):(y(),w("div",{key:1,class:Q([n.value,"rounded-full bg-gradient-to-br from-primary-500 to-accent-500 flex items-center justify-center text-white font-bold"])},v(r.value),3))}},Pa={__name:"RankBadge",props:{rank:{type:Number,required:!0},size:{type:String,default:"md"}},setup(e){const t=e,s={sm:"w-6 h-6 text-xs",md:"w-8 h-8 text-sm"},r=ee(()=>t.rank===1?"rank-1":t.rank===2?"rank-2":t.rank===3?"rank-3":"bg-gray-200 dark:bg-gray-700 text-gray-600 dark:text-gray-300"),n=ee(()=>s[t.size]||s.md);return(i,a)=>(y(),w("span",{class:Q([[n.value,r.value,{"text-white":e.rank<=3}],"inline-flex items-center justify-center rounded-full font-bold"])},v(e.rank),3))}},Gd={class:"inline-flex flex-col items-center gap-2"},qd=["title"],Ud={class:"absolute bottom-full left-1/2 -translate-x-1/2 mb-3 px-3 py-2 bg-gray-900 dark:bg-gray-800 text-white text-xs rounded-xl opacity-0 group-hover/badge:opacity-100 transition-all duration-200 pointer-events-none whitespace-nowrap z-50 shadow-xl border border-white/10"},Wd={class:"font-bold text-sm"},Kd={class:"text-gray-300 text-[11px] mt-0.5"},zd={key:0,class:"text-[11px] font-medium text-gray-600 dark:text-gray-400 text-center leading-tight",style:{"max-width":"72px","word-wrap":"break-word"}},Cs={__name:"AchievementBadge",props:{achievementId:{type:String,required:!0},size:{type:String,default:"md"},showLabel:{type:Boolean,default:!1}},setup(e){const t={1:"from-stone-400 to-stone-500",2:"from-green-400 to-emerald-500",3:"from-blue-400 to-indigo-500",4:"from-purple-400 to-violet-500",5:"from-yellow-400 to-amber-500",6:"from-orange-400 to-red-500",7:"from-red-500 to-rose-600",8:"from-pink-500 to-fuchsia-600",9:"from-cyan-400 to-teal-500",10:"from-emerald-400 to-cyan-500",11:"from-violet-500 to-purple-600"},s=o=>{const l=[1,10,25,50,100,250,500,1e3,5e3,1e4,25e3];for(let c=l.length-1;c>=0;c--)if(o>=l[c])return c+1;return 1},r=o=>{const l=o.match(/(\d+)$/);return l?parseInt(l[1],10):50},n={"commit-1":{name:"First Steps",description:"Made your first commit",icon:"fa-baby"},"commit-10":{name:"Getting Started",description:"Made 10 commits",icon:"fa-seedling"},"commit-50":{name:"Contributor",description:"Made 50 commits",icon:"fa-code"},"commit-100":{name:"Committed",description:"Made 100 commits",icon:"fa-fire"},"commit-500":{name:"Code Machine",description:"Made 500 commits",icon:"fa-robot"},"commit-1000":{name:"Code Warrior",description:"Made 1000 commits",icon:"fa-crown"},"pr-1":{name:"PR Pioneer",description:"Opened your first pull request",icon:"fa-code-pull-request"},"pr-10":{name:"PR Regular",description:"Opened 10 pull requests",icon:"fa-code-branch"},"pr-25":{name:"PR Pro",description:"Opened 25 pull requests",icon:"fa-code-compare"},"pr-50":{name:"Merge Master",description:"Opened 50 pull requests",icon:"fa-code-merge"},"pr-100":{name:"PR Champion",description:"Opened 100 pull requests",icon:"fa-trophy"},"pr-250":{name:"PR Legend",description:"Opened 250 pull requests",icon:"fa-medal"},"review-1":{name:"First Review",description:"Reviewed your first pull request",icon:"fa-magnifying-glass"},"review-10":{name:"Reviewer",description:"Reviewed 10 pull requests",icon:"fa-eye"},"review-25":{name:"Review Regular",description:"Reviewed 25 pull requests",icon:"fa-glasses"},"review-50":{name:"Review Expert",description:"Reviewed 50 pull requests",icon:"fa-user-check"},"review-100":{name:"Review Guru",description:"Reviewed 100 pull requests",icon:"fa-user-graduate"},"review-250":{name:"Review Master",description:"Reviewed 250 pull requests",icon:"fa-award"},"comment-10":{name:"Commentator",description:"Left 10 PR review comments",icon:"fa-comment"},"comment-50":{name:"Feedback Giver",description:"Left 50 PR review comments",icon:"fa-comments"},"comment-100":{name:"Code Critic",description:"Left 100 PR review comments",icon:"fa-comment-dots"},"comment-250":{name:"Feedback Expert",description:"Left 250 PR review comments",icon:"fa-message"},"comment-500":{name:"Comment Champion",description:"Left 500 PR review comments",icon:"fa-scroll"},"lines-added-100":{name:"First Hundred",description:"Added 100 lines of code",icon:"fa-plus"},"lines-added-1000":{name:"Thousand Lines",description:"Added 1000 lines of code",icon:"fa-layer-group"},"lines-added-5000":{name:"Five Thousand",description:"Added 5000 lines of code",icon:"fa-cubes"},"lines-added-10000":{name:"Ten Thousand",description:"Added 10000 lines of code",icon:"fa-mountain"},"lines-added-50000":{name:"Code Mountain",description:"Added 50000 lines of code",icon:"fa-mountain-sun"},"lines-deleted-100":{name:"Tidying Up",description:"Deleted 100 lines of code",icon:"fa-eraser"},"lines-deleted-500":{name:"Spring Cleaning",description:"Deleted 500 lines of code",icon:"fa-broom"},"lines-deleted-1000":{name:"Code Cleaner",description:"Deleted 1000 lines of code",icon:"fa-trash-can"},"lines-deleted-5000":{name:"Refactoring Hero",description:"Deleted 5000 lines of code",icon:"fa-recycle"},"lines-deleted-10000":{name:"Deletion Master",description:"Deleted 10000 lines of code",icon:"fa-dumpster-fire"},"review-time-24h":{name:"Same Day Reviewer",description:"Average review response under 24 hours",icon:"fa-clock"},"review-time-4h":{name:"Quick Responder",description:"Average review response under 4 hours",icon:"fa-stopwatch"},"review-time-1h":{name:"Speed Demon",description:"Average review response under 1 hour",icon:"fa-bolt"},"repo-2":{name:"Multi-Repo",description:"Contributed to 2 repositories",icon:"fa-folder"},"repo-5":{name:"Repo Explorer",description:"Contributed to 5 repositories",icon:"fa-folder-tree"},"repo-10":{name:"Repo Master",description:"Contributed to 10 repositories",icon:"fa-network-wired"},"reviewees-3":{name:"Helpful Colleague",description:"Reviewed PRs from 3 different contributors",icon:"fa-user-group"},"reviewees-10":{name:"Team Player",description:"Reviewed PRs from 10 different contributors",icon:"fa-people-group"},"reviewees-25":{name:"Community Pillar",description:"Reviewed PRs from 25 different contributors",icon:"fa-people-roof"},"large-pr-500":{name:"Big Change",description:"Merged a PR with 500+ lines changed",icon:"fa-expand"},"large-pr-1000":{name:"Heavy Lifter",description:"Merged a PR with 1000+ lines changed",icon:"fa-weight-hanging"},"large-pr-5000":{name:"Mega Merge",description:"Merged a PR with 5000+ lines changed",icon:"fa-dumbbell"},"small-pr-5":{name:"Small Changes",description:"Merged 5 PRs under 100 lines",icon:"fa-compress"},"small-pr-10":{name:"Small PR Advocate",description:"Merged 10 PRs under 100 lines",icon:"fa-minimize"},"small-pr-25":{name:"Atomic Commits",description:"Merged 25 PRs under 100 lines",icon:"fa-atom"},"small-pr-50":{name:"Micro PR Master",description:"Merged 50 PRs under 100 lines",icon:"fa-microchip"},"perfect-pr-1":{name:"First Try",description:"1 PR merged without changes requested",icon:"fa-check"},"perfect-pr-5":{name:"Clean Code",description:"5 PRs merged without changes requested",icon:"fa-check-double"},"perfect-pr-10":{name:"Quality Author",description:"10 PRs merged without changes requested",icon:"fa-circle-check"},"perfect-pr-25":{name:"Flawless",description:"25 PRs merged without changes requested",icon:"fa-gem"},"active-7":{name:"Week Active",description:"Active on 7 different days",icon:"fa-calendar-day"},"active-30":{name:"Month Active",description:"Active on 30 different days",icon:"fa-calendar-week"},"active-60":{name:"Consistent Contributor",description:"Active on 60 different days",icon:"fa-chart-line"},"active-100":{name:"Dedicated Developer",description:"Active on 100 different days",icon:"fa-fire-flame-curved"},"streak-3":{name:"Getting Rolling",description:"3 day contribution streak",icon:"fa-forward"},"streak-7":{name:"Week Warrior",description:"7 day contribution streak",icon:"fa-calendar-week"},"streak-14":{name:"Two Week Streak",description:"14 day contribution streak",icon:"fa-fire"},"streak-30":{name:"Month Master",description:"30 day contribution streak",icon:"fa-calendar-check"},"workweek-3":{name:"Work Week Start",description:"3 consecutive weekday streak",icon:"fa-briefcase"},"workweek-5":{name:"Full Work Week",description:"5 consecutive weekday streak",icon:"fa-building"},"workweek-10":{name:"Two Week Grind",description:"10 consecutive weekday streak",icon:"fa-business-time"},"workweek-20":{name:"Month of Mondays",description:"20 consecutive weekday streak",icon:"fa-landmark"},"earlybird-10":{name:"Early Riser",description:"10 commits before 9am",icon:"fa-mug-hot"},"earlybird-25":{name:"Morning Person",description:"25 commits before 9am",icon:"fa-cloud-sun"},"earlybird-50":{name:"Early Bird",description:"50 commits before 9am",icon:"fa-sun"},"earlybird-100":{name:"Dawn Warrior",description:"100 commits before 9am",icon:"fa-sunrise"},"nightowl-10":{name:"Late Worker",description:"10 commits after 9pm",icon:"fa-cloud-moon"},"nightowl-25":{name:"Evening Coder",description:"25 commits after 9pm",icon:"fa-moon"},"nightowl-50":{name:"Night Owl",description:"50 commits after 9pm",icon:"fa-star"},"nightowl-100":{name:"Nocturnal",description:"100 commits after 9pm",icon:"fa-star-and-crescent"},"midnight-5":{name:"Night Shift",description:"5 commits between midnight and 4am",icon:"fa-ghost"},"midnight-10":{name:"Insomniac",description:"10 commits between midnight and 4am",icon:"fa-bed"},"midnight-25":{name:"Nosferatu",description:"25 commits between midnight and 4am",icon:"fa-skull"},"midnight-50":{name:"Vampire Coder",description:"50 commits between midnight and 4am",icon:"fa-skull-crossbones"},"weekend-5":{name:"Weekend Work",description:"5 weekend commits",icon:"fa-couch"},"weekend-10":{name:"Weekend Regular",description:"10 weekend commits",icon:"fa-house-laptop"},"weekend-25":{name:"Weekend Warrior",description:"25 weekend commits",icon:"fa-gamepad"},"weekend-50":{name:"No Days Off",description:"50 weekend commits",icon:"fa-person-running"},"ooh-10":{name:"Extra Hours",description:"10 commits outside 9am-5pm",icon:"fa-clock-rotate-left"},"ooh-25":{name:"Flexible Schedule",description:"25 commits outside 9am-5pm",icon:"fa-user-clock"},"ooh-50":{name:"Off-Hours Hero",description:"50 commits outside 9am-5pm",icon:"fa-hourglass-half"},"ooh-100":{name:"Time Bender",description:"100 commits outside 9am-5pm",icon:"fa-infinity"},"docs-100":{name:"Documenter",description:"Added 100 lines of comments/docs",icon:"fa-file-lines"},"docs-500":{name:"Technical Writer",description:"Added 500 lines of comments/docs",icon:"fa-book"},"docs-1000":{name:"Documentation Hero",description:"Added 1000 lines of comments/docs",icon:"fa-book-open"},"docs-2500":{name:"Knowledge Keeper",description:"Added 2500 lines of comments/docs",icon:"fa-scroll"},"docs-5000":{name:"Code Historian",description:"Added 5000 lines of comments/docs",icon:"fa-landmark"},"docs-del-50":{name:"Comment Trimmer",description:"Removed 50 lines of outdated comments",icon:"fa-scissors"},"docs-del-200":{name:"Cleanup Crew",description:"Removed 200 lines of outdated comments",icon:"fa-broom"},"docs-del-500":{name:"Dead Code Hunter",description:"Removed 500 lines of outdated comments",icon:"fa-skull-crossbones"},"docs-del-1000":{name:"Comment Surgeon",description:"Removed 1000 lines of outdated comments",icon:"fa-user-doctor"},"docs-del-2500":{name:"Noise Eliminator",description:"Removed 2500 lines of outdated comments",icon:"fa-volume-xmark"},"issue-1":{name:"Bug Hunter",description:"Opened your first issue",icon:"fa-bug"},"issue-5":{name:"Issue Reporter",description:"Opened 5 issues",icon:"fa-flag"},"issue-10":{name:"Quality Advocate",description:"Opened 10 issues",icon:"fa-clipboard-list"},"issue-25":{name:"Issue Expert",description:"Opened 25 issues",icon:"fa-list-check"},"issue-50":{name:"Issue Champion",description:"Opened 50 issues",icon:"fa-bullhorn"},"issue-close-1":{name:"Problem Solver",description:"Closed your first issue",icon:"fa-circle-check"},"issue-close-5":{name:"Bug Squasher",description:"Closed 5 issues",icon:"fa-bug-slash"},"issue-close-10":{name:"Issue Resolver",description:"Closed 10 issues",icon:"fa-check-double"},"issue-close-25":{name:"Closure Expert",description:"Closed 25 issues",icon:"fa-square-check"},"issue-close-50":{name:"Issue Terminator",description:"Closed 50 issues",icon:"fa-crosshairs"},"issue-comment-5":{name:"Issue Commenter",description:"Left 5 issue comments",icon:"fa-comment"},"issue-comment-10":{name:"Discussion Starter",description:"Left 10 issue comments",icon:"fa-comments"},"issue-comment-25":{name:"Issue Collaborator",description:"Left 25 issue comments",icon:"fa-people-arrows"},"issue-comment-50":{name:"Community Voice",description:"Left 50 issue comments",icon:"fa-bullhorn"},"issue-comment-100":{name:"Issue Guru",description:"Left 100 issue comments",icon:"fa-graduation-cap"},"issue-ref-5":{name:"Issue Linker",description:"Referenced issues in 5 commits",icon:"fa-link"},"issue-ref-10":{name:"Commit Connector",description:"Referenced issues in 10 commits",icon:"fa-diagram-project"},"issue-ref-25":{name:"Traceability Pro",description:"Referenced issues in 25 commits",icon:"fa-sitemap"},"issue-ref-50":{name:"Issue Tracker",description:"Referenced issues in 50 commits",icon:"fa-chart-gantt"},"issue-ref-100":{name:"Traceability Master",description:"Referenced issues in 100 commits",icon:"fa-network-wired"}},i=o=>{const l=n[o]||{name:o,description:"",icon:"fa-medal"},c=r(o),u=s(c),f=t[u]||"from-gray-400 to-gray-500";return{...l,gradient:f,tier:u,threshold:c}},a={sm:{wrapper:"w-9 h-9",icon:"text-sm",radius:"rounded-lg"},md:{wrapper:"w-11 h-11",icon:"text-base",radius:"rounded-xl"},lg:{wrapper:"w-14 h-14",icon:"text-lg",radius:"rounded-xl"}};return(o,l)=>(y(),w("div",Gd,[d("div",{class:"relative group/badge",title:i(e.achievementId).name},[d("div",{class:Q(["flex items-center justify-center bg-gradient-to-br shadow-lg hover:scale-105 hover:shadow-xl transition-all duration-200 cursor-pointer",[a[e.size].wrapper,a[e.size].radius,i(e.achievementId).gradient]])},[d("i",{class:Q(["fas text-white drop-shadow-sm",[i(e.achievementId).icon,a[e.size].icon]])},null,2)],2),d("div",Ud,[d("div",Wd,v(i(e.achievementId).name),1),d("div",Kd,v(i(e.achievementId).description),1),l[0]||(l[0]=d("div",{class:"absolute top-full left-1/2 -translate-x-1/2 border-[6px] border-transparent border-t-gray-900 dark:border-t-gray-800"},null,-1))])],8,qd),e.showLabel?(y(),w("span",zd,v(i(e.achievementId).name),1)):G("",!0)]))}},Qd={class:"flex items-center space-x-4"},Jd={class:"relative"},Yd={class:"flex-1"},Xd={class:"font-semibold text-gray-800 dark:text-white group-hover:text-primary-500 transition-colors"},Zd={class:"text-sm text-gray-500 dark:text-gray-400"},eu={key:0,class:"text-xs text-accent-500"},tu={class:"text-right"},su={class:"text-2xl font-bold gradient-text"},ru={key:0,class:"mt-4 flex flex-wrap gap-1.5"},nu={key:0,class:"inline-flex items-center justify-center w-8 h-8 rounded-lg bg-gray-200 dark:bg-gray-700 text-gray-600 dark:text-gray-300 text-xs font-bold"},iu={__name:"ContributorCard",props:{contributor:{type:Object,required:!0},rank:{type:Number,default:0},showRank:{type:Boolean,default:!0},featured:{type:Boolean,default:!1}},setup(e){return(t,s)=>(y(),oe(A(ke),{to:{name:"contributor",params:{login:e.contributor.login}},class:Q(["card animate-fade-in-up block cursor-pointer hover:shadow-lg transition-shadow",e.featured&&e.rank===1?"ring-2 ring-yellow-400":""])},{default:Z(()=>[d("div",Qd,[d("div",Jd,[$(Es,{src:e.contributor.avatar_url,name:e.contributor.login,size:e.featured?"xl":"lg"},null,8,["src","name","size"]),e.showRank&&e.rank>0?(y(),oe(Pa,{key:0,rank:e.rank,size:"sm",class:"absolute -top-1 -right-1"},null,8,["rank"])):G("",!0)]),d("div",Yd,[d("h3",Xd,v(e.contributor.name||e.contributor.login),1),d("p",Zd,[d("span",{class:"hover:text-primary-500 transition-colors",onClick:s[0]||(s[0]=en(r=>t.window.open(`https://github.com/${e.contributor.login}`,"_blank"),["stop","prevent"]))},[se(" @"+v(e.contributor.login)+" ",1),s[1]||(s[1]=d("i",{class:"fas fa-external-link-alt text-xs ml-0.5 opacity-50"},null,-1))])]),e.contributor.team?(y(),w("p",eu,v(e.contributor.team),1)):G("",!0)]),d("div",tu,[d("div",su,v(A(U)(e.contributor.score?.total||e.contributor.score||0)),1),s[2]||(s[2]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400"},"points",-1))])]),e.contributor.achievements?.length?(y(),w("div",ru,[(y(!0),w(J,null,be(e.contributor.achievements.slice(0,6),r=>(y(),oe(Cs,{key:r,"achievement-id":r,size:"sm"},null,8,["achievement-id"]))),128)),e.contributor.achievements.length>6?(y(),w("span",nu," +"+v(e.contributor.achievements.length-6),1)):G("",!0)])):G("",!0)]),_:1},8,["to","class"]))}},au={class:"flex items-center justify-between mb-4"},ou={class:"font-semibold text-gray-800 dark:text-white group-hover:text-primary-500 transition"},lu={class:"text-sm text-gray-500 dark:text-gray-400 mb-4"},cu={class:"grid grid-cols-3 gap-4 text-center"},du={class:"text-lg font-semibold text-gray-800 dark:text-white"},uu={class:"text-lg font-semibold text-gray-800 dark:text-white"},fu={class:"text-lg font-semibold text-gray-800 dark:text-white"},mu={__name:"RepoCard",props:{repo:{type:Object,required:!0}},setup(e){return(t,s)=>(y(),oe(A(ke),{to:`/repos/${e.repo.owner}/${e.repo.name}`,class:"card hover:shadow-lg transition group"},{default:Z(()=>[d("div",au,[d("h3",ou,v(e.repo.name),1),s[0]||(s[0]=d("i",{class:"fas fa-arrow-right text-gray-400 group-hover:text-primary-500 transition"},null,-1))]),d("p",lu,v(e.repo.owner)+"/"+v(e.repo.name),1),d("div",cu,[d("div",null,[d("div",du,v(A(U)(e.repo.total_commits)),1),s[1]||(s[1]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400"},"Commits",-1))]),d("div",null,[d("div",uu,v(A(U)(e.repo.total_prs)),1),s[2]||(s[2]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400"},"PRs",-1))]),d("div",null,[d("div",fu,v(e.repo.active_contributors),1),s[3]||(s[3]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400"},"Contributors",-1))])])]),_:1},8,["to"]))}},gu={class:"flex items-center justify-between mb-4"},pu={class:"font-semibold text-gray-800 dark:text-white group-hover:text-primary-500 transition"},hu={class:"flex items-center space-x-2 mb-4"},xu={key:0,class:"w-8 h-8 rounded-full bg-gray-200 dark:bg-gray-700 flex items-center justify-center text-gray-600 dark:text-gray-300 text-xs font-bold"},yu={class:"grid grid-cols-2 gap-4 text-center"},vu={class:"text-lg font-semibold gradient-text"},bu={class:"text-lg font-semibold text-gray-800 dark:text-white"},_u={__name:"TeamCard",props:{team:{type:Object,required:!0}},setup(e){return(t,s)=>(y(),oe(A(ke),{to:`/teams/${A(Ea)(e.team.name)}`,class:"card hover:shadow-lg transition group"},{default:Z(()=>[d("div",gu,[d("h3",pu,v(e.team.name),1),d("span",{class:"w-3 h-3 rounded-full",style:At({backgroundColor:e.team.color||"#8b5cf6"})},null,4)]),d("div",hu,[(y(!0),w(J,null,be((e.team.members||[]).slice(0,5),(r,n)=>(y(),oe(Es,{key:r,name:r,size:"sm"},null,8,["name"]))),128)),(e.team.members?.length||0)>5?(y(),w("span",xu," +"+v(e.team.members.length-5),1)):G("",!0)]),d("div",yu,[d("div",null,[d("div",vu,v(A(U)(e.team.total_score)),1),s[0]||(s[0]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400"},"Total Score",-1))]),d("div",null,[d("div",bu,v(e.team.members?.length||0),1),s[1]||(s[1]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400"},"Members",-1))])])]),_:1},8,["to"]))}},ku={class:"text-2xl font-bold text-gray-800 dark:text-white mb-6"},Ue={__name:"SectionHeader",props:{title:{type:String,required:!0},icon:{type:String,default:""},iconColor:{type:String,default:"text-primary-500"}},setup(e){return(t,s)=>(y(),w("h2",ku,[e.icon?(y(),w("i",{key:0,class:Q([[e.icon,e.iconColor],"mr-2"])},null,2)):G("",!0),se(v(e.title)+" ",1),Lt(t.$slots,"suffix")]))}},wu=(e,t)=>{const s=e.__vccOpts||e;for(const[r,n]of t)s[r]=n;return s},Cu={key:0,class:"flex items-center justify-center h-full"},Ru={__name:"VelocityChart",props:{timeline:{type:Object,required:!0},height:{type:String,default:"300px"},showScore:{type:Boolean,default:!1}},setup(e){dn.register(...La);const t=e,s=xe(null);let r=null;const n=ee(()=>t.timeline?.series?t.timeline.series.filter(f=>t.showScore||f.name!=="Score"):[]),i=ee(()=>!t.timeline?.labels||!n.value.length?{labels:[],datasets:[]}:{labels:t.timeline.labels,datasets:n.value.map(f=>({label:f.name,data:f.data,borderColor:f.color,backgroundColor:f.color+"20",fill:!0,tension:.4,pointRadius:3,pointHoverRadius:5}))}),a=xe(window.innerWidth<640),o=ee(()=>({responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},plugins:{legend:{position:"top",labels:{usePointStyle:!0,padding:a.value?10:20,boxWidth:a.value?8:12,font:{size:a.value?10:12}}},tooltip:{backgroundColor:"rgba(0, 0, 0, 0.8)",padding:a.value?8:12,titleFont:{size:a.value?12:14},bodyFont:{size:a.value?11:13},callbacks:{label:f=>`${f.dataset.label}: ${f.parsed.y.toLocaleString()}`}}},scales:{x:{grid:{display:!1},ticks:{font:{size:a.value?9:11},maxRotation:a.value?45:0,autoSkip:!0,maxTicksLimit:a.value?6:12}},y:{beginAtZero:!0,grid:{color:"rgba(0, 0, 0, 0.05)"},ticks:{font:{size:a.value?9:11},callback:f=>f>=1e3?(f/1e3).toFixed(1)+"k":f}}}}));function l(){if(!s.value||!i.value.labels.length)return;r&&r.destroy();const f=s.value.getContext("2d");r=new dn(f,{type:"line",data:i.value,options:o.value})}function c(){r?(r.data=i.value,r.update()):l()}function u(){const f=window.innerWidth<640;f!==a.value&&(a.value=f,l())}return Ft(()=>{l(),window.addEventListener("resize",u)}),Jr(()=>{window.removeEventListener("resize",u),r&&r.destroy()}),Ge(()=>t.timeline,()=>{c()},{deep:!0}),Ge(()=>t.showScore,()=>{c()}),(f,p)=>(y(),w("div",{class:"velocity-chart",style:At({height:e.height})},[d("canvas",{ref_key:"chartRef",ref:s},null,512),e.timeline?.labels?.length?G("",!0):(y(),w("div",Cu,[...p[0]||(p[0]=[d("p",{class:"text-gray-400"},"No velocity data available",-1)])]))],4))}},Su=wu(Ru,[["__scopeId","data-v-3b28013a"]]),Au={class:"py-10 sm:py-16 px-4"},Eu={class:"container mx-auto text-center animate-fade-in-up"},Pu={class:"flex flex-col items-center space-y-2 mt-4 text-sm text-gray-500 dark:text-gray-400"},Tu={key:0},$u={key:0},Ou={key:1},Iu={key:2},Mu={key:1},Du={key:0,class:"py-6 sm:py-8 px-4"},Nu={class:"container mx-auto"},Lu={class:"card"},ju={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 mb-4 sm:mb-6"},Fu={class:"flex items-center space-x-2 text-sm text-gray-600 dark:text-gray-400 cursor-pointer"},Vu={class:"h-[200px] sm:h-[280px] md:h-[320px]"},Hu={class:"py-8 px-4"},Bu={class:"container mx-auto"},Gu={class:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-4"},qu={class:"py-8 px-4"},Uu={class:"container mx-auto"},Wu={class:"grid md:grid-cols-3 gap-6"},Ku={class:"mt-6 text-center"},zu={class:"py-8 px-4"},Qu={class:"container mx-auto"},Ju={class:"grid md:grid-cols-2 lg:grid-cols-3 gap-6"},Yu={key:1,class:"py-8 px-4"},Xu={class:"container mx-auto"},Zu={class:"grid md:grid-cols-2 lg:grid-cols-3 gap-6"},ef={__name:"Dashboard",setup(e){const t=Pe("globalData"),s=ee(()=>t.value||{}),r=ee(()=>s.value.leaderboard?.slice(0,3)||[]),n=ee(()=>s.value.repositories||[]),i=ee(()=>s.value.teams||[]),a=ee(()=>s.value.velocity_timeline),o=xe(!1);return(l,c)=>(y(),w("div",null,[d("header",Au,[d("div",Eu,[c[4]||(c[4]=d("h1",{class:"text-3xl sm:text-4xl md:text-6xl font-bold mb-3 sm:mb-4"},[d("span",{class:"gradient-text"},"Git Velocity")],-1)),c[5]||(c[5]=d("p",{class:"text-base sm:text-xl text-gray-600 dark:text-gray-300 max-w-2xl mx-auto px-2"}," Celebrate your team's achievements and contributions with beautiful insights. ",-1)),d("div",Pu,[s.value.period?.start||s.value.period?.end?(y(),w("p",Tu,[c[1]||(c[1]=d("i",{class:"fas fa-calendar-alt mr-1 text-primary-500"},null,-1)),c[2]||(c[2]=d("span",{class:"font-medium"},"Period:",-1)),s.value.period.start?(y(),w("span",$u,v(A(vr)(s.value.period.start)),1)):G("",!0),s.value.period.start&&s.value.period.end?(y(),w("span",Ou," — ")):G("",!0),s.value.period.end?(y(),w("span",Iu,v(A(vr)(s.value.period.end)),1)):G("",!0)])):G("",!0),s.value.generated_at?(y(),w("p",Mu,[c[3]||(c[3]=d("i",{class:"fas fa-clock mr-1"},null,-1)),se(" Generated on "+v(A(vr)(s.value.generated_at)),1)])):G("",!0)])])]),a.value?(y(),w("section",Du,[d("div",Nu,[d("div",Lu,[d("div",ju,[$(Ue,{title:"Velocity Timeline",icon:"fas fa-chart-line","icon-color":"text-primary-500"}),d("label",Fu,[zr(d("input",{type:"checkbox","onUpdate:modelValue":c[0]||(c[0]=u=>o.value=u),class:"rounded border-gray-300 text-primary-500 focus:ring-primary-500"},null,512),[[Zl,o.value]]),c[6]||(c[6]=d("span",null,"Show Score",-1))])]),d("div",Vu,[$(Su,{timeline:a.value,"show-score":o.value,height:"100%"},null,8,["timeline","show-score"])])])])])):G("",!0),d("section",Hu,[d("div",Bu,[d("div",Gu,[$(we,{value:s.value.total_contributors||0,label:"Contributors",delay:"0s"},null,8,["value"]),$(we,{value:s.value.total_commits||0,label:"Commits",delay:"0.1s"},null,8,["value"]),$(we,{value:s.value.total_prs||0,label:"Pull Requests",delay:"0.2s"},null,8,["value"]),$(we,{value:s.value.total_reviews||0,label:"Reviews",delay:"0.3s"},null,8,["value"]),$(we,{value:"+"+A(U)(s.value.total_lines_added||0),label:"Lines Added","value-class":"text-green-500",delay:"0.4s"},null,8,["value"]),$(we,{value:"-"+A(U)(s.value.total_lines_deleted||0),label:"Lines Deleted","value-class":"text-red-500",delay:"0.5s"},null,8,["value"])])])]),d("section",qu,[d("div",Uu,[$(Ue,{title:"Top Contributors",icon:"fas fa-trophy","icon-color":"text-yellow-500"}),d("div",Wu,[(y(!0),w(J,null,be(r.value,(u,f)=>(y(),oe(iu,{key:u.login,contributor:u,rank:f+1,featured:""},null,8,["contributor","rank"]))),128))]),d("div",Ku,[$(A(ke),{to:"/leaderboard",class:"btn-primary"},{default:Z(()=>[...c[7]||(c[7]=[se(" View Full Leaderboard ",-1),d("i",{class:"fas fa-arrow-right ml-2"},null,-1)])]),_:1})])])]),d("section",zu,[d("div",Qu,[$(Ue,{title:"Repositories",icon:"fas fa-code-branch","icon-color":"text-accent-500"}),d("div",Ju,[(y(!0),w(J,null,be(n.value,u=>(y(),oe(mu,{key:`${u.owner}/${u.name}`,repo:u},null,8,["repo"]))),128))])])]),i.value.length?(y(),w("section",Yu,[d("div",Xu,[$(Ue,{title:"Teams",icon:"fas fa-users","icon-color":"text-blue-500"}),d("div",Zu,[(y(!0),w(J,null,be(i.value,u=>(y(),oe(_u,{key:u.name,team:u},null,8,["team"]))),128))])])])):G("",!0)]))}},tf={class:"flex items-center space-x-2 text-sm text-gray-500 dark:text-gray-400 mb-6"},sf={key:2,class:"fas fa-chevron-right text-xs"},rf={__name:"Breadcrumb",props:{items:{type:Array,required:!0}},setup(e){return(t,s)=>(y(),w("div",tf,[(y(!0),w(J,null,be(e.items,(r,n)=>(y(),w(J,{key:n},[r.to?(y(),oe(A(ke),{key:0,to:r.to,class:"hover:text-primary-500"},{default:Z(()=>[se(v(r.label),1)]),_:2},1032,["to"])):(y(),w("span",{key:1,class:Q(n===e.items.length-1?"text-gray-800 dark:text-white":"")},v(r.label),3)),n<e.items.length-1?(y(),w("i",sf)):G("",!0)],64))),128))]))}},nf={class:"py-12 px-4"},af={class:"text-4xl font-bold mb-4"},of={class:"gradient-text"},lf={key:1,class:"text-gray-600 dark:text-gray-300"},ir={__name:"PageHeader",props:{title:{type:String,required:!0},subtitle:{type:String,default:""},icon:{type:String,default:""},iconColor:{type:String,default:"text-primary-500"},breadcrumbs:{type:Array,default:()=>[]},centered:{type:Boolean,default:!1}},setup(e){return(t,s)=>(y(),w("header",nf,[d("div",{class:Q(["container mx-auto",{"text-center":e.centered}])},[e.breadcrumbs.length?(y(),oe(rf,{key:0,items:e.breadcrumbs},null,8,["items"])):G("",!0),d("div",{class:Q(["flex items-center",e.centered?"justify-center":""])},[Lt(t.$slots,"prefix"),d("h1",af,[e.icon?(y(),w("i",{key:0,class:Q([[e.icon,e.iconColor],"mr-3"])},null,2)):G("",!0),d("span",of,v(e.title),1)])],2),e.subtitle||t.$slots.subtitle?(y(),w("p",lf,[Lt(t.$slots,"subtitle",{},()=>[se(v(e.subtitle),1)])])):G("",!0),Lt(t.$slots,"extra")],2)]))}},cf={class:"card overflow-hidden p-0"},df={class:"w-full"},uf={class:"bg-gray-50 dark:bg-gray-800/50"},ff={class:"divide-y divide-gray-200 dark:divide-gray-700"},mf=["onClick"],gf={key:0,class:"text-center py-12"},pf={class:"text-gray-500 dark:text-gray-400"},Ta={__name:"DataTable",props:{columns:{type:Array,required:!0},items:{type:Array,default:()=>[]},emptyIcon:{type:String,default:"fas fa-inbox"},emptyMessage:{type:String,default:"No data found"},rowClass:{type:String,default:"hover:bg-gray-50 dark:hover:bg-gray-800/30 transition"},clickableRows:{type:Boolean,default:!1}},emits:["row-click"],setup(e){const t=s=>{switch(s){case"center":return"text-center";case"right":return"text-right";default:return"text-left"}};return(s,r)=>(y(),w("div",cf,[d("table",df,[d("thead",uf,[d("tr",null,[(y(!0),w(J,null,be(e.columns,n=>(y(),w("th",{key:n.key,class:Q(["px-3 sm:px-6 py-3 sm:py-4 text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider",t(n.align),n.headerClass])},v(n.label),3))),128))])]),d("tbody",ff,[(y(!0),w(J,null,be(e.items,(n,i)=>(y(),w("tr",{key:n.id||n.login||i,class:Q([e.rowClass,{"cursor-pointer":e.clickableRows}]),onClick:a=>e.clickableRows&&s.$emit("row-click",n)},[(y(!0),w(J,null,be(e.columns,a=>(y(),w("td",{key:a.key,class:Q(["px-3 sm:px-6 py-3 sm:py-4",t(a.align),a.class])},[Lt(s.$slots,a.key,{item:n,index:i},()=>[se(v(n[a.key]),1)])],2))),128))],10,mf))),128))])]),e.items.length?G("",!0):(y(),w("div",gf,[d("i",{class:Q([e.emptyIcon,"text-4xl text-gray-300 dark:text-gray-600 mb-4"])},null,2),d("p",pf,v(e.emptyMessage),1)]))]))}},hf={class:"font-medium text-gray-800 dark:text-white group-hover:text-primary-500 transition-colors"},xf={class:"text-sm"},yf=["href"],vf={key:1,class:"text-gray-500 dark:text-gray-400"},$a={__name:"ContributorRow",props:{contributor:{type:Object,required:!0},showGithubLink:{type:Boolean,default:!1},columns:{type:Array,default:()=>["commits","prs","reviews","lines","score"]}},setup(e){return(t,s)=>(y(),oe(A(ke),{to:{name:"contributor",params:{login:e.contributor.login}},class:"flex items-center space-x-3"},{default:Z(()=>[$(Es,{src:e.contributor.avatar_url,name:e.contributor.login,class:"ring-2 ring-transparent group-hover:ring-primary-500 transition-all"},null,8,["src","name"]),d("div",null,[d("div",hf,v(e.contributor.name||e.contributor.login),1),d("div",xf,[e.showGithubLink?(y(),w("a",{key:0,href:`https://github.com/${e.contributor.login}`,target:"_blank",rel:"noopener noreferrer",class:"text-gray-500 dark:text-gray-400 hover:text-primary-500 transition-colors",onClick:s[0]||(s[0]=en(()=>{},["stop"]))},[se(" @"+v(e.contributor.login)+" ",1),s[1]||(s[1]=d("i",{class:"fas fa-external-link-alt text-xs ml-1 opacity-50"},null,-1))],8,yf)):(y(),w("span",vf," @"+v(e.contributor.login),1))])])]),_:1},8,["to"]))}},Oa={commit:["commit-1","commit-10","commit-50","commit-100","commit-500","commit-1000"],pr:["pr-1","pr-10","pr-25","pr-50","pr-100","pr-250"],review:["review-1","review-10","review-25","review-50","review-100","review-250"],comment:["comment-10","comment-50","comment-100","comment-250","comment-500"],"lines-added":["lines-added-100","lines-added-1000","lines-added-5000","lines-added-10000","lines-added-50000"],"lines-deleted":["lines-deleted-100","lines-deleted-500","lines-deleted-1000","lines-deleted-5000","lines-deleted-10000"],"review-time":["review-time-24h","review-time-4h","review-time-1h"],repo:["repo-2","repo-5","repo-10"],reviewees:["reviewees-3","reviewees-10","reviewees-25"],"large-pr":["large-pr-500","large-pr-1000","large-pr-5000"],"small-pr":["small-pr-5","small-pr-10","small-pr-25","small-pr-50"],"perfect-pr":["perfect-pr-1","perfect-pr-5","perfect-pr-10","perfect-pr-25"],active:["active-7","active-30","active-60","active-100"],streak:["streak-3","streak-7","streak-14","streak-30"],workweek:["workweek-3","workweek-5","workweek-10","workweek-20"],earlybird:["earlybird-10","earlybird-25","earlybird-50","earlybird-100"],nightowl:["nightowl-10","nightowl-25","nightowl-50","nightowl-100"],midnight:["midnight-5","midnight-10","midnight-25","midnight-50"],weekend:["weekend-5","weekend-10","weekend-25","weekend-50"],ooh:["ooh-10","ooh-25","ooh-50","ooh-100"],docs:["docs-100","docs-500","docs-1000","docs-2500","docs-5000"],"docs-del":["docs-del-50","docs-del-200","docs-del-500","docs-del-1000","docs-del-2500"],issue:["issue-1","issue-5","issue-10","issue-25","issue-50"],"issue-close":["issue-close-1","issue-close-5","issue-close-10","issue-close-25","issue-close-50"],"issue-comment":["issue-comment-5","issue-comment-10","issue-comment-25","issue-comment-50","issue-comment-100"],"issue-ref":["issue-ref-5","issue-ref-10","issue-ref-25","issue-ref-50","issue-ref-100"]};function Ia(e){for(const[t,s]of Object.entries(Oa))if(s.includes(e))return t;return null}function bf(e){const t=Ia(e);return t?Oa[t].indexOf(e):-1}function Ma(e){if(!e||!e.length)return[];const t={};for(const s of e){const r=Ia(s);if(!r){t[s]={id:s,tier:-1};continue}const n=bf(s);(!t[r]||n>t[r].tier)&&(t[r]={id:s,tier:n})}return Object.values(t).sort((s,r)=>r.tier-s.tier).map(s=>s.id)}const _f={class:"py-8 px-4"},kf={class:"container mx-auto max-w-5xl"},wf={class:"mb-6"},Cf={class:"relative max-w-md"},Rf={key:0,class:"mt-2 text-sm text-gray-500 dark:text-gray-400"},Sf={class:"flex flex-wrap gap-1.5 max-w-[280px]"},Af={key:0,class:"text-gray-400 text-sm"},Ef={class:"hidden md:table-cell"},Pf={key:0,class:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-purple-100 dark:bg-purple-900/30 text-purple-800 dark:text-purple-300"},Tf={key:1,class:"text-gray-400"},$f={class:"hidden sm:table-cell"},Of={key:0,class:"text-sm text-gray-600 dark:text-gray-300"},If={key:1,class:"text-gray-400"},Mf={class:"text-lg font-bold gradient-text"},Df={__name:"Leaderboard",setup(e){const t=Pe("globalData"),s=xe(""),r=ee(()=>t.value?.leaderboard||[]),n=ee(()=>{if(!s.value.trim())return r.value;const o=s.value.toLowerCase().trim();return r.value.filter(l=>{const c=(l.name||"").toLowerCase(),u=(l.login||"").toLowerCase();return c.includes(o)||u.includes(o)})}),i=[{key:"rank",label:"Rank",align:"left"},{key:"contributor",label:"Contributor",align:"left"},{key:"achievements",label:"Achievements",align:"left"},{key:"team",label:"Team",align:"left",headerClass:"hidden md:table-cell"},{key:"category",label:"Best At",align:"left",headerClass:"hidden sm:table-cell"},{key:"score",label:"Score",align:"right"}],a=o=>({Commits:"fas fa-code-commit text-green-500",PRs:"fas fa-code-pull-request text-blue-500",Reviews:"fas fa-eye text-purple-500",Comments:"fas fa-comment text-orange-500"})[o]||"";return(o,l)=>(y(),w("div",null,[$(ir,{title:"Leaderboard",subtitle:"Top contributors ranked by their velocity score",icon:"fas fa-trophy","icon-color":"text-yellow-500",centered:""}),d("section",_f,[d("div",kf,[d("div",wf,[d("div",Cf,[l[3]||(l[3]=d("i",{class:"fas fa-search absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"},null,-1)),zr(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>s.value=c),type:"text",placeholder:"Search by name or username...",class:"w-full pl-10 pr-4 py-2.5 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent transition"},null,512),[[ga,s.value]]),s.value?(y(),w("button",{key:0,onClick:l[1]||(l[1]=c=>s.value=""),class:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200"},[...l[2]||(l[2]=[d("i",{class:"fas fa-times"},null,-1)])])):G("",!0)]),s.value&&n.value.length!==r.value.length?(y(),w("p",Rf," Showing "+v(n.value.length)+" of "+v(r.value.length)+" contributors ",1)):G("",!0)]),$(Ta,{columns:i,items:n.value,"empty-icon":"fas fa-users","empty-message":"No contributors found","row-class":"hover:bg-gray-50 dark:hover:bg-gray-800/30 transition group"},{rank:Z(({item:c})=>[$(Pa,{rank:c.rank},null,8,["rank"])]),contributor:Z(({item:c})=>[$($a,{contributor:c,"show-github-link":""},null,8,["contributor"])]),achievements:Z(({item:c})=>[d("div",Sf,[(y(!0),w(J,null,be(A(Ma)(c.achievements),u=>(y(),oe(Cs,{key:u,"achievement-id":u,size:"sm"},null,8,["achievement-id"]))),128)),(c.achievements||[]).length?G("",!0):(y(),w("span",Af,"-"))])]),team:Z(({item:c})=>[d("td",Ef,[c.team?(y(),w("span",Pf,v(c.team),1)):(y(),w("span",Tf,"-"))])]),category:Z(({item:c})=>[d("td",$f,[c.top_category?(y(),w("span",Of,[d("i",{class:Q([a(c.top_category),"mr-1"])},null,2),se(" "+v(c.top_category),1)])):(y(),w("span",If,"-"))])]),score:Z(({item:c})=>[d("span",Mf,v(A(U)(c.score)),1)]),_:1},8,["items"])])])]))}},Nf={class:"flex items-center justify-center min-h-[60vh]"},Lf={class:"text-center"},jf={class:"text-gray-600 dark:text-gray-400"},nn={__name:"LoadingState",props:{message:{type:String,default:"Loading..."}},setup(e){return(t,s)=>(y(),w("div",Nf,[d("div",Lf,[s[0]||(s[0]=d("i",{class:"fas fa-spinner fa-spin text-4xl text-primary-500 mb-4"},null,-1)),d("p",jf,v(e.message),1)])]))}},Ff={class:"flex items-center justify-center min-h-[60vh]"},Vf={class:"text-center"},Hf={class:"text-gray-600 dark:text-gray-400"},an={__name:"ErrorState",props:{message:{type:String,default:"An error occurred"},icon:{type:String,default:"fas fa-exclamation-triangle"}},setup(e){return(t,s)=>(y(),w("div",Ff,[d("div",Vf,[d("i",{class:Q([e.icon,"text-4xl text-red-500 mb-4"])},null,2),d("p",Hf,v(e.message),1),Lt(t.$slots,"actions")])]))}},Bf=["href"],Gf={key:0,class:"fas fa-external-link-alt text-xs ml-1 opacity-50"},Da={__name:"GithubLink",props:{url:{type:String,required:!0},label:{type:String,default:""},showIcon:{type:Boolean,default:!0}},setup(e){return(t,s)=>(y(),w("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",class:"hover:text-primary-500 transition-colors",onClick:s[0]||(s[0]=en(()=>{},["stop"]))},[Lt(t.$slots,"default",{},()=>[se(v(e.label),1)]),e.showIcon?(y(),w("i",Gf)):G("",!0)],8,Bf))}},qf={class:"py-8 px-4"},Uf={class:"container mx-auto"},Wf={class:"grid grid-cols-2 md:grid-cols-4 gap-4"},Kf={class:"py-8 px-4"},zf={class:"container mx-auto"},Qf={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6"},Jf={class:"relative w-full sm:w-64"},Yf={key:0,class:"mb-4 text-sm text-gray-500 dark:text-gray-400"},Xf={class:"text-gray-800 dark:text-white"},Zf={class:"text-gray-800 dark:text-white"},e0={class:"text-gray-800 dark:text-white"},t0={class:"text-green-500"},s0={class:"text-red-500"},r0={class:"text-lg font-bold gradient-text"},n0={__name:"Repository",setup(e){const t=nr(),s=xe(null),r=xe(!0),n=xe(null),i=xe(""),a=ee(()=>s.value?.contributors||[]),o=ee(()=>{if(!i.value.trim())return a.value;const f=i.value.toLowerCase().trim();return a.value.filter(p=>{const h=(p.name||"").toLowerCase(),S=(p.login||"").toLowerCase();return h.includes(f)||S.includes(f)})}),l=ee(()=>[{label:"Dashboard",to:"/"},{label:"Repositories"},{label:s.value?.name||t.params.name}]),c=[{key:"contributor",label:"Contributor",align:"left"},{key:"commits",label:"Commits",align:"center"},{key:"prs",label:"PRs",align:"center"},{key:"reviews",label:"Reviews",align:"center"},{key:"lines",label:"Lines +/-",align:"center"},{key:"score",label:"Score",align:"right"}];async function u(){r.value=!0,n.value=null;try{const f=await fetch(`./data/repos/${t.params.owner}/${t.params.name}/metrics.json`);if(!f.ok)throw new Error("Repository not found");s.value=await f.json()}catch(f){n.value=f.message}finally{r.value=!1}}return Ft(u),Ge(()=>t.params,u),(f,p)=>(y(),w("div",null,[r.value?(y(),oe(nn,{key:0,message:"Loading repository..."})):n.value?(y(),oe(an,{key:1,message:n.value},null,8,["message"])):s.value?(y(),w(J,{key:2},[$(ir,{title:s.value.name,icon:"fas fa-code-branch","icon-color":"text-accent-500",breadcrumbs:l.value},{subtitle:Z(()=>[$(Da,{url:`https://github.com/${s.value.owner}/${s.value.name}`},{default:Z(()=>[se(v(s.value.owner)+"/"+v(s.value.name),1)]),_:1},8,["url"])]),_:1},8,["title","breadcrumbs"]),d("section",qf,[d("div",Uf,[d("div",Wf,[$(we,{value:s.value.total_commits,label:"Commits",icon:"fas fa-code-commit","icon-color":"text-green-500"},null,8,["value"]),$(we,{value:s.value.total_prs,label:"Pull Requests",icon:"fas fa-code-pull-request","icon-color":"text-blue-500"},null,8,["value"]),$(we,{value:s.value.total_reviews,label:"Reviews",icon:"fas fa-eye","icon-color":"text-purple-500"},null,8,["value"]),$(we,{value:s.value.active_contributors,label:"Contributors",icon:"fas fa-users","icon-color":"text-orange-500"},null,8,["value"])])])]),d("section",Kf,[d("div",zf,[d("div",Qf,[$(Ue,{title:"Contributors",icon:"fas fa-users","icon-color":"text-blue-500",class:"mb-0"}),d("div",Jf,[p[3]||(p[3]=d("i",{class:"fas fa-search absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"},null,-1)),zr(d("input",{"onUpdate:modelValue":p[0]||(p[0]=h=>i.value=h),type:"text",placeholder:"Search contributors...",class:"w-full pl-10 pr-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent transition text-sm"},null,512),[[ga,i.value]]),i.value?(y(),w("button",{key:0,onClick:p[1]||(p[1]=h=>i.value=""),class:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200"},[...p[2]||(p[2]=[d("i",{class:"fas fa-times"},null,-1)])])):G("",!0)])]),i.value&&o.value.length!==a.value.length?(y(),w("p",Yf," Showing "+v(o.value.length)+" of "+v(a.value.length)+" contributors ",1)):G("",!0),$(Ta,{columns:c,items:o.value,"empty-icon":"fas fa-users","empty-message":"No contributors found","row-class":"hover:bg-gray-50 dark:hover:bg-gray-800/30 transition group"},{contributor:Z(({item:h})=>[$($a,{contributor:h},null,8,["contributor"])]),commits:Z(({item:h})=>[d("span",Xf,v(A(U)(h.commit_count)),1)]),prs:Z(({item:h})=>[d("span",Zf,v(A(U)(h.prs_opened)),1)]),reviews:Z(({item:h})=>[d("span",e0,v(A(U)(h.reviews_given)),1)]),lines:Z(({item:h})=>[d("span",t0,"+"+v(A(U)(h.lines_added)),1),p[4]||(p[4]=d("span",{class:"text-gray-400 mx-1"},"/",-1)),d("span",s0,"-"+v(A(U)(h.lines_deleted)),1)]),score:Z(({item:h})=>[d("span",r0,v(A(U)(h.score?.total||0)),1)]),_:1},8,["items"])])])],64)):G("",!0)]))}},i0={class:"flex items-center space-x-4 mb-4"},a0={class:"font-semibold text-gray-800 dark:text-white"},o0={class:"text-sm text-gray-500 dark:text-gray-400"},l0={class:"grid grid-cols-3 gap-4 text-center mb-4"},c0={class:"text-lg font-semibold text-gray-800 dark:text-white"},d0={class:"text-lg font-semibold text-gray-800 dark:text-white"},u0={class:"text-lg font-semibold text-gray-800 dark:text-white"},f0={class:"flex items-center justify-between pt-4 border-t border-gray-200 dark:border-gray-700"},m0={class:"text-xl font-bold gradient-text"},g0={key:0,class:"mt-4 flex flex-wrap gap-2"},p0={key:0,class:"inline-flex items-center justify-center w-8 h-8 rounded-lg bg-gray-200 dark:bg-gray-700 text-gray-600 dark:text-gray-300 text-xs font-bold"},h0={__name:"MemberCard",props:{member:{type:Object,required:!0},linkToProfile:{type:Boolean,default:!0}},setup(e){return(t,s)=>(y(),oe(Bo(e.linkToProfile?A(ke):"div"),{to:e.linkToProfile?{name:"contributor",params:{login:e.member.login}}:void 0,class:Q(["card block",{"hover:shadow-lg transition cursor-pointer":e.linkToProfile}])},{default:Z(()=>[d("div",i0,[$(Es,{src:e.member.avatar_url,name:e.member.login,size:"lg"},null,8,["src","name"]),d("div",null,[d("h3",a0,v(e.member.name||e.member.login),1),d("p",o0,"@"+v(e.member.login),1)])]),d("div",l0,[d("div",null,[d("div",c0,v(A(U)(e.member.commit_count)),1),s[0]||(s[0]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400"},"Commits",-1))]),d("div",null,[d("div",d0,v(A(U)(e.member.prs_opened)),1),s[1]||(s[1]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400"},"PRs",-1))]),d("div",null,[d("div",u0,v(A(U)(e.member.reviews_given)),1),s[2]||(s[2]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400"},"Reviews",-1))])]),d("div",f0,[s[3]||(s[3]=d("span",{class:"text-sm text-gray-500 dark:text-gray-400"},"Score",-1)),d("span",m0,v(A(U)(e.member.score?.total||0)),1)]),e.member.achievements?.length?(y(),w("div",g0,[(y(!0),w(J,null,be(e.member.achievements.slice(0,4),r=>(y(),oe(Cs,{key:r,"achievement-id":r,size:"sm"},null,8,["achievement-id"]))),128)),e.member.achievements.length>4?(y(),w("span",p0," +"+v(e.member.achievements.length-4),1)):G("",!0)])):G("",!0)]),_:1},8,["to","class"]))}},x0={class:"py-8 px-4"},y0={class:"container mx-auto"},v0={class:"grid grid-cols-2 md:grid-cols-4 gap-4"},b0={class:"py-8 px-4"},_0={class:"container mx-auto"},k0={class:"grid md:grid-cols-2 lg:grid-cols-3 gap-6"},w0={__name:"Team",setup(e){const t=nr(),s=Pe("globalData"),r=xe(null),n=xe(!0),i=xe(null),a=ee(()=>[{label:"Dashboard",to:"/"},{label:"Teams"},{label:r.value?.name||t.params.slug}]);function o(){n.value=!0,i.value=null;const c=(s.value?.teams||[]).find(u=>Ea(u.name)===t.params.slug);c?r.value=c:i.value="Team not found",n.value=!1}return Ft(o),Ge(()=>t.params,o),Ge(s,o),(l,c)=>(y(),w("div",null,[n.value?(y(),oe(nn,{key:0,message:"Loading team..."})):i.value?(y(),oe(an,{key:1,message:i.value},null,8,["message"])):r.value?(y(),w(J,{key:2},[$(ir,{title:r.value.name,breadcrumbs:a.value,subtitle:`${r.value.members?.length||0} team members`},{prefix:Z(()=>[d("div",{class:"w-4 h-4 rounded-full mr-4",style:At({backgroundColor:r.value.color||"#8b5cf6"})},null,4)]),_:1},8,["title","breadcrumbs","subtitle"]),d("section",x0,[d("div",y0,[d("div",v0,[$(we,{value:r.value.total_score,label:"Total Score",icon:"fas fa-star","icon-color":"text-yellow-500"},null,8,["value"]),$(we,{value:r.value.aggregated_metrics?.commit_count||0,label:"Commits",icon:"fas fa-code-commit","icon-color":"text-green-500"},null,8,["value"]),$(we,{value:r.value.aggregated_metrics?.prs_merged||0,label:"PRs Merged",icon:"fas fa-code-merge","icon-color":"text-purple-500"},null,8,["value"]),$(we,{value:r.value.aggregated_metrics?.reviews_given||0,label:"Reviews",icon:"fas fa-eye","icon-color":"text-blue-500"},null,8,["value"])])])]),d("section",b0,[d("div",_0,[$(Ue,{title:"Team Members",icon:"fas fa-users","icon-color":"text-blue-500"}),d("div",k0,[(y(!0),w(J,null,be(r.value.member_metrics,u=>(y(),oe(h0,{key:u.login,member:u},null,8,["member"]))),128))])])])],64)):G("",!0)]))}},C0={class:"space-y-3"},R0={class:"flex items-start justify-between mb-3"},S0={class:"flex items-center space-x-3"},A0={class:"text-sm font-semibold text-gray-800 dark:text-white"},E0={class:"flex items-center space-x-2 text-xs text-gray-500 dark:text-gray-400"},P0={class:"font-medium"},T0={class:"text-right"},$0={class:"text-gray-500 dark:text-gray-400 font-medium"},O0={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5"},I0={class:"h-2.5 bg-gray-200 dark:bg-gray-700 rounded-full overflow-hidden"},M0={class:"flex items-center justify-between mt-1.5"},D0={class:"flex items-center space-x-1"},N0=["title"],L0={key:0,class:"text-[10px] text-gray-400"},j0={key:0,class:"text-center text-xs text-gray-500 dark:text-gray-400 pt-2"},F0={key:1,class:"text-center py-8 text-gray-500 dark:text-gray-400"},V0={__name:"AchievementProgress",props:{contributor:{type:Object,required:!0},showEarned:{type:Boolean,default:!1},maxDisplay:{type:Number,default:6}},setup(e){const t=e,s=[1,10,25,50,100,250,500,1e3,5e3,1e4,25e3],r={1:"from-stone-400 to-stone-500",2:"from-green-400 to-emerald-500",3:"from-blue-400 to-indigo-500",4:"from-purple-400 to-violet-500",5:"from-yellow-400 to-amber-500",6:"from-orange-400 to-red-500",7:"from-red-500 to-rose-600",8:"from-pink-500 to-fuchsia-600",9:"from-cyan-400 to-teal-500",10:"from-emerald-400 to-cyan-500",11:"from-violet-500 to-purple-600"},n={1:"bg-stone-500",2:"bg-green-500",3:"bg-blue-500",4:"bg-purple-500",5:"bg-yellow-500",6:"bg-orange-500",7:"bg-red-500",8:"bg-pink-500",9:"bg-cyan-500",10:"bg-emerald-500",11:"bg-violet-500"},i=[{category:"Commits",icon:"fa-code-commit",iconColor:"text-green-500",getValue:u=>u.commit_count||0,achievements:[{id:"first-commit",threshold:1,name:"First Steps"},{id:"commit-10",threshold:10,name:"Getting Started"},{id:"commit-25",threshold:25,name:"Warming Up"},{id:"commit-50",threshold:50,name:"On A Roll"},{id:"commit-100",threshold:100,name:"Committed"},{id:"commit-250",threshold:250,name:"Dedicated"},{id:"commit-500",threshold:500,name:"Code Machine"},{id:"commit-1000",threshold:1e3,name:"Code Warrior"},{id:"commit-5000",threshold:5e3,name:"Legendary"},{id:"commit-10000",threshold:1e4,name:"Mythical"},{id:"commit-25000",threshold:25e3,name:"Transcendent"}]},{category:"Pull Requests",icon:"fa-code-pull-request",iconColor:"text-blue-500",getValue:u=>u.prs_opened||0,achievements:[{id:"pr-opener",threshold:1,name:"PR Pioneer"},{id:"pr-10",threshold:10,name:"Pull Request Pro"},{id:"pr-25",threshold:25,name:"PR Regular"},{id:"pr-50",threshold:50,name:"Merge Master"},{id:"pr-100",threshold:100,name:"PR Champion"}]},{category:"Reviews",icon:"fa-eye",iconColor:"text-purple-500",getValue:u=>u.reviews_given||0,achievements:[{id:"reviewer",threshold:1,name:"Code Reviewer"},{id:"reviewer-10",threshold:10,name:"Review Starter"},{id:"reviewer-25",threshold:25,name:"Review Regular"},{id:"reviewer-50",threshold:50,name:"Review Expert"},{id:"reviewer-100",threshold:100,name:"Review Guru"}]},{category:"Lines Added",icon:"fa-plus",iconColor:"text-emerald-500",getValue:u=>u.lines_added||0,achievements:[{id:"lines-1000",threshold:1e3,name:"Thousand Lines"},{id:"lines-10000",threshold:1e4,name:"Ten Thousand"}]},{category:"Lines Deleted",icon:"fa-minus",iconColor:"text-red-500",getValue:u=>u.lines_deleted||0,achievements:[{id:"cleaner",threshold:1e3,name:"Code Cleaner"},{id:"refactorer",threshold:1e4,name:"Refactoring Champion"}]},{category:"Small PRs",icon:"fa-compress",iconColor:"text-cyan-500",getValue:u=>u.small_pr_count||0,achievements:[{id:"small-pr-10",threshold:10,name:"Small PR Advocate"},{id:"small-pr-50",threshold:50,name:"Atomic Commits Hero"}]},{category:"Perfect PRs",icon:"fa-gem",iconColor:"text-pink-500",getValue:u=>u.perfect_prs||0,achievements:[{id:"perfect-pr-5",threshold:5,name:"Clean Code"},{id:"perfect-pr-25",threshold:25,name:"Flawless"}]},{category:"Active Days",icon:"fa-calendar-check",iconColor:"text-orange-500",getValue:u=>u.active_days||0,achievements:[{id:"active-30",threshold:30,name:"Consistent Contributor"},{id:"active-100",threshold:100,name:"Dedicated Developer"}]},{category:"Streak",icon:"fa-fire",iconColor:"text-amber-500",getValue:u=>u.longest_streak||0,achievements:[{id:"streak-7",threshold:7,name:"Week Warrior"},{id:"streak-30",threshold:30,name:"Month Master"}]}],a=u=>{for(let f=s.length-1;f>=0;f--)if(u>=s[f])return f+1;return 1},o=u=>u.map(f=>({threshold:f.threshold,name:f.name,tier:a(f.threshold)})),l=ee(()=>{const u=new Set(t.contributor.achievements||[]),f=[];for(const p of i){const h=p.getValue(t.contributor);let S=null,M=null;const K=o(p.achievements);for(const Re of p.achievements)h>=Re.threshold?M=Re:S||(S=Re);if(!S)continue;const j=M?M.threshold:0,N=S.threshold-j,V=h-j,L=Math.min(100,Math.max(0,Math.round(V/N*100))),te=a(S.threshold),ye=K.findIndex(Re=>Re.threshold===S.threshold),ge=K.length;f.push({category:p.category,icon:p.icon,iconColor:p.iconColor,currentValue:h,target:S.threshold,name:S.name,id:S.id,progress:L,tier:te,tierIndex:ye+1,totalTiers:ge,allTiers:K,gradient:r[te],progressColor:n[te],isClose:L>=75,remaining:S.threshold-h,isEarned:u.has(S.id)})}return f.sort((p,h)=>h.progress-p.progress),f}),c=ee(()=>{new Set(t.contributor.achievements||[]);let u=0;for(const f of i){const p=f.getValue(t.contributor);for(const h of f.achievements)p<h.threshold&&u++}return Math.max(0,u-t.maxDisplay)});return(u,f)=>(y(),w("div",C0,[(y(!0),w(J,null,be(l.value,p=>(y(),w("div",{key:p.id,class:"bg-gray-50 dark:bg-gray-800/50 rounded-xl p-4 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"},[d("div",R0,[d("div",S0,[d("div",{class:Q(["w-10 h-10 rounded-lg bg-gradient-to-br flex items-center justify-center shadow-md",p.gradient])},[d("i",{class:Q(["fas text-white text-sm",p.icon])},null,2)],2),d("div",null,[d("div",A0,v(p.name),1),d("div",E0,[d("span",null,v(p.category),1),f[0]||(f[0]=d("span",{class:"text-gray-300 dark:text-gray-600"},"•",-1)),d("span",P0,"Tier "+v(p.tierIndex)+"/"+v(p.totalTiers),1)])])]),d("div",T0,[d("div",{class:Q(["text-sm font-bold",p.isClose?"text-green-500":"text-gray-700 dark:text-gray-200"])},[se(v(A(U)(p.currentValue))+" ",1),f[1]||(f[1]=d("span",{class:"text-gray-400 dark:text-gray-500 font-normal"},"/",-1)),d("span",$0,v(A(U)(p.target)),1)],2),d("div",O0,v(p.remaining>0?`${A(U)(p.remaining)} to go`:"Ready to claim!"),1)])]),d("div",I0,[d("div",{class:Q(["h-full rounded-full transition-all duration-500 ease-out",p.progressColor]),style:At({width:`${p.progress}%`})},null,6)]),d("div",M0,[d("div",D0,[(y(!0),w(J,null,be(p.allTiers.slice(0,5),(h,S)=>(y(),w("span",{key:h.threshold,class:Q(["w-1.5 h-1.5 rounded-full",S<p.tierIndex?"bg-green-500":"bg-gray-300 dark:bg-gray-600"]),title:`Tier ${S+1}: ${h.name} (${A(U)(h.threshold)})`},null,10,N0))),128)),p.totalTiers>5?(y(),w("span",L0,"+"+v(p.totalTiers-5),1)):G("",!0)]),d("span",{class:Q(["text-xs font-semibold",p.isClose?"text-green-500":"text-gray-400 dark:text-gray-500"])},v(p.progress)+"% ",3)])]))),128)),c.value>0?(y(),w("div",j0," +"+v(c.value)+" more achievements to unlock ",1)):G("",!0),l.value.length?G("",!0):(y(),w("div",F0,[...f[2]||(f[2]=[d("div",{class:"w-16 h-16 mx-auto mb-3 rounded-2xl bg-gradient-to-br from-yellow-400 to-amber-500 flex items-center justify-center shadow-lg"},[d("i",{class:"fas fa-trophy text-2xl text-white"})],-1),d("p",{class:"font-medium text-gray-700 dark:text-gray-300"},"All achievements unlocked!",-1),d("p",{class:"text-sm mt-1"},"You're a legend!",-1)])]))]))}},H0={class:"py-12 px-4"},B0={class:"container mx-auto"},G0={class:"flex flex-col md:flex-row items-center md:items-start space-y-4 md:space-y-0 md:space-x-8"},q0={class:"text-center md:text-left"},U0={class:"text-4xl font-bold gradient-text"},W0={class:"text-xl text-gray-500 dark:text-gray-400 mt-1"},K0={class:"flex items-center justify-center md:justify-start space-x-4 mt-4"},z0={class:"score-card rounded-lg px-4 py-2"},Q0={class:"text-2xl font-bold gradient-text ml-2"},J0={key:0,class:"text-sm text-gray-500 dark:text-gray-400"},Y0={key:0},X0={key:0,class:"mt-6 flex flex-wrap justify-center md:justify-start gap-3"},Z0={class:"py-8 px-4"},em={class:"container mx-auto"},tm={class:"grid grid-cols-2 md:grid-cols-4 gap-4"},sm={class:"py-8 px-4"},rm={class:"container mx-auto"},nm={class:"grid md:grid-cols-2 gap-6"},im={class:"card"},am={class:"space-y-4"},om={class:"flex items-center justify-between"},lm={class:"text-green-500 font-semibold"},cm={class:"flex items-center justify-between"},dm={class:"text-red-500 font-semibold"},um={key:0,class:"flex items-center justify-between"},fm={class:"text-emerald-500 font-semibold"},mm={key:1,class:"flex items-center justify-between"},gm={class:"text-rose-500 font-semibold"},pm={key:2,class:"flex items-center justify-between"},hm={class:"text-cyan-500 font-semibold"},xm={key:3,class:"flex items-center justify-between"},ym={class:"text-amber-500 font-semibold"},vm={class:"flex items-center justify-between"},bm={class:"text-gray-800 dark:text-white font-semibold"},_m={key:4,class:"flex items-center justify-between"},km={class:"text-gray-800 dark:text-white font-semibold"},wm={class:"card"},Cm={class:"space-y-4"},Rm={class:"flex items-center justify-between"},Sm={class:"text-gray-800 dark:text-white font-semibold"},Am={class:"flex items-center justify-between"},Em={class:"text-green-500 font-semibold"},Pm={class:"flex items-center justify-between"},Tm={class:"text-orange-500 font-semibold"},$m={class:"flex items-center justify-between"},Om={class:"text-gray-800 dark:text-white font-semibold"},Im={key:0,class:"flex items-center justify-between"},Mm={class:"text-gray-800 dark:text-white font-semibold"},Dm={key:0,class:"card"},Nm={class:"space-y-4"},Lm={class:"flex items-center justify-between"},jm={class:"text-red-500 font-semibold"},Fm={class:"flex items-center justify-between"},Vm={class:"text-green-500 font-semibold"},Hm={class:"flex items-center justify-between"},Bm={class:"text-blue-500 font-semibold"},Gm={class:"flex items-center justify-between"},qm={class:"text-purple-500 font-semibold"},Um={key:0,class:"py-8 px-4"},Wm={class:"container mx-auto"},Km={class:"card"},zm={class:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-8 gap-4"},Qm={class:"text-center p-4 rounded-lg bg-gray-50 dark:bg-gray-800/50"},Jm={class:"text-2xl font-bold text-green-500"},Ym={class:"text-xs text-gray-400 dark:text-gray-500"},Xm={class:"text-center p-4 rounded-lg bg-gray-50 dark:bg-gray-800/50"},Zm={class:"text-2xl font-bold text-blue-500"},eg={class:"text-xs text-gray-400 dark:text-gray-500"},tg={class:"text-center p-4 rounded-lg bg-gray-50 dark:bg-gray-800/50"},sg={class:"text-2xl font-bold text-purple-500"},rg={class:"text-xs text-gray-400 dark:text-gray-500"},ng={class:"text-center p-4 rounded-lg bg-gray-50 dark:bg-gray-800/50"},ig={class:"text-2xl font-bold text-pink-500"},ag={class:"text-xs text-gray-400 dark:text-gray-500"},og={class:"text-center p-4 rounded-lg bg-gray-50 dark:bg-gray-800/50"},lg={class:"text-2xl font-bold text-red-500"},cg={class:"text-center p-4 rounded-lg bg-gray-50 dark:bg-gray-800/50"},dg={class:"text-2xl font-bold text-orange-500"},ug={class:"text-center p-4 rounded-lg bg-gray-50 dark:bg-gray-800/50"},fg={class:"text-2xl font-bold text-yellow-500"},mg={class:"text-center p-4 rounded-lg bg-gray-50 dark:bg-gray-800/50"},gg={class:"text-2xl font-bold text-indigo-500"},pg={class:"text-xs text-gray-400 dark:text-gray-500"},hg={class:"py-8 px-4"},xg={class:"container mx-auto"},yg={class:"grid md:grid-cols-2 gap-6"},vg={key:0,class:"card"},bg={class:"flex items-center justify-between mb-6"},_g={class:"px-2.5 py-1 rounded-full bg-gradient-to-r from-yellow-400 to-amber-500 text-white text-sm font-bold shadow-md"},kg={class:"grid grid-cols-4 sm:grid-cols-5 gap-3"},wg={class:"card"},Cg={key:1,class:"py-8 px-4"},Rg={class:"container mx-auto"},Sg={class:"flex flex-wrap gap-2"},Ag={__name:"Contributor",setup(e){const t=nr(),s=Pe("globalData"),r=xe(null),n=xe(!0),i=xe(null),a=ee(()=>[{label:"Dashboard",to:"/"},{label:"Contributors"},{label:r.value?.login||t.params.login}]);async function o(){n.value=!0,i.value=null;const l=t.params.login;try{const c=await fetch(`./data/contributors/${l}.json`);if(c.ok){const u=await c.json(),p=(s.value?.leaderboard||[]).find(h=>h.login===l);p&&(u.score={total:p.score,rank:p.rank,breakdown:u.score?.breakdown},u.achievements=p.achievements),r.value=u}else{let f=(s.value?.leaderboard||[]).find(p=>p.login===l);if(!f){const p=s.value?.repositories||[];for(const h of p){const S=h.contributors?.find(M=>M.login===l);if(S){f=S;break}}}f?r.value=f:i.value="Contributor not found"}}catch(c){i.value=`Failed to load contributor: ${c.message}`}n.value=!1}return Ft(o),Ge(()=>t.params,o),Ge(s,o),(l,c)=>(y(),w("div",null,[n.value?(y(),oe(nn,{key:0,message:"Loading contributor..."})):i.value?(y(),oe(an,{key:1,message:i.value},null,8,["message"])):r.value?(y(),w(J,{key:2},[d("header",H0,[d("div",B0,[$(ir,{breadcrumbs:a.value,title:""},null,8,["breadcrumbs"]),d("div",G0,[$(Es,{src:r.value.avatar_url,name:r.value.login,size:"2xl",class:"shadow-modern"},null,8,["src","name"]),d("div",q0,[d("h1",U0,v(r.value.name||r.value.login),1),d("p",W0,[$(Da,{url:`https://github.com/${r.value.login}`},{default:Z(()=>[se(" @"+v(r.value.login),1)]),_:1},8,["url"])]),d("div",K0,[d("div",z0,[c[0]||(c[0]=d("span",{class:"text-sm text-gray-500 dark:text-gray-400"},"Score:",-1)),d("span",Q0,v(A(U)(r.value.score?.total||r.value.score||0)),1)]),r.value.score?.rank?(y(),w("div",J0,[se(" Rank #"+v(r.value.score.rank)+" ",1),r.value.score?.percentile_rank?(y(),w("span",Y0," (Top "+v(A(jd)(r.value.score.percentile_rank))+") ",1)):G("",!0)])):G("",!0)]),r.value.achievements?.length?(y(),w("div",X0,[(y(!0),w(J,null,be(A(Ma)(r.value.achievements),u=>(y(),oe(Cs,{key:u,"achievement-id":u,size:"lg","show-label":""},null,8,["achievement-id"]))),128))])):G("",!0)])])])]),d("section",Z0,[d("div",em,[d("div",tm,[$(we,{value:r.value.commit_count||0,label:"Commits",icon:"fas fa-code-commit","icon-color":"text-green-500"},null,8,["value"]),$(we,{value:r.value.prs_opened||0,label:"PRs Opened",icon:"fas fa-code-pull-request","icon-color":"text-blue-500"},null,8,["value"]),$(we,{value:r.value.prs_merged||0,label:"PRs Merged",icon:"fas fa-code-merge","icon-color":"text-purple-500"},null,8,["value"]),$(we,{value:r.value.reviews_given||0,label:"Reviews Given",icon:"fas fa-eye","icon-color":"text-orange-500"},null,8,["value"])])])]),d("section",sm,[d("div",rm,[d("div",nm,[d("div",im,[c[9]||(c[9]=d("h3",{class:"text-lg font-semibold text-gray-800 dark:text-white mb-4"},[d("i",{class:"fas fa-code text-green-500 mr-2"}),se("Code Contributions ")],-1)),d("div",am,[d("div",om,[c[1]||(c[1]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Lines Added",-1)),d("span",lm," +"+v(A(U)(r.value.lines_added||0)),1)]),d("div",cm,[c[2]||(c[2]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Lines Deleted",-1)),d("span",dm," -"+v(A(U)(r.value.lines_deleted||0)),1)]),r.value.meaningful_lines_added!==void 0?(y(),w("div",um,[c[3]||(c[3]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Meaningful Lines Added",-1)),d("span",fm," +"+v(A(U)(r.value.meaningful_lines_added||0)),1)])):G("",!0),r.value.meaningful_lines_deleted!==void 0?(y(),w("div",mm,[c[4]||(c[4]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Meaningful Lines Deleted",-1)),d("span",gm," -"+v(A(U)(r.value.meaningful_lines_deleted||0)),1)])):G("",!0),r.value.comment_lines_added!==void 0?(y(),w("div",pm,[c[5]||(c[5]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Comment Lines Added",-1)),d("span",hm," +"+v(A(U)(r.value.comment_lines_added||0)),1)])):G("",!0),r.value.comment_lines_deleted!==void 0?(y(),w("div",xm,[c[6]||(c[6]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Comment Lines Deleted",-1)),d("span",ym," -"+v(A(U)(r.value.comment_lines_deleted||0)),1)])):G("",!0),d("div",vm,[c[7]||(c[7]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Files Changed",-1)),d("span",bm,v(A(U)(r.value.files_changed||0)),1)]),r.value.avg_pr_size?(y(),w("div",_m,[c[8]||(c[8]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Avg PR Size",-1)),d("span",km,v(A(U)(Math.round(r.value.avg_pr_size)))+" lines ",1)])):G("",!0)])]),d("div",wm,[c[15]||(c[15]=d("h3",{class:"text-lg font-semibold text-gray-800 dark:text-white mb-4"},[d("i",{class:"fas fa-comments text-purple-500 mr-2"}),se("Review Activity ")],-1)),d("div",Cm,[d("div",Rm,[c[10]||(c[10]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Reviews Given",-1)),d("span",Sm,v(A(U)(r.value.reviews_given||0)),1)]),d("div",Am,[c[11]||(c[11]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Approvals",-1)),d("span",Em,v(A(U)(r.value.approvals_given||0)),1)]),d("div",Pm,[c[12]||(c[12]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Changes Requested",-1)),d("span",Tm,v(A(U)(r.value.changes_requested||0)),1)]),d("div",$m,[c[13]||(c[13]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Review Comments",-1)),d("span",Om,v(A(U)(r.value.review_comments||0)),1)]),r.value.avg_review_time_hours?(y(),w("div",Im,[c[14]||(c[14]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Avg Review Time",-1)),d("span",Mm,v(A(Ld)(r.value.avg_review_time_hours)),1)])):G("",!0)])]),r.value.issues_opened||r.value.issues_closed||r.value.issue_comments||r.value.issue_references_in_commits?(y(),w("div",Dm,[c[20]||(c[20]=d("h3",{class:"text-lg font-semibold text-gray-800 dark:text-white mb-4"},[d("i",{class:"fas fa-bug text-red-500 mr-2"}),se("Issue Activity ")],-1)),d("div",Nm,[d("div",Lm,[c[16]||(c[16]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Issues Opened",-1)),d("span",jm,v(A(U)(r.value.issues_opened||0)),1)]),d("div",Fm,[c[17]||(c[17]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Issues Closed",-1)),d("span",Vm,v(A(U)(r.value.issues_closed||0)),1)]),d("div",Hm,[c[18]||(c[18]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Issue Comments",-1)),d("span",Bm,v(A(U)(r.value.issue_comments||0)),1)]),d("div",Gm,[c[19]||(c[19]=d("span",{class:"text-gray-600 dark:text-gray-300"},"Issue References in Commits",-1)),d("span",qm,v(A(U)(r.value.issue_references_in_commits||0)),1)])])])):G("",!0)])])]),r.value.score?.breakdown?(y(),w("section",Um,[d("div",Wm,[d("div",Km,[c[32]||(c[32]=d("h3",{class:"text-lg font-semibold text-gray-800 dark:text-white mb-4"},[d("i",{class:"fas fa-chart-pie gradient-text mr-2"}),se("Score Breakdown ")],-1)),d("div",zm,[d("div",Qm,[d("div",Jm,v(A(U)(r.value.score.breakdown.commits||0)),1),c[21]||(c[21]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400 mt-1"},"Commits",-1)),d("div",Ym,v(r.value.commit_count||0)+" × 10 pts",1)]),d("div",Xm,[d("div",Zm,v(A(U)(r.value.score.breakdown.prs||0)),1),c[22]||(c[22]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400 mt-1"},"PRs",-1)),d("div",eg,v(r.value.prs_opened||0)+" opened + "+v(r.value.prs_merged||0)+" merged",1)]),d("div",tg,[d("div",sg,v(A(U)(r.value.score.breakdown.reviews||0)),1),c[23]||(c[23]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400 mt-1"},"Reviews",-1)),d("div",rg,v(r.value.reviews_given||0)+" × 30 pts",1)]),d("div",ng,[d("div",ig,v(A(U)(r.value.score.breakdown.comments||0)),1),c[24]||(c[24]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400 mt-1"},"Comments",-1)),d("div",ag,v(r.value.review_comments||0)+" × 5 pts",1)]),d("div",og,[d("div",lg,v(A(U)(r.value.score.breakdown.issues||0)),1),c[25]||(c[25]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400 mt-1"},"Issues",-1)),c[26]||(c[26]=d("div",{class:"text-xs text-gray-400 dark:text-gray-500"},"opened, closed, comments, refs",-1))]),d("div",cg,[d("div",dg,v(A(U)(r.value.score.breakdown.line_changes||0)),1),c[27]||(c[27]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400 mt-1"},"Line Changes",-1)),c[28]||(c[28]=d("div",{class:"text-xs text-gray-400 dark:text-gray-500"},"meaningful lines × 0.1 pts",-1))]),d("div",ug,[d("div",fg,v(A(U)(r.value.score.breakdown.response_bonus||0)),1),c[29]||(c[29]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400 mt-1"},"Response Bonus",-1)),c[30]||(c[30]=d("div",{class:"text-xs text-gray-400 dark:text-gray-500"},"fast review bonus",-1))]),d("div",mg,[d("div",gg,v(A(U)(r.value.score.breakdown.out_of_hours||0)),1),c[31]||(c[31]=d("div",{class:"text-xs text-gray-500 dark:text-gray-400 mt-1"},"Out of Hours",-1)),d("div",pg,v(r.value.out_of_hours_count||0)+" × 2 pts",1)])])])])])):G("",!0),d("section",hg,[d("div",xg,[d("div",yg,[r.value.achievements?.length?(y(),w("div",vg,[d("div",bg,[c[33]||(c[33]=d("h3",{class:"text-lg font-semibold text-gray-800 dark:text-white"},[d("i",{class:"fas fa-award gradient-text mr-2"}),se("Achievements Earned ")],-1)),d("span",_g,v(r.value.achievements.length),1)]),d("div",kg,[(y(!0),w(J,null,be(r.value.achievements,u=>(y(),w("div",{key:u,class:"flex flex-col items-center p-2 rounded-xl bg-gray-50 dark:bg-gray-800/50 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"},[$(Cs,{"achievement-id":u,size:"md","show-label":""},null,8,["achievement-id"])]))),128))])])):G("",!0),d("div",wg,[c[34]||(c[34]=d("h3",{class:"text-lg font-semibold text-gray-800 dark:text-white mb-6"},[d("i",{class:"fas fa-chart-line text-primary-500 mr-2"}),se("Next Achievements ")],-1)),$(V0,{contributor:r.value,"max-display":6},null,8,["contributor"])])])])]),r.value.repositories_contributed?.length?(y(),w("section",Cg,[d("div",Rg,[$(Ue,{title:`Contributed to ${r.value.repositories_contributed.length} Repositories`,icon:"fas fa-folder-tree","icon-color":"text-blue-500"},null,8,["title"]),d("div",Sg,[(y(!0),w(J,null,be(r.value.repositories_contributed,u=>(y(),oe(A(ke),{key:u,to:`/repos/${u}`,class:"inline-flex items-center px-3 py-1.5 rounded-full text-sm bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-primary-100 dark:hover:bg-primary-900/30 hover:text-primary-700 dark:hover:text-primary-300 transition-colors"},{default:Z(()=>[c[35]||(c[35]=d("i",{class:"fas fa-code-branch text-gray-400 mr-2"},null,-1)),se(" "+v(u),1)]),_:2},1032,["to"]))),128))])])])):G("",!0)],64)):G("",!0)]))}},Eg={id:"scoring",class:"py-8 px-4"},Pg={class:"container mx-auto"},Tg={id:"leaderboard-info",class:"py-8 px-4"},$g={class:"container mx-auto"},Og={id:"achievements",class:"py-8 px-4"},Ig={class:"container mx-auto"},Mg={id:"data-sources",class:"py-8 px-4"},Dg={class:"container mx-auto"},Ng={__name:"HowScoringWorks",setup(e){return(t,s)=>(y(),w("div",null,[s[4]||(s[4]=as('<header class="py-10 sm:py-16 px-4"><div class="container mx-auto text-center animate-fade-in-up"><h1 class="text-3xl sm:text-4xl md:text-5xl font-bold mb-3 sm:mb-4"> How <span class="gradient-text">Scoring</span> Works </h1><p class="text-base sm:text-lg md:text-xl text-gray-600 dark:text-gray-300 max-w-2xl mx-auto px-2"> Understanding the point system, leaderboard rankings, and achievement criteria that power Git Velocity. </p></div></header><section class="py-8 px-4"><div class="container mx-auto"><div class="card glass shadow-modern mb-8"><h2 class="text-xl font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center"><i class="fas fa-info-circle mr-3 text-blue-500"></i> Overview </h2><p class="text-gray-600 dark:text-gray-400 mb-4"> Git Velocity calculates developer contributions by analyzing GitHub activity across configured repositories. The scoring system is designed to encourage well-rounded contributions including code commits, pull requests, code reviews, and collaboration. </p><div class="grid sm:grid-cols-3 gap-4 mt-6"><div class="text-center p-4 bg-primary-50 dark:bg-primary-900/20 rounded-lg"><i class="fas fa-calculator text-primary-500 text-2xl mb-2"></i><h3 class="font-medium text-gray-900 dark:text-gray-100">Point-Based</h3><p class="text-sm text-gray-500 dark:text-gray-400">Activities earn configurable points</p></div><div class="text-center p-4 bg-accent-50 dark:bg-accent-900/20 rounded-lg"><i class="fas fa-layer-group text-accent-500 text-2xl mb-2"></i><h3 class="font-medium text-gray-900 dark:text-gray-100">Aggregated</h3><p class="text-sm text-gray-500 dark:text-gray-400">Combined across all repositories</p></div><div class="text-center p-4 bg-indigo-50 dark:bg-indigo-900/20 rounded-lg"><i class="fas fa-trophy text-indigo-500 text-2xl mb-2"></i><h3 class="font-medium text-gray-900 dark:text-gray-100">Achievement-Driven</h3><p class="text-sm text-gray-500 dark:text-gray-400">Unlock badges for milestones</p></div></div></div></div></section>',2)),d("section",Eg,[d("div",Pg,[$(Ue,{title:"Point Calculations",icon:"fas fa-coins","icon-color":"text-yellow-500"}),s[0]||(s[0]=as(`<div class="space-y-6"><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-lg sm:text-xl"><i class="fas fa-function mr-2 text-primary-500"></i> Score Formula </h3><div class="bg-gray-900 text-gray-100 p-3 sm:p-4 rounded-lg overflow-x-auto mb-4 -mx-2 sm:mx-0"><pre class="text-xs sm:text-sm font-mono whitespace-pre-wrap sm:whitespace-pre"><code>Total Score = Commits + Lines + PRs + Reviews + Comments + Issues + Bonuses
|
||
|
||
Where:
|
||
Commits = commit_count x 10 pts
|
||
Lines = (added x 0.1) + (deleted x 0.05) pts
|
||
PRs = (opened x 25) + (merged x 50) pts
|
||
Reviews = reviews_given x 30 pts
|
||
Comments = review_comments x 5 pts
|
||
Issues = (opened x 10) + (closed x 20) + (comments x 5) + (refs x 5) pts
|
||
Response = fast review bonus (0-50 pts)
|
||
Out of Hrs = commits outside 9-5 x 2 pts</code></pre></div><p class="text-xs sm:text-sm text-gray-500 dark:text-gray-400"><i class="fas fa-info-circle mr-1"></i> All point values are configurable in your <code class="text-primary-600 dark:text-primary-400">.git-velocity.yaml</code> file. </p></div><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-xl"><i class="fas fa-coins mr-2 text-yellow-500"></i> Default Point Values </h3><div class="grid grid-cols-1 gap-3 sm:hidden"><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-code-commit text-primary-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Commit</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">10 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-flask text-green-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Commit + Tests</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">15 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-plus text-blue-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Lines Added</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">0.1 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-minus text-red-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Lines Deleted</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">0.05 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-code-pull-request text-accent-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">PR Opened</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">25 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-code-merge text-indigo-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">PR Merged</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">50 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-eye text-cyan-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">PR Reviewed</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">30 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-comment text-orange-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Review Comment</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">5 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-bolt text-yellow-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Fast Review <1h</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">50 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-stopwatch text-yellow-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Fast Review <4h</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">25 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-clock text-yellow-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Fast Review <24h</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">10 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-moon text-gray-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Out of Hours</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">2 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-circle-exclamation text-teal-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Issue Opened</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">10 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-circle-check text-green-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Issue Closed</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">20 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-comment-dots text-blue-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Issue Comment</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">5 pts</span></div><div class="flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2"><i class="fas fa-link text-accent-500"></i><span class="text-sm font-medium text-gray-900 dark:text-gray-100">Issue Reference</span></div><span class="font-mono font-bold text-primary-600 dark:text-primary-400">5 pts</span></div></div><div class="hidden sm:block overflow-x-auto"><table class="w-full text-sm"><thead><tr class="border-b border-gray-200 dark:border-gray-700"><th class="text-left py-3 text-gray-600 dark:text-gray-400">Activity</th><th class="text-left py-3 text-gray-600 dark:text-gray-400">Points</th><th class="text-left py-3 text-gray-600 dark:text-gray-400">Description</th></tr></thead><tbody class="text-gray-700 dark:text-gray-300"><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-code-commit text-primary-500 mr-2"></i>Commit</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">10</td><td class="py-3">Per commit pushed</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-flask text-green-500 mr-2"></i>Commit with Tests</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">15</td><td class="py-3">Commit that includes test files</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-plus text-blue-500 mr-2"></i>Lines Added</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">0.1</td><td class="py-3">Per meaningful line added</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-minus text-red-500 mr-2"></i>Lines Deleted</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">0.05</td><td class="py-3">Per meaningful line removed</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-code-pull-request text-accent-500 mr-2"></i>PR Opened</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">25</td><td class="py-3">Per pull request created</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-code-merge text-indigo-500 mr-2"></i>PR Merged</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">50</td><td class="py-3">Per pull request merged</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-eye text-cyan-500 mr-2"></i>PR Reviewed</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">30</td><td class="py-3">Per PR review submitted</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-comment text-orange-500 mr-2"></i>Review Comment</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">5</td><td class="py-3">Per comment on PR reviews</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-bolt text-yellow-500 mr-2"></i>Fast Review (<1h)</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">50</td><td class="py-3">Bonus for average response under 1 hour</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-stopwatch text-yellow-500 mr-2"></i>Fast Review (<4h)</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">25</td><td class="py-3">Bonus for average response under 4 hours</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-clock text-yellow-500 mr-2"></i>Fast Review (<24h)</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">10</td><td class="py-3">Bonus for average response under 24 hours</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-moon text-gray-500 mr-2"></i>Out of Hours</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">2</td><td class="py-3">Per commit outside 9am-5pm</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-circle-exclamation text-teal-500 mr-2"></i>Issue Opened</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">10</td><td class="py-3">Per issue created</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-circle-check text-green-500 mr-2"></i>Issue Closed</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">20</td><td class="py-3">Per issue resolved/closed</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-3"><i class="fas fa-comment-dots text-blue-500 mr-2"></i>Issue Comment</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">5</td><td class="py-3">Per comment on issues</td></tr><tr><td class="py-3"><i class="fas fa-link text-accent-500 mr-2"></i>Issue Reference</td><td class="py-3 font-mono text-primary-600 dark:text-primary-400">5</td><td class="py-3">Per commit referencing an issue (#123)</td></tr></tbody></table></div></div><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-xl"><i class="fas fa-filter mr-2 text-green-500"></i> Meaningful Lines </h3><p class="text-gray-600 dark:text-gray-400 mb-4"> By default, Git Velocity uses <strong>meaningful lines</strong> instead of raw line counts. This filters out noise and rewards actual code contributions: </p><div class="grid sm:grid-cols-2 gap-4"><div class="p-4 bg-green-50 dark:bg-green-900/20 rounded-lg"><h4 class="font-medium text-green-700 dark:text-green-400 mb-2"><i class="fas fa-check mr-2"></i>Counted as Meaningful </h4><ul class="text-sm text-gray-600 dark:text-gray-400 space-y-1"><li>Actual code logic</li><li>Function definitions</li><li>Variable declarations</li><li>Import statements</li></ul></div><div class="p-4 bg-red-50 dark:bg-red-900/20 rounded-lg"><h4 class="font-medium text-red-700 dark:text-red-400 mb-2"><i class="fas fa-times mr-2"></i>Filtered Out </h4><ul class="text-sm text-gray-600 dark:text-gray-400 space-y-1"><li>Empty lines / whitespace</li><li>Single-line comments</li><li>Multi-line comment blocks</li><li>Documentation strings</li></ul></div></div><p class="text-sm text-gray-500 dark:text-gray-400 mt-4"><i class="fas fa-info-circle mr-1"></i> Meaningful lines filtering is always enabled to accurately reflect code contributions. </p></div></div>`,1))])]),d("section",Tg,[d("div",$g,[$(Ue,{title:"Leaderboard Rankings",icon:"fas fa-list-ol","icon-color":"text-accent-500"}),s[1]||(s[1]=as('<div class="space-y-6"><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-xl"><i class="fas fa-list-ol mr-2 text-accent-500"></i> Ranking Process </h3><ol class="space-y-4"><li class="flex items-start gap-3"><span class="flex-shrink-0 w-8 h-8 rounded-full bg-primary-100 dark:bg-primary-900/30 flex items-center justify-center text-primary-600 dark:text-primary-400 font-bold">1</span><div><h4 class="font-medium text-gray-900 dark:text-gray-100">Aggregate Across Repos</h4><p class="text-sm text-gray-600 dark:text-gray-400">Metrics from all configured repositories are combined per contributor</p></div></li><li class="flex items-start gap-3"><span class="flex-shrink-0 w-8 h-8 rounded-full bg-accent-100 dark:bg-accent-900/30 flex items-center justify-center text-accent-600 dark:text-accent-400 font-bold">2</span><div><h4 class="font-medium text-gray-900 dark:text-gray-100">Calculate Total Score</h4><p class="text-sm text-gray-600 dark:text-gray-400">Apply point values to each activity type and sum the breakdown</p></div></li><li class="flex items-start gap-3"><span class="flex-shrink-0 w-8 h-8 rounded-full bg-indigo-100 dark:bg-indigo-900/30 flex items-center justify-center text-indigo-600 dark:text-indigo-400 font-bold">3</span><div><h4 class="font-medium text-gray-900 dark:text-gray-100">Sort by Score</h4><p class="text-sm text-gray-600 dark:text-gray-400">Contributors are sorted in descending order by total score</p></div></li><li class="flex items-start gap-3"><span class="flex-shrink-0 w-8 h-8 rounded-full bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center text-blue-600 dark:text-blue-400 font-bold">4</span><div><h4 class="font-medium text-gray-900 dark:text-gray-100">Assign Ranks & Percentiles</h4><p class="text-sm text-gray-600 dark:text-gray-400">Each contributor receives a rank (1st, 2nd...) and percentile position</p></div></li></ol></div><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-xl"><i class="fas fa-medal mr-2 text-yellow-500"></i> Top Achievers </h3><p class="text-gray-600 dark:text-gray-400 mb-4"> Git Velocity tracks top performers in each category: </p><div class="grid sm:grid-cols-2 gap-4"><div class="p-4 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2 mb-2"><i class="fas fa-trophy text-yellow-500"></i><span class="font-medium text-gray-900 dark:text-gray-100">Overall Leader</span></div><p class="text-sm text-gray-500 dark:text-gray-400">Highest total score</p></div><div class="p-4 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2 mb-2"><i class="fas fa-code-commit text-primary-500"></i><span class="font-medium text-gray-900 dark:text-gray-100">Top Committer</span></div><p class="text-sm text-gray-500 dark:text-gray-400">Most commits</p></div><div class="p-4 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2 mb-2"><i class="fas fa-eye text-accent-500"></i><span class="font-medium text-gray-900 dark:text-gray-100">Top Reviewer</span></div><p class="text-sm text-gray-500 dark:text-gray-400">Most reviews given</p></div><div class="p-4 bg-gray-50 dark:bg-gray-800 rounded-lg"><div class="flex items-center gap-2 mb-2"><i class="fas fa-code-pull-request text-indigo-500"></i><span class="font-medium text-gray-900 dark:text-gray-100">Top PR Author</span></div><p class="text-sm text-gray-500 dark:text-gray-400">Most PRs opened</p></div></div></div><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-xl"><i class="fas fa-users mr-2 text-blue-500"></i> Team Scoring </h3><p class="text-gray-600 dark:text-gray-400 mb-4"> When teams are configured, Git Velocity calculates team metrics: </p><ul class="space-y-2 text-gray-600 dark:text-gray-400"><li><i class="fas fa-check text-green-500 mr-2"></i><strong>Total Team Score:</strong> Sum of all member scores</li><li><i class="fas fa-check text-green-500 mr-2"></i><strong>Average Score:</strong> Total score / number of members</li><li><i class="fas fa-check text-green-500 mr-2"></i><strong>Member Breakdown:</strong> Individual scores and achievements per team member</li></ul></div></div>',1))])]),d("section",Og,[d("div",Ig,[$(Ue,{title:"Achievement System",icon:"fas fa-trophy","icon-color":"text-yellow-500"}),s[2]||(s[2]=as('<p class="text-gray-600 dark:text-gray-300 mb-8 text-center">115 achievements across 26 categories with tiered progression</p><div class="space-y-6"><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-xl"><i class="fas fa-trophy mr-2 text-yellow-500"></i> Achievement Categories </h3><div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4"><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-code-commit text-primary-500 mr-2"></i>Commits </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Tiers: 1, 10, 50, 100, 500, 1000</p><div class="text-xs text-gray-600 dark:text-gray-400"> First Steps, Getting Started, Contributor, Committed, Code Machine, Code Warrior </div></div><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-code-pull-request text-accent-500 mr-2"></i>PRs Opened </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Tiers: 1, 10, 25, 50, 100, 250</p><div class="text-xs text-gray-600 dark:text-gray-400"> PR Pioneer, PR Regular, PR Pro, Merge Master, PR Champion, PR Legend </div></div><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-eye text-indigo-500 mr-2"></i>Reviews Given </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Tiers: 1, 10, 25, 50, 100, 250</p><div class="text-xs text-gray-600 dark:text-gray-400"> First Review, Reviewer, Review Regular, Review Expert, Review Guru, Review Master </div></div><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-comment text-blue-500 mr-2"></i>Review Comments </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Tiers: 10, 50, 100, 250, 500</p><div class="text-xs text-gray-600 dark:text-gray-400"> Commentator, Feedback Giver, Code Critic, Feedback Expert, Comment Champion </div></div><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-plus text-green-500 mr-2"></i>Lines Added </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Tiers: 100, 1K, 5K, 10K, 50K</p><div class="text-xs text-gray-600 dark:text-gray-400"> First Hundred, Thousand Lines, Five Thousand, Ten Thousand, Code Mountain </div></div><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-minus text-red-500 mr-2"></i>Lines Deleted </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Tiers: 100, 500, 1K, 5K, 10K</p><div class="text-xs text-gray-600 dark:text-gray-400"> Tidying Up, Spring Cleaning, Code Cleaner, Refactoring Hero, Deletion Master </div></div><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-bolt text-yellow-500 mr-2"></i>Response Time </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Tiers: <24h, <4h, <1h</p><div class="text-xs text-gray-600 dark:text-gray-400"> Same Day Reviewer, Quick Responder, Speed Demon </div></div><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-fire text-orange-500 mr-2"></i>Contribution Streaks </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Tiers: 3, 7, 14, 30 days</p><div class="text-xs text-gray-600 dark:text-gray-400"> Getting Rolling, Week Warrior, Two Week Streak, Month Master </div></div><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-clock text-cyan-500 mr-2"></i>Activity Patterns </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Early Bird, Night Owl, Weekend Warrior</p><div class="text-xs text-gray-600 dark:text-gray-400"> Commits at different times of day unlock special badges </div></div><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-circle-exclamation text-teal-500 mr-2"></i>Issues Opened </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Tiers: 1, 5, 10, 25, 50</p><div class="text-xs text-gray-600 dark:text-gray-400"> Issue Opener, Reporter, Bug Hunter, Issue Tracker, Issue Master </div></div><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-circle-check text-green-500 mr-2"></i>Issues Closed </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Tiers: 1, 5, 10, 25, 50</p><div class="text-xs text-gray-600 dark:text-gray-400"> Issue Closer, Problem Solver, Resolver, Issue Crusher, Closure King </div></div><div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg"><h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2"><i class="fas fa-comment-dots text-blue-500 mr-2"></i>Issue Comments </h4><p class="text-xs text-gray-500 dark:text-gray-400 mb-2">Tiers: 5, 10, 25, 50, 100</p><div class="text-xs text-gray-600 dark:text-gray-400"> Issue Commenter, Discussion Starter, Feedback Provider, Issue Conversationalist, Discussion Champion </div></div></div></div><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-xl"><i class="fas fa-unlock mr-2 text-green-500"></i> How Achievements Are Earned </h3><p class="text-gray-600 dark:text-gray-400 mb-4"> Each achievement has a <strong>condition type</strong> and <strong>threshold</strong>. When your metrics meet or exceed the threshold, the achievement is unlocked. </p><div class="overflow-x-auto"><table class="w-full text-sm"><thead><tr class="border-b border-gray-200 dark:border-gray-700"><th class="text-left py-2 text-gray-600 dark:text-gray-400">Condition Type</th><th class="text-left py-2 text-gray-600 dark:text-gray-400">Metric Checked</th><th class="text-left py-2 text-gray-600 dark:text-gray-400">Comparison</th></tr></thead><tbody class="text-gray-700 dark:text-gray-300"><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-2 font-mono text-xs">commit_count</td><td class="py-2">Total commits</td><td class="py-2">≥ threshold</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-2 font-mono text-xs">pr_opened_count</td><td class="py-2">PRs opened</td><td class="py-2">≥ threshold</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-2 font-mono text-xs">review_count</td><td class="py-2">Reviews given</td><td class="py-2">≥ threshold</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-2 font-mono text-xs">avg_review_time_hours</td><td class="py-2">Average review response</td><td class="py-2">≤ threshold (lower is better)</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-2 font-mono text-xs">longest_streak</td><td class="py-2">Consecutive active days</td><td class="py-2">≥ threshold</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-2 font-mono text-xs">perfect_prs</td><td class="py-2">PRs with no changes requested</td><td class="py-2">≥ threshold</td></tr><tr class="border-b border-gray-100 dark:border-gray-800"><td class="py-2 font-mono text-xs">issues_opened</td><td class="py-2">Issues created</td><td class="py-2">≥ threshold</td></tr><tr><td class="py-2 font-mono text-xs">issues_closed</td><td class="py-2">Issues resolved/closed</td><td class="py-2">≥ threshold</td></tr></tbody></table></div><p class="text-sm text-gray-500 dark:text-gray-400 mt-4"><i class="fas fa-shield-halved mr-1"></i> Achievement definitions are hardcoded and cannot be customized to prevent manipulation. </p></div><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-xl"><i class="fas fa-layer-group mr-2 text-accent-500"></i> Tiered Progression </h3><p class="text-gray-600 dark:text-gray-400 mb-4"> Most achievements have multiple tiers. As you progress, you unlock higher tiers: </p><div class="grid grid-cols-2 sm:grid-cols-4 gap-2 sm:gap-3 mb-4"><div class="flex items-center gap-2 p-2 sm:p-3 bg-gray-100 dark:bg-gray-800 rounded-lg"><span class="w-6 h-6 sm:w-8 sm:h-8 flex items-center justify-center rounded-full bg-gray-400 text-white text-xs sm:text-sm font-bold">1</span><div class="text-xs sm:text-sm"><span class="font-medium text-gray-700 dark:text-gray-300">Tier 1</span></div></div><div class="flex items-center gap-2 p-2 sm:p-3 bg-gray-100 dark:bg-gray-800 rounded-lg"><span class="w-6 h-6 sm:w-8 sm:h-8 flex items-center justify-center rounded-full bg-gray-500 text-white text-xs sm:text-sm font-bold">10</span><div class="text-xs sm:text-sm"><span class="font-medium text-gray-700 dark:text-gray-300">Tier 2</span></div></div><div class="flex items-center gap-2 p-2 sm:p-3 bg-green-50 dark:bg-green-900/20 rounded-lg"><span class="w-6 h-6 sm:w-8 sm:h-8 flex items-center justify-center rounded-full bg-green-500 text-white text-xs sm:text-sm font-bold">25</span><div class="text-xs sm:text-sm"><span class="font-medium text-green-700 dark:text-green-400">Tier 3</span></div></div><div class="flex items-center gap-2 p-2 sm:p-3 bg-blue-50 dark:bg-blue-900/20 rounded-lg"><span class="w-6 h-6 sm:w-8 sm:h-8 flex items-center justify-center rounded-full bg-blue-500 text-white text-xs sm:text-sm font-bold">50</span><div class="text-xs sm:text-sm"><span class="font-medium text-blue-700 dark:text-blue-400">Tier 4</span></div></div><div class="flex items-center gap-2 p-2 sm:p-3 bg-purple-50 dark:bg-purple-900/20 rounded-lg"><span class="w-6 h-6 sm:w-8 sm:h-8 flex items-center justify-center rounded-full bg-purple-500 text-white text-xs sm:text-sm font-bold">100</span><div class="text-xs sm:text-sm"><span class="font-medium text-purple-700 dark:text-purple-400">Tier 5</span></div></div><div class="flex items-center gap-2 p-2 sm:p-3 bg-primary-50 dark:bg-primary-900/20 rounded-lg"><span class="w-6 h-6 sm:w-8 sm:h-8 flex items-center justify-center rounded-full bg-primary-500 text-white text-xs sm:text-sm font-bold">250</span><div class="text-xs sm:text-sm"><span class="font-medium text-primary-700 dark:text-primary-400">Tier 6</span></div></div><div class="flex items-center gap-2 p-2 sm:p-3 bg-orange-50 dark:bg-orange-900/20 rounded-lg"><span class="w-6 h-6 sm:w-8 sm:h-8 flex items-center justify-center rounded-full bg-orange-500 text-white text-xs sm:text-sm font-bold">500</span><div class="text-xs sm:text-sm"><span class="font-medium text-orange-700 dark:text-orange-400">Tier 7</span></div></div><div class="flex items-center gap-2 p-2 sm:p-3 bg-yellow-50 dark:bg-yellow-900/20 rounded-lg"><span class="w-6 h-6 sm:w-8 sm:h-8 flex items-center justify-center rounded-full bg-gradient-to-r from-yellow-500 to-amber-500 text-white text-xs sm:text-sm font-bold">1k+</span><div class="text-xs sm:text-sm"><span class="font-medium text-yellow-700 dark:text-yellow-400">Tier 8+</span></div></div></div><p class="text-sm text-gray-500 dark:text-gray-400"> The leaderboard shows only the highest tier achieved per category for each contributor. </p></div></div>',2))])]),d("section",Mg,[d("div",Dg,[$(Ue,{title:"Data Sources",icon:"fab fa-github","icon-color":"text-gray-700 dark:text-gray-300"}),s[3]||(s[3]=as('<div class="space-y-6"><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-xl"><i class="fab fa-github mr-2 text-gray-700 dark:text-gray-300"></i> GitHub API Data </h3><div class="grid sm:grid-cols-2 gap-6"><div><h4 class="font-medium text-gray-800 dark:text-gray-200 mb-3">Commits</h4><ul class="text-sm text-gray-600 dark:text-gray-400 space-y-1"><li><i class="fas fa-check text-green-500 mr-2"></i>SHA, message, timestamp</li><li><i class="fas fa-check text-green-500 mr-2"></i>Author (login, name, email)</li><li><i class="fas fa-check text-green-500 mr-2"></i>Additions, deletions, files changed</li><li><i class="fas fa-check text-green-500 mr-2"></i>Patch/diff for line analysis</li></ul></div><div><h4 class="font-medium text-gray-800 dark:text-gray-200 mb-3">Pull Requests</h4><ul class="text-sm text-gray-600 dark:text-gray-400 space-y-1"><li><i class="fas fa-check text-green-500 mr-2"></i>State (open, merged, closed)</li><li><i class="fas fa-check text-green-500 mr-2"></i>Author and timestamps</li><li><i class="fas fa-check text-green-500 mr-2"></i>Size (additions, deletions)</li><li><i class="fas fa-check text-green-500 mr-2"></i>Comments count</li></ul></div><div><h4 class="font-medium text-gray-800 dark:text-gray-200 mb-3">Reviews</h4><ul class="text-sm text-gray-600 dark:text-gray-400 space-y-1"><li><i class="fas fa-check text-green-500 mr-2"></i>Review state (approved, changes requested)</li><li><i class="fas fa-check text-green-500 mr-2"></i>Reviewer login</li><li><i class="fas fa-check text-green-500 mr-2"></i>Submission timestamp</li><li><i class="fas fa-check text-green-500 mr-2"></i>Comment count</li></ul></div><div><h4 class="font-medium text-gray-800 dark:text-gray-200 mb-3">User Profiles</h4><ul class="text-sm text-gray-600 dark:text-gray-400 space-y-1"><li><i class="fas fa-check text-green-500 mr-2"></i>GitHub login (username)</li><li><i class="fas fa-check text-green-500 mr-2"></i>Display name</li><li><i class="fas fa-check text-green-500 mr-2"></i>Avatar URL</li><li><i class="fas fa-check text-green-500 mr-2"></i>Public email (for deduplication)</li></ul></div></div></div><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-xl"><i class="fas fa-calculator mr-2 text-blue-500"></i> Derived Metrics </h3><p class="text-gray-600 dark:text-gray-400 mb-4"> These metrics are calculated from raw data: </p><div class="grid sm:grid-cols-2 gap-4 text-sm"><div class="p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><strong class="text-gray-900 dark:text-gray-100">Meaningful Lines</strong><p class="text-gray-500 dark:text-gray-400">Parsed from commit diffs, filtering comments/whitespace</p></div><div class="p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><strong class="text-gray-900 dark:text-gray-100">Average Review Time</strong><p class="text-gray-500 dark:text-gray-400">Time between PR creation and first review</p></div><div class="p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><strong class="text-gray-900 dark:text-gray-100">Contribution Streaks</strong><p class="text-gray-500 dark:text-gray-400">Consecutive days with activity</p></div><div class="p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><strong class="text-gray-900 dark:text-gray-100">Perfect PRs</strong><p class="text-gray-500 dark:text-gray-400">PRs merged without "changes requested" reviews</p></div><div class="p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><strong class="text-gray-900 dark:text-gray-100">Out of Hours</strong><p class="text-gray-500 dark:text-gray-400">Commits outside 9am-5pm based on commit timestamp</p></div><div class="p-3 bg-gray-50 dark:bg-gray-800 rounded-lg"><strong class="text-gray-900 dark:text-gray-100">Issue References</strong><p class="text-gray-500 dark:text-gray-400">Commits containing #123 patterns (fixes, closes, resolves, refs)</p></div></div></div><div class="card glass shadow-modern"><h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center text-xl"><i class="fas fa-robot mr-2 text-red-500"></i> Bot Filtering </h3><p class="text-gray-600 dark:text-gray-400 mb-4"> By default, bot activity is excluded from metrics. The following patterns are automatically filtered: </p><div class="flex flex-wrap gap-2"><code class="px-2 py-1 bg-gray-100 dark:bg-gray-700 rounded text-sm">*[bot]</code><code class="px-2 py-1 bg-gray-100 dark:bg-gray-700 rounded text-sm">dependabot*</code><code class="px-2 py-1 bg-gray-100 dark:bg-gray-700 rounded text-sm">renovate*</code><code class="px-2 py-1 bg-gray-100 dark:bg-gray-700 rounded text-sm">github-actions*</code><code class="px-2 py-1 bg-gray-100 dark:bg-gray-700 rounded text-sm">codecov*</code><code class="px-2 py-1 bg-gray-100 dark:bg-gray-700 rounded text-sm">snyk*</code><code class="px-2 py-1 bg-gray-100 dark:bg-gray-700 rounded text-sm">greenkeeper*</code><code class="px-2 py-1 bg-gray-100 dark:bg-gray-700 rounded text-sm">imgbot*</code><code class="px-2 py-1 bg-gray-100 dark:bg-gray-700 rounded text-sm">allcontributors*</code><code class="px-2 py-1 bg-gray-100 dark:bg-gray-700 rounded text-sm">semantic-release*</code></div><p class="text-sm text-gray-500 dark:text-gray-400 mt-4"><i class="fas fa-cog mr-1"></i> Enable with <code class="text-primary-600 dark:text-primary-400">include_bots: true</code> or add custom patterns with <code class="text-primary-600 dark:text-primary-400">additional_bot_patterns</code>. </p></div></div>',1))])])]))}},Lg=[{path:"/",name:"dashboard",component:ef},{path:"/leaderboard",name:"leaderboard",component:Df},{path:"/how-scoring-works",name:"how-scoring-works",component:Ng},{path:"/repos/:owner/:name",name:"repository",component:n0},{path:"/teams/:slug",name:"team",component:w0},{path:"/contributors/:login",name:"contributor",component:Ag}],jg=md({history:Wc(),routes:Lg,scrollBehavior(){return{top:0}}}),Na=ic(Nd);Na.use(jg);Na.mount("#app");
|