@ahpd/web 0.3.0 → 0.3.1

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 (75) hide show
  1. package/README.md +3 -2
  2. package/dist/app/assets/{AudioPage-BCuwTLKN.js → AudioPage-DAAck9ph.js} +1 -1
  3. package/dist/app/assets/{Composer-Crdqrcjj.js → Composer-Dp_Z0bXp.js} +1 -1
  4. package/dist/app/assets/{DataTable-D9RxuuR3.js → DataTable-8woVlU4S.js} +1 -1
  5. package/dist/app/assets/{Details-BhWMrDPk.js → Details-ByJkvhJN.js} +1 -1
  6. package/dist/app/assets/{DiffPage-D8wjIu2g.js → DiffPage-Ck21x0bd.js} +1 -1
  7. package/dist/app/assets/{Edit-B12zsW3c.js → Edit-rv9ZDDDu.js} +1 -1
  8. package/dist/app/assets/{Explorer-C2wZaZN2.js → Explorer-CDm6vvt6.js} +1 -1
  9. package/dist/app/assets/{Explorer-DLH41MqT.js → Explorer-CNz5U5q-.js} +1 -1
  10. package/dist/app/assets/{Explorer-CViecqG_.js → Explorer-DS_lqr3R.js} +1 -1
  11. package/dist/app/assets/{Explorer-z4mktaMi.js → Explorer-DoNVPZ-C.js} +1 -1
  12. package/dist/app/assets/{Explorer-BR0vyz4x.js → Explorer-VoN5CYd5.js} +1 -1
  13. package/dist/app/assets/{FilePage-CErxqbDp.js → FilePage-CAUDXIh9.js} +3 -3
  14. package/dist/app/assets/{Filter-DohSRUkD.js → Filter-D1FpBH5R.js} +1 -1
  15. package/dist/app/assets/{ImagePage-B-n1btEA.js → ImagePage-cy_jkGi1.js} +1 -1
  16. package/dist/app/assets/{Info-BbyvhG4Q.js → Info-DqnamTeq.js} +1 -1
  17. package/dist/app/assets/{LocaleToggle-CETgRIRf.js → LocaleToggle-B91QrqGs.js} +1 -1
  18. package/dist/app/assets/{LogPage-C_h99NtQ.js → LogPage-CKm7_URt.js} +1 -1
  19. package/dist/app/assets/{LoginForm-p7rsv-LJ.js → LoginForm-rBz-5JFG.js} +1 -1
  20. package/dist/app/assets/{MarkdownPage-Cv5UyfVY.js → MarkdownPage-DgalhN_B.js} +1 -1
  21. package/dist/app/assets/{New-D0REy_20.js → New-D6QCCHrx.js} +1 -1
  22. package/dist/app/assets/{Page-TDRLt015.js → Page-CnfUTsQD.js} +1 -1
  23. package/dist/app/assets/{Page-B3UbQqyT.js → Page-DGp_WebG.js} +1 -1
  24. package/dist/app/assets/{Page-cKDPN7cD.js → Page-Dqf45zd4.js} +1 -1
  25. package/dist/app/assets/{Pagination-v2fHA8Hf.js → Pagination-fEfxXCWD.js} +1 -1
  26. package/dist/app/assets/{PortaLock-ieoqUizB.js → PortaLock-BFpTWuKB.js} +2 -2
  27. package/dist/app/assets/{Settings-BP67xLx9.js → Settings-ALaVSuhU.js} +1 -1
  28. package/dist/app/assets/{SigillumGate-DNRuVdn4.js → SigillumGate-Bq_GLDvI.js} +1 -1
  29. package/dist/app/assets/{SingleLayout-D0y3xoJg.js → SingleLayout-BzRi_cEY.js} +1 -1
  30. package/dist/app/assets/SpatialLayout-Cote5YNZ.js +1 -0
  31. package/dist/app/assets/SplitLayout-CK5SuMF1.js +1 -0
  32. package/dist/app/assets/StackLayout-BUdng0sD.js +1 -0
  33. package/dist/app/assets/Start-D5KBqSwf.js +1 -0
  34. package/dist/app/assets/Start-Dtuu25RL.css +1 -0
  35. package/dist/app/assets/TabLayout-ByKrZ0yM.js +1 -0
  36. package/dist/app/assets/TabPanelLayout-B4DWG6Zm.js +1 -0
  37. package/dist/app/assets/{TerminalPage-BaFThhYG.js → TerminalPage-CDtmKMSK.js} +1 -1
  38. package/dist/app/assets/{ThemeModeToggle-D1kTZNm_.js → ThemeModeToggle-C0j9D4s0.js} +1 -1
  39. package/dist/app/assets/{ThemePicker-BIFeJU_m.js → ThemePicker-DEUED0NH.js} +1 -1
  40. package/dist/app/assets/{Tree-BqFzA5wp.js → Tree-fxC7yDSR.js} +1 -1
  41. package/dist/app/assets/{VideoPage-DbVVXi0p.js → VideoPage-Cz7g_2E1.js} +1 -1
  42. package/dist/app/assets/{actions-BmFc5yoR.js → actions-BzJiPQuh.js} +1 -1
  43. package/dist/app/assets/{changeset-BgSW341C.js → changeset-eZAmDe3s.js} +1 -1
  44. package/dist/app/assets/{channel-8aIcEm3f.js → channel-UD2KGCy_.js} +1 -1
  45. package/dist/app/assets/{clicks-B3stbczh.js → clicks-DIh3kBLi.js} +1 -1
  46. package/dist/app/assets/{composer-commands-AmOY6XGO.js → composer-commands-B8AF8OGi.js} +1 -1
  47. package/dist/app/assets/data-hUAVersf.js +2 -0
  48. package/dist/app/assets/{dist-D9412h7o.js → dist-B4E-6SqB.js} +1 -1
  49. package/dist/app/assets/{dist-B9NMd4es.js → dist-BdNRSgzN.js} +1 -1
  50. package/dist/app/assets/{dist-CEr2uR4w.js → dist-BwHJSc3S.js} +1 -1
  51. package/dist/app/assets/{dist-DYPX2Ybv.js → dist-DUFzb_Eu.js} +1 -1
  52. package/dist/app/assets/{dist-drsoOe-s.js → dist-DX2Uz40S.js} +1 -1
  53. package/dist/app/assets/{dist-BnQxBrCW.js → dist-Db_OB0lX.js} +1 -1
  54. package/dist/app/assets/{dist-CYq92lOO.js → dist-uvIW_qsj.js} +1 -1
  55. package/dist/app/assets/folder-path-CTpCmycG.js +1 -0
  56. package/dist/app/assets/index-B1VQ36Tb.css +1 -0
  57. package/dist/app/assets/index-yhQX4tVS.js +14 -0
  58. package/dist/app/assets/{media-C3ferCB3.js → media-Coozt7AL.js} +1 -1
  59. package/dist/app/assets/{notify-CJo-T9e2.js → notify-BQ9fSOfy.js} +1 -1
  60. package/dist/app/assets/sessions-8PScJEDe.js +2 -0
  61. package/dist/app/assets/{terminal-BMZxY-St.js → terminal-BPj7jGw5.js} +1 -1
  62. package/dist/app/assets/{text-B601jRcP.js → text-BdULOY8N.js} +1 -1
  63. package/dist/app/index.html +8 -8
  64. package/dist/embed/index.d.ts +5 -0
  65. package/package.json +2 -2
  66. package/dist/app/assets/SpatialLayout-CKZCVibM.js +0 -1
  67. package/dist/app/assets/SplitLayout-7EOWfDlZ.js +0 -1
  68. package/dist/app/assets/StackLayout-1wBXKLKy.js +0 -1
  69. package/dist/app/assets/TabLayout-ClrRSvj1.js +0 -1
  70. package/dist/app/assets/TabPanelLayout-YGvLy1cR.js +0 -1
  71. package/dist/app/assets/data-CBWyZN_H.js +0 -2
  72. package/dist/app/assets/folder-path-CmVXGhKI.js +0 -1
  73. package/dist/app/assets/index-BQcTkW2q.css +0 -1
  74. package/dist/app/assets/index-DBKNxflN.js +0 -14
  75. package/dist/app/assets/sessions-BcRKb9k7.js +0 -2
@@ -1,3 +1,3 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{f as n,i as r}from"./notify-CJo-T9e2.js";import{t as i}from"./useStore-BQkzWMs-.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./useCloseGuard-B4qJKmaF.js";import{t as s}from"./Button-_R1oktDz.js";import{E as c,c as l,f as u,i as ee,j as d,v as f}from"./data-CBWyZN_H.js";import{a as p,i as m,n as h}from"./words-T8-D0K4W.js";import{t as g}from"./emojis-7RT6GvLa.js";import{t as _}from"./Alert-CHZkhmDE.js";import{a as v,c as te,d as y,f as b,i as ne,l as x,m as re,n as S,o as ie,p as C,r as ae,s as oe,u as se}from"./Composer-Crdqrcjj.js";import{t as ce}from"./Text-MPtQvYE-.js";import{g as le,h as w,i as T,m as ue,n as de,r as fe,v as E}from"./composer-commands-AmOY6XGO.js";import{a as D,f as O,p as k,r as A,t as j,u as M}from"./folder-path-CmVXGhKI.js";import{o as pe}from"./words-CyqfIDyJ.js";var N=t(),me=50;function he(e,t){return/(?:^|\s)@([^\s@]*)$/.exec(e.slice(0,t))?.[1]??null}var P=e=>e.startsWith(`/`)||/^[A-Za-z]:\//.test(e);async function ge(e,t){let n=t.replace(/\\/g,`/`),r=n.lastIndexOf(`/`),i=n.slice(0,r+1),a=n.slice(r+1).toLowerCase(),o=P(i)?m(i):i.split(`/`).filter(e=>e!==``).reduce(O,e),s=h(o).replace(/\/+$/,``),c=await d(`resourceList`,{channel:u,uri:o});return k(c.entries).filter(e=>e.name.toLowerCase().startsWith(a)).slice(0,me).map(e=>{let t=`${s}/${e.name}`;if(e.type===`directory`)return{title:`${e.name}/`,insert:`@${t}/`,folder:!0};let n=`@${t}`;return{title:e.name,insert:n,folder:!1,attachment:E(w(O(o,e.name),!1),n)}})}var F=n();function I(e,t,n,r=8){let i=n==null?null:M(n),a=new Map;for(let t of e){let e=t.workingDirectories?.[0];if(e===void 0||e===``)continue;let n=M(e);a.set(n,(a.get(n)??0)+1)}let o=[...a].sort((e,t)=>t[1]-e[1]);for(let e of t)a.has(M(e))||o.push([M(e),0]);return o.filter(([e])=>e!==i).slice(0,r).map(([e,t])=>({path:h(e),sessions:t}))}var L=e(),R=e=>`${e.replace(/[\\/]+$/,``)}/`,z=e=>/^([A-Za-z]:)?\/$/.test(e)?e:e.replace(/[\\/]+$/,``);function _e({value:e,onChange:t}){let[n,r]=(0,N.useState)(!1),i=(0,N.useRef)(null),a=(0,N.useRef)(null);return(0,L.jsxs)(`span`,{ref:i,className:`web-chip web-chip--text web-folder-pill`,title:`A folder on the server's machine`,children:[(0,L.jsx)(`button`,{type:`button`,className:`web-folder-pill__mark`,"aria-label":`Choose a folder`,"aria-haspopup":`listbox`,"aria-expanded":n,onClick:()=>r(e=>!e),children:g.folder}),(0,L.jsx)(`input`,{ref:a,"aria-label":`Folder`,value:e,placeholder:`/path/to/project`,spellCheck:!1,onChange:e=>t(e.currentTarget.value)}),n&&i.current!==null?(0,L.jsx)(B,{anchor:i.current,current:e,onPick:e=>{t(e),r(!1),a.current?.focus()},onClose:()=>{r(!1),a.current?.focus()}}):null]})}function B({anchor:e,current:t,onPick:n,onClose:r}){let a=i(l),o=i(D),s=i(ee),c=z(t.trim()),[u,d]=(0,N.useState)(()=>c===``?null:A(R(c))??R(c)),[f,p]=(0,N.useState)(`loading`),[m,_]=(0,N.useState)(0),[v,te]=(0,N.useState)(null),y=(0,N.useRef)(null);(0,N.useEffect)(()=>{if(u===null)return;let e=!0;return p(`loading`),j(u).then(t=>{e&&p(t)}).catch(()=>{e&&p(`failed`)}),()=>{e=!1}},[u]);let b=s==null?null:h(s).replace(/\/+$/,``),ne=(0,N.useMemo)(()=>I(a??[],o??[],s),[a,o,s]),x=(0,N.useMemo)(()=>{let e=[];if(u!==null){let t=A(u);if(t!==null&&e.push({kind:`up`,path:z(t),label:z(t)}),Array.isArray(f))for(let t of f)e.push({kind:`here`,path:`${u}${t}`,label:t})}return b!==null&&e.push({kind:`host`,path:b,label:b,heading:`Host folder`}),ne.forEach((t,n)=>e.push({kind:`used`,path:t.path,label:t.path,sessions:t.sessions,...n===0?{heading:`Used`}:{}})),e},[u,f,b,ne]);(0,N.useEffect)(()=>{let e=x.findIndex(e=>e.kind===`here`&&e.path===c);_(e===-1?0:e)},[x,c]),(0,N.useEffect)(()=>{y.current?.querySelector(`[aria-selected="true"]`)?.scrollIntoView({block:`nearest`})},[m]),(0,N.useLayoutEffect)(()=>{let t=()=>{let t=e.getBoundingClientRect();te({left:t.left,bottom:window.innerHeight-t.top+4,maxHeight:Math.max(120,Math.min(360,t.top-12))})};return t(),window.addEventListener(`resize`,t),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,t),window.removeEventListener(`scroll`,t,!0)}},[e]);let re=v!==null;(0,N.useEffect)(()=>{re&&y.current?.focus()},[re]),(0,N.useEffect)(()=>{let t=t=>{let n=t.target;!y.current?.contains(n)&&!e.contains(n)&&r()};return document.addEventListener(`mousedown`,t),()=>document.removeEventListener(`mousedown`,t)},[e,r]);let S=e=>d(R(e.path)),ie=e=>e.kind===`up`?S(e):n(e.path);return(0,F.createPortal)((0,L.jsxs)(`div`,{ref:y,className:`web-folder-menu`,role:`listbox`,"aria-label":`Folders`,tabIndex:-1,style:v===null?{visibility:`hidden`}:{left:v.left,bottom:v.bottom,maxHeight:v.maxHeight},onKeyDown:e=>{let t=x[m];if(e.key===`Escape`)r();else if(e.key===`ArrowDown`)_(e=>Math.min(x.length-1,e+1));else if(e.key===`ArrowUp`)_(e=>Math.max(0,e-1));else if(e.key===`ArrowRight`&&t!==void 0&&t.kind!==`up`)S(t);else if(e.key===`ArrowLeft`&&u!==null&&A(u)!==null)d(A(u));else if(e.key===`Enter`&&t!==void 0)ie(t);else return;e.preventDefault(),e.stopPropagation()},children:[u!==null&&f===`loading`?(0,L.jsxs)(`div`,{className:`web-folder-menu__note`,children:[`Reading `,z(u)]}):null,u!==null&&f===`failed`?(0,L.jsxs)(`div`,{className:`web-folder-menu__note`,children:[`The host cannot list `,z(u)]}):null,(0,L.jsx)(`div`,{className:`web-folder-menu__list`,children:x.map((e,t)=>e.kind===`up`||e.kind===`here`?C(e,t):null)}),x.map((e,t)=>e.kind===`host`||e.kind===`used`?C(e,t):null)]}),document.body);function C(e,t){return(0,L.jsxs)(`div`,{children:[e.heading===void 0?null:(0,L.jsx)(`div`,{className:`web-folder-menu__heading`,children:e.heading}),(0,L.jsxs)(`div`,{role:`option`,className:`web-folder-menu__line`,"data-kind":e.kind,"data-current":e.path===c?`true`:void 0,"aria-selected":t===m,title:e.kind===`here`?e.path:void 0,onMouseEnter:()=>_(t),onClick:()=>ie(e),children:[(0,L.jsx)(`span`,{className:`web-folder-menu__mark`,"aria-hidden":`true`,children:e.kind===`up`?`↑`:g.folder}),(0,L.jsx)(`span`,{className:`web-folder-menu__label`,children:e.label}),e.sessions===void 0||e.sessions===0?null:(0,L.jsx)(`span`,{className:`web-folder-menu__count`,title:`${e.sessions} sessions`,children:e.sessions}),e.kind===`up`?null:(0,L.jsx)(`button`,{type:`button`,className:`web-folder-menu__walk`,"aria-label":`Open ${e.label}`,tabIndex:-1,onClick:t=>{t.stopPropagation(),S(e)},children:g.caretRight})]})]},`${e.kind}:${e.path}`)}}var ve=[`/`,`@`],ye=T(`session:new`),be=`session:new`,xe=300;function Se({name:e,schema:t,value:n,choices:r,set:i}){let a=t.title||e,o=n??t.default;if((t.type===`object`||t.type===`array`)&&r===void 0&&(t.enum?.length??0)===0)return null;if(t.type===`boolean`)return(0,L.jsx)(C,{label:a,...t.description===void 0?{}:{title:t.description},value:o===!0,onChange:i});let s=r??(t.enum??[]).map((e,n)=>({value:String(e),label:t.enumLabels?.[n]??String(e)}));if(s.length>0){let e=s.some(e=>e.value===String(o??``))?s:[{value:String(o??``),label:o===void 0?`default`:String(o)},...s];return(0,L.jsx)(se,{label:a,...t.description===void 0?{}:{title:t.description},value:String(o??``),options:e,onChange:e=>i(t.type===`number`?Number(e):e)})}return(0,L.jsx)(b,{label:a,...t.description===void 0?{}:{title:t.description},value:o==null?``:String(o),onChange:e=>i(t.type===`number`?e===``?void 0:Number(e):e)})}function V({provider:e}){let t=a(),n=i(`$/ahp/agents`)??[],l=i(ee),[g,b]=(0,N.useState)(e??``),[C,w]=(0,N.useState)(``),[T,E]=(0,N.useState)(``),[D,O]=(0,N.useState)(``),[k,A]=(0,N.useState)({}),[j,M]=(0,N.useState)(null),[me,P]=(0,N.useState)({}),[F,I]=(0,N.useState)(!1),[R,z]=(0,N.useState)(null),[B,V]=(0,N.useState)(null),[H,Ce]=(0,N.useState)([]),U=(0,N.useRef)(null);o(()=>D.trim()!==``||H.length>0?`The message is not sent.`:null),(0,N.useEffect)(()=>{g===``&&n[0]!==void 0&&b(n[0].provider)},[n,g]),(0,N.useEffect)(()=>{C===``&&l!=null&&w(h(l))},[l,C]),(0,N.useEffect)(()=>S(U.current),[D]);let W=C.trim()===``?void 0:m(C),we=JSON.stringify([g,W,k]);(0,N.useEffect)(()=>{if(g===``)return;let e=!0,t=window.setTimeout(()=>{d(`resolveSessionConfig`,{channel:u,provider:g,...W===void 0?{}:{workingDirectory:W},config:k}).then(t=>{if(!e)return;let n=t;M({schema:n.schema.properties,values:n.values})}).catch(()=>{e&&M(null)})},xe);return()=>{e=!1,window.clearTimeout(t)}},[we]);let Te=Object.entries(j?.schema??{}).filter(([,e])=>e.enumDynamic===!0).map(([e])=>e).join(`
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{f as n,i as r}from"./notify-BQ9fSOfy.js";import{t as i}from"./useStore-BQkzWMs-.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./useCloseGuard-B4qJKmaF.js";import{t as s}from"./Button-_R1oktDz.js";import{E as c,c as l,f as u,i as ee,j as d,v as f}from"./data-hUAVersf.js";import{a as p,i as m,n as h}from"./words-T8-D0K4W.js";import{t as g}from"./emojis-7RT6GvLa.js";import{t as _}from"./Alert-CHZkhmDE.js";import{a as v,c as te,d as y,f as b,i as ne,l as x,m as re,n as S,o as ie,p as C,r as ae,s as oe,u as se}from"./Composer-Dp_Z0bXp.js";import{t as ce}from"./Text-MPtQvYE-.js";import{g as le,h as w,i as T,m as ue,n as de,r as fe,v as E}from"./composer-commands-B8AF8OGi.js";import{a as D,f as O,p as k,r as A,t as j,u as M}from"./folder-path-CTpCmycG.js";import{o as pe}from"./words-CyqfIDyJ.js";var N=t(),me=50;function he(e,t){return/(?:^|\s)@([^\s@]*)$/.exec(e.slice(0,t))?.[1]??null}var P=e=>e.startsWith(`/`)||/^[A-Za-z]:\//.test(e);async function ge(e,t){let n=t.replace(/\\/g,`/`),r=n.lastIndexOf(`/`),i=n.slice(0,r+1),a=n.slice(r+1).toLowerCase(),o=P(i)?m(i):i.split(`/`).filter(e=>e!==``).reduce(O,e),s=h(o).replace(/\/+$/,``),c=await d(`resourceList`,{channel:u,uri:o});return k(c.entries).filter(e=>e.name.toLowerCase().startsWith(a)).slice(0,me).map(e=>{let t=`${s}/${e.name}`;if(e.type===`directory`)return{title:`${e.name}/`,insert:`@${t}/`,folder:!0};let n=`@${t}`;return{title:e.name,insert:n,folder:!1,attachment:E(w(O(o,e.name),!1),n)}})}var F=n();function I(e,t,n,r=8){let i=n==null?null:M(n),a=new Map;for(let t of e){let e=t.workingDirectories?.[0];if(e===void 0||e===``)continue;let n=M(e);a.set(n,(a.get(n)??0)+1)}let o=[...a].sort((e,t)=>t[1]-e[1]);for(let e of t)a.has(M(e))||o.push([M(e),0]);return o.filter(([e])=>e!==i).slice(0,r).map(([e,t])=>({path:h(e),sessions:t}))}var L=e(),R=e=>`${e.replace(/[\\/]+$/,``)}/`,z=e=>/^([A-Za-z]:)?\/$/.test(e)?e:e.replace(/[\\/]+$/,``);function _e({value:e,onChange:t}){let[n,r]=(0,N.useState)(!1),i=(0,N.useRef)(null),a=(0,N.useRef)(null);return(0,L.jsxs)(`span`,{ref:i,className:`web-chip web-chip--text web-folder-pill`,title:`A folder on the server's machine`,children:[(0,L.jsx)(`button`,{type:`button`,className:`web-folder-pill__mark`,"aria-label":`Choose a folder`,"aria-haspopup":`listbox`,"aria-expanded":n,onClick:()=>r(e=>!e),children:g.folder}),(0,L.jsx)(`input`,{ref:a,"aria-label":`Folder`,value:e,placeholder:`/path/to/project`,spellCheck:!1,onChange:e=>t(e.currentTarget.value)}),n&&i.current!==null?(0,L.jsx)(B,{anchor:i.current,current:e,onPick:e=>{t(e),r(!1),a.current?.focus()},onClose:()=>{r(!1),a.current?.focus()}}):null]})}function B({anchor:e,current:t,onPick:n,onClose:r}){let a=i(l),o=i(D),s=i(ee),c=z(t.trim()),[u,d]=(0,N.useState)(()=>c===``?null:A(R(c))??R(c)),[f,p]=(0,N.useState)(`loading`),[m,_]=(0,N.useState)(0),[v,te]=(0,N.useState)(null),y=(0,N.useRef)(null);(0,N.useEffect)(()=>{if(u===null)return;let e=!0;return p(`loading`),j(u).then(t=>{e&&p(t)}).catch(()=>{e&&p(`failed`)}),()=>{e=!1}},[u]);let b=s==null?null:h(s).replace(/\/+$/,``),ne=(0,N.useMemo)(()=>I(a??[],o??[],s),[a,o,s]),x=(0,N.useMemo)(()=>{let e=[];if(u!==null){let t=A(u);if(t!==null&&e.push({kind:`up`,path:z(t),label:z(t)}),Array.isArray(f))for(let t of f)e.push({kind:`here`,path:`${u}${t}`,label:t})}return b!==null&&e.push({kind:`host`,path:b,label:b,heading:`Host folder`}),ne.forEach((t,n)=>e.push({kind:`used`,path:t.path,label:t.path,sessions:t.sessions,...n===0?{heading:`Used`}:{}})),e},[u,f,b,ne]);(0,N.useEffect)(()=>{let e=x.findIndex(e=>e.kind===`here`&&e.path===c);_(e===-1?0:e)},[x,c]),(0,N.useEffect)(()=>{y.current?.querySelector(`[aria-selected="true"]`)?.scrollIntoView({block:`nearest`})},[m]),(0,N.useLayoutEffect)(()=>{let t=()=>{let t=e.getBoundingClientRect();te({left:t.left,bottom:window.innerHeight-t.top+4,maxHeight:Math.max(120,Math.min(360,t.top-12))})};return t(),window.addEventListener(`resize`,t),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,t),window.removeEventListener(`scroll`,t,!0)}},[e]);let re=v!==null;(0,N.useEffect)(()=>{re&&y.current?.focus()},[re]),(0,N.useEffect)(()=>{let t=t=>{let n=t.target;!y.current?.contains(n)&&!e.contains(n)&&r()};return document.addEventListener(`mousedown`,t),()=>document.removeEventListener(`mousedown`,t)},[e,r]);let S=e=>d(R(e.path)),ie=e=>e.kind===`up`?S(e):n(e.path);return(0,F.createPortal)((0,L.jsxs)(`div`,{ref:y,className:`web-folder-menu`,role:`listbox`,"aria-label":`Folders`,tabIndex:-1,style:v===null?{visibility:`hidden`}:{left:v.left,bottom:v.bottom,maxHeight:v.maxHeight},onKeyDown:e=>{let t=x[m];if(e.key===`Escape`)r();else if(e.key===`ArrowDown`)_(e=>Math.min(x.length-1,e+1));else if(e.key===`ArrowUp`)_(e=>Math.max(0,e-1));else if(e.key===`ArrowRight`&&t!==void 0&&t.kind!==`up`)S(t);else if(e.key===`ArrowLeft`&&u!==null&&A(u)!==null)d(A(u));else if(e.key===`Enter`&&t!==void 0)ie(t);else return;e.preventDefault(),e.stopPropagation()},children:[u!==null&&f===`loading`?(0,L.jsxs)(`div`,{className:`web-folder-menu__note`,children:[`Reading `,z(u)]}):null,u!==null&&f===`failed`?(0,L.jsxs)(`div`,{className:`web-folder-menu__note`,children:[`The host cannot list `,z(u)]}):null,(0,L.jsx)(`div`,{className:`web-folder-menu__list`,children:x.map((e,t)=>e.kind===`up`||e.kind===`here`?C(e,t):null)}),x.map((e,t)=>e.kind===`host`||e.kind===`used`?C(e,t):null)]}),document.body);function C(e,t){return(0,L.jsxs)(`div`,{children:[e.heading===void 0?null:(0,L.jsx)(`div`,{className:`web-folder-menu__heading`,children:e.heading}),(0,L.jsxs)(`div`,{role:`option`,className:`web-folder-menu__line`,"data-kind":e.kind,"data-current":e.path===c?`true`:void 0,"aria-selected":t===m,title:e.kind===`here`?e.path:void 0,onMouseEnter:()=>_(t),onClick:()=>ie(e),children:[(0,L.jsx)(`span`,{className:`web-folder-menu__mark`,"aria-hidden":`true`,children:e.kind===`up`?`↑`:g.folder}),(0,L.jsx)(`span`,{className:`web-folder-menu__label`,children:e.label}),e.sessions===void 0||e.sessions===0?null:(0,L.jsx)(`span`,{className:`web-folder-menu__count`,title:`${e.sessions} sessions`,children:e.sessions}),e.kind===`up`?null:(0,L.jsx)(`button`,{type:`button`,className:`web-folder-menu__walk`,"aria-label":`Open ${e.label}`,tabIndex:-1,onClick:t=>{t.stopPropagation(),S(e)},children:g.caretRight})]})]},`${e.kind}:${e.path}`)}}var ve=[`/`,`@`],ye=T(`session:new`),be=`session:new`,xe=300;function Se({name:e,schema:t,value:n,choices:r,set:i}){let a=t.title||e,o=n??t.default;if((t.type===`object`||t.type===`array`)&&r===void 0&&(t.enum?.length??0)===0)return null;if(t.type===`boolean`)return(0,L.jsx)(C,{label:a,...t.description===void 0?{}:{title:t.description},value:o===!0,onChange:i});let s=r??(t.enum??[]).map((e,n)=>({value:String(e),label:t.enumLabels?.[n]??String(e)}));if(s.length>0){let e=s.some(e=>e.value===String(o??``))?s:[{value:String(o??``),label:o===void 0?`default`:String(o)},...s];return(0,L.jsx)(se,{label:a,...t.description===void 0?{}:{title:t.description},value:String(o??``),options:e,onChange:e=>i(t.type===`number`?Number(e):e)})}return(0,L.jsx)(b,{label:a,...t.description===void 0?{}:{title:t.description},value:o==null?``:String(o),onChange:e=>i(t.type===`number`?e===``?void 0:Number(e):e)})}function V({provider:e}){let t=a(),n=i(`$/ahp/agents`)??[],l=i(ee),[g,b]=(0,N.useState)(e??``),[C,w]=(0,N.useState)(``),[T,E]=(0,N.useState)(``),[D,O]=(0,N.useState)(``),[k,A]=(0,N.useState)({}),[j,M]=(0,N.useState)(null),[me,P]=(0,N.useState)({}),[F,I]=(0,N.useState)(!1),[R,z]=(0,N.useState)(null),[B,V]=(0,N.useState)(null),[H,Ce]=(0,N.useState)([]),U=(0,N.useRef)(null);o(()=>D.trim()!==``||H.length>0?`The message is not sent.`:null),(0,N.useEffect)(()=>{g===``&&n[0]!==void 0&&b(n[0].provider)},[n,g]),(0,N.useEffect)(()=>{C===``&&l!=null&&w(h(l))},[l,C]),(0,N.useEffect)(()=>S(U.current),[D]);let W=C.trim()===``?void 0:m(C),we=JSON.stringify([g,W,k]);(0,N.useEffect)(()=>{if(g===``)return;let e=!0,t=window.setTimeout(()=>{d(`resolveSessionConfig`,{channel:u,provider:g,...W===void 0?{}:{workingDirectory:W},config:k}).then(t=>{if(!e)return;let n=t;M({schema:n.schema.properties,values:n.values})}).catch(()=>{e&&M(null)})},xe);return()=>{e=!1,window.clearTimeout(t)}},[we]);let Te=Object.entries(j?.schema??{}).filter(([,e])=>e.enumDynamic===!0).map(([e])=>e).join(`
2
2
  `);(0,N.useEffect)(()=>{if(Te===``)return;let e=!0;for(let t of Te.split(`
3
3
  `))d(`sessionConfigCompletions`,{channel:u,provider:g,...W===void 0?{}:{workingDirectory:W},config:k,property:t}).then(n=>{let r=n.items;e&&P(e=>({...e,[t]:r.map(e=>({value:e.value,label:e.label}))}))}).catch(()=>void 0);return()=>{e=!1}},[Te,g,W]);let G=n.find(e=>e.provider===g),Ee=(0,N.useMemo)(()=>v(pe(G?.customizations)),[G]);(0,N.useEffect)(()=>{let e=ie(t,be,Ee,de);return()=>e.dispose()},[t,Ee]);let K=(0,N.useCallback)(e=>{V(e),requestAnimationFrame(()=>{let t=U.current;t!==null&&(t.focus(),t.setSelectionRange(e,e))})},[]),q=(0,N.useCallback)(e=>{Ce(t=>t.some(t=>le(t,e))?t:[...t,e])},[]),De=(0,N.useRef)(null),J=(0,N.useCallback)(async e=>{let t=await ue(Array.from(e??[]));for(let e of t.attached)q(e);t.refused.length>0&&r(`Not attached`,{description:`Over 5 MB or unreadable: ${t.refused.join(`, `)}`})},[q]),Y=(0,N.useRef)(D);Y.current=D;let X=(0,N.useRef)(B);X.current=B;let Oe=(0,N.useCallback)(e=>{let t=X.current??Y.current.length,n=Y.current.slice(0,t),r=n===``||/\s$/.test(n)?``:` `;O(`${n}${r}${e}${Y.current.slice(t)}`),K(n.length+r.length+e.length)},[K]),Z=oe({attach:q,insert:Oe,upload:e=>void J(e)}),ke=(0,N.useCallback)(async()=>{let e=he(Y.current,X.current??Y.current.length);if(e===null||W===void 0)return[];try{return(await ge(W,e)).map(e=>({title:e.title,onSelect:t=>{if(e.folder){t.replaceActiveToken(e.insert);return}t.replaceActiveToken(`${e.insert} `),e.attachment!==void 0&&q(e.attachment)}}))}catch{return[]}},[W,q]),Q=re({input:D,setInput:O,caretIndex:B,panelDataContext:ye,slashSlot:de,prefixes:ve,mentionProvider:ke,onCaretChange:K}),Ae=(0,N.useMemo)(()=>Object.entries(j?.schema??{}).filter(([e,t])=>t.readOnly!==!0&&e!==`model`),[j]),$=j?.schema.model,je=$===void 0?(G?.models??[]).map(e=>({value:e.id,label:e.name})):me.model??($.enum??[]).map((e,t)=>({value:String(e),label:$.enumLabels?.[t]??String(e)})),Me=(0,N.useRef)({attach:q,upload:J,focusCaret:K});Me.current={attach:q,upload:J,focusCaret:K},(0,N.useEffect)(()=>fe(ye,{models:()=>[],model:()=>void 0,setModel:()=>void 0,options:()=>[],setOption:()=>void 0,running:()=>!1,stop:()=>void 0,session:()=>``,attach:e=>Me.current.attach(e),type:e=>{let t=X.current??Y.current.length,n=Y.current.slice(0,t),r=e===`/`||n===``||/\s$/.test(n)?``:` `,i=e===`/`&&n.trim()===``?`/${Y.current.slice(t)}`:`${n}${r}${e}${Y.current.slice(t)}`;O(i),Me.current.focusCaret(e===`/`&&n.trim()===``?1:n.length+r.length+1)},upload:()=>De.current?.click()}),[]);function Ne(e){let t=Q.openCommand(e);K(t??U.current?.value.length??D.length)}let Pe=async()=>{if(g===``)return;I(!0),z(null);let e=`${g}:/${p()}`,n=D.trim(),{model:r,...i}=k;try{if(await d(`createSession`,{channel:e,provider:g,...W===void 0?{}:{workingDirectories:[W]},...Object.keys(i).length===0?{}:{config:i}}),await t.commands.execute(`ahp.openSession`,{resource:e}),t.surfaces.close(`session:new`),n!==``||H.length>0){let t=(await c(e))?.defaultChat;if(t!==void 0){let e=ae(n,T===``?void 0:T,H);f(t,{type:`chat/turnStarted`,turnId:p(),startedAt:new Date().toISOString(),message:e})}}}catch(e){z(e instanceof Error?e.message:String(e))}finally{I(!1)}};return n.length===0?(0,L.jsx)(_,{tone:`warning`,message:`This server offers no agent.`}):(0,L.jsxs)(`div`,{className:`web-new`,children:[(0,L.jsx)(ce,{variant:`h2`,text:`New session`}),G?.description===void 0||G.description===``?null:(0,L.jsx)(`p`,{className:`web-note`,children:G.description}),(0,L.jsxs)(`div`,{className:`web-composer web-new__composer`,children:[(0,L.jsxs)(`div`,{className:`web-composer__where`,children:[(0,L.jsx)(se,{label:`Agent`,value:g,options:n.map(e=>({value:e.provider,label:e.displayName})),onChange:e=>{b(e),E(``),A({}),P({})}}),(0,L.jsx)(_e,{value:C,onChange:w})]}),(0,L.jsxs)(`div`,{className:`web-composer__box`,"data-drop":Z.dropping??void 0,onDragOver:Z.onDragOver,onDragLeave:Z.onDragLeave,onDrop:Z.onDrop,children:[(0,L.jsx)(x,{attachments:H,folder:W,onRemove:e=>Ce(t=>t.filter((t,n)=>n!==e))}),(0,L.jsxs)(`div`,{className:`web-composer__bar`,children:[Q.pickerNode===null?null:(0,L.jsx)(`div`,{className:`web-composer__picker`,children:Q.pickerNode}),(0,L.jsx)(`textarea`,{ref:U,className:`web-composer__text`,rows:3,value:D,"aria-label":`First message`,placeholder:Ee.length===0?`What should it do? @ to refer to a file. Enter starts; leave it empty to start without a message.`:`What should it do? / for skills and commands, @ to refer to a file. Enter starts; leave it empty to start without a message.`,onChange:e=>{O(e.currentTarget.value),V(e.currentTarget.selectionStart)},onFocus:()=>t.store.set(ne,be),onKeyUp:e=>V(e.currentTarget.selectionStart),onClick:e=>V(e.currentTarget.selectionStart),onKeyDown:e=>{Q.handleMenuKeyDown(e)||e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),Pe())}})]}),(0,L.jsxs)(`div`,{className:`web-composer__foot`,children:[(0,L.jsx)(te,{onClick:()=>Ne(`ahp.composer.attach`)}),(0,L.jsx)(`input`,{ref:De,type:`file`,multiple:!0,hidden:!0,onChange:e=>{J(e.currentTarget.files),e.currentTarget.value=``}}),(0,L.jsxs)(`div`,{className:`web-composer__chips`,children:[je.length===0?null:(0,L.jsx)(se,{label:`Model`,value:T,options:[{value:``,label:`default`},...je],onChange:E}),Ae.map(([e,t])=>(0,L.jsx)(Se,{name:e,schema:t,value:k[e]??j?.values[e],choices:me[e],set:t=>A(n=>({...n,[e]:t}))},e)),j===null&&g!==``?(0,L.jsx)(y,{label:`Reading settings`}):null]}),(0,L.jsx)(s,{label:F?`Starting`:D.trim()===``&&H.length===0?`Create`:`Start`,variant:`primary`,size:`sm`,title:`Enter starts, Shift+Enter breaks the line`,disabled:F||g===``,onClick:()=>void Pe()})]})]})]}),R===null?null:(0,L.jsx)(_,{tone:`danger`,title:`Not created`,message:R})]})}export{V as default};
@@ -1,2 +1,2 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{G as a,K as o,Y as s,Z as c,c as l,it as u,j as d,q as f,v as p}from"./data-CBWyZN_H.js";import{n as m,o as h,t as g}from"./words-T8-D0K4W.js";import{t as _}from"./emojis-7RT6GvLa.js";import{t as v}from"./Badge-BDEW5PFb.js";import{t as y}from"./Spinner-B-iOhBZq.js";import{t as b}from"./Markdown-_Awuh7Ku.js";import{t as x}from"./Alert-CHZkhmDE.js";import{t as S}from"./Composer-Crdqrcjj.js";import{t as ee}from"./Text-MPtQvYE-.js";import{d as C,f as w}from"./composer-commands-AmOY6XGO.js";import{t as te}from"./state-KGSq646f.js";import{a as T,n as E,r as D,t as O}from"./turn-BoF7W1h6.js";import{t as k}from"./CopyButton-DWmFc5fw.js";import{n as ne,r as re,t as ie}from"./clicks-B3stbczh.js";import{t as A}from"./channel-8aIcEm3f.js";var j=t(),M=(0,j.createContext)(null),N={picked:[],text:``,other:!1};function P(e){return String(e.kind)===`boolean`?[{id:`yes`,label:`Yes`},{id:`no`,label:`No`}]:`options`in e?e.options:[]}function ae(e){let t=String(e.kind);return t===`single-select`||t===`multi-select`||t===`boolean`}function F(e){return`allowFreeformInput`in e&&e.allowFreeformInput===!0}function oe(e,t){let n=String(e.kind),r=t.other?t.text.trim():``,i=e=>({state:`submitted`,value:e});if(n===`text`)return t.text.trim()===``?void 0:i({kind:`text`,value:t.text});if(n===`number`||n===`integer`){let e=Number(t.text);return t.text.trim()===``||Number.isNaN(e)?void 0:i({kind:`number`,value:e})}if(n===`boolean`)return t.picked[0]===void 0?void 0:i({kind:`boolean`,value:t.picked[0]===`yes`});if(n===`multi-select`)return t.picked.length===0&&r===``?void 0:i({kind:`selected-many`,value:t.picked,...r===``?{}:{freeformValues:[r]}});let a=t.picked[0];return a===void 0?r===``?void 0:i({kind:`text`,value:r}):i({kind:`selected`,value:a,...r===``?{}:{freeformValues:[r]}})}function se(e){let t=e?.value;if(t===void 0)return N;let n=t.freeformValues?.[0],r=e=>n===void 0?e:{...e,text:n,other:!0};switch(t.kind){case`text`:return{picked:[],text:String(t.value??``),other:!0};case`number`:return{...N,text:String(t.value??``)};case`boolean`:return{...N,picked:[t.value===!0?`yes`:`no`]};case`selected`:return r({...N,picked:[String(t.value)]});case`selected-many`:return r({...N,picked:Array.isArray(t.value)?t.value.map(String):[]});default:return N}}function ce(e,t){let n=t?.value;if(n===void 0)return`Skipped`;let r=t=>P(e).find(e=>e.id===t)?.label??t,i=n.freeformValues??[];switch(n.kind){case`boolean`:return n.value===!0?`Yes`:`No`;case`selected`:return[r(String(n.value)),...i].join(`, `);case`selected-many`:return[...Array.isArray(n.value)?n.value.map(e=>r(String(e))):[],...i].join(`, `);default:return String(n.value??``)}}var I=e(),L=new Map,le=`The agent has a question`;function ue(e){let t=String(e.kind),n=[];return t===`single-select`&&n.push(`Pick one`),t===`multi-select`&&n.push(`Pick any`),t===`text`&&n.push(`Type an answer`),(t===`number`||t===`integer`)&&n.push(`Type a number`),F(e)&&n.push(`or write your own`),`${n.join(`, `)}${e.required===!0?``:` (optional)`}`}function de({question:e,draft:t,set:n,next:r}){let i=String(e.kind),a=i===`multi-select`,o=e=>{n(a?{...t,picked:t.picked.includes(e)?t.picked.filter(t=>t!==e):[...t.picked,e]}:{...t,picked:[e],other:!1})},s=e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),r())};return ae(e)?(0,I.jsxs)(`div`,{className:`web-ask__options`,role:a?`group`:`radiogroup`,children:[P(e).map((e,n)=>{let r=t.picked.includes(e.id);return(0,I.jsxs)(`button`,{type:`button`,className:`web-ask__option`,role:a?`checkbox`:`radio`,"aria-checked":r,"data-on":r,onClick:()=>o(e.id),children:[(0,I.jsx)(`span`,{className:`web-ask__mark`,"data-many":a,"aria-hidden":`true`}),(0,I.jsxs)(`span`,{className:`web-ask__option-body`,children:[(0,I.jsxs)(`span`,{className:`web-ask__option-label`,children:[(0,I.jsx)(`span`,{className:`web-ask__key`,children:n+1}),e.label,e.recommended===!0?(0,I.jsx)(`span`,{className:`web-ask__tag`,children:`Recommended`}):null]}),e.description===void 0?null:(0,I.jsx)(`span`,{className:`web-ask__option-hint`,children:e.description})]})]},e.id)}),F(e)?(0,I.jsxs)(`div`,{className:`web-ask__option web-ask__other`,"data-on":t.other,children:[(0,I.jsx)(`button`,{type:`button`,className:`web-ask__mark`,"data-many":a,role:a?`checkbox`:`radio`,"aria-checked":t.other,"aria-label":`Other`,onClick:()=>n({...t,other:!t.other||!a,...a?{}:{picked:[]}})}),(0,I.jsx)(`input`,{className:`web-field`,value:t.text,placeholder:`Other: write your own answer`,onFocus:()=>{t.other||n({...t,other:!0,...a?{}:{picked:[]}})},onChange:e=>n({...t,text:e.target.value,other:!0,...a?{}:{picked:[]}}),onKeyDown:s})]}):null]}):i===`number`||i===`integer`?(0,I.jsx)(`input`,{className:`web-field`,type:`number`,autoFocus:!0,value:t.text,onChange:e=>n({...t,text:e.target.value}),onKeyDown:s}):(0,I.jsx)(`textarea`,{className:`web-field web-ask__text`,rows:3,autoFocus:!0,value:t.text,placeholder:`Your answer`,onChange:e=>n({...t,text:e.target.value}),onKeyDown:s})}function R({request:e,send:t,live:n,response:r}){let a=e.questions??[],[o,s]=(0,j.useState)(()=>Object.fromEntries(a.map(t=>[t.id,se(e.answers?.[t.id])]))),[c,l]=(0,j.useState)(0),[u,d]=(0,j.useState)(()=>L.get(e.id)??null),f=Object.fromEntries(a.flatMap(e=>{let t=oe(e,o[e.id]??N);return t===void 0?[]:[[e.id,t]]})),p=a.filter(e=>e.required===!0&&f[e.id]===void 0),m=e.message!==void 0&&e.message!==le?e.message:void 0,h=n=>{let r={response:n,answers:n===`accept`?f:{}};L.set(e.id,r),d(r),t({type:`chat/inputCompleted`,requestId:e.id,response:n,...n===`accept`&&Object.keys(f).length>0?{answers:f}:{}})},g=r??u?.response;if(g!==void 0||!n){let t=u?.answers??e.answers??{};return(0,I.jsxs)(`div`,{className:`web-ask`,"data-done":`true`,children:[(0,I.jsxs)(`div`,{className:`web-ask__head`,children:[(0,I.jsx)(`span`,{className:`web-ask__title`,children:g===`decline`?`Question declined`:g===void 0?`Question not answered`:`Question answered`}),u!==null&&r===void 0&&n?(0,I.jsx)(`span`,{className:`web-note`,children:`Sending to the agent`}):null]}),g===`accept`?(0,I.jsx)(`dl`,{className:`web-ask__summary`,children:a.map(e=>(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`dt`,{children:e.title??e.message}),(0,I.jsx)(`dd`,{children:ce(e,t[e.id])})]},e.id))}):null]})}let _=a[c],v=c>=a.length-1,y=_===void 0?void 0:f[_.id],x=_!==void 0&&_.required===!0&&y===void 0,S=()=>{x||(v?p.length===0&&h(`accept`):l(c+1))};return(0,I.jsxs)(`div`,{className:`web-ask`,tabIndex:-1,onKeyDown:e=>{let t=e.target;if(_===void 0||t.closest(`input, textarea`)!==null||!/^[1-9]$/.test(e.key))return;let n=P(_)[Number(e.key)-1];if(n===void 0)return;let r=o[_.id]??N,i=String(_.kind)===`multi-select`,a=i?r.picked.includes(n.id)?r.picked.filter(e=>e!==n.id):[...r.picked,n.id]:[n.id];s({...o,[_.id]:{...r,picked:a,...i?{}:{other:!1}}})},children:[(0,I.jsxs)(`div`,{className:`web-ask__head`,children:[(0,I.jsxs)(`span`,{className:`web-ask__title`,children:[(0,I.jsx)(`span`,{className:`web-ask__icon`,"aria-hidden":`true`,children:`?`}),m===void 0?`The agent asks`:`The agent asks:`]}),a.length>1?(0,I.jsxs)(`span`,{className:`web-ask__steps`,"aria-label":`Question ${c+1} of ${a.length}`,children:[a.map((e,t)=>(0,I.jsx)(`button`,{type:`button`,className:`web-ask__step`,"data-here":t===c,"data-done":f[e.id]!==void 0,title:e.title??e.message,onClick:()=>l(t)},e.id)),(0,I.jsxs)(`span`,{className:`web-ask__count`,children:[c+1,` of `,a.length]})]}):null]}),m===void 0?null:(0,I.jsx)(`div`,{className:`web-ask__message`,children:(0,I.jsx)(b,{text:m})}),e.url===void 0?null:(0,I.jsx)(`a`,{className:`web-link`,href:e.url,target:`_blank`,rel:`noreferrer`,children:e.url}),_===void 0?null:(0,I.jsxs)(`section`,{className:`web-ask__question`,children:[_.title===void 0?null:(0,I.jsx)(`span`,{className:`web-ask__chip`,children:_.title}),(0,I.jsx)(`div`,{className:`web-ask__text-line`,children:_.message}),(0,I.jsx)(`div`,{className:`web-ask__hint`,children:ue(_)}),(0,I.jsx)(de,{question:_,draft:o[_.id]??N,set:e=>s({...o,[_.id]:e}),next:S})]},_.id),(0,I.jsxs)(`div`,{className:`web-ask__actions`,children:[(0,I.jsx)(i,{label:`Decline`,size:`sm`,onClick:()=>h(`decline`)}),(0,I.jsx)(`span`,{className:`web-ask__spacer`}),c>0?(0,I.jsx)(i,{label:`Back`,size:`sm`,onClick:()=>l(c-1)}):null,v?(0,I.jsx)(i,{label:`Answer`,variant:`primary`,size:`sm`,disabled:p.length>0,onClick:()=>h(`accept`)}):(0,I.jsx)(i,{label:`Next`,variant:`primary`,size:`sm`,disabled:x,onClick:S})]}),v&&p.length>0&&!x?(0,I.jsx)(`p`,{className:`web-note`,children:p.length===1?`One question still needs an answer.`:`${p.length} questions still need an answer.`}):null]})}var fe=[`command`,`file_path`,`path`,`pattern`,`query`,`url`,`description`],pe=`ahpd.startedAt`,me=`ahpd.durationMs`;function z(e){let t=`toolInput`in e?e.toolInput:void 0;if(typeof t==`string`&&t.trim()!==``)try{return JSON.parse(t)}catch{return t}}function he(e){let t=z(e);return t===void 0?``:typeof t==`string`?t:JSON.stringify(t,null,2)}function ge(e){let t=z(e);if(typeof t!=`object`||!t)return``;let n=t;for(let e of fe){let t=n[e];if(typeof t==`string`&&t.trim()!==``)return t.trim().split(`
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{G as a,K as o,Y as s,Z as c,c as l,it as u,j as d,q as f,v as p}from"./data-hUAVersf.js";import{n as m,o as h,t as g}from"./words-T8-D0K4W.js";import{t as _}from"./emojis-7RT6GvLa.js";import{t as v}from"./Badge-BDEW5PFb.js";import{t as y}from"./Spinner-B-iOhBZq.js";import{t as b}from"./Markdown-_Awuh7Ku.js";import{t as x}from"./Alert-CHZkhmDE.js";import{t as S}from"./Composer-Dp_Z0bXp.js";import{t as ee}from"./Text-MPtQvYE-.js";import{d as C,f as w}from"./composer-commands-B8AF8OGi.js";import{t as te}from"./state-KGSq646f.js";import{a as T,n as E,r as D,t as O}from"./turn-BoF7W1h6.js";import{t as k}from"./CopyButton-DWmFc5fw.js";import{n as ne,r as re,t as ie}from"./clicks-DIh3kBLi.js";import{t as A}from"./channel-UD2KGCy_.js";var j=t(),M=(0,j.createContext)(null),N={picked:[],text:``,other:!1};function P(e){return String(e.kind)===`boolean`?[{id:`yes`,label:`Yes`},{id:`no`,label:`No`}]:`options`in e?e.options:[]}function ae(e){let t=String(e.kind);return t===`single-select`||t===`multi-select`||t===`boolean`}function F(e){return`allowFreeformInput`in e&&e.allowFreeformInput===!0}function oe(e,t){let n=String(e.kind),r=t.other?t.text.trim():``,i=e=>({state:`submitted`,value:e});if(n===`text`)return t.text.trim()===``?void 0:i({kind:`text`,value:t.text});if(n===`number`||n===`integer`){let e=Number(t.text);return t.text.trim()===``||Number.isNaN(e)?void 0:i({kind:`number`,value:e})}if(n===`boolean`)return t.picked[0]===void 0?void 0:i({kind:`boolean`,value:t.picked[0]===`yes`});if(n===`multi-select`)return t.picked.length===0&&r===``?void 0:i({kind:`selected-many`,value:t.picked,...r===``?{}:{freeformValues:[r]}});let a=t.picked[0];return a===void 0?r===``?void 0:i({kind:`text`,value:r}):i({kind:`selected`,value:a,...r===``?{}:{freeformValues:[r]}})}function se(e){let t=e?.value;if(t===void 0)return N;let n=t.freeformValues?.[0],r=e=>n===void 0?e:{...e,text:n,other:!0};switch(t.kind){case`text`:return{picked:[],text:String(t.value??``),other:!0};case`number`:return{...N,text:String(t.value??``)};case`boolean`:return{...N,picked:[t.value===!0?`yes`:`no`]};case`selected`:return r({...N,picked:[String(t.value)]});case`selected-many`:return r({...N,picked:Array.isArray(t.value)?t.value.map(String):[]});default:return N}}function ce(e,t){let n=t?.value;if(n===void 0)return`Skipped`;let r=t=>P(e).find(e=>e.id===t)?.label??t,i=n.freeformValues??[];switch(n.kind){case`boolean`:return n.value===!0?`Yes`:`No`;case`selected`:return[r(String(n.value)),...i].join(`, `);case`selected-many`:return[...Array.isArray(n.value)?n.value.map(e=>r(String(e))):[],...i].join(`, `);default:return String(n.value??``)}}var I=e(),L=new Map,le=`The agent has a question`;function ue(e){let t=String(e.kind),n=[];return t===`single-select`&&n.push(`Pick one`),t===`multi-select`&&n.push(`Pick any`),t===`text`&&n.push(`Type an answer`),(t===`number`||t===`integer`)&&n.push(`Type a number`),F(e)&&n.push(`or write your own`),`${n.join(`, `)}${e.required===!0?``:` (optional)`}`}function de({question:e,draft:t,set:n,next:r}){let i=String(e.kind),a=i===`multi-select`,o=e=>{n(a?{...t,picked:t.picked.includes(e)?t.picked.filter(t=>t!==e):[...t.picked,e]}:{...t,picked:[e],other:!1})},s=e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),r())};return ae(e)?(0,I.jsxs)(`div`,{className:`web-ask__options`,role:a?`group`:`radiogroup`,children:[P(e).map((e,n)=>{let r=t.picked.includes(e.id);return(0,I.jsxs)(`button`,{type:`button`,className:`web-ask__option`,role:a?`checkbox`:`radio`,"aria-checked":r,"data-on":r,onClick:()=>o(e.id),children:[(0,I.jsx)(`span`,{className:`web-ask__mark`,"data-many":a,"aria-hidden":`true`}),(0,I.jsxs)(`span`,{className:`web-ask__option-body`,children:[(0,I.jsxs)(`span`,{className:`web-ask__option-label`,children:[(0,I.jsx)(`span`,{className:`web-ask__key`,children:n+1}),e.label,e.recommended===!0?(0,I.jsx)(`span`,{className:`web-ask__tag`,children:`Recommended`}):null]}),e.description===void 0?null:(0,I.jsx)(`span`,{className:`web-ask__option-hint`,children:e.description})]})]},e.id)}),F(e)?(0,I.jsxs)(`div`,{className:`web-ask__option web-ask__other`,"data-on":t.other,children:[(0,I.jsx)(`button`,{type:`button`,className:`web-ask__mark`,"data-many":a,role:a?`checkbox`:`radio`,"aria-checked":t.other,"aria-label":`Other`,onClick:()=>n({...t,other:!t.other||!a,...a?{}:{picked:[]}})}),(0,I.jsx)(`input`,{className:`web-field`,value:t.text,placeholder:`Other: write your own answer`,onFocus:()=>{t.other||n({...t,other:!0,...a?{}:{picked:[]}})},onChange:e=>n({...t,text:e.target.value,other:!0,...a?{}:{picked:[]}}),onKeyDown:s})]}):null]}):i===`number`||i===`integer`?(0,I.jsx)(`input`,{className:`web-field`,type:`number`,autoFocus:!0,value:t.text,onChange:e=>n({...t,text:e.target.value}),onKeyDown:s}):(0,I.jsx)(`textarea`,{className:`web-field web-ask__text`,rows:3,autoFocus:!0,value:t.text,placeholder:`Your answer`,onChange:e=>n({...t,text:e.target.value}),onKeyDown:s})}function R({request:e,send:t,live:n,response:r}){let a=e.questions??[],[o,s]=(0,j.useState)(()=>Object.fromEntries(a.map(t=>[t.id,se(e.answers?.[t.id])]))),[c,l]=(0,j.useState)(0),[u,d]=(0,j.useState)(()=>L.get(e.id)??null),f=Object.fromEntries(a.flatMap(e=>{let t=oe(e,o[e.id]??N);return t===void 0?[]:[[e.id,t]]})),p=a.filter(e=>e.required===!0&&f[e.id]===void 0),m=e.message!==void 0&&e.message!==le?e.message:void 0,h=n=>{let r={response:n,answers:n===`accept`?f:{}};L.set(e.id,r),d(r),t({type:`chat/inputCompleted`,requestId:e.id,response:n,...n===`accept`&&Object.keys(f).length>0?{answers:f}:{}})},g=r??u?.response;if(g!==void 0||!n){let t=u?.answers??e.answers??{};return(0,I.jsxs)(`div`,{className:`web-ask`,"data-done":`true`,children:[(0,I.jsxs)(`div`,{className:`web-ask__head`,children:[(0,I.jsx)(`span`,{className:`web-ask__title`,children:g===`decline`?`Question declined`:g===void 0?`Question not answered`:`Question answered`}),u!==null&&r===void 0&&n?(0,I.jsx)(`span`,{className:`web-note`,children:`Sending to the agent`}):null]}),g===`accept`?(0,I.jsx)(`dl`,{className:`web-ask__summary`,children:a.map(e=>(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`dt`,{children:e.title??e.message}),(0,I.jsx)(`dd`,{children:ce(e,t[e.id])})]},e.id))}):null]})}let _=a[c],v=c>=a.length-1,y=_===void 0?void 0:f[_.id],x=_!==void 0&&_.required===!0&&y===void 0,S=()=>{x||(v?p.length===0&&h(`accept`):l(c+1))};return(0,I.jsxs)(`div`,{className:`web-ask`,tabIndex:-1,onKeyDown:e=>{let t=e.target;if(_===void 0||t.closest(`input, textarea`)!==null||!/^[1-9]$/.test(e.key))return;let n=P(_)[Number(e.key)-1];if(n===void 0)return;let r=o[_.id]??N,i=String(_.kind)===`multi-select`,a=i?r.picked.includes(n.id)?r.picked.filter(e=>e!==n.id):[...r.picked,n.id]:[n.id];s({...o,[_.id]:{...r,picked:a,...i?{}:{other:!1}}})},children:[(0,I.jsxs)(`div`,{className:`web-ask__head`,children:[(0,I.jsxs)(`span`,{className:`web-ask__title`,children:[(0,I.jsx)(`span`,{className:`web-ask__icon`,"aria-hidden":`true`,children:`?`}),m===void 0?`The agent asks`:`The agent asks:`]}),a.length>1?(0,I.jsxs)(`span`,{className:`web-ask__steps`,"aria-label":`Question ${c+1} of ${a.length}`,children:[a.map((e,t)=>(0,I.jsx)(`button`,{type:`button`,className:`web-ask__step`,"data-here":t===c,"data-done":f[e.id]!==void 0,title:e.title??e.message,onClick:()=>l(t)},e.id)),(0,I.jsxs)(`span`,{className:`web-ask__count`,children:[c+1,` of `,a.length]})]}):null]}),m===void 0?null:(0,I.jsx)(`div`,{className:`web-ask__message`,children:(0,I.jsx)(b,{text:m})}),e.url===void 0?null:(0,I.jsx)(`a`,{className:`web-link`,href:e.url,target:`_blank`,rel:`noreferrer`,children:e.url}),_===void 0?null:(0,I.jsxs)(`section`,{className:`web-ask__question`,children:[_.title===void 0?null:(0,I.jsx)(`span`,{className:`web-ask__chip`,children:_.title}),(0,I.jsx)(`div`,{className:`web-ask__text-line`,children:_.message}),(0,I.jsx)(`div`,{className:`web-ask__hint`,children:ue(_)}),(0,I.jsx)(de,{question:_,draft:o[_.id]??N,set:e=>s({...o,[_.id]:e}),next:S})]},_.id),(0,I.jsxs)(`div`,{className:`web-ask__actions`,children:[(0,I.jsx)(i,{label:`Decline`,size:`sm`,onClick:()=>h(`decline`)}),(0,I.jsx)(`span`,{className:`web-ask__spacer`}),c>0?(0,I.jsx)(i,{label:`Back`,size:`sm`,onClick:()=>l(c-1)}):null,v?(0,I.jsx)(i,{label:`Answer`,variant:`primary`,size:`sm`,disabled:p.length>0,onClick:()=>h(`accept`)}):(0,I.jsx)(i,{label:`Next`,variant:`primary`,size:`sm`,disabled:x,onClick:S})]}),v&&p.length>0&&!x?(0,I.jsx)(`p`,{className:`web-note`,children:p.length===1?`One question still needs an answer.`:`${p.length} questions still need an answer.`}):null]})}var fe=[`command`,`file_path`,`path`,`pattern`,`query`,`url`,`description`],pe=`ahpd.startedAt`,me=`ahpd.durationMs`;function z(e){let t=`toolInput`in e?e.toolInput:void 0;if(typeof t==`string`&&t.trim()!==``)try{return JSON.parse(t)}catch{return t}}function he(e){let t=z(e);return t===void 0?``:typeof t==`string`?t:JSON.stringify(t,null,2)}function ge(e){let t=z(e);if(typeof t!=`object`||!t)return``;let n=t;for(let e of fe){let t=n[e];if(typeof t==`string`&&t.trim()!==``)return t.trim().split(`
2
2
  `)[0]}return``}function _e(e){let t=z(e);if(typeof t!=`object`||!t)return;let n=t;for(let e of[`file_path`,`notebook_path`,`path`]){let t=n[e];if(typeof t==`string`&&t.startsWith(`/`))return`file://${t}`}}function ve(e){let t=(e.status===`completed`||e.status===`pending-result-confirmation`?h(e.pastTenseMessage):``)||h(`invocationMessage`in e?e.invocationMessage:void 0)||e.intention||``,n=e.displayName||e.toolName;if(t!==``&&t!==n&&t!==e.toolName)return t;let r=ge(e);return r===``?n:`${n} ${r}`}function B(e){let t=e._meta?.[me];return typeof t==`number`?t:void 0}function ye(e){let t=e._meta?.[pe];if(typeof t!=`string`)return;let n=Date.parse(t);return Number.isNaN(n)?void 0:n}var be={Bash:`terminal`,terminal:`terminal`,shell:`terminal`,Read:`read`,read_file:`read`,NotebookRead:`read`,Glob:`search`,Grep:`search`,WebSearch:`search`,search:`search`,Edit:`edit`,MultiEdit:`edit`,Write:`edit`,NotebookEdit:`edit`,write_file:`edit`,edit_file:`edit`,Task:`subagent`,Agent:`subagent`,WebFetch:`web`,fetch:`web`};function xe(e){let t=e._meta?.toolKind;if(t===`terminal`||t===`read`||t===`search`||t===`subagent`)return t;let n=be[e.toolName];if(n!==void 0)return n;let r=`content`in e&&Array.isArray(e.content)?e.content:[];return r.some(e=>e.type===`fileEdit`)?`edit`:r.some(e=>e.type===`terminal`)?`terminal`:`other`}function Se(e){switch(e.status){case`streaming`:return`preparing`;case`pending-confirmation`:return`approval`;case`running`:return`running`;case`auth-required`:return`sign-in`;case`pending-result-confirmation`:return`review`;case`completed`:return e.success?`done`:`failed`;case`cancelled`:return`cancelled`;default:return`running`}}var Ce=e=>e.replace(/\u001b\[[0-9;?]*[ -/]*[@-~]/g,``);function we(e){let t=`content`in e&&Array.isArray(e.content)?e.content:[],n=[];for(let e of t){let t=String(e.type??``);if(t===`text`&&typeof e.text==`string`&&e.text!==``)n.push({kind:`text`,text:e.text});else if(t===`terminal`){let t=e.result;n.push({kind:`terminal`,title:String(e.title??`Terminal`),text:Ce(t?.preview??``),...t?.exitCode===void 0?{}:{exitCode:t.exitCode},truncated:t?.truncated===!0})}else if(t===`fileEdit`){let t=e.before,r=e.after,i=r?.uri??t?.uri??``,a=e.diff;n.push({kind:`file`,path:m(i),file:i,...t?.content?.uri===void 0?{}:{before:t.content.uri},...r?.content?.uri===void 0?{}:{after:r.content.uri},...a?.added===void 0?{}:{added:a.added},...a?.removed===void 0?{}:{removed:a.removed}})}else t===`subagent`?n.push({kind:`note`,text:`Ran ${String(e.agentName??e.title??`a subagent`)}`}):t===`resource`&&n.push({kind:`note`,text:`Read ${m(String(e.uri??``))}`})}if(e.status===`completed`||e.status===`pending-result-confirmation`){let t=e.error?.message.trim(),r=n.some(e=>(e.kind===`text`||e.kind===`terminal`)&&t!==void 0&&e.text.includes(t));t!==void 0&&t!==``&&!r&&n.push({kind:`note`,text:t})}if(e.status===`cancelled`){let t=h(e.reasonMessage)||{denied:`Denied.`,skipped:`Skipped.`,"result-denied":`Result rejected.`}[String(e.reason)]||`Cancelled.`;n.push({kind:`note`,text:t})}return n}var Te=/\[([^\]]+)\]\(([^)\s]+)\)|`([^`]+)`/g;function Ee(e,t){let n=[],r=0;for(let t of e.matchAll(Te))t.index>r&&n.push({text:e.slice(r,t.index)}),t[1]===void 0?n.push({text:t[3],href:t[3],code:!0}):n.push({text:t[1],href:t[2]}),r=t.index+t[0].length;if(n.length>0)return r<e.length&&n.push({text:e.slice(r)}),n;let i=t?.replace(/^file:\/\//,``),a=i===void 0?-1:e.indexOf(i);return i===void 0||a<0?[{text:e}]:[...a>0?[{text:e.slice(0,a)}]:[],{text:i,href:t},...a+i.length<e.length?[{text:e.slice(a+i.length)}]:[]]}var V=`pending-confirmation`,De=`pending-result-confirmation`,H={preparing:{glyph:_.pending,label:`Preparing`},approval:{glyph:_.waiting,label:`Needs approval`},running:{glyph:_.running,label:`Running`},"sign-in":{glyph:_.waiting,label:`Needs sign-in`},review:{glyph:_.waiting,label:`Review result`},done:{glyph:_.check,label:`Done`},failed:{glyph:_.cross,label:`Failed`},cancelled:{glyph:_.cross,label:`Cancelled`}};function Oe(){return ie(r(),(0,j.useContext)(M))}var ke={terminal:_.terminal,read:_.read,search:_.search,edit:_.edit,subagent:_.subagent,web:_.web,other:_.dot};function Ae({line:e,file:t}){let n=r(),i=(0,j.useContext)(M);return(0,I.jsx)(`span`,{className:`web-tool__line`,children:Ee(e,t).map((e,t)=>{let r=e.href===void 0?null:e.code===!0?ne(e.href,i):re(e.href,i);if(r===null)return e.code===!0?(0,I.jsx)(`code`,{children:e.text},t):(0,I.jsx)(`span`,{children:e.text},t);let a=e=>{e.stopPropagation(),e.preventDefault(),n.commands.execute(`ahp.openFile`,{uri:r.uri,line:r.line,end:r.end})};return(0,I.jsx)(`span`,{role:`link`,tabIndex:0,className:`web-tool__ref`,title:`Open ${m(r.uri)}`,onClick:a,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&a(e)},children:e.text},t)})})}function U({title:e,text:t}){return(0,I.jsxs)(`section`,{className:`web-tool__block`,children:[(0,I.jsxs)(`div`,{className:`web-tool__block-head`,children:[(0,I.jsx)(`span`,{children:e}),(0,I.jsx)(k,{text:t})]}),(0,I.jsx)(`pre`,{className:`web-tool__pre`,children:t})]})}function je({out:e}){let t=r();switch(e.kind){case`text`:return(0,I.jsx)(U,{title:`Output`,text:e.text});case`terminal`:return(0,I.jsx)(U,{title:`${e.title}${e.exitCode===void 0?``:` \u{00B7} exit ${e.exitCode}`}${e.truncated?` · cut short`:``}`,text:e.text===``?`No output.`:e.text});case`file`:return(0,I.jsxs)(`p`,{className:`web-tool__file`,children:[(0,I.jsx)(`button`,{type:`button`,className:`web-link`,title:e.before===void 0&&e.after===void 0?`Open the file`:`Open the change`,onClick:()=>void(e.before===void 0&&e.after===void 0?t.commands.execute(`ahp.openFile`,{uri:e.file}):t.commands.execute(`ahp.openDiff`,{file:e.file,...e.before===void 0?{}:{before:e.before},...e.after===void 0?{}:{after:e.after}})),children:e.path}),e.added===void 0?null:(0,I.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,e.added]}),e.removed===void 0?null:(0,I.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,e.removed]})]});case`note`:return(0,I.jsx)(`p`,{className:`web-note`,children:e.text})}}function W({call:e,send:t,live:n,turnId:a}){let o=Se(e),s=n&&(o===`approval`||o===`review`||o===`sign-in`),[c,l]=(0,j.useState)(!1),u=c||s,d=B(e),f=he(e),p=we(e),h=e.displayName||e.toolName,_=e.status===V?e.riskAssessment:void 0,v=_e(e),y=r();return(0,I.jsxs)(`div`,{className:`web-tool`,"data-outcome":o,children:[(0,I.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":u,title:H[o].label,onClick:()=>l(!c),children:[(0,I.jsx)(`span`,{className:`web-tool__mark`,"aria-label":H[o].label,children:ke[xe(e)]}),(0,I.jsx)(Ae,{line:ve(e),file:v}),o===`failed`||o===`cancelled`?(0,I.jsx)(`span`,{className:`web-tool__state`,children:H[o].label}):null,d===void 0||d<1e3?null:(0,I.jsx)(`span`,{className:`web-tool__time`,children:g(d)})]}),u?(0,I.jsxs)(`div`,{className:`web-tool__body`,children:[(0,I.jsxs)(`dl`,{className:`web-tool__facts`,children:[(0,I.jsx)(`dt`,{children:`Tool`}),(0,I.jsxs)(`dd`,{children:[(0,I.jsx)(`code`,{children:e.toolName}),h===e.toolName?null:` (${h})`]}),(0,I.jsx)(`dt`,{children:`Status`}),(0,I.jsx)(`dd`,{children:H[o].label}),v===void 0?null:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`dt`,{children:`File`}),(0,I.jsx)(`dd`,{children:(0,I.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>void y.commands.execute(`ahp.openFile`,{uri:v}),children:m(v)})})]}),e.intention===void 0?null:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`dt`,{children:`Why`}),(0,I.jsx)(`dd`,{children:e.intention})]}),_===void 0||_.status!==`complete`?null:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`dt`,{children:`Risk`}),(0,I.jsx)(`dd`,{children:`${_.safety}/10 safe \u{00B7} ${_.reason}`})]})]}),f===``?null:(0,I.jsx)(U,{title:`Arguments`,text:f}),p.map((e,t)=>(0,I.jsx)(je,{out:e},t)),n&&e.status===V?(0,I.jsx)(Me,{call:e,send:t,turnId:a}):null,n&&e.status===De?(0,I.jsxs)(`div`,{className:`web-tool__actions`,children:[(0,I.jsx)(i,{label:`Accept result`,variant:`primary`,onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:a,toolCallId:e.toolCallId,approved:!0})}),(0,I.jsx)(i,{label:`Reject`,onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:a,toolCallId:e.toolCallId,approved:!1})})]}):null]}):null]})}function G({text:e,running:t}){let[n,r]=(0,j.useState)(!1),i=e.replace(/[*_`#>]/g,``).replace(/\s+/g,` `).trim();return(0,I.jsxs)(`div`,{className:`web-tool`,"data-outcome":t?`running`:`thought`,children:[(0,I.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":n,onClick:()=>r(!n),children:[(0,I.jsx)(`span`,{className:`web-tool__mark`,"aria-hidden":`true`,children:_.thinking}),(0,I.jsxs)(`span`,{className:`web-tool__line`,children:[`Thinking: `,i]})]}),n?(0,I.jsx)(`div`,{className:`web-tool__body web-md`,children:(0,I.jsx)(b,{text:e})}):null]})}function Me({call:e,send:t,turnId:n}){let r=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!0,confirmed:`user-action`,...r===void 0?{}:{selectedOptionId:r}}),a=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!1,reason:`denied`,...r===void 0?{}:{selectedOptionId:r}}),o=e.status===V?e.options??[]:[],s=e.status===V?h(e.confirmationTitle):``;return(0,I.jsxs)(`div`,{className:`web-tool__confirm`,children:[s===``?null:(0,I.jsx)(b,{text:s}),(0,I.jsx)(`div`,{className:`web-tool__actions`,children:o.length===0?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(i,{label:`Approve`,variant:`primary`,onClick:()=>r()}),(0,I.jsx)(i,{label:`Deny`,onClick:()=>a()})]}):o.map(e=>(0,I.jsx)(i,{label:e.label,...e.kind===`approve`?{variant:`primary`}:{},onClick:()=>e.kind===`approve`?r(e.id):a(e.id)},e.id))})]})}var Ne=(0,j.memo)(function({part:e,send:t,live:n,turnId:i}){let a=Oe(),o=r();switch(String(e.kind)){case`markdown`:return`content`in e?(0,I.jsx)(`div`,{className:`web-md`,onClick:a,children:(0,I.jsx)(b,{text:e.content})}):null;case`contentRef`:{let t=`uri`in e?String(e.uri):``;return(0,I.jsx)(`button`,{type:`button`,className:`web-chip`,onClick:()=>void o.commands.execute(`ahp.openFile`,{uri:t}),children:`${_.file} ${m(t).split(`/`).pop()??t}`})}case`reasoning`:return`content`in e&&e.content!==``?(0,I.jsx)(G,{text:e.content,running:!1}):null;case`toolCall`:return`toolCall`in e?(0,I.jsx)(W,{call:e.toolCall,send:t,live:n,turnId:i}):null;case`inputRequest`:return`request`in e?(0,I.jsx)(R,{request:e.request,send:t,live:n,response:`response`in e&&e.response!==void 0?String(e.response):void 0}):null;case`error`:return(0,I.jsx)(x,{tone:`danger`,message:`error`in e&&e.error.message!==``?e.error.message:`The agent reported an error.`});case`systemNotification`:return(0,I.jsx)(`p`,{className:`web-note`,children:`content`in e?h(e.content):``});default:return null}}),Pe=new Set([`completed`,`cancelled`]),Fe=new Set([`pending-confirmation`,`pending-result-confirmation`,`auth-required`]);function Ie(e){let t=String(e.kind);if(t===`toolCall`&&`toolCall`in e)return{kind:`tool`,key:e.toolCall.toolCallId,call:e.toolCall};if(t===`reasoning`&&`content`in e){let t=String(e.content);return t.trim()===``?void 0:{kind:`reasoning`,key:`id`in e?String(e.id):``,text:t}}if(!(t===`markdown`&&`content`in e&&String(e.content).trim()===``))return null}function Le(e,t,n){return e.kind===`tool`?n.ended||Pe.has(String(e.call.status)):!(t&&n.live)}function K(e){return e.kind===`tool`&&Fe.has(String(e.call.status))}function Re(e){return e.kind===`tool`&&`success`in e.call&&e.call.success===!1}function ze(e,t,n){let r=[],i=[],a=[],o=e=>{let n=a[0];if(n!==void 0){let o={kind:`activity`,id:`act:${n.key}`,steps:a,live:e&&t,ended:!t};r.push(o),i.push(o)}a=[]};e.forEach((e,t)=>{let n=Ie(e);if(n!==void 0){if(n!==null){a.push(n);return}o(!1),r.push({kind:`part`,part:e,index:t})}}),o(!0);let s=i.length===1?i[0]:void 0;return s!==void 0&&!t&&n!==void 0&&(s.turnMs=n),r}function Be(e){let t=1/0,n=-1/0;for(let r of e){if(r.kind!==`tool`)continue;let e=ye(r.call),i=B(r.call);if(e===void 0||i===void 0)return;t=Math.min(t,e),n=Math.max(n,e+i)}return n>=t?n-t:void 0}var q=(e,t)=>e===void 0||e<1e3?void 0:t(e);function Ve(e,t){let n=[];if(e.done>0){n.push({text:e.done===1?`Completed 1 step`:`Completed ${e.done} steps`}),e.failed>0&&n.push({text:` (${e.failed} failed)`,failed:!0});let r=q(e.took,t);r!==void 0&&n.push({text:` in ${r}`})}let r=e.doing;if(r!==void 0){let e;if(r.what===`thinking`)e=`Thinking`;else{let n=`${r.what===`waiting`?`Waiting on`:`Working on`} ${r.name}`,i=q(r.for,t);e=i===void 0?n:`${n} for ${i}`}n.push({text:n.length>0?` \u{00B7} ${e}`:e})}return n}var J=new Map,Y=new Map;function X(e,t){t?J.has(e)||J.set(e,Date.now()):J.has(e)&&!Y.has(e)&&Y.set(e,Date.now())}function Z(e,t){let n=J.get(e);return n===void 0?void 0:(Y.get(e)??t)-n}function He(e,t){if(e.kind===`reasoning`)return{what:`thinking`};let n=e.call.displayName||e.call.toolName,r=Z(e.key,t);return{what:K(e)?`waiting`:`working`,name:n,...r===void 0?{}:{for:r}}}function Ue({group:e,send:t,turnId:n}){let[r,i]=(0,j.useState)(!1),[a,o]=(0,j.useState)(()=>Date.now()),s=e.steps.length-1,c=e.steps.map((t,n)=>Le(t,n===s,e)),l=c.lastIndexOf(!1),u=l<0?void 0:e.steps[l];X(e.id,e.live),e.steps.forEach((e,t)=>X(e.key,!c[t])),(0,j.useEffect)(()=>{if(u===void 0)return;let e=window.setInterval(()=>o(Date.now()),1e3);return()=>window.clearInterval(e)},[u?.key]);let d=e.live&&e.steps.some(K),f=r||d,p=c.filter(Boolean).length,m=u===void 0?a:J.get(u.key),h=J.get(e.id),v=e.live?h===void 0||m===void 0?void 0:m-h:Be(e.steps)??Z(e.id,a)??e.turnMs,y=Ve({done:p,failed:e.steps.filter(Re).length,...v===void 0?{}:{took:v},...u===void 0?{}:{doing:He(u,a)}},g);return(0,I.jsxs)(`div`,{className:`web-activity`,"data-live":u!==void 0,children:[(0,I.jsxs)(`button`,{type:`button`,className:`web-activity__line`,"aria-expanded":f,onClick:()=>i(!r),children:[(0,I.jsx)(`span`,{children:y.map((e,t)=>e.failed?(0,I.jsx)(`span`,{className:`web-activity__failed`,children:e.text},t):e.text)}),(0,I.jsx)(`span`,{className:`web-activity__chev`,"aria-hidden":`true`,children:f?_.caretDown:_.caretRight})]}),f?(0,I.jsx)(`div`,{className:`web-activity__steps`,children:e.steps.map((r,i)=>r.kind===`tool`?(0,I.jsx)(W,{call:r.call,send:t,live:!e.ended,turnId:n},r.key):(0,I.jsx)(G,{text:r.text,running:!c[i]},r.key))}):null]})}var Q={cancelled:`Stopped`,error:`Ended with an error`};function We(e){let[t,n]=(0,j.useState)(()=>Date.now());return(0,j.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(t)},[e]),t}function Ge({facts:e,state:t,live:n,text:r}){let i=We(n),a=n?e.startedAt===void 0?void 0:i-e.startedAt:e.duration,o=[];return e.startedAt!==void 0&&o.push(T(e.startedAt)),a!==void 0&&o.push(n?`${g(a)} so far`:g(a)),(e.input!==void 0||e.output!==void 0)&&o.push(`\u{2191}${D(e.input??0)} \u{2193}${D(e.output??0)}`),e.cacheRead!==void 0&&e.cacheRead>0&&o.push(`${D(e.cacheRead)} cached`),e.model!==void 0&&o.push(e.model),e.tools>0&&o.push(e.tools===1?`1 tool call`:`${e.tools} tool calls`),(0,I.jsxs)(`div`,{className:`web-turn__facts`,children:[n||r===``?null:(0,I.jsx)(k,{text:r,label:`Copy the reply`}),o.join(` · `),t===void 0||Q[t]===void 0?null:(0,I.jsx)(`span`,{className:`web-turn__ended`,"data-state":t,children:Q[t]})]})}var $=[];function Ke({attachments:e}){let t=r();return(0,I.jsx)(`div`,{className:`web-turn__attached`,children:e.map((e,n)=>{let r=e,i=typeof r.uri==`string`&&r.displayKind!==`directory`?r.uri:void 0,a=w(e),o=(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`span`,{className:`web-attachment__icon`,children:C(e)}),(0,I.jsx)(`span`,{className:`web-attachment__label`,children:a})]});return i===void 0?(0,I.jsx)(`span`,{className:`web-attachment`,title:a,children:o},n):(0,I.jsx)(`button`,{type:`button`,className:`web-attachment`,title:`Open ${a}`,onClick:()=>void t.commands.execute(`ahp.openFile`,{uri:i}),children:o},n)})})}var qe=(0,j.memo)(function({turn:e,live:t,send:n,open:r=$}){let i=`state`in e?String(e.state):void 0,a=e.responseParts;return(0,I.jsxs)(`article`,{className:`web-turn`,children:[(0,I.jsxs)(`div`,{className:`web-turn__ask`,children:[e.message.text,e.message.attachments===void 0||e.message.attachments.length===0?null:(0,I.jsx)(Ke,{attachments:e.message.attachments})]}),(0,I.jsxs)(`div`,{className:`web-turn__answer`,children:[ze(a,t,O(e).duration).map(r=>r.kind===`activity`?(0,I.jsx)(Ue,{group:r,send:n,turnId:e.id},r.id):(0,I.jsx)(Ne,{part:r.part,send:n,live:t,turnId:e.id},r.index)),t?r.map(e=>(0,I.jsx)(R,{request:e,send:n,live:!0,response:void 0},e.id)):null,t&&a.length===0?(0,I.jsx)(y,{label:`Working`}):null]}),(0,I.jsx)(Ge,{facts:O(e),...i===void 0?{}:{state:i},live:t,text:E(e)})]})});function Je({chatUri:e,cursor:t}){let[n,r]=(0,j.useState)(!1),[a,o]=(0,j.useState)(null);return(0,I.jsxs)(`div`,{className:`web-chat__older`,children:[(0,I.jsx)(i,{label:n?`Loading`:`Load older turns`,disabled:n,onClick:()=>{r(!0),o(null),d(`fetchTurns`,{channel:e,cursor:t}).catch(e=>o(e instanceof Error?e.message:String(e))).finally(()=>r(!1))}}),a===null?null:(0,I.jsx)(`span`,{className:`web-note`,children:a})]})}function Ye(e,t,n){let r=(0,j.useRef)({turn:void 0,requests:new Map});if(r.current.turn!==n?.id&&(r.current={turn:n?.id,requests:new Map}),n===void 0)return $;for(let n of e??[])String(n.kind)===`chatInput`&&n.chat===t&&`request`in n&&r.current.requests.set(n.id,n.request);let i=new Set(n.responseParts.flatMap(e=>`request`in e?[e.request.id]:[])),a=[...r.current.requests.values()].filter(e=>!i.has(e.id));return a.length===0?$:a}function Xe({resource:e}){let t=r(),i=n(l)?.find(t=>t.resource===e),d=A(e,u),m=d.state?.defaultChat??i?.defaultChat,h=A(m,c),g=(0,j.useRef)(null),_=(0,j.useRef)(!0),b=(0,j.useCallback)(e=>{m!==void 0&&p(m,e)},[m]),C=h.state?.turns.length??0,w=Ye(d.state?.inputNeeded,m,h.state?.activeTurn),T=(h.state?.activeTurn?.responseParts??[]).reduce((e,t)=>e+1+(`content`in t&&typeof t.content==`string`?t.content.length:0),0);(0,j.useEffect)(()=>{_.current&&g.current?.scrollIntoView({block:`end`})},[C,T]),(0,j.useEffect)(()=>{e!==void 0&&t.store.get(`$/ahp/activeSession`)===void 0&&t.store.set(te,e)},[t,e]);let E=i!==void 0&&!s(i.status);if((0,j.useEffect)(()=>{E&&e!==void 0&&p(e,{type:`session/isReadChanged`,isRead:!0})},[E,e,C]),i===void 0)return(0,I.jsx)(x,{tone:`warning`,message:`This session is gone.`});let D=f(i.status),O=String(d.state?.lifecycle??`ready`),k=h.state?.activity??i.activity;return(0,I.jsxs)(`div`,{className:`web-chat`,children:[(0,I.jsx)(`header`,{className:`web-chat__head`,children:(0,I.jsxs)(`div`,{className:`web-chat__title`,children:[(0,I.jsx)(ee,{variant:`h2`,text:i.title===``?`Untitled`:i.title}),(0,I.jsx)(v,{tone:o[D],text:a[D]}),k===void 0||k===``?null:(0,I.jsx)(`span`,{className:`web-note`,children:k})]})}),(0,I.jsxs)(`div`,{className:`web-chat__turns`,onScroll:e=>{let t=e.currentTarget;_.current=t.scrollHeight-t.scrollTop-t.clientHeight<48},children:[O===`creating`?(0,I.jsx)(y,{label:`Starting the session`}):null,O===`failed`?(0,I.jsx)(x,{tone:`danger`,title:`The session did not start`,message:d.state?.creationError?.message??`No reason given.`}):null,d.error===null?null:(0,I.jsx)(x,{tone:`danger`,title:`Session not readable`,message:d.error}),h.error===null?null:(0,I.jsx)(x,{tone:`danger`,title:`Chat not readable`,message:h.error}),m!==void 0&&h.state===void 0&&h.error===null?(0,I.jsx)(y,{label:`Reading the chat`}):null,m===void 0||h.state?.turnsNextCursor===void 0?null:(0,I.jsx)(Je,{chatUri:m,cursor:h.state.turnsNextCursor}),(0,I.jsxs)(M.Provider,{value:i.workingDirectories?.[0]??null,children:[h.state?.turns.map(e=>(0,I.jsx)(qe,{turn:e,live:!1,send:b},e.id)),h.state?.activeTurn===void 0?null:(0,I.jsx)(qe,{turn:h.state.activeTurn,live:!0,send:b,open:w})]}),h.state!==void 0&&C===0&&h.state.activeTurn===void 0?(0,I.jsx)(`p`,{className:`web-note`,children:`No messages yet.`}):null,(0,I.jsx)(`div`,{ref:g})]}),h.state===void 0||m===void 0?null:(0,I.jsx)(S,{chatUri:m,activeId:h.state.activeTurn?.id,activeStart:h.state.activeTurn?.startedAt,queued:h.state.queuedMessages,steering:h.state.steeringMessage,draft:h.state.draft,lastModel:h.state.turns.at(-1)?.message.model?.id,config:d.state?.config,summary:i,send:b})]})}export{Xe as default};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import"./data-CBWyZN_H.js";import{t as a}from"./emojis-7RT6GvLa.js";import{t as o}from"./Badge-BDEW5PFb.js";import{t as s}from"./StatusDot-CC7gdsot.js";import{t as c}from"./Spinner-B-iOhBZq.js";import{t as l}from"./Markdown-_Awuh7Ku.js";import{t as u}from"./Alert-CHZkhmDE.js";import{t as d}from"./Tree-BqFzA5wp.js";import{t as f}from"./Text-MPtQvYE-.js";import{t as p}from"./DetailList-Yalgw0YM.js";import{t as m}from"./Modal-BHPfQpzr.js";import{i as h}from"./viewers-MssMDn0e.js";import{a as g,i as _,n as v,r as y,s as b,t as x}from"./words-CyqfIDyJ.js";import{t as S}from"./CopyButton-DWmFc5fw.js";import{t as C}from"./clicks-B3stbczh.js";import{n as w}from"./text-B601jRcP.js";var T=t(),E=e(),D={plugin:a.plugin,directory:a.folder,mcpServer:a.mcpServer};function O(e){if(e!==void 0)return e.tone===`busy`?(0,E.jsx)(c,{size:12,label:e.text}):(0,E.jsx)(s,{tone:e.tone,label:e.text,className:`web-custom__state`})}function k({name:e,description:t,className:n}){return(0,E.jsxs)(`span`,{className:n,onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:[(0,E.jsx)(S,{text:e,label:`Copy the name`}),t===``?null:(0,E.jsx)(S,{text:t,label:`Copy the description`,icon:a.copyText})]})}function A(e,t){let n=O(t.state);return{key:`${e}/${t.id}`,label:(0,E.jsxs)(`span`,{className:`web-custom`,"data-enabled":t.enabled?`true`:`false`,title:t.line===``?t.label:`${t.label}: ${t.line}`,children:[(0,E.jsx)(`span`,{className:`web-custom__name`,children:t.label}),t.line===``?null:(0,E.jsx)(`span`,{className:`web-custom__line`,children:t.line}),t.flags.map(e=>(0,E.jsx)(`span`,{className:`web-custom__flag`,children:e},e)),(0,E.jsx)(k,{name:t.label,description:t.description,className:`web-custom__copies`})]}),...n===void 0?{}:{trailing:n},data:{name:t.label,copies:!0,description:t.description,flags:t.flags,...t.open===void 0?{}:{open:t.open}}}}function j(e){let t=O(e.state);return{key:e.id,icon:D[e.type]??a.dot,label:(0,E.jsxs)(`span`,{className:`web-custom`,"data-enabled":e.enabled?`true`:`false`,title:`${e.kind}: ${e.path}`,children:[(0,E.jsx)(`span`,{className:`web-custom__name`,children:e.name}),(0,E.jsx)(`span`,{className:`web-custom__line`,children:e.path}),e.meta.map(e=>(0,E.jsx)(`span`,{className:`web-custom__flag`,children:e},e))]}),...t===void 0?{}:{trailing:t},data:{name:e.name,copies:!1,description:e.path,flags:e.meta,...e.open===void 0?{}:{open:e.open}},...e.children.length===0?{}:{children:e.children.map(t=>A(e.id,t))}}}var M=e=>e.replace(/\/[^/]*$/,``);function N({uri:e}){let t=r(),n=w(e);return n===null?(0,E.jsx)(c,{label:`Reading the file`}):`error`in n||n.text===null?(0,E.jsx)(`p`,{className:`web-note`,children:`The file is not readable from here.`}):(0,E.jsx)(`div`,{className:`web-md`,onClick:C(t,M(e)),children:(0,E.jsx)(l,{text:b(n.text)})})}function P({detail:e,onClose:t}){let n=r(),a=e.open,o=a!==void 0&&(h(a.uri)===`md`||h(a.uri)===`markdown`);return(0,E.jsx)(m,{open:!0,title:e.name,onClose:t,children:(0,E.jsxs)(`div`,{className:`web-custom-detail`,children:[e.copies?(0,E.jsx)(k,{name:e.name,description:e.description,className:`web-custom-detail__copies`}):null,e.flags.length===0?null:(0,E.jsx)(`p`,{className:`web-custom-detail__flags`,children:e.flags.join(` · `)}),e.description===``?null:(0,E.jsx)(`p`,{children:e.description}),a===void 0?null:o?(0,E.jsx)(N,{uri:a.uri}):(0,E.jsx)(i,{label:`Open file`,onClick:()=>{t(),n.commands.execute(`ahp.openFile`,{uri:a.uri,line:a.line})}})]})})}function F({items:e}){let[t,n]=(0,T.useState)(new Set),[r,i]=(0,T.useState)(null),[a,o]=(0,T.useState)(null);return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(d,{className:`web-customs`,nodes:v(e).map(j),selectedKey:r,expanded:t,onExpandedChange:n,onSelect:e=>{if(i(e.key),e.children!==void 0){let r=new Set(t);r.delete(e.key)||r.add(e.key),n(r)}else e.data!==void 0&&o(e.data)}}),a===null?null:(0,E.jsx)(P,{detail:a,onClose:()=>o(null)})]})}var I={disabled:`Turned off by policy`,unconfigured:`Not set up`};function L({provider:e}){let t=r(),a=n(`$/ahp/agents`)??[],s=n(`$/ahp/sessions`)??[],c=a.find(t=>t.provider===e);if(c===void 0)return(0,E.jsx)(u,{tone:`warning`,message:`This server no longer offers this agent.`});let d=x(c),m=g(c),h=s.filter(e=>e.provider===c.provider).length,v=[{label:`Provider`,value:(0,E.jsx)(`code`,{children:c.provider})},{label:`Models`,value:_(c)},{label:`Sessions`,value:String(h)},{label:`Can`,value:d.length===0?`One chat in one folder per session`:d.join(`; `)}];return(0,E.jsxs)(`div`,{className:`web-page`,children:[(0,E.jsxs)(`div`,{className:`web-page__head`,children:[(0,E.jsxs)(`div`,{className:`web-chat__title`,children:[(0,E.jsx)(f,{variant:`h2`,text:c.displayName}),m.some(e=>e.required)?(0,E.jsx)(o,{tone:`warning`,text:`Needs sign-in`}):null]}),(0,E.jsx)(`div`,{className:`web-page__actions`,children:(0,E.jsx)(i,{label:`New session`,variant:`primary`,onClick:()=>void t.commands.execute(`ahp.newSession`,{provider:c.provider})})})]}),c.description===``?null:(0,E.jsx)(l,{text:c.description}),(0,E.jsx)(p,{items:v,columns:2}),(0,E.jsx)(f,{variant:`h3`,text:`Models`}),c.models.length===0?(0,E.jsx)(`p`,{className:`web-note`,children:`This agent lists no models; it picks its own.`}):(0,E.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,E.jsx)(`thead`,{children:(0,E.jsxs)(`tr`,{children:[(0,E.jsx)(`th`,{children:`Name`}),(0,E.jsx)(`th`,{children:`Id`}),(0,E.jsx)(`th`,{children:`Limits`}),(0,E.jsx)(`th`,{})]})}),(0,E.jsx)(`tbody`,{children:c.models.map(e=>(0,E.jsxs)(`tr`,{children:[(0,E.jsx)(`td`,{children:e.name}),(0,E.jsx)(`td`,{children:(0,E.jsx)(`code`,{children:e.id})}),(0,E.jsx)(`td`,{children:y(e)}),(0,E.jsx)(`td`,{children:e.policyState===void 0?``:I[String(e.policyState)]??``})]},e.id))})]}),(c.customizations??[]).length===0?null:(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(f,{variant:`h3`,text:`Customizations`}),(0,E.jsx)(F,{items:c.customizations})]}),m.length===0?null:(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(f,{variant:`h3`,text:`Sign-in`}),(0,E.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,E.jsx)(`thead`,{children:(0,E.jsxs)(`tr`,{children:[(0,E.jsx)(`th`,{children:`Resource`}),(0,E.jsx)(`th`,{children:`Scopes`}),(0,E.jsx)(`th`,{})]})}),(0,E.jsx)(`tbody`,{children:m.map(e=>(0,E.jsxs)(`tr`,{children:[(0,E.jsx)(`td`,{children:e.name}),(0,E.jsx)(`td`,{children:e.scopes}),(0,E.jsx)(`td`,{children:e.required?`Required`:`Optional`})]},e.name))})]})]})]})}export{L as default};
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import"./data-hUAVersf.js";import{t as a}from"./emojis-7RT6GvLa.js";import{t as o}from"./Badge-BDEW5PFb.js";import{t as s}from"./StatusDot-CC7gdsot.js";import{t as c}from"./Spinner-B-iOhBZq.js";import{t as l}from"./Markdown-_Awuh7Ku.js";import{t as u}from"./Alert-CHZkhmDE.js";import{t as d}from"./Tree-fxC7yDSR.js";import{t as f}from"./Text-MPtQvYE-.js";import{t as p}from"./DetailList-Yalgw0YM.js";import{t as m}from"./Modal-BHPfQpzr.js";import{i as h}from"./viewers-MssMDn0e.js";import{a as g,i as _,n as v,r as y,s as b,t as x}from"./words-CyqfIDyJ.js";import{t as S}from"./CopyButton-DWmFc5fw.js";import{t as C}from"./clicks-DIh3kBLi.js";import{n as w}from"./text-BdULOY8N.js";var T=t(),E=e(),D={plugin:a.plugin,directory:a.folder,mcpServer:a.mcpServer};function O(e){if(e!==void 0)return e.tone===`busy`?(0,E.jsx)(c,{size:12,label:e.text}):(0,E.jsx)(s,{tone:e.tone,label:e.text,className:`web-custom__state`})}function k({name:e,description:t,className:n}){return(0,E.jsxs)(`span`,{className:n,onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:[(0,E.jsx)(S,{text:e,label:`Copy the name`}),t===``?null:(0,E.jsx)(S,{text:t,label:`Copy the description`,icon:a.copyText})]})}function A(e,t){let n=O(t.state);return{key:`${e}/${t.id}`,label:(0,E.jsxs)(`span`,{className:`web-custom`,"data-enabled":t.enabled?`true`:`false`,title:t.line===``?t.label:`${t.label}: ${t.line}`,children:[(0,E.jsx)(`span`,{className:`web-custom__name`,children:t.label}),t.line===``?null:(0,E.jsx)(`span`,{className:`web-custom__line`,children:t.line}),t.flags.map(e=>(0,E.jsx)(`span`,{className:`web-custom__flag`,children:e},e)),(0,E.jsx)(k,{name:t.label,description:t.description,className:`web-custom__copies`})]}),...n===void 0?{}:{trailing:n},data:{name:t.label,copies:!0,description:t.description,flags:t.flags,...t.open===void 0?{}:{open:t.open}}}}function j(e){let t=O(e.state);return{key:e.id,icon:D[e.type]??a.dot,label:(0,E.jsxs)(`span`,{className:`web-custom`,"data-enabled":e.enabled?`true`:`false`,title:`${e.kind}: ${e.path}`,children:[(0,E.jsx)(`span`,{className:`web-custom__name`,children:e.name}),(0,E.jsx)(`span`,{className:`web-custom__line`,children:e.path}),e.meta.map(e=>(0,E.jsx)(`span`,{className:`web-custom__flag`,children:e},e))]}),...t===void 0?{}:{trailing:t},data:{name:e.name,copies:!1,description:e.path,flags:e.meta,...e.open===void 0?{}:{open:e.open}},...e.children.length===0?{}:{children:e.children.map(t=>A(e.id,t))}}}var M=e=>e.replace(/\/[^/]*$/,``);function N({uri:e}){let t=r(),n=w(e);return n===null?(0,E.jsx)(c,{label:`Reading the file`}):`error`in n||n.text===null?(0,E.jsx)(`p`,{className:`web-note`,children:`The file is not readable from here.`}):(0,E.jsx)(`div`,{className:`web-md`,onClick:C(t,M(e)),children:(0,E.jsx)(l,{text:b(n.text)})})}function P({detail:e,onClose:t}){let n=r(),a=e.open,o=a!==void 0&&(h(a.uri)===`md`||h(a.uri)===`markdown`);return(0,E.jsx)(m,{open:!0,title:e.name,onClose:t,children:(0,E.jsxs)(`div`,{className:`web-custom-detail`,children:[e.copies?(0,E.jsx)(k,{name:e.name,description:e.description,className:`web-custom-detail__copies`}):null,e.flags.length===0?null:(0,E.jsx)(`p`,{className:`web-custom-detail__flags`,children:e.flags.join(` · `)}),e.description===``?null:(0,E.jsx)(`p`,{children:e.description}),a===void 0?null:o?(0,E.jsx)(N,{uri:a.uri}):(0,E.jsx)(i,{label:`Open file`,onClick:()=>{t(),n.commands.execute(`ahp.openFile`,{uri:a.uri,line:a.line})}})]})})}function F({items:e}){let[t,n]=(0,T.useState)(new Set),[r,i]=(0,T.useState)(null),[a,o]=(0,T.useState)(null);return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(d,{className:`web-customs`,nodes:v(e).map(j),selectedKey:r,expanded:t,onExpandedChange:n,onSelect:e=>{if(i(e.key),e.children!==void 0){let r=new Set(t);r.delete(e.key)||r.add(e.key),n(r)}else e.data!==void 0&&o(e.data)}}),a===null?null:(0,E.jsx)(P,{detail:a,onClose:()=>o(null)})]})}var I={disabled:`Turned off by policy`,unconfigured:`Not set up`};function L({provider:e}){let t=r(),a=n(`$/ahp/agents`)??[],s=n(`$/ahp/sessions`)??[],c=a.find(t=>t.provider===e);if(c===void 0)return(0,E.jsx)(u,{tone:`warning`,message:`This server no longer offers this agent.`});let d=x(c),m=g(c),h=s.filter(e=>e.provider===c.provider).length,v=[{label:`Provider`,value:(0,E.jsx)(`code`,{children:c.provider})},{label:`Models`,value:_(c)},{label:`Sessions`,value:String(h)},{label:`Can`,value:d.length===0?`One chat in one folder per session`:d.join(`; `)}];return(0,E.jsxs)(`div`,{className:`web-page`,children:[(0,E.jsxs)(`div`,{className:`web-page__head`,children:[(0,E.jsxs)(`div`,{className:`web-chat__title`,children:[(0,E.jsx)(f,{variant:`h2`,text:c.displayName}),m.some(e=>e.required)?(0,E.jsx)(o,{tone:`warning`,text:`Needs sign-in`}):null]}),(0,E.jsx)(`div`,{className:`web-page__actions`,children:(0,E.jsx)(i,{label:`New session`,variant:`primary`,onClick:()=>void t.commands.execute(`ahp.newSession`,{provider:c.provider})})})]}),c.description===``?null:(0,E.jsx)(l,{text:c.description}),(0,E.jsx)(p,{items:v,columns:2}),(0,E.jsx)(f,{variant:`h3`,text:`Models`}),c.models.length===0?(0,E.jsx)(`p`,{className:`web-note`,children:`This agent lists no models; it picks its own.`}):(0,E.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,E.jsx)(`thead`,{children:(0,E.jsxs)(`tr`,{children:[(0,E.jsx)(`th`,{children:`Name`}),(0,E.jsx)(`th`,{children:`Id`}),(0,E.jsx)(`th`,{children:`Limits`}),(0,E.jsx)(`th`,{})]})}),(0,E.jsx)(`tbody`,{children:c.models.map(e=>(0,E.jsxs)(`tr`,{children:[(0,E.jsx)(`td`,{children:e.name}),(0,E.jsx)(`td`,{children:(0,E.jsx)(`code`,{children:e.id})}),(0,E.jsx)(`td`,{children:y(e)}),(0,E.jsx)(`td`,{children:e.policyState===void 0?``:I[String(e.policyState)]??``})]},e.id))})]}),(c.customizations??[]).length===0?null:(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(f,{variant:`h3`,text:`Customizations`}),(0,E.jsx)(F,{items:c.customizations})]}),m.length===0?null:(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(f,{variant:`h3`,text:`Sign-in`}),(0,E.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,E.jsx)(`thead`,{children:(0,E.jsxs)(`tr`,{children:[(0,E.jsx)(`th`,{children:`Resource`}),(0,E.jsx)(`th`,{children:`Scopes`}),(0,E.jsx)(`th`,{})]})}),(0,E.jsx)(`tbody`,{children:m.map(e=>(0,E.jsxs)(`tr`,{children:[(0,E.jsx)(`td`,{children:e.name}),(0,E.jsx)(`td`,{children:e.scopes}),(0,E.jsx)(`td`,{children:e.required?`Required`:`Optional`})]},e.name))})]})]})]})}export{L as default};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{d as a,j as o,n as s,nt as c}from"./data-CBWyZN_H.js";import{n as l,t as u}from"./words-T8-D0K4W.js";import{t as d}from"./Badge-BDEW5PFb.js";import{t as f}from"./Spinner-B-iOhBZq.js";import{t as p}from"./Markdown-_Awuh7Ku.js";import{t as m}from"./Alert-CHZkhmDE.js";import{t as h}from"./Text-MPtQvYE-.js";import{t as g}from"./DetailList-Yalgw0YM.js";import{c as _,f as v,g as y,h as b,m as x,p as S}from"./index-DBKNxflN.js";import{r as C}from"./turn-BoF7W1h6.js";import{t as w}from"./channel-8aIcEm3f.js";import{a as T,i as E,r as D,t as O}from"./actions-BmFc5yoR.js";var k=t(),A=e(),j={running:{tone:`info`,text:`Running`},failed:{tone:`danger`,text:`Last run failed`},on:{tone:`success`,text:`On`},off:{tone:`default`,text:`Off`}},M={pending:{tone:`default`,text:`Waiting`},running:{tone:`info`,text:`Running`},completed:{tone:`success`,text:`Done`},failed:{tone:`danger`,text:`Failed`},cancelled:{tone:`default`,text:`Stopped`}};function N(e){let t=e;if(String(t.kind)!==`trigger`)return`By hand`;let n=t.scheduledFor===void 0?``:` for ${b(t.scheduledFor)}`;return`${t.catchUp===!0?`Catch-up`:`Scheduled`}${n}`}var P=e=>(0,A.jsx)(`span`,{className:`web-lines`,children:e.map((e,t)=>(0,A.jsx)(`span`,{children:e},t))});function F(e){let{definition:t}=e,n=t.session,r=n.workingDirectories??[],i=t.triggers.filter(e=>`schedule`in e),a=t.triggers.filter(e=>!(`schedule`in e)),o=(t.disableConditions??[]).map(e=>`max`in e?`After ${e.max} runs`:`After ${b(e.date)}`),s=[{label:`Agent`,value:n.provider??`The host default`},{label:`Model`,value:n.model?.id??`The agent default`}];r.length>0&&s.push({label:`Folder`,value:P(r.map(l))}),n.config!==void 0&&Object.keys(n.config).length>0&&s.push({label:`Settings`,value:P(Object.entries(n.config).map(([e,t])=>`${e}: ${String(t)}`))});for(let e of i)`schedule`in e&&(s.push({label:`Schedule`,value:P([_(e.schedule.expression),(0,A.jsx)(`span`,{className:`web-method`,children:`${e.schedule.expression} \u{00B7} ${e.schedule.timeZone}`},`raw`)])}),s.push({label:`Missed runs`,value:String(e.misfirePolicy)===`runOnce`?`Run once when back`:`Skipped`}));i.length===0&&a.length===0&&s.push({label:`Schedule`,value:`Run by hand only`});for(let e of a)`schedule`in e||s.push({label:`Event`,value:`${e.title}${e.events.length===0?``:`: ${e.events.map(e=>e.title).join(`, `)}`}`});return o.length>0&&s.push({label:`Turns off`,value:P(o)}),e.nextRunAt!==void 0&&t.enabled&&s.push({label:`Next run`,value:b(e.nextRunAt)}),s.push({label:`Runs`,value:String(e.runCount??e.runs.length)}),(e.customizations?.length??0)>0&&s.push({label:`Customizations`,value:String(e.customizations?.length)}),s.push({label:`Created`,value:b(e.createdAt)},{label:`Changed`,value:b(e.modifiedAt)}),s}function I({resource:e}){let t=r(),{state:l,error:_}=w(a,c),P=n(s),[I,L]=(0,k.useState)(null);if(_!==null)return(0,A.jsx)(m,{tone:`danger`,title:`No automations`,message:_});if(l===void 0)return(0,A.jsx)(f,{label:`Reading the automations`});let R=l.entries.find(t=>t.resource===e);if(R===void 0)return(0,A.jsx)(m,{tone:`warning`,message:`This automation is gone.`});let z=e=>R.operations.map(String).includes(e),B=j[x(R)],V=S(R),H=e=>L(e instanceof Error?e.message:String(e));return(0,A.jsxs)(`div`,{className:`web-page`,children:[(0,A.jsxs)(`div`,{className:`web-page__head`,children:[(0,A.jsxs)(`div`,{className:`web-chat__title`,children:[(0,A.jsx)(h,{variant:`h2`,text:y(R)}),(0,A.jsx)(d,{tone:B.tone,text:B.text})]}),(0,A.jsxs)(`div`,{className:`web-page__actions`,children:[z(`run`)?(0,A.jsx)(i,{label:`Run now`,variant:`primary`,onClick:()=>void E(R).catch(H)}):null,z(`update`)?(0,A.jsx)(i,{label:R.definition.enabled?`Turn off`:`Turn on`,onClick:()=>T(R,!R.definition.enabled)}):null,z(`update`)?(0,A.jsx)(i,{label:`Edit`,onClick:()=>void t.commands.execute(`ahp.editAutomation`,{resource:R.resource})}):null,z(`remove`)?(0,A.jsx)(i,{label:`Delete`,onClick:()=>void D(R)}):null]})]}),I===null?null:(0,A.jsx)(m,{tone:`danger`,message:I}),(0,A.jsx)(g,{items:F(R),columns:2}),(0,A.jsx)(h,{variant:`h3`,text:`Message`}),(0,A.jsx)(`div`,{className:`web-automation__message`,children:(0,A.jsx)(p,{text:R.definition.message.text})}),(0,A.jsx)(h,{variant:`h3`,text:`Runs`}),V.length===0?(0,A.jsx)(`p`,{className:`web-note`,children:`No runs yet.`}):(0,A.jsxs)(`table`,{className:`web-runs`,children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{children:`Status`}),(0,A.jsx)(`th`,{children:`How`}),(0,A.jsx)(`th`,{children:`Started`}),(0,A.jsx)(`th`,{children:`Took`}),(0,A.jsx)(`th`,{children:`Tokens`}),(0,A.jsx)(`th`,{})]})}),(0,A.jsx)(`tbody`,{children:V.map(e=>{let n=v(e),r=M[n.status]??{tone:`default`,text:n.status},a=n.status===`running`||n.status===`pending`;return(0,A.jsxs)(`tr`,{children:[(0,A.jsxs)(`td`,{children:[(0,A.jsx)(d,{tone:r.tone,text:r.text}),n.error===void 0?null:(0,A.jsx)(`div`,{className:`web-note`,children:n.error})]}),(0,A.jsx)(`td`,{children:N(e.origin)}),(0,A.jsx)(`td`,{children:b(n.at)}),(0,A.jsx)(`td`,{children:n.took===void 0?``:u(n.took)}),(0,A.jsx)(`td`,{children:n.input===void 0&&n.output===void 0?``:`\u{2191}${C(n.input??0)} \u{2193}${C(n.output??0)}`}),(0,A.jsxs)(`td`,{className:`web-runs__actions`,children:[e.primarySession===void 0?null:(0,A.jsx)(i,{label:`Open session`,size:`sm`,onClick:()=>void t.commands.execute(`ahp.openSession`,{resource:e.primarySession})}),a&&P?.runCancellation!==void 0?(0,A.jsx)(i,{label:`Stop`,size:`sm`,onClick:()=>O(e.resource)}):null]})]},e.resource)})})]}),R.runsNextCursor===void 0?null:(0,A.jsx)(i,{label:`Load older runs`,onClick:()=>void o(`fetchAutomationRuns`,{channel:a,automation:R.resource,cursor:R.runsNextCursor}).catch(H)})]})}export{I as default};
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{d as a,j as o,n as s,nt as c}from"./data-hUAVersf.js";import{n as l,t as u}from"./words-T8-D0K4W.js";import{t as d}from"./Badge-BDEW5PFb.js";import{t as f}from"./Spinner-B-iOhBZq.js";import{t as p}from"./Markdown-_Awuh7Ku.js";import{t as m}from"./Alert-CHZkhmDE.js";import{t as h}from"./Text-MPtQvYE-.js";import{t as g}from"./DetailList-Yalgw0YM.js";import{c as _,f as v,g as y,h as b,m as x,p as S}from"./index-yhQX4tVS.js";import{r as C}from"./turn-BoF7W1h6.js";import{t as w}from"./channel-UD2KGCy_.js";import{a as T,i as E,r as D,t as O}from"./actions-BzJiPQuh.js";var k=t(),A=e(),j={running:{tone:`info`,text:`Running`},failed:{tone:`danger`,text:`Last run failed`},on:{tone:`success`,text:`On`},off:{tone:`default`,text:`Off`}},M={pending:{tone:`default`,text:`Waiting`},running:{tone:`info`,text:`Running`},completed:{tone:`success`,text:`Done`},failed:{tone:`danger`,text:`Failed`},cancelled:{tone:`default`,text:`Stopped`}};function N(e){let t=e;if(String(t.kind)!==`trigger`)return`By hand`;let n=t.scheduledFor===void 0?``:` for ${b(t.scheduledFor)}`;return`${t.catchUp===!0?`Catch-up`:`Scheduled`}${n}`}var P=e=>(0,A.jsx)(`span`,{className:`web-lines`,children:e.map((e,t)=>(0,A.jsx)(`span`,{children:e},t))});function F(e){let{definition:t}=e,n=t.session,r=n.workingDirectories??[],i=t.triggers.filter(e=>`schedule`in e),a=t.triggers.filter(e=>!(`schedule`in e)),o=(t.disableConditions??[]).map(e=>`max`in e?`After ${e.max} runs`:`After ${b(e.date)}`),s=[{label:`Agent`,value:n.provider??`The host default`},{label:`Model`,value:n.model?.id??`The agent default`}];r.length>0&&s.push({label:`Folder`,value:P(r.map(l))}),n.config!==void 0&&Object.keys(n.config).length>0&&s.push({label:`Settings`,value:P(Object.entries(n.config).map(([e,t])=>`${e}: ${String(t)}`))});for(let e of i)`schedule`in e&&(s.push({label:`Schedule`,value:P([_(e.schedule.expression),(0,A.jsx)(`span`,{className:`web-method`,children:`${e.schedule.expression} \u{00B7} ${e.schedule.timeZone}`},`raw`)])}),s.push({label:`Missed runs`,value:String(e.misfirePolicy)===`runOnce`?`Run once when back`:`Skipped`}));i.length===0&&a.length===0&&s.push({label:`Schedule`,value:`Run by hand only`});for(let e of a)`schedule`in e||s.push({label:`Event`,value:`${e.title}${e.events.length===0?``:`: ${e.events.map(e=>e.title).join(`, `)}`}`});return o.length>0&&s.push({label:`Turns off`,value:P(o)}),e.nextRunAt!==void 0&&t.enabled&&s.push({label:`Next run`,value:b(e.nextRunAt)}),s.push({label:`Runs`,value:String(e.runCount??e.runs.length)}),(e.customizations?.length??0)>0&&s.push({label:`Customizations`,value:String(e.customizations?.length)}),s.push({label:`Created`,value:b(e.createdAt)},{label:`Changed`,value:b(e.modifiedAt)}),s}function I({resource:e}){let t=r(),{state:l,error:_}=w(a,c),P=n(s),[I,L]=(0,k.useState)(null);if(_!==null)return(0,A.jsx)(m,{tone:`danger`,title:`No automations`,message:_});if(l===void 0)return(0,A.jsx)(f,{label:`Reading the automations`});let R=l.entries.find(t=>t.resource===e);if(R===void 0)return(0,A.jsx)(m,{tone:`warning`,message:`This automation is gone.`});let z=e=>R.operations.map(String).includes(e),B=j[x(R)],V=S(R),H=e=>L(e instanceof Error?e.message:String(e));return(0,A.jsxs)(`div`,{className:`web-page`,children:[(0,A.jsxs)(`div`,{className:`web-page__head`,children:[(0,A.jsxs)(`div`,{className:`web-chat__title`,children:[(0,A.jsx)(h,{variant:`h2`,text:y(R)}),(0,A.jsx)(d,{tone:B.tone,text:B.text})]}),(0,A.jsxs)(`div`,{className:`web-page__actions`,children:[z(`run`)?(0,A.jsx)(i,{label:`Run now`,variant:`primary`,onClick:()=>void E(R).catch(H)}):null,z(`update`)?(0,A.jsx)(i,{label:R.definition.enabled?`Turn off`:`Turn on`,onClick:()=>T(R,!R.definition.enabled)}):null,z(`update`)?(0,A.jsx)(i,{label:`Edit`,onClick:()=>void t.commands.execute(`ahp.editAutomation`,{resource:R.resource})}):null,z(`remove`)?(0,A.jsx)(i,{label:`Delete`,onClick:()=>void D(R)}):null]})]}),I===null?null:(0,A.jsx)(m,{tone:`danger`,message:I}),(0,A.jsx)(g,{items:F(R),columns:2}),(0,A.jsx)(h,{variant:`h3`,text:`Message`}),(0,A.jsx)(`div`,{className:`web-automation__message`,children:(0,A.jsx)(p,{text:R.definition.message.text})}),(0,A.jsx)(h,{variant:`h3`,text:`Runs`}),V.length===0?(0,A.jsx)(`p`,{className:`web-note`,children:`No runs yet.`}):(0,A.jsxs)(`table`,{className:`web-runs`,children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{children:`Status`}),(0,A.jsx)(`th`,{children:`How`}),(0,A.jsx)(`th`,{children:`Started`}),(0,A.jsx)(`th`,{children:`Took`}),(0,A.jsx)(`th`,{children:`Tokens`}),(0,A.jsx)(`th`,{})]})}),(0,A.jsx)(`tbody`,{children:V.map(e=>{let n=v(e),r=M[n.status]??{tone:`default`,text:n.status},a=n.status===`running`||n.status===`pending`;return(0,A.jsxs)(`tr`,{children:[(0,A.jsxs)(`td`,{children:[(0,A.jsx)(d,{tone:r.tone,text:r.text}),n.error===void 0?null:(0,A.jsx)(`div`,{className:`web-note`,children:n.error})]}),(0,A.jsx)(`td`,{children:N(e.origin)}),(0,A.jsx)(`td`,{children:b(n.at)}),(0,A.jsx)(`td`,{children:n.took===void 0?``:u(n.took)}),(0,A.jsx)(`td`,{children:n.input===void 0&&n.output===void 0?``:`\u{2191}${C(n.input??0)} \u{2193}${C(n.output??0)}`}),(0,A.jsxs)(`td`,{className:`web-runs__actions`,children:[e.primarySession===void 0?null:(0,A.jsx)(i,{label:`Open session`,size:`sm`,onClick:()=>void t.commands.execute(`ahp.openSession`,{resource:e.primarySession})}),a&&P?.runCancellation!==void 0?(0,A.jsx)(i,{label:`Stop`,size:`sm`,onClick:()=>O(e.resource)}):null]})]},e.resource)})})]}),R.runsNextCursor===void 0?null:(0,A.jsx)(i,{label:`Load older runs`,onClick:()=>void o(`fetchAutomationRuns`,{channel:a,automation:R.resource,cursor:R.runsNextCursor}).catch(H)})]})}export{I as default};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{S as r}from"./index-DBKNxflN.js";var i=e();function a({namespace:e,count:a=`items`,pageSizes:l,always:u=!1}){let d=n(),{t:f}=r(`query`),p=t(`$/${e}/view`),m=t(`$/${e}/query`),h=p?.total??0,g=m?.pageSize??50,_=Math.max(1,Math.ceil(h/g)),v=Math.min(Math.max(1,m?.page??1),_);if(h<=g&&!u&&!l?.length)return null;let y=h===0?0:(v-1)*g+1,b=Math.min(v*g,h),x=t=>d.store.set(`$/${e}/query`,{...m,...t}),S=e=>x({page:Math.min(_,Math.max(1,e))}),C=a===`pages`?f(`pageOf`,{page:v,pages:_,fallback:`{page} / {pages}`}):h===0?f(`noItems`,{fallback:`nothing`}):f(`itemRange`,{first:y,last:b,total:h,fallback:`{first} – {last} of {total}`});return(0,i.jsxs)(`div`,{style:o,children:[(0,i.jsx)(`button`,{style:s,disabled:v<=1,onClick:()=>S(v-1),"aria-label":`Previous`,children:`‹`}),(0,i.jsx)(`span`,{style:{fontSize:12,color:`var(--oo-color-muted, #8a8f98)`,fontVariantNumeric:`tabular-nums`},"aria-live":`polite`,children:C}),(0,i.jsx)(`button`,{style:s,disabled:v>=_,onClick:()=>S(v+1),"aria-label":`Next`,children:`›`}),l&&l.length>0?(0,i.jsx)(`select`,{style:c,value:g,"aria-label":f(`perPage`,{fallback:`Rows per page`}),onChange:e=>x({page:1,pageSize:Number(e.currentTarget.value)}),children:[...new Set([...l,g])].sort((e,t)=>e-t).map(e=>(0,i.jsx)(`option`,{value:e,children:f(`perPageOption`,{size:e,fallback:`{size} / page`})},e))}):null]})}var o={display:`flex`,alignItems:`center`,justifyContent:`center`,gap:10,padding:`6px 8px`,borderTop:`1px solid var(--oo-color-border, #2b2f37)`},s={appearance:`none`,background:`none`,border:`1px solid var(--oo-color-border, #2b2f37)`,borderRadius:4,color:`var(--oo-color-text, #e6e8eb)`,cursor:`pointer`,width:24,height:24,lineHeight:`20px`},c={appearance:`none`,background:`var(--oo-color-canvas, #14171c)`,border:`1px solid var(--oo-color-border, #2b2f37)`,borderRadius:4,color:`var(--oo-color-muted, #8a8f98)`,cursor:`pointer`,font:`inherit`,fontSize:11,padding:`2px 4px`};export{a as Pagination};
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{C as r}from"./index-yhQX4tVS.js";var i=e();function a({namespace:e,count:a=`items`,pageSizes:l,always:u=!1}){let d=n(),{t:f}=r(`query`),p=t(`$/${e}/view`),m=t(`$/${e}/query`),h=p?.total??0,g=m?.pageSize??50,_=Math.max(1,Math.ceil(h/g)),v=Math.min(Math.max(1,m?.page??1),_);if(h<=g&&!u&&!l?.length)return null;let y=h===0?0:(v-1)*g+1,b=Math.min(v*g,h),x=t=>d.store.set(`$/${e}/query`,{...m,...t}),S=e=>x({page:Math.min(_,Math.max(1,e))}),C=a===`pages`?f(`pageOf`,{page:v,pages:_,fallback:`{page} / {pages}`}):h===0?f(`noItems`,{fallback:`nothing`}):f(`itemRange`,{first:y,last:b,total:h,fallback:`{first} – {last} of {total}`});return(0,i.jsxs)(`div`,{style:o,children:[(0,i.jsx)(`button`,{style:s,disabled:v<=1,onClick:()=>S(v-1),"aria-label":`Previous`,children:`‹`}),(0,i.jsx)(`span`,{style:{fontSize:12,color:`var(--oo-color-muted, #8a8f98)`,fontVariantNumeric:`tabular-nums`},"aria-live":`polite`,children:C}),(0,i.jsx)(`button`,{style:s,disabled:v>=_,onClick:()=>S(v+1),"aria-label":`Next`,children:`›`}),l&&l.length>0?(0,i.jsx)(`select`,{style:c,value:g,"aria-label":f(`perPage`,{fallback:`Rows per page`}),onChange:e=>x({page:1,pageSize:Number(e.currentTarget.value)}),children:[...new Set([...l,g])].sort((e,t)=>e-t).map(e=>(0,i.jsx)(`option`,{value:e,children:f(`perPageOption`,{size:e,fallback:`{size} / page`})},e))}):null]})}var o={display:`flex`,alignItems:`center`,justifyContent:`center`,gap:10,padding:`6px 8px`,borderTop:`1px solid var(--oo-color-border, #2b2f37)`},s={appearance:`none`,background:`none`,border:`1px solid var(--oo-color-border, #2b2f37)`,borderRadius:4,color:`var(--oo-color-text, #e6e8eb)`,cursor:`pointer`,width:24,height:24,lineHeight:`20px`},c={appearance:`none`,background:`var(--oo-color-canvas, #14171c)`,border:`1px solid var(--oo-color-border, #2b2f37)`,borderRadius:4,color:`var(--oo-color-muted, #8a8f98)`,cursor:`pointer`,font:`inherit`,fontSize:11,padding:`2px 4px`};export{a as Pagination};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./LoginForm-p7rsv-LJ.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./sigillum-Bev0l9LS.js","./Button-_R1oktDz.js","./styles-yrzHRgom.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./index-DBKNxflN.js","./notify-CJo-T9e2.js","./data-CBWyZN_H.js","./emojis-7RT6GvLa.js","./ActionList-aOUHK9Z9.js","./colors-BieSUSt7.js","./ActionList-Bawu-Lja.css","./terminal-BMZxY-St.js","./surface-presentation-CT86pw6J.js","./registry-iidw4F1W.js","./preload-helper-BaNbYf_w.js","./sessions-BcRKb9k7.js","./composer-commands-AmOY6XGO.js","./words-T8-D0K4W.js","./state-KGSq646f.js","./TextField-DnSHrmJM.js","./_field-parts-BuPjFCuf.js","./_field-parts-DannIEUW.css","./_field-parts-CfQcSJYh.css","./DateTimeInput-x1XGuNl0.css","./state-DRVsnGrf.js","./folder-path-CmVXGhKI.js","./viewers-MssMDn0e.js","./index-BQcTkW2q.css","./LoginForm-BJhoxJyJ.css"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{t as r}from"./preload-helper-BaNbYf_w.js";import{t as i}from"./sigillum-Bev0l9LS.js";import{b as a}from"./index-DBKNxflN.js";var o=t(),s=e(),c=(0,o.lazy)(()=>r(()=>import(`./LoginForm-p7rsv-LJ.js`).then(e=>({default:e.LoginForm})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url));function l({permission:e,fallback:t,title:r,child:l,children:u}){let d=n(i.session)??null;return a(d,e)?l??u:(0,s.jsxs)(`div`,{className:`porta-locked`,children:[(0,s.jsx)(`span`,{className:`porta-locked__title`,children:r??(e?`Sign in required (${e})`:`Sign in required`)}),t??(0,s.jsx)(o.Suspense,{fallback:null,children:(0,s.jsx)(c,{})})]})}export{l as PortaLock,l as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./LoginForm-rBz-5JFG.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./sigillum-Bev0l9LS.js","./Button-_R1oktDz.js","./styles-yrzHRgom.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./index-yhQX4tVS.js","./notify-BQ9fSOfy.js","./data-hUAVersf.js","./emojis-7RT6GvLa.js","./ActionList-aOUHK9Z9.js","./colors-BieSUSt7.js","./ActionList-Bawu-Lja.css","./terminal-BPj7jGw5.js","./surface-presentation-CT86pw6J.js","./registry-iidw4F1W.js","./preload-helper-BaNbYf_w.js","./sessions-8PScJEDe.js","./composer-commands-B8AF8OGi.js","./words-T8-D0K4W.js","./state-KGSq646f.js","./TextField-DnSHrmJM.js","./_field-parts-BuPjFCuf.js","./_field-parts-DannIEUW.css","./_field-parts-CfQcSJYh.css","./DateTimeInput-x1XGuNl0.css","./state-DRVsnGrf.js","./folder-path-CTpCmycG.js","./viewers-MssMDn0e.js","./index-B1VQ36Tb.css","./LoginForm-BJhoxJyJ.css"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{t as r}from"./preload-helper-BaNbYf_w.js";import{t as i}from"./sigillum-Bev0l9LS.js";import{x as a}from"./index-yhQX4tVS.js";var o=t(),s=e(),c=(0,o.lazy)(()=>r(()=>import(`./LoginForm-rBz-5JFG.js`).then(e=>({default:e.LoginForm})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url));function l({permission:e,fallback:t,title:r,child:l,children:u}){let d=n(i.session)??null;return a(d,e)?l??u:(0,s.jsxs)(`div`,{className:`porta-locked`,children:[(0,s.jsx)(`span`,{className:`porta-locked__title`,children:r??(e?`Sign in required (${e})`:`Sign in required`)}),t??(0,s.jsx)(o.Suspense,{fallback:null,children:(0,s.jsx)(c,{})})]})}export{l as PortaLock,l as default};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./Button-_R1oktDz.js";import{f as r,ot as i,v as a}from"./data-CBWyZN_H.js";import{t as o}from"./Spinner-B-iOhBZq.js";import{t as s}from"./Alert-CHZkhmDE.js";import{t as c}from"./Text-MPtQvYE-.js";import{t as l}from"./SchemaForm-DKxGZpnK.js";import{t as u}from"./channel-8aIcEm3f.js";var d=t();function f(e,t){return Object.fromEntries(Object.entries(t).filter(([t,n])=>JSON.stringify(n)!==JSON.stringify(e[t])))}var p=e();function m(){let{state:e,error:t}=u(r,i),m=e?.config,[h,g]=(0,d.useState)({}),[_,v]=(0,d.useState)(!1),y=(0,d.useMemo)(()=>m?.values??{},[m]);if((0,d.useEffect)(()=>{g(y)},[y]),t!==null)return(0,p.jsx)(s,{tone:`danger`,title:`Settings not readable`,message:t});if(e===void 0)return(0,p.jsx)(o,{label:`Reading the settings`});if(m===void 0)return(0,p.jsx)(s,{tone:`info`,message:`This host publishes no settings.`});let b=f(y,h),x=Object.keys(b).length>0;return(0,p.jsxs)(`div`,{className:`web-page`,children:[(0,p.jsx)(c,{variant:`h2`,text:`Host settings`}),(0,p.jsx)(l,{schema:m.schema,value:h,onChange:e=>{g(e),v(!1)},baseline:y}),(0,p.jsxs)(`div`,{className:`web-page__actions`,children:[(0,p.jsx)(n,{label:`Save`,variant:`primary`,disabled:!x,onClick:()=>{a(r,{type:`root/configChanged`,config:b}),v(!0)}}),(0,p.jsx)(n,{label:`Reset`,disabled:!x,onClick:()=>g(y)}),_&&!x?(0,p.jsx)(`span`,{className:`web-note`,children:`Saved.`}):null]})]})}export{m as default};
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./Button-_R1oktDz.js";import{f as r,ot as i,v as a}from"./data-hUAVersf.js";import{t as o}from"./Spinner-B-iOhBZq.js";import{t as s}from"./Alert-CHZkhmDE.js";import{t as c}from"./Text-MPtQvYE-.js";import{t as l}from"./SchemaForm-DKxGZpnK.js";import{t as u}from"./channel-UD2KGCy_.js";var d=t();function f(e,t){return Object.fromEntries(Object.entries(t).filter(([t,n])=>JSON.stringify(n)!==JSON.stringify(e[t])))}var p=e();function m(){let{state:e,error:t}=u(r,i),m=e?.config,[h,g]=(0,d.useState)({}),[_,v]=(0,d.useState)(!1),y=(0,d.useMemo)(()=>m?.values??{},[m]);if((0,d.useEffect)(()=>{g(y)},[y]),t!==null)return(0,p.jsx)(s,{tone:`danger`,title:`Settings not readable`,message:t});if(e===void 0)return(0,p.jsx)(o,{label:`Reading the settings`});if(m===void 0)return(0,p.jsx)(s,{tone:`info`,message:`This host publishes no settings.`});let b=f(y,h),x=Object.keys(b).length>0;return(0,p.jsxs)(`div`,{className:`web-page`,children:[(0,p.jsx)(c,{variant:`h2`,text:`Host settings`}),(0,p.jsx)(l,{schema:m.schema,value:h,onChange:e=>{g(e),v(!1)},baseline:y}),(0,p.jsxs)(`div`,{className:`web-page__actions`,children:[(0,p.jsx)(n,{label:`Save`,variant:`primary`,disabled:!x,onClick:()=>{a(r,{type:`root/configChanged`,config:b}),v(!0)}}),(0,p.jsx)(n,{label:`Reset`,disabled:!x,onClick:()=>g(y)}),_&&!x?(0,p.jsx)(`span`,{className:`web-note`,children:`Saved.`}):null]})]})}export{m as default};
@@ -1 +1 @@
1
- import{t as e}from"./useStore-BQkzWMs-.js";import{t}from"./sigillum-Bev0l9LS.js";import{b as n}from"./index-DBKNxflN.js";function r({permission:r,fallback:i=null,child:a,children:o}){let s=e(t.session)??null;return n(s,r)?a??o:i}export{r as Sigillum,r as default};
1
+ import{t as e}from"./useStore-BQkzWMs-.js";import{t}from"./sigillum-Bev0l9LS.js";import{x as n}from"./index-yhQX4tVS.js";function r({permission:r,fallback:i=null,child:a,children:o}){let s=e(t.session)??null;return n(s,r)?a??o:i}export{r as Sigillum,r as default};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{o as n}from"./registry-iidw4F1W.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./ContextMenu-BV1gdog0.js";import{r as a}from"./MountTitle-Bx_Vo8tF.js";import{S as o}from"./index-DBKNxflN.js";var s=t();function c(e,t){if(e==null)return``;if(typeof e==`string`)return e;if(`t`in e)return t.translate(e.t);if(`path`in e){let n=t.get(e.path);return n==null?``:String(n)}return``}var l=e();function u({title:e,icon:t,color:a,actions:u=[]}){let p=r();o();let[m,h]=(0,s.useState)(null),g=e=>void p.commands.execute(e),_=e=>c(e,{get:e=>p.store.get(e),translate:n}),v=e=>_(e.label),y=_(e);function b(e){e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();h({x:t.right,y:t.bottom+2})}return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(`div`,{className:`oo-section-header`,"data-color":a,style:d,children:[(0,l.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0},children:[t?(0,l.jsx)(`span`,{className:`oo-section-header__icon`,"aria-hidden":!0,children:t}):null,(0,l.jsx)(`span`,{className:`oo-section-header__title`,style:{overflow:`hidden`,textOverflow:`ellipsis`},children:y})]}),(0,l.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:2},children:[u.map(e=>{let t=v(e);return(0,l.jsx)(`button`,{className:`oo-btn oo-btn--icon`,"data-variant":`ghost`,type:`button`,title:t,"aria-label":t,onClick:()=>g(e.command),style:f,children:e.icon??t??`•`},e.command)}),u.length?(0,l.jsx)(`button`,{className:`oo-btn oo-btn--icon`,"data-variant":`ghost`,type:`button`,title:`More actions`,"aria-label":`More actions`,onClick:b,style:f,children:`⋯`}):null]})]}),m?(0,l.jsx)(i,{x:m.x,y:m.y,onClose:()=>h(null),spec:{footerHints:!0,items:u.map(e=>({title:v(e)||e.command,icon:e.icon,onSelect:t=>{g(e.command),t.closeMenu()}}))}}):null]})}var d={flex:`0 0 auto`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`var(--oo-spacing-xs) var(--oo-spacing-sm)`,background:`var(--oo-color-surface)`,borderBottom:`1px solid var(--oo-color-border)`,fontSize:`var(--oo-font-size-xs)`,textTransform:`uppercase`,letterSpacing:`0.06em`,userSelect:`none`,minWidth:0,minHeight:32},f={background:`transparent`,border:`none`,font:`inherit`,fontSize:`var(--oo-font-size-sm)`,lineHeight:1,padding:`2px 5px`,borderRadius:4};function p({mounts:e,state:t,renderMount:n}){let i=r(),o=e.find(e=>e.key===t.activeContainerKey)??e[e.length-1],s=o?i.components.get(o.component.component)?.props:void 0,c=o?.props?.title??s?.title,d=a(o,``),f=o?.props?.icon??s?.icon,p=o?.props?.color??s?.color,m=o?.props?.actions??s?.actions,h=!!(c||m&&m.length);return(0,l.jsxs)(`div`,{className:`oo-layout oo-layout--single`,style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`,minHeight:0},children:[h?(0,l.jsx)(u,{title:d||o?.key||``,icon:f,color:p,actions:m}):null,(0,l.jsx)(`div`,{style:{flex:1,minHeight:0,position:`relative`},children:e.length===0?(0,l.jsx)(`div`,{style:{padding:24,color:`var(--oo-color-muted)`},children:`Nothing open.`}):e.map(e=>(0,l.jsx)(`div`,{className:`oo-layout__mount`,"data-active":e===o||void 0,style:{position:`absolute`,inset:0,overflow:`auto`,display:e===o?`block`:`none`},children:n(e)},e.key))})]})}export{p as SingleLayout};
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{o as n}from"./registry-iidw4F1W.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./ContextMenu-BV1gdog0.js";import{r as a}from"./MountTitle-Bx_Vo8tF.js";import{C as o}from"./index-yhQX4tVS.js";var s=t();function c(e,t){if(e==null)return``;if(typeof e==`string`)return e;if(`t`in e)return t.translate(e.t);if(`path`in e){let n=t.get(e.path);return n==null?``:String(n)}return``}var l=e();function u({title:e,icon:t,color:a,actions:u=[]}){let p=r();o();let[m,h]=(0,s.useState)(null),g=e=>void p.commands.execute(e),_=e=>c(e,{get:e=>p.store.get(e),translate:n}),v=e=>_(e.label),y=_(e);function b(e){e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();h({x:t.right,y:t.bottom+2})}return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(`div`,{className:`oo-section-header`,"data-color":a,style:d,children:[(0,l.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0},children:[t?(0,l.jsx)(`span`,{className:`oo-section-header__icon`,"aria-hidden":!0,children:t}):null,(0,l.jsx)(`span`,{className:`oo-section-header__title`,style:{overflow:`hidden`,textOverflow:`ellipsis`},children:y})]}),(0,l.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:2},children:[u.map(e=>{let t=v(e);return(0,l.jsx)(`button`,{className:`oo-btn oo-btn--icon`,"data-variant":`ghost`,type:`button`,title:t,"aria-label":t,onClick:()=>g(e.command),style:f,children:e.icon??t??`•`},e.command)}),u.length?(0,l.jsx)(`button`,{className:`oo-btn oo-btn--icon`,"data-variant":`ghost`,type:`button`,title:`More actions`,"aria-label":`More actions`,onClick:b,style:f,children:`⋯`}):null]})]}),m?(0,l.jsx)(i,{x:m.x,y:m.y,onClose:()=>h(null),spec:{footerHints:!0,items:u.map(e=>({title:v(e)||e.command,icon:e.icon,onSelect:t=>{g(e.command),t.closeMenu()}}))}}):null]})}var d={flex:`0 0 auto`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`var(--oo-spacing-xs) var(--oo-spacing-sm)`,background:`var(--oo-color-surface)`,borderBottom:`1px solid var(--oo-color-border)`,fontSize:`var(--oo-font-size-xs)`,textTransform:`uppercase`,letterSpacing:`0.06em`,userSelect:`none`,minWidth:0,minHeight:32},f={background:`transparent`,border:`none`,font:`inherit`,fontSize:`var(--oo-font-size-sm)`,lineHeight:1,padding:`2px 5px`,borderRadius:4};function p({mounts:e,state:t,renderMount:n,renderEmpty:i}){let o=r(),s=e.find(e=>e.key===t.activeContainerKey)??e[e.length-1],c=s?o.components.get(s.component.component)?.props:void 0,d=s?.props?.title??c?.title,f=a(s,``),p=s?.props?.icon??c?.icon,m=s?.props?.color??c?.color,h=s?.props?.actions??c?.actions,g=!!(d||h&&h.length);return(0,l.jsxs)(`div`,{className:`oo-layout oo-layout--single`,style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`,minHeight:0},children:[g?(0,l.jsx)(u,{title:f||s?.key||``,icon:p,color:m,actions:h}):null,(0,l.jsx)(`div`,{style:{flex:1,minHeight:0,position:`relative`},children:e.length===0?i?.()??null:e.map(e=>(0,l.jsx)(`div`,{className:`oo-layout__mount`,"data-active":e===s||void 0,style:{position:`absolute`,inset:0,overflow:`auto`,display:e===s?`block`:`none`},children:n(e)},e.key))})]})}export{p as SingleLayout};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./colors-BieSUSt7.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./ContextMenu-BV1gdog0.js";import{r as a}from"./Icon-CIQ7doud.js";import{r as o}from"./MountTitle-Bx_Vo8tF.js";var s=t(),c=e();function l({className:e,style:t,direction:n=`row`,align:r,justify:i,gap:a,children:o}){let s={...t};return r!==void 0&&(s.alignItems=r),i!==void 0&&(s.justifyContent=i),a!==void 0&&(s.gap=a),(0,c.jsx)(`div`,{className:[`oo-toolbar`,e].filter(Boolean).join(` `),"data-direction":n,style:s,children:o})}var u=(0,s.createContext)(null);function d(){let e=(0,s.useContext)(u);if(!e)throw Error(`useCampus() must be used inside <CampusView>`);return e}var f=(0,s.createContext)(1);function p(){return(0,s.useContext)(f)}var m={n:`ns-resize`,s:`ns-resize`,e:`ew-resize`,w:`ew-resize`,ne:`nesw-resize`,sw:`nesw-resize`,nw:`nwse-resize`,se:`nwse-resize`},h={w:80,h:60};function g(e,t,n,r,i,a){let o=t.x,s=t.y,c=t.w,l=t.h;return e.includes(`w`)&&(o=t.x+n,c=t.w-n),e.includes(`e`)&&(c=t.w+n),e.includes(`n`)&&(s=t.y+r,l=t.h-r),e.includes(`s`)&&(l=t.h+r),c<i.w&&(e.includes(`w`)&&(o=t.x+(t.w-i.w)),c=i.w),l<i.h&&(e.includes(`n`)&&(s=t.y+(t.h-i.h)),l=i.h),isFinite(a)&&(o<-a&&(e.includes(`w`)&&(c=t.x+t.w- -a),o=-a),s<-a&&(e.includes(`n`)&&(l=t.y+t.h- -a),s=-a),o+c>a&&(c=a-o),s+l>a&&(l=a-s)),{x:o,y:s,w:c,h:l}}function _(e,t,n,r){let i=e.x+t,a=e.y+n;return isFinite(r)&&(i=Math.max(-r,Math.min(r-e.w,i)),a=Math.max(-r,Math.min(r-e.h,a))),{...e,x:i,y:a}}function v({bounds:e,onCommit:t,minSize:n=h,resizable:r=!0,movable:i=!0,dragHandle:a=`[data-campus-drag]`,selected:o=!1,zIndex:l,children:u,onPointerDownCapture:f,onClick:m,onContextMenu:v,className:b,style:x,bodyStyle:S}){let{viewportRef:C,maxDepth:w}=d(),T=p(),[E,D]=(0,s.useState)(null),O=(0,s.useRef)(null),k=(0,s.useRef)(null),A=(0,s.useRef)(null);(0,s.useEffect)(()=>{D(null)},[e.x,e.y,e.w,e.h]);function j(){A.current&&=(D(A.current),null),k.current=null}function M(t,n){n.preventDefault(),n.stopPropagation(),n.currentTarget.setPointerCapture(n.pointerId),O.current={mode:t,startX:n.clientX,startY:n.clientY,start:E??e}}function N(e){if(!i)return;let t=e.target;t&&t.closest(a)&&M(`move`,e)}function P(e){let t=O.current;if(!t)return;let r=C.current.scale*T||1,i=(e.clientX-t.startX)/r,a=(e.clientY-t.startY)/r,o=t.mode===`move`?_(t.start,i,a,w):g(t.mode,t.start,i,a,n,w);A.current=o,k.current===null&&(k.current=requestAnimationFrame(j))}function F(n){if(!O.current)return;k.current!==null&&(cancelAnimationFrame(k.current),j()),n.currentTarget.releasePointerCapture(n.pointerId);let r=A.current??E??e;A.current=null,O.current=null,t(r)}let I=E??e,L={position:`absolute`,left:I.x,top:I.y,width:I.w,height:I.h,display:`flex`,flexDirection:`column`,overflow:`hidden`,zIndex:l??(o?10:1),background:`var(--oo-color-canvas)`,border:`1px solid ${o?`var(--oo-color-accent)`:`var(--oo-color-border)`}`,borderRadius:`var(--oo-radius-sm)`,boxShadow:o?`var(--oo-shadow-lg)`:`var(--oo-shadow-md)`,...x};return(0,c.jsxs)(`div`,{className:[`oo-campus-nodus`,b].filter(Boolean).join(` `),"data-selected":o,style:L,onPointerDownCapture:f,onPointerDown:N,onPointerMove:P,onPointerUp:F,onClick:m,onContextMenu:v,children:[(0,c.jsx)(`div`,{style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`,overflow:`hidden`,...S},children:u}),r?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(y,{mode:`n`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`s`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`e`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`w`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`nw`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`ne`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`sw`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`se`,startDrag:M,onPointerMove:P,endDrag:F})]}):null]})}function y({mode:e,startDrag:t,onPointerMove:n,endDrag:r}){let i=e.length===2,a;if(i)a={position:`absolute`,width:12,height:12,cursor:m[e],touchAction:`none`,zIndex:1,...e.includes(`n`)?{top:-6}:{bottom:-6},...e.includes(`w`)?{left:-6}:{right:-6}};else{let t=e===`n`||e===`s`;a={position:`absolute`,cursor:m[e],touchAction:`none`,zIndex:1,...t?{left:12,right:12,height:6,...e===`n`?{top:-3}:{bottom:-3}}:{top:12,bottom:12,width:6,...e===`w`?{left:-3}:{right:-3}}}}return(0,c.jsx)(`div`,{className:`oo-campus-nodus-resize oo-campus-nodus-resize--${e}`,onPointerDown:n=>t(e,n),onPointerMove:n,onPointerUp:r,style:a})}function b({zoom:e=1,pan:t,zIndex:n,className:r,style:i,children:a}){let o=t?.x??0,s=t?.y??0,l=o!==0||s!==0||e!==1?`translate(${o}px, ${s}px) scale(${e})`:void 0;return(0,c.jsx)(f.Provider,{value:e,children:(0,c.jsx)(`div`,{className:[`oo-campus-stratum`,r].filter(Boolean).join(` `),style:{position:`absolute`,left:0,top:0,width:0,height:0,transformOrigin:`0 0`,transform:l,zIndex:n,...i},children:a})})}function x({className:e,style:t,children:n}){return n==null||n===!1?null:(0,c.jsx)(`div`,{className:[`oo-campus-velum`,e].filter(Boolean).join(` `),style:{position:`absolute`,inset:0,pointerEvents:`none`,zIndex:30,...t},children:n})}var S=.1,C=4,w=1.1,T=9,E=.95,D=40,O=140;function k(e,t,n){return Math.max(t,Math.min(n,e))}function A(e){return`translate(${e.panX}px, ${e.panY}px) scale(${e.scale})`}function j(e,t,n,r,i){let a=k(e.scale,r,i);if(!isFinite(n))return{...e,scale:a};let{panX:o,panY:s}=e,c=n*a,l=n*a;return o=2*c>=t.w?k(o,t.w-c,c):t.w/2,s=2*l>=t.h?k(s,t.h-l,l):t.h/2,{scale:a,panX:o,panY:s}}function M({viewport:e,onViewportChange:t,maxDepth:n=1/0,minScale:r=S,maxScale:i=C,zoomStep:a=w,showGrid:o=!0,onBackgroundClick:l,onBackgroundContextMenu:d,nodes:f,nodeTypes:p,nodeLayers:m,defaultLayer:h,onNodeCommit:g,onNodeSelect:_,onNodeContextMenu:v,className:y,style:D,children:M,ref:F}){let I=(0,s.useRef)(null),L=(0,s.useRef)(null),R=(0,s.useRef)(a),z=(0,s.useRef)(r),B=(0,s.useRef)(i),V=(0,s.useRef)(Q),[H,U]=(0,s.useState)({w:0,h:0});(0,s.useEffect)(()=>{let e=I.current;if(!e)return;function t(){let t=e.getBoundingClientRect();U({w:t.width,h:t.height})}t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]);let W=(0,s.useRef)(e),G=(0,s.useRef)(new Set),K=(0,s.useCallback)(e=>(G.current.add(e),()=>{G.current.delete(e)}),[]);function q(){G.current.forEach(e=>e())}function ee(e){let t=L.current;t&&(t.style.transform=A(e))}let te=(0,s.useRef)(t);te.current=t;let J=(0,s.useRef)(null);function ne(){J.current!==null&&window.clearTimeout(J.current),J.current=window.setTimeout(()=>{J.current=null,te.current(W.current)},O)}(0,s.useEffect)(()=>()=>{J.current!==null&&window.clearTimeout(J.current)},[]),(0,s.useEffect)(()=>{let t=W.current;(e.scale!==t.scale||e.panX!==t.panX||e.panY!==t.panY)&&(W.current=e,ee(e),q())},[e]);let Y=(0,s.useRef)(null),X=(0,s.useRef)(null);function Z(e){let t=j(e,H,n,r,i);W.current=t,ee(t),q(),ne()}function Q(e){Y.current=e,X.current===null&&(X.current=requestAnimationFrame(()=>{X.current=null;let e=Y.current;Y.current=null,e&&Z(e)}))}(0,s.useEffect)(()=>{R.current=a,z.current=r,B.current=i,V.current=Q}),(0,s.useEffect)(()=>{let e=I.current;if(!e)return;function t(t){if(!e)return;let n=e.getBoundingClientRect(),r=W.current;if(t.ctrlKey||t.metaKey){t.preventDefault();let e=t.clientX-n.left,i=t.clientY-n.top,a=t.deltaY<0?R.current:1/R.current,o=k(r.scale*a,z.current,B.current),s=(e-r.panX)/r.scale,c=(i-r.panY)/r.scale;V.current({scale:o,panX:e-s*o,panY:i-c*o})}else{t.preventDefault();let e=-(t.shiftKey?t.deltaY:t.deltaX),n=-(t.shiftKey?0:t.deltaY);V.current({scale:r.scale,panX:r.panX+e,panY:r.panY+n})}}return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[]);let $=(0,s.useRef)(null);function re(e){return e===I.current||e===L.current}function ie(e){if(!re(e.target))return;e.currentTarget.setPointerCapture(e.pointerId);let t=W.current;$.current={startX:e.clientX,startY:e.clientY,startPanX:t.panX,startPanY:t.panY,moved:!1}}function ae(e){let t=$.current;if(!t)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;!t.moved&&n*n+r*r<T||(!t.moved&&I.current&&(I.current.style.cursor=`grabbing`),t.moved=!0,Q({scale:W.current.scale,panX:t.startPanX+n,panY:t.startPanY+r}))}function oe(e){let t=$.current;t&&(e.currentTarget.releasePointerCapture(e.pointerId),$.current=null,I.current&&(I.current.style.cursor=``),t.moved||l?.())}function se(e){re(e.target)&&d?.(e)}(0,s.useImperativeHandle)(F,()=>({fitToView(e){let t=H;if(t.w===0||t.h===0)return;let a=e??(isFinite(n)?{x:-n,y:-n,w:2*n,h:2*n}:{x:0,y:0,w:0,h:0});if(a.w<=0||a.h<=0)return;let o=k(Math.min(t.w/a.w,t.h/a.h)*E,r,i),s=a.x+a.w/2,c=a.y+a.h/2;Z({scale:o,panX:t.w/2-s*o,panY:t.h/2-c*o})},centerOn(e,t){let n=H,r=W.current;n.w!==0&&n.h!==0&&Z({scale:r.scale,panX:n.w/2-e*r.scale,panY:n.h/2-t*r.scale})},resetViewport(){Z({scale:1,panX:0,panY:0})},zoomBy(e){ce(W.current.scale*e)},zoomToScale(e){ce(e)}}),[H,n,r,i]);function ce(e){let t=H;if(t.w===0||t.h===0)return;let n=W.current,a=k(e,r,i);if(a===n.scale)return;let o=t.w/2,s=t.h/2,c=(o-n.panX)/n.scale,l=(s-n.panY)/n.scale;Z({scale:a,panX:o-c*a,panY:s-l*a})}let le=(0,s.useMemo)(()=>{let e=Object.entries(m??{}).map(([e,t])=>({name:e,config:t})).sort((e,t)=>e.config.index-t.config.index),t=h??e[0]?.name??`default`,n=new Map;for(let e of f??[]){let r=e.layer&&m?.[e.layer]?e.layer:t,i=n.get(r);i?i.push(e):n.set(r,[e])}let r=[],i=new Set;for(let{name:t,config:a}of e)r.push({name:t,config:a,nodes:n.get(t)??[]}),i.add(t);for(let[e,t]of n)i.has(e)||r.push({name:e,config:{index:r.length},nodes:t});return r},[f,m,h]),ue=(0,s.useMemo)(()=>({viewportRef:W,subscribeViewport:K,container:H,maxDepth:n}),[K,H,n]);return(0,c.jsx)(u.Provider,{value:ue,children:(0,c.jsxs)(`div`,{ref:I,className:[`oo-campus`,y].filter(Boolean).join(` `),onPointerDown:ie,onPointerMove:ae,onPointerUp:oe,onContextMenu:se,style:{position:`relative`,width:`100%`,height:`100%`,overflow:`hidden`,background:`var(--oo-color-surface)`,touchAction:`none`,cursor:`default`,...D},children:[o?(0,c.jsx)(P,{}):null,(0,c.jsx)(`div`,{ref:L,className:`oo-campus-world`,style:{position:`absolute`,left:0,top:0,width:0,height:0,transform:A(W.current),transformOrigin:`0 0`},children:le.map(e=>(0,c.jsx)(b,{zoom:e.config.zoom,pan:e.config.pan,zIndex:e.config.index,children:e.nodes.map(e=>{let t=p?.[e.type];return t?(0,c.jsx)(N,{node:e,onCommit:g,onSelect:_,onContextMenu:v,children:(0,c.jsx)(t,{id:e.id,selected:!!e.selected,data:e.data})},e.id):null})},e.name))}),(0,c.jsx)(x,{children:M})]})})}function N({node:e,onCommit:t,onSelect:n,onContextMenu:r,children:i}){return(0,c.jsx)(v,{bounds:e.bounds,selected:e.selected,resizable:e.resizable,movable:e.movable,onCommit:n=>t?.(e.id,n),onPointerDownCapture:()=>{e.selected||n?.(e.id)},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),n?.(e.id),r?.(e.id,t)},children:i})}function P(){let{viewportRef:e,subscribeViewport:t}=d(),{panX:n,panY:r,scale:i}=(0,s.useSyncExternalStore)(t,()=>e.current),a=D*i,o=a<6?0:a>200?.04:Math.min(.12,a/200);if(o<=0)return null;let l=(n%a+a)%a,u=(r%a+a)%a,f=`rgba(128, 128, 128, ${o})`;return(0,c.jsx)(`div`,{className:`oo-campus-grid`,"aria-hidden":!0,style:{position:`absolute`,inset:0,pointerEvents:`none`,backgroundImage:`linear-gradient(to right, ${f} 1px, transparent 1px),linear-gradient(to bottom, ${f} 1px, transparent 1px)`,backgroundSize:`${a}px ${a}px, ${a}px ${a}px`,backgroundPosition:`${l}px ${u}px, ${l}px ${u}px`}})}var F=160,I=110,L=12,R={bottom:12,right:12};function z({nodes:e,onJumpTo:t,width:r=F,height:i=I,padding:a=L,anchor:o=R,className:l,style:u}){let{viewportRef:f,subscribeViewport:p,container:m}=d(),h=(0,s.useSyncExternalStore)(p,()=>f.current);if(m.w===0||m.h===0)return null;let g=1/0,_=1/0,v=-1/0,y=-1/0;for(let t of e)g=Math.min(g,t.bounds.x),_=Math.min(_,t.bounds.y),v=Math.max(v,t.bounds.x+t.bounds.w),y=Math.max(y,t.bounds.y+t.bounds.h);let b=-h.panX/h.scale,x=-h.panY/h.scale,S=b+m.w/h.scale,C=x+m.h/h.scale;isFinite(g)?(g=Math.min(g,b),_=Math.min(_,x),v=Math.max(v,S),y=Math.max(y,C)):(g=b,_=x,v=S,y=C);let w=Math.max(1,v-g),T=Math.max(1,y-_),E=r-a*2,D=i-a*2,O=Math.min(E/w,D/T);function k(e,t){return[a+(e-g)*O,a+(t-_)*O]}function A(e){let n=e.currentTarget.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top;t((r-a)/O+g,(i-a)/O+_)}let[j,M]=k(b,x),N=(S-b)*O,P=(C-x)*O;return(0,c.jsxs)(`div`,{className:[`oo-campus-mappa`,l].filter(Boolean).join(` `),onClick:A,onPointerDown:e=>e.stopPropagation(),style:{position:`absolute`,...o,width:r,height:i,pointerEvents:`auto`,background:`rgba(20, 20, 24, 0.75)`,backdropFilter:`blur(6px)`,WebkitBackdropFilter:`blur(6px)`,borderRadius:`var(--oo-radius-sm, 4px)`,boxShadow:`0 6px 20px rgba(0, 0, 0, 0.32)`,cursor:`crosshair`,zIndex:40,overflow:`hidden`,...u},children:[e.map(e=>{let[t,r]=k(e.bounds.x,e.bounds.y),i=Math.max(2,e.bounds.w*O),a=Math.max(2,e.bounds.h*O);return(0,c.jsx)(`div`,{title:e.id,style:{position:`absolute`,left:t,top:r,width:i,height:a,background:n(e.color,.85),border:e.selected?`1px solid rgba(255, 255, 255, 0.9)`:`1px solid rgba(255, 255, 255, 0.18)`,borderRadius:2,boxSizing:`border-box`}},e.id)}),(0,c.jsx)(`div`,{style:{position:`absolute`,left:j,top:M,width:N,height:P,border:`1px solid rgba(255, 255, 255, 0.9)`,background:`rgba(255, 255, 255, 0.06)`,pointerEvents:`none`,boxSizing:`border-box`}})]})}function B({selected:e,data:t}){let{mount:n,renderMount:i,onClose:s}=t,l=r().components.get(n.component.component)?.props,u=o(n,n.key),d=n.props?.icon??l?.icon,f=n.props?.color??l?.color;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`div`,{className:`oo-spatial-card__header`,"data-campus-drag":!0,"data-color":f,style:{padding:`var(--oo-spacing-xs) var(--oo-spacing-sm)`,borderBottom:`1px solid var(--oo-color-border)`,fontSize:`var(--oo-font-size-xs)`,color:e?`inherit`:`var(--oo-color-muted)`,background:e?`var(--oo-color-active)`:`var(--oo-color-surface)`,display:`flex`,justifyContent:`space-between`,alignItems:`center`,cursor:`grab`,userSelect:`none`,touchAction:`none`,flex:`0 0 auto`},children:[(0,c.jsxs)(`span`,{title:u,style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0},children:[d?(0,c.jsx)(`span`,{className:`oo-spatial-card__icon`,"aria-hidden":!0,children:d}):null,(0,c.jsx)(`span`,{className:`oo-spatial-card__title`,style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:u})]}),(0,c.jsx)(`span`,{onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),s()},title:`Close`,style:{cursor:`pointer`},children:a.closePanel})]}),(0,c.jsx)(`div`,{className:`oo-spatial-card__body`,style:{flex:1,overflow:`auto`,minHeight:0},children:i(n)})]})}var V=960,H=768,U=36,W=40,G=16,K=8e3;function q(e,t,n){if(n===`grid`&&t>0){let n=Math.max(1,Math.floor(Math.sqrt(t))),r=e%n,i=Math.floor(e/n);return{x:G+r*976,y:G+i*784,w:V,h:H}}return{x:W+e*U,y:W+e*U,w:V,h:H}}var ee={scale:1,panX:0,panY:0},te={},J=1.1,ne={card:B},Y=`input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="textbox"], [role="combobox"], [role="listbox"], [role="menu"], [role="dialog"], [role="alertdialog"]`;function X({surface:e,mounts:t,state:n,setState:a,renderMount:o,renderEmpty:u,onClose:d,onActivate:f}){let p=r(),[m,h]=(0,s.useState)(null),[g,_]=(0,s.useState)(null),v=n.spatial?.arrangement??`cascade`,y=n.spatial?.bounds??te,b=n.spatial?.selectedKey,x=n.spatial?.viewport??ee,S=(0,s.useRef)({arrangement:v,bounds:y,selectedKey:b,viewport:x});S.current={arrangement:v,bounds:y,selectedKey:b,viewport:x};function C(e){let t={...S.current,...e};S.current=t,a({spatial:t})}function w(e){C({viewport:e})}let T=(0,s.useMemo)(()=>{let e={};return t.forEach((n,r)=>{v===`manual`?e[n.key]=y[n.key]??q(r,t.length,`cascade`):e[n.key]=q(r,t.length,v)}),e},[t,v,y]);function E(e){if(e===`manual`){let e={};for(let n of t)e[n.key]=T[n.key];C({arrangement:`manual`,bounds:e})}else C({arrangement:e,bounds:{}})}function D(e,n){if(S.current.arrangement!==`manual`){let r={};for(let e of t)r[e.key]=T[e.key];r[e]=n,C({arrangement:`manual`,bounds:r,selectedKey:e});return}C({bounds:{...S.current.bounds,[e]:n},selectedKey:e})}let O=(0,s.useRef)(void 0);function k(e){S.current.selectedKey!==e&&(C({selectedKey:e}),O.current=e,e&&f(e))}let A=(0,s.useRef)(null);function j(){if(t.length===0){A.current?.fitToView();return}let e=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of t){let t=T[a.key];t&&(e=Math.min(e,t.x),n=Math.min(n,t.y),r=Math.max(r,t.x+t.w),i=Math.max(i,t.y+t.h))}isFinite(e)&&A.current?.fitToView({x:e,y:n,w:r-e,h:i-n})}function N(){let e=b;if(!e)return;let t=T[e];t&&A.current?.centerOn(t.x+t.w/2,t.y+t.h/2)}function P(e){let t=T[e];t&&A.current?.centerOn(t.x+t.w/2,t.y+t.h/2)}function F(e){let n=t.findIndex(t=>t.key===e);n<0||D(e,q(n,t.length,`cascade`))}let I=(0,s.useRef)({fitToView:j,resetViewport:()=>A.current?.resetViewport(),centerOnSelected:N,setArrangement:E,centerOnCard:P,resetBoundsForCard:F});I.current={fitToView:j,resetViewport:()=>A.current?.resetViewport(),centerOnSelected:N,setArrangement:E,centerOnCard:P,resetBoundsForCard:F};let L=n.activeContainerKey,R=L!==void 0&&t.some(e=>e.key===L);(0,s.useEffect)(()=>{if(L!==void 0&&R){if(O.current===L){O.current=void 0;return}S.current.selectedKey!==L&&C({selectedKey:L}),I.current.centerOnCard(L)}},[L,R]);let B=(0,s.useRef)(null),V=(0,s.useRef)(d);V.current=d,(0,s.useEffect)(()=>{function e(e){if(e.key!==`Escape`||e.defaultPrevented||e.repeat||e.ctrlKey||e.altKey||e.metaKey||e.shiftKey)return;let t=S.current.selectedKey;if(t===void 0)return;let n=e.target instanceof Element?e.target:null;(n===null||n===document.body||B.current?.contains(n))&&(n?.closest(Y)||(e.preventDefault(),V.current(t)))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,s.useEffect)(()=>{let e=[p.commands.register({id:`surface.fitToView`,title:`Fit to view`,description:`Frame all cards`,icon:`⛶`,color:`blue`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial"`,run:e=>{I.current.fitToView(),e.host?.closeMenu()}}),p.commands.register({id:`surface.resetZoom`,title:`Reset zoom`,icon:`↺`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial"`,run:e=>{I.current.resetViewport(),e.host?.closeMenu()}}),p.commands.register({id:`surface.centerSelected`,title:`Center on selected`,icon:`◎`,color:`teal`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/hasSelection == true`,run:e=>{I.current.centerOnSelected(),e.host?.closeMenu()}}),p.commands.register({id:`surface.setArrangement.cascade`,title:`Arrange: Cascade`,icon:`▤`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/arrangement != "cascade"`,run:e=>{I.current.setArrangement(`cascade`),e.host?.closeMenu()}}),p.commands.register({id:`surface.setArrangement.grid`,title:`Arrange: Grid`,icon:`▦`,color:`violet`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/arrangement != "grid"`,run:e=>{I.current.setArrangement(`grid`),e.host?.closeMenu()}}),p.commands.register({id:`surface.setArrangement.manual`,title:`Arrange: Manual`,icon:`✥`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/arrangement != "manual"`,run:e=>{I.current.setArrangement(`manual`),e.host?.closeMenu()}}),p.commands.register({id:`card.centerOn`,title:`Center on this card`,icon:`◎`,color:`teal`,slots:[`card:context`],when:`$/surface/layoutId == "spatial"`,run:e=>{let t=e.store.get(`$/tab/key`);t&&(I.current.centerOnCard(t),e.host?.closeMenu())}}),p.commands.register({id:`card.resetBounds`,title:`Reset bounds`,description:`Recompute size + position`,icon:`↺`,slots:[`card:context`],when:`$/surface/layoutId == "spatial"`,run:e=>{let t=e.store.get(`$/tab/key`);t&&(I.current.resetBoundsForCard(t),e.host?.closeMenu())}})];return()=>{for(let t of e)t.dispose()}},[p]);let H=(0,s.useMemo)(()=>t.map(e=>({id:e.key,type:`card`,bounds:T[e.key],selected:e.key===b,data:{mount:e,renderMount:o,onClose:()=>d(e.key)}})),[t,T,b,o,d]),U=t.flatMap(e=>{let t=T[e.key];if(!t)return[];let n=p.components.get(e.component.component)?.opens?.color;return[{id:e.key,bounds:t,color:n,selected:e.key===b}]});function W(e){e.preventDefault(),h({x:e.clientX,y:e.clientY})}return t.length===0?u?.()??null:(0,c.jsxs)(`div`,{ref:B,className:`oo-layout oo-layout--spatial`,style:{display:`flex`,flexDirection:`column`,height:`100%`},children:[(0,c.jsxs)(l,{className:`oo-spatial-toolbar`,children:[(0,c.jsxs)(`label`,{style:{display:`flex`,gap:6,alignItems:`center`},children:[(0,c.jsx)(`span`,{style:{color:`var(--oo-color-muted)`},children:`arrange:`}),(0,c.jsxs)(`select`,{value:v,onChange:e=>E(e.target.value),children:[(0,c.jsx)(`option`,{value:`cascade`,children:`cascade`}),(0,c.jsx)(`option`,{value:`grid`,children:`grid`}),(0,c.jsx)(`option`,{value:`manual`,children:`manual`})]})]}),(0,c.jsx)(`button`,{type:`button`,onClick:()=>A.current?.zoomBy(1/J),title:`Zoom out`,"aria-label":`Zoom out`,children:`−`}),(0,c.jsx)($,{value:x.scale,onCommit:e=>A.current?.zoomToScale(e)}),(0,c.jsx)(`button`,{type:`button`,onClick:()=>A.current?.zoomBy(J),title:`Zoom in`,"aria-label":`Zoom in`,children:`+`}),(0,c.jsx)(`button`,{type:`button`,onClick:j,title:`Fit all cards to viewport`,children:`Fit`}),(0,c.jsx)(`button`,{type:`button`,onClick:()=>A.current?.resetViewport(),title:`Reset zoom + pan`,children:`Reset`}),(0,c.jsxs)(`span`,{style:{color:`var(--oo-color-muted)`,fontSize:`var(--oo-font-size-xs)`},children:[`drag header to move · drag edges to resize · ctrl+wheel zooms · drag empty area to pan · first drag locks to `,(0,c.jsx)(`em`,{children:`manual`})]})]}),(0,c.jsx)(`div`,{style:{flex:1,minHeight:0,position:`relative`},children:(0,c.jsx)(M,{ref:A,viewport:x,onViewportChange:w,maxDepth:K,nodes:H,nodeTypes:ne,onNodeCommit:(e,t)=>D(e,t),onNodeSelect:e=>k(e),onNodeContextMenu:(e,t)=>_({x:t.clientX,y:t.clientY,key:e}),onBackgroundClick:()=>k(void 0),onBackgroundContextMenu:W,children:(0,c.jsx)(z,{nodes:U,onJumpTo:(e,t)=>A.current?.centerOn(e,t)})})}),b?(0,c.jsx)(Z,{mount:t.find(e=>e.key===b),selectedKey:b,onCenter:()=>P(b),onReset:()=>F(b),onClose:()=>d(b),onDeselect:()=>k(void 0)}):null,m?(0,c.jsx)(i,{x:m.x,y:m.y,onClose:()=>h(null),spec:{query:{slot:`surface:context`},footerHints:!0},context:{"$/surface/name":e,"$/surface/layoutId":`spatial`,"$/surface/mountCount":t.length,"$/surface/closedHistory":0,"$/surface/arrangement":v,"$/surface/hasSelection":!!b}}):null,g?(0,c.jsx)(i,{x:g.x,y:g.y,onClose:()=>_(null),spec:{query:{slot:`card:context`},footerHints:!0},context:{"$/surface/name":e,"$/surface/layoutId":`spatial`,"$/surface/mountCount":t.length,"$/surface/closedHistory":0,"$/surface/arrangement":v,"$/tab/key":g.key,"$/tab/index":t.findIndex(e=>e.key===g.key),"$/tab/canSplit":!1,"$/tab/canMove":!1,"$/tab/isActive":g.key===b,"$/tab/isPinned":!1,"$/group/tabCount":t.length}}):null]})}function Z({mount:e,selectedKey:t,onCenter:n,onReset:r,onClose:i,onDeselect:a}){let s=o(e,t);return(0,c.jsxs)(`div`,{className:`oo-spatial-footer`,role:`toolbar`,"aria-label":`Selected card actions`,style:{position:`absolute`,bottom:16,left:`50%`,transform:`translateX(-50%)`,display:`flex`,alignItems:`center`,gap:4,padding:`6px 8px`,background:`rgba(20, 20, 24, 0.78)`,backdropFilter:`blur(8px)`,WebkitBackdropFilter:`blur(8px)`,borderRadius:9999,color:`#fff`,fontSize:`var(--oo-font-size-xs)`,boxShadow:`0 6px 20px rgba(0, 0, 0, 0.32)`,pointerEvents:`auto`,zIndex:50},onPointerDown:e=>e.stopPropagation(),children:[(0,c.jsx)(`span`,{style:{padding:`0 8px`,color:`rgba(255, 255, 255, 0.8)`,maxWidth:220,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:s,children:s}),(0,c.jsx)(Q,{icon:`◎`,label:`Center on this card`,onClick:n}),(0,c.jsx)(Q,{icon:`↺`,label:`Reset bounds`,onClick:r}),(0,c.jsx)(Q,{icon:`✕`,label:`Close`,onClick:i,variant:`danger`}),(0,c.jsx)(Q,{icon:`⊗`,label:`Deselect`,onClick:a})]})}function Q({icon:e,label:t,onClick:n,variant:r}){return(0,c.jsx)(`button`,{type:`button`,onClick:n,title:t,"aria-label":t,style:{width:28,height:28,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,border:`none`,borderRadius:`50%`,background:`rgba(255, 255, 255, 0.08)`,color:r===`danger`?`rgb(255, 130, 130)`:`#fff`,cursor:`pointer`,font:`inherit`,lineHeight:1},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255, 255, 255, 0.18)`},onMouseLeave:e=>{e.currentTarget.style.background=`rgba(255, 255, 255, 0.08)`},children:e})}function $({value:e,onCommit:t}){let n=Math.round(e*100),[r,i]=(0,s.useState)(`${n}`),[a,o]=(0,s.useState)(!1);!a&&r!==`${n}`&&i(`${n}`);function l(){let e=parseInt(r,10);Number.isFinite(e)&&e>0?t(e/100):i(`${n}`),o(!1)}return(0,c.jsx)(`input`,{type:`text`,inputMode:`numeric`,value:a?r:`${n}%`,onFocus:e=>{o(!0),i(`${n}`),requestAnimationFrame(()=>e.target.select?.())},onChange:e=>i(e.target.value.replace(/[^\d]/g,``)),onBlur:l,onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),e.target.blur()):e.key===`Escape`&&(e.preventDefault(),i(`${n}`),o(!1),e.target.blur())},title:`Zoom percent`,"aria-label":`Zoom percent`,style:{width:56,textAlign:`center`,font:`inherit`,padding:`2px 4px`,border:`1px solid var(--oo-color-border)`,borderRadius:`var(--oo-radius-sm, 4px)`,background:`var(--oo-color-canvas)`,color:`inherit`}})}export{X as SpatialLayout};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./ContextMenu-BV1gdog0.js";import{r as i}from"./Icon-CIQ7doud.js";import{t as a}from"./Divisor-hrrJK3bw.js";import{t as o}from"./MountTitle-Bx_Vo8tF.js";var s=e(),c=t(),l=.05,u=`application/x-scena-split-index`;function d({surface:e,mounts:t,state:d,setState:p,renderMount:m,renderEmpty:h,onClose:g,onReorder:_}){let v=n(),y=(0,c.useRef)(null),b=d.split?.order??[],x=new Set(b),S=b.map(e=>t.find(t=>t.key===e)).filter(e=>!!e),C=t.filter(e=>!x.has(e.key)),w=[...S,...C],T=w.length>0?1/w.length:1,E=(()=>{let e=d.split?.ratios;return e&&e.length===w.length?e:w.map(()=>T)})();function D(e,t){let n=t;if(w.length<2)return;let r=E.slice(0,n).reduce((e,t)=>e+t,0),i=(E[n]??0)+(E[n+1]??0);if(i<=0)return;let a=f(e-r,l,i-l),o=i-a;o<l&&(o=l,a=i-o);let s=[...E];s[n]=a,s[n+1]=o,p({split:{order:d.split?.order,ratios:s,collapsed:d.split?.collapsed}})}let[O,k]=(0,c.useState)(null),[A,j]=(0,c.useState)(null),[M,N]=(0,c.useState)(null);function P(e,t,n){e.preventDefault(),e.stopPropagation(),j({x:e.clientX,y:e.clientY,key:t,idx:n})}function F(e){e.target===e.currentTarget&&(e.preventDefault(),N({x:e.clientX,y:e.clientY}))}let I={"$/surface/name":e,"$/surface/layoutId":`split`,"$/surface/mountCount":t.length,"$/surface/closedHistory":0,"$/tab/canSplit":!1,"$/tab/canMove":!1,"$/group/canClose":!1,"$/group/canMaximize":!1};function L(e,t){e.dataTransfer.setData(u,String(t)),e.dataTransfer.effectAllowed=`move`}function R(e,t){e.dataTransfer.types.includes(u)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,k(t))}function z(){k(null)}function B(e,t){if(!e.dataTransfer.types.includes(u))return;e.preventDefault();let n=Number(e.dataTransfer.getData(u));k(null),Number.isFinite(n)&&n!==t&&_(n,t)}return w.length===0?h?.()??null:(0,s.jsxs)(`div`,{ref:y,className:`oo-layout oo-layout--split`,style:{display:`flex`,flexDirection:`row`,height:`100%`,minHeight:0},onContextMenu:F,children:[w.map((e,t)=>{let n=v.components.get(e.component.component)?.props,r=e.props?.color??n?.color;return(0,s.jsxs)(c.Fragment,{children:[(0,s.jsxs)(`div`,{"data-pane-index":t,"data-drag-over":O===t,"data-color":r,className:`oo-split-pane`,style:{flex:E[t]??T,minWidth:0,overflow:`hidden`,display:`flex`,flexDirection:`column`},children:[(0,s.jsxs)(`div`,{className:`oo-split-pane-header`,draggable:!0,onDragStart:e=>L(e,t),onDragOver:e=>R(e,t),onDragLeave:z,onDrop:e=>B(e,t),onContextMenu:n=>P(n,e.key,t),style:{flex:`0 0 auto`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`var(--oo-spacing-xs) var(--oo-spacing-sm)`,background:`var(--oo-color-surface)`,borderBottom:`1px solid var(--oo-color-border)`,fontSize:`var(--oo-font-size-xs)`,color:`var(--oo-color-muted)`,cursor:`grab`,userSelect:`none`},children:[(0,s.jsx)(o,{mount:e,fallback:e.key,iconClassName:`oo-split-pane-header__icon`,titleClassName:`oo-split-pane-header__title`}),(0,s.jsx)(`span`,{onClick:t=>{t.stopPropagation(),g(e.key)},title:`Close`,style:{cursor:`pointer`},children:i.closePanel})]}),(0,s.jsx)(`div`,{style:{flex:1,overflow:`auto`,minHeight:0},children:m(e)})]}),t<w.length-1?(0,s.jsx)(a,{id:t,direction:`row`,containerRef:y,onCommit:D}):null]},e.key)}),A?(0,s.jsx)(r,{x:A.x,y:A.y,onClose:()=>j(null),spec:{query:{slot:`tab:context`},footerHints:!0},context:{...I,"$/tab/key":A.key,"$/tab/index":A.idx,"$/tab/isActive":!0,"$/tab/isPinned":!1,"$/group/tabCount":t.length}}):null,M?(0,s.jsx)(r,{x:M.x,y:M.y,onClose:()=>N(null),spec:{query:{slot:`surface:context`},footerHints:!0},context:I}):null]})}function f(e,t,n){return Math.max(t,Math.min(n,e))}export{d as SplitLayout};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./ContextMenu-BV1gdog0.js";import{r as i}from"./Icon-CIQ7doud.js";import{n as a,t as o}from"./MountTitle-Bx_Vo8tF.js";var s=e(),c=t();function l({mounts:e,state:t,setState:o,title:l,icon:u,color:d}){let f=n(),p=t.split?.order??[],m=new Set(p),h=p.map(t=>e.find(e=>e.key===t)).filter(e=>!!e),g=e.filter(e=>!m.has(e.key)),_=[...h,...g],v=new Set(t.stack?.hidden??[]),[y,b]=(0,c.useState)(null);function x(e){o({stack:{...t.stack,hidden:[...e]}})}function S(e){let t=new Set(v);t.has(e)?t.delete(e):t.add(e),x(t)}function C(e){e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();b({x:t.right,y:t.bottom+2})}return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(`div`,{className:`oo-stack-container-header`,"data-color":d,style:{flex:`0 0 auto`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`var(--oo-spacing-xs) var(--oo-spacing-sm)`,background:`var(--oo-color-surface)`,borderBottom:`1px solid var(--oo-color-border)`,fontSize:`var(--oo-font-size-xs)`,textTransform:`uppercase`,letterSpacing:`0.06em`,color:`var(--oo-color-muted)`,userSelect:`none`,minWidth:0,minHeight:32},children:[(0,s.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6},children:[u?(0,s.jsx)(`span`,{className:`oo-stack-container-header__icon`,"aria-hidden":!0,children:u}):null,(0,s.jsx)(`span`,{className:`oo-stack-container-header__title`,children:l})]}),(0,s.jsx)(`button`,{type:`button`,className:`oo-stack-container-header__overflow`,title:`Toggle panes`,"aria-label":`Toggle panes`,onClick:C,style:{background:`transparent`,border:`none`,color:`var(--oo-color-muted)`,cursor:`pointer`,font:`inherit`,padding:`0 4px`},children:i.moreHoriz})]}),y?(0,s.jsx)(r,{x:y.x,y:y.y,onClose:()=>b(null),spec:{footerHints:!0,items:_.map(e=>{let t=f.components.get(e.component.component)?.props,n=!v.has(e.key);return{title:a(f,e),icon:e.props?.icon??t?.icon,color:e.props?.color??t?.color,active:n,onSelect:t=>{S(e.key),t.closeMenu()}}})}}):null]})}var u=`application/x-scena-stack-index`;function d({surface:e,mounts:t,state:a,setState:d,renderMount:f,renderEmpty:p,onClose:m,onReorder:h}){let g=n(),_=a.split?.order??[],v=new Set(_),y=_.map(e=>t.find(t=>t.key===e)).filter(e=>!!e),b=t.filter(e=>!v.has(e.key)),x=[...y,...b],S=new Set(a.stack?.hidden??[]),C=x.filter(e=>!S.has(e.key)),w=a.stack?.container,T=new Set(a.split?.collapsed??[]),[E,D]=(0,c.useState)(null);function O(e){let t=new Set(T);t.has(e)?t.delete(e):t.add(e),d({split:{order:a.split?.order,ratios:a.split?.ratios,collapsed:[...t]}})}function k(e,t){e.dataTransfer.setData(u,String(t)),e.dataTransfer.effectAllowed=`move`}function A(e,t){e.dataTransfer.types.includes(u)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,D(t))}function j(){D(null)}function M(e,t){if(!e.dataTransfer.types.includes(u))return;e.preventDefault();let n=Number(e.dataTransfer.getData(u));D(null),Number.isFinite(n)&&n!==t&&h(n,t)}let[N,P]=(0,c.useState)(null),[F,I]=(0,c.useState)(null);function L(e,t,n){e.preventDefault(),e.stopPropagation(),P({x:e.clientX,y:e.clientY,key:t,idx:n})}function R(e){e.target===e.currentTarget&&(e.preventDefault(),I({x:e.clientX,y:e.clientY}))}let z={"$/surface/name":e,"$/surface/layoutId":`stack`,"$/surface/mountCount":t.length,"$/surface/closedHistory":0,"$/tab/canSplit":!1,"$/tab/canMove":t.length>1,"$/group/canClose":!1,"$/group/canMaximize":!1};return C.length===0?p?.()??null:(0,s.jsxs)(`div`,{className:`oo-layout oo-layout--stack`,style:{display:`flex`,flexDirection:`column`,height:`100%`,minHeight:0},onContextMenu:R,children:[(0,s.jsx)(l,{title:w?.title??`Details`,icon:w?.icon,color:w?.color,mounts:t,state:a,setState:d}),C.map((e,t)=>{let n=T.has(e.key),r=g.components.get(e.component.component)?.props,a=e.props?.color??r?.color;return(0,s.jsxs)(`div`,{className:`oo-stack-section`,"data-collapsed":n,"data-drag-over":E===t,"data-color":a,style:{flex:n?`0 0 auto`:1,minHeight:0,display:`flex`,flexDirection:`column`,borderBottom:`1px solid var(--oo-color-border)`},children:[(0,s.jsxs)(`div`,{className:`oo-stack-header`,draggable:!0,onDragStart:e=>k(e,t),onDragOver:e=>A(e,t),onDragLeave:j,onDrop:e=>M(e,t),onClick:()=>O(e.key),onContextMenu:n=>L(n,e.key,t),style:{cursor:`grab`,padding:`var(--oo-spacing-xs) var(--oo-spacing-sm)`,background:`var(--oo-color-surface)`,fontSize:`var(--oo-font-size-xs)`,textTransform:`uppercase`,color:`var(--oo-color-muted)`,display:`flex`,justifyContent:`space-between`,alignItems:`center`,userSelect:`none`},children:[(0,s.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6},children:[(0,s.jsx)(`span`,{"aria-hidden":!0,children:n?`▶`:`▼`}),(0,s.jsx)(o,{mount:e,fallback:e.key,iconClassName:`oo-stack-section__icon`,titleClassName:`oo-stack-section__title`})]}),(0,s.jsx)(`span`,{onClick:t=>{t.stopPropagation(),m(e.key)},title:`Close`,style:{cursor:`pointer`},children:i.closePanel})]}),n?null:(0,s.jsx)(`div`,{style:{flex:1,overflow:`auto`,minHeight:0},children:f(e)})]},e.key)}),N?(0,s.jsx)(r,{x:N.x,y:N.y,onClose:()=>P(null),spec:{query:{slot:`tab:context`},footerHints:!0},context:{...z,"$/tab/key":N.key,"$/tab/index":N.idx,"$/tab/isActive":!0,"$/tab/isPinned":!1,"$/group/tabCount":t.length}}):null,F?(0,s.jsx)(r,{x:F.x,y:F.y,onClose:()=>I(null),spec:{query:{slot:`surface:context`},footerHints:!0},context:z}):null]})}export{d as StackLayout};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{n as t}from"./ScenaProvider-6A3TJumQ.js";import{t as n}from"./Button-_R1oktDz.js";import{b as r}from"./index-yhQX4tVS.js";var i=e();function a(){let e=t();return(0,i.jsxs)(`div`,{className:`web-start`,children:[(0,i.jsx)(r,{size:72}),(0,i.jsx)(`p`,{className:`web-note`,children:`Start a session, or open one from the list.`}),(0,i.jsx)(n,{label:`New session`,variant:`primary`,onClick:()=>void e.commands.execute(`ahp.newSession`)})]})}export{a as default};
@@ -0,0 +1 @@
1
+ .web-start{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100%;padding:24px;display:flex}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./ContextMenu-BV1gdog0.js";import{r as i}from"./Icon-CIQ7doud.js";import{TabTitle as a}from"./TabPanelLayout-B4DWG6Zm.js";var o=e(),s=t(),c=`application/x-scena-tab-index`;function l({surface:e,mounts:t,state:l,renderMount:u,renderEmpty:d,onActivate:f,onClose:p,onReorder:m}){let h=n(),g=l.split?.order??[],_=new Set(g),v=g.map(e=>t.find(t=>t.key===e)).filter(e=>!!e),y=t.filter(e=>!_.has(e.key)),b=[...v,...y],x=b.find(e=>e.key===l.activeContainerKey)??b[b.length-1],S=new Set(l.split?.pinned??[]),C=x?h.commands.list({slot:`view/title`,enabled:!0}):[],w=x?.component.component,T={"$/surface/name":e,"$/tab/key":x?.key,"$/tab/component":typeof w==`string`?w:void 0},E=h.commands.list({slot:`surface/title`}).filter(e=>e.when===void 0||h.when.evaluate(e.when,T)),D=t=>{h.store.set(`$/surface/name`,e),h.store.set(`$/tab/key`,x?.key),h.commands.execute(t)},[O,k]=(0,s.useState)(null),[A,j]=(0,s.useState)(null),[M,N]=(0,s.useState)(null),[P,F]=(0,s.useState)(null),I=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=I.current;if(!e)return;function t(t){t.deltaY!==0&&(t.preventDefault(),e.scrollLeft+=t.deltaY)}return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[]);function L(e,t,n){e.preventDefault(),e.stopPropagation(),j({x:e.clientX,y:e.clientY,tabKey:t,tabIdx:n})}function R(e){let t=e.currentTarget.getBoundingClientRect();N({x:t.right,y:t.bottom+2})}function z(e){e.target===e.currentTarget&&(e.preventDefault(),F({x:e.clientX,y:e.clientY}))}function B(e,t){e.dataTransfer.setData(c,String(t)),e.dataTransfer.effectAllowed=`move`}function V(e,t){e.dataTransfer.types.includes(c)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,k(t))}function H(){k(null)}function U(e,t){if(!e.dataTransfer.types.includes(c))return;e.preventDefault();let n=Number(e.dataTransfer.getData(c));k(null),Number.isFinite(n)&&n!==t&&m(n,t)}let W={"$/tab/canSplit":!1,"$/tab/canMove":!1,"$/group/canClose":!1,"$/group/canMaximize":!1,"$/surface/name":e,"$/surface/layoutId":`tab`,"$/surface/mountCount":t.length,"$/surface/closedHistory":0},G=A?b.find(e=>e.key===A.tabKey):void 0,K=G?h.mountMenus.collect(`tab:context`,G):void 0;return(0,o.jsxs)(`div`,{className:`oo-layout oo-layout--tab`,style:{display:`flex`,flexDirection:`column`,height:`100%`},children:[(0,o.jsxs)(`div`,{className:`tab-bar`,children:[(0,o.jsx)(`div`,{className:`tab-bar__strip`,ref:I,children:b.map((t,n)=>{let r=S.has(t.key);return(0,o.jsx)(a,{resourceKey:t.key,m:t,idx:n,isPinned:r,isActive:t===x,dragOverTab:O,onDragStart:e=>B(e,n),onDragOver:e=>V(e,n),onDragLeave:H,onDrop:e=>U(e,n),onClick:()=>f(t.key),onContextMenu:e=>L(e,t.key,n),onClose:e=>{e.stopPropagation(),p(t.key)},onUnpin:n=>{n.stopPropagation(),h.store.set(`$/tab/key`,t.key),h.store.set(`$/surface/name`,e),h.commands.execute(`tab.unpin`)}},t.key)})}),(0,o.jsxs)(`div`,{className:`tab-bar__extras`,children:[C.map((e,t)=>{let n=typeof e.title==`function`?e.title():e.title;return(0,o.jsxs)(`button`,{onClick:()=>h.commands.execute(e.id),title:String(n),children:[e.icon?`${e.icon} `:``,String(n)]},t)}),E.map(e=>{let t=String(typeof e.title==`function`?e.title():e.title);return(0,o.jsx)(`button`,{onClick:()=>D(e.id),title:t,"aria-label":t,children:e.icon??t},e.id)}),(0,o.jsx)(`button`,{className:`tab-bar__more`,title:`Group actions`,"aria-label":`Group actions`,onClick:R,children:i.moreHoriz})]})]}),(0,o.jsx)(`div`,{style:{flex:1,minHeight:0,position:`relative`},onContextMenu:z,children:b.length===0?d?.()??null:b.map(e=>(0,o.jsx)(`div`,{className:`oo-layout__mount`,"data-active":e===x||void 0,style:{height:`100%`,overflow:`auto`,display:e===x?`block`:`none`},children:u(e)},e.key))}),A?(0,o.jsx)(r,{x:A.x,y:A.y,onClose:()=>j(null),spec:{query:{slot:`tab:context`},extraItems:K,footerHints:!0},context:{...W,"$/tab/key":A.tabKey,"$/tab/index":A.tabIdx,"$/tab/isActive":A.tabKey===x?.key,"$/tab/isPinned":S.has(A.tabKey),"$/group/tabCount":b.length}}):null,M?(0,o.jsx)(r,{x:M.x,y:M.y,onClose:()=>N(null),spec:{query:{slot:`tab-group:context`},footerHints:!0},context:{...W,"$/group/tabCount":b.length}}):null,P?(0,o.jsx)(r,{x:P.x,y:P.y,onClose:()=>F(null),spec:{query:{slot:`surface:context`},footerHints:!0},context:W}):null]})}export{l as TabLayout};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./colors-BieSUSt7.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./ContextMenu-BV1gdog0.js";import{r as a}from"./Icon-CIQ7doud.js";import{t as o}from"./Divisor-hrrJK3bw.js";import{t as s}from"./useStoreLabel-BuZT1So6.js";var c=e(),l=t(),u=`application/x-scena-tab-panel`,d=.2,f=.05;function p(){return`g_${Math.random().toString(36).slice(2,10)}`}function m(e,t){return{kind:`leaf`,id:p(),tabs:e,activeKey:t}}function h(e,t){if(e.kind===`leaf`){for(let n of e.tabs)t.add(n);return}h(e.first,t),h(e.second,t)}function g(e,t){if(e.kind===`leaf`){t.push(e);return}g(e.first,t),g(e.second,t)}function _(e,t){if(e.kind===`leaf`){let n=e.tabs.filter(e=>t.has(e)),r=e.activeKey&&t.has(e.activeKey)?e.activeKey:n[0];return{...e,tabs:n,activeKey:r}}return{...e,first:_(e.first,t),second:_(e.second,t)}}function v(e,t){if(e.kind===`leaf`)return t(e);let n=v(e.first,t),r=v(e.second,t);return n&&r?{...e,first:n,second:r}:n??r}function y(e,t,n){return e.kind===`leaf`?e.id===t?n:e:{...e,first:y(e.first,t,n),second:y(e.second,t,n)}}function b(e,t,n){return e.kind===`leaf`?e:t(e)?{...e,...n}:{...e,first:b(e.first,t,n),second:b(e.second,t,n)}}function x(e,t){if(e.kind===`leaf`){if(t.has(e.id)){let n=p();return t.add(n),{...e,id:n}}return t.add(e.id),e}return{...e,first:x(e.first,t),second:x(e.second,t)}}function S(e,t,n){let r=new Set(t),i=e?x(_(e,r),new Set):m([...t],n),a=new Set;h(i,a);let o=t.filter(e=>!a.has(e));if(o.length>0){let e=[];g(i,e);let t=n&&e.find(e=>e.tabs.includes(n))||e.find(e=>e.tabs.length>0)||e[0];if(t){let e=n&&o.includes(n)?n:o[o.length-1];i=y(i,t.id,{...t,tabs:[...t.tabs,...o],activeKey:e})}}if(n){let e=v(i,e=>e.tabs.includes(n)&&e.activeKey!==n?{...e,activeKey:n}:e);e&&(i=e)}return{tree:i}}function C(e,t){return e===t?!0:!e||!t||e.kind!==t.kind?!1:e.kind===`leaf`&&t.kind===`leaf`?e.id===t.id&&e.activeKey===t.activeKey&&e.tabs.length===t.tabs.length&&e.tabs.every((e,n)=>e===t.tabs[n]):e.kind===`split`&&t.kind===`split`&&e.direction===t.direction&&(e.ratio??.5)===(t.ratio??.5)&&C(e.first,t.first)&&C(e.second,t.second)}function w({leaf:e,ctx:t}){let n=r(),o=e.activeKey??e.tabs[0],[s,f]=(0,l.useState)(null),[p,m]=(0,l.useState)(null),h=(0,l.useRef)(null),g=(0,l.useRef)(null);(0,l.useEffect)(()=>{let e=g.current;if(!e)return;function t(t){t.deltaY!==0&&(t.preventDefault(),e.scrollLeft+=t.deltaY)}return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[]),(0,l.useEffect)(()=>{let e=()=>{m(null),f(null)};return window.addEventListener(`dragend`,e),window.addEventListener(`drop`,e),()=>{window.removeEventListener(`dragend`,e),window.removeEventListener(`drop`,e)}},[]);function _(n){let r=v(t.tree,t=>t.id===e.id?{...t,activeKey:n}:t);r&&t.commit(r),t.onActivate(n)}function y(t,n){let r={sourceLeafId:e.id,tabKey:n};t.dataTransfer.setData(u,JSON.stringify(r)),t.dataTransfer.effectAllowed=`move`}function b(e,t){e.dataTransfer.types.includes(u)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,f(t))}function x(){f(null)}function S(n,r){if(!n.dataTransfer.types.includes(u))return;n.preventDefault(),f(null);let i=E(n);i&&O(t,i,e.id,r)}function C(e){let t=h.current;if(!t)return null;let n=t.getBoundingClientRect();if(n.width<=0||n.height<=0)return null;let r=(e.clientX-n.left)/n.width,i=(e.clientY-n.top)/n.height;return i<d?`top`:i>.8?`bottom`:r<d?`left`:r>.8?`right`:`center`}function w(e){e.dataTransfer.types.includes(u)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,m(C(e)))}function D(e){let t=e.relatedTarget;(!t||!e.currentTarget.contains(t))&&m(null)}function A(n){if(!n.dataTransfer.types.includes(u))return;n.preventDefault();let r=C(n);m(null);let i=E(n);i&&r&&(r===`center`?O(t,i,e.id,e.tabs.length):k(t,i,e.id,r))}let[j,M]=(0,l.useState)(null);function N(e){e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();M({x:t.right-4,y:t.bottom+2})}function F(){M(null)}let[I,L]=(0,l.useState)(null);function R(e,t,n){e.preventDefault(),L({x:e.clientX,y:e.clientY,tabKey:t,tabIdx:n})}function z(){L(null)}let B=I?t.mounts.find(e=>e.key===I.tabKey):void 0,V=B?n.mountMenus.collect(`tab:context`,B):void 0;return(0,c.jsxs)(`div`,{className:`oo-tab-panel-group`,"data-leaf-id":e.id,style:{flex:1,minWidth:0,minHeight:0,display:`flex`,flexDirection:`column`,overflow:`hidden`},children:[(0,c.jsxs)(`div`,{className:`tab-bar`,children:[(0,c.jsx)(`div`,{className:`tab-bar__strip`,ref:g,children:e.tabs.map((e,r)=>{let i=t.mounts.find(t=>t.key===e);return(0,c.jsx)(P,{resourceKey:e,idx:r,m:i,isActive:e===o,isPinned:t.pinned.has(e),dragOverTab:s,onDragStart:t=>y(t,e),onDragOver:e=>b(e,r),onDragLeave:x,onDrop:e=>S(e,r),onClick:()=>_(e),onContextMenu:t=>R(t,e,r),onClose:()=>t.onClose(e),onUnpin:r=>{r.stopPropagation(),n.store.set(`$/tab/key`,e),n.store.set(`$/surface/name`,t.surface),n.commands.execute(`tab.unpin`)}},e)})}),(0,c.jsx)(`div`,{className:`tab-bar__extras`,children:(0,c.jsx)(`button`,{className:`tab-bar__more`,title:`Group actions`,"aria-label":`Group actions`,onClick:N,children:a.moreHoriz})})]}),(0,c.jsxs)(`div`,{ref:h,onDragOver:w,onDragLeave:D,onDrop:A,style:{flex:1,minHeight:0,position:`relative`,overflow:`auto`},children:[e.tabs.length===0?t.mounts.length===0?t.renderEmpty?.()??null:(0,c.jsx)(`div`,{style:{padding:24,color:`var(--oo-color-muted)`},children:`Empty group. Drag a tab here.`}):e.tabs.map(e=>{let n=t.mounts.find(t=>t.key===e);return n?(0,c.jsx)(`div`,{className:`oo-layout__mount`,"data-active":e===o||void 0,style:{position:`absolute`,inset:0,overflow:`auto`,display:e===o?`block`:`none`},children:t.renderMount(n)},e):null}),p?(0,c.jsx)(T,{zone:p}):null]}),j?(0,c.jsx)(i,{x:j.x,y:j.y,onClose:F,spec:{query:{slot:`tab-group:context`},footerHints:!0},context:{"$/surface/name":t.surface,"$/surface/layoutId":`tab-panel`,"$/surface/mountCount":t.mounts.length,"$/surface/closedHistory":0,"$/group/key":e.id,"$/group/tabCount":e.tabs.length,"$/group/canClose":!0,"$/group/canMaximize":!1,"$/tab/canSplit":!0,"$/tab/canMove":t.leafCount>1}}):null,I?(0,c.jsx)(i,{x:I.x,y:I.y,onClose:z,spec:{query:{slot:`tab:context`},extraItems:V,footerHints:!0},context:{"$/surface/name":t.surface,"$/surface/layoutId":`tab-panel`,"$/surface/mountCount":t.mounts.length,"$/surface/closedHistory":0,"$/group/key":e.id,"$/group/tabCount":e.tabs.length,"$/group/canClose":!0,"$/tab/key":I.tabKey,"$/tab/index":I.tabIdx,"$/tab/leafId":e.id,"$/tab/isActive":I.tabKey===o,"$/tab/isPinned":t.pinned.has(I.tabKey),"$/tab/canSplit":!0,"$/tab/canMove":t.leafCount>1}}):null]})}function T({zone:e}){let t={position:`absolute`,pointerEvents:`none`,background:`rgba(59,130,246,0.12)`,border:`2px solid rgba(59,130,246,0.6)`,boxSizing:`border-box`,zIndex:5,transition:`all 80ms ease-out`},n=(()=>{switch(e){case`center`:return{...t,inset:0};case`top`:return{...t,top:0,left:0,right:0,height:`50%`};case`bottom`:return{...t,bottom:0,left:0,right:0,height:`50%`};case`left`:return{...t,top:0,bottom:0,left:0,width:`50%`};case`right`:return{...t,top:0,bottom:0,right:0,width:`50%`}}})();return(0,c.jsx)(`div`,{className:`oo-tab-panel-drop-preview`,style:n})}function E(e){let t=e.dataTransfer.getData(u);if(!t)return null;try{let e=JSON.parse(t);return typeof e.sourceLeafId!=`string`||typeof e.tabKey!=`string`?null:e}catch{return null}}function D(e,t){return v(e,e=>{if(!e.tabs.includes(t))return e;let n=e.tabs.filter(e=>e!==t);return n.length===0?null:{...e,tabs:n,activeKey:e.activeKey===t?n[0]:e.activeKey}})}function O(e,t,n,r){if(t.sourceLeafId===n){let i=v(e.tree,e=>{if(e.id!==n)return e;let i=e.tabs.indexOf(t.tabKey);if(i===-1)return e;let a=[...e.tabs];a.splice(i,1);let o=i<r?r-1:r;return a.splice(o,0,t.tabKey),{...e,tabs:a,activeKey:t.tabKey}});i&&e.commit(i),e.onActivate(t.tabKey);return}let i=D(e.tree,t.tabKey);if(!i)return;let a=v(i,e=>{if(e.id!==n)return e;let i=[...e.tabs],a=Math.max(0,Math.min(r,i.length));return i.splice(a,0,t.tabKey),{...e,tabs:i,activeKey:t.tabKey}});a&&e.commit(a),e.onActivate(t.tabKey)}function k(e,t,n,r){let i=e.tree,a=A(i,t.sourceLeafId);if(a&&a.id===n&&a.tabs.length===1||(i=D(i,t.tabKey),!i))return;let o=A(i,n);if(!o)return;let s=m([t.tabKey],t.tabKey),c=y(i,n,{kind:`split`,direction:r===`left`||r===`right`?`row`:`column`,ratio:.5,first:r===`left`||r===`top`?s:o,second:r===`left`||r===`top`?o:s});e.commit(c),e.onActivate(t.tabKey)}function A(e,t){return e.kind===`leaf`?e.id===t?e:null:A(e.first,t)||A(e.second,t)}function j({node:e,ctx:t}){return e.kind===`leaf`?(0,c.jsx)(w,{leaf:e,ctx:t}):(0,c.jsx)(M,{node:e,ctx:t})}function M({node:e,ctx:t}){let n=(0,l.useRef)(null),r=e.ratio??.5;function i(n){let r=b(t.tree,t=>t===e,{ratio:n});t.commit(r)}let a=e.direction===`row`;return(0,c.jsxs)(`div`,{ref:n,className:`oo-tab-panel-split`,"data-direction":e.direction,style:{display:`flex`,flexDirection:a?`row`:`column`,flex:1,minWidth:0,minHeight:0},children:[(0,c.jsx)(`div`,{style:{flex:r,minWidth:0,minHeight:0,display:`flex`},children:(0,c.jsx)(j,{node:e.first,ctx:t})}),(0,c.jsx)(o,{direction:e.direction===`row`?`row`:`col`,containerRef:n,min:f,max:.95,onCommit:i}),(0,c.jsx)(`div`,{style:{flex:1-r,minWidth:0,minHeight:0,display:`flex`},children:(0,c.jsx)(j,{node:e.second,ctx:t})})]})}function N({surface:e,mounts:t,state:n,setState:r,renderMount:i,renderEmpty:a,onActivate:o,onClose:s}){let u=t.map(e=>e.key),{tree:d}=S(n.tabPanel?.tree,u,n.activeContainerKey);(0,l.useEffect)(()=>{C(n.tabPanel?.tree,d)||r({tabPanel:{tree:d}})});let f=[];g(d,f);let p={surface:e,mounts:t,renderMount:i,renderEmpty:a,onActivate:o,onClose:s,tree:d,commit:e=>r({tabPanel:{tree:e}}),leafCount:f.length,pinned:new Set(n.split?.pinned??[])};return(0,c.jsx)(`div`,{className:`oo-layout oo-layout--tab-panel`,style:{display:`flex`,height:`100%`,minHeight:0},children:(0,c.jsx)(j,{node:d,ctx:p})})}function P({m:e,resourceKey:t,isActive:i,dragOverTab:o,idx:l,onDragStart:u,onDragOver:d,onDragLeave:f,onDrop:p,onClick:m,onContextMenu:h,onClose:g,onUnpin:_,isPinned:v}){let y=r(),b=e?y.components.get(e.component.component)?.props:void 0,x=s(e?.props?.title??b?.title,``,e?.dataContext)||t,S=e?.props?.icon??b?.icon,C=e?.props?.color??b?.color;return(0,c.jsxs)(`div`,{className:`tab-bar__tab`,"data-active":i,"data-drag-over":o===l?`true`:void 0,"data-color":C,"data-pinned":v||void 0,draggable:!0,onDragStart:u,onDragOver:d,onDragLeave:f,onDrop:p,onClick:m,onContextMenu:h,title:x,style:{...C?{"--tab-color":n(C)}:{}},children:[S?(0,c.jsx)(`span`,{className:`tab__icon`,"aria-hidden":!0,children:S}):null,(0,c.jsx)(`span`,{className:`tab__label`,children:x}),v?(0,c.jsx)(`span`,{className:`pin`,onClick:e=>{e.stopPropagation(),_(e)},title:`Unpin`,children:a.pin}):(0,c.jsx)(`span`,{className:`close`,onClick:e=>{e.stopPropagation(),g(e)},title:`Close`,children:a.closePanel})]})}export{N as TabPanelLayout,P as TabTitle};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{b as i,h as a,m as o,v as s}from"./data-CBWyZN_H.js";import{t as c}from"./Alert-CHZkhmDE.js";import{c as l,i as u,n as d,o as f,t as p,u as m}from"./terminal-BMZxY-St.js";var h=t(),g=Object.defineProperty,_=Object.getOwnPropertyDescriptor,ee=(e,t)=>{for(var n in t)g(e,n,{get:t[n],enumerable:!0})},v=(e,t,n,r)=>{for(var i=r>1?void 0:r?_(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&g(t,n,i),i},y=(e,t)=>(n,r)=>t(n,r,e),te=`Terminal input`,ne={get:()=>te,set:e=>te=e},re=`Too much output to announce, navigate to rows manually to read`,ie={get:()=>re,set:e=>re=e};function ae(e){return e.replace(/\r?\n/g,`\r`)}function oe(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function b(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function se(e,t,n,r){e.stopPropagation(),e.clipboardData&&x(e.clipboardData.getData(`text/plain`),t,n,r)}function x(e,t,n,r){e=ae(e),e=oe(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function ce(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function le(e,t,n,r,i){ce(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function ue(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function S(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var de=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},fe=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},pe=``,me=` `,he=class e{constructor(){this.fg=0,this.bg=0,this.extended=new ge}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return!(this.fg&50331648)}isBgDefault(){return!(this.bg&50331648)}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?!(this.extended.underlineColor&50331648):this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},ge=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},C=class e extends he{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new ge,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?ue(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},w=`di$target`,_e=`di$dependencies`,T=new Map;function ve(e){return e[_e]||[]}function E(e){if(T.has(e))return T.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);ye(t,e,r)};return t._id=e,T.set(e,t),t}function ye(e,t,n){t[w]===t?t[_e].push({id:e,index:n}):(t[_e]=[{id:e,index:n}],t[w]=t)}var D=E(`BufferService`),be=E(`CoreMouseService`),O=E(`CoreService`),xe=E(`CharsetService`),Se=E(`InstantiationService`),Ce=E(`LogService`),k=E(`OptionsService`),we=E(`OscLinkService`),Te=E(`UnicodeService`),Ee=E(`DecorationService`),De=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new C,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(c!==-1||n.hasContent(t)){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId){if(c===-1){c=t,s=a.extended.urlId;continue}l=a.extended.urlId!==s}else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):Oe(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};De=v([y(0,D),y(1,k),y(2,we)],De);function Oe(e,t){if(confirm(`Do you want to navigate to ${t}?
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{b as i,h as a,m as o,v as s}from"./data-hUAVersf.js";import{t as c}from"./Alert-CHZkhmDE.js";import{c as l,i as u,n as d,o as f,t as p,u as m}from"./terminal-BPj7jGw5.js";var h=t(),g=Object.defineProperty,_=Object.getOwnPropertyDescriptor,ee=(e,t)=>{for(var n in t)g(e,n,{get:t[n],enumerable:!0})},v=(e,t,n,r)=>{for(var i=r>1?void 0:r?_(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&g(t,n,i),i},y=(e,t)=>(n,r)=>t(n,r,e),te=`Terminal input`,ne={get:()=>te,set:e=>te=e},re=`Too much output to announce, navigate to rows manually to read`,ie={get:()=>re,set:e=>re=e};function ae(e){return e.replace(/\r?\n/g,`\r`)}function oe(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function b(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function se(e,t,n,r){e.stopPropagation(),e.clipboardData&&x(e.clipboardData.getData(`text/plain`),t,n,r)}function x(e,t,n,r){e=ae(e),e=oe(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function ce(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function le(e,t,n,r,i){ce(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function ue(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function S(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var de=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},fe=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},pe=``,me=` `,he=class e{constructor(){this.fg=0,this.bg=0,this.extended=new ge}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return!(this.fg&50331648)}isBgDefault(){return!(this.bg&50331648)}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?!(this.extended.underlineColor&50331648):this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},ge=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},C=class e extends he{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new ge,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?ue(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},w=`di$target`,_e=`di$dependencies`,T=new Map;function ve(e){return e[_e]||[]}function E(e){if(T.has(e))return T.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);ye(t,e,r)};return t._id=e,T.set(e,t),t}function ye(e,t,n){t[w]===t?t[_e].push({id:e,index:n}):(t[_e]=[{id:e,index:n}],t[w]=t)}var D=E(`BufferService`),be=E(`CoreMouseService`),O=E(`CoreService`),xe=E(`CharsetService`),Se=E(`InstantiationService`),Ce=E(`LogService`),k=E(`OptionsService`),we=E(`OscLinkService`),Te=E(`UnicodeService`),Ee=E(`DecorationService`),De=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new C,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(c!==-1||n.hasContent(t)){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId){if(c===-1){c=t,s=a.extended.urlId;continue}l=a.extended.urlId!==s}else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):Oe(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};De=v([y(0,D),y(1,k),y(2,we)],De);function Oe(e,t){if(confirm(`Do you want to navigate to ${t}?
2
2
 
3
3
  WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}}var ke=E(`CharSizeService`),Ae=E(`CoreBrowserService`),je=E(`MouseService`),Me=E(`RenderService`),Ne=E(`SelectionService`),Pe=E(`CharacterJoinerService`),Fe=E(`ThemeService`),Ie=E(`LinkProviderService`),Le=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Ue.isErrorNoTelemetry(e)?new Ue(e.message+`
4
4
 
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{n as t,t as n}from"./useStore-BQkzWMs-.js";import{w as r}from"./index-DBKNxflN.js";var i=e(),a=[`light`,`dark`,`system`],o={light:`☀︎`,dark:`☾︎`,system:`◐︎`},s={light:`Light`,dark:`Dark`,system:`Follow system`};function c({modes:e=a,display:c=`icon`,className:l,style:u}){let d=n(`$/ui/theme/mode`)??`system`,f=t(),p=e[(e.indexOf(d)+1)%e.length]??e[0];return(0,i.jsxs)(`button`,{type:`button`,className:[`oo-theme-mode-toggle`,l].filter(Boolean).join(` `),style:u,"data-mode":d,title:`${s[d]} — click for ${s[p].toLowerCase()}`,"aria-label":`Theme mode: ${s[d]}`,onClick:()=>f(r,p),children:[c===`text`?null:(0,i.jsx)(`span`,{"aria-hidden":`true`,children:o[d]}),c===`icon`?null:(0,i.jsx)(`span`,{children:s[d]})]})}export{c as ThemeModeToggle,c as default};
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{n as t,t as n}from"./useStore-BQkzWMs-.js";import{T as r}from"./index-yhQX4tVS.js";var i=e(),a=[`light`,`dark`,`system`],o={light:`☀︎`,dark:`☾︎`,system:`◐︎`},s={light:`Light`,dark:`Dark`,system:`Follow system`};function c({modes:e=a,display:c=`icon`,className:l,style:u}){let d=n(`$/ui/theme/mode`)??`system`,f=t(),p=e[(e.indexOf(d)+1)%e.length]??e[0];return(0,i.jsxs)(`button`,{type:`button`,className:[`oo-theme-mode-toggle`,l].filter(Boolean).join(` `),style:u,"data-mode":d,title:`${s[d]} — click for ${s[p].toLowerCase()}`,"aria-label":`Theme mode: ${s[d]}`,onClick:()=>f(r,p),children:[c===`text`?null:(0,i.jsx)(`span`,{"aria-hidden":`true`,children:o[d]}),c===`icon`?null:(0,i.jsx)(`span`,{children:s[d]})]})}export{c as ThemeModeToggle,c as default};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{n as t,t as n}from"./useStore-BQkzWMs-.js";import{r}from"./styles-yrzHRgom.js";import{C as i}from"./index-DBKNxflN.js";var a=e();function o({themes:e,label:o=`Theme`,compact:s=!1,className:c,style:l}){let u=n(`$/ui/theme/id`)??`default`,d=t(),f=r(),p=e?e.map(e=>f.find(t=>t.id===e)).filter(e=>e!==void 0):f;return p.length<2?null:(0,a.jsxs)(`label`,{className:[`oo-theme-picker`,c].filter(Boolean).join(` `),style:l,title:o,children:[s?null:(0,a.jsx)(`span`,{className:`oo-theme-picker__label`,children:o}),(0,a.jsx)(`select`,{className:`oo-theme-picker__select`,value:u,"aria-label":o,onChange:e=>d(i,e.currentTarget.value),children:p.map(e=>(0,a.jsx)(`option`,{value:e.id,children:e.label},e.id))})]})}export{o as ThemePicker,o as default};
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{n as t,t as n}from"./useStore-BQkzWMs-.js";import{r}from"./styles-yrzHRgom.js";import{w as i}from"./index-yhQX4tVS.js";var a=e();function o({themes:e,label:o=`Theme`,compact:s=!1,className:c,style:l}){let u=n(`$/ui/theme/id`)??`default`,d=t(),f=r(),p=e?e.map(e=>f.find(t=>t.id===e)).filter(e=>e!==void 0):f;return p.length<2?null:(0,a.jsxs)(`label`,{className:[`oo-theme-picker`,c].filter(Boolean).join(` `),style:l,title:o,children:[s?null:(0,a.jsx)(`span`,{className:`oo-theme-picker__label`,children:o}),(0,a.jsx)(`select`,{className:`oo-theme-picker__select`,value:u,"aria-label":o,onChange:e=>d(i,e.currentTarget.value),children:p.map(e=>(0,a.jsx)(`option`,{value:e.id,children:e.label},e.id))})]})}export{o as ThemePicker,o as default};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{r as n}from"./colors-BieSUSt7.js";import{t as r}from"./ContextMenu-BV1gdog0.js";var i=t(),a=e();function o(e,t,n=0,r=null,i=[]){for(let a of e){let e=a.children!==void 0,s=e&&t.has(a.key);i.push({node:a,depth:n,hasChildren:e,expanded:s,parentKey:r}),s&&a.children&&o(a.children,t,n+1,a.key,i)}return i}function s({nodes:e,title:t,toolbar:n,selectedKey:s,onSelect:u,onActivate:d,expanded:f,defaultExpanded:p,onExpandedChange:m,renderItem:h,contextMenuSlot:g,contextFor:_,contextDataContext:v,contextExtraItems:y,onDragStart:b,onDragOver:x,onDragEnd:S,onDrop:C,onCopy:w,onPaste:T,emptyState:E,className:D,style:O}){let[k,A]=(0,i.useState)(()=>new Set(p??[])),j=f??k,M=(0,i.useCallback)(e=>{m&&m(e),f===void 0&&A(e)},[f,m]),N=(0,i.useMemo)(()=>o(e,j),[e,j]),[P,F]=(0,i.useState)(null),[I,L]=(0,i.useState)(null);function R(e,t){x?.(e,t),t.dropAccepting&&L(t.key)}function z(e,t){e.currentTarget.contains(e.relatedTarget)||L(e=>e===t.key?null:e)}function B(e,t){L(null),C?.(e,t)}let V=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(!s||!V.current)return;let e=V.current.querySelector(`[data-key="${l(s)}"]`);e&&e.scrollIntoView({block:`nearest`})},[s]);function H(e){let t=new Set(j);t.has(e)?t.delete(e):t.add(e),M(t)}let U=s?N.findIndex(e=>e.node.key===s):-1;function W(e){if(N.length===0)return;let t=U>=0?U:0,n=N[t];switch(e.key){case`ArrowDown`:{e.preventDefault();let n=N[Math.min(N.length-1,t+1)];n&&u?.(n.node);return}case`ArrowUp`:{e.preventDefault();let n=N[Math.max(0,t-1)];n&&u?.(n.node);return}case`ArrowRight`:if(e.preventDefault(),!n)return;if(n.hasChildren&&!n.expanded)H(n.node.key);else if(n.hasChildren&&n.expanded){let e=N[t+1];e&&u?.(e.node)}return;case`ArrowLeft`:if(e.preventDefault(),!n)return;if(n.hasChildren&&n.expanded)H(n.node.key);else if(n.parentKey){let e=N.find(e=>e.node.key===n.parentKey);e&&u?.(e.node)}return;case`Enter`:case` `:if(e.preventDefault(),!n)return;n.hasChildren?H(n.node.key):d?.(n.node);return}}function G(e,t){g&&(e.preventDefault(),e.stopPropagation(),u?.(t),F({x:e.clientX,y:e.clientY,node:t}))}function K(e){let t=s?N.find(e=>e.node.key===s)?.node??null:null;w?.(e,t)}function q(e){let t=s?N.find(e=>e.node.key===s)?.node??null:null;T?.(e,t)}return(0,a.jsxs)(`div`,{ref:V,role:`tree`,tabIndex:0,className:[`oo-tree`,D].filter(Boolean).join(` `),style:O,onKeyDown:W,onCopy:w?K:void 0,onPaste:T?q:void 0,onDragEnd:()=>L(null),children:[t||n?(0,a.jsxs)(`header`,{className:`oo-tree__header`,children:[t?(0,a.jsx)(`h2`,{className:`oo-tree__title`,children:t}):null,n]}):null,N.length===0?(0,a.jsx)(`div`,{className:`oo-tree__empty`,children:E??`Empty`}):(0,a.jsx)(`div`,{className:`oo-tree__rows`,role:`presentation`,children:N.map(e=>{let{node:t,depth:n,hasChildren:r,expanded:i}=e,o=t.key===s;return(0,a.jsxs)(`div`,{role:`treeitem`,"aria-level":n+1,"aria-expanded":r?i:void 0,"aria-selected":o,"data-key":t.key,"data-selected":o?`true`:void 0,"data-drag-over":t.key===I?`true`:void 0,tabIndex:-1,draggable:t.draggable??!1,className:`oo-tree__row ${t.draggable?`oo-draggable`:``}`,style:{paddingLeft:n*14+6},onClick:()=>u?.(t),onDoubleClick:()=>{r?H(t.key):d?.(t)},onContextMenu:e=>G(e,t),onDragStart:b?e=>b(e,t):void 0,onDragOver:x?e=>R(e,t):void 0,onDragLeave:x?e=>z(e,t):void 0,onDragEnd:S?e=>S(e,t):void 0,onDrop:C?e=>B(e,t):void 0,children:[r?(0,a.jsx)(`button`,{type:`button`,"aria-label":i?`Collapse`:`Expand`,className:`oo-tree__twisty`,"data-expanded":i?`true`:void 0,onClick:e=>{e.stopPropagation(),H(t.key)},children:`▸`}):(0,a.jsx)(`span`,{className:`oo-tree__twisty oo-tree__twisty--leaf`}),h?h(t,{selected:o,expanded:i,depth:n}):(0,a.jsx)(c,{node:t})]},t.key)})}),P&&g?(0,a.jsx)(r,{x:P.x,y:P.y,onClose:()=>F(null),spec:{query:{slot:g},extraItems:y?y(P.node):void 0,footerHints:!0},context:_?_(P.node):void 0,dataContext:v}):null]})}function c({node:e}){let t=e.color?{"--oo-color":n(e.color)}:void 0;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`span`,{className:`oo-icon oo-tree__icon`,style:t,children:e.icon??`·`}),(0,a.jsx)(`span`,{className:`oo-tree__label`,children:e.label}),e.trailing?(0,a.jsx)(`span`,{className:`oo-tree__trailing`,children:e.trailing}):null]})}function l(e){return e.replace(/(["\\\]])/g,`\\$1`)}export{s as t};
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{r as n}from"./colors-BieSUSt7.js";import{t as r}from"./ContextMenu-BV1gdog0.js";var i=t(),a=e();function o(e,t,n=0,r=null,i=[]){for(let a of e){let e=a.children!==void 0,s=e&&t.has(a.key);i.push({node:a,depth:n,hasChildren:e,expanded:s,parentKey:r}),s&&a.children&&o(a.children,t,n+1,a.key,i)}return i}function s({nodes:e,title:t,toolbar:n,selectedKey:s,onSelect:u,onActivate:d,expanded:f,defaultExpanded:p,onExpandedChange:m,renderItem:h,contextMenuSlot:g,contextFor:_,contextDataContext:v,contextExtraItems:y,onDragStart:b,onDragOver:x,onDragEnd:S,onDrop:C,onCopy:w,onPaste:T,emptyState:E,className:D,style:O}){let[k,A]=(0,i.useState)(()=>new Set(p??[])),j=f??k,M=(0,i.useCallback)(e=>{m&&m(e),f===void 0&&A(e)},[f,m]),N=(0,i.useMemo)(()=>o(e,j),[e,j]),[P,F]=(0,i.useState)(null),[I,L]=(0,i.useState)(null);function R(e,t){x?.(e,t),t.dropAccepting&&L(t.key)}function z(e,t){e.currentTarget.contains(e.relatedTarget)||L(e=>e===t.key?null:e)}function B(e,t){L(null),C?.(e,t)}let V=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(!s||!V.current)return;let e=V.current.querySelector(`[data-key="${l(s)}"]`);e&&e.scrollIntoView({block:`nearest`})},[s]);function H(e){let t=new Set(j);t.has(e)?t.delete(e):t.add(e),M(t)}let U=s?N.findIndex(e=>e.node.key===s):-1;function W(e){if(N.length===0)return;let t=U>=0?U:0,n=N[t];switch(e.key){case`ArrowDown`:{e.preventDefault();let n=N[Math.min(N.length-1,t+1)];n&&u?.(n.node);return}case`ArrowUp`:{e.preventDefault();let n=N[Math.max(0,t-1)];n&&u?.(n.node);return}case`ArrowRight`:if(e.preventDefault(),!n)return;if(n.hasChildren&&!n.expanded)H(n.node.key);else if(n.hasChildren&&n.expanded){let e=N[t+1];e&&u?.(e.node)}return;case`ArrowLeft`:if(e.preventDefault(),!n)return;if(n.hasChildren&&n.expanded)H(n.node.key);else if(n.parentKey){let e=N.find(e=>e.node.key===n.parentKey);e&&u?.(e.node)}return;case`Enter`:case` `:if(e.preventDefault(),!n)return;n.hasChildren?H(n.node.key):d?.(n.node);return}}function G(e,t){g&&(e.preventDefault(),e.stopPropagation(),u?.(t),F({x:e.clientX,y:e.clientY,node:t}))}function K(e){let t=s?N.find(e=>e.node.key===s)?.node??null:null;w?.(e,t)}function q(e){let t=s?N.find(e=>e.node.key===s)?.node??null:null;T?.(e,t)}return(0,a.jsxs)(`div`,{ref:V,role:`tree`,tabIndex:0,className:[`oo-tree`,D].filter(Boolean).join(` `),style:O,onKeyDown:W,onCopy:w?K:void 0,onPaste:T?q:void 0,onDragEnd:()=>L(null),children:[t||n?(0,a.jsxs)(`header`,{className:`oo-tree__header`,children:[t?(0,a.jsx)(`h2`,{className:`oo-tree__title`,children:t}):null,n]}):null,N.length===0?E==null?null:(0,a.jsx)(`div`,{className:`oo-tree__empty`,children:E}):(0,a.jsx)(`div`,{className:`oo-tree__rows`,role:`presentation`,children:N.map(e=>{let{node:t,depth:n,hasChildren:r,expanded:i}=e,o=t.key===s;return(0,a.jsxs)(`div`,{role:`treeitem`,"aria-level":n+1,"aria-expanded":r?i:void 0,"aria-selected":o,"data-key":t.key,"data-selected":o?`true`:void 0,"data-drag-over":t.key===I?`true`:void 0,tabIndex:-1,draggable:t.draggable??!1,className:`oo-tree__row ${t.draggable?`oo-draggable`:``}`,style:{paddingLeft:n*14+6},onClick:()=>u?.(t),onDoubleClick:()=>{r?H(t.key):d?.(t)},onContextMenu:e=>G(e,t),onDragStart:b?e=>b(e,t):void 0,onDragOver:x?e=>R(e,t):void 0,onDragLeave:x?e=>z(e,t):void 0,onDragEnd:S?e=>S(e,t):void 0,onDrop:C?e=>B(e,t):void 0,children:[r?(0,a.jsx)(`button`,{type:`button`,"aria-label":i?`Collapse`:`Expand`,className:`oo-tree__twisty`,"data-expanded":i?`true`:void 0,onClick:e=>{e.stopPropagation(),H(t.key)},children:`▸`}):(0,a.jsx)(`span`,{className:`oo-tree__twisty oo-tree__twisty--leaf`}),h?h(t,{selected:o,expanded:i,depth:n}):(0,a.jsx)(c,{node:t})]},t.key)})}),P&&g?(0,a.jsx)(r,{x:P.x,y:P.y,onClose:()=>F(null),spec:{query:{slot:g},extraItems:y?y(P.node):void 0,footerHints:!0},context:_?_(P.node):void 0,dataContext:v}):null]})}function c({node:e}){let t=e.color?{"--oo-color":n(e.color)}:void 0;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`span`,{className:`oo-icon oo-tree__icon`,style:t,children:e.icon??`·`}),(0,a.jsx)(`span`,{className:`oo-tree__label`,children:e.label}),e.trailing?(0,a.jsx)(`span`,{className:`oo-tree__trailing`,children:e.trailing}):null]})}function l(e){return e.replace(/(["\\\]])/g,`\\$1`)}export{s as t};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./media-C3ferCB3.js";var n=e();function r({uri:e}){return(0,n.jsx)(t,{uri:e,children:e=>(0,n.jsx)(`video`,{className:`web-video`,src:e,controls:!0,preload:`metadata`})})}export{r as default};
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./media-Coozt7AL.js";var n=e();function r({uri:e}){return(0,n.jsx)(t,{uri:e,children:e=>(0,n.jsx)(`video`,{className:`web-video`,src:e,controls:!0,preload:`metadata`})})}export{r as default};
@@ -1 +1 @@
1
- import{l as e,r as t}from"./notify-CJo-T9e2.js";import{d as n,j as r,v as i}from"./data-CBWyZN_H.js";import{a}from"./words-T8-D0K4W.js";import{g as o}from"./index-DBKNxflN.js";function s(e){return r(`runAutomation`,{channel:n,automation:e.resource,requestId:`manual-${a()}`})}function c(e,t){i(n,{type:`automation/updateRequested`,resource:e.resource,changes:{enabled:t}})}async function l(t){await e({title:`Delete "${o(t)}"?`,body:`Its run history goes with it.`,confirmLabel:`Delete`,tone:`danger`})&&i(n,{type:`automation/removed`,resource:t.resource})}function u(e){i(e,{type:`automationRun/cancelRequested`})}var d=e=>t(`The automation could not run`,e);function f(e,t,n){let r=t=>e.operations.map(String).includes(t),i=[{title:`Open`,onSelect:e=>{e.closeMenu(),t()}}];return r(`run`)&&i.push({title:`Run now`,onSelect:t=>{t.closeMenu(),s(e).catch(d)}}),r(`update`)&&(i.push({title:e.definition.enabled?`Turn off`:`Turn on`,onSelect:t=>{t.closeMenu(),c(e,!e.definition.enabled)}}),i.push({title:`Edit`,onSelect:e=>{e.closeMenu(),n()}})),i.push({title:`Copy link`,group:`more`,onSelect:t=>{t.closeMenu(),navigator.clipboard?.writeText(e.resource).catch(()=>void 0)}}),r(`remove`)&&i.push({title:`Delete`,group:`more`,color:`red`,onSelect:t=>{t.closeMenu(),l(e)}}),i}export{c as a,s as i,f as n,l as r,u as t};
1
+ import{l as e,r as t}from"./notify-BQ9fSOfy.js";import{d as n,j as r,v as i}from"./data-hUAVersf.js";import{a}from"./words-T8-D0K4W.js";import{g as o}from"./index-yhQX4tVS.js";function s(e){return r(`runAutomation`,{channel:n,automation:e.resource,requestId:`manual-${a()}`})}function c(e,t){i(n,{type:`automation/updateRequested`,resource:e.resource,changes:{enabled:t}})}async function l(t){await e({title:`Delete "${o(t)}"?`,body:`Its run history goes with it.`,confirmLabel:`Delete`,tone:`danger`})&&i(n,{type:`automation/removed`,resource:t.resource})}function u(e){i(e,{type:`automationRun/cancelRequested`})}var d=e=>t(`The automation could not run`,e);function f(e,t,n){let r=t=>e.operations.map(String).includes(t),i=[{title:`Open`,onSelect:e=>{e.closeMenu(),t()}}];return r(`run`)&&i.push({title:`Run now`,onSelect:t=>{t.closeMenu(),s(e).catch(d)}}),r(`update`)&&(i.push({title:e.definition.enabled?`Turn off`:`Turn on`,onSelect:t=>{t.closeMenu(),c(e,!e.definition.enabled)}}),i.push({title:`Edit`,onSelect:e=>{e.closeMenu(),n()}})),i.push({title:`Copy link`,group:`more`,onSelect:t=>{t.closeMenu(),navigator.clipboard?.writeText(e.resource).catch(()=>void 0)}}),r(`remove`)&&i.push({title:`Delete`,group:`more`,color:`red`,onSelect:t=>{t.closeMenu(),l(e)}}),i}export{c as a,s as i,f as n,l as r,u as t};