paintress 0.5.2 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -18
- package/README.zh-CN.md +74 -17
- package/dist/cli.js +843 -78
- package/dist/index.js +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/{render-CCxYNL6A.js → render-DWs1iQ0v.js} +887 -59
- package/dist/server-DBRmwE_v.js +3462 -0
- package/package.json +1 -1
- package/skills/paintress/SKILL.md +64 -25
- package/ui/dist/assets/index-CSUM68ms.js +8 -0
- package/ui/dist/assets/{index-CP8lZ8lp.css → index-CXBgFia_.css} +1 -1
- package/ui/dist/assets/marked.esm-DZCVybOJ.js +72 -0
- package/ui/dist/index.html +2 -2
- package/dist/server-ssrAxbTR.js +0 -976
- package/ui/dist/assets/index-BnDj5nL8.js +0 -8
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return t(this.context.count)},getNextContextId(){return t(this.context.count++)}};function t(t){let n=String(t),r=n.length-1;return e.context.id+(r?String.fromCharCode(96+r):``)+n}function n(t){e.context=t}var r=(e,t)=>e===t,i=Symbol(`solid-track`),a={equals:r},o=null,s=oe,c=1,l=2,u={owned:null,cleanups:null,context:null,owner:null},d=null,f=null,p=null,m=null,h=null,g=0;function _(e,t){let n=p,r=d,i=e.length===0,a=t===void 0?r:t,o=i?u:{owned:null,cleanups:null,context:a?a.context:null,owner:a},s=i?e:()=>e(v(o));d=o,p=null;try{return j(s,!0)}finally{p=n,d=r}}function v(e){return()=>C(()=>F(e))}function y(e,t){t=t?Object.assign({},a,t):a;let n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0};return[D.bind(n),e=>(typeof e==`function`&&(e=f&&f.running&&f.sources.has(n)?e(n.tValue):e(n.value)),ie(n,e))]}function b(e,t,n){O(k(e,t,!1,c))}function x(e,t,n){s=N;let r=k(e,t,!1,c),i=re&&ne(re);i&&(r.suspense=i),n&&n.render||(r.user=!0),h?h.push(r):O(r)}function S(e,t,n){n=n?Object.assign({},a,n):a;let r=k(e,t,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,O(r),D.bind(r)}function C(e){if(p===null)return e();let t=p;p=null;try{return e()}finally{p=t}}function w(e,t,n){let r=Array.isArray(e),i,a=n&&n.defer;return n=>{let o;if(r){o=Array(e.length);for(let t=0;t<e.length;t++)o[t]=e[t]()}else o=e();if(a)return a=!1,n;let s=C(()=>t(o,i,n));return i=o,s}}function T(e){x(()=>C(e))}function E(e){return d===null||(d.cleanups===null?d.cleanups=[e]:d.cleanups.push(e)),e}var[ee,te]=y(!1);function ne(e){let t;return d&&d.context&&(t=d.context[e.id])!==void 0?t:e.defaultValue}var re;function D(){let e=f&&f.running;if(this.sources&&(e?this.tState:this.state)){if((e?this.tState:this.state)===c)O(this);else{let e=m;m=null,j(()=>se(this),!1),m=e}}if(p){let e=this.observers;if(!e||e[e.length-1]!==p){let t=e?e.length:0;p.sources?(p.sources.push(this),p.sourceSlots.push(t)):(p.sources=[this],p.sourceSlots=[t]),e?(e.push(p),this.observerSlots.push(p.sources.length-1)):(this.observers=[p],this.observerSlots=[p.sources.length-1])}}return e&&f.sources.has(this)?this.tValue:this.value}function ie(e,t,n){let r=f&&f.running&&f.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(r,t)){if(f){let r=f.running;(r||!n&&f.sources.has(e))&&(f.sources.add(e),e.tValue=t),r||(e.value=t)}else e.value=t;e.observers&&e.observers.length&&j(()=>{for(let t=0;t<e.observers.length;t+=1){let n=e.observers[t],r=f&&f.running;r&&f.disposed.has(n)||((r?!n.tState:!n.state)&&(n.pure?m.push(n):h.push(n),n.observers&&P(n)),r?n.tState=c:n.state=c)}if(m.length>1e6)throw m=[],Error()},!1)}return t}function O(e){if(!e.fn)return;F(e);let t=g;ae(e,f&&f.running&&f.sources.has(e)?e.tValue:e.value,t),f&&!f.running&&f.sources.has(e)&&queueMicrotask(()=>{j(()=>{f&&(f.running=!0),p=d=e,ae(e,e.tValue,t),p=d=null},!1)})}function ae(e,t,n){let r,i=d,a=p;p=d=e;try{r=e.fn(t)}catch(t){return e.pure&&(f&&f.running?(e.tState=c,e.tOwned&&e.tOwned.forEach(F),e.tOwned=void 0):(e.state=c,e.owned&&e.owned.forEach(F),e.owned=null)),e.updatedAt=n+1,R(t)}finally{p=a,d=i}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&`observers`in e?ie(e,r,!0):f&&f.running&&e.pure?(f.sources.has(e)||(e.value=r),f.sources.add(e),e.tValue=r):e.value=r,e.updatedAt=n)}function k(e,t,n,r=c,i){let a={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:d,context:d?d.context:null,pure:n};return f&&f.running&&(a.state=0,a.tState=r),d===null||d!==u&&(f&&f.running&&d.pure?d.tOwned?d.tOwned.push(a):d.tOwned=[a]:d.owned?d.owned.push(a):d.owned=[a]),a}function A(e){let t=f&&f.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===l)return se(e);if(e.suspense&&C(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<g);){if(t&&f.disposed.has(e))return;(t?e.tState:e.state)&&n.push(e)}for(let r=n.length-1;r>=0;r--){if(e=n[r],t){let t=e,i=n[r+1];for(;(t=t.owner)&&t!==i;)if(f.disposed.has(t))return}if((t?e.tState:e.state)===c)O(e);else if((t?e.tState:e.state)===l){let t=m;m=null,j(()=>se(e,n[0]),!1),m=t}}}function j(e,t){if(m)return e();let n=!1;t||(m=[]),h?n=!0:h=[],g++;try{let t=e();return M(n),t}catch(e){n||(h=null),m=null,R(e)}}function M(e){if(m&&=(oe(m),null),e)return;let t;if(f){if(!f.promises.size&&!f.queue.size){let e=f.sources,n=f.disposed;h.push.apply(h,f.effects),t=f.resolve;for(let e of h)`tState`in e&&(e.state=e.tState),delete e.tState;f=null,j(()=>{for(let e of n)F(e);for(let t of e){if(t.value=t.tValue,t.owned)for(let e=0,n=t.owned.length;e<n;e++)F(t.owned[e]);t.tOwned&&(t.owned=t.tOwned),delete t.tValue,delete t.tOwned,t.tState=0}te(!1)},!1)}else if(f.running){f.running=!1,f.effects.push.apply(f.effects,h),h=null,te(!0);return}}let n=h;h=null,n.length&&j(()=>s(n),!1),t&&t()}function oe(e){for(let t=0;t<e.length;t++)A(e[t])}function N(t){let r,i=0;for(r=0;r<t.length;r++){let e=t[r];e.user?t[i++]=e:A(e)}if(e.context){if(e.count){e.effects||=[],e.effects.push(...t.slice(0,i));return}n()}for(e.effects&&(e.done||!e.count)&&(t=[...e.effects,...t],i+=e.effects.length,delete e.effects),r=0;r<i;r++)A(t[r])}function se(e,t){let n=f&&f.running;n?e.tState=0:e.state=0;for(let r=0;r<e.sources.length;r+=1){let i=e.sources[r];if(i.sources){let e=n?i.tState:i.state;e===c?i!==t&&(!i.updatedAt||i.updatedAt<g)&&A(i):e===l&&se(i,t)}}}function P(e){let t=f&&f.running;for(let n=0;n<e.observers.length;n+=1){let r=e.observers[n];(t?!r.tState:!r.state)&&(t?r.tState=l:r.state=l,r.pure?m.push(r):h.push(r),r.observers&&P(r))}}function F(e){let t;if(e.sources)for(;e.sources.length;){let t=e.sources.pop(),n=e.sourceSlots.pop(),r=t.observers;if(r&&r.length){let e=r.pop(),i=t.observerSlots.pop();n<r.length&&(e.sourceSlots[i]=n,r[n]=e,t.observerSlots[n]=i)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)F(e.tOwned[t]);delete e.tOwned}if(f&&f.running&&e.pure)I(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)F(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}f&&f.running?e.tState=0:e.state=0}function I(e,t){if(t||(e.tState=0,f.disposed.add(e)),e.owned)for(let t=0;t<e.owned.length;t++)I(e.owned[t])}function ce(e){return e instanceof Error?e:Error(typeof e==`string`?e:`Unknown error`,{cause:e})}function L(e,t,n){try{for(let n of t)n(e)}catch(e){R(e,n&&n.owner||null)}}function R(e,t=d){let n=o&&t&&t.context&&t.context[o],r=ce(e);if(!n)throw r;h?h.push({fn(){L(r,n,t)},state:c}):L(r,n,t)}var le=Symbol(`fallback`);function ue(e){for(let t=0;t<e.length;t++)e[t]()}function de(e,t,n={}){let r=[],a=[],o=[],s=0,c=t.length>1?[]:null;return E(()=>ue(o)),()=>{let l=e()||[],u=l.length,d,f;return l[i],C(()=>{let e,t,i,m,h,g,v,y,b;if(u===0)s!==0&&(ue(o),o=[],r=[],a=[],s=0,c&&=[]),n.fallback&&(r=[le],a[0]=_(e=>(o[0]=e,n.fallback())),s=1);else if(s===0){for(a=Array(u),f=0;f<u;f++)r[f]=l[f],a[f]=_(p);s=u}else{for(i=Array(u),m=Array(u),c&&(h=Array(u)),g=0,v=Math.min(s,u);g<v&&r[g]===l[g];g++);for(v=s-1,y=u-1;v>=g&&y>=g&&r[v]===l[y];v--,y--)i[y]=a[v],m[y]=o[v],c&&(h[y]=c[v]);for(e=new Map,t=Array(y+1),f=y;f>=g;f--)b=l[f],d=e.get(b),t[f]=d===void 0?-1:d,e.set(b,f);for(d=g;d<=v;d++)b=r[d],f=e.get(b),f!==void 0&&f!==-1?(i[f]=a[d],m[f]=o[d],c&&(h[f]=c[d]),f=t[f],e.set(b,f)):o[d]();for(f=g;f<u;f++)f in i?(a[f]=i[f],o[f]=m[f],c&&(c[f]=h[f],c[f](f))):a[f]=_(p);a=a.slice(0,s=u),r=l.slice(0)}return a});function p(e){if(o[f]=e,c){let[e,n]=y(f);return c[f]=n,t(l[f],e)}return t(l[f])}}}function z(e,t){return C(()=>e(t||{}))}var fe=e=>`Stale read from <${e}>.`;function pe(e){let t=`fallback`in e&&{fallback:()=>e.fallback};return S(de(()=>e.each,e.children,t||void 0))}function B(e){let t=e.keyed,n=S(()=>e.when,void 0,void 0),r=t?n:S(n,void 0,{equals:(e,t)=>!e==!t});return S(()=>{let i=r();if(i){let a=e.children;return typeof a==`function`&&a.length>0?C(()=>a(t?i:()=>{if(!C(r))throw fe(`Show`);return n()})):a}return e.fallback},void 0,void 0)}var V=e=>S(()=>e());function me(e,t,n){let r=n.length,i=t.length,a=r,o=0,s=0,c=t[i-1].nextSibling,l=null;for(;o<i||s<a;)if(t[o]===n[s])o++,s++;else{for(;t[i-1]===n[a-1];)i--,a--;if(i===o){let t=a<r?s?n[s-1].nextSibling:n[a-s]:c;for(;s<a;)e.insertBefore(n[s++],t)}else if(a===s)for(;o<i;)l&&l.has(t[o])||t[o].remove(),o++;else if(t[o]===n[a-1]&&n[s]===t[i-1]){let r=t[--i].nextSibling;e.insertBefore(n[s++],t[o++].nextSibling),e.insertBefore(n[--a],r),t[i]=n[a]}else{if(!l){l=new Map;let e=s;for(;e<a;)l.set(n[e],e++)}let r=l.get(t[o]);if(r!=null){if(s<r&&r<a){let c=o,u=1,d;for(;++c<i&&c<a&&(d=l.get(t[c]))!=null&&d===r+u;)u++;if(u>r-s){let i=t[o];for(;s<r;)e.insertBefore(n[s++],i)}else e.replaceChild(n[s++],t[o++])}else o++}else t[o++].remove()}}}var H=`_$DX_DELEGATE`;function he(e,t,n,r={}){let i;return _(r=>{i=r,t===document?e():K(t,e(),!n&&t.firstChild?null:void 0,n)},r.owner),()=>{i(),t.textContent=``}}function U(e,t,n,r){let i,a=()=>{let t=r?document.createElementNS(`http://www.w3.org/1998/Math/MathML`,`template`):document.createElement(`template`);return t.innerHTML=e,n?t.content.firstChild.firstChild:r?t.firstChild:t.content.firstChild},o=t?()=>C(()=>document.importNode(i||=a(),!0)):()=>(i||=a()).cloneNode(!0);return o.cloneNode=o,o}function ge(e,t=window.document){let n=t[H]||(t[H]=new Set);for(let r=0,i=e.length;r<i;r++){let i=e[r];n.has(i)||(n.add(i),t.addEventListener(i,ve))}}function W(e,t,n){q(e)||(n==null?e.removeAttribute(t):e.setAttribute(t,n))}function _e(e,t,n){n==null?e.style.removeProperty(t):e.style.setProperty(t,n)}function G(e,t,n){return C(()=>e(t,n))}function K(e,t,n,r){if(n!==void 0&&!r&&(r=[]),typeof t!=`function`)return ye(e,t,r,n);b(r=>ye(e,t(),r,n),r)}function q(t){return!!e.context&&!e.done&&(!t||t.isConnected)}function ve(t){if(e.registry&&e.events&&e.events.find(([e,n])=>n===t))return;let n=t.target,r=`$$${t.type}`,i=t.target,a=t.currentTarget,o=e=>Object.defineProperty(t,"target",{configurable:!0,value:e}),s=()=>{let e=n[r];if(e&&!n.disabled){let i=n[`${r}Data`];if(i===void 0?e.call(n,t):e.call(n,i,t),t.cancelBubble)return}return n.host&&typeof n.host!=`string`&&!n.host._$host&&n.contains(t.target)&&o(n.host),!0},c=()=>{for(;s()&&(n=n._$host||n.parentNode||n.host););};Object.defineProperty(t,"currentTarget",{configurable:!0,get(){return n||document}}),e.registry&&!e.done&&(e.done=_$HY.done=!0);try{if(t.composedPath){let e=t.composedPath();o(e[0]);for(let t=0;t<e.length-2&&(n=e[t],s());t++){if(n._$host){n=n._$host,c();break}if(n.parentNode===a)break}}else c();o(i)}finally{t=n=null}}function ye(e,t,n,r,i){let a=q(e);if(a){!n&&(n=[...e.childNodes]);let t=[];for(let e=0;e<n.length;e++){let r=n[e];r.nodeType===8&&r.data.slice(0,2)===`!$`?r.remove():t.push(r)}n=t}for(;typeof n==`function`;)n=n();if(t===n)return n;let o=typeof t,s=r!==void 0;if(e=s&&n[0]&&n[0].parentNode||e,o===`string`||o===`number`){if(a||o===`number`&&(t=t.toString(),t===n))return n;if(s){let i=n[0];i&&i.nodeType===3?i.data!==t&&(i.data=t):i=document.createTextNode(t),n=Y(e,n,r,i)}else n=n!==``&&typeof n==`string`?e.firstChild.data=t:e.textContent=t}else if(t==null||o===`boolean`){if(a)return n;n=Y(e,n,r)}else if(o===`function`)return b(()=>{let i=t();for(;typeof i==`function`;)i=i();n=ye(e,i,n,r)}),()=>n;else if(Array.isArray(t)){let o=[],c=n&&Array.isArray(n);if(J(o,t,n,i))return b(()=>n=ye(e,o,n,r,!0)),()=>n;if(a){if(!o.length)return n;if(r===void 0)return n=[...e.childNodes];let t=o[0];if(t.parentNode!==e)return n;let i=[t];for(;(t=t.nextSibling)!==r;)i.push(t);return n=i}if(o.length===0){if(n=Y(e,n,r),s)return n}else c?n.length===0?be(e,o,r):me(e,n,o):(n&&Y(e),be(e,o));n=o}else if(t.nodeType){if(a&&t.parentNode)return n=s?[t]:t;if(Array.isArray(n)){if(s)return n=Y(e,n,r,t);Y(e,n,null,t)}else n==null||n===``||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}return n}function J(e,t,n,r){let i=!1;for(let a=0,o=t.length;a<o;a++){let o=t[a],s=n&&n[e.length],c;if(o!=null&&o!==!0&&o!==!1){if((c=typeof o)==`object`&&o.nodeType)e.push(o);else if(Array.isArray(o))i=J(e,o,s)||i;else if(c===`function`){if(r){for(;typeof o==`function`;)o=o();i=J(e,Array.isArray(o)?o:[o],Array.isArray(s)?s:[s])||i}else e.push(o),i=!0}else{let t=String(o);s&&s.nodeType===3&&s.data===t?e.push(s):e.push(document.createTextNode(t))}}}return i}function be(e,t,n=null){for(let r=0,i=t.length;r<i;r++)e.insertBefore(t[r],n)}function Y(e,t,n,r){if(n===void 0)return e.textContent=``;let i=r||document.createTextNode(``);if(t.length){let r=!1;for(let a=t.length-1;a>=0;a--){let o=t[a];if(i!==o){let t=o.parentNode===e;!r&&!a?t?e.replaceChild(i,o):e.insertBefore(i,n):t&&o.remove()}else r=!0}}else e.insertBefore(i,n);return[i]}async function X(e){let t=await fetch(e,{headers:{accept:`application/json`}});if(!t.ok){let e=await t.text().catch(()=>``);throw Error(`HTTP ${t.status}${e?`: ${e.slice(0,200)}`:``}`)}return await t.json()}function xe(){return X(`/api/projects`)}function Se(){return X(`/api/version`)}function Ce(e){return X(`/api/projects/${encodeURIComponent(e)}/files`)}function we(e,t){return`/render/${encodeURIComponent(e)}/${t.split(`/`).map(encodeURIComponent).join(`/`)}?embed=1`}function Te(e,t){return`/events?project=${encodeURIComponent(e)}&path=${encodeURIComponent(t)}`}function Ee(){return`/events`}function De(e){return X(`/api/marks?project=${encodeURIComponent(e)}`)}async function Oe(e){let t=await fetch(`/api/marks`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();if(!n.ok)throw Error(n.error??`添加标记失败`);return n.mark}async function ke(e){let t=await fetch(`/api/marks?project=${encodeURIComponent(e)}`,{method:`DELETE`});if(!t.ok)throw Error(`HTTP ${t.status}`);return(await t.json()).cleared}var Ae={"x-paintress":`1`};async function je(e){let t=await fetch(`/api/projects/${encodeURIComponent(e)}`,{method:`DELETE`,headers:Ae}),n=await t.json();if(!t.ok||!n.ok)throw Error(n.error??`HTTP ${t.status}`);return n.unwatched===!0}async function Me(){let e=await fetch(`/api/shutdown`,{method:`POST`,headers:Ae}),t=await e.json();if(!e.ok||!t.ok)throw Error(t.error??`HTTP ${e.status}`);return t.connections??0}function Ne(e,t){return X(`/api/changes?project=${encodeURIComponent(e)}&path=${encodeURIComponent(t)}`)}var Pe=U(`<div class=modal-actions>`),Fe=U(`<div class=modal-backdrop><div class=modal role=dialog aria-modal=true><h3>`),Ie=U(`<p class=modal-body>`),Le=U(`<button class=ghost>`),Re=U(`<button class="ghost danger">`);function ze(e){x(()=>{e.open&&queueMicrotask(()=>{(e.initialFocus?.()??document.querySelector(`.modal-actions button`))?.focus()})});let t=t=>{t.key===`Escape`&&(t.preventDefault(),e.onClose())};return z(B,{get when(){return e.open},get children(){var n=Fe(),r=n.firstChild,i=r.firstChild;return n.$$mousedown=t=>{t.target===t.currentTarget&&e.onClose()},r.$$keydown=t,K(i,()=>e.title),K(r,()=>e.children,null),K(r,z(B,{get when(){return e.actions},get children(){var t=Pe();return K(t,()=>e.actions),t}}),null),b(()=>W(r,`aria-label`,e.title)),n}})}function Be(e){let t;return z(ze,{get open(){return e.open},get title(){return e.title},get onClose(){return e.onCancel},initialFocus:()=>t,get actions(){return[(()=>{var t=Le();return t.$$click=()=>e.onCancel(),K(t,()=>e.cancelLabel),t})(),(()=>{var n=Re();return n.$$click=()=>e.onConfirm(),G(e=>{t=e},n),K(n,()=>e.confirmLabel),n})()]},get children(){var t=Ie();return K(t,()=>e.body),t}})}ge([`mousedown`,`keydown`,`click`]);function Ve(e){let t=e.trim().replace(/^v/i,``),n=t.indexOf(`-`);return{nums:(n>=0?t.slice(0,n):t).split(`.`).map(e=>{let t=Number.parseInt(e,10);return Number.isFinite(t)?t:0}),prerelease:n>=0}}function He(e,t){let n=Ve(e),r=Ve(t),i=Math.max(n.nums.length,r.nums.length);for(let e=0;e<i;e+=1){let t=n.nums[e]??0,i=r.nums[e]??0;if(t!==i)return t>i?1:-1}return n.prerelease===r.prerelease?0:n.prerelease?-1:1}function Ue(e,t){return He(e,t)>0}var We=.1,Z=.02;function Ge(e,t){return t===0||Math.abs(e)>=Math.abs(t)?null:t>0?-1:1}function Q(e,t=We){return Math.min(4,Math.max(t,e))}function Ke(e,t,n,r,i=We){let a=Q(e.z*t,i);if(a===e.z)return e;let o=a/e.z;return{z:a,tx:n-(n-e.tx)*o,ty:r-(r-e.ty)*o}}function qe(e,t,n,r=We){return Ke(e,Q(t,r)/e.z,n.width/2,n.height/2,r)}function $(e,t,n=24){let r=Math.max(1,e.w),i=Math.max(1,e.h),a=Math.max(1,t.width-n*2),o=Math.max(1,t.height-n*2),s=Q(Math.min(a/r,o/i),Z);return{z:s,tx:(t.width-r*s)/2-e.x*s,ty:(t.height-i*s)/2-e.y*s}}function Je(e,t,n){return{z:e.z,tx:e.tx+t,ty:e.ty+n}}function Ye(e){return`translate(${e.tx}px, ${e.ty}px) scale(${e.z})`}function Xe(e){if(e===null||e===``)return null;let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t)return null;let{z:n,tx:r,ty:i}=t;return typeof n!=`number`||typeof r!=`number`||typeof i!=`number`||!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(i)||n<=0?null:{z:Q(n,Z),tx:r,ty:i}}var Ze=3,Qe=.0015;function $e({doc:e,onChange:t,onLevelStep:n}){let r=e.querySelector(`.ptr-canvas`);if(r===null)return null;let i=r;i.style.transformOrigin=`0 0`;let a={z:1,tx:0,ty:0},o=!1,s=!1,c=!1,l=null,u=()=>({width:e.documentElement.clientWidth||1,height:e.documentElement.clientHeight||1});function d(){i.style.transform=Ye(a),t?.(a)}function f(e){a=e,d()}function p(){i.style.transition=``}function m(e){i.style.transition=`transform 180ms ease-out`,f(e),setTimeout(p,220)}function h(t){e.documentElement.style.cursor=t}function g(e){if(e.preventDefault(),e.altKey&&n!==void 0){let t=Ge(e.deltaX,e.deltaY);t!==null&&n(t,{x:e.clientX,y:e.clientY});return}p();let t=1;e.deltaMode===1?t=16:e.deltaMode===2&&(t=u().height);let r=a.z<.1?Z:We;f(Ke(a,Math.exp(-e.deltaY*t*Qe),e.clientX,e.clientY,r))}function _(t){return t.button===1?!0:t.button===0?o?!0:t.target===i||t.target===e.body||t.target===e.documentElement:!1}function v(e){_(e)&&(e.preventDefault(),l={lastX:e.clientX,lastY:e.clientY,startX:e.clientX,startY:e.clientY},s=!1)}function y(t){if(!l)return;if(!s){if(Math.hypot(t.clientX-l.startX,t.clientY-l.startY)<Ze)return;s=!0,p(),e.body.style.userSelect=`none`,h(`grabbing`)}let n=t.clientX-l.lastX,r=t.clientY-l.lastY;l.lastX=t.clientX,l.lastY=t.clientY,f(Je(a,n,r))}function b(){l&&(l=null,s&&(s=!1,c=!0,e.body.style.userSelect=``,h(o?`grab`:``)))}function x(e){o!==e&&(o=e,s||h(e?`grab`:``))}function S(e){if(e.key===` `&&!e.metaKey&&!e.ctrlKey&&!e.altKey){let t=e.target,n=t?.tagName??``;if(n===`INPUT`||n===`TEXTAREA`||t?.isContentEditable===!0)return;x(!0),e.preventDefault()}else T(e)&&e.preventDefault()}function C(e){e.key===` `&&x(!1)}function w(){x(!1),b()}function T(e){return(e.ctrlKey||e.metaKey)&&(e.key===`0`||e.key===`)`||e.code===`Digit0`||e.code===`Numpad0`)?(f(qe(a,1,u())),!0):e.shiftKey&&!e.ctrlKey&&!e.metaKey&&(e.key===`!`||e.code===`Digit1`)?(E(),!0):!1}function E(){f($({x:0,y:0,w:i.offsetWidth,h:i.offsetHeight},u()))}function ee(e){let t=u();m({z:a.z,tx:t.width/2-(e.x+e.w/2)*a.z,ty:t.height/2-(e.y+e.h/2)*a.z})}return e.addEventListener(`wheel`,g,{passive:!1}),e.addEventListener(`mousedown`,v,!0),e.addEventListener(`mousemove`,y,!0),e.addEventListener(`mouseup`,b,!0),e.addEventListener(`keydown`,S),e.addEventListener(`keyup`,C),e.defaultView?.addEventListener(`blur`,w),{get:()=>a,set:f,fitAll:E,centerOn:ee,focusBox:e=>m($(e,u())),zoomToPercent:e=>f(qe(a,e,u())),consumeDragClick:()=>{let e=c;return c=!1,e},handleKey:T,setSpace:x,destroy:()=>{e.removeEventListener(`wheel`,g),e.removeEventListener(`mousedown`,v,!0),e.removeEventListener(`mousemove`,y,!0),e.removeEventListener(`mouseup`,b,!0),e.removeEventListener(`keydown`,S),e.removeEventListener(`keyup`,C),e.defaultView?.removeEventListener(`blur`,w)}}}var et=`[data-ptr-selected]{outline:2px solid #908030 !important;outline-offset:-2px;}
|
|
2
|
-
[data-ptr-hover]:not([data-ptr-selected]){outline:1px dashed rgba(144,128,48,.55) !important;outline-offset:-2px;}
|
|
3
|
-
[data-ptr-changed]{box-shadow:inset 0 0 0 2px rgba(144,128,48,1);animation:ptr-pulse 2s ease-in-out infinite;}
|
|
4
|
-
@keyframes ptr-pulse{0%,100%{box-shadow:inset 0 0 0 2px rgba(144,128,48,1)}50%{box-shadow:inset 0 0 0 2px rgba(144,128,48,.25)}}
|
|
5
|
-
@media (prefers-reduced-motion: reduce){[data-ptr-changed]{animation:none !important;}}
|
|
6
|
-
html{cursor:default;}
|
|
7
|
-
html,body{overflow:hidden;}
|
|
8
|
-
html,body{background:var(--ptr-canvas-bg,#ffffff);}`,tt=U(`<div class=canvas-bg role=group>`),nt=U(`<button type=button class=canvas-bg-opt><span class=canvas-bg-dot aria-hidden=true>`),rt=[`light`,`gray`,`dark`],it={light:`#ffffff`,gray:`#d2cec7`,dark:`#242b36`},at=`paintress:canvas-bg`;function ot(e){return rt.includes(e)}function st(){try{let e=localStorage.getItem(at);if(ot(e))return e}catch{}return`light`}function ct(e){try{localStorage.setItem(at,e)}catch{}}var lt={light:`Light`,gray:`Gray`,dark:`Dark`};function ut(e){return(()=>{var t=tt();return K(t,()=>rt.map(t=>(()=>{var n=nt(),r=n.firstChild;return n.$$click=()=>e.onChange(t),K(n,()=>lt[t],null),b(i=>{var a=e.value===t,o=e.value===t,s=it[t];return a!==i.e&&n.classList.toggle(`active`,i.e=a),o!==i.t&&W(n,`aria-pressed`,i.t=o),s!==i.a&&_e(r,`--dot`,i.a=s),i},{e:void 0,t:void 0,a:void 0}),n})())),b(n=>{var r=e.label,i=e.label;return r!==n.e&&W(t,`aria-label`,n.e=r),i!==n.t&&W(t,`title`,n.t=i),n},{e:void 0,t:void 0}),t})()}ge([`click`]);var dt={zh:{projects:`项目`,noProjects:`还没有注册项目`,projectFiles:e=>`${e} 个设计稿`,designs:`设计稿`,depth:`depth`,noFiles:`没有 .ptr / .pen 文件`,marks:`标记`,clear:`清空`,liveReload:`实时刷新`,refreshList:`刷新列表`,pickProject:`从左侧选择项目`,pickFile:`从左侧选择一个设计稿`,fit:`适应`,fitTitle:`适应窗口(Shift+1)`,actualSize:`1:1`,actualSizeTitle:`100%(Ctrl/Cmd+0)`,rerender:`重新渲染`,allBoards:`全部`,canvasBackground:`画布背景`,language:`界面语言`,unwatch:`解绑`,unwatchTitle:`解绑项目`,unwatchBody:e=>`「${e}」将从项目列表中移除。设计稿文件不受影响;agent 下次启动会自动重新注册。`,closeServer:`关闭服务器`,closeServerTitle:`关闭 web 进程`,closeServerBody:(e,t)=>`将断开 ${t} 个长连接并停止进程 pid ${e}。之后可用 paintress web 重新启动。`,cancel:`取消`,serverClosed:`服务已关闭`,serverClosedHint:`可以关闭此页面;需要时重新启动 paintress web。`,updateAvailable:(e,t)=>`新版 v${e}(当前 v${t})`,updateTitle:`有新版本`,updatePrompt:`把 paintress 升级到最新版:npm install -g paintress@latest,完成后重启 MCP 会话。`,updateSteps:`把上面这句话交给你的 AI 即可;或自己在终端执行那条命令。`,updateRepo:`GitHub`,copy:`复制`,copied:`已复制`,close:`关闭`,versionTitle:`版本`,agentOnline:`agent 已接入`,noActiveProjects:`无激活项目`,closingIn:e=>`窗口将在 ${e} 秒后关闭`,waitingForAgent:`等待 agent 接入 —— 在项目里让 AI 操作设计稿,这里会自动出现。`},en:{projects:`Projects`,noProjects:`No projects registered yet`,projectFiles:e=>`${e} design${e===1?``:`s`}`,designs:`Designs`,depth:`depth`,noFiles:`No .ptr / .pen files`,marks:`Marks`,clear:`Clear`,liveReload:`Live reload`,refreshList:`Refresh`,pickProject:`Pick a project on the left`,pickFile:`Pick a design on the left`,fit:`Fit`,fitTitle:`Fit to window (Shift+1)`,actualSize:`1:1`,actualSizeTitle:`100% (Ctrl/Cmd+0)`,rerender:`Re-render`,allBoards:`All`,canvasBackground:`Canvas background`,language:`Language`,unwatch:`Unbind`,unwatchTitle:`Unbind project`,unwatchBody:e=>`“${e}” will be removed from the project list. Design files are untouched; the agent re-registers it on next start.`,closeServer:`Stop server`,closeServerTitle:`Stop web process`,closeServerBody:(e,t)=>`This drops ${t} live connection${t===1?``:`s`} and stops process pid ${e}. Restart later with paintress web.`,cancel:`Cancel`,serverClosed:`Server stopped`,serverClosedHint:`You can close this page; run paintress web to start it again.`,updateAvailable:(e,t)=>`v${e} available (running v${t})`,updateTitle:`Update available`,updatePrompt:`Upgrade paintress to the latest version: npm install -g paintress@latest, then restart the MCP session.`,updateSteps:`Hand that line to your AI, or run the command yourself in a terminal.`,updateRepo:`GitHub`,copy:`Copy`,copied:`Copied`,close:`Close`,versionTitle:`Version`,agentOnline:`Agent attached`,noActiveProjects:`No active projects`,closingIn:e=>`This window closes in ${e}s`,waitingForAgent:`Waiting for an agent — ask your AI to touch a design and it shows up here automatically.`}};function ft(e){return dt[e]}function pt(e){return(e?.languages?.[0]??e?.language??``).toLowerCase().startsWith(`zh`)?`zh`:`en`}var mt=`paintress:lang`;function ht(e){return e===`zh`||e===`en`}function gt(){try{let e=localStorage.getItem(mt);if(ht(e))return e}catch{}return pt(typeof navigator>`u`?void 0:navigator)}function _t(e){try{localStorage.setItem(mt,e)}catch{}}var vt=U(`<button class="badge badge-stack"><span>v</span><span class=badge-new>v`),yt=U(`<ul class=list>`),bt=U(`<section class="section files"><h2> <span class=hint> `),xt=U(`<section class="section marks"><h2><button class="ghost tiny"></button></h2><ul class=list>`),St=U(`<span class=hint>pid `),Ct=U(`<div class=error>`),wt=U(`<code>`),Tt=U(`<span class=sep>/`),Et=U(`<span class="hint zoom">%`),Dt=U(`<button class="ghost tiny">`),Ot=U(`<button class=ghost>`),kt=U(`<span class=tool-sep>`),At=U(`<div class=boardbar><button class=board></button><div class=boardbar-scroll>`),jt=U(`<iframe class=preview title="design preview"sandbox="allow-same-origin allow-scripts">`),Mt=U(`<div class=modal-backdrop><div class=modal role=status><h3></h3><p class=modal-body>`),Nt=U(`<div class="modal-backdrop countdown-backdrop"><div class="modal countdown"role=alertdialog aria-live=polite><h3></h3><p class=modal-body></p><div class=countdown-track aria-hidden=true><span class=countdown-fill>`),Pt=U(`<p class=modal-body>`),Ft=U(`<pre class=prompt>`),It=U(`<div class=app><aside class=sidebar><header class=sidebar-head><img class=brand-mark src=/logo.svg alt><h1>paintress</h1></header><section class=section><h2></h2></section><footer class=sidebar-foot><label class=toggle><input type=checkbox></label><button class=ghost></button><button class=ghost></button></footer></aside><main class=stage><div class=toolbar><div class=crumbs></div><div class=tools><div class=lang-switch role=group><button class=lang-opt>中</button><button class=lang-opt>EN`),Lt=U(`<span class=badge>v`),Rt=U(`<p class=empty><br><code>paintress watch <name> <dir>`),zt=U(`<li class=row><button class=item><span class=item-name></span><span class=item-meta></span></button><button class=row-action>×`),Bt=U(`<span class=dot>`),Vt=U(`<p class=empty>`),Ht=U(`<li><button class=item><span class=item-name>`),Ut=U(`<li><button class=item><span class=item-name><b class=mark-no>#</b> </span><span class=item-meta>`),Wt=U(`<button class=crumb>`),Gt=U(`<p>`),Kt=U(`<div class=placeholder>`),qt=U(`<button class=board><span class=board-name></span><span class=board-size>×`),Jt=U(`<a class=ghost href=https://github.com/aliciai-dev/paintress target=_blank rel=noreferrer>`);function Yt(e,t){let n=e.split(`/`).filter(e=>e!==``);for(let e=Math.min(3,n.length);e>=1;e--){let r=n.slice(0,e).map(e=>decodeURIComponent(e)).join(`/`);if(t.some(e=>e.name===r))return r}return null}function Xt(e,t){let n=`/${e.split(`/`).filter(e=>e!==``).map(encodeURIComponent).join(`/`)}`;return t===null?n:`${n}?file=${t.split(`/`).map(encodeURIComponent).join(`/`)}`}function Zt(e){return typeof CSS<`u`&&typeof CSS.escape==`function`?CSS.escape(e):e.replace(/["\\]/g,`\\$&`)}function Qt(){let[e,t]=y([]),[n,r]=y([]),[i,a]=y(null),[o,s]=y([]),[c,l]=y(null),[u,d]=y([]),[f,p]=y(null),[m,h]=y([]),[g,_]=y(null),[v,S]=y({}),[C,ee]=y(0),[te,ne]=y(!0),[re,D]=y(``),[ie,O]=y([]),[ae,k]=y(null),[A,j]=y(1),[M,oe]=y(gt()),[N,se]=y(st()),[P,F]=y(null),[I,ce]=y(!1),[L,R]=y(null),le=!1,[ue,de]=y(!1),[fe,me]=y(!1),H=()=>ft(M()),he,U,ge,q=null,ve;function ye(e){e.classList.toggle(`overflow`,e.scrollWidth>e.clientWidth+1)}function J(){let e=i(),t=c();history.replaceState(null,``,e===null?`/`:Xt(e,t))}let be;function Y(e){let t=n(),i=new Map(t.map(e=>[e.name,e])),a=new Set(e.map(e=>e.name)),o=[];for(let t of e){let e=i.get(t.name),n=e!==void 0&&e.leaving!==!0&&e.fileCount===t.fileCount&&e.agentConns===t.agentConns&&e.depth===t.depth&&e.label===t.label&&e.root===t.root;o.push(n?e:{...t})}let s=!1;for(let e of t)e.leaving===!0?a.has(e.name)||(o.push(e),s=!0):a.has(e.name)||(o.push({...e,leaving:!0}),s=!0);r(o),s&&(clearTimeout(be),be=setTimeout(()=>r(e=>e.filter(e=>e.leaving!==!0)),240)),e.length>0&&(le=!0)}async function X(){try{let e=await xe();t(e.projects),Y(e.projects),S({pid:e.pid,version:e.version,latest:e.latest??null,connections:e.connections}),_(null)}catch(e){_(e instanceof Error?e.message:String(e))}}async function Ae(){try{let e=await Se();S({pid:e.pid,version:e.version,latest:e.latest??null,connections:e.connections})}catch{}}async function Pe(e){try{d((await De(e)).marks)}catch{d([])}}async function Fe(e){a(e),l(null),p(null),h([]);try{let t=await Ce(e);s(t.files),_(null)}catch(e){s([]),_(e instanceof Error?e.message:String(e))}Pe(e),J()}async function Ie(){await X();let t=i();if(t!==null){if(!e().some(e=>e.name===t))a(null),l(null),s([]),p(null),h([]),J();else{try{let n=await Ce(t),r=o();s(n.files);let i=c();if(i===null){let i=n.files.filter(e=>!r.includes(e));i.length>0&&e().some(e=>e.name===t)&&Le(i[0])}else n.files.includes(i)||(l(null),p(null),h([]),J())}catch{}Pe(t)}}}function Le(e){l(e),p(null),h([]),J()}function Re(){let e=v().latest??null,t=v().version??null;return e===null||t===null?null:Ue(e,t)?e:null}async function Ve(){try{await navigator.clipboard.writeText(H().updatePrompt),me(!0),setTimeout(()=>me(!1),1500)}catch{}}function He(e){F({kind:`unwatch`,name:e})}function We(){F({kind:`shutdown`}),Ae()}function Z(){let e=P();return e===null?{title:``,body:``,confirm:``}:e.kind===`unwatch`?{title:H().unwatchTitle,body:H().unwatchBody(e.name),confirm:H().unwatch}:{title:H().closeServerTitle,body:H().closeServerBody(v().pid??0,v().connections??0),confirm:H().closeServer}}async function Ge(){let e=P();if(F(null),e!==null)try{e.kind===`unwatch`?(await je(e.name),await Ie()):(await Me(),ce(!0))}catch(e){_(e instanceof Error?e.message:String(e))}}T(()=>{let n=new EventSource(Ee());n.addEventListener(`projects`,e=>{let n=e.data,r=null;try{let e=JSON.parse(n);Array.isArray(e.projects)&&(r=e.projects)}catch{}if(r!==null){t(r),Y(r);let e=i();e!==null&&!r.some(t=>t.name===e)?(a(null),l(null),s([]),p(null),h([]),J()):Ie()}else Ie()}),n.addEventListener(`shutdown`,()=>{R(null),ce(!0)}),E(()=>n.close());let r=setTimeout(()=>{I()||Ae()},4e3),o=setInterval(()=>{I()||Ae()},6e4);E(()=>{clearTimeout(r),clearInterval(o)});let c=e=>{let t=e.target;return t?.tagName===`INPUT`||t?.tagName===`TEXTAREA`||t?.isContentEditable===!0},u=e=>{c(e)||(e.key===` `&&!e.ctrlKey&&!e.metaKey&&!e.altKey?(q?.setSpace(!0),e.preventDefault()):q?.handleKey(e)===!0&&e.preventDefault())},d=e=>{e.key===` `&&q?.setSpace(!1)};window.addEventListener(`keydown`,u),window.addEventListener(`keyup`,d),E(()=>{window.removeEventListener(`keydown`,u),window.removeEventListener(`keyup`,d)});let f=e=>{let t=ge;if(t===void 0)return;let n=e.target;if(n===null||!t.contains(n))return;let r=e.deltaY===0?e.deltaX:e.deltaY;if(r===0)return;let i=t.scrollWidth-t.clientWidth;i<=0||(e.preventDefault(),t.scrollLeft=Math.max(0,Math.min(i,t.scrollLeft+r)))};window.addEventListener(`wheel`,f,{passive:!1}),E(()=>window.removeEventListener(`wheel`,f));let m=new URLSearchParams(location.search);(async()=>{await X();let t=Yt(location.pathname,e()),n=m.get(`project`),r=t??(n!==null&&e().some(e=>e.name===n)?n:null);if(r!==null){await Fe(r);let e=m.get(`file`);e?Le(e):J()}})()});let Q;E(()=>clearInterval(Q));function Ke(){clearInterval(Q),Q=void 0,R(null)}async function qe(){Ke();try{await Me()}catch{}ce(!0),window.close()}x(w(()=>e().length,e=>{I()||(e>0?L()!==null&&Ke():le&&L()===null&&(R(10),clearInterval(Q),Q=setInterval(()=>{let e=(L()??0)-1;e<=0?(Ke(),qe()):R(e)},1e3)))}));let $=()=>he?.contentDocument??null;function Je(){let e=$();if(!e||e.getElementById(`ptr-style`))return;let t=e.createElement(`style`);t.id=`ptr-style`,t.textContent=et,e.head.appendChild(t)}function Ye(){let e=$();if(!e)return;for(let t of e.querySelectorAll(`[data-ptr-selected]`))t.removeAttribute(`data-ptr-selected`);let t=f();t&&e.querySelector(`[data-node-id="${Zt(t)}"]`)?.setAttribute(`data-ptr-selected`,``)}function Ze(e){return e.parentElement?.closest(`[data-node-id]`)??null}function Qe(e){return e.querySelector(`:scope > [data-node-id]`)}function tt(e){if(q?.consumeDragClick()===!0){e.preventDefault(),e.stopPropagation();return}let t=e.target?.closest(`[data-node-id]`);t&&(e.preventDefault(),e.stopPropagation(),$t(e.altKey?Ze(t)??t:t))}function nt(e,t){let n=$();if(!n)return;let r=f(),i=r===null?null:n.querySelector(`[data-node-id="${Zt(r)}"]`);if(i===null){let e=(n.elementFromPoint(t.x,t.y)?.closest(`[data-node-id]`))?.dataset.nodeId;e!==void 0&&en(e);return}let a=(e===1?Ze(i):Qe(i))?.dataset.nodeId;a!==void 0&&en(a)}function rt(e){let t=$();if(t){for(let e of t.querySelectorAll(`[data-ptr-hover]`))e.removeAttribute(`data-ptr-hover`);(e.target?.closest(`[data-node-id]`))?.setAttribute(`data-ptr-hover`,``)}}async function at(){let e=i(),t=c();if(e&&t)try{let n=await Ne(e,t);if(!n.ok||n.ids.length===0)return;let r=$();if(!r)return;for(let e of n.ids)r.querySelector(`[data-node-id="${Zt(e)}"]`)?.setAttribute(`data-ptr-changed`,``)}catch{}}function ot(){let e=$();if(!e)return[];let t=e.querySelector(`.ptr-canvas`)?.getBoundingClientRect(),n=q?.get().z??1;return Array.from(e.querySelectorAll(`[data-board]`)).map(e=>{let r=e.dataset,i=t===void 0?null:e.getBoundingClientRect(),a=i!==null&&n>0?{x:(i.left-t.left)/n,y:(i.top-t.top)/n,w:i.width/n,h:i.height/n}:null;return{id:r.nodeId??``,...r.boardName===void 0?{}:{name:r.boardName},x:a?.x??Number(r.boardX??0),y:a?.y??Number(r.boardY??0),w:a!==null&&a.w>0?a.w:Number(r.boardW??0),h:a!==null&&a.h>0?a.h:Number(r.boardH??0)}})}function lt(){let e=i(),t=c();return e&&t?`paintress:viewport:${e}/${t}`:null}function dt(e){let t=lt();t!==null&&(clearTimeout(ve),ve=setTimeout(()=>{try{localStorage.setItem(t,JSON.stringify(e))}catch{}},300))}function pt(){let e=$();e&&(Je(),nn(),q?.destroy(),q=$e({doc:e,onChange:e=>{j(e.z),dt(e)},onLevelStep:nt}),O(ot()),k(null),mt(),e.addEventListener(`click`,tt,!0),e.addEventListener(`mousemove`,rt,!0),Ye(),at())}function mt(){if(!q)return;let e=lt(),t=e===null?null:localStorage.getItem(e),n=t===null?null:Xe(t);n===null?q.fitAll():q.set(n)}function ht(e){if(k(e),!q)return;if(e===null){q.fitAll();return}let t=ie().find(t=>t.id===e);t&&q.focusBox({x:t.x,y:t.y,w:t.w,h:t.h})}function Qt(e){let t=[],n=e;for(;n;){let e=n.closest(`[data-node-id]`);if(!e)break;let r=e;t.unshift({id:r.dataset.nodeId??``,type:r.dataset.nodeType??`?`,name:r.dataset.nodeName}),n=e.parentElement}return t}async function $t(e){let t=e.dataset.nodeId??``;if(t===``)return;let n=Qt(e);p(t),h(n),Ye();let r=i();if(r)try{await Oe({project:r,nodeId:t,...e.dataset.nodeName===void 0?{}:{name:e.dataset.nodeName},...e.dataset.nodeType===void 0?{}:{type:e.dataset.nodeType},path:n.map(e=>e.name??e.type).join(` / `)}),d((await De(r)).marks),_(null)}catch(e){_(e instanceof Error?e.message:String(e))}}function en(e){p(e),Ye();let t=$(),n=t?.querySelector(`[data-node-id="${Zt(e)}"]`);if(!n||!t){h([]);return}h(Qt(n));let r=t.querySelector(`.ptr-canvas`);if(!r||!q){n.scrollIntoView({block:`center`});return}let i=n.getBoundingClientRect(),a=r.getBoundingClientRect(),o=q.get().z;q.centerOn({x:(i.left-a.left)/o,y:(i.top-a.top)/o,w:i.width/o,h:i.height/o})}async function tn(){let e=i();if(e)try{await ke(e),d([]),p(null),h([]),Ye()}catch(e){_(e instanceof Error?e.message:String(e))}}x(()=>{let e=M();document.documentElement.lang=e===`zh`?`zh-CN`:`en`,_t(e)});function nn(){if(U!==void 0){if(c()===null)U.style.removeProperty(`--canvas-bg`),U.removeAttribute(`data-canvas-bg`);else{let e=it[N()];U.style.setProperty(`--canvas-bg`,e),U.setAttribute(`data-canvas-bg`,N())}$()?.documentElement.style.setProperty(`--ptr-canvas-bg`,it[N()])}}x(()=>{N(),ct(N()),nn()}),x(w([i,c,C],()=>{let e=i(),t=c();D(e&&t?`${we(e,t)}&r=${C()}`:``),nn()}));let rn=null;return x(w([i,c,te],()=>{rn?.close(),rn=null;let e=i(),t=c();te()&&e&&t&&(rn=new EventSource(Te(e,t)),rn.addEventListener(`change`,()=>ee(e=>e+1)))})),E(()=>rn?.close()),(()=>{var t=It(),r=t.firstChild,a=r.firstChild;a.firstChild.nextSibling;var s=a.nextSibling,l=s.firstChild,d=s.nextSibling,p=d.firstChild,h=p.firstChild,_=p.nextSibling,y=_.nextSibling,x=r.nextSibling,S=x.firstChild,C=S.firstChild,w=C.nextSibling,T=w.firstChild,E=T.firstChild,D=E.nextSibling;return K(a,z(B,{get when(){return v().version},get children(){return z(B,{get when(){return Re()},get fallback(){return(()=>{var e=Lt();return e.firstChild,K(e,()=>v().version,null),b(()=>W(e,`title`,H().versionTitle)),e})()},get children(){var e=vt(),t=e.firstChild;t.firstChild;var n=t.nextSibling;return n.firstChild,e.$$click=()=>de(!0),K(t,()=>v().version,null),K(n,Re,null),b(()=>W(e,`title`,H().updateTitle)),e}})}}),null),K(l,()=>H().projects),K(s,z(B,{get when(){return n().length>0},get fallback(){return(()=>{var e=Rt(),t=e.firstChild;return K(e,()=>H().waitingForAgent,t),e})()},get children(){var e=yt();return K(e,z(pe,{get each(){return n()},children:e=>(()=>{var t=zt(),n=t.firstChild,r=n.firstChild,a=r.nextSibling,o=n.nextSibling;return n.$$click=()=>void Fe(e.name),K(r,()=>e.label??e.name),K(a,()=>H().projectFiles(e.fileCount),null),K(a,(()=>{var t=V(()=>e.agentConns>0);return()=>t()?(()=>{var e=Bt();return b(()=>W(e,`title`,H().agentOnline)),e})():null})(),null),o.$$click=()=>He(e.name),b(r=>{var a=e.leaving===!0,s=i()===e.name,c=H().unwatch,l=`${H().unwatch} ${e.name}`;return a!==r.e&&t.classList.toggle(`leaving`,r.e=a),s!==r.t&&n.classList.toggle(`active`,r.t=s),c!==r.a&&W(o,`title`,r.a=c),l!==r.o&&W(o,`aria-label`,r.o=l),r},{e:void 0,t:void 0,a:void 0,o:void 0}),t})()})),e}}),null),K(r,z(B,{get when(){return i()},get children(){var t=bt(),n=t.firstChild,r=n.firstChild,a=r.nextSibling,s=a.firstChild;return K(n,()=>H().designs,r),K(a,()=>H().depth,s),K(a,()=>e().find(e=>e.name===i())?.depth??`-`,null),K(t,z(B,{get when(){return o().length>0},get fallback(){return(()=>{var e=Vt();return K(e,()=>H().noFiles),e})()},get children(){var e=yt();return K(e,z(pe,{get each(){return o()},children:e=>(()=>{var t=Ht(),n=t.firstChild,r=n.firstChild;return n.$$click=()=>Le(e),K(r,e),b(()=>n.classList.toggle(`active`,c()===e)),t})()})),e}}),null),t}}),d),K(r,z(B,{get when(){return u().length>0},get children(){var e=xt(),t=e.firstChild,n=t.firstChild,r=t.nextSibling;return K(t,()=>H().marks,n),n.$$click=()=>void tn(),K(n,()=>H().clear),K(r,z(pe,{get each(){return u()},children:e=>(()=>{var t=Ut(),n=t.firstChild,r=n.firstChild,i=r.firstChild;i.firstChild,i.nextSibling;var a=r.nextSibling;return n.$$click=()=>en(e.nodeId),K(i,()=>e.shortId,null),K(r,()=>e.name??e.nodeId,null),K(a,()=>e.path),b(()=>n.classList.toggle(`active`,f()===e.nodeId)),t})()})),e}}),d),h.addEventListener(`change`,e=>ne(e.currentTarget.checked)),K(p,()=>H().liveReload,null),_.$$click=()=>void X(),K(_,()=>H().refreshList),y.$$click=()=>We(),K(y,()=>H().closeServer),K(d,z(B,{get when(){return v().pid},get children(){var e=St();return e.firstChild,K(e,()=>v().pid,null),e}}),null),G(e=>{U=e},x),K(x,z(B,{get when(){return g()},get children(){var e=Ct();return K(e,g),e}}),S),K(C,z(B,{get when(){return m().length===0},get fallback(){return z(pe,{get each(){return m()},children:(e,t)=>[z(B,{get when(){return t()>0},get children(){return Tt()}}),(()=>{var t=Wt();return t.$$click=()=>en(e.id),K(t,()=>e.name??e.type),b(()=>t.classList.toggle(`active`,f()===e.id)),t})()]})},get children(){return z(B,{get when(){return V(()=>i()!==null)()&&c()!==null},get children(){return[(()=>{var t=wt();return K(t,()=>e().find(e=>e.name===i())?.label??i()),t})(),Tt(),(()=>{var e=wt();return K(e,c),e})()]}})}})),K(w,z(B,{get when(){return V(()=>i()!==null)()&&c()!==null},get children(){return[(()=>{var e=Et(),t=e.firstChild;return K(e,()=>Math.round(A()*100),t),e})(),(()=>{var e=Dt();return e.$$click=()=>q?.fitAll(),K(e,()=>H().fit),b(()=>W(e,`title`,H().fitTitle)),e})(),(()=>{var e=Dt();return e.$$click=()=>q?.zoomToPercent(1),K(e,()=>H().actualSize),b(()=>W(e,`title`,H().actualSizeTitle)),e})(),(()=>{var e=Ot();return e.$$click=()=>ee(e=>e+1),K(e,()=>H().rerender),e})(),kt()]}}),T),K(w,z(ut,{get value(){return N()},onChange:se,get label(){return H().canvasBackground}}),T),E.$$click=()=>oe(`zh`),D.$$click=()=>oe(`en`),K(x,z(B,{get when(){return V(()=>i()!==null)()&&c()!==null},get fallback(){return(()=>{var e=Kt();return K(e,z(B,{get when(){return i()},get fallback(){return(()=>{var e=Gt();return K(e,()=>H().pickProject),e})()},get children(){var e=Gt();return K(e,()=>H().pickFile),e}})),e})()},get children(){return[z(B,{get when(){return ie().length>1},get children(){var e=At(),t=e.firstChild,n=t.nextSibling;return t.$$click=()=>ht(null),K(t,()=>H().allBoards),G(e=>{ge=e},n),K(n,z(pe,{get each(){return ie()},children:e=>(()=>{var t=qt(),n=t.firstChild,r=n.nextSibling,i=r.firstChild;return t.$$click=()=>ht(e.id),G(e=>queueMicrotask(()=>ye(e)),n),K(n,()=>e.name??`#${e.id}`),K(r,()=>Math.round(e.w),i),K(r,()=>Math.round(e.h),null),b(()=>t.classList.toggle(`active`,ae()===e.id)),t})()})),b(()=>t.classList.toggle(`active`,ae()===null)),e}}),(()=>{var e=jt();return e.addEventListener(`load`,pt),G(e=>{he=e},e),b(()=>W(e,`src`,re())),e})()]}}),null),K(t,z(Be,{get open(){return P()!==null},get title(){return Z().title},get body(){return Z().body},get confirmLabel(){return Z().confirm},get cancelLabel(){return H().cancel},onConfirm:()=>void Ge(),onCancel:()=>F(null)}),null),K(t,z(B,{get when(){return I()},get children(){var e=Mt(),t=e.firstChild.firstChild,n=t.nextSibling;return K(t,()=>H().serverClosed),K(n,()=>H().serverClosedHint),e}}),null),K(t,z(B,{get when(){return V(()=>L()!==null)()&&!I()},get children(){var e=Nt(),t=e.firstChild.firstChild,n=t.nextSibling,r=n.nextSibling.firstChild;return K(t,()=>H().noActiveProjects),K(n,()=>H().closingIn(L()??0)),b(e=>_e(r,`--left`,`${(L()??0)/10*100}%`)),e}}),null),K(t,z(ze,{get open(){return ue()},get title(){return H().updateTitle},onClose:()=>de(!1),get actions(){return[(()=>{var e=Jt();return K(e,()=>H().updateRepo),e})(),(()=>{var e=Ot();return e.$$click=()=>de(!1),K(e,()=>H().close),e})()]},get children(){return[(()=>{var e=Pt();return K(e,()=>H().updateAvailable(Re()??``,v().version??``)),e})(),(()=>{var e=Ft();return K(e,()=>H().updatePrompt),e})(),(()=>{var e=Dt();return e.$$click=()=>void Ve(),K(e,(()=>{var e=V(()=>!!fe());return()=>e()?H().copied:H().copy})()),e})(),(()=>{var e=Pt();return K(e,()=>H().updateSteps),e})()]}}),null),b(e=>{var t=H().language,n=H().language,r=M()===`zh`,i=M()===`zh`,a=M()===`en`,o=M()===`en`;return t!==e.e&&W(T,`aria-label`,e.e=t),n!==e.t&&W(T,`title`,e.t=n),r!==e.a&&E.classList.toggle(`active`,e.a=r),i!==e.o&&W(E,`aria-pressed`,e.o=i),a!==e.i&&D.classList.toggle(`active`,e.i=a),o!==e.n&&W(D,`aria-pressed`,e.n=o),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),b(()=>h.checked=te()),t})()}ge([`click`]);var $t=document.getElementById(`root`);if(!$t)throw Error(`缺少 #root 容器`);he(()=>z(Qt,{}),$t);
|