repr-cli 0.2.17__py3-none-any.whl → 0.2.18__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,384 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&n(l)}).observe(document,{childList:!0,subtree:!0});function s(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=s(i);fetch(i.href,o)}})();/**
2
+ * @vue/shared v3.5.27
3
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
+ * @license MIT
5
+ **/function Js(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const q={},lt=[],Be=()=>{},ri=()=>!1,ns=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Gs=e=>e.startsWith("onUpdate:"),oe=Object.assign,qs=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Ao=Object.prototype.hasOwnProperty,U=(e,t)=>Ao.call(e,t),j=Array.isArray,xt=e=>is(e)==="[object Map]",Mo=e=>is(e)==="[object Set]",L=e=>typeof e=="function",se=e=>typeof e=="string",pt=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",li=e=>(Z(e)||L(e))&&L(e.then)&&L(e.catch),Fo=Object.prototype.toString,is=e=>Fo.call(e),Ro=e=>is(e).slice(8,-1),Do=e=>is(e)==="[object Object]",Ys=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,_t=Js(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),os=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},Oo=/-\w/g,ze=os(e=>e.replace(Oo,t=>t.slice(1).toUpperCase())),Lo=/\B([A-Z])/g,tt=os(e=>e.replace(Lo,"-$1").toLowerCase()),ai=os(e=>e.charAt(0).toUpperCase()+e.slice(1)),_s=os(e=>e?`on${ai(e)}`:""),We=(e,t)=>!Object.is(e,t),ks=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},ci=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},jo=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Cn;const rs=()=>Cn||(Cn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Qs(e){if(j(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],i=se(n)?Uo(n):Qs(n);if(i)for(const o in i)t[o]=i[o]}return t}else if(se(e)||Z(e))return e}const Ho=/;(?![^(]*\))/g,No=/:([^]+)/,Vo=/\/\*[^]*?\*\//g;function Uo(e){const t={};return e.replace(Vo,"").split(Ho).forEach(s=>{if(s){const n=s.split(No);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Xs(e){let t="";if(se(e))t=e;else if(j(e))for(let s=0;s<e.length;s++){const n=Xs(e[s]);n&&(t+=n+" ")}else if(Z(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const Ko="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Wo=Js(Ko);function di(e){return!!e||e===""}/**
6
+ * @vue/reactivity v3.5.27
7
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
8
+ * @license MIT
9
+ **/let pe;class ui{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=pe,!t&&pe&&(this.index=(pe.scopes||(pe.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=pe;try{return pe=this,t()}finally{pe=s}}}on(){++this._on===1&&(this.prevScope=pe,pe=this)}off(){this._on>0&&--this._on===0&&(pe=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,n=this.scopes.length;s<n;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const i=this.parent.scopes.pop();i&&i!==this&&(this.parent.scopes[this.index]=i,i.index=this.index)}this.parent=void 0}}}function zo(e){return new ui(e)}function Jo(){return pe}let G;const Ss=new WeakSet;class fi{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,pe&&pe.active&&pe.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Ss.has(this)&&(Ss.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,En(this),gi(this);const t=G,s=be;G=this,be=!0;try{return this.fn()}finally{mi(this),G=t,be=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)tn(t);this.deps=this.depsTail=void 0,En(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Ss.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Fs(this)&&this.run()}get dirty(){return Fs(this)}}let pi=0,kt,St;function hi(e,t=!1){if(e.flags|=8,t){e.next=St,St=e;return}e.next=kt,kt=e}function Zs(){pi++}function en(){if(--pi>0)return;if(St){let t=St;for(St=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;kt;){let t=kt;for(kt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function gi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function mi(e){let t,s=e.depsTail,n=s;for(;n;){const i=n.prevDep;n.version===-1?(n===s&&(s=i),tn(n),Go(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=i}e.deps=t,e.depsTail=s}function Fs(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===Pt)||(e.globalVersion=Pt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Fs(e))))return;e.flags|=2;const t=e.dep,s=G,n=be;G=e,be=!0;try{gi(e);const i=e.fn(e._value);(t.version===0||We(i,e._value))&&(e.flags|=128,e._value=i,t.version++)}catch(i){throw t.version++,i}finally{G=s,be=n,mi(e),e.flags&=-3}}function tn(e,t=!1){const{dep:s,prevSub:n,nextSub:i}=e;if(n&&(n.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let o=s.computed.deps;o;o=o.nextDep)tn(o,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Go(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let be=!0;const yi=[];function De(){yi.push(be),be=!1}function Oe(){const e=yi.pop();be=e===void 0?!0:e}function En(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=G;G=void 0;try{t()}finally{G=s}}}let Pt=0;class qo{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 sn{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(!G||!be||G===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==G)s=this.activeLink=new qo(G,this),G.deps?(s.prevDep=G.depsTail,G.depsTail.nextDep=s,G.depsTail=s):G.deps=G.depsTail=s,bi(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=G.depsTail,s.nextDep=void 0,G.depsTail.nextDep=s,G.depsTail=s,G.deps===s&&(G.deps=n)}return s}trigger(t){this.version++,Pt++,this.notify(t)}notify(t){Zs();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{en()}}}function bi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)bi(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Rs=new WeakMap,Ze=Symbol(""),Ds=Symbol(""),At=Symbol("");function ne(e,t,s){if(be&&G){let n=Rs.get(e);n||Rs.set(e,n=new Map);let i=n.get(s);i||(n.set(s,i=new sn),i.map=n,i.key=s),i.track()}}function Re(e,t,s,n,i,o){const l=Rs.get(e);if(!l){Pt++;return}const a=d=>{d&&d.trigger()};if(Zs(),t==="clear")l.forEach(a);else{const d=j(e),p=d&&Ys(s);if(d&&s==="length"){const f=Number(n);l.forEach((w,T)=>{(T==="length"||T===At||!pt(T)&&T>=f)&&a(w)})}else switch((s!==void 0||l.has(void 0))&&a(l.get(s)),p&&a(l.get(At)),t){case"add":d?p&&a(l.get("length")):(a(l.get(Ze)),xt(e)&&a(l.get(Ds)));break;case"delete":d||(a(l.get(Ze)),xt(e)&&a(l.get(Ds)));break;case"set":xt(e)&&a(l.get(Ze));break}}en()}function it(e){const t=V(e);return t===e?t:(ne(t,"iterate",At),we(e)?t:t.map(Le))}function nn(e){return ne(e=V(e),"iterate",At),e}function Ne(e,t){return Je(e)?Mt(at(e)?Le(t):t):Le(t)}const Yo={__proto__:null,[Symbol.iterator](){return Cs(this,Symbol.iterator,e=>Ne(this,e))},concat(...e){return it(this).concat(...e.map(t=>j(t)?it(t):t))},entries(){return Cs(this,"entries",e=>(e[1]=Ne(this,e[1]),e))},every(e,t){return Me(this,"every",e,t,void 0,arguments)},filter(e,t){return Me(this,"filter",e,t,s=>s.map(n=>Ne(this,n)),arguments)},find(e,t){return Me(this,"find",e,t,s=>Ne(this,s),arguments)},findIndex(e,t){return Me(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Me(this,"findLast",e,t,s=>Ne(this,s),arguments)},findLastIndex(e,t){return Me(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Me(this,"forEach",e,t,void 0,arguments)},includes(...e){return Es(this,"includes",e)},indexOf(...e){return Es(this,"indexOf",e)},join(e){return it(this).join(e)},lastIndexOf(...e){return Es(this,"lastIndexOf",e)},map(e,t){return Me(this,"map",e,t,void 0,arguments)},pop(){return yt(this,"pop")},push(...e){return yt(this,"push",e)},reduce(e,...t){return Tn(this,"reduce",e,t)},reduceRight(e,...t){return Tn(this,"reduceRight",e,t)},shift(){return yt(this,"shift")},some(e,t){return Me(this,"some",e,t,void 0,arguments)},splice(...e){return yt(this,"splice",e)},toReversed(){return it(this).toReversed()},toSorted(e){return it(this).toSorted(e)},toSpliced(...e){return it(this).toSpliced(...e)},unshift(...e){return yt(this,"unshift",e)},values(){return Cs(this,"values",e=>Ne(this,e))}};function Cs(e,t,s){const n=nn(e),i=n[t]();return n!==e&&!we(e)&&(i._next=i.next,i.next=()=>{const o=i._next();return o.done||(o.value=s(o.value)),o}),i}const Qo=Array.prototype;function Me(e,t,s,n,i,o){const l=nn(e),a=l!==e&&!we(e),d=l[t];if(d!==Qo[t]){const w=d.apply(e,o);return a?Le(w):w}let p=s;l!==e&&(a?p=function(w,T){return s.call(this,Ne(e,w),T,e)}:s.length>2&&(p=function(w,T){return s.call(this,w,T,e)}));const f=d.call(l,p,n);return a&&i?i(f):f}function Tn(e,t,s,n){const i=nn(e);let o=s;return i!==e&&(we(e)?s.length>3&&(o=function(l,a,d){return s.call(this,l,a,d,e)}):o=function(l,a,d){return s.call(this,l,Ne(e,a),d,e)}),i[t](o,...n)}function Es(e,t,s){const n=V(e);ne(n,"iterate",At);const i=n[t](...s);return(i===-1||i===!1)&&an(s[0])?(s[0]=V(s[0]),n[t](...s)):i}function yt(e,t,s=[]){De(),Zs();const n=V(e)[t].apply(e,s);return en(),Oe(),n}const Xo=Js("__proto__,__v_isRef,__isVue"),wi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(pt));function Zo(e){pt(e)||(e=String(e));const t=V(this);return ne(t,"has",e),t.hasOwnProperty(e)}class xi{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const i=this._isReadonly,o=this._isShallow;if(s==="__v_isReactive")return!i;if(s==="__v_isReadonly")return i;if(s==="__v_isShallow")return o;if(s==="__v_raw")return n===(i?o?cr:Ci:o?Si:ki).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const l=j(t);if(!i){let d;if(l&&(d=Yo[s]))return d;if(s==="hasOwnProperty")return Zo}const a=Reflect.get(t,s,ie(t)?t:n);if((pt(s)?wi.has(s):Xo(s))||(i||ne(t,"get",s),o))return a;if(ie(a)){const d=l&&Ys(s)?a:a.value;return i&&Z(d)?Ls(d):d}return Z(a)?i?Ls(a):rn(a):a}}class _i extends xi{constructor(t=!1){super(!1,t)}set(t,s,n,i){let o=t[s];const l=j(t)&&Ys(s);if(!this._isShallow){const p=Je(o);if(!we(n)&&!Je(n)&&(o=V(o),n=V(n)),!l&&ie(o)&&!ie(n))return p||(o.value=n),!0}const a=l?Number(s)<t.length:U(t,s),d=Reflect.set(t,s,n,ie(t)?t:i);return t===V(i)&&(a?We(n,o)&&Re(t,"set",s,n):Re(t,"add",s,n)),d}deleteProperty(t,s){const n=U(t,s);t[s];const i=Reflect.deleteProperty(t,s);return i&&n&&Re(t,"delete",s,void 0),i}has(t,s){const n=Reflect.has(t,s);return(!pt(s)||!wi.has(s))&&ne(t,"has",s),n}ownKeys(t){return ne(t,"iterate",j(t)?"length":Ze),Reflect.ownKeys(t)}}class er extends xi{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const tr=new _i,sr=new er,nr=new _i(!0);const Os=e=>e,Vt=e=>Reflect.getPrototypeOf(e);function ir(e,t,s){return function(...n){const i=this.__v_raw,o=V(i),l=xt(o),a=e==="entries"||e===Symbol.iterator&&l,d=e==="keys"&&l,p=i[e](...n),f=s?Os:t?Mt:Le;return!t&&ne(o,"iterate",d?Ds:Ze),oe(Object.create(p),{next(){const{value:w,done:T}=p.next();return T?{value:w,done:T}:{value:a?[f(w[0]),f(w[1])]:f(w),done:T}}})}}function Ut(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function or(e,t){const s={get(i){const o=this.__v_raw,l=V(o),a=V(i);e||(We(i,a)&&ne(l,"get",i),ne(l,"get",a));const{has:d}=Vt(l),p=t?Os:e?Mt:Le;if(d.call(l,i))return p(o.get(i));if(d.call(l,a))return p(o.get(a));o!==l&&o.get(i)},get size(){const i=this.__v_raw;return!e&&ne(V(i),"iterate",Ze),i.size},has(i){const o=this.__v_raw,l=V(o),a=V(i);return e||(We(i,a)&&ne(l,"has",i),ne(l,"has",a)),i===a?o.has(i):o.has(i)||o.has(a)},forEach(i,o){const l=this,a=l.__v_raw,d=V(a),p=t?Os:e?Mt:Le;return!e&&ne(d,"iterate",Ze),a.forEach((f,w)=>i.call(o,p(f),p(w),l))}};return oe(s,e?{add:Ut("add"),set:Ut("set"),delete:Ut("delete"),clear:Ut("clear")}:{add(i){!t&&!we(i)&&!Je(i)&&(i=V(i));const o=V(this);return Vt(o).has.call(o,i)||(o.add(i),Re(o,"add",i,i)),this},set(i,o){!t&&!we(o)&&!Je(o)&&(o=V(o));const l=V(this),{has:a,get:d}=Vt(l);let p=a.call(l,i);p||(i=V(i),p=a.call(l,i));const f=d.call(l,i);return l.set(i,o),p?We(o,f)&&Re(l,"set",i,o):Re(l,"add",i,o),this},delete(i){const o=V(this),{has:l,get:a}=Vt(o);let d=l.call(o,i);d||(i=V(i),d=l.call(o,i)),a&&a.call(o,i);const p=o.delete(i);return d&&Re(o,"delete",i,void 0),p},clear(){const i=V(this),o=i.size!==0,l=i.clear();return o&&Re(i,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(i=>{s[i]=ir(i,e,t)}),s}function on(e,t){const s=or(e,t);return(n,i,o)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(U(s,i)&&i in n?s:n,i,o)}const rr={get:on(!1,!1)},lr={get:on(!1,!0)},ar={get:on(!0,!1)};const ki=new WeakMap,Si=new WeakMap,Ci=new WeakMap,cr=new WeakMap;function dr(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ur(e){return e.__v_skip||!Object.isExtensible(e)?0:dr(Ro(e))}function rn(e){return Je(e)?e:ln(e,!1,tr,rr,ki)}function fr(e){return ln(e,!1,nr,lr,Si)}function Ls(e){return ln(e,!0,sr,ar,Ci)}function ln(e,t,s,n,i){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=ur(e);if(o===0)return e;const l=i.get(e);if(l)return l;const a=new Proxy(e,o===2?n:s);return i.set(e,a),a}function at(e){return Je(e)?at(e.__v_raw):!!(e&&e.__v_isReactive)}function Je(e){return!!(e&&e.__v_isReadonly)}function we(e){return!!(e&&e.__v_isShallow)}function an(e){return e?!!e.__v_raw:!1}function V(e){const t=e&&e.__v_raw;return t?V(t):e}function Ei(e){return!U(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Le=e=>Z(e)?rn(e):e,Mt=e=>Z(e)?Ls(e):e;function ie(e){return e?e.__v_isRef===!0:!1}function pr(e){return hr(e,!1)}function hr(e,t){return ie(e)?e:new gr(e,t)}class gr{constructor(t,s){this.dep=new sn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:V(t),this._value=s?t:Le(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||we(t)||Je(t);t=n?t:V(t),We(t,s)&&(this._rawValue=t,this._value=n?t:Le(t),this.dep.trigger())}}function mr(e){return ie(e)?e.value:e}const vr={get:(e,t,s)=>t==="__v_raw"?e:mr(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const i=e[t];return ie(i)&&!ie(s)?(i.value=s,!0):Reflect.set(e,t,s,n)}};function Ti(e){return at(e)?e:new Proxy(e,vr)}class yr{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new sn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Pt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&G!==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 br(e,t,s=!1){let n,i;return L(e)?n=e:(n=e.get,i=e.set),new yr(n,i,s)}const Kt={},Yt=new WeakMap;let Xe;function wr(e,t=!1,s=Xe){if(s){let n=Yt.get(s);n||Yt.set(s,n=[]),n.push(e)}}function xr(e,t,s=q){const{immediate:n,deep:i,once:o,scheduler:l,augmentJob:a,call:d}=s,p=E=>i?E:we(E)||i===!1||i===0?Ke(E,1):Ke(E);let f,w,T,m,h=!1,g=!1;if(ie(e)?(w=()=>e.value,h=we(e)):at(e)?(w=()=>p(e),h=!0):j(e)?(g=!0,h=e.some(E=>at(E)||we(E)),w=()=>e.map(E=>{if(ie(E))return E.value;if(at(E))return p(E);if(L(E))return d?d(E,2):E()})):L(e)?t?w=d?()=>d(e,2):e:w=()=>{if(T){De();try{T()}finally{Oe()}}const E=Xe;Xe=f;try{return d?d(e,3,[m]):e(m)}finally{Xe=E}}:w=Be,t&&i){const E=w,D=i===!0?1/0:i;w=()=>Ke(E(),D)}const x=Jo(),y=()=>{f.stop(),x&&x.active&&qs(x.effects,f)};if(o&&t){const E=t;t=(...D)=>{E(...D),y()}}let v=g?new Array(e.length).fill(Kt):Kt;const A=E=>{if(!(!(f.flags&1)||!f.dirty&&!E))if(t){const D=f.run();if(i||h||(g?D.some((Y,O)=>We(Y,v[O])):We(D,v))){T&&T();const Y=Xe;Xe=f;try{const O=[D,v===Kt?void 0:g&&v[0]===Kt?[]:v,m];v=D,d?d(t,3,O):t(...O)}finally{Xe=Y}}}else f.run()};return a&&a(A),f=new fi(w),f.scheduler=l?()=>l(A,!1):A,m=E=>wr(E,!1,f),T=f.onStop=()=>{const E=Yt.get(f);if(E){if(d)d(E,4);else for(const D of E)D();Yt.delete(f)}},t?n?A(!0):v=f.run():l?l(A.bind(null,!0),!0):f.run(),y.pause=f.pause.bind(f),y.resume=f.resume.bind(f),y.stop=y,y}function Ke(e,t=1/0,s){if(t<=0||!Z(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,ie(e))Ke(e.value,t,s);else if(j(e))for(let n=0;n<e.length;n++)Ke(e[n],t,s);else if(Mo(e)||xt(e))e.forEach(n=>{Ke(n,t,s)});else if(Do(e)){for(const n in e)Ke(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Ke(e[n],t,s)}return e}/**
10
+ * @vue/runtime-core v3.5.27
11
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
12
+ * @license MIT
13
+ **/function Ot(e,t,s,n){try{return n?e(...n):e()}catch(i){ls(i,t,s)}}function Pe(e,t,s,n){if(L(e)){const i=Ot(e,t,s,n);return i&&li(i)&&i.catch(o=>{ls(o,t,s)}),i}if(j(e)){const i=[];for(let o=0;o<e.length;o++)i.push(Pe(e[o],t,s,n));return i}}function ls(e,t,s,n=!0){const i=t?t.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||q;if(t){let a=t.parent;const d=t.proxy,p=`https://vuejs.org/error-reference/#runtime-${s}`;for(;a;){const f=a.ec;if(f){for(let w=0;w<f.length;w++)if(f[w](e,d,p)===!1)return}a=a.parent}if(o){De(),Ot(o,null,10,[e,d,p]),Oe();return}}_r(e,s,i,n,l)}function _r(e,t,s,n=!0,i=!1){if(i)throw e;console.error(e)}const ce=[];let Te=-1;const ct=[];let Ve=null,ot=0;const Ii=Promise.resolve();let Qt=null;function kr(e){const t=Qt||Ii;return e?t.then(this?e.bind(this):e):t}function Sr(e){let t=Te+1,s=ce.length;for(;t<s;){const n=t+s>>>1,i=ce[n],o=Ft(i);o<e||o===e&&i.flags&2?t=n+1:s=n}return t}function cn(e){if(!(e.flags&1)){const t=Ft(e),s=ce[ce.length-1];!s||!(e.flags&2)&&t>=Ft(s)?ce.push(e):ce.splice(Sr(t),0,e),e.flags|=1,$i()}}function $i(){Qt||(Qt=Ii.then(Pi))}function Cr(e){j(e)?ct.push(...e):Ve&&e.id===-1?Ve.splice(ot+1,0,e):e.flags&1||(ct.push(e),e.flags|=1),$i()}function In(e,t,s=Te+1){for(;s<ce.length;s++){const n=ce[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;ce.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function Bi(e){if(ct.length){const t=[...new Set(ct)].sort((s,n)=>Ft(s)-Ft(n));if(ct.length=0,Ve){Ve.push(...t);return}for(Ve=t,ot=0;ot<Ve.length;ot++){const s=Ve[ot];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}Ve=null,ot=0}}const Ft=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Pi(e){try{for(Te=0;Te<ce.length;Te++){const t=ce[Te];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Ot(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Te<ce.length;Te++){const t=ce[Te];t&&(t.flags&=-2)}Te=-1,ce.length=0,Bi(),Qt=null,(ce.length||ct.length)&&Pi()}}let $e=null,Ai=null;function Xt(e){const t=$e;return $e=e,Ai=e&&e.type.__scopeId||null,t}function Er(e,t=$e,s){if(!t||e._n)return e;const n=(...i)=>{n._d&&Ln(-1);const o=Xt(t);let l;try{l=e(...i)}finally{Xt(o),n._d&&Ln(1)}return l};return n._n=!0,n._c=!0,n._d=!0,n}function Ye(e,t,s,n){const i=e.dirs,o=t&&t.dirs;for(let l=0;l<i.length;l++){const a=i[l];o&&(a.oldValue=o[l].value);let d=a.dir[n];d&&(De(),Pe(d,s,8,[e.el,a,e,t]),Oe())}}function Tr(e,t){if(de){let s=de.provides;const n=de.parent&&de.parent.provides;n===s&&(s=de.provides=Object.create(n)),s[e]=t}}function Wt(e,t,s=!1){const n=Il();if(n||dt){let i=dt?dt._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return s&&L(t)?t.call(n&&n.proxy):t}}const Ir=Symbol.for("v-scx"),$r=()=>Wt(Ir);function Ts(e,t,s){return Mi(e,t,s)}function Mi(e,t,s=q){const{immediate:n,deep:i,flush:o,once:l}=s,a=oe({},s),d=t&&n||!t&&o!=="post";let p;if(Dt){if(o==="sync"){const m=$r();p=m.__watcherHandles||(m.__watcherHandles=[])}else if(!d){const m=()=>{};return m.stop=Be,m.resume=Be,m.pause=Be,m}}const f=de;a.call=(m,h,g)=>Pe(m,f,h,g);let w=!1;o==="post"?a.scheduler=m=>{ge(m,f&&f.suspense)}:o!=="sync"&&(w=!0,a.scheduler=(m,h)=>{h?m():cn(m)}),a.augmentJob=m=>{t&&(m.flags|=4),w&&(m.flags|=2,f&&(m.id=f.uid,m.i=f))};const T=xr(e,t,a);return Dt&&(p?p.push(T):d&&T()),T}function Br(e,t,s){const n=this.proxy,i=se(e)?e.includes(".")?Fi(n,e):()=>n[e]:e.bind(n,n);let o;L(t)?o=t:(o=t.handler,s=t);const l=Lt(this),a=Mi(i,o.bind(n),s);return l(),a}function Fi(e,t){const s=t.split(".");return()=>{let n=e;for(let i=0;i<s.length&&n;i++)n=n[s[i]];return n}}const Pr=Symbol("_vte"),Ar=e=>e.__isTeleport,Mr=Symbol("_leaveCb");function dn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,dn(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 Ri(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Zt=new WeakMap;function Ct(e,t,s,n,i=!1){if(j(e)){e.forEach((h,g)=>Ct(h,t&&(j(t)?t[g]:t),s,n,i));return}if(Et(n)&&!i){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Ct(e,t,s,n.component.subTree);return}const o=n.shapeFlag&4?hn(n.component):n.el,l=i?null:o,{i:a,r:d}=e,p=t&&t.r,f=a.refs===q?a.refs={}:a.refs,w=a.setupState,T=V(w),m=w===q?ri:h=>U(T,h);if(p!=null&&p!==d){if($n(t),se(p))f[p]=null,m(p)&&(w[p]=null);else if(ie(p)){p.value=null;const h=t;h.k&&(f[h.k]=null)}}if(L(d))Ot(d,a,12,[l,f]);else{const h=se(d),g=ie(d);if(h||g){const x=()=>{if(e.f){const y=h?m(d)?w[d]:f[d]:d.value;if(i)j(y)&&qs(y,o);else if(j(y))y.includes(o)||y.push(o);else if(h)f[d]=[o],m(d)&&(w[d]=f[d]);else{const v=[o];d.value=v,e.k&&(f[e.k]=v)}}else h?(f[d]=l,m(d)&&(w[d]=l)):g&&(d.value=l,e.k&&(f[e.k]=l))};if(l){const y=()=>{x(),Zt.delete(e)};y.id=-1,Zt.set(e,y),ge(y,s)}else $n(e),x()}}}function $n(e){const t=Zt.get(e);t&&(t.flags|=8,Zt.delete(e))}rs().requestIdleCallback;rs().cancelIdleCallback;const Et=e=>!!e.type.__asyncLoader,Di=e=>e.type.__isKeepAlive;function Fr(e,t){Oi(e,"a",t)}function Rr(e,t){Oi(e,"da",t)}function Oi(e,t,s=de){const n=e.__wdc||(e.__wdc=()=>{let i=s;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(as(t,n,s),s){let i=s.parent;for(;i&&i.parent;)Di(i.parent.vnode)&&Dr(n,t,s,i),i=i.parent}}function Dr(e,t,s,n){const i=as(t,e,n,!0);ji(()=>{qs(n[t],i)},s)}function as(e,t,s=de,n=!1){if(s){const i=s[e]||(s[e]=[]),o=t.__weh||(t.__weh=(...l)=>{De();const a=Lt(s),d=Pe(t,s,e,l);return a(),Oe(),d});return n?i.unshift(o):i.push(o),o}}const je=e=>(t,s=de)=>{(!Dt||e==="sp")&&as(e,(...n)=>t(...n),s)},Or=je("bm"),Li=je("m"),Lr=je("bu"),jr=je("u"),Hr=je("bum"),ji=je("um"),Nr=je("sp"),Vr=je("rtg"),Ur=je("rtc");function Kr(e,t=de){as("ec",e,t)}const Wr=Symbol.for("v-ndc"),js=e=>e?io(e)?hn(e):js(e.parent):null,Tt=oe(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=>js(e.parent),$root:e=>js(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ni(e),$forceUpdate:e=>e.f||(e.f=()=>{cn(e.update)}),$nextTick:e=>e.n||(e.n=kr.bind(e.proxy)),$watch:e=>Br.bind(e)}),Is=(e,t)=>e!==q&&!e.__isScriptSetup&&U(e,t),zr={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:i,props:o,accessCache:l,type:a,appContext:d}=e;if(t[0]!=="$"){const T=l[t];if(T!==void 0)switch(T){case 1:return n[t];case 2:return i[t];case 4:return s[t];case 3:return o[t]}else{if(Is(n,t))return l[t]=1,n[t];if(i!==q&&U(i,t))return l[t]=2,i[t];if(U(o,t))return l[t]=3,o[t];if(s!==q&&U(s,t))return l[t]=4,s[t];Hs&&(l[t]=0)}}const p=Tt[t];let f,w;if(p)return t==="$attrs"&&ne(e.attrs,"get",""),p(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(s!==q&&U(s,t))return l[t]=4,s[t];if(w=d.config.globalProperties,U(w,t))return w[t]},set({_:e},t,s){const{data:n,setupState:i,ctx:o}=e;return Is(i,t)?(i[t]=s,!0):n!==q&&U(n,t)?(n[t]=s,!0):U(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:i,props:o,type:l}},a){let d;return!!(s[a]||e!==q&&a[0]!=="$"&&U(e,a)||Is(t,a)||U(o,a)||U(n,a)||U(Tt,a)||U(i.config.globalProperties,a)||(d=l.__cssModules)&&d[a])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:U(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function Bn(e){return j(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let Hs=!0;function Jr(e){const t=Ni(e),s=e.proxy,n=e.ctx;Hs=!1,t.beforeCreate&&Pn(t.beforeCreate,e,"bc");const{data:i,computed:o,methods:l,watch:a,provide:d,inject:p,created:f,beforeMount:w,mounted:T,beforeUpdate:m,updated:h,activated:g,deactivated:x,beforeDestroy:y,beforeUnmount:v,destroyed:A,unmounted:E,render:D,renderTracked:Y,renderTriggered:O,errorCaptured:X,serverPrefetch:st,expose:xe,inheritAttrs:He,components:Ae,directives:nt,filters:ws}=t;if(p&&Gr(p,n,null),l)for(const Q in l){const z=l[Q];L(z)&&(n[Q]=z.bind(s))}if(i){const Q=i.call(s,s);Z(Q)&&(e.data=rn(Q))}if(Hs=!0,o)for(const Q in o){const z=o[Q],Ge=L(z)?z.bind(s,s):L(z.get)?z.get.bind(s,s):Be,Ht=!L(z)&&L(z.set)?z.set.bind(s):Be,qe=Fl({get:Ge,set:Ht});Object.defineProperty(n,Q,{enumerable:!0,configurable:!0,get:()=>qe.value,set:_e=>qe.value=_e})}if(a)for(const Q in a)Hi(a[Q],n,s,Q);if(d){const Q=L(d)?d.call(s):d;Reflect.ownKeys(Q).forEach(z=>{Tr(z,Q[z])})}f&&Pn(f,e,"c");function re(Q,z){j(z)?z.forEach(Ge=>Q(Ge.bind(s))):z&&Q(z.bind(s))}if(re(Or,w),re(Li,T),re(Lr,m),re(jr,h),re(Fr,g),re(Rr,x),re(Kr,X),re(Ur,Y),re(Vr,O),re(Hr,v),re(ji,E),re(Nr,st),j(xe))if(xe.length){const Q=e.exposed||(e.exposed={});xe.forEach(z=>{Object.defineProperty(Q,z,{get:()=>s[z],set:Ge=>s[z]=Ge,enumerable:!0})})}else e.exposed||(e.exposed={});D&&e.render===Be&&(e.render=D),He!=null&&(e.inheritAttrs=He),Ae&&(e.components=Ae),nt&&(e.directives=nt),st&&Ri(e)}function Gr(e,t,s=Be){j(e)&&(e=Ns(e));for(const n in e){const i=e[n];let o;Z(i)?"default"in i?o=Wt(i.from||n,i.default,!0):o=Wt(i.from||n):o=Wt(i),ie(o)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>o.value,set:l=>o.value=l}):t[n]=o}}function Pn(e,t,s){Pe(j(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function Hi(e,t,s,n){let i=n.includes(".")?Fi(s,n):()=>s[n];if(se(e)){const o=t[e];L(o)&&Ts(i,o)}else if(L(e))Ts(i,e.bind(s));else if(Z(e))if(j(e))e.forEach(o=>Hi(o,t,s,n));else{const o=L(e.handler)?e.handler.bind(s):t[e.handler];L(o)&&Ts(i,o,e)}}function Ni(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:i,optionsCache:o,config:{optionMergeStrategies:l}}=e.appContext,a=o.get(t);let d;return a?d=a:!i.length&&!s&&!n?d=t:(d={},i.length&&i.forEach(p=>es(d,p,l,!0)),es(d,t,l)),Z(t)&&o.set(t,d),d}function es(e,t,s,n=!1){const{mixins:i,extends:o}=t;o&&es(e,o,s,!0),i&&i.forEach(l=>es(e,l,s,!0));for(const l in t)if(!(n&&l==="expose")){const a=qr[l]||s&&s[l];e[l]=a?a(e[l],t[l]):t[l]}return e}const qr={data:An,props:Mn,emits:Mn,methods:wt,computed:wt,beforeCreate:le,created:le,beforeMount:le,mounted:le,beforeUpdate:le,updated:le,beforeDestroy:le,beforeUnmount:le,destroyed:le,unmounted:le,activated:le,deactivated:le,errorCaptured:le,serverPrefetch:le,components:wt,directives:wt,watch:Qr,provide:An,inject:Yr};function An(e,t){return t?e?function(){return oe(L(e)?e.call(this,this):e,L(t)?t.call(this,this):t)}:t:e}function Yr(e,t){return wt(Ns(e),Ns(t))}function Ns(e){if(j(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function le(e,t){return e?[...new Set([].concat(e,t))]:t}function wt(e,t){return e?oe(Object.create(null),e,t):t}function Mn(e,t){return e?j(e)&&j(t)?[...new Set([...e,...t])]:oe(Object.create(null),Bn(e),Bn(t??{})):t}function Qr(e,t){if(!e)return t;if(!t)return e;const s=oe(Object.create(null),e);for(const n in t)s[n]=le(e[n],t[n]);return s}function Vi(){return{app:null,config:{isNativeTag:ri,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 Xr=0;function Zr(e,t){return function(n,i=null){L(n)||(n=oe({},n)),i!=null&&!Z(i)&&(i=null);const o=Vi(),l=new WeakSet,a=[];let d=!1;const p=o.app={_uid:Xr++,_component:n,_props:i,_container:null,_context:o,_instance:null,version:Rl,get config(){return o.config},set config(f){},use(f,...w){return l.has(f)||(f&&L(f.install)?(l.add(f),f.install(p,...w)):L(f)&&(l.add(f),f(p,...w))),p},mixin(f){return o.mixins.includes(f)||o.mixins.push(f),p},component(f,w){return w?(o.components[f]=w,p):o.components[f]},directive(f,w){return w?(o.directives[f]=w,p):o.directives[f]},mount(f,w,T){if(!d){const m=p._ceVNode||et(n,i);return m.appContext=o,T===!0?T="svg":T===!1&&(T=void 0),e(m,f,T),d=!0,p._container=f,f.__vue_app__=p,hn(m.component)}},onUnmount(f){a.push(f)},unmount(){d&&(Pe(a,p._instance,16),e(null,p._container),delete p._container.__vue_app__)},provide(f,w){return o.provides[f]=w,p},runWithContext(f){const w=dt;dt=p;try{return f()}finally{dt=w}}};return p}}let dt=null;const el=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ze(t)}Modifiers`]||e[`${tt(t)}Modifiers`];function tl(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||q;let i=s;const o=t.startsWith("update:"),l=o&&el(n,t.slice(7));l&&(l.trim&&(i=s.map(f=>se(f)?f.trim():f)),l.number&&(i=s.map(jo)));let a,d=n[a=_s(t)]||n[a=_s(ze(t))];!d&&o&&(d=n[a=_s(tt(t))]),d&&Pe(d,e,6,i);const p=n[a+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Pe(p,e,6,i)}}const sl=new WeakMap;function Ui(e,t,s=!1){const n=s?sl:t.emitsCache,i=n.get(e);if(i!==void 0)return i;const o=e.emits;let l={},a=!1;if(!L(e)){const d=p=>{const f=Ui(p,t,!0);f&&(a=!0,oe(l,f))};!s&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}return!o&&!a?(Z(e)&&n.set(e,null),null):(j(o)?o.forEach(d=>l[d]=null):oe(l,o),Z(e)&&n.set(e,l),l)}function cs(e,t){return!e||!ns(t)?!1:(t=t.slice(2).replace(/Once$/,""),U(e,t[0].toLowerCase()+t.slice(1))||U(e,tt(t))||U(e,t))}function Fn(e){const{type:t,vnode:s,proxy:n,withProxy:i,propsOptions:[o],slots:l,attrs:a,emit:d,render:p,renderCache:f,props:w,data:T,setupState:m,ctx:h,inheritAttrs:g}=e,x=Xt(e);let y,v;try{if(s.shapeFlag&4){const E=i||n,D=E;y=Ie(p.call(D,E,f,w,m,T,h)),v=a}else{const E=t;y=Ie(E.length>1?E(w,{attrs:a,slots:l,emit:d}):E(w,null)),v=t.props?a:nl(a)}}catch(E){It.length=0,ls(E,e,1),y=et(ut)}let A=y;if(v&&g!==!1){const E=Object.keys(v),{shapeFlag:D}=A;E.length&&D&7&&(o&&E.some(Gs)&&(v=il(v,o)),A=ft(A,v,!1,!0))}return s.dirs&&(A=ft(A,null,!1,!0),A.dirs=A.dirs?A.dirs.concat(s.dirs):s.dirs),s.transition&&dn(A,s.transition),y=A,Xt(x),y}const nl=e=>{let t;for(const s in e)(s==="class"||s==="style"||ns(s))&&((t||(t={}))[s]=e[s]);return t},il=(e,t)=>{const s={};for(const n in e)(!Gs(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function ol(e,t,s){const{props:n,children:i,component:o}=e,{props:l,children:a,patchFlag:d}=t,p=o.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&d>=0){if(d&1024)return!0;if(d&16)return n?Rn(n,l,p):!!l;if(d&8){const f=t.dynamicProps;for(let w=0;w<f.length;w++){const T=f[w];if(l[T]!==n[T]&&!cs(p,T))return!0}}}else return(i||a)&&(!a||!a.$stable)?!0:n===l?!1:n?l?Rn(n,l,p):!0:!!l;return!1}function Rn(e,t,s){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let i=0;i<n.length;i++){const o=n[i];if(t[o]!==e[o]&&!cs(s,o))return!0}return!1}function rl({vnode:e,parent:t},s){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.el=e.el),n===e)(e=t.vnode).el=s,t=t.parent;else break}}const Ki={},Wi=()=>Object.create(Ki),zi=e=>Object.getPrototypeOf(e)===Ki;function ll(e,t,s,n=!1){const i={},o=Wi();e.propsDefaults=Object.create(null),Ji(e,t,i,o);for(const l in e.propsOptions[0])l in i||(i[l]=void 0);s?e.props=n?i:fr(i):e.type.props?e.props=i:e.props=o,e.attrs=o}function al(e,t,s,n){const{props:i,attrs:o,vnode:{patchFlag:l}}=e,a=V(i),[d]=e.propsOptions;let p=!1;if((n||l>0)&&!(l&16)){if(l&8){const f=e.vnode.dynamicProps;for(let w=0;w<f.length;w++){let T=f[w];if(cs(e.emitsOptions,T))continue;const m=t[T];if(d)if(U(o,T))m!==o[T]&&(o[T]=m,p=!0);else{const h=ze(T);i[h]=Vs(d,a,h,m,e,!1)}else m!==o[T]&&(o[T]=m,p=!0)}}}else{Ji(e,t,i,o)&&(p=!0);let f;for(const w in a)(!t||!U(t,w)&&((f=tt(w))===w||!U(t,f)))&&(d?s&&(s[w]!==void 0||s[f]!==void 0)&&(i[w]=Vs(d,a,w,void 0,e,!0)):delete i[w]);if(o!==a)for(const w in o)(!t||!U(t,w))&&(delete o[w],p=!0)}p&&Re(e.attrs,"set","")}function Ji(e,t,s,n){const[i,o]=e.propsOptions;let l=!1,a;if(t)for(let d in t){if(_t(d))continue;const p=t[d];let f;i&&U(i,f=ze(d))?!o||!o.includes(f)?s[f]=p:(a||(a={}))[f]=p:cs(e.emitsOptions,d)||(!(d in n)||p!==n[d])&&(n[d]=p,l=!0)}if(o){const d=V(s),p=a||q;for(let f=0;f<o.length;f++){const w=o[f];s[w]=Vs(i,d,w,p[w],e,!U(p,w))}}return l}function Vs(e,t,s,n,i,o){const l=e[s];if(l!=null){const a=U(l,"default");if(a&&n===void 0){const d=l.default;if(l.type!==Function&&!l.skipFactory&&L(d)){const{propsDefaults:p}=i;if(s in p)n=p[s];else{const f=Lt(i);n=p[s]=d.call(null,t),f()}}else n=d;i.ce&&i.ce._setProp(s,n)}l[0]&&(o&&!a?n=!1:l[1]&&(n===""||n===tt(s))&&(n=!0))}return n}const cl=new WeakMap;function Gi(e,t,s=!1){const n=s?cl:t.propsCache,i=n.get(e);if(i)return i;const o=e.props,l={},a=[];let d=!1;if(!L(e)){const f=w=>{d=!0;const[T,m]=Gi(w,t,!0);oe(l,T),m&&a.push(...m)};!s&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!d)return Z(e)&&n.set(e,lt),lt;if(j(o))for(let f=0;f<o.length;f++){const w=ze(o[f]);Dn(w)&&(l[w]=q)}else if(o)for(const f in o){const w=ze(f);if(Dn(w)){const T=o[f],m=l[w]=j(T)||L(T)?{type:T}:oe({},T),h=m.type;let g=!1,x=!0;if(j(h))for(let y=0;y<h.length;++y){const v=h[y],A=L(v)&&v.name;if(A==="Boolean"){g=!0;break}else A==="String"&&(x=!1)}else g=L(h)&&h.name==="Boolean";m[0]=g,m[1]=x,(g||U(m,"default"))&&a.push(w)}}const p=[l,a];return Z(e)&&n.set(e,p),p}function Dn(e){return e[0]!=="$"&&!_t(e)}const un=e=>e==="_"||e==="_ctx"||e==="$stable",fn=e=>j(e)?e.map(Ie):[Ie(e)],dl=(e,t,s)=>{if(t._n)return t;const n=Er((...i)=>fn(t(...i)),s);return n._c=!1,n},qi=(e,t,s)=>{const n=e._ctx;for(const i in e){if(un(i))continue;const o=e[i];if(L(o))t[i]=dl(i,o,n);else if(o!=null){const l=fn(o);t[i]=()=>l}}},Yi=(e,t)=>{const s=fn(t);e.slots.default=()=>s},Qi=(e,t,s)=>{for(const n in t)(s||!un(n))&&(e[n]=t[n])},ul=(e,t,s)=>{const n=e.slots=Wi();if(e.vnode.shapeFlag&32){const i=t._;i?(Qi(n,t,s),s&&ci(n,"_",i,!0)):qi(t,n)}else t&&Yi(e,t)},fl=(e,t,s)=>{const{vnode:n,slots:i}=e;let o=!0,l=q;if(n.shapeFlag&32){const a=t._;a?s&&a===1?o=!1:Qi(i,t,s):(o=!t.$stable,qi(t,i)),l=t}else t&&(Yi(e,t),l={default:1});if(o)for(const a in i)!un(a)&&l[a]==null&&delete i[a]},ge=vl;function pl(e){return hl(e)}function hl(e,t){const s=rs();s.__VUE__=!0;const{insert:n,remove:i,patchProp:o,createElement:l,createText:a,createComment:d,setText:p,setElementText:f,parentNode:w,nextSibling:T,setScopeId:m=Be,insertStaticContent:h}=e,g=(c,u,b,C=null,_=null,k=null,B=void 0,$=null,I=!!u.dynamicChildren)=>{if(c===u)return;c&&!bt(c,u)&&(C=Nt(c),_e(c,_,k,!0),c=null),u.patchFlag===-2&&(I=!1,u.dynamicChildren=null);const{type:S,ref:F,shapeFlag:P}=u;switch(S){case ds:x(c,u,b,C);break;case ut:y(c,u,b,C);break;case Bs:c==null&&v(u,b,C,B);break;case ye:Ae(c,u,b,C,_,k,B,$,I);break;default:P&1?D(c,u,b,C,_,k,B,$,I):P&6?nt(c,u,b,C,_,k,B,$,I):(P&64||P&128)&&S.process(c,u,b,C,_,k,B,$,I,mt)}F!=null&&_?Ct(F,c&&c.ref,k,u||c,!u):F==null&&c&&c.ref!=null&&Ct(c.ref,null,k,c,!0)},x=(c,u,b,C)=>{if(c==null)n(u.el=a(u.children),b,C);else{const _=u.el=c.el;u.children!==c.children&&p(_,u.children)}},y=(c,u,b,C)=>{c==null?n(u.el=d(u.children||""),b,C):u.el=c.el},v=(c,u,b,C)=>{[c.el,c.anchor]=h(c.children,u,b,C,c.el,c.anchor)},A=({el:c,anchor:u},b,C)=>{let _;for(;c&&c!==u;)_=T(c),n(c,b,C),c=_;n(u,b,C)},E=({el:c,anchor:u})=>{let b;for(;c&&c!==u;)b=T(c),i(c),c=b;i(u)},D=(c,u,b,C,_,k,B,$,I)=>{if(u.type==="svg"?B="svg":u.type==="math"&&(B="mathml"),c==null)Y(u,b,C,_,k,B,$,I);else{const S=c.el&&c.el._isVueCE?c.el:null;try{S&&S._beginPatch(),st(c,u,_,k,B,$,I)}finally{S&&S._endPatch()}}},Y=(c,u,b,C,_,k,B,$)=>{let I,S;const{props:F,shapeFlag:P,transition:M,dirs:R}=c;if(I=c.el=l(c.type,k,F&&F.is,F),P&8?f(I,c.children):P&16&&X(c.children,I,null,C,_,$s(c,k),B,$),R&&Ye(c,null,C,"created"),O(I,c,c.scopeId,B,C),F){for(const J in F)J!=="value"&&!_t(J)&&o(I,J,null,F[J],k,C);"value"in F&&o(I,"value",null,F.value,k),(S=F.onVnodeBeforeMount)&&Ee(S,C,c)}R&&Ye(c,null,C,"beforeMount");const H=gl(_,M);H&&M.beforeEnter(I),n(I,u,b),((S=F&&F.onVnodeMounted)||H||R)&&ge(()=>{S&&Ee(S,C,c),H&&M.enter(I),R&&Ye(c,null,C,"mounted")},_)},O=(c,u,b,C,_)=>{if(b&&m(c,b),C)for(let k=0;k<C.length;k++)m(c,C[k]);if(_){let k=_.subTree;if(u===k||to(k.type)&&(k.ssContent===u||k.ssFallback===u)){const B=_.vnode;O(c,B,B.scopeId,B.slotScopeIds,_.parent)}}},X=(c,u,b,C,_,k,B,$,I=0)=>{for(let S=I;S<c.length;S++){const F=c[S]=$?Ue(c[S]):Ie(c[S]);g(null,F,u,b,C,_,k,B,$)}},st=(c,u,b,C,_,k,B)=>{const $=u.el=c.el;let{patchFlag:I,dynamicChildren:S,dirs:F}=u;I|=c.patchFlag&16;const P=c.props||q,M=u.props||q;let R;if(b&&Qe(b,!1),(R=M.onVnodeBeforeUpdate)&&Ee(R,b,u,c),F&&Ye(u,c,b,"beforeUpdate"),b&&Qe(b,!0),(P.innerHTML&&M.innerHTML==null||P.textContent&&M.textContent==null)&&f($,""),S?xe(c.dynamicChildren,S,$,b,C,$s(u,_),k):B||z(c,u,$,null,b,C,$s(u,_),k,!1),I>0){if(I&16)He($,P,M,b,_);else if(I&2&&P.class!==M.class&&o($,"class",null,M.class,_),I&4&&o($,"style",P.style,M.style,_),I&8){const H=u.dynamicProps;for(let J=0;J<H.length;J++){const K=H[J],ue=P[K],fe=M[K];(fe!==ue||K==="value")&&o($,K,ue,fe,_,b)}}I&1&&c.children!==u.children&&f($,u.children)}else!B&&S==null&&He($,P,M,b,_);((R=M.onVnodeUpdated)||F)&&ge(()=>{R&&Ee(R,b,u,c),F&&Ye(u,c,b,"updated")},C)},xe=(c,u,b,C,_,k,B)=>{for(let $=0;$<u.length;$++){const I=c[$],S=u[$],F=I.el&&(I.type===ye||!bt(I,S)||I.shapeFlag&198)?w(I.el):b;g(I,S,F,null,C,_,k,B,!0)}},He=(c,u,b,C,_)=>{if(u!==b){if(u!==q)for(const k in u)!_t(k)&&!(k in b)&&o(c,k,u[k],null,_,C);for(const k in b){if(_t(k))continue;const B=b[k],$=u[k];B!==$&&k!=="value"&&o(c,k,$,B,_,C)}"value"in b&&o(c,"value",u.value,b.value,_)}},Ae=(c,u,b,C,_,k,B,$,I)=>{const S=u.el=c?c.el:a(""),F=u.anchor=c?c.anchor:a("");let{patchFlag:P,dynamicChildren:M,slotScopeIds:R}=u;R&&($=$?$.concat(R):R),c==null?(n(S,b,C),n(F,b,C),X(u.children||[],b,F,_,k,B,$,I)):P>0&&P&64&&M&&c.dynamicChildren&&c.dynamicChildren.length===M.length?(xe(c.dynamicChildren,M,b,_,k,B,$),(u.key!=null||_&&u===_.subTree)&&Xi(c,u,!0)):z(c,u,b,F,_,k,B,$,I)},nt=(c,u,b,C,_,k,B,$,I)=>{u.slotScopeIds=$,c==null?u.shapeFlag&512?_.ctx.activate(u,b,C,B,I):ws(u,b,C,_,k,B,I):bn(c,u,I)},ws=(c,u,b,C,_,k,B)=>{const $=c.component=Tl(c,C,_);if(Di(c)&&($.ctx.renderer=mt),$l($,!1,B),$.asyncDep){if(_&&_.registerDep($,re,B),!c.el){const I=$.subTree=et(ut);y(null,I,u,b),c.placeholder=I.el}}else re($,c,u,b,_,k,B)},bn=(c,u,b)=>{const C=u.component=c.component;if(ol(c,u,b))if(C.asyncDep&&!C.asyncResolved){Q(C,u,b);return}else C.next=u,C.update();else u.el=c.el,C.vnode=u},re=(c,u,b,C,_,k,B)=>{const $=()=>{if(c.isMounted){let{next:P,bu:M,u:R,parent:H,vnode:J}=c;{const Se=Zi(c);if(Se){P&&(P.el=J.el,Q(c,P,B)),Se.asyncDep.then(()=>{c.isUnmounted||$()});return}}let K=P,ue;Qe(c,!1),P?(P.el=J.el,Q(c,P,B)):P=J,M&&ks(M),(ue=P.props&&P.props.onVnodeBeforeUpdate)&&Ee(ue,H,P,J),Qe(c,!0);const fe=Fn(c),ke=c.subTree;c.subTree=fe,g(ke,fe,w(ke.el),Nt(ke),c,_,k),P.el=fe.el,K===null&&rl(c,fe.el),R&&ge(R,_),(ue=P.props&&P.props.onVnodeUpdated)&&ge(()=>Ee(ue,H,P,J),_)}else{let P;const{el:M,props:R}=u,{bm:H,m:J,parent:K,root:ue,type:fe}=c,ke=Et(u);Qe(c,!1),H&&ks(H),!ke&&(P=R&&R.onVnodeBeforeMount)&&Ee(P,K,u),Qe(c,!0);{ue.ce&&ue.ce._def.shadowRoot!==!1&&ue.ce._injectChildStyle(fe);const Se=c.subTree=Fn(c);g(null,Se,b,C,c,_,k),u.el=Se.el}if(J&&ge(J,_),!ke&&(P=R&&R.onVnodeMounted)){const Se=u;ge(()=>Ee(P,K,Se),_)}(u.shapeFlag&256||K&&Et(K.vnode)&&K.vnode.shapeFlag&256)&&c.a&&ge(c.a,_),c.isMounted=!0,u=b=C=null}};c.scope.on();const I=c.effect=new fi($);c.scope.off();const S=c.update=I.run.bind(I),F=c.job=I.runIfDirty.bind(I);F.i=c,F.id=c.uid,I.scheduler=()=>cn(F),Qe(c,!0),S()},Q=(c,u,b)=>{u.component=c;const C=c.vnode.props;c.vnode=u,c.next=null,al(c,u.props,C,b),fl(c,u.children,b),De(),In(c),Oe()},z=(c,u,b,C,_,k,B,$,I=!1)=>{const S=c&&c.children,F=c?c.shapeFlag:0,P=u.children,{patchFlag:M,shapeFlag:R}=u;if(M>0){if(M&128){Ht(S,P,b,C,_,k,B,$,I);return}else if(M&256){Ge(S,P,b,C,_,k,B,$,I);return}}R&8?(F&16&&gt(S,_,k),P!==S&&f(b,P)):F&16?R&16?Ht(S,P,b,C,_,k,B,$,I):gt(S,_,k,!0):(F&8&&f(b,""),R&16&&X(P,b,C,_,k,B,$,I))},Ge=(c,u,b,C,_,k,B,$,I)=>{c=c||lt,u=u||lt;const S=c.length,F=u.length,P=Math.min(S,F);let M;for(M=0;M<P;M++){const R=u[M]=I?Ue(u[M]):Ie(u[M]);g(c[M],R,b,null,_,k,B,$,I)}S>F?gt(c,_,k,!0,!1,P):X(u,b,C,_,k,B,$,I,P)},Ht=(c,u,b,C,_,k,B,$,I)=>{let S=0;const F=u.length;let P=c.length-1,M=F-1;for(;S<=P&&S<=M;){const R=c[S],H=u[S]=I?Ue(u[S]):Ie(u[S]);if(bt(R,H))g(R,H,b,null,_,k,B,$,I);else break;S++}for(;S<=P&&S<=M;){const R=c[P],H=u[M]=I?Ue(u[M]):Ie(u[M]);if(bt(R,H))g(R,H,b,null,_,k,B,$,I);else break;P--,M--}if(S>P){if(S<=M){const R=M+1,H=R<F?u[R].el:C;for(;S<=M;)g(null,u[S]=I?Ue(u[S]):Ie(u[S]),b,H,_,k,B,$,I),S++}}else if(S>M)for(;S<=P;)_e(c[S],_,k,!0),S++;else{const R=S,H=S,J=new Map;for(S=H;S<=M;S++){const he=u[S]=I?Ue(u[S]):Ie(u[S]);he.key!=null&&J.set(he.key,S)}let K,ue=0;const fe=M-H+1;let ke=!1,Se=0;const vt=new Array(fe);for(S=0;S<fe;S++)vt[S]=0;for(S=R;S<=P;S++){const he=c[S];if(ue>=fe){_e(he,_,k,!0);continue}let Ce;if(he.key!=null)Ce=J.get(he.key);else for(K=H;K<=M;K++)if(vt[K-H]===0&&bt(he,u[K])){Ce=K;break}Ce===void 0?_e(he,_,k,!0):(vt[Ce-H]=S+1,Ce>=Se?Se=Ce:ke=!0,g(he,u[Ce],b,null,_,k,B,$,I),ue++)}const _n=ke?ml(vt):lt;for(K=_n.length-1,S=fe-1;S>=0;S--){const he=H+S,Ce=u[he],kn=u[he+1],Sn=he+1<F?kn.el||eo(kn):C;vt[S]===0?g(null,Ce,b,Sn,_,k,B,$,I):ke&&(K<0||S!==_n[K]?qe(Ce,b,Sn,2):K--)}}},qe=(c,u,b,C,_=null)=>{const{el:k,type:B,transition:$,children:I,shapeFlag:S}=c;if(S&6){qe(c.component.subTree,u,b,C);return}if(S&128){c.suspense.move(u,b,C);return}if(S&64){B.move(c,u,b,mt);return}if(B===ye){n(k,u,b);for(let P=0;P<I.length;P++)qe(I[P],u,b,C);n(c.anchor,u,b);return}if(B===Bs){A(c,u,b);return}if(C!==2&&S&1&&$)if(C===0)$.beforeEnter(k),n(k,u,b),ge(()=>$.enter(k),_);else{const{leave:P,delayLeave:M,afterLeave:R}=$,H=()=>{c.ctx.isUnmounted?i(k):n(k,u,b)},J=()=>{k._isLeaving&&k[Mr](!0),P(k,()=>{H(),R&&R()})};M?M(k,H,J):J()}else n(k,u,b)},_e=(c,u,b,C=!1,_=!1)=>{const{type:k,props:B,ref:$,children:I,dynamicChildren:S,shapeFlag:F,patchFlag:P,dirs:M,cacheIndex:R}=c;if(P===-2&&(_=!1),$!=null&&(De(),Ct($,null,b,c,!0),Oe()),R!=null&&(u.renderCache[R]=void 0),F&256){u.ctx.deactivate(c);return}const H=F&1&&M,J=!Et(c);let K;if(J&&(K=B&&B.onVnodeBeforeUnmount)&&Ee(K,u,c),F&6)Po(c.component,b,C);else{if(F&128){c.suspense.unmount(b,C);return}H&&Ye(c,null,u,"beforeUnmount"),F&64?c.type.remove(c,u,b,mt,C):S&&!S.hasOnce&&(k!==ye||P>0&&P&64)?gt(S,u,b,!1,!0):(k===ye&&P&384||!_&&F&16)&&gt(I,u,b),C&&wn(c)}(J&&(K=B&&B.onVnodeUnmounted)||H)&&ge(()=>{K&&Ee(K,u,c),H&&Ye(c,null,u,"unmounted")},b)},wn=c=>{const{type:u,el:b,anchor:C,transition:_}=c;if(u===ye){Bo(b,C);return}if(u===Bs){E(c);return}const k=()=>{i(b),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(c.shapeFlag&1&&_&&!_.persisted){const{leave:B,delayLeave:$}=_,I=()=>B(b,k);$?$(c.el,k,I):I()}else k()},Bo=(c,u)=>{let b;for(;c!==u;)b=T(c),i(c),c=b;i(u)},Po=(c,u,b)=>{const{bum:C,scope:_,job:k,subTree:B,um:$,m:I,a:S}=c;On(I),On(S),C&&ks(C),_.stop(),k&&(k.flags|=8,_e(B,c,u,b)),$&&ge($,u),ge(()=>{c.isUnmounted=!0},u)},gt=(c,u,b,C=!1,_=!1,k=0)=>{for(let B=k;B<c.length;B++)_e(c[B],u,b,C,_)},Nt=c=>{if(c.shapeFlag&6)return Nt(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const u=T(c.anchor||c.el),b=u&&u[Pr];return b?T(b):u};let xs=!1;const xn=(c,u,b)=>{let C;c==null?u._vnode&&(_e(u._vnode,null,null,!0),C=u._vnode.component):g(u._vnode||null,c,u,null,null,null,b),u._vnode=c,xs||(xs=!0,In(C),Bi(),xs=!1)},mt={p:g,um:_e,m:qe,r:wn,mt:ws,mc:X,pc:z,pbc:xe,n:Nt,o:e};return{render:xn,hydrate:void 0,createApp:Zr(xn)}}function $s({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 Qe({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function gl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Xi(e,t,s=!1){const n=e.children,i=t.children;if(j(n)&&j(i))for(let o=0;o<n.length;o++){const l=n[o];let a=i[o];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[o]=Ue(i[o]),a.el=l.el),!s&&a.patchFlag!==-2&&Xi(l,a)),a.type===ds&&(a.patchFlag!==-1?a.el=l.el:a.__elIndex=o+(e.type===ye?1:0)),a.type===ut&&!a.el&&(a.el=l.el)}}function ml(e){const t=e.slice(),s=[0];let n,i,o,l,a;const d=e.length;for(n=0;n<d;n++){const p=e[n];if(p!==0){if(i=s[s.length-1],e[i]<p){t[n]=i,s.push(n);continue}for(o=0,l=s.length-1;o<l;)a=o+l>>1,e[s[a]]<p?o=a+1:l=a;p<e[s[o]]&&(o>0&&(t[n]=s[o-1]),s[o]=n)}}for(o=s.length,l=s[o-1];o-- >0;)s[o]=l,l=t[l];return s}function Zi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Zi(t)}function On(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function eo(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?eo(t.subTree):null}const to=e=>e.__isSuspense;function vl(e,t){t&&t.pendingBranch?j(e)?t.effects.push(...e):t.effects.push(e):Cr(e)}const ye=Symbol.for("v-fgt"),ds=Symbol.for("v-txt"),ut=Symbol.for("v-cmt"),Bs=Symbol.for("v-stc"),It=[];let me=null;function yl(e=!1){It.push(me=e?null:[])}function bl(){It.pop(),me=It[It.length-1]||null}let Rt=1;function Ln(e,t=!1){Rt+=e,e<0&&me&&t&&(me.hasOnce=!0)}function wl(e){return e.dynamicChildren=Rt>0?me||lt:null,bl(),Rt>0&&me&&me.push(e),e}function xl(e,t,s,n,i,o){return wl(r(e,t,s,n,i,o,!0))}function so(e){return e?e.__v_isVNode===!0:!1}function bt(e,t){return e.type===t.type&&e.key===t.key}const no=({key:e})=>e??null,zt=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||ie(e)||L(e)?{i:$e,r:e,k:t,f:!!s}:e:null);function r(e,t=null,s=null,n=0,i=null,o=e===ye?0:1,l=!1,a=!1){const d={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&no(t),ref:t&&zt(t),scopeId:Ai,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:o,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:$e};return a?(pn(d,s),o&128&&e.normalize(d)):s&&(d.shapeFlag|=se(s)?8:16),Rt>0&&!l&&me&&(d.patchFlag>0||o&6)&&d.patchFlag!==32&&me.push(d),d}const et=_l;function _l(e,t=null,s=null,n=0,i=null,o=!1){if((!e||e===Wr)&&(e=ut),so(e)){const a=ft(e,t,!0);return s&&pn(a,s),Rt>0&&!o&&me&&(a.shapeFlag&6?me[me.indexOf(e)]=a:me.push(a)),a.patchFlag=-2,a}if(Ml(e)&&(e=e.__vccOpts),t){t=kl(t);let{class:a,style:d}=t;a&&!se(a)&&(t.class=Xs(a)),Z(d)&&(an(d)&&!j(d)&&(d=oe({},d)),t.style=Qs(d))}const l=se(e)?1:to(e)?128:Ar(e)?64:Z(e)?4:L(e)?2:0;return r(e,t,s,n,i,l,o,!0)}function kl(e){return e?an(e)||zi(e)?oe({},e):e:null}function ft(e,t,s=!1,n=!1){const{props:i,ref:o,patchFlag:l,children:a,transition:d}=e,p=t?Sl(i||{},t):i,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:p,key:p&&no(p),ref:t&&t.ref?s&&o?j(o)?o.concat(zt(t)):[o,zt(t)]:zt(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ye?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:d,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ft(e.ssContent),ssFallback:e.ssFallback&&ft(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return d&&n&&dn(f,d.clone(f)),f}function ae(e=" ",t=0){return et(ds,null,e,t)}function Ie(e){return e==null||typeof e=="boolean"?et(ut):j(e)?et(ye,null,e.slice()):so(e)?Ue(e):et(ds,null,String(e))}function Ue(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ft(e)}function pn(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(j(t))s=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),pn(e,i()),i._c&&(i._d=!0));return}else{s=32;const i=t._;!i&&!zi(t)?t._ctx=$e:i===3&&$e&&($e.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else L(t)?(t={default:t,_ctx:$e},s=32):(t=String(t),n&64?(s=16,t=[ae(t)]):s=8);e.children=t,e.shapeFlag|=s}function Sl(...e){const t={};for(let s=0;s<e.length;s++){const n=e[s];for(const i in n)if(i==="class")t.class!==n.class&&(t.class=Xs([t.class,n.class]));else if(i==="style")t.style=Qs([t.style,n.style]);else if(ns(i)){const o=t[i],l=n[i];l&&o!==l&&!(j(o)&&o.includes(l))&&(t[i]=o?[].concat(o,l):l)}else i!==""&&(t[i]=n[i])}return t}function Ee(e,t,s,n=null){Pe(e,t,7,[s,n])}const Cl=Vi();let El=0;function Tl(e,t,s){const n=e.type,i=(t?t.appContext:e.appContext)||Cl,o={uid:El++,vnode:e,type:n,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ui(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Gi(n,i),emitsOptions:Ui(n,i),emit:null,emitted:null,propsDefaults:q,inheritAttrs:n.inheritAttrs,ctx:q,data:q,props:q,attrs:q,slots:q,refs:q,setupState:q,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 o.ctx={_:o},o.root=t?t.root:o,o.emit=tl.bind(null,o),e.ce&&e.ce(o),o}let de=null;const Il=()=>de||$e;let ts,Us;{const e=rs(),t=(s,n)=>{let i;return(i=e[s])||(i=e[s]=[]),i.push(n),o=>{i.length>1?i.forEach(l=>l(o)):i[0](o)}};ts=t("__VUE_INSTANCE_SETTERS__",s=>de=s),Us=t("__VUE_SSR_SETTERS__",s=>Dt=s)}const Lt=e=>{const t=de;return ts(e),e.scope.on(),()=>{e.scope.off(),ts(t)}},jn=()=>{de&&de.scope.off(),ts(null)};function io(e){return e.vnode.shapeFlag&4}let Dt=!1;function $l(e,t=!1,s=!1){t&&Us(t);const{props:n,children:i}=e.vnode,o=io(e);ll(e,n,o,t),ul(e,i,s||t);const l=o?Bl(e,t):void 0;return t&&Us(!1),l}function Bl(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,zr);const{setup:n}=s;if(n){De();const i=e.setupContext=n.length>1?Al(e):null,o=Lt(e),l=Ot(n,e,0,[e.props,i]),a=li(l);if(Oe(),o(),(a||e.sp)&&!Et(e)&&Ri(e),a){if(l.then(jn,jn),t)return l.then(d=>{Hn(e,d)}).catch(d=>{ls(d,e,0)});e.asyncDep=l}else Hn(e,l)}else oo(e)}function Hn(e,t,s){L(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=Ti(t)),oo(e)}function oo(e,t,s){const n=e.type;e.render||(e.render=n.render||Be);{const i=Lt(e);De();try{Jr(e)}finally{Oe(),i()}}}const Pl={get(e,t){return ne(e,"get",""),e[t]}};function Al(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Pl),slots:e.slots,emit:e.emit,expose:t}}function hn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ti(Ei(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Tt)return Tt[s](e)},has(t,s){return s in t||s in Tt}})):e.proxy}function Ml(e){return L(e)&&"__vccOpts"in e}const Fl=(e,t)=>br(e,t,Dt),Rl="3.5.27";/**
14
+ * @vue/runtime-dom v3.5.27
15
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
16
+ * @license MIT
17
+ **/let Ks;const Nn=typeof window<"u"&&window.trustedTypes;if(Nn)try{Ks=Nn.createPolicy("vue",{createHTML:e=>e})}catch{}const ro=Ks?e=>Ks.createHTML(e):e=>e,Dl="http://www.w3.org/2000/svg",Ol="http://www.w3.org/1998/Math/MathML",Fe=typeof document<"u"?document:null,Vn=Fe&&Fe.createElement("template"),Ll={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const i=t==="svg"?Fe.createElementNS(Dl,e):t==="mathml"?Fe.createElementNS(Ol,e):s?Fe.createElement(e,{is:s}):Fe.createElement(e);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>Fe.createTextNode(e),createComment:e=>Fe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Fe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,i,o){const l=s?s.previousSibling:t.lastChild;if(i&&(i===o||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),s),!(i===o||!(i=i.nextSibling)););else{Vn.innerHTML=ro(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const a=Vn.content;if(n==="svg"||n==="mathml"){const d=a.firstChild;for(;d.firstChild;)a.appendChild(d.firstChild);a.removeChild(d)}t.insertBefore(a,s)}return[l?l.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},jl=Symbol("_vtc");function Hl(e,t,s){const n=e[jl];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Un=Symbol("_vod"),Nl=Symbol("_vsh"),Vl=Symbol(""),Ul=/(?:^|;)\s*display\s*:/;function Kl(e,t,s){const n=e.style,i=se(s);let o=!1;if(s&&!i){if(t)if(se(t))for(const l of t.split(";")){const a=l.slice(0,l.indexOf(":")).trim();s[a]==null&&Jt(n,a,"")}else for(const l in t)s[l]==null&&Jt(n,l,"");for(const l in s)l==="display"&&(o=!0),Jt(n,l,s[l])}else if(i){if(t!==s){const l=n[Vl];l&&(s+=";"+l),n.cssText=s,o=Ul.test(s)}}else t&&e.removeAttribute("style");Un in e&&(e[Un]=o?n.display:"",e[Nl]&&(n.display="none"))}const Kn=/\s*!important$/;function Jt(e,t,s){if(j(s))s.forEach(n=>Jt(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=Wl(e,t);Kn.test(s)?e.setProperty(tt(n),s.replace(Kn,""),"important"):e[n]=s}}const Wn=["Webkit","Moz","ms"],Ps={};function Wl(e,t){const s=Ps[t];if(s)return s;let n=ze(t);if(n!=="filter"&&n in e)return Ps[t]=n;n=ai(n);for(let i=0;i<Wn.length;i++){const o=Wn[i]+n;if(o in e)return Ps[t]=o}return t}const zn="http://www.w3.org/1999/xlink";function Jn(e,t,s,n,i,o=Wo(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(zn,t.slice(6,t.length)):e.setAttributeNS(zn,t,s):s==null||o&&!di(s)?e.removeAttribute(t):e.setAttribute(t,o?"":pt(s)?String(s):s)}function Gn(e,t,s,n,i){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?ro(s):s);return}const o=e.tagName;if(t==="value"&&o!=="PROGRESS"&&!o.includes("-")){const a=o==="OPTION"?e.getAttribute("value")||"":e.value,d=s==null?e.type==="checkbox"?"on":"":String(s);(a!==d||!("_value"in e))&&(e.value=d),s==null&&e.removeAttribute(t),e._value=s;return}let l=!1;if(s===""||s==null){const a=typeof e[t];a==="boolean"?s=di(s):s==null&&a==="string"?(s="",l=!0):a==="number"&&(s=0,l=!0)}try{e[t]=s}catch{}l&&e.removeAttribute(i||t)}function zl(e,t,s,n){e.addEventListener(t,s,n)}function Jl(e,t,s,n){e.removeEventListener(t,s,n)}const qn=Symbol("_vei");function Gl(e,t,s,n,i=null){const o=e[qn]||(e[qn]={}),l=o[t];if(n&&l)l.value=n;else{const[a,d]=ql(t);if(n){const p=o[t]=Xl(n,i);zl(e,a,p,d)}else l&&(Jl(e,a,l,d),o[t]=void 0)}}const Yn=/(?:Once|Passive|Capture)$/;function ql(e){let t;if(Yn.test(e)){t={};let n;for(;n=e.match(Yn);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):tt(e.slice(2)),t]}let As=0;const Yl=Promise.resolve(),Ql=()=>As||(Yl.then(()=>As=0),As=Date.now());function Xl(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;Pe(Zl(n,s.value),t,5,[n])};return s.value=e,s.attached=Ql(),s}function Zl(e,t){if(j(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const Qn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ea=(e,t,s,n,i,o)=>{const l=i==="svg";t==="class"?Hl(e,n,l):t==="style"?Kl(e,s,n):ns(t)?Gs(t)||Gl(e,t,s,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ta(e,t,n,l))?(Gn(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Jn(e,t,n,l,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!se(n))?Gn(e,ze(t),n,o,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Jn(e,t,n,l))};function ta(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Qn(t)&&L(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 i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return Qn(t)&&se(s)?!1:t in e}const sa=oe({patchProp:ea},Ll);let Xn;function na(){return Xn||(Xn=pl(sa))}const ia=(...e)=>{const t=na().createApp(...e),{mount:s}=t;return t.mount=n=>{const i=ra(n);if(!i)return;const o=t._component;!L(o)&&!o.render&&!o.template&&(o.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const l=s(i,!1,oa(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),l},t};function oa(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ra(e){return se(e)?document.querySelector(e):e}/*!
18
+ * pinia v2.3.1
19
+ * (c) 2025 Eduardo San Martin Morote
20
+ * @license MIT
21
+ */const la=Symbol();var Zn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Zn||(Zn={}));function aa(){const e=zo(!0),t=e.run(()=>pr({}));let s=[],n=[];const i=Ei({install(o){i._a=o,o.provide(la,i),o.config.globalProperties.$pinia=i,n.forEach(l=>s.push(l)),n=[]},use(o){return this._a?s.push(o):n.push(o),this},_p:s,_a:null,_e:e,_s:new Map,state:t});return i}function ca(e){let t=0;for(let n=0;n<e.length;n++)t=e.charCodeAt(n)+((t<<5)-t);return`hsl(${Math.abs(t)%360}, 70%, 45%)`}function da(e){if(!e)return"";let t=e.replace(/^(feat|chore|docs|fix|refactor|style|test|perf|ci|build)(\(.*\))?!?:?\s*/i,"");return t.charAt(0).toUpperCase()+t.slice(1)}function Ws(e){if(!e)return"";const t=document.createElement("div");return t.textContent=e,t.innerHTML}function ua(e,t){if(!t||!e)return Ws(e);const s=Ws(e);try{const n=new RegExp(`(${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");return s.replace(n,'<span class="highlight">$1</span>')}catch{return s}}function fa(e){const t=Math.floor((new Date-e)/1e3);if(t<60)return"Just now";const s=Math.floor(t/60);if(s<60)return s+"m";const n=Math.floor(s/60);return n<24?n+"h":Math.floor(n/24)+"d"}function pa(e,t="success"){const s=document.querySelector(".toast");s&&s.remove();const n=document.createElement("div");n.className=`toast ${t}`,n.textContent=e,document.body.appendChild(n),setTimeout(()=>n.remove(),3e3)}function ha(){const e=document.querySelector(".sidebar"),t=document.querySelector(".sidebar-overlay");e.classList.toggle("open"),t.classList.toggle("open")}function ga(){"Notification"in window&&Notification.permission==="default"&&Notification.requestPermission()}function ma(e,t={}){"Notification"in window&&Notification.permission==="granted"&&new Notification(e,t)}window.toggleSidebar=ha;function va(e){const t=document.getElementById(e);t&&(t.classList.add("open"),document.body.style.overflow="hidden")}function ya(e){const t=document.getElementById(e);t&&(t.classList.remove("open"),document.body.style.overflow="")}window.openModal=va;window.closeModal=ya;Object.assign(window,{stringToColor:ca,cleanTitle:da,escapeHtml:Ws,highlightText:ua,timeSince:fa,showToast:pa,requestNotificationPermission:ga,notify:ma});function ba(){const e=window.location.port;return e==="5173"||e==="5174"?"http://localhost:8001":""}const ee=ba();function us(){const e=window.location.hostname;return e==="localhost"||e==="127.0.0.1"?"http://localhost:8003/api/cli":"https://api.repr.dev/api/cli"}async function te(e,t={},s=2){for(let n=0;n<=s;n++)try{const i=await fetch(e,t);if(!i.ok&&n<s){await new Promise(o=>setTimeout(o,1e3*(n+1)));continue}return i}catch(i){if(n===s)throw i;await new Promise(o=>setTimeout(o,1e3*(n+1)))}}async function wa(){try{return await(await te(`${ee}/api/status`)).json()}catch(e){throw console.error("Failed to fetch status:",e),e}}async function xa(){try{return await(await te(`${ee}/api/stories`)).json()}catch(e){throw console.error("Failed to fetch stories:",e),e}}async function _a(){try{return await(await te(`${ee}/api/config`)).json()}catch(e){throw console.error("Failed to fetch config:",e),e}}async function ka(e){try{const t=await te(`${ee}/api/config`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error("Failed to save config");return await t.json()}catch(t){throw console.error("Failed to update config:",t),t}}async function Sa(){try{return await(await te(`${ee}/api/repos`)).json()}catch(e){throw console.error("Failed to fetch repos:",e),e}}async function Ca(e){try{return await(await te(`${ee}/api/repos/add`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})})).json()}catch(t){throw console.error("Failed to add repo:",t),t}}async function Ea(e){try{return await(await te(`${ee}/api/repos/remove`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})})).json()}catch(t){throw console.error("Failed to remove repo:",t),t}}async function Ta(e){try{return await(await te(`${ee}/api/repos/pause`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})})).json()}catch(t){throw console.error("Failed to pause repo:",t),t}}async function Ia(e){try{return await(await te(`${ee}/api/repos/resume`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})})).json()}catch(t){throw console.error("Failed to resume repo:",t),t}}async function $a(e,t){try{return await(await te(`${ee}/api/repos/rename`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,name:t})})).json()}catch(s){throw console.error("Failed to rename repo:",s),s}}async function Ba(){try{return await(await te(`${ee}/api/cron`)).json()}catch(e){throw console.error("Failed to fetch cron status:",e),e}}async function Pa(){try{return await(await te(`${ee}/api/generate`,{method:"POST"})).json()}catch(e){throw console.error("Failed to trigger generation:",e),e}}async function lo(){try{return await(await te(`${ee}/api/auth`)).json()}catch(e){throw console.error("Failed to fetch auth status:",e),e}}async function Aa(){try{const e=await fetch(`${us()}/device-code`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:"repr-cli"})});if(!e.ok)throw new Error(`HTTP ${e.status}: ${e.statusText}`);const t=await e.json();return{status:"pending",device_code:t.device_code,user_code:t.user_code,verification_url:t.verification_url,expires_in:t.expires_in,interval:t.interval||5}}catch(e){throw console.error("Failed to start login:",e),e}}async function Ma(e){var t;try{const s=await fetch(`${us()}/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({device_code:e,client_id:"repr-cli",device_id:ao(),device_name:co()})});if(s.status===200){const n=await s.json();return{status:"completed",access_token:n.access_token,user:n.user,litellm_api_key:n.litellm_api_key}}if(s.status===400){const n=await s.json(),i=n.error||((t=n.detail)==null?void 0:t.error)||"unknown";return i==="authorization_pending"?{status:"pending",message:"Waiting for authorization"}:i==="slow_down"?{status:"pending",message:"Slow down"}:i==="expired_token"?{status:"expired",message:"Device code expired"}:i==="access_denied"?{status:"denied",message:"Authorization denied"}:{status:"error",message:`Authorization failed: ${i}`}}return{status:"error",message:`Unexpected status: ${s.status}`}}catch(s){return console.error("Failed to poll login status:",s),{status:"error",message:s.message}}}async function Fa(e){try{return await(await te(`${ee}/api/auth/save`,{method:"POST",body:JSON.stringify(e)})).json()}catch(t){throw console.error("Failed to save auth token:",t),t}}async function Ra(){return{success:!0}}async function Da(){try{return await(await te(`${ee}/api/auth/logout`,{method:"POST"})).json()}catch(e){throw console.error("Failed to logout:",e),e}}function ao(){let e=localStorage.getItem("repr_device_id");return e||(e="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){const s=Math.random()*16|0;return(t==="x"?s:s&3|8).toString(16)}),localStorage.setItem("repr_device_id",e)),e}function co(){return`Dashboard (${navigator.platform||"Web"})`}async function Oa(){try{return await(await te(`${ee}/api/username`)).json()}catch(e){throw console.error("Failed to fetch username info:",e),e}}async function La(e){try{return await(await te(`${ee}/api/username/claim`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e})})).json()}catch(t){throw console.error("Failed to claim username:",t),t}}async function uo(e={}){try{const t=new URLSearchParams;return e.scope&&t.append("scope",e.scope),e.repo_name&&t.append("repo_name",e.repo_name),e.story_id&&t.append("story_id",e.story_id),e.include_pushed&&t.append("include_pushed","true"),await(await te(`${ee}/api/publish/preview?${t.toString()}`)).json()}catch(t){throw console.error("Failed to get publish preview:",t),t}}async function fo(e={}){try{const t=await uo(e);if(!t.stories||t.stories.length===0)return{success:!0,published_count:0,failed_count:0,message:"No stories to publish"};const s=await lo();if(!s.authenticated||!s.token)return{success:!1,error:"Not authenticated"};const n=t.stories.map(l=>({...l,visibility:e.visibility||l.visibility||"private"})),i=await fetch(`${us()}/stories/batch`,{method:"POST",headers:{Authorization:`Bearer ${s.token}`,"Content-Type":"application/json","User-Agent":"repr-dashboard/0.1.0"},body:JSON.stringify({stories:n})});if(!i.ok)return{success:!1,error:(await i.json().catch(()=>({}))).detail||`HTTP ${i.status}`};const o=await i.json();return o.pushed>0&&await fetch(`${ee}/api/publish/mark-pushed`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({story_ids:n.map(l=>l.id)})}).catch(()=>{}),{success:!0,published_count:o.pushed||0,failed_count:o.failed||0}}catch(t){return console.error("Failed to publish stories:",t),{success:!1,error:t.message}}}async function ja(e,t=null){return fo({scope:"story",story_id:e,visibility:t})}Object.assign(window,{API_BASE:ee,getReprApiBase:us,fetchWithRetry:te,getStatus:wa,getStories:xa,getConfig:_a,updateConfig:ka,getRepos:Sa,addRepo:Ca,removeRepo:Ea,pauseRepo:Ta,resumeRepo:Ia,renameRepo:$a,getCronStatus:Ba,triggerGeneration:Pa,getAuthStatus:lo,startLogin:Aa,pollLoginStatus:Ma,saveAuthToken:Fa,cancelLogin:Ra,logout:Da,getUsernameInfo:Oa,claimUsername:La,getDeviceId:ao,getDeviceName:co,getPublishPreview:uo,publishStories:fo,publishSingleStory:ja});class po{constructor(){this.state={stories:[],repos:[],config:null,cronStatus:null,currentRepo:"all",searchQuery:"",currentMainView:"stories",currentSettingsTab:"form",configDirty:!1,previousView:"view-main"},this.subscribers=[]}get(t){return t?this.state[t]:this.state}update(t,s){const n=this.state[t];this.state[t]=s,this.subscribers.forEach(i=>i(t,s,n))}batchUpdate(t){Object.entries(t).forEach(([s,n])=>{this.state[s]=n}),this.subscribers.forEach(s=>s("batch",t,null))}subscribe(t){return this.subscribers.push(t),()=>{const s=this.subscribers.indexOf(t);s>-1&&this.subscribers.splice(s,1)}}reset(){this.state={stories:[],repos:[],config:null,cronStatus:null,currentRepo:"all",searchQuery:"",currentMainView:"stories",currentSettingsTab:"form",configDirty:!1,previousView:"view-main"},this.subscribers.forEach(t=>t("reset",this.state,null))}}const $t=new po;$t.initRouter=function(){window.addEventListener("popstate",e=>{const t=e.state;if(!t){$t.update("currentMainView","stories"),switchMainView("stories",!1),ei();return}t.view==="detail"&&t.storyId?$t.get("stories").find(i=>i.id===t.storyId)&&openStory(null,t.storyId,!1):t.view==="profile"&&t.repoName?openProfile(null,t.repoName,!1):t.view==="user"&&t.authorName?openUser(null,t.authorName,t.authorEmail||"",!1):t.view==="main"&&(ei(),t.mainView&&switchMainView(t.mainView,!1))})};$t.pushHistory=function(e,t,s){history.pushState(e,t,s)};function ei(){document.getElementById("view-main").style.display=""}window.store=$t;window.State=po;const zs="repr-dashboard-theme";function Ha(){const e=localStorage.getItem(zs);if(e)Bt(e);else{const t=window.matchMedia("(prefers-color-scheme: dark)").matches;Bt(t?"dark":"light")}window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",t=>{localStorage.getItem(zs)||Bt(t.matches?"dark":"light")})}function Bt(e){document.documentElement.setAttribute("data-theme",e),ho(e)}function Na(){const t=document.documentElement.getAttribute("data-theme")==="dark"?"light":"dark";Bt(t),localStorage.setItem(zs,t),showToast(`${t==="dark"?"Dark":"Light"} mode enabled`,"success")}function Va(){return document.documentElement.getAttribute("data-theme")||"light"}function ho(e){const t=document.getElementById("theme-toggle");if(t){const s=t.querySelector(".theme-toggle-icon");s&&(s.textContent=e==="dark"?"☀":"☾")}}window.toggleTheme=Na;Object.assign(window,{initTheme:Ha,setTheme:Bt,getTheme:Va,updateThemeToggleIcon:ho});let ve=-1,ss=!1;function Ua(){document.addEventListener("keydown",Ka)}function Ka(e){if((e.metaKey||e.ctrlKey)&&e.key==="k"){e.preventDefault(),ti();return}if(e.target.tagName==="INPUT"||e.target.tagName==="TEXTAREA"){if(e.key==="Escape"){e.target.blur();return}return}if(ss){(e.key==="Escape"||e.key==="?")&&(mo(),e.preventDefault());return}switch(e.key){case"/":e.preventDefault(),ti();break;case"j":e.preventDefault(),Wa();break;case"k":e.preventDefault(),za();break;case"Enter":ve>=0&&(e.preventDefault(),Ja());break;case"Escape":e.preventDefault(),Ga();break;case"r":case"R":e.preventDefault(),refreshStories();break;case"?":e.preventDefault(),qa();break}}function ti(){const e=document.getElementById("search-input");e&&(e.focus(),showToast("Search focused (type to filter, Esc to clear)","success"))}function Wa(){const e=fs();e.length&&(ve=Math.min(ve+1,e.length-1),go(e))}function za(){const e=fs();e.length&&(ve=Math.max(ve-1,0),go(e))}function fs(){return Array.from(document.querySelectorAll(".post-card"))}function go(e){e.forEach((t,s)=>{t.classList.toggle("selected",s===ve),s===ve&&t.scrollIntoView({behavior:"smooth",block:"center"})})}function Ja(){const e=fs();if(ve>=0&&ve<e.length){const s=e[ve].id.replace("post-","");s&&openStory({stopPropagation:()=>{}},s)}}function Ga(){const e=document.getElementById("view-detail"),t=document.getElementById("view-profile");if((e==null?void 0:e.style.display)!=="none"||(t==null?void 0:t.style.display)!=="none"){goBack();return}const s=document.getElementById("search-input");if(s&&s.value){s.value="",store.update("searchQuery",""),filterAndRenderStories();return}ve>=0&&(ve=-1,fs().forEach(i=>i.classList.remove("selected")))}function qa(){if(ss)return;ss=!0;const e=document.createElement("div");e.id="keyboard-shortcuts-modal",e.className="keyboard-modal",e.innerHTML=`
22
+ <div class="keyboard-modal-backdrop" onclick="hideKeyboardShortcuts()"></div>
23
+ <div class="keyboard-modal-content">
24
+ <div class="keyboard-modal-header">
25
+ <h3>Keyboard Shortcuts</h3>
26
+ <button class="keyboard-modal-close" onclick="hideKeyboardShortcuts()">×</button>
27
+ </div>
28
+ <div class="keyboard-shortcuts-list">
29
+ <div class="shortcut-row">
30
+ <kbd>/</kbd>
31
+ <span>Focus search</span>
32
+ </div>
33
+ <div class="shortcut-row">
34
+ <kbd>j</kbd>
35
+ <span>Next story</span>
36
+ </div>
37
+ <div class="shortcut-row">
38
+ <kbd>k</kbd>
39
+ <span>Previous story</span>
40
+ </div>
41
+ <div class="shortcut-row">
42
+ <kbd>Enter</kbd>
43
+ <span>Open selected story</span>
44
+ </div>
45
+ <div class="shortcut-row">
46
+ <kbd>Esc</kbd>
47
+ <span>Close / Clear search / Reset</span>
48
+ </div>
49
+ <div class="shortcut-row">
50
+ <kbd>r</kbd>
51
+ <span>Refresh stories</span>
52
+ </div>
53
+ <div class="shortcut-row">
54
+ <kbd>?</kbd>
55
+ <span>Show this help</span>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ `,document.body.appendChild(e)}function mo(){const e=document.getElementById("keyboard-shortcuts-modal");e&&(e.remove(),ss=!1)}Object.assign(window,{initKeyboard:Ua,hideKeyboardShortcuts:mo});const Ms=[{id:"mock-new-1",repo_name:"repr",author_name:"Mendrika Ramarlina",handle:"pumpfun-trader",verified:!0,signature_status:"all_verified",signed_count:5,total_commits:5,category:"feature",title:"Integrate real-time monitoring system with 6-stage pipeline",problem:"The system lacked real-time market tracking and structured lifecycle management for tokens beyond the initial screening phase.",approach:`Before:
60
+ [Screening]
61
+
62
+ After:
63
+ [Helius WS] --> [Bonding Stream]
64
+ |
65
+ v
66
+ [SQLite DB] <--- [Monitor Service]
67
+ |
68
+ v
69
+ [Dashboard] <--- [Socket.io]`,created_at:new Date(Date.now()-1e3*60*60*24).toISOString(),technologies:["websockets","socket.io","sqlite"],diagram:"const STAGES = ['screening', 'monitoring', 'post-graduation', 'entry-watch', 'holding', 'dropped'];",files:["src/monitor.ts","src/pipeline.ts"]},{id:"mock-new-2",repo_name:"repr-dashboard",author_name:"Mendrika Ramarlina",handle:"pumpfun-trader",verified:!0,category:"feature",title:"SSE-powered screening dashboard",problem:"The long-running screening process was opaque, and there was no interface to view enriched data.",created_at:new Date(Date.now()-1e3*60*60*25).toISOString(),technologies:["server-sent-events(sse)","express.js","rest-api"],files:["dashboard/server.js"]},{id:"mock-1",repo_name:"cli",author_name:"mendrika",verified:!0,signature_status:"all_verified",signed_count:3,total_commits:3,category:"feature",title:"Restore dashboard diff functionality and improve branch suggestions",problem:"The dashboard lacked diff visualization, and internal models required refactoring to support better branch suggestions.",approach:"Executed a refactor of core data models and synthesis logic to improve code representation, then restored the diff view in the dashboard.",created_at:new Date(Date.now()-1e3*60*60*2).toISOString(),technologies:["Python","SQLite","Jinja2"],lessons:["Separating the 'Synthesis' logic from the 'Presentation' logic made the diff rendering 3x faster."],files:["src/dashboard.py","templates/index.html"],implementation_details:["Refactored `DiffGenerator` class to handle binary files gracefully.","Updated Jinja2 templates to loop through file deltas.","Added caching layer for diffs larger than 1MB."],key_snippets:[{file_path:"src/dashboard.py",line_count:15,content:`def get_diff(self, file_path):
70
+ # Check cache first
71
+ if file_path in self.cache:
72
+ return self.cache[file_path]
73
+
74
+ # Generate diff
75
+ diff = git.diff(file_path)
76
+ return diff`}]},{id:"mock-2",repo_name:"repr",author_name:"johndoe",verified:!1,signature_status:"unsigned",signed_count:0,total_commits:2,category:"chore",title:"docs: update CLI usage messages for clarity",problem:"The previous usage messages were too generic and lacked context for specific arguments.",approach:"Updated help strings in Typer/Click definitions to include examples.",created_at:new Date(Date.now()-1e3*60*60*5).toISOString(),technologies:["Python","Typer"],files:["cli/main.py"]},{id:"mock-3",repo_name:"agent-core",author_name:"alice",verified:!1,signature_status:"partially_signed",signed_count:2,total_commits:4,category:"bugfix",title:"Fix memory leak in background worker",problem:"The worker process was consuming increasing RAM over long execution periods.",approach:"Identified a circular reference in the Task object. Implemented weak references for parent links.",created_at:new Date(Date.now()-1e3*60*60*24).toISOString(),technologies:["Rust","Tokio"],diagram:`Task -> (strong) -> Context -> (strong) -> Task [LEAK]
77
+
78
+ Fix:
79
+ Task -> (strong) -> Context -> (weak) -> Task`}];async function vo(){oc();try{const[o,l]=await Promise.all([getStatus(),getStories(),window.loadRepos?window.loadRepos():Promise.resolve()]);document.getElementById("status-text").innerText=`${o.count} stories · ${o.repos} repos`,store.update("stories",l.stories),si(l.stories,o.repos)}catch(o){console.warn("Using mock data:",o),store.update("stories",Ms),document.getElementById("status-text").innerText=`${Ms.length} stories · Demo Mode`,si(Ms,3)}Xa(),Ya(),ps(),store.initRouter&&store.initRouter();const e=new URLSearchParams(window.location.search),t=e.get("view"),s=e.get("profile"),n=e.get("user"),i=e.get("story");i?yo(null,i,!1):s?bo(null,s,!1):n?wo(null,decodeURIComponent(n),"",!1):t&&["stories","settings","llm","privacy","repos","cron"].includes(t)&&switchMainView(t,!1)}function si(e,t){const s=document.getElementById("stat-total-stories"),n=document.getElementById("stat-total-repos");s&&(s.textContent=e.length),n&&(n.textContent=t)}function Ya(){const e=document.getElementById("recommended-repos");if(!e)return;const t=store.get("repos")||[],s=document.getElementById("show-more-repos-btn");if(t.length===0){e.innerHTML='<div class="loading-text">No repositories tracked</div>',s&&(s.style.display="none");return}const n=[...t].sort((i,o)=>{var d,p;const l=((d=i.project)==null?void 0:d.name)||i.path.split("/").pop(),a=((p=o.project)==null?void 0:p.name)||o.path.split("/").pop();return l.localeCompare(a)});s&&(s.style.display=n.length>3?"block":"none",e.classList.remove("expanded"),s.textContent="Show more"),e.innerHTML=n.map(i=>{var f;const o=((f=i.project)==null?void 0:f.name)||i.origin_name||i.path.split("/").pop(),l=stringToColor(o),a=o.substring(0,1).toUpperCase(),p=(store.get("stories")||[]).filter(w=>w.repo_name===o).length;return`
80
+ <div class="widget-item" onclick="openProfile(event, '${escapeHtml(o)}')">
81
+ <div class="widget-item-avatar" style="background: ${l}">${a}</div>
82
+ <div class="widget-item-info">
83
+ <div class="widget-item-name">${escapeHtml(o)}</div>
84
+ <div class="widget-item-subtitle">${p} stories</div>
85
+ </div>
86
+ </div>
87
+ `}).join("")}function Qa(){const e=document.getElementById("recommended-repos"),t=document.getElementById("show-more-repos-btn");!e||!t||(e.classList.toggle("expanded"),e.classList.contains("expanded")?t.textContent="Show less":t.textContent="Show more")}function Xa(){const e=document.getElementById("repo-tabs");if(!e)return;store.get("stories");const t={};let s='<div class="repo-tab active" data-repo="all">All</div>';Object.entries(t).sort((n,i)=>i[1]-n[1]).forEach(([n,i])=>{s+=`<div class="repo-tab" data-repo="${n}">${n}</div>`}),e.innerHTML=s,e.querySelectorAll(".repo-tab").forEach(n=>{n.onclick=()=>{e.querySelectorAll(".repo-tab").forEach(i=>i.classList.remove("active")),n.classList.add("active"),store.update("currentRepo",n.dataset.repo),ps()}})}function ps(){const e=store.get("stories"),t=store.get("currentRepo"),s=store.get("searchQuery");let n=e;t!=="all"&&(n=n.filter(i=>i.repo_name===t)),s&&(n=n.filter(i=>[i.title,i.repo_name,i.category,i.post_body,i.problem,i.approach,...i.technologies||[],...i.files||[]].join(" ").toLowerCase().includes(s))),hs(n)}function Za(e){const t=new Date,s=new Date(e),n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),i=new Date(s.getFullYear(),s.getMonth(),s.getDate()),o=Math.floor((n-i)/(1e3*60*60*24));if(o===0)return"Today";if(o===1)return"Yesterday";if(o<7)return"This Week";const l={month:"short",day:"numeric"};return s.getFullYear()!==t.getFullYear()&&(l.year="numeric"),s.toLocaleDateString("en-US",l)}function ec(e){const t={};e.forEach(i=>{const o=i.started_at||i.created_at,l=Za(o);t[l]||(t[l]=[]),t[l].push(i)});const s=["Today","Yesterday","This Week"],n=Object.keys(t).sort((i,o)=>{const l=s.indexOf(i),a=s.indexOf(o);return l!==-1&&a!==-1?l-a:l!==-1?-1:a!==-1?1:new Date(t[o][0].started_at||t[o][0].created_at)-new Date(t[i][0].started_at||t[i][0].created_at)});return{groups:t,labels:n}}function hs(e,t="feed",s={}){const n=document.getElementById(t),i=store.get("searchQuery");if(!e||!e.length){i?n.innerHTML=`
88
+ <div class="empty-state">
89
+ <div class="empty-state-title">No matches found</div>
90
+ <div style="font-size: 14px;">Try adjusting your search query or filters</div>
91
+ <button class="btn btn-secondary" onclick="document.getElementById('search-input').value=''; store.update('searchQuery', ''); filterAndRenderStories();" style="margin-top: 16px;">Clear Search</button>
92
+ </div>`:n.innerHTML=`
93
+ <div class="empty-state">
94
+ <div class="empty-state-title">Your timeline is empty</div>
95
+ <div style="font-size: 14px;">Run your first generation to see your development story</div>
96
+ <button class="btn btn-primary" onclick="triggerGenerationClick()" style="margin-top: 16px;">Generate Now</button>
97
+ </div>`;return}if(i){n.innerHTML=e.map(d=>ni(d,i,s)).join("");return}const{groups:o,labels:l}=ec(e);let a="";l.forEach(d=>{const p=o[d];a+=`
98
+ <div class="date-header">
99
+ <span class="date-header-label">${d}</span>
100
+ </div>
101
+ ${p.map(f=>ni(f,i,s)).join("")}
102
+ `}),n.innerHTML=a}function ni(e,t,s={}){const n=timeSince(new Date(e.started_at||e.created_at)),i=e.category||"chore",o=e.repo_name||"cli";let l=e.author_name||e.username||"unknown";const a=e.verified||!1;highlightText(cleanTitle(e.title),t),e.post_body&&highlightText(e.post_body,t);const d=e.problem?highlightText(e.problem,t):"",p=e.approach?highlightText(e.approach,t):"";let f=stringToColor(l),w=l.substring(0,1).toUpperCase(),T=highlightText(l,t),m=e.handle?`/r/${e.handle}`:`/r/${o}`;const h=a?'<span class="verified-badge" title="GPG signed commits">✓</span>':"",g=e.author_email||"",x=g?gn(g,80):null,y=x?`<img src="${x}" alt="${escapeHtml(l)}" style="width:100%;height:100%;border-radius:50%;object-fit:cover;">`:w,v=[];e.technologies&&e.technologies.length&&e.technologies.slice(0,3).forEach(Y=>v.push(Y.toLowerCase().replace(/\s+/g,"")));const A=v.length?v.map(Y=>`<span class="hashtag" onclick="filterByTag(event, '${Y}')">#${highlightText(Y,t)}</span>`).join(" "):"",E=p||d;let D="";return e.diagram&&(D+=`<div class="post-media"><pre class="post-diagram">${escapeHtml(e.diagram)}</pre></div>`),e.show&&(D+=`<div class="post-media"><pre class="post-output">${escapeHtml(e.show)}</pre></div>`),`
103
+ <article class="post-card" id="post-${e.id}" onclick="openStory(event, '${e.id}')">
104
+ <div class="post-card-header">
105
+ <div class="post-avatar" style="background:${x?"transparent":f}; cursor: pointer;" onclick="openUser(event, '${escapeHtml(e.author_name||l)}', '${escapeHtml(g)}')">${y}</div>
106
+ <div class="post-header-info">
107
+ <div class="post-header-author">
108
+ <span class="post-author" onclick="openUser(event, '${escapeHtml(e.author_name||l)}', '${escapeHtml(e.author_email||"")}')">${T}${h}</span>
109
+ <span class="post-meta-sep">·</span>
110
+ <span class="post-handle" onclick="openProfile(event, '${o}')">${m}</span>
111
+ <span class="post-meta-sep">·</span>
112
+ <span class="category-meta ${i}">${i}</span>
113
+ <span class="post-meta-sep">·</span>
114
+ <span class="post-time">${n}</span>
115
+ </div>
116
+ </div>
117
+ </div>
118
+
119
+ <div class="post-content-full">
120
+ <div class="post-text">${E?`${E}`:""}</div>
121
+ ${D}
122
+ ${A?`<div class="post-tags">${A}</div>`:""}
123
+ <div class="post-actions">
124
+ <div class="post-action" title="Comment">
125
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
126
+ <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path>
127
+ </svg>
128
+ <span></span>
129
+ </div>
130
+ <div class="post-action" title="Repost">
131
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
132
+ <polyline points="17 1 21 5 17 9"></polyline>
133
+ <path d="M3 11V9a4 4 0 0 1 4-4h14"></path>
134
+ <polyline points="7 23 3 19 7 15"></polyline>
135
+ <path d="M21 13v2a4 4 0 0 1-4 4H3"></path>
136
+ </svg>
137
+ </div>
138
+ <div class="post-action" title="Like">
139
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
140
+ <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path>
141
+ </svg>
142
+ </div>
143
+ <div class="post-action post-action-publish" title="Publish to cloud" onclick="publishSingleStoryClick(event, '${e.id}')">
144
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
145
+ <path d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"></path>
146
+ </svg>
147
+ </div>
148
+ </div>
149
+ </div>
150
+ </article >
151
+ `}function yo(e,t,s=!0){const i=store.get("stories").find(O=>O.id===t);if(!i)return;s&&(window.lastScrollY=window.scrollY,document.getElementById("view-profile").style.display==="block"?store.update("previousView","view-profile"):document.getElementById("view-user").style.display==="block"?store.update("previousView","view-user"):store.update("previousView","view-main"),store.pushHistory({view:"detail",storyId:t},`Repr - ${cleanTitle(i.title)} `,` ? story = ${t} `)),["stories","settings","llm","privacy","repos","cron","profile","user"].forEach(O=>{const X=document.getElementById("view-"+O);X&&(X.style.display="none")}),document.getElementById("view-detail").style.display="block",window.scrollTo(0,0);const o=document.getElementById("detail-content"),l=timeSince(new Date(i.started_at||i.created_at)),a=i.category||"update",d=i.repo_name||"cli",p=i.author_name||i.username||"unknown",f=i.verified||!1,w=cleanTitle(i.title),T=f?'<span class="verified-badge" title="GPG signed commits">✓</span>':"";i.signature_status&&(f||i.signature_status,i.signed_count!==void 0&&`${i.signed_count}${i.total_commits}`),i.technologies&&i.technologies.length&&`${i.technologies.map(O=>`<span class="skill-tag">${escapeHtml(O)}</span>`).join("")}`;const m=i.show?`<div class="snippet-block" style="margin-top:16px"><div class="snippet-header">Output</div><div class="snippet-code"><pre>${escapeHtml(i.show)}</pre></div></div>`:"",h=i.diagram?`<div class="diagram-block"><pre>${escapeHtml(i.diagram)}</pre></div>`:"",g=i.files&&i.files.length?`<div class="section-subtitle">Files Touched</div>
152
+ <div class="files-row">
153
+ ${i.files.map(O=>`<span class="file-tag">${escapeHtml(O.split("/").pop())}</span>`).join("")}
154
+ </div>`:"",x=i.key_snippets&&i.key_snippets.length?`<div class="section-subtitle">Key Snippets</div>
155
+ ${i.key_snippets.map(O=>`
156
+ <div class="snippet-block">
157
+ <div class="snippet-header">${escapeHtml(O.file_path)}</div>
158
+ <div class="snippet-code"><pre>${escapeHtml(O.content)}</pre></div>
159
+ </div>
160
+ `).join("")} `:"",y=i.file_changes&&i.file_changes.length?`<div class="section-subtitle">File Changes</div>
161
+ <ul style="padding-left:16px; color:var(--text-secondary); font-size:15px; margin-bottom: 24px; list-style: none;">
162
+ ${i.file_changes.map(O=>{const X=O.file_path||O.path||"unknown",st=O.change_type||"modified",xe=O.insertions||0,He=O.deletions||0,Ae=[];xe>0&&Ae.push(`<span style="color: var(--green);">+${xe}</span>`),He>0&&Ae.push(`<span style="color: var(--red);">-${He}</span>`);const nt=Ae.length>0?Ae.join("/"):"0 changes";return`<li style="margin-bottom: 4px; font-family: var(--font-mono); font-size: 13px;">
163
+ <span style="color: var(--text-muted);">[${st}]</span> ${escapeHtml(X.split("/").pop())}
164
+ <span style="margin-left: 8px; font-size: 12px;">${nt}</span>
165
+ </li>`}).join("")}
166
+ </ul>`:"",v=stringToColor(p),A=p.substring(0,2).toUpperCase(),E=i.author_email||"",D=gn(E,96),Y=D?`<img src="${D}" alt="${escapeHtml(p)}" style="width:100%;height:100%;border-radius:50%;object-fit:cover;">`:A;o.innerHTML=`
167
+ <div class="post-detail" >
168
+ <div class="post-detail-header">
169
+ <div class="post-avatar" style="background:${D?"transparent":v}; width: 48px; height: 48px; font-size: 18px;" onclick="openUser(event, '${escapeHtml(p)}', '${escapeHtml(E)}')">${Y}</div>
170
+ <div class="post-detail-author-info">
171
+ <div class="post-author" onclick="openUser(event, '${escapeHtml(p)}', '${escapeHtml(E)}')" style="font-size: 16px;">${escapeHtml(p)}${T}</div>
172
+ <div class="post-handle" onclick="openProfile(event, '${d}')" style="font-size: 15px;">@${d} · ${l}</div>
173
+ </div>
174
+ <div class="post-detail-category">
175
+ <span class="category ${a}">${a}</span>
176
+ </div>
177
+ </div>
178
+
179
+ <div class="post-detail-body">
180
+ <h1 class="post-detail-title">${escapeHtml(w)}</h1>
181
+ ${i.what?`<div class="section-subtitle">What</div><div class="post-detail-text" style="font-size: 16px; margin-bottom: 24px;">${escapeHtml(i.what)}</div>`:""}
182
+ ${i.value?`<div class="section-subtitle">Value</div><div class="post-detail-text" style="font-size: 16px; margin-bottom: 24px;">${escapeHtml(i.value)}</div>`:""}
183
+
184
+ ${i.decisions&&i.decisions.length?`
185
+ <div class="section-subtitle">Decisions</div>
186
+ <ul class="detail-list" style="margin-bottom: 24px;">
187
+ ${i.decisions.map(O=>`<li>${escapeHtml(O)}</li>`).join("")}
188
+ </ul>
189
+ `:""}
190
+
191
+ ${i.problem?`<div class="post-detail-text" style="font-size: 16px; color: var(--text-primary); margin-bottom: 24px;">${escapeHtml(i.problem)}</div>`:""}
192
+ ${i.post_body?`<div class="post-detail-text" style="font-size: 16px; color: var(--text-primary); margin-bottom: 24px; line-height: 1.6;">${escapeHtml(i.post_body)}</div>`:""}
193
+
194
+ ${i.insight?`
195
+ <div class="insight-box" style="margin-top: 24px;">
196
+ <div class="insight-label">Insight</div>
197
+ <div class="insight-text">${escapeHtml(i.insight)}</div>
198
+ </div>
199
+ `:""}
200
+
201
+ ${m}
202
+ ${h}
203
+
204
+ ${i.lessons&&i.lessons.length?`
205
+ <div class="insight-box" style="margin-top: 32px;">
206
+ <div class="insight-label">Key Insight</div>
207
+ ${i.lessons.map(O=>`<div class="insight-text">${escapeHtml(O)}</div>`).join("")}
208
+ </div>
209
+ `:""}
210
+
211
+ ${i.implementation_details&&i.implementation_details.length?`
212
+ <div class="section-subtitle">Implementation</div>
213
+ <ul class="detail-list">
214
+ ${i.implementation_details.map(O=>`<li>${escapeHtml(O)}</li>`).join("")}
215
+ </ul>
216
+ `:""}
217
+
218
+ ${g}
219
+ ${x}
220
+ ${y}
221
+ </div>
222
+
223
+ <div class="post-detail-footer">
224
+ <div class="post-actions" style="max-width: none; border-top: 1px solid var(--border); padding-top: 12px; margin-top: 32px;">
225
+ <!-- Same actions as card -->
226
+ <div class="post-action">
227
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"/></svg>
228
+ <span>${i.total_commits||""}</span>
229
+ </div>
230
+ <div class="post-action"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="17 1 21 5 17 9"></polyline><path d="M3 11V9a4 4 0 0 1 4-4h14"></path><polyline points="7 23 3 19 7 15"></polyline><path d="M21 13v2a4 4 0 0 1-4 4H3"></path></svg></div>
231
+ <div class="post-action"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path></svg></div>
232
+ <div class="post-action"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" y1="2" x2="12" y2="15"></line></svg></div>
233
+ </div>
234
+ </div>
235
+ </div>
236
+ `}function bo(e,t,s=!0){e&&e.stopPropagation(),s&&(window.lastScrollY=window.scrollY,store.update("previousView","view-profile"),store.pushHistory({view:"profile",repoName:t},`Repr - @${t} `,` ? profile = ${t} `)),["stories","settings","llm","privacy","repos","cron","detail","user"].forEach(h=>{const g=document.getElementById("view-"+h);g&&(g.style.display="none")}),document.getElementById("view-profile").style.display="block",window.scrollTo(0,0);const n=stringToColor(t),i=t.substring(0,1).toUpperCase(),o=document.getElementById("profile-view-avatar");o.style.background=n,o.textContent=i,document.getElementById("profile-view-name").textContent=t,document.getElementById("profile-nav-name").textContent=t,document.getElementById("profile-view-handle").textContent="@"+t;const l=Math.abs(stringToColor(t+"1").hashCode()||0)%360,a=Math.abs(stringToColor(t+"2").hashCode()||0)%360;document.getElementById("profile-cover").style.background=`linear - gradient(135deg, hsl(${l}, 70 %, 80 %) 0 %, hsl(${a}, 70 %, 85 %) 100 %)`;const p=store.get("stories").filter(h=>h.repo_name===t),f=p.reduce((h,g)=>h+(g.total_commits||0),0),w=new Set(p.map(h=>h.author_name)).size;document.getElementById("profile-stories-count").textContent=p.length,document.getElementById("profile-commits-count").textContent=f,document.getElementById("profile-contributors-count").textContent=w,document.getElementById("profile-stats-count").textContent=`+ ${w} contributors`;const T=p[0],m=T?timeSince(new Date(T.started_at||T.created_at)):"a while ago";document.getElementById("profile-view-bio").textContent=`Repository tracked by Repr.Active ${m}. Contains ${p.length} stories.`,hs(p,"profile-feed",{})}function tc(e){function t(v,A){return v<<A|v>>>32-A}function s(v,A){const E=(v&65535)+(A&65535);return(v>>16)+(A>>16)+(E>>16)<<16|E&65535}function n(v,A,E){return v&A|~v&E}function i(v,A,E){return v&E|A&~E}function o(v,A,E){return v^A^E}function l(v,A,E){return A^(v|~E)}function a(v,A,E,D,Y,O,X){return s(t(s(s(v,n(A,E,D)),s(Y,X)),O),A)}function d(v,A,E,D,Y,O,X){return s(t(s(s(v,i(A,E,D)),s(Y,X)),O),A)}function p(v,A,E,D,Y,O,X){return s(t(s(s(v,o(A,E,D)),s(Y,X)),O),A)}function f(v,A,E,D,Y,O,X){return s(t(s(s(v,l(A,E,D)),s(Y,X)),O),A)}function w(v){const A=(v.length+8>>6)+1,E=Array(A*16).fill(0);for(let D=0;D<v.length;D++)E[D>>2]|=v.charCodeAt(D)<<D%4*8;return E[v.length>>2]|=128<<v.length%4*8,E[A*16-2]=v.length*8,E}function T(v){let A="";for(let E=0;E<4;E++)A+=(v>>E*8&255).toString(16).padStart(2,"0");return A}const m=w(e);let h=1732584193,g=4023233417,x=2562383102,y=271733878;for(let v=0;v<m.length;v+=16){const A=h,E=g,D=x,Y=y;h=a(h,g,x,y,m[v],7,3614090360),y=a(y,h,g,x,m[v+1],12,3905402710),x=a(x,y,h,g,m[v+2],17,606105819),g=a(g,x,y,h,m[v+3],22,3250441966),h=a(h,g,x,y,m[v+4],7,4118548399),y=a(y,h,g,x,m[v+5],12,1200080426),x=a(x,y,h,g,m[v+6],17,2821735955),g=a(g,x,y,h,m[v+7],22,4249261313),h=a(h,g,x,y,m[v+8],7,1770035416),y=a(y,h,g,x,m[v+9],12,2336552879),x=a(x,y,h,g,m[v+10],17,4294925233),g=a(g,x,y,h,m[v+11],22,2304563134),h=a(h,g,x,y,m[v+12],7,1804603682),y=a(y,h,g,x,m[v+13],12,4254626195),x=a(x,y,h,g,m[v+14],17,2792965006),g=a(g,x,y,h,m[v+15],22,1236535329),h=d(h,g,x,y,m[v+1],5,4129170786),y=d(y,h,g,x,m[v+6],9,3225465664),x=d(x,y,h,g,m[v+11],14,643717713),g=d(g,x,y,h,m[v],20,3921069994),h=d(h,g,x,y,m[v+5],5,3593408605),y=d(y,h,g,x,m[v+10],9,38016083),x=d(x,y,h,g,m[v+15],14,3634488961),g=d(g,x,y,h,m[v+4],20,3889429448),h=d(h,g,x,y,m[v+9],5,568446438),y=d(y,h,g,x,m[v+14],9,3275163606),x=d(x,y,h,g,m[v+3],14,4107603335),g=d(g,x,y,h,m[v+8],20,1163531501),h=d(h,g,x,y,m[v+13],5,2850285829),y=d(y,h,g,x,m[v+2],9,4243563512),x=d(x,y,h,g,m[v+7],14,1735328473),g=d(g,x,y,h,m[v+12],20,2368359562),h=p(h,g,x,y,m[v+5],4,4294588738),y=p(y,h,g,x,m[v+8],11,2272392833),x=p(x,y,h,g,m[v+11],16,1839030562),g=p(g,x,y,h,m[v+14],23,4259657740),h=p(h,g,x,y,m[v+1],4,2763975236),y=p(y,h,g,x,m[v+4],11,1272893353),x=p(x,y,h,g,m[v+7],16,4139469664),g=p(g,x,y,h,m[v+10],23,3200236656),h=p(h,g,x,y,m[v+13],4,681279174),y=p(y,h,g,x,m[v],11,3936430074),x=p(x,y,h,g,m[v+3],16,3572445317),g=p(g,x,y,h,m[v+6],23,76029189),h=p(h,g,x,y,m[v+9],4,3654602809),y=p(y,h,g,x,m[v+12],11,3873151461),x=p(x,y,h,g,m[v+15],16,530742520),g=p(g,x,y,h,m[v+2],23,3299628645),h=f(h,g,x,y,m[v],6,4096336452),y=f(y,h,g,x,m[v+7],10,1126891415),x=f(x,y,h,g,m[v+14],15,2878612391),g=f(g,x,y,h,m[v+5],21,4237533241),h=f(h,g,x,y,m[v+12],6,1700485571),y=f(y,h,g,x,m[v+3],10,2399980690),x=f(x,y,h,g,m[v+10],15,4293915773),g=f(g,x,y,h,m[v+1],21,2240044497),h=f(h,g,x,y,m[v+8],6,1873313359),y=f(y,h,g,x,m[v+15],10,4264355552),x=f(x,y,h,g,m[v+6],15,2734768916),g=f(g,x,y,h,m[v+13],21,1309151649),h=f(h,g,x,y,m[v+4],6,4149444226),y=f(y,h,g,x,m[v+11],10,3174756917),x=f(x,y,h,g,m[v+2],15,718787259),g=f(g,x,y,h,m[v+9],21,3951481745),h=s(h,A),g=s(g,E),x=s(x,D),y=s(y,Y)}return T(h)+T(g)+T(x)+T(y)}function gn(e,t=134){return e?`https://www.gravatar.com/avatar/${tc(e.trim().toLowerCase())}?s=${t}&d=identicon`:null}function wo(e,t,s,n=!0){e&&e.stopPropagation(),n&&(window.lastScrollY=window.scrollY,store.update("previousView","view-user"),store.pushHistory({view:"user",authorName:t},`Repr - ${t}`,`?user=${encodeURIComponent(t)}`)),["stories","settings","llm","privacy","repos","cron","detail","profile"].forEach(x=>{const y=document.getElementById("view-"+x);y&&(y.style.display="none")}),document.getElementById("view-user").style.display="block",window.scrollTo(0,0);const i=stringToColor(t),o=t.substring(0,1).toUpperCase(),l=document.getElementById("user-view-avatar"),a=gn(s);a?(l.innerHTML=`<img src="${a}" alt="${escapeHtml(t)}" style="width:100%;height:100%;border-radius:50%;object-fit:cover;">`,l.style.background="transparent"):(l.innerHTML=o,l.style.background=i),document.getElementById("user-view-name").textContent=t,document.getElementById("user-nav-name").textContent=t,document.getElementById("user-view-handle").textContent="@"+t.toLowerCase().replace(/\s+/g,"");const d=Math.abs((t+"1").hashCode()||0)%360,p=Math.abs((t+"2").hashCode()||0)%360;document.getElementById("user-cover").style.background=`linear-gradient(135deg, hsl(${d}, 60%, 75%) 0%, hsl(${p}, 60%, 80%) 100%)`;const w=store.get("stories").filter(x=>x.author_name===t),T=w.reduce((x,y)=>x+(y.total_commits||0),0),m=new Set(w.map(x=>x.repo_name)).size;document.getElementById("user-stories-count").textContent=w.length,document.getElementById("user-commits-count").textContent=T,document.getElementById("user-contributors-count").textContent=m,document.getElementById("user-stats-count").textContent=`+${m} repos`;const h=w[0],g=h?timeSince(new Date(h.started_at||h.created_at)):"a while ago";document.getElementById("user-view-bio").textContent=`Developer tracked by Repr. Active ${g}. ${w.length} stories across ${m} repositories.`,hs(w,"user-feed",{})}String.prototype.hashCode=function(){let e=0,t,s;if(this.length===0)return e;for(t=0;t<this.length;t++)s=this.charCodeAt(t),e=(e<<5)-e+s,e|=0;return e};function sc(){const e=document.getElementById("view-profile"),t=document.getElementById("view-user"),s=document.getElementById("view-detail");e&&(e.style.display="none"),t&&(t.style.display="none"),s&&(s.style.display="none"),document.getElementById("view-stories").style.display="block",history.replaceState({view:"main",mainView:"stories"},"Repr",window.location.pathname),window.lastScrollY&&window.scrollTo(0,window.lastScrollY)}async function nc(){showToast("Refreshing...","success"),await vo()}async function ic(){if(confirm("Start generating stories now? This will run in the background."))try{(await triggerGeneration()).success?showToast("Generation started","success"):showToast("Failed to start generation","error")}catch{showToast("Error triggering generation","error")}}function oc(e="feed",t=3){const s=document.getElementById(e);if(!s)return;let n="";for(let i=0;i<t;i++)n+=`
237
+ <div class="skeleton-card">
238
+ <div class="skeleton-avatar skeleton"></div>
239
+ <div class="skeleton-body">
240
+ <div class="skeleton-header skeleton"></div>
241
+ <div class="skeleton-title skeleton"></div>
242
+ <div class="skeleton-text skeleton"></div>
243
+ <div class="skeleton-text skeleton" style="width: 60%"></div>
244
+ </div>
245
+ </div>
246
+ `;s.innerHTML=n}function rc(e,t){e&&e.stopPropagation();const s=document.getElementById("search-input");s.value=t,store.update("searchQuery",t.toLowerCase()),ps(),switchMainView("stories",!1)}window.openStory=yo;window.openProfile=bo;window.openUser=wo;window.filterByTag=rc;window.triggerGenerationClick=ic;window.goBack=sc;window.refreshStories=nc;window.toggleSubscribedRepos=Qa;Object.assign(window,{initStories:vo,renderStories:hs,filterAndRenderStories:ps});function lc(e,t=!0){store.update("currentMainView",e),t&&store.pushHistory({view:"main",mainView:e},`Repr - ${e.charAt(0).toUpperCase()+e.slice(1)}`,`?view=${e}`),document.querySelectorAll(".sidebar-item").forEach(i=>{i.classList.toggle("active",i.dataset.view===e)}),document.querySelectorAll(".mobile-nav-item").forEach(i=>{const o=i.querySelector("span:last-child").textContent.toLowerCase();i.classList.toggle("active",e.startsWith(o))}),document.querySelector(".sidebar").classList.contains("open")&&toggleSidebar(),["stories","settings","llm","privacy","repos","cron","detail","profile"].forEach(i=>{const o=document.getElementById("view-"+i);o&&(o.style.display="none")});const n=document.getElementById("view-"+e);n&&(n.style.display="block"),["settings","llm","privacy","cron"].includes(e)&&!store.get("config")&&xo(),e==="privacy"&&ko(),e==="repos"&&loadRepos(),e==="cron"&&pc()}function ac(e){if(store.update("currentSettingsTab",e),document.querySelectorAll(".settings-nav-item").forEach(t=>{t.classList.toggle("active",t.dataset.tab===e)}),document.getElementById("settings-form").style.display=e==="form"?"block":"none",document.getElementById("settings-json").style.display=e==="json"?"block":"none",e==="json"){const t=store.get("config");t&&(document.getElementById("json-editor").value=JSON.stringify(t,null,2))}}async function xo(){try{const e=await getConfig();store.batchUpdate({config:e,configDirty:!1}),_o(e),document.getElementById("json-editor").value=JSON.stringify(e,null,2),ms()}catch{showToast("Failed to load config","error")}}function _o(e){var t,s,n,i,o,l,a,d,p,f,w,T,m,h,g,x,y,v;document.getElementById("llm-default").value=((t=e.llm)==null?void 0:t.default)||"local",document.getElementById("llm-local-provider").value=((s=e.llm)==null?void 0:s.local_provider)||"",document.getElementById("llm-local-model").value=((n=e.llm)==null?void 0:n.local_model)||"",document.getElementById("llm-local-url").value=((i=e.llm)==null?void 0:i.local_api_url)||"",document.getElementById("gen-batch-size").value=((o=e.generation)==null?void 0:o.batch_size)||5,document.getElementById("gen-max-commits").value=((l=e.generation)==null?void 0:l.max_commits_per_batch)||50,document.getElementById("gen-template").value=((a=e.generation)==null?void 0:a.default_template)||"resume",document.getElementById("gen-auto-hook").checked=((d=e.generation)==null?void 0:d.auto_generate_on_hook)||!1,document.getElementById("privacy-local-only").checked=((p=e.privacy)==null?void 0:p.lock_local_only)||!1,document.getElementById("privacy-redact-paths").checked=((f=e.llm)==null?void 0:f.cloud_redact_paths)!==!1,document.getElementById("privacy-redact-emails").checked=((w=e.llm)==null?void 0:w.cloud_redact_emails)||!1,document.getElementById("privacy-send-diffs").checked=((T=e.llm)==null?void 0:T.cloud_send_diffs)||!1,document.getElementById("cron-interval").value=((m=e.cron)==null?void 0:m.interval_hours)||4,document.getElementById("cron-min-commits").value=((h=e.cron)==null?void 0:h.min_commits)||3,document.getElementById("cron-installed").checked=((g=e.cron)==null?void 0:g.installed)||!1,document.getElementById("cron-paused").checked=((x=e.cron)==null?void 0:x.paused)||!1,ii("default-paths-container",((y=e.settings)==null?void 0:y.default_paths)||["~/code"],"path"),ii("skip-patterns-container",((v=e.settings)==null?void 0:v.skip_patterns)||[],"pattern")}function cc(){const e=JSON.parse(JSON.stringify(store.get("config")));return e.llm=e.llm||{},e.llm.default=document.getElementById("llm-default").value,e.llm.local_provider=document.getElementById("llm-local-provider").value||null,e.llm.local_model=document.getElementById("llm-local-model").value||null,e.llm.local_api_url=document.getElementById("llm-local-url").value||null,e.generation=e.generation||{},e.generation.batch_size=parseInt(document.getElementById("gen-batch-size").value)||5,e.generation.max_commits_per_batch=parseInt(document.getElementById("gen-max-commits").value)||50,e.generation.default_template=document.getElementById("gen-template").value,e.generation.auto_generate_on_hook=document.getElementById("gen-auto-hook").checked,e.privacy=e.privacy||{},e.privacy.lock_local_only=document.getElementById("privacy-local-only").checked,e.llm.cloud_redact_paths=document.getElementById("privacy-redact-paths").checked,e.llm.cloud_redact_emails=document.getElementById("privacy-redact-emails").checked,e.llm.cloud_send_diffs=document.getElementById("privacy-send-diffs").checked,e.cron=e.cron||{},e.cron.interval_hours=parseInt(document.getElementById("cron-interval").value)||4,e.cron.min_commits=parseInt(document.getElementById("cron-min-commits").value)||3,e.cron.installed=document.getElementById("cron-installed").checked,e.cron.paused=document.getElementById("cron-paused").checked,e.settings=e.settings||{},e.settings.default_paths=oi("default-paths-container"),e.settings.skip_patterns=oi("skip-patterns-container"),e}async function dc(){try{const e=cc();await updateConfig(e),store.batchUpdate({config:e,configDirty:!1}),ms(),showToast("Configuration saved","success")}catch{showToast("Failed to save config","error")}}async function uc(){try{const e=document.getElementById("json-editor").value,t=JSON.parse(e);await updateConfig(t),store.batchUpdate({config:t,configDirty:!1}),_o(t),ms(),showToast("Configuration saved","success")}catch(e){e instanceof SyntaxError?showToast("Invalid JSON syntax","error"):showToast("Failed to save config","error")}}function fc(){try{const e=document.getElementById("json-editor"),t=JSON.parse(e.value);e.value=JSON.stringify(t,null,2)}catch{showToast("Invalid JSON - cannot format","error")}}function gs(){store.update("configDirty",!0),ms()}function ms(){const e=store.get("configDirty");["save-btn","save-json-btn","save-llm-btn","save-privacy-btn","save-cron-btn"].forEach(s=>{const n=document.getElementById(s);n&&(n.disabled=!e)})}async function pc(){try{const e=await getCronStatus();store.update("cronStatus",e),hc(e)}catch{document.getElementById("cron-status").innerHTML='<div class="loading-text">Failed to load cron status</div>'}}function hc(e){const t=document.getElementById("cron-status");let s="Not installed",n="inactive";e.installed&&(e.paused?(s="Paused",n="paused"):(s="Active",n="active")),t.innerHTML=`
247
+ <div class="cron-status-row">
248
+ <span class="cron-status-label">Status</span>
249
+ <span class="cron-status-value ${n}">${s}</span>
250
+ </div>
251
+ <div class="cron-status-row">
252
+ <span class="cron-status-label">Interval</span>
253
+ <span class="cron-status-value">${e.interval_hours?e.interval_hours+" hours":"Not set"}</span>
254
+ </div>
255
+ <div class="cron-status-row">
256
+ <span class="cron-status-label">Min Commits</span>
257
+ <span class="cron-status-value">${e.min_commits||"Not set"}</span>
258
+ </div>
259
+ `}function ii(e,t,s){const n=document.getElementById(e),i=n.querySelector("input");n.querySelectorAll(".tag-item").forEach(o=>o.remove()),t.forEach(o=>{const l=document.createElement("span");l.className="tag-item",l.innerHTML=`${escapeHtml(o)}<span class="tag-remove" onclick="removeTag(this, '${s}')">&times;</span>`,n.insertBefore(l,i)})}function oi(e){const t=document.getElementById(e);return Array.from(t.querySelectorAll(".tag-item")).map(s=>s.textContent.slice(0,-1))}function gc(e,t){e.parentElement.remove(),gs()}function mc(e){if(e.key==="Enter"){e.preventDefault();const t=e.target,s=t.value.trim();if(s){const n=t.parentElement,i=document.createElement("span");i.className="tag-item",i.innerHTML=`${escapeHtml(s)}<span class="tag-remove" onclick="removeTag(this, 'path')">&times;</span>`,n.insertBefore(i,t),t.value="",gs()}}}function vc(e){if(e.key==="Enter"){e.preventDefault();const t=e.target,s=t.value.trim();if(s){const n=t.parentElement,i=document.createElement("span");i.className="tag-item",i.innerHTML=`${escapeHtml(s)}<span class="tag-remove" onclick="removeTag(this, 'pattern')">&times;</span>`,n.insertBefore(i,t),t.value="",gs()}}}window.switchMainView=lc;window.loadConfig=xo;window.saveConfig=dc;window.saveJsonConfig=uc;window.formatJson=fc;window.switchSettingsTab=ac;let vs=!1;async function ko(){try{const e=await fetch(`${window.API_BASE}/api/visibility`);if(e.ok){const t=await e.json();document.getElementById("visibility-profile").value=t.profile||"private",document.getElementById("visibility-repos").value=t.repos_default||"private",document.getElementById("visibility-stories").value=t.stories_default||"private",vs=!1,mn()}}catch(e){console.error("Failed to load visibility settings:",e),document.getElementById("visibility-profile").value="private",document.getElementById("visibility-repos").value="private",document.getElementById("visibility-stories").value="private"}}async function yc(){const e={profile:document.getElementById("visibility-profile").value,repos_default:document.getElementById("visibility-repos").value,stories_default:document.getElementById("visibility-stories").value};try{const t=await fetch(`${window.API_BASE}/api/visibility`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});vs=!1,mn(),t.ok?(await t.json()).backend_synced?showToast("Visibility saved (local + cloud)","success"):showToast("Visibility saved locally","success"):showToast("Failed to save visibility settings","error")}catch(t){console.error("Failed to save visibility settings:",t),showToast("Failed to save visibility settings","error")}}function bc(){vs=!0,mn()}function mn(){const e=document.getElementById("save-visibility-btn");e&&(e.disabled=!vs)}Object.assign(window,{handlePathInput:mc,handlePatternInput:vc,removeTag:gc,markConfigDirty:gs,loadVisibilitySettings:ko,saveVisibilitySettings:yc,markVisibilityDirty:bc});async function ht(){try{const e=await getRepos();store.update("repos",e.repos||[]),wc()}catch{document.getElementById("repos-list").innerHTML='<div class="loading-text">Failed to load repositories</div>'}}function wc(){const e=store.get("repos"),t=document.getElementById("repos-list");if(!e.length){t.innerHTML=`
260
+ <div class="empty-state">
261
+ <div class="empty-state-title">No repositories tracked</div>
262
+ <div>Add a repository path above to start tracking</div>
263
+ </div>`;return}t.innerHTML=e.map(s=>{var w;const i=((w=s.project)==null?void 0:w.name)||""||s.origin_name||s.path.split("/").pop(),o=s.paused,l=!s.exists,a=s.hook_installed;let d="active";l?d="missing":o&&(d="paused");const p=s.origin?Cc(s.origin):null,f=escapeHtml(s.path).replace(/'/g,"\\'");return`
264
+ <div class="repo-item ${o?"paused":""} ${l?"missing":""}">
265
+ <div class="repo-info">
266
+ <div class="repo-name-row">
267
+ <span class="repo-name" id="repo-name-${f}" onclick="editRepoName('${f}')">${escapeHtml(i)}</span>
268
+ <button class="repo-edit-btn" onclick="editRepoName('${f}')" title="Edit name">✎</button>
269
+ ${p?`<a href="${escapeHtml(p)}" target="_blank" rel="noopener noreferrer" class="repo-link" title="Open repository"><span class="repo-link-icon">&#8599;</span></a>`:""}
270
+ </div>
271
+ <div class="repo-path">${escapeHtml(s.path)}</div>
272
+ <div class="repo-status">
273
+ <span class="repo-badge ${d}">${l?"Missing":o?"Paused":"Active"}</span>
274
+ ${a?'<span class="repo-badge hook">Hook</span>':""}
275
+ ${s.last_sync?`<span style="font-size: 11px; color: var(--text-muted);">Last sync: ${new Date(s.last_sync).toLocaleDateString()}</span>`:""}
276
+ </div>
277
+ </div>
278
+ <div class="repo-actions">
279
+ ${o?`<button class="repo-action-btn" onclick="resumeRepoClick('${f}')">Resume</button>`:`<button class="repo-action-btn" onclick="pauseRepoClick('${f}')">Pause</button>`}
280
+ <button class="repo-action-btn danger" onclick="removeRepoClick('${f}')">Remove</button>
281
+ </div>
282
+ </div>
283
+ `}).join("")}async function xc(){const e=document.getElementById("add-repo-path"),t=e.value.trim();if(!t){showToast("Please enter a repository path","error");return}try{const s=await addRepo(t);s.success?(e.value="",showToast("Repository added","success"),ht()):showToast(s.error||"Failed to add repository","error")}catch{showToast("Failed to add repository","error")}}async function _c(e){if(confirm("Remove this repository from tracking?"))try{(await removeRepo(e)).success?(showToast("Repository removed","success"),ht()):showToast("Failed to remove repository","error")}catch{showToast("Failed to remove repository","error")}}async function kc(e){try{(await pauseRepo(e)).success?(showToast("Repository paused","success"),ht()):showToast("Failed to pause repository","error")}catch{showToast("Failed to pause repository","error")}}async function Sc(e){try{(await resumeRepo(e)).success?(showToast("Repository resumed","success"),ht()):showToast("Failed to resume repository","error")}catch{showToast("Failed to resume repository","error")}}function Cc(e){if(!e)return null;if(e.startsWith("http://")||e.startsWith("https://"))return e;const t=e.match(/^git@([^:]+):(.+?)(\.git)?$/);if(t){const n=t[1],i=t[2];return`https://${n}/${i}`}const s=e.match(/^git:\/\/(.+?)(\.git)?$/);return s?`https://${s[1]}`:e}function Ec(e){var l;const s=store.get("repos").find(a=>a.path===e);if(!s)return;const n=((l=s.project)==null?void 0:l.name)||s.origin_name||s.path.split("/").pop();document.getElementById("edit-repo-modal");const i=document.getElementById("edit-repo-name-input"),o=document.getElementById("edit-repo-path-input");i.value=n,o.value=e,openModal("edit-repo-modal"),setTimeout(()=>{i.focus(),i.select()},100)}async function Tc(){const e=document.getElementById("edit-repo-name-input"),t=document.getElementById("edit-repo-path-input"),s=e.value.trim(),n=t.value;if(s===""){showToast("Name cannot be empty","error");return}const i=document.getElementById("save-repo-btn"),o=i.textContent;i.disabled=!0,i.textContent="Saving...";try{const l=await renameRepo(n,s);l.success?(showToast("Project renamed","success"),closeModal("edit-repo-modal"),ht()):showToast(l.error||"Failed to rename project","error")}catch{showToast("Failed to rename project","error")}finally{i.disabled=!1,i.textContent=o}}window.addRepoClick=xc;window.editRepoName=Ec;window.saveRepoEdit=Tc;Object.assign(window,{loadRepos:ht,removeRepoClick:_c,pauseRepoClick:kc,resumeRepoClick:Sc});let N={authenticated:!1,user:null,loginFlow:null,usernameInfo:null,polling:!1,modalOpen:!1},Gt=null;async function Ic(){if(!document.getElementById("auth-modal")){const e=document.createElement("div");e.id="auth-modal",e.className="auth-modal",e.addEventListener("click",t=>{t.stopPropagation()}),document.body.appendChild(e)}await vn(),jt(),bs()}async function vn(){try{const e=await window.getAuthStatus();if(N.authenticated=e.authenticated,N.user=e.user,e.authenticated){const t=await window.getUsernameInfo();N.usernameInfo=t}}catch(e){console.error("Failed to fetch auth status:",e)}}function jt(){var t;const e=document.getElementById("auth-section");if(e)if(N.authenticated&&N.user){const s=(t=N.usernameInfo)!=null&&t.claimed?`@${N.usernameInfo.remote_username}`:N.user.email;e.innerHTML=`
284
+ <div class="auth-connected">
285
+ <div class="auth-user">
286
+ <span class="auth-icon">
287
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
288
+ <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path>
289
+ <circle cx="12" cy="7" r="4"></circle>
290
+ </svg>
291
+ </span>
292
+ <span class="auth-name" title="${N.user.email}">${s}</span>
293
+ </div>
294
+ <button class="auth-logout-btn" onclick="handleLogout()" title="Disconnect">
295
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
296
+ <path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path>
297
+ <polyline points="16 17 21 12 16 7"></polyline>
298
+ <line x1="21" y1="12" x2="9" y2="12"></line>
299
+ </svg>
300
+ </button>
301
+ </div>
302
+ `}else e.innerHTML=`
303
+ <button class="auth-connect-btn" onclick="handleStartLogin()">
304
+ <span class="auth-icon">
305
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
306
+ <path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"></path>
307
+ <polyline points="10 17 15 12 10 7"></polyline>
308
+ <line x1="15" y1="12" x2="3" y2="12"></line>
309
+ </svg>
310
+ </span>
311
+ Connect to repr.dev
312
+ </button>
313
+ `}function So(){const e=document.getElementById("auth-modal");e&&(N.modalOpen=!0,e.classList.add("open"),document.body.style.overflow="hidden",yn())}function ys(){console.log("closeAuthModal called",new Error().stack);const e=document.getElementById("auth-modal");e&&(N.modalOpen=!1,rt=!1,e.classList.remove("open"),document.body.style.overflow="")}function yn(){const e=document.getElementById("auth-modal");if(e)if(N.loginFlow&&N.loginFlow.showError){const t=N.loginFlow.message||"An error occurred";e.innerHTML=`
314
+ <div class="auth-modal-content" onclick="event.stopPropagation()">
315
+ <button class="auth-modal-close" onclick="handleCancelLogin()">
316
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
317
+ <line x1="18" y1="6" x2="6" y2="18"></line>
318
+ <line x1="6" y1="6" x2="18" y2="18"></line>
319
+ </svg>
320
+ </button>
321
+ <div class="auth-modal-header">
322
+ <div class="auth-modal-icon auth-modal-icon-error">
323
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
324
+ <circle cx="12" cy="12" r="10"></circle>
325
+ <line x1="15" y1="9" x2="9" y2="15"></line>
326
+ <line x1="9" y1="9" x2="15" y2="15"></line>
327
+ </svg>
328
+ </div>
329
+ <h2>Connection Failed</h2>
330
+ <p>${t}</p>
331
+ </div>
332
+ <div class="auth-modal-footer">
333
+ <button class="auth-cancel-btn" onclick="handleCancelLogin()">Close</button>
334
+ <button class="auth-retry-btn" onclick="handleRetryLogin()">Try Again</button>
335
+ </div>
336
+ </div>
337
+ `}else N.loginFlow&&N.loginFlow.status==="pending"&&(e.innerHTML=`
338
+ <div class="auth-modal-content" onclick="event.stopPropagation()">
339
+ <button class="auth-modal-close" onclick="handleCancelLogin()">
340
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
341
+ <line x1="18" y1="6" x2="6" y2="18"></line>
342
+ <line x1="6" y1="6" x2="18" y2="18"></line>
343
+ </svg>
344
+ </button>
345
+ <div class="auth-modal-header">
346
+ <div class="auth-modal-icon">
347
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
348
+ <path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"></path>
349
+ <polyline points="10 17 15 12 10 7"></polyline>
350
+ <line x1="15" y1="12" x2="3" y2="12"></line>
351
+ </svg>
352
+ </div>
353
+ <h2>Connect to repr.dev</h2>
354
+ <p>Enter the code below at the verification page</p>
355
+ </div>
356
+ <div class="auth-modal-body">
357
+ <div class="auth-code">${N.loginFlow.user_code}</div>
358
+ <a href="${N.loginFlow.verification_url}" target="_blank" class="auth-verify-btn">
359
+ Open Verification Page
360
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
361
+ <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path>
362
+ <polyline points="15 3 21 3 21 9"></polyline>
363
+ <line x1="10" y1="14" x2="21" y2="3"></line>
364
+ </svg>
365
+ </a>
366
+ <div class="auth-modal-status">
367
+ <span class="auth-spinner"></span>
368
+ Waiting for authorization...
369
+ </div>
370
+ </div>
371
+ <div class="auth-modal-footer">
372
+ <button class="auth-cancel-btn" onclick="handleCancelLogin()">Cancel</button>
373
+ </div>
374
+ </div>
375
+ `)}let rt=!1;async function Co(){if(rt||N.modalOpen){console.log("Login already in progress, ignoring");return}rt=!0;try{console.log("Starting login flow...");const e=await window.startLogin();console.log("Login flow response:",e),N.loginFlow=e,e.status==="pending"?(So(),$c()):(console.warn("Unexpected flow status:",e.status),rt=!1)}catch(e){console.error("Failed to start login:",e),alert("Failed to start login: "+e.message),rt=!1}}function $c(){var t;if(N.polling)return;N.polling=!0;const e=(t=N.loginFlow)==null?void 0:t.device_code;if(!e){console.error("No device code available for polling");return}Gt=setInterval(async()=>{try{console.log("Polling login status...");const s=await window.pollLoginStatus(e);if(console.log("Poll response:",s),s.status==="completed"){qt();try{await window.saveAuthToken({access_token:s.access_token,user:s.user,litellm_api_key:s.litellm_api_key})}catch(n){console.error("Failed to save token:",n)}ys(),await vn(),jt(),bs()}else(s.status==="error"||s.status==="expired"||s.status==="denied")&&(console.log("Error status:",s.status,s.message),qt(),N.loginFlow={...N.loginFlow,...s,showError:!0},yn())}catch(s){console.error("Polling error:",s),qt()}},5e3)}function qt(){N.polling=!1,Gt&&(clearInterval(Gt),Gt=null)}async function Bc(){qt(),ys();try{await window.cancelLogin()}catch{}N.loginFlow=null,jt()}async function Pc(){try{await window.cancelLogin()}catch{}N.loginFlow=null,rt=!1,ys(),await Co()}async function Ac(){try{await window.logout(),N.authenticated=!1,N.user=null,N.usernameInfo=null,jt(),bs()}catch(e){console.error("Failed to logout:",e)}}let W={scope:"all",repoName:null,storyId:null,includePushed:!1,previewCount:0,previewStories:[],publishing:!1};function bs(){const e=document.getElementById("publish-btn");e&&(e.style.display=N.authenticated?"flex":"none"),N.authenticated?document.body.classList.add("authenticated"):document.body.classList.remove("authenticated")}async function Mc(e="all",t=null,s=null){W.scope=e,W.repoName=t,W.storyId=s,W.includePushed=!1,W.publishing=!1;const n=document.getElementById("publish-include-pushed");n&&(n.checked=!1);const i=document.getElementById("publish-visibility");i&&(i.value="");const o=document.getElementById("publish-result");o&&(o.style.display="none");const l=document.getElementById("publish-modal");l&&(l.style.display="flex"),await Eo()}async function Eo(){var t;const e=((t=document.getElementById("publish-include-pushed"))==null?void 0:t.checked)||!1;W.includePushed=e;try{const s=await window.getPublishPreview({scope:W.scope,repo_name:W.repoName,story_id:W.storyId,include_pushed:e});W.previewCount=s.count,W.previewStories=s.stories||[];const n=document.getElementById("publish-count");n&&(n.textContent=`${s.count} stories`);const i=document.getElementById("publish-preview-info");if(i){const a=W.scope==="repo"?`Publishing stories from "${W.repoName}"`:W.scope==="story"?"Publishing single story":"Publishing all stories";i.querySelector("p").textContent=a}const o=document.getElementById("publish-preview-list");o&&(W.previewStories.length===0?o.innerHTML='<div style="padding: 16px; color: var(--text-muted); text-align: center;">No stories to publish</div>':o.innerHTML=W.previewStories.slice(0,10).map(a=>`
376
+ <div style="padding: 10px 12px; border-bottom: 1px solid var(--border);">
377
+ <div style="font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">${To(a.title)}</div>
378
+ <div style="font-size: 12px; color: var(--text-muted);">${a.visibility||"private"}</div>
379
+ </div>
380
+ `).join("")+(W.previewCount>10?`
381
+ <div style="padding: 10px 12px; color: var(--text-muted); font-size: 13px;">
382
+ ... and ${W.previewCount-10} more
383
+ </div>
384
+ `:""));const l=document.getElementById("publish-btn-text");l&&(l.textContent=`Publish ${s.count} stories`)}catch(s){console.error("Failed to get publish preview:",s)}}async function Fc(){var n;if(W.publishing||W.previewCount===0)return;W.publishing=!0;const e=document.getElementById("do-publish-btn"),t=document.getElementById("publish-btn-text");e&&(e.disabled=!0),t&&(t.textContent="Publishing...");const s=document.getElementById("publish-result");try{const i=((n=document.getElementById("publish-visibility"))==null?void 0:n.value)||null,o=await window.publishStories({scope:W.scope,repo_name:W.repoName,story_id:W.storyId,visibility:i||void 0,include_pushed:W.includePushed});o.success?(s&&(s.style.display="block",s.style.background="var(--green-bg, #d1fae5)",s.style.color="var(--green-text, #065f46)",s.innerHTML=`Published ${o.published_count} stories${o.failed_count?` (${o.failed_count} failed)`:""}`),setTimeout(()=>{Io("publish-modal")},2e3)):s&&(s.style.display="block",s.style.background="var(--red-bg, #fee2e2)",s.style.color="var(--red-text, #991b1b)",s.innerHTML=o.error||"Publish failed")}catch(i){console.error("Publish failed:",i),s&&(s.style.display="block",s.style.background="var(--red-bg, #fee2e2)",s.style.color="var(--red-text, #991b1b)",s.innerHTML=i.message||"Publish failed")}finally{W.publishing=!1,e&&(e.disabled=!1),t&&(t.textContent=`Publish ${W.previewCount} stories`)}}async function Rc(e,t){e.stopPropagation(),e.preventDefault();const s=e.currentTarget;if(!s.classList.contains("publishing")){s.classList.add("publishing");try{const n=await window.publishSingleStory(t);s.classList.remove("publishing"),n.success?(s.classList.add("success"),setTimeout(()=>{s.classList.remove("success")},2e3)):(s.classList.add("error"),setTimeout(()=>{s.classList.remove("error")},2e3))}catch(n){console.error("Single story publish failed:",n),s.classList.remove("publishing"),s.classList.add("error"),setTimeout(()=>{s.classList.remove("error")},2e3)}}}function To(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}function Io(e){const t=document.getElementById(e);t&&(t.style.display="none")}Object.assign(window,{initAuth:Ic,refreshAuthStatus:vn,renderAuthSection:jt,openAuthModal:So,closeAuthModal:ys,renderAuthModal:yn,handleStartLogin:Co,handleCancelLogin:Bc,handleRetryLogin:Pc,handleLogout:Ac,updatePublishButton:bs,openPublishModal:Mc,refreshPublishPreview:Eo,doPublish:Fc,publishSingleStoryClick:Rc,closeModal:Io,escapeHtml:To});const Dc={__name:"App",setup(e){return Li(()=>{/(Mac|iPhone|iPad|iPod)/i.test(navigator.platform)||document.body.classList.add("is-windows"),window.initTheme&&window.initTheme(),window.initKeyboard&&window.initKeyboard();const t=document.getElementById("search-input");t&&t.addEventListener("input",s=>{window.store&&(window.store.update("searchQuery",s.target.value.trim().toLowerCase()),window.filterAndRenderStories&&window.filterAndRenderStories())}),window.initStories&&window.initStories(),window.initAuth&&window.initAuth()}),(t,s)=>(yl(),xl(ye,null,[s[0]||(s[0]=r("div",{class:"dashboard",id:"view-main"},[r("div",{class:"sidebar-overlay",onclick:"toggleSidebar()"}),r("aside",{class:"sidebar"},[r("div",{class:"sidebar-header"},[r("div",{class:"sidebar-logo"},[r("div",{class:"sidebar-avatar"},"R"),r("div",null,[r("div",{class:"sidebar-title"},"Repr"),r("div",{class:"sidebar-subtitle"},"Dashboard")])])]),r("nav",{class:"sidebar-nav"},[r("div",{class:"sidebar-section"},[r("div",{class:"sidebar-section-title"},"Overview"),r("div",{class:"sidebar-item active","data-view":"stories",onclick:"switchMainView('stories')",role:"button","aria-label":"View Stories"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),r("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"})])]),ae(" Stories ")]),r("div",{class:"sidebar-item","data-view":"repos",onclick:"switchMainView('repos')",role:"button","aria-label":"View Repositories"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})])]),ae(" Repositories ")])]),r("div",{class:"sidebar-section"},[r("div",{class:"sidebar-section-title"},"Configuration"),r("div",{class:"sidebar-item","data-view":"settings",onclick:"switchMainView('settings')",role:"button","aria-label":"Settings"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("circle",{cx:"12",cy:"12",r:"3"}),r("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})])]),ae(" Settings ")]),r("div",{class:"sidebar-item","data-view":"llm",onclick:"switchMainView('llm')",role:"button","aria-label":"LLM Configuration"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("path",{d:"M12 2a10 10 0 0 1 10 10 10 10 0 0 1-10 10 10 10 0 0 1-10-10 10 10 0 0 1 10-10z"}),r("path",{d:"M8 14s1.5 2 4 2 4-2 4-2"}),r("line",{x1:"9",y1:"9",x2:"9.01",y2:"9"}),r("line",{x1:"15",y1:"9",x2:"15.01",y2:"9"})])]),ae(" LLM ")]),r("div",{class:"sidebar-item","data-view":"privacy",onclick:"switchMainView('privacy')",role:"button","aria-label":"Privacy Settings"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),r("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})])]),ae(" Privacy ")]),r("div",{class:"sidebar-item","data-view":"cron",onclick:"switchMainView('cron')",role:"button","aria-label":"Cron Settings"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("circle",{cx:"12",cy:"12",r:"10"}),r("polyline",{points:"12 6 12 12 16 14"})])]),ae(" Cron ")])])]),r("div",{id:"auth-section",class:"auth-section"}),r("div",{class:"sidebar-footer"},[r("div",{class:"sidebar-status"},[r("span",{class:"status-dot"}),r("span",{id:"status-text"},"Loading...")]),r("div",{class:"sidebar-item theme-toggle-compact",id:"theme-toggle",onclick:"toggleTheme()"},[r("span",{class:"sidebar-icon theme-toggle-icon"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})])]),ae(" Toggle Theme ")])])]),r("main",{class:"main-content"},[r("div",{class:"main-layout"},[r("div",{class:"feed-column"},[r("div",{id:"view-stories"},[r("div",{class:"tabs-bar"},[r("div",{class:"mobile-menu-toggle",onclick:"toggleSidebar()"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),r("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),r("line",{x1:"3",y1:"18",x2:"21",y2:"18"})])]),r("div",{class:"search-container"},[r("div",{class:"search-icon"},[r("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[r("circle",{cx:"11",cy:"11",r:"8"}),r("path",{d:"m21 21-4.35-4.35"})])]),r("input",{type:"text",id:"search-input",class:"search-input",placeholder:"Search stories..."}),r("kbd",{class:"search-shortcut"},[r("span",{class:"search-shortcut-mod"}),ae("K")])]),r("button",{id:"publish-btn",class:"publish-btn",onclick:"openPublishModal()",style:{display:"none"},title:"Publish to Cloud"},[r("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[r("path",{d:"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"})]),r("span",null,"Publish")])]),r("div",{class:"feed-wrapper"},[r("div",{class:"feed",id:"feed"})])]),r("div",{id:"view-detail",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"back-button",onclick:"goBack()"},[r("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[r("line",{x1:"19",y1:"12",x2:"5",y2:"12"}),r("polyline",{points:"12 19 5 12 12 5"})])]),r("div",{class:"view-title"},"Post")]),r("div",{id:"detail-content"})]),r("div",{id:"view-profile",style:{display:"none"}},[r("div",{class:"profile-container"},[r("div",{class:"profile-header-nav"},[r("div",{class:"back-button",onclick:"goBack()"},[r("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[r("line",{x1:"19",y1:"12",x2:"5",y2:"12"}),r("polyline",{points:"12 19 5 12 12 5"})])]),r("div",{class:"profile-nav-title",id:"profile-nav-name"},"Profile")]),r("div",{class:"profile-cover",id:"profile-cover"}),r("div",{class:"profile-content"},[r("div",{class:"profile-top-section"},[r("div",{class:"profile-avatar-wrapper"},[r("div",{class:"profile-avatar-large",id:"profile-view-avatar"},"R")]),r("div",{class:"profile-actions"})]),r("div",{class:"profile-details"},[r("div",{class:"profile-name-row"},[r("h1",{id:"profile-view-name"},"Repo Name"),r("span",{class:"verified-badge-large",id:"profile-verified-badge",style:{display:"none"}},[r("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[r("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})])])]),r("div",{class:"profile-handle",id:"profile-view-handle"},"@repo"),r("div",{class:"profile-bio",id:"profile-view-bio"}," Repository timeline and activity. "),r("div",{class:"profile-metadata-row"},[r("div",{class:"profile-pill"},[r("span",{class:"pill-icon"},"📦"),r("span",{id:"profile-repo-link"},"Repository")]),r("div",{class:"profile-pill"},[r("span",{class:"pill-icon"},"🔗"),r("span",{id:"profile-web-link"},"Website")]),r("div",{class:"profile-pill-count",id:"profile-stats-count"},"+2")]),r("div",{class:"profile-stats-row"},[r("span",{class:"stat-item"},[r("strong",{id:"profile-stories-count"},"0"),ae(),r("span",{class:"stat-label"},"Stories")]),r("span",{class:"stat-item"},[r("strong",{id:"profile-commits-count"},"0"),ae(),r("span",{class:"stat-label"},"Commits")]),r("span",{class:"stat-item"},[r("strong",{id:"profile-contributors-count"},"0"),ae(),r("span",{class:"stat-label"},"Contributors")])])]),r("div",{class:"feed-container",style:{"padding-top":"0"}},[r("div",{class:"feed",id:"profile-feed"})])])])]),r("div",{id:"view-user",style:{display:"none"}},[r("div",{class:"profile-container"},[r("div",{class:"profile-header-nav"},[r("div",{class:"back-button",onclick:"goBack()"},[r("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[r("line",{x1:"19",y1:"12",x2:"5",y2:"12"}),r("polyline",{points:"12 19 5 12 12 5"})])]),r("div",{class:"profile-nav-title",id:"user-nav-name"},"User Profile")]),r("div",{class:"profile-cover",id:"user-cover"}),r("div",{class:"profile-content"},[r("div",{class:"profile-top-section"},[r("div",{class:"profile-avatar-wrapper"},[r("div",{class:"profile-avatar-large",id:"user-view-avatar"},"U")]),r("div",{class:"profile-actions"})]),r("div",{class:"profile-details"},[r("div",{class:"profile-name-row"},[r("h1",{id:"user-view-name"},"User Name"),r("span",{class:"verified-badge-large",id:"user-verified-badge",style:{display:"none"}},[r("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[r("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})])])]),r("div",{class:"profile-handle",id:"user-view-handle"},"@user"),r("div",{class:"profile-bio",id:"user-view-bio"}," User activity. "),r("div",{class:"profile-metadata-row"},[r("div",{class:"profile-pill"},[r("span",{class:"pill-icon"},"📦"),r("span",{id:"user-repo-link"},"Github")]),r("div",{class:"profile-pill"},[r("span",{class:"pill-icon"},"🔗"),r("span",{id:"user-web-link"},"Website")]),r("div",{class:"profile-pill-count",id:"user-stats-count"},"+2")]),r("div",{class:"profile-stats-row"},[r("span",{class:"stat-item"},[r("strong",{id:"user-stories-count"},"0"),ae(),r("span",{class:"stat-label"},"Stories")]),r("span",{class:"stat-item"},[r("strong",{id:"user-commits-count"},"0"),ae(),r("span",{class:"stat-label"},"Commits")]),r("span",{class:"stat-item"},[r("strong",{id:"user-contributors-count"},"0"),ae(),r("span",{class:"stat-label"},"Repos")])])]),r("div",{class:"feed-container",style:{"padding-top":"0"}},[r("div",{class:"feed",id:"user-feed"})])])])]),r("div",{id:"view-settings",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"view-title"},"Settings")]),r("div",{class:"content-body"},[r("div",{class:"settings-container"},[r("nav",{class:"settings-nav"},[r("div",{class:"settings-nav-item active","data-tab":"form",onclick:"switchSettingsTab('form')"},"Form"),r("div",{class:"settings-nav-item","data-tab":"json",onclick:"switchSettingsTab('json')"},"JSON")]),r("div",{id:"settings-form",class:"settings-content"},[r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Generation"),r("div",{class:"settings-row"},[r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Commits per Story"),r("input",{type:"number",class:"settings-input",id:"gen-batch-size",min:"1",max:"50",oninput:"markConfigDirty()"}),r("div",{class:"settings-hint"},"How many commits to group into a single story")]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Max Commits per Batch"),r("input",{type:"number",class:"settings-input",id:"gen-max-commits",min:"1",max:"200",oninput:"markConfigDirty()"})])]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Default Template"),r("select",{class:"settings-select",id:"gen-template",onchange:"markConfigDirty()"},[r("option",{value:"resume"},"Resume"),r("option",{value:"technical"},"Technical"),r("option",{value:"narrative"},"Narrative")])]),r("div",{class:"settings-checkbox-row"},[r("input",{type:"checkbox",class:"settings-checkbox",id:"gen-auto-hook",onchange:"markConfigDirty()"}),r("label",{class:"settings-checkbox-label",for:"gen-auto-hook"},"Auto-generate on git hook")])]),r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Paths"),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Default Scan Paths"),r("div",{class:"tags-input",id:"default-paths-container"},[r("input",{type:"text",placeholder:"Add path and press Enter",onkeydown:"handlePathInput(event)"})]),r("div",{class:"settings-hint"},"Directories to scan for git repositories")]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Skip Patterns"),r("div",{class:"tags-input",id:"skip-patterns-container"},[r("input",{type:"text",placeholder:"Add pattern and press Enter",onkeydown:"handlePatternInput(event)"})]),r("div",{class:"settings-hint"},"Directory names to skip when scanning")])]),r("div",{class:"btn-row"},[r("button",{class:"btn btn-primary",onclick:"saveConfig()",id:"save-btn",disabled:""},"Save Changes"),r("button",{class:"btn btn-secondary",onclick:"loadConfig()"},"Reset")])]),r("div",{id:"settings-json",class:"settings-content",style:{display:"none"}},[r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Raw Configuration (JSON)"),r("textarea",{class:"json-editor",id:"json-editor",oninput:"markConfigDirty()"}),r("div",{class:"settings-hint"},"Edit the raw JSON configuration. Be careful with syntax.")]),r("div",{class:"btn-row"},[r("button",{class:"btn btn-primary",onclick:"saveJsonConfig()",id:"save-json-btn",disabled:""},"Save JSON"),r("button",{class:"btn btn-secondary",onclick:"loadConfig()"},"Reset"),r("button",{class:"btn btn-secondary",onclick:"formatJson()"},"Format")])])])])]),r("div",{id:"view-llm",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"view-title"},"LLM Configuration")]),r("div",{class:"content-body"},[r("div",{class:"settings-container"},[r("div",{class:"settings-content"},[r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Mode"),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Default Mode"),r("select",{class:"settings-select",id:"llm-default",onchange:"markConfigDirty()"},[r("option",{value:"local"},"Local (Ollama/LM Studio)"),r("option",{value:"cloud"},"Cloud (repr.dev)"),r("option",{value:"byok:openai"},"BYOK: OpenAI"),r("option",{value:"byok:anthropic"},"BYOK: Anthropic"),r("option",{value:"byok:groq"},"BYOK: Groq"),r("option",{value:"byok:together"},"BYOK: Together AI")])])]),r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Local Provider"),r("div",{class:"settings-row"},[r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Provider"),r("select",{class:"settings-select",id:"llm-local-provider",onchange:"markConfigDirty()"},[r("option",{value:""},"Not configured"),r("option",{value:"ollama"},"Ollama"),r("option",{value:"lmstudio"},"LM Studio"),r("option",{value:"custom"},"Custom")])]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Model"),r("input",{type:"text",class:"settings-input",id:"llm-local-model",placeholder:"e.g., llama3.2",oninput:"markConfigDirty()"})])]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"API URL"),r("input",{type:"text",class:"settings-input",id:"llm-local-url",placeholder:"http://localhost:11434/v1",oninput:"markConfigDirty()"})])]),r("div",{class:"btn-row"},[r("button",{class:"btn btn-primary",onclick:"saveConfig()",id:"save-llm-btn",disabled:""},"Save Changes"),r("button",{class:"btn btn-secondary",onclick:"loadConfig()"},"Reset")])])])])]),r("div",{id:"view-privacy",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"view-title"},"Privacy")]),r("div",{class:"content-body"},[r("div",{class:"settings-container"},[r("div",{class:"settings-content"},[r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Data Sharing"),r("div",{class:"settings-checkbox-row"},[r("input",{type:"checkbox",class:"settings-checkbox",id:"privacy-local-only",onchange:"markConfigDirty()"}),r("label",{class:"settings-checkbox-label",for:"privacy-local-only"},"Lock to local-only mode")]),r("div",{class:"settings-checkbox-row"},[r("input",{type:"checkbox",class:"settings-checkbox",id:"privacy-send-diffs",onchange:"markConfigDirty()"}),r("label",{class:"settings-checkbox-label",for:"privacy-send-diffs"},"Send diffs to cloud")])]),r("div",{class:"btn-row"},[r("button",{class:"btn btn-primary",onclick:"saveConfig()",id:"save-privacy-btn",disabled:""},"Save Changes"),r("button",{class:"btn btn-secondary",onclick:"loadConfig()"},"Reset")])]),r("div",{class:"settings-content",style:{"margin-top":"24px"}},[r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Visibility Settings"),r("p",{class:"settings-hint"},"Control who can see your profile, repos, and stories"),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Profile Visibility"),r("select",{class:"settings-select",id:"visibility-profile",onchange:"markVisibilityDirty()"},[r("option",{value:"private",selected:""},"Private - Only you"),r("option",{value:"connections"},"Connections - Only friends"),r("option",{value:"public"},"Public - Anyone can see")])]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Default Repo Visibility"),r("select",{class:"settings-select",id:"visibility-repos",onchange:"markVisibilityDirty()"},[r("option",{value:"private",selected:""},"Private - Only you"),r("option",{value:"connections"},"Connections - Only friends"),r("option",{value:"public"},"Public - Anyone can see")])]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Default Story Visibility"),r("select",{class:"settings-select",id:"visibility-stories",onchange:"markVisibilityDirty()"},[r("option",{value:"private",selected:""},"Private - Only you"),r("option",{value:"connections"},"Connections - Only friends"),r("option",{value:"public"},"Public - Anyone can see")])]),r("div",{class:"btn-row"},[r("button",{class:"btn btn-primary",onclick:"saveVisibilitySettings()",id:"save-visibility-btn",disabled:""},"Save Visibility")])])])])])]),r("div",{id:"view-repos",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"view-title"},"Explore")]),r("div",{class:"content-body"},[r("div",{class:"settings-container"},[r("div",{class:"settings-content"},[r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Add Repository"),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Repository Path"),r("div",{style:{display:"flex",gap:"12px"}},[r("input",{type:"text",class:"settings-input",id:"add-repo-path",placeholder:"~/code/my-project",style:{flex:"1"}}),r("button",{class:"btn btn-primary",onclick:"addRepoClick()"},"Add")])])]),r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Tracked Repositories"),r("div",{id:"repos-list",class:"repos-list"},[r("div",{class:"loading-text"},"Loading repositories...")])])])])])]),r("div",{id:"view-cron",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"view-title"},"Activity")]),r("div",{class:"content-body"},[r("div",{class:"settings-container"},[r("div",{class:"settings-content"},[r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Status"),r("div",{id:"cron-status",class:"cron-status-box"},[r("div",{class:"loading-text"},"Loading cron status...")])])])])])])]),r("aside",{class:"right-sidebar"},[r("div",{class:"widget"},[r("h3",{class:"widget-title"},"Subscribed Repositories"),r("div",{id:"recommended-repos",class:"widget-list"},[r("div",{class:"loading-text"},"Loading repos...")]),r("button",{class:"btn-text",id:"show-more-repos-btn",onclick:"toggleSubscribedRepos()"},"Show more")]),r("div",{class:"widget"},[r("h3",{class:"widget-title"},"Statistics"),r("div",{class:"stats-grid"},[r("div",{class:"stat-box"},[r("div",{class:"stat-label"},"Total Stories"),r("div",{class:"stat-value",id:"stat-total-stories"},"0")]),r("div",{class:"stat-box"},[r("div",{class:"stat-label"},"Active Repos"),r("div",{class:"stat-value",id:"stat-total-repos"},"0")])])]),r("footer",{class:"right-sidebar-footer"},[r("nav",null,[r("a",{href:"#"},"Terms"),r("a",{href:"#"},"Privacy"),r("a",{href:"#"},"Cookies"),r("span",null,"© 2026 Repr")])])])])])],-1)),s[1]||(s[1]=r("div",{class:"modal-overlay",id:"edit-repo-modal",onclick:"if(event.target === this) closeModal('edit-repo-modal')"},[r("div",{class:"modal-container"},[r("div",{class:"modal-header"},[r("h3",{class:"modal-title"},"Edit Repository"),r("button",{class:"modal-close",onclick:"closeModal('edit-repo-modal')"},"×")]),r("div",{class:"modal-body"},[r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Project Name"),r("div",{class:"editable-field-container"},[r("input",{type:"text",class:"settings-input",id:"edit-repo-name-input",placeholder:"Project Name",onkeydown:"if(event.key === 'Enter') saveRepoEdit()"}),r("span",{class:"editable-field-icon"},"✎")]),r("div",{class:"settings-hint"},"This name will be used in the timeline and stories")]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Path"),r("input",{type:"text",class:"settings-input",id:"edit-repo-path-input",readonly:"",style:{background:"var(--surface-hover)",color:"var(--text-muted)",cursor:"not-allowed"}})])]),r("div",{class:"modal-footer"},[r("button",{class:"btn btn-secondary",onclick:"closeModal('edit-repo-modal')"},"Cancel"),r("button",{class:"btn btn-primary",id:"save-repo-btn",onclick:"saveRepoEdit()"},"Save Changes")])])],-1)),s[2]||(s[2]=r("div",{class:"modal-overlay",id:"publish-modal",onclick:"if(event.target === this) closeModal('publish-modal')"},[r("div",{class:"modal-container",style:{"max-width":"480px"}},[r("div",{class:"modal-header"},[r("h3",{class:"modal-title"},"Publish Stories"),r("button",{class:"modal-close",onclick:"closeModal('publish-modal')"},"×")]),r("div",{class:"modal-body"},[r("div",{id:"publish-preview-info",style:{"margin-bottom":"16px"}},[r("p",{style:{color:"var(--text-muted)","margin-bottom":"8px"}},"Publishing all stories"),r("p",{style:{"font-size":"24px","font-weight":"600"},id:"publish-count"},"0 stories")]),r("div",{id:"publish-preview-list",style:{"max-height":"160px","overflow-y":"auto",border:"1px solid var(--border)","border-radius":"8px","margin-bottom":"16px"}}),r("div",{class:"settings-group",style:{"margin-bottom":"16px"}},[r("label",{style:{display:"flex","align-items":"center",gap:"8px",cursor:"pointer"}},[r("input",{type:"checkbox",id:"publish-include-pushed",onchange:"refreshPublishPreview()"}),r("span",{style:{"font-size":"14px"}},"Include already-published stories")])]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Visibility override (optional)"),r("select",{class:"settings-select",id:"publish-visibility"},[r("option",{value:""},"Keep current visibility"),r("option",{value:"public"},"Public"),r("option",{value:"connections"},"Connections only"),r("option",{value:"private"},"Private")])]),r("div",{id:"publish-result",style:{display:"none",padding:"12px","border-radius":"8px","margin-top":"16px"}})]),r("div",{class:"modal-footer"},[r("button",{class:"btn btn-secondary",onclick:"closeModal('publish-modal')"},"Cancel"),r("button",{class:"btn btn-primary",id:"do-publish-btn",onclick:"doPublish()"},[r("span",{id:"publish-btn-text"},"Publish")])])])],-1))],64))}},$o=ia(Dc);$o.use(aa());$o.mount("#app");