@ahpd/web 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -20
- package/dist/app/assets/ActionList-Bc-jZDaT.css +1 -0
- package/dist/app/assets/ActionList-QwhYPQiB.js +1 -0
- package/dist/app/assets/ActivityBarItem-B2nm6zWz.css +1 -0
- package/dist/app/assets/ActivityBarItem-ai2cgVXn.js +1 -0
- package/dist/app/assets/Alert-BhdRA0LL.js +1 -0
- package/dist/app/assets/AudioPage-g-XDUEDw.js +1 -0
- package/dist/app/assets/Bood-Dg-XtOTh.js +1 -0
- package/dist/app/assets/BotLayer-DBe4Fyhe.js +1 -0
- package/dist/app/assets/ChoicePicker-I5V6f-aN.js +1 -0
- package/dist/app/assets/CodeEditor-C-ygqVsY.js +3 -0
- package/dist/app/assets/CommandPalette-G86xI_6j.js +1 -0
- package/dist/app/assets/Composer-DYocj0Ot.js +2 -0
- package/dist/app/assets/{ContextMenu-BV1gdog0.js → ContextMenu-DlF_3KO_.js} +1 -1
- package/dist/app/assets/CopyButton-BSesWpVW.js +1 -0
- package/dist/app/assets/{DataTable-8woVlU4S.js → DataTable-BwoG_VY8.js} +1 -1
- package/dist/app/assets/Details-CH_RhTnb.js +1 -0
- package/dist/app/assets/DiffPage-BWZV83j-.js +3 -0
- package/dist/app/assets/Edit-C2ayFdz3.js +1 -0
- package/dist/app/assets/Edit-nBofGkbp.js +1 -0
- package/dist/app/assets/Explorer-8HHRQU3j.js +1 -0
- package/dist/app/assets/Explorer-B4eWCDt-.js +1 -0
- package/dist/app/assets/Explorer-CcJsHUFk.js +1 -0
- package/dist/app/assets/Explorer-D4cvjXRf.js +1 -0
- package/dist/app/assets/Explorer-D5NpZ_El.js +1 -0
- package/dist/app/assets/Explorer-D5UOVCR4.js +1 -0
- package/dist/app/assets/Explorer-Dbqg4t3H.js +1 -0
- package/dist/app/assets/Explorer-Dg4dz1Y8.js +1 -0
- package/dist/app/assets/Explorer-Dy6T9Nil.js +1 -0
- package/dist/app/assets/Explorer-DzRNgpV9.js +1 -0
- package/dist/app/assets/ExplorerList-DU80dY_f.js +1 -0
- package/dist/app/assets/Field-jnYjqqvV.js +1 -0
- package/dist/app/assets/FilePage-Cqa5Gu-X.js +1 -0
- package/dist/app/assets/Filter-C4R4cZ-3.js +1 -0
- package/dist/app/assets/HeaderAction-5M2x4m1w.css +1 -0
- package/dist/app/assets/HeaderAction-Bs-AE__U.js +1 -0
- package/dist/app/assets/HostLines-CtIqw3A0.js +1 -0
- package/dist/app/assets/HostSwitcher-CBjT2TTb.js +1 -0
- package/dist/app/assets/ImagePage-C0fdIV7s.js +1 -0
- package/dist/app/assets/Info-DPV0HZOg.js +1 -0
- package/dist/app/assets/LocaleToggle-Bnt4p8rr.js +1 -0
- package/dist/app/assets/LogPage-C3fGac0t.js +1 -0
- package/dist/app/assets/LoginForm-DxyP1mZO.js +1 -0
- package/dist/app/assets/MarkdownPage-qhogl5sV.js +1 -0
- package/dist/app/assets/Modal-xWzwLA8s.js +1 -0
- package/dist/app/assets/MountTitle-BYR1nX0U.js +1 -0
- package/dist/app/assets/NamedPage-CoZEwEtx.js +1 -0
- package/dist/app/assets/New-BiFpU6ut.js +4 -0
- package/dist/app/assets/New-GW4BjzMj.js +1 -0
- package/dist/app/assets/OpenEditors-DN3NPzWo.js +1 -0
- package/dist/app/assets/Page-1jvuUZH2.js +1 -0
- package/dist/app/assets/Page-B1rQUqL-.js +1 -0
- package/dist/app/assets/Page-By2cWeM8.js +3 -0
- package/dist/app/assets/Page-DKXwLUAx.css +1 -0
- package/dist/app/assets/Page-JyFk5XMA.js +1 -0
- package/dist/app/assets/Page-fKKaK_Dn.js +1 -0
- package/dist/app/assets/PageAlert-B8ulCXV4.js +1 -0
- package/dist/app/assets/Pagination-Bt7IC1tA.js +1 -0
- package/dist/app/assets/PoolPage-cZ6yGgGG.js +1 -0
- package/dist/app/assets/PortaLock-DD-lS5R3.js +2 -0
- package/dist/app/assets/RolePage-C4v5v12n.js +3 -0
- package/dist/app/assets/SchemaForm-byhtwSG1.css +1 -0
- package/dist/app/assets/SchemaForm-uhkLDWDC.js +1 -0
- package/dist/app/assets/Settings-CAzrumeA.js +1 -0
- package/dist/app/assets/SigillumGate-CXCvctfp.js +1 -0
- package/dist/app/assets/SingleLayout-Bi4nK6CY.js +1 -0
- package/dist/app/assets/SpatialLayout-QbjNYiGj.js +1 -0
- package/dist/app/assets/Spinner-CBEPv0eM.js +1 -0
- package/dist/app/assets/SplitLayout-tQayoihg.js +1 -0
- package/dist/app/assets/StackLayout-B0qUSU7d.js +1 -0
- package/dist/app/assets/Start-NxBne1u6.js +1 -0
- package/dist/app/assets/TabLayout-B_pbKMRi.js +1 -0
- package/dist/app/assets/TabPanelLayout-DKamepPL.js +1 -0
- package/dist/app/assets/TerminalPage-AG2B5hHZ.js +18 -0
- package/dist/app/assets/ThemeModeToggle-DmEp0Qr8.js +1 -0
- package/dist/app/assets/ThemePicker-Bj_ObpXS.js +1 -0
- package/dist/app/assets/Tree-DoJ8zO-u.js +1 -0
- package/dist/app/assets/UserPage-C0Vk5NUV.js +1 -0
- package/dist/app/assets/VideoPage-CKx-gxgb.js +1 -0
- package/dist/app/assets/WindowControls-BuiQSjfa.js +1 -0
- package/dist/app/assets/actions-CFnmwNqb.js +1 -0
- package/dist/app/assets/actions-CkDFjYZd.js +1 -0
- package/dist/app/assets/ahpw-FhxegLNr.svg +8 -0
- package/dist/app/assets/changeset-FRFDlNj7.js +1 -0
- package/dist/app/assets/channel-BWOXaftf.js +3 -0
- package/dist/app/assets/{clicks-DIh3kBLi.js → clicks-BeeNCvCP.js} +1 -1
- package/dist/app/assets/composer-commands-CzjP_L_C.js +2 -0
- package/dist/app/assets/data-DsJQo1Qk.js +3 -0
- package/dist/app/assets/{dist-C5-Hv917.js → dist-2b3tV-Z7.js} +1 -1
- package/dist/app/assets/dist-BCQ-dSMw.js +9 -0
- package/dist/app/assets/{dist-CxEuuaKq.js → dist-BMwhNxyY.js} +1 -1
- package/dist/app/assets/dist-BVWBMVma.js +1 -0
- package/dist/app/assets/dist-BvY_obDK.js +13 -0
- package/dist/app/assets/dist-CHrzvaer.js +11 -0
- package/dist/app/assets/{dist-1MAn9CBM.js → dist-CaJpOCLg.js} +1 -1
- package/dist/app/assets/{dist-BdNRSgzN.js → dist-Cy5nEZGW.js} +2 -2
- package/dist/app/assets/dist-DUiHb392.js +1 -0
- package/dist/app/assets/dist-DVLbqnEo.js +23 -0
- package/dist/app/assets/dist-DrG75V-Z.js +6 -0
- package/dist/app/assets/dist-DxvAUGwy.js +1 -0
- package/dist/app/assets/{dist-uvIW_qsj.js → dist-UsePpmWK.js} +1 -1
- package/dist/app/assets/{dist-Bq_hlZV8.js → dist-ZM5yW1OM.js} +1 -1
- package/dist/app/assets/dist-a56DBHT4.js +1 -0
- package/dist/app/assets/dist-fdt_fTp5.js +1 -0
- package/dist/app/assets/drag-CxTqzQcr.js +1 -0
- package/dist/app/assets/emojis-B4zHbUyk.js +1 -0
- package/dist/app/assets/form-Bw0484oP.js +2 -0
- package/dist/app/assets/grouping-BZNQYyEm.js +1 -0
- package/dist/app/assets/hosts-A0gEDScb.js +3 -0
- package/dist/app/assets/index-DJ3IEy30.css +1 -0
- package/dist/app/assets/index-ddqm5vYD.js +19 -0
- package/dist/app/assets/label-hTY0RCEf.js +1 -0
- package/dist/app/assets/locales-DOA2j2AT.js +3 -0
- package/dist/app/assets/media-BFQqiLAd.js +1 -0
- package/dist/app/assets/notify-B2F6UAgq.js +1 -0
- package/dist/app/assets/pick-CEYUa4kK.js +1 -0
- package/dist/app/assets/pins-DhjQhJuu.js +1 -0
- package/dist/app/assets/save-file-CirO0l-u.js +1 -0
- package/dist/app/assets/save-zwMG_vNN.js +1 -0
- package/dist/app/assets/sessions-DxQFcZ2M.js +2 -0
- package/dist/app/assets/state-DQKzjLgu.js +1 -0
- package/dist/app/assets/terminal-Ctk6FYnN.js +1 -0
- package/dist/app/assets/text-D6GxOCYM.js +1 -0
- package/dist/app/assets/trust-ask-ewG_CvW8.js +1 -0
- package/dist/app/assets/turn-z1TPlA5Q.js +3 -0
- package/dist/app/assets/useI18n-T3BwAm0z.js +1 -0
- package/dist/app/assets/useStoreLabel-BtAsVCsr.js +1 -0
- package/dist/app/assets/viewers--ctbhTPt.js +1 -0
- package/dist/app/assets/words-1m-GRHoT.js +2 -0
- package/dist/app/assets/words-D8X2_Vc_.js +1 -0
- package/dist/app/index.html +37 -26
- package/dist/embed/index.d.ts +17 -4
- package/dist/embed/index.js +4 -0
- package/dist/plugin/index.d.ts +2 -2
- package/dist/plugin/index.js +2 -2
- package/dist/plugin/index.js.map +1 -1
- package/package.json +5 -3
- package/dist/app/ahpw.svg +0 -8
- package/dist/app/assets/ActionList-Bawu-Lja.css +0 -1
- package/dist/app/assets/ActionList-aOUHK9Z9.js +0 -1
- package/dist/app/assets/ActivityBarItem-Cyes10aK.css +0 -1
- package/dist/app/assets/ActivityBarItem-DVzJQ1uh.js +0 -1
- package/dist/app/assets/Alert-CHZkhmDE.js +0 -1
- package/dist/app/assets/AudioPage-DAAck9ph.js +0 -1
- package/dist/app/assets/ChoicePicker-Cg4Cj6B2.js +0 -1
- package/dist/app/assets/Composer-Dp_Z0bXp.js +0 -2
- package/dist/app/assets/CopyButton-DWmFc5fw.js +0 -1
- package/dist/app/assets/Details-ByJkvhJN.js +0 -1
- package/dist/app/assets/DiffPage-Ck21x0bd.js +0 -3
- package/dist/app/assets/Edit-rv9ZDDDu.js +0 -1
- package/dist/app/assets/Explorer-CDm6vvt6.js +0 -1
- package/dist/app/assets/Explorer-CNz5U5q-.js +0 -1
- package/dist/app/assets/Explorer-DS_lqr3R.js +0 -1
- package/dist/app/assets/Explorer-DoNVPZ-C.js +0 -1
- package/dist/app/assets/Explorer-VoN5CYd5.js +0 -1
- package/dist/app/assets/ExplorerList-DfesRs43.js +0 -1
- package/dist/app/assets/FilePage-CAUDXIh9.js +0 -3
- package/dist/app/assets/Filter-D1FpBH5R.js +0 -1
- package/dist/app/assets/HostSwitcher-BuSTjyO6.js +0 -1
- package/dist/app/assets/ImagePage-cy_jkGi1.js +0 -1
- package/dist/app/assets/Info-DqnamTeq.js +0 -1
- package/dist/app/assets/LocaleToggle-B91QrqGs.js +0 -1
- package/dist/app/assets/LogPage-CKm7_URt.js +0 -1
- package/dist/app/assets/LoginForm-rBz-5JFG.js +0 -1
- package/dist/app/assets/MarkdownPage-DgalhN_B.js +0 -1
- package/dist/app/assets/Modal-BHPfQpzr.js +0 -1
- package/dist/app/assets/MountTitle-Bx_Vo8tF.js +0 -1
- package/dist/app/assets/New-D6QCCHrx.js +0 -3
- package/dist/app/assets/Page-CnfUTsQD.js +0 -2
- package/dist/app/assets/Page-DGp_WebG.js +0 -1
- package/dist/app/assets/Page-Dqf45zd4.js +0 -1
- package/dist/app/assets/Pagination-fEfxXCWD.js +0 -1
- package/dist/app/assets/PortaLock-BFpTWuKB.js +0 -2
- package/dist/app/assets/SchemaForm-B_SWmx0L.css +0 -1
- package/dist/app/assets/SchemaForm-DKxGZpnK.js +0 -1
- package/dist/app/assets/Settings-ALaVSuhU.js +0 -1
- package/dist/app/assets/SigillumGate-Bq_GLDvI.js +0 -1
- package/dist/app/assets/SingleLayout-BzRi_cEY.js +0 -1
- package/dist/app/assets/SpatialLayout-Cote5YNZ.js +0 -1
- package/dist/app/assets/Spinner-B-iOhBZq.js +0 -1
- package/dist/app/assets/SplitLayout-CK5SuMF1.js +0 -1
- package/dist/app/assets/StackLayout-BUdng0sD.js +0 -1
- package/dist/app/assets/Start-D5KBqSwf.js +0 -1
- package/dist/app/assets/TabLayout-ByKrZ0yM.js +0 -1
- package/dist/app/assets/TabPanelLayout-B4DWG6Zm.js +0 -1
- package/dist/app/assets/TerminalPage-CDtmKMSK.js +0 -18
- package/dist/app/assets/ThemeModeToggle-C0j9D4s0.js +0 -1
- package/dist/app/assets/ThemePicker-DEUED0NH.js +0 -1
- package/dist/app/assets/Tree-fxC7yDSR.js +0 -1
- package/dist/app/assets/VideoPage-Cz7g_2E1.js +0 -1
- package/dist/app/assets/WindowControls-BWi1hOPh.js +0 -1
- package/dist/app/assets/actions-BzJiPQuh.js +0 -1
- package/dist/app/assets/changeset-eZAmDe3s.js +0 -1
- package/dist/app/assets/channel-UD2KGCy_.js +0 -1
- package/dist/app/assets/composer-commands-B8AF8OGi.js +0 -2
- package/dist/app/assets/data-hUAVersf.js +0 -2
- package/dist/app/assets/dist-33oU5N7i.js +0 -1
- package/dist/app/assets/dist-B4E-6SqB.js +0 -1
- package/dist/app/assets/dist-BDH0Q8eg.js +0 -13
- package/dist/app/assets/dist-BfGIsxxP.js +0 -1
- package/dist/app/assets/dist-BwHJSc3S.js +0 -6
- package/dist/app/assets/dist-DUFzb_Eu.js +0 -23
- package/dist/app/assets/dist-DX2Uz40S.js +0 -9
- package/dist/app/assets/dist-Db_OB0lX.js +0 -11
- package/dist/app/assets/dist-IR189dk6.js +0 -1
- package/dist/app/assets/dist-rmKzqdIO.js +0 -1
- package/dist/app/assets/drag-ruzgQUFW.js +0 -1
- package/dist/app/assets/emojis-7RT6GvLa.js +0 -1
- package/dist/app/assets/folder-path-CTpCmycG.js +0 -1
- package/dist/app/assets/index-B1VQ36Tb.css +0 -1
- package/dist/app/assets/index-yhQX4tVS.js +0 -14
- package/dist/app/assets/media-Coozt7AL.js +0 -1
- package/dist/app/assets/notify-BQ9fSOfy.js +0 -1
- package/dist/app/assets/registry-iidw4F1W.js +0 -1
- package/dist/app/assets/sessions-8PScJEDe.js +0 -2
- package/dist/app/assets/state-KGSq646f.js +0 -1
- package/dist/app/assets/terminal-BPj7jGw5.js +0 -1
- package/dist/app/assets/text-BdULOY8N.js +0 -1
- package/dist/app/assets/turn-BoF7W1h6.js +0 -3
- package/dist/app/assets/useStoreLabel-BuZT1So6.js +0 -1
- package/dist/app/assets/viewers-MssMDn0e.js +0 -1
- package/dist/app/assets/words-CyqfIDyJ.js +0 -2
- package/dist/app/assets/words-T8-D0K4W.js +0 -1
|
@@ -0,0 +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{r}from"./colors-BieSUSt7.js";import{l as i,t as a}from"./useI18n-T3BwAm0z.js";import{t as o}from"./Button-_R1oktDz.js";import{$ as s,J as c,r as l,s as u}from"./data-DsJQo1Qk.js";import{t as d}from"./Badge-BDEW5PFb.js";import{t as f}from"./Spinner-CBEPv0eM.js";import{t as p}from"./Text-MPtQvYE-.js";import{t as m}from"./DetailList-Yalgw0YM.js";import{at as h,lt as g,ot as _,st as v,tt as y,ut as b,wt as x}from"./index-ddqm5vYD.js";import{n as S}from"./HostLines-CtIqw3A0.js";import{t as C}from"./PageAlert-B8ulCXV4.js";import{t as w}from"./channel-BWOXaftf.js";import{n as T,t as E}from"./actions-CFnmwNqb.js";var D=e();function O({value:e=0,max:t=100,label:n,display:i,color:a,indeterminate:o,height:s,style:c,className:l}){let u=t>0?t:100,d=Math.max(0,Math.min(100,e/u*100)),f={"--oo-progress-color":a?r(a):`var(--oo-color-accent-rgb, 0 102 204)`,"--oo-progress-height":s?`${s}px`:void 0,...c},p=i===`value`?`${e} / ${u}`:i===`percent`?`${Math.round(d)}%`:i;return(0,D.jsxs)(`div`,{className:[`oo-progress`,l].filter(Boolean).join(` `),style:f,children:[n||p?(0,D.jsxs)(`div`,{className:`oo-progress__head`,children:[n?(0,D.jsx)(`span`,{className:`oo-progress__label`,children:n}):null,p?(0,D.jsx)(`span`,{className:`oo-progress__value`,children:p}):null]}):null,(0,D.jsx)(`div`,{className:`oo-progress__track`,role:`progressbar`,"aria-valuenow":o?void 0:e,"aria-valuemin":0,"aria-valuemax":u,"aria-valuetext":n,children:o?(0,D.jsx)(`div`,{className:`oo-progress__bar oo-progress__bar--indet`}):(0,D.jsx)(`div`,{className:`oo-progress__bar`,style:{width:`${d}%`}})})]})}var k=t();function A(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}var j=e=>typeof e==`number`&&Number.isFinite(e)?e:void 0;function M(e){let t;try{t=A(e===null?null:JSON.parse(e))}catch{return null}if(t===null||t.running!==!0)return null;let n=A(t.cpu),r=A(t.memory),i=j(r?.used),a=j(r?.limit);if(i===void 0||a===void 0)return null;let o=A(t.network),s=A(t.block),c=j(o?.rx),l=j(o?.tx),u=j(s?.read),d=j(s?.write),f=j(n?.cores),p=j(t.pids);return{cpu:{percent:j(n?.percent)??0,...f===void 0?{}:{cores:f}},memory:{used:i,limit:a,percent:j(r?.percent)??(a===0?0:i/a*100)},...p===void 0?{}:{pids:p},...c===void 0||l===void 0?{}:{network:{rx:c,tx:l}},...u===void 0||d===void 0?{}:{block:{read:u,write:d}}}}var N=[`B`,`KiB`,`MiB`,`GiB`,`TiB`];function P(e){let t=e,n=0;for(;t>=1024&&n<N.length-1;)t/=1024,n+=1;return`${n===0||t>=10?Math.round(t):t.toFixed(1)} ${N[n]}`}var F={running:`success`,problem:`danger`,stopped:`default`},I=5e3;function L(e,t){let n=s()===`multi`?[{label:i(`common/host`),value:(0,D.jsx)(S,{host:e})}]:[],r=(e,t)=>{t!==void 0&&n.push({label:i(`computers/facts/${e}`),value:t})};return r(`image`,t.image),r(`destination`,t.destination),r(`command`,t.command),r(`workdir`,t.workdir),r(`network`,t.network),r(`cores`,t.cores===void 0?void 0:String(t.cores)),r(`memoryLimit`,t.memoryLimit===void 0?void 0:P(t.memoryLimit)),r(`exitCode`,t.running||t.exitCode===void 0?void 0:String(t.exitCode)),r(`started`,t.startedAt===void 0?void 0:x(t.startedAt)),r(`created`,t.created===void 0?void 0:x(t.created)),r(`container`,t.containerId?.slice(0,12)),r(`pid`,t.pid===void 0?void 0:String(t.pid)),n}function R({usage:e}){let{t}=a(),n=[];e.pids!==void 0&&n.push({label:t(`computers/usage/pids`),value:String(e.pids)}),e.network!==void 0&&n.push({label:t(`computers/usage/network`),value:`\u{2193} ${P(e.network.rx)} \u{00B7} \u{2191} ${P(e.network.tx)}`}),e.block!==void 0&&n.push({label:t(`computers/usage/disk`),value:`\u{2193} ${P(e.block.read)} \u{00B7} \u{2191} ${P(e.block.write)}`});let r=Math.round(e.cpu.percent),i=Math.round(e.memory.percent);return(0,D.jsxs)(`div`,{className:`web-usage`,children:[(0,D.jsxs)(`div`,{className:`web-usage__meter`,children:[(0,D.jsx)(`span`,{className:`web-usage__label`,children:e.cpu.cores===void 0?t(`computers/usage/cpu`,{percent:r}):t(`computers/usage/cpuOf`,{percent:r,cores:e.cpu.cores})}),(0,D.jsx)(O,{value:Math.min(r,100),max:100,color:r>=85?`red`:r>=65?`orange`:`blue`})]}),(0,D.jsxs)(`div`,{className:`web-usage__meter`,children:[(0,D.jsx)(`span`,{className:`web-usage__label`,children:t(`computers/usage/memory`,{used:P(e.memory.used),limit:P(e.memory.limit),percent:i})}),(0,D.jsx)(O,{value:Math.min(i,100),max:100,color:i>=85?`red`:i>=65?`orange`:`blue`})]}),n.length===0?null:(0,D.jsx)(m,{items:n,columns:3})]})}function z({host:e,machine:t}){let{t:r}=a(),{state:i,error:s}=w(e,y,_),x=n(l(e).offers)??c,S=i?.records.find(e=>e.id===t),O=S!==void 0&&g(S.record).running,[A,j]=(0,k.useState)(null);if((0,k.useEffect)(()=>{if(!O||t===void 0){j(null);return}let n=`${h(v(x),t)}/stats`,r=!0,i=()=>{u(e).readText(n).then(({text:e})=>{r&&j(M(e))},()=>{r&&j(null)})};i();let a=window.setInterval(i,I);return()=>{r=!1,window.clearInterval(a)}},[e,t,O,x]),s!==null)return(0,D.jsx)(C,{tone:`danger`,title:r(`computers/notices/none`),message:s});if(i===void 0)return(0,D.jsx)(f,{label:r(`computers/notices/reading`)});if(S===void 0||t===void 0)return(0,D.jsx)(C,{tone:`warning`,message:r(`computers/notices/gone`)});let N=g(S.record),P=b(N),z=N.controlled&&T(x,`write`);return(0,D.jsxs)(`div`,{className:`web-page`,children:[(0,D.jsxs)(`div`,{className:`web-page__head`,children:[(0,D.jsxs)(`div`,{className:`web-chat__title`,children:[(0,D.jsx)(p,{variant:`h2`,text:t}),(0,D.jsx)(d,{tone:F[P],text:N.oomKilled?r(`computers/standing/oom`):r(`computers/standing/${P}`)})]}),(0,D.jsxs)(`div`,{className:`web-page__actions`,children:[z?N.running?(0,D.jsx)(o,{label:r(`computers/actions/stop`),onClick:()=>void E(e,x,t,`stop`)}):(0,D.jsx)(o,{label:r(`computers/actions/start`),variant:`primary`,onClick:()=>void E(e,x,t,`start`)}):null,z&&N.running?(0,D.jsx)(o,{label:r(`computers/actions/restart`),onClick:()=>void E(e,x,t,`restart`)}):null,N.controlled&&T(x,`delete`)?(0,D.jsx)(o,{label:r(`computers/actions/remove`),onClick:()=>void E(e,x,t,`remove`)}):null]})]}),N.oomKilled?(0,D.jsx)(C,{tone:`warning`,message:r(`computers/notices/oom`)}):null,(0,D.jsx)(m,{items:L(e,N),columns:2}),A===null?null:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(p,{variant:`h3`,text:r(`computers/page/usage`)}),(0,D.jsx)(R,{usage:A})]}),N.mounts.length===0?null:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(p,{variant:`h3`,text:r(`computers/page/mounts`)}),(0,D.jsx)(`ul`,{className:`web-mounts`,children:N.mounts.map(e=>(0,D.jsxs)(`li`,{children:[(0,D.jsx)(`span`,{className:`web-method`,children:e.source}),` → `,(0,D.jsx)(`span`,{className:`web-method`,children:e.target}),e.readOnly?(0,D.jsx)(d,{tone:`default`,text:r(`computers/page/readOnly`)}):null]},`${e.source}\u{0000}${e.target}`))})]}),(0,D.jsxs)(`details`,{className:`web-record`,children:[(0,D.jsx)(`summary`,{children:r(`computers/page/record`)}),(0,D.jsx)(`pre`,{children:JSON.stringify(S.record.status,null,2)})]})]})}export{z as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
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{l as r,t as i}from"./useI18n-T3BwAm0z.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./Button-_R1oktDz.js";import{a as s}from"./locales-DOA2j2AT.js";import{B as c,C as l,F as u,I as d,Q as f,S as p,T as m,b as h,ot as g,r as _,s as v,u as y}from"./data-DsJQo1Qk.js";import{t as b}from"./emojis-B4zHbUyk.js";import{t as x}from"./ContextMenu-DlF_3KO_.js";import{t as S}from"./Badge-BDEW5PFb.js";import{t as C}from"./Spinner-CBEPv0eM.js";import{t as w}from"./Markdown-_Awuh7Ku.js";import{t as T}from"./Alert-BhdRA0LL.js";import{t as E,u as D}from"./Composer-DYocj0Ot.js";import{t as O}from"./Text-MPtQvYE-.js";import{s as k}from"./terminal-Ctk6FYnN.js";import{b as A,h as ee,m as j,y as te}from"./composer-commands-CzjP_L_C.js";import{t as ne}from"./state-DQKzjLgu.js";import{t as re}from"./save-file-CirO0l-u.js";import{a as M,n as N,r as P,t as F}from"./turn-z1TPlA5Q.js";import{t as I}from"./CopyButton-BSesWpVW.js";import{n as L,r as R,t as ie}from"./clicks-BeeNCvCP.js";import{t as ae}from"./PageAlert-B8ulCXV4.js";import{t as oe}from"./channel-BWOXaftf.js";import{o as se,t as z}from"./Bood-Dg-XtOTh.js";var B=t(),V=(0,B.createContext)(null),H=(0,B.createContext)(null);function U(){let e=(0,B.useContext)(H);if(e===null)throw Error(`A transcript part is drawn outside a session page.`);return e}var W={picked:[],text:``,other:!1};function G(e){return String(e.kind)===`boolean`?[{id:`yes`,label:r(`sessions/question/yes`)},{id:`no`,label:r(`sessions/question/no`)}]:`options`in e?e.options:[]}function ce(e){let t=String(e.kind);return t===`single-select`||t===`multi-select`||t===`boolean`}function le(e){return`allowFreeformInput`in e&&e.allowFreeformInput===!0}function ue(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 de(e){let t=e?.value;if(t===void 0)return W;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{...W,text:String(t.value??``)};case`boolean`:return{...W,picked:[t.value===!0?`yes`:`no`]};case`selected`:return r({...W,picked:[String(t.value)]});case`selected-many`:return r({...W,picked:Array.isArray(t.value)?t.value.map(String):[]});default:return W}}function fe(e,t){let n=t?.value;if(n===void 0)return r(`sessions/question/skipped`);let i=t=>G(e).find(e=>e.id===t)?.label??t,a=n.freeformValues??[];switch(n.kind){case`boolean`:return r(n.value===!0?`sessions/question/yes`:`sessions/question/no`);case`selected`:return[i(String(n.value)),...a].join(`, `);case`selected-many`:return[...Array.isArray(n.value)?n.value.map(e=>i(String(e))):[],...a].join(`, `);default:return String(n.value??``)}}var K=e(),q=new Map;function pe(e,t){return q.has(`${e}\u0000${t}`)}var me=`The agent has a question`,he={"single-select":`single`,"multi-select":`multi`,text:`text`,number:`number`,integer:`number`};function ge(e){let t=he[String(e.kind)],n=le(e),i=t===void 0?n?`other`:void 0:n?`${t}Other`:t;if(i===void 0)return e.required===!0?``:r(`sessions/question/hint/optional`);let a=r(`sessions/question/hint/${i}`);return e.required===!0?a:r(`sessions/question/hint/withOptional`,{hint:a})}function _e({question:e,draft:t,set:n,next:r}){let{t:a}=i(),o=String(e.kind),s=o===`multi-select`,c=e=>{n(s?{...t,picked:t.picked.includes(e)?t.picked.filter(t=>t!==e):[...t.picked,e]}:{...t,picked:[e],other:!1})},l=e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),r())};return ce(e)?(0,K.jsxs)(`div`,{className:`web-ask__options`,role:s?`group`:`radiogroup`,children:[G(e).map((e,n)=>{let r=t.picked.includes(e.id);return(0,K.jsxs)(`button`,{type:`button`,className:`web-ask__option`,role:s?`checkbox`:`radio`,"aria-checked":r,"data-on":r,onClick:()=>c(e.id),children:[(0,K.jsx)(`span`,{className:`web-ask__mark`,"data-many":s,"aria-hidden":`true`}),(0,K.jsxs)(`span`,{className:`web-ask__option-body`,children:[(0,K.jsxs)(`span`,{className:`web-ask__option-label`,children:[(0,K.jsx)(`span`,{className:`web-ask__key`,children:n+1}),e.label,e.recommended===!0?(0,K.jsx)(`span`,{className:`web-ask__tag`,children:a(`sessions/question/recommended`)}):null]}),e.description===void 0?null:(0,K.jsx)(`span`,{className:`web-ask__option-hint`,children:e.description})]})]},e.id)}),le(e)?(0,K.jsxs)(`div`,{className:`web-ask__option web-ask__other`,"data-on":t.other,children:[(0,K.jsx)(`button`,{type:`button`,className:`web-ask__mark`,"data-many":s,role:s?`checkbox`:`radio`,"aria-checked":t.other,"aria-label":a(`sessions/question/other`),onClick:()=>n({...t,other:!t.other||!s,...s?{}:{picked:[]}})}),(0,K.jsx)(`input`,{className:`web-field`,value:t.text,placeholder:a(`sessions/question/otherPlaceholder`),onFocus:()=>{t.other||n({...t,other:!0,...s?{}:{picked:[]}})},onChange:e=>n({...t,text:e.target.value,other:!0,...s?{}:{picked:[]}}),onKeyDown:l})]}):null]}):o===`number`||o===`integer`?(0,K.jsx)(`input`,{className:`web-field`,type:`number`,autoFocus:!0,value:t.text,onChange:e=>n({...t,text:e.target.value}),onKeyDown:l}):(0,K.jsx)(`textarea`,{className:`web-field web-ask__text`,rows:3,autoFocus:!0,value:t.text,placeholder:a(`sessions/question/yourAnswer`),onChange:e=>n({...t,text:e.target.value}),onKeyDown:l})}function ve({request:e,send:t,live:n,response:r}){let{t:a}=i(),c=`${U()}\u0000${e.id}`,l=e.questions??[],[u,d]=(0,B.useState)(()=>Object.fromEntries(l.map(t=>[t.id,de(e.answers?.[t.id])]))),[f,p]=(0,B.useState)(0),[m,h]=(0,B.useState)(()=>q.get(c)??null),g=Object.fromEntries(l.flatMap(e=>{let t=ue(e,u[e.id]??W);return t===void 0?[]:[[e.id,t]]})),_=l.filter(e=>e.required===!0&&g[e.id]===void 0),v=e.message!==void 0&&e.message!==me?e.message:void 0,y=n=>{let r={response:n,answers:n===`accept`?g:{}};q.set(c,r),h(r),t({type:`chat/inputCompleted`,requestId:e.id,response:n,...n===`accept`&&Object.keys(g).length>0?{answers:g}:{}})},b=r??m?.response;if(b!==void 0||!n){let t=m?.answers??e.answers??{},i=m!==null&&r===void 0&&n;return(0,K.jsxs)(`div`,{className:`web-ask`,"data-done":`true`,children:[(0,K.jsxs)(`div`,{className:`web-ask__head`,children:[(0,K.jsx)(`span`,{className:`web-ask__title`,children:a(b===`decline`?`sessions/question/declined`:b===void 0?`sessions/question/unanswered`:`sessions/question/answered`)}),i?(0,K.jsx)(`span`,{className:`web-note`,children:a(`sessions/question/sending`)}):null]}),b===`accept`?(0,K.jsx)(`dl`,{className:`web-ask__summary`,children:l.map(e=>(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{children:e.title??e.message}),(0,K.jsx)(`dd`,{children:fe(e,t[e.id])})]},e.id))}):null]})}let x=l[f],S=f>=l.length-1,C=x===void 0?void 0:g[x.id],T=x!==void 0&&x.required===!0&&C===void 0,E=()=>{T||(S?_.length===0&&y(`accept`):p(f+1))};return(0,K.jsxs)(`div`,{className:`web-ask`,tabIndex:-1,onKeyDown:e=>{let t=e.target;if(x===void 0||t.closest(`input, textarea`)!==null||!/^[1-9]$/.test(e.key))return;let n=G(x)[Number(e.key)-1];if(n===void 0)return;let r=u[x.id]??W,i=String(x.kind)===`multi-select`,a=i?r.picked.includes(n.id)?r.picked.filter(e=>e!==n.id):[...r.picked,n.id]:[n.id];d({...u,[x.id]:{...r,picked:a,...i?{}:{other:!1}}})},children:[(0,K.jsxs)(`div`,{className:`web-ask__head`,children:[(0,K.jsxs)(`span`,{className:`web-ask__title`,children:[(0,K.jsx)(`span`,{className:`web-ask__icon`,"aria-hidden":`true`,children:`?`}),a(v===void 0?`sessions/question/asks`:`sessions/question/asksColon`)]}),l.length>1?(0,K.jsxs)(`span`,{className:`web-ask__steps`,"aria-label":a(`sessions/question/step`,{page:f+1,total:l.length}),children:[l.map((e,t)=>(0,K.jsx)(`button`,{type:`button`,className:`web-ask__step`,"data-here":t===f,"data-done":g[e.id]!==void 0,title:e.title??e.message,onClick:()=>p(t)},e.id)),(0,K.jsx)(`span`,{className:`web-ask__count`,children:a(`sessions/question/count`,{page:f+1,total:l.length})})]}):null]}),v===void 0?null:(0,K.jsx)(`div`,{className:`web-ask__message`,children:(0,K.jsx)(w,{text:v})}),e.url===void 0?null:(0,K.jsx)(`a`,{className:`web-link`,href:e.url,target:`_blank`,rel:`noreferrer`,children:e.url}),x===void 0?null:(0,K.jsxs)(`section`,{className:`web-ask__question`,children:[x.title===void 0?null:(0,K.jsx)(`span`,{className:`web-ask__chip`,children:x.title}),(0,K.jsx)(`div`,{className:`web-ask__text-line`,children:x.message}),(0,K.jsx)(`div`,{className:`web-ask__hint`,children:ge(x)}),(0,K.jsx)(_e,{question:x,draft:u[x.id]??W,set:e=>d({...u,[x.id]:e}),next:E})]},x.id),(0,K.jsxs)(`div`,{className:`web-ask__actions`,children:[(0,K.jsx)(o,{label:a(`sessions/question/decline`),size:`sm`,onClick:()=>y(`decline`)}),(0,K.jsx)(`span`,{className:`web-ask__spacer`}),f>0?(0,K.jsx)(o,{label:a(`sessions/question/back`),size:`sm`,onClick:()=>p(f-1)}):null,S?(0,K.jsx)(o,{label:a(`sessions/question/answer`),variant:`primary`,size:`sm`,disabled:_.length>0,onClick:()=>y(`accept`)}):(0,K.jsx)(o,{label:a(`sessions/question/next`),variant:`primary`,size:`sm`,disabled:T,onClick:E})]}),S&&_.length>0&&!T?(0,K.jsx)(`p`,{className:`web-note`,children:s(`sessions/question/missing`,_.length)}):null]})}var ye=[`command`,`file_path`,`path`,`pattern`,`query`,`url`,`description`],be=`ahpd.startedAt`,xe=`ahpd.durationMs`;function Se(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 Ce(e){let t=Se(e);return t===void 0?``:typeof t==`string`?t:JSON.stringify(t,null,2)}function we(e){let t=Se(e);if(typeof t!=`object`||!t)return``;let n=t;for(let e of ye){let t=n[e];if(typeof t==`string`&&t.trim()!==``)return t.trim().split(`
|
|
2
|
+
`)[0]}return``}function Te(e){let t=Se(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 Ee(e){let t=(e.status===`completed`||e.status===`pending-result-confirmation`?c(e.pastTenseMessage):``)||c(`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=we(e);return r===``?n:`${n} ${r}`}function De(e){let t=e._meta?.[xe];return typeof t==`number`?t:void 0}function Oe(e){let t=e._meta?.[be];if(typeof t!=`string`)return;let n=Date.parse(t);return Number.isNaN(n)?void 0:n}var ke={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 Ae(e){let t=e._meta?.toolKind;if(t===`terminal`||t===`read`||t===`search`||t===`subagent`)return t;let n=ke[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 je(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 Me=e=>e.replace(/\u001b\[[0-9;?]*[ -/]*[@-~]/g,``);function Ne(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??r(`sessions/details/terminal`)),text:Me(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:d(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 if(t===`subagent`){let t=e.agentName??e.title;n.push({kind:`note`,text:t==null?r(`sessions/tool/ranSubagent`):r(`sessions/tool/ran`,{name:String(t)})})}else t===`resource`&&n.push({kind:`note`,text:r(`sessions/tool/read`,{path:d(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={denied:`denied`,skipped:`skipped`,"result-denied":`resultDenied`}[String(e.reason)]??`cancelledNote`;n.push({kind:`note`,text:c(e.reasonMessage)||r(`sessions/tool/${t}`)})}return n}var Pe=/\[([^\]]+)\]\(([^)\s]+)\)|`([^`]+)`/g;function Fe(e,t){let n=[],r=0;for(let t of e.matchAll(Pe))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 J=`pending-confirmation`,Ie=`pending-result-confirmation`,Y={preparing:{glyph:b.pending,label:`sessions/tool/preparing`},approval:{glyph:b.waiting,label:`sessions/tool/approval`},running:{glyph:b.running,label:`sessions/tool/running`},"sign-in":{glyph:b.waiting,label:`sessions/tool/signIn`},review:{glyph:b.waiting,label:`sessions/tool/review`},done:{glyph:b.check,label:`sessions/tool/done`},failed:{glyph:b.cross,label:`sessions/tool/failed`},cancelled:{glyph:b.cross,label:`sessions/tool/cancelled`}};function Le(){return ie(a(),U(),(0,B.useContext)(V))}var Re={terminal:b.terminal,read:b.read,search:b.search,edit:b.edit,subagent:b.subagent,web:b.web,other:b.dot};function ze({line:e,file:t}){let n=a(),{t:r}=i(),o=(0,B.useContext)(V);return(0,K.jsx)(`span`,{className:`web-tool__line`,children:Fe(e,t).map((e,t)=>{let i=e.href===void 0?null:e.code===!0?L(e.href,o):R(e.href,o);if(i===null)return e.code===!0?(0,K.jsx)(`code`,{children:e.text},t):(0,K.jsx)(`span`,{children:e.text},t);let a=e=>{e.stopPropagation(),e.preventDefault(),n.commands.execute(`ahp.openFile`,{uri:i.uri,line:i.line,end:i.end})};return(0,K.jsx)(`span`,{role:`link`,tabIndex:0,className:`web-tool__ref`,title:r(`sessions/attachments/open`,{name:d(i.uri)}),onClick:a,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&a(e)},children:e.text},t)})})}function X({title:e,text:t}){return(0,K.jsxs)(`section`,{className:`web-tool__block`,children:[(0,K.jsxs)(`div`,{className:`web-tool__block-head`,children:[(0,K.jsx)(`span`,{children:e}),(0,K.jsx)(I,{text:t})]}),(0,K.jsx)(`pre`,{className:`web-tool__pre`,children:t})]})}function Be({out:e}){let t=a(),{t:n}=i();switch(e.kind){case`text`:return(0,K.jsx)(X,{title:n(`sessions/tool/output`),text:e.text});case`terminal`:{let t=e.exitCode===void 0?``:` \u{00B7} ${n(`sessions/tool/exit`,{code:e.exitCode})}`;return(0,K.jsx)(X,{title:`${e.title}${t}${e.truncated?` \u{00B7} ${n(`sessions/tool/cutShort`)}`:``}`,text:e.text===``?n(`sessions/tool/noOutput`):e.text})}case`file`:return(0,K.jsxs)(`p`,{className:`web-tool__file`,children:[(0,K.jsx)(`button`,{type:`button`,className:`web-link`,title:e.before===void 0&&e.after===void 0?n(`sessions/tool/openFile`):n(`sessions/tool/openChange`),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,K.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,e.added]}),e.removed===void 0?null:(0,K.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,e.removed]})]});case`note`:return(0,K.jsx)(`p`,{className:`web-note`,children:e.text})}}function Ve({call:e,send:t,live:n,turnId:r}){let s=je(e),c=n&&(s===`approval`||s===`review`||s===`sign-in`),[l,f]=(0,B.useState)(!1),p=l||c,m=De(e),h=Ce(e),g=Ne(e),_=e.displayName||e.toolName,v=e.status===J?e.riskAssessment:void 0,y=Te(e),b=a(),{t:x}=i(),S=x(Y[s].label);return(0,K.jsxs)(`div`,{className:`web-tool`,"data-outcome":s,children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":p,title:S,onClick:()=>f(!l),children:[(0,K.jsx)(`span`,{className:`web-tool__mark`,"aria-label":S,children:Re[Ae(e)]}),(0,K.jsx)(ze,{line:Ee(e),file:y}),s===`failed`||s===`cancelled`?(0,K.jsx)(`span`,{className:`web-tool__state`,children:S}):null,m===void 0||m<1e3?null:(0,K.jsx)(`span`,{className:`web-tool__time`,children:u(m)})]}),p?(0,K.jsxs)(`div`,{className:`web-tool__body`,children:[(0,K.jsxs)(`dl`,{className:`web-tool__facts`,children:[(0,K.jsx)(`dt`,{children:x(`sessions/tool/tool`)}),(0,K.jsxs)(`dd`,{children:[(0,K.jsx)(`code`,{children:e.toolName}),_===e.toolName?null:` (${_})`]}),(0,K.jsx)(`dt`,{children:x(`sessions/tool/status`)}),(0,K.jsx)(`dd`,{children:S}),y===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:x(`sessions/tool/file`)}),(0,K.jsx)(`dd`,{children:(0,K.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>void b.commands.execute(`ahp.openFile`,{uri:y}),children:d(y)})})]}),e.intention===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:x(`sessions/tool/why`)}),(0,K.jsx)(`dd`,{children:e.intention})]}),v===void 0||v.status!==`complete`?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:x(`sessions/tool/risk`)}),(0,K.jsx)(`dd`,{children:`${x(`sessions/tool/safety`,{safety:v.safety})} \u{00B7} ${v.reason}`})]})]}),h===``?null:(0,K.jsx)(X,{title:x(`sessions/tool/arguments`),text:h}),g.map((e,t)=>(0,K.jsx)(Be,{out:e},t)),n&&e.status===J?(0,K.jsx)(Ue,{call:e,send:t,turnId:r}):null,n&&e.status===Ie?(0,K.jsxs)(`div`,{className:`web-tool__actions`,children:[(0,K.jsx)(o,{label:x(`sessions/tool/acceptResult`),variant:`primary`,onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:r,toolCallId:e.toolCallId,approved:!0})}),(0,K.jsx)(o,{label:x(`sessions/tool/reject`),onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:r,toolCallId:e.toolCallId,approved:!1})})]}):null]}):null]})}function He({text:e,running:t}){let{t:n}=i(),[r,a]=(0,B.useState)(!1),o=e.replace(/[*_`#>]/g,``).replace(/\s+/g,` `).trim();return(0,K.jsxs)(`div`,{className:`web-tool`,"data-outcome":t?`running`:`thought`,children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":r,onClick:()=>a(!r),children:[(0,K.jsx)(`span`,{className:`web-tool__mark`,"aria-hidden":`true`,children:b.thinking}),(0,K.jsx)(`span`,{className:`web-tool__line`,children:r?n(`sessions/activity/thinking`):n(`sessions/tool/thinkingAbout`,{text:o})})]}),r?(0,K.jsx)(`div`,{className:`web-tool__body web-md`,children:(0,K.jsx)(w,{text:e})}):null]})}function Ue({call:e,send:t,turnId:n}){let{t:r}=i(),a=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!0,confirmed:`user-action`,...r===void 0?{}:{selectedOptionId:r}}),s=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!1,reason:`denied`,...r===void 0?{}:{selectedOptionId:r}}),l=e.status===J?e.options??[]:[],u=e.status===J?c(e.confirmationTitle):``;return(0,K.jsxs)(`div`,{className:`web-tool__confirm`,children:[u===``?null:(0,K.jsx)(w,{text:u}),(0,K.jsx)(`div`,{className:`web-tool__actions`,children:l.length===0?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(o,{label:r(`sessions/tool/approve`),variant:`primary`,onClick:()=>a()}),(0,K.jsx)(o,{label:r(`sessions/tool/deny`),onClick:()=>s()})]}):l.map(e=>(0,K.jsx)(o,{label:e.label,...e.kind===`approve`?{variant:`primary`}:{},onClick:()=>e.kind===`approve`?a(e.id):s(e.id)},e.id))})]})}var We=(0,B.memo)(function({part:e,send:t,live:n,turnId:r}){let o=Le(),s=a(),{t:l}=i();switch(String(e.kind)){case`markdown`:return`content`in e?(0,K.jsx)(`div`,{className:`web-md`,onClick:o,children:(0,K.jsx)(w,{text:e.content})}):null;case`contentRef`:{let t=`uri`in e?String(e.uri):``;return(0,K.jsx)(`button`,{type:`button`,className:`web-chip`,onClick:()=>void s.commands.execute(`ahp.openFile`,{uri:t}),children:`${b.file} ${d(t).split(`/`).pop()??t}`})}case`reasoning`:return`content`in e&&e.content!==``?(0,K.jsx)(He,{text:e.content,running:!1}):null;case`toolCall`:return`toolCall`in e?(0,K.jsx)(Ve,{call:e.toolCall,send:t,live:n,turnId:r}):null;case`inputRequest`:return`request`in e?(0,K.jsx)(ve,{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,K.jsx)(T,{tone:`danger`,message:`error`in e&&e.error.message!==``?e.error.message:l(`sessions/tool/agentError`)});case`systemNotification`:return(0,K.jsx)(`p`,{className:`web-note`,children:`content`in e?c(e.content):``});default:return null}}),Ge=60,Ke=e=>typeof e==`object`&&!!e;function qe(e){return typeof e==`string`?JSON.stringify(e):Array.isArray(e)?`[…]`:Ke(e)?`{…}`:String(e)}function Je(e,t=Ge){let n=Array.isArray(e)?e.map(qe):Object.entries(e).map(([e,t])=>`${e}: ${qe(t)}`),[r,i]=Array.isArray(e)?[`(${String(e.length)}) [`,`]`]:[`{`,`}`],a=``;for(let e of n){let n=a===``?e:`${a}, ${e}`;if(n.length>t)return`${r}${a===``?e.slice(0,t):a}, …${i}`;a=n}return`${r}${a}${i}`}var Ye=e=>e===null?`null`:typeof e;function Xe({name:e,value:t,depth:n}){let[r,i]=(0,B.useState)(n===0),a=e===null?null:(0,K.jsx)(`span`,{className:`web-json__key`,children:e});if(!Ke(t))return(0,K.jsxs)(`li`,{className:`web-json__row`,children:[a,a===null?null:`: `,(0,K.jsx)(`span`,{className:`web-json__leaf`,"data-kind":Ye(t),children:qe(t)})]});let o=Array.isArray(t)?t.map((e,t)=>[String(t),e]):Object.entries(t);return(0,K.jsxs)(`li`,{className:`web-json__row`,children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-json__branch`,"aria-expanded":r,onClick:()=>i(!r),children:[(0,K.jsx)(`span`,{className:`web-json__caret`,"aria-hidden":`true`,children:r?`▾`:`▸`}),a,a===null?null:`: `,(0,K.jsx)(`span`,{className:`web-json__preview`,children:Je(t)})]}),r?(0,K.jsx)(`ul`,{className:`web-json__children`,children:o.map(([e,t])=>(0,K.jsx)(Xe,{name:e,value:t,depth:n+1},e))}):null]})}function Ze({value:e}){return(0,K.jsx)(`ul`,{className:`web-json`,children:(0,K.jsx)(Xe,{name:null,value:e,depth:0})})}function Qe(e){let t=e;switch(String(e.kind)){case`markdown`:case`reasoning`:{let n=typeof t.content==`string`?t.content:``;return n.trim()===``?null:{kind:String(e.kind)===`markdown`?`text`:`reasoning`,text:n}}case`toolCall`:{let e=t.toolCall;return{kind:`tool`,text:Ee(e),call:e}}case`inputRequest`:{let e=t.request;return{kind:`question`,text:e?.message??e?.questions?.[0]?.message??``}}case`error`:return{kind:`error`,text:t.error?.message??``};case`contentRef`:return{kind:`file`,text:typeof t.uri==`string`?t.uri:``};default:return{kind:`note`,text:c(t.content??``)}}}function $e(e,t,n){let{responseParts:r,...i}=e,a=[{id:`${e.id}:1`,kind:`message`,step:1,text:e.message.text,source:e.message}];for(let t of r){let n=Qe(t);if(n===null)continue;let r=a.length+1;a.push({id:`${e.id}:${String(r)}`,step:r,source:t,...n})}return{id:e.id,index:t,live:n,facts:F(e),source:i,steps:a}}function et(e,t){let n=e.map((e,t)=>$e(e,t+1,!1));return t===void 0?n:[...n,$e(t,e.length+1,!0)]}function tt(e,t,n){return t===`all`?[...e]:e.filter(e=>e.call!==void 0&&(t===`tools`||n.has(e.call.toolCallId)))}var nt={message:b.send,text:b.markdown,reasoning:b.thinking,question:b.waiting,error:b.cross,note:b.dot,file:b.file},rt=[`all`,`tools`,`subagents`],it=e=>{try{return JSON.stringify(e,null,2)??String(e)}catch{return String(e)}};function at(e,t){let{startedAt:n,duration:r,model:i,input:a,output:o}=e.facts;return[n===void 0?void 0:M(n),r===void 0?void 0:u(r),i,a===void 0&&o===void 0?void 0:t(`sessions/raw/tokens`,{input:P(a??0),output:P(o??0)}),e.live?t(`sessions/raw/live`):void 0].filter(e=>e!==void 0).join(` · `)}function ot({view:e,setView:t,source:n}){let{t:r}=i();return(0,K.jsxs)(`div`,{className:`web-raw__views`,role:`radiogroup`,"aria-label":r(`sessions/raw/view`),children:[[`formatted`,`raw`,`json`].map((n,i)=>(0,K.jsxs)(`span`,{className:`web-raw__view-item`,children:[i===0?null:(0,K.jsx)(`span`,{className:`web-raw__view-gap`,"aria-hidden":`true`,children:`/`}),(0,K.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":e===n,className:`web-raw__view`,"data-on":e===n?`true`:void 0,onClick:()=>t(n),children:r(`sessions/raw/views/${n}`)})]},n)),(0,K.jsx)(I,{text:it(n)})]})}function st({view:e,source:t}){return e===`raw`?(0,K.jsx)(`pre`,{className:`web-tool__pre`,children:it(t)}):(0,K.jsx)(`div`,{className:`web-raw__tree`,children:(0,K.jsx)(Ze,{value:t})})}function ct({turn:e,view:t,setView:n}){let{t:r}=i(),[a,o]=(0,B.useState)(!1),{startedAt:s,duration:c,model:l,input:d,output:f,cacheRead:p,tools:m}=e.facts;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-raw__turn-head`,"aria-expanded":a,onClick:()=>o(!a),children:[(0,K.jsx)(`span`,{className:`web-raw__turn-title`,children:r(`sessions/raw/turn`,{n:e.index})}),(0,K.jsx)(`span`,{className:`web-note`,children:at(e,r)})]}),a?(0,K.jsxs)(`div`,{className:`web-raw__body`,children:[(0,K.jsx)(ot,{view:t,setView:n,source:e.source}),t===`formatted`?(0,K.jsxs)(`dl`,{className:`web-tool__facts`,children:[s===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:r(`sessions/raw/started`)}),(0,K.jsx)(`dd`,{children:M(s)})]}),c===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:r(`sessions/raw/took`)}),(0,K.jsx)(`dd`,{children:u(c)})]}),l===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:r(`sessions/raw/model`)}),(0,K.jsx)(`dd`,{children:l})]}),d===void 0&&f===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:r(`sessions/raw/tokenLabel`)}),(0,K.jsx)(`dd`,{children:r(`sessions/raw/tokens`,{input:P(d??0),output:P(f??0)})})]}),p===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:r(`sessions/raw/cacheRead`)}),(0,K.jsx)(`dd`,{children:P(p)})]}),(0,K.jsx)(`dt`,{children:r(`sessions/raw/stepCount`)}),(0,K.jsx)(`dd`,{children:e.steps.length}),(0,K.jsx)(`dt`,{children:r(`sessions/raw/toolCount`)}),(0,K.jsx)(`dd`,{children:m})]}):(0,K.jsx)(st,{view:t,source:e.source})]}):null]})}function lt({step:e,turn:t,subagent:n,onOpenChat:r,view:a,setView:o}){let{t:s}=i(),[c,l]=(0,B.useState)(!1),d=e.call,f=d===void 0?void 0:je(d),p=d===void 0?void 0:De(d),m=d===void 0?void 0:Oe(d),h=d===void 0?``:Ce(d),g=d===void 0?nt[e.kind]:Re[Ae(d)],_=e.text.replace(/\s+/g,` `).trim();return(0,K.jsxs)(`li`,{className:`web-raw__step`,"data-kind":e.kind,...f===void 0?{}:{"data-outcome":f},children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-raw__row`,"aria-expanded":c,onClick:()=>l(!c),children:[(0,K.jsx)(`span`,{className:`web-raw__n`,children:e.step}),(0,K.jsx)(`span`,{className:`web-raw__icon`,"aria-hidden":`true`,children:g}),d===void 0?(0,K.jsx)(`span`,{className:`web-raw__line`,children:_===``?s(`sessions/raw/kind/${e.kind}`):_}):(0,K.jsx)(ze,{line:e.text,file:Te(d)}),f===void 0?null:(0,K.jsx)(`span`,{className:`web-raw__state`,title:s(Y[f].label),children:Y[f].glyph}),p===void 0?null:(0,K.jsx)(`span`,{className:`web-raw__time`,children:u(p)})]}),c?(0,K.jsxs)(`div`,{className:`web-raw__body`,children:[(0,K.jsx)(ot,{view:a,setView:o,source:e.source}),a===`formatted`?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`dl`,{className:`web-tool__facts`,children:[(0,K.jsx)(`dt`,{children:s(`sessions/raw/kindLabel`)}),(0,K.jsx)(`dd`,{children:s(`sessions/raw/kind/${e.kind}`)}),(0,K.jsx)(`dt`,{children:s(`sessions/raw/place`)}),(0,K.jsx)(`dd`,{children:s(`sessions/raw/placeValue`,{turn:t.index,step:e.step})}),d===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:s(`sessions/tool/tool`)}),(0,K.jsxs)(`dd`,{children:[(0,K.jsx)(`code`,{children:d.toolName}),d.displayName&&d.displayName!==d.toolName?` (${d.displayName})`:null]}),(0,K.jsx)(`dt`,{children:s(`sessions/tool/status`)}),(0,K.jsx)(`dd`,{children:s(Y[f].label)}),m===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:s(`sessions/raw/started`)}),(0,K.jsx)(`dd`,{children:M(m)})]}),p===void 0?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`dt`,{children:s(`sessions/raw/took`)}),(0,K.jsx)(`dd`,{children:u(p)})]})]})]}),d===void 0?e.text===``?null:(0,K.jsx)(X,{title:s(`sessions/raw/kind/${e.kind}`),text:e.text}):(0,K.jsxs)(K.Fragment,{children:[h===``?null:(0,K.jsx)(X,{title:s(`sessions/tool/arguments`),text:h}),Ne(d).map((e,t)=>(0,K.jsx)(Be,{out:e},t))]}),n===void 0?null:(0,K.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>r(n),children:s(`sessions/raw/openSubagent`)})]}):(0,K.jsx)(st,{view:a,source:e.source})]}):null]})}function ut({turns:e,filter:t,onFilter:n,spawned:r,onOpenChat:a}){let{t:o}=i(),[s,c]=(0,B.useState)(`formatted`),l=e.map(e=>({turn:e,steps:tt(e.steps,t,r)})).filter(e=>e.steps.length>0);return(0,K.jsxs)(`div`,{className:`web-raw`,children:[(0,K.jsx)(`div`,{className:`web-raw__filters`,role:`radiogroup`,"aria-label":o(`sessions/raw/filter`),children:rt.map(e=>(0,K.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":t===e,className:`web-chip`,"data-on":t===e?`true`:void 0,onClick:()=>n(e),children:o(`sessions/raw/filters/${e}`)},e))}),l.length===0?(0,K.jsx)(`p`,{className:`web-note`,children:o(`sessions/raw/none`)}):l.map(({turn:e,steps:t})=>(0,K.jsxs)(`section`,{className:`web-raw__turn`,children:[(0,K.jsx)(ct,{turn:e,view:s,setView:c}),(0,K.jsx)(`ol`,{className:`web-raw__steps`,children:t.map(t=>(0,K.jsx)(lt,{step:t,turn:e,subagent:t.call===void 0?void 0:r.get(t.call.toolCallId),onOpenChat:a,view:s,setView:c},t.id))})]},e.id))]})}function dt(e,t){return e.filter(e=>String(e.claim.kind)===`session`&&e.claim.session===t).map(e=>e.resource)}function ft(e){return e.filter(e=>String(e.origin?.kind)===`tool`&&String(e.interactivity??`full`)!==`hidden`)}function pt(e){let t=l(e.status);return t===`running`||t===`input`}function mt(e){let t=(`content`in e&&Array.isArray(e.content)?e.content:[]).find(e=>e.type===`subagent`&&typeof e.resource==`string`)?.resource;if(typeof t==`string`)return t;let n=e._meta?.subagentChatUri;return typeof n==`string`&&n!==``?n:void 0}var ht=[`preparing`,`running`,`approval`,`sign-in`,`review`];function gt(e,t){return(t===void 0?e:[...e,t]).flatMap(e=>e.responseParts.flatMap(n=>String(n.kind)===`toolCall`&&`toolCall`in n?[{call:n.toolCall,live:e===t}]:[]))}function _t(e,t,n){let r=new Map;for(let{call:n,live:i}of gt(e,t)){let e=mt(n);if(e===void 0)continue;let t=r.get(e),a=i&&ht.includes(je(n));r.set(e,{chat:e,title:t?.title??n.displayName??n.toolName,running:(t?.running??!1)||a})}for(let e of ft(n)){let t=r.get(e.resource);r.set(e.resource,{chat:e.resource,title:e.title===``?t?.title??``:e.title,running:(t?.running??!1)||pt(e)})}return[...r.values()]}function vt(e,t,n,r){let i=new Map;for(let{call:n}of gt(e,t)){let e=mt(n);e!==void 0&&i.set(n.toolCallId,e)}for(let e of ft(n)){let t=e.origin;t?.chat===r&&t?.toolCallId!==void 0&&!i.has(t.toolCallId)&&i.set(t.toolCallId,e.resource)}return i}function yt(e,t,r){let i=n(_(e).host)?.terminals??[],a=dt(i,t),o=i.map(e=>e.resource).filter(e=>!a.includes(e)),s=o.join(`
|
|
3
|
+
`),[c,l]=(0,B.useState)([]);return(0,B.useEffect)(()=>{if(r===void 0||o.length===0){l([]);return}let t=!0;return Promise.all(o.map(t=>v(e).readOnce(t).then(e=>k(e?.cwd,r)?t:null,()=>null))).then(e=>{t&&l(e.filter(e=>e!==null))}),()=>{t=!1}},[e,s,r]),[...a,...c]}function bt({host:e,summary:t,session:n,chat:r,chatUri:o,onChat:c,onSubagent:l,raw:u,onRaw:d,calls:f}){let p=a(),{t:m}=i(),[h,g]=(0,B.useState)(null),_=t.changes,v=yt(e,t.resource,t.workingDirectories?.[0]),y=n?.chats??[],S=_t(r?.turns??[],r?.activeTurn,y),C=S.filter(e=>e.running).length,w=ft(y),T=y.filter(e=>!w.includes(e)),E=T.findIndex(e=>e.resource===o),D=w.some(e=>e.resource===o),O=(e,t)=>{p.commands.execute(e,t)},k=(e,t)=>{let n=e.currentTarget.getBoundingClientRect();g({x:n.left,y:n.bottom,items:t})};return(0,K.jsxs)(`div`,{className:`web-chat__tools`,children:[_?.files===void 0||_.files===0?null:(0,K.jsxs)(`button`,{type:`button`,className:`web-chat__tool`,title:s(`sessions/header/files`,_.files),onClick:()=>O(`ahp.showRight.changes:explorer`),children:[(0,K.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,_.additions??0]}),(0,K.jsxs)(`span`,{className:`web-diff--remove`,children:[`−`,_.deletions??0]})]}),v.length===0?null:(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,title:s(`sessions/header/terminals`,v.length),onClick:()=>v.length===1?O(`ahp.openTerminal`,{uri:v[0]}):O(`ahp.showRight.session:details`),children:`${b.terminal} ${String(v.length)}`}),S.length===0?null:(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,"data-live":C>0?`true`:void 0,"data-on":D?`true`:void 0,title:C>0?m(`sessions/header/subagentsRunning`,{running:C,total:S.length}):s(`sessions/header/subagents`,S.length),"aria-haspopup":`menu`,onClick:e=>k(e,S.map((e,t)=>({title:e.title===``?m(`sessions/header/subagentN`,{n:t+1}):e.title,...e.running?{description:m(`sessions/header/subagentRunning`)}:{},active:e.chat===o,onSelect:t=>{t.closeMenu(),l(e.chat)}}))),children:`${b.subagent} ${C>0?`${String(C)}/${String(S.length)}`:String(S.length)}`}),D&&T[0]!==void 0?(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,title:m(`sessions/header/backToChat`),onClick:()=>c(n?.defaultChat??T[0].resource),children:`↩`}):null,T.length<2?null:(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,title:m(`sessions/header/chats`),"aria-haspopup":`menu`,onClick:e=>k(e,T.map((e,t)=>({title:e.title===``?m(`sessions/header/chatN`,{n:t+1}):e.title,active:e.resource===o,onSelect:t=>{t.closeMenu(),c(e.resource)}}))),children:`${E<0?`–`:String(E+1)}/${String(T.length)} \u{25BE}`}),f?.hidden===!0?(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,"data-on":`true`,title:m(`sessions/header/showCalls`),onClick:()=>f.onHidden(!1),children:b.callsHidden}):null,u?(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,"data-on":`true`,title:m(`sessions/raw/back`),onClick:()=>d(!1),children:b.data}):null,(0,K.jsx)(`button`,{type:`button`,className:`web-chat__tool`,title:m(`sessions/header/view`),"aria-haspopup":`menu`,onClick:e=>k(e,[{title:m(`sessions/raw/button`),icon:b.data,active:u,onSelect:()=>d(!u)},...f===void 0?[]:[{title:m(`sessions/header/hideCalls`),icon:b.callsHidden,active:f.hidden,onSelect:()=>f.onHidden(!f.hidden)}]]),children:b.more}),h===null?null:(0,K.jsx)(x,{spec:{items:h.items},x:h.x,y:h.y,onClose:()=>g(null)})]})}var xt=new Set([`completed`,`cancelled`]),St=new Set([`pending-confirmation`,`pending-result-confirmation`,`auth-required`]);function Ct(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 wt(e,t,n){return e.kind===`tool`?n.ended||xt.has(String(e.call.status)):!(t&&n.live)}function Tt(e){return e.kind===`tool`&&St.has(String(e.call.status))}function Et(e){return e.kind===`tool`&&`success`in e.call&&e.call.success===!1}function Dt(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=Ct(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 Ot(e){let t=1/0,n=-1/0;for(let r of e){if(r.kind!==`tool`)continue;let e=Oe(r.call),i=De(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 kt=(e,t)=>e===void 0||e<1e3?void 0:t(e);function At(e,t){let n=[];if(e.done>0){n.push({text:s(`sessions/activity/completed`,e.done)}),e.failed>0&&n.push({text:` (${r(`sessions/activity/failed`,{count:e.failed})})`,failed:!0});let i=kt(e.took,t);i!==void 0&&n.push({text:` ${r(`sessions/activity/took`,{time:i})}`})}let i=e.doing;if(i!==void 0){let e;if(i.what===`thinking`)e=r(`sessions/activity/thinking`);else{let n=kt(i.for,t);e=n===void 0?r(`sessions/activity/${i.what}`,{name:i.name}):r(`sessions/activity/${i.what}For`,{name:i.name,time:n})}n.push({text:n.length>0?` \u{00B7} ${e}`:e})}return n}var Z=new Map,jt=new Map,Q=(e,t)=>`${e}\u0000${t}`;function Mt(e,t){t?Z.has(e)||Z.set(e,Date.now()):Z.has(e)&&!jt.has(e)&&jt.set(e,Date.now())}function Nt(e,t){let n=Z.get(e);return n===void 0?void 0:(jt.get(e)??t)-n}function Pt(e,t,n){if(t.kind===`reasoning`)return{what:`thinking`};let r=t.call.displayName||t.call.toolName,i=Nt(Q(e,t.key),n);return{what:Tt(t)?`waiting`:`working`,name:r,...i===void 0?{}:{for:i}}}function Ft({group:e,send:t,turnId:n}){i();let r=U(),[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(()=>Date.now()),l=e.steps.length-1,d=e.steps.map((t,n)=>wt(t,n===l,e)),f=d.lastIndexOf(!1),p=f<0?void 0:e.steps[f];Mt(Q(r,e.id),e.live),e.steps.forEach((e,t)=>Mt(Q(r,e.key),!d[t])),(0,B.useEffect)(()=>{if(p===void 0)return;let e=window.setInterval(()=>c(Date.now()),1e3);return()=>window.clearInterval(e)},[p?.key]);let m=e.live&&e.steps.some(Tt),h=a||m,g=d.filter(Boolean).length,_=p===void 0?s:Z.get(Q(r,p.key)),v=Z.get(Q(r,e.id)),y=e.live?v===void 0||_===void 0?void 0:_-v:Ot(e.steps)??Nt(Q(r,e.id),s)??e.turnMs,x=At({done:g,failed:e.steps.filter(Et).length,...y===void 0?{}:{took:y},...p===void 0?{}:{doing:Pt(r,p,s)}},u);return(0,K.jsxs)(`div`,{className:`web-activity`,"data-live":p!==void 0,children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-activity__line`,"aria-expanded":h,onClick:()=>o(!a),children:[(0,K.jsx)(`span`,{children:x.map((e,t)=>e.failed?(0,K.jsx)(`span`,{className:`web-activity__failed`,children:e.text},t):e.text)}),(0,K.jsx)(`span`,{className:`web-activity__chev`,"aria-hidden":`true`,children:h?b.caretDown:b.caretRight})]}),h?(0,K.jsx)(`div`,{className:`web-activity__steps`,children:e.steps.map((r,i)=>r.kind===`tool`?(0,K.jsx)(Ve,{call:r.call,send:t,live:!e.ended,turnId:n},r.key):(0,K.jsx)(He,{text:r.text,running:!d[i]},r.key))}):null]})}function It(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}var $=e=>typeof e==`string`&&e!==``?e:void 0;function Lt(e){let t=It(e),n=$(t?.bot);if(t===null||n===void 0)return;let r=$(t.color);return{bot:n,name:$(t.name)??n,...r===void 0?{}:{color:r},labels:Array.isArray(t.labels)?t.labels.filter(e=>typeof e==`string`):[],body:$(t.body)??`robot`,kind:$(t.kind)??`direct`}}var Rt=e=>decodeURIComponent(e.replace(/[?#].*$/,``).replace(/\/+$/,``).split(`/`).pop()??e)||e;function zt(e,t){let n=[];e.message.text!==``&&n.push({kind:`said`,text:e.message.text});let r=null,i=()=>(r===null&&(r={kind:`reply`,texts:[],files:[],asks:[]},n.push(r)),r);for(let t of e.responseParts)switch(String(t.kind)){case`markdown`:{let e=`content`in t&&typeof t.content==`string`?t.content:``;e.trim()!==``&&i().texts.push(e);break}case`contentRef`:{let e=`uri`in t?String(t.uri):``;e!==``&&i().files.push({uri:e,name:Rt(e),...`contentType`in t&&typeof t.contentType==`string`?{contentType:t.contentType}:{}});break}case`inputRequest`:`request`in t&&i().asks.push(t);break;case`toolCall`:`toolCall`in t&&t.toolCall.status===`pending-confirmation`&&i().asks.push(t);break;case`systemNotification`:{let e=`content`in t?t.content:``,i=typeof e==`string`?e:It(e)?.markdown;typeof i==`string`&&i!==``&&n.push({kind:`notice`,text:i,tone:`quiet`}),r=null;break}case`error`:{let e=`error`in t?t.error.message:``;e!==``&&n.push({kind:`notice`,text:e,tone:`danger`}),r=null;break}}return!t&&!n.some(e=>e.kind===`reply`||e.kind===`notice`)&&n.push({kind:`noReply`}),n}function Bt({host:e,file:t}){let{t:n}=i(),[r,a]=(0,B.useState)(null);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`button`,{type:`button`,className:`web-botchat__file`,title:n(`bots/chat/download`,{name:t.name}),onClick:()=>{a(null),v(e).readBlob(t.uri,t.contentType??`application/octet-stream`).then(e=>re(t.name,e),e=>a(e instanceof Error?e.message:String(e)))},children:[(0,K.jsx)(`span`,{"aria-hidden":`true`,children:b.download}),(0,K.jsx)(`span`,{className:`web-botchat__file-name`,children:t.name})]}),r===null?null:(0,K.jsx)(`p`,{className:`web-botchat__failure`,children:r})]})}function Vt({host:e,mark:t,item:n,send:r,live:a,turnId:o}){let{t:s}=i();switch(n.kind){case`said`:return(0,K.jsx)(`div`,{className:`web-botchat__said`,children:n.text});case`reply`:return(0,K.jsxs)(`div`,{className:`web-botchat__reply`,children:[(0,K.jsx)(z,{body:t.body,color:t.color,width:28,still:!0}),(0,K.jsxs)(`div`,{className:`web-botchat__bubble`,children:[(0,K.jsx)(`span`,{className:`web-botchat__name`,style:{color:se(t.color)},children:t.name}),n.texts.map((e,t)=>(0,K.jsx)(`div`,{className:`web-md`,children:(0,K.jsx)(w,{text:e})},t)),n.files.map(t=>(0,K.jsx)(Bt,{host:e,file:t},t.uri)),n.asks.map((e,t)=>(0,K.jsx)(We,{part:e,send:r,live:a,turnId:o},t))]})]});case`notice`:return(0,K.jsx)(`p`,{className:`web-botchat__notice`,"data-tone":n.tone,children:n.text});case`noReply`:return(0,K.jsx)(`p`,{className:`web-botchat__notice`,"data-tone":`quiet`,children:s(`bots/chat/noReply`,{name:t.name})})}}function Ht({host:e,mark:t,summary:n,session:r,chat:a,chatUri:o,send:s,tools:c,rawView:u}){let{t:d}=i(),f=(0,B.useRef)(null),p=(0,B.useRef)(!0),m=a.state?.turns??[],h=a.state?.activeTurn,g=(h?.responseParts.length??0)+m.length,_=(0,B.useRef)(null);(0,B.useEffect)(()=>{p.current&&f.current?.scrollIntoView({block:`end`})},[g]),(0,B.useEffect)(()=>{let e=_.current;if(e===null)return;let t=new ResizeObserver(()=>{p.current&&f.current?.scrollIntoView({block:`end`})});return t.observe(e),()=>t.disconnect()},[]);let v=l(n.status),y=v===`running`||v===`input`,b=a.state?.activity??n.activity;return(0,K.jsxs)(`div`,{className:`web-chat web-botchat`,children:[(0,K.jsxs)(`header`,{className:`web-botchat__head`,children:[(0,K.jsx)(z,{body:t.body,color:t.color,width:36}),(0,K.jsx)(`h2`,{className:`web-botchat__title`,children:t.name}),c]}),(0,K.jsxs)(`div`,{ref:_,className:`web-botchat__turns`,onScroll:e=>{let t=e.currentTarget;p.current=t.scrollHeight-t.scrollTop-t.clientHeight<48},children:[r.error===null?null:(0,K.jsx)(T,{tone:`danger`,message:r.error}),a.error===null?null:(0,K.jsx)(T,{tone:`danger`,message:a.error}),o!==void 0&&a.state===void 0&&a.error===null?(0,K.jsx)(C,{label:d(`bots/chat/reading`)}):null,u??(0,K.jsxs)(K.Fragment,{children:[m.map(n=>zt(n,!1).map((r,i)=>(0,K.jsx)(Vt,{host:e,mark:t,item:r,send:s,live:!1,turnId:n.id},`${n.id}:${i}`))),h===void 0?null:zt(h,!0).map((n,r)=>(0,K.jsx)(Vt,{host:e,mark:t,item:n,send:s,live:!0,turnId:h.id},`${h.id}:${r}`))]}),a.state!==void 0&&m.length===0&&h===void 0?(0,K.jsx)(`p`,{className:`web-botchat__notice`,"data-tone":`quiet`,children:d(`bots/chat/empty`,{name:t.name})}):null,(0,K.jsx)(`div`,{ref:f})]}),y?(0,K.jsxs)(`p`,{className:`web-botchat__status`,children:[(0,K.jsx)(`span`,{className:`web-botchat__pulse`,"aria-hidden":`true`}),d(`bots/chat/working`,{name:t.name}),b==null||b===``?null:(0,K.jsx)(`span`,{className:`web-note`,children:` \u{00B7} ${b}`})]}):null,a.state===void 0||o===void 0?null:(0,K.jsx)(E,{host:e,chatUri:o,activeId:h?.id,activeStart:h?.startedAt,queued:a.state.queuedMessages,steering:a.state.steeringMessage,draft:a.state.draft,lastModel:m.at(-1)?.message.model?.id,lastUsage:m.at(-1)?.usage,config:r.state?.config,changesets:r.state?.changesets,summary:n,send:s,placeholder:d(`bots/chat/message`,{name:t.name}),steers:!0})]})}var Ut={cancelled:`sessions/turn/stopped`,error:`sessions/turn/failed`};function Wt(e){let[t,n]=(0,B.useState)(()=>Date.now());return(0,B.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(t)},[e]),t}function Gt({facts:e,state:t,live:n,text:r}){let{t:a}=i(),o=Wt(n),c=n?e.startedAt===void 0?void 0:o-e.startedAt:e.duration,l=[];e.startedAt!==void 0&&l.push(M(e.startedAt)),c!==void 0&&l.push(n?a(`sessions/turn/soFar`,{time:u(c)}):u(c)),(e.input!==void 0||e.output!==void 0)&&l.push(`\u{2191}${P(e.input??0)} \u{2193}${P(e.output??0)}`),e.cacheRead!==void 0&&e.cacheRead>0&&l.push(a(`sessions/turn/cached`,{tokens:P(e.cacheRead)})),e.model!==void 0&&l.push(e.model),e.tools>0&&l.push(s(`sessions/turn/toolCalls`,e.tools));let d=t===void 0?void 0:Ut[t];return(0,K.jsxs)(`div`,{className:`web-turn__facts`,children:[n||r===``?null:(0,K.jsx)(I,{text:r,label:a(`sessions/turn/copyReply`)}),l.join(` · `),d===void 0?null:(0,K.jsx)(`span`,{className:`web-turn__ended`,"data-state":t,children:a(d)})]})}var Kt=[];function qt({attachments:e}){let t=a(),{t:n}=i(),[r,o]=(0,B.useState)(null);return(0,K.jsxs)(`div`,{className:`web-turn__attached`,children:[e.map((e,r)=>{let i=e,a=typeof i.uri==`string`&&i.displayKind!==`directory`?i.uri:void 0,s=ee(e),c=(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`web-attachment__icon`,children:j(e)}),(0,K.jsx)(`span`,{className:`web-attachment__label`,children:s})]});return te(e)?(0,K.jsx)(`button`,{type:`button`,className:`web-attachment`,title:n(`sessions/attachments/see`,{name:s}),onClick:()=>o(A(e)),children:c},r):a===void 0?(0,K.jsx)(`span`,{className:`web-attachment`,title:s,children:c},r):(0,K.jsx)(`button`,{type:`button`,className:`web-attachment`,title:n(`sessions/attachments/open`,{name:s}),onClick:()=>void t.commands.execute(`ahp.openFile`,{uri:a}),children:c},r)}),r===null?null:(0,K.jsx)(D,{preview:r,onClose:()=>o(null)})]})}var Jt=(0,B.memo)(function({turn:e,live:t,send:n,open:r=Kt,hideCalls:a=!1}){let{t:o}=i(),s=`state`in e?String(e.state):void 0,c=e.responseParts;return(0,K.jsxs)(`article`,{className:`web-turn`,children:[(0,K.jsxs)(`div`,{className:`web-turn__ask`,children:[e.message.text,e.message.attachments===void 0||e.message.attachments.length===0?null:(0,K.jsx)(qt,{attachments:e.message.attachments})]}),(0,K.jsxs)(`div`,{className:`web-turn__answer`,children:[Dt(c,t,F(e).duration).map(r=>r.kind===`activity`?a&&(r.ended||!r.steps.some(Tt))?null:(0,K.jsx)(Ft,{group:r,send:n,turnId:e.id},r.id):(0,K.jsx)(We,{part:r.part,send:n,live:t,turnId:e.id},r.index)),t?r.map(e=>(0,K.jsx)(ve,{request:e,send:n,live:!0,response:void 0},e.id)):null,t&&c.length===0?(0,K.jsx)(C,{label:o(`sessions/turn/working`)}):null]}),(0,K.jsx)(Gt,{facts:F(e),...s===void 0?{}:{state:s},live:t,text:N(e)})]})});function Yt({host:e,chatUri:t,cursor:n}){let{t:r}=i(),[a,s]=(0,B.useState)(!1),[c,l]=(0,B.useState)(null);return(0,K.jsxs)(`div`,{className:`web-chat__older`,children:[(0,K.jsx)(o,{label:r(a?`sessions/chat/loading`:`sessions/chat/older`),disabled:a,onClick:()=>{s(!0),l(null),v(e).request(`fetchTurns`,{channel:t,cursor:n}).catch(e=>l(e instanceof Error?e.message:String(e))).finally(()=>s(!1))}}),c===null?null:(0,K.jsx)(`span`,{className:`web-note`,children:c})]})}function Xt(e,t,n,r){let i=(0,B.useRef)({turn:void 0,requests:new Map});if(i.current.turn!==r?.id&&(i.current={turn:r?.id,requests:new Map}),r===void 0)return Kt;let a=new Set;for(let e of t??[])String(e.kind)===`chatInput`&&e.chat===n&&`request`in e&&(i.current.requests.set(e.id,e.request),a.add(e.id));for(let t of[...i.current.requests.keys()])!a.has(t)&&!pe(e,t)&&i.current.requests.delete(t);let o=new Set(r.responseParts.flatMap(e=>`request`in e?[e.request.id]:[])),s=[...i.current.requests.values()].filter(e=>!o.has(e.id));return s.length===0?Kt:s}function Zt({host:e,resource:t}){let r=a(),{t:o}=i(),s=n(_(e).sessions)?.find(e=>e.resource===t),c=oe(e,t,g),[u,d]=(0,B.useState)(void 0),b=(u!==void 0&&(c.state?.chats??[]).some(e=>e.resource===u)?u:void 0)??c.state?.defaultChat??s?.defaultChat,[x,w]=(0,B.useState)(!1),[D,k]=(0,B.useState)(`all`),[A,ee]=(0,B.useState)(!1),j=oe(e,b,f),te=(0,B.useRef)(null),re=(0,B.useRef)(!0),M=(0,B.useCallback)(t=>{b!==void 0&&v(e).dispatch(b,t)},[b]),N=j.state?.turns.length??0,P=Xt(e,c.state?.inputNeeded,b,j.state?.activeTurn),F=(j.state?.activeTurn?.responseParts??[]).reduce((e,t)=>e+1+(`content`in t&&typeof t.content==`string`?t.content.length:0),0);(0,B.useEffect)(()=>{re.current&&te.current?.scrollIntoView({block:`end`})},[N,F]),(0,B.useEffect)(()=>{t!==void 0&&r.store.get(`$/ahp/activeSession`)===void 0&&r.store.set(ne,{host:e,resource:t})},[r,e,t]);let I=s!==void 0&&!m(s.status);if((0,B.useEffect)(()=>{I&&t!==void 0&&v(e).dispatch(t,{type:`session/isReadChanged`,isRead:!0})},[I,t,N]),s===void 0)return(0,K.jsx)(ae,{tone:`warning`,message:o(`sessions/chat/gone`)});let L=t=>{if((c.state?.chats??[]).some(e=>e.resource===t)){d(t);return}let n=y(t);n!==null&&r.commands.execute(`ahp.openSession`,{host:e,resource:n})},R=Lt(s._meta)??Lt(c.state?._meta),ie=(0,K.jsx)(bt,{host:e,summary:s,session:c.state,chat:j.state,chatUri:b,onChat:d,onSubagent:L,raw:x,onRaw:w,...R===void 0?{calls:{hidden:A,onHidden:ee}}:{}}),se=x&&j.state!==void 0?(0,K.jsx)(ut,{turns:et(j.state.turns,j.state.activeTurn),filter:D,onFilter:k,spawned:vt(j.state.turns,j.state.activeTurn,c.state?.chats??[],b),onOpenChat:L}):null;if(R!==void 0)return(0,K.jsx)(H.Provider,{value:e,children:(0,K.jsx)(V.Provider,{value:s.workingDirectories?.[0]??null,children:(0,K.jsx)(Ht,{host:e,mark:R,summary:s,session:c,chat:j,chatUri:b,send:M,tools:ie,rawView:se})})});let z=l(s.status),U=String(c.state?.lifecycle??`ready`),W=j.state?.activity??s.activity;return(0,K.jsxs)(`div`,{className:`web-chat`,children:[(0,K.jsxs)(`header`,{className:`web-chat__head`,children:[(0,K.jsxs)(`div`,{className:`web-chat__head-row`,children:[(0,K.jsxs)(`div`,{className:`web-chat__title`,children:[(0,K.jsx)(O,{variant:`h2`,text:s.title===``?o(`sessions/untitled`):s.title}),(0,K.jsx)(S,{tone:h[z],text:p(z)})]}),ie]}),W===void 0||W===``?null:(0,K.jsx)(`span`,{className:`web-note web-chat__doing`,children:W})]}),(0,K.jsxs)(`div`,{className:`web-chat__turns`,onScroll:e=>{let t=e.currentTarget;re.current=t.scrollHeight-t.scrollTop-t.clientHeight<48},children:[U===`creating`?(0,K.jsx)(C,{label:o(`sessions/chat/starting`)}):null,U===`failed`?(0,K.jsx)(T,{tone:`danger`,title:o(`sessions/chat/notStarted`),message:c.state?.creationError?.message??o(`sessions/chat/noReason`)}):null,c.error===null?null:(0,K.jsx)(T,{tone:`danger`,title:o(`sessions/chat/sessionUnreadable`),message:c.error}),j.error===null?null:(0,K.jsx)(T,{tone:`danger`,title:o(`sessions/chat/chatUnreadable`),message:j.error}),b!==void 0&&j.state===void 0&&j.error===null?(0,K.jsx)(C,{label:o(`sessions/chat/reading`)}):null,b===void 0||j.state?.turnsNextCursor===void 0?null:(0,K.jsx)(Yt,{host:e,chatUri:b,cursor:j.state.turnsNextCursor}),(0,K.jsx)(H.Provider,{value:e,children:(0,K.jsx)(V.Provider,{value:s.workingDirectories?.[0]??null,children:se??(0,K.jsxs)(K.Fragment,{children:[j.state?.turns.map(e=>(0,K.jsx)(Jt,{turn:e,live:!1,send:M,hideCalls:A},e.id)),j.state?.activeTurn===void 0?null:(0,K.jsx)(Jt,{turn:j.state.activeTurn,live:!0,send:M,open:P,hideCalls:A})]})})}),j.state!==void 0&&N===0&&j.state.activeTurn===void 0?(0,K.jsx)(`p`,{className:`web-note`,children:o(`sessions/chat/empty`)}):null,(0,K.jsx)(`div`,{ref:te})]}),j.state===void 0||b===void 0?null:(0,K.jsx)(E,{host:e,chatUri:b,activeId:j.state.activeTurn?.id,activeStart:j.state.activeTurn?.startedAt,queued:j.state.queuedMessages,steering:j.state.steeringMessage,draft:j.state.draft,lastModel:j.state.turns.at(-1)?.message.model?.id,lastUsage:j.state.turns.at(-1)?.usage,config:c.state?.config,changesets:c.state?.changesets,summary:s,send:M})]})}export{Zt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.oo-progress{flex-direction:column;gap:4px;width:100%;display:flex}.oo-progress__head{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);justify-content:space-between;display:flex}.oo-progress__label{font-weight:500}.oo-progress__value{font-family:var(--oo-font-mono)}.oo-progress__track{width:100%;height:var(--oo-progress-height,6px);background:var(--oo-color-border);border-radius:9999px;overflow:hidden}.oo-progress__bar{background:rgb(var(--oo-progress-color));border-radius:9999px;height:100%;transition:width .3s}.oo-progress__bar--indet{width:30%;animation:1.4s linear infinite oo-progress-indet}@keyframes oo-progress-indet{0%{transform:translate(-100%)}to{transform:translate(400%)}}
|
|
@@ -0,0 +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{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./Button-_R1oktDz.js";import{$ as o,r as s}from"./data-DsJQo1Qk.js";import{t as c}from"./emojis-B4zHbUyk.js";import{t as l}from"./Badge-BDEW5PFb.js";import{t as u}from"./StatusDot-CC7gdsot.js";import{t as d}from"./Spinner-CBEPv0eM.js";import{t as f}from"./Markdown-_Awuh7Ku.js";import{t as p}from"./Tree-DoJ8zO-u.js";import{t as m}from"./Text-MPtQvYE-.js";import{t as h}from"./DetailList-Yalgw0YM.js";import{t as g}from"./Modal-xWzwLA8s.js";import{i as _}from"./viewers--ctbhTPt.js";import{n as v}from"./HostLines-CtIqw3A0.js";import{a as y,i as b,n as x,r as S,s as C,t as w}from"./words-1m-GRHoT.js";import{t as T}from"./CopyButton-BSesWpVW.js";import{t as E}from"./clicks-BeeNCvCP.js";import{n as D}from"./text-D6GxOCYM.js";import{t as O}from"./PageAlert-B8ulCXV4.js";var k=t(),A=e(),j={plugin:c.plugin,directory:c.folder,mcpServer:c.mcpServer};function M(e){if(e!==void 0)return e.tone===`busy`?(0,A.jsx)(d,{size:12,label:e.text}):(0,A.jsx)(u,{tone:e.tone,label:e.text,className:`web-custom__state`})}function N({name:e,description:t,className:n}){let{t:i}=r();return(0,A.jsxs)(`span`,{className:n,onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:[(0,A.jsx)(T,{text:e,label:i(`agents/customizations/copyName`)}),t===``?null:(0,A.jsx)(T,{text:t,label:i(`agents/customizations/copyDescription`),icon:c.copyText})]})}function P(e,t){let n=M(t.state);return{key:`${e}/${t.id}`,label:(0,A.jsxs)(`span`,{className:`web-custom`,"data-enabled":t.enabled?`true`:`false`,title:t.line===``?t.label:`${t.label}: ${t.line}`,children:[(0,A.jsx)(`span`,{className:`web-custom__name`,children:t.label}),t.line===``?null:(0,A.jsx)(`span`,{className:`web-custom__line`,children:t.line}),t.flags.map(e=>(0,A.jsx)(`span`,{className:`web-custom__flag`,children:e},e)),(0,A.jsx)(N,{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 F(e){let t=M(e.state);return{key:e.id,icon:j[e.type]??c.dot,label:(0,A.jsxs)(`span`,{className:`web-custom`,"data-enabled":e.enabled?`true`:`false`,title:`${e.kind}: ${e.path}`,children:[(0,A.jsx)(`span`,{className:`web-custom__name`,children:e.name}),(0,A.jsx)(`span`,{className:`web-custom__line`,children:e.path}),e.meta.map(e=>(0,A.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=>P(e.id,t))}}}var I=e=>e.replace(/\/[^/]*$/,``);function L({host:e,uri:t}){let n=i(),{t:a}=r(),o=D(e,t);return o===null?(0,A.jsx)(d,{label:a(`agents/customizations/readingFile`)}):`error`in o||o.text===null?(0,A.jsx)(`p`,{className:`web-note`,children:a(`agents/customizations/unreadable`)}):(0,A.jsx)(`div`,{className:`web-md`,onClick:E(n,e,I(t)),children:(0,A.jsx)(f,{text:C(o.text)})})}function R({host:e,detail:t,onClose:n}){let o=i(),{t:s}=r(),c=t.open,l=c!==void 0&&(_(c.uri)===`md`||_(c.uri)===`markdown`);return(0,A.jsx)(g,{open:!0,title:t.name,onClose:n,children:(0,A.jsxs)(`div`,{className:`web-custom-detail`,children:[t.copies?(0,A.jsx)(N,{name:t.name,description:t.description,className:`web-custom-detail__copies`}):null,t.flags.length===0?null:(0,A.jsx)(`p`,{className:`web-custom-detail__flags`,children:t.flags.join(` · `)}),t.description===``?null:(0,A.jsx)(`p`,{children:t.description}),c===void 0?null:l?(0,A.jsx)(L,{host:e,uri:c.uri}):(0,A.jsx)(a,{label:s(`agents/customizations/openFile`),onClick:()=>{n(),o.commands.execute(`ahp.openFile`,{host:e,uri:c.uri,line:c.line})}})]})})}function z({host:e,items:t}){r();let[n,i]=(0,k.useState)(new Set),[a,o]=(0,k.useState)(null),[s,c]=(0,k.useState)(null);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(p,{className:`web-customs`,nodes:x(t).map(F),selectedKey:a,expanded:n,onExpandedChange:i,onSelect:e=>{if(o(e.key),e.children!==void 0){let t=new Set(n);t.delete(e.key)||t.add(e.key),i(t)}else e.data!==void 0&&c(e.data)}}),s===null?null:(0,A.jsx)(R,{host:e,detail:s,onClose:()=>c(null)})]})}var B=new Set([`disabled`,`unconfigured`]);function V({host:e,provider:t}){let c=i(),{t:u}=r(),d=n(s(e).agents)??[],p=n(s(e).sessions)??[],g=d.find(e=>e.provider===t);if(g===void 0)return(0,A.jsx)(O,{tone:`warning`,message:u(`agents/page/gone`)});let _=w(g),x=y(g),C=p.filter(e=>e.provider===g.provider).length,T=[...o()===`multi`?[{label:u(`common/host`),value:(0,A.jsx)(v,{host:e})}]:[],{label:u(`agents/page/facts/provider`),value:(0,A.jsx)(`code`,{children:g.provider})},{label:u(`agents/page/facts/models`),value:b(g)},{label:u(`agents/page/facts/sessions`),value:String(C)},{label:u(`agents/page/facts/can`),value:_.length===0?u(`agents/page/oneChat`):_.join(`; `)}];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)(m,{variant:`h2`,text:g.displayName}),x.some(e=>e.required)?(0,A.jsx)(l,{tone:`warning`,text:u(`agents/page/needsSignIn`)}):null]}),(0,A.jsx)(`div`,{className:`web-page__actions`,children:(0,A.jsx)(a,{label:u(`agents/newSession`),variant:`primary`,onClick:()=>void c.commands.execute(`ahp.newSession`,{provider:g.provider})})})]}),g.description===``?null:(0,A.jsx)(f,{text:g.description}),(0,A.jsx)(h,{items:T,columns:2}),(0,A.jsx)(m,{variant:`h3`,text:u(`agents/page/models`)}),g.models.length===0?(0,A.jsx)(`p`,{className:`web-note`,children:u(`agents/page/noModels`)}):(0,A.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{children:u(`agents/page/columns/name`)}),(0,A.jsx)(`th`,{children:u(`agents/page/columns/id`)}),(0,A.jsx)(`th`,{children:u(`agents/page/columns/limits`)}),(0,A.jsx)(`th`,{})]})}),(0,A.jsx)(`tbody`,{children:g.models.map(e=>(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`td`,{children:e.name}),(0,A.jsx)(`td`,{children:(0,A.jsx)(`code`,{children:e.id})}),(0,A.jsx)(`td`,{children:S(e)}),(0,A.jsx)(`td`,{children:e.policyState!==void 0&&B.has(String(e.policyState))?u(`agents/page/policy/${String(e.policyState)}`):``})]},e.id))})]}),(g.customizations??[]).length===0?null:(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(m,{variant:`h3`,text:u(`agents/page/customizations`)}),(0,A.jsx)(z,{host:e,items:g.customizations})]}),x.length===0?null:(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(m,{variant:`h3`,text:u(`agents/page/signIn`)}),(0,A.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{children:u(`agents/page/columns/resource`)}),(0,A.jsx)(`th`,{children:u(`agents/page/columns/scopes`)}),(0,A.jsx)(`th`,{})]})}),(0,A.jsx)(`tbody`,{children:x.map(e=>(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`td`,{children:e.name}),(0,A.jsx)(`td`,{children:e.scopes}),(0,A.jsx)(`td`,{children:u(e.required?`agents/page/required`:`agents/page/optional`)})]},e.name))})]})]})]})}export{V as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{$ as a}from"./data-DsJQo1Qk.js";import{c as o}from"./hosts-A0gEDScb.js";import{t as s}from"./Spinner-CBEPv0eM.js";import{t as c}from"./Text-MPtQvYE-.js";import{t as l}from"./DetailList-Yalgw0YM.js";import{G as u,W as d,q as f,wt as p}from"./index-ddqm5vYD.js";import{n as m}from"./HostLines-CtIqw3A0.js";import{t as h}from"./PageAlert-B8ulCXV4.js";import{t as g}from"./channel-BWOXaftf.js";import{t as _}from"./Bood-Dg-XtOTh.js";var v=e();function y({host:e,slug:y}){let b=r(),{t:x}=n(),{state:S,error:C}=g(e,u,f),w=t(d)===o(e,y??``);if(C!==null)return(0,v.jsx)(h,{tone:`danger`,title:x(`bots/notices/none`),message:C});if(S===void 0)return(0,v.jsx)(s,{label:x(`bots/notices/reading`)});let T=S.bots.find(e=>e.id===y);if(T===void 0)return(0,v.jsx)(h,{tone:`warning`,message:x(`bots/notices/gone`)});let E=[...a()===`multi`?[{label:x(`common/host`),value:(0,v.jsx)(m,{host:e})}]:[],...T.labels.length===0?[]:[{label:x(`bots/facts/labels`),value:T.labels.join(`, `)}],{label:x(`bots/facts/owner`),value:T.owner},...T.harness===void 0?[]:[{label:x(`bots/facts/agent`),value:T.harness}],...T.model===void 0?[]:[{label:x(`bots/facts/model`),value:T.model}],...T.computer===void 0?[]:[{label:x(`bots/facts/computer`),value:T.computer}],{label:x(`bots/facts/workspace`),value:(0,v.jsx)(`span`,{className:`web-method`,children:T.workspace})},{label:x(`bots/facts/created`),value:p(T.createdAt)},{label:x(`bots/facts/changed`),value:p(T.updatedAt)}],D=t=>void b.commands.execute(t,{host:e,slug:T.id});return(0,v.jsxs)(`div`,{className:`web-page`,children:[(0,v.jsxs)(`div`,{className:`web-bot`,children:[(0,v.jsx)(_,{body:T.body,color:T.color,width:120}),(0,v.jsxs)(`div`,{className:`web-bot__words`,children:[(0,v.jsx)(c,{variant:`h2`,text:T.name}),(T.description??``).trim()===``?null:(0,v.jsx)(`p`,{className:`web-bot__description`,children:T.description}),(0,v.jsxs)(`div`,{className:`web-page__actions`,children:[(0,v.jsx)(i,{label:x(w?`bots/chat/opening`:`bots/actions/chat`),variant:`primary`,disabled:w,onClick:()=>D(`ahp.chatWithBot`)}),(0,v.jsx)(i,{label:x(`bots/actions/edit`),onClick:()=>D(`ahp.editBot`)}),(0,v.jsx)(i,{label:x(`bots/actions/delete`),onClick:()=>D(`ahp.deleteBot`)})]})]})]}),(0,v.jsx)(l,{items:E,columns:2}),(T.instructions??``).trim()===``?null:(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(c,{variant:`h3`,text:x(`bots/facts/instructions`)}),(0,v.jsx)(`p`,{className:`web-bot__instructions`,children:T.instructions})]})]})}export{y as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./Alert-BhdRA0LL.js";var n=e();function r(e){return(0,n.jsx)(`div`,{className:`web-page`,children:(0,n.jsx)(t,{...e})})}export{r as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";var i=e();function a({namespace:e,count:a=`items`,pageSizes:l,always:u=!1}){let d=r(),{t:f}=n(`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":f(`previous`,`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":f(`next`,`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};
|
|
@@ -0,0 +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,t as i}from"./useI18n-T3BwAm0z.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./Button-_R1oktDz.js";import{$ as s,J as c,r as l}from"./data-DsJQo1Qk.js";import{t as u}from"./Spinner-CBEPv0eM.js";import{t as d}from"./Text-MPtQvYE-.js";import{t as f}from"./DetailList-Yalgw0YM.js";import{S as p,T as m,_ as h,b as g,w as _,wt as v}from"./index-ddqm5vYD.js";import{n as y}from"./HostLines-CtIqw3A0.js";import{t as b}from"./PageAlert-B8ulCXV4.js";import{i as x,r as S,t as C}from"./words-D8X2_Vc_.js";var w=t(),T=e();function E(e){if(e.kind===`computer`)return C(e.seconds/3600);let{input:t=0,output:n=0,cache:r}=e.model;return S(t+n+(r?.read??0)+(r?.write??0))}function D(e){return e.cost?.currency.toLowerCase()===`usd`?g({usd:e.cost.amount},r()).cost:void 0}function O({host:e,pool:t}){let r=a(),{t:g}=i(),S=n(l(e).offers)??c,C=n(`$/ahp/usage/asked`)??0,[O,k]=(0,w.useState)(()=>h(new Date)),[A,j]=(0,w.useState)(null),[M,N]=(0,w.useState)(null),[P,F]=(0,w.useState)(null),I=e=>e instanceof Error?e.message:String(e);if((0,w.useEffect)(()=>{let n=!0;return p(e,S,t).then(e=>{n&&j(e)},e=>{n&&F(I(e))}),()=>{n=!1}},[e,S,t,C]),(0,w.useEffect)(()=>{let n=!0;return N(null),Promise.all([_(e,S,t,O),m(e,S,t,O)]).then(([e,t])=>{n&&N({total:e,records:t})},e=>{n&&F(I(e))}),()=>{n=!1}},[e,S,t,O,C]),P!==null)return(0,T.jsx)(b,{tone:`danger`,title:g(`usage/notices/none`),message:P});if(A===null)return(0,T.jsx)(u,{label:g(`usage/notices/reading`)});let L=g(`usage/explorer/nothing`);return(0,T.jsxs)(`div`,{className:`web-page`,children:[(0,T.jsx)(d,{variant:`h2`,text:A.name||t}),(0,T.jsx)(`p`,{className:`web-note`,children:t}),(0,T.jsx)(f,{items:[...s()===`multi`?[{label:g(`common/host`),value:(0,T.jsx)(y,{host:e}),span:!0}]:[],...[`day`,`week`,`month`].map(e=>({label:g(`usage/period/${e}`),value:x(A[e])||L}))]}),(0,T.jsx)(d,{variant:`h3`,text:g(`usage/pool/range`)}),(0,T.jsxs)(`div`,{className:`web-spend__range`,children:[(0,T.jsx)(`input`,{className:`web-field`,type:`date`,value:O.from,max:O.until,"aria-label":g(`usage/range/from`),onChange:e=>{e.target.value!==``&&k({...O,from:e.target.value})}}),(0,T.jsx)(`span`,{"aria-hidden":`true`,children:`–`}),(0,T.jsx)(`input`,{className:`web-field`,type:`date`,value:O.until,min:O.from,"aria-label":g(`usage/range/until`),onChange:e=>{e.target.value!==``&&k({...O,until:e.target.value})}})]}),M===null?(0,T.jsx)(u,{label:g(`usage/notices/reading`)}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`p`,{children:x(M.total)||L}),(0,T.jsx)(d,{variant:`h3`,text:g(`usage/pool/records`)}),M.records.length===0?(0,T.jsx)(`p`,{className:`web-note`,children:g(`usage/pool/noRecords`)}):(0,T.jsx)(`ul`,{className:`web-spend__records`,children:M.records.map((t,n)=>{let i=D(t),a=t.kind===`model`?t.model.name:t.computer;return(0,T.jsxs)(`li`,{className:`web-spend__record`,children:[(0,T.jsx)(`span`,{className:`web-spend__when`,children:v(t.at)}),(0,T.jsx)(`span`,{className:`web-spend__what`,title:a,children:a}),(0,T.jsx)(`span`,{className:`web-spend__measure`,children:E(t)}),(0,T.jsx)(`span`,{className:`web-spend__cost`,children:i??``}),t.session===void 0?(0,T.jsx)(`span`,{}):(0,T.jsx)(o,{label:g(`usage/pool/openSession`),size:`sm`,onClick:()=>void r.commands.execute(`ahp.openSession`,{host:e,resource:t.session})})]},`${t.at}\u{0000}${String(n)}`)})})]})]})}export{O as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./LoginForm-DxyP1mZO.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./useI18n-T3BwAm0z.js","./sigillum-Bev0l9LS.js","./Button-_R1oktDz.js","./styles-yrzHRgom.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./index-ddqm5vYD.js","./surface-presentation-CT86pw6J.js","./preload-helper-BaNbYf_w.js","./sessions-DxQFcZ2M.js","./label-hTY0RCEf.js","./locales-DOA2j2AT.js","./data-DsJQo1Qk.js","./hosts-A0gEDScb.js","./emojis-B4zHbUyk.js","./notify-B2F6UAgq.js","./CommandPalette-G86xI_6j.js","./ActionList-QwhYPQiB.js","./colors-BieSUSt7.js","./ActionList-Bc-jZDaT.css","./terminal-Ctk6FYnN.js","./composer-commands-CzjP_L_C.js","./state-DQKzjLgu.js","./pins-DhjQhJuu.js","./grouping-BZNQYyEm.js","./TextField-DnSHrmJM.js","./_field-parts-BuPjFCuf.js","./_field-parts-DannIEUW.css","./_field-parts-CfQcSJYh.css","./DateTimeInput-x1XGuNl0.css","./state-DRVsnGrf.js","./save-file-CirO0l-u.js","./pick-CEYUa4kK.js","./viewers--ctbhTPt.js","./index-DJ3IEy30.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{It as a}from"./index-ddqm5vYD.js";var o=t(),s=e(),c=(0,o.lazy)(()=>r(()=>import(`./LoginForm-DxyP1mZO.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,36,37,38,39,40,41]),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};
|
|
@@ -0,0 +1,3 @@
|
|
|
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{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./Button-_R1oktDz.js";import{J as o,r as s}from"./data-DsJQo1Qk.js";import{t as c}from"./Spinner-CBEPv0eM.js";import{t as l}from"./Text-MPtQvYE-.js";import{A as u,H as d,L as f,R as p,j as m,k as h}from"./index-ddqm5vYD.js";import{t as g}from"./PageAlert-B8ulCXV4.js";import{t as _}from"./channel-BWOXaftf.js";import{t as v}from"./Field-jnYjqqvV.js";import{n as y,t as b}from"./form-Bw0484oP.js";var x=t(),S=e(),C=f(`roles`);function w({host:e,person:t}){let f=i(),{t:w}=r(),T=t===void 0,E=n(s(e).offers)??o,D=_(e,m.roles.channel,C),[O,k]=(0,x.useState)(null),[A,j]=(0,x.useState)(!1),[M,N]=(0,x.useState)(null);if(D.error!==null)return(0,S.jsx)(g,{tone:`danger`,title:w(`users/notices/none`),message:D.error});if(D.state===void 0)return(0,S.jsx)(c,{label:w(`users/notices/reading`)});let P=T?void 0:D.state.records.find(e=>e.id===t)?.record,F=!T&&P===void 0&&Object.hasOwn(u,t)?u[t]:void 0;if(!T&&P===void 0&&F===void 0)return(0,S.jsx)(g,{tone:`warning`,message:w(`users/role/gone`)});let I=P!==void 0&&t!==void 0&&Object.hasOwn(u,t),L={id:t??``,grants:(P?.grants??F??[]).join(`
|
|
2
|
+
`)},R=O??L,z=e=>k(t=>({...t??L,...e})),B=d(E,`roles`),V=y(R.grants),H=O!==null&&JSON.stringify(O)!==JSON.stringify(L),U=B&&!A&&V.problems.length===0&&(T?b(R.id):H),W=h(`roles`,e,t),G=async()=>{j(!0),N(null);let t=R.id.trim();try{await p(e,E,`roles`,t,{grants:V.grants},T),k(null),T&&(f.surfaces.close(W),f.commands.execute(`ahp.openRole`,{host:e,id:t}))}catch(e){N(e instanceof Error?e.message:String(e))}finally{j(!1)}};return(0,S.jsxs)(`div`,{className:`web-page web-form`,children:[(0,S.jsx)(l,{variant:`h2`,text:T?w(`users/commands/newRole`):t}),B?null:(0,S.jsx)(`p`,{className:`web-note`,children:w(`users/notices/readOnly`)}),F===void 0?null:(0,S.jsx)(`p`,{className:`web-note`,children:w(`users/role/builtInNote`)}),I?(0,S.jsx)(`p`,{className:`web-note`,children:w(`users/role/replacesNote`)}):null,T?(0,S.jsx)(v,{label:w(`users/role/id`),hint:w(`users/role/idHint`),children:(0,S.jsx)(`input`,{className:`web-field`,value:R.id,autoFocus:!0,onChange:e=>z({id:e.target.value})})}):null,(0,S.jsx)(v,{label:w(`users/role/grants`),hint:w(`users/role/grantsHint`),children:(0,S.jsx)(`textarea`,{className:`web-field web-people__grants`,rows:Math.max(6,R.grants.split(`
|
|
3
|
+
`).length+1),spellCheck:!1,value:R.grants,readOnly:!B,onChange:e=>z({grants:e.target.value})})}),V.problems.map(e=>(0,S.jsx)(`p`,{className:`web-people__problem`,children:w(`users/role/badGrant`,{line:e.line,text:e.text})},e.line)),M===null?null:(0,S.jsx)(g,{tone:`danger`,message:M}),B?(0,S.jsxs)(`div`,{className:`web-page__actions`,children:[(0,S.jsx)(a,{label:w(T?`users/role/create`:`users/role/save`),variant:`primary`,disabled:!U,onClick:()=>void G()}),T?(0,S.jsx)(a,{label:w(`users/actions/cancel`),onClick:()=>f.surfaces.close(W)}):(0,S.jsxs)(S.Fragment,{children:[H?(0,S.jsx)(a,{label:w(`users/actions/discard`),onClick:()=>k(null)}):null,F===void 0?(0,S.jsx)(a,{label:w(`users/actions/delete`),variant:`danger`,onClick:()=>void f.commands.execute(`ahp.deleteRole`,{host:e,id:t})}):null]})]}):null]})}export{w as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.oo-schema-form{gap:var(--oo-spacing-md);flex-direction:column;display:flex}.oo-schema-form__modebar{gap:var(--oo-spacing-xs);align-self:flex-end;display:flex}.oo-schema-form__modebar button{font:inherit;font-size:var(--oo-font-size-xs);padding:2px var(--oo-spacing-sm);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);color:inherit;cursor:pointer;background:0 0}.oo-schema-form__modebar button[data-active=true]{background:var(--oo-color-active);border-color:var(--oo-color-accent)}.oo-schema-form__modebar .oo-schema-form__reset{color:var(--oo-color-warning);border-color:var(--oo-color-warning)}.oo-schema-form__json{box-sizing:border-box;width:100%;font-family:var(--oo-font-mono);font-size:var(--oo-font-size-xs);resize:vertical;padding:var(--oo-spacing-sm);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);background:var(--oo-color-canvas);color:inherit}.oo-schema-form__json-editor{resize:vertical;border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);background:var(--oo-color-canvas);height:20rem;min-height:8rem;overflow:hidden}.oo-schema-form__json-error{margin:var(--oo-spacing-xs,4px) 0 0;color:var(--oo-color-danger);font-size:var(--oo-font-size-xs)}.oo-schema-form__empty{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);font-style:italic}.oo-schema-form__union{gap:var(--oo-spacing-sm);flex-direction:column;display:flex}.oo-schema-form__array{gap:var(--oo-spacing-xs);flex-direction:column;display:flex}.oo-schema-form__array-item{gap:var(--oo-spacing-xs);align-items:flex-start;display:flex}.oo-schema-form__array-control{flex:1}.oo-schema-form__array-remove{border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);color:var(--oo-color-danger);padding:var(--oo-spacing-xs) var(--oo-spacing-sm);cursor:pointer;background:0 0;font-weight:700}.oo-schema-form__array-add{border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);color:inherit;padding:var(--oo-spacing-xs) var(--oo-spacing-sm);cursor:pointer;background:0 0;align-self:flex-start}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,t}from"./jsx-runtime-BguD1OXD.js";import{t as n}from"./react-CybPckBe.js";import{t as r}from"./useI18n-T3BwAm0z.js";import{o as i,r as a}from"./mount-context-DZgEFVFG.js";import{t as o}from"./Markdown-_Awuh7Ku.js";import{r as s}from"./Icon-CIQ7doud.js";import{t as c}from"./TextField-DnSHrmJM.js";import{t as l}from"./CheckBox-Dkn59EbO.js";import{t as u}from"./ChoicePicker-I5V6f-aN.js";import{t as d}from"./Form-D7L1aboH.js";import{t as f}from"./Field-CJtqXD7H.js";import{t as p}from"./FormSection-BmWfSm92.js";var m=n(),h=t();function g(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function _(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t)return!1;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((e,n)=>_(e,t[n]));if(typeof e==`object`&&typeof t==`object`){let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.prototype.hasOwnProperty.call(t,n)&&_(e[n],t[n]))}return!1}function v(e){let t=e.type;if(Array.isArray(t))return t.find(e=>e!==`null`)??`string`;if(!t&&Array.isArray(e.oneOf)){let t=e.oneOf.find(e=>e.type&&e.type!==`null`)?.type;if(t)return t}if(!t&&Array.isArray(e.anyOf)){let t=e.anyOf.find(e=>e.type&&e.type!==`null`)?.type;if(t)return t}return!t&&e.items?`array`:!t&&e.properties?`object`:t??`string`}function y(e){return Array.isArray(e.oneOf)&&e.oneOf.length>0?e.oneOf:Array.isArray(e.anyOf)&&e.anyOf.length>0?e.anyOf:[]}function b(e){return y(e).map(t=>({...t,description:t.description??e.description}))}function x(e){return e.items?Array.isArray(e.items)?null:e.items:{type:`string`}}function S(e){let t=y(e);if(t.length>0)return S(t[0]);if(e.default!==void 0)return e.default;if(e.const!==void 0)return e.const;let n=v(e);if(n===`boolean`)return!1;if(n===`number`||n===`integer`)return 0;if(n===`array`)return[];if(n===`object`){let t={},n=e.properties??{},r=new Set(e.required??[]);for(let[e,i]of Object.entries(n))(i.default!==void 0||i.const!==void 0||r.has(e))&&(t[e]=S(i));return t}return``}function ee(e){return typeof e==`string`?e.replace(/\s*\[textarea(?::\d+)?\]/,``):e}function C(e){if(e.format===`textarea`)return 4;let t=e.description?.match(/\[textarea(?::(\d+))?\]/);return t?t[1]?parseInt(t[1],10):4:null}var w=e({SchemaForm:()=>E});function T(e,t){return!!(e.format&&t?.[e.format])}function E({schema:e,value:t,defaultValue:n,onChange:s,errors:c,namespace:l,header:u,formatRenderers:y,jsonEditor:x,jsonTextRoot:S,jsonTextFields:C,baseline:w,onDirtyChange:k,onJsonValidChange:N,style:P}){let{t:F}=r(),te=i(`value`),[I,L]=(0,m.useState)(null),ne=(0,m.useContext)(O),[re,ie]=(0,m.useState)(()=>new Set),ae=(0,m.useCallback)((e,t)=>{ie(n=>{if(n.has(e)!==t)return n;let r=new Set(n);return t?r.delete(e):r.add(e),r})},[]),R=ne??ae,z=(0,m.useId)();(0,m.useEffect)(()=>{R(z,I===null)},[R,z,I]),(0,m.useEffect)(()=>()=>R(z,!0),[R,z]);let B=re.size===0;(0,m.useEffect)(()=>{ne===null&&N?.(B)},[B]);let[V,H]=(0,m.useState)(t??n??{}),[U,W]=(0,m.useState)(`fields`),[G,K]=(0,m.useState)(()=>JSON.stringify(t??n??{},null,2)),q=S??!0,J=C??q,oe=(0,m.useRef)(t??n??{}),Y=w??oe.current,X=!_(V,Y),Z=(0,m.useRef)(t??n);(0,m.useEffect)(()=>{t!==void 0&&(H(e=>e===t?e:t),!_(t,Z.current)&&(Z.current=t,K(JSON.stringify(t,null,2)),L(null)))},[t]),(0,m.useEffect)(()=>{k?.(X)},[X]);let Q=e.properties;if(!Q||Object.keys(Q).length===0)return(0,h.jsx)(`div`,{className:`oo-schema-form__empty`,children:`No parameters defined.`});let se=new Set(e.required??[]);function $(e){Z.current=e,H(e),te(e),s?.(e)}function ce(e,t){$({...V,[e]:t})}function le(){K(JSON.stringify(V,null,2)),L(null),W(`json`)}function ue(){L(null),W(`fields`)}function de(e){K(e);let{parsed:t,error:n}=A(e,g,`an object`);L(n),n===null&&$(t)}function fe(){$(Y),K(JSON.stringify(Y,null,2)),L(null)}function pe(e,t){let n=t[`x-show-if`];if(n&&V[n.field]!==n.value)return null;let r=v(t),i=(t.enum?.length??0)>0||(t[`x-enumOptions`]?.length??0)>0,a=t=>ce(e,t),o={label:t.title??e,hint:ee(t.description),required:se.has(e),error:c?.[e],typeTag:i?`enum`:r},s=l?`${l}_${e}`:void 0;return r===`object`&&!i&&!T(t,y)?(0,h.jsx)(p,{title:o.label??e,children:(0,h.jsx)(E,{schema:{type:`object`,properties:t.properties??{},required:t.required??[]},value:g(V[e])?V[e]:{},baseline:g(Y[e])?Y[e]:{},onChange:a,namespace:s,formatRenderers:y,jsonEditor:x,jsonTextRoot:J})},e):b(t).length>0||r===`array`||T(t,y)?(0,h.jsx)(f,{name:e,label:o.label,hint:o.hint,required:o.required,typeTag:o.typeTag,error:o.error,children:(0,h.jsx)(D,{field:t,value:V[e],onChange:a,required:o.required,error:o.error,namespace:s,formatRenderers:y,jsonEditor:x,jsonTextFields:J})},e):(0,h.jsx)(D,{field:t,value:V[e],onChange:a,meta:o,required:o.required,error:o.error,namespace:s,formatRenderers:y,jsonEditor:x},e)}let me=U===`fields`?Object.entries(Q).map(([e,t])=>pe(e,t)):null,he=q||X?(0,h.jsxs)(`div`,{className:`oo-schema-form__modebar`,children:[q?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`button`,{type:`button`,"data-active":U===`fields`,onClick:ue,children:F(`form/fields`,`fields`)}),(0,h.jsx)(`button`,{type:`button`,"data-active":U===`json`,onClick:le,children:F(`form/json`,`json`)})]}):null,X?(0,h.jsx)(`button`,{type:`button`,className:`oo-schema-form__reset`,onClick:fe,children:`reset`}):null]}):null,ge=U===`json`?(0,h.jsxs)(h.Fragment,{children:[x?(0,h.jsx)(M,{editor:x,value:G,onChange:de}):(0,h.jsx)(`textarea`,{className:`oo-schema-form__json`,value:G,spellCheck:!1,rows:16,onChange:e=>de(e.target.value)}),(0,h.jsx)(j,{error:I})]}):u?(0,h.jsx)(p,{title:u,children:me}):me;return(0,h.jsx)(d.Provider,{value:{errors:c,namespace:l},children:(0,h.jsx)(a.Provider,{value:null,children:(0,h.jsx)(O.Provider,{value:R,children:(0,h.jsxs)(`div`,{className:`oo-schema-form`,style:P,children:[e.description?(0,h.jsx)(o,{text:e.description}):null,he,ge]})})})})}function D({field:e,value:t,onChange:n,meta:i,required:a,error:o,namespace:s,formatRenderers:d,jsonEditor:f,jsonTextFields:p}){let{t:_}=r(),y=b(e),[x,ee]=(0,m.useState)(0);if(y.length>0){let e=y[x]?x:0,r=y[e]??y[0],i=y.map((e,t)=>{let n=v(e),r=e.const===void 0?e.enum&&e.enum.length===1?e.enum[0]:e.title??n:String(e.const);return{value:String(t),label:e.title?`${e.title} (${r})`:r}});return(0,h.jsxs)(`div`,{className:`oo-schema-form__union`,children:[(0,h.jsx)(u,{options:i,value:String(e),onChange:e=>{let t=Number(e),r=Number.isFinite(t)?Math.max(0,Math.min(t,y.length-1)):0;ee(r),n(S(y[r]))}}),(0,h.jsx)(D,{field:r,value:t,onChange:n,namespace:s,formatRenderers:d,jsonEditor:f,jsonTextFields:p})]})}if(e.format&&d?.[e.format]){let r=d[e.format];return(0,h.jsx)(r,{value:t,onChange:n,field:e,error:o})}let w=v(e);if(e.enum&&e.enum.length>0||e[`x-enumOptions`]&&e[`x-enumOptions`].length>0){let r=e[`x-enumOptions`],o=r?r.map(e=>({value:e.value,label:e.description?`${e.label} — ${e.description}`:e.label})):e.enum??[],s=a?o:[{value:``,label:_(`form/select`,`Select…`)},...o];return(0,h.jsx)(u,{options:s,value:String(t??e.default??``),onChange:e=>n(e),label:i?.label,hint:i?.hint,error:i?.error,required:i?.required,typeTag:i?.typeTag})}if(w===`boolean`)return(0,h.jsx)(l,{value:!!(t??e.default??!1),onChange:e=>n(e),label:i?.label,hint:i?.hint,error:i?.error,required:i?.required});if(w===`number`||w===`integer`)return(0,h.jsx)(c,{type:`number`,value:t===void 0?``:String(t),min:e.minimum,max:e.maximum,onChange:e=>n(e===``?void 0:Number(e)),label:i?.label,hint:i?.hint,error:i?.error,required:i?.required,typeTag:i?.typeTag});if(w===`color`)return(0,h.jsx)(c,{type:`color`,value:t===void 0?``:String(t),min:e.minimum,max:e.maximum,onChange:e=>n(e===``?void 0:Number(e)),label:i?.label,hint:i?.hint,error:i?.error,required:i?.required,typeTag:i?.typeTag});if(w===`array`)return(0,h.jsx)(P,{field:e,value:t,onChange:n,namespace:s,formatRenderers:d,jsonEditor:f,jsonTextFields:p});if(w===`object`)return(0,h.jsx)(E,{schema:{type:`object`,properties:e.properties??{},required:e.required??[]},value:g(t)?t:{},onChange:e=>n(e),namespace:s,formatRenderers:d,jsonEditor:f,jsonTextRoot:p});let T=C(e);return(0,h.jsx)(c,{type:e.format===`password`?`password`:`text`,multiline:T!==null,rows:T??void 0,value:String(t??e.default??``),onChange:e=>n(e),label:i?.label,hint:i?.hint,error:i?.error,required:i?.required,typeTag:i?.typeTag})}var O=(0,m.createContext)(null);function k(e){let t=(0,m.useContext)(O),n=(0,m.useId)();(0,m.useEffect)(()=>{t?.(n,e===null)},[t,n,e]),(0,m.useEffect)(()=>()=>t?.(n,!0),[t,n])}function A(e,t,n){try{let r=JSON.parse(e);return t(r)?{parsed:r,error:null}:{parsed:r,error:`The JSON must be ${n}.`}}catch(e){return{parsed:void 0,error:e instanceof Error?e.message:String(e)}}}function j({error:e}){return e===null?null:(0,h.jsx)(`p`,{className:`oo-schema-form__json-error`,role:`alert`,children:e})}function M({editor:e,value:t,onChange:n}){return(0,h.jsx)(`div`,{className:`oo-schema-form__json-editor`,children:(0,h.jsx)(e,{value:t,onChange:n})})}function N({items:e,onChange:t,jsonEditor:n}){let r=JSON.stringify(e,null,2),[i,a]=(0,m.useState)(r),[o,s]=(0,m.useState)(null),l=(0,m.useRef)(r);(0,m.useEffect)(()=>{r!==l.current&&(l.current=r,a(r),s(null))},[r]),k(o);let u=e=>{a(e);let n=A(e,Array.isArray,`an array`);s(n.error),n.error===null&&(l.current=JSON.stringify(n.parsed,null,2),t(n.parsed))};return(0,h.jsxs)(h.Fragment,{children:[n?(0,h.jsx)(M,{editor:n,value:i,onChange:u}):(0,h.jsx)(c,{multiline:!0,rows:5,value:i,onChange:u}),(0,h.jsx)(j,{error:o})]})}function P({field:e,value:t,onChange:n,namespace:i,formatRenderers:a,jsonEditor:o,jsonTextFields:c}){let{t:l}=r(),u=Array.isArray(t)?t:[],d=x(e);return d?(0,h.jsxs)(`div`,{className:`oo-schema-form__array`,children:[u.map((e,t)=>(0,h.jsxs)(`div`,{className:`oo-schema-form__array-item`,children:[(0,h.jsx)(`div`,{className:`oo-schema-form__array-control`,children:(0,h.jsx)(D,{field:d,value:e,onChange:e=>n(u.map((n,r)=>r===t?e:n)),namespace:i,formatRenderers:a,jsonEditor:o,jsonTextFields:c})}),(0,h.jsx)(`button`,{type:`button`,className:`oo-schema-form__array-remove`,onClick:()=>n(u.filter((e,n)=>n!==t)),"aria-label":l(`form/removeItem`,`Remove item`),children:s.closePanel})]},t)),(0,h.jsx)(`button`,{type:`button`,className:`oo-btn oo-schema-form__array-add`,onClick:()=>n([...u,S(d)]),children:l(`form/addItem`,`+ add item`)})]}):(0,h.jsx)(N,{items:u,onChange:n,jsonEditor:o})}export{w as n,E as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{t as r}from"./Button-_R1oktDz.js";import{ct as i,n as a,s as o}from"./data-DsJQo1Qk.js";import{t as s}from"./Spinner-CBEPv0eM.js";import{t as c}from"./Text-MPtQvYE-.js";import{t as l}from"./SchemaForm-uhkLDWDC.js";import{$ as u,F as d,H as f,I as p,K as m,N as h,P as g,Y as _,et as v,ft as y,gt as b,ht as x,j as S,lt as C,pt as ee,tt as w,xt as T}from"./dist-BvY_obDK.js";import{t as te}from"./CodeEditor-C-ygqVsY.js";import{n as ne}from"./dist-DxvAUGwy.js";import{t as E}from"./PageAlert-B8ulCXV4.js";import{t as re}from"./channel-BWOXaftf.js";var D=t();function ie(e,t){return Object.fromEntries(Object.entries(t).filter(([t,n])=>JSON.stringify(n)!==JSON.stringify(e[t])))}var O=class{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}},k=class e{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(t,n,r){let i=r.facet(R).markerFilter;i&&(t=i(t,r));let a=t.slice().sort((e,t)=>e.from-t.from||e.to-t.to),o=new ee,s=[],c=0,l=r.doc.iter(),u=0,d=r.doc.length;for(let e=0;;){let t=e==a.length?null:a[e];if(!t&&!s.length)break;let n,r;if(s.length)n=c,r=s.reduce((e,t)=>Math.min(e,t.to),t&&t.from>n?t.from:1e8);else{if(n=t.from,n>d)break;r=t.to,s.push(t),e++}for(;e<a.length;){let t=a[e];if(t.from==n&&(t.to>t.from||t.to==n))s.push(t),e++,r=Math.min(t.to,r);else{r=Math.min(t.from,r);break}}r=Math.min(r,d);let i=!1;if(s.some(e=>e.from==n&&(e.to==r||r==d))&&(i=n==r,!i&&r-n<10)){let e=n-(u+l.value.length);e>0&&(l.next(e),u=n);for(let e=n;;){if(e>=r){i=!0;break}if(!l.lineBreak&&u+l.value.length>e)break;e=u+l.value.length,u+=l.value.length,l.next()}}let f=K(s);if(i)o.add(n,n,S.widget({widget:new fe(f),diagnostics:s.slice()}));else{let e=s.reduce((e,t)=>t.markClass?e+` `+t.markClass:e,``);o.add(n,r,S.mark({class:`cm-lintRange cm-lintRange-`+f+e,diagnostics:s.slice(),inclusiveEnd:s.some(e=>e.to>r)}))}if(c=r,c==d)break;for(let e=0;e<s.length;e++)s[e].to<=c&&s.splice(e--,1)}let f=o.finish();return new e(f,n,A(f))}};function A(e,t=null,n=0){let r=null;return e.between(n,1e9,(e,n,{spec:i})=>{if(!(t&&i.diagnostics.indexOf(t)<0)){if(!r)r=new O(e,n,t||i.diagnostics[0]);else if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;else r=new O(r.from,n,r.diagnostic)}}),r}function j(e,t){let n=t.pos,r=t.end||n,i=e.state.facet(R).hideOn(e,n,r);if(i!=null)return i;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(e=>e.is(M))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function ae(e,t){return e.field(F,!1)?t:t.concat(x.appendConfig.of(Z))}function oe(e,t){return{effects:ae(e,[M.of(t)])}}var M=x.define(),N=x.define(),P=x.define(),F=b.define({create(){return new k(S.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,i=e.panel;if(e.selected){let i=t.changes.mapPos(e.selected.from,1);r=A(n,e.selected.diagnostic,i)||A(n,null,i)}!n.size&&i&&t.state.facet(R).autoPanel&&(i=null),e=new k(n,i,r)}for(let n of t.effects)if(n.is(M)){let r=t.state.facet(R).autoPanel?n.value.length?U.open:null:e.panel;e=k.init(n.value,r,t.state)}else n.is(N)?e=new k(e.diagnostics,n.value?U.open:null,e.selected):n.is(P)&&(e=new k(e.diagnostics,e.panel,n.value));return e},provide:e=>[u.from(e,e=>e.panel),h.decorations.from(e,e=>e.diagnostics)]}),se=S.mark({class:`cm-lintRange cm-lintRange-active`});function ce(e,t,n){let{diagnostics:r}=e.state.field(F),i,a=-1,o=-1;r.between(t-+(n<0),t+ +(n>0),(e,r,{spec:s})=>{if(t>=e&&t<=r&&(e==r||(t>e||n>0)&&(t<r||n<0)))return i=s.diagnostics,a=e,o=r,!1});let s=e.state.facet(R).tooltipFilter;return i&&s&&(i=s(i,e.state)),i?{pos:a,end:o,above:!0,create(){return{dom:I(e,i)}}}:null}function I(e,t){return w(`ul`,{class:`cm-tooltip-lint`},t.map(t=>V(e,t,!1)))}var L=e=>{let t=e.state.field(F,!1);return!t||!t.panel?!1:(e.dispatch({effects:N.of(!1)}),!0)},le=d.fromClass(class{constructor(e){this.view=e,this.timeout=-1,this.set=!0;let{delay:t}=e.state.facet(R);this.lintTime=Date.now()+t,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,t)}run(){clearTimeout(this.timeout);let e=Date.now();if(e<this.lintTime-10)this.timeout=setTimeout(this.run,this.lintTime-e);else{this.set=!1;let{state:e}=this.view,{sources:t}=e.facet(R);t.length&&ue(t.map(e=>Promise.resolve(e(this.view))),t=>{this.view.state.doc==e.doc&&this.view.dispatch(oe(this.view.state,t.reduce((e,t)=>e.concat(t))))},e=>{_(this.view.state,e)})}}update(e){let t=e.state.facet(R);(e.docChanged||t!=e.startState.facet(R)||t.needsRefresh&&t.needsRefresh(e))&&(this.lintTime=Date.now()+t.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,t.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function ue(e,t,n){let r=[],i=-1;for(let a of e)a.then(n=>{r.push(n),clearTimeout(i),r.length==e.length?t(r):i=setTimeout(()=>t(r),200)},n)}var R=C.define({combine(e){return{sources:e.map(e=>e.source).filter(e=>e!=null),...T(e.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:z,tooltipFilter:z,needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t,hideOn:(e,t)=>e?t?(n,r,i)=>e(n,r,i)||t(n,r,i):e:t,autoPanel:(e,t)=>e||t})}}});function z(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function de(e,t={}){return[R.of({source:e,config:t}),le,Z]}function B(e){let t=[];if(e)actions:for(let{name:n}of e){for(let e=0;e<n.length;e++){let r=n[e];if(/[a-zA-Z]/.test(r)&&!t.some(e=>e.toLowerCase()==r.toLowerCase())){t.push(r);continue actions}}t.push(``)}return t}function V(e,t,n){let r=n?B(t.actions):[];return w(`li`,{class:`cm-diagnostic cm-diagnostic-`+t.severity},w(`span`,{class:`cm-diagnosticText`},t.renderMessage?t.renderMessage(e):t.message),t.actions?.map((n,i)=>{let a=!1,o=r=>{if(r.preventDefault(),a)return;a=!0;let i=A(e.state.field(F).diagnostics,t);i&&n.apply(e,i.from,i.to)},{name:s}=n,c=r[i]?s.indexOf(r[i]):-1,l=c<0?s:[s.slice(0,c),w(`u`,s.slice(c,c+1)),s.slice(c+1)],u=n.markClass?` `+n.markClass:``;return w(`button`,{type:`button`,class:`cm-diagnosticAction`+u,onclick:o,onmousedown:o,"aria-label":` Action: ${s}${c<0?``:` (access key "${r[i]})"`}.`},l)}),t.source&&w(`div`,{class:`cm-diagnosticSource`},t.source))}var fe=class extends p{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return w(`span`,{class:`cm-lintPoint cm-lintPoint-`+this.sev})}},H=class{constructor(e,t){this.diagnostic=t,this.id=`item_`+Math.floor(Math.random()*4294967295).toString(16),this.dom=V(e,t,!0),this.dom.id=this.id,this.dom.setAttribute(`role`,`option`)}},U=class e{constructor(e){this.view=e,this.items=[];let t=t=>{if(!(t.ctrlKey||t.altKey||t.metaKey)){if(t.keyCode==27)L(this.view),this.view.focus();else if(t.keyCode==38||t.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(t.keyCode==40||t.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(t.keyCode==36)this.moveSelection(0);else if(t.keyCode==35)this.moveSelection(this.items.length-1);else if(t.keyCode==13)this.view.focus();else if(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:n}=this.items[this.selectedIndex],r=B(n.actions);for(let i=0;i<r.length;i++)if(r[i].toUpperCase().charCodeAt(0)==t.keyCode){let t=A(this.view.state.field(F).diagnostics,n);t&&n.actions[i].apply(e,t.from,t.to)}}else return;t.preventDefault()}},n=e=>{for(let t=0;t<this.items.length;t++)this.items[t].dom.contains(e.target)&&this.moveSelection(t)};this.list=w(`ul`,{tabIndex:0,role:`listbox`,"aria-label":this.view.state.phrase(`Diagnostics`),onkeydown:t,onclick:n}),this.dom=w(`div`,{class:`cm-panel-lint`},this.list,w(`button`,{type:`button`,name:`close`,"aria-label":this.view.state.phrase(`close`),onclick:()=>L(this.view)},`×`)),this.update()}get selectedIndex(){let e=this.view.state.field(F).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(F),n=0,r=!1,i=null,a=new Set;for(e.between(0,this.view.state.doc.length,(e,o,{spec:s})=>{for(let e of s.diagnostics){if(a.has(e))continue;a.add(e);let o=-1,s;for(let t=n;t<this.items.length;t++)if(this.items[t].diagnostic==e){o=t;break}o<0?(s=new H(this.view,e),this.items.splice(n,0,s),r=!0):(s=this.items[o],o>n&&(this.items.splice(n,o-n),r=!0)),t&&s.diagnostic==t.diagnostic?s.dom.hasAttribute(`aria-selected`)||(s.dom.setAttribute(`aria-selected`,`true`),i=s):s.dom.hasAttribute(`aria-selected`)&&s.dom.removeAttribute(`aria-selected`),n++}});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)r=!0,this.items.pop();this.items.length==0&&(this.items.push(new H(this.view,{from:-1,to:-1,severity:`info`,message:this.view.state.phrase(`No diagnostics`)})),r=!0),i?(this.list.setAttribute(`aria-activedescendant`,i.id),this.view.requestMeasure({key:this,read:()=>({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{let n=t.height/this.list.offsetHeight;e.top<t.top?this.list.scrollTop-=(t.top-e.top)/n:e.bottom>t.bottom&&(this.list.scrollTop+=(e.bottom-t.bottom)/n)}})):this.selectedIndex<0&&this.list.removeAttribute(`aria-activedescendant`),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=A(this.view.state.field(F).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:P.of(t)})}static open(t){return new e(t)}};function W(e,t=`viewBox="0 0 40 40"`){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function G(e){return W(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,`width="6" height="3"`)}var pe=h.baseTheme({".cm-diagnostic":{padding:`3px 6px 3px 8px`,marginLeft:`-1px`,display:`block`,whiteSpace:`pre-wrap`},".cm-diagnostic-error":{borderLeft:`5px solid #d11`},".cm-diagnostic-warning":{borderLeft:`5px solid orange`},".cm-diagnostic-info":{borderLeft:`5px solid #999`},".cm-diagnostic-hint":{borderLeft:`5px solid #66d`},".cm-diagnosticAction":{font:`inherit`,border:`none`,padding:`2px 4px`,backgroundColor:`#444`,color:`white`,borderRadius:`3px`,marginLeft:`8px`,cursor:`pointer`},".cm-diagnosticSource":{fontSize:`70%`,opacity:.7},".cm-lintRange":{backgroundPosition:`left bottom`,backgroundRepeat:`repeat-x`,paddingBottom:`0.7px`},".cm-lintRange-error":{backgroundImage:G(`#f11`)},".cm-lintRange-warning":{backgroundImage:G(`orange`)},".cm-lintRange-info":{backgroundImage:G(`#999`)},".cm-lintRange-hint":{backgroundImage:G(`#66d`)},".cm-lintRange-active":{backgroundColor:`#ffdd9980`},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:`relative`,"&:after":{content:`""`,position:`absolute`,bottom:0,left:`-2px`,borderLeft:`3px solid transparent`,borderRight:`3px solid transparent`,borderBottom:`4px solid #d11`}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:`orange`}},".cm-lintPoint-info":{"&:after":{borderBottomColor:`#999`}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:`#66d`}},".cm-panel.cm-panel-lint":{position:`relative`,"& ul":{maxHeight:`100px`,overflowY:`auto`,"& [aria-selected]":{backgroundColor:`#ddd`,"& u":{textDecoration:`underline`}},"&:focus [aria-selected]":{background_fallback:`#bdf`,backgroundColor:`Highlight`,color_fallback:`white`,color:`HighlightText`},"& u":{textDecoration:`none`},padding:0,margin:0},"& [name=close]":{position:`absolute`,top:`0`,right:`2px`,background:`inherit`,border:`none`,font:`inherit`,padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:`#86714a80`},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:`#2e343e`}}});function me(e){return e==`error`?4:e==`warning`?3:e==`info`?2:1}function K(e){let t=`hint`,n=1;for(let r of e){let e=me(r.severity);e>n&&(n=e,t=r.severity)}return t}var q=class extends g{constructor(e){super(),this.diagnostics=e,this.severity=K(e)}toDOM(e){let t=document.createElement(`div`);t.className=`cm-lint-marker cm-lint-marker-`+this.severity;let n=this.diagnostics,r=e.state.facet(Q).tooltipFilter;return r&&(n=r(n,e.state)),n.length&&(t.onmouseover=()=>ge(e,t,n)),t}};function he(e,t){let n=r=>{let i=t.getBoundingClientRect();if(!(r.clientX>i.left-10&&r.clientX<i.right+10&&r.clientY>i.top-10&&r.clientY<i.bottom+10)){for(let e=r.target;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains(`cm-tooltip-lint`))return;window.removeEventListener(`mousemove`,n),e.state.field(X)&&e.dispatch({effects:Y.of(null)})}};window.addEventListener(`mousemove`,n)}function ge(e,t,n){function r(){let r=e.elementAtHeight(t.getBoundingClientRect().top+5-e.documentTop);e.coordsAtPos(r.from)&&e.dispatch({effects:Y.of({pos:r.from,above:!1,clip:!1,create(){return{dom:I(e,n),getCoords:()=>t.getBoundingClientRect()}}})}),t.onmouseout=t.onmousemove=null,he(e,t)}let{hoverTime:i}=e.state.facet(Q),a=setTimeout(r,i);t.onmouseout=()=>{clearTimeout(a),t.onmouseout=t.onmousemove=null},t.onmousemove=()=>{clearTimeout(a),a=setTimeout(r,i)}}function _e(e,t){let n=Object.create(null);for(let r of t){let t=e.lineAt(r.from);(n[t.from]||(n[t.from]=[])).push(r)}let r=[];for(let e in n)r.push(new q(n[e]).range(+e));return y.of(r,!0)}var ve=f({class:`cm-gutter-lint`,markers:e=>e.state.field(J),widgetMarker:(e,t,n)=>{let r=[];return e.state.field(J).between(n.from,n.to,(e,t,i)=>{e>n.from&&e<n.to&&r.push(...i.diagnostics)}),r.length?new q(r):null}}),J=b.define({create(){return y.empty},update(e,t){e=e.map(t.changes);let n=t.state.facet(Q).markerFilter;for(let r of t.effects)if(r.is(M)){let i=r.value;n&&(i=n(i||[],t.state)),e=_e(t.state.doc,i.slice(0))}return e}}),Y=x.define(),X=b.define({create(){return null},update(e,t){return e&&t.docChanged&&(e=j(t,e)?null:{...e,pos:t.changes.mapPos(e.pos)}),t.effects.reduce((e,t)=>t.is(Y)?t.value:e,e)},provide:e=>v.from(e)}),ye=h.baseTheme({".cm-gutter-lint":{width:`1.4em`,"& .cm-gutterElement":{padding:`.2em`}},".cm-lint-marker":{width:`1em`,height:`1em`},".cm-lint-marker-info":{content:W(`<path fill="#aaf" stroke="#77e" stroke-width="6" stroke-linejoin="round" d="M5 5L35 5L35 35L5 35Z"/>`)},".cm-lint-marker-warning":{content:W(`<path fill="#fe8" stroke="#fd7" stroke-width="6" stroke-linejoin="round" d="M20 6L37 35L3 35Z"/>`)},".cm-lint-marker-error":{content:W(`<circle cx="20" cy="20" r="15" fill="#f87" stroke="#f43" stroke-width="6"/>`)}}),be=m(ce,{hideOn:j}),Z=[F,h.decorations.compute([F],e=>{let{selected:t,panel:n}=e.field(F);return!t||!n||t.from==t.to?S.none:S.set([se.range(t.from,t.to)])}),be,pe],Q=C.define({combine(e){return T(e,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function xe(e={}){return[Q.of(e),J,ve,ye,X]}var $=e(),Se=[de(ne(),{delay:250}),xe()];function Ce({value:e,onChange:t}){return(0,$.jsx)(te,{value:e,language:`json`,onChange:t,extensions:Se})}function we({host:e}){let{t}=n(),{state:u,error:d}=re(e,a,i),f=u?.config,[p,m]=(0,D.useState)({}),[h,g]=(0,D.useState)(!1),[_,v]=(0,D.useState)(!0),y=(0,D.useMemo)(()=>f?.values??{},[f]);if((0,D.useEffect)(()=>{m(y)},[y]),d!==null)return(0,$.jsx)(E,{tone:`danger`,title:t(`host/settings/unreadable`),message:d});if(u===void 0)return(0,$.jsx)(s,{label:t(`host/settings/reading`)});if(f===void 0)return(0,$.jsx)(E,{tone:`info`,message:t(`host/settings/none`)});let b=ie(y,p),x=Object.keys(b).length>0,S=()=>{o(e).dispatch(a,{type:`root/configChanged`,config:b}),g(!0)};return(0,$.jsxs)(`div`,{className:`web-page`,children:[(0,$.jsx)(c,{variant:`h2`,text:t(`host/settings/title`)}),(0,$.jsx)(l,{schema:f.schema,value:p,onChange:e=>{m(e),g(!1)},baseline:y,jsonEditor:Ce,onJsonValidChange:v}),(0,$.jsxs)(`div`,{className:`web-page__actions`,children:[(0,$.jsx)(r,{label:t(`host/settings/save`),variant:`primary`,disabled:!x||!_,..._?{}:{title:t(`host/settings/fixJson`)},onClick:S}),(0,$.jsx)(r,{label:t(`host/settings/reset`),disabled:!x,onClick:()=>m(y)}),h&&!x?(0,$.jsx)(`span`,{className:`web-note`,children:t(`host/settings/saved`)}):null]})]})}export{we as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./useStore-BQkzWMs-.js";import{t}from"./sigillum-Bev0l9LS.js";import{It as n}from"./index-ddqm5vYD.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./label-hTY0RCEf.js";import{l as r,t as i}from"./useI18n-T3BwAm0z.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./ContextMenu-DlF_3KO_.js";import{n as s,r as c,t as l}from"./HeaderAction-Bs-AE__U.js";import{r as u}from"./MountTitle-BYR1nX0U.js";var d=e(),f=t();function p({title:e,icon:t,color:u,actions:p=[]}){let h=a(),{t:g}=i(),[_,v]=(0,f.useState)(null),y=e=>void h.commands.execute(e),b=e=>n(e,{get:e=>h.store.get(e),translate:r}),x=e=>b(e.label),S=b(e);function C(e){e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();v({x:t.right,y:t.bottom+2})}return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{className:`oo-section-header`,"data-color":u,style:m,children:[(0,d.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0},children:[t?(0,d.jsx)(`span`,{className:`oo-section-header__icon`,"aria-hidden":!0,children:t}):null,(0,d.jsx)(`span`,{className:`oo-section-header__title`,style:{overflow:`hidden`,textOverflow:`ellipsis`},children:S})]}),(0,d.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:2},children:[p.map(e=>(0,d.jsx)(l,{action:e,text:x(e),run:y},e.command)),p.length?(0,d.jsx)(`button`,{className:`oo-btn oo-btn--icon`,"data-variant":`ghost`,type:`button`,title:g(`common/moreActions`,`More actions`),"aria-label":g(`common/moreActions`,`More actions`),onClick:C,style:s,children:`⋯`}):null]})]}),_?(0,d.jsx)(o,{x:_.x,y:_.y,onClose:()=>v(null),spec:{footerHints:!0,items:p.filter(e=>c(h,e)).map(e=>({title:x(e)||e.command,icon:e.icon,...e.active===void 0?{}:{active:h.when.evaluate(e.active)},onSelect:t=>{if(e.menu!==void 0){t.pushList({title:x(e)||e.command,query:{slot:e.menu}});return}y(e.command),t.closeMenu()}}))}}):null]})}var m={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};function h({mounts:e,state:t,renderMount:n,renderEmpty:r}){let i=a(),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,l=u(o,``),f=o?.props?.icon??s?.icon,m=o?.props?.color??s?.color,h=o?.props?.actions??s?.actions,g=!!(c||h&&h.length);return(0,d.jsxs)(`div`,{className:`oo-layout oo-layout--single`,style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`,minHeight:0},children:[g?(0,d.jsx)(p,{title:l||o?.key||``,icon:f,color:m,actions:h}):null,(0,d.jsx)(`div`,{style:{flex:1,minHeight:0,position:`relative`},children:e.length===0?r?.()??null:e.map(e=>(0,d.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{h 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{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./ContextMenu-DlF_3KO_.js";import{r as o}from"./Icon-CIQ7doud.js";import{r as s}from"./MountTitle-BYR1nX0U.js";var c=t(),l=e();function u({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,l.jsx)(`div`,{className:[`oo-toolbar`,e].filter(Boolean).join(` `),"data-direction":n,style:s,children:o})}var d=(0,c.createContext)(null);function f(){let e=(0,c.useContext)(d);if(!e)throw Error(`useCampus() must be used inside <CampusView>`);return e}var p=(0,c.createContext)(1);function m(){return(0,c.useContext)(p)}var h={n:`ns-resize`,s:`ns-resize`,e:`ew-resize`,w:`ew-resize`,ne:`nesw-resize`,sw:`nesw-resize`,nw:`nwse-resize`,se:`nwse-resize`},g={w:80,h:60};function _(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 v(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 y({bounds:e,onCommit:t,minSize:n=g,resizable:r=!0,movable:i=!0,dragHandle:a=`[data-campus-drag]`,selected:o=!1,zIndex:s,children:u,onPointerDownCapture:d,onClick:p,onContextMenu:h,className:y,style:x,bodyStyle:S}){let{viewportRef:C,maxDepth:w}=f(),T=m(),[E,D]=(0,c.useState)(null),O=(0,c.useRef)(null),k=(0,c.useRef)(null),A=(0,c.useRef)(null);(0,c.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`?v(t.start,i,a,w):_(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:s??(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,l.jsxs)(`div`,{className:[`oo-campus-nodus`,y].filter(Boolean).join(` `),"data-selected":o,style:L,onPointerDownCapture:d,onPointerDown:N,onPointerMove:P,onPointerUp:F,onClick:p,onContextMenu:h,children:[(0,l.jsx)(`div`,{style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`,overflow:`hidden`,...S},children:u}),r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(b,{mode:`n`,startDrag:M,onPointerMove:P,endDrag:F}),(0,l.jsx)(b,{mode:`s`,startDrag:M,onPointerMove:P,endDrag:F}),(0,l.jsx)(b,{mode:`e`,startDrag:M,onPointerMove:P,endDrag:F}),(0,l.jsx)(b,{mode:`w`,startDrag:M,onPointerMove:P,endDrag:F}),(0,l.jsx)(b,{mode:`nw`,startDrag:M,onPointerMove:P,endDrag:F}),(0,l.jsx)(b,{mode:`ne`,startDrag:M,onPointerMove:P,endDrag:F}),(0,l.jsx)(b,{mode:`sw`,startDrag:M,onPointerMove:P,endDrag:F}),(0,l.jsx)(b,{mode:`se`,startDrag:M,onPointerMove:P,endDrag:F})]}):null]})}function b({mode:e,startDrag:t,onPointerMove:n,endDrag:r}){let i=e.length===2,a;if(i)a={position:`absolute`,width:12,height:12,cursor:h[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:h[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,l.jsx)(`div`,{className:`oo-campus-nodus-resize oo-campus-nodus-resize--${e}`,onPointerDown:n=>t(e,n),onPointerMove:n,onPointerUp:r,style:a})}function x({zoom:e=1,pan:t,zIndex:n,className:r,style:i,children:a}){let o=t?.x??0,s=t?.y??0,c=o!==0||s!==0||e!==1?`translate(${o}px, ${s}px) scale(${e})`:void 0;return(0,l.jsx)(p.Provider,{value:e,children:(0,l.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:c,zIndex:n,...i},children:a})})}function S({className:e,style:t,children:n}){return n==null||n===!1?null:(0,l.jsx)(`div`,{className:[`oo-campus-velum`,e].filter(Boolean).join(` `),style:{position:`absolute`,inset:0,pointerEvents:`none`,zIndex:30,...t},children:n})}var C=.1,w=4,T=1.1,E=9,D=.95,O=40,k=140;function A(e,t,n){return Math.max(t,Math.min(n,e))}function j(e){return`translate(${e.panX}px, ${e.panY}px) scale(${e.scale})`}function M(e,t,n,r,i){let a=A(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?A(o,t.w-c,c):t.w/2,s=2*l>=t.h?A(s,t.h-l,l):t.h/2,{scale:a,panX:o,panY:s}}function N({viewport:e,onViewportChange:t,maxDepth:n=1/0,minScale:r=C,maxScale:i=w,zoomStep:a=T,showGrid:o=!0,onBackgroundClick:s,onBackgroundContextMenu:u,nodes:f,nodeTypes:p,nodeLayers:m,defaultLayer:h,onNodeCommit:g,onNodeSelect:_,onNodeContextMenu:v,className:y,style:b,children:O,ref:N}){let I=(0,c.useRef)(null),L=(0,c.useRef)(null),R=(0,c.useRef)(a),z=(0,c.useRef)(r),B=(0,c.useRef)(i),V=(0,c.useRef)(Q),[H,U]=(0,c.useState)({w:0,h:0});(0,c.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,c.useRef)(e),G=(0,c.useRef)(new Set),K=(0,c.useCallback)(e=>(G.current.add(e),()=>{G.current.delete(e)}),[]);function ee(){G.current.forEach(e=>e())}function q(e){let t=L.current;t&&(t.style.transform=j(e))}let te=(0,c.useRef)(t);te.current=t;let J=(0,c.useRef)(null);function ne(){J.current!==null&&window.clearTimeout(J.current),J.current=window.setTimeout(()=>{J.current=null,te.current(W.current)},k)}(0,c.useEffect)(()=>()=>{J.current!==null&&window.clearTimeout(J.current)},[]),(0,c.useEffect)(()=>{let t=W.current;(e.scale!==t.scale||e.panX!==t.panX||e.panY!==t.panY)&&(W.current=e,q(e),ee())},[e]);let Y=(0,c.useRef)(null),X=(0,c.useRef)(null);function Z(e){let t=M(e,H,n,r,i);W.current=t,q(t),ee(),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,c.useEffect)(()=>{R.current=a,z.current=r,B.current=i,V.current=Q}),(0,c.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=A(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,c.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<E||(!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||s?.())}function se(e){re(e.target)&&u?.(e)}(0,c.useImperativeHandle)(N,()=>({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=A(Math.min(t.w/a.w,t.h/a.h)*D,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=A(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,c.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,c.useMemo)(()=>({viewportRef:W,subscribeViewport:K,container:H,maxDepth:n}),[K,H,n]);return(0,l.jsx)(d.Provider,{value:ue,children:(0,l.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`,...b},children:[o?(0,l.jsx)(F,{}):null,(0,l.jsx)(`div`,{ref:L,className:`oo-campus-world`,style:{position:`absolute`,left:0,top:0,width:0,height:0,transform:j(W.current),transformOrigin:`0 0`},children:le.map(e=>(0,l.jsx)(x,{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,l.jsx)(P,{node:e,onCommit:g,onSelect:_,onContextMenu:v,children:(0,l.jsx)(t,{id:e.id,selected:!!e.selected,data:e.data})},e.id):null})},e.name))}),(0,l.jsx)(S,{children:O})]})})}function P({node:e,onCommit:t,onSelect:n,onContextMenu:r,children:i}){return(0,l.jsx)(y,{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 F(){let{viewportRef:e,subscribeViewport:t}=f(),{panX:n,panY:r,scale:i}=(0,c.useSyncExternalStore)(t,()=>e.current),a=O*i,o=a<6?0:a>200?.04:Math.min(.12,a/200);if(o<=0)return null;let s=(n%a+a)%a,u=(r%a+a)%a,d=`rgba(128, 128, 128, ${o})`;return(0,l.jsx)(`div`,{className:`oo-campus-grid`,"aria-hidden":!0,style:{position:`absolute`,inset:0,pointerEvents:`none`,backgroundImage:`linear-gradient(to right, ${d} 1px, transparent 1px),linear-gradient(to bottom, ${d} 1px, transparent 1px)`,backgroundSize:`${a}px ${a}px, ${a}px ${a}px`,backgroundPosition:`${s}px ${u}px, ${s}px ${u}px`}})}var I=160,L=110,R=12,z={bottom:12,right:12};function B({nodes:e,onJumpTo:t,width:r=I,height:i=L,padding:a=R,anchor:o=z,className:s,style:u}){let{viewportRef:d,subscribeViewport:p,container:m}=f(),h=(0,c.useSyncExternalStore)(p,()=>d.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,l.jsxs)(`div`,{className:[`oo-campus-mappa`,s].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,l.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,l.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 V({selected:e,data:t}){let{t:n}=r(),{mount:a,renderMount:c,onClose:u}=t,d=i().components.get(a.component.component)?.props,f=s(a,a.key),p=a.props?.icon??d?.icon,m=a.props?.color??d?.color;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(`div`,{className:`oo-spatial-card__header`,"data-campus-drag":!0,"data-color":m,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,l.jsxs)(`span`,{title:f,style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0},children:[p?(0,l.jsx)(`span`,{className:`oo-spatial-card__icon`,"aria-hidden":!0,children:p}):null,(0,l.jsx)(`span`,{className:`oo-spatial-card__title`,style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:f})]}),(0,l.jsx)(`span`,{onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),u()},title:n(`common/close`,`Close`),style:{cursor:`pointer`},children:o.closePanel})]}),(0,l.jsx)(`div`,{className:`oo-spatial-card__body`,style:{flex:1,overflow:`auto`,minHeight:0},children:c(a)})]})}var H=960,U=768,W=36,G=40,K=16,ee=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:K+r*976,y:K+i*784,w:H,h:U}}return{x:G+e*W,y:G+e*W,w:H,h:U}}var te={scale:1,panX:0,panY:0},J={},ne=1.1,Y={card:V},X=`input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="textbox"], [role="combobox"], [role="listbox"], [role="menu"], [role="dialog"], [role="alertdialog"]`;function Z({surface:e,mounts:t,state:n,setState:o,renderMount:s,renderEmpty:d,onClose:f,onActivate:p}){let{t:m}=r(),h=i(),[g,_]=(0,c.useState)(null),[v,y]=(0,c.useState)(null),b=n.spatial?.arrangement??`cascade`,x=n.spatial?.bounds??J,S=n.spatial?.selectedKey,C=n.spatial?.viewport??te,w=(0,c.useRef)({arrangement:b,bounds:x,selectedKey:S,viewport:C});w.current={arrangement:b,bounds:x,selectedKey:S,viewport:C};function T(e){let t={...w.current,...e};w.current=t,o({spatial:t})}function E(e){T({viewport:e})}let D=(0,c.useMemo)(()=>{let e={};return t.forEach((n,r)=>{b===`manual`?e[n.key]=x[n.key]??q(r,t.length,`cascade`):e[n.key]=q(r,t.length,b)}),e},[t,b,x]);function O(e){if(e===`manual`){let e={};for(let n of t)e[n.key]=D[n.key];T({arrangement:`manual`,bounds:e})}else T({arrangement:e,bounds:{}})}function k(e,n){if(w.current.arrangement!==`manual`){let r={};for(let e of t)r[e.key]=D[e.key];r[e]=n,T({arrangement:`manual`,bounds:r,selectedKey:e});return}T({bounds:{...w.current.bounds,[e]:n},selectedKey:e})}let A=(0,c.useRef)(void 0);function j(e){w.current.selectedKey!==e&&(T({selectedKey:e}),A.current=e,e&&p(e))}let M=(0,c.useRef)(null);function P(){if(t.length===0){M.current?.fitToView();return}let e=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of t){let t=D[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)&&M.current?.fitToView({x:e,y:n,w:r-e,h:i-n})}function F(){let e=S;if(!e)return;let t=D[e];t&&M.current?.centerOn(t.x+t.w/2,t.y+t.h/2)}function I(e){let t=D[e];t&&M.current?.centerOn(t.x+t.w/2,t.y+t.h/2)}function L(e){let n=t.findIndex(t=>t.key===e);n<0||k(e,q(n,t.length,`cascade`))}let R=(0,c.useRef)({fitToView:P,resetViewport:()=>M.current?.resetViewport(),centerOnSelected:F,setArrangement:O,centerOnCard:I,resetBoundsForCard:L});R.current={fitToView:P,resetViewport:()=>M.current?.resetViewport(),centerOnSelected:F,setArrangement:O,centerOnCard:I,resetBoundsForCard:L};let z=n.activeContainerKey,V=z!==void 0&&t.some(e=>e.key===z);(0,c.useEffect)(()=>{if(z!==void 0&&V){if(A.current===z){A.current=void 0;return}w.current.selectedKey!==z&&T({selectedKey:z}),R.current.centerOnCard(z)}},[z,V]);let H=(0,c.useRef)(null),U=(0,c.useRef)(f);U.current=f,(0,c.useEffect)(()=>{function e(e){if(e.key!==`Escape`||e.defaultPrevented||e.repeat||e.ctrlKey||e.altKey||e.metaKey||e.shiftKey)return;let t=w.current.selectedKey;if(t===void 0)return;let n=e.target instanceof Element?e.target:null;(n===null||n===document.body||H.current?.contains(n))&&(n?.closest(X)||(e.preventDefault(),U.current(t)))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,c.useEffect)(()=>{let e=[h.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=>{R.current.fitToView(),e.host?.closeMenu()}}),h.commands.register({id:`surface.resetZoom`,title:`Reset zoom`,icon:`↺`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial"`,run:e=>{R.current.resetViewport(),e.host?.closeMenu()}}),h.commands.register({id:`surface.centerSelected`,title:`Center on selected`,icon:`◎`,color:`teal`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/hasSelection == true`,run:e=>{R.current.centerOnSelected(),e.host?.closeMenu()}}),h.commands.register({id:`surface.setArrangement.cascade`,title:`Arrange: Cascade`,icon:`▤`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/arrangement != "cascade"`,run:e=>{R.current.setArrangement(`cascade`),e.host?.closeMenu()}}),h.commands.register({id:`surface.setArrangement.grid`,title:`Arrange: Grid`,icon:`▦`,color:`violet`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/arrangement != "grid"`,run:e=>{R.current.setArrangement(`grid`),e.host?.closeMenu()}}),h.commands.register({id:`surface.setArrangement.manual`,title:`Arrange: Manual`,icon:`✥`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/arrangement != "manual"`,run:e=>{R.current.setArrangement(`manual`),e.host?.closeMenu()}}),h.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&&(R.current.centerOnCard(t),e.host?.closeMenu())}}),h.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&&(R.current.resetBoundsForCard(t),e.host?.closeMenu())}})];return()=>{for(let t of e)t.dispose()}},[h]);let W=(0,c.useMemo)(()=>t.map(e=>({id:e.key,type:`card`,bounds:D[e.key],selected:e.key===S,data:{mount:e,renderMount:s,onClose:()=>f(e.key)}})),[t,D,S,s,f]),G=t.flatMap(e=>{let t=D[e.key];if(!t)return[];let n=h.components.get(e.component.component)?.opens?.color;return[{id:e.key,bounds:t,color:n,selected:e.key===S}]});function K(e){e.preventDefault(),_({x:e.clientX,y:e.clientY})}return t.length===0?d?.()??null:(0,l.jsxs)(`div`,{ref:H,className:`oo-layout oo-layout--spatial`,style:{display:`flex`,flexDirection:`column`,height:`100%`},children:[(0,l.jsxs)(u,{className:`oo-spatial-toolbar`,children:[(0,l.jsxs)(`label`,{style:{display:`flex`,gap:6,alignItems:`center`},children:[(0,l.jsx)(`span`,{style:{color:`var(--oo-color-muted)`},children:`arrange:`}),(0,l.jsxs)(`select`,{value:b,onChange:e=>O(e.target.value),children:[(0,l.jsx)(`option`,{value:`cascade`,children:`cascade`}),(0,l.jsx)(`option`,{value:`grid`,children:`grid`}),(0,l.jsx)(`option`,{value:`manual`,children:`manual`})]})]}),(0,l.jsx)(`button`,{type:`button`,onClick:()=>M.current?.zoomBy(1/ne),title:m(`spatial/zoomOut`,`Zoom out`),"aria-label":m(`spatial/zoomOut`,`Zoom out`),children:`−`}),(0,l.jsx)(re,{value:C.scale,onCommit:e=>M.current?.zoomToScale(e)}),(0,l.jsx)(`button`,{type:`button`,onClick:()=>M.current?.zoomBy(ne),title:m(`spatial/zoomIn`,`Zoom in`),"aria-label":m(`spatial/zoomIn`,`Zoom in`),children:`+`}),(0,l.jsx)(`button`,{type:`button`,onClick:P,title:m(`spatial/fit`,`Fit all cards to viewport`),children:`Fit`}),(0,l.jsx)(`button`,{type:`button`,onClick:()=>M.current?.resetViewport(),title:m(`spatial/reset`,`Reset zoom + pan`),children:`Reset`}),(0,l.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,l.jsx)(`em`,{children:`manual`})]})]}),(0,l.jsx)(`div`,{style:{flex:1,minHeight:0,position:`relative`},children:(0,l.jsx)(N,{ref:M,viewport:C,onViewportChange:E,maxDepth:ee,nodes:W,nodeTypes:Y,onNodeCommit:(e,t)=>k(e,t),onNodeSelect:e=>j(e),onNodeContextMenu:(e,t)=>y({x:t.clientX,y:t.clientY,key:e}),onBackgroundClick:()=>j(void 0),onBackgroundContextMenu:K,children:(0,l.jsx)(B,{nodes:G,onJumpTo:(e,t)=>M.current?.centerOn(e,t)})})}),S?(0,l.jsx)(Q,{mount:t.find(e=>e.key===S),selectedKey:S,onCenter:()=>I(S),onReset:()=>L(S),onClose:()=>f(S),onDeselect:()=>j(void 0)}):null,g?(0,l.jsx)(a,{x:g.x,y:g.y,onClose:()=>_(null),spec:{query:{slot:`surface:context`},footerHints:!0},context:{"$/surface/name":e,"$/surface/layoutId":`spatial`,"$/surface/mountCount":t.length,"$/surface/closedHistory":0,"$/surface/arrangement":b,"$/surface/hasSelection":!!S}}):null,v?(0,l.jsx)(a,{x:v.x,y:v.y,onClose:()=>y(null),spec:{query:{slot:`card:context`},footerHints:!0},context:{"$/surface/name":e,"$/surface/layoutId":`spatial`,"$/surface/mountCount":t.length,"$/surface/closedHistory":0,"$/surface/arrangement":b,"$/tab/key":v.key,"$/tab/index":t.findIndex(e=>e.key===v.key),"$/tab/canSplit":!1,"$/tab/canMove":!1,"$/tab/isActive":v.key===S,"$/tab/isPinned":!1,"$/group/tabCount":t.length}}):null]})}function Q({mount:e,selectedKey:t,onCenter:n,onReset:i,onClose:a,onDeselect:o}){let{t:c}=r(),u=s(e,t);return(0,l.jsxs)(`div`,{className:`oo-spatial-footer`,role:`toolbar`,"aria-label":c(`spatial/selectedActions`,`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,l.jsx)(`span`,{style:{padding:`0 8px`,color:`rgba(255, 255, 255, 0.8)`,maxWidth:220,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:u,children:u}),(0,l.jsx)($,{icon:`◎`,label:`Center on this card`,onClick:n}),(0,l.jsx)($,{icon:`↺`,label:`Reset bounds`,onClick:i}),(0,l.jsx)($,{icon:`✕`,label:`Close`,onClick:a,variant:`danger`}),(0,l.jsx)($,{icon:`⊗`,label:`Deselect`,onClick:o})]})}function $({icon:e,label:t,onClick:n,variant:r}){return(0,l.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 re({value:e,onCommit:t}){let{t:n}=r(),i=Math.round(e*100),[a,o]=(0,c.useState)(`${i}`),[s,u]=(0,c.useState)(!1);!s&&a!==`${i}`&&o(`${i}`);function d(){let e=parseInt(a,10);Number.isFinite(e)&&e>0?t(e/100):o(`${i}`),u(!1)}return(0,l.jsx)(`input`,{type:`text`,inputMode:`numeric`,value:s?a:`${i}%`,onFocus:e=>{u(!0),o(`${i}`),requestAnimationFrame(()=>e.target.select?.())},onChange:e=>o(e.target.value.replace(/[^\d]/g,``)),onBlur:d,onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),e.target.blur()):e.key===`Escape`&&(e.preventDefault(),o(`${i}`),u(!1),e.target.blur())},title:n(`spatial/zoomPercent`,`Zoom percent`),"aria-label":n(`spatial/zoomPercent`,`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{Z as SpatialLayout};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{r as t}from"./colors-BieSUSt7.js";import{t as n}from"./useI18n-T3BwAm0z.js";var r=e();function i({label:e,size:i=16,color:a,inline:o=!0,style:s,className:c}){let{t:l}=n(),u={"--oo-spinner-size":`${i}px`,"--oo-spinner-color":a?t(a):`var(--oo-color-accent)`,...o?{display:`inline-flex`}:{display:`flex`},...s};return(0,r.jsxs)(`span`,{role:`status`,"aria-live":`polite`,"aria-label":e??l(`common/loading`,`Loading`),className:[`oo-spinner-wrap`,c].filter(Boolean).join(` `),style:u,children:[(0,r.jsx)(`span`,{className:`oo-spinner`,"aria-hidden":!0}),e?(0,r.jsx)(`span`,{className:`oo-spinner__label`,children:e}):null]})}export{i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./ContextMenu-DlF_3KO_.js";import{r as a}from"./Icon-CIQ7doud.js";import{t as o}from"./Divisor-hrrJK3bw.js";import{t as s}from"./MountTitle-BYR1nX0U.js";var c=e(),l=t(),u=.05,d=`application/x-scena-split-index`;function f({surface:e,mounts:t,state:f,setState:m,renderMount:h,renderEmpty:g,onClose:_,onReorder:v}){let{t:y}=n(),b=r(),x=(0,l.useRef)(null),S=f.split?.order??[],C=new Set(S),w=S.map(e=>t.find(t=>t.key===e)).filter(e=>!!e),T=t.filter(e=>!C.has(e.key)),E=[...w,...T],D=E.length>0?1/E.length:1,O=(()=>{let e=f.split?.ratios;return e&&e.length===E.length?e:E.map(()=>D)})();function k(e,t){let n=t;if(E.length<2)return;let r=O.slice(0,n).reduce((e,t)=>e+t,0),i=(O[n]??0)+(O[n+1]??0);if(i<=0)return;let a=p(e-r,u,i-u),o=i-a;o<u&&(o=u,a=i-o);let s=[...O];s[n]=a,s[n+1]=o,m({split:{order:f.split?.order,ratios:s,collapsed:f.split?.collapsed}})}let[A,j]=(0,l.useState)(null),[M,N]=(0,l.useState)(null),[P,F]=(0,l.useState)(null);function I(e,t,n){e.preventDefault(),e.stopPropagation(),N({x:e.clientX,y:e.clientY,key:t,idx:n})}function L(e){e.target===e.currentTarget&&(e.preventDefault(),F({x:e.clientX,y:e.clientY}))}let R={"$/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 z(e,t){e.dataTransfer.setData(d,String(t)),e.dataTransfer.effectAllowed=`move`}function B(e,t){e.dataTransfer.types.includes(d)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,j(t))}function V(){j(null)}function H(e,t){if(!e.dataTransfer.types.includes(d))return;e.preventDefault();let n=Number(e.dataTransfer.getData(d));j(null),Number.isFinite(n)&&n!==t&&v(n,t)}return E.length===0?g?.()??null:(0,c.jsxs)(`div`,{ref:x,className:`oo-layout oo-layout--split`,style:{display:`flex`,flexDirection:`row`,height:`100%`,minHeight:0},onContextMenu:L,children:[E.map((e,t)=>{let n=b.components.get(e.component.component)?.props,r=e.props?.color??n?.color;return(0,c.jsxs)(l.Fragment,{children:[(0,c.jsxs)(`div`,{"data-pane-index":t,"data-drag-over":A===t,"data-color":r,className:`oo-split-pane`,style:{flex:O[t]??D,minWidth:0,overflow:`hidden`,display:`flex`,flexDirection:`column`},children:[(0,c.jsxs)(`div`,{className:`oo-split-pane-header`,draggable:!0,onDragStart:e=>z(e,t),onDragOver:e=>B(e,t),onDragLeave:V,onDrop:e=>H(e,t),onContextMenu:n=>I(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,c.jsx)(s,{mount:e,fallback:e.key,iconClassName:`oo-split-pane-header__icon`,titleClassName:`oo-split-pane-header__title`}),(0,c.jsx)(`span`,{onClick:t=>{t.stopPropagation(),_(e.key)},title:y(`common/close`,`Close`),style:{cursor:`pointer`},children:a.closePanel})]}),(0,c.jsx)(`div`,{style:{flex:1,overflow:`auto`,minHeight:0},children:h(e)})]}),t<E.length-1?(0,c.jsx)(o,{id:t,direction:`row`,containerRef:x,onCommit:k}):null]},e.key)}),M?(0,c.jsx)(i,{x:M.x,y:M.y,onClose:()=>N(null),spec:{query:{slot:`tab:context`},footerHints:!0},context:{...R,"$/tab/key":M.key,"$/tab/index":M.idx,"$/tab/isActive":!0,"$/tab/isPinned":!1,"$/group/tabCount":t.length}}):null,P?(0,c.jsx)(i,{x:P.x,y:P.y,onClose:()=>F(null),spec:{query:{slot:`surface:context`},footerHints:!0},context:R}):null]})}function p(e,t,n){return Math.max(t,Math.min(n,e))}export{f as SplitLayout};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./label-hTY0RCEf.js";import{l as r,t as i}from"./useI18n-T3BwAm0z.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./ContextMenu-DlF_3KO_.js";import{r as s}from"./Icon-CIQ7doud.js";import{t as c}from"./Divisor-hrrJK3bw.js";import{t as l}from"./HeaderAction-Bs-AE__U.js";import{n as u,t as d}from"./MountTitle-BYR1nX0U.js";var f=e(),p=t();function m({mounts:e,state:t,setState:n,title:r,icon:c,color:l}){let{t:d}=i(),m=a(),h=t.split?.order??[],g=new Set(h),_=h.map(t=>e.find(e=>e.key===t)).filter(e=>!!e),v=e.filter(e=>!g.has(e.key)),y=[..._,...v],b=new Set(t.stack?.hidden??[]),[x,S]=(0,p.useState)(null);function C(e){n({stack:{...t.stack,hidden:[...e]}})}function w(e){let t=new Set(b);t.has(e)?t.delete(e):t.add(e),C(t)}function T(e){e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();S({x:t.right,y:t.bottom+2})}return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(`div`,{className:`oo-stack-container-header`,"data-color":l,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,f.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6},children:[c?(0,f.jsx)(`span`,{className:`oo-stack-container-header__icon`,"aria-hidden":!0,children:c}):null,(0,f.jsx)(`span`,{className:`oo-stack-container-header__title`,children:r})]}),(0,f.jsx)(`button`,{type:`button`,className:`oo-stack-container-header__overflow`,title:d(`layout/togglePanes`,`Toggle panes`),"aria-label":d(`layout/togglePanes`,`Toggle panes`),onClick:T,style:{background:`transparent`,border:`none`,color:`var(--oo-color-muted)`,cursor:`pointer`,font:`inherit`,padding:`0 4px`},children:s.moreHoriz})]}),x?(0,f.jsx)(o,{x:x.x,y:x.y,onClose:()=>S(null),spec:{footerHints:!0,items:y.map(e=>{let t=m.components.get(e.component.component)?.props,n=!b.has(e.key);return{title:u(m,e),icon:e.props?.icon??t?.icon,color:e.props?.color??t?.color,active:n,onSelect:t=>{w(e.key),t.closeMenu()}}})}}):null]})}var h=`application/x-scena-stack-index`,g=48;function _({surface:e,mounts:t,state:u,setState:_,renderMount:v,renderEmpty:y,onClose:b,onReorder:x}){let{t:S}=i(),C=a(),w=u.split?.order??[],T=new Set(w),E=w.map(e=>t.find(t=>t.key===e)).filter(e=>!!e),D=t.filter(e=>!T.has(e.key)),O=[...E,...D],k=new Set(u.stack?.hidden??[]),A=O.filter(e=>!k.has(e.key)),j=u.stack?.container,M=new Set(u.split?.collapsed??[]),[N,P]=(0,p.useState)(null),F=(0,p.useRef)(null),I=(0,p.useRef)(new Map),L=A.filter(e=>!M.has(e.key)),R=u.stack?.sizes??{},z=L.length>0&&L.every(e=>(R[e.key]??0)>0);function B(e,t,n){let r=F.current?.getBoundingClientRect(),i=I.current.get(t)?.getBoundingClientRect(),a=I.current.get(n)?.getBoundingClientRect();if(!r||!i||!a)return;let o={...R};for(let e of L){let t=I.current.get(e.key)?.getBoundingClientRect().height??0;o[e.key]=Math.max(t,g)}let s=i.height+a.height;if(s<96)return;let c=r.top+e*r.height,l=Math.min(Math.max(c-i.top,g),s-g);o[t]=l,o[n]=s-l,_({stack:{...u.stack,sizes:o}})}function V(e,t){return t?{flex:`0 0 auto`}:z?{flex:`${R[e.key]} 1 0px`}:e.policy.fitContent?{flex:`0 1 auto`,maxHeight:`50%`}:{flex:`1 1 0px`}}function H(e){let t=new Set(M);t.has(e)?t.delete(e):t.add(e),_({split:{order:u.split?.order,ratios:u.split?.ratios,collapsed:[...t]}})}function U(e,t){e.dataTransfer.setData(h,String(t)),e.dataTransfer.effectAllowed=`move`}function W(e,t){e.dataTransfer.types.includes(h)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,P(t))}function G(){P(null)}function K(e,t){if(!e.dataTransfer.types.includes(h))return;e.preventDefault();let n=Number(e.dataTransfer.getData(h));P(null),Number.isFinite(n)&&n!==t&&x(n,t)}let[q,J]=(0,p.useState)(null),[Y,X]=(0,p.useState)(null);function Z(e,t,n){e.preventDefault(),e.stopPropagation(),J({x:e.clientX,y:e.clientY,key:t,idx:n})}function Q(e){e.target===e.currentTarget&&(e.preventDefault(),X({x:e.clientX,y:e.clientY}))}let $={"$/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 A.length===0?y?.()??null:(0,f.jsxs)(`div`,{ref:F,className:`oo-layout oo-layout--stack`,style:{display:`flex`,flexDirection:`column`,height:`100%`,minHeight:0},onContextMenu:Q,children:[(0,f.jsx)(m,{title:j?.title??`Details`,icon:j?.icon,color:j?.color,mounts:t,state:u,setState:_}),A.map((e,t)=>{let i=M.has(e.key),a=C.components.get(e.component.component)?.props,o=e.props?.color??a?.color,u=e.props?.actions??a?.actions??[],m=A[t+1],h=!i&&m!==void 0&&!M.has(m.key),g=!z&&!i&&e.policy.fitContent===!0;return(0,f.jsxs)(p.Fragment,{children:[(0,f.jsxs)(`div`,{ref:t=>{t?I.current.set(e.key,t):I.current.delete(e.key)},className:`oo-stack-section`,"data-collapsed":i,"data-drag-over":N===t,"data-color":o,style:{...V(e,i),minHeight:0,display:`flex`,flexDirection:`column`,borderBottom:h?void 0:`1px solid var(--oo-color-border)`},children:[(0,f.jsxs)(`div`,{className:`oo-stack-header`,draggable:!0,onDragStart:e=>U(e,t),onDragOver:e=>W(e,t),onDragLeave:G,onDrop:e=>K(e,t),onClick:()=>H(e.key),onContextMenu:n=>Z(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,f.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6},children:[(0,f.jsx)(`span`,{"aria-hidden":!0,children:i?`▶`:`▼`}),(0,f.jsx)(d,{mount:e,fallback:e.key,iconClassName:`oo-stack-section__icon`,titleClassName:`oo-stack-section__title`})]}),(0,f.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:2},children:[u.length>0?(0,f.jsx)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:2},onClick:e=>e.stopPropagation(),children:u.map(e=>(0,f.jsx)(l,{action:e,text:n(e.label,{get:e=>C.store.get(e),translate:r}),run:e=>void C.commands.execute(e)},e.command))}):null,e.policy.closable===!1?null:(0,f.jsx)(`span`,{onClick:t=>{t.stopPropagation(),b(e.key)},title:S(`common/close`,`Close`),style:{cursor:`pointer`},children:s.closePanel})]})]}),i?null:(0,f.jsx)(`div`,{style:{flex:g?`1 1 auto`:1,overflow:`auto`,minHeight:0},children:v(e)})]}),h?(0,f.jsx)(c,{direction:`col`,containerRef:F,min:0,max:1,onCommit:t=>B(t,e.key,m.key)}):null]},e.key)}),q?(0,f.jsx)(o,{x:q.x,y:q.y,onClose:()=>J(null),spec:{query:{slot:`tab:context`},footerHints:!0},context:{...$,"$/tab/key":q.key,"$/tab/index":q.idx,"$/tab/isActive":!0,"$/tab/isPinned":!1,"$/group/tabCount":t.length}}):null,Y?(0,f.jsx)(o,{x:Y.x,y:Y.y,onClose:()=>X(null),spec:{query:{slot:`surface:context`},footerHints:!0},context:$}):null]})}export{_ as StackLayout};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useI18n-T3BwAm0z.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./Button-_R1oktDz.js";import{Ft as i}from"./index-ddqm5vYD.js";var a=e();function o(){let e=n(),{t:o}=t();return(0,a.jsxs)(`div`,{className:`web-start`,children:[(0,a.jsx)(i,{size:72}),(0,a.jsx)(`p`,{className:`web-note`,children:o(`sessions/start/note`)}),(0,a.jsx)(r,{label:o(`sessions/commands/newSession`),variant:`primary`,onClick:()=>void e.commands.execute(`ahp.newSession`)})]})}export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useI18n-T3BwAm0z.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./ContextMenu-DlF_3KO_.js";import{r as a}from"./Icon-CIQ7doud.js";import{TabTitle as o}from"./TabPanelLayout-DKamepPL.js";var s=e(),c=t(),l=`application/x-scena-tab-index`;function u({surface:e,mounts:t,state:u,renderMount:d,renderEmpty:f,onActivate:p,onClose:m,onReorder:h}){let{t:g}=n(),_=r(),v=u.split?.order??[],y=new Set(v),b=v.map(e=>t.find(t=>t.key===e)).filter(e=>!!e),x=t.filter(e=>!y.has(e.key)),S=[...b,...x],C=S.find(e=>e.key===u.activeContainerKey)??S[S.length-1],w=new Set(u.split?.pinned??[]),T=C?_.commands.list({slot:`view/title`,enabled:!0}):[],E=C?.component.component,D={"$/surface/name":e,"$/tab/key":C?.key,"$/tab/component":typeof E==`string`?E:void 0},O=_.commands.list({slot:`surface/title`}).filter(e=>e.when===void 0||_.when.evaluate(e.when,D)),k=t=>{_.store.set(`$/surface/name`,e),_.store.set(`$/tab/key`,C?.key),_.commands.execute(t)},[A,j]=(0,c.useState)(null),[M,N]=(0,c.useState)(null),[P,F]=(0,c.useState)(null),[I,L]=(0,c.useState)(null),R=(0,c.useRef)(null);(0,c.useEffect)(()=>{let e=R.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 z(e,t,n){e.preventDefault(),e.stopPropagation(),N({x:e.clientX,y:e.clientY,tabKey:t,tabIdx:n})}function B(e){let t=e.currentTarget.getBoundingClientRect();F({x:t.right,y:t.bottom+2})}function V(e){e.target===e.currentTarget&&(e.preventDefault(),L({x:e.clientX,y:e.clientY}))}function H(e,t){e.dataTransfer.setData(l,String(t)),e.dataTransfer.effectAllowed=`move`}function U(e,t){e.dataTransfer.types.includes(l)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,j(t))}function W(){j(null)}function G(e,t){if(!e.dataTransfer.types.includes(l))return;e.preventDefault();let n=Number(e.dataTransfer.getData(l));j(null),Number.isFinite(n)&&n!==t&&h(n,t)}let K={"$/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},q=M?S.find(e=>e.key===M.tabKey):void 0,J=q?_.mountMenus.collect(`tab:context`,q):void 0;return(0,s.jsxs)(`div`,{className:`oo-layout oo-layout--tab`,style:{display:`flex`,flexDirection:`column`,height:`100%`},children:[(0,s.jsxs)(`div`,{className:`tab-bar`,children:[(0,s.jsx)(`div`,{className:`tab-bar__strip`,ref:R,children:S.map((t,n)=>{let r=w.has(t.key);return(0,s.jsx)(o,{resourceKey:t.key,m:t,idx:n,isPinned:r,isActive:t===C,dragOverTab:A,onDragStart:e=>H(e,n),onDragOver:e=>U(e,n),onDragLeave:W,onDrop:e=>G(e,n),onClick:()=>p(t.key),onContextMenu:e=>z(e,t.key,n),onClose:e=>{e.stopPropagation(),m(t.key)},onUnpin:n=>{n.stopPropagation(),_.store.set(`$/tab/key`,t.key),_.store.set(`$/surface/name`,e),_.commands.execute(`tab.unpin`)}},t.key)})}),(0,s.jsxs)(`div`,{className:`tab-bar__extras`,children:[T.map((e,t)=>{let n=typeof e.title==`function`?e.title():e.title;return(0,s.jsxs)(`button`,{onClick:()=>_.commands.execute(e.id),title:String(n),children:[e.icon?`${e.icon} `:``,String(n)]},t)}),O.map(e=>{let t=String(typeof e.title==`function`?e.title():e.title);return(0,s.jsx)(`button`,{onClick:()=>k(e.id),title:t,"aria-label":t,children:e.icon??t},e.id)}),(0,s.jsx)(`button`,{className:`tab-bar__more`,title:g(`layout/groupActions`,`Group actions`),"aria-label":g(`layout/groupActions`,`Group actions`),onClick:B,children:a.moreHoriz})]})]}),(0,s.jsx)(`div`,{style:{flex:1,minHeight:0,position:`relative`},onContextMenu:V,children:S.length===0?f?.()??null:S.map(e=>(0,s.jsx)(`div`,{className:`oo-layout__mount`,"data-active":e===C||void 0,style:{height:`100%`,overflow:`auto`,display:e===C?`block`:`none`},children:d(e)},e.key))}),M?(0,s.jsx)(i,{x:M.x,y:M.y,onClose:()=>N(null),spec:{query:{slot:`tab:context`},extraItems:J,footerHints:!0},context:{...K,"$/tab/key":M.tabKey,"$/tab/index":M.tabIdx,"$/tab/isActive":M.tabKey===C?.key,"$/tab/isPinned":w.has(M.tabKey),"$/group/tabCount":S.length}}):null,P?(0,s.jsx)(i,{x:P.x,y:P.y,onClose:()=>F(null),spec:{query:{slot:`tab-group:context`},footerHints:!0},context:{...K,"$/group/tabCount":S.length}}):null,I?(0,s.jsx)(i,{x:I.x,y:I.y,onClose:()=>L(null),spec:{query:{slot:`surface:context`},footerHints:!0},context:K}):null]})}export{u 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{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./ContextMenu-DlF_3KO_.js";import{r as o}from"./Icon-CIQ7doud.js";import{t as s}from"./Divisor-hrrJK3bw.js";import{t as c}from"./useStoreLabel-BtAsVCsr.js";var l=e(),u=t(),d=`application/x-scena-tab-panel`,f=.2,p=.05;function m(){return`g_${Math.random().toString(36).slice(2,10)}`}function h(e,t){return{kind:`leaf`,id:m(),tabs:e,activeKey:t}}function g(e,t){if(e.kind===`leaf`){for(let n of e.tabs)t.add(n);return}g(e.first,t),g(e.second,t)}function _(e,t){if(e.kind===`leaf`){t.push(e);return}_(e.first,t),_(e.second,t)}function v(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:v(e.first,t),second:v(e.second,t)}}function y(e,t){if(e.kind===`leaf`)return t(e);let n=y(e.first,t),r=y(e.second,t);return n&&r?{...e,first:n,second:r}:n??r}function b(e,t,n){return e.kind===`leaf`?e.id===t?n:e:{...e,first:b(e.first,t,n),second:b(e.second,t,n)}}function x(e,t,n){return e.kind===`leaf`?e:t(e)?{...e,...n}:{...e,first:x(e.first,t,n),second:x(e.second,t,n)}}function S(e,t){if(e.kind===`leaf`){if(t.has(e.id)){let n=m();return t.add(n),{...e,id:n}}return t.add(e.id),e}return{...e,first:S(e.first,t),second:S(e.second,t)}}function C(e,t,n){let r=new Set(t),i=e?S(v(e,r),new Set):h([...t],n),a=new Set;g(i,a);let o=t.filter(e=>!a.has(e));if(o.length>0){let e=[];_(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=b(i,t.id,{...t,tabs:[...t.tabs,...o],activeKey:e})}}if(n){let e=y(i,e=>e.tabs.includes(n)&&e.activeKey!==n?{...e,activeKey:n}:e);e&&(i=e)}return{tree:i}}function w(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)&&w(e.first,t.first)&&w(e.second,t.second)}function T({leaf:e,ctx:t}){let{t:n}=r(),s=i(),c=e.activeKey??e.tabs[0],[p,m]=(0,u.useState)(null),[h,g]=(0,u.useState)(null),_=(0,u.useRef)(null),v=(0,u.useRef)(null);(0,u.useEffect)(()=>{let e=v.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,u.useEffect)(()=>{let e=()=>{g(null),m(null)};return window.addEventListener(`dragend`,e),window.addEventListener(`drop`,e),()=>{window.removeEventListener(`dragend`,e),window.removeEventListener(`drop`,e)}},[]);function b(n){let r=y(t.tree,t=>t.id===e.id?{...t,activeKey:n}:t);r&&t.commit(r),t.onActivate(n)}function x(t,n){let r={sourceLeafId:e.id,tabKey:n};t.dataTransfer.setData(d,JSON.stringify(r)),t.dataTransfer.effectAllowed=`move`}function S(e,t){e.dataTransfer.types.includes(d)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,m(t))}function C(){m(null)}function w(n,r){if(!n.dataTransfer.types.includes(d))return;n.preventDefault(),m(null);let i=D(n);i&&k(t,i,e.id,r)}function T(e){let t=_.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<f?`top`:i>.8?`bottom`:r<f?`left`:r>.8?`right`:`center`}function O(e){e.dataTransfer.types.includes(d)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,g(T(e)))}function j(e){let t=e.relatedTarget;(!t||!e.currentTarget.contains(t))&&g(null)}function M(n){if(!n.dataTransfer.types.includes(d))return;n.preventDefault();let r=T(n);g(null);let i=D(n);i&&r&&(r===`center`?k(t,i,e.id,e.tabs.length):A(t,i,e.id,r))}let[N,P]=(0,u.useState)(null);function I(e){e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();P({x:t.right-4,y:t.bottom+2})}function L(){P(null)}let[R,z]=(0,u.useState)(null);function B(e,t,n){e.preventDefault(),z({x:e.clientX,y:e.clientY,tabKey:t,tabIdx:n})}function V(){z(null)}let H=R?t.mounts.find(e=>e.key===R.tabKey):void 0,U=H?s.mountMenus.collect(`tab:context`,H):void 0;return(0,l.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,l.jsxs)(`div`,{className:`tab-bar`,children:[(0,l.jsx)(`div`,{className:`tab-bar__strip`,ref:v,children:e.tabs.map((e,n)=>{let r=t.mounts.find(t=>t.key===e);return(0,l.jsx)(F,{resourceKey:e,idx:n,m:r,isActive:e===c,isPinned:t.pinned.has(e),dragOverTab:p,onDragStart:t=>x(t,e),onDragOver:e=>S(e,n),onDragLeave:C,onDrop:e=>w(e,n),onClick:()=>b(e),onContextMenu:t=>B(t,e,n),onClose:()=>t.onClose(e),onUnpin:n=>{n.stopPropagation(),s.store.set(`$/tab/key`,e),s.store.set(`$/surface/name`,t.surface),s.commands.execute(`tab.unpin`)}},e)})}),(0,l.jsx)(`div`,{className:`tab-bar__extras`,children:(0,l.jsx)(`button`,{className:`tab-bar__more`,title:n(`layout/groupActions`,`Group actions`),"aria-label":n(`layout/groupActions`,`Group actions`),onClick:I,children:o.moreHoriz})})]}),(0,l.jsxs)(`div`,{ref:_,onDragOver:O,onDragLeave:j,onDrop:M,style:{flex:1,minHeight:0,position:`relative`,overflow:`auto`},children:[e.tabs.length===0?t.mounts.length===0?t.renderEmpty?.()??null:(0,l.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,l.jsx)(`div`,{className:`oo-layout__mount`,"data-active":e===c||void 0,style:{position:`absolute`,inset:0,overflow:`auto`,display:e===c?`block`:`none`},children:t.renderMount(n)},e):null}),h?(0,l.jsx)(E,{zone:h}):null]}),N?(0,l.jsx)(a,{x:N.x,y:N.y,onClose:L,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,R?(0,l.jsx)(a,{x:R.x,y:R.y,onClose:V,spec:{query:{slot:`tab:context`},extraItems:U,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":R.tabKey,"$/tab/index":R.tabIdx,"$/tab/leafId":e.id,"$/tab/isActive":R.tabKey===c,"$/tab/isPinned":t.pinned.has(R.tabKey),"$/tab/canSplit":!0,"$/tab/canMove":t.leafCount>1}}):null]})}function E({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,l.jsx)(`div`,{className:`oo-tab-panel-drop-preview`,style:n})}function D(e){let t=e.dataTransfer.getData(d);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 O(e,t){return y(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 k(e,t,n,r){if(t.sourceLeafId===n){let i=y(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=O(e.tree,t.tabKey);if(!i)return;let a=y(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 A(e,t,n,r){let i=e.tree,a=j(i,t.sourceLeafId);if(a&&a.id===n&&a.tabs.length===1||(i=O(i,t.tabKey),!i))return;let o=j(i,n);if(!o)return;let s=h([t.tabKey],t.tabKey),c=b(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 j(e,t){return e.kind===`leaf`?e.id===t?e:null:j(e.first,t)||j(e.second,t)}function M({node:e,ctx:t}){return e.kind===`leaf`?(0,l.jsx)(T,{leaf:e,ctx:t}):(0,l.jsx)(N,{node:e,ctx:t})}function N({node:e,ctx:t}){let n=(0,u.useRef)(null),r=e.ratio??.5;function i(n){let r=x(t.tree,t=>t===e,{ratio:n});t.commit(r)}let a=e.direction===`row`;return(0,l.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,l.jsx)(`div`,{style:{flex:r,minWidth:0,minHeight:0,display:`flex`},children:(0,l.jsx)(M,{node:e.first,ctx:t})}),(0,l.jsx)(s,{direction:e.direction===`row`?`row`:`col`,containerRef:n,min:p,max:.95,onCommit:i}),(0,l.jsx)(`div`,{style:{flex:1-r,minWidth:0,minHeight:0,display:`flex`},children:(0,l.jsx)(M,{node:e.second,ctx:t})})]})}function P({surface:e,mounts:t,state:n,setState:r,renderMount:i,renderEmpty:a,onActivate:o,onClose:s}){let c=t.map(e=>e.key),{tree:d}=C(n.tabPanel?.tree,c,n.activeContainerKey);(0,u.useEffect)(()=>{w(n.tabPanel?.tree,d)||r({tabPanel:{tree:d}})});let f=[];_(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,l.jsx)(`div`,{className:`oo-layout oo-layout--tab-panel`,style:{display:`flex`,height:`100%`,minHeight:0},children:(0,l.jsx)(M,{node:d,ctx:p})})}function F({m:e,resourceKey:t,isActive:a,dragOverTab:s,idx:u,onDragStart:d,onDragOver:f,onDragLeave:p,onDrop:m,onClick:h,onContextMenu:g,onClose:_,onUnpin:v,isPinned:y}){let{t:b}=r(),x=i(),S=e?x.components.get(e.component.component)?.props:void 0,C=c(e?.props?.title??S?.title,``,e?.dataContext)||t,w=e?.props?.icon??S?.icon,T=e?.props?.color??S?.color;return(0,l.jsxs)(`div`,{className:`tab-bar__tab`,"data-active":a,"data-drag-over":s===u?`true`:void 0,"data-color":T,"data-pinned":y||void 0,draggable:!0,onDragStart:d,onDragOver:f,onDragLeave:p,onDrop:m,onClick:h,onContextMenu:g,title:C,style:{...T?{"--tab-color":n(T)}:{}},children:[w?(0,l.jsx)(`span`,{className:`tab__icon`,"aria-hidden":!0,children:w}):null,(0,l.jsx)(`span`,{className:`tab__label`,children:C}),y?(0,l.jsx)(`span`,{className:`pin`,onClick:e=>{e.stopPropagation(),v(e)},title:b(`tabs/unpin`,`Unpin tab`),children:o.pin}):(0,l.jsx)(`span`,{className:`close`,onClick:e=>{e.stopPropagation(),_(e)},title:b(`common/close`,`Close`),children:o.closePanel})]})}export{P as TabPanelLayout,F as TabTitle};
|