whose-turn 1.0.0-alpha.6 → 1.0.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/server.mjs CHANGED
@@ -3,16 +3,17 @@
3
3
  import { readFileSync } from 'node:fs';
4
4
  import { dirname, join } from 'node:path';
5
5
  import { fileURLToPath } from 'node:url';
6
- import { loadConfig, saveWorkspaces, normaliseWorkspaces } from './lib/config.mjs';
6
+ import { loadConfig, saveWorkspaces, saveNotifications, normaliseWorkspaces } from './lib/config.mjs';
7
7
  import { createHttpClient } from './lib/http-client.mjs';
8
8
  import { nextDelay } from './lib/backoff.mjs';
9
9
  import { createSecrets } from './lib/secrets.mjs';
10
10
  import { createWorkspace } from './lib/workspace.mjs';
11
11
  import { createRegistry } from './lib/registry.mjs';
12
12
  import { openInbox } from './lib/inbox.mjs';
13
- import { openReports } from './lib/feedback.mjs';
13
+ import { openReports, RELAY_URL } from './lib/feedback.mjs';
14
14
  import { startApi } from './lib/api.mjs';
15
- import { notify } from './lib/notify.mjs';
15
+ import { notifier } from './lib/notify.mjs';
16
+ import { loadChangelog } from './lib/changelog.mjs';
16
17
  import { createUpdater, restartServer, runsInstalled } from './lib/update.mjs';
17
18
 
18
19
  const appDir = dirname(fileURLToPath(import.meta.url));
@@ -20,9 +21,10 @@ const http = createHttpClient();
20
21
  const first = loadConfig();
21
22
  const secrets = createSecrets(first.dataDir);
22
23
  const inbox = openInbox(first.dataDir);
23
- const reports = openReports(first.dataDir);
24
+ const reports = openReports(first.dataDir, { http, relayUrl: process.env.WHOSE_TURN_FEEDBACK_URL || RELAY_URL });
24
25
  const { version } = JSON.parse(readFileSync(join(appDir, 'package.json'), 'utf8'));
25
26
  let server;
27
+ const notify = notifier(() => registry.notifications.desktop);
26
28
  const updater = createUpdater({
27
29
  http,
28
30
  dataDir: first.dataDir,
@@ -45,8 +47,9 @@ const registry = createRegistry({
45
47
  return config;
46
48
  },
47
49
  save: (rawWorkspaces) => saveWorkspaces(first.configFile, rawWorkspaces),
50
+ saveNotifications: (notifications) => saveNotifications(first.configFile, notifications),
48
51
  normalise: (rawWorkspaces) => normaliseWorkspaces(rawWorkspaces).workspaces,
49
- build: (definition, config) => createWorkspace(definition, { dataDir: config.dataDir, historyDays: config.historyDays, http, secrets, limits: () => healthLimits }),
52
+ build: (definition, config) => createWorkspace(definition, { dataDir: config.dataDir, historyDays: config.historyDays, http, secrets, limits: () => healthLimits, notify }),
50
53
  });
51
54
 
52
55
  let wake = null;
@@ -71,7 +74,7 @@ const saveConfig = async (rawWorkspaces) => {
71
74
  };
72
75
 
73
76
  try {
74
- server = await startApi({ port: first.port, appDir, registry, requestPoll, saveConfig, secrets, inbox, http, reports, dataDir: first.dataDir, updater });
77
+ server = await startApi({ port: first.port, appDir, registry, requestPoll, saveConfig, secrets, inbox, http, reports, dataDir: first.dataDir, updater, changelog: loadChangelog(appDir, version), version });
75
78
  } catch (error) {
76
79
  console.error(error.message);
77
80
  process.exit(1);
@@ -1,18 +0,0 @@
1
- (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();/**
2
- * @vue/shared v3.5.44
3
- * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
- * @license MIT
5
- **/function kn(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const N={},tt=[],Ae=()=>{},Zs=()=>!1,sn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),rn=e=>e.startsWith("onUpdate:"),Z=Object.assign,es=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},ai=Object.prototype.hasOwnProperty,V=(e,t)=>ai.call(e,t),E=Array.isArray,Be=e=>Pt(e)==="[object Map]",it=e=>Pt(e)==="[object Set]",xs=e=>Pt(e)==="[object Date]",R=e=>typeof e=="function",J=e=>typeof e=="string",he=e=>typeof e=="symbol",H=e=>e!==null&&typeof e=="object",ks=e=>(H(e)||R(e))&&R(e.then)&&R(e.catch),er=Object.prototype.toString,Pt=e=>er.call(e),di=e=>Pt(e).slice(8,-1),tr=e=>Pt(e)==="[object Object]",on=e=>J(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,yt=kn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ln=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},hi=/-\w/g,re=ln(e=>e.replace(hi,t=>t.slice(1).toUpperCase())),pi=/\B([A-Z])/g,Le=ln(e=>e.replace(pi,"-$1").toLowerCase()),fn=ln(e=>e.charAt(0).toUpperCase()+e.slice(1)),On=ln(e=>e?`on${fn(e)}`:""),ee=(e,t)=>!Object.is(e,t),Ut=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},nr=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},cn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let vs;const un=()=>vs||(vs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ts(e){if(E(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],r=J(s)?yi(s):ts(s);if(r)for(const i in r)t[i]=r[i]}return t}else if(J(e)||H(e))return e}const gi=/;(?![^(]*\))/g,_i=/:([^]+)/,mi=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function yi(e){const t={};return e.replace(mi,n=>n.startsWith("/*")?"":n).split(gi).forEach(n=>{if(n){const s=n.split(_i);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ns(e){let t="";if(J(e))t=e;else if(E(e))for(let n=0;n<e.length;n++){const s=ns(e[n]);s&&(t+=s+" ")}else if(H(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const bi="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly",xi=kn(bi);function sr(e){return!!e||e===""}function vi(e,t,n){if(e.length!==t.length)return!1;let s=!0;for(let r=0;s&&r<e.length;r++)s=Ge(e[r],t[r],n);return s}function Ss(e,t,n){if(e.size!==t.size)return!1;const s=Array.from(t),r=new Uint8Array(s.length);for(const i of e){let o=-1;for(let l=0;l<s.length;l++)if(!r[l]&&Ge(i,s[l],n)){o=l;break}if(o<0)return!1;r[o]=1}return!0}function Si(e,t,n){let s=Be(e),r=Be(t);if(s||r||(s=it(e),r=it(t),s||r))return s&&r?Ss(e,t,n):!1;const i=Object.keys(e).length,o=Object.keys(t).length;if(i!==o)return!1;for(const l in e){const c=e.hasOwnProperty(l),d=t.hasOwnProperty(l);if(c&&!d||!c&&d||!Ge(e[l],t[l],n))return!1}return String(e)===String(t)}function ws(e,t,n,s){n||(n=[new Map,new Map]);const[r,i]=n;if(r.has(e)||i.has(t))return r.get(e)===t&&i.get(t)===e;r.set(e,t),i.set(t,e);const o=s(e,t,n);return r.delete(e),i.delete(t),o}function Ge(e,t,n){if(e===t)return!0;let s=xs(e),r=xs(t);return s||r?s&&r?e.getTime()===t.getTime():!1:(s=he(e),r=he(t),s||r?e===t:(s=E(e),r=E(t),s||r?s&&r?ws(e,t,n,vi):!1:(s=H(e),r=H(t),s||r?!s||!r?!1:ws(e,t,n,Si):String(e)===String(t))))}function wi(e,t){return e.findIndex(n=>Ge(n,t))}const rr=e=>!!(e&&e.__v_isRef===!0),Ci=e=>J(e)?e:e==null?"":E(e)||H(e)&&(e.toString===er||!R(e.toString))?rr(e)?Ci(e.value):JSON.stringify(e,ir,2):String(e),ir=(e,t)=>rr(t)?ir(e,t.value):Be(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[En(s,i)+" =>"]=r,n),{})}:it(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>En(n))}:he(t)?En(t):H(t)&&!E(t)&&!tr(t)?String(t):t,En=(e,t="")=>{var n;return he(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
6
- * @vue/reactivity v3.5.44
7
- * (c) 2018-present Yuxi (Evan) You and Vue contributors
8
- * @license MIT
9
- **/let X;class Ti{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&X&&(X.active?(this.parent=X,this.index=(X.scopes||(X.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const s=this.scopes.slice();for(t=0,n=s.length;t<n;t++)s[t].pause()}for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes){const r=this.scopes.slice();for(t=0,n=r.length;t<n;t++)r[t].resume()}const s=this.effects.slice();for(t=0,n=s.length;t<n;t++)s[t].resume()}}run(t){if(this._active){const n=X;try{return X=this,t()}finally{X=n}}}on(){++this._on===1&&(this.prevScope=X,X=this)}off(){if(this._on>0&&--this._on===0){if(X===this)X=this.prevScope;else{let t=X;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(this.effects.length=0,n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){const r=this.scopes.slice();for(n=0,s=r.length;n<s;n++)r[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0}}}function Oi(){return X}function Xl(e,t=!1){X&&X.cleanups.push(e)}let W;const An=new WeakSet;class or{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,X&&(X.active?X.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,An.has(this)&&(An.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||fr(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Cs(this),cr(this);const t=W,n=ye;W=this,ye=!0;try{return this.fn()}finally{ur(this),W=t,ye=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)is(t);this.deps=this.depsTail=void 0,Cs(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?An.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){$n(this)&&this.run()}get dirty(){return $n(this)}}let lr=0,bt,xt;function fr(e,t=!1){if(e.flags|=8,t){e.next=xt,xt=e;return}e.next=bt,bt=e}function ss(){lr++}function rs(){if(--lr>0)return;if(xt){let t=xt;for(xt=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;bt;){let t=bt;for(bt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function cr(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ur(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),is(s),Ei(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function $n(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ar(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ar(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===wt)||(e.globalVersion=wt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!$n(e))))return;e.flags|=2;const t=e.dep,n=W,s=ye;W=e,ye=!0;try{cr(e);const r=e.fn(e._value);(t.version===0||ee(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{W=n,ye=s,ur(e),e.flags&=-3}}function is(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)is(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ei(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let ye=!0;const dr=[];function Me(){dr.push(ye),ye=!1}function Re(){const e=dr.pop();ye=e===void 0?!0:e}function Cs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=W;W=void 0;try{t()}finally{W=n}}}let wt=0;class Ai{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class an{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(!W||!ye||W===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==W)n=this.activeLink=new Ai(W,this),W.deps?(n.prevDep=W.depsTail,W.depsTail.nextDep=n,W.depsTail=n):W.deps=W.depsTail=n,hr(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=W.depsTail,n.nextDep=void 0,W.depsTail.nextDep=n,W.depsTail=n,W.deps===n&&(W.deps=s)}return n}trigger(t){this.version++,wt++,this.notify(t)}notify(t){ss();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{rs()}}}function hr(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)hr(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const qt=new WeakMap,st=Symbol(""),Kn=Symbol(""),Ct=Symbol("");function ne(e,t,n){if(ye&&W){let s=qt.get(e);s||qt.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new an),r.map=s,r.key=n),r.track()}}function je(e,t,n,s,r,i){const o=qt.get(e);if(!o){wt++;return}const l=c=>{c&&c.trigger()};if(ss(),t==="clear")o.forEach(l);else{const c=E(e),d=c&&on(n);if(c&&n==="length"){const a=Number(s);o.forEach((p,C)=>{(C==="length"||C===Ct||!he(C)&&C>=a)&&l(p)})}else switch((n!==void 0||o.has(void 0))&&l(o.get(n)),d&&l(o.get(Ct)),t){case"add":c?d&&l(o.get("length")):(l(o.get(st)),Be(e)&&l(o.get(Kn)));break;case"delete":c||(l(o.get(st)),Be(e)&&l(o.get(Kn)));break;case"set":Be(e)&&l(o.get(st));break}}rs()}function Pi(e,t){const n=qt.get(e);return n&&n.get(t)}function ot(e){const t=j(e);return t===e||(ne(t,"iterate",Ct),de(e))?t:Ie(e)?qe(e)?t.map(n=>Je(pe(n))):t.map(Je):t.map(pe)}function dn(e){return ne(e=j(e),"iterate",Ct),e}function Te(e,t){return Ie(e)?Je(qe(e)?pe(t):t):pe(t)}const Mi={__proto__:null,[Symbol.iterator](){return Pn(this,Symbol.iterator,e=>Te(this,e))},concat(...e){return ot(this).concat(...e.map(t=>E(t)?ot(t):t))},entries(){return Pn(this,"entries",e=>(e[1]=Te(this,e[1]),e))},every(e,t){return Fe(this,"every",e,t,void 0,arguments)},filter(e,t){return Fe(this,"filter",e,t,n=>n.map(s=>Te(this,s)),arguments)},find(e,t){return Fe(this,"find",e,t,n=>Te(this,n),arguments)},findIndex(e,t){return Fe(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Fe(this,"findLast",e,t,n=>Te(this,n),arguments)},findLastIndex(e,t){return Fe(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Fe(this,"forEach",e,t,void 0,arguments)},includes(...e){return Mn(this,"includes",e)},indexOf(...e){return Mn(this,"indexOf",e)},join(e){return ot(this).join(e)},lastIndexOf(...e){return Mn(this,"lastIndexOf",e)},map(e,t){return Fe(this,"map",e,t,void 0,arguments)},pop(){return pt(this,"pop")},push(...e){return pt(this,"push",e)},reduce(e,...t){return Os(this,"reduce",e,t)},reduceRight(e,...t){return Os(this,"reduceRight",e,t)},shift(){return pt(this,"shift")},some(e,t){return Fe(this,"some",e,t,void 0,arguments)},splice(...e){return pt(this,"splice",e)},toReversed(){return ot(this).toReversed()},toSorted(e){return ot(this).toSorted(e)},toSpliced(...e){return ot(this).toSpliced(...e)},unshift(...e){return pt(this,"unshift",e)},values(){return Pn(this,"values",e=>Te(this,e))}};function Pn(e,t,n){const s=dn(e),r=s[t],i=r.call(s);if(s!==e&&!de(e)){if(i[Symbol.toStringTag]==="Array Iterator"){const o=Object.create(Object.getPrototypeOf(i));return o.next=()=>Ts(i.next(),n),r!==pr[t]&&Object.defineProperties(o,{return:{get(){const l=i.return;return typeof l=="function"?l.bind(i):l}},throw:{get(){const l=i.throw;return typeof l=="function"?l.bind(i):l}}}),o}i._next=i.next,i.next=()=>Ts(i._next(),n)}return i}function Ts(e,t){return e.done||(e.value=t(e.value)),e}const pr=Array.prototype;function Fe(e,t,n,s,r,i){const o=dn(e),l=o!==e&&!de(e),c=o[t];if(c!==pr[t]){const p=c.apply(e,i);return l?pe(p):p}let d=n;o!==e&&(l?d=function(p,C){return n.call(this,Te(e,p),C,e)}:n.length>2&&(d=function(p,C){return n.call(this,p,C,e)}));const a=c.call(o,d,s);return l&&r?r(a):a}function Os(e,t,n,s){const r=dn(e),i=r!==e&&!de(e);let o=n,l=!1;r!==e&&(i?(l=s.length===0,o=function(d,a,p){return l&&(l=!1,d=Te(e,d)),n.call(this,d,Te(e,a),p,e)}):n.length>3&&(o=function(d,a,p){return n.call(this,d,a,p,e)}));const c=r[t](o,...s);return l?Te(e,c):c}function Mn(e,t,n){const s=j(e);ne(s,"iterate",Ct);const r=s[t](...n);return(r===-1||r===!1)&&gn(n[0])?(n[0]=j(n[0]),s[t](...n)):r}function pt(e,t,n=[]){Me(),ss();const s=j(e)[t].apply(e,n);return rs(),Re(),s}const Ri=kn("__proto__,__v_isRef,__isVue"),gr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(he));function Ii(e){he(e)||(e=String(e));const t=j(this);return ne(t,"has",e),t.hasOwnProperty(e)}class _r{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?Sr:vr:i?xr:br).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=E(t);if(!r){let c;if(o&&(c=Mi[n]))return c;if(n==="hasOwnProperty")return Ii}const l=Reflect.get(t,n,Q(t)?t:s);if((he(n)?gr.has(n):Ri(n))||(r||ne(t,"get",n),i))return l;if(Q(l)){const c=o&&on(n)?l:l.value;return r&&H(c)?Wn(c):c}return H(l)?r?Wn(l):os(l):l}}class mr extends _r{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];const o=E(t)&&on(n);if(!this._isShallow){const d=Ie(i);if(!de(s)&&!Ie(s)&&(i=j(i),s=j(s)),!o&&Q(i)&&!Q(s))return d||(i.value=s),!0}const l=o?Number(n)<t.length:V(t,n),c=Reflect.set(t,n,s,Q(t)?t:r);return t===j(r)&&c&&(l?ee(s,i)&&je(t,"set",n,s):je(t,"add",n,s)),c}deleteProperty(t,n){const s=V(t,n);t[n];const r=Reflect.deleteProperty(t,n);return r&&s&&je(t,"delete",n,void 0),r}has(t,n){const s=Reflect.has(t,n);return(!he(n)||!gr.has(n))&&ne(t,"has",n),s}ownKeys(t){return ne(t,"iterate",E(t)?"length":st),Reflect.ownKeys(t)}}class yr extends _r{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const Fi=new mr,Ni=new yr,Di=new mr(!0),ji=new yr(!0),Un=e=>e,Vt=e=>Reflect.getPrototypeOf(e);function Vi(e,t,n){return function(...s){const r=this.__v_raw,i=j(r),o=Be(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,d=r[e](...s),a=n?Un:t?Je:pe;return!t&&ne(i,"iterate",c?Kn:st),Z(Object.create(d),{next(){const{value:p,done:C}=d.next();return C?{value:p,done:C}:{value:l?[a(p[0]),a(p[1])]:a(p),done:C}}})}}function Ht(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Hi(e,t){const n={get(r){const i=this.__v_raw,o=j(i),l=j(r);e||(ee(r,l)&&ne(o,"get",r),ne(o,"get",l));const{has:c}=Vt(o),d=t?Un:e?Je:pe;if(c.call(o,r))return d(i.get(r));if(c.call(o,l))return d(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&ne(j(r),"iterate",st),r.size},has(r){const i=this.__v_raw,o=j(i),l=j(r);return e||(ee(r,l)&&ne(o,"has",r),ne(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,c=j(l),d=t?Un:e?Je:pe;return!e&&ne(c,"iterate",st),l.forEach((a,p)=>r.call(i,d(a),d(p),o))}};return Z(n,e?{add:Ht("add"),set:Ht("set"),delete:Ht("delete"),clear:Ht("clear")}:{add(r){const i=j(this),o=Vt(i),l=j(r),c=!t&&!de(r)&&!Ie(r)?l:r;return o.has.call(i,c)||ee(r,c)&&o.has.call(i,r)||ee(l,c)&&o.has.call(i,l)||(i.add(c),je(i,"add",c,c)),this},set(r,i){!t&&!de(i)&&!Ie(i)&&(i=j(i));const o=j(this),{has:l,get:c}=Vt(o);let d=l.call(o,r);d||(r=j(r),d=l.call(o,r));const a=c.call(o,r);return o.set(r,i),d?ee(i,a)&&je(o,"set",r,i):je(o,"add",r,i),this},delete(r){const i=j(this),{has:o,get:l}=Vt(i);let c=o.call(i,r);c||(r=j(r),c=o.call(i,r)),l&&l.call(i,r);const d=i.delete(r);return c&&je(i,"delete",r,void 0),d},clear(){const r=j(this),i=r.size!==0,o=r.clear();return i&&je(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Vi(r,e,t)}),n}function hn(e,t){const n=Hi(e,t);return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_isShallow"?t:r==="__v_raw"?s:Reflect.get(V(n,r)&&r in s?n:s,r,i)}const Li={get:hn(!1,!1)},$i={get:hn(!1,!0)},Ki={get:hn(!0,!1)},Ui={get:hn(!0,!0)},br=new WeakMap,xr=new WeakMap,vr=new WeakMap,Sr=new WeakMap;function Wi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function os(e){return Ie(e)?e:pn(e,!1,Fi,Li,br)}function Bi(e){return pn(e,!1,Di,$i,xr)}function Wn(e){return pn(e,!0,Ni,Ki,vr)}function Ql(e){return pn(e,!0,ji,Ui,Sr)}function pn(e,t,n,s,r){if(!H(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=r.get(e);if(i)return i;const o=Wi(di(e));if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function qe(e){return Ie(e)?qe(e.__v_raw):!!(e&&e.__v_isReactive)}function Ie(e){return!!(e&&e.__v_isReadonly)}function de(e){return!!(e&&e.__v_isShallow)}function gn(e){return e?!!e.__v_raw:!1}function j(e){const t=e&&e.__v_raw;return t?j(t):e}function qi(e){return!V(e,"__v_skip")&&Object.isExtensible(e)&&nr(e,"__v_skip",!0),e}const pe=e=>H(e)?os(e):e,Je=e=>H(e)?Wn(e):e;function Q(e){return e?e.__v_isRef===!0:!1}function Gi(e){return wr(e,!1)}function Ji(e){return wr(e,!0)}function wr(e,t){return Q(e)?e:new zi(e,t)}class zi{constructor(t,n){this.dep=new an,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:j(t),this._value=n?t:pe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||de(t)||Ie(t);t=s?t:j(t),ee(t,n)&&(this._rawValue=t,this._value=s?t:pe(t),this.dep.trigger())}}function ls(e){return Q(e)?e.value:e}function Zl(e){return R(e)?e():ls(e)}const Yi={get:(e,t,n)=>t==="__v_raw"?e:ls(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return Q(r)&&!Q(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Cr(e){return qe(e)?e:new Proxy(e,Yi)}class Xi{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new an,{get:s,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=s,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function Qi(e){return new Xi(e)}class Zi{constructor(t,n,s){this._object=t,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._key=he(n)?n:String(n),this._raw=j(t);let r=!0,i=t;if(!E(t)||he(this._key)||!on(this._key))do r=!gn(i)||de(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=ls(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Q(this._raw[this._key])){const n=this._object[this._key];if(Q(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Pi(this._raw,this._key)}}class ki{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function kl(e,t,n){return Q(e)?e:R(e)?new ki(e):H(e)&&arguments.length>1?eo(e,t,n):Gi(e)}function eo(e,t,n){return new Zi(e,t,n)}class to{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new an(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=wt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&W!==this)return fr(this,!0),!0}get value(){const t=this.dep.track();return ar(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function no(e,t,n=!1){let s,r;return R(e)?s=e:(s=e.get,r=e.set),new to(s,r,n)}const Lt={},Gt=new WeakMap;let ke;function so(e,t=!1,n=ke){if(n){let s=Gt.get(n);s||Gt.set(n,s=[]),s.push(e)}}function ro(e,t,n=N){const{immediate:s,deep:r,once:i,scheduler:o,augmentJob:l,call:c}=n,d=P=>r?P:de(P)||r===!1||r===0?Ve(P,1):Ve(P);let a,p,C,w,I=!1,A=!1;if(Q(e)?(p=()=>e.value,I=de(e)):qe(e)?(p=()=>d(e),I=!0):E(e)?(A=!0,I=e.some(P=>qe(P)||de(P)),p=()=>e.map(P=>{if(Q(P))return P.value;if(qe(P))return d(P);if(R(P))return c?c(P,2):P()})):R(e)?t?p=c?()=>c(e,2):e:p=()=>{if(C){Me();try{C()}finally{Re()}}const P=ke;ke=a;try{return c?c(e,3,[w]):e(w)}finally{ke=P}}:p=Ae,t&&r){const P=p,Y=r===!0?1/0:r;p=()=>Ve(P(),Y)}const q=Oi(),B=()=>{a.stop(),q&&q.active&&es(q.effects,a)};if(i&&t){const P=t;t=(...Y)=>{try{return P(...Y)}finally{B()}}}let D=A?new Array(e.length).fill(Lt):Lt;const L=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const Y=a.run();if(P||r||I||(A?Y.some((Ke,xe)=>ee(Ke,D[xe])):ee(Y,D))){const Ke=ke;Me();try{C&&C(),ke=a;const xe=[Y,D===Lt?void 0:A&&D[0]===Lt?[]:D,w];D=Y,c?c(t,3,xe):t(...xe)}finally{ke=Ke,Re()}}}else a.run()};return l&&l(L),a=new or(p),a.scheduler=o?()=>o(L,!1):L,w=P=>so(P,!1,a),C=a.onStop=()=>{const P=Gt.get(a);if(P){if(c)c(P,4);else for(const Y of P)Y();Gt.delete(a)}},t?s?L(!0):D=a.run():o?o(L.bind(null,!0),!0):a.run(),B.pause=a.pause.bind(a),B.resume=a.resume.bind(a),B.stop=B,B}function Ve(e,t=1/0,n){if(t<=0||!H(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Q(e))Ve(e.value,t,n);else if(E(e))for(let s=0;s<e.length;s++)Ve(e[s],t,n);else if(it(e)||Be(e))e.forEach(s=>{Ve(s,t,n)});else if(tr(e)){for(const s in e)Ve(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Ve(e[s],t,n)}return e}/**
10
- * @vue/runtime-core v3.5.44
11
- * (c) 2018-present Yuxi (Evan) You and Vue contributors
12
- * @license MIT
13
- **/function Mt(e,t,n,s){try{return s?e(...s):e()}catch(r){_n(r,t,n)}}function be(e,t,n,s){if(R(e)){const r=Mt(e,t,n,s);return r&&ks(r)&&r.catch(i=>{_n(i,t,n)}),r}if(E(e)){const r=[];for(let i=0;i<e.length;i++)r.push(be(e[i],t,n,s));return r}}function _n(e,t,n,s=!0){const r=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:o}=t&&t.appContext.config||N;if(t){let l=t.parent;const c=t.proxy,d=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){const a=l.ec;if(a){for(let p=0;p<a.length;p++)if(a[p](e,c,d)===!1)return}l=l.parent}if(i){Me(),Mt(i,null,10,[e,c,d]),Re();return}}io(e,n,r,s,o)}function io(e,t,n,s=!0,r=!1){if(r)throw e;console.error(e)}const le=[];let me=-1;const Oe=[];let We=null,lt=0;const Tr=Promise.resolve();let Jt=null;function Or(e){const t=Jt||Tr;return e?t.then(this?e.bind(this):e):t}function oo(e){let t=me+1,n=le.length;for(;t<n;){const s=t+n>>>1,r=le[s],i=Tt(r);i<e||i===e&&r.flags&2?t=s+1:n=s}return t}function fs(e){if(!(e.flags&1)){const t=Tt(e),n=le[le.length-1];!n||!(e.flags&2)&&t>=Tt(n)?le.push(e):le.splice(oo(t),0,e),e.flags|=1,Er()}}function Er(){Jt||(Jt=Tr.then(Mr))}function lo(e){if(!E(e))We&&e.id===-1?We.splice(lt+1,0,e):e.flags&1||(Oe.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)Oe.push(e[t]);Er()}function Ar(e,t,n,s=me+1){for(;s<le.length;s++){const r=le[s];if(r&&r.flags&2){if(e&&r.id!==e.uid||t!==void 0&&!(r.id>=t))continue;le.splice(s,1),s=e?s-1:me,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function Pr(e,t,n=0){if(Oe.length){let s=Oe,r=0;if(t){s=[];for(let o=0;o<Oe.length;o++){const l=Oe[o];(l.i!==void 0?!l.i||l.i.uid<n:t.has(l))?Oe[r++]=l:s.push(l)}}const i=[...new Set(s)].sort((o,l)=>Tt(o)-Tt(l));if(Oe.length=r,We){for(let o=0;o<i.length;o++)We.push(i[o]);return}for(We=i,lt=0;lt<We.length;lt++){const o=We[lt];o.flags&4&&(o.flags&=-2),o.flags&8||o(),o.flags&=-2}We=null,lt=0}}let Rn=!1;function fo(e,t){if(Rn){e();return}const n=t===void 0?void 0:new Set(Oe);e(),Rn=!0;try{Ar(void 0,t),Pr(void 0,n,t)}finally{Rn=!1}}const Tt=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Mr(e){try{for(me=0;me<le.length;me++){const t=le[me];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Mt(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;me<le.length;me++){const t=le[me];t&&(t.flags&=-2)}me=-1,le.length=0,Pr(),Jt=null,(le.length||Oe.length)&&Mr()}}let te=null,Rr=null;function zt(e){const t=te;return te=e,Rr=e&&e.type.__scopeId||null,t}function co(e,t=te,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&Vs(-1);const i=zt(t),o=He.length;let l;try{l=e(...r)}finally{for(let c=He.length;c>o;c--)ds();zt(i),s._d&&Vs(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function ef(e,t){if(te===null)return e;const n=Cn(te),s=e.dirs||(e.dirs=[]);for(let r=0;r<t.length;r++){let[i,o,l,c=N]=t[r];i&&(R(i)&&(i={mounted:i,updated:i}),i.deep&&Ve(o),s.push({dir:i,instance:n,value:o,oldValue:void 0,arg:l,modifiers:c}))}return e}function Qe(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;o<r.length;o++){const l=r[o];i&&(l.oldValue=i[o].value);let c=l.dir[s];c&&(Me(),be(c,n,8,[e.el,l,e,t]),Re())}}function uo(e,t){if(se){let n=se.provides;const s=se.parent&&se.parent.provides;s===n&&(n=se.provides=Object.create(s)),n[e]=t}}function Wt(e,t,n=!1){const s=wn();if(s||rt){let r=rt?rt._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return n&&R(t)?t.call(s&&s.proxy):t}}function tf(){return!!(wn()||rt)}const ao=Symbol.for("v-scx"),ho=()=>Wt(ao);function nf(e,t){return mn(e,null,t)}function po(e,t){return mn(e,null,{flush:"sync"})}function In(e,t,n){return mn(e,t,n)}function mn(e,t,n=N){const{immediate:s,deep:r,flush:i,once:o}=n,l=Z({},n),c=t&&s||!t&&i!=="post";let d;if(At){if(i==="sync"){const w=ho();d=w.__watcherHandles||(w.__watcherHandles=[])}else if(!c){const w=()=>{};return w.stop=Ae,w.resume=Ae,w.pause=Ae,w}}const a=se;l.call=(w,I,A)=>be(w,a,I,A);let p=!1;i==="post"?l.scheduler=w=>{w.i=a,fe(w,a&&a.suspense)}:i!=="sync"&&(p=!0,l.scheduler=(w,I)=>{I?w():fs(w)}),l.augmentJob=w=>{t&&(w.flags|=4),p&&(w.flags|=2,a&&(w.id=a.uid,w.i=a))};const C=ro(e,t,l);return At&&(d?d.push(C):c&&C()),C}function go(e,t,n){const s=this.proxy,r=J(e)?e.includes(".")?Ir(s,e):()=>s[e]:e.bind(s,s);let i;R(t)?i=t:(i=t.handler,n=t);const o=Rt(this),l=mn(r,i.bind(s),n);return o(),l}function Ir(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r<n.length&&s;r++)s=s[n[r]];return s}}const _o=Symbol("_vte"),yn=e=>e.__isTeleport,Fn=Symbol("_leaveCb");function mo(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ge){t=n;break}}return t}function Fr(e){if(!cs(e))return yn(e.type)&&e.children?mo(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&R(n.default))return n.default()}}function Yt(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Yt(yn(n.type)&&Fr(n)||n,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===ce&&E(e.children)){const n=Br(e.children,!1);n&&Yt(n,t)}}function Bn(e){if(e.component)return Bn(e.component.subTree);if(e.type===ce){const t=E(e.children)&&Br(e.children,!1);return t?Bn(t):void 0}if(e.type!==ge)return e}function sf(e,t){return R(e)?Z({name:e.name},t,{setup:e}):e}function Nr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function rf(e){const t=wn(),n=Ji(null);if(t){const r=t.refs===N?t.refs={}:t.refs;Object.defineProperty(r,e,{enumerable:!0,get:()=>n.value,set:i=>n.value=i})}return n}function Es(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Xt=new WeakMap;function vt(e,t,n,s,r=!1){if(E(e)){e.forEach((A,q)=>vt(A,t&&(E(t)?t[q]:t),n,s,r));return}if(ft(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&vt(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?Cn(s.component):s.el,o=r?null:i,{i:l,r:c}=e,d=t&&t.r,a=l.refs===N?l.refs={}:l.refs,p=l.setupState,C=j(p),w=p===N?Zs:A=>Es(a,A)?!1:V(C,A),I=(A,q)=>!(q&&Es(a,q));if(d!=null&&d!==c){if(As(t),J(d))a[d]=null,w(d)&&(p[d]=null);else if(Q(d)){const A=t;I(d,A.k)&&(d.value=null),A.k&&(a[A.k]=null)}}if(R(c))Mt(c,l,12,[o,a]);else{const A=J(c),q=Q(c);if(A||q){const B=()=>{if(e.f){const D=A?w(c)?p[c]:a[c]:I()||!e.k?c.value:a[e.k];if(r)E(D)&&es(D,i);else if(E(D))D.includes(i)||D.push(i);else if(A)a[c]=[i],w(c)&&(p[c]=a[c]);else{const L=[i];I(c,e.k)&&(c.value=L),e.k&&(a[e.k]=L)}}else A?(a[c]=o,w(c)&&(p[c]=o)):q&&(I(c,e.k)&&(c.value=o),e.k&&(a[e.k]=o))};if(o){const D=()=>{B(),Xt.delete(e)};D.id=-1,Xt.set(e,D),fe(D,n)}else As(e),B()}}}function As(e){const t=Xt.get(e);t&&(t.flags|=8,Xt.delete(e))}un().requestIdleCallback;un().cancelIdleCallback;const ft=e=>!!e.type.__asyncLoader,cs=e=>e.type.__isKeepAlive;function yo(e,t){Dr(e,"a",t)}function bo(e,t){Dr(e,"da",t)}function Dr(e,t,n=se){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(bn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)cs(r.parent.vnode)&&xo(s,t,n,r),r=r.parent}}function xo(e,t,n,s){const r=bn(t,e,s,!0);jr(()=>{es(s[t],r)},n)}function bn(e,t,n=se,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Me();const l=Rt(n),c=be(t,n,e,o);return l(),Re(),c});return s?r.unshift(i):r.push(i),i}}const $e=e=>(t,n=se)=>{(!At||e==="sp")&&bn(e,(...s)=>t(...s),n)},vo=$e("bm"),So=$e("m"),wo=$e("bu"),Co=$e("u"),To=$e("bum"),jr=$e("um"),Oo=$e("sp"),Eo=$e("rtg"),Ao=$e("rtc");function Po(e,t=se){bn("ec",e,t)}const Mo="components",Vr=Symbol.for("v-ndc");function of(e){return J(e)?Ro(Mo,e,!1)||e:e||Vr}function Ro(e,t,n=!0,s=!1){const r=te||se;if(r){const i=r.type;{const l=pl(i,!1);if(l&&(l===t||l===re(t)||l===fn(re(t))))return i}const o=Ps(r[e]||i[e],t)||Ps(r.appContext[e],t);return!o&&s?i:o}}function Ps(e,t){return e&&(e[t]||e[re(t)]||e[fn(re(t))])}function lf(e,t,n,s){let r;const i=n,o=E(e);if(o||J(e)){const l=o&&qe(e);let c=!1,d=!1;l&&(c=!de(e),d=Ie(e),e=dn(e)),r=new Array(e.length);for(let a=0,p=e.length;a<p;a++)r[a]=t(c?d?Je(pe(e[a])):pe(e[a]):e[a],a,void 0,i)}else if(typeof e=="number")if(!Number.isInteger(e)||e<0)r=[];else{r=new Array(e);for(let l=0;l<e;l++)r[l]=t(l+1,l,void 0,i)}else if(H(e))if(e[Symbol.iterator])r=Array.from(e,(l,c)=>t(l,c,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let c=0,d=l.length;c<d;c++){const a=l[c];r[c]=t(e[a],a,c,i)}}else r=[];return r}function ff(e,t,n,s,r,i){if(n==null&&(n={}),te.ce||te.parent&&ft(te.parent)&&te.parent.ce){const d=n,a=Object.keys(d).length>0;return t!=="default"&&(d.name=t),Xn(),Qn(ce,null,[Pe("slot",d,s)],a?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);const l=He.length;Xn();let c;try{const d=o&&Hr(o(n)),a=n.key||i||d&&d.key;c=Qn(ce,{key:(a&&!he(a)?a:`_${t}`)+(!d&&s?"_fb":"")},d||(s?s():[]),d&&e._===1?64:-2)}catch(d){for(let a=He.length;a>l;a--)ds();throw d}finally{o&&o._c&&(o._d=!0)}return c}function Hr(e){return e.some(t=>Sn(t)?!(t.type===ge||t.type===ce&&!Hr(t.children)):!0)?e:null}const qn=e=>e?li(e)?Cn(e):qn(e.parent):null,St=Z(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=>qn(e.parent),$root:e=>qn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>$r(e),$forceUpdate:e=>e.f||(e.f=()=>{fs(e.update)}),$nextTick:e=>e.n||(e.n=Or.bind(e.proxy)),$watch:e=>go.bind(e)}),Nn=(e,t)=>e!==N&&!e.__isScriptSetup&&V(e,t),Io={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;if(t[0]!=="$"){const C=o[t];if(C!==void 0)switch(C){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Nn(s,t))return o[t]=1,s[t];if(r!==N&&V(r,t))return o[t]=2,r[t];if(V(i,t))return o[t]=3,i[t];if(n!==N&&V(n,t))return o[t]=4,n[t];Gn&&(o[t]=0)}}const d=St[t];let a,p;if(d)return t==="$attrs"&&ne(e.attrs,"get",""),d(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==N&&V(n,t))return o[t]=4,n[t];if(p=c.config.globalProperties,V(p,t))return p[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return Nn(r,t)?(r[t]=n,!0):s!==N&&V(s,t)?(s[t]=n,!0):V(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:i,type:o}},l){let c;return!!(n[l]||e!==N&&l[0]!=="$"&&V(e,l)||Nn(t,l)||V(i,l)||V(s,l)||V(St,l)||V(r.config.globalProperties,l)||(c=o.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:V(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Qt(e){return E(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function cf(e,t){return!e||!t?e||t:E(e)&&E(t)?e.concat(t):Z({},Qt(e),Qt(t))}let Gn=!0;function Fo(e){const t=$r(e),n=e.proxy,s=e.ctx;Gn=!1,t.beforeCreate&&Ms(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:d,created:a,beforeMount:p,mounted:C,beforeUpdate:w,updated:I,activated:A,deactivated:q,beforeDestroy:B,beforeUnmount:D,destroyed:L,unmounted:P,render:Y,renderTracked:Ke,renderTriggered:xe,errorCaptured:Ue,serverPrefetch:It,expose:ze,inheritAttrs:ut,components:Ft,directives:Nt,filters:Tn}=t;if(d&&No(d,s,null),o)for(const G in o){const U=o[G];R(U)&&(s[G]=U.bind(n))}if(r){const G=r.call(n,n);H(G)&&(e.data=os(G))}if(Gn=!0,i)for(const G in i){const U=i[G],Ye=R(U)?U.bind(n,n):R(U.get)?U.get.bind(n,n):Ae,Dt=!R(U)&&R(U.set)?U.set.bind(n):Ae,Xe=_l({get:Ye,set:Dt});Object.defineProperty(s,G,{enumerable:!0,configurable:!0,get:()=>Xe.value,set:_e=>Xe.value=_e})}if(l)for(const G in l)Lr(l[G],s,n,G);if(c){const G=R(c)?c.call(n):c;Reflect.ownKeys(G).forEach(U=>{uo(U,G[U])})}a&&Ms(a,e,"c");function ie(G,U){E(U)?U.forEach(Ye=>G(Ye.bind(n))):U&&G(U.bind(n))}if(ie(vo,p),ie(So,C),ie(wo,w),ie(Co,I),ie(yo,A),ie(bo,q),ie(Po,Ue),ie(Ao,Ke),ie(Eo,xe),ie(To,D),ie(jr,P),ie(Oo,It),E(ze))if(ze.length){const G=e.exposed||(e.exposed={});ze.forEach(U=>{Object.defineProperty(G,U,{get:()=>n[U],set:Ye=>n[U]=Ye,enumerable:!0})})}else e.exposed||(e.exposed={});Y&&e.render===Ae&&(e.render=Y),ut!=null&&(e.inheritAttrs=ut),Ft&&(e.components=Ft),Nt&&(e.directives=Nt),It&&Nr(e)}function No(e,t,n=Ae){E(e)&&(e=Jn(e));for(const s in e){const r=e[s];let i;H(r)?"default"in r?i=Wt(r.from||s,r.default,!0):i=Wt(r.from||s):i=Wt(r),Q(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function Ms(e,t,n){be(E(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Lr(e,t,n,s){let r=s.includes(".")?Ir(n,s):()=>n[s];if(J(e)){const i=t[e];R(i)&&In(r,i)}else if(R(e))In(r,e.bind(n));else if(H(e))if(E(e))e.forEach(i=>Lr(i,t,n,s));else{const i=R(e.handler)?e.handler.bind(n):t[e.handler];R(i)&&In(r,i,e)}}function $r(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(d=>Zt(c,d,o,!0)),Zt(c,t,o)),H(t)&&i.set(t,c),c}function Zt(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&Zt(e,i,n,!0),r&&r.forEach(o=>Zt(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Do[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Do={data:Rs,props:Is,emits:Is,methods:_t,computed:_t,beforeCreate:oe,created:oe,beforeMount:oe,mounted:oe,beforeUpdate:oe,updated:oe,beforeDestroy:oe,beforeUnmount:oe,destroyed:oe,unmounted:oe,activated:oe,deactivated:oe,errorCaptured:oe,serverPrefetch:oe,components:_t,directives:_t,watch:Vo,provide:Rs,inject:jo};function Rs(e,t){return t?e?function(){return Z(R(e)?e.call(this,this):e,R(t)?t.call(this,this):t)}:t:e}function jo(e,t){return _t(Jn(e),Jn(t))}function Jn(e){if(E(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function oe(e,t){return e?[...new Set([].concat(e,t))]:t}function _t(e,t){return e?Z(Object.create(null),e,t):t}function Is(e,t){return e?E(e)&&E(t)?[...new Set([...e,...t])]:Z(Object.create(null),Qt(e),Qt(t??{})):t}function Vo(e,t){if(!e)return t;if(!t)return e;const n=Z(Object.create(null),e);for(const s in t)n[s]=oe(e[s],t[s]);return n}function Kr(){return{app:null,config:{isNativeTag:Zs,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 Ho=0;function Lo(e,t){return function(s,r=null){R(s)||(s=Z({},s)),r!=null&&!H(r)&&(r=null);const i=Kr(),o=new WeakSet,l=[];let c=!1;const d=i.app={_uid:Ho++,_component:s,_props:r,_container:null,_context:i,_instance:null,version:ml,get config(){return i.config},set config(a){},use(a,...p){return o.has(a)||(a&&R(a.install)?(o.add(a),a.install(d,...p)):R(a)&&(o.add(a),a(d,...p))),d},mixin(a){return i.mixins.includes(a)||i.mixins.push(a),d},component(a,p){return p?(i.components[a]=p,d):i.components[a]},directive(a,p){return p?(i.directives[a]=p,d):i.directives[a]},mount(a,p,C){if(!c){const w=d._ceVNode||Pe(s,r);return w.appContext=i,C===!0?C="svg":C===!1&&(C=void 0),e(w,a,C),c=!0,d._container=a,a.__vue_app__=d,Cn(w.component)}},onUnmount(a){l.push(a)},unmount(){c&&(be(l,d._instance,16),e(null,d._container),delete d._container.__vue_app__)},provide(a,p){return i.provides[a]=p,d},runWithContext(a){const p=rt;rt=d;try{return a()}finally{rt=p}}};return d}}let rt=null;function uf(e,t,n=N){const s=wn(),r=re(t),i=Le(t),o=Ur(e,r),l=Qi((c,d)=>{let a,p=N,C;return po(()=>{const w=e[r];ee(a,w)&&(a=w,d())}),{get(){return c(),n.get?n.get(a):a},set(w){const I=n.set?n.set(w):w;if(!ee(I,a)&&!(p!==N&&ee(w,p)))return;const A=s.vnode.props,q=!!(A&&(t in A||r in A||i in A)&&(`onUpdate:${t}`in A||`onUpdate:${r}`in A||`onUpdate:${i}`in A));q||(a=w,d()),s.emit(`update:${t}`,I),ee(w,p)&&(ee(w,I)&&!ee(I,C)||q&&p!==N&&!ee(I,a))&&d(),p=w,C=I}}});return l[Symbol.iterator]=()=>{let c=0;return{next(){return c<2?{value:c++?o||N:l,done:!1}:{done:!0}}}},l}const Ur=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${re(t)}Modifiers`]||e[`${Le(t)}Modifiers`];function $o(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||N;let r=n;const i=t.startsWith("update:"),o=i&&Ur(s,t.slice(7));o&&(o.trim&&(r=n.map(a=>J(a)?a.trim():a)),o.number&&(r=r.map(cn)));let l,c=s[l=On(t)]||s[l=On(re(t))];!c&&i&&(c=s[l=On(Le(t))]),c&&be(c,e,6,r);const d=s[l+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,be(d,e,6,r)}}const Ko=new WeakMap;function Wr(e,t,n=!1){const s=n?Ko:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!R(e)){const c=d=>{const a=Wr(d,t,!0);a&&(l=!0,Z(o,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(H(e)&&s.set(e,null),null):(E(i)?i.forEach(c=>o[c]=null):Z(o,i),H(e)&&s.set(e,o),o)}function xn(e,t){return!e||!sn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),V(e,t[0].toLowerCase()+t.slice(1))||V(e,Le(t))||V(e,t))}function Fs(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:c,render:d,renderCache:a,props:p,data:C,setupState:w,ctx:I,inheritAttrs:A}=e,q=zt(e);let B,D;try{if(n.shapeFlag&4){const P=r||s,Y=P;B=Ee(d.call(Y,P,a,p,w,C,I)),D=l}else{const P=t;B=Ee(P.length>1?P(p,{attrs:l,slots:o,emit:c}):P(p,null)),D=t.props?l:Uo(l)}}catch(P){He.length=0,_n(P,e,1),B=Pe(ge)}let L=B;if(D&&A!==!1){const P=Object.keys(D),{shapeFlag:Y}=L;P.length&&Y&7&&(i&&P.some(rn)&&(D=Wo(D,i)),L=ct(L,D,!1,!0))}if(n.dirs&&(L=ct(L,null,!1,!0),L.dirs=L.dirs?L.dirs.concat(n.dirs):n.dirs),n.transition){const P=yn(L.type)&&Fr(L)||L;Yt(P,n.transition)}return B=L,zt(q),B}function Br(e,t=!0){let n;for(let s=0;s<e.length;s++){const r=e[s];if(Sn(r)){if(r.type!==ge||r.children==="v-if"){if(n)return;n=r}}else return}return n}const Uo=e=>{let t;for(const n in e)(n==="class"||n==="style"||sn(n))&&((t||(t={}))[n]=e[n]);return t},Wo=(e,t)=>{const n={};for(const s in e)(!rn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Bo(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,d=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Ns(s,o,d):!!o;if(c&8){const a=t.dynamicProps;for(let p=0;p<a.length;p++){const C=a[p];if(qr(o,s,C)&&!xn(d,C))return!0}}}else return(r||l)&&(!l||!l.$stable)?!0:s===o?!1:s?o?Ns(s,o,d):!0:!!o;return!1}function Ns(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let r=0;r<s.length;r++){const i=s[r];if(!V(e,i)||qr(t,e,i)&&!xn(n,i))return!0}return!1}function qr(e,t,n){const s=e[n],r=t[n];return n==="style"&&H(s)&&H(r)?!Ge(s,r):s!==r}function qo({vnode:e,parent:t,suspense:n},s){for(;t;){const r=t.subTree;if(r.suspense&&r.suspense.activeBranch===e&&(r.suspense.vnode.el=r.el=s,e=r),r===e)(e=t.vnode).el=s,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=s)}const Gr={},Jr=()=>Object.create(Gr),zr=e=>Object.getPrototypeOf(e)===Gr;function Go(e,t,n,s=!1){const r={},i=Jr();e.propsDefaults=Object.create(null),Yr(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Bi(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Jo(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=j(r),[c]=e.propsOptions;let d=!1;if((s||o>0)&&!(o&16)){if(o&8){const a=e.vnode.dynamicProps;for(let p=0;p<a.length;p++){let C=a[p];if(xn(e.emitsOptions,C))continue;const w=t[C];if(c)if(V(i,C))w!==i[C]&&(i[C]=w,d=!0);else{const I=re(C);r[I]=zn(c,l,I,w,e,!1)}else w!==i[C]&&(i[C]=w,d=!0)}}}else{Yr(e,t,r,i)&&(d=!0);let a;for(const p in l)(!t||!V(t,p)&&((a=Le(p))===p||!V(t,a)))&&(c?n&&(n[p]!==void 0||n[a]!==void 0)&&(r[p]=zn(c,l,p,void 0,e,!0)):delete r[p]);if(i!==l)for(const p in i)(!t||!V(t,p))&&(delete i[p],d=!0)}d&&je(e.attrs,"set","")}function Yr(e,t,n,s){const[r,i]=e.propsOptions;let o=!1,l;if(t)for(let c in t){if(yt(c))continue;const d=t[c];let a;r&&V(r,a=re(c))?!i||!i.includes(a)?n[a]=d:(l||(l={}))[a]=d:xn(e.emitsOptions,c)||(!(c in s)||d!==s[c])&&(s[c]=d,o=!0)}if(i){const c=j(n),d=l||N;for(let a=0;a<i.length;a++){const p=i[a];n[p]=zn(r,c,p,d[p],e,!V(d,p))}}return o}function zn(e,t,n,s,r,i){const o=e[n];if(o!=null){const l=V(o,"default");if(l&&s===void 0){const c=o.default;if(o.type!==Function&&!o.skipFactory&&R(c)){const{propsDefaults:d}=r;if(n in d)s=d[n];else{const a=Rt(r);s=d[n]=c.call(null,t),a()}}else s=c;r.ce&&r.ce._setProp(n,s)}o[0]&&(i&&!l?s=!1:o[1]&&(s===""||s===Le(n))&&(s=!0))}return s}const zo=new WeakMap;function Xr(e,t,n=!1){const s=n?zo:t.propsCache,r=s.get(e);if(r)return r;const i=e.props,o={},l=[];let c=!1;if(!R(e)){const a=p=>{c=!0;const[C,w]=Xr(p,t,!0);Z(o,C),w&&l.push(...w)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!c)return H(e)&&s.set(e,tt),tt;if(E(i))for(let a=0;a<i.length;a++){const p=re(i[a]);Ds(p)&&(o[p]=N)}else if(i)for(const a in i){const p=re(a);if(Ds(p)){const C=i[a],w=o[p]=E(C)||R(C)?{type:C}:Z({},C),I=w.type;let A=!1,q=!0;if(E(I))for(let B=0;B<I.length;++B){const D=I[B],L=R(D)&&D.name;if(L==="Boolean"){A=!0;break}else L==="String"&&(q=!1)}else A=R(I)&&I.name==="Boolean";w[0]=A,w[1]=q,(A||V(w,"default"))&&l.push(p)}}const d=[o,l];return H(e)&&s.set(e,d),d}function Ds(e){return e[0]!=="$"&&!yt(e)}const us=e=>e==="_"||e==="_ctx"||e==="$stable",as=e=>E(e)?e.map(Ee):[Ee(e)],Yo=(e,t,n)=>{if(t._n)return t;const s=co((...r)=>as(t(...r)),n);return s._c=!1,s},Qr=(e,t,n)=>{const s=e._ctx;for(const r in e){if(us(r))continue;const i=e[r];if(R(i))t[r]=Yo(r,i,s);else if(i!=null){const o=as(i);t[r]=()=>o}}},Zr=(e,t)=>{const n=as(t);e.slots.default=()=>n},kr=(e,t,n)=>{for(const s in t)(n||!us(s))&&(e[s]=t[s])},Xo=(e,t,n)=>{const s=e.slots=Jr();if(e.vnode.shapeFlag&32){const r=t._;r?(kr(s,t,n),n&&nr(s,"_",r,!0)):Qr(t,s)}else t&&Zr(e,t)},Qo=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=N;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:kr(r,t,n):(i=!t.$stable,Qr(t,r)),o=t}else t&&(Zr(e,t),o={default:1});if(i)for(const l in r)!us(l)&&o[l]==null&&delete r[l]},fe=nl;function Zo(e){return ko(e)}function ko(e,t){const n=un();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:d,setElementText:a,parentNode:p,nextSibling:C,setScopeId:w=Ae,insertStaticContent:I}=e,A=(f,u,h,y=null,_=null,m=null,v=void 0,x=null,b=!!u.dynamicChildren)=>{if(f===u)return;f&&!gt(f,u)&&(y=jt(f),_e(f,_,m,!0),f=null),u.patchFlag===-2&&(b=!1,u.dynamicChildren=null),u.dynamicChildren&&f&&f.dynamicChildren&&f.dynamicChildren.hasOnce&&(u.dynamicChildren===tt&&(u.dynamicChildren=[]),u.dynamicChildren.hasOnce=!0);const{type:g,ref:T,shapeFlag:S}=u;switch(g){case vn:q(f,u,h,y);break;case ge:B(f,u,h,y);break;case jn:f==null&&D(u,h,y,v);break;case ce:Ft(f,u,h,y,_,m,v,x,b);break;default:S&1?Y(f,u,h,y,_,m,v,x,b):S&6?Nt(f,u,h,y,_,m,v,x,b):(S&64||S&128)&&g.process(f,u,h,y,_,m,v,x,b,dt)}T!=null&&_?vt(T,f&&f.ref,m,u||f,!u):T==null&&f&&f.ref!=null&&vt(f.ref,null,m,f,!0)},q=(f,u,h,y)=>{if(f==null)s(u.el=l(u.children),h,y);else{const _=u.el=f.el;u.children!==f.children&&d(_,u.children)}},B=(f,u,h,y)=>{f==null?s(u.el=c(u.children||""),h,y):u.el=f.el},D=(f,u,h,y)=>{[f.el,f.anchor]=I(f.children,u,h,y,f.el,f.anchor)},L=({el:f,anchor:u},h,y)=>{let _;for(;f&&f!==u;)_=C(f),s(f,h,y),f=_;s(u,h,y)},P=({el:f,anchor:u})=>{let h;for(;f&&f!==u;)h=C(f),r(f),f=h;r(u)},Y=(f,u,h,y,_,m,v,x,b)=>{if(u.type==="svg"?v="svg":u.type==="math"&&(v="mathml"),f==null)Ke(u,h,y,_,m,v,x,b);else{const g=f.el&&f.el._isVueCE?f.el:null;try{g&&g._beginPatch(),It(f,u,_,m,v,x,b)}finally{g&&g._endPatch()}}},Ke=(f,u,h,y,_,m,v,x)=>{let b,g;const{props:T,shapeFlag:S,transition:O,dirs:M}=f;if(b=f.el=o(f.type,m,T&&T.is,T),S&8?a(b,f.children):S&16&&Ue(f.children,b,null,y,_,Dn(f,m),v,x),M&&Qe(f,null,y,"created"),xe(b,f,f.scopeId,v,y),T){for(const K in T)K!=="value"&&!yt(K)&&i(b,K,null,T[K],m,y);"value"in T&&i(b,"value",null,T.value,m),(g=T.onVnodeBeforeMount)&&Ce(g,y,f)}M&&Qe(f,null,y,"beforeMount");const F=el(_,O);F&&O.beforeEnter(b),s(b,u,h),((g=T&&T.onVnodeMounted)||F||M)&&fe(()=>{try{g&&Ce(g,y,f),F&&O.enter(b),M&&Qe(f,null,y,"mounted")}finally{}},_)},xe=(f,u,h,y,_)=>{if(h&&w(f,h),y)for(let m=0;m<y.length;m++)w(f,y[m]);if(_){let m=_.subTree;if(u===m||ni(m.type)&&(m.ssContent===u||m.ssFallback===u)){const v=_.vnode;xe(f,v,v.scopeId,v.slotScopeIds,_.parent)}}},Ue=(f,u,h,y,_,m,v,x,b=0)=>{for(let g=b;g<f.length;g++){const T=f[g]=x?De(f[g]):Ee(f[g]);A(null,T,u,h,y,_,m,v,x)}},It=(f,u,h,y,_,m,v)=>{const x=u.el=f.el;let{patchFlag:b,dynamicChildren:g,dirs:T}=u;b|=f.patchFlag&16;const S=f.props||N,O=u.props||N;let M;if(h&&Ze(h,!1),(M=O.onVnodeBeforeUpdate)&&Ce(M,h,u,f),T&&Qe(u,f,h,"beforeUpdate"),h&&Ze(h,!0),g&&(!f.dynamicChildren||f.dynamicChildren.length!==g.length)&&(b=0,v=!1,g=null),(S.innerHTML&&O.innerHTML==null||S.textContent&&O.textContent==null)&&a(x,""),g?ze(f.dynamicChildren,g,x,h,y,Dn(u,_),m):v||U(f,u,x,null,h,y,Dn(u,_),m,!1),b>0){if(b&16)ut(x,S,O,h,_);else if(b&2&&S.class!==O.class&&i(x,"class",null,O.class,_),b&4&&i(x,"style",S.style,O.style,_),b&8){const F=u.dynamicProps;for(let K=0;K<F.length;K++){const $=F[K],z=S[$],k=O[$];(k!==z||$==="value")&&i(x,$,z,k,_,h)}}b&1&&f.children!==u.children&&a(x,u.children)}else!v&&g==null&&ut(x,S,O,h,_);((M=O.onVnodeUpdated)||T)&&fe(()=>{M&&Ce(M,h,u,f),T&&Qe(u,f,h,"updated")},y)},ze=(f,u,h,y,_,m,v)=>{for(let x=0;x<u.length;x++){const b=f[x],g=u[x],T=b.el||Yn(b),S=T&&(b.type===ce||!gt(b,g)||b.shapeFlag&198)?p(T):h;A(b,g,S,null,y,_,m,v,!0)}},ut=(f,u,h,y,_)=>{if(u!==h){if(u!==N)for(const m in u)!yt(m)&&!(m in h)&&i(f,m,u[m],null,_,y);for(const m in h){if(yt(m))continue;const v=h[m],x=u[m];v!==x&&m!=="value"&&i(f,m,x,v,_,y)}"value"in h&&i(f,"value",u.value,h.value,_)}},Ft=(f,u,h,y,_,m,v,x,b)=>{const g=u.el=f?f.el:l(""),T=u.anchor=f?f.anchor:l("");let{patchFlag:S,dynamicChildren:O,slotScopeIds:M}=u;M&&(x=x?x.concat(M):M),f==null?(s(g,h,y),s(T,h,y),Ue(u.children||[],h,T,_,m,v,x,b)):S>0&&S&64&&O&&f.dynamicChildren&&f.dynamicChildren.length===O.length?(ze(f.dynamicChildren,O,h,_,m,v,x),(u.key!=null||_&&u===_.subTree)&&ei(f,u,!0)):U(f,u,h,T,_,m,v,x,b)},Nt=(f,u,h,y,_,m,v,x,b)=>{u.slotScopeIds=x,f==null?u.shapeFlag&512?_.ctx.activate(u,h,y,v,b):Tn(u,h,y,_,m,v,b):hs(f,u,b)},Tn=(f,u,h,y,_,m,v)=>{const x=f.component=cl(f,y,_);if(cs(f)&&(x.ctx.renderer=dt),ul(x,!1,v),x.asyncDep){if(_&&_.registerDep(x,ie,v,m),!f.el){const b=x.subTree=Pe(ge);B(null,b,u,h),f.placeholder=b.el}}else ie(x,f,u,h,_,m,v)},hs=(f,u,h)=>{const y=u.component=f.component;if(Bo(f,u,h))if(y.asyncDep&&!y.asyncResolved){u.el=f.el,u.placeholder=f.placeholder,G(y,u,h);return}else y.next=u,y.update();else u.el=f.el,u.placeholder=f.placeholder,y.vnode=u},ie=(f,u,h,y,_,m,v)=>{const x=()=>{if(f.isMounted){let{next:S,bu:O,u:M,parent:F,vnode:K}=f;{const Se=ti(f);if(Se){S&&(S.el=K.el,G(f,S,v)),Se.asyncDep.then(()=>{fe(()=>{f.isUnmounted||g()},_)});return}}let $=S,z;Ze(f,!1),S?(S.el=K.el,G(f,S,v)):S=K,O&&Ut(O),(z=S.props&&S.props.onVnodeBeforeUpdate)&&Ce(z,F,S,K),Ze(f,!0);const k=Fs(f),ve=f.subTree;f.subTree=k,A(ve,k,p(ve.el),jt(ve),f,_,m),S.el=k.el,$===null&&qo(f,k.el),M&&fe(M,_),(z=S.props&&S.props.onVnodeUpdated)&&fe(()=>Ce(z,F,S,K),_)}else{let S;const{el:O,props:M}=u,{bm:F,m:K,parent:$,root:z,type:k}=f,ve=ft(u);Ze(f,!1),F&&Ut(F),!ve&&(S=M&&M.onVnodeBeforeMount)&&Ce(S,$,u),Ze(f,!0);{z.ce&&z.ce._hasShadowRoot()&&z.ce._injectChildStyle(k,f.parent?f.parent.type:void 0);const Se=f.subTree=Fs(f);A(null,Se,h,y,f,_,m),u.el=Se.el}if(K&&fe(K,_),!ve&&(S=M&&M.onVnodeMounted)){const Se=u;fe(()=>Ce(S,$,Se),_)}(u.shapeFlag&256||$&&ft($.vnode)&&$.vnode.shapeFlag&256)&&f.a&&fe(f.a,_),f.isMounted=!0,u=h=y=null}};f.scope.on();const b=f.effect=new or(x);f.scope.off();const g=f.update=b.run.bind(b),T=f.job=b.runIfDirty.bind(b);T.i=f,T.id=f.uid,b.scheduler=()=>fs(T),Ze(f,!0),g()},G=(f,u,h)=>{u.component=f;const y=f.vnode.props;f.vnode=u,f.next=null,Jo(f,u.props,y,h),Qo(f,u.children,h),Me(),Ar(f),Re()},U=(f,u,h,y,_,m,v,x,b=!1)=>{const g=f&&f.children,T=f?f.shapeFlag:0,S=u.children,{patchFlag:O,shapeFlag:M}=u;if(O>0){if(O&128){Dt(g,S,h,y,_,m,v,x,b);return}else if(O&256){Ye(g,S,h,y,_,m,v,x,b);return}}M&8?(T&16&&at(g,_,m),S!==g&&a(h,S)):T&16?M&16?Dt(g,S,h,y,_,m,v,x,b):at(g,_,m,!0):(T&8&&a(h,""),M&16&&Ue(S,h,y,_,m,v,x,b))},Ye=(f,u,h,y,_,m,v,x,b)=>{f=f||tt,u=u||tt;const g=f.length,T=u.length,S=Math.min(g,T);let O;for(O=0;O<S;O++){const M=u[O]=b?De(u[O]):Ee(u[O]);A(f[O],M,h,null,_,m,v,x,b)}g>T?at(f,_,m,!0,!1,S):Ue(u,h,y,_,m,v,x,b,S)},Dt=(f,u,h,y,_,m,v,x,b)=>{let g=0;const T=u.length;let S=f.length-1,O=T-1;for(;g<=S&&g<=O;){const M=f[g],F=u[g]=b?De(u[g]):Ee(u[g]);if(gt(M,F))A(M,F,h,null,_,m,v,x,b);else break;g++}for(;g<=S&&g<=O;){const M=f[S],F=u[O]=b?De(u[O]):Ee(u[O]);if(gt(M,F))A(M,F,h,null,_,m,v,x,b);else break;S--,O--}if(g>S){if(g<=O){const M=O+1,F=M<T?u[M].el:y;for(;g<=O;)A(null,u[g]=b?De(u[g]):Ee(u[g]),h,F,_,m,v,x,b),g++}}else if(g>O)for(;g<=S;)_e(f[g],_,m,!0),g++;else{const M=g,F=g,K=new Map;for(g=F;g<=O;g++){const ue=u[g]=b?De(u[g]):Ee(u[g]);ue.key!=null&&K.set(ue.key,g)}let $,z=0;const k=O-F+1;let ve=!1,Se=0;const ht=new Array(k);for(g=0;g<k;g++)ht[g]=0;for(g=M;g<=S;g++){const ue=f[g];if(z>=k){_e(ue,_,m,!0);continue}let we;if(ue.key!=null)we=K.get(ue.key);else for($=F;$<=O;$++)if(ht[$-F]===0&&gt(ue,u[$])){we=$;break}we===void 0?_e(ue,_,m,!0):(ht[we-F]=g+1,we>=Se?Se=we:ve=!0,A(ue,u[we],h,null,_,m,v,x,b),z++)}const ms=ve?tl(ht):tt;for($=ms.length-1,g=k-1;g>=0;g--){const ue=F+g,we=u[ue],ys=u[ue+1],bs=ue+1<T?ys.el||Yn(ys):y;ht[g]===0?A(null,we,h,bs,_,m,v,x,b):ve&&($<0||g!==ms[$]?Xe(we,h,bs,2):$--)}}},Xe=(f,u,h,y,_=null)=>{const{el:m,type:v,transition:x,children:b,shapeFlag:g}=f;if(g&6){Xe(f.component.subTree,u,h,y);return}if(g&128){f.suspense.move(u,h,y);return}if(g&64){v.move(f,u,h,dt);return}if(v===ce){s(m,u,h);for(let S=0;S<b.length;S++)Xe(b[S],u,h,y);s(f.anchor,u,h);return}if(v===jn){L(f,u,h);return}if(y!==2&&g&1&&x)if(y===0)x.persisted&&!m[Fn]?s(m,u,h):(x.beforeEnter(m),s(m,u,h),fe(()=>x.enter(m),_));else{const{leave:S,delayLeave:O,afterLeave:M}=x,F=()=>{f.ctx.isUnmounted?r(m):s(m,u,h)},K=()=>{const $=m._isLeaving||!!m[Fn];m._isLeaving&&m[Fn](!0),x.persisted&&!$?F():S(m,()=>{F(),M&&M()})};O?O(m,F,K):K()}else s(m,u,h)},_e=(f,u,h,y=!1,_=!1)=>{const{type:m,props:v,ref:x,children:b,dynamicChildren:g,shapeFlag:T,patchFlag:S,dirs:O,cacheIndex:M,memo:F}=f;if((S===-2||g&&g.hasOnce)&&(_=!1),x!=null&&(Me(),vt(x,null,h,f,!0),Re()),M!=null&&(!f.ctx||f.ctx===u)&&(u.renderCache[M]=void 0),T&256){u.ctx.deactivate(f);return}const K=T&1&&O,$=!ft(f);let z;if($&&(z=v&&v.onVnodeBeforeUnmount)&&Ce(z,u,f),T&6)ui(f.component,h,y);else{if(T&128){f.suspense.unmount(h,y);return}K&&Qe(f,null,u,"beforeUnmount"),T&64?f.type.remove(f,u,h,dt,y):g&&!g.hasOnce&&(m!==ce||S>0&&S&64)?at(g,u,h,!1,!0):(m===ce&&S&384||!_&&T&16)&&at(b,u,h),y&&ps(f)}const k=F!=null&&M==null;($&&(z=v&&v.onVnodeUnmounted)||K||k)&&fe(()=>{z&&Ce(z,u,f),K&&Qe(f,null,u,"unmounted"),k&&(f.el=null)},h)},ps=f=>{const{type:u,el:h,anchor:y,transition:_}=f,m=u===ce;if(m&&!_){gs(h,y);return}if(u===jn){P(f),_&&!_.persisted&&_.afterLeave&&_.afterLeave();return}const v=m?Bn(f):f,x=()=>{m?p(h)&&gs(h,y):r(h),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(v&&v.shapeFlag&1&&_&&!_.persisted){const{leave:b,delayLeave:g}=_,T=v.el,S=()=>b(T,x);g?g(T,x,S):S()}else x()},gs=(f,u)=>{let h;for(;f!==u;)h=C(f),r(f),f=h;r(u)},ui=(f,u,h)=>{const{bum:y,scope:_,job:m,subTree:v,um:x,m:b,a:g}=f;js(b),js(g),y&&Ut(y),_.stop(),m?(m.flags|=8,_e(v,f,u,h)):f.vnode.el&&v&&(v.transition=f.vnode.transition,_e(v,f,u,h)),x&&fe(x,u),fe(()=>{f.isUnmounted=!0},u)},at=(f,u,h,y=!1,_=!1,m=0)=>{for(let v=m;v<f.length;v++)_e(f[v],u,h,y,_)},jt=f=>{if(f.shapeFlag&6)return jt(f.component.subTree);if(f.shapeFlag&128)return f.suspense.next();const u=C(f.anchor||f.el),h=u&&u[_o];return h?C(h):u},_s=(f,u,h)=>{const y=f&&u._vnode?void 0:f&&f.component?f.component.uid:fl();fo(()=>{f==null?u._vnode&&_e(u._vnode,null,null,!0):A(u._vnode||null,f,u,null,null,null,h),u._vnode=f},y)},dt={p:A,um:_e,m:Xe,r:ps,mt:Tn,mc:Ue,pc:U,pbc:ze,n:jt,o:e};return{render:_s,hydrate:void 0,createApp:Lo(_s)}}function Dn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ze({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function el(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ei(e,t,n=!1){const s=e.children,r=t.children;if(E(s)&&E(r))for(let i=0;i<s.length;i++){const o=s[i];let l=r[i];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=r[i]=De(r[i]),l.el=o.el),!n&&l.patchFlag!==-2&&ei(o,l)),l.type===vn&&(l.patchFlag===-1&&(l=r[i]=De(l)),l.el=o.el),l.type===ge&&!l.el&&(l.el=o.el)}}function tl(e){const t=e.slice(),n=[0];let s,r,i,o,l;const c=e.length;for(s=0;s<c;s++){const d=e[s];if(d!==0){if(r=n[n.length-1],e[r]<d){t[s]=r,n.push(s);continue}for(i=0,o=n.length-1;i<o;)l=i+o>>1,e[n[l]]<d?i=l+1:o=l;d<e[n[i]]&&(i>0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function ti(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ti(t)}function js(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Yn(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Yn(t.subTree):null}const ni=e=>e.__isSuspense;function nl(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):lo(e)}const ce=Symbol.for("v-fgt"),vn=Symbol.for("v-txt"),ge=Symbol.for("v-cmt"),jn=Symbol.for("v-stc"),He=[];let ae=null;function Xn(e=!1){He.push(ae=e?null:[])}function ds(){He.pop(),ae=He[He.length-1]||null}let Ot=1;function Vs(e,t=!1){Ot+=e,e<0&&ae&&t&&(ae.hasOnce=!0)}function si(e){return e.dynamicChildren=Ot>0?ae||tt:null,ds(),Ot>0&&ae&&ae.push(e),e}function af(e,t,n,s,r,i){return si(ii(e,t,n,s,r,i,!0))}function Qn(e,t,n,s,r){return si(Pe(e,t,n,s,r,!0))}function Sn(e){return e?e.__v_isVNode===!0:!1}function gt(e,t){return e.type===t.type&&e.key===t.key}const ri=({key:e})=>e??null,Bt=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?J(e)||Q(e)||R(e)?{i:te,r:e,k:t,f:!!n}:e:null);function ii(e,t=null,n=null,s=0,r=null,i=e===ce?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ri(t),ref:t&&Bt(t),scopeId:Rr,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:te};return l?(kt(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=J(n)?8:16),Ot>0&&!o&&ae&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&ae.push(c),c}const Pe=sl;function sl(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===Vr)&&(e=ge),Sn(e)){const l=ct(e,t,!0);return n&&kt(l,n),Ot>0&&!i&&ae&&(l.shapeFlag&6?ae[ae.indexOf(e)]=l:ae.push(l)),l.patchFlag=-2,l}if(gl(e)&&(e=e.__vccOpts),t){t=rl(t);let{class:l,style:c}=t;l&&!J(l)&&(t.class=ns(l)),H(c)&&(gn(c)&&!E(c)&&(c=Z({},c)),t.style=ts(c))}const o=J(e)?1:ni(e)?128:yn(e)?64:H(e)?4:R(e)?2:0;return ii(e,t,n,s,r,o,i,!0)}function rl(e){return e?gn(e)||zr(e)?Z({},e):e:null}function ct(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:c}=e,d=t?ol(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&ri(d),ref:t&&t.ref?n&&i?E(i)?i.concat(Bt(t)):[i,Bt(t)]:Bt(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ce?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ct(e.ssContent),ssFallback:e.ssFallback&&ct(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return c&&s&&Yt(a,c.clone(a)),a}function il(e=" ",t=0){return Pe(vn,null,e,t)}function df(e="",t=!1){return t?(Xn(),Qn(ge,null,e)):Pe(ge,null,e)}function Ee(e){return e==null||typeof e=="boolean"?Pe(ge):E(e)?Pe(ce,null,e.slice()):Sn(e)?De(e):Pe(vn,null,String(e))}function De(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ct(e)}function kt(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(E(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),kt(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!zr(t)?t._ctx=te:r===3&&te&&(te.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(R(t)){if(s&65){kt(e,{default:t});return}t={default:t,_ctx:te},n=32}else t=String(t),s&64?(n=16,t=[il(t)]):n=8;e.children=t,e.shapeFlag|=n}function ol(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const r in s)if(r==="class")t.class!==s.class&&(t.class=ns([t.class,s.class]));else if(r==="style")t.style=ts([t.style,s.style]);else if(sn(r)){const i=t[r],o=s[r];o&&i!==o&&!(E(i)&&i.includes(o))?t[r]=i?[].concat(i,o):o:o==null&&i==null&&!rn(r)&&(t[r]=o)}else r!==""&&(t[r]=s[r])}return t}function Ce(e,t,n,s=null){be(e,t,7,[n,s])}const ll=Kr();let oi=0;function fl(){return oi}function cl(e,t,n){const s=e.type,r=(t?t.appContext:e.appContext)||ll,i={uid:oi++,vnode:e,type:s,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Ti(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Xr(s,r),emitsOptions:Wr(s,r),emit:null,emitted:null,propsDefaults:N,inheritAttrs:s.inheritAttrs,ctx:N,data:N,props:N,attrs:N,slots:N,refs:N,setupState:N,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=$o.bind(null,i),e.ce&&e.ce(i),i}let se=null;const wn=()=>se||te;let en,Et;{const e=un(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};en=t("__VUE_INSTANCE_SETTERS__",n=>se=n),Et=t("__VUE_SSR_SETTERS__",n=>At=n)}const Rt=e=>{const t=se;return en(e),e.scope.on(),()=>{e.scope.off(),en(t)}},Hs=()=>{se&&se.scope.off(),en(null)};function li(e){return e.vnode.shapeFlag&4}let At=!1;function ul(e,t=!1,n=!1){t&&Et(t);const{props:s,children:r}=e.vnode,i=li(e);Go(e,s,i,t),Xo(e,r,n||t);const o=i?al(e,t):void 0;return t&&Et(!1),o}function al(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Io);const{setup:s}=n;if(s){Me();const r=e.setupContext=s.length>1?hl(e):null,i=Rt(e),o=Mt(s,e,0,[e.props,r]),l=ks(o);if(Re(),i(),(l||e.sp)&&!ft(e)&&Nr(e),l){if(o.then(Hs,Hs),t)return o.then(c=>{Et(!0);try{Ls(e,c,t)}finally{Et(!1)}}).catch(c=>{_n(c,e,0)});e.asyncDep=o}else Ls(e,o)}else fi(e)}function Ls(e,t,n){R(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:H(t)&&(e.setupState=Cr(t)),fi(e)}function fi(e,t,n){const s=e.type;e.render||(e.render=s.render||Ae);{const r=Rt(e);Me();try{Fo(e)}finally{Re(),r()}}}const dl={get(e,t){return ne(e,"get",""),e[t]}};function hl(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,dl),slots:e.slots,emit:e.emit,expose:t}}function Cn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Cr(qi(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in St)return St[n](e)},has(t,n){return n in t||n in St}})):e.proxy}function pl(e,t=!0){return R(e)?e.displayName||e.name:e.name||t&&e.__name}function gl(e){return R(e)&&"__vccOpts"in e}const _l=(e,t)=>no(e,t,At),ml="3.5.44";/**
14
- * @vue/runtime-dom v3.5.44
15
- * (c) 2018-present Yuxi (Evan) You and Vue contributors
16
- * @license MIT
17
- **/let Zn;const $s=typeof window<"u"&&window.trustedTypes;if($s)try{Zn=$s.createPolicy("vue",{createHTML:e=>e})}catch{}const ci=Zn?e=>Zn.createHTML(e):e=>e,yl="http://www.w3.org/2000/svg",bl="http://www.w3.org/1998/Math/MathML",Ne=typeof document<"u"?document:null,Ks=Ne&&Ne.createElement("template"),xl={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Ne.createElementNS(yl,e):t==="mathml"?Ne.createElementNS(bl,e):n?Ne.createElement(e,{is:n}):Ne.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Ne.createTextNode(e),createComment:e=>Ne.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ne.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Ks.innerHTML=ci(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const l=Ks.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},vl=Symbol("_vtc");function Sl(e,t,n){const s=e[vl];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Us=Symbol("_vod"),wl=Symbol("_vsh"),Cl=Symbol(""),Tl=/(?:^|;)\s*display\s*:/;function Ol(e,t,n){const s=e.style,r=J(n);let i=!1;if(n&&!r){if(t)if(J(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&mt(s,l,"")}else for(const o in t)n[o]==null&&mt(s,o,"");for(const o in n){o==="display"&&(i=!0);const l=n[o];l!=null?Al(e,o,!J(t)&&t?t[o]:void 0,l)||mt(s,o,l):mt(s,o,"")}}else if(r){if(t!==n){const o=s[Cl];o&&(n+=";"+o),s.cssText=n,i=Tl.test(n)}}else t&&e.removeAttribute("style");Us in e&&((!r||t!==n)&&(e[Us]=i?s.display:""),e[wl]&&(s.display="none"))}const $t=/\s*!important$/;function mt(e,t,n){if(E(n))n.forEach(s=>mt(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))$t.test(n)?e.setProperty(t,n.replace($t,""),"important"):e.setProperty(t,n);else{const s=El(e,t);$t.test(n)?e.setProperty(Le(s),n.replace($t,""),"important"):e[s]=n}}const Ws=["Webkit","Moz","ms"],Vn={};function El(e,t){const n=Vn[t];if(n)return n;let s=re(t);if(s!=="filter"&&s in e)return Vn[t]=s;s=fn(s);for(let r=0;r<Ws.length;r++){const i=Ws[r]+s;if(i in e)return Vn[t]=i}return t}function Al(e,t,n,s){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&J(s)&&n===s}const Bs="http://www.w3.org/1999/xlink";function qs(e,t,n,s,r,i=xi(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Bs,t.slice(6,t.length)):e.setAttributeNS(Bs,t,n):n==null||i&&!sr(n)?e.removeAttribute(t):e.setAttribute(t,i?"":he(n)?String(n):n)}function Gs(e,t,n,s,r){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?ci(n):n);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const l=i==="OPTION"?e.getAttribute("value")||"":e.value,c=n==null?e.type==="checkbox"?"on":"":String(n);(l!==c||!("_value"in e))&&(e.value=c),n==null&&e.removeAttribute(t),e._value=n;return}let o=!1;if(n===""||n==null){const l=typeof e[t];l==="boolean"?n=sr(n):n==null&&l==="string"?(n="",o=!0):l==="number"&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(r||t)}function et(e,t,n,s){e.addEventListener(t,n,s)}function Pl(e,t,n,s){e.removeEventListener(t,n,s)}const Js=Symbol("_vei");function Ml(e,t,n,s,r=null){const i=e[Js]||(e[Js]={}),o=i[t];if(s&&o)o.value=s;else{const[l,c]=Fl(t);if(s){const d=i[t]=jl(s,r);et(e,l,d,c)}else o&&(Pl(e,l,o,c),i[t]=void 0)}}const Rl=/(Once|Passive|Capture)$/,Il=/^on:?(?:Once|Passive|Capture)$/;function Fl(e){let t,n;for(;(n=e.match(Rl))&&!Il.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):Le(e.slice(2)),t]}let Hn=0;const Nl=Promise.resolve(),Dl=()=>Hn||(Nl.then(()=>Hn=0),Hn=Date.now());function jl(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const r=n.value;if(E(r)){const i=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{i.call(s),s._stopped=!0};const o=r.slice(),l=[s];for(let c=0;c<o.length&&!s._stopped;c++){const d=o[c];d&&be(d,t,5,l)}}else be(r,t,5,[s])};return n.value=e,n.attached=Dl(),n}const zs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Vl=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?Sl(e,s,o):t==="style"?Ol(e,n,s):sn(t)?rn(t)||Ml(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Hl(e,t,s,o))?(Gs(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&qs(e,t,s,o,i,t!=="value")):e._isVueCE&&(Ll(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!J(s)))?Gs(e,re(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),qs(e,t,s,o))};function Hl(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&zs(t)&&R(n));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 r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return zs(t)&&J(n)?!1:t in e}function Ll(e,t){const n=e._def.props;if(!n)return!1;const s=re(t);return Array.isArray(n)?n.some(r=>re(r)===s):Object.keys(n).some(r=>re(r)===s)}const tn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return E(t)?n=>Ut(t,n):t};function $l(e){e.target.composing=!0}function Ys(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const nt=Symbol("_assign"),Kt=Symbol("_initialValue");function Ln(e,t,n){return t&&(e=e.trim()),n&&(e=cn(e)),e}const hf={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e.parentNode&&(e.type==="text"?e[Kt]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Kt]=e.defaultValue.replace(/\r\n?/g,`
18
- `))),e[nt]=tn(r);const i=s||r.props&&r.props.type==="number";et(e,t?"change":"input",o=>{o.target.composing||e[nt](Ln(e.value,n,i))}),(n||i)&&et(e,"change",()=>{e.value=Ln(e.value,n,i)}),t||(et(e,"compositionstart",$l),et(e,"compositionend",Ys),et(e,"change",Ys))},mounted(e,{value:t,modifiers:{trim:n,number:s}}){const r=t??"",i=e[Kt];delete e[Kt],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[nt](Ln(e.value,n,s)):e.value=r},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[nt]=tn(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?cn(e.value):e.value,c=t??"";if(l===c)return;const d=e.getRootNode();(d instanceof Document||d instanceof ShadowRoot)&&d.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===c)||(e.value=c)}},pf={deep:!0,created(e,{value:t,modifiers:{number:n}},s){e._modelValue=t,et(e,"change",()=>{const r=Array.prototype.filter.call(e.options,c=>c.selected).map(c=>n?cn(nn(c)):nn(c)),i=e.multiple,o=i?it(e._modelValue)?new Set(r):r:r[0],l=e._pendingValue=[i,i?E(o)?r.slice():r:o];try{e[nt](o)}finally{Or(()=>{e._pendingValue===l&&(e._pendingValue=void 0)})}}),e[nt]=tn(s)},mounted(e,{value:t}){Xs(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[nt]=tn(n)},updated(e,{value:t}){const n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!Kl(t,n[1],n[0]))&&Xs(e,t)}};function Kl(e,t,n){if(!n||E(e))return Ge(e,t);if(it(e)){if(e.size!==t.length)return!1;for(const s of t)if(!e.has(s))return!1;return!0}return!1}function Xs(e,t){const n=e.multiple,s=E(t);if(!(n&&!s&&!it(t))){for(let r=0,i=e.options.length;r<i;r++){const o=e.options[r],l=nn(o);if(n)if(s){const c=typeof l;c==="string"||c==="number"?o.selected=t.some(d=>String(d)===String(l)):o.selected=wi(t,l)>-1}else o.selected=t.has(l);else if(Ge(nn(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function nn(e){return"_value"in e?e._value:e.value}const Ul=["ctrl","shift","alt","meta"],Wl={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ul.some(n=>e[`${n}Key`]&&!t.includes(n))},gf=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((r,...i)=>{for(let o=0;o<t.length;o++){const l=Wl[t[o]];if(l&&l(r,t))return}return e(r,...i)}))},Bl={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},_f=(e,t)=>{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(r=>{if(!("key"in r))return;const i=Le(r.key);if(t.some(o=>o===i||Bl[o]===i))return e(r)}))},ql=Z({patchProp:Vl},xl);let Qs;function Gl(){return Qs||(Qs=Zo(ql))}const mf=((...e)=>{const t=Gl().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=zl(s);if(!r)return;const i=t._component;!R(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Jl(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function Jl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function zl(e){return J(e)?document.querySelector(e):e}const yf=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n};export{uf as A,cf as B,co as C,Q as D,ef as E,ce as F,_f as G,hf as H,nf as I,mf as J,pf as K,Ql as L,Ji as M,Qi as N,kl as O,Wn as P,wn as Q,tf as R,Wt as S,Oi as T,Xl as U,yf as _,Zl as a,af as b,_l as c,sf as d,lf as e,gf as f,ns as g,ii as h,Ci as i,df as j,Gi as k,So as l,il as m,Or as n,Xn as o,Pe as p,Qn as q,os as r,Bi as s,j as t,ls as u,of as v,In as w,rf as x,ts as y,ff as z};
@@ -1 +0,0 @@
1
- const w=e=>fetch(e).then(t=>t.json(),()=>Promise.reject(new Error("unreachable"))),S=(e,t)=>fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t||{})}).then(n=>n.json(),()=>Promise.reject(new Error("unreachable"))),r=(e,t)=>(e.details||[]).find(n=>n["@type"]===t),O=e=>{var t;return((t=r(e,"BadRequest"))==null?void 0:t.field_violations)||[]},_=e=>{var o,a;const t=r(e,"BadRequest");if(t&&t.field_violations)return t.field_violations.map(i=>i.description);const n=(a=(o=r(e,"ErrorInfo"))==null?void 0:o.metadata)==null?void 0:a.detail;return[n?String(n):e.message]},h=e=>{var t;return((t=r(e,"ErrorInfo"))==null?void 0:t.reason)||""},A=e=>fetch("/api/handoff?"+new URLSearchParams(e)).then(t=>t.ok?t.text():Promise.reject(new Error(String(t.status)))),y=e=>typeof e=="string"&&/^https:\/\//.test(e)?e:"",f="No workspace configured. Open Settings.",N=e=>e!=="",P=(e,t,n)=>e.some(o=>o.id===t&&o.open_moves!==n)?e.map(o=>o.id===t?{...o,open_moves:n}:o):e,R=(e,t)=>{const n=e.filter(s=>s.group==="you").map(s=>({row:s,handled:!!s.handled})).sort((s,d)=>s.row.rank-d.row.rank||String(s.row.updated).localeCompare(String(d.row.updated))),o=n.filter(s=>!s.handled).length,a=t==="handled";return{rows:n.filter(s=>s.handled===a),open:o,handled:n.length-o}},c=e=>String(e.status_since||e.updated),v=e=>e.filter(t=>t.group==="done").sort((t,n)=>c(n).localeCompare(c(t))).slice(0,15),D=e=>e.filter(t=>t.group==="others").sort((t,n)=>String(n.updated).localeCompare(String(t.updated))),g=e=>!e.ticket_url&&!!e.pr&&e.pr===e.key,b=e=>e.some(t=>t.pr&&!g(t)),k=e=>e==="failing"?"bad":e==="running"?"warn":e==="passing"?"ok":"",u={code_review:"info",qa:"info",on_hold:"hold"},U=e=>u[e||""]||"",C=e=>({open:"info",done:"ok",dropped:"warn"})[e||""]||"info",L=(e,t,n=1)=>e.filter(o=>o>t+n).length,p="unreachable",l="The local server is not answering",m=l+"; try again once it is back.",I=l+"; your text is kept.",E={NO_WORKSPACE:f,NOT_CONFIGURED:"The maintainer's tracker is not connected on this machine, so nothing can be sent from here.",UPSTREAM_FAILED:"The tracker did not answer; try again in a minute.",RATE_LIMITED:"The source is rate-limited; the monitor backs off.",OPEN_TOO_SOON:"The app window is already opening; give it a few seconds.",UPDATE_IN_PROGRESS:"An update is already installing; the monitor restarts when it is done.",UPDATE_UNAVAILABLE:"There is no update to install right now.",INTERNAL:"The local server failed; see its log."},T=(e,t="Not saved")=>E[h(e)]||t+": "+(e.message||"the server refused the change."),j=(e,{refused:t="Not saved",unreachable:n=m}={})=>{if(e instanceof Error)return e.message===p?n:t+": "+e.message;if(!e||typeof e!="object"||Array.isArray(e))return"";const o=e.error;return o?T(o,t):""},B=e=>{const t=Math.round((Date.now()-new Date(e).getTime())/6e4);return isFinite(t)?t<1?"now":t<60?t+"m ago":t<2880?Math.round(t/60)+"h ago":new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric"}):""},M=e=>{const t=(Date.now()-new Date(e??"").getTime())/36e5;return!isFinite(t)||t<0?{text:"",old:!1,hours:0}:{text:t<1?"<1h":t<48?Math.floor(t)+"h":Math.floor(t/24)+"d",old:t>=24,hours:t}},x=e=>e?new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"",W=(e,t)=>t?`${e}--${t}`:"";export{l as S,I as T,N as a,j as b,B as c,k as d,T as e,U as f,w as g,A as h,g as i,x as j,v as k,M as l,W as m,L as n,b as o,S as p,D as q,h as r,y as s,C as t,_ as u,O as v,P as w,R as y};
@@ -1 +0,0 @@
1
- .rail[data-v-58c52f35]{position:fixed;inset:0 auto 0 0;z-index:30;box-sizing:border-box;display:flex;flex-direction:column;gap:4px;width:60px;padding:12px 8px;overflow:hidden;border-right:1px solid var(--glass-edge);background:rgb(var(--glass),.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-family:var(--md-font);color:var(--md-on-surface);transition:width .18s ease,box-shadow .18s ease}.rail[data-v-58c52f35]:hover,.rail[data-v-58c52f35]:has(:focus-visible){width:232px;box-shadow:12px 0 32px #0000001f}.app:has(.modal) .rail[data-v-58c52f35]{z-index:0}.rail__item[data-v-58c52f35]{position:relative;display:flex;align-items:center;gap:12px;height:44px;padding:0 4px;border-radius:12px;color:inherit;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.rail__item[data-v-58c52f35]:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.rail__item--dragging[data-v-58c52f35]{opacity:.4}.rail__item[data-drop=before][data-v-58c52f35]{box-shadow:0 -2px 0 0 var(--md-primary)}.rail__item[data-drop=after][data-v-58c52f35]{box-shadow:0 2px 0 0 var(--md-primary)}.rail__item[data-v-58c52f35]:hover{background:var(--state-hover)}.rail__item[aria-selected=true][data-v-58c52f35]{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.rail__icon[data-v-58c52f35]{flex:none;display:block;width:36px;height:36px;border-radius:10px}.rail__gear[data-v-58c52f35]{flex:none;display:grid;place-items:center;width:36px;height:36px;color:var(--md-on-surface-variant)}.rail__label[data-v-58c52f35]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:14px;font-weight:500;opacity:0;transition:opacity .12s ease}.rail:hover .rail__label[data-v-58c52f35],.rail:has(:focus-visible) .rail__label[data-v-58c52f35]{opacity:1}.rail__badge[data-v-58c52f35]{position:absolute;top:2px;left:30px;box-sizing:border-box;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--md-primary);color:var(--md-on-primary);font-size:10px;font-weight:700;line-height:18px;text-align:center}.rail:hover .rail__badge[data-v-58c52f35],.rail:has(:focus-visible) .rail__badge[data-v-58c52f35]{position:static;flex:none}.rail__warn[data-v-58c52f35]{position:absolute;left:26px;top:26px;display:grid;place-items:center;width:14px;height:14px;border-radius:50%;background:var(--md-error);color:var(--md-on-error);font-size:10px;font-weight:800;line-height:1}.rail__spacer[data-v-58c52f35]{flex:1}.ai-button[data-v-46197bdc]{position:relative;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;cursor:pointer;color:var(--md-primary);background:rgb(var(--md-state),.06);vertical-align:middle;transition:background .12s ease,transform .12s ease}.ai-button__icon[data-v-46197bdc]{width:15px;height:15px}.ai-button__badge[data-v-46197bdc]{position:absolute;right:-3px;top:-3px;width:12px;height:12px}.ai-button[data-v-46197bdc]:hover{background:var(--md-secondary-container);transform:scale(1.08)}.ai-button[data-v-46197bdc]:focus-visible{outline:var(--focus-ring);outline-offset:1px}.ai-button.ai-button--sent[data-v-46197bdc]{background:var(--md-tertiary-container);color:var(--md-on-tertiary-container)}.ai-button.ai-button--failed[data-v-46197bdc]{background:var(--md-error-container);color:var(--md-on-error-container)}.ai-button--big[data-v-46197bdc]{width:32px;height:32px;background:rgb(var(--glass),.7)}.ai-button--big .ai-button__icon[data-v-46197bdc]{width:18px;height:18px}.update-chip[data-v-c36ae07d]{display:inline-flex;gap:8px;align-items:center;height:26px;padding:0 12px;font:inherit;color:var(--md-on-primary-container);white-space:nowrap;cursor:pointer;background:var(--md-primary-container);border:0;border-radius:var(--md-r-chip)}.update-chip--busy[data-v-c36ae07d],.update-chip--done[data-v-c36ae07d]{cursor:default}.update-chip--ready[data-v-c36ae07d]{color:var(--md-on-primary);background:var(--md-primary)}.update-chip--failed[data-v-c36ae07d]{color:var(--md-on-error-container);background:var(--md-error-container)}.update-chip__spinner[data-v-c36ae07d]{width:12px;height:12px;border:2px solid currentcolor;border-top-color:transparent;border-radius:50%;animation:update-chip-spin-c36ae07d .9s linear infinite}@media(prefers-reduced-motion:reduce){.update-chip__spinner[data-v-c36ae07d]{animation:none}}.update-chip__link[data-v-c36ae07d]{padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer;background:none;border:0}@keyframes update-chip-spin-c36ae07d{to{transform:rotate(360deg)}}.status-bar[data-v-1a4ce564]{display:flex;align-items:center;gap:10px;margin:0 4px 8px;font-family:var(--md-font);font-size:12px;color:var(--md-on-surface-variant)}.status-bar__btn[data-v-1a4ce564]{height:26px;padding:0 12px;font-size:12px;text-decoration:none}.status-bar__btn--busy[data-v-1a4ce564]{opacity:.6;pointer-events:none}.status-bar__report[data-v-1a4ce564]{gap:6px}.status-bar__icon[data-v-1a4ce564]{width:16px;height:16px}.status-bar__live[data-v-1a4ce564]{width:8px;height:8px;border-radius:50%;background:var(--live-on);box-shadow:0 0 0 0 var(--live-pulse-rest);animation:status-bar-pulse-1a4ce564 2s infinite}.status-bar__live--off[data-v-1a4ce564]{background:var(--live-off);animation:none}.status-bar__live--warn[data-v-1a4ce564]{background:var(--live-warn);animation:none}.status-bar__notice[data-v-1a4ce564]{color:var(--live-off)}.status-bar__ai-hint[data-v-1a4ce564]{margin-left:-4px}@keyframes status-bar-pulse-1a4ce564{0%{box-shadow:0 0 0 0 var(--live-pulse-from)}70%{box-shadow:0 0 0 8px var(--live-pulse-to)}to{box-shadow:0 0 0 0 var(--live-pulse-to)}}@media(prefers-reduced-motion:reduce){.status-bar__live[data-v-1a4ce564]{animation:none}}.workspace-header[data-v-3421a7f0]{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,2fr) 32px;gap:8px;padding:8px;background:linear-gradient(135deg,var(--blob-1),var(--blob-2));color:var(--header-ink, var(--md-on-primary-container))}@media(prefers-reduced-transparency:reduce){.workspace-header[data-v-3421a7f0]{background:var(--md-s-low)}}.workspace-header__title[data-v-3421a7f0]{display:grid;align-content:center;gap:4px;padding:12px 16px}.workspace-header__name[data-v-3421a7f0]{margin:0;font-size:28px;font-weight:400;line-height:36px;color:var(--md-on-primary-container)}.workspace-header__line[data-v-3421a7f0]{margin:0;font-size:14px;opacity:.85}.workspace-header__count[data-v-3421a7f0]{font-weight:700;font-variant-numeric:tabular-nums}.workspace-header__give[data-v-3421a7f0]{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:8px;white-space:nowrap}.workspace-header__links[data-v-3421a7f0]{display:inline-flex;gap:6px}.workspace-header__links a[data-v-3421a7f0]{display:inline-flex;align-items:center;height:24px;padding:0 10px;border:1px solid var(--glass-edge);border-radius:999px;background:rgb(var(--glass),.55);color:inherit;font-size:12px;font-weight:500}.workspace-header__links a[data-v-3421a7f0]:hover{background:rgb(var(--glass),.85)}.workspace-header__fold[data-v-3421a7f0]{grid-row:1;grid-column:3;place-self:center center;margin:0;color:inherit}.workspace-header__tiles[data-v-3421a7f0]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.workspace-header__tile[data-v-3421a7f0]{display:grid;align-content:start;gap:4px;padding:12px 16px;border:1px solid var(--glass-edge);border-radius:var(--md-r-card);background:rgb(var(--glass),calc(var(--glass-a) + .1));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--md-on-surface)}@media(prefers-reduced-transparency:reduce){.workspace-header__tile[data-v-3421a7f0]{background:var(--md-s-low);-webkit-backdrop-filter:none;backdrop-filter:none}}.workspace-header__tile-label[data-v-3421a7f0]{color:var(--md-on-surface-variant);font-size:12px;font-weight:500;line-height:16px;letter-spacing:.03em}.workspace-header__tile-value[data-v-3421a7f0]{min-height:40px;font-size:32px;font-weight:400;line-height:40px;font-variant-numeric:tabular-nums}.workspace-header__tile--you[data-v-3421a7f0]{border-color:transparent;background:var(--md-primary);color:var(--md-on-primary)}.workspace-header__tile--you .workspace-header__tile-label[data-v-3421a7f0]{color:var(--md-on-primary);opacity:.85}.workspace-header__tile--fail .workspace-header__tile-value[data-v-3421a7f0]{color:var(--md-error)}.workspace-header--collapsed[data-v-3421a7f0]{grid-template-columns:minmax(0,1fr) 32px;padding:4px 8px}.workspace-header--collapsed .workspace-header__title[data-v-3421a7f0]{display:flex;flex-wrap:wrap;align-items:baseline;gap:14px;padding:4px 8px}.workspace-header--collapsed .workspace-header__name[data-v-3421a7f0]{font-size:18px;line-height:28px}.workspace-header--collapsed .workspace-header__tiles[data-v-3421a7f0],.workspace-header--collapsed .workspace-header__give[data-v-3421a7f0]{display:none}.workspace-header--collapsed .workspace-header__fold[data-v-3421a7f0]{grid-column:2}.workspace-header--collapsed .workspace-header__strip[data-v-3421a7f0]{font-size:13px}@media(max-width:900px){.workspace-header[data-v-3421a7f0],.workspace-header--collapsed[data-v-3421a7f0]{grid-template-columns:minmax(0,1fr) 32px}.workspace-header__fold[data-v-3421a7f0]{grid-column:2}.workspace-header__tiles[data-v-3421a7f0]{grid-column:1 / -1}}@media(max-width:640px){.workspace-header__tiles[data-v-3421a7f0]{grid-template-columns:repeat(2,minmax(0,1fr))}}.chevron[data-v-a14fa9ba]{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;color:var(--md-on-surface-variant);cursor:pointer;-webkit-user-select:none;user-select:none}.chevron[data-v-a14fa9ba]:before{content:"";width:7px;height:7px;border-right:2px solid currentcolor;border-bottom:2px solid currentcolor;transform:translate(-1px) rotate(-45deg);transition:transform .15s ease}.chevron--open[data-v-a14fa9ba]:before{transform:translateY(-2px) rotate(45deg)}.chevron[data-v-a14fa9ba]:hover{background:var(--state-hover)}.chevron[data-v-a14fa9ba]:focus-visible{outline:var(--focus-ring)}.resize-handle[data-v-8e637688]{position:absolute;z-index:2;touch-action:none;border-radius:4px}.resize-handle[data-v-8e637688]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;border-radius:2px;background:var(--md-outline-variant);opacity:0;transition:opacity .15s ease}.resize-handle[data-v-8e637688]:hover:after,.resize-handle[data-v-8e637688]:focus-visible:after{opacity:1}.resize-handle[data-v-8e637688]:focus-visible{outline:var(--focus-ring)}.resize-handle--y[data-v-8e637688]{right:0;bottom:0;left:0;height:10px;cursor:row-resize}.resize-handle--y.resize-handle--top[data-v-8e637688]{top:0;bottom:auto}.resize-handle--y[data-v-8e637688]:after{width:40px;height:4px}.resize-handle--x[data-v-8e637688]{top:0;bottom:0;left:0;width:10px;cursor:col-resize}.resize-handle--x[data-v-8e637688]:after{width:4px;height:40px}@media(max-width:900px){.resize-handle[data-v-8e637688]{display:none}}.island__head[data-v-3605428a]{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 20px 12px 12px}.island__title[data-v-3605428a]{flex:none;margin:0;font-size:16px;line-height:24px;font-weight:500;letter-spacing:.01em;white-space:nowrap}.island__note[data-v-3605428a]{display:flex;flex:1 1 auto;align-items:center;justify-content:flex-end;gap:6px;min-width:0;margin:0;overflow:visible;color:var(--md-on-surface-variant);font-size:12px;line-height:16px;letter-spacing:.03em;text-align:right;white-space:nowrap;text-overflow:ellipsis}.island__note-text[data-v-3605428a]{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.island__body[data-v-3605428a]{padding:0 20px 12px}.island--column .island__head[data-v-3605428a]{gap:4px}.island--column .island__body[data-v-3605428a]{display:flex;flex-direction:column;min-height:0;padding-top:4px}.island.island--collapsed .island__body[data-v-3605428a]{display:none}@media(min-width:901px){.dashboard--fit .dashboard__main .island__body[data-v-3605428a]{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;padding-bottom:0}.dashboard--fit .dashboard__main .island.island--collapsed .island__body[data-v-3605428a]{display:none}}.segmented[data-v-201d5e2f]{display:inline-flex;overflow:hidden;border:1px solid var(--md-outline);border-radius:999px;vertical-align:middle}.segmented--chips[data-v-201d5e2f]{flex:none;align-self:flex-start;background:rgb(var(--glass),.4)}.segmented__option[data-v-201d5e2f]{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 11px;border-left:1px solid var(--md-outline);font-size:12px;font-weight:500;color:var(--md-on-surface);cursor:pointer;-webkit-user-select:none;user-select:none}.segmented__option[data-v-201d5e2f]:first-child{border-left:0}.segmented__option[aria-pressed=true][data-v-201d5e2f]{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.segmented__option[data-v-201d5e2f]:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.segmented--chips .segmented__option[data-v-201d5e2f]{gap:normal;height:32px;padding:0 14px;font-family:var(--md-font);font-size:14px;letter-spacing:.01em}.segmented--chips .segmented__option[data-v-201d5e2f]:hover{background:var(--state-hover)}.segmented--chips .segmented__option[aria-pressed=true][data-v-201d5e2f]{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.ticket-cell__summary[data-v-e2d11a0b]{display:block;max-width:44ch;margin-top:2px;color:var(--md-on-surface-variant);font-size:12px;line-height:16px;letter-spacing:.03em}.pr-cell[data-v-6078ccbd]{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.pr-cell__link[data-v-6078ccbd]{max-width:100%;overflow-wrap:anywhere}.recently-done[data-v-68a4b78e]{position:relative;display:flex;flex:0 1 auto;flex-direction:column;min-height:33px;margin:0 -20px;padding:0 20px;overflow:hidden;border-top:1px solid var(--md-outline-variant)}.recently-done[open][data-v-68a4b78e]{min-height:128px}.recently-done__summary[data-v-68a4b78e]{display:flex;flex:none;align-items:center;gap:4px;min-height:40px;list-style:none;color:var(--md-on-surface-variant);font-size:14px;font-weight:500;cursor:pointer}.recently-done__summary[data-v-68a4b78e]::-webkit-details-marker{display:none}.recently-done__list[data-v-68a4b78e]{flex:1 1 auto;min-height:0;max-height:min(30vh,240px);margin:0 -20px;padding-bottom:8px;overflow:auto}.row-scroll[data-v-263b2407]{overflow-x:auto;margin:0 -20px}@media(min-width:901px){.dashboard--fit .dashboard__main .row-scroll[data-v-263b2407]{flex:1 1 auto;min-height:0;overflow:auto}.dashboard--fit .row-scroll[data-v-263b2407]::-webkit-scrollbar{width:8px;height:8px}.dashboard--fit .row-scroll[data-v-263b2407]::-webkit-scrollbar-thumb{border-radius:4px;background:var(--md-outline-variant)}}.dashboard--fit .dashboard__main .row-scroll--floor[data-v-263b2407]{min-height:5rem}.row-scroll__more[data-v-263b2407]{flex:none;display:block;margin:0 -20px;padding:4px 20px 6px;border-top:1px solid var(--md-outline-variant);color:var(--md-primary);font-size:13px;font-weight:500;cursor:pointer}.row-scroll__more[data-v-263b2407]:hover{background:rgb(var(--md-state),.06)}.row-scroll__more[data-v-263b2407]:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.your-move__undo[data-v-a331a3e6]{margin:0;padding:4px 0;color:var(--md-on-surface-variant);font-size:13px}.your-move__undo-btn[data-v-a331a3e6]{color:var(--md-primary);font-weight:500;cursor:pointer}.your-move__view[data-v-a331a3e6]{margin-left:10px}.your-move__next[data-v-a331a3e6]{font-weight:500}.your-move__quote[data-v-a331a3e6]{max-width:48ch;color:var(--md-on-surface-variant);font-size:12px;line-height:16px}.your-move__quote a[data-v-a331a3e6]{color:var(--md-on-surface-variant)}.your-move__problem[data-v-a331a3e6]{margin:4px 0 0;padding:4px 10px;font-size:12px}.your-move__mark[data-v-a331a3e6]{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--md-outline);border-radius:999px;color:var(--md-on-surface);font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.your-move__mark[data-v-a331a3e6]:hover{background:var(--state-hover)}.your-move__mark[data-v-a331a3e6]:before{content:"";width:9px;height:5px;border-bottom:2px solid currentcolor;border-left:2px solid currentcolor;transform:translateY(-2px) rotate(-45deg)}.your-move__mark--undo[data-v-a331a3e6]:before{display:none}.your-move__mark[data-v-a331a3e6]:focus-visible{outline:var(--focus-ring);outline-offset:2px}.your-move__row--handled td[data-v-a331a3e6]{opacity:.55}.your-move__row--handled .your-move__next[data-v-a331a3e6]{text-decoration:line-through;text-decoration-color:var(--md-outline)}.your-move__row--handled .table__actions[data-v-a331a3e6]{opacity:1}.todos__view[data-v-6dbdbb66]{margin-left:10px}.todos__add[data-v-6dbdbb66]{display:flex;align-items:center;gap:8px;padding:8px 0}.todos__input[data-v-6dbdbb66]{flex:1;min-width:0;height:32px;padding:0 12px;background:rgb(var(--md-state),.04);font-size:14px}.todos__list[data-v-6dbdbb66]{margin:0 -20px;padding:0;overflow-y:auto;list-style:none}.todos__item[data-v-6dbdbb66]{display:grid;grid-template-columns:20px minmax(0,1fr) auto 20px 20px;align-items:center;gap:10px;padding:7px 20px;border-top:1px solid var(--md-outline-variant)}.todos__item[data-v-6dbdbb66]:first-child{border-top:0}.todos__item[data-v-6dbdbb66]:hover{background:rgb(var(--md-state),.06)}.todos__text[data-v-6dbdbb66]{overflow-wrap:anywhere}.todos__item--done .todos__text[data-v-6dbdbb66]{color:var(--md-on-surface-variant);text-decoration:line-through}.todos__empty[data-v-6dbdbb66]{display:block;padding:6px 20px 10px}.todos__check[data-v-6dbdbb66]{box-sizing:border-box;display:grid;place-items:center;width:18px;height:18px;border:2px solid var(--md-outline);border-radius:5px;cursor:pointer}.todos__check--on[data-v-6dbdbb66]{border-color:var(--md-primary);background:var(--md-primary)}.todos__check--on[data-v-6dbdbb66]:after{content:"";width:8px;height:4px;border-bottom:2px solid var(--md-on-primary);border-left:2px solid var(--md-on-primary);transform:translateY(-1px) rotate(-45deg)}.todos__meta[data-v-6dbdbb66]{color:var(--md-on-surface-variant);font-size:11px;white-space:nowrap}.todos__edit[data-v-6dbdbb66]{min-width:0;height:28px;padding:0 8px;font-size:14px}.todos__undo[data-v-6dbdbb66]{margin:0;padding:4px 0;color:var(--md-on-surface-variant);font-size:13px}.todos__undo-btn[data-v-6dbdbb66]{color:var(--md-primary);font-weight:500;cursor:pointer}.todos__pencil[data-v-6dbdbb66],.todos__delete[data-v-6dbdbb66]{color:var(--md-on-surface-variant);font-size:16px;line-height:1;text-align:center;cursor:pointer;opacity:0}.todos__pencil[data-v-6dbdbb66]:focus-visible,.todos__delete[data-v-6dbdbb66]:focus-visible{opacity:1}.todos__item:hover .todos__pencil[data-v-6dbdbb66],.todos__item:hover .todos__delete[data-v-6dbdbb66]{opacity:1}@media(min-width:901px){.dashboard--fit .dashboard__todo .todos__list[data-v-6dbdbb66]{flex:1 1 auto;min-height:0}.dashboard--fit .dashboard__todo .todos__list[data-v-6dbdbb66]:not(:has(.todos__item)){display:none}}.waiting__table[data-v-90e8bf77]{table-layout:fixed}.waiting__col--ticket[data-v-90e8bf77]{width:22%}.waiting__col--status[data-v-90e8bf77],.waiting__col--with[data-v-90e8bf77]{width:6.5rem}.waiting__col--pr[data-v-90e8bf77]{width:4.5rem}.waiting__col--actions[data-v-90e8bf77]{width:2rem}.waiting__reason[data-v-90e8bf77]{display:block;min-width:0;max-width:44ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-item[data-v-03f50e9f]{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:12px;padding:10px 20px;cursor:default}.feed-item[data-v-03f50e9f]:hover{background:var(--state-hover)}.feed-item.feed-item--open[data-v-03f50e9f]{background:rgb(var(--md-state),.05)}.feed-item.feed-item--new[data-v-03f50e9f]{background:var(--new-bg);box-shadow:inset 4px 0 0 var(--new),inset 0 0 0 1px var(--new-edge)}.feed-item__icon[data-v-03f50e9f]{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--md-s-highest);color:var(--md-on-surface-variant);font-size:11px;font-weight:700;letter-spacing:.02em}.feed-item__icon--jira[data-v-03f50e9f]{background:var(--md-primary-container);color:var(--md-on-primary-container)}.feed-item__icon--bad[data-v-03f50e9f]{background:var(--md-error-container);color:var(--md-on-error-container)}.feed-item__icon--ok[data-v-03f50e9f]{background:var(--md-tertiary-container);color:var(--md-on-tertiary-container)}.feed-item__body[data-v-03f50e9f]{display:grid;gap:2px;min-width:0}.feed-item__top[data-v-03f50e9f]{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:14px}.feed-item__right[data-v-03f50e9f]{flex:none;display:inline-flex;align-items:center;gap:4px;margin-left:auto}.feed-item__kind[data-v-03f50e9f]{font-weight:500}.feed-item__kind--bad[data-v-03f50e9f]{color:var(--md-error)}.feed-item__who[data-v-03f50e9f]{color:var(--md-on-surface-variant)}.feed-item__text[data-v-03f50e9f]{display:-webkit-box;overflow:hidden;color:var(--md-on-surface-variant);font-size:12px;line-height:16px;letter-spacing:.03em;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical}.feed-item__full[data-v-03f50e9f]{max-height:16rem;margin-top:6px;padding:10px 12px;overflow:auto;border:1px solid var(--glass-edge);border-radius:var(--md-r-chip);background:rgb(var(--glass),.55);color:var(--md-on-surface);font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.feed-item__actions[data-v-03f50e9f]{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.feed-item--new .feed-item__kind[data-v-03f50e9f]{color:var(--md-on-surface);font-weight:700}.feed-item--new .feed-item__text[data-v-03f50e9f]{color:var(--md-on-surface)}.feed-item--new .feed-item__icon[data-v-03f50e9f]{box-shadow:0 0 0 2px var(--new)}.feed-item--new .feed-item__when[data-v-03f50e9f]:before{content:"NEW";display:inline-block;margin-right:6px;padding:1px 6px;border-radius:4px;background:var(--new);color:var(--new-ink);font-size:10px;font-weight:800;letter-spacing:.06em;vertical-align:1px}.feed-item:not(.feed-item--new) .feed-item__body[data-v-03f50e9f]{opacity:.78}@media(max-width:1500px){.feed[data-v-ce5c36bb] .island__note-text{display:none}}.feed__undo[data-v-ce5c36bb]{margin:0 0 4px;color:var(--md-on-surface-variant);font-size:13px}.feed__undo-btn[data-v-ce5c36bb]{color:var(--md-primary);font-weight:500;cursor:pointer}.feed__bar[data-v-ce5c36bb]{display:flex;flex:none;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px}.feed__new-count[data-v-ce5c36bb]{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;background:var(--new);color:var(--new-ink);box-shadow:0 0 12px var(--new-glow);font-size:12px;font-weight:800}.feed__mark-read[data-v-ce5c36bb]{flex:none;padding:4px 8px;border-radius:999px;color:var(--md-primary);font-size:13px;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.feed__mark-read[data-v-ce5c36bb]:hover{background:var(--state-hover)}.feed__mark-read[data-v-ce5c36bb]:focus-visible{outline:var(--focus-ring)}.feed__search[data-v-ce5c36bb]{display:flex;flex:none;align-items:center;gap:8px;margin:0 0 8px}.feed__search-input[data-v-ce5c36bb]{flex:1;min-width:0;height:30px;padding:0 10px;font-size:13px}.feed__search-count[data-v-ce5c36bb]{flex:none;color:var(--md-on-surface-variant);font-size:12px}.feed__list[data-v-ce5c36bb]{flex:1 1 auto;min-height:12rem;margin:0 -20px;padding:0 0 4px;overflow-y:auto;list-style:none}.feed__group[data-v-ce5c36bb]{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:0;padding:0;cursor:default}.feed__group[data-v-ce5c36bb]:hover{background:var(--state-hover)}.feed__group.feed__group--open[data-v-ce5c36bb]{background:rgb(var(--md-state),.05)}.feed__group.feed__group--new[data-v-ce5c36bb]{background:var(--new-bg);box-shadow:inset 4px 0 0 var(--new),inset 0 0 0 1px var(--new-edge)}.feed__group-head[data-v-ce5c36bb]{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 20px;cursor:pointer}.feed__group-copy[data-v-ce5c36bb]{opacity:.55}.feed__group-head:hover .feed__group-copy[data-v-ce5c36bb]{opacity:1}.feed__group-head[data-v-ce5c36bb]:hover{background:var(--state-hover)}.feed__group--new>.feed__group-head[data-v-ce5c36bb]{background:var(--new-bg);box-shadow:inset 4px 0 0 var(--new)}.feed__group--move[data-v-ce5c36bb],.feed__group--move>.feed__group-head[data-v-ce5c36bb]{box-shadow:inset 4px 0 0 var(--move)}.feed__group.feed__group--new.feed__group--move[data-v-ce5c36bb]{box-shadow:inset 4px 0 0 var(--move),inset 0 0 0 1px var(--new-edge)}.feed__group-text[data-v-ce5c36bb]{min-width:0}.feed__group-key[data-v-ce5c36bb]{display:flex;align-items:baseline;gap:8px;font-size:14px}.feed__group-ticket[data-v-ce5c36bb]{flex:none;font-weight:600}.feed__group-sum[data-v-ce5c36bb]{overflow:hidden;color:var(--md-on-surface-variant);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.feed__group-meta[data-v-ce5c36bb]{display:flex;align-items:center;gap:8px;margin-top:2px;color:var(--md-on-surface-variant);font-size:12px}.feed__group-kinds[data-v-ce5c36bb]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed__group-when[data-v-ce5c36bb]{margin-left:auto}.feed__group-count[data-v-ce5c36bb]{flex:none;display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:999px;background:var(--md-s-highest);color:var(--md-on-surface-variant);font-size:11px;font-weight:700}.feed__group-count--new[data-v-ce5c36bb]{background:var(--new);color:var(--new-ink)}.feed__children[data-v-ce5c36bb]{margin:0 0 0 31px;padding:0 0 4px;border-left:2px solid var(--md-outline-variant);list-style:none}.feed__children .feed-item[data-v-ce5c36bb]{padding-left:14px}@media(min-width:901px){.dashboard--fit .feed__list[data-v-ce5c36bb]::-webkit-scrollbar{width:8px;height:8px}.dashboard--fit .feed__list[data-v-ce5c36bb]::-webkit-scrollbar-thumb{border-radius:4px;background:var(--md-outline-variant)}}@media(max-width:900px){.feed__list[data-v-ce5c36bb]{max-height:28rem}}.first-run[data-v-84359c2d]{display:grid;place-self:start center;gap:14px;width:min(640px,100%);padding:28px 32px}.first-run__title[data-v-84359c2d]{margin:0;font-size:22px;font-weight:400;line-height:28px}.first-run__text[data-v-84359c2d]{margin:0;color:var(--md-on-surface-variant)}.first-run__actions[data-v-84359c2d]{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.first-run__ai[data-v-84359c2d]{font-size:13px}.markdown-view[data-v-dcf42e95]{padding:16px 20px 20px;overflow:auto;overflow-wrap:anywhere;font-size:14px;line-height:1.6}.markdown-view[data-v-dcf42e95] h4,.markdown-view[data-v-dcf42e95] h5{margin:16px 0 6px;font-weight:600}.markdown-view[data-v-dcf42e95] h4{font-size:16px}.markdown-view[data-v-dcf42e95] h5{font-size:14px}.markdown-view[data-v-dcf42e95] p{margin:0 0 10px}.markdown-view[data-v-dcf42e95] ul,.markdown-view[data-v-dcf42e95] ol{margin:0 0 10px;padding-left:22px}.markdown-view[data-v-dcf42e95] li{margin:2px 0}.markdown-view[data-v-dcf42e95] code{padding:1px 5px;border-radius:4px;background:rgb(var(--md-state),.1);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.markdown-view[data-v-dcf42e95] pre{margin:0 0 12px;padding:12px 14px;overflow:auto;border-radius:8px;background:#00000047}.markdown-view[data-v-dcf42e95] pre code{padding:0;background:none;font-size:12.5px;line-height:1.5;white-space:pre}.markdown-view[data-v-dcf42e95] blockquote{margin:0 0 10px;padding:4px 12px;border-left:3px solid var(--md-primary);color:var(--md-on-surface-variant)}.markdown-view[data-v-dcf42e95] strong{font-weight:600}.markdown-view[data-v-dcf42e95] .markdown-view__mention{color:var(--md-primary);font-weight:500}.feedback-sheet__card[data-v-8e2792d9]{width:min(640px,100%)}.feedback-sheet__text[data-v-8e2792d9]{min-height:7rem;resize:vertical}.feedback-sheet__note[data-v-8e2792d9]{margin:0;color:var(--md-on-surface-variant);font-size:12px}.feedback-sheet__report[data-v-8e2792d9]{display:flex;align-items:baseline;gap:8px;padding:4px 0;border-top:1px solid var(--md-outline-variant);font-size:13px}.feedback-sheet__report-title[data-v-8e2792d9]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-row[data-v-33714840]{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:center;gap:4px 14px}.field-row__label[data-v-33714840]{color:var(--md-on-surface);font-size:13px}.field-row__hint[data-v-33714840]{grid-column:2;color:var(--md-on-surface-variant);font-size:11px}.field-row__error[data-v-33714840]{grid-column:2;color:var(--md-error);font-size:12px}.field-row__check[data-v-33714840]{display:flex;align-items:center;gap:8px;color:var(--md-on-surface-variant);font-size:11px}.field-row__colour[data-v-33714840]{width:44px;height:30px;padding:2px}.field-row__inline[data-v-33714840]{display:flex;align-items:center;gap:8px}.settings-sheet__card[data-v-649d0735]{width:min(1040px,100%);height:min(760px,100%)}.settings-sheet__dirty[data-v-649d0735]{color:var(--md-error);font-size:12px;font-weight:600}.settings-sheet__confirm[data-v-649d0735]{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 20px 0;padding:8px 12px;border-radius:10px;background:var(--md-warn-container);color:var(--md-on-warn-container);font-size:13px}.settings-sheet__confirm-text[data-v-649d0735]{flex:1}.settings-sheet__alert[data-v-649d0735]{margin:12px 20px 0}.settings-sheet__body[data-v-649d0735]{display:grid;flex:1;grid-template-columns:220px minmax(0,1fr);gap:0;min-height:0}.settings-sheet__list[data-v-649d0735]{display:flex;flex-direction:column;gap:4px;margin:0;padding:12px;overflow:auto;border-right:1px solid var(--md-outline-variant);list-style:none}.settings-sheet__workspace[data-v-649d0735]{box-sizing:border-box;display:block;width:100%;padding:8px 12px;overflow:hidden;border-radius:10px;font-size:14px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.settings-sheet__workspace[data-v-649d0735]:hover{background:var(--state-hover)}.settings-sheet__workspace[aria-current=true][data-v-649d0735]{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.settings-sheet__workspace[data-v-649d0735]:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.settings-sheet__workspace--add[data-v-649d0735]{color:var(--md-primary);font-weight:500}.settings-sheet__connector[data-v-649d0735]{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid var(--md-outline-variant);border-radius:12px;background:rgb(var(--glass),.35)}.settings-sheet__connector-head[data-v-649d0735]{display:flex;align-items:center;gap:10px}.settings-sheet__connector-name[data-v-649d0735]{flex:1;font-weight:600}.settings-sheet__actions[data-v-649d0735]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.settings-sheet__rules[data-v-649d0735]{display:flex;flex-direction:column;gap:6px;margin:0;padding:0 0 0 28px;font-size:13px}.settings-sheet__rule[data-v-649d0735]{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:12px;padding:4px 0;border-bottom:1px solid var(--md-outline-variant)}.settings-sheet__rule-when[data-v-649d0735]{color:var(--md-on-surface-variant);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;overflow-wrap:anywhere}.settings-sheet__rule-then[data-v-649d0735]{overflow-wrap:anywhere}.settings-sheet__rules-note[data-v-649d0735]{margin:0;color:var(--md-on-surface-variant)}.settings-sheet__rules-warning[data-v-649d0735]{margin:0;padding:6px 10px;border-radius:8px;background:var(--md-warn-container);color:var(--md-on-warn-container)}.app__shell[data-v-6bc064de]{box-sizing:border-box;display:flex;flex-direction:column;height:100%;padding:12px 12px 12px 72px}.app__shell>.dashboard[data-v-6bc064de]{flex:1 1 auto;min-height:0}@media(min-width:901px){.app__shell>.dashboard.dashboard--fit[data-v-6bc064de]{height:auto}}@media(max-width:900px){.app__shell[data-v-6bc064de]{height:auto}}
@@ -1,3 +0,0 @@
1
- import{w as Q,t as nt,r as ot,s as xs,c as x,n as ye,a as gt,d as j,o as l,b as i,F as W,e as L,f as ee,u as p,g as q,h as a,i as v,j as S,k as B,_ as K,l as at,m as J,p as U,q as Y,v as $s,x as Ve,y as Ee,z as Je,A as Pt,B as Ze,C as oe,D as Ss,E as ze,G as fe,H as Ie,I as Cs,J as Rs}from"./_plugin-vue_export-helper-BxUUR8De.js";import{s as Ts,m as lt,u as Bt,a as Ut,r as Vt,p as As,b as Ms,i as yt,l as Ht,c as Es,M as te,d as Ae,e as Se,f as zs,g as He,h as ke,j as Is,k as we,n as Os,o as Ds,q as Ps,t as rt,v as Bs,w as Us,x as Vs,y as Hs,z as kt,A as Ws}from"./scheme-BtoCLyX6.js";import{g as We,r as Fs,a as qs,e as Ns,w as Wt,p as ie,b as re,T as Qe,S as Oe,c as le,h as js,s as it,i as Ft,m as be,d as Ls,f as qt,j as ct,k as Ys,l as ut,n as Ks,y as Xs,o as Nt,q as Gs,t as Js,u as jt,v as Zs}from"./bem-HybmjowO.js";const ve=Ts(Vt),wt=(e,t)=>{const s=te,o=new Float32Array(s*s);for(let r=0;r<o.length;r+=1)o[r]=e[r]===t?1e6:0;const n=(r,u,c)=>{o[u]+c<o[r]&&(o[r]=o[u]+c)};for(let r=0;r<s;r+=1)for(let u=0;u<s;u+=1){const c=r*s+u;u>0&&n(c,c-1,1),r>0&&n(c,c-s,1),u>0&&r>0&&n(c,c-s-1,Math.SQRT2),u<s-1&&r>0&&n(c,c-s+1,Math.SQRT2)}for(let r=s-1;r>=0;r-=1)for(let u=s-1;u>=0;u-=1){const c=r*s+u;u<s-1&&n(c,c+1,1),r<s-1&&n(c,c+s,1),u<s-1&&r<s-1&&n(c,c+s+1,Math.SQRT2),u>0&&r<s-1&&n(c,c+s-1,Math.SQRT2)}return o},Ye=e=>{const t=String(e||"").trim(),s=/^#([0-9a-f]{6})$/i.exec(t);if(s)return[0,2,4].map(n=>parseInt(s[1].slice(n,n+2),16));const o=t.match(/[\d.]+/g);return o&&o.length>=3?o.slice(0,3).map(Number):null},Qs=e=>{const t=getComputedStyle(e),s=Ye(t.getPropertyValue("--md-primary"))||[44,86,151],o=Ye(t.getPropertyValue("--md-on-primary-container"))||s;return{core:yt()?s:s.map((n,r)=>Ht(n,o[r],.35)),rim:Ye(t.getPropertyValue("--blob-3"))||[23,223,220],strength:yt()?.9:1}},en=(e,t,s)=>({size:e.range(.85,1.05)*Math.min(t,s),right:e.chance(.4),bottom:e.chance(.7),overflowX:e.range(-.02,.06),overflowY:e.range(-.02,.04)}),tn=e=>{const t={minX:te,maxX:0,minY:te,maxY:0};for(let o=0;o<e.length;o+=1)if(e[o]){const n=o%te,r=Math.floor(o/te);t.minX=Math.min(t.minX,n),t.maxX=Math.max(t.maxX,n),t.minY=Math.min(t.minY,r),t.maxY=Math.max(t.maxY,r)}const s=o=>(o-te/2)/Ae;return{minX:s(t.minX),maxX:s(t.maxX),minY:s(t.minY),maxY:s(t.maxY)}},sn=(e,t,s,o)=>{const n=t.maxX-t.minX,r=t.maxY-t.minY,u=Math.min(e.size,2*s*.95/n,2*o*.98/r),c=u/2,_=-e.overflowX*u,h=-e.overflowY*u;return{size:u,centerX:e.right?s-_-t.maxX*c:_-t.minX*c,centerY:e.bottom?o-h-t.maxY*c:h-t.minY*c}},nn=(e,t,s)=>"rgba("+e.core.map((n,r)=>Math.round(Ht(n,e.rim[r],t))).join(",")+","+s.toFixed(3)+")",on=(e,t,s)=>{const o=[],n=t.size/62,r=t.size/2/Ae,u=t.size*zs/4,c=n*.866;for(let _=0,h=t.centerY-u;h<t.centerY+u;_+=1,h+=c)for(let d=t.centerX-u+_%2*n/2;d<t.centerX+u;d+=n){const f=d+e.range(-.3,.3)*n,b=h+e.range(-.3,.3)*n,k=Math.floor((f-t.centerX)/r+te/2),I=Math.floor((b-t.centerY)/r+te/2);if(k<0||I<0||k>=te||I>=te)continue;const w=I*te+k,y=e.next(),g=e.range(.75,1.25),$=e.range(-.15,.15);if(s.inside[w]){const A=s.depth[w]/Ae,P=Se(A/.035),X=Se(A/.3);if(y>.5+.5*P)continue;o.push({x:f,y:b,radius:n*.5*(.45+.55*P)*(.95+.3*X)*g,alpha:.5+.25*P+.25*X,tint:Se(.65-.65*X+$)})}else{const A=s.gap[w]/Ae;if(y>.14*Math.exp(-A/.05)+.004)continue;o.push({x:f,y:b,radius:n*e.range(.1,.24),alpha:.35,tint:Se(.8+$)})}}return o},an=()=>document.getElementById("wt"),ln=()=>document.getElementById("backdrop"),Lt=()=>Math.floor(Math.random()*4294967296),Ce={},H={workspace:"",seed:Lt(),species:"",wantedSpecies:"",wantedPose:"",built:null},rn=(e,t)=>{const s=Es(H.seed),o=ve[Math.floor(s.next()*ve.length)];H.species=ve.includes(H.wantedSpecies)?H.wantedSpecies:o;const n=en(s,e,t),r={facing:n.right?-1:1,tilt:s.range(-.07,.07),stretchX:s.range(.92,1.08),stretchY:s.range(.92,1.08)};s.chance(.25)&&(r.facing=-r.facing);const u=As(Ms(Vt,H.species,s,{pose:H.wantedPose}).shapes,r),c={inside:u,depth:wt(u,1),gap:wt(u,0)},_=sn(n,tn(u),e,t);return{key:H.seed+":"+H.species+":"+e+"x"+t,dots:on(s,_,c)}},De=()=>{const e=ln();if(!e)return;const t=e.clientWidth,s=e.clientHeight,o=window.devicePixelRatio||1,n=Math.round(t*o),r=Math.round(s*o);(e.width!==n||e.height!==r)&&(e.width=n,e.height=r);const u=e.getContext("2d");if(!u||(u.setTransform(o,0,0,o,0,0),u.clearRect(0,0,t,s),!t||!s))return;const c=H.seed+":"+(H.wantedSpecies||"?")+":"+t+"x"+s;(!H.built||H.built.key.split(":")[0]!==String(H.seed)||!H.built.key.endsWith(t+"x"+s)||H.wantedSpecies&&H.species!==H.wantedSpecies)&&(H.built=rn(t,s));const _=an();if(!_)return c;const h=Qs(_);return H.built.dots.forEach(d=>{u.fillStyle=nn(h,d.tint,d.alpha*h.strength),u.beginPath(),u.arc(d.x,d.y,d.radius,0,Math.PI*2),u.fill()}),c};window.whoseTurnBackdrop={species:ve.slice(),seeded:lt,get current(){return{workspace:H.workspace,species:H.species,seed:H.seed}},show:e=>{const t=e||{},s=String(t.workspace||"");Ce[s]||(Ce[s]=Lt());const o=t.seed!==void 0?Number(t.seed)>>>0:Ce[s];Ce[s]=o;const n=t.species&&ve.includes(t.species)?t.species:"",r=String(t.pose||"");return s===H.workspace&&o===H.seed&&n===H.wantedSpecies&&r===H.wantedPose&&H.built||(H.workspace=s,H.seed=o,H.wantedSpecies=n,H.wantedPose=r,H.built=null,De()),window.whoseTurnBackdrop.current},repaint:De};Q(He,De);Bt(window,"resize",Ut(De,200));const{show:Yt,repaint:cn,seeded:Yi}=window.whoseTurnBackdrop,un=()=>{window.tippy&&window.tippy.delegate(document.body,{target:"[data-tip]",content:e=>e.dataset.tip||"",trigger:"mouseenter focus click",delay:[0,80],duration:[120,80],interactive:!0,maxWidth:440,placement:"top",theme:"wt",appendTo:()=>document.body})},dn=()=>{let e=0;return{next:()=>++e,accepts:t=>t===e}},bt=e=>{const t=structuredClone(nt(e)),s=t.connectors||{},o=t.rules||{};return o.statuses=o.statuses||{},{...t,connectors:Array.isArray(s)?s:Object.entries(s).map(([n,r])=>({type:n,...r})),rules:o,theme:t.theme||{}}},pn=e=>{const t=structuredClone(nt(e));return t.theme&&!Object.keys(t.theme).length&&delete t.theme,t.rules&&!Object.keys(t.rules.statuses||{}).length&&delete t.rules.statuses,t.rules&&!Object.keys(t.rules).length&&delete t.rules,t},xt=new WeakMap;let hn=0;const Re=e=>{const t=nt(e);let s=xt.get(t);return s||(s=++hn,xt.set(t,s)),s},$t=e=>JSON.stringify(e),_n=(e,t)=>{const s=[];return e.forEach(o=>o.connectors.forEach(n=>{const r=t.get(n)||{};Object.keys(r).forEach(u=>{r[u]&&s.push({ws:o.id,connector:n.id||n.type,key:u,value:r[u]})})})),s},ce=(e,t,s)=>{typeof s=="boolean"||s&&s.length?e[t]=s:delete e[t]},fn=(e,t)=>{const s=o=>{const n=t.indexOf(o.id);return n<0?t.length:n};return[...e].sort((o,n)=>s(o)-s(n))},vn=(e,t,s,o)=>{const n=e.filter(r=>r!==t);return n.splice(n.indexOf(s)+(o?0:1),0,t),n},mn={backlog:"in the backlog",passed:"passed",code_review:"in review",qa:"in testing",on_hold:"on hold",todo:"to do",in_progress:"in progress",done:"done"},Kt=e=>mn[e]||`in ${e.replace(/_/g," ")}`,gn={you:"your move",reviewer:"the reviewer's move",qa:"the tester's move",them:"waiting on others"},yn={"ticket.hold_reason":"the hold reason","ticket.status_name":"the status","ticket.key":"the ticket key","pr.number":"the PR number","pr.base":"the target branch","pr.commenter":"the commenter","run.workflow":"the workflow","run.branch":"the branch","comment.author":"the author"},de=e=>yn[e]||e.replace(/[._]/g," "),kn=(e,t,s)=>e?t:s,wn={approved:"the PR is approved",changes_requested:"changes are requested on the PR",none:"the PR has no review"},bn=(e,t)=>{switch(e){case"ticket.status":return`the ticket is ${Kt(String(t))}`;case"ticket.assignee":return t==="me"?"the ticket is on you":`the ticket is assigned to ${t}`;case"pr.checks":return t==="none"?"the PR has no checks":`the PR checks are ${t}`;case"pr.review":return wn[String(t)]||`the PR review is ${t}`;case"pr.base":return`the PR goes into ${t}`;default:return`${de(e)} is ${t}`}},St={"ticket.done":["the ticket is done","the ticket is not done"],"ticket.started":["the ticket is started","the ticket is not started"],"pr.open":["the PR is open","no PR is open"],"pr.merged":["the PR is merged","the PR is not merged"],"pr.unanswered":["a comment on the PR waits for your answer","no comment on the PR waits for your answer"],"comment.mentions_me":["you are mentioned and have not answered","no mention of you waits for an answer"],"comment.is_question":["the mention is a question","the mention is not a question"],"run.failed":["a workflow run failed","no workflow run failed"],"run.mine":["the run is yours","the run is not yours"]},xn=(e,t,s)=>{if(t==="present")return kn(s,`${de(e)} is given`,`${de(e)} is missing`);if(t==="prefix")return e==="pr.base"?`the PR goes into a branch starting with ${s}`:`${de(e)} starts with ${s}`;if(e==="unanswered_count"){const n=Number(s);return`${{gt:`more than ${n}`,gte:`at least ${n}`,lt:`fewer than ${n}`,lte:`at most ${n}`}[t]} mentions of you wait for an answer`}const o={gt:"more than",gte:"at least",lt:"less than",lte:"at most"};return`${de(e)} is ${o[t]} ${s}`},$n=(e,t)=>Array.isArray(t)?e==="ticket.status"?`the ticket is ${t.map(s=>Kt(String(s))).join(" or ")}`:`${de(e)} is ${t.join(" or ")}`:t&&typeof t=="object"?Object.entries(t).map(([s,o])=>xn(e,s,o)).join(" and "):typeof t=="boolean"&&St[e]?St[e][t?0:1]:bn(e,t),Sn=e=>e.replace(/\{([\w.]+)\}/g,(t,s)=>`{${de(s)}}`),Cn=e=>{const t=Object.entries(e.when).map(([o,n])=>$n(o,n)),s=e.then.whose==="hidden"?"not shown":`${gn[e.then.whose]||e.then.whose}, "${Sn(e.then.next||"")}"`;return{when:t.length?`When ${t.join(" and ")}:`:"In every other case:",then:s}},Rn=e=>e.modal?"modal":e.settings?"settings":e.feedback?"feedback":null,Tn=(e,t)=>{const s=new URLSearchParams(e).get("mode");return s==="app"||s==="tab"?s:t==="app"?"app":"tab"},An=e=>"/?mode=tab"+(e?"&ws="+encodeURIComponent(e):""),Mn=e=>({width:e.outerWidth,height:e.outerHeight}),Xt={writeDefaults:!1},Gt=ke("wt-ws","",Xt),Jt=Is("wt-mode","",Xt),m=xs({workspaces:[],workspace:{id:"",name:"",connectors:[],links:[],key_pattern:"",theme:null},turn:[],feed:[],marks:{seen:[],base:0,handled:{}},counts:{mine:0,others:0,failing:0,done:0},todos:[],errors:{},health:{ok:!0,stale:!1,fresh_at:"",failing:[],alerts:[]},problems:[],polled_at:"",update:{current:"",latest:"",available:!1,state:"idle"}}),z=ot({ws:new URLSearchParams(location.search).get("ws")||Gt.value,open:new Set,mode:Tn(location.search,Jt.value),live:!1,reconnects:0,status:"Connecting…",modal:null,feedback:!1,settings:!1,settingsDirty:!1,settingsAsk:!1,settingsAt:""});Jt.value=z.mode;const Pe=we("",6e3),pe=(e,t)=>{const s=re(e,t);return s&&(Pe.value=s),!s},En=()=>{z.mode==="app"&&Bt(window,"resize",Ut(()=>ie("/api/window",Mn(window)).catch(pe),600))},Zt={resume:()=>{}},he=Ds({scheduler:e=>{const t=Ps(e,3e4,{immediate:!1});return Zt.resume=t.resume,t}}),Ke=x(()=>{const e=m.workspace.theme;return e&&e.light&&e.dark?e[He.value?"dark":"light"]:{}}),ne=x(()=>m.counts),Ct=x(()=>{const e=m.workspace.name,t=e?e+": ":"",s=Object.entries(m.errors||{}),o=m.health.failing||[],n=c=>o.find(({source:_})=>c===_||c.startsWith(_+".")),r=o.map(({source:c,polls:_})=>{const h=s.filter(([d])=>{var f;return((f=n(d))==null?void 0:f.source)===c}).map(([,d])=>d);return`Source ${c}: ${h.join(", ")||"failing"}, failed ${_} polls in a row`}),u=new Set(o.map(({source:c})=>"failing:"+c));return[...m.problems||[],...m.health.alerts.filter(c=>!u.has(c.id||"")).map(c=>c.text),...r,...s.filter(([c])=>!n(c)).map(([c,_])=>t+c+": "+_)]}),Qt=(e="")=>{z.settingsAt=e,z.settings=!0},es=x(()=>Rn(z)),zn=()=>{const e=es.value;if(e==="modal"&&(z.modal=null),e==="feedback"&&(z.feedback=!1),e==="settings"){if(z.settingsDirty){z.settingsAsk=!0;return}z.settings=!1}},et=new Map,In=(e,t)=>{t&&et.set(e,document.activeElement)},On=(e,t)=>{if(t)return;const s=et.get(e);et.delete(e),s instanceof HTMLElement&&s.focus()},Dn={modal:()=>!!z.modal,settings:()=>z.settings,feedback:()=>z.feedback};Object.entries(Dn).forEach(([e,t])=>{Q(t,s=>In(e,s),{flush:"sync"}),Q(t,s=>On(e,s),{flush:"post"})});let Be=-1,tt=0;const Rt=dn(),xe=(e=z.ws)=>{const t=Rt.next();return We("/api/state"+(e?"?ws="+encodeURIComponent(e):"")).then(s=>Rt.accepts(t)?s.error?Fs(s.error)!=="NO_SUCH_WORKSPACE"||!qs(e)?(z.status=Ns(s.error,"Could not load"),m):xe(""):(Object.assign(m,s),z.ws=m.workspace.id,z.status="",Yt({workspace:m.workspace.id}),document.title="Whose Turn · "+m.workspace.name,m):m)},ts=()=>(Be=-1,xe()),ge=Os("/api/stream",[],{immediate:!1,autoConnect:!1,autoReconnect:!0,serializer:{read:e=>JSON.parse(e||"null")}});Q(ge.status,e=>{z.live=e==="OPEN",z.live&&(z.status="",z.reconnects++)},{flush:"sync"});Q(ge.error,e=>{e&&(z.status="Disconnected from the local server, retrying…")},{flush:"sync"});Q(ge.data,e=>{if(e){if("update"in e){m.update=e.update;return}typeof e.open_moves=="number"&&(m.workspaces=Wt(m.workspaces,e.ws,e.open_moves)),!(m.workspace.id&&e.ws!==m.workspace.id)&&(z.status="",e.version!==Be?(Be=e.version,tt===0&&xe()):m.polled_at=e.polled_at)}},{flush:"sync"});const Pn=()=>{ge.eventSource.value||ge.open()},Bn=()=>(Zt.resume(),xe().then(Pn)),Un=e=>e===m.workspace.id?Promise.resolve():(Be=-1,tt++,xe(e).then(()=>{z.ws===e&&(Gt.value=z.ws,z.open.clear())},()=>{Pe.value=Oe+"; staying on "+m.workspace.name+"."}).finally(()=>{tt--})),ss=(e,t)=>ie(e,{ws:m.workspace.id,...t}),me=e=>ss("/api/marks",e).then(t=>{const s=re(t);return s||(Object.assign(m,{marks:t.marks,turn:t.turn,counts:t.counts}),m.workspaces=Wt(m.workspaces,m.workspace.id,t.counts.mine)),s},t=>re(t)),Vn=e=>ss("/api/todos",e).then(t=>{const s=re(t,{unreachable:Qe});return!s&&Array.isArray(t)&&(m.todos=t),s},t=>re(t,{unreachable:Qe})),Tt=e=>We("/api/config").then(t=>ie("/api/config",{workspaces:fn(t.workspaces,e),secrets:[]})).then(t=>{pe(t,{refused:"The order was not saved"})&&ts()},t=>pe(t,{refused:"The order was not saved"})),At=()=>{z.status="Checking now…",ie("/api/refresh").catch(e=>{z.status="",pe(e)}),Yt({workspace:m.workspace.id,seed:Math.floor(Math.random()*4294967296)})},Hn="M12 2.5l1.9 5.6 5.6 1.9-5.6 1.9L12 17.5l-1.9-5.6L4.5 10l5.6-1.9L12 2.5zM5 15l.9 2.6 2.6.9-2.6.9L5 22l-.9-2.6-2.6-.9 2.6-.9L5 15zm14-2l.7 2 2 .7-2 .7-.7 2-.7-2-2-.7 2-.7.7-2z",Wn="M16 1H6a2 2 0 0 0-2 2v12h2V3h10V1zm3 4H10a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2zm0 16h-9V7h9v14z",Fn="M19.4 13a7.6 7.6 0 0 0 0-2l2-1.5-2-3.4-2.4 1a7.5 7.5 0 0 0-1.7-1L15 3.5H9l-.3 2.6a7.5 7.5 0 0 0-1.7 1l-2.4-1-2 3.4 2 1.5a7.6 7.6 0 0 0 0 2l-2 1.5 2 3.4 2.4-1a7.5 7.5 0 0 0 1.7 1l.3 2.6h6l.3-2.6a7.5 7.5 0 0 0 1.7-1l2.4 1 2-3.4-2-1.5zM12 15.5a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7z",qn="M19 8h-1.8a5.9 5.9 0 0 0-1.3-1.9l1.6-1.6-1.4-1.4-1.9 1.9A5.7 5.7 0 0 0 12 4.5a5.7 5.7 0 0 0-2.2.5L7.9 3.1 6.5 4.5l1.6 1.6A5.9 5.9 0 0 0 6.8 8H5v2h1.2a7 7 0 0 0 0 1v1H5v2h1.3a6 6 0 0 0 11.4 0H19v-2h-1.2v-1a7 7 0 0 0 0-1H19V8zm-7 10a4 4 0 0 1-4-4v-3a4 4 0 0 1 8 0v3a4 4 0 0 1-4 4zm-1-7h2v5h-2z",Nn=e=>{let t=2166136261;for(let s=0;s<e.length;s+=1)t^=e.charCodeAt(s),t=Math.imul(t,16777619);return t>>>0},ns=e=>{const t=String(e||"").trim().split(/[\s_-]+/).filter(Boolean);return(t.length>=2?t.slice(0,3).map(o=>o.charAt(0)):(t[0]||"?").slice(0,2).split("")).join("").toUpperCase()},jn=e=>({1:17,2:14,3:11})[e.length]||11,os=(e,t)=>{const s=t(Nn(e.id)),o=[],n=3+Math.floor(s()*3);for(let u=0;u<n;u+=1){const c=s()*Math.PI*2,_=9+s()*7;o.push({cx:(18+Math.cos(c)*_).toFixed(1),cy:(18+Math.sin(c)*_).toFixed(1),r:(1.6+s()*2.2).toFixed(1),opacity:(.35+s()*.4).toFixed(2)})}const r=ns(e.name||e.id);return{dots:o,glyph:r,fontSize:jn(r)}},Ln=(e,t)=>{const s=e.dots.map(r=>`<circle cx="${r.cx}" cy="${r.cy}" r="${r.r}" fill="${t.dot}" opacity="${r.opacity}"/>`).join(""),o=e.fontSize>=17?24:23,n=e.glyph.replace(/[&<>]/g,"");return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><rect width="36" height="36" rx="10" fill="${t.fill}"/>${s}<text x="18" y="${o}" text-anchor="middle" font-size="${e.fontSize}" font-weight="700" letter-spacing="-0.5" font-family="Roboto, Inter, system-ui, sans-serif" fill="${t.ink}">${n}</text></svg>`},Mt='a[href], button:not([disabled]), input:not([disabled]), select, textarea, [tabindex]:not([tabindex="-1"])',Yn="input, textarea, select, [contenteditable]",Kn=(e,t,s)=>{if(!e.length)return null;const o=s?e[0]:e[e.length-1];return t===o||!e.some(n=>n===t)?s?e[e.length-1]:e[0]:null},Xn=e=>{let t=null;Q(e,s=>{s?(t=document.activeElement,ye(()=>{var r;const o=document.querySelectorAll(".modal"),n=o[o.length-1];n&&!n.contains(document.activeElement)&&((r=n.querySelector(Mt))==null||r.focus())})):(t==null||t.focus(),t=null)}),rt("Tab",s=>{if(!e.value)return;const o=document.querySelectorAll(".modal"),n=o[o.length-1],r=n?[...n.querySelectorAll(Mt)]:[],u=Kn(r,document.activeElement,s.shiftKey);u&&(s.preventDefault(),u.focus())},{target:document})},Et={"/":".feed__search-input",t:".todos__input"},Gn=e=>rt(Object.keys(Et),t=>{const s=t.target;if(e.value||t.metaKey||t.ctrlKey||t.altKey||s!=null&&s.closest(Yn))return;const o=document.querySelector(Et[t.key]);o&&(t.preventDefault(),o.focus())},{target:document}),Jn=30,zt=(e,t,s)=>Math.round(Math.max(t,Math.min(s,e))),Zn=(e,t)=>Math.ceil(e+(t>1?Jn:0)),Qn=(e,t,s)=>e-t*s.length-s.reduce((o,n)=>o+(n.collapsed?n.height:n.floor),0),dt=e=>{const t=ke("wt-panel-sizes",{},{writeDefaults:!1});return{size:x(()=>t.value[gt(e)]??null),set:n=>{const r=gt(e);if(!r)return;const{[r]:u,...c}=t.value;t.value=n===null?c:{...c,[r]:n}}}},eo={class:"rail","aria-label":"Workspaces"},to=["data-drop","href","aria-label","aria-selected","onClick","onKeydown","onDragstart","onDragover","onDrop"],so={viewBox:"0 0 36 36",class:"rail__icon","aria-hidden":"true"},no=["fill"],oo=["cx","cy","r","fill","opacity"],ao=["y","font-size","fill"],lo={class:"rail__label"},ro={key:0,class:"rail__warn",title:"A source of this workspace fails"},io={key:1,class:"rail__badge"},co={viewBox:"0 0 24 24",class:"rail__gear","aria-hidden":"true"},uo=["d"],po=j({__name:"Rail",emits:["settings"],setup(e,{emit:t}){const s=t,o=x(()=>Object.fromEntries(m.workspaces.map(g=>[g.id,os(g,lt)]))),n=x(()=>Object.fromEntries(m.workspaces.map(g=>{const $=g.theme?g.theme[He.value?"dark":"light"]:null;return[g.id,{fill:$?$["--md-primary-container"]:"var(--md-primary-container)",ink:$?$["--md-on-primary-container"]:"var(--md-on-primary-container)",dot:$?$["--md-primary"]:"var(--md-primary)"}]}))),r=g=>g.id===m.workspace.id?Object.keys(m.errors||{}).length>0:!!g.failing_sources,u=g=>{g.detail>0&&g.currentTarget.blur()},c=(g,$)=>{u(g),Un($)},_=g=>{s("settings"),u(g)},h=async(g,$)=>{const A=g.key==="ArrowUp"?-1:g.key==="ArrowDown"?1:0,P=m.workspaces.map(O=>O.id),X=P.indexOf($.id);if(!g.altKey||!A||X+A<0||X+A>=P.length)return;g.preventDefault();const D=g.currentTarget;P.splice(X+A,0,...P.splice(X,1)),await Tt(P),await ye(),D.focus()},d=B(""),f=B({}),b=g=>{const $=g.currentTarget;return g.clientY-$.getBoundingClientRect().top<$.offsetHeight/2},k=(g,$)=>{d.value=$.id,g.dataTransfer&&(g.dataTransfer.effectAllowed="move",g.dataTransfer.setData("text/plain",$.id))},I=()=>{d.value="",f.value={}},w=(g,$)=>{if(!d.value||d.value===$.id)return;g.preventDefault(),g.dataTransfer&&(g.dataTransfer.dropEffect="move");const A=b(g)?"before":"after";(f.value.id!==$.id||f.value.side!==A)&&(f.value={id:$.id,side:A})},y=(g,$)=>{if(!d.value||d.value===$.id)return;g.preventDefault();const A=vn(m.workspaces.map(P=>P.id),d.value,$.id,b(g));f.value={},Tt(A)};return(g,$)=>(l(),i("nav",eo,[(l(!0),i(W,null,L(p(m).workspaces,A=>(l(),i("a",{key:A.id,class:q(["rail__item",{"rail__item--dragging":d.value===A.id}]),"data-drop":f.value.id===A.id?f.value.side:null,href:"?ws="+encodeURIComponent(A.id),"aria-label":A.name,"aria-selected":A.id===p(m).workspace.id,draggable:"true",onClick:ee(P=>c(P,A.id),["prevent"]),onKeydown:P=>h(P,A),onDragstart:P=>k(P,A),onDragend:I,onDragover:P=>w(P,A),onDragleave:$[0]||($[0]=P=>f.value={}),onDrop:P=>y(P,A)},[(l(),i("svg",so,[a("rect",{x:"0",y:"0",width:"36",height:"36",rx:"10",fill:n.value[A.id].fill},null,8,no),(l(!0),i(W,null,L(o.value[A.id].dots,(P,X)=>(l(),i("circle",{key:X,cx:P.cx,cy:P.cy,r:P.r,fill:n.value[A.id].dot,opacity:P.opacity},null,8,oo))),128)),a("text",{x:"18",y:o.value[A.id].fontSize>=17?24:23,"text-anchor":"middle","font-size":o.value[A.id].fontSize,"font-weight":"700","letter-spacing":"-0.5","font-family":"Roboto, Inter, system-ui, sans-serif",fill:n.value[A.id].ink},v(o.value[A.id].glyph),9,ao)])),a("span",lo,v(A.name),1),r(A)?(l(),i("span",ro,"!")):S("",!0),A.open_moves?(l(),i("span",io,v(A.open_moves),1)):S("",!0)],42,to))),128)),$[2]||($[2]=a("span",{class:"rail__spacer"},null,-1)),a("a",{class:"rail__item",href:"#settings","aria-label":"Settings",onClick:ee(_,["prevent"])},[(l(),i("svg",co,[a("path",{d:p(Fn),fill:"currentColor"},null,8,uo)])),$[1]||($[1]=a("span",{class:"rail__label"},"Settings",-1))])]))}}),ho=K(po,[["__scopeId","data-v-58c52f35"]]),Xe=" · checks every minute",as=(e,t,s,o)=>{const n=e.failing.map(u=>u.source),r=t?le(t):"—";return n.length&&n.length>=s?{dot:"off",text:"No data: "+n.join(", ")+" failing · last data "+le(e.fresh_at),failing:n,noData:!0}:e.stale?{dot:"off",text:"Stale · last data "+le(e.fresh_at)+Xe,failing:n,noData:!1}:n.length?{dot:o?"warn":"off",text:n.join(", ")+" failing · last check "+r+Xe,failing:n,noData:!1}:{dot:o?"ok":"off",text:"Live · last check "+r+Xe,failing:n,noData:!1}},_o=["data-tip"],fo={class:"ai-button__icon",viewBox:"0 0 24 24","aria-hidden":"true"},vo=["d"],mo={class:"ai-button__badge",viewBox:"0 0 24 24","aria-hidden":"true"},go=["d"],yo=j({__name:"AiButton",props:{query:{},big:{type:Boolean}},setup(e){const t=e,s={"":"Copy for AI: this with its context as text, ready to paste into Claude or any other assistant",sent:"Copied",failed:"Could not copy"},o=we("",1600),n=x(()=>s[o.value]),r=B(null);Q(n,c=>{var _,h;return(h=(_=r.value)==null?void 0:_._tippy)==null?void 0:h.setContent(c)});const u=()=>js(t.query).then(c=>navigator.clipboard.writeText(c)).then(()=>{o.value="sent"},()=>{o.value="failed"});return(c,_)=>(l(),i("button",{ref_key:"button",ref:r,type:"button",class:q(["ai-button",{"ai-button--big":e.big,"ai-button--sent":p(o)==="sent","ai-button--failed":p(o)==="failed"}]),"aria-label":"Copy for AI","data-tip":n.value,onClick:ee(u,["stop"])},[(l(),i("svg",fo,[a("path",{d:p(Wn),fill:"currentColor"},null,8,vo)])),(l(),i("svg",mo,[a("path",{d:p(Hn),fill:"currentColor"},null,8,go)]))],10,_o))}}),_e=K(yo,[["__scopeId","data-v-46197bdc"]]),st="wt-updated-to",ko=()=>window.location.reload(),wo=e=>{try{sessionStorage.setItem(st,e)}catch{}},bo=()=>{try{const e=sessionStorage.getItem(st)||"";return sessionStorage.removeItem(st),e}catch{return""}},xo={key:0,class:"update-chip update-chip--done",role:"status"},$o={key:2,class:"update-chip update-chip--busy",role:"status"},So=["title"],Co=15e3,Ro=9e4,To=j({__name:"UpdateChip",setup(e){const t=B(!1),s=B(""),o=B(""),n=B(""),r=B(!1),u=we("",Co),c=x(()=>m.update),_=x(()=>t.value||c.value.state==="installing"),h=x(()=>c.value.state==="restarting"||!!s.value&&!z.live),d=x(()=>!n.value&&(_.value||h.value||!!s.value)),{start:f,stop:b}=Bs(()=>r.value=!0,Ro,{immediate:!1});at(()=>{u.value=bo()}),Q(()=>c.value.current,w=>{if(w){if(!o.value){o.value=w;return}w!==o.value&&(n.value=w,s.value="",b())}},{immediate:!0});const k=()=>{if(d.value)return;t.value=!0,r.value=!1,s.value=c.value.latest,f();const w=y=>{if(t.value=!1,!pe(y,{refused:"The update did not start"})){s.value="",b();return}m.update=y.update};ie("/api/update").then(w,w)},I=()=>{n.value&&wo(n.value),ko()};return(w,y)=>p(u)?(l(),i("span",xo,"Updated to "+v(p(u)),1)):n.value?(l(),i("button",{key:1,type:"button",class:"update-chip update-chip--ready",title:"Reload the window to apply the changes",onClick:I}," Updated to "+v(n.value)+" · Reload ",1)):d.value?(l(),i("span",$o,[y[0]||(y[0]=a("span",{class:"update-chip__spinner","aria-hidden":"true"},null,-1)),J(v(h.value?"Restarting…":`Installing ${s.value||c.value.latest}…`),1),r.value?(l(),i("button",{key:0,type:"button",class:"update-chip__link",title:"The restart is taking longer than usual",onClick:I}," Reload ")):S("",!0)])):c.value.available&&c.value.state==="failed"?(l(),i("button",{key:3,type:"button",class:"update-chip update-chip--failed",title:c.value.reason,onClick:k}," Update failed · Retry ",8,So)):c.value.available?(l(),i("button",{key:4,type:"button",class:"update-chip",onClick:k},v(c.value.latest)+" is out · Update ",1)):S("",!0)}}),Ao=K(To,[["__scopeId","data-v-c36ae07d"]]),Mo={class:"status-bar"},Eo={class:"status-bar__icon",viewBox:"0 0 24 24","aria-hidden":"true"},zo=["d"],Io={key:0,class:"status-bar__notice",role:"alert"},Oo=["href"],Do=["aria-disabled"],Po=5e3,Bo=j({__name:"StatusBar",emits:["report"],setup(e,{emit:t}){const s=t,o=x(()=>(he.value,as(m.health,m.polled_at,m.workspace.connectors.length,z.live))),n=B(!1),r=B(!1),u=x(()=>r.value?"Opened in the app window. You can close this tab.":z.status||o.value.text),c=h=>pe(h,{refused:"The app window did not open"}),_=()=>{if(n.value)return;n.value=!0,setTimeout(()=>n.value=!1,Po);const h=d=>{c(d),r.value=!re(d)};ie("/api/open",{mode:"app"}).then(h,h)};return(h,d)=>(l(),i("div",Mo,[a("button",{type:"button",class:"btn status-bar__btn status-bar__report",title:"A bug or a wish about this monitor, straight to its backlog",onClick:d[0]||(d[0]=f=>s("report"))},[(l(),i("svg",Eo,[a("path",{d:p(qn),fill:"currentColor"},null,8,zo)])),d[2]||(d[2]=J("Report ",-1))]),a("span",{class:q(["status-bar__live",{"status-bar__live--off":o.value.dot==="off","status-bar__live--warn":o.value.dot==="warn"}])},null,2),a("span",null,v(u.value),1),p(Pe)?(l(),i("span",Io,v(p(Pe)),1)):S("",!0),U(Ao),a("button",{type:"button",class:"btn status-bar__btn",onClick:d[1]||(d[1]=(...f)=>p(At)&&p(At)(...f))},"Refresh now"),p(z).mode==="app"?(l(),i("a",{key:1,class:"btn status-bar__btn",href:p(An)(p(z).ws),target:"_blank",rel:"noopener"},"Open in browser",8,Oo)):(l(),i("button",{key:2,type:"button",class:q(["btn status-bar__btn",{"status-bar__btn--busy":n.value}]),"aria-disabled":n.value,onClick:_},v(n.value?"Opening…":"Open as app"),11,Do)),U(_e,{query:{all:"1"}}),d[3]||(d[3]=a("span",{class:"ai-hint status-bar__ai-hint"},"Copy for AI: everything",-1))]))}}),Uo=K(Bo,[["__scopeId","data-v-1a4ce564"]]),ls=e=>{const t=ke("wt-collapsed",[],{writeDefaults:!1}),s=x(()=>t.value.includes(e));return{collapsed:s,toggle:()=>{t.value=s.value?t.value.filter(n=>n!==e):[...t.value,e]}}},Vo=["href"],Ho={key:1},ae=j({__name:"ExtLink",props:{text:{default:""},url:{default:""}},setup(e){const t=e,s=x(()=>it(t.url));return(o,n)=>s.value?(l(),i("a",{key:0,href:s.value,target:"_blank",rel:"noopener"},v(e.text),9,Vo)):(l(),i("span",Ho,v(e.text),1))}}),Wo={class:"workspace-header__title"},Fo={class:"workspace-header__name"},qo={key:0,class:"workspace-header__line workspace-header__strip"},No={class:"workspace-header__count"},jo={class:"workspace-header__count"},Lo={class:"workspace-header__count"},Yo={class:"workspace-header__count"},Ko={class:"workspace-header__line workspace-header__give"},Xo={class:"workspace-header__links"},Go={class:"workspace-header__tiles"},Jo={class:"workspace-header__tile-value"},Zo={class:"workspace-header__tile"},Qo={class:"workspace-header__tile-value"},ea={class:"workspace-header__tile-value"},ta={class:"workspace-header__tile"},sa={class:"workspace-header__tile-value"},na=j({__name:"WorkspaceHeader",setup(e){const{collapsed:t,toggle:s}=ls("header");return(o,n)=>(l(),i("header",{id:"summary",class:q(["island workspace-header",{"workspace-header--collapsed":p(t)}])},[a("div",Wo,[a("h1",Fo,v(p(m).workspace.name||"Whose Turn"),1),p(t)?(l(),i("p",qo,[n[1]||(n[1]=J(" Your move ",-1)),a("b",No,v(p(ne).mine),1),n[2]||(n[2]=J(" · Waiting on others ",-1)),a("b",jo,v(p(ne).others),1),n[3]||(n[3]=J(" · Failing ",-1)),a("b",Lo,v(p(ne).failing),1),n[4]||(n[4]=J(" · Done ",-1)),a("b",Yo,v(p(ne).done),1)])):S("",!0),a("p",Ko,[U(_e,{query:{ws:p(m).workspace.id,kind:"workspace"},big:""},null,8,["query"]),n[5]||(n[5]=a("span",{class:"ai-hint"},"Copy for AI: this workspace",-1)),a("span",Xo,[(l(!0),i(W,null,L(p(m).workspace.links||[],r=>(l(),Y(ae,{key:r.url,text:r.label,url:r.url,title:r.url},null,8,["text","url","title"]))),128))])])]),a("button",{type:"button",class:q(["fold-toggle workspace-header__fold",{"fold-toggle--folded":p(t)}]),"aria-label":"Fold the header","data-tip":"Fold the header; it stays folded until you open it again",onClick:n[0]||(n[0]=ee((...r)=>p(s)&&p(s)(...r),["stop"]))}," ▾ ",2),a("div",Go,[a("div",{class:q(["workspace-header__tile",{"workspace-header__tile--you":p(ne).mine>0}])},[n[6]||(n[6]=a("span",{class:"workspace-header__tile-label"},"Your move",-1)),a("strong",Jo,v(p(ne).mine),1)],2),a("div",Zo,[n[7]||(n[7]=a("span",{class:"workspace-header__tile-label"},"Waiting on others",-1)),a("strong",Qo,v(p(ne).others),1)]),a("div",{class:q(["workspace-header__tile",{"workspace-header__tile--fail":p(ne).failing}])},[n[8]||(n[8]=a("span",{class:"workspace-header__tile-label"},"Open PRs with failing checks",-1)),a("strong",ea,v(p(ne).failing),1)],2),a("div",ta,[n[9]||(n[9]=a("span",{class:"workspace-header__tile-label"},"Done in the last 30 days",-1)),a("strong",sa,v(p(ne).done),1)])])],2))}}),oa=K(na,[["__scopeId","data-v-3421a7f0"]]),pt=e=>{Q(()=>z.reconnects,e)},aa=j({__name:"Chevron",props:{open:{type:Boolean},tag:{default:"button"}},setup(e){return(t,s)=>(l(),Y($s(e.tag),{class:q(["chevron",{"chevron--open":e.open}]),type:e.tag==="button"?"button":void 0,"aria-expanded":e.tag==="button"?e.open:void 0},null,8,["class","type","aria-expanded"]))}}),Fe=K(aa,[["__scopeId","data-v-a14fa9ba"]]),la=["aria-orientation","aria-label"],It=16,ra=j({__name:"ResizeHandle",props:{label:{},axis:{},bounds:{type:Function},grow:{},top:{type:Boolean}},emits:["resize","reset"],setup(e,{emit:t}){const s=e,o=t,n=s.grow??1;let r={pointer:0,size:0,min:0,max:0};const u=d=>s.axis==="y"?d.clientY:d.clientX,c=d=>{const{current:f,min:b,max:k}=s.bounds();r={pointer:u(d),size:f,min:b,max:k},d.currentTarget.setPointerCapture(d.pointerId)},_=d=>{if(!d.currentTarget.hasPointerCapture(d.pointerId))return;const f=(u(d)-r.pointer)*n;o("resize",zt(r.size+f,r.min,r.max))},h=d=>{const f=s.axis==="y"?"ArrowDown":"ArrowRight",b=s.axis==="y"?"ArrowUp":"ArrowLeft";if(d.key!==f&&d.key!==b)return;d.preventDefault();const{current:k,min:I,max:w}=s.bounds(),y=(d.key===f?It:-It)*n;o("resize",zt(k+y,I,w))};return(d,f)=>(l(),i("div",{class:q(["resize-handle",["resize-handle--"+e.axis,{"resize-handle--top":e.top}]]),role:"separator",tabindex:"0","aria-orientation":e.axis==="y"?"horizontal":"vertical","aria-label":e.label,"data-tip":"Drag to resize; double click to reset",onPointerdown:ee(c,["prevent"]),onPointermove:_,onKeydown:h,onDblclick:f[0]||(f[0]=b=>o("reset"))},null,42,la))}}),rs=K(ra,[["__scopeId","data-v-8e637688"]]),ia=["id"],ca={class:"island__head"},ua={class:"island__title"},da={class:"island__note"},pa={class:"island__note-text"},ha=["aria-label","data-tip"],_a={class:"island__body"},fa=280,va=360,ma=j({__name:"Island",props:{id:{},sizeKey:{default:""},title:{},note:{default:""},tip:{default:""},column:{type:Boolean},resize:{default:"height"}},setup(e){const t=e,{collapsed:s,toggle:o}=ls(t.id),{size:n,set:r}=dt(()=>t.sizeKey),u=Ve("root"),c=B(0),_=y=>parseFloat(y)||0,h=(y,g)=>{let $=0;for(let A=y.parentElement;A&&A!==g;A=A.parentElement)$+=A.scrollTop;return $},d=(y,g)=>{const $=[...y.children].find(P=>P.contains(g));return($?[...y.children].slice([...y.children].indexOf($)+1):[]).filter(P=>!P.classList.contains("row-scroll__more")).reduce((P,X)=>{const D=X;return P+(_(getComputedStyle(D).minHeight)||D.offsetHeight)},0)},f=()=>{const y=u.value,g=y==null?void 0:y.querySelector(".island__body");if(!y||!g||s.value||t.resize!=="height")return;const $=g.querySelectorAll("tbody > tr, .todos__list > li"),A=y.getBoundingClientRect().top,P=_(getComputedStyle(g).paddingBottom);if(!$.length){c.value=Math.ceil(g.offsetTop+g.scrollHeight);return}const X=$[0].getBoundingClientRect().bottom-A+h($[0],y);c.value=Zn(X+d(g,$[0])+P+2,$.length)};let b=0;const k=()=>{cancelAnimationFrame(b),b=requestAnimationFrame(f)};at(()=>{var g;const y=(g=u.value)==null?void 0:g.querySelector(".island__body");y&&(Us(y,k,{childList:!0,subtree:!0}),Vs(y,k)),k()});const I=y=>{var g;return[...((g=y.parentElement)==null?void 0:g.children)??[]].filter($=>$!==y&&$ instanceof HTMLElement).map($=>({collapsed:$.classList.contains("island--collapsed"),height:$.offsetHeight,floor:_($.style.getPropertyValue("--island-floor"))}))},w=()=>{const y=u.value;if(f(),t.resize==="width"){const A=y.parentElement,P=_(getComputedStyle(A).columnGap);return{current:y.offsetWidth,min:fa,max:A.clientWidth-P-va}}const g=y.parentElement,$=_(getComputedStyle(g).rowGap);return{current:y.offsetHeight,min:c.value,max:Math.max(Qn(g.clientHeight,$,I(y)),g.clientHeight)}};return(y,g)=>(l(),i("section",{id:e.id,ref_key:"root",ref:u,class:q(["island",{"island--collapsed":p(s),"island--column":e.column,"island--sized":p(n)!==null&&e.resize==="height"}]),style:Ee(e.resize==="height"?{"--island-floor":c.value+"px","--island-height":(p(n)??0)+"px"}:void 0)},[a("div",ca,[U(Fe,{open:!p(s),"aria-label":"Fold "+e.title,"data-tip":"Fold this panel; it stays folded until you open it again",onClick:ee(p(o),["stop"])},null,8,["open","aria-label","onClick"]),a("h2",ua,[J(v(e.title)+" ",1),Je(y.$slots,"head",{},void 0)]),a("p",da,[a("span",pa,v(e.note),1),e.tip?(l(),i("button",{key:0,type:"button",class:"hint-icon","aria-label":"About "+e.title,"data-tip":e.tip}," ? ",8,ha)):S("",!0)])]),a("div",_a,[Je(y.$slots,"default",{},void 0)]),p(s)?S("",!0):(l(),Y(rs,{key:0,label:"Resize "+e.title,axis:e.resize==="width"?"x":"y",grow:e.resize==="width"?-1:1,bounds:w,onResize:p(r),onReset:g[0]||(g[0]=$=>p(r)(null))},null,8,["label","axis","grow","onResize"]))],14,ia))}}),qe=K(ma,[["__scopeId","data-v-3605428a"]]),ga=["aria-label"],ya=["aria-pressed","onClick"],ka={key:0,class:"count"},wa=j({__name:"Segmented",props:Ze({options:{},label:{default:""},chips:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=Pt(e,"modelValue");return(s,o)=>(l(),i("span",{class:q(["segmented",{"segmented--chips":e.chips}]),role:"group","aria-label":e.label},[(l(!0),i(W,null,L(e.options,n=>(l(),i("button",{key:n.id,type:"button",class:"segmented__option","aria-pressed":t.value===n.id,onClick:r=>t.value=n.id},[J(v(n.label),1),n.count!==void 0?(l(),i("b",ka,v(n.count),1)):S("",!0)],8,ya))),128))],10,ga))}}),Ue=K(wa,[["__scopeId","data-v-201d5e2f"]]),ba={class:"ticket-cell"},xa={class:"ticket-cell__summary"},$a=j({__name:"TicketCell",props:{row:{}},setup(e){return(t,s)=>(l(),i("td",ba,[U(ae,{text:e.row.key,url:p(Ft)(e.row)?e.row.pr_url:e.row.ticket_url,class:"ticket-key"},null,8,["text","url"]),a("span",xa,v(e.row.summary),1)]))}}),ht=K($a,[["__scopeId","data-v-e2d11a0b"]]),Sa={key:0,class:"pr-cell"},Ca={key:1,class:"pill"},Ra=j({__name:"PrCell",props:{row:{}},setup(e){return(t,s)=>(l(),i("td",null,[e.row.pr&&!p(Ft)(e.row)?(l(),i("span",Sa,[U(ae,{text:e.row.pr,url:e.row.pr_url,class:"pr-cell__link"},null,8,["text","url"]),e.row.pr_state==="OPEN"&&e.row.checks?(l(),i("span",{key:0,class:q(["pill",p(be)("pill",p(Ls)(e.row.checks))])},v(e.row.checks),3)):e.row.pr_state?(l(),i("span",Ca,v(e.row.pr_state.toLowerCase()),1)):S("",!0)])):S("",!0)]))}}),is=K(Ra,[["__scopeId","data-v-6078ccbd"]]),Ta=["open"],Aa={class:"recently-done__summary"},Ma={class:"count"},Ea={class:"table"},za=["data-tip"],Ia={class:"table__actions"},Oa=480,Da=j({__name:"RecentlyDone",setup(e){const{size:t,set:s}=dt(()=>`${m.workspace.id}:recently-done`),o=Ve("list"),n=h=>{var f;const d=(f=h.closest(".island__body"))==null?void 0:f.querySelector(".row-scroll");return d?Math.max(0,d.clientHeight-(parseFloat(getComputedStyle(d).minHeight)||0)):0},r=()=>{const h=o.value,f=(h.querySelector("tbody > tr")??h).getBoundingClientRect().bottom-h.getBoundingClientRect().top,b=parseFloat(getComputedStyle(h).paddingBottom)||0;return{current:h.offsetHeight,min:Math.ceil(f+h.scrollTop+b),max:Math.min(Oa,h.offsetHeight+n(h))}},u=ke("wt-recent-open",!1,{writeDefaults:!1,serializer:{read:h=>h==="1",write:h=>h?"1":"0"}}),c=h=>{u.value=h.target.open},_=x(()=>(he.value,Ys(m.turn).map(h=>({row:h,since:ut(h.status_since||h.updated)}))));return(h,d)=>_.value.length?(l(),i("details",{key:0,class:"recently-done",open:p(u),onToggle:c},[a("summary",Aa,[U(Fe,{tag:"span",open:p(u)},null,8,["open"]),d[1]||(d[1]=J(" Recently done ",-1)),a("span",Ma,v(_.value.length),1)]),a("div",{ref_key:"list",ref:o,class:"recently-done__list",style:Ee(p(t)===null?void 0:{maxHeight:p(t)+"px",height:p(t)+"px"})},[a("table",Ea,[d[2]||(d[2]=a("thead",null,[a("tr",null,[a("th",null,"Ticket"),a("th",null,"Status"),a("th",null,"Done"),a("th",{class:"table__actions-col"},[a("span",{class:"visually-hidden"},"Copy for AI")])])],-1)),a("tbody",null,[(l(!0),i(W,null,L(_.value,({row:f,since:b})=>(l(),i("tr",{key:f.row_id},[U(ht,{row:f},null,8,["row"]),a("td",null,[a("span",{class:q(["pill",p(be)("pill",p(qt)(f.status_group))])},v(f.status),3)]),a("td",null,[a("span",{class:"age","data-tip":"Done "+p(ct)(f.status_since||f.updated)},v(b.text),9,za)]),a("td",Ia,[U(_e,{class:"table__ai",query:{ws:p(m).workspace.id,kind:"row",ref:f.row_id}},null,8,["query"])])]))),128))])])],4),p(u)?(l(),Y(rs,{key:0,label:"Resize Recently done",axis:"y",top:"",grow:-1,bounds:r,onResize:p(s),onReset:d[0]||(d[0]=f=>p(s)(null))},null,8,["onResize"])):S("",!0)],40,Ta)):S("",!0)}}),Pa=K(Da,[["__scopeId","data-v-68a4b78e"]]),Ba=13,Ua=j({__name:"RowScroll",props:{floor:{type:Boolean}},setup(e){const t=B(null),s=B(null),{y:o}=Hs(t),{height:n}=kt(t),{height:r}=kt(s),u=()=>{var d,f,b;return[...((b=(f=(d=s.value)==null?void 0:d.querySelector("table"))==null?void 0:f.tBodies[0])==null?void 0:b.rows)||[]]},c=()=>{const d=t.value;return d?d.getBoundingClientRect().top+d.clientTop+d.clientHeight:0},_=x(()=>(o.value,n.value,r.value,Ks(u().map(d=>d.getBoundingClientRect().bottom),c(),Ba))),h=()=>{var w,y;const d=t.value,f=u(),b=f[f.length-_.value];if(!d||!b)return;const I=((y=(w=s.value)==null?void 0:w.querySelector("thead"))==null?void 0:y.getBoundingClientRect().bottom)??d.getBoundingClientRect().top;d.scrollBy({top:b.getBoundingClientRect().top-I,behavior:"smooth"})};return(d,f)=>(l(),i(W,null,[a("div",{ref_key:"scroller",ref:t,class:q(["row-scroll",{"row-scroll--floor":e.floor}])},[a("div",{ref_key:"content",ref:s},[Je(d.$slots,"default",{},void 0)],512)],2),_.value?(l(),i("button",{key:0,type:"button",class:"row-scroll__more",onClick:h}," +"+v(_.value)+" more ",1)):S("",!0)],64))}}),cs=K(Ua,[["__scopeId","data-v-263b2407"]]),Va=B("open"),Ha=()=>Va,Wa={key:0,class:"your-move__undo",role:"status"},Fa={class:"table"},qa={key:0},Na={key:1,class:"hide-narrow"},ja={class:"hint-row"},La={class:"your-move__next"},Ya=["data-tip"],Ka=["data-tip"],Xa=["data-tip"],Ga={key:0,class:"alert alert--inline your-move__problem",role:"alert"},Ja={class:"table__actions"},Za=["aria-label","onClick"],Qa={key:1,class:"empty"},el=j({__name:"YourMove",setup(e){const t=Ha(),s=x(()=>{he.value;const f=Xs(m.turn,t.value);return{...f,rows:f.rows.map(b=>({...b,age:ut(b.row.activity_at)}))}}),o=x(()=>Nt(s.value.rows.map(f=>f.row))),n=x(()=>s.value.rows.some(f=>f.row.comment)),r=x(()=>[{id:"open",label:"Open",count:s.value.open},{id:"handled",label:"Handled",count:s.value.handled}]),u=x(()=>{if(t.value==="handled")return"Nothing marked as handled.";const{noData:f,failing:b}=as(m.health,m.polled_at,m.workspace.connectors.length,z.live);return f?"No data: "+b.join(", ")+(b.length===1?" is":" are")+" failing. Check Settings.":"Nothing is waiting on you."}),c=ot(new Map);pt(()=>c.clear());const _=async f=>{const b=f.row.row_id,k=await me({handled:{[b]:f.handled?null:new Date().toISOString()}});k?c.set(b,k):(c.delete(b),h.value=f.handled?"":b)},h=we("",8e3),d=()=>{const f=h.value;return h.value="",me({handled:{[f]:null}})};return(f,b)=>(l(),Y(qe,{id:"your-move","size-key":`${p(m).workspace.id}:your-move`,title:"Your move",note:"Next step is yours",tip:"Each row is something where the next step is yours. Ticket, PR and comment open in a new tab."},{head:oe(()=>[U(Ue,{modelValue:p(t),"onUpdate:modelValue":b[0]||(b[0]=k=>Ss(t)?t.value=k:null),options:r.value,label:"Show",class:"your-move__view"},null,8,["modelValue","options"])]),default:oe(()=>[p(h)?(l(),i("p",Wa,[b[1]||(b[1]=J(" Marked handled. ",-1)),a("button",{type:"button",class:"your-move__undo-btn",onClick:d},"Undo")])):S("",!0),U(cs,{floor:""},{default:oe(()=>[a("table",Fa,[a("thead",null,[a("tr",null,[b[2]||(b[2]=a("th",null,"Ticket",-1)),b[3]||(b[3]=a("th",null,"Next step",-1)),o.value?(l(),i("th",qa,"PR")):S("",!0),n.value?(l(),i("th",Na,"Last comment")):S("",!0),b[4]||(b[4]=a("th",{class:"table__actions-col"},[a("span",{class:"visually-hidden"},"Mark")],-1))])]),a("tbody",null,[(l(!0),i(W,null,L(s.value.rows,k=>(l(),i("tr",{key:k.row.row_id,class:q(["your-move__row",{"your-move__row--handled":k.handled}])},[U(ht,{row:k.row},null,8,["row"]),a("td",null,[a("span",ja,[a("span",La,v(k.row.next),1),k.age.text?(l(),i("span",{key:0,class:q(["age",{"age--old":k.age.old}]),"data-tip":"Waiting since "+p(ct)(k.row.activity_at)},v(k.age.text),11,Ya)):S("",!0),k.row.why?(l(),i("button",{key:1,type:"button",class:"hint-label","aria-label":"Why this is your move","data-tip":k.row.why}," why ",8,Ka)):S("",!0),k.handled?(l(),i("span",{key:2,class:"handled-chip","data-tip":"Marked "+p(le)(p(m).marks.handled[k.row.row_id]||"")+". Comes back in 7 days if it is still open, or sooner when something new happens."},"handled",8,Xa)):S("",!0)]),c.get(k.row.row_id)?(l(),i("p",Ga,v(c.get(k.row.row_id)),1)):S("",!0)]),o.value?(l(),Y(is,{key:0,row:k.row},null,8,["row"])):S("",!0),n.value?(l(),i("td",{key:1,class:q(["hide-narrow",{"your-move__quote":k.row.comment}])},[k.row.comment?(l(),Y(ae,{key:0,text:k.row.comment,url:k.row.comment_url},null,8,["text","url"])):S("",!0)],2)):S("",!0),a("td",Ja,[U(_e,{class:"table__ai",query:{ws:p(m).workspace.id,kind:"row",ref:k.row.row_id}},null,8,["query"]),a("button",{type:"button",class:q(["your-move__mark",{"your-move__mark--undo":k.handled}]),"aria-label":(k.handled?"Move back to open: ":"Mark as handled: ")+k.row.key,onClick:ee(I=>_(k),["stop"])},v(k.handled?"Undo":"Handled"),11,Za)])],2))),128))])])]),_:1}),s.value.rows.length?S("",!0):(l(),i("p",Qa,v(u.value),1)),p(t)==="open"?(l(),Y(Pa,{key:2})):S("",!0)]),_:1},8,["size-key"]))}}),tl=K(el,[["__scopeId","data-v-a331a3e6"]]),sl=B(!1),nl=()=>sl,ol={class:"todos__add"},al={key:0,class:"alert alert--inline",role:"alert"},ll={key:1,class:"todos__undo",role:"status"},rl={class:"todos__list"},il=["aria-checked","aria-label","onClick"],cl=["onKeydown"],ul=["onDblclick"],dl={class:"todos__meta"},pl=["onClick"],hl=["onClick"],_l={key:0,class:"empty todos__empty"},fl=j({__name:"Todos",setup(e){const t=nl(),s=B(""),o=x(()=>(m.todos||[]).filter(O=>!O.done)),n=x(()=>(m.todos||[]).filter(O=>O.done)),r=x(()=>new RegExp(m.workspace.key_pattern||"(?!)","g")),u=O=>{const N=[];let V=0;const M=O.text;for(const F of M.matchAll(r.value))F.index>V&&N.push({text:M.slice(V,F.index)}),N.push({text:F[0],url:F[0]===O.key?O.ticket_url:""}),V=F.index+F[0].length;return V<M.length&&N.push({text:M.slice(V)}),N},c=x(()=>(he.value,(t.value?o.value.concat(n.value):o.value).map(O=>({todo:O,parts:u(O),meta:(O.by&&O.by!=="you"?O.by+" · ":"")+le(O.created)})))),_=B("");pt(()=>{_.value=""});const h=async O=>(_.value=await Vn(O),!_.value),d=async()=>{const O=s.value.trim();O&&await h({action:"add",text:O})&&s.value.trim()===O&&(s.value="")},f=O=>h({action:O.done?"undo":"done",id:O.id}),b=B(null),k=async O=>{await h({action:"delete",id:O.id})&&(b.value=O)},I=async()=>{const O=b.value;if(b.value=null,O&&await h({action:"add",text:O.text})&&O.done){const N=(m.todos||[]).find(V=>V.text===O.text&&!V.done);N&&await h({action:"done",id:N.id})}},w=B(""),y=B(""),g=Ve("editBox"),$=async O=>{var N,V;w.value=O.id,y.value=O.text,await ye(),(V=(N=g.value)==null?void 0:N[0])==null||V.focus()},A=()=>{w.value=""},P=async O=>{const N=y.value.trim();if(!N||N===O.text)return A();await h({action:"edit",id:O.id,text:N})&&A()},X=x({get:()=>t.value?"done":"open",set:O=>{t.value=O==="done"}}),D=x(()=>[{id:"open",label:"Open",count:o.value.length},{id:"done",label:"Done",count:n.value.length}]);return(O,N)=>(l(),Y(qe,{id:"todo","size-key":`${p(m).workspace.id}:todo`,title:"To do",note:"Your own notes",tip:'Your personal to-dos, kept on this machine. Add here, or ask Claude: "add to my to-do: …". A ticket key like PROJ-123 in the text becomes a link.'},{head:oe(()=>[U(Ue,{modelValue:X.value,"onUpdate:modelValue":N[0]||(N[0]=V=>X.value=V),options:D.value,label:"Show",class:"todos__view"},null,8,["modelValue","options"])]),default:oe(()=>[a("div",ol,[ze(a("input",{"onUpdate:modelValue":N[1]||(N[1]=V=>s.value=V),class:"input todos__input",type:"text",placeholder:"Add a to-do and press Enter","aria-label":"New to-do",autocomplete:"off",onKeydown:fe(d,["enter"])},null,544),[[Ie,s.value]]),a("button",{type:"button",class:"btn btn--tonal",onClick:d},"Add")]),_.value?(l(),i("p",al,v(_.value),1)):S("",!0),b.value?(l(),i("p",ll,[N[3]||(N[3]=J(" To-do deleted. ",-1)),a("button",{type:"button",class:"todos__undo-btn",onClick:I},"Undo")])):S("",!0),a("ul",rl,[(l(!0),i(W,null,L(c.value,({todo:V,parts:M,meta:F})=>(l(),i("li",{key:V.id,class:q(["todos__item",{"todos__item--done":V.done}])},[a("button",{type:"button",class:q(["todos__check",{"todos__check--on":V.done}]),role:"checkbox","aria-checked":!!V.done,"aria-label":V.done?"Mark not done":"Mark done",onClick:T=>f(V)},null,10,il),w.value===V.id?ze((l(),i("input",{key:0,ref_for:!0,ref_key:"editBox",ref:g,"onUpdate:modelValue":N[2]||(N[2]=T=>y.value=T),class:"input todos__edit",type:"text",maxlength:"500","aria-label":"Edit to-do",autocomplete:"off",onKeydown:[fe(T=>P(V),["enter"]),fe(A,["esc"])],onBlur:A},null,40,cl)),[[Ie,y.value]]):(l(),i("span",{key:1,class:"todos__text",onDblclick:T=>$(V)},[(l(!0),i(W,null,L(M,(T,Z)=>(l(),i(W,{key:Z},[T.url!==void 0?(l(),Y(ae,{key:0,text:T.text,url:T.url},null,8,["text","url"])):(l(),i(W,{key:1},[J(v(T.text),1)],64))],64))),128))],40,ul)),a("span",dl,v(F),1),a("button",{type:"button",class:"todos__pencil","aria-label":"Edit to-do",onClick:T=>$(V)}," ✎ ",8,pl),a("button",{type:"button",class:"todos__delete","aria-label":"Delete to-do",onClick:T=>k(V)}," × ",8,hl)],2))),128)),c.value.length?S("",!0):(l(),i("span",_l,v(p(t)?"Nothing here yet.":"Nothing to do. Add one above, or ask Claude."),1))])]),_:1},8,["size-key"]))}}),vl=K(fl,[["__scopeId","data-v-6dbdbb66"]]),ml={key:0,class:"count"},gl={key:0,class:"empty"},yl={class:"table waiting__table"},kl={key:0,class:"hide-narrow"},wl={key:1,class:"waiting__col waiting__col--pr"},bl=["data-tip"],xl={key:0,class:"hide-narrow"},$l={key:0,class:"hint-row"},Sl=["data-tip"],Cl={class:"table__actions"},Rl=j({__name:"Waiting",setup(e){const t=x(()=>(he.value,Gs(m.turn).map(r=>({row:r,since:r.status_since?ut(r.status_since):null,own:r.status_group==="backlog"})))),s=x(()=>Nt(t.value.map(({row:r})=>r))),o=x(()=>t.value.some(({row:r,own:u})=>r.hold_url||!u&&r.next)),n=x(()=>t.value.length&&t.value.every(({own:r})=>r)?"Your backlog":"Someone else holds the next step");return(r,u)=>(l(),Y(qe,{id:"waiting","size-key":`${p(m).workspace.id}:waiting`,title:"Waiting on others",note:n.value,tip:"Tickets you touched in the last 30 days where someone else holds the next step: a reviewer, QA, or a new owner."},{head:oe(()=>[t.value.length?(l(),i("span",ml,v(t.value.length),1)):S("",!0)]),default:oe(()=>[t.value.length?(l(),Y(cs,{key:1},{default:oe(()=>[a("table",yl,[a("thead",null,[a("tr",null,[u[0]||(u[0]=a("th",{class:"waiting__col waiting__col--ticket"},"Ticket",-1)),u[1]||(u[1]=a("th",{class:"waiting__col waiting__col--status"},"Status",-1)),u[2]||(u[2]=a("th",{class:"waiting__col waiting__col--with"},"With",-1)),o.value?(l(),i("th",kl,"Waiting for")):S("",!0),s.value?(l(),i("th",wl,"PR")):S("",!0),u[3]||(u[3]=a("th",{class:"table__actions-col waiting__col waiting__col--actions"},[a("span",{class:"visually-hidden"},"Copy for AI")],-1))])]),a("tbody",null,[(l(!0),i(W,null,L(t.value,({row:c,since:_,own:h})=>(l(),i("tr",{key:c.row_id},[U(ht,{row:c},null,8,["row"]),a("td",null,[a("span",{class:q(["pill",p(be)("pill",p(qt)(c.status_group))])},v(c.status),3)]),a("td",null,[J(v(h?"you":c.whose)+" ",1),_?(l(),i("span",{key:0,class:q(["age",{"age--old":_.hours>=72}]),"data-tip":c.status+" since "+p(ct)(c.status_since)},v(_.text),11,bl)):S("",!0)]),o.value?(l(),i("td",xl,[c.hold_url?(l(),i("span",$l,[U(ae,{text:c.next,url:c.hold_url,class:"waiting__reason"},null,8,["text","url"]),a("button",{type:"button",class:"hint-label","aria-label":"Full reason","data-tip":c.hold_full||c.next}," full ",8,Sl)])):h?S("",!0):(l(),i(W,{key:1},[J(v(c.next),1)],64))])):S("",!0),s.value?(l(),Y(is,{key:1,row:c},null,8,["row"])):S("",!0),a("td",Cl,[U(_e,{class:"table__ai",query:{ws:p(m).workspace.id,kind:"row",ref:c.row_id}},null,8,["query"])])]))),128))])])]),_:1})):(l(),i("p",gl,"Nothing is waiting on someone else."))]),_:1},8,["size-key","note"]))}}),Tl=K(Rl,[["__scopeId","data-v-90e8bf77"]]),Al=(e,t)=>e.seen instanceof Set?e.seen.has(t):e.seen.includes(t),us=(e,t)=>new Date(e.at).getTime()>(t.base||0)&&!Al(t,e.id),Ml=(e,t)=>{const s=String(t||"").toLowerCase().split(/\s+/).filter(Boolean);if(!s.length)return!0;const o=[e.ref,e.key,e.title,e.kind,e.who,e.text,e.body].join(" ").toLowerCase();return s.every(n=>o.includes(n))},El=e=>e.key||e.ref||e.id,zl=(e,t)=>{const s=new Map;for(const o of e){const n=El(o),r=s.get(n)||{id:n,items:[],newest:o.at,unread:0,title:""};s.set(n,r),r.items.push(o),r.title||(r.title=o.title||""),o.at>r.newest&&(r.newest=o.at),us(o,t)&&(r.unread+=1)}return[...s.values()].sort((o,n)=>String(n.newest).localeCompare(String(o.newest)))},Il=e=>new Set(e.filter(t=>t.group==="you"&&!t.handled).map(t=>t.key)),Ol=(e,t=2)=>{const s=[...new Set(e.map(n=>n.kind))],o=s.length-t;return s.slice(0,t).join(" · ")+(o>0?` +${o}`:"")},Dl=e=>/fail|changes/.test(e)?"bad":/approved|merged|passed/.test(e)?"ok":"",Pl=e=>/comment|approved|changes|mentioned|review requested/.test(e.kind)&&String(e.body||"").trim()!=="",ds=e=>e.ref!==e.key&&(e.key||e.title)||"",Bl=e=>[ds(e),e.text===e.title?"":e.text].filter(Boolean).join(" · "),Ul=e=>e.type==="github"&&e.label==="GitHub"?"GH":ns(e.label),Vl={class:"feed-item__body"},Hl={class:"feed-item__top"},Wl={key:1,class:"feed-item__who"},Fl={key:2,class:"at-you"},ql={class:"feed-item__right"},Nl={class:"timestamp feed-item__when"},jl={key:0,class:"feed-item__text"},Ll={class:"feed-item__full"},Yl={class:"feed-item__actions"},Kl={key:1,class:"feed-item__text"},Xl=j({__name:"FeedItem",props:{item:{},source:{},fresh:{type:Boolean},expanded:{type:Boolean}},emits:["open","toggle","seen"],setup(e,{emit:t}){const s=e,o=t,n=x(()=>Ul(s.source)),r=x(()=>ds(s.item)),u=x(()=>Bl(s.item)),c=x(()=>Dl(s.item.kind)),_=x(()=>c.value||(s.source.type==="github"?"":"jira")),h=x(()=>Pl(s.item)),d=x(()=>h.value&&s.expanded),f=x(()=>(he.value,le(s.item.at))),b=()=>{s.fresh&&o("seen",s.item.id)},k=()=>{o("toggle",s.item.id),b()};return(I,w)=>(l(),i("li",{class:q(["feed-item",{"feed-item--new":e.fresh,"feed-item--open":d.value}]),onClick:b},[a("span",{class:q(["feed-item__icon",p(be)("feed-item__icon",_.value)])},v(n.value),3),a("div",Vl,[a("div",Hl,[h.value?(l(),Y(Fe,{key:0,open:d.value,"aria-label":d.value?"Collapse":"Expand",onClick:ee(k,["stop"])},null,8,["open","aria-label"])):S("",!0),U(ae,{text:e.item.ref,url:e.item.url},null,8,["text","url"]),a("span",{class:q(["feed-item__kind",{"feed-item__kind--bad":c.value==="bad"}])},v(e.item.kind),3),e.item.who?(l(),i("span",Wl,v(e.item.who),1)):S("",!0),e.item.mention?(l(),i("span",Fl,"@you")):S("",!0),a("span",ql,[a("span",Nl,v(f.value),1)])]),d.value?(l(),i(W,{key:0},[r.value?(l(),i("span",jl,v(r.value),1)):S("",!0),a("div",Ll,v(e.item.body),1),a("div",Yl,[a("button",{type:"button",class:"btn btn--tonal",onClick:w[0]||(w[0]=ee(y=>o("open",e.item),["stop"]))}," Open formatted "),U(_e,{query:{ws:p(m).workspace.id,kind:"feed",ref:e.item.id}},null,8,["query"]),U(ae,{text:"Open in "+e.source.label,url:e.item.url,class:"btn"},null,8,["text","url"])])],64)):u.value?(l(),i("span",Kl,v(u.value),1)):S("",!0)])],2))}}),Ot=K(Xl,[["__scopeId","data-v-03f50e9f"]]),Gl=ot({source:"all",view:ke("wt-feed-view","ticket",{writeDefaults:!1}),query:"",openGroups:new Set}),Jl=()=>Gl,Zl={key:0,class:"feed__new-count"},Ql={class:"feed__bar"},er={key:0,class:"alert alert--inline",role:"alert"},tr={key:1,class:"feed__undo",role:"status"},sr={class:"feed__search"},nr={class:"feed__search-count"},or={key:2,class:"empty"},ar={key:3,class:"feed__list"},lr=["title","onClick"],rr={class:"feed__group-text"},ir={class:"feed__group-key"},cr={key:0,class:"feed__group-sum"},ur={class:"feed__group-meta"},dr={class:"feed__group-kinds"},pr={class:"timestamp feed__group-when"},hr={key:0,class:"feed__children"},_r=j({__name:"Feed",emits:["open"],setup(e,{emit:t}){const s=t,o=Jl(),n=[{id:"ticket",label:"By ticket"},{id:"flat",label:"Flat"}],r=x(()=>m.workspace.connectors||[]),u=x(()=>Object.fromEntries(r.value.map(M=>[M.id,M]))),c=M=>u.value[M]||{id:M,type:M,label:M},_=x(()=>r.value.length>1?[{id:"all",label:"All"}].concat(r.value.map(M=>({id:M.id,label:M.label}))):[]),h=x({get:()=>_.value.some(M=>M.id===o.source)?o.source:"all",set:M=>{o.source=M}});Q(()=>m.workspace.id,()=>{o.query=""});const d=x(()=>({base:m.marks.base,seen:new Set(m.marks.seen)})),f=M=>us(M,d.value),b=x(()=>m.feed.filter(f).length),k=x(()=>m.feed.filter(M=>h.value==="all"||M.source===h.value)),I=x(()=>k.value.filter(M=>Ml(M,o.query)).slice(0,200)),w=x(()=>new Map(m.turn.map(M=>[M.key,M]))),y=x(()=>Il(m.turn)),g=x(()=>(he.value,zl(I.value,d.value).map(M=>({...M,row:w.value.get(M.id),move:y.value.has(M.id),when:le(M.newest),kinds:Ol(M.items),open:o.openGroups.has(M.id)||!!o.query})))),$=(M,F)=>{M.has(F)?M.delete(F):M.add(F)},A=M=>$(o.openGroups,M.id),P=M=>$(z.open,M),X=M=>me({seen:[M]}).then(pe),D=B("");pt(()=>{D.value=""});const O=B(null),N=async()=>{const M=new Set(m.marks.seen),F={base:m.marks.base,added:m.feed.map(T=>T.id).filter(T=>!M.has(T))};D.value=await me({seen:m.feed.map(T=>T.id),base:Date.now()}),O.value=D.value?null:F},V=async()=>{const M=O.value;O.value=null,M&&(D.value=await me({unseen:M.added,base:M.base}))};return(M,F)=>(l(),Y(qe,{id:"feed","size-key":`${p(m).workspace.id}:feed`,title:"What changed",note:"Newest first, every source",tip:"Newest first: comments, reviews, merges and failed checks on your PRs, and ticket changes. Each item opens where it happened.",class:"feed",column:"",resize:"width"},{head:oe(()=>[b.value?(l(),i("span",Zl,v(b.value)+" new",1)):S("",!0)]),default:oe(()=>[a("div",Ql,[_.value.length?(l(),Y(Ue,{key:0,modelValue:h.value,"onUpdate:modelValue":F[0]||(F[0]=T=>h.value=T),options:_.value,label:"Feed source"},null,8,["modelValue","options"])):S("",!0),U(Ue,{modelValue:p(o).view,"onUpdate:modelValue":F[1]||(F[1]=T=>p(o).view=T),options:n,label:"Feed view"},null,8,["modelValue"])]),D.value?(l(),i("p",er,v(D.value),1)):S("",!0),O.value?(l(),i("p",tr,[F[5]||(F[5]=J(" Marked all read. ",-1)),a("button",{type:"button",class:"feed__undo-btn",onClick:V},"Undo")])):S("",!0),a("div",sr,[ze(a("input",{"onUpdate:modelValue":F[2]||(F[2]=T=>p(o).query=T),class:"input feed__search-input",type:"search",placeholder:"Search the feed: key, author, words…","aria-label":"Search the feed",autocomplete:"off"},null,512),[[Ie,p(o).query,void 0,{trim:!0}]]),a("span",nr,v(p(o).query?I.value.length+" of "+k.value.length:""),1),a("button",{type:"button",class:"feed__mark-read",onClick:N},"Mark all read")]),p(m).feed.length?(l(),i("ol",ar,[p(o).view==="ticket"?(l(!0),i(W,{key:0},L(g.value,T=>(l(),i("li",{key:T.id,class:q(["feed__group",{"feed__group--new":T.unread,"feed__group--open":T.open,"feed__group--move":T.move}])},[a("div",{class:"feed__group-head",title:T.move?"Your move on this ticket":void 0,onClick:Z=>A(T)},[U(Fe,{open:T.open,"aria-label":"Fold "+T.id},null,8,["open","aria-label"]),a("div",rr,[a("div",ir,[U(ae,{text:T.id,url:T.row?T.row.ticket_url:T.items[0].url,class:"ticket-key feed__group-ticket"},null,8,["text","url"]),T.row||T.title?(l(),i("span",cr,v(T.row?T.row.summary:T.title),1)):S("",!0)]),a("div",ur,[a("span",{class:q(["feed__group-count",{"feed__group-count--new":T.unread}])},v(T.unread?T.unread+" new":T.items.length+(T.items.length===1?" event":" events")),3),a("span",dr,v(T.kinds),1),a("span",pr,v(T.when),1)])]),U(_e,{class:"feed__group-copy",query:{ws:p(m).workspace.id,kind:"thread",ref:T.id}},null,8,["query"])],8,lr),T.open?(l(),i("ul",hr,[(l(!0),i(W,null,L(T.items,Z=>(l(),Y(Ot,{key:Z.id,item:Z,source:c(Z.source),fresh:f(Z),expanded:p(z).open.has(Z.id),onOpen:F[3]||(F[3]=Ne=>s("open",Ne)),onToggle:P,onSeen:X},null,8,["item","source","fresh","expanded"]))),128))])):S("",!0)],2))),128)):(l(!0),i(W,{key:1},L(I.value,T=>(l(),Y(Ot,{key:T.id,item:T,source:c(T.source),fresh:f(T),expanded:p(z).open.has(T.id),onOpen:F[4]||(F[4]=Z=>s("open",Z)),onToggle:P,onSeen:X},null,8,["item","source","fresh","expanded"]))),128))])):(l(),i("p",or," No changes yet. New comments, reviews and status changes show up here. "))]),_:1},8,["size-key"]))}}),fr=K(_r,[["__scopeId","data-v-ce5c36bb"]]),vr={id:"first-run",class:"island first-run","aria-labelledby":"first-run-title"},mr={class:"first-run__text"},gr=j({__name:"FirstRun",setup(e){const t=()=>Qt("connectors");return(s,o)=>(l(),i("section",vr,[o[1]||(o[1]=a("h2",{id:"first-run-title",class:"first-run__title"}," Whose Turn watches your tickets and pull requests and shows what is waiting on you. ",-1)),a("p",mr,[a("b",null,v(p(m).workspace.name),1),o[0]||(o[0]=J(" has no sources yet, so there is nothing to watch. Connect a repository or a tracker. ",-1))]),a("div",{class:"first-run__actions"},[a("button",{type:"button",class:"btn btn--tonal",onClick:t},"Add a source")]),o[2]||(o[2]=a("p",{class:"first-run__text first-run__ai"},' Or ask Claude: "add my GitHub repository to Whose Turn." ',-1))]))}}),yr=K(gr,[["__scopeId","data-v-84359c2d"]]),kr=new RegExp("(`[^`]{1,500}`)|(\\*\\*[^*]{1,500}\\*\\*)|(\\[[^\\]]{1,300}\\]\\(https?:\\/\\/[^)\\s]{1,2000}\\))|(https?:\\/\\/[^\\s<>()]{1,2000})|(@[A-Za-z0-9-]+(?: [A-Z][a-z]+)?)|((?<![A-Za-z0-9])\\*[^*\\s][^*]{0,500}\\*(?![A-Za-z0-9])|(?<![A-Za-z0-9])_[^_\\s][^_]{0,500}_(?![A-Za-z0-9]))","g"),Dt=(e,t)=>{const s=it(t);return s?{type:"link",text:e,href:s}:{type:"text",text:e}},wr=e=>{const t=e[0];if(e[1])return{type:"code",text:t.slice(1,-1)};if(e[2])return{type:"strong",text:t.slice(2,-2)};if(e[3]){const s=t.indexOf("](");return Dt(t.slice(1,s),t.slice(s+2,-1))}return e[4]?Dt(t,t):e[5]?{type:"mention",text:t}:{type:"em",text:t.slice(1,-1)}},Te=e=>{const t=new RegExp(kr),s=[];let o=0,n;for(;n=t.exec(e);)n.index>o&&s.push({type:"text",text:e.slice(o,n.index)}),s.push(wr(n)),o=n.index+n[0].length;return o<e.length&&s.push({type:"text",text:e.slice(o)}),s},br=e=>{const t=String(e||"").replace(/<!--[\s\S]*?-->/g,"").split(`
2
- `),s=[];let o=[],n=null;const r=()=>{o.length&&(s.push({type:"paragraph",lines:o.map(Te)}),o=[]),n=null};for(let u=0;u<t.length;u++){const c=t[u];if(/^\s*```/.test(c)){r();const f=[];for(u++;u<t.length&&!/^\s*```/.test(t[u]);u++)f.push(t[u]);s.push({type:"fence",text:f.join(`
3
- `)});continue}const _=c.match(/^(#{1,6})\s+(.*)$/);if(_){r(),s.push({type:"heading",level:_[1].length<=2?4:5,inline:Te(_[2])});continue}const h=c.match(/^>\s?(.*)$/);if(h){r(),s.push({type:"quote",inline:Te(h[1])});continue}const d=c.match(/^\s*([-*+]|\d+[.)])\s+(.*)$/);if(d){const f=n;o.length&&(r(),n=f);const b=/\d/.test(d[1]),k=n,I=k&&k.ordered===b?k:{type:"list",ordered:b,items:[]};I!==k&&s.push(I),n=I,I.items.push(Te(d[2]));continue}if(!c.trim()){r();continue}n=null,o.push(c)}return r(),s},Me=(e,t,s="")=>{const o=document.createElement(e);return o.textContent=t,s&&(o.className=s),o},xr=e=>{if(e.type==="text")return document.createTextNode(e.text);if(e.type==="link"){const t=Me("a",e.text);return t.setAttribute("href",e.href),t.setAttribute("target","_blank"),t.setAttribute("rel","noopener"),t}return e.type==="mention"?Me("span",e.text,"markdown-view__mention"):Me(e.type,e.text)},ps=(e,t)=>{e.forEach(s=>t.append(xr(s)))},Ge=(e,t)=>{const s=document.createElement(e);return ps(t,s),s},$r=e=>{if(e.type==="fence"){const s=document.createElement("pre");return s.append(Me("code",e.text)),s}if(e.type==="heading")return Ge(`h${e.level}`,e.inline);if(e.type==="quote")return Ge("blockquote",e.inline);if(e.type==="list"){const s=document.createElement(e.ordered?"ol":"ul");return e.items.forEach(o=>s.append(Ge("li",o))),s}const t=document.createElement("p");return e.lines.forEach((s,o)=>{o&&t.append(document.createElement("br")),ps(s,t)}),t},Sr=e=>{const t=document.createDocumentFragment();return br(e).forEach(s=>t.append($r(s))),t},Cr=j({__name:"MarkdownView",props:{source:{default:""}},setup(e){const t=e,s=B(null);return Cs(()=>{s.value&&s.value.replaceChildren(Sr(t.source))}),(o,n)=>(l(),i("div",{ref_key:"host",ref:s,class:"markdown-view"},null,512))}}),Rr=K(Cr,[["__scopeId","data-v-dcf42e95"]]),Tr={class:"modal__card"},Ar={class:"modal__head"},Mr={id:"modal-title",class:"modal__title"},Er=["href"],zr=j({__name:"CommentModal",setup(e){const t=x(()=>z.modal),s=x(()=>t.value?[t.value.ref,t.value.kind,t.value.who].filter(Boolean).join(" · "):""),o=x(()=>t.value?it(t.value.url):""),n=x(()=>{var c;const u=(m.workspace.connectors||[]).find(_=>{var h;return _.id===((h=t.value)==null?void 0:h.source)});return"Open in "+(u?u.label:(c=t.value)==null?void 0:c.source)}),r=()=>{z.modal=null};return(u,c)=>t.value?(l(),i("div",{key:0,class:"modal",role:"dialog","aria-modal":"true","aria-labelledby":"modal-title",onClick:ee(r,["self"])},[a("div",Tr,[a("div",Ar,[a("h3",Mr,v(s.value),1),o.value?(l(),i("a",{key:0,class:"btn",href:o.value,target:"_blank",rel:"noopener"},v(n.value),9,Er)):S("",!0),a("button",{type:"button",class:"btn",onClick:r},"Close")]),U(Rr,{source:t.value.body||t.value.text||""},null,8,["source"])])])):S("",!0)}}),Ir={class:"modal__card feedback-sheet__card"},Or={class:"modal__head"},Dr={class:"modal__meta"},Pr=["aria-disabled"],Br={key:0,class:"alert"},Ur={class:"sheet-form"},Vr=["placeholder","onKeydown"],Hr={key:0,class:"feedback-sheet__note"},Wr={key:1,class:"feedback-sheet__note"},Fr={key:2,class:"empty"},qr=["href"],Nr={key:3,class:"feedback-sheet__reports"},jr=["href"],Lr={class:"feedback-sheet__report-title"},Yr={class:"timestamp"},Kr=j({__name:"FeedbackSheet",setup(e){const t=B(""),s=B(null),o=B(!1),n=B([]),r=B(null),u=B(""),c=B(!0),_=we("",1600),h=B([]),d=w=>"/report?id="+encodeURIComponent(w),f=()=>We("/api/feedback").then(w=>{c.value=w.configured,u.value=w.configured?"Linear · "+w.project:"not connected",h.value=w.reports||[]},()=>{n.value=[Oe+"; past reports cannot be loaded."]}),b=()=>{z.feedback=!1},k=()=>{const w=t.value.trim();if(!w){n.value=["Write at least one line."];return}n.value=[],navigator.clipboard.writeText(w).then(()=>{_.value="sent"},()=>{_.value="failed"})},I=()=>{if(!c.value||o.value)return;const w=t.value.trim();if(!w){n.value=["Write at least one line."];return}o.value=!0,ie("/api/feedback",{text:w,from:"the window",ws:m.workspace.id,kind_ref:{kind:"workspace",ref:m.workspace.id}}).then(y=>{if(o.value=!1,y.error){n.value=jt(y.error);return}r.value=y.issue||null,t.value="",h.value=y.reports||h.value}).catch(y=>{o.value=!1,n.value=[re(y,{refused:"Not sent",unreachable:Qe})]})};return Q(()=>z.feedback,w=>{w&&(n.value=[],r.value=null,f().then(()=>ye(()=>{var y;return(y=s.value)==null?void 0:y.focus()})))}),(w,y)=>p(z).feedback?(l(),i("div",{key:0,class:"modal",role:"dialog","aria-modal":"true","aria-labelledby":"feedback-title",onClick:ee(b,["self"])},[a("div",Ir,[a("div",Or,[y[1]||(y[1]=a("h3",{id:"feedback-title",class:"modal__title"},"Report a problem or a wish",-1)),a("span",Dr,v(u.value),1),a("button",{type:"button",class:"btn btn--tonal","aria-disabled":!c.value||o.value,onClick:I},v(o.value?"Composing…":"Send"),9,Pr),a("button",{type:"button",class:"btn",onClick:b},"Close")]),n.value.length?(l(),i("div",Br,v(n.value.join(" · ")),1)):S("",!0),a("div",Ur,[ze(a("textarea",{ref_key:"field",ref:s,"onUpdate:modelValue":y[0]||(y[0]=g=>t.value=g),class:"input feedback-sheet__text",rows:"5",placeholder:"Describe the problem or the wish in your own words."+(c.value?" Cmd+Enter sends.":""),autocomplete:"off",onKeydown:[fe(ee(I,["meta","prevent"]),["enter"]),fe(ee(I,["ctrl","prevent"]),["enter"])]},null,40,Vr),[[Ie,t.value]]),c.value?(l(),i("p",Wr," An assistant turns it into a proper issue (title, kind, description) and files it in the Whose Turn backlog with this workspace's summary attached. ")):(l(),i("p",Hr,[y[2]||(y[2]=J(" The maintainer's tracker is not connected on this machine, so nothing can be sent from here. Copy your remark and pass it on yourself. ",-1)),a("button",{type:"button",class:"btn",onClick:k},v(p(_)==="sent"?"Copied":p(_)==="failed"?"Could not copy":"Copy remark"),1)])),r.value?(l(),i("p",Fr,[y[3]||(y[3]=J(" Filed as ",-1)),a("a",{href:d(r.value.identifier),target:"_blank",rel:"noopener"},v(r.value.identifier),9,qr),J(" · "+v(r.value.title),1)])):S("",!0),h.value.length?(l(),i("div",Nr,[y[4]||(y[4]=a("h4",{class:"sheet-form__heading"},"Your reports",-1)),(l(!0),i(W,null,L(h.value,g=>(l(),i("div",{key:g.id,class:"feedback-sheet__report"},[a("a",{href:d(g.id),target:"_blank",rel:"noopener"},v(g.id),9,jr),a("span",Lr,v(g.title),1),a("span",{class:q(["pill",p(be)("pill",p(Js)(g.outcome))])},v(g.state||"filed"),3),a("span",Yr,v(p(le)(g.changed_at||g.filed_at)),1)]))),128))])):S("",!0)])])])):S("",!0)}}),Xr=K(Kr,[["__scopeId","data-v-8e2792d9"]]),Gr={class:"field-row"},Jr={class:"field-row__label"},Zr={key:0,class:"field-row__check"},Qr=["checked"],ei=["aria-invalid","value"],ti={key:0,value:""},si=["value"],ni=["value"],oi={key:3,class:"field-row__inline"},ai=["value"],li=["value"],ri=["aria-invalid","value"],ii=["aria-invalid","placeholder","value"],ci={key:6,class:"field-row__error",role:"alert"},ui={key:7,class:"field-row__hint"},di=j({__name:"FieldRow",props:Ze({spec:{},placeholder:{default:""},hint:{default:""},error:{default:""}},{modelValue:{type:[String,Array,Boolean]},modelModifiers:{}}),emits:Ze(["secret"],["update:modelValue"]),setup(e,{emit:t}){const s=e,o=t,n=Pt(e,"modelValue"),r=/^#[0-9a-f]{6}$/i,u=()=>String(n.value??""),c=()=>n.value||[],_=k=>{n.value=k},h=()=>n.value??s.spec.default??!1,d=k=>{n.value=k===(s.spec.default??!1)?void 0:k},f=k=>k.target.value,b=k=>_(k.split(",").map(I=>I.trim()).filter(Boolean));return(k,I)=>(l(),i("div",Gr,[a("label",Jr,v(e.spec.label)+v(e.spec.required?" *":""),1),e.spec.boolean?(l(),i("label",Zr,[a("input",{type:"checkbox",checked:h(),onChange:I[0]||(I[0]=w=>d(w.target.checked))},null,40,Qr),J(" "+v(e.hint||e.spec.hint),1)])):e.spec.choices?(l(),i("select",{key:1,class:"input","aria-invalid":!!e.error,value:u(),onChange:I[1]||(I[1]=w=>_(f(w)))},[!e.spec.required&&!e.spec.choices.includes(u())?(l(),i("option",ti,"(default)")):S("",!0),u()&&!e.spec.choices.includes(u())?(l(),i("option",{key:1,value:u()},v(u()),9,si)):S("",!0),(l(!0),i(W,null,L(e.spec.choices,w=>(l(),i("option",{key:w,value:w},v(w),9,ni))),128))],40,ei)):e.spec.secret?(l(),i("input",{key:2,class:"input",type:"password",placeholder:"paste to replace",autocomplete:"off",onInput:I[2]||(I[2]=w=>o("secret",e.spec.key,f(w)))},null,32)):e.spec.colour?(l(),i("div",oi,[a("input",{class:"input field-row__colour",type:"color",value:r.test(u())?u():"#888888",onInput:I[3]||(I[3]=w=>_(f(w)))},null,40,ai),a("input",{class:"input",type:"text",placeholder:"#rrggbb",value:u(),onInput:I[4]||(I[4]=w=>_(f(w)))},null,40,li),a("button",{type:"button",class:"btn",onClick:I[5]||(I[5]=w=>_(""))},"None")])):e.spec.list?(l(),i("input",{key:4,class:"input",type:"text","aria-invalid":!!e.error,value:c().join(", "),onInput:I[6]||(I[6]=w=>b(f(w)))},null,40,ri)):(l(),i("input",{key:5,class:"input",type:"text","aria-invalid":!!e.error,placeholder:e.placeholder,value:u(),onInput:I[7]||(I[7]=w=>_(f(w)))},null,40,ii)),e.error?(l(),i("small",ci,v(e.error),1)):S("",!0),!e.spec.boolean&&(e.hint||e.spec.hint)?(l(),i("small",ui,v(e.hint||e.spec.hint),1)):S("",!0)]))}}),ue=K(di,[["__scopeId","data-v-33714840"]]),pi={class:"modal__card settings-sheet__card"},hi={class:"modal__head"},_i={class:"modal__meta"},fi={key:0,class:"settings-sheet__dirty"},vi={key:0,class:"settings-sheet__confirm",role:"alertdialog"},mi={class:"settings-sheet__confirm-text"},gi={key:1,class:"alert settings-sheet__alert",role:"alert"},yi={key:2,class:"alert settings-sheet__alert"},ki={key:3,class:"settings-sheet__body"},wi={class:"settings-sheet__list"},bi=["aria-current","onClick"],xi={class:"sheet-form"},$i={key:0,class:"empty"},Si={ref:"connectors-head",class:"sheet-form__heading"},Ci={class:"settings-sheet__connector-head"},Ri={class:"settings-sheet__connector-name"},Ti=["onClick"],Ai={class:"settings-sheet__actions"},Mi=["onClick"],Ei={key:0,class:"settings-sheet__rules"},zi={class:"settings-sheet__rule-when"},Ii={class:"settings-sheet__rule-then"},Oi={key:1,class:"empty"},Di=j({__name:"SettingsSheet",setup(e){const t=B([]),s=B(0),o=B([]),n=B({workspace:[],theme:[],rules:[],statuses:[]}),r=B(""),u=B([]),c=B({}),_=new Map,h=B({}),d=B({}),f=Ve("connectors-head"),b=new Map,k=B(0),I=B(""),w=B(null),y=B(""),g=x(()=>z.settings&&!y.value&&(k.value>0||$t(t.value)!==I.value)),$=R=>c.value[`workspaces[${s.value}].${R}`]||"",A=x(()=>{const R=D.value&&_.get(Re(D.value));return R&&D.value&&R!==D.value.id?`Its to-dos and marks stay under the old id "${R}"; they do not follow the rename.`:""}),P={key:"id",label:"Source id"},X={key:"label",label:"Label"},D=x(()=>t.value[s.value]),O=x(()=>(D.value&&h.value[D.value.id]||[]).map(Cn)),N=x(()=>D.value&&d.value[D.value.id]||[]),V=R=>o.value.find(E=>E.type===R.type)||{type:R.type,label:R.type,fields:[]},M=x(()=>t.value.map((R,E)=>({uid:Re(R),label:R.name||R.id||"Workspace "+(E+1)}))),F=x(()=>{var R;return(((R=D.value)==null?void 0:R.connectors)||[]).map(E=>({entry:E,uid:Re(E),spec:V(E)}))}),T=R=>{var C;const E=(C=m.workspaces.find(G=>G.id===R))==null?void 0:C.theme_seed;return E?`empty: ${E}, derived from the workspace id`:"empty derives one from the workspace id"},Z=(R,E)=>R[E],Ne=(R,E,C)=>{b.set(R,Object.assign(b.get(R)||{},{[E]:C})),k.value+=1},hs=(R,E,C)=>E==="id"?R.id=String(C??""):ce(R,E,C),_s=()=>{t.value.push(bt({id:"new-"+(t.value.length+1),name:"New workspace"})),s.value=t.value.length-1},fs=()=>{t.value.splice(s.value,1),s.value=Math.max(0,s.value-1)},vs=()=>{D.value&&(w.value={text:`Delete ${D.value.name||D.value.id}? Its to-dos and marks stay on disk.`,yes:"Delete",no:"Keep",run:fs})},ms=R=>{var E;return(E=D.value)==null?void 0:E.connectors.push({type:R.type})},gs=R=>{D.value&&(b.delete(D.value.connectors[R]),D.value.connectors.splice(R,1))},ys=R=>{if(!D.value)return;const E=V(D.value.connectors[R]).label;w.value={text:`Remove the ${E} source from ${D.value.name||D.value.id}?`,yes:"Remove",no:"Keep",run:()=>gs(R)}},ks=()=>We("/api/config").then(R=>{y.value="",t.value=(R.workspaces||[]).map(bt),o.value=R.connectors||[],n.value=R.fields,b.clear(),k.value=0,w.value=null,s.value=Math.max(0,t.value.findIndex(E=>E.id===m.workspace.id)),r.value=R.config_file||"",u.value=R.problems||[],c.value={},_.clear(),t.value.forEach(E=>_.set(Re(E),E.id)),h.value=R.tables||{},d.value=R.table_warnings||{},I.value=$t(t.value)}).catch(()=>{y.value=Oe+"; settings cannot be loaded."}).then(ye).then(()=>{var R;z.settingsAt==="connectors"&&((R=f.value)==null||R.scrollIntoView({block:"start"})),z.settingsAt=""}),je=()=>{z.settings=!1},_t=()=>{w.value={text:"Discard changes?",yes:"Discard",no:"Keep editing",run:je}},ft=()=>g.value?_t():je(),vt=R=>{const E=w.value;w.value=null,R&&(E==null||E.run())},ws=async()=>{try{const R=await ie("/api/config",{workspaces:t.value.map(E=>pn(E)),secrets:_n(t.value,b)});if(R.error){const E=Zs(R.error);c.value=Object.fromEntries(E.filter(C=>C.field!=="workspaces").map(C=>[C.field,C.description])),u.value=E.length?E.filter(C=>C.field==="workspaces").map(C=>C.description):jt(R.error),E.length&&!u.value.length&&(u.value=["Fix the marked fields; nothing was saved."]);return}je(),ts()}catch(R){u.value=[re(R,{unreachable:Oe+"; your changes are kept, save again."})]}};return Q(g,R=>{z.settingsDirty=R},{immediate:!0}),Q(()=>z.settingsAsk,R=>{R&&(z.settingsAsk=!1,_t())}),Q(()=>z.settings,R=>{R&&ks()}),(R,E)=>p(z).settings?(l(),i("div",{key:0,class:"modal",role:"dialog","aria-modal":"true","aria-labelledby":"settings-title",onClick:ee(ft,["self"])},[a("div",pi,[a("div",hi,[E[2]||(E[2]=a("h3",{id:"settings-title",class:"modal__title"},"Settings",-1)),a("span",_i,v(r.value),1),g.value?(l(),i("span",fi,"Unsaved changes")):S("",!0),y.value?S("",!0):(l(),i("button",{key:1,type:"button",class:"btn btn--tonal",onClick:ws},"Save")),a("button",{type:"button",class:"btn",onClick:ft},"Close")]),w.value?(l(),i("div",vi,[a("span",mi,v(w.value.text),1),a("button",{type:"button",class:"btn btn--danger",onClick:E[0]||(E[0]=C=>vt(!0))},v(w.value.yes),1),a("button",{type:"button",class:"btn",onClick:E[1]||(E[1]=C=>vt(!1))},v(w.value.no),1)])):S("",!0),y.value?(l(),i("div",gi,v(y.value),1)):u.value.length?(l(),i("div",yi,v(u.value.join(" · ")),1)):S("",!0),y.value?S("",!0):(l(),i("div",ki,[a("ul",wi,[(l(!0),i(W,null,L(M.value,(C,G)=>(l(),i("li",{key:C.uid},[a("button",{type:"button",class:"settings-sheet__workspace","aria-current":G===s.value,onClick:$e=>s.value=G},v(C.label),9,bi)]))),128)),a("li",null,[a("button",{type:"button",class:"settings-sheet__workspace settings-sheet__workspace--add",onClick:_s}," + Add workspace ")])]),a("div",xi,[D.value?(l(),i(W,{key:1},[E[3]||(E[3]=a("h4",{class:"sheet-form__heading"},"Workspace",-1)),(l(!0),i(W,null,L(n.value.workspace,C=>(l(),Y(ue,{key:C.key,spec:C,hint:C.key==="id"?A.value:"",error:$(C.key),"model-value":Z(D.value,C.key),"onUpdate:modelValue":G=>hs(D.value,C.key,G)},null,8,["spec","hint","error","model-value","onUpdate:modelValue"]))),128)),E[4]||(E[4]=a("h4",{class:"sheet-form__heading"},"Theme",-1)),(l(!0),i(W,null,L(n.value.theme,C=>{var G;return l(),Y(ue,{key:C.key,spec:C,hint:C.key==="seed"&&!((G=D.value.theme)!=null&&G.seed)?T(D.value.id):"","model-value":Z(D.value.theme,C.key),"onUpdate:modelValue":$e=>p(ce)(D.value.theme,C.key,$e)},null,8,["spec","hint","model-value","onUpdate:modelValue"])}),128)),a("h4",Si,"Sources",512),(l(!0),i(W,null,L(F.value,({entry:C,spec:G,uid:$e},mt)=>(l(),i("div",{key:$e,class:"settings-sheet__connector"},[a("div",Ci,[a("strong",Ri,v(G.label),1),a("button",{type:"button",class:"btn btn--danger",onClick:se=>ys(mt)}," Remove ",8,Ti)]),U(ue,{spec:P,placeholder:G.type,hint:"only needed when one type appears twice","model-value":Z(C,"id"),"onUpdate:modelValue":se=>p(ce)(C,"id",se)},null,8,["placeholder","model-value","onUpdate:modelValue"]),U(ue,{spec:X,placeholder:G.label,hint:"its name in the feed","model-value":Z(C,"label"),"onUpdate:modelValue":se=>p(ce)(C,"label",se)},null,8,["placeholder","model-value","onUpdate:modelValue"]),(l(!0),i(W,null,L(G.fields,se=>(l(),Y(ue,{key:se.key,spec:se,error:$("connectors["+mt+"]."+se.key),"model-value":Z(C,se.key),"onUpdate:modelValue":Le=>p(ce)(C,se.key,Le),onSecret:(Le,bs)=>Ne(C,Le,bs)},null,8,["spec","error","model-value","onUpdate:modelValue","onSecret"]))),128))]))),128)),a("div",Ai,[(l(!0),i(W,null,L(o.value,C=>(l(),i("button",{key:C.type,type:"button",class:"btn",onClick:G=>ms(C)}," + Add "+v(C.label)+" source ",9,Mi))),128))]),E[5]||(E[5]=a("h4",{class:"sheet-form__heading"},"Rules",-1)),(l(!0),i(W,null,L(n.value.rules,C=>(l(),Y(ue,{key:C.key,spec:C,error:$("rules."+C.key),"model-value":Z(D.value.rules,C.key),"onUpdate:modelValue":G=>p(ce)(D.value.rules,C.key,G)},null,8,["spec","error","model-value","onUpdate:modelValue"]))),128)),(l(!0),i(W,null,L(n.value.statuses,C=>(l(),Y(ue,{key:C.key,spec:C,"model-value":Z(D.value.rules.statuses,C.key),"onUpdate:modelValue":G=>p(ce)(D.value.rules.statuses,C.key,G)},null,8,["spec","model-value","onUpdate:modelValue"]))),128)),E[6]||(E[6]=a("h4",{class:"sheet-form__heading"},"Whose turn table",-1)),E[7]||(E[7]=a("p",{class:"settings-sheet__rules-note"}," The rows in force, top to bottom: the first one that fits decides. Read-only here: ask Claude to change them. ",-1)),(l(!0),i(W,null,L(N.value,C=>(l(),i("p",{key:C,class:"settings-sheet__rules-warning"},v(C),1))),128)),O.value.length?(l(),i("ol",Ei,[(l(!0),i(W,null,L(O.value,(C,G)=>(l(),i("li",{key:G,class:"settings-sheet__rule"},[a("span",zi,v(C.when),1),a("span",Ii,v(C.then),1)]))),128))])):(l(),i("p",Oi,"Save the workspace to see its rows.")),a("div",{class:"settings-sheet__actions"},[a("button",{type:"button",class:"btn btn--danger",onClick:vs}," Delete workspace ")])],64)):(l(),i("p",$i,"No workspaces yet. Add one on the left."))])]))])])):S("",!0)}}),Pi=K(Di,[["__scopeId","data-v-649d0735"]]),Bi={class:"app__shell"},Ui=["inert"],Vi={id:"wt",class:"dashboard dashboard--fit"},Hi=["inert"],Wi={class:"dashboard__main"},Fi=j({__name:"App",setup(e){const t=x(()=>!!m.workspace.id&&!m.workspace.connectors.length),{size:s}=dt(()=>`${m.workspace.id}:feed`),o=x(()=>s.value===null?void 0:{"--feed-width":s.value+"px"}),n=x(()=>es.value!==null);Xn(n),Gn(n),Q(Ke,cn,{flush:"post"});const r={light:{fill:"#d8e2ff",ink:"#001a41",dot:"#2c5697"},dark:{fill:"#2b4678",ink:"#d8e2ff",dot:"#adc6ff"}},u=x(()=>{const{id:c,name:_}=m.workspace;if(!c)return null;const h=Ke.value,d=r[He.value?"dark":"light"],f={fill:h["--md-primary-container"]||d.fill,ink:h["--md-on-primary-container"]||d.ink,dot:h["--md-primary"]||d.dot};return"data:image/svg+xml,"+encodeURIComponent(Ln(os({id:c,name:_},lt),f))});return Ws(u),rt("Escape",zn,{target:document}),at(()=>{En()}),(c,_)=>(l(),i("div",{class:"app",style:Ee(p(Ke))},[U(ho,{inert:n.value,onSettings:_[0]||(_[0]=h=>p(z).settings=!0)},null,8,["inert"]),a("div",Bi,[U(Uo,{inert:n.value,onReport:_[1]||(_[1]=h=>p(z).feedback=!0)},null,8,["inert"]),p(Ct).length?(l(),i("div",{key:0,class:"alert",inert:n.value},[J(v(p(Ct).join(" · "))+" ",1),a("button",{type:"button",class:"alert__action",onClick:_[2]||(_[2]=h=>p(Qt)())},"Open Settings")],8,Ui)):S("",!0),a("div",Vi,[_[4]||(_[4]=a("canvas",{id:"backdrop",class:"dashboard__backdrop","aria-hidden":"true"},null,-1)),U(oa,{inert:n.value},null,8,["inert"]),t.value?(l(),Y(yr,{key:0,inert:n.value},null,8,["inert"])):(l(),i("div",{key:1,class:"dashboard__layout",style:Ee(o.value),inert:n.value},[a("div",Wi,[U(tl,{class:"dashboard__move"}),U(vl,{class:"dashboard__todo"}),U(Tl,{class:"dashboard__waiting"})]),U(fr,{class:"dashboard__feed",onOpen:_[3]||(_[3]=h=>p(z).modal=h)})],12,Hi)),U(Xr),U(Pi),U(zr)])])],4))}}),qi=K(Fi,[["__scopeId","data-v-6bc064de"]]);Rs(qi).mount("#app");Bn();un();