@av-pi-studio/web-client 0.0.87 → 0.0.89

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.
Files changed (21) hide show
  1. package/README.md +102 -0
  2. package/dist/web/assets/{BinaryFallbackViewer-CswkChwp.js → BinaryFallbackViewer-C5mL51vj.js} +1 -1
  3. package/dist/web/assets/{ChatPanel-CzoOnHdS.js → ChatPanel-o1LQTTPg.js} +1 -1
  4. package/dist/web/assets/{CodeView-Bh0nUYdN.js → CodeView-DWNPh5RV.js} +1 -1
  5. package/dist/web/assets/{FilePanel-DZ0W7-pC.js → FilePanel-WBjvhtIF.js} +1 -1
  6. package/dist/web/assets/{HtmlViewer-CLfa4ZTn.js → HtmlViewer-C1BVt6Jc.js} +1 -1
  7. package/dist/web/assets/{ImageViewer-DaOiOSTv.js → ImageViewer-h9C9D8v9.js} +1 -1
  8. package/dist/web/assets/{MarkdownFileViewer-ClMD9Ue4.js → MarkdownFileViewer-BQeO16YO.js} +1 -1
  9. package/dist/web/assets/{MoleculeViewerPanel-CygvORN_.js → MoleculeViewerPanel-DfwAiUFo.js} +1 -1
  10. package/dist/web/assets/{TerminalPanel-CvPChpSS.js → TerminalPanel-3Xef8_VS.js} +1 -1
  11. package/dist/web/assets/{TextViewer-74KETLFr.js → TextViewer-DQlVqrhS.js} +1 -1
  12. package/dist/web/assets/{VideoViewer-Lqxru2TE.js → VideoViewer-CUwy7vap.js} +1 -1
  13. package/dist/web/assets/{href-resolution-CslSafQh.js → href-resolution-Bu3Ezb0Z.js} +1 -1
  14. package/dist/web/assets/index-B3iWaw7F.css +1 -0
  15. package/dist/web/assets/{index-B0ZicKql.js → index-CRcOAGBq.js} +3 -3
  16. package/dist/web/assets/{markdown-DS-89d55.js → markdown-S4LuDRgo.js} +1 -1
  17. package/dist/web/assets/{use-file-download-CBVJCQJ2.js → use-file-download-C5RZM273.js} +1 -1
  18. package/dist/web/assets/{use-file-watch-3x6zRGHd.js → use-file-watch-C6t0UJSi.js} +1 -1
  19. package/dist/web/index.html +2 -2
  20. package/package.json +3 -3
  21. package/dist/web/assets/index-BoxzEMQ7.css +0 -1
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid.core-BEntOW_N.js","assets/vendor-DVp0ZLQo.js","assets/vendor-react-DQUAl2K8.js","assets/vendor-CEK31ho9.css"])))=>i.map(i=>d[i]);
2
- import{_ as L}from"./vendor-DVp0ZLQo.js";import{r as m,j as i}from"./vendor-react-DQUAl2K8.js";import{b as N,u as _,q as H,s as P,t as $,k as j,S as F,v as I,w as E,x as R}from"./index-B0ZicKql.js";import{c as D}from"./vendor-highlight-BjiGXuEM.js";import{r as y}from"./href-resolution-CslSafQh.js";import{M as V,r as A,a as U,b as O}from"./vendor-markdown-Bc_dOmsB.js";const v="github-dark";let h=null;const b=new Set(["plaintext"]);function B(){return h||(h=D({themes:[v],langs:["plaintext"]})),h}async function z(r,e){if(b.has(e))return e;try{return await r.loadLanguage(e),b.add(e),e}catch{return"plaintext"}}async function G(r,e){const t=await B(),n=await z(t,e);return t.codeToHtml(r,{lang:n,theme:v})}const w={background:"--pi-color-surface1",primaryColor:"--pi-color-surface2",primaryTextColor:"--pi-color-foreground",primaryBorderColor:"--pi-color-surface3",lineColor:"--pi-color-foregroundMuted",secondaryColor:"--pi-color-surface3",secondaryTextColor:"--pi-color-foreground",secondaryBorderColor:"--pi-color-surface4",tertiaryColor:"--pi-color-surface1",tertiaryTextColor:"--pi-color-foreground",tertiaryBorderColor:"--pi-color-surface3",textColor:"--pi-color-foreground"};function K(r){var t;const e={};for(const[n,s]of Object.entries(w)){const a=(t=r[s])==null?void 0:t.trim();a&&(e[n]=a)}return e}function q(){const r=getComputedStyle(document.documentElement),e={};for(const t of Object.values(w))e[t]=r.getPropertyValue(t);return K(e)}const Y="_prose_k8kw9_1",Z="_streaming_k8kw9_26",W="_inlineCode_k8kw9_65",J="_mermaid_k8kw9_83",Q="_mermaidError_k8kw9_92",X="_mermaidErrorMessage_k8kw9_95",ee="_inlineImage_k8kw9_126",te="_inlineImageSkeleton_k8kw9_135",re="_inlineImageFallback_k8kw9_146",d={prose:Y,streaming:Z,inlineCode:W,mermaid:J,mermaidError:Q,mermaidErrorMessage:X,inlineImage:ee,inlineImageSkeleton:te,inlineImageFallback:re},ne={"http:":!0,"https:":!0,"data:":!0,"blob:":!0},se=/^([a-zA-Z][a-zA-Z0-9+.-]*):/;function ae(r,e,t){const n=r.trim();if(!n)return{kind:"unresolvable"};const s=n.split(/[?#]/,1)[0];if(!s)return{kind:"unresolvable"};const a=se.exec(s);if(a)return`${a[1].toLowerCase()}:`in ne?{kind:"remote"}:{kind:"unresolvable"};const o=y(r,e,t);return o?N(o)!=="image"?{kind:"unresolvable"}:{kind:"local",path:o}:{kind:"unresolvable"}}function ie(r,e,t,n){return r.kind==="remote"?{kind:"remote",src:t||"",alt:n}:r.kind==="unresolvable"?{kind:"unresolvable",fallbackText:n||t||"(image)"}:e.status==="loading"||e.status==="idle"?{kind:"loading"}:e.status==="ready"?{kind:"ready",objectUrl:e.objectUrl,alt:n,path:r.path}:{kind:"error",fallbackText:n||r.path||"(image)"}}function M(r,e,t){return{workspaceCwd:t??(r||"~"),targetPaneId:e??void 0}}function oe(r,e,t){if(!r||!e){t({status:"idle"});return}let n=!1;return t({status:"loading"}),H(r,e).then(s=>{n||t({status:"ready",objectUrl:s.objectUrl})}).catch(s=>{n||t({status:"error",message:s instanceof Error?s.message:String(s)})}),()=>{n=!0,P(r)}}function le(r){const e=_(a=>a.client),t=_(a=>a.daemon),[n,s]=m.useState({status:"idle"});return m.useEffect(()=>oe(r,e&&t?o=>$(t).download(o):null,s),[e,t,r]),n}const ce=m.memo(function({src:e,alt:t,assetBase:n,owningPaneId:s,workspaceCwd:a}){const o=j(),u=m.useMemo(()=>ae(e||"",n,o),[e,n,o]),c=le(u.kind==="local"?u.path:null),l=ie(u,c,e,t);if(l.kind==="remote")return i.jsx("img",{src:l.src,alt:l.alt,className:d.inlineImage});if(l.kind==="unresolvable"||l.kind==="error")return i.jsx("code",{className:d.inlineImageFallback,children:l.fallbackText});if(l.kind==="loading")return i.jsx("div",{className:d.inlineImageSkeleton,children:i.jsx(F,{size:"sm"})});const g=M(n,s??null,a??null),k=()=>{E(l.path,g.workspaceCwd,g.targetPaneId)};return i.jsx("img",{src:l.objectUrl,alt:l.alt,className:d.inlineImage,title:l.path,draggable:!0,onDragStart:I(l.path),onClick:k,style:{cursor:"pointer"}})});function ue(r,e,t){const n=r.trim();if(!n)return{kind:"external"};if(n.startsWith("#"))return{kind:"external"};const s=y(r,e,t);return s?{kind:"local",path:s}:{kind:"external"}}function de({href:r,children:e,assetBase:t,owningPaneId:n,workspaceCwd:s}){const a=j(),o=ue(r??"",t,a);if(o.kind==="external")return i.jsx("a",{href:r,children:e});const u=o.path,c=M(t,n,s);return i.jsx("a",{href:r,draggable:!0,onDragStart:I(u),onClick:l=>{l.preventDefault(),E(u,c.workspaceCwd,c.targetPaneId)},children:e})}const C=/^ {0,3}([-*+]|\d{1,9}[.)])(\s|$)/,me=/^(\s*)(`{3,}|~{3,})(.*)$/;function fe(r){return C.test(r[0]??"")}function ge(r,e){for(let t=e;t<r.length;t++)if((r[t]??"").trim()!=="")return t;return-1}function ke(r){if(!r)return{blocks:[],tail:""};const e=r.split(`
2
+ import{_ as L}from"./vendor-DVp0ZLQo.js";import{r as m,j as i}from"./vendor-react-DQUAl2K8.js";import{b as N,u as _,q as H,s as P,t as $,k as j,S as F,v as I,w as E,x as R}from"./index-CRcOAGBq.js";import{c as D}from"./vendor-highlight-BjiGXuEM.js";import{r as y}from"./href-resolution-Bu3Ezb0Z.js";import{M as V,r as A,a as U,b as O}from"./vendor-markdown-Bc_dOmsB.js";const v="github-dark";let h=null;const b=new Set(["plaintext"]);function B(){return h||(h=D({themes:[v],langs:["plaintext"]})),h}async function z(r,e){if(b.has(e))return e;try{return await r.loadLanguage(e),b.add(e),e}catch{return"plaintext"}}async function G(r,e){const t=await B(),n=await z(t,e);return t.codeToHtml(r,{lang:n,theme:v})}const w={background:"--pi-color-surface1",primaryColor:"--pi-color-surface2",primaryTextColor:"--pi-color-foreground",primaryBorderColor:"--pi-color-surface3",lineColor:"--pi-color-foregroundMuted",secondaryColor:"--pi-color-surface3",secondaryTextColor:"--pi-color-foreground",secondaryBorderColor:"--pi-color-surface4",tertiaryColor:"--pi-color-surface1",tertiaryTextColor:"--pi-color-foreground",tertiaryBorderColor:"--pi-color-surface3",textColor:"--pi-color-foreground"};function K(r){var t;const e={};for(const[n,s]of Object.entries(w)){const a=(t=r[s])==null?void 0:t.trim();a&&(e[n]=a)}return e}function q(){const r=getComputedStyle(document.documentElement),e={};for(const t of Object.values(w))e[t]=r.getPropertyValue(t);return K(e)}const Y="_prose_k8kw9_1",Z="_streaming_k8kw9_26",W="_inlineCode_k8kw9_65",J="_mermaid_k8kw9_83",Q="_mermaidError_k8kw9_92",X="_mermaidErrorMessage_k8kw9_95",ee="_inlineImage_k8kw9_126",te="_inlineImageSkeleton_k8kw9_135",re="_inlineImageFallback_k8kw9_146",d={prose:Y,streaming:Z,inlineCode:W,mermaid:J,mermaidError:Q,mermaidErrorMessage:X,inlineImage:ee,inlineImageSkeleton:te,inlineImageFallback:re},ne={"http:":!0,"https:":!0,"data:":!0,"blob:":!0},se=/^([a-zA-Z][a-zA-Z0-9+.-]*):/;function ae(r,e,t){const n=r.trim();if(!n)return{kind:"unresolvable"};const s=n.split(/[?#]/,1)[0];if(!s)return{kind:"unresolvable"};const a=se.exec(s);if(a)return`${a[1].toLowerCase()}:`in ne?{kind:"remote"}:{kind:"unresolvable"};const o=y(r,e,t);return o?N(o)!=="image"?{kind:"unresolvable"}:{kind:"local",path:o}:{kind:"unresolvable"}}function ie(r,e,t,n){return r.kind==="remote"?{kind:"remote",src:t||"",alt:n}:r.kind==="unresolvable"?{kind:"unresolvable",fallbackText:n||t||"(image)"}:e.status==="loading"||e.status==="idle"?{kind:"loading"}:e.status==="ready"?{kind:"ready",objectUrl:e.objectUrl,alt:n,path:r.path}:{kind:"error",fallbackText:n||r.path||"(image)"}}function M(r,e,t){return{workspaceCwd:t??(r||"~"),targetPaneId:e??void 0}}function oe(r,e,t){if(!r||!e){t({status:"idle"});return}let n=!1;return t({status:"loading"}),H(r,e).then(s=>{n||t({status:"ready",objectUrl:s.objectUrl})}).catch(s=>{n||t({status:"error",message:s instanceof Error?s.message:String(s)})}),()=>{n=!0,P(r)}}function le(r){const e=_(a=>a.client),t=_(a=>a.daemon),[n,s]=m.useState({status:"idle"});return m.useEffect(()=>oe(r,e&&t?o=>$(t).download(o):null,s),[e,t,r]),n}const ce=m.memo(function({src:e,alt:t,assetBase:n,owningPaneId:s,workspaceCwd:a}){const o=j(),u=m.useMemo(()=>ae(e||"",n,o),[e,n,o]),c=le(u.kind==="local"?u.path:null),l=ie(u,c,e,t);if(l.kind==="remote")return i.jsx("img",{src:l.src,alt:l.alt,className:d.inlineImage});if(l.kind==="unresolvable"||l.kind==="error")return i.jsx("code",{className:d.inlineImageFallback,children:l.fallbackText});if(l.kind==="loading")return i.jsx("div",{className:d.inlineImageSkeleton,children:i.jsx(F,{size:"sm"})});const g=M(n,s??null,a??null),k=()=>{E(l.path,g.workspaceCwd,g.targetPaneId)};return i.jsx("img",{src:l.objectUrl,alt:l.alt,className:d.inlineImage,title:l.path,draggable:!0,onDragStart:I(l.path),onClick:k,style:{cursor:"pointer"}})});function ue(r,e,t){const n=r.trim();if(!n)return{kind:"external"};if(n.startsWith("#"))return{kind:"external"};const s=y(r,e,t);return s?{kind:"local",path:s}:{kind:"external"}}function de({href:r,children:e,assetBase:t,owningPaneId:n,workspaceCwd:s}){const a=j(),o=ue(r??"",t,a);if(o.kind==="external")return i.jsx("a",{href:r,children:e});const u=o.path,c=M(t,n,s);return i.jsx("a",{href:r,draggable:!0,onDragStart:I(u),onClick:l=>{l.preventDefault(),E(u,c.workspaceCwd,c.targetPaneId)},children:e})}const C=/^ {0,3}([-*+]|\d{1,9}[.)])(\s|$)/,me=/^(\s*)(`{3,}|~{3,})(.*)$/;function fe(r){return C.test(r[0]??"")}function ge(r,e){for(let t=e;t<r.length;t++)if((r[t]??"").trim()!=="")return t;return-1}function ke(r){if(!r)return{blocks:[],tail:""};const e=r.split(`
3
3
  `),t=[];let n=[],s=null,a=!1,o=!1;const u=()=>{const c=n.join(`
4
4
  `).trim();c&&t.push(c),n=[]};for(let c=0;c<e.length;c++){const l=e[c]??"",g=l.trim();if(s!==null){if(n.push(l),s.test(g)){const f=a;s=null,a=!1,f&&u()}continue}const k=me.exec(l);if(k&&!o){const f=k[2];s=new RegExp(`^[${f[0]}]{${f.length},}$`),a=k[1]==="",n.push(l);continue}if(g===""&&n.length===0)continue;if((g.split("$$").length-1)%2===1&&(o=!o),g===""&&!o){const f=ge(e,c+1),p=f===-1?null:e[f]??"",S=p!==null&&!/^\s/.test(p),T=p!==null&&C.test(p)&&fe(n);if(S&&!T){u(),c=f-1;continue}}n.push(l)}return{blocks:t,tail:n.join(`
5
5
  `)}}function pe({language:r,code:e}){const[t,n]=m.useState(null);return m.useEffect(()=>{let s=!1;return G(e,r).then(a=>{s||n(a)}),()=>{s=!0}},[e,r]),t?i.jsx("div",{className:d.prose,dangerouslySetInnerHTML:{__html:t}}):i.jsx("pre",{children:i.jsx("code",{children:e})})}function he({code:r}){const[e]=m.useState(()=>`mermaid-${R()}`),[t,n]=m.useState({status:"pending"});return m.useEffect(()=>{let s=!1;return(async()=>{try{const{default:a}=await L(async()=>{const{default:u}=await import("./mermaid.core-BEntOW_N.js").then(c=>c.b0);return{default:u}},__vite__mapDeps([0,1,2,3]));a.initialize({startOnLoad:!1,theme:"base",themeVariables:q(),securityLevel:"strict",fontFamily:"var(--pi-font-ui)"});const{svg:o}=await a.render(e,r);s||n({status:"ready",svg:o})}catch(a){s||n({status:"error",message:a instanceof Error?a.message:"Failed to render diagram"})}})(),()=>{s=!0}},[e,r]),t.status==="ready"?i.jsx("div",{className:d.mermaid,dangerouslySetInnerHTML:{__html:t.svg}}):t.status==="error"?i.jsxs("div",{className:d.mermaidError,children:[i.jsxs("p",{className:d.mermaidErrorMessage,children:["Failed to render diagram: ",t.message]}),i.jsx("pre",{children:i.jsx("code",{children:r})})]}):i.jsx("pre",{children:i.jsx("code",{children:r})})}function xe({className:r,children:e,...t}){const n=/language-(\w+)/.exec(r??""),s=!!n,a=String(e).replace(/\n$/,"");if(s&&n){const o=n[1]??"plaintext";return o==="mermaid"?i.jsx(he,{code:a}):i.jsx(pe,{language:o,code:a})}return i.jsx("code",{className:d.inlineCode,...t,children:e})}function _e({className:r,children:e,...t}){return/language-(\w+)/.test(r??"")?i.jsx("pre",{children:i.jsx("code",{children:String(e).replace(/\n$/,"")})}):i.jsx("code",{className:d.inlineCode,...t,children:e})}const be=[U,O],je=[A],Ie=[],x=m.memo(function({text:e,assetBase:t=null,owningPaneId:n=null,workspaceCwd:s=null,lean:a=!1}){return i.jsx(V,{remarkPlugins:be,rehypePlugins:a?Ie:je,components:{code:a?_e:xe,img:o=>i.jsx(ce,{...o,assetBase:t,owningPaneId:n,workspaceCwd:s}),a:o=>i.jsx(de,{...o,assetBase:t,owningPaneId:n,workspaceCwd:s})},children:e})});function Te({text:r,assetBase:e,owningPaneId:t,workspaceCwd:n}){return i.jsx("div",{className:d.prose,children:i.jsx(x,{text:r,assetBase:e,owningPaneId:t,workspaceCwd:n})})}function Le({text:r,assetBase:e,owningPaneId:t,workspaceCwd:n}){const{blocks:s,tail:a}=m.useMemo(()=>ke(r),[r]);return i.jsxs("div",{className:`${d.prose} ${d.streaming}`,children:[s.map((o,u)=>i.jsx(x,{text:o,assetBase:e,owningPaneId:t,workspaceCwd:n},u)),a!==""&&i.jsx(x,{text:a,lean:!0,assetBase:e,owningPaneId:t,workspaceCwd:n})]})}export{Te as M,Le as S,M as r};
@@ -1 +1 @@
1
- import{r as a}from"./vendor-react-DQUAl2K8.js";import{u as f}from"./vendor-query-i7fr__Xm.js";import{u as i,t as m,a as y}from"./index-B0ZicKql.js";function p(o,s=!0){var u;const l=i(e=>e.client),n=i(e=>e.daemon),c=f({queryKey:y.fileDownload(o),queryFn:async()=>{if(!l||!n)throw new Error("not connected");const e=await m(n).download(o),t=new Blob([Uint8Array.from(e.bytes)],{type:e.mimeType||"application/octet-stream"});return{objectUrl:URL.createObjectURL(t),mimeType:e.mimeType,fileName:e.fileName}},enabled:!!l&&!!n&&!!o&&s,staleTime:1/0,gcTime:0}),r=a.useRef(null);return a.useEffect(()=>{var t;const e=((t=c.data)==null?void 0:t.objectUrl)??null;e&&r.current&&r.current!==e&&URL.revokeObjectURL(r.current),r.current=e},[(u=c.data)==null?void 0:u.objectUrl]),a.useEffect(()=>()=>{r.current&&URL.revokeObjectURL(r.current)},[]),c}export{p as u};
1
+ import{r as a}from"./vendor-react-DQUAl2K8.js";import{u as f}from"./vendor-query-i7fr__Xm.js";import{u as i,t as m,a as y}from"./index-CRcOAGBq.js";function p(o,s=!0){var u;const l=i(e=>e.client),n=i(e=>e.daemon),c=f({queryKey:y.fileDownload(o),queryFn:async()=>{if(!l||!n)throw new Error("not connected");const e=await m(n).download(o),t=new Blob([Uint8Array.from(e.bytes)],{type:e.mimeType||"application/octet-stream"});return{objectUrl:URL.createObjectURL(t),mimeType:e.mimeType,fileName:e.fileName}},enabled:!!l&&!!n&&!!o&&s,staleTime:1/0,gcTime:0}),r=a.useRef(null);return a.useEffect(()=>{var t;const e=((t=c.data)==null?void 0:t.objectUrl)??null;e&&r.current&&r.current!==e&&URL.revokeObjectURL(r.current),r.current=e},[(u=c.data)==null?void 0:u.objectUrl]),a.useEffect(()=>()=>{r.current&&URL.revokeObjectURL(r.current)},[]),c}export{p as u};
@@ -1 +1 @@
1
- import{r as a}from"./vendor-react-DQUAl2K8.js";import{u as w}from"./index-B0ZicKql.js";function b(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="file_changed"&&"path"in e&&typeof e.path=="string"}const l=new WeakMap;function p(e,t,i){let s=l.get(e);s||(s=new Map,l.set(e,s));let o=s.get(t);if(!o){const r={count:0,resolvedPath:null,listeners:new Set,dispose:()=>{}},f=e.connection.onSessionMessage(c=>{const n=c;if(!b(n)||n.path!==t&&n.path!==r.resolvedPath)return;const d=Date.now();for(const h of r.listeners)h(d)});e.connection.request("file_watch_subscribe",{path:t}).then(c=>{const n=c;if((n==null?void 0:n.ok)===!1){console.warn(`watchFile: ${n.error??"subscribe failed"} for "${t}"`);return}typeof(n==null?void 0:n.path)=="string"&&(r.resolvedPath=n.path)}).catch(()=>{}),r.dispose=()=>{f(),e.connection.request("file_watch_unsubscribe",{path:t}).catch(()=>{})},o=r,s.set(t,o)}o.count++,o.listeners.add(i);let u=!1;return()=>{if(u)return;u=!0;const r=s.get(t);r&&(r.listeners.delete(i),r.count--,r.count===0&&(s.delete(t),r.dispose()))}}function v(e){const t=w(o=>o.client),[i,s]=a.useState(null);return a.useEffect(()=>{if(!(!t||!e))return p(t,e,s)},[t,e]),{changedAt:i}}export{v as u};
1
+ import{r as a}from"./vendor-react-DQUAl2K8.js";import{u as w}from"./index-CRcOAGBq.js";function b(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="file_changed"&&"path"in e&&typeof e.path=="string"}const l=new WeakMap;function p(e,t,i){let s=l.get(e);s||(s=new Map,l.set(e,s));let o=s.get(t);if(!o){const r={count:0,resolvedPath:null,listeners:new Set,dispose:()=>{}},f=e.connection.onSessionMessage(c=>{const n=c;if(!b(n)||n.path!==t&&n.path!==r.resolvedPath)return;const d=Date.now();for(const h of r.listeners)h(d)});e.connection.request("file_watch_subscribe",{path:t}).then(c=>{const n=c;if((n==null?void 0:n.ok)===!1){console.warn(`watchFile: ${n.error??"subscribe failed"} for "${t}"`);return}typeof(n==null?void 0:n.path)=="string"&&(r.resolvedPath=n.path)}).catch(()=>{}),r.dispose=()=>{f(),e.connection.request("file_watch_unsubscribe",{path:t}).catch(()=>{})},o=r,s.set(t,o)}o.count++,o.listeners.add(i);let u=!1;return()=>{if(u)return;u=!0;const r=s.get(t);r&&(r.listeners.delete(i),r.count--,r.count===0&&(s.delete(t),r.dispose()))}}function v(e){const t=w(o=>o.client),[i,s]=a.useState(null);return a.useEffect(()=>{if(!(!t||!e))return p(t,e,s)},[t,e]),{changedAt:i}}export{v as u};
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
7
7
  <title>Pi-Studio</title>
8
- <script type="module" crossorigin src="/assets/index-B0ZicKql.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-CRcOAGBq.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-DQUAl2K8.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/vendor-query-i7fr__Xm.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/vendor-DVp0ZLQo.js">
@@ -13,7 +13,7 @@
13
13
  <link rel="modulepreload" crossorigin href="/assets/vendor-overlays-BfyojyuH.js">
14
14
  <link rel="modulepreload" crossorigin href="/assets/vendor-dnd-CayJj8TC.js">
15
15
  <link rel="stylesheet" crossorigin href="/assets/vendor-CEK31ho9.css">
16
- <link rel="stylesheet" crossorigin href="/assets/index-BoxzEMQ7.css">
16
+ <link rel="stylesheet" crossorigin href="/assets/index-B3iWaw7F.css">
17
17
  </head>
18
18
  <body>
19
19
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@av-pi-studio/web-client",
3
- "version": "0.0.87",
3
+ "version": "0.0.89",
4
4
  "files": [
5
5
  "dist",
6
6
  "!dist/**/*.map",
@@ -16,8 +16,8 @@
16
16
  "clean": "rm -rf dist *.tsbuildinfo"
17
17
  },
18
18
  "devDependencies": {
19
- "@av-pi-studio/client": "^0.0.87",
20
- "@av-pi-studio/protocol": "^0.0.87",
19
+ "@av-pi-studio/client": "^0.0.89",
20
+ "@av-pi-studio/protocol": "^0.0.89",
21
21
  "@codemirror/language": "^6.12.4",
22
22
  "@codemirror/language-data": "^6.5.2",
23
23
  "@codemirror/state": "^6.7.1",
@@ -1 +0,0 @@
1
- html,body{margin:0;padding:0}body{min-height:100vh;overflow:hidden;background:var(--pi-color-background);color:var(--pi-color-foreground);font-family:var(--pi-font-ui)}#root{display:flex;flex-direction:column;min-height:100vh}*,*:before,*:after{box-sizing:border-box}body[data-pi-dragging] iframe{pointer-events:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--pi-color-border);border-radius:var(--pi-radius-base)}._btn_1oc6k_4{display:inline-flex;align-items:center;justify-content:center;gap:var(--pi-spacing-8);border-radius:var(--pi-radius-lg);border:1px solid transparent;font-family:var(--pi-font-ui);font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;outline:none;transition:opacity .12s ease,background-color .12s ease,border-color .12s ease;box-sizing:border-box}._btn_1oc6k_4:focus-visible{outline:2px solid var(--pi-color-accent);outline-offset:2px}._btn_1oc6k_4:disabled,._btn_1oc6k_4[aria-disabled=true]{cursor:not-allowed;pointer-events:none}._default_1oc6k_38{background-color:var(--pi-color-accent);color:var(--pi-color-accentForeground);border-color:var(--pi-color-accent)}._default_1oc6k_38:hover:not(:disabled){filter:brightness(1.08)}._secondary_1oc6k_47{background-color:var(--pi-color-surface3);color:var(--pi-color-foreground);border-color:var(--pi-color-border)}._secondary_1oc6k_47:hover:not(:disabled){background-color:var(--pi-color-surface2)}._outline_1oc6k_56{background-color:transparent;color:var(--pi-color-accentBright);border-color:var(--pi-color-accent)}._outline_1oc6k_56:hover:not(:disabled){background-color:var(--pi-color-surface1)}._ghost_1oc6k_65{background-color:transparent;color:var(--pi-color-foregroundMuted);border-color:transparent}._ghost_1oc6k_65:hover:not(:disabled){color:var(--pi-color-foreground);background-color:var(--pi-color-surface1)}._destructive_1oc6k_75{background-color:var(--pi-color-destructive);color:var(--pi-color-destructiveForeground);border-color:var(--pi-color-destructive)}._destructive_1oc6k_75:hover:not(:disabled){filter:brightness(1.1)}._iconOnly_1oc6k_85{padding-left:0!important;padding-right:0!important;aspect-ratio:1}._loadingSpinner_1oc6k_92{animation:_piSpin_1oc6k_1 .75s linear infinite;flex-shrink:0}@keyframes _piSpin_1oc6k_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._spinner_1ibj3_3{display:inline-block;border-radius:var(--pi-radius-full);border-style:solid;border-color:currentColor transparent transparent transparent;animation:_piSpinnerRotate_1ibj3_1 .7s linear infinite;flex-shrink:0}@keyframes _piSpinnerRotate_1ibj3_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){._spinner_1ibj3_3{animation:none}}._dot_hctvn_3{display:inline-block;width:8px;height:8px;border-radius:var(--pi-radius-full);flex-shrink:0}._spinner_hctvn_16{display:inline-block;width:var(--status-dot-size, 12px);height:var(--status-dot-size, 12px);border-radius:var(--pi-radius-full);border:var(--status-dot-border-width, 2px) solid var(--pi-color-border);flex-shrink:0;animation:_statusSpin_hctvn_1 .7s linear infinite}@keyframes _statusSpin_hctvn_1{to{transform:rotate(360deg)}}._input_756jo_3{width:100%;padding:var(--pi-spacing-8) var(--pi-spacing-12);border-radius:var(--pi-radius-md);border:1px solid var(--pi-color-border);background-color:var(--pi-color-surface2);color:var(--pi-color-foreground);font-size:var(--pi-font-size-base);font-family:var(--pi-font-ui);outline:none;transition:border-color .12s ease;box-sizing:border-box}._input_756jo_3::placeholder{color:var(--pi-color-foregroundMuted)}._input_756jo_3:focus{border-color:var(--pi-color-accent);outline:2px solid var(--pi-color-accent);outline-offset:-1px}._input_756jo_3:disabled{opacity:.5;cursor:not-allowed}._textarea_756jo_32{resize:vertical;min-height:80px}._bar_1o0iw_9{display:flex;align-items:center;gap:var(--pi-spacing-12);height:42px;padding:0 var(--pi-spacing-14);border-bottom:var(--pi-border-width-1) solid var(--pi-color-border);flex-shrink:0;overflow-x:auto;overflow-y:hidden}._title_1o0iw_21{flex:none;display:flex;align-items:baseline;gap:var(--pi-spacing-4)}._brand_1o0iw_27{font-weight:600;font-size:var(--pi-font-size-sm);letter-spacing:.02em;white-space:nowrap}._version_1o0iw_33{font-size:var(--pi-font-size-2xs);color:var(--pi-color-foregroundMuted);white-space:nowrap}._statusPill_1o0iw_41{flex:none;max-width:340px;display:flex;align-items:center;gap:var(--pi-spacing-7);height:var(--pi-spacing-26);padding:0 var(--pi-spacing-11);background:var(--pi-color-surface1);border:var(--pi-border-width-1) solid var(--pi-color-border);border-radius:var(--pi-radius-full);font-size:var(--pi-font-size-2xs);color:var(--pi-color-foregroundMuted);white-space:nowrap}._statusText_1o0iw_60{min-width:0;display:flex;align-items:center;gap:var(--pi-spacing-4)}._statusHost_1o0iw_68{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--pi-font-mono);color:var(--pi-color-foreground)}._statusSep_1o0iw_76,._statusLabel_1o0iw_79,._statusDot_1o0iw_82,._statusSpinner_1o0iw_83{flex:none}._statusPillError_1o0iw_87{color:var(--pi-color-destructive);border-color:color-mix(in srgb,var(--pi-color-destructive) 45%,transparent);background:color-mix(in srgb,var(--pi-color-destructive) 12%,var(--pi-color-surface1))}input._field_1o0iw_4{flex:0 1 auto;min-width:40px;width:auto;height:var(--pi-spacing-26);padding:0 var(--pi-spacing-11);background:var(--pi-color-surface1);border:var(--pi-border-width-1) solid var(--pi-color-border);border-radius:var(--pi-radius-md);font-size:var(--pi-font-size-2xs);color:var(--pi-color-foreground);text-overflow:ellipsis}input._fieldUrl_1o0iw_111{flex-basis:220px;font-family:var(--pi-font-mono)}input._fieldPassword_1o0iw_115{flex-basis:120px}input._field_1o0iw_4:focus{border-color:var(--pi-color-accentBright);outline:none}input._fieldInvalid_1o0iw_122,input._fieldInvalid_1o0iw_122:focus{border-color:var(--pi-color-destructive)}input._field_1o0iw_4:read-only{opacity:var(--pi-opacity-50);pointer-events:none}._action_1o0iw_139{flex:none}._panelToggles_1o0iw_147{margin-left:auto;flex:none;display:flex;align-items:center;gap:var(--pi-spacing-6)}._panelToggle_1o0iw_147{flex:none;border-color:var(--pi-color-border);border-radius:var(--pi-radius-md)}._panel_1de7t_3{display:flex;flex-direction:column;height:100%;min-height:0}._emptyState_kp50e_3{display:flex;align-items:center;justify-content:center;gap:var(--pi-spacing-8);color:var(--pi-color-foregroundMuted);font-size:var(--pi-font-size-xs);padding:var(--pi-spacing-20);text-align:center}._iconBtn_1unr3_3{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;background:none;border:none;border-radius:var(--pi-radius-base);color:var(--pi-color-foregroundMuted);cursor:pointer}._iconBtn_1unr3_3:hover{color:var(--pi-color-foreground);background:color-mix(in srgb,var(--icon-btn-hover-base, var(--pi-color-surface1)) 85%,var(--pi-color-foreground) 15%)}._iconBtn_1unr3_3:focus-visible{outline:2px solid var(--pi-color-accent);outline-offset:2px}._iconBtn_1unr3_3:disabled{opacity:.4;cursor:default}._xs_1unr3_32{width:20px;height:20px}._sm_1unr3_36{width:28px;height:28px}._header_962zs_1{display:flex;align-items:center;padding:0 var(--pi-spacing-10);flex-shrink:0}._header_962zs_1 h3{margin:0;font-size:var(--pi-font-size-3xs);font-weight:var(--pi-font-weight-bold);color:var(--pi-color-foregroundMuted);text-transform:uppercase;letter-spacing:.1em}._list_962zs_15{flex:1 1 auto;overflow-y:auto;min-height:0}._newSessionRow_962zs_20{display:flex;align-items:center;justify-content:center;gap:var(--pi-spacing-4);width:100%;margin:0;padding:var(--pi-spacing-6) var(--pi-spacing-10);border:none;border-radius:var(--pi-radius-sm);background:none;font-size:var(--pi-font-size-2xs);color:var(--pi-color-foregroundMuted);cursor:pointer}._newSessionRow_962zs_20:hover{background:var(--pi-color-surface0)}._newSessionRow_962zs_20:disabled{cursor:default;opacity:var(--pi-opacity-50)}._newSessionRow_962zs_20:disabled:hover{background:none}._footer_962zs_45{display:flex;align-items:center;justify-content:center;gap:var(--pi-spacing-4);flex-shrink:0;margin:0;padding:var(--pi-spacing-8) var(--pi-spacing-10);border:none;border-top:var(--pi-border-width-1) solid var(--pi-color-border);background:none;font-size:var(--pi-font-size-2xs);color:var(--pi-color-foregroundMuted);cursor:pointer}._footer_962zs_45:hover{background:var(--pi-color-surface0)}._footer_962zs_45:disabled{cursor:default;opacity:var(--pi-opacity-50)}._footer_962zs_45:disabled:hover{background:none}._item_962zs_70{position:relative;display:flex;flex-direction:column;gap:var(--pi-spacing-2);padding:var(--pi-spacing-7) var(--pi-spacing-10);border-radius:var(--pi-radius-sm);cursor:pointer;background:color-mix(in srgb,var(--pi-color-surface0) 60%,transparent)}._item_962zs_70:hover{background:var(--pi-color-surface0)}._itemFailed_962zs_85{background:color-mix(in srgb,var(--pi-color-destructive) 10%,transparent)}._item_962zs_70._active_962zs_83{background:color-mix(in srgb,var(--pi-color-accent) 34%,transparent);box-shadow:inset 0 0 0 var(--pi-border-width-1) color-mix(in srgb,var(--pi-color-accentBright) 32%,transparent)}._activeBar_962zs_88{position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--pi-color-accentBright)}._title_962zs_89{display:flex;align-items:center;gap:var(--pi-spacing-6);font-size:var(--pi-font-size-sm)}._titleLabel_962zs_89{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._item_962zs_70._active_962zs_83 ._titleLabel_962zs_89{color:var(--pi-color-accentForeground);font-weight:var(--pi-font-weight-bold)}._titleItalic_962zs_120{font-style:italic}._meta_962zs_123{display:flex;align-items:center;gap:var(--pi-spacing-6);font-size:var(--pi-font-size-3xs);color:var(--pi-color-foregroundMuted);overflow:hidden}._metaDot_962zs_131{flex-shrink:0;--status-dot-size: 9px;--status-dot-border-width: 1.5px}._metaLabel_962zs_136{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._metaFailed_962zs_141{color:var(--pi-color-destructive)}._metaEmpty_962zs_144{opacity:var(--pi-opacity-50)}._menuBtn_962zs_149{flex-shrink:0;opacity:0}._item_962zs_70:hover ._menuBtn_962zs_149,._item_962zs_70:focus-within ._menuBtn_962zs_149{opacity:1}@media(max-width:575px),(hover:none){._menuBtn_962zs_149{opacity:1}}._workspaceHeader_962zs_162{display:flex;align-items:center;gap:var(--pi-spacing-8);padding:var(--pi-spacing-8) var(--pi-spacing-12);cursor:pointer;font-size:var(--pi-font-size-xs);color:var(--pi-color-foreground);background:var(--pi-color-surface2);border-top:var(--pi-border-width-1) solid var(--pi-color-border);border-bottom:var(--pi-border-width-1) solid var(--pi-color-border)}._workspaceHeader_962zs_162:hover{background:color-mix(in srgb,var(--pi-color-surface2) 85%,var(--pi-color-foreground) 15%)}._workspaceChevron_962zs_184{flex-shrink:0;background:var(--pi-color-surface3);border-radius:var(--pi-radius-base)}._workspaceHeader_962zs_162 ._workspaceChevron_962zs_184:hover{background:var(--pi-color-surface3)}._chevronGlyphExpanded_962zs_195{transform:rotate(90deg)}._workspaceLabel_962zs_201{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._workspaceCount_962zs_207{flex-shrink:0;font-size:var(--pi-font-size-4xs);color:var(--pi-color-foregroundMuted);background:var(--pi-color-surface3);border-radius:var(--pi-radius-full);padding:var(--pi-spacing-1) var(--pi-spacing-6)}._workspaceMenuBtn_962zs_215{flex-shrink:0;opacity:0}._workspaceHeader_962zs_162:hover ._workspaceMenuBtn_962zs_215{opacity:1}@media(max-width:575px),(hover:none){._workspaceMenuBtn_962zs_215{opacity:1}}._workspaceSessions_962zs_227{display:flex;flex-direction:column;gap:var(--pi-spacing-3);padding:var(--pi-spacing-5) var(--pi-spacing-8) var(--pi-spacing-8)}._trigger_cd29a_3{position:fixed;width:1px;height:1px;padding:0;border:0;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0;pointer-events:none}._content_cd29a_15{min-width:140px;padding:var(--pi-spacing-4);border-radius:var(--pi-radius-md);background:var(--pi-color-surface1);border:1px solid var(--pi-color-border);box-shadow:0 8px 24px #0006;z-index:1000}._item_cd29a_25{display:flex;align-items:center;gap:var(--pi-spacing-8);padding:var(--pi-spacing-6) var(--pi-spacing-10);border-radius:var(--pi-radius-base);font-size:var(--pi-font-size-sm);cursor:pointer;outline:none}._item_cd29a_25:hover,._item_cd29a_25[data-highlighted]{background:color-mix(in srgb,var(--pi-color-surface1) 85%,var(--pi-color-foreground) 15%)}._item_cd29a_25[data-disabled]{opacity:.4;cursor:default}._danger_cd29a_44{color:var(--pi-color-statusDanger)}._sep_cd29a_48{height:1px;margin:var(--pi-spacing-4) 0;background:var(--pi-color-border)}._avatar_1m9k9_4{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--pi-radius-md);flex-shrink:0;-webkit-user-select:none;user-select:none}._avatarImg_1m9k9_14{width:100%;height:100%;object-fit:cover}._avatarFallback_1m9k9_20{font-weight:600;color:#fff;font-family:var(--pi-font-ui);line-height:1}._divider_4eg4l_9{position:absolute;z-index:2}._divider_4eg4l_9:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--pi-color-border);transition:background .12s ease,inset .12s ease}._divider_4eg4l_9:hover:before,._divider_4eg4l_9:active:before{background:var(--pi-color-accent)}._vertical_4eg4l_26{width:7px;margin-left:-3px;cursor:col-resize}._vertical_4eg4l_26:before{left:3px;right:3px}._vertical_4eg4l_26:hover:before,._vertical_4eg4l_26:active:before{left:2px;right:2px}._horizontal_4eg4l_41{height:7px;margin-top:-3px;cursor:row-resize}._horizontal_4eg4l_41:before{top:3px;bottom:3px}._horizontal_4eg4l_41:hover:before,._horizontal_4eg4l_41:active:before{top:2px;bottom:2px}._strip_1umwu_1{display:flex;align-items:center;gap:var(--pi-spacing-2);min-height:var(--pane-strip-height);padding:0 var(--pi-spacing-8);overflow:hidden;flex-shrink:0;border-bottom:var(--pi-border-width-1) solid var(--pi-color-border)}._tabs_1umwu_13{display:flex;align-items:center;gap:var(--pi-spacing-2);flex:0 1 auto;min-width:0;overflow-x:auto}._paneStrip_1umwu_23{position:absolute;z-index:1}._focused_1umwu_28{border-bottom-color:var(--pi-color-accent)}._tab_1umwu_13{display:flex;align-items:center;gap:var(--pi-spacing-7);flex:0 1 auto;min-width:var(--pi-spacing-128);max-width:200px;height:var(--pi-spacing-24);padding:0 var(--pi-spacing-10);border-radius:var(--pi-radius-base);font-size:var(--pi-font-size-2xs);cursor:pointer;color:var(--pi-color-foregroundMuted);white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}._tab_1umwu_13:hover{background:color-mix(in srgb,var(--pi-color-background) 85%,var(--pi-color-foreground) 15%)}._tabActive_1umwu_51{background:var(--pi-color-surface2);color:var(--pi-color-foreground)}._tabIcon_1umwu_55{display:flex;align-items:center;flex:none}._tabLabel_1umwu_60{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}._tabLabelMono_1umwu_66{font-family:var(--pi-font-mono)}._tabDot_1umwu_71{flex:none}._tabClose_1umwu_78{display:flex;align-items:center;flex:none;border-radius:var(--pi-radius-base);padding:var(--pi-spacing-1);opacity:0}._tabActive_1umwu_51 ._tabClose_1umwu_78,._tab_1umwu_13:hover ._tabClose_1umwu_78,._tab_1umwu_13:focus-within ._tabClose_1umwu_78{opacity:1}._tabClose_1umwu_78:hover{background:color-mix(in srgb,var(--pi-color-background) 85%,var(--pi-color-foreground) 15%)}@media(max-width:575px),(hover:none){._tabClose_1umwu_78{opacity:1}}._newTab_1umwu_99{position:relative;border-radius:var(--pi-radius-sm);flex:none}._stripActions_1umwu_107{margin-left:auto;display:flex;align-items:center;gap:var(--pi-spacing-8);flex:none}._splitAction_1umwu_114{position:relative;border-radius:var(--pi-radius-sm);flex:none}._itemIcon_1umwu_119{flex-shrink:0;color:var(--pi-color-foregroundMuted)}._preview_1txmv_1{position:absolute;z-index:3;pointer-events:none;border:1px solid var(--pi-color-accent);border-radius:var(--pi-radius-sm);background:color-mix(in srgb,var(--pi-color-accent) 18%,transparent)}._chip_1txmv_9{display:flex;align-items:center;gap:var(--pi-spacing-6);padding:var(--pi-spacing-6) var(--pi-spacing-8);border:1px solid var(--pi-color-border);border-radius:var(--pi-radius-md);background:var(--pi-color-surface0);color:var(--pi-color-foreground);font-size:var(--pi-font-size-xs);white-space:nowrap;cursor:grabbing;box-shadow:var(--pi-shadow-md)}._chipLabel_1txmv_23{max-width:160px;overflow:hidden;text-overflow:ellipsis}._area_9sawz_1{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;--pane-strip-height: 36px}._panel_9sawz_11{position:absolute;left:0;top:0;width:100%;height:100%;display:none;flex-direction:column;min-height:0;overflow:hidden}._dropZone_9sawz_27{position:absolute;pointer-events:none}._active_9sawz_31{display:flex}._empty_9sawz_35{position:absolute;left:0;right:0;top:var(--pane-strip-height);bottom:0;display:flex;align-items:center;justify-content:center;color:var(--pi-color-foregroundMuted);font-size:var(--pi-font-size-sm)}._emptyStack_9sawz_47{position:absolute;left:0;right:0;top:var(--pane-strip-height);bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--pi-spacing-10);padding:0 var(--pi-spacing-16);text-align:center}._emptyTitle_9sawz_61{font-size:var(--pi-font-size-sm);color:var(--pi-color-foreground)}._emptyHint_9sawz_65{font-size:var(--pi-font-size-xs);color:var(--pi-color-foregroundMuted)}._container_1wywk_1{position:relative;height:100%;display:flex;flex-direction:column}._header_1wywk_7{display:flex;align-items:center;gap:var(--pi-spacing-6);padding:var(--pi-spacing-6) var(--pi-spacing-8);border-bottom:1px solid var(--pi-color-border)}._uploadButton_1wywk_14{display:inline-flex;align-items:center;gap:var(--pi-spacing-5);font-size:var(--pi-font-size-2xs);padding:var(--pi-spacing-3) var(--pi-spacing-8);border-radius:var(--pi-radius-base);border:1px solid var(--pi-color-border);background:var(--pi-color-surface1);color:var(--pi-color-foreground);cursor:pointer}._uploadButton_1wywk_14:hover:not(:disabled){background:color-mix(in srgb,var(--pi-color-background) 85%,var(--pi-color-foreground) 15%)}._uploadButton_1wywk_14:disabled{opacity:.5;cursor:default}._hiddenInput_1wywk_33{display:none}._status_1wywk_36,._statusError_1wywk_37{font-size:var(--pi-font-size-2xs);padding:var(--pi-spacing-4) var(--pi-spacing-8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._status_1wywk_36{color:var(--pi-color-foregroundMuted)}._statusError_1wywk_37{color:var(--pi-color-statusDanger)}._rowAction_1wywk_50{margin-left:auto}._item_1wywk_53 ._rowAction_1wywk_50{display:none}._item_1wywk_53:hover ._rowAction_1wywk_50{display:inline-flex}._list_1wywk_60{padding:var(--pi-spacing-4) 0;flex:1;overflow-y:auto;position:relative}._item_1wywk_53{height:28px;padding-right:var(--pi-spacing-8);font-size:var(--pi-font-size-xs);border-radius:var(--pi-radius-base);cursor:pointer;display:flex;align-items:center;gap:var(--pi-spacing-6);user-select:none;-webkit-user-select:none}._item_1wywk_53:hover{background:color-mix(in srgb,var(--pi-color-background) 85%,var(--pi-color-foreground) 15%)}._item_1wywk_53._active_1wywk_83{background:var(--pi-color-surface0);box-shadow:inset 2px 0 0 var(--pi-color-accent);border-radius:var(--pi-radius-none)}._item_1wywk_53._selected_1wywk_88{background:var(--pi-color-surface0);border-radius:var(--pi-radius-none)}._item_1wywk_53._dropTarget_1wywk_92{background:color-mix(in srgb,var(--pi-color-accent) 22%,transparent);box-shadow:inset 0 0 0 1px var(--pi-color-accent);border-radius:var(--pi-radius-base)}._item_1wywk_53._rootItem_1wywk_99 ._dirName_1wywk_98{color:var(--pi-color-foreground);font-weight:600}._chevronSlot_1wywk_104{display:flex;align-items:center;justify-content:center;width:var(--pi-icon-size-sm);flex-shrink:0;color:var(--pi-color-foregroundMuted)}._chevron_1wywk_104{transition:transform .1s ease}._chevronOpen_1wywk_115{transform:rotate(90deg)}._icon_1wywk_118{display:flex;align-items:center;width:var(--pi-icon-size-md);flex-shrink:0;color:var(--pi-color-foregroundMuted)}._name_1wywk_125{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._dirName_1wywk_98{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--pi-color-accentBright)}._item_1wywk_53._gitAdded_1wywk_140 ._icon_1wywk_118,._item_1wywk_53._gitAdded_1wywk_140 ._name_1wywk_125,._item_1wywk_53._gitAdded_1wywk_140 ._dirName_1wywk_98{color:var(--pi-color-statusSuccess)}._item_1wywk_53._gitModified_1wywk_145 ._icon_1wywk_118,._item_1wywk_53._gitModified_1wywk_145 ._name_1wywk_125,._item_1wywk_53._gitModified_1wywk_145 ._dirName_1wywk_98{color:var(--pi-color-statusWarning)}._item_1wywk_53._gitDeleted_1wywk_150 ._icon_1wywk_118,._item_1wywk_53._gitDeleted_1wywk_150 ._name_1wywk_125,._item_1wywk_53._gitDeleted_1wywk_150 ._dirName_1wywk_98{color:var(--pi-color-statusDanger)}._item_1wywk_53._gitDeleted_1wywk_150 ._name_1wywk_125{text-decoration:line-through}._item_1wywk_53._hiddenEntry_1wywk_162{opacity:.45}._item_1wywk_53._hiddenEntry_1wywk_162:hover,._item_1wywk_53._hiddenEntry_1wywk_162._active_1wywk_83,._item_1wywk_53._hiddenEntry_1wywk_162._selected_1wywk_88,._item_1wywk_53._hiddenEntry_1wywk_162._dropTarget_1wywk_92{opacity:1}._statusRow_1wywk_171{height:28px;display:flex;align-items:center;padding-right:var(--pi-spacing-8);font-size:var(--pi-font-size-2xs);color:var(--pi-color-foregroundMuted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._statusRowError_1wywk_182{color:var(--pi-color-statusDanger)}._draftInput_1wywk_185{flex:1;min-width:0;height:20px;font:inherit;font-size:var(--pi-font-size-xs);padding:0 var(--pi-spacing-4);color:var(--pi-color-foreground);background:var(--pi-color-surface0);border:1px solid var(--pi-color-accent);border-radius:var(--pi-radius-base);outline:none}._list_1n3q6_1{padding:var(--pi-spacing-4) 0}._summary_1n3q6_4{padding:var(--pi-spacing-4) var(--pi-spacing-8);font-size:var(--pi-font-size-2xs);color:var(--pi-color-foregroundMuted);border-bottom:1px solid var(--pi-color-border);margin-bottom:var(--pi-spacing-4)}._item_1n3q6_11{padding:var(--pi-spacing-4) var(--pi-spacing-8);font-size:var(--pi-font-size-xs);border-radius:var(--pi-radius-base);cursor:pointer;display:flex;align-items:center;gap:var(--pi-spacing-6)}._item_1n3q6_11:hover{background:color-mix(in srgb,var(--pi-color-background) 85%,var(--pi-color-foreground) 15%)}._badge_1n3q6_23{font-size:var(--pi-font-size-3xs);padding:0 var(--pi-spacing-4);border-radius:var(--pi-radius-base);font-weight:600;flex-shrink:0}._added_1n3q6_30{background:color-mix(in srgb,var(--pi-color-statusSuccess) 20%,transparent);color:var(--pi-color-statusSuccess)}._modified_1n3q6_34{background:color-mix(in srgb,var(--pi-color-statusWarning) 20%,transparent);color:var(--pi-color-statusWarning)}._deleted_1n3q6_38{background:color-mix(in srgb,var(--pi-color-statusDanger) 20%,transparent);color:var(--pi-color-statusDanger)}._name_1n3q6_42{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._tabBar_1tvri_1{display:flex;align-items:center;border-bottom:1px solid var(--pi-color-border);flex-shrink:0}._tabBtn_1tvri_7{display:flex;align-items:center;gap:var(--pi-spacing-6);font:inherit;font-size:var(--pi-font-size-xs);padding:var(--pi-spacing-8) var(--pi-spacing-12);background:none;border:none;color:var(--pi-color-foregroundMuted);cursor:pointer;border-bottom:2px solid transparent}._tabBtn_1tvri_7:hover{color:var(--pi-color-foreground)}._active_1tvri_23{color:var(--pi-color-foreground);border-bottom-color:var(--pi-color-accent)}._refreshBtn_1tvri_27{margin-left:auto;margin-right:var(--pi-spacing-6)}._content_1tvri_31{flex:1;overflow-y:auto;padding:var(--pi-spacing-8);min-height:0}._statusBar_t655h_1{height:35px;width:100%;flex-shrink:0;display:flex;align-items:center;gap:var(--pi-spacing-2);padding:0 var(--pi-spacing-12);overflow-x:auto;border-top:1px solid var(--pi-color-border);background:var(--pi-color-surface1);font-size:var(--pi-font-size-xs);color:var(--pi-color-foreground);white-space:nowrap}._segmentGroup_t655h_16{display:flex;align-items:center}._chevron_t655h_20{color:var(--pi-color-border);margin:0 var(--pi-spacing-4);flex-shrink:0}._segment_t655h_16{display:flex;align-items:center;gap:var(--pi-spacing-6);padding:var(--pi-spacing-2) var(--pi-spacing-8);border-radius:var(--pi-radius-base);background:var(--pi-color-surface2)}._icon_t655h_33{display:flex;align-items:center;color:var(--pi-color-foregroundMuted);flex-shrink:0}._text_t655h_39{overflow:hidden;text-overflow:ellipsis;max-width:320px}._wrapper_14joh_3{display:inline-flex;align-items:center;gap:var(--pi-spacing-8);cursor:pointer;font-family:var(--pi-font-ui);font-size:var(--pi-font-size-md);color:var(--pi-color-foreground)}._wrapper_14joh_3[data-disabled=true]{opacity:.5;pointer-events:none}._box_14joh_18{width:16px;height:16px;border-radius:var(--pi-radius-sm);border:1.5px solid var(--pi-color-border);background-color:transparent;display:flex;align-items:center;justify-content:center;transition:background-color .1s,border-color .1s;flex-shrink:0}._box_14joh_18[data-checked=true]{background-color:var(--pi-color-accent);border-color:var(--pi-color-accent)}._checkmark_14joh_38{color:var(--pi-color-accentForeground)}._nativeInput_14joh_43{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}._select_dl3mw_3{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--pi-color-surface1);border:1px solid var(--pi-color-border);border-radius:var(--pi-radius-base);padding:var(--pi-spacing-8) var(--pi-spacing-32) var(--pi-spacing-8) var(--pi-spacing-10);font-family:var(--pi-font-ui);font-size:var(--pi-font-size-md);color:var(--pi-color-foreground);width:100%;outline:none;transition:border-color .1s;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23a1a1aa' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}._select_dl3mw_3:focus{border-color:var(--pi-color-accent)}._select_dl3mw_3:disabled{opacity:.5;cursor:not-allowed}._comboboxWrapper_dl3mw_31{position:relative;width:100%}._comboboxInput_dl3mw_36{width:100%;background-color:var(--pi-color-surface1);border:1px solid var(--pi-color-border);border-radius:var(--pi-radius-base);padding:var(--pi-spacing-8) var(--pi-spacing-10);font-family:var(--pi-font-ui);font-size:var(--pi-font-size-md);color:var(--pi-color-foreground);outline:none;box-sizing:border-box}._comboboxInput_dl3mw_36:focus{border-color:var(--pi-color-accent)}._comboboxList_dl3mw_53{position:absolute;top:100%;left:0;right:0;z-index:80;max-height:200px;overflow-y:auto;background-color:var(--pi-color-surface1);border:1px solid var(--pi-color-border);border-radius:var(--pi-radius-base);margin-top:var(--pi-spacing-4);padding:var(--pi-spacing-4);box-shadow:var(--pi-shadow-md)}._comboboxOption_dl3mw_69{padding:var(--pi-spacing-6) var(--pi-spacing-8);border-radius:var(--pi-radius-sm);font-size:var(--pi-font-size-md);font-family:var(--pi-font-ui);color:var(--pi-color-foreground);cursor:pointer;background:none;border:none;width:100%;text-align:left}._comboboxOption_dl3mw_69:hover,._comboboxOptionHighlighted_dl3mw_83{background-color:var(--pi-color-surface2)}._overlay_1k4ng_1{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:100}._contentWrapper_1k4ng_7{position:fixed;top:0;right:0;bottom:0;left:0;z-index:101;display:flex;align-items:center;justify-content:center;pointer-events:none}._dialog_1k4ng_16{pointer-events:auto;width:500px;max-width:90vw;max-height:70vh;background:var(--pi-color-surface1);border:1px solid var(--pi-color-border);border-radius:var(--pi-radius-lg);display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080}._header_1k4ng_28{padding:var(--pi-spacing-12) var(--pi-spacing-14);border-bottom:1px solid var(--pi-color-border);display:flex;align-items:center;gap:var(--pi-spacing-8);flex-shrink:0}._title_1k4ng_36{font-size:var(--pi-font-size-sm);margin:0;flex:1;color:var(--pi-color-foreground);font-weight:600}._body_1k4ng_43{flex:1;display:flex;flex-direction:column;min-height:0}._footer_1k4ng_49{padding:var(--pi-spacing-10) var(--pi-spacing-14);border-top:1px solid var(--pi-color-border);display:flex;align-items:center;gap:var(--pi-spacing-8);justify-content:flex-end;flex-shrink:0}._bare_1k4ng_58{border:none;background:transparent;box-shadow:none;position:relative}._bareBody_1k4ng_64{border-radius:var(--pi-radius-lg);overflow:hidden}._bareCloseBtn_1k4ng_68{position:absolute;top:-12px;right:-12px}._visuallyHidden_1k4ng_73{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}._handle_1j18v_1{position:absolute;top:0;bottom:0;width:5px;cursor:col-resize;z-index:5;background:transparent;transition:background .12s ease}._handle_1j18v_1:hover,._handle_1j18v_1:active{background:var(--pi-color-accent)}._pathRow_1mu84_1{padding:var(--pi-spacing-8) var(--pi-spacing-14);display:flex;align-items:center;gap:var(--pi-spacing-6);border-bottom:1px solid var(--pi-color-border);flex-shrink:0}._pathInput_1mu84_9{flex:1;font-size:var(--pi-font-size-xs)}._createRow_1mu84_13{padding:var(--pi-spacing-6) var(--pi-spacing-14);display:flex;align-items:center;gap:var(--pi-spacing-6);border-bottom:1px solid var(--pi-color-border);flex-shrink:0}._createInput_1mu84_21{flex:1;font-size:var(--pi-font-size-xs)}._createError_1mu84_25{padding:var(--pi-spacing-4) var(--pi-spacing-14) var(--pi-spacing-6);font-size:var(--pi-font-size-2xs);color:var(--pi-color-statusDanger)}._list_1mu84_30{flex:1;overflow-y:auto;padding:var(--pi-spacing-4) 0;min-height:200px;max-height:400px}._item_1mu84_37{padding:var(--pi-spacing-6) var(--pi-spacing-14);cursor:pointer;display:flex;align-items:center;gap:var(--pi-spacing-8);font-size:var(--pi-font-size-xs);color:var(--pi-color-foreground)}._item_1mu84_37:hover{background:color-mix(in srgb,var(--pi-color-surface1) 85%,var(--pi-color-foreground) 15%)}._name_1mu84_49{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._shell_570m8_1{display:flex;flex-direction:column;height:100vh;min-height:0}._main_570m8_7{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}._sidebarLeft_570m8_13{position:relative;flex-shrink:0;border-right:1px solid var(--pi-color-border);display:flex;flex-direction:column;min-width:0;background:var(--pi-color-surfaceSidebar)}._leftHandle_570m8_25{right:-3px}._center_570m8_28{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;min-height:0}._sidebarRight_570m8_35{position:relative;flex-shrink:0;border-left:1px solid var(--pi-color-border);display:flex;flex-direction:column;min-width:0}._rightHandle_570m8_43{left:-3px}