@ahpd/web 0.3.1 → 0.4.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/ahpw.svg +4 -4
- 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-DNjVAT_E.js +1 -0
- package/dist/app/assets/Alert-BhdRA0LL.js +1 -0
- package/dist/app/assets/AudioPage-CTBMdEWh.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-wYX5XXUP.js +1 -0
- package/dist/app/assets/Composer-DHrV5Yeq.js +2 -0
- package/dist/app/assets/{ContextMenu-BV1gdog0.js → ContextMenu-DYnWIBAF.js} +1 -1
- package/dist/app/assets/CopyButton-Dqp4FT7R.js +1 -0
- package/dist/app/assets/{DataTable-8woVlU4S.js → DataTable-Di749duh.js} +1 -1
- package/dist/app/assets/Details-DD3vmkCl.js +1 -0
- package/dist/app/assets/DiffPage-BId8ozv7.js +3 -0
- package/dist/app/assets/Edit-jFXpMjZc.js +1 -0
- package/dist/app/assets/Explorer-COyfGhcR.js +1 -0
- package/dist/app/assets/Explorer-Cau0IyIv.js +1 -0
- package/dist/app/assets/Explorer-DV3iMW_H.js +1 -0
- package/dist/app/assets/Explorer-Dfcbd81k.js +1 -0
- package/dist/app/assets/Explorer-gCfiH4Xy.js +1 -0
- package/dist/app/assets/ExplorerList-0duzRsX6.js +1 -0
- package/dist/app/assets/FilePage-C2oyHqAU.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-Vq-h0k1X.js +1 -0
- package/dist/app/assets/HostSwitcher-CpnK8XaS.js +1 -0
- package/dist/app/assets/ImagePage-iB_X7JK-.js +1 -0
- package/dist/app/assets/Info-zs1cf5D4.js +1 -0
- package/dist/app/assets/LocaleToggle-Bnt4p8rr.js +1 -0
- package/dist/app/assets/LogPage-BksXBBRH.js +1 -0
- package/dist/app/assets/LoginForm-C83NjSZc.js +1 -0
- package/dist/app/assets/MarkdownPage-B3Uf-uhF.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/New-DSGbzxwy.js +4 -0
- package/dist/app/assets/OpenEditors-FoK0L7cG.js +1 -0
- package/dist/app/assets/Page-C__t0LNx.js +1 -0
- package/dist/app/assets/Page-D2Aojkph.js +2 -0
- package/dist/app/assets/Page-D_hX82GR.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/PortaLock-Q4MlsHWm.js +2 -0
- package/dist/app/assets/SchemaForm-byhtwSG1.css +1 -0
- package/dist/app/assets/SchemaForm-uhkLDWDC.js +1 -0
- package/dist/app/assets/Settings-D7Fa-31J.js +1 -0
- package/dist/app/assets/{SigillumGate-Bq_GLDvI.js → SigillumGate-B75RU_FM.js} +1 -1
- package/dist/app/assets/SingleLayout-DrZzqh9e.js +1 -0
- package/dist/app/assets/SpatialLayout-DZfRmqF0.js +1 -0
- package/dist/app/assets/Spinner-CBEPv0eM.js +1 -0
- package/dist/app/assets/SplitLayout-Bytjyrrj.js +1 -0
- package/dist/app/assets/StackLayout-BCyRY0nG.js +1 -0
- package/dist/app/assets/Start-DX8T0ii8.js +1 -0
- package/dist/app/assets/TabLayout-Czi2A6i3.js +1 -0
- package/dist/app/assets/TabPanelLayout-B_7L0Dyp.js +1 -0
- package/dist/app/assets/TerminalPage-BOIBCy2W.js +18 -0
- package/dist/app/assets/ThemeModeToggle-CFpNVcU1.js +1 -0
- package/dist/app/assets/ThemePicker-CqnA9Que.js +1 -0
- package/dist/app/assets/Tree-BvNPcfhW.js +1 -0
- package/dist/app/assets/{VideoPage-Cz7g_2E1.js → VideoPage-v3zVSos7.js} +1 -1
- package/dist/app/assets/WindowControls-BuiQSjfa.js +1 -0
- package/dist/app/assets/actions-CIzLn0YN.js +1 -0
- package/dist/app/assets/changeset-IbJWvDqP.js +1 -0
- package/dist/app/assets/{channel-UD2KGCy_.js → channel-C6Ss9Aem.js} +1 -1
- package/dist/app/assets/{clicks-DIh3kBLi.js → clicks-Doh5a3f9.js} +1 -1
- package/dist/app/assets/composer-commands-BOXuqfcP.js +2 -0
- package/dist/app/assets/data-DPJ4OTLn.js +2 -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/{emojis-7RT6GvLa.js → emojis-DanG-8fr.js} +1 -1
- package/dist/app/assets/{folder-path-CTpCmycG.js → folder-path-CJJ4uFfN.js} +1 -1
- package/dist/app/assets/grouping-DtiUUpdw.js +1 -0
- package/dist/app/assets/index-BiJaGB50.css +1 -0
- package/dist/app/assets/index-xynK_AEL.js +14 -0
- package/dist/app/assets/label-hTY0RCEf.js +1 -0
- package/dist/app/assets/locales-Dnk_Y338.js +1 -0
- package/dist/app/assets/media-Da9OmSvb.js +1 -0
- package/dist/app/assets/notify-BmjJL_fx.js +1 -0
- package/dist/app/assets/sessions-CLjdYeF3.js +2 -0
- package/dist/app/assets/state-CKNqusrK.js +1 -0
- package/dist/app/assets/terminal-_7S7Eyr-.js +1 -0
- package/dist/app/assets/text-D_lQQGN1.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-Vk4T9IkZ.js +1 -0
- package/dist/app/assets/words-DF1J9CaQ.js +2 -0
- package/dist/app/index.html +28 -24
- 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 +4 -3
- 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/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/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/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/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
|
@@ -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{n as a}from"./sessions-CLjdYeF3.js";import{c as o,f as s,i as ee,j as te,r as c}from"./data-DPJ4OTLn.js";import{n as l}from"./words-T8-D0K4W.js";import{t as u}from"./emojis-DanG-8fr.js";import{t as d}from"./ContextMenu-DYnWIBAF.js";import{t as ne}from"./Spinner-CBEPv0eM.js";import{t as re}from"./Alert-BhdRA0LL.js";import{t as ie}from"./Tree-BvNPcfhW.js";import{a as f,d as ae,f as oe,m as p,p as m}from"./folder-path-CJJ4uFfN.js";import{c as h,l as g}from"./viewers-Vk4T9IkZ.js";import{a as _,c as se,i as v,l as y,o as ce,r as b,s as x,t as S,u as C}from"./index-xynK_AEL.js";import{r as w}from"./drag-ruzgQUFW.js";var T=t(),E=e(),le=`$/modus/class`;function ue(e){let t=l(e);return(0,E.jsx)(`span`,{title:t,children:t.replace(/\/+$/,``).split(`/`).pop()||t})}function D(){let e=i(),{t}=r(),l=n(c),D=n(ee),O=n(o),k=n(v),A=n(f),j=n(x),[M,N]=(0,T.useState)([]),P=(0,T.useMemo)(()=>p(D,O??[],M,A??[]),[D,O,M,A]),[F,I]=(0,T.useState)(new Map),L=n(_),R=(0,T.useMemo)(()=>new Set(L??[]),[L]),[z,B]=(0,T.useState)(null),[V,H]=(0,T.useState)(null),U=(0,T.useCallback)((e,t=!1)=>{t||I(t=>new Map(t).set(e,`loading`)),te(`resourceList`,{channel:s,uri:e}).then(t=>I(n=>new Map(n).set(e,m(t.entries)))).catch(()=>I(t=>new Map(t).set(e,`failed`)))},[]),W=(0,T.useCallback)(t=>{for(let e of t)!R.has(e)&&!F.has(e)&&U(e);let n=[...t];e.store.set(_,n),ce(n)},[R,F,U]);(0,T.useEffect)(()=>{for(let e of R)U(e)},[]);let G=P[0]?.uri;(0,T.useEffect)(()=>{G!==void 0&&(L??null)===null&&W(new Set([G]))},[G]);let K=(0,T.useRef)(null);(0,T.useEffect)(()=>{if(k==null)return;e.store.set(v,null);let t=ae(P.map(e=>e.uri),k),[n]=t;n!==void 0&&!P.some(e=>e.uri===n)&&N(e=>[...e,n]),W(new Set([...R,...t]));let r=t[t.length-1]??null;B(r),K.current=r},[k]);let q=(0,T.useRef)(null);(0,T.useEffect)(()=>{let e=K.current;if(e===null)return;let t=Array.from(q.current?.querySelectorAll(`[data-key]`)??[]).find(t=>t.dataset.key===e);t!==void 0&&(t.scrollIntoView({block:`center`}),K.current=null)},[F,z]),(0,T.useEffect)(()=>{for(let e of j?.uris??[])F.has(e)&&U(e,!0)},[j]);let J=()=>{I(new Map);for(let e of R)U(e)},Y=n(b);(0,T.useEffect)(()=>{Y!==void 0&&J()},[Y]);let X=async()=>{let t=await se(e);t!==null&&!F.has(t)&&W(new Set([...R,t]))},Z=[{title:t(`common/reload`),icon:u.reload,onSelect:e=>{e.closeMenu(),J()}},{title:t(`folders/addFolder`),icon:u.folder,onSelect:e=>{e.closeMenu(),X()}}],Q=(t,n)=>{e.commands.execute(`ahp.openFile`,{uri:t,...n===void 0?{}:{viewer:n}}),a(e,e.store.get(le)??`large`)},de=n=>{let r=g(e,n);return[{title:t(`folders/explorer/open`),icon:u.open,onSelect:e=>{e.closeMenu(),Q(n)}},...r.length<2?[]:r.map(e=>({title:t(`folders/explorer/openWith`,{viewer:h(e)}),...e.opens?.icon===void 0?{}:{icon:e.opens.icon},onSelect:t=>{t.closeMenu(),Q(n,e.component)}}))]},$=(0,T.useRef)(!1),fe=e=>{$.current=!1,e.preventDefault(),H({x:e.clientX,y:e.clientY})},pe=(0,T.useMemo)(()=>{let e=(n,r,i)=>{let a=F.get(n),o=a===void 0?[]:a===`loading`?[{key:`${n}#loading`,label:t(`folders/explorer/loading`)}]:a===`failed`?[{key:`${n}#failed`,label:t(`folders/explorer/notReadable`)}]:a.map(t=>{let r=oe(n,t.name);return t.type===`directory`?e(r,t.name):{key:r,label:t.name,icon:S(r),draggable:!0,data:{uri:r,directory:!1}}});return{key:n,label:r,icon:u.folder,draggable:!0,data:{uri:n,directory:!0},children:o,...i===void 0?{}:{trailing:(0,E.jsx)(`span`,{className:`web-folders__tag`,children:i})}}};return P.map(n=>e(n.uri,ue(n.uri),n.isDefault?t(`folders/explorer/default`):void 0))},[P,F,t]);return l?.status!==`connected`&&P.length===0?l?.status===`failed`?(0,E.jsx)(re,{tone:`danger`,title:t(`folders/explorer/notConnected`),message:l.error??t(`folders/explorer/refused`)}):(0,E.jsx)(ne,{label:t(`folders/explorer/connecting`)}):(0,E.jsxs)(`div`,{className:`web-explorer`,children:[(0,E.jsxs)(`div`,{className:`web-explorer__scroll`,ref:q,onContextMenuCapture:()=>{$.current=!0},onContextMenu:fe,children:[P.length===0?(0,E.jsx)(`p`,{className:`web-note web-explorer__empty`,children:t(`folders/explorer/empty`)}):null,(0,E.jsx)(ie,{nodes:pe,selectedKey:z,expanded:R,onExpandedChange:W,contextMenuSlot:y,contextFor:e=>({[C]:e.data===void 0?null:{uri:e.data.uri,directory:e.data.directory,added:P.some(t=>t.uri===e.key&&t.added),root:P.some(t=>t.uri===e.key)}}),contextExtraItems:e=>e.data===void 0?Z:e.data.directory?[]:de(e.data.uri),onSelect:e=>{if($.current){$.current=!1,e.data!==void 0&&B(e.key);return}if(e.data!==void 0){if(B(e.key),e.data.directory){let t=new Set(R);t.delete(e.key)||t.add(e.key),W(t)}else Q(e.data.uri)}},onDragStart:(e,t)=>{t.data!==void 0&&w(e.dataTransfer,t.data)}})]}),V===null?null:(0,E.jsx)(d,{spec:{items:Z},x:V.x,y:V.y,onClose:()=>H(null)})]})}export{D 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"./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{a as o}from"./locales-Dnk_Y338.js";import{c as s,it as c,k as l}from"./data-DPJ4OTLn.js";import{o as u}from"./words-T8-D0K4W.js";import{t as d}from"./emojis-DanG-8fr.js";import{t as f}from"./ContextMenu-DYnWIBAF.js";import{t as p}from"./Spinner-CBEPv0eM.js";import{t as m}from"./Alert-BhdRA0LL.js";import{t as ee}from"./Tree-BvNPcfhW.js";import{t as h}from"./TextField-DnSHrmJM.js";import{t as g}from"./CheckBox-Dkn59EbO.js";import{t as _}from"./Modal-xWzwLA8s.js";import{t as te}from"./state-CKNqusrK.js";import{l as ne,s as re}from"./viewers-Vk4T9IkZ.js";import{t as ie}from"./channel-C6Ss9Aem.js";import{a as ae,c as oe,d as se,i as v,l as ce,n as y,o as le,r as b,s as ue,t as x,u as S}from"./changeset-IbJWvDqP.js";var C=t(),w=e();function de(e){let t=e.filter(e=>e.staged).length;return t>0?o(`changes/commit/staged`,t):o(`changes/commit/all`,e.length)}function T({form:e,files:t,onCommit:n,onClose:i}){let{t:o}=r(),[s,c]=(0,C.useState)(``),l=u(e.operation.confirmation),d=s.trim()!==``;return(0,w.jsx)(_,{open:!0,title:e.operation.label,onClose:i,children:(0,w.jsxs)(`div`,{className:`web-changeset-form`,children:[(0,w.jsx)(h,{label:o(`changes/commit/message`),multiline:!0,rows:4,value:s,placeholder:o(`changes/commit/placeholder`),onChange:c}),(0,w.jsx)(`p`,{className:`web-note`,children:de(t)}),l===``?null:(0,w.jsx)(`p`,{className:`web-note`,children:l}),(0,w.jsxs)(`div`,{className:`web-changeset-form__actions`,children:[(0,w.jsx)(a,{label:o(`changes/cancel`),variant:`ghost`,onClick:i}),(0,w.jsx)(a,{label:e.operation.label,variant:`primary`,disabled:!d,onClick:()=>n(s.trim())})]})]})})}function E({form:e,onCreate:t,onClose:n}){let{t:i}=r(),[o,s]=(0,C.useState)(e.draft.title),[c,l]=(0,C.useState)(e.draft.description),[u,d]=(0,C.useState)(!1);(0,C.useEffect)(()=>{s(e.draft.title),l(e.draft.description)},[e.draft]);let f=e.draft.branchName===null&&e.draft.baseBranchName===null?null:`${e.draft.branchName??`?`} \u{2192} ${e.draft.baseBranchName??`?`}`,m=!e.preparing&&e.create!==null&&o.trim()!==``;return(0,w.jsx)(_,{open:!0,title:i(`changes/pr/title`),onClose:n,children:(0,w.jsxs)(`div`,{className:`web-changeset-form`,children:[e.preparing?(0,w.jsx)(p,{label:i(`changes/pr/preparing`)}):null,e.draft.repository===null&&f===null?null:(0,w.jsx)(`p`,{className:`web-note`,children:[e.draft.repository,f].filter(e=>e!==null).join(` · `)}),(0,w.jsx)(h,{label:i(`changes/pr/titleLabel`),value:o,placeholder:i(`changes/pr/titlePlaceholder`),disabled:e.preparing,onChange:s}),(0,w.jsx)(h,{label:i(`changes/pr/description`),multiline:!0,rows:8,value:c,placeholder:i(`changes/pr/descriptionPlaceholder`),disabled:e.preparing,onChange:l}),(0,w.jsx)(g,{label:i(`changes/pr/draft`),value:u,onChange:d}),(0,w.jsx)(`p`,{className:`web-note`,children:e.create===null?i(`changes/pr/cannotCreate`):i(`changes/pr/explain`)}),(0,w.jsxs)(`div`,{className:`web-changeset-form__actions`,children:[(0,w.jsx)(a,{label:i(`changes/cancel`),variant:`ghost`,onClick:n}),e.create===null?null:(0,w.jsx)(a,{label:e.create.label,variant:`primary`,disabled:!m,onClick:()=>t({...e.draft,title:o.trim(),description:c},u)})]})]})})}function fe({form:e,files:t,onCommit:n,onPullRequest:r,onClose:i}){return e===null?null:e.kind===`commit`?(0,w.jsx)(T,{form:e,files:t,onCommit:n,onClose:i}):(0,w.jsx)(E,{form:e,onCreate:r,onClose:i})}var pe=`ahpd-web.changes-view`,D=`ahpd-web.changes-grouping`;function O(e,t){try{let n=localStorage.getItem(e);return t.find(e=>e===n)??null}catch{return null}}function k(e,t){try{localStorage.setItem(e,t)}catch{}}var me={A:`changes/status/added`,M:`changes/status/modified`,D:`changes/status/deleted`,U:`changes/status/untracked`};function A(){let e=i(),{t}=r(),a=n(te),u=n(s)?.find(e=>e.resource===a),h=ie(a,c),g=(0,C.useMemo)(()=>se(h.state?.changesets),[h.state?.changesets]),[_,de]=(0,C.useState)(void 0),T=g.find(e=>e.uri===_)??le(g),E=ae(T?.uri),{files:A,operations:j}=E,M=u?.workingDirectories?.[0]??null,[N,he]=(0,C.useState)(()=>O(pe,[`list`,`tree`])??`list`),[P,ge]=(0,C.useState)(()=>O(D,[`review`,`staging`,`none`])),F=T?.review===!0,_e=A.some(e=>e.staged||e.unstaged),I=[...F?[`review`]:[],..._e?[`staging`]:[],`none`],L=P!==null&&I.includes(P)?P:I[0]??`none`,[R,ve]=(0,C.useState)(``),[ye,z]=(0,C.useState)(new Set),[be,B]=(0,C.useState)(null),[V,H]=(0,C.useState)(null),U=j.filter(e=>b(e,`resource`)),xe=j.some(e=>e.id===`create-pr`),W=j.filter(e=>b(e,`changeset`)&&!(xe&&e.id===`prepare-pull-request`)),G=e=>String(e.status)===`running`,Se=n=>{let r=[{title:t(`changes/openChange`),onSelect:t=>{t.closeMenu(),y(e,n,T?.uri,F)}}];n.status!==`deleted`&&(r.push({title:t(`changes/openFile`),onSelect:t=>{t.closeMenu(),e.commands.execute(`ahp.openFile`,{uri:n.file})}}),r.push(...re(e,n.file,ne(e,n.file)[0]?.component??null))),F&&r.push({title:t(n.reviewed?`changes/markNotReviewed`:`changes/markReviewed`),onSelect:e=>{e.closeMenu(),E.review([n],!n.reviewed)}});for(let e of U)r.push({title:e.label,...e.description===void 0?{}:{tooltip:e.description},group:`file`,...e.confirmation===void 0?{}:{color:`red`},onSelect:t=>{t.closeMenu(),E.run(e,n)}});return r},Ce=n=>{let r=ce(n),i=(e,t)=>{e.stopPropagation(),t()};return(0,w.jsxs)(`span`,{className:`web-change__end`,children:[(0,w.jsxs)(`span`,{className:`web-change__actions`,children:[F?(0,w.jsx)(`button`,{type:`button`,className:`web-change__action`,title:t(n.reviewed?`changes/markNotReviewed`:`changes/markReviewed`),"aria-label":t(n.reviewed?`changes/markNotReviewed`:`changes/markReviewed`),"aria-pressed":n.reviewed,onClick:e=>i(e,()=>E.review([n],!n.reviewed)),children:d.check}):null,n.status===`deleted`?null:(0,w.jsx)(`button`,{type:`button`,className:`web-change__action`,title:t(`changes/openFile`),"aria-label":t(`changes/openFile`),onClick:t=>i(t,()=>void e.commands.execute(`ahp.openFile`,{uri:n.file})),children:d.file}),U.map(e=>(0,w.jsx)(`button`,{type:`button`,className:`web-change__action`,title:e.label,"aria-label":e.label,disabled:G(e),onClick:t=>i(t,()=>void E.run(e,n)),children:x(e)},e.id))]}),(0,w.jsx)(`span`,{className:`web-change__counts`,children:n.added===void 0&&n.removed===void 0?null:(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,n.added??0]}),` `,(0,w.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,n.removed??0]})]})}),(0,w.jsx)(`span`,{className:`web-change__letter`,"data-letter":r,title:t(me[r]),children:r})]})},K=R.trim().toLowerCase(),q=K===``?A:A.filter(e=>`${S(e.dir,M)}/${e.name}`.toLowerCase().includes(K)),J=oe(q,L),Y=new Map,X=(()=>{let t=(t,n)=>{let r=`${n}|${t.id}`;Y.set(r,t);let i=S(t.dir,M);return{key:r,label:(0,w.jsxs)(`span`,{className:`web-change`,"data-reviewed":t.reviewed?`true`:`false`,"data-deleted":t.status===`deleted`?`true`:`false`,title:`${i}/${t.name}`,children:[(0,w.jsx)(`span`,{className:`web-change__name`,children:t.name}),N===`list`&&i!==`.`?(0,w.jsx)(`span`,{className:`web-change__dir`,children:i}):null]}),icon:ne(e,t.file)[0]?.opens?.icon??d.file,trailing:Ce(t),data:t}},n=(e,r)=>({key:`${r}|dir:${e.path}`,label:(0,w.jsx)(`span`,{className:`web-change__name`,title:e.path,children:e.name}),icon:d.folder,children:[...e.folders.map(e=>n(e,r)),...e.changes.map(e=>t(e,r))]}),r=(e,r)=>{if(N===`list`)return e.map(e=>t(e,r));let i=ue(e,M);return[...i.folders.map(e=>n(e,r)),...i.changes.map(e=>t(e,r))]};return L===`none`?r(J[0]?.changes??[],`all`):J.map(e=>({key:`group:${e.key}`,icon:``,label:(0,w.jsx)(`span`,{className:`web-change__group`,children:e.label}),trailing:(0,w.jsx)(`span`,{className:`web-explorer__count`,children:e.changes.length}),children:r(e.changes,e.key)}))})(),Z=[],we=e=>{for(let t of e)t.children!==void 0&&(Z.push(t.key),we(t.children))};we(X);let Te=new Set(Z.filter(e=>!ye.has(e))),Ee=e=>{let t=e.target.closest(`[data-key]`)?.dataset.key,n=t===void 0?void 0:Y.get(t);n!==void 0&&(e.preventDefault(),B(t??null),H({x:e.clientX,y:e.clientY,items:Se(n)}))},De=String(E.state?.status??``),Oe=(0,w.jsxs)(w.Fragment,{children:[a===void 0?(0,w.jsx)(`p`,{className:`web-note web-explorer__empty`,children:t(`changes/noSession`)}):null,a!==void 0&&h.state!==void 0&&g.length===0?(0,w.jsx)(`p`,{className:`web-note web-explorer__empty`,children:t(`changes/untracked`)}):null,E.said===null?null:(0,w.jsx)(m,{tone:E.said.tone,message:E.said.text}),E.error===null?null:(0,w.jsx)(m,{tone:`danger`,title:t(`changes/notReadable`),message:E.error}),E.state?.error===void 0?null:(0,w.jsx)(m,{tone:`danger`,message:E.state.error.message}),T!==void 0&&(E.state===void 0||De===`computing`)&&E.error===null?(0,w.jsx)(p,{label:t(`changes/computing`)}):null,E.state!==void 0&&De!==`computing`&&A.length===0?(0,w.jsx)(`p`,{className:`web-note web-explorer__empty`,children:t(`changes/none`)}):null]}),Q=(e,t,n,r)=>(0,w.jsx)(`button`,{type:`button`,className:`web-explorer__action`,title:t,"aria-label":t,"aria-pressed":r?.on,"data-on":r?.on===!0?`true`:`false`,"data-busy":r?.busy===!0?`true`:`false`,"data-tone":r?.tone??void 0,disabled:r?.disabled,onClick:n,children:(0,w.jsx)(`span`,{className:`web-explorer__icon`,children:e})},t),$=e=>{he(e),k(pe,e)},ke=e=>{let t=e.currentTarget.getBoundingClientRect(),n=g.map(e=>({title:e.label,icon:e.uri===T?.uri?d.check:``,onSelect:t=>{t.closeMenu(),de(e.uri)}}));H({x:t.left,y:t.bottom,items:n})},Ae=e=>{let n=e.currentTarget.getBoundingClientRect(),r=e=>({icon:e?d.check:``}),i=W.map(e=>{let t=v(e);return{title:e.label,...e.description===void 0?{}:{tooltip:e.description},group:`changes`,icon:x(e),...t===null?{}:{color:t},disabled:G(e),onSelect:t=>{t.closeMenu(),E.run(e)}}});if(i.push({title:t(`changes/view/list`),group:`view`,...r(N===`list`),onSelect:e=>{e.closeMenu(),$(`list`)}},{title:t(`changes/view/tree`),group:`view`,...r(N===`tree`),onSelect:e=>{e.closeMenu(),$(`tree`)}}),I.length>1)for(let e of I)i.push({title:t(`changes/grouping/${e}`),group:`group`,...r(e===L),onSelect:t=>{t.closeMenu(),ge(e),k(D,e)}});Z.length>0&&(i.push({title:t(`changes/expandAll`),group:`folders`,icon:``,onSelect:e=>{e.closeMenu(),z(new Set)}}),i.push({title:t(`changes/collapseAll`),group:`folders`,icon:``,onSelect:e=>{e.closeMenu(),z(new Set(Z))}})),H({x:Math.max(0,n.right-200),y:n.bottom,items:i})},je=A.reduce((e,t)=>e+(t.added??0),0),Me=A.reduce((e,t)=>e+(t.removed??0),0);return(0,w.jsxs)(`div`,{className:`web-explorer web-changes`,children:[(0,w.jsxs)(`div`,{className:`web-explorer__title`,children:[(0,w.jsx)(`span`,{className:`web-explorer__name`,title:u?.title,children:u===void 0?t(`changes/title`):t(`changes/titleOf`,{title:u.title||t(`changes/untitled`)})}),T===void 0?null:(0,w.jsxs)(`span`,{className:`web-explorer__actions`,children:[W.map(e=>Q(x(e),e.label,()=>void E.run(e),{busy:G(e),disabled:G(e),tone:v(e)})),W.length===0?null:(0,w.jsx)(`span`,{className:`web-explorer__sep`,"aria-hidden":`true`}),Q(d.reload,t(`common/reload`),()=>void l(T.uri)),Q(d.more,t(`changes/viewOptions`),Ae)]})]}),T===void 0?null:(0,w.jsxs)(`div`,{className:`web-changes__bar`,children:[g.length>1?(0,w.jsxs)(`button`,{type:`button`,className:`web-changes__scope`,title:T.description??T.label,"aria-haspopup":`menu`,onClick:ke,children:[T.label,` `,(0,w.jsx)(`span`,{"aria-hidden":`true`,children:d.caretDown})]}):(0,w.jsx)(`span`,{className:`web-changes__scope web-changes__scope--only`,title:T.description??T.label,children:T.label}),(0,w.jsx)(`span`,{className:`web-changes__totals`,children:A.length===0?null:(0,w.jsxs)(w.Fragment,{children:[o(`changes/files`,A.length),` `,(0,w.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,je]}),` `,(0,w.jsxs)(`span`,{className:`web-diff--remove`,children:[`−`,Me]})]})}),(0,w.jsx)(`span`,{className:`web-segments`,role:`group`,"aria-label":t(`changes/view/showAs`),children:[`list`,`tree`].map(e=>(0,w.jsx)(`button`,{type:`button`,className:`web-segments__item web-segments__item--icon`,"aria-pressed":N===e,title:t(`changes/view/${e}`),"aria-label":t(`changes/view/${e}`),onClick:()=>$(e),children:e===`list`?d.log:d.tree},e))})]}),A.length===0?null:(0,w.jsx)(`input`,{className:`web-explorer__filter`,type:`search`,value:R,placeholder:t(`changes/filter`),"aria-label":t(`changes/filter`),onChange:e=>ve(e.target.value)}),(0,w.jsxs)(`div`,{className:`web-explorer__scroll`,onContextMenu:Ee,children:[(0,w.jsx)(`div`,{className:`web-explorer__notice`,children:Oe}),(0,w.jsx)(ee,{nodes:X,selectedKey:be,expanded:Te,onExpandedChange:e=>z(new Set(Z.filter(t=>!e.has(t)))),onSelect:t=>{if(t.data===void 0){z(e=>{let n=new Set(e);return n.delete(t.key)||n.add(t.key),n});return}B(t.key),y(e,t.data,T?.uri,F)}}),K!==``&&q.length===0?(0,w.jsx)(`p`,{className:`web-note web-explorer__empty`,children:t(`changes/noMatch`)}):null]}),(0,w.jsx)(fe,{form:E.form,files:A,onCommit:E.commit,onPullRequest:E.pullRequest,onClose:E.closeForm}),V===null?null:(0,w.jsx)(f,{spec:{items:V.items},x:V.x,y:V.y,onClose:()=>H(null)})]})}export{A 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{t as r}from"./emojis-DanG-8fr.js";import{t as i}from"./ContextMenu-DYnWIBAF.js";var a=t(),o=e();function s({label:e,rows:t,selected:s,onOpen:c,notice:l,filterLabel:u}){let{t:d}=n(),[f,p]=(0,a.useState)(null),[m,h]=(0,a.useState)(``),[g,_]=(0,a.useState)(new Set),v=e=>_(t=>{let n=new Set(t);return n.delete(e)||n.add(e),n}),y=m.trim().toLowerCase(),b=y===``?t:t.filter(e=>[e.title,...e.lines.filter(e=>typeof e==`string`)].join(` `).toLowerCase().includes(y)),x=(e,t)=>{e.preventDefault(),p({x:e.clientX,y:e.clientY,items:t.menu})};return(0,o.jsxs)(`div`,{className:`web-explorer`,children:[u===void 0?null:(0,o.jsx)(`input`,{className:`web-explorer__filter`,type:`search`,value:m,placeholder:u,"aria-label":u,onChange:e=>h(e.target.value)}),(0,o.jsxs)(`div`,{className:`web-explorer__scroll`,children:[l==null?null:(0,o.jsx)(`div`,{className:`web-explorer__notice`,children:l}),(0,o.jsx)(`ul`,{className:`web-explorer__list`,role:`listbox`,"aria-label":e,children:b.map((e,t)=>{let n=e.group,i=n!==void 0&&b[t-1]?.group?.key!==n.key,l=i?b.filter(e=>e.group?.key===n.key).length:0,u=n!==void 0&&g.has(n.key);return(0,o.jsxs)(a.Fragment,{children:[i?(0,o.jsx)(`li`,{className:`web-explorer__group`,role:`presentation`,children:(0,o.jsxs)(`button`,{type:`button`,"aria-expanded":!u,onClick:()=>v(n.key),children:[(0,o.jsx)(`span`,{className:`web-explorer__fold`,"aria-hidden":`true`,children:u?r.caretRight:r.caretDown}),(0,o.jsx)(`span`,{className:`web-explorer__group-label`,children:n.label}),(0,o.jsx)(`span`,{className:`web-explorer__count`,children:l})]})}):null,u?null:(0,o.jsxs)(`li`,{role:`option`,"aria-selected":e.key===s,tabIndex:0,className:`web-row`,"data-selected":e.key===s?`true`:`false`,onClick:()=>c(e.key),onKeyDown:t=>{if((t.key===`Enter`||t.key===` `)&&(t.preventDefault(),c(e.key)),t.key===`ContextMenu`||t.shiftKey&&t.key===`F10`){t.preventDefault();let n=t.currentTarget.getBoundingClientRect();p({x:n.left+24,y:n.bottom,items:e.menu})}},onContextMenu:t=>x(t,e),children:[(0,o.jsx)(`span`,{className:`web-row__dot`,"data-dot":e.dot,title:e.dotLabel,"aria-label":e.dotLabel,children:e.dot===`working`?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`i`,{}),(0,o.jsx)(`i`,{}),(0,o.jsx)(`i`,{}),(0,o.jsx)(`i`,{})]}):null}),(0,o.jsxs)(`span`,{className:`web-row__body`,children:[(0,o.jsxs)(`span`,{className:`web-row__head`,children:[(0,o.jsx)(`span`,{className:`web-row__title`,"data-strong":e.strong===!0?`true`:`false`,children:e.title}),e.time===void 0?null:(0,o.jsx)(`span`,{className:`web-row__time`,children:e.time}),e.action===void 0?null:(0,o.jsx)(`button`,{type:`button`,className:`web-row__action`,title:e.action.label,"aria-label":e.action.label,onClick:t=>{t.stopPropagation(),e.action?.run()},onKeyDown:e=>e.stopPropagation(),children:e.action.icon})]}),e.lines.map((e,t)=>(0,o.jsx)(`span`,{className:`web-row__line`,children:e},t))]})]})]},e.key)})}),y!==``&&b.length===0?(0,o.jsx)(`p`,{className:`web-note web-explorer__empty`,children:d(`shell/explorer/noMatch`)}):null]}),f===null?null:(0,o.jsx)(i,{spec:{items:f.items},x:f.x,y:f.y,onClose:()=>p(null)})]})}export{s 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"./useCloseGuard-B4qJKmaF.js";import{F as i,st as a,y as o}from"./data-DPJ4OTLn.js";import{t as s}from"./Spinner-CBEPv0eM.js";import{t as c}from"./Alert-BhdRA0LL.js";import{n as l,t as u}from"./CodeEditor-C-ygqVsY.js";import{n as d,t as f}from"./text-D_lQQGN1.js";import{t as p}from"./PageAlert-B8ulCXV4.js";var m=t(),h=5e6;function g(e){return e.length>5e6?{text:e.slice(0,h),cut:!0}:{text:e,cut:!1}}function _(e){return typeof e==`object`&&!!e&&e.code===a.PermissionDenied}function v(e){return typeof e==`object`&&!!e&&e.code===a.Conflict}var y=e();function b({uri:e,line:t,end:a}){let{t:h}=n(),b=d(e),[x,S]=(0,m.useState)(!1),[C,w]=(0,m.useState)(null),T=(0,m.useRef)(``),E=(0,m.useRef)(``),D=(0,m.useRef)(!1),O=(0,m.useRef)(void 0);r(()=>x?h(`files/unsaved`):null);let k=b!==null&&`text`in b&&b.text!==null?g(b.text):null;(0,m.useEffect)(()=>{if(T.current=k?.text??``,E.current=T.current,S(!1),w(null),O.current=void 0,e===void 0||k===null)return;let t=!0;return o(e).then(e=>{t&&(O.current=e)}).catch(()=>void 0),()=>{t=!1}},[e,k?.text]);let A=(0,m.useCallback)(e=>{E.current=e,S(e!==T.current)},[]),j=(0,m.useCallback)(t=>{e===void 0||D.current||(D.current=!0,i(e,t,O.current).then(async()=>{T.current=t,S(E.current!==t),w(null),O.current=await o(e).catch(()=>void 0)}).catch(e=>{let t=v(e)?h(`files/changedOnHost`):e instanceof Error?e.message:String(e);w({message:t,refused:_(e)})}).finally(()=>{D.current=!1}))},[e,h]);if(e===void 0)return(0,y.jsx)(p,{tone:`warning`,message:h(`files/noFile`)});let M=(0,y.jsx)(f,{uri:e,dirty:x});return b===null?(0,y.jsxs)(`div`,{className:`web-file`,children:[M,(0,y.jsx)(s,{label:h(`files/reading`)})]}):`error`in b?(0,y.jsxs)(`div`,{className:`web-file`,children:[M,(0,y.jsx)(c,{tone:`danger`,title:h(`files/notReadable`),message:b.error})]}):k===null?(0,y.jsxs)(`div`,{className:`web-file`,children:[M,(0,y.jsx)(`p`,{className:`web-note`,children:h(`files/notText`)})]}):(0,y.jsxs)(`div`,{className:`web-file`,children:[M,C===null?null:(0,y.jsx)(c,{tone:`danger`,title:C.refused?h(`files/readOnly`):h(`files/notSaved`),message:C.message}),k.cut?(0,y.jsx)(`p`,{className:`web-note`,children:h(`files/cut`)}):null,(0,y.jsx)(`div`,{className:`web-file__body web-file__body--editor`,children:(0,y.jsx)(u,{value:k.text,language:l(e),readOnly:k.cut||C?.refused===!0,line:t??null,end:a??null,onChange:A,onSave:j})})]})}export{b 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";var i=e();function a({namespace:e,fields:a}){let d=r(),{t:f}=n(`query`),p=t(`$/${e}/query`),m=p?.where??[],h=t=>d.store.set(`$/${e}/query`,{...p??{page:1,pageSize:50},...t,page:1}),g=e=>e.value??!0,_=e=>m.some(t=>t.field===e.field&&t.value===g(e)),v=e=>{let t=m.filter(t=>t.field!==e.field),n=_(e)?t:[...t,{field:e.field,op:e.op??`eq`,value:g(e)}];h({where:n})};return(0,i.jsxs)(`div`,{style:o,children:[(0,i.jsx)(`input`,{style:s,placeholder:f(`search`,`Search…`),value:p?.q??``,onChange:e=>h({q:e.currentTarget.value})}),a?.length?(0,i.jsx)(`div`,{style:c,children:a.map(e=>(0,i.jsx)(`button`,{type:`button`,style:{...l,..._(e)?u:{}},onClick:()=>v(e),children:e.label??e.field},e.field))}):null]})}var o={display:`flex`,flexDirection:`column`,gap:6,padding:8},s={boxSizing:`border-box`,width:`100%`,padding:`6px 8px`,background:`var(--oo-color-canvas, #16181d)`,border:`1px solid var(--oo-color-border, #2b2f37)`,borderRadius:4,outline:`none`,fontSize:13,color:`var(--oo-color-text, #e6e8eb)`},c={display:`flex`,flexWrap:`wrap`,gap:4},l={appearance:`none`,border:`1px solid var(--oo-color-border, #2b2f37)`,background:`none`,borderRadius:999,padding:`2px 8px`,fontSize:11,cursor:`pointer`,color:`var(--oo-color-muted, #8a8f98)`},u={color:`#fff`,background:`var(--oo-color-accent, #4c7fff)`,borderColor:`var(--oo-color-accent, #4c7fff)`};export{a as Filter};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.oo-header-action{background:0 0}.oo-header-action[data-active=true]{background:var(--oo-color-active);color:var(--oo-color-accent)}.oo-header-action__icon{display:inline-block}.oo-header-action[data-busy=true]{color:var(--oo-color-accent);cursor:progress;opacity:1}.oo-header-action[data-busy=true] .oo-header-action__icon{animation:.9s linear infinite oo-spin}@keyframes oo-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.oo-header-action[data-busy=true] .oo-header-action__icon{animation:none}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./ContextMenu-DYnWIBAF.js";var i=t(),a=e(),o={border:`none`,font:`inherit`,fontSize:`var(--oo-font-size-sm)`,lineHeight:1,padding:`2px 5px`,borderRadius:4};function s(e,t){return t.when===void 0||e.when.evaluate(t.when)}function c(e,t){let r=n(),[a,o]=(0,i.useState)(()=>e===void 0?t:r.when.evaluate(e));return(0,i.useEffect)(()=>{if(e===void 0)return;let t=r.when.watch(e,o);return()=>t.dispose()},[r,e]),e===void 0?t:a}function l({action:e,text:t,run:n}){let s=c(e.when,!0),l=c(e.active,!1),u=c(e.busy,!1),[d,f]=(0,i.useState)(null);if(!s)return null;function p(t){if(e.menu===void 0){n(e.command);return}let r=t.currentTarget.getBoundingClientRect();f({x:r.left,y:r.bottom+2})}return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`button`,{className:`oo-btn oo-btn--icon oo-header-action`,"data-variant":`ghost`,type:`button`,title:t,"aria-label":t,...e.active===void 0?{}:{"aria-pressed":l,"data-active":l?`true`:void 0},"data-busy":u?`true`:void 0,disabled:u,...e.menu===void 0?{}:{"aria-haspopup":`menu`,"aria-expanded":d!==null},onClick:p,style:o,children:(0,a.jsx)(`span`,{className:`oo-header-action__icon`,children:e.icon??t??`•`})}),e.menu!==void 0&&d!==null?(0,a.jsx)(r,{x:d.x,y:d.y,onClose:()=>f(null),spec:{query:{slot:e.menu}}}):null]})}export{o as n,s as r,l 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";var r=t(),i=e();function a({embedder:e}){let{t}=n(),[a,o]=(0,r.useState)(null),[s,c]=(0,r.useState)([]),[l,u]=(0,r.useState)({}),[d,f]=(0,r.useState)(!1),p=(0,r.useRef)(null);(0,r.useEffect)(()=>{let t=!0;e.host().then(e=>t&&o(e)),e.hosts().then(e=>t&&c(e)),e.statuses().then(e=>t&&u(e));let n=[e.onHosts(e=>{c(e),o(t=>e.find(e=>e.id===t?.id)??t)}),e.onStatuses(u)];return()=>{t=!1;for(let e of n)e()}},[e]),(0,r.useEffect)(()=>{if(!d)return;let e=e=>{p.current?.contains(e.target)||f(!1)},t=e=>{e.key===`Escape`&&f(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[d]);let m=e=>(0,i.jsx)(`span`,{className:`embed-dot embed-dot--${l[e]??`connecting`}`,"aria-label":t(`shell/embed/status/${l[e]??`connecting`}`)});return(0,i.jsxs)(`div`,{className:`embed-host`,ref:p,children:[(0,i.jsxs)(`button`,{type:`button`,className:`embed-host__button`,"aria-haspopup":`menu`,"aria-expanded":d,onClick:()=>f(!d),children:[a!==null&&m(a.id),(0,i.jsx)(`span`,{className:`embed-host__name`,children:a?.name??`…`}),(0,i.jsx)(`svg`,{width:`8`,height:`8`,viewBox:`0 0 8 8`,"aria-hidden":`true`,children:(0,i.jsx)(`path`,{d:`M1 2.5l3 3 3-3`,fill:`none`,stroke:`currentColor`})})]}),d&&(0,i.jsxs)(`div`,{className:`embed-host__menu`,role:`menu`,children:[s.map(t=>(0,i.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`embed-host__item`,"aria-current":t.id===a?.id,onClick:()=>{f(!1),t.id!==a?.id&&e.switchHost(t.id)},children:[m(t.id),(0,i.jsx)(`span`,{className:`embed-host__name`,children:t.name}),(0,i.jsx)(`span`,{className:`embed-host__url`,children:t.url.replace(/^ws:\/\//i,``)})]},t.id)),(0,i.jsx)(`div`,{className:`embed-host__line`,role:`separator`}),(0,i.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`embed-host__item embed-host__action`,onClick:()=>{f(!1),e.manageHosts()},children:[(0,i.jsx)(`span`,{"aria-hidden":`true`,children:`☰`}),(0,i.jsx)(`span`,{className:`embed-host__name`,children:t(`shell/embed/manageHosts`)})]}),(0,i.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`embed-host__item embed-host__action`,onClick:()=>{f(!1),e.manageHosts({add:!0})},children:[(0,i.jsx)(`span`,{"aria-hidden":`true`,children:`+`}),(0,i.jsx)(`span`,{className:`embed-host__name`,children:t(`shell/embed/addHost`)})]})]})]})}export{a 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{t as r}from"./media-Da9OmSvb.js";var i=t();function a(e,t,n){return Math.round(n>0&&t>0?t*e*100/n:e*100)}var o=e(),s=1,c=20,l=1.25;function u({url:e,alt:t}){let{t:r}=n(),u=(0,i.useRef)(null),d=(0,i.useRef)(null),[f,p]=(0,i.useState)(s),[m,h]=(0,i.useState)({fitted:0,natural:0}),[g,_]=(0,i.useState)({x:0,y:0}),[v,y]=(0,i.useState)(!1),b=(0,i.useRef)(null),x=()=>{p(s),_({x:0,y:0})};(0,i.useEffect)(x,[e]);let S=(e,t=0,n=0)=>{let r=Math.min(c,Math.max(s,e));if(r===f)return;let i=r/f;_(r===s?{x:0,y:0}:e=>({x:t-(t-e.x)*i,y:n-(n-e.y)*i})),p(r)},C=e=>{let t=u.current?.getBoundingClientRect();t!==void 0&&S(f*Math.exp(-e.deltaY*.0015),e.clientX-t.left-t.width/2,e.clientY-t.top-t.height/2)},w=()=>{let e=d.current;e!==null&&h({fitted:e.offsetWidth,natural:e.naturalWidth})};(0,i.useEffect)(()=>{let e=u.current;if(e===null||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(w);return t.observe(e),()=>t.disconnect()},[]);let T=e=>{f<=s||(b.current={x:e.clientX,y:e.clientY,ox:g.x,oy:g.y},y(!0),e.currentTarget.setPointerCapture(e.pointerId))},E=e=>{let t=b.current;t!==null&&_({x:t.ox+e.clientX-t.x,y:t.oy+e.clientY-t.y})},D=()=>{b.current=null,y(!1)};(0,i.useEffect)(()=>{let e=u.current,t=e=>e.preventDefault();return e?.addEventListener(`wheel`,t,{passive:!1}),()=>e?.removeEventListener(`wheel`,t)},[]);let O=f>s;return(0,o.jsxs)(`div`,{className:`web-image__view`,children:[(0,o.jsxs)(`div`,{className:`web-image__bar`,role:`toolbar`,"aria-label":r(`files/image/zoom`),children:[(0,o.jsx)(`button`,{type:`button`,className:`web-image__step`,title:r(`files/image/zoomOut`),"aria-label":r(`files/image/zoomOut`),disabled:!O,onClick:()=>S(f/l),children:`−`}),(0,o.jsxs)(`button`,{type:`button`,className:`web-image__step web-image__percent`,title:r(`files/image/fit`),"aria-label":r(`files/image/fit`),disabled:!O,onClick:x,children:[a(f,m.fitted,m.natural),`%`]}),(0,o.jsx)(`button`,{type:`button`,className:`web-image__step`,title:r(`files/image/zoomIn`),"aria-label":r(`files/image/zoomIn`),disabled:f>=c,onClick:()=>S(f*l),children:`+`})]}),(0,o.jsx)(`div`,{ref:u,className:`web-image`,"data-zoomed":O?`true`:`false`,"data-dragging":v?`true`:`false`,onWheel:C,onPointerDown:T,onPointerMove:E,onPointerUp:D,onPointerCancel:D,onDoubleClick:x,children:(0,o.jsx)(`img`,{ref:d,src:e,alt:t,draggable:!1,onLoad:w,style:{transform:`translate(${g.x}px, ${g.y}px) scale(${f})`}})})]})}var d=e=>decodeURIComponent(e.split(`/`).pop()??e);function f({uri:e}){return(0,o.jsx)(r,{uri:e,children:t=>(0,o.jsx)(u,{url:t,alt:d(e??``)})})}export{f 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"./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{a as o}from"./locales-Dnk_Y338.js";import{O as s,i as c,n as l,o as u,r as d}from"./data-DPJ4OTLn.js";import{n as f,t as p}from"./words-T8-D0K4W.js";import{t as m}from"./Badge-BDEW5PFb.js";import{t as h}from"./Alert-BhdRA0LL.js";import{t as g}from"./Text-MPtQvYE-.js";import{t as _}from"./DetailList-Yalgw0YM.js";import{S as v}from"./index-xynK_AEL.js";import{a as y}from"./turn-z1TPlA5Q.js";var b=t(),x=e(),S={connected:{tone:`success`,word:`connected`},connecting:{tone:`info`,word:`connecting`},reconnecting:{tone:`warning`,word:`reconnecting`},disconnected:{tone:`default`,word:`disconnected`},failed:{tone:`danger`,word:`failed`}};function C(e){let[t,n]=(0,b.useState)(null),[r,i]=(0,b.useState)(null);return(0,b.useEffect)(()=>{n(null),i(null)},[e]),{status:t,error:r}}function w(){let[e,t]=(0,b.useState)(()=>Date.now());return(0,b.useEffect)(()=>{let e=window.setInterval(()=>t(Date.now()),1e3);return()=>window.clearInterval(e)},[]),e}function T(){let e=i(),{t}=r(),b=n(d),T=n(u),E=n(`$/ahp/agents`)??[],D=n(c),O=n(l),{status:k,error:A}=C(b?.generation??0),j=w(),M=S[b?.status??`disconnected`]??S.disconnected,N=t(`bridges/state/${M.word}`),P=k?.startedAt===void 0?NaN:Date.parse(k.startedAt),F=[{label:t(`host/info/status`),value:N}];T!=null&&(F.push({label:t(`host/info/host`),value:T.label}),T.protocolVersion!==null&&F.push({label:t(`host/info/protocol`),value:T.protocolVersion}),T.connectedAt!==null&&F.push({label:t(`host/info/connected`),value:t(`host/info/connectedValue`,{when:y(T.connectedAt),elapsed:p(j-T.connectedAt)})}),F.push({label:t(`host/info/client`),value:(0,x.jsx)(`code`,{children:T.clientId})},{label:t(`host/info/serverSeq`),value:String(T.serverSeq)},{label:t(`host/info/following`),value:o(`host/info/channels`,T.subscriptions)})),b?.error!==null&&b?.error!==void 0&&F.push({label:t(`host/info/lastError`),value:b.error});let I=[];k!==null&&(Number.isNaN(P)||I.push({label:t(`host/info/started`),value:t(`host/info/startedValue`,{when:y(P),elapsed:p(j-P)})}),k.pid!==void 0&&I.push({label:t(`host/info/process`),value:String(k.pid)}),k.url!==void 0&&I.push({label:t(`host/info/address`),value:(0,x.jsx)(`code`,{children:k.url})}),k.automations!==void 0&&I.push({label:t(`host/info/automationsKeptIn`),value:k.automations}),(k.paths??[]).length>0&&I.push({label:t(`host/info/sessionsKeptIn`),value:(0,x.jsx)(`span`,{className:`web-lines`,children:k.paths.map(e=>(0,x.jsx)(`code`,{children:e},e))})}));let L=[{label:t(`host/info/agents`),value:(0,x.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>void e.commands.execute(`sidebar.activate`,{section:v}),children:E.length===0?t(`host/info/none`):E.map(e=>e.displayName).join(`, `)})},{label:t(`host/info/defaultFolder`),value:D==null?t(`host/info/none`):(0,x.jsx)(`code`,{children:f(D)})}];T?.activeSessions!==null&&T?.activeSessions!==void 0&&L.push({label:t(`host/info/activeSessions`),value:String(T.activeSessions)}),L.push({label:t(`host/info/automations`),value:O==null?t(`host/info/automationsNotOffered`):[O.create===void 0?t(`host/info/automationsReadOnly`):t(`host/info/automationsCreate`),O.schedules?.minIntervalMinutes===void 0?void 0:o(`host/info/automationsInterval`,O.schedules.minIntervalMinutes),O.runCancellation===void 0?void 0:t(`host/info/automationsStoppable`)].filter(e=>e!==void 0).join(`, `)});let R=T?.terminals??[];return(0,x.jsxs)(`div`,{className:`web-page`,children:[(0,x.jsxs)(`div`,{className:`web-page__head`,children:[(0,x.jsxs)(`div`,{className:`web-chat__title`,children:[(0,x.jsx)(g,{variant:`h2`,text:t(`host/title`)}),(0,x.jsx)(m,{tone:M.tone,text:N})]}),(0,x.jsxs)(`div`,{className:`web-page__actions`,children:[b?.status===`connected`?null:(0,x.jsx)(a,{label:t(`bridges/reconnectNow`),variant:`primary`,onClick:s}),(0,x.jsx)(a,{label:t(`host/info/settings`),onClick:()=>void e.commands.execute(`ahp.openSettings`)})]})]}),(0,x.jsx)(g,{variant:`h3`,text:t(`host/info/connection`)}),(0,x.jsx)(_,{items:F,columns:2}),k===null&&A===null?null:(0,x.jsx)(g,{variant:`h3`,text:t(`host/info/daemon`)}),A===null?null:(0,x.jsx)(h,{tone:`warning`,message:t(`host/info/statusUnreadable`,{error:A})}),I.length===0?null:(0,x.jsx)(_,{items:I,columns:2}),(0,x.jsx)(g,{variant:`h3`,text:t(`host/info/offers`)}),(0,x.jsx)(_,{items:L,columns:2}),(0,x.jsx)(g,{variant:`h3`,text:t(`host/info/terminals`)}),R.length===0?(0,x.jsx)(`p`,{className:`web-note`,children:t(`host/info/noTerminals`)}):(0,x.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{children:[(0,x.jsx)(`th`,{children:t(`host/info/terminalTitle`)}),(0,x.jsx)(`th`,{children:t(`host/info/terminalState`)})]})}),(0,x.jsx)(`tbody`,{children:R.map(e=>{let n=e.lifecycle;return(0,x.jsxs)(`tr`,{children:[(0,x.jsx)(`td`,{children:e.title}),(0,x.jsx)(`td`,{children:n.status===`exited`?n.exitCode===void 0?t(`host/info/exited`):t(`host/info/exitedCode`,{code:n.exitCode}):t(`host/info/running`)})]},e.resource)})})]})]})}export{T 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";var r=t(),i=e();function a({display:e=`text`,locales:t,separator:a=`|`,className:s,style:c}){let{locale:l,locales:u,setLocale:d}=n(),f=t?t.map(e=>u.find(t=>t.locale===e)).filter(Boolean):u;return(0,i.jsx)(`div`,{className:[`oo-locale-toggle`,s].filter(Boolean).join(` `),style:c,role:`group`,children:f.map((t,n)=>(0,i.jsxs)(r.Fragment,{children:[n>0&&a!=null?(0,i.jsx)(`span`,{className:`oo-locale-toggle__sep`,"aria-hidden":`true`,children:a}):null,(0,i.jsx)(`button`,{type:`button`,className:`oo-locale-toggle__item`+(t.locale===l?` oo-locale-toggle__item--active`:``),"aria-pressed":t.locale===l,title:t.name??t.locale,onClick:()=>d(t.locale),children:o(t,e)})]},t.locale))})}function o(e,t){let n=(e.language??e.locale).toUpperCase();return t===`emoji`?e.emoji??n:t===`both`&&e.emoji?`${e.emoji} ${n}`:n}export{a as LocaleToggle};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{l as n,t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{B as a,H as o,I as s,L as c,U as l,V as u,W as d,z as f}from"./data-DPJ4OTLn.js";import{t as p}from"./emojis-DanG-8fr.js";var m=t(),h=e(),g=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform)?`log/follow/mac`:`log/follow/other`;function _(e,t){return t.startsWith(`ahp-terminal:`)?{tip:n(`log/follow/terminal`),run:()=>void e.commands.execute(`ahp.openTerminal`,{uri:t})}:(e.store.get(`$/ahp/sessions`)??[]).some(e=>e.resource===t)?{tip:n(`log/follow/session`),run:()=>void e.commands.execute(`ahp.openSession`,{resource:t})}:t.startsWith(`file:`)?{tip:n(`log/follow/file`),run:()=>void e.commands.execute(`ahp.openFile`,{uri:t})}:/^https?:/i.test(t)?{tip:n(`log/follow/page`),run:()=>void window.open(t,`_blank`,`noopener`)}:null}function v(e){if(typeof e==`string`)try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}return JSON.stringify(e,null,2)??String(e)}var y=e=>void navigator.clipboard?.writeText(e).catch(()=>void 0),b=(0,m.memo)(function({entry:e,open:t,onToggle:n}){let a=i(),{t:o}=r(),s=l(e.text).map((e,t)=>{if(e.kind===`text`)return(0,h.jsx)(`span`,{children:e.text},t);let n=_(a,e.text);return n===null?(0,h.jsx)(`span`,{children:e.text},t):(0,h.jsx)(`a`,{className:`web-log__link`,title:o(`log/follow/link`,{tip:n.tip,how:o(g)}),onClick:e=>{(e.ctrlKey||e.metaKey)&&(e.stopPropagation(),n.run())},children:e.text},t)});return(0,h.jsxs)(`div`,{className:`web-log__row`,"data-open":t||void 0,"data-level":e.level,children:[(0,h.jsxs)(`div`,{className:`web-log__line`,role:`button`,tabIndex:0,"aria-expanded":t,onClick:()=>n(e.id),onKeyDown:t=>{t.key===`Enter`&&n(e.id)},children:[(0,h.jsx)(`span`,{className:`web-log__caret`,children:t?p.caretDown:p.caretRight}),(0,h.jsx)(`span`,{className:`web-log__time`,children:f(e.at)}),(0,h.jsx)(`span`,{className:`web-log__level`,children:e.level.toUpperCase()}),(0,h.jsx)(`span`,{className:`web-log__scope`,"data-scope":e.scope,children:(0,h.jsx)(`span`,{children:o(`log/scopes/${e.scope}`)})}),(0,h.jsx)(`span`,{className:`web-log__text`,children:s}),t?(0,h.jsx)(`button`,{type:`button`,className:`web-log__icon`,title:o(`log/copyLine`),onClick:t=>{t.stopPropagation(),y(u(e))},children:p.copy}):null]}),t&&e.detail!==void 0?(0,h.jsx)(`pre`,{className:`web-log__detail`,children:v(e.detail)}):null]})});function x(){let{t:e}=r(),t=d(),[n,i]=(0,m.useState)([]),[l,u]=(0,m.useState)(`info`),[f,g]=(0,m.useState)(``),[_,v]=(0,m.useState)(new Set),x=(0,m.useMemo)(()=>a(t,{scopes:n.length===0?c.filter(e=>e!==`traffic`):n,minLevel:n.includes(`traffic`)?`debug`:l,query:f}),[t,n,l,f]),S=(0,m.useCallback)(e=>{v(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),C=e=>i(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),w=()=>u(s[(s.indexOf(l)+1)%s.length]??`info`),T=(0,m.useRef)(null),E=(0,m.useRef)(!0);return(0,m.useEffect)(()=>{let e=T.current;if(e===null)return;let t=()=>{E.current=e.scrollHeight-e.scrollTop-e.clientHeight<24};return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)},[]),(0,m.useLayoutEffect)(()=>{let e=T.current;e!==null&&E.current&&(e.scrollTop=e.scrollHeight)},[x]),(0,h.jsxs)(`div`,{className:`web-log`,children:[(0,h.jsxs)(`div`,{className:`web-log__bar`,children:[(0,h.jsx)(`button`,{type:`button`,className:`web-log__chip`,"data-on":n.length===0||void 0,onClick:()=>i([]),children:e(`log/all`)}),c.map(t=>(0,h.jsxs)(`button`,{type:`button`,className:`web-log__chip`,"data-on":n.includes(t)||void 0,onClick:()=>C(t),children:[(0,h.jsx)(`span`,{className:`web-log__dot`,"data-scope":t}),e(`log/scopes/${t}`)]},t)),(0,h.jsx)(`span`,{className:`web-log__rule`}),(0,h.jsx)(`button`,{type:`button`,className:`web-log__chip`,title:e(`log/levelTip`),disabled:n.includes(`traffic`),onClick:w,children:e(`log/minLevel`,{level:n.includes(`traffic`)?`debug`:l})}),(0,h.jsx)(`input`,{className:`web-log__search`,type:`search`,placeholder:e(`log/filter`),value:f,onChange:e=>g(e.target.value)}),(0,h.jsx)(`button`,{type:`button`,className:`web-log__icon`,title:e(`log/copyShown`),onClick:()=>y(o(x)),children:p.copy})]}),(0,h.jsxs)(`div`,{className:`web-log__list`,ref:T,children:[x.length===0?(0,h.jsx)(`p`,{className:`web-note`,children:e(t.length===0?`log/empty`:`log/noMatch`)}):null,x.map(e=>(0,h.jsx)(b,{entry:e,open:_.has(e.id),onToggle:S},e.id))]})]})}export{x 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"./useStore-BQkzWMs-.js";import{t as r}from"./useI18n-T3BwAm0z.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{t as a}from"./sigillum-Bev0l9LS.js";import{t as o}from"./Button-_R1oktDz.js";/* empty css */import{T as s}from"./index-xynK_AEL.js";var c=t(),l=e();function u(e){return e&&typeof e==`object`&&`path`in e?e.path:void 0}function d(e,t=``){let r=n(u(e));return u(e)?r??t:(typeof e==`string`?e:void 0)??t}function f({provider:e,pending:t,fire:n,t:r}){let i=d(e.label,e.id);return(0,l.jsx)(o,{label:`${e.icon?`${e.icon} `:``}${r(`auth/providerLabel`,{provider:i,fallback:`Continue with {provider}`})}`,disabled:t,onClick:()=>n(`sigillum.signin`,{providerId:e.id,credentials:{}})})}function p({field:e}){let t=e.label&&typeof e.label==`object`&&`path`in e.label?u(e.label):void 0,r=n(t);return t?(0,l.jsx)(l.Fragment,{children:r??``}):(0,l.jsx)(l.Fragment,{children:typeof e.label==`string`?e.label:``})}function m({providers:e,allowSignup:t=!1,allowForgotPassword:u=!1,onSignup:m,onForgotPassword:_}){let v=i(),y=s(),{t:b}=r(),x=!!n(a.pending),S=n(a.error)??null,C=n(a.challenge)??null,w=(0,c.useMemo)(()=>e?y.providers.filter(t=>e.includes(t.id)):y.providers,[y.providers,e]),T=w.filter(e=>e.kind===`oauth-button`),E=w.filter(e=>e.kind===`form-fields`),D=w.filter(e=>e.kind===`otp`),O=w.filter(e=>e.kind===`magic-link`),k=(0,c.useMemo)(()=>{let e=[],t=new Set;for(let n of E)for(let r of n.fields??[])t.has(r.name)||(t.add(r.name),e.push({field:r,ownerId:n.id}));return e},[E]),[A,j]=(0,c.useState)({});function M(e,t){j(n=>({...n,[e]:t}))}function N(e,t){v.commands.execute(e,t)}function P(e){if(e.preventDefault(),E.length===0)return;let t=E.find(e=>e.id===`password`)??E[0];t&&N(`sigillum.signin`,{providerId:t.id,credentials:A})}let F=k.length>0||D.length>0||O.length>0,I=d((E.find(e=>e.id===`password`)??E[0])?.label,b(`auth/signIn`,`Sign in`));return(0,l.jsxs)(`form`,{className:`porta-form`,onSubmit:P,children:[T.length>0?(0,l.jsx)(`div`,{className:`porta-form__oauth`,children:T.map(e=>(0,l.jsx)(f,{provider:e,pending:x,fire:N,t:b},e.id))}):null,T.length>0&&F?(0,l.jsx)(`div`,{className:`porta-form__divider`,children:`or`}):null,k.length>0?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`div`,{className:`porta-form__fields`,children:k.map(({field:e})=>(0,l.jsxs)(`label`,{className:`oo-field`,children:[(0,l.jsx)(`span`,{className:`oo-field__label`,children:e.label&&typeof e.label==`object`&&`t`in e.label?b(e.label.t,{...e.label.args,fallback:`???`}):(0,l.jsx)(p,{field:e})}),(0,l.jsx)(`input`,{className:`oo-input`,type:e.type,name:e.name,autoComplete:e.autoComplete,required:e.required,placeholder:e.placeholder,value:A[e.name]??``,onChange:t=>M(e.name,t.currentTarget.value)})]},e.name))}),(0,l.jsx)(o,{type:`submit`,variant:`primary`,label:I,disabled:x})]}):null,D.map(e=>(0,l.jsx)(h,{provider:e,challenge:C,pending:x,fire:N},e.id)),O.map(e=>(0,l.jsx)(g,{provider:e,challenge:C,pending:x,fire:N},e.id)),(0,l.jsxs)(`div`,{className:`porta-form__footer`,children:[(0,l.jsxs)(`span`,{children:[x?(0,l.jsx)(`span`,{className:`porta-form__pending`,children:`Working…`}):null,S?(0,l.jsx)(`span`,{className:`porta-form__error`,children:S}):null]}),(0,l.jsxs)(`div`,{className:`porta-form__aux`,children:[u?(0,l.jsx)(`button`,{type:`button`,onClick:_,children:b(`auth/forgotPassword`,`Forgot password?`)}):null,t?(0,l.jsx)(`button`,{type:`button`,onClick:m,children:b(`auth/createAccount`,`Create account`)}):null]})]})]})}function h({provider:e,challenge:t,pending:n,fire:i}){let{t:a}=r(`auth`),s=d(e.label,e.id),u=t?.providerId===e.id,f=e.otp?.digits??6,[p,m]=(0,c.useState)(``),[h,g]=(0,c.useState)(``);return(0,l.jsxs)(`div`,{className:`porta-form__two-step`,children:[(0,l.jsxs)(`span`,{className:`porta-form__two-step-label`,children:[e.icon?`${e.icon} `:``,s]}),u?(0,l.jsxs)(`div`,{className:`porta-form__two-step-row`,children:[(0,l.jsx)(_,{digits:f,value:h,onChange:g}),(0,l.jsx)(o,{label:`Verify`,variant:`primary`,disabled:n||h.length!==f,onClick:()=>i(`sigillum.verifyOtp`,{providerId:e.id,code:h})})]}):(0,l.jsxs)(`div`,{className:`porta-form__two-step-row`,children:[(0,l.jsxs)(`label`,{className:`oo-field`,children:[(0,l.jsx)(`span`,{className:`oo-field__label`,children:e.otp?.channel===`sms`?a(`phoneLabel`,`Phone number`):a(`emailLabel`,`Email address`)}),(0,l.jsx)(`input`,{className:`oo-input`,type:e.otp?.channel===`sms`?`tel`:`email`,value:p,placeholder:e.otp?.channel===`sms`?`+1 555 …`:`you@example.com`,onChange:e=>m(e.currentTarget.value)})]}),(0,l.jsx)(o,{label:e.otp?.sendLabel??a(`sendCode`,`Send code`),disabled:n||!p,onClick:()=>i(`sigillum.requestOtp`,{providerId:e.id,value:p})})]})]})}function g({provider:e,challenge:t,pending:n,fire:i}){let{t:a}=r(`auth`),s=d(e.label,e.id),u=t?.providerId===e.id,[f,p]=(0,c.useState)(``);return(0,l.jsxs)(`div`,{className:`porta-form__two-step`,children:[(0,l.jsxs)(`span`,{className:`porta-form__two-step-label`,children:[e.icon?`${e.icon} `:``,s]}),u?(0,l.jsxs)(`span`,{className:`porta-form__pending`,children:[`Check your `,e.magicLink?.channel??`inbox`,` for the link.`]}):(0,l.jsxs)(`div`,{className:`porta-form__two-step-row`,children:[(0,l.jsxs)(`label`,{className:`oo-field`,children:[(0,l.jsx)(`span`,{className:`oo-field__label`,children:e.magicLink?.channel===`sms`?a(`phoneLabel`,`Phone number`):a(`emailLabel`,`Email address`)}),(0,l.jsx)(`input`,{className:`oo-input`,type:e.magicLink?.channel===`sms`?`tel`:`email`,value:f,placeholder:e.magicLink?.channel===`sms`?`+1 555 …`:`you@example.com`,onChange:e=>p(e.currentTarget.value)})]}),(0,l.jsx)(o,{label:e.magicLink?.sendLabel??a(`sendLink`,`Send link`),disabled:n||!f,onClick:()=>i(`sigillum.requestOtp`,{providerId:e.id,value:f})})]})]})}function _({digits:e,value:t,onChange:n}){let r=(0,c.useRef)([]);(0,c.useEffect)(()=>{r.current=r.current.slice(0,e)},[e]);let i=t.padEnd(e,` `).slice(0,e).split(``);function a(t,a){let o=i.slice();o[t]=a.slice(-1)||` `,n(o.join(``).trimEnd()),a&&t+1<e&&r.current[t+1]?.focus()}return(0,l.jsx)(`div`,{className:`porta-form__otp-digits`,children:Array.from({length:e}).map((e,t)=>(0,l.jsx)(`input`,{ref:e=>{r.current[t]=e},className:`porta-form__otp-digit`,inputMode:`numeric`,maxLength:1,value:i[t]?.trim()??``,onChange:e=>a(t,e.currentTarget.value),onKeyDown:e=>{e.key===`Backspace`&&!i[t]?.trim()&&t>0&&r.current[t-1]?.focus()}},t))})}export{m as LoginForm,m as default};
|
|
@@ -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"./Spinner-CBEPv0eM.js";import{t as i}from"./Markdown-_Awuh7Ku.js";import{t as a}from"./Alert-BhdRA0LL.js";import{r as o,t as s}from"./clicks-Doh5a3f9.js";import{n as c,t as l}from"./text-D_lQQGN1.js";import{t as u}from"./PageAlert-B8ulCXV4.js";import{n as d}from"./media-Da9OmSvb.js";var f=e();function p({src:e,alt:t,base:n}){let r=/^(https?|data):/i.test(e)?null:o(e,n),i=d(r?.uri);return r===null?(0,f.jsx)(`img`,{src:e,alt:t}):i!==null&&`url`in i?(0,f.jsx)(`img`,{src:i.url,alt:t}):(0,f.jsx)(`span`,{className:`web-md__image`,title:r.uri,"data-state":i===null?`reading`:`missing`,children:t})}var m=e=>(t,n)=>(0,f.jsx)(p,{src:t,alt:n,base:e}),h=e=>e.replace(/\/[^/]*$/,``);function g({uri:e}){let o=n(),{t:d}=t(),p=c(e);if(e===void 0)return(0,f.jsx)(u,{tone:`warning`,message:d(`files/noFile`)});let g=(0,f.jsx)(l,{uri:e});return p===null?(0,f.jsxs)(`div`,{className:`web-file`,children:[g,(0,f.jsx)(r,{label:d(`files/reading`)})]}):`error`in p?(0,f.jsxs)(`div`,{className:`web-file`,children:[g,(0,f.jsx)(a,{tone:`danger`,title:d(`files/notReadable`),message:p.error})]}):p.text===null?(0,f.jsxs)(`div`,{className:`web-file`,children:[g,(0,f.jsx)(`p`,{className:`web-note`,children:d(`files/notText`)})]}):(0,f.jsxs)(`div`,{className:`web-file`,children:[g,(0,f.jsx)(`div`,{className:`web-file__body`,children:(0,f.jsx)(`div`,{className:`web-file__doc web-md`,onClick:s(o,h(e)),children:(0,f.jsx)(i,{text:p.text,image:m(h(e))})})})]})}export{g as default};
|
|
@@ -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}from"./mount-context-DZgEFVFG.js";import{r as a}from"./Icon-CIQ7doud.js";var o=e({Modal:()=>l}),s=t(),c=n();function l({open:e,defaultOpen:t,title:n,child:o,children:l,onClose:u,dismissable:d=!0}){let{t:f}=r(),p=i(`open`),[m,h]=(0,c.useState)(e??t??!1);(0,c.useEffect)(()=>{e!==void 0&&h(t=>t===e?t:e)},[e]);function g(){d&&(h(!1),p(!1),u?.())}if(!m)return null;let _=o??l;return(0,s.jsx)(`div`,{onClick:g,style:{position:`fixed`,inset:0,background:`rgba(0,0,0,0.4)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:2e3},children:(0,s.jsxs)(`div`,{onClick:e=>e.stopPropagation(),style:{background:`var(--oo-color-canvas, #fff)`,color:`inherit`,border:`1px solid var(--oo-color-border)`,borderRadius:`var(--oo-radius-sm, 4px)`,padding:16,minWidth:320,maxWidth:`80vw`,maxHeight:`80vh`,overflow:`auto`},children:[n?(0,s.jsxs)(`div`,{style:{fontWeight:600,marginBottom:8,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,s.jsx)(`span`,{children:n}),d?(0,s.jsx)(`button`,{type:`button`,onClick:g,style:{background:`transparent`,border:`none`,cursor:`pointer`,font:`inherit`,color:`inherit`},"aria-label":f(`common/close`,`Close`),children:a.closePanel}):null]}):null,_]})})}export{o as n,l as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{c as t}from"./useStore-BQkzWMs-.js";import{l as n}from"./useI18n-T3BwAm0z.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./useStoreLabel-BtAsVCsr.js";var a=e();function o(e,t=``){let n=r(),a=e?n.components.get(e.component.component)?.props:void 0;return i(e?.props?.title??a?.title,``,e?.dataContext)||t}function s({mount:e,fallback:t,iconClassName:n,titleClassName:o,style:s}){let c=r(),l=e?c.components.get(e.component.component)?.props:void 0,u=i(e?.props?.title??l?.title,``,e?.dataContext)||(t??``),d=e?.props?.icon??l?.icon;return(0,a.jsxs)(`span`,{title:u,style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0,...s},children:[d?(0,a.jsx)(`span`,{className:n,"aria-hidden":!0,children:d}):null,(0,a.jsx)(`span`,{className:o,style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:u})]})}function c(e,r){let i=e.components.get(r.component.component)?.props,a=r.props?.title??i?.title;if(a==null)return r.key;if(typeof a==`string`)return a;if(`t`in a)return n(a.t);let o=t(e.store,r.dataContext,a.path);return o==null?r.key:String(o)}export{c as n,o as r,s as t};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{l as r,t as i}from"./useI18n-T3BwAm0z.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./useCloseGuard-B4qJKmaF.js";import{t as s}from"./Button-_R1oktDz.js";import{a as c}from"./locales-Dnk_Y338.js";import{E as l,c as u,f as d,i as ee,j as f,v as p}from"./data-DPJ4OTLn.js";import{a as m,i as h,n as g}from"./words-T8-D0K4W.js";import{t as _}from"./emojis-DanG-8fr.js";import{i as v}from"./notify-BmjJL_fx.js";import{t as y}from"./Alert-BhdRA0LL.js";import{_ as b,a as x,c as te,d as S,f as C,g as w,h as T,i as ne,l as E,m as D,n as re,o as ie,p as ae,r as oe,s as se}from"./Composer-DHrV5Yeq.js";import{t as ce}from"./Text-MPtQvYE-.js";import{S as le,a as ue,c as O,d as de,f as fe,l as k,n as pe,p as me,r as he,s as ge,v as _e,w as A,x as j}from"./composer-commands-BOXuqfcP.js";import{a as M,f as N,h as P,p as ve,r as F,t as ye,u as I}from"./folder-path-CJJ4uFfN.js";import{j as be}from"./index-xynK_AEL.js";import{o as xe}from"./words-DF1J9CaQ.js";var L=t(),Se=50;function Ce(e,t){return/(?:^|\s)@([^\s@]*)$/.exec(e.slice(0,t))?.[1]??null}var we=e=>e.startsWith(`/`)||/^[A-Za-z]:\//.test(e);async function Te(e,t){let n=t.replace(/\\/g,`/`),r=n.lastIndexOf(`/`),i=n.slice(0,r+1),a=n.slice(r+1).toLowerCase(),o=we(i)?h(i):i.split(`/`).filter(e=>e!==``).reduce(N,e),s=g(o).replace(/\/+$/,``),c=await f(`resourceList`,{channel:d,uri:o});return ve(c.entries).filter(e=>e.name.toLowerCase().startsWith(a)).slice(0,Se).map(e=>{let t=`${s}/${e.name}`;if(e.type===`directory`)return{title:`${e.name}/`,insert:`@${t}/`,folder:!0};let n=`@${t}`;return{title:e.name,insert:n,folder:!1,attachment:A(j(N(o,e.name),!1),n)}})}var R=be();function z(e,t,n,r=8){let i=n==null?null:I(n),a=new Map;for(let t of e){let e=t.workingDirectories?.[0];if(e===void 0||e===``)continue;let n=I(e);a.set(n,(a.get(n)??0)+1)}let o=[...a].sort((e,t)=>t[1]-e[1]);for(let e of t)a.has(I(e))||o.push([I(e),0]);return o.filter(([e])=>e!==i).slice(0,r).map(([e,t])=>({path:g(e),sessions:t}))}var B=e(),V=e=>`${e.replace(/[\\/]+$/,``)}/`,H=e=>/^([A-Za-z]:)?\/$/.test(e)?e:e.replace(/[\\/]+$/,``);function Ee({value:e,onChange:t}){let{t:n}=i(),[r,a]=(0,L.useState)(!1),o=(0,L.useRef)(null),s=(0,L.useRef)(null);return(0,B.jsxs)(`span`,{ref:o,className:`web-chip web-chip--text web-folder-pill`,title:n(`sessions/folder/hint`),children:[(0,B.jsx)(`button`,{type:`button`,className:`web-folder-pill__mark`,"aria-label":n(`sessions/folder/choose`),"aria-haspopup":`listbox`,"aria-expanded":r,onClick:()=>a(e=>!e),children:_.folder}),(0,B.jsx)(`input`,{ref:s,"aria-label":n(`sessions/folder/label`),value:e,placeholder:`/path/to/project`,spellCheck:!1,onChange:e=>t(e.currentTarget.value)}),r&&o.current!==null?(0,B.jsx)(U,{anchor:o.current,current:e,onPick:e=>{t(e),a(!1),s.current?.focus()},onClose:()=>{a(!1),s.current?.focus()}}):null]})}function U({anchor:e,current:t,onPick:r,onClose:a}){let{t:o}=i(),s=n(u),l=n(M),d=n(ee),f=H(t.trim()),[p,m]=(0,L.useState)(()=>f===``?null:F(V(f))??V(f)),[h,v]=(0,L.useState)(`loading`),[y,b]=(0,L.useState)(0),[x,te]=(0,L.useState)(null),S=(0,L.useRef)(null);(0,L.useEffect)(()=>{if(p===null)return;let e=!0;return v(`loading`),ye(p).then(t=>{e&&v(t)}).catch(()=>{e&&v(`failed`)}),()=>{e=!1}},[p]);let C=d==null?null:g(d).replace(/\/+$/,``),w=(0,L.useMemo)(()=>z(s??[],l??[],d),[s,l,d]),T=(0,L.useMemo)(()=>{let e=[];if(p!==null){let t=F(p);if(t!==null&&e.push({kind:`up`,path:H(t),label:H(t)}),Array.isArray(h))for(let t of h)e.push({kind:`here`,path:`${p}${t}`,label:t})}return C!==null&&e.push({kind:`host`,path:C,label:C,heading:o(`sessions/folder/host`)}),w.forEach((t,n)=>e.push({kind:`used`,path:t.path,label:t.path,sessions:t.sessions,...n===0?{heading:o(`sessions/folder/used`)}:{}})),e},[p,h,C,w,o]);(0,L.useEffect)(()=>{let e=T.findIndex(e=>e.kind===`here`&&e.path===f);b(e===-1?0:e)},[T,f]),(0,L.useEffect)(()=>{S.current?.querySelector(`[aria-selected="true"]`)?.scrollIntoView({block:`nearest`})},[y]),(0,L.useLayoutEffect)(()=>{let t=()=>{let t=e.getBoundingClientRect();te({left:t.left,bottom:window.innerHeight-t.top+4,maxHeight:Math.max(120,Math.min(360,t.top-12))})};return t(),window.addEventListener(`resize`,t),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,t),window.removeEventListener(`scroll`,t,!0)}},[e]);let ne=x!==null;(0,L.useEffect)(()=>{ne&&S.current?.focus()},[ne]),(0,L.useEffect)(()=>{let t=t=>{let n=t.target;!S.current?.contains(n)&&!e.contains(n)&&a()};return document.addEventListener(`mousedown`,t),()=>document.removeEventListener(`mousedown`,t)},[e,a]);let E=e=>m(V(e.path)),D=e=>e.kind===`up`?E(e):r(e.path);return(0,R.createPortal)((0,B.jsxs)(`div`,{ref:S,className:`web-folder-menu`,role:`listbox`,"aria-label":o(`sessions/folder/list`),tabIndex:-1,style:x===null?{visibility:`hidden`}:{left:x.left,bottom:x.bottom,maxHeight:x.maxHeight},onKeyDown:e=>{let t=T[y];if(e.key===`Escape`)a();else if(e.key===`ArrowDown`)b(e=>Math.min(T.length-1,e+1));else if(e.key===`ArrowUp`)b(e=>Math.max(0,e-1));else if(e.key===`ArrowRight`&&t!==void 0&&t.kind!==`up`)E(t);else if(e.key===`ArrowLeft`&&p!==null&&F(p)!==null)m(F(p));else if(e.key===`Enter`&&t!==void 0)D(t);else return;e.preventDefault(),e.stopPropagation()},children:[p!==null&&h===`loading`?(0,B.jsx)(`div`,{className:`web-folder-menu__note`,children:o(`sessions/folder/reading`,{path:H(p)})}):null,p!==null&&h===`failed`?(0,B.jsx)(`div`,{className:`web-folder-menu__note`,children:o(`sessions/folder/unreadable`,{path:H(p)})}):null,(0,B.jsx)(`div`,{className:`web-folder-menu__list`,children:T.map((e,t)=>e.kind===`up`||e.kind===`here`?re(e,t):null)}),T.map((e,t)=>e.kind===`host`||e.kind===`used`?re(e,t):null)]}),document.body);function re(e,t){return(0,B.jsxs)(`div`,{children:[e.heading===void 0?null:(0,B.jsx)(`div`,{className:`web-folder-menu__heading`,children:e.heading}),(0,B.jsxs)(`div`,{role:`option`,className:`web-folder-menu__line`,"data-kind":e.kind,"data-current":e.path===f?`true`:void 0,"aria-selected":t===y,title:e.kind===`here`?e.path:void 0,onMouseEnter:()=>b(t),onClick:()=>D(e),children:[(0,B.jsx)(`span`,{className:`web-folder-menu__mark`,"aria-hidden":`true`,children:e.kind===`up`?`↑`:_.folder}),(0,B.jsx)(`span`,{className:`web-folder-menu__label`,children:e.label}),e.sessions===void 0||e.sessions===0?null:(0,B.jsx)(`span`,{className:`web-folder-menu__count`,title:c(`sessions/folder/sessions`,e.sessions),children:e.sessions}),e.kind===`up`?null:(0,B.jsx)(`button`,{type:`button`,className:`web-folder-menu__walk`,"aria-label":o(`sessions/folder/open`,{name:e.label}),tabIndex:-1,onClick:t=>{t.stopPropagation(),E(e)},children:_.caretRight})]})]},`${e.kind}:${e.path}`)}}var W=[{keys:`/`,message:`sessions/tips/slash`,needsCommands:!0},{keys:`@`,message:`sessions/tips/mention`},{keys:`+`,message:`sessions/tips/add`},{keys:`Enter`,message:`sessions/tips/enter`},{keys:`Shift+Enter`,message:`sessions/tips/shiftEnter`}],De=e=>W.filter(t=>e||t.needsCommands!==!0),Oe=(e,t)=>e[t%e.length],ke=`ahpd-web.new-tip`;function Ae(){try{let e=Number(window.localStorage.getItem(ke));return Number.isInteger(e)&&e>=0?e:0}catch{return 0}}function je(e){try{window.localStorage.setItem(ke,String(e))}catch{}}var G=P(`ahpd-web.new-tray`);function Me(){try{return window.localStorage.getItem(G)!==`closed`}catch{return!0}}function Ne(e){try{window.localStorage.setItem(G,e?`open`:`closed`)}catch{}}var Pe=[`/`,`@`],Fe=ue(`session:new`),Ie=`session:new`,Le=300,Re=`ahp.new.agent`;function ze({option:e,set:t,open:n}){let{t:r}=i(),{key:a,schema:o,value:s}=e,c=o.title||a,l=o.description===void 0?{}:{title:o.description};if(k(o))return(0,B.jsx)(T,{...D(e),...l,...o.type===`boolean`?{on:(s??o.default)===!0}:{},onOpen:()=>n(ge(a))});if(o.type===`string`||o.type===`number`){let e=s??o.default;return(0,B.jsx)(w,{label:c,...l,value:e==null?``:String(e),onChange:e=>t(o.type===`string`?e:e===``?void 0:Number(e))})}return fe(e)?(0,B.jsx)(T,{label:r(`sessions/pills/setting`,{name:c,value:O(e)}),...l}):null}function K({provider:e}){let t=a(),{t:c}=i(),u=n(`$/ahp/agents`)??[],w=n(ee),[D,ue]=(0,L.useState)(e??``),[O,fe]=(0,L.useState)(``),[k,ge]=(0,L.useState)(``),[A,j]=(0,L.useState)(``),[M,N]=(0,L.useState)({}),[P,ve]=(0,L.useState)(null),[F,ye]=(0,L.useState)({}),[I,be]=(0,L.useState)(!1),[Se,we]=(0,L.useState)(null),[R,z]=(0,L.useState)(null),[V,H]=(0,L.useState)([]),U=(0,L.useRef)(null);o(()=>A.trim()!==``||V.length>0?c(`sessions/new/unsent`):null),(0,L.useEffect)(()=>{D===``&&u[0]!==void 0&&ue(u[0].provider)},[u,D]),(0,L.useEffect)(()=>{O===``&&w!=null&&fe(g(w))},[w,O]),(0,L.useEffect)(()=>re(U.current),[A]);let W=O.trim()===``?void 0:h(O),ke=JSON.stringify([D,W,M]);(0,L.useEffect)(()=>{if(D===``)return;let e=!0,t=window.setTimeout(()=>{f(`resolveSessionConfig`,{channel:d,provider:D,...W===void 0?{}:{workingDirectory:W},config:M}).then(t=>{if(!e)return;let n=t;ve({schema:n.schema.properties,values:n.values})}).catch(()=>{e&&ve(null)})},Le);return()=>{e=!1,window.clearTimeout(t)}},[ke]);let G=Object.entries(P?.schema??{}).filter(([,e])=>e.enumDynamic===!0).map(([e])=>e).join(`
|
|
2
|
+
`);(0,L.useEffect)(()=>{if(G===``)return;let e=!0;for(let t of G.split(`
|
|
3
|
+
`))f(`sessionConfigCompletions`,{channel:d,provider:D,...W===void 0?{}:{workingDirectory:W},config:M,property:t}).then(n=>{let r=n.items;e&&ye(e=>({...e,[t]:r.map(e=>({value:e.value,label:e.label}))}))}).catch(()=>void 0);return()=>{e=!1}},[G,D,W]);let K=u.find(e=>e.provider===D),Be=(0,L.useMemo)(()=>x(xe(K?.customizations)),[K]),[Ve]=(0,L.useState)(Ae);(0,L.useEffect)(()=>je(Ve+1),[Ve]);let He=Oe(De(Be.length>0),Ve),[Ue,We]=(0,L.useState)(Me),Ge=e=>{We(e),Ne(e)},Ke=O.replace(/[\/]+$/,``).split(/[\/]/).pop()??``;(0,L.useEffect)(()=>{let e=ie(t,Ie,Be,pe);return()=>e.dispose()},[t,Be]);let q=(0,L.useCallback)(e=>{z(e),requestAnimationFrame(()=>{let t=U.current;t!==null&&(t.focus(),t.setSelectionRange(e,e))})},[]),J=(0,L.useCallback)(e=>{H(t=>t.some(t=>le(t,e))?t:[...t,e])},[]),qe=(0,L.useRef)(null),Je=(0,L.useCallback)(async e=>{let t=await _e(Array.from(e??[]));for(let e of t.attached)J(e);t.refused.length>0&&v(c(`sessions/upload/notAttached`),{description:c(`sessions/upload/refused`,{names:t.refused.join(`, `)})})},[J,c]),Y=(0,L.useRef)(A);Y.current=A;let Ye=(0,L.useRef)(R);Ye.current=R;let Xe=(0,L.useCallback)(e=>{let t=Ye.current??Y.current.length,n=Y.current.slice(0,t),r=n===``||/\s$/.test(n)?``:` `;j(`${n}${r}${e}${Y.current.slice(t)}`),q(n.length+r.length+e.length)},[q]),X=se({attach:J,insert:Xe,upload:e=>void Je(e)}),Ze=(0,L.useCallback)(async()=>{let e=Ce(Y.current,Ye.current??Y.current.length);if(e===null||W===void 0)return[];try{return(await Te(W,e)).map(e=>({title:e.title,onSelect:t=>{if(e.folder){t.replaceActiveToken(e.insert);return}t.replaceActiveToken(`${e.insert} `),e.attachment!==void 0&&J(e.attachment)}}))}catch{return[]}},[W,J]),[Qe,$e]=(0,L.useState)(!1),Z=b({input:A,setInput:j,caretIndex:R,panelDataContext:Fe,slashSlot:pe,prefixes:Pe,mentionProvider:Ze,onCaretChange:q}),et=(0,L.useMemo)(()=>Object.entries(P?.schema??{}).filter(([e,t])=>t.readOnly!==!0&&e!==`model`),[P]),tt=P?.schema.model,nt=(0,L.useMemo)(()=>tt===void 0?(K?.models??[]).map(e=>({id:e.id,name:e.name})):(F.model??(tt.enum??[]).map((e,t)=>({value:String(e),label:tt.enumLabels?.[t]??String(e)}))).map(e=>({id:e.value,name:e.label})),[tt,F,K]),rt=nt.find(e=>e.id===k)?.name??k,it=S(K?.models.find(e=>e.id===k),void 0),at=e=>(0,B.jsx)(ze,{option:e,set:t=>N(n=>({...n,[e.key]:t})),open:ct},e.key),Q=(0,L.useMemo)(()=>et.map(([e,t])=>{let n=F[e];return{key:e,schema:n===void 0?t:{...t,enum:n.map(e=>e.value),enumLabels:n.map(e=>e.label)},value:M[e]??P?.values[e]}}),[et,F,M,P]),ot=Q.map(e=>e.key).join(`
|
|
4
|
+
`);(0,L.useEffect)(()=>{let e=de(t,Q);return()=>e.dispose()},[t,ot]);let st=(0,L.useCallback)(e=>{ue(e),ge(``),N({}),ye({})},[]),$=(0,L.useRef)({attach:J,upload:Je,focusCaret:q,models:nt,model:k,options:Q,pickAgent:st,agents:u,provider:D});$.current={attach:J,upload:Je,focusCaret:q,models:nt,model:k,options:Q,pickAgent:st,agents:u,provider:D},(0,L.useEffect)(()=>t.commands.register({id:Re,title:()=>r(`sessions/new/agent`),description:()=>r(`sessions/new/agentHint`),category:`Session`,shortcut:`/agent`,slots:[pe],run:e=>{let t=$.current;e.host?.pushList({title:r(`sessions/new/agent`),sentinel:`/agent`,items:t.agents.map(e=>({title:e.displayName,active:e.provider===t.provider,onSelect:n=>{t.pickAgent(e.provider),n.closeMenu()}}))})}}).dispose,[t]),(0,L.useEffect)(()=>he(Fe,{models:()=>$.current.models,model:()=>$.current.model===``?void 0:$.current.model,setModel:e=>ge(e??``),options:()=>$.current.options,setOption:(e,t)=>N(n=>({...n,[e]:t})),running:()=>!1,stop:()=>void 0,session:()=>``,attach:e=>$.current.attach(e),type:e=>{let t=me(Y.current,Ye.current??Y.current.length,e);j(t.text),$.current.focusCaret(t.caret)},upload:()=>qe.current?.click(),changed:()=>[]}),[]);function ct(e){let t=Z.openCommand(e);q(t??U.current?.value.length??A.length)}let lt=async()=>{if(D===``)return;be(!0),we(null);let e=`${D}:/${m()}`,n=A.trim(),{model:r,...i}=M;try{if(await f(`createSession`,{channel:e,provider:D,...W===void 0?{}:{workingDirectories:[W]},...Object.keys(i).length===0?{}:{config:i}}),await t.commands.execute(`ahp.openSession`,{resource:e}),t.surfaces.close(`session:new`),n!==``||V.length>0){let t=(await l(e))?.defaultChat;if(t!==void 0){let e=oe(n,k===``?void 0:k,V);p(t,{type:`chat/turnStarted`,turnId:m(),startedAt:new Date().toISOString(),message:e})}}}catch(e){we(e instanceof Error?e.message:String(e))}finally{be(!1)}};if(u.length===0)return(0,B.jsx)(y,{tone:`warning`,message:c(`sessions/new/noAgent`)});let ut=c(`sessions/new/agentPill`,{name:K?.displayName??D});return(0,B.jsxs)(`div`,{className:`web-new`,children:[(0,B.jsx)(ce,{variant:`h2`,text:c(`sessions/commands/newSession`)}),K?.description===void 0||K.description===``?null:(0,B.jsx)(`p`,{className:`web-note`,children:K.description}),(0,B.jsxs)(`div`,{className:`web-composer web-new__composer`,children:[Z.pickerNode===null||Qe?null:(0,B.jsx)(`div`,{className:`web-composer__picker`,children:Z.pickerNode}),Ue?(0,B.jsxs)(`div`,{className:`web-composer__where web-new__tray`,children:[(0,B.jsx)(T,{label:ut,title:c(`sessions/new/agentHint`),onOpen:()=>ct(Re)}),(0,B.jsx)(Ee,{value:O,onChange:fe}),(0,B.jsx)(`button`,{type:`button`,className:`web-new__tray-fold`,"aria-expanded":!0,"aria-label":c(`sessions/new/fold`),title:c(`sessions/new/fold`),onClick:()=>Ge(!1),children:_.caretDown})]}):(0,B.jsx)(`div`,{className:`web-composer__where web-new__tray`,children:(0,B.jsxs)(`button`,{type:`button`,className:`web-chip web-new__tray-head`,"aria-expanded":!1,title:c(`sessions/new/unfold`),onClick:()=>Ge(!0),children:[(0,B.jsx)(`span`,{"aria-hidden":`true`,children:_.caretRight}),ut,Ke===``?null:` · ${Ke}`]})}),(0,B.jsxs)(`div`,{className:`web-composer__box`,"data-drop":X.dropping??void 0,onDragOver:X.onDragOver,onDragLeave:X.onDragLeave,onDrop:X.onDrop,onPaste:X.onPaste,children:[(0,B.jsx)(E,{attachments:V,folder:W,onRemove:e=>H(t=>t.filter((t,n)=>n!==e))}),(0,B.jsx)(`div`,{className:`web-composer__bar`,children:(0,B.jsx)(`textarea`,{ref:U,className:`web-composer__text`,rows:3,value:A,"aria-label":c(`sessions/new/firstMessage`),placeholder:c(`sessions/composer/placeholder`),onChange:e=>{j(e.currentTarget.value),z(e.currentTarget.selectionStart)},onFocus:()=>t.store.set(ne,Ie),onKeyUp:e=>z(e.currentTarget.selectionStart),onClick:e=>z(e.currentTarget.selectionStart),onKeyDown:e=>{Z.handleMenuKeyDown(e)||e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),lt())}})}),(0,B.jsxs)(`div`,{className:`web-composer__foot`,children:[(0,B.jsx)(te,{path:Fe,onOpenChange:$e}),(0,B.jsx)(`input`,{ref:qe,type:`file`,multiple:!0,hidden:!0,onChange:e=>{Je(e.currentTarget.files),e.currentTarget.value=``}}),(0,B.jsxs)(`div`,{className:`web-composer__chips web-composer__chips--left`,children:[Q.filter(e=>C(e)===`left`).map(at),P===null&&D!==``?(0,B.jsx)(T,{label:c(`sessions/new/readingSettings`)}):null]}),(0,B.jsxs)(`div`,{className:`web-composer__chips web-composer__chips--right`,children:[nt.length===0?null:(0,B.jsx)(T,{...ae(rt===``?c(`sessions/values/default`):rt),title:c(`sessions/new/modelHint`),onOpen:()=>ct(`ahp.composer.model`)}),Q.filter(e=>C(e)===`right`).map(at),it===null?null:(0,B.jsx)(`span`,{className:`web-composer__context`,title:it.title,children:it.text})]}),(0,B.jsx)(s,{label:I?c(`sessions/new/starting`):A.trim()===``&&V.length===0?c(`sessions/new/create`):c(`sessions/new/start`),variant:`primary`,size:`sm`,title:c(`sessions/new/startHint`),disabled:I||D===``,onClick:()=>void lt()})]})]})]}),(0,B.jsxs)(`p`,{className:`web-new__tip`,children:[(0,B.jsx)(`kbd`,{children:He.keys}),` `,c(He.message)]}),Se===null?null:(0,B.jsx)(y,{tone:`danger`,title:c(`sessions/new/notCreated`),message:Se})]})}export{K as default};
|
|
@@ -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"./Tree-BvNPcfhW.js";import{D as i,E as a,O as o}from"./index-xynK_AEL.js";var s=e();function c({mount:e}){let t=n(),r=a(e.props?.title??t.components.get(e.component.component)?.props?.title);return(0,s.jsx)(`span`,{title:r,children:r||e.key})}function l(){let e=n(),{t:a}=t(),l=i(`main`),u=o().surfaces.main?.activeContainerKey??null,d=l.map(t=>{let n=t.props?.icon??e.components.get(t.component.component)?.props?.icon;return{key:t.key,label:(0,s.jsx)(c,{mount:t}),...n===void 0?{}:{icon:n},data:t,trailing:(0,s.jsx)(`button`,{type:`button`,className:`web-open-editors__close`,title:a(`folders/openEditors/close`),"aria-label":a(`folders/openEditors/close`),onClick:n=>{n.stopPropagation(),e.surfaces.requestClose(t.key)},children:`✕`})}});return(0,s.jsx)(r,{nodes:d,selectedKey:u,onSelect:t=>e.surfaces.focus(t.key),emptyState:(0,s.jsx)(`p`,{className:`web-note web-explorer__empty`,children:a(`folders/openEditors/empty`)})})}export{l 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"./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-Dnk_Y338.js";import{d as c,j as l,n as u,nt as d}from"./data-DPJ4OTLn.js";import{n as f,t as p}from"./words-T8-D0K4W.js";import{t as m}from"./Badge-BDEW5PFb.js";import{t as h}from"./Spinner-CBEPv0eM.js";import{t as g}from"./Markdown-_Awuh7Ku.js";import{t as _}from"./Alert-BhdRA0LL.js";import{t as v}from"./Text-MPtQvYE-.js";import{t as y}from"./DetailList-Yalgw0YM.js";import{_ as b,d as x,g as S,h as C,v as w,y as T}from"./index-xynK_AEL.js";import{r as E}from"./turn-z1TPlA5Q.js";import{t as D}from"./PageAlert-B8ulCXV4.js";import{t as O}from"./channel-C6Ss9Aem.js";import{a as k,i as A,r as j,t as M}from"./actions-CIzLn0YN.js";var N=t(),P=e(),F={running:`info`,failed:`danger`,on:`success`,off:`default`},I={pending:`default`,running:`info`,completed:`success`,failed:`danger`,cancelled:`default`};function L(e){let t=e;if(String(t.kind)!==`trigger`)return r(`automations/origin/byHand`);let n=t.catchUp===!0?`catchUp`:`scheduled`;return t.scheduledFor===void 0?r(`automations/origin/${n}`):r(`automations/origin/${n}For`,{time:w(t.scheduledFor)})}var R=e=>(0,P.jsx)(`span`,{className:`web-lines`,children:e.map((e,t)=>(0,P.jsx)(`span`,{children:e},t))});function z(e){let{definition:t}=e,n=t.session,i=n.workingDirectories??[],a=t.triggers.filter(e=>`schedule`in e),o=t.triggers.filter(e=>!(`schedule`in e)),c=(t.disableConditions??[]).map(e=>`max`in e?s(`automations/facts/afterRuns`,e.max):r(`automations/facts/afterDate`,{date:w(e.date)})),l=[{label:r(`automations/facts/agent`),value:n.provider??r(`automations/defaults/host`)},{label:r(`automations/facts/model`),value:n.model?.id??r(`automations/defaults/agent`)}];i.length>0&&l.push({label:r(`automations/facts/folder`),value:R(i.map(f))}),n.config!==void 0&&Object.keys(n.config).length>0&&l.push({label:r(`automations/facts/settings`),value:R(Object.entries(n.config).map(([e,t])=>`${e}: ${String(t)}`))});for(let e of a)`schedule`in e&&(l.push({label:r(`automations/facts/schedule`),value:R([x(e.schedule.expression),(0,P.jsx)(`span`,{className:`web-method`,children:`${e.schedule.expression} \u{00B7} ${e.schedule.timeZone}`},`raw`)])}),l.push({label:r(`automations/facts/missedRuns`),value:r(String(e.misfirePolicy)===`runOnce`?`automations/facts/runOnce`:`automations/facts/skipped`)}));a.length===0&&o.length===0&&l.push({label:r(`automations/facts/schedule`),value:r(`automations/facts/byHandOnly`)});for(let e of o)`schedule`in e||l.push({label:r(`automations/facts/event`),value:`${e.title}${e.events.length===0?``:`: ${e.events.map(e=>e.title).join(`, `)}`}`});return c.length>0&&l.push({label:r(`automations/facts/turnsOff`),value:R(c)}),e.nextRunAt!==void 0&&t.enabled&&l.push({label:r(`automations/facts/nextRun`),value:w(e.nextRunAt)}),l.push({label:r(`automations/facts/runs`),value:String(e.runCount??e.runs.length)}),(e.customizations?.length??0)>0&&l.push({label:r(`automations/facts/customizations`),value:String(e.customizations?.length)}),l.push({label:r(`automations/facts/created`),value:w(e.createdAt)},{label:r(`automations/facts/changed`),value:w(e.modifiedAt)}),l}function B({resource:e}){let t=a(),{t:r}=i(),{state:s,error:f}=O(c,d),x=n(u),[R,B]=(0,N.useState)(null);if(f!==null)return(0,P.jsx)(D,{tone:`danger`,title:r(`automations/notices/none`),message:f});if(s===void 0)return(0,P.jsx)(h,{label:r(`automations/notices/reading`)});let V=s.entries.find(t=>t.resource===e);if(V===void 0)return(0,P.jsx)(D,{tone:`warning`,message:r(`automations/notices/gone`)});let H=e=>V.operations.map(String).includes(e),U=b(V),W=S(V),G=e=>B(e instanceof Error?e.message:String(e));return(0,P.jsxs)(`div`,{className:`web-page`,children:[(0,P.jsxs)(`div`,{className:`web-page__head`,children:[(0,P.jsxs)(`div`,{className:`web-chat__title`,children:[(0,P.jsx)(v,{variant:`h2`,text:T(V)}),(0,P.jsx)(m,{tone:F[U],text:r(`automations/state/${U}`)})]}),(0,P.jsxs)(`div`,{className:`web-page__actions`,children:[H(`run`)?(0,P.jsx)(o,{label:r(`automations/actions/runNow`),variant:`primary`,onClick:()=>void A(V).catch(G)}):null,H(`update`)?(0,P.jsx)(o,{label:r(V.definition.enabled?`automations/actions/turnOff`:`automations/actions/turnOn`),onClick:()=>k(V,!V.definition.enabled)}):null,H(`update`)?(0,P.jsx)(o,{label:r(`automations/actions/edit`),onClick:()=>void t.commands.execute(`ahp.editAutomation`,{resource:V.resource})}):null,H(`remove`)?(0,P.jsx)(o,{label:r(`automations/actions/delete`),onClick:()=>void j(V)}):null]})]}),R===null?null:(0,P.jsx)(_,{tone:`danger`,message:R}),(0,P.jsx)(y,{items:z(V),columns:2}),(0,P.jsx)(v,{variant:`h3`,text:r(`automations/page/message`)}),(0,P.jsx)(`div`,{className:`web-automation__message`,children:(0,P.jsx)(g,{text:V.definition.message.text})}),(0,P.jsx)(v,{variant:`h3`,text:r(`automations/page/runs`)}),W.length===0?(0,P.jsx)(`p`,{className:`web-note`,children:r(`automations/page/noRuns`)}):(0,P.jsxs)(`table`,{className:`web-runs`,children:[(0,P.jsx)(`thead`,{children:(0,P.jsxs)(`tr`,{children:[(0,P.jsx)(`th`,{children:r(`automations/page/columns/status`)}),(0,P.jsx)(`th`,{children:r(`automations/page/columns/how`)}),(0,P.jsx)(`th`,{children:r(`automations/page/columns/started`)}),(0,P.jsx)(`th`,{children:r(`automations/page/columns/took`)}),(0,P.jsx)(`th`,{children:r(`automations/page/columns/tokens`)}),(0,P.jsx)(`th`,{})]})}),(0,P.jsx)(`tbody`,{children:W.map(e=>{let n=C(e),i=I[n.status],a=i===void 0?{tone:`default`,text:n.status}:{tone:i,text:r(`automations/run/${n.status}`)},s=n.status===`running`||n.status===`pending`;return(0,P.jsxs)(`tr`,{children:[(0,P.jsxs)(`td`,{children:[(0,P.jsx)(m,{tone:a.tone,text:a.text}),n.error===void 0?null:(0,P.jsx)(`div`,{className:`web-note`,children:n.error})]}),(0,P.jsx)(`td`,{children:L(e.origin)}),(0,P.jsx)(`td`,{children:w(n.at)}),(0,P.jsx)(`td`,{children:n.took===void 0?``:p(n.took)}),(0,P.jsx)(`td`,{children:n.input===void 0&&n.output===void 0?``:`\u{2191}${E(n.input??0)} \u{2193}${E(n.output??0)}`}),(0,P.jsxs)(`td`,{className:`web-runs__actions`,children:[e.primarySession===void 0?null:(0,P.jsx)(o,{label:r(`automations/page/openSession`),size:`sm`,onClick:()=>void t.commands.execute(`ahp.openSession`,{resource:e.primarySession})}),s&&x?.runCancellation!==void 0?(0,P.jsx)(o,{label:r(`automations/page/stop`),size:`sm`,onClick:()=>M(e.resource)}):null]})]},e.resource)})})]}),V.runsNextCursor===void 0?null:(0,P.jsx)(o,{label:r(`automations/page/loadOlder`),onClick:()=>void l(`fetchAutomationRuns`,{channel:c,automation:V.resource,cursor:V.runsNextCursor}).catch(G)})]})}export{B as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{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-Dnk_Y338.js";import{G as c,K as l,Y as u,Z as d,c as f,it as p,j as m,q as h,v as g}from"./data-DPJ4OTLn.js";import{n as _,o as v,t as y}from"./words-T8-D0K4W.js";import{t as b}from"./emojis-DanG-8fr.js";import{t as x}from"./Badge-BDEW5PFb.js";import{t as S}from"./Spinner-CBEPv0eM.js";import{t as C}from"./Markdown-_Awuh7Ku.js";import{t as w}from"./Alert-BhdRA0LL.js";import{t as T,u as ee}from"./Composer-DHrV5Yeq.js";import{t as te}from"./Text-MPtQvYE-.js";import{b as E,h as D,m as O,y as k}from"./composer-commands-BOXuqfcP.js";import{t as ne}from"./state-CKNqusrK.js";import{a as A,n as re,r as j,t as M}from"./turn-z1TPlA5Q.js";import{t as N}from"./CopyButton-Dqp4FT7R.js";import{n as ie,r as ae,t as oe}from"./clicks-Doh5a3f9.js";import{t as se}from"./PageAlert-B8ulCXV4.js";import{t as P}from"./channel-C6Ss9Aem.js";var F=t(),I=(0,F.createContext)(null),L={picked:[],text:``,other:!1};function R(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 z(e){return`allowFreeformInput`in e&&e.allowFreeformInput===!0}function le(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 ue(e){let t=e?.value;if(t===void 0)return L;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{...L,text:String(t.value??``)};case`boolean`:return{...L,picked:[t.value===!0?`yes`:`no`]};case`selected`:return r({...L,picked:[String(t.value)]});case`selected-many`:return r({...L,picked:Array.isArray(t.value)?t.value.map(String):[]});default:return L}}function de(e,t){let n=t?.value;if(n===void 0)return r(`sessions/question/skipped`);let i=t=>R(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 B=e(),V=new Map,fe=`The agent has a question`,pe={"single-select":`single`,"multi-select":`multi`,text:`text`,number:`number`,integer:`number`};function me(e){let t=pe[String(e.kind)],n=z(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 he({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,B.jsxs)(`div`,{className:`web-ask__options`,role:s?`group`:`radiogroup`,children:[R(e).map((e,n)=>{let r=t.picked.includes(e.id);return(0,B.jsxs)(`button`,{type:`button`,className:`web-ask__option`,role:s?`checkbox`:`radio`,"aria-checked":r,"data-on":r,onClick:()=>c(e.id),children:[(0,B.jsx)(`span`,{className:`web-ask__mark`,"data-many":s,"aria-hidden":`true`}),(0,B.jsxs)(`span`,{className:`web-ask__option-body`,children:[(0,B.jsxs)(`span`,{className:`web-ask__option-label`,children:[(0,B.jsx)(`span`,{className:`web-ask__key`,children:n+1}),e.label,e.recommended===!0?(0,B.jsx)(`span`,{className:`web-ask__tag`,children:a(`sessions/question/recommended`)}):null]}),e.description===void 0?null:(0,B.jsx)(`span`,{className:`web-ask__option-hint`,children:e.description})]})]},e.id)}),z(e)?(0,B.jsxs)(`div`,{className:`web-ask__option web-ask__other`,"data-on":t.other,children:[(0,B.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,B.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,B.jsx)(`input`,{className:`web-field`,type:`number`,autoFocus:!0,value:t.text,onChange:e=>n({...t,text:e.target.value}),onKeyDown:l}):(0,B.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 H({request:e,send:t,live:n,response:r}){let{t:a}=i(),c=e.questions??[],[l,u]=(0,F.useState)(()=>Object.fromEntries(c.map(t=>[t.id,ue(e.answers?.[t.id])]))),[d,f]=(0,F.useState)(0),[p,m]=(0,F.useState)(()=>V.get(e.id)??null),h=Object.fromEntries(c.flatMap(e=>{let t=le(e,l[e.id]??L);return t===void 0?[]:[[e.id,t]]})),g=c.filter(e=>e.required===!0&&h[e.id]===void 0),_=e.message!==void 0&&e.message!==fe?e.message:void 0,v=n=>{let r={response:n,answers:n===`accept`?h:{}};V.set(e.id,r),m(r),t({type:`chat/inputCompleted`,requestId:e.id,response:n,...n===`accept`&&Object.keys(h).length>0?{answers:h}:{}})},y=r??p?.response;if(y!==void 0||!n){let t=p?.answers??e.answers??{},i=p!==null&&r===void 0&&n;return(0,B.jsxs)(`div`,{className:`web-ask`,"data-done":`true`,children:[(0,B.jsxs)(`div`,{className:`web-ask__head`,children:[(0,B.jsx)(`span`,{className:`web-ask__title`,children:a(y===`decline`?`sessions/question/declined`:y===void 0?`sessions/question/unanswered`:`sessions/question/answered`)}),i?(0,B.jsx)(`span`,{className:`web-note`,children:a(`sessions/question/sending`)}):null]}),y===`accept`?(0,B.jsx)(`dl`,{className:`web-ask__summary`,children:c.map(e=>(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:e.title??e.message}),(0,B.jsx)(`dd`,{children:de(e,t[e.id])})]},e.id))}):null]})}let b=c[d],x=d>=c.length-1,S=b===void 0?void 0:h[b.id],w=b!==void 0&&b.required===!0&&S===void 0,T=()=>{w||(x?g.length===0&&v(`accept`):f(d+1))};return(0,B.jsxs)(`div`,{className:`web-ask`,tabIndex:-1,onKeyDown:e=>{let t=e.target;if(b===void 0||t.closest(`input, textarea`)!==null||!/^[1-9]$/.test(e.key))return;let n=R(b)[Number(e.key)-1];if(n===void 0)return;let r=l[b.id]??L,i=String(b.kind)===`multi-select`,a=i?r.picked.includes(n.id)?r.picked.filter(e=>e!==n.id):[...r.picked,n.id]:[n.id];u({...l,[b.id]:{...r,picked:a,...i?{}:{other:!1}}})},children:[(0,B.jsxs)(`div`,{className:`web-ask__head`,children:[(0,B.jsxs)(`span`,{className:`web-ask__title`,children:[(0,B.jsx)(`span`,{className:`web-ask__icon`,"aria-hidden":`true`,children:`?`}),a(_===void 0?`sessions/question/asks`:`sessions/question/asksColon`)]}),c.length>1?(0,B.jsxs)(`span`,{className:`web-ask__steps`,"aria-label":a(`sessions/question/step`,{page:d+1,total:c.length}),children:[c.map((e,t)=>(0,B.jsx)(`button`,{type:`button`,className:`web-ask__step`,"data-here":t===d,"data-done":h[e.id]!==void 0,title:e.title??e.message,onClick:()=>f(t)},e.id)),(0,B.jsx)(`span`,{className:`web-ask__count`,children:a(`sessions/question/count`,{page:d+1,total:c.length})})]}):null]}),_===void 0?null:(0,B.jsx)(`div`,{className:`web-ask__message`,children:(0,B.jsx)(C,{text:_})}),e.url===void 0?null:(0,B.jsx)(`a`,{className:`web-link`,href:e.url,target:`_blank`,rel:`noreferrer`,children:e.url}),b===void 0?null:(0,B.jsxs)(`section`,{className:`web-ask__question`,children:[b.title===void 0?null:(0,B.jsx)(`span`,{className:`web-ask__chip`,children:b.title}),(0,B.jsx)(`div`,{className:`web-ask__text-line`,children:b.message}),(0,B.jsx)(`div`,{className:`web-ask__hint`,children:me(b)}),(0,B.jsx)(he,{question:b,draft:l[b.id]??L,set:e=>u({...l,[b.id]:e}),next:T})]},b.id),(0,B.jsxs)(`div`,{className:`web-ask__actions`,children:[(0,B.jsx)(o,{label:a(`sessions/question/decline`),size:`sm`,onClick:()=>v(`decline`)}),(0,B.jsx)(`span`,{className:`web-ask__spacer`}),d>0?(0,B.jsx)(o,{label:a(`sessions/question/back`),size:`sm`,onClick:()=>f(d-1)}):null,x?(0,B.jsx)(o,{label:a(`sessions/question/answer`),variant:`primary`,size:`sm`,disabled:g.length>0,onClick:()=>v(`accept`)}):(0,B.jsx)(o,{label:a(`sessions/question/next`),variant:`primary`,size:`sm`,disabled:w,onClick:T})]}),x&&g.length>0&&!w?(0,B.jsx)(`p`,{className:`web-note`,children:s(`sessions/question/missing`,g.length)}):null]})}var ge=[`command`,`file_path`,`path`,`pattern`,`query`,`url`,`description`],_e=`ahpd.startedAt`,ve=`ahpd.durationMs`;function U(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 ye(e){let t=U(e);return t===void 0?``:typeof t==`string`?t:JSON.stringify(t,null,2)}function be(e){let t=U(e);if(typeof t!=`object`||!t)return``;let n=t;for(let e of ge){let t=n[e];if(typeof t==`string`&&t.trim()!==``)return t.trim().split(`
|
|
2
|
+
`)[0]}return``}function xe(e){let t=U(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 Se(e){let t=(e.status===`completed`||e.status===`pending-result-confirmation`?v(e.pastTenseMessage):``)||v(`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=be(e);return r===``?n:`${n} ${r}`}function W(e){let t=e._meta?.[ve];return typeof t==`number`?t:void 0}function Ce(e){let t=e._meta?.[_e];if(typeof t!=`string`)return;let n=Date.parse(t);return Number.isNaN(n)?void 0:n}var we={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 Te(e){let t=e._meta?.toolKind;if(t===`terminal`||t===`read`||t===`search`||t===`subagent`)return t;let n=we[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 Ee(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 De=e=>e.replace(/\u001b\[[0-9;?]*[ -/]*[@-~]/g,``);function Oe(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:De(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:_(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:_(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:v(e.reasonMessage)||r(`sessions/tool/${t}`)})}return n}var ke=/\[([^\]]+)\]\(([^)\s]+)\)|`([^`]+)`/g;function Ae(e,t){let n=[],r=0;for(let t of e.matchAll(ke))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 G=`pending-confirmation`,je=`pending-result-confirmation`,Me={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 Ne(){return oe(a(),(0,F.useContext)(I))}var Pe={terminal:b.terminal,read:b.read,search:b.search,edit:b.edit,subagent:b.subagent,web:b.web,other:b.dot};function Fe({line:e,file:t}){let n=a(),{t:r}=i(),o=(0,F.useContext)(I);return(0,B.jsx)(`span`,{className:`web-tool__line`,children:Ae(e,t).map((e,t)=>{let i=e.href===void 0?null:e.code===!0?ie(e.href,o):ae(e.href,o);if(i===null)return e.code===!0?(0,B.jsx)(`code`,{children:e.text},t):(0,B.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,B.jsx)(`span`,{role:`link`,tabIndex:0,className:`web-tool__ref`,title:r(`sessions/attachments/open`,{name:_(i.uri)}),onClick:a,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&a(e)},children:e.text},t)})})}function K({title:e,text:t}){return(0,B.jsxs)(`section`,{className:`web-tool__block`,children:[(0,B.jsxs)(`div`,{className:`web-tool__block-head`,children:[(0,B.jsx)(`span`,{children:e}),(0,B.jsx)(N,{text:t})]}),(0,B.jsx)(`pre`,{className:`web-tool__pre`,children:t})]})}function Ie({out:e}){let t=a(),{t:n}=i();switch(e.kind){case`text`:return(0,B.jsx)(K,{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,B.jsx)(K,{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,B.jsxs)(`p`,{className:`web-tool__file`,children:[(0,B.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,B.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,e.added]}),e.removed===void 0?null:(0,B.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,e.removed]})]});case`note`:return(0,B.jsx)(`p`,{className:`web-note`,children:e.text})}}function q({call:e,send:t,live:n,turnId:r}){let s=Ee(e),c=n&&(s===`approval`||s===`review`||s===`sign-in`),[l,u]=(0,F.useState)(!1),d=l||c,f=W(e),p=ye(e),m=Oe(e),h=e.displayName||e.toolName,g=e.status===G?e.riskAssessment:void 0,v=xe(e),b=a(),{t:x}=i(),S=x(Me[s].label);return(0,B.jsxs)(`div`,{className:`web-tool`,"data-outcome":s,children:[(0,B.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":d,title:S,onClick:()=>u(!l),children:[(0,B.jsx)(`span`,{className:`web-tool__mark`,"aria-label":S,children:Pe[Te(e)]}),(0,B.jsx)(Fe,{line:Se(e),file:v}),s===`failed`||s===`cancelled`?(0,B.jsx)(`span`,{className:`web-tool__state`,children:S}):null,f===void 0||f<1e3?null:(0,B.jsx)(`span`,{className:`web-tool__time`,children:y(f)})]}),d?(0,B.jsxs)(`div`,{className:`web-tool__body`,children:[(0,B.jsxs)(`dl`,{className:`web-tool__facts`,children:[(0,B.jsx)(`dt`,{children:x(`sessions/tool/tool`)}),(0,B.jsxs)(`dd`,{children:[(0,B.jsx)(`code`,{children:e.toolName}),h===e.toolName?null:` (${h})`]}),(0,B.jsx)(`dt`,{children:x(`sessions/tool/status`)}),(0,B.jsx)(`dd`,{children:S}),v===void 0?null:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`dt`,{children:x(`sessions/tool/file`)}),(0,B.jsx)(`dd`,{children:(0,B.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>void b.commands.execute(`ahp.openFile`,{uri:v}),children:_(v)})})]}),e.intention===void 0?null:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`dt`,{children:x(`sessions/tool/why`)}),(0,B.jsx)(`dd`,{children:e.intention})]}),g===void 0||g.status!==`complete`?null:(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`dt`,{children:x(`sessions/tool/risk`)}),(0,B.jsx)(`dd`,{children:`${x(`sessions/tool/safety`,{safety:g.safety})} \u{00B7} ${g.reason}`})]})]}),p===``?null:(0,B.jsx)(K,{title:x(`sessions/tool/arguments`),text:p}),m.map((e,t)=>(0,B.jsx)(Ie,{out:e},t)),n&&e.status===G?(0,B.jsx)(Le,{call:e,send:t,turnId:r}):null,n&&e.status===je?(0,B.jsxs)(`div`,{className:`web-tool__actions`,children:[(0,B.jsx)(o,{label:x(`sessions/tool/acceptResult`),variant:`primary`,onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:r,toolCallId:e.toolCallId,approved:!0})}),(0,B.jsx)(o,{label:x(`sessions/tool/reject`),onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:r,toolCallId:e.toolCallId,approved:!1})})]}):null]}):null]})}function J({text:e,running:t}){let{t:n}=i(),[r,a]=(0,F.useState)(!1),o=e.replace(/[*_`#>]/g,``).replace(/\s+/g,` `).trim();return(0,B.jsxs)(`div`,{className:`web-tool`,"data-outcome":t?`running`:`thought`,children:[(0,B.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":r,onClick:()=>a(!r),children:[(0,B.jsx)(`span`,{className:`web-tool__mark`,"aria-hidden":`true`,children:b.thinking}),(0,B.jsx)(`span`,{className:`web-tool__line`,children:r?n(`sessions/activity/thinking`):n(`sessions/tool/thinkingAbout`,{text:o})})]}),r?(0,B.jsx)(`div`,{className:`web-tool__body web-md`,children:(0,B.jsx)(C,{text:e})}):null]})}function Le({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}}),c=e.status===G?e.options??[]:[],l=e.status===G?v(e.confirmationTitle):``;return(0,B.jsxs)(`div`,{className:`web-tool__confirm`,children:[l===``?null:(0,B.jsx)(C,{text:l}),(0,B.jsx)(`div`,{className:`web-tool__actions`,children:c.length===0?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(o,{label:r(`sessions/tool/approve`),variant:`primary`,onClick:()=>a()}),(0,B.jsx)(o,{label:r(`sessions/tool/deny`),onClick:()=>s()})]}):c.map(e=>(0,B.jsx)(o,{label:e.label,...e.kind===`approve`?{variant:`primary`}:{},onClick:()=>e.kind===`approve`?a(e.id):s(e.id)},e.id))})]})}var Re=(0,F.memo)(function({part:e,send:t,live:n,turnId:r}){let o=Ne(),s=a(),{t:c}=i();switch(String(e.kind)){case`markdown`:return`content`in e?(0,B.jsx)(`div`,{className:`web-md`,onClick:o,children:(0,B.jsx)(C,{text:e.content})}):null;case`contentRef`:{let t=`uri`in e?String(e.uri):``;return(0,B.jsx)(`button`,{type:`button`,className:`web-chip`,onClick:()=>void s.commands.execute(`ahp.openFile`,{uri:t}),children:`${b.file} ${_(t).split(`/`).pop()??t}`})}case`reasoning`:return`content`in e&&e.content!==``?(0,B.jsx)(J,{text:e.content,running:!1}):null;case`toolCall`:return`toolCall`in e?(0,B.jsx)(q,{call:e.toolCall,send:t,live:n,turnId:r}):null;case`inputRequest`:return`request`in e?(0,B.jsx)(H,{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,B.jsx)(w,{tone:`danger`,message:`error`in e&&e.error.message!==``?e.error.message:c(`sessions/tool/agentError`)});case`systemNotification`:return(0,B.jsx)(`p`,{className:`web-note`,children:`content`in e?v(e.content):``});default:return null}}),ze=new Set([`completed`,`cancelled`]),Be=new Set([`pending-confirmation`,`pending-result-confirmation`,`auth-required`]);function Ve(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 He(e,t,n){return e.kind===`tool`?n.ended||ze.has(String(e.call.status)):!(t&&n.live)}function Y(e){return e.kind===`tool`&&Be.has(String(e.call.status))}function Ue(e){return e.kind===`tool`&&`success`in e.call&&e.call.success===!1}function We(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=Ve(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 Ge(e){let t=1/0,n=-1/0;for(let r of e){if(r.kind!==`tool`)continue;let e=Ce(r.call),i=W(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 X=(e,t)=>e===void 0||e<1e3?void 0:t(e);function Ke(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=X(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=X(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,Q=new Map;function qe(e,t){t?Z.has(e)||Z.set(e,Date.now()):Z.has(e)&&!Q.has(e)&&Q.set(e,Date.now())}function Je(e,t){let n=Z.get(e);return n===void 0?void 0:(Q.get(e)??t)-n}function Ye(e,t){if(e.kind===`reasoning`)return{what:`thinking`};let n=e.call.displayName||e.call.toolName,r=Je(e.key,t);return{what:Y(e)?`waiting`:`working`,name:n,...r===void 0?{}:{for:r}}}function Xe({group:e,send:t,turnId:n}){i();let[r,a]=(0,F.useState)(!1),[o,s]=(0,F.useState)(()=>Date.now()),c=e.steps.length-1,l=e.steps.map((t,n)=>He(t,n===c,e)),u=l.lastIndexOf(!1),d=u<0?void 0:e.steps[u];qe(e.id,e.live),e.steps.forEach((e,t)=>qe(e.key,!l[t])),(0,F.useEffect)(()=>{if(d===void 0)return;let e=window.setInterval(()=>s(Date.now()),1e3);return()=>window.clearInterval(e)},[d?.key]);let f=e.live&&e.steps.some(Y),p=r||f,m=l.filter(Boolean).length,h=d===void 0?o:Z.get(d.key),g=Z.get(e.id),_=e.live?g===void 0||h===void 0?void 0:h-g:Ge(e.steps)??Je(e.id,o)??e.turnMs,v=Ke({done:m,failed:e.steps.filter(Ue).length,..._===void 0?{}:{took:_},...d===void 0?{}:{doing:Ye(d,o)}},y);return(0,B.jsxs)(`div`,{className:`web-activity`,"data-live":d!==void 0,children:[(0,B.jsxs)(`button`,{type:`button`,className:`web-activity__line`,"aria-expanded":p,onClick:()=>a(!r),children:[(0,B.jsx)(`span`,{children:v.map((e,t)=>e.failed?(0,B.jsx)(`span`,{className:`web-activity__failed`,children:e.text},t):e.text)}),(0,B.jsx)(`span`,{className:`web-activity__chev`,"aria-hidden":`true`,children:p?b.caretDown:b.caretRight})]}),p?(0,B.jsx)(`div`,{className:`web-activity__steps`,children:e.steps.map((r,i)=>r.kind===`tool`?(0,B.jsx)(q,{call:r.call,send:t,live:!e.ended,turnId:n},r.key):(0,B.jsx)(J,{text:r.text,running:!l[i]},r.key))}):null]})}var Ze={cancelled:`sessions/turn/stopped`,error:`sessions/turn/failed`};function Qe(e){let[t,n]=(0,F.useState)(()=>Date.now());return(0,F.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(t)},[e]),t}function $e({facts:e,state:t,live:n,text:r}){let{t:a}=i(),o=Qe(n),c=n?e.startedAt===void 0?void 0:o-e.startedAt:e.duration,l=[];e.startedAt!==void 0&&l.push(A(e.startedAt)),c!==void 0&&l.push(n?a(`sessions/turn/soFar`,{time:y(c)}):y(c)),(e.input!==void 0||e.output!==void 0)&&l.push(`\u{2191}${j(e.input??0)} \u{2193}${j(e.output??0)}`),e.cacheRead!==void 0&&e.cacheRead>0&&l.push(a(`sessions/turn/cached`,{tokens:j(e.cacheRead)})),e.model!==void 0&&l.push(e.model),e.tools>0&&l.push(s(`sessions/turn/toolCalls`,e.tools));let u=t===void 0?void 0:Ze[t];return(0,B.jsxs)(`div`,{className:`web-turn__facts`,children:[n||r===``?null:(0,B.jsx)(N,{text:r,label:a(`sessions/turn/copyReply`)}),l.join(` · `),u===void 0?null:(0,B.jsx)(`span`,{className:`web-turn__ended`,"data-state":t,children:a(u)})]})}var $=[];function et({attachments:e}){let t=a(),{t:n}=i(),[r,o]=(0,F.useState)(null);return(0,B.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=D(e),c=(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:`web-attachment__icon`,children:O(e)}),(0,B.jsx)(`span`,{className:`web-attachment__label`,children:s})]});return k(e)?(0,B.jsx)(`button`,{type:`button`,className:`web-attachment`,title:n(`sessions/attachments/see`,{name:s}),onClick:()=>o(E(e)),children:c},r):a===void 0?(0,B.jsx)(`span`,{className:`web-attachment`,title:s,children:c},r):(0,B.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,B.jsx)(ee,{preview:r,onClose:()=>o(null)})]})}var tt=(0,F.memo)(function({turn:e,live:t,send:n,open:r=$}){let{t:a}=i(),o=`state`in e?String(e.state):void 0,s=e.responseParts;return(0,B.jsxs)(`article`,{className:`web-turn`,children:[(0,B.jsxs)(`div`,{className:`web-turn__ask`,children:[e.message.text,e.message.attachments===void 0||e.message.attachments.length===0?null:(0,B.jsx)(et,{attachments:e.message.attachments})]}),(0,B.jsxs)(`div`,{className:`web-turn__answer`,children:[We(s,t,M(e).duration).map(r=>r.kind===`activity`?(0,B.jsx)(Xe,{group:r,send:n,turnId:e.id},r.id):(0,B.jsx)(Re,{part:r.part,send:n,live:t,turnId:e.id},r.index)),t?r.map(e=>(0,B.jsx)(H,{request:e,send:n,live:!0,response:void 0},e.id)):null,t&&s.length===0?(0,B.jsx)(S,{label:a(`sessions/turn/working`)}):null]}),(0,B.jsx)($e,{facts:M(e),...o===void 0?{}:{state:o},live:t,text:re(e)})]})});function nt({chatUri:e,cursor:t}){let{t:n}=i(),[r,a]=(0,F.useState)(!1),[s,c]=(0,F.useState)(null);return(0,B.jsxs)(`div`,{className:`web-chat__older`,children:[(0,B.jsx)(o,{label:n(r?`sessions/chat/loading`:`sessions/chat/older`),disabled:r,onClick:()=>{a(!0),c(null),m(`fetchTurns`,{channel:e,cursor:t}).catch(e=>c(e instanceof Error?e.message:String(e))).finally(()=>a(!1))}}),s===null?null:(0,B.jsx)(`span`,{className:`web-note`,children:s})]})}function rt(e,t,n){let r=(0,F.useRef)({turn:void 0,requests:new Map});if(r.current.turn!==n?.id&&(r.current={turn:n?.id,requests:new Map}),n===void 0)return $;for(let n of e??[])String(n.kind)===`chatInput`&&n.chat===t&&`request`in n&&r.current.requests.set(n.id,n.request);let i=new Set(n.responseParts.flatMap(e=>`request`in e?[e.request.id]:[])),a=[...r.current.requests.values()].filter(e=>!i.has(e.id));return a.length===0?$:a}function it({resource:e}){let t=a(),{t:r}=i(),o=n(f)?.find(t=>t.resource===e),s=P(e,p),m=s.state?.defaultChat??o?.defaultChat,_=P(m,d),v=(0,F.useRef)(null),y=(0,F.useRef)(!0),b=(0,F.useCallback)(e=>{m!==void 0&&g(m,e)},[m]),C=_.state?.turns.length??0,ee=rt(s.state?.inputNeeded,m,_.state?.activeTurn),E=(_.state?.activeTurn?.responseParts??[]).reduce((e,t)=>e+1+(`content`in t&&typeof t.content==`string`?t.content.length:0),0);(0,F.useEffect)(()=>{y.current&&v.current?.scrollIntoView({block:`end`})},[C,E]),(0,F.useEffect)(()=>{e!==void 0&&t.store.get(`$/ahp/activeSession`)===void 0&&t.store.set(ne,e)},[t,e]);let D=o!==void 0&&!u(o.status);if((0,F.useEffect)(()=>{D&&e!==void 0&&g(e,{type:`session/isReadChanged`,isRead:!0})},[D,e,C]),o===void 0)return(0,B.jsx)(se,{tone:`warning`,message:r(`sessions/chat/gone`)});let O=h(o.status),k=String(s.state?.lifecycle??`ready`),A=_.state?.activity??o.activity;return(0,B.jsxs)(`div`,{className:`web-chat`,children:[(0,B.jsx)(`header`,{className:`web-chat__head`,children:(0,B.jsxs)(`div`,{className:`web-chat__title`,children:[(0,B.jsx)(te,{variant:`h2`,text:o.title===``?r(`sessions/untitled`):o.title}),(0,B.jsx)(x,{tone:c[O],text:l(O)}),A===void 0||A===``?null:(0,B.jsx)(`span`,{className:`web-note`,children:A})]})}),(0,B.jsxs)(`div`,{className:`web-chat__turns`,onScroll:e=>{let t=e.currentTarget;y.current=t.scrollHeight-t.scrollTop-t.clientHeight<48},children:[k===`creating`?(0,B.jsx)(S,{label:r(`sessions/chat/starting`)}):null,k===`failed`?(0,B.jsx)(w,{tone:`danger`,title:r(`sessions/chat/notStarted`),message:s.state?.creationError?.message??r(`sessions/chat/noReason`)}):null,s.error===null?null:(0,B.jsx)(w,{tone:`danger`,title:r(`sessions/chat/sessionUnreadable`),message:s.error}),_.error===null?null:(0,B.jsx)(w,{tone:`danger`,title:r(`sessions/chat/chatUnreadable`),message:_.error}),m!==void 0&&_.state===void 0&&_.error===null?(0,B.jsx)(S,{label:r(`sessions/chat/reading`)}):null,m===void 0||_.state?.turnsNextCursor===void 0?null:(0,B.jsx)(nt,{chatUri:m,cursor:_.state.turnsNextCursor}),(0,B.jsxs)(I.Provider,{value:o.workingDirectories?.[0]??null,children:[_.state?.turns.map(e=>(0,B.jsx)(tt,{turn:e,live:!1,send:b},e.id)),_.state?.activeTurn===void 0?null:(0,B.jsx)(tt,{turn:_.state.activeTurn,live:!0,send:b,open:ee})]}),_.state!==void 0&&C===0&&_.state.activeTurn===void 0?(0,B.jsx)(`p`,{className:`web-note`,children:r(`sessions/chat/empty`)}):null,(0,B.jsx)(`div`,{ref:v})]}),_.state===void 0||m===void 0?null:(0,B.jsx)(T,{chatUri:m,activeId:_.state.activeTurn?.id,activeStart:_.state.activeTurn?.startedAt,queued:_.state.queuedMessages,steering:_.state.steeringMessage,draft:_.state.draft,lastModel:_.state.turns.at(-1)?.message.model?.id,lastUsage:_.state.turns.at(-1)?.usage,config:s.state?.config,changesets:s.state?.changesets,summary:o,send:b})]})}export{it 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"./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"./data-DPJ4OTLn.js";import{t as o}from"./emojis-DanG-8fr.js";import{t as s}from"./Badge-BDEW5PFb.js";import{t as c}from"./StatusDot-CC7gdsot.js";import{t as l}from"./Spinner-CBEPv0eM.js";import{t as u}from"./Markdown-_Awuh7Ku.js";import{t as d}from"./Tree-BvNPcfhW.js";import{t as f}from"./Text-MPtQvYE-.js";import{t as p}from"./DetailList-Yalgw0YM.js";import{t as m}from"./Modal-xWzwLA8s.js";import{i as h}from"./viewers-Vk4T9IkZ.js";import{a as g,i as _,n as v,r as y,s as b,t as x}from"./words-DF1J9CaQ.js";import{t as S}from"./CopyButton-Dqp4FT7R.js";import{t as C}from"./clicks-Doh5a3f9.js";import{n as w}from"./text-D_lQQGN1.js";import{t as T}from"./PageAlert-B8ulCXV4.js";var E=t(),D=e(),O={plugin:o.plugin,directory:o.folder,mcpServer:o.mcpServer};function k(e){if(e!==void 0)return e.tone===`busy`?(0,D.jsx)(l,{size:12,label:e.text}):(0,D.jsx)(c,{tone:e.tone,label:e.text,className:`web-custom__state`})}function A({name:e,description:t,className:n}){let{t:i}=r();return(0,D.jsxs)(`span`,{className:n,onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:[(0,D.jsx)(S,{text:e,label:i(`agents/customizations/copyName`)}),t===``?null:(0,D.jsx)(S,{text:t,label:i(`agents/customizations/copyDescription`),icon:o.copyText})]})}function j(e,t){let n=k(t.state);return{key:`${e}/${t.id}`,label:(0,D.jsxs)(`span`,{className:`web-custom`,"data-enabled":t.enabled?`true`:`false`,title:t.line===``?t.label:`${t.label}: ${t.line}`,children:[(0,D.jsx)(`span`,{className:`web-custom__name`,children:t.label}),t.line===``?null:(0,D.jsx)(`span`,{className:`web-custom__line`,children:t.line}),t.flags.map(e=>(0,D.jsx)(`span`,{className:`web-custom__flag`,children:e},e)),(0,D.jsx)(A,{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 M(e){let t=k(e.state);return{key:e.id,icon:O[e.type]??o.dot,label:(0,D.jsxs)(`span`,{className:`web-custom`,"data-enabled":e.enabled?`true`:`false`,title:`${e.kind}: ${e.path}`,children:[(0,D.jsx)(`span`,{className:`web-custom__name`,children:e.name}),(0,D.jsx)(`span`,{className:`web-custom__line`,children:e.path}),e.meta.map(e=>(0,D.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=>j(e.id,t))}}}var N=e=>e.replace(/\/[^/]*$/,``);function P({uri:e}){let t=i(),{t:n}=r(),a=w(e);return a===null?(0,D.jsx)(l,{label:n(`agents/customizations/readingFile`)}):`error`in a||a.text===null?(0,D.jsx)(`p`,{className:`web-note`,children:n(`agents/customizations/unreadable`)}):(0,D.jsx)(`div`,{className:`web-md`,onClick:C(t,N(e)),children:(0,D.jsx)(u,{text:b(a.text)})})}function F({detail:e,onClose:t}){let n=i(),{t:o}=r(),s=e.open,c=s!==void 0&&(h(s.uri)===`md`||h(s.uri)===`markdown`);return(0,D.jsx)(m,{open:!0,title:e.name,onClose:t,children:(0,D.jsxs)(`div`,{className:`web-custom-detail`,children:[e.copies?(0,D.jsx)(A,{name:e.name,description:e.description,className:`web-custom-detail__copies`}):null,e.flags.length===0?null:(0,D.jsx)(`p`,{className:`web-custom-detail__flags`,children:e.flags.join(` · `)}),e.description===``?null:(0,D.jsx)(`p`,{children:e.description}),s===void 0?null:c?(0,D.jsx)(P,{uri:s.uri}):(0,D.jsx)(a,{label:o(`agents/customizations/openFile`),onClick:()=>{t(),n.commands.execute(`ahp.openFile`,{uri:s.uri,line:s.line})}})]})})}function I({items:e}){r();let[t,n]=(0,E.useState)(new Set),[i,a]=(0,E.useState)(null),[o,s]=(0,E.useState)(null);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(d,{className:`web-customs`,nodes:v(e).map(M),selectedKey:i,expanded:t,onExpandedChange:n,onSelect:e=>{if(a(e.key),e.children!==void 0){let r=new Set(t);r.delete(e.key)||r.add(e.key),n(r)}else e.data!==void 0&&s(e.data)}}),o===null?null:(0,D.jsx)(F,{detail:o,onClose:()=>s(null)})]})}var L=new Set([`disabled`,`unconfigured`]);function R({provider:e}){let t=i(),{t:o}=r(),c=n(`$/ahp/agents`)??[],l=n(`$/ahp/sessions`)??[],d=c.find(t=>t.provider===e);if(d===void 0)return(0,D.jsx)(T,{tone:`warning`,message:o(`agents/page/gone`)});let m=x(d),h=g(d),v=l.filter(e=>e.provider===d.provider).length,b=[{label:o(`agents/page/facts/provider`),value:(0,D.jsx)(`code`,{children:d.provider})},{label:o(`agents/page/facts/models`),value:_(d)},{label:o(`agents/page/facts/sessions`),value:String(v)},{label:o(`agents/page/facts/can`),value:m.length===0?o(`agents/page/oneChat`):m.join(`; `)}];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)(f,{variant:`h2`,text:d.displayName}),h.some(e=>e.required)?(0,D.jsx)(s,{tone:`warning`,text:o(`agents/page/needsSignIn`)}):null]}),(0,D.jsx)(`div`,{className:`web-page__actions`,children:(0,D.jsx)(a,{label:o(`agents/newSession`),variant:`primary`,onClick:()=>void t.commands.execute(`ahp.newSession`,{provider:d.provider})})})]}),d.description===``?null:(0,D.jsx)(u,{text:d.description}),(0,D.jsx)(p,{items:b,columns:2}),(0,D.jsx)(f,{variant:`h3`,text:o(`agents/page/models`)}),d.models.length===0?(0,D.jsx)(`p`,{className:`web-note`,children:o(`agents/page/noModels`)}):(0,D.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,D.jsx)(`thead`,{children:(0,D.jsxs)(`tr`,{children:[(0,D.jsx)(`th`,{children:o(`agents/page/columns/name`)}),(0,D.jsx)(`th`,{children:o(`agents/page/columns/id`)}),(0,D.jsx)(`th`,{children:o(`agents/page/columns/limits`)}),(0,D.jsx)(`th`,{})]})}),(0,D.jsx)(`tbody`,{children:d.models.map(e=>(0,D.jsxs)(`tr`,{children:[(0,D.jsx)(`td`,{children:e.name}),(0,D.jsx)(`td`,{children:(0,D.jsx)(`code`,{children:e.id})}),(0,D.jsx)(`td`,{children:y(e)}),(0,D.jsx)(`td`,{children:e.policyState!==void 0&&L.has(String(e.policyState))?o(`agents/page/policy/${String(e.policyState)}`):``})]},e.id))})]}),(d.customizations??[]).length===0?null:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(f,{variant:`h3`,text:o(`agents/page/customizations`)}),(0,D.jsx)(I,{items:d.customizations})]}),h.length===0?null:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(f,{variant:`h3`,text:o(`agents/page/signIn`)}),(0,D.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,D.jsx)(`thead`,{children:(0,D.jsxs)(`tr`,{children:[(0,D.jsx)(`th`,{children:o(`agents/page/columns/resource`)}),(0,D.jsx)(`th`,{children:o(`agents/page/columns/scopes`)}),(0,D.jsx)(`th`,{})]})}),(0,D.jsx)(`tbody`,{children:h.map(e=>(0,D.jsxs)(`tr`,{children:[(0,D.jsx)(`td`,{children:e.name}),(0,D.jsx)(`td`,{children:e.scopes}),(0,D.jsx)(`td`,{children:o(e.required?`agents/page/required`:`agents/page/optional`)})]},e.name))})]})]})]})}export{R 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,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./LoginForm-C83NjSZc.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-xynK_AEL.js","./surface-presentation-CT86pw6J.js","./preload-helper-BaNbYf_w.js","./sessions-CLjdYeF3.js","./label-hTY0RCEf.js","./locales-Dnk_Y338.js","./data-DPJ4OTLn.js","./emojis-DanG-8fr.js","./notify-BmjJL_fx.js","./CommandPalette-wYX5XXUP.js","./ActionList-QwhYPQiB.js","./colors-BieSUSt7.js","./ActionList-Bc-jZDaT.css","./terminal-_7S7Eyr-.js","./composer-commands-BOXuqfcP.js","./words-T8-D0K4W.js","./state-CKNqusrK.js","./grouping-DtiUUpdw.js","./TextField-DnSHrmJM.js","./_field-parts-BuPjFCuf.js","./_field-parts-DannIEUW.css","./_field-parts-CfQcSJYh.css","./DateTimeInput-x1XGuNl0.css","./state-DRVsnGrf.js","./folder-path-CJJ4uFfN.js","./viewers-Vk4T9IkZ.js","./index-BiJaGB50.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{w as a}from"./index-xynK_AEL.js";var o=t(),s=e(),c=(0,o.lazy)(()=>r(()=>import(`./LoginForm-C83NjSZc.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]),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 @@
|
|
|
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{f as i,ot as a,v as o}from"./data-DPJ4OTLn.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-C6Ss9Aem.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(){let{t:e}=n(),{state:t,error:u}=re(i,a),d=t?.config,[f,p]=(0,D.useState)({}),[m,h]=(0,D.useState)(!1),[g,_]=(0,D.useState)(!0),v=(0,D.useMemo)(()=>d?.values??{},[d]);if((0,D.useEffect)(()=>{p(v)},[v]),u!==null)return(0,$.jsx)(E,{tone:`danger`,title:e(`host/settings/unreadable`),message:u});if(t===void 0)return(0,$.jsx)(s,{label:e(`host/settings/reading`)});if(d===void 0)return(0,$.jsx)(E,{tone:`info`,message:e(`host/settings/none`)});let y=ie(v,f),b=Object.keys(y).length>0,x=()=>{o(i,{type:`root/configChanged`,config:y}),h(!0)};return(0,$.jsxs)(`div`,{className:`web-page`,children:[(0,$.jsx)(c,{variant:`h2`,text:e(`host/settings/title`)}),(0,$.jsx)(l,{schema:d.schema,value:f,onChange:e=>{p(e),h(!1)},baseline:v,jsonEditor:Ce,onJsonValidChange:_}),(0,$.jsxs)(`div`,{className:`web-page__actions`,children:[(0,$.jsx)(r,{label:e(`host/settings/save`),variant:`primary`,disabled:!b||!g,...g?{}:{title:e(`host/settings/fixJson`)},onClick:x}),(0,$.jsx)(r,{label:e(`host/settings/reset`),disabled:!b,onClick:()=>p(v)}),m&&!b?(0,$.jsx)(`span`,{className:`web-note`,children:e(`host/settings/saved`)}):null]})]})}export{we as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./useStore-BQkzWMs-.js";import{t}from"./sigillum-Bev0l9LS.js";import{
|
|
1
|
+
import{t as e}from"./useStore-BQkzWMs-.js";import{t}from"./sigillum-Bev0l9LS.js";import{w as n}from"./index-xynK_AEL.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-DYnWIBAF.js";import{n as s,r as c,t as l}from"./HeaderAction-Vq-h0k1X.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-DYnWIBAF.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-DYnWIBAF.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-DYnWIBAF.js";import{r as s}from"./Icon-CIQ7doud.js";import{t as c}from"./Divisor-hrrJK3bw.js";import{t as l}from"./HeaderAction-Vq-h0k1X.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};
|