@vantran-se/openchamber-web 1.22.1 → 1.22.2
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 +2 -3
- package/bin/cli.js +4 -1
- package/bin/cli.test.js +92 -0
- package/bin/lib/cli-startup.js +49 -0
- package/bin/lib/commands-startup.js +41 -6
- package/dist/assets/{CodeMirrorCommentWidgets-C53Q7pbX.js → CodeMirrorCommentWidgets-CV1HNV5l.js} +1 -1
- package/dist/assets/{DiffView-Dh1ey2x9.js → DiffView-DkkSa30n.js} +3 -3
- package/dist/assets/DirtyBranchSwitchDialog-DW4WaXPc.js +1 -0
- package/dist/assets/FilesView-DDu8zDy5.js +17 -0
- package/dist/assets/GitView-1Ixo8z-M.js +6 -0
- package/dist/assets/{JsonTreeView-Bl0lp9Rs.js → JsonTreeView-DvCLL7dT.js} +1 -1
- package/dist/assets/LinearIssuesView-Bs1rZrF2.js +1 -0
- package/dist/assets/{MarkdownImageGallery-bA0PS-tn.js → MarkdownImageGallery-DyJUc6h9.js} +1 -1
- package/dist/assets/MarkdownRendererImpl-Bdm8vMkS.js +12 -0
- package/dist/assets/{OnboardingScreen-D3kYJIb6.js → OnboardingScreen-Dg66B6oB.js} +1 -1
- package/dist/assets/{PatchDiff-D6NXAfJk.js → PatchDiff-CAduNjfZ.js} +1 -1
- package/dist/assets/{PierreDiffViewer-Ct2A13NO.js → PierreDiffViewer-CTIb1GYD.js} +2 -2
- package/dist/assets/PlanView-trDaszfq.js +5 -0
- package/dist/assets/SettingsView-DStMfBmy.js +28 -0
- package/dist/assets/{SettingsWindow-BiWDBRvb.js → SettingsWindow-DQQFnrSZ.js} +1 -1
- package/dist/assets/{ToolOutputDialog-BQexMQIm.js → ToolOutputDialog-SjY2XZlA.js} +6 -6
- package/dist/assets/ToolPartDiffPreview-DJdzUQPE.js +8 -0
- package/dist/assets/{VirtualizedFileDiff-Dpz2ra8h.js → VirtualizedFileDiff-Iehm4iMH.js} +1 -1
- package/dist/assets/{WalkthroughView-AX-u2pFg.js → WalkthroughView-BALp2d9O.js} +2 -2
- package/dist/assets/{computeVirtualFileMetrics-DtyozJdt.js → computeVirtualFileMetrics-BKZA43vN.js} +2 -2
- package/dist/assets/{contextPanelEmbeddedChat-C9EcRSDF.js → contextPanelEmbeddedChat-D2PM_pEv.js} +1 -1
- package/dist/assets/{de-DqVn5vme.js → de-DlSNLAcy.js} +6 -5
- package/dist/assets/{es-hj43Z53i.js → es-D1GbowZ3.js} +6 -5
- package/dist/assets/{fr-BmkZt2mF.js → fr-BPOLXIAY.js} +6 -5
- package/dist/assets/{index-DmhujXbT.js → index-Ce0LR32V.js} +1 -1
- package/dist/assets/index-D42fPvt4.css +1 -0
- package/dist/assets/index-DlFbCkEy.js +39 -0
- package/dist/assets/{isDiffPlainText-XyulMHxx.js → isDiffPlainText-DaB2u_Kv.js} +1 -1
- package/dist/assets/{isFilePlainText-B19Ddps1.js → isFilePlainText-yJZa2IAC.js} +1 -1
- package/dist/assets/{ja-DioMIEGF.js → ja-Dm2-m9io.js} +7 -6
- package/dist/assets/{ko-BqPgaQJb.js → ko-CIXlzQ5-.js} +7 -6
- package/dist/assets/main-B7qTsd_w.js +930 -0
- package/dist/assets/{main-B2a_JfKZ.js → main-CyQrD9dG.js} +2 -2
- package/dist/assets/{markdownCore-CWRCqSH2.js → markdownCore-CeEwGgEK.js} +2 -2
- package/dist/assets/{miniChat-B3CSU_Ps.js → miniChat-7cPEx4sV.js} +2 -2
- package/dist/assets/{mobile-QNcFIVCW.js → mobile-QtzkPTM8.js} +2 -2
- package/dist/assets/{patchFileDiff-BpMQZnYu.js → patchFileDiff-No55fDiD.js} +1 -1
- package/dist/assets/pl-B2zmkOpw.js +16 -0
- package/dist/assets/{pt-BR-BqH8fuCH.js → pt-BR-C-JE5H6y.js} +6 -5
- package/dist/assets/{renderElectronMiniChatApp-D77bmLqo.js → renderElectronMiniChatApp-ePTkBJNS.js} +2 -2
- package/dist/assets/renderMobileApp-D9RjB9DX.js +25 -0
- package/dist/assets/runtimeEndpointReset-DfJIWwwo.js +17 -0
- package/dist/assets/{scheduledTasksApi-BSRCtP6T.js → scheduledTasksApi-DuhdyYEa.js} +1 -1
- package/dist/assets/{shikiHighlight-DE-OwqGw.js → shikiHighlight-EHEg58-n.js} +1 -1
- package/dist/assets/tr-MJmRIzEY.js +7 -0
- package/dist/assets/{uk-BkkfxbOs.js → uk-BmD7eM8k.js} +6 -5
- package/dist/assets/{useAppFontEffects-COAeIX-D.js → useAppFontEffects-CuJPKtI1.js} +151 -180
- package/dist/assets/useInlineCommentController-DD7_7OP_.js +2 -0
- package/dist/assets/{useRootScrollLock-C0N9mCwz.js → useRootScrollLock-DRGAe8PN.js} +1 -1
- package/dist/assets/{vendor-codemirror-language-data-BG3v1Ghq.js → vendor-codemirror-language-data-9ZzoH0o0.js} +2 -2
- package/dist/assets/vendor-zod-CK21ihK-.js +39 -0
- package/dist/assets/{web-components-BNMwa0qm.js → web-components-PttKBrhi.js} +1 -1
- package/dist/assets/{zh-CN-C6FMdVgv.js → zh-CN-JJHl4ehT.js} +6 -5
- package/dist/assets/{zh-TW-CdcMjDxv.js → zh-TW-DPc4DEEW.js} +6 -5
- package/dist/index.html +5 -5
- package/dist/mini-chat.html +4 -4
- package/dist/mobile.html +4 -4
- package/package.json +8 -4
- package/server/index.js +38 -5
- package/server/lib/agent-tool/runtime.js +2 -19
- package/server/lib/changelog/update-notes.js +82 -0
- package/server/lib/changelog/update-notes.test.js +59 -0
- package/server/lib/dev-tunnel/DOCUMENTATION.md +13 -4
- package/server/lib/dev-tunnel/runtime.js +4 -4
- package/server/lib/dev-tunnel/tunnel.test.js +20 -0
- package/server/lib/fs/DOCUMENTATION.md +2 -0
- package/server/lib/fs/routes.js +32 -21
- package/server/lib/fs/routes.test.js +77 -0
- package/server/lib/git/DOCUMENTATION.md +3 -1
- package/server/lib/git/routes.js +16 -0
- package/server/lib/git/service.js +107 -17
- package/server/lib/git/service.test.js +171 -0
- package/server/lib/mcp-reconnect/DOCUMENTATION.md +55 -0
- package/server/lib/mcp-reconnect/runtime.js +122 -0
- package/server/lib/mcp-reconnect/runtime.test.js +140 -0
- package/server/lib/message-queue/DOCUMENTATION.md +158 -0
- package/server/lib/message-queue/runtime.js +870 -0
- package/server/lib/message-queue/runtime.test.js +482 -0
- package/server/lib/openchamber-sessions/routes.js +102 -0
- package/server/lib/openchamber-sessions/routes.test.js +88 -0
- package/server/lib/opencode/DOCUMENTATION.md +13 -5
- package/server/lib/opencode/config-paths.test.js +116 -0
- package/server/lib/opencode/core-routes.js +1 -0
- package/server/lib/opencode/feature-routes-runtime.js +5 -0
- package/server/lib/opencode/input-history-scope.js +14 -0
- package/server/lib/opencode/managed-plugin-config.js +35 -0
- package/server/lib/opencode/openchamber-routes.test.js +2 -2
- package/server/lib/opencode/plugins.js +2 -2
- package/server/lib/opencode/providers.js +44 -2
- package/server/lib/opencode/providers.test.js +131 -4
- package/server/lib/opencode/routes.js +4 -4
- package/server/lib/opencode/server-startup-runtime.js +1 -1
- package/server/lib/opencode/settings-helpers.js +28 -0
- package/server/lib/opencode/settings-helpers.test.js +177 -0
- package/server/lib/opencode/settings-runtime.js +2 -2
- package/server/lib/opencode/settings-runtime.test.js +29 -0
- package/server/lib/opencode/shared.js +4 -1
- package/server/lib/opencode/shutdown-runtime.js +2 -0
- package/server/lib/opencode/skill-routes.js +2 -1
- package/server/lib/opencode/snippets.js +1 -2
- package/server/lib/package-manager.js +4 -29
- package/server/lib/package-manager.test.js +2 -2
- package/server/lib/quota/DOCUMENTATION.md +2 -1
- package/server/lib/quota/credentials/providers.js +4 -0
- package/server/lib/quota/credentials/store.js +1 -1
- package/server/lib/quota/credentials/store.test.js +4 -4
- package/server/lib/quota/providers/exe-dev.js +75 -0
- package/server/lib/quota/providers/exe-dev.test.js +47 -0
- package/server/lib/quota/providers/index.js +7 -0
- package/server/lib/quota/providers/opencode-go.js +1 -0
- package/server/lib/quota/providers/opencode-go.test.js +5 -1
- package/server/lib/quota/routes.js +2 -0
- package/server/lib/quota/utils/auth.js +1 -1
- package/server/lib/relay/DOCUMENTATION.md +1 -1
- package/server/lib/relay/host-client.test.js +9 -1
- package/server/lib/relay/tunnel-host.js +3 -1
- package/server/lib/relay/tunnel-host.test.js +9 -1
- package/server/lib/security/request-security.js +21 -6
- package/server/lib/security/request-security.test.js +42 -8
- package/server/lib/session-assist/runtime.js +1 -0
- package/server/lib/session-goal/DOCUMENTATION.md +20 -7
- package/server/lib/session-goal/create.js +3 -1
- package/server/lib/session-goal/runtime.js +77 -11
- package/server/lib/session-goal/runtime.test.js +426 -0
- package/server/lib/skills-catalog/DOCUMENTATION.md +1 -1
- package/server/lib/skills-catalog/install.js +3 -2
- package/server/lib/small-model/DOCUMENTATION.md +4 -0
- package/server/lib/small-model/call.js +8 -2
- package/server/lib/small-model/call.test.js +23 -0
- package/server/lib/small-model/index.js +2 -1
- package/server/lib/small-model/routes.js +2 -1
- package/server/lib/system-prompt/runtime.js +2 -21
- package/server/lib/terminal/DOCUMENTATION.md +11 -7
- package/server/lib/terminal/runtime.js +180 -26
- package/server/lib/terminal/runtime.test.js +553 -26
- package/server/lib/terminal/shells.js +17 -0
- package/server/lib/terminal/shells.test.js +32 -1
- package/server/lib/ui-auth/ui-auth.js +4 -1
- package/server/lib/ui-auth/ui-auth.test.js +16 -0
- package/server/lib/walkthrough/index.js +1 -0
- package/server/lib/walkthrough/routes.test.js +26 -5
- package/dist/assets/CommitSection-X-f2RgYr.js +0 -1
- package/dist/assets/FilesView-3ZYP72ki.js +0 -17
- package/dist/assets/GitView-CMuN7z2Z.js +0 -6
- package/dist/assets/LinearIssuesView-CQiUDU8b.js +0 -1
- package/dist/assets/MarkdownRendererImpl-BGQi2PLq.js +0 -12
- package/dist/assets/PlanView-6AUjzNQn.js +0 -5
- package/dist/assets/SettingsView-CHI8fFaK.js +0 -28
- package/dist/assets/ToolPartDiffPreview-DPAATNn6.js +0 -8
- package/dist/assets/index-L_ncV-6H.css +0 -1
- package/dist/assets/index-qES19dlJ.js +0 -7
- package/dist/assets/main-CYgSu6dx.js +0 -928
- package/dist/assets/pl-slULBF4R.js +0 -15
- package/dist/assets/renderMobileApp-BQ3Kdm-d.js +0 -25
- package/dist/assets/runtimeEndpointReset-CRGn1gVj.js +0 -16
- package/dist/assets/tr-CjEbw1Aw.js +0 -6
- package/dist/assets/useInlineCommentController-JsBboQwt.js +0 -2
- package/dist/assets/vendor-zod-BLfBSgBh.js +0 -39
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ds as T,a8 as $,z as P,A as N,O as I,dt as b,du as v,dv as _,D as R,r as m}from"./index-DlFbCkEy.js";import{c as M}from"./vendor-zustand-BAGL70zf.js";const E=()=>I.filter(e=>v.has(e.id)).map(e=>({..._(e)})),z=()=>{if(typeof window>"u")return R;const e=window.localStorage.getItem("openInAppId");return e&&T(e)?e:R};let j=!1,w=!1,f=!1,u=0,A=null;const U=()=>{A&&(clearTimeout(A),A=null)},J=M()((e,s)=>({selectedAppId:z(),availableApps:E(),hasLoadedApps:!1,isCacheStale:!1,isScanning:!1,initialize:()=>{if(j||typeof window>"u")return;j=!0;const t=(i,p=!0)=>{if(!Array.isArray(i)||i.length===0){e({availableApps:E(),hasLoadedApps:p});return}const l=new Set(i.map(d=>d.name)),c=new Map(i.map(d=>[d.name,d.iconDataUrl??void 0])),g=I.filter(d=>l.has(d.appName)||v.has(d.id)).map(d=>({..._(d),iconDataUrl:c.get(d.appName)}));e({availableApps:g,hasLoadedApps:!0})},a=async i=>{if(!P()||!N()||w||s().hasLoadedApps&&!i)return;const l=I.map(c=>c.appName);U(),w=!0,f=!1,e({isScanning:!0});try{const{apps:c,success:r,hasCache:g,isCacheStale:d}=await b(l,i),C=r&&!g&&c.length===0&&u<3;if(e({isCacheStale:g?d:!1}),t(c,r?!C:!1),r){if(C){const k=[800,1600,3200][u]??3200;u+=1,f=!0,A=setTimeout(()=>{a()},k);return}u=0,f=!1;return}if(u<3){const k=[1e3,3e3,7e3][u]??7e3;u+=1,f=!0,A=setTimeout(()=>{a()},k)}}finally{w=!1,f||e({isScanning:!1})}};a();const o=i=>{const p=i.detail?.settings,l=p&&typeof p.openInAppId=="string"&&p.openInAppId.length>0&&T(p.openInAppId)?p.openInAppId:null;l&&(window.localStorage.setItem("openInAppId",l),e({selectedAppId:l}))},n=()=>{a()},S=i=>{const p=i.detail;Array.isArray(p)&&(u=3,f=!1,e({isScanning:!1,isCacheStale:!1}),t(p))};window.addEventListener("openchamber:settings-synced",o),window.addEventListener("openchamber:app-ready",n),window.addEventListener("openchamber:installed-apps-updated",S),window.__openchamberAppReady&&a(),window.setTimeout(()=>{s().hasLoadedApps||a()},5e3)},loadInstalledApps:async t=>{if(j||s().initialize(),!P()||!N()||w||s().hasLoadedApps&&!t)return;const o=I.map(n=>n.appName);U(),t&&e({hasLoadedApps:!1}),w=!0,f=!1,e({isScanning:!0});try{const{apps:n,hasCache:S,isCacheStale:L}=await b(o,t),i=new Set(n.map(r=>r.name)),p=new Map(n.map(r=>[r.name,r.iconDataUrl??void 0])),c=I.filter(r=>i.has(r.appName)||v.has(r.id)).map(r=>({...r,iconDataUrl:p.get(r.appName)}));e({availableApps:c.length>0?c:E(),hasLoadedApps:c.length>0,isCacheStale:S?L:!1})}finally{w=!1,f||e({isScanning:!1})}},selectApp:async t=>{T(t)&&(e({selectedAppId:t}),typeof window<"u"&&window.localStorage.setItem("openInAppId",t),await $({openInAppId:t}))}})),D=new Set,K=e=>{const s=e.runtimeKey.trim(),t=Array.from(new Set(e.paths.map(a=>a.trim()).filter(Boolean)));if(!(!s||t.length===0))for(const a of D)a({runtimeKey:s,paths:t})},q=e=>(D.add(e),()=>D.delete(e)),y=async(e,s)=>{try{const t=await e.json();if(t&&typeof t.error=="string"&&t.error.trim().length>0)return t.error}catch{return s}return s},h=e=>{const s=typeof e=="string"?e.trim():"";if(!s)throw new Error("projectId is required");return s},H=async e=>{const s=h(e),t=await m(`/api/projects/${encodeURIComponent(s)}/scheduled-tasks`);if(!t.ok)throw new Error(await y(t,"Failed to load scheduled tasks"));const a=await t.json().catch(()=>null);return!a||!Array.isArray(a.tasks)?[]:a.tasks},V=async(e,s)=>{const t=h(e),a=await m(`/api/projects/${encodeURIComponent(t)}/scheduled-tasks`,{method:"PUT",headers:{"content-type":"application/json",accept:"application/json"},body:JSON.stringify({task:s})});if(!a.ok)throw new Error(await y(a,"Failed to save scheduled task"));const o=await a.json().catch(()=>null);return!o||!Array.isArray(o.tasks)?[]:o.tasks},W=async(e,s)=>{const t=h(e),a=h(s),o=await m(`/api/projects/${encodeURIComponent(t)}/scheduled-tasks/${encodeURIComponent(a)}`,{method:"DELETE",headers:{accept:"application/json"}});if(!o.ok)throw new Error(await y(o,"Failed to delete scheduled task"));const n=await o.json().catch(()=>null);return!n||!Array.isArray(n.tasks)?[]:n.tasks},F=(e,s)=>{const t=h(e),a=h(s);return`/api/projects/${encodeURIComponent(t)}/scheduled-tasks/${encodeURIComponent(a)}/loop-file`},Y=async(e,s,t)=>{const a=await m(F(e,s),{method:"PATCH",headers:{"content-type":"application/json",accept:"application/json"},body:JSON.stringify({enabled:t})});if(!a.ok)throw new Error(await y(a,"Failed to update loop task"))},G=async(e,s)=>{const t=await m(F(e,s),{method:"DELETE",headers:{accept:"application/json"}});if(!t.ok)throw new Error(await y(t,"Failed to delete loop file"))},Q=async e=>{await H(e)},X=async(e,s)=>{const t=h(e),a=h(s),o=await m(`/api/projects/${encodeURIComponent(t)}/scheduled-tasks/${encodeURIComponent(a)}/run`,{method:"POST",headers:{accept:"application/json"}});if(!o.ok)throw new Error(await y(o,"Failed to run scheduled task"));const n=await o.json().catch(()=>null);return{sessionId:typeof n?.sessionId=="string"&&n.sessionId.length>0?n.sessionId:void 0,persistError:typeof n?.persistError=="string"&&n.persistError.trim().length>0?n.persistError.trim():void 0}};export{V as a,W as b,Q as c,G as d,q as e,H as f,K as n,X as r,Y as s,J as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{R as d,j as v,c as ge,f as be}from"./vendor-react-BUCujlKS.js";import{E as he,o as S,k as _,i as de,S as xe}from"./vendor-codemirror-state-C9awkmn-.js";import{s as ye,d as ve,E as w,e as ke,f as V,k as B,V as me,D as M,W as we}from"./vendor-codemirror-view-CiLROUVV.js";import{h as Ce,k as Se,l as Ne,j as Ee}from"./vendor-codemirror-commands-B7H_j0iU.js";import{i as Re,y as Te,H as G,x as P,z as Oe}from"./vendor-codemirror-language-BgPj_McA.js";import{a as U,g as F,b as Y,c as Q,o as Pe,d as Fe}from"./vendor-codemirror-search-BmS-GmcX.js";import{v as Me,g as ze}from"./vendor-replit-codemirror-vim-B2DJlAhT.js";import{h as qe,I as Z,a7 as We,B as Be,a8 as He,a6 as Le,h1 as _e}from"./useAppFontEffects-COAeIX-D.js";import{a as e,c as $e}from"./vendor-lezer-highlight-CDMHUZ74.js";const je=t=>t!==null&&typeof t=="object"&&"updateStatus"in t&&typeof t.updateStatus=="function",Ie=t=>{const o=document.createElement("div");o.className="cm-vim-panel";const a=ze(t);if(!a)return{top:!1,dom:o};a.state.statusbar=o;const n=a.state.vimPlugin;return je(n)&&n.updateStatus(),{top:!1,dom:o,destroy(){a.state.statusbar===o&&(a.state.statusbar=null)}}};function J(t){return t?[Me(),ye.of(Ie),ve()]:[]}const Ae={next:"Next match",prev:"Previous match",select:"Select all matches",replace:"Replace",replaceAll:"Replace all",close:"Close"},De={case:"Match case",re:"Regular expression",word:"Match whole word"};function Ke(t){const o=t.querySelector(".cm-search");if(o){for(const[a,n]of Object.entries(Ae)){const c=o.querySelector(`button[name="${a}"]`);c&&!c.title&&(c.title=n)}for(const[a,n]of Object.entries(De)){const r=o.querySelector(`input[name="${a}"]`)?.parentElement;r&&!r.title&&(r.title=n)}}}const H=new WeakMap;function Ve(t,o){const a=F(t.state);if(!a.valid)return H.delete(t),0;const n=H.get(t);if(!o&&n?.doc===t.state.doc&&n.query.eq(a))return n.total;const c=a.getCursor(t.state);let r=0;for(let l=c.next();!l.done;l=c.next())r+=1;return H.set(t,{query:a,doc:t.state.doc,total:r}),r}function Ge(t){const o=F(t.state);if(!o.valid)return 0;const a=t.state.selection.main,n=o.getCursor(t.state);let c=0,r=0;for(let l=n.next();!l.done;l=n.next()){const u=l.value;if(c+=1,r===0&&(r=c),a.from===u.from&&a.to===u.to||a.from<u.to&&a.to>u.from||u.from>=a.head)return c}return r}function X(t,o,a=!1){const n=t.querySelector(".cm-search");if(!n)return;let c=n.querySelector(".cm-search-message");if(!c){c=document.createElement("span"),c.className="cm-search-message",c.setAttribute("aria-live","polite");const u=n.querySelector('button[name="next"]'),f=u?.parentNode===n?u:n.firstChild;n.insertBefore(c,f)}const r=Ve(o,a),l=r===0?0:Ge(o);c.textContent=r===0?"":`${l}/${r}`}const ee=new S,te=new S,oe=new S,re=new S,ne=new S,ae=new S,ce=new S,se=t=>t,L=Te,Ue=Pe,Ye=Fe;class Qe extends we{constructor(o,a){super(),this.id=o,this.containerMap=a}toDOM(){let o=this.containerMap.get(this.id);return o||(o=document.createElement("div"),o.className="oc-block-widget",o.dataset.widgetId=this.id,this.containerMap.set(this.id,o)),o}eq(o){return o.id===this.id}destroy(){}}const ie=(t,o)=>!t||t.length===0?[]:de.define({create(a){const n=new _,c=[...t].sort((r,l)=>r.afterLine-l.afterLine);for(const r of c){const l=a.doc.lines;if(r.afterLine>l)continue;const u=a.doc.line(r.afterLine);n.add(u.to,u.to,M.widget({widget:new Qe(r.id,o),block:!0,side:1}))}return n.finish()},update(a,n){return a.map(n.changes)},provide:a=>w.decorations.from(a)}),le=t=>{if(!t)return[];const o=Math.max(1,t.start),a=Math.max(o,t.end);return me.fromClass(class{decorations;constructor(n){this.decorations=this.build(n)}update(n){(n.docChanged||n.viewportChanged)&&(this.decorations=this.build(n.view))}build(n){const c=new _;for(let r=o;r<=a&&r<=n.state.doc.lines;r+=1){const l=n.state.doc.line(r);c.add(l.from,l.from,M.line({class:"oc-cm-selected-line"}))}return c.finish()}},{decorations:n=>n.decorations})};function pt({value:t,onChange:o,extensions:a,className:n,readOnly:c,lineNumbersConfig:r,highlightLines:l,onViewReady:u,onViewDestroy:f,blockWidgets:m,enableSearch:b,searchOpen:T,onSearchOpenChange:N,vimMode:x}){const O=d.useRef(null),g=d.useRef(null),z=d.useRef(t),$=d.useRef(o),j=d.useRef(u),I=d.useRef(f),A=d.useRef(N),E=d.useRef(m),q=d.useRef(x),W=d.useRef(new Map),[pe,D]=d.useState([]),k=d.useCallback(s=>{const h=(s??[]).map(i=>{const p=W.current.get(i.id);return p?{id:i.id,content:i.content,container:p}:null}).filter(i=>i!==null);D(i=>i.length===h.length&&i.every((p,y)=>{const R=h[y];return p.id===R.id&&p.content===R.content&&p.container===R.container})?i:h)},[]),C=d.useCallback(s=>{const h=O.current,i=s??g.current;if(!h||!i)return;const p=i.dom.querySelector(".cm-gutters"),y=p instanceof HTMLElement?p.getBoundingClientRect().width:0;h.style.setProperty("--oc-editor-gutter-width",`${y}px`)},[]);return d.useEffect(()=>{z.current=t},[t]),d.useEffect(()=>{$.current=o},[o]),d.useEffect(()=>{j.current=u,I.current=f},[u,f]),d.useEffect(()=>{A.current=N},[N]),d.useEffect(()=>{E.current=m,k(m)},[m,k]),d.useEffect(()=>{if(!O.current)return;const s=(()=>{if(typeof document>"u")return null;const i=document.querySelector('meta[name="csp-nonce"]')?.getAttribute("content");if(i)return i;const p=window.__OPENCHAMBER_CSP_NONCE__;return typeof p=="string"&&p.length>0?p:null})(),h=he.create({doc:z.current,extensions:[...s?[w.cspNonce.of(s)]:[],ke({fixed:!0}),ee.of(V(r)),Ce(),Re.of(" "),ce.of(J(x)),B.of([Se,...Ne,...Ee]),w.updateListener.of(i=>{C(i.view),(i.viewportChanged||i.geometryChanged)&&k(E.current);const p=U(i.startState),y=U(i.state);p!==y&&A.current?.(y);const R=!F(i.startState).eq(F(i.state));if(y&&(p!==y||R||i.docChanged||i.selectionSet)&&X(i.view.dom,i.view,p!==y||R||i.docChanged),!i.docChanged)return;const K=i.state.doc.toString();z.current=K,$.current(K),k(E.current)}),te.of(w.editable.of(!c)),oe.of(a??[]),re.of(le(l)),ne.of(ie(m,W.current)),ae.of(b?[Y({top:!0}),B.of(se(Q))]:[])]});return g.current=new w({state:h,parent:O.current}),L(g.current,g.current.state.doc.length,200),g.current.requestMeasure(),requestAnimationFrame(()=>{C(g.current),k(E.current)}),g.current&&j.current?.(g.current),()=>{I.current?.(),g.current?.destroy(),g.current=null,D([])}},[E,C,k]),d.useEffect(()=>{const s=g.current;s&&(s.dispatch({effects:[ee.reconfigure(V(r)),te.reconfigure(w.editable.of(!c)),oe.reconfigure(a??[]),re.reconfigure(le(l)),ne.reconfigure(ie(m,W.current)),ae.reconfigure(b?[Y({top:!0}),B.of(se(Q))]:[])]}),L(s,s.state.doc.length,200),s.requestMeasure(),requestAnimationFrame(()=>{C(s),k(E.current)}))},[a,l,r,c,m,b,C,k]),d.useEffect(()=>{const s=g.current;if(!s){q.current=x;return}q.current!==x&&(q.current=x,s.dispatch({effects:ce.reconfigure(J(x))}))},[x]),d.useEffect(()=>{const s=g.current;!s||b===!1||(T?(Ue(s),requestAnimationFrame(()=>{Ke(s.dom),X(s.dom,s,!0)})):Ye(s))},[T,b]),d.useEffect(()=>{const s=g.current;if(!s)return;const h=s.state.doc.toString();h!==t&&(s.dispatch({changes:{from:0,to:h.length,insert:t}}),L(s,s.state.doc.length,300),s.requestMeasure(),requestAnimationFrame(()=>C(s)))},[t,C]),v.jsxs(v.Fragment,{children:[v.jsx("div",{ref:O,className:qe("h-full w-full","[&_.cm-editor]:h-full [&_.cm-editor]:w-full","[&_.cm-scroller]:font-mono [&_.cm-scroller]:text-[var(--text-code)] [&_.cm-scroller]:leading-6","[&_.cm-lineNumbers]:text-[var(--tools-edit-line-number)]",n)}),pe.map(s=>ge.createPortal(s.content,s.container,s.id))]})}const gt=t=>{const o=be.c(11),{currentMode:a,onToggle:n}=t,c=a==="preview",r=c?"Switch to edit mode":"Switch to preview mode",l=c?"Edit":"Preview";let u;o[0]!==c?(u=c?v.jsx(Z,{name:"eye",className:"size-4","aria-hidden":"true"}):v.jsx(Z,{name:"eye-off",className:"size-4","aria-hidden":"true"}),o[0]=c,o[1]=u):u=o[1];let f;o[2]!==r||o[3]!==n||o[4]!==u?(f=v.jsx(We,{asChild:!0,children:v.jsx(Be,{variant:"ghost",size:"sm",onClick:n,"aria-label":r,className:"h-5 w-5 p-0",children:u})}),o[2]=r,o[3]=n,o[4]=u,o[5]=f):f=o[5];let m;o[6]!==l?(m=v.jsx(He,{sideOffset:8,children:l}),o[6]=l,o[7]=m):m=o[7];let b;return o[8]!==f||o[9]!==m?(b=v.jsxs(Le,{children:[f,m]}),o[8]=f,o[9]=m,o[10]=b):b=o[10],b};function bt(t,o){const a=t.metadata.variant==="dark",n=t.config?.fonts?.mono||"monospace",c=t.colors.syntax.highlights||{},r=t.colors.syntax.tokens||{},l=o?.fontSize?`${o.fontSize}px`:"var(--text-code)",u=w.theme({"&":{backgroundColor:"var(--background)",color:t.colors.syntax.base.foreground,fontSize:l,lineHeight:"1.5",position:"relative"},".cm-scroller":{fontFamily:n,backgroundColor:"var(--background)"},".cm-comment":{color:t.colors.syntax.base.comment},".cm-keyword":{color:t.colors.syntax.base.keyword},".cm-string":{color:t.colors.syntax.base.string},".cm-string-2":{color:r.stringEscape||t.colors.syntax.base.string},".cm-number":{color:t.colors.syntax.base.number},".cm-operator":{color:t.colors.syntax.base.operator},".cm-punctuation":{color:r.punctuation||t.colors.syntax.base.comment},".cm-atom":{color:r.boolean||t.colors.syntax.base.number},".cm-builtin":{color:r.functionCall||t.colors.syntax.base.function},".cm-def":{color:r.variableGlobal||t.colors.syntax.base.variable},".cm-attribute":{color:r.variableOther||r.variableProperty||t.colors.syntax.base.operator},".cm-meta":{color:t.colors.syntax.base.comment},".cm-property":{color:r.variableProperty||t.colors.syntax.base.keyword},".cm-variable":{color:t.colors.syntax.base.variable},".cm-variable-2":{color:r.variableOther||t.colors.syntax.base.function},".cm-variable-3":{color:r.variableGlobal||t.colors.syntax.base.type},".cm-tag":{color:r.tag||t.colors.syntax.base.keyword},".cm-link":{color:r.url||t.colors.syntax.base.keyword,textDecoration:"underline"},".cm-content":{caretColor:t.colors.interactive.cursor},".cm-cursor, .cm-dropCursor":{borderLeftColor:t.colors.interactive.cursor},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, ::selection":{backgroundColor:t.colors.interactive.selection},".cm-gutters":{backgroundColor:"var(--background)",color:c.lineNumber||t.colors.syntax.base.comment,borderRight:`1px solid ${t.colors.interactive.border}`,position:"sticky",paddingRight:"8px",left:0,zIndex:2,boxShadow:"0 0 0 var(--background)"},".cm-gutter":{backgroundColor:"var(--background)"},".cm-gutterElement":{backgroundColor:"var(--background)"},".cm-lineNumbers":{backgroundColor:"var(--background)"},".cm-lineNumbers .cm-gutterElement":{paddingLeft:"8px",paddingRight:"8px",minWidth:"42px"},".cm-activeLineGutter":{color:c.lineNumberActive||t.colors.syntax.base.foreground},".cm-activeLine":{backgroundColor:t.colors.surface.overlay},".cm-panels":{backgroundColor:"transparent",color:t.colors.surface.foreground,position:"absolute",top:"0",right:"0",left:"auto",width:"auto",zIndex:10,pointerEvents:"none"},".cm-panels-top":{borderBottom:"none",position:"absolute",top:"6px",right:"14px",left:"auto",width:"auto"},".cm-panels-bottom":{position:"static",width:"100%",pointerEvents:"auto"},".cm-panels-bottom .cm-vim-panel":{borderTop:`1px solid ${t.colors.interactive.border}`,backgroundColor:t.colors.surface.elevated,color:t.colors.surface.mutedForeground,fontFamily:"var(--font-mono)",fontSize:"12px",minHeight:"22px",padding:"2px 8px"},".cm-panel.cm-search":{pointerEvents:"auto",padding:"4px",backgroundColor:`color-mix(in srgb, ${t.colors.surface.elevated} 85%, transparent)`,border:`1px solid ${t.colors.interactive.border}`,borderRadius:"10px",boxShadow:`0 2px 8px color-mix(in srgb, ${t.colors.surface.background} 60%, transparent)`,width:"auto",minWidth:"360px",maxWidth:"480px"},".cm-search":{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0",width:"100%",color:t.colors.surface.foreground,fontFamily:"inherit",fontSize:"13px",lineHeight:"1"},".cm-search br":{display:"none"},".cm-search .cm-textfield":{appearance:"none",height:"26px",margin:0,padding:"0 8px",borderRadius:"6px !important",border:`1px solid ${t.colors.interactive.border}`,backgroundColor:t.colors.surface.background,color:t.colors.surface.foreground,fontFamily:"inherit",fontSize:"12px",lineHeight:"1",outline:"none",transition:"border-color 150ms ease"},".cm-search .cm-textfield::placeholder":{color:t.colors.surface.mutedForeground,opacity:1},".cm-search .cm-textfield:focus":{borderColor:t.colors.primary.base},'.cm-search .cm-textfield[name="search"]':{order:1,flex:"1 1 120px",maxWidth:"calc(100% - 142px)",minWidth:"100px"},".cm-search label":{order:2,display:"inline-flex",alignItems:"center",justifyContent:"center",width:"26px",height:"26px",minWidth:"26px",flexShrink:"0",margin:0,marginLeft:"1px",padding:0,borderRadius:"4px",border:"1px solid transparent",backgroundColor:"transparent",color:"transparent",cursor:"pointer",userSelect:"none",fontSize:"1px",lineHeight:"0",overflow:"hidden",position:"relative",transition:"background-color 120ms ease, border-color 120ms ease"},".cm-search label:hover":{backgroundColor:t.colors.interactive.hover},'.cm-search label:has(input[type="checkbox"]:checked)':{backgroundColor:t.colors.interactive.hover,borderColor:t.colors.interactive.border},'.cm-search [type="checkbox"]':{appearance:"none",WebkitAppearance:"none",width:"0",height:"0",margin:"0",padding:"0",border:"none",position:"absolute",opacity:"0",pointerEvents:"none"},".cm-search label::after":{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontSize:"13px",fontWeight:"600",lineHeight:"1",fontFamily:"inherit",color:t.colors.surface.mutedForeground,pointerEvents:"none"},".cm-search label:hover::after":{color:t.colors.surface.foreground},'.cm-search label:has(input[type="checkbox"]:checked)::after':{color:t.colors.surface.foreground},'.cm-search label:has(input[name="case"])::after':{content:'"Aa"',fontSize:"12px",letterSpacing:"-0.5px"},'.cm-search label:has(input[name="re"])::after':{content:'".*"',fontSize:"13px",fontFamily:"monospace"},'.cm-search label:has(input[name="word"])::after':{content:'"ab"',fontSize:"12px",textDecoration:"underline",textUnderlineOffset:"2px"},".cm-search .cm-search-message":{order:3,color:t.colors.surface.mutedForeground,backgroundColor:"transparent",border:"none",borderRadius:"0",padding:"0 6px",fontSize:"11px",whiteSpace:"nowrap",lineHeight:"26px"},".cm-search .cm-button":{appearance:"none",WebkitAppearance:"none",display:"inline-flex",alignItems:"center",justifyContent:"center",width:"26px",height:"26px",minWidth:"26px",flexShrink:"0",margin:0,marginLeft:"1px",padding:0,borderRadius:"4px",border:"none",backgroundColor:"transparent",backgroundImage:"none",color:"transparent",cursor:"pointer",fontSize:"1px",fontWeight:"400",lineHeight:"0",overflow:"hidden",position:"relative",boxShadow:"none",transition:"background-color 120ms ease"},".cm-search .cm-button::after":{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontSize:"15px",lineHeight:"1",color:t.colors.surface.mutedForeground,pointerEvents:"none"},".cm-search .cm-button:hover":{backgroundColor:t.colors.interactive.hover},".cm-search .cm-button:hover::after":{color:t.colors.surface.foreground},".cm-search .cm-button:active":{backgroundColor:t.colors.interactive.active},".cm-search .cm-button:focus-visible":{outline:"none",boxShadow:`0 0 0 1px ${t.colors.interactive.focusRing}`},".cm-search .cm-button:disabled":{opacity:.4,cursor:"default",pointerEvents:"none"},'.cm-search .cm-button[name="prev"]':{order:21,marginTop:"2px"},'.cm-search .cm-button[name="prev"]::after':{content:'"↑"'},'.cm-search .cm-button[name="next"]':{order:22,marginTop:"2px"},'.cm-search .cm-button[name="next"]::after':{content:'"↓"'},'.cm-search .cm-button[name="select"]':{order:23,marginTop:"2px"},'.cm-search .cm-button[name="select"]::after':{content:'"≡"',fontSize:"17px"},'.cm-panel.cm-search button[name="close"]':{order:5,appearance:"none",WebkitAppearance:"none",display:"inline-flex",alignItems:"center",justifyContent:"center",width:"26px",height:"26px",minWidth:"26px",flexShrink:"0",margin:"0 0 0 auto",padding:"0",borderRadius:"4px",border:"none",backgroundColor:"transparent",backgroundImage:"none",color:t.colors.surface.mutedForeground,cursor:"pointer",fontSize:"16px",lineHeight:"1",boxShadow:"none",position:"relative",overflow:"visible",transition:"background-color 120ms ease, color 120ms ease"},'.cm-panel.cm-search button[name="close"]:hover':{backgroundColor:t.colors.interactive.hover,color:t.colors.surface.foreground},'.cm-search .cm-button[name="replace"]':{order:24,marginTop:"2px"},'.cm-search .cm-button[name="replace"]::after':{content:'"⇄"'},'.cm-search .cm-button[name="replaceAll"], .cm-search .cm-button[name="replace-all"]':{order:25,marginTop:"2px"},'.cm-search .cm-button[name="replaceAll"]::after, .cm-search .cm-button[name="replace-all"]::after':{content:'"⇉"'},'.cm-search .cm-textfield[name="replace"]':{order:20,flex:"1 1 100%",maxWidth:"calc(100% - 142px)",minWidth:"80px",marginTop:"2px"},".cm-searchMatch":{backgroundColor:t.colors.status.infoBackground,boxShadow:`inset 0 0 0 1px ${t.colors.status.infoBorder}`,borderRadius:"2px"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:t.colors.interactive.selection,color:t.colors.interactive.selectionForeground,boxShadow:`inset 0 0 0 1px ${t.colors.interactive.borderFocus}`},"&.cm-focused":{outline:"none"}},{dark:a}),f=G.define([{tag:[e.comment,e.docComment,e.meta,e.documentMeta],class:"cm-comment"},{tag:[e.keyword,e.controlKeyword,e.moduleKeyword,e.definitionKeyword,e.modifier],class:"cm-keyword"},{tag:[e.operatorKeyword,e.operator,e.derefOperator,e.updateOperator,e.definitionOperator,e.typeOperator,e.controlOperator,e.logicOperator,e.bitwiseOperator,e.arithmeticOperator,e.compareOperator],class:"cm-operator"},{tag:[e.punctuation,e.separator,e.bracket,e.paren,e.brace,e.squareBracket,e.angleBracket],class:"cm-punctuation"},{tag:[e.string,e.regexp,e.attributeValue,e.special(e.string),e.monospace],class:"cm-string"},{tag:e.escape,class:"cm-string-2"},{tag:[e.number,e.bool,e.atom,e.null,e.self],class:"cm-number"},{tag:[e.function(e.variableName),e.function(e.definition(e.variableName)),e.function(e.propertyName),e.standard(e.variableName),e.special(e.variableName)],class:"cm-builtin"},{tag:e.definition(e.variableName),class:"cm-def"},{tag:[e.variableName,e.local(e.variableName),e.constant(e.variableName),e.literal],class:"cm-variable"},{tag:e.propertyName,class:"cm-property"},{tag:e.attributeName,class:"cm-attribute"},{tag:[e.className,e.typeName,e.namespace],class:"cm-variable-3"},{tag:[e.tagName,e.labelName,e.annotation,e.macroName],class:"cm-tag"},{tag:e.link,class:"cm-link"},{tag:[e.heading,e.heading1,e.heading2,e.heading3,e.heading4,e.heading5,e.heading6],class:"cm-keyword"}]),m=G.define([{tag:[e.comment,e.docComment,e.meta,e.documentMeta],color:t.colors.syntax.base.comment},{tag:[e.keyword,e.controlKeyword,e.moduleKeyword,e.definitionKeyword,e.modifier],color:t.colors.syntax.base.keyword},{tag:[e.operatorKeyword,e.operator,e.derefOperator,e.updateOperator,e.definitionOperator,e.typeOperator,e.controlOperator,e.logicOperator,e.bitwiseOperator,e.arithmeticOperator,e.compareOperator],color:t.colors.syntax.base.operator},{tag:[e.string,e.regexp,e.attributeValue,e.special(e.string),e.monospace],color:t.colors.syntax.base.string},{tag:e.escape,color:r.stringEscape||t.colors.syntax.base.string},{tag:[e.number,e.bool,e.atom,e.null,e.self],color:t.colors.syntax.base.number},{tag:[e.function(e.variableName),e.function(e.definition(e.variableName)),e.function(e.propertyName),e.standard(e.variableName),e.special(e.variableName)],color:t.colors.syntax.base.function},{tag:e.definition(e.variableName),color:r.variableGlobal||t.colors.syntax.base.variable},{tag:[e.variableName,e.local(e.variableName),e.constant(e.variableName),e.literal],color:t.colors.syntax.base.variable},{tag:e.propertyName,color:r.variableProperty||t.colors.syntax.base.variable},{tag:e.attributeName,color:r.variableOther||t.colors.syntax.base.variable},{tag:[e.className,e.typeName,e.namespace],color:t.colors.syntax.base.type},{tag:[e.tagName,e.labelName,e.annotation,e.macroName],color:r.tag||t.colors.syntax.base.keyword},{tag:e.link,color:r.url||t.colors.syntax.base.function,textDecoration:"underline"},{tag:[e.punctuation,e.separator,e.bracket,e.paren,e.brace,e.squareBracket,e.angleBracket],color:r.punctuation||t.colors.syntax.base.comment}]);return o?.syntaxColors===!1?[u]:[u,P(Oe,{fallback:!0}),P($e),P(f),P(m)]}const Ze=180,fe=xe.define(),Je=1,Xe=2,et=4,ue=new Map,tt=(t,o)=>{const a=`${t}|${o}`,n=ue.get(a);if(n)return n;let c="";t&&(c+=`color:${t};`),o&Je&&(c+="font-style:italic;"),o&Xe&&(c+="font-weight:bold;"),o&et&&(c+="text-decoration:underline;");const r=M.mark({attributes:{style:c}});return ue.set(a,r),r},ot=(t,o)=>{const a=new _,n=t.state.doc,c=Math.min(o.length,n.lines);for(let r=0;r<c;r+=1){const l=o[r];if(!l||l.length===0)continue;const u=n.line(r+1);let f=u.from;for(const[m,b,T]of l){if(m<=0)continue;const N=f,x=Math.min(f+m,u.to);f+=m,!(x<=N)&&(!b&&!T||a.add(N,x,tt(b,T)))}}return a.finish()},rt=de.define({create(){return M.none},update(t,o){let a=t.map(o.changes);for(const n of o.effects)n.is(fe)&&(a=n.value);return a},provide:t=>w.decorations.from(t)}),nt=t=>me.fromClass(class{timer;generation=0;constructor(o){this.tokenize(o)}update(o){o.docChanged&&this.schedule(o.view)}schedule(o){this.timer&&clearTimeout(this.timer),this.timer=setTimeout(()=>{this.timer=void 0,this.tokenize(o)},Ze)}async tokenize(o){const a=++this.generation,n=o.state.doc.toString(),c=await _e(n,t.language,t.themeName,t.theme);c&&a===this.generation&&o.state.doc.length===n.length&&o.dispatch({effects:fe.of(ot(o,c))})}destroy(){this.timer&&clearTimeout(this.timer)}}),ht=t=>[rt,nt(t)];export{pt as C,gt as P,bt as c,ht as s};
|
|
1
|
+
import{R as d,j as v,c as ge,f as be}from"./vendor-react-BUCujlKS.js";import{E as he,o as S,k as _,i as de,S as xe}from"./vendor-codemirror-state-C9awkmn-.js";import{s as ye,d as ve,E as w,e as ke,f as V,k as B,V as me,D as M,W as we}from"./vendor-codemirror-view-CiLROUVV.js";import{h as Ce,k as Se,l as Ne,j as Ee}from"./vendor-codemirror-commands-B7H_j0iU.js";import{i as Re,y as Te,H as G,x as P,z as Oe}from"./vendor-codemirror-language-BgPj_McA.js";import{a as U,g as F,b as Y,c as Q,o as Pe,d as Fe}from"./vendor-codemirror-search-BmS-GmcX.js";import{v as Me,g as ze}from"./vendor-replit-codemirror-vim-B2DJlAhT.js";import{h as qe,I as Z,a8 as We,B as Be,a9 as He,a7 as Le,h1 as _e}from"./useAppFontEffects-CuJPKtI1.js";import{a as e,c as $e}from"./vendor-lezer-highlight-CDMHUZ74.js";const je=t=>t!==null&&typeof t=="object"&&"updateStatus"in t&&typeof t.updateStatus=="function",Ie=t=>{const o=document.createElement("div");o.className="cm-vim-panel";const a=ze(t);if(!a)return{top:!1,dom:o};a.state.statusbar=o;const n=a.state.vimPlugin;return je(n)&&n.updateStatus(),{top:!1,dom:o,destroy(){a.state.statusbar===o&&(a.state.statusbar=null)}}};function J(t){return t?[Me(),ye.of(Ie),ve()]:[]}const Ae={next:"Next match",prev:"Previous match",select:"Select all matches",replace:"Replace",replaceAll:"Replace all",close:"Close"},De={case:"Match case",re:"Regular expression",word:"Match whole word"};function Ke(t){const o=t.querySelector(".cm-search");if(o){for(const[a,n]of Object.entries(Ae)){const c=o.querySelector(`button[name="${a}"]`);c&&!c.title&&(c.title=n)}for(const[a,n]of Object.entries(De)){const r=o.querySelector(`input[name="${a}"]`)?.parentElement;r&&!r.title&&(r.title=n)}}}const H=new WeakMap;function Ve(t,o){const a=F(t.state);if(!a.valid)return H.delete(t),0;const n=H.get(t);if(!o&&n?.doc===t.state.doc&&n.query.eq(a))return n.total;const c=a.getCursor(t.state);let r=0;for(let l=c.next();!l.done;l=c.next())r+=1;return H.set(t,{query:a,doc:t.state.doc,total:r}),r}function Ge(t){const o=F(t.state);if(!o.valid)return 0;const a=t.state.selection.main,n=o.getCursor(t.state);let c=0,r=0;for(let l=n.next();!l.done;l=n.next()){const u=l.value;if(c+=1,r===0&&(r=c),a.from===u.from&&a.to===u.to||a.from<u.to&&a.to>u.from||u.from>=a.head)return c}return r}function X(t,o,a=!1){const n=t.querySelector(".cm-search");if(!n)return;let c=n.querySelector(".cm-search-message");if(!c){c=document.createElement("span"),c.className="cm-search-message",c.setAttribute("aria-live","polite");const u=n.querySelector('button[name="next"]'),f=u?.parentNode===n?u:n.firstChild;n.insertBefore(c,f)}const r=Ve(o,a),l=r===0?0:Ge(o);c.textContent=r===0?"":`${l}/${r}`}const ee=new S,te=new S,oe=new S,re=new S,ne=new S,ae=new S,ce=new S,se=t=>t,L=Te,Ue=Pe,Ye=Fe;class Qe extends we{constructor(o,a){super(),this.id=o,this.containerMap=a}toDOM(){let o=this.containerMap.get(this.id);return o||(o=document.createElement("div"),o.className="oc-block-widget",o.dataset.widgetId=this.id,this.containerMap.set(this.id,o)),o}eq(o){return o.id===this.id}destroy(){}}const ie=(t,o)=>!t||t.length===0?[]:de.define({create(a){const n=new _,c=[...t].sort((r,l)=>r.afterLine-l.afterLine);for(const r of c){const l=a.doc.lines;if(r.afterLine>l)continue;const u=a.doc.line(r.afterLine);n.add(u.to,u.to,M.widget({widget:new Qe(r.id,o),block:!0,side:1}))}return n.finish()},update(a,n){return a.map(n.changes)},provide:a=>w.decorations.from(a)}),le=t=>{if(!t)return[];const o=Math.max(1,t.start),a=Math.max(o,t.end);return me.fromClass(class{decorations;constructor(n){this.decorations=this.build(n)}update(n){(n.docChanged||n.viewportChanged)&&(this.decorations=this.build(n.view))}build(n){const c=new _;for(let r=o;r<=a&&r<=n.state.doc.lines;r+=1){const l=n.state.doc.line(r);c.add(l.from,l.from,M.line({class:"oc-cm-selected-line"}))}return c.finish()}},{decorations:n=>n.decorations})};function pt({value:t,onChange:o,extensions:a,className:n,readOnly:c,lineNumbersConfig:r,highlightLines:l,onViewReady:u,onViewDestroy:f,blockWidgets:m,enableSearch:b,searchOpen:T,onSearchOpenChange:N,vimMode:x}){const O=d.useRef(null),g=d.useRef(null),z=d.useRef(t),$=d.useRef(o),j=d.useRef(u),I=d.useRef(f),A=d.useRef(N),E=d.useRef(m),q=d.useRef(x),W=d.useRef(new Map),[pe,D]=d.useState([]),k=d.useCallback(s=>{const h=(s??[]).map(i=>{const p=W.current.get(i.id);return p?{id:i.id,content:i.content,container:p}:null}).filter(i=>i!==null);D(i=>i.length===h.length&&i.every((p,y)=>{const R=h[y];return p.id===R.id&&p.content===R.content&&p.container===R.container})?i:h)},[]),C=d.useCallback(s=>{const h=O.current,i=s??g.current;if(!h||!i)return;const p=i.dom.querySelector(".cm-gutters"),y=p instanceof HTMLElement?p.getBoundingClientRect().width:0;h.style.setProperty("--oc-editor-gutter-width",`${y}px`)},[]);return d.useEffect(()=>{z.current=t},[t]),d.useEffect(()=>{$.current=o},[o]),d.useEffect(()=>{j.current=u,I.current=f},[u,f]),d.useEffect(()=>{A.current=N},[N]),d.useEffect(()=>{E.current=m,k(m)},[m,k]),d.useEffect(()=>{if(!O.current)return;const s=(()=>{if(typeof document>"u")return null;const i=document.querySelector('meta[name="csp-nonce"]')?.getAttribute("content");if(i)return i;const p=window.__OPENCHAMBER_CSP_NONCE__;return typeof p=="string"&&p.length>0?p:null})(),h=he.create({doc:z.current,extensions:[...s?[w.cspNonce.of(s)]:[],ke({fixed:!0}),ee.of(V(r)),Ce(),Re.of(" "),ce.of(J(x)),B.of([Se,...Ne,...Ee]),w.updateListener.of(i=>{C(i.view),(i.viewportChanged||i.geometryChanged)&&k(E.current);const p=U(i.startState),y=U(i.state);p!==y&&A.current?.(y);const R=!F(i.startState).eq(F(i.state));if(y&&(p!==y||R||i.docChanged||i.selectionSet)&&X(i.view.dom,i.view,p!==y||R||i.docChanged),!i.docChanged)return;const K=i.state.doc.toString();z.current=K,$.current(K),k(E.current)}),te.of(w.editable.of(!c)),oe.of(a??[]),re.of(le(l)),ne.of(ie(m,W.current)),ae.of(b?[Y({top:!0}),B.of(se(Q))]:[])]});return g.current=new w({state:h,parent:O.current}),L(g.current,g.current.state.doc.length,200),g.current.requestMeasure(),requestAnimationFrame(()=>{C(g.current),k(E.current)}),g.current&&j.current?.(g.current),()=>{I.current?.(),g.current?.destroy(),g.current=null,D([])}},[E,C,k]),d.useEffect(()=>{const s=g.current;s&&(s.dispatch({effects:[ee.reconfigure(V(r)),te.reconfigure(w.editable.of(!c)),oe.reconfigure(a??[]),re.reconfigure(le(l)),ne.reconfigure(ie(m,W.current)),ae.reconfigure(b?[Y({top:!0}),B.of(se(Q))]:[])]}),L(s,s.state.doc.length,200),s.requestMeasure(),requestAnimationFrame(()=>{C(s),k(E.current)}))},[a,l,r,c,m,b,C,k]),d.useEffect(()=>{const s=g.current;if(!s){q.current=x;return}q.current!==x&&(q.current=x,s.dispatch({effects:ce.reconfigure(J(x))}))},[x]),d.useEffect(()=>{const s=g.current;!s||b===!1||(T?(Ue(s),requestAnimationFrame(()=>{Ke(s.dom),X(s.dom,s,!0)})):Ye(s))},[T,b]),d.useEffect(()=>{const s=g.current;if(!s)return;const h=s.state.doc.toString();h!==t&&(s.dispatch({changes:{from:0,to:h.length,insert:t}}),L(s,s.state.doc.length,300),s.requestMeasure(),requestAnimationFrame(()=>C(s)))},[t,C]),v.jsxs(v.Fragment,{children:[v.jsx("div",{ref:O,className:qe("h-full w-full","[&_.cm-editor]:h-full [&_.cm-editor]:w-full","[&_.cm-scroller]:font-mono [&_.cm-scroller]:text-[var(--text-code)] [&_.cm-scroller]:leading-6","[&_.cm-lineNumbers]:text-[var(--tools-edit-line-number)]",n)}),pe.map(s=>ge.createPortal(s.content,s.container,s.id))]})}const gt=t=>{const o=be.c(11),{currentMode:a,onToggle:n}=t,c=a==="preview",r=c?"Switch to edit mode":"Switch to preview mode",l=c?"Edit":"Preview";let u;o[0]!==c?(u=c?v.jsx(Z,{name:"eye",className:"size-4","aria-hidden":"true"}):v.jsx(Z,{name:"eye-off",className:"size-4","aria-hidden":"true"}),o[0]=c,o[1]=u):u=o[1];let f;o[2]!==r||o[3]!==n||o[4]!==u?(f=v.jsx(We,{asChild:!0,children:v.jsx(Be,{variant:"ghost",size:"sm",onClick:n,"aria-label":r,className:"h-5 w-5 p-0",children:u})}),o[2]=r,o[3]=n,o[4]=u,o[5]=f):f=o[5];let m;o[6]!==l?(m=v.jsx(He,{sideOffset:8,children:l}),o[6]=l,o[7]=m):m=o[7];let b;return o[8]!==f||o[9]!==m?(b=v.jsxs(Le,{children:[f,m]}),o[8]=f,o[9]=m,o[10]=b):b=o[10],b};function bt(t,o){const a=t.metadata.variant==="dark",n=t.config?.fonts?.mono||"monospace",c=t.colors.syntax.highlights||{},r=t.colors.syntax.tokens||{},l=o?.fontSize?`${o.fontSize}px`:"var(--text-code)",u=w.theme({"&":{backgroundColor:"var(--background)",color:t.colors.syntax.base.foreground,fontSize:l,lineHeight:"1.5",position:"relative"},".cm-scroller":{fontFamily:n,backgroundColor:"var(--background)"},".cm-comment":{color:t.colors.syntax.base.comment},".cm-keyword":{color:t.colors.syntax.base.keyword},".cm-string":{color:t.colors.syntax.base.string},".cm-string-2":{color:r.stringEscape||t.colors.syntax.base.string},".cm-number":{color:t.colors.syntax.base.number},".cm-operator":{color:t.colors.syntax.base.operator},".cm-punctuation":{color:r.punctuation||t.colors.syntax.base.comment},".cm-atom":{color:r.boolean||t.colors.syntax.base.number},".cm-builtin":{color:r.functionCall||t.colors.syntax.base.function},".cm-def":{color:r.variableGlobal||t.colors.syntax.base.variable},".cm-attribute":{color:r.variableOther||r.variableProperty||t.colors.syntax.base.operator},".cm-meta":{color:t.colors.syntax.base.comment},".cm-property":{color:r.variableProperty||t.colors.syntax.base.keyword},".cm-variable":{color:t.colors.syntax.base.variable},".cm-variable-2":{color:r.variableOther||t.colors.syntax.base.function},".cm-variable-3":{color:r.variableGlobal||t.colors.syntax.base.type},".cm-tag":{color:r.tag||t.colors.syntax.base.keyword},".cm-link":{color:r.url||t.colors.syntax.base.keyword,textDecoration:"underline"},".cm-content":{caretColor:t.colors.interactive.cursor},".cm-cursor, .cm-dropCursor":{borderLeftColor:t.colors.interactive.cursor},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, ::selection":{backgroundColor:t.colors.interactive.selection},".cm-gutters":{backgroundColor:"var(--background)",color:c.lineNumber||t.colors.syntax.base.comment,borderRight:`1px solid ${t.colors.interactive.border}`,position:"sticky",paddingRight:"8px",left:0,zIndex:2,boxShadow:"0 0 0 var(--background)"},".cm-gutter":{backgroundColor:"var(--background)"},".cm-gutterElement":{backgroundColor:"var(--background)"},".cm-lineNumbers":{backgroundColor:"var(--background)"},".cm-lineNumbers .cm-gutterElement":{paddingLeft:"8px",paddingRight:"8px",minWidth:"42px"},".cm-activeLineGutter":{color:c.lineNumberActive||t.colors.syntax.base.foreground},".cm-activeLine":{backgroundColor:t.colors.surface.overlay},".cm-panels":{backgroundColor:"transparent",color:t.colors.surface.foreground,position:"absolute",top:"0",right:"0",left:"auto",width:"auto",zIndex:10,pointerEvents:"none"},".cm-panels-top":{borderBottom:"none",position:"absolute",top:"6px",right:"14px",left:"auto",width:"auto"},".cm-panels-bottom":{position:"static",width:"100%",pointerEvents:"auto"},".cm-panels-bottom .cm-vim-panel":{borderTop:`1px solid ${t.colors.interactive.border}`,backgroundColor:t.colors.surface.elevated,color:t.colors.surface.mutedForeground,fontFamily:"var(--font-mono)",fontSize:"12px",minHeight:"22px",padding:"2px 8px"},".cm-panel.cm-search":{pointerEvents:"auto",padding:"4px",backgroundColor:`color-mix(in srgb, ${t.colors.surface.elevated} 85%, transparent)`,border:`1px solid ${t.colors.interactive.border}`,borderRadius:"10px",boxShadow:`0 2px 8px color-mix(in srgb, ${t.colors.surface.background} 60%, transparent)`,width:"auto",minWidth:"360px",maxWidth:"480px"},".cm-search":{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0",width:"100%",color:t.colors.surface.foreground,fontFamily:"inherit",fontSize:"13px",lineHeight:"1"},".cm-search br":{display:"none"},".cm-search .cm-textfield":{appearance:"none",height:"26px",margin:0,padding:"0 8px",borderRadius:"6px !important",border:`1px solid ${t.colors.interactive.border}`,backgroundColor:t.colors.surface.background,color:t.colors.surface.foreground,fontFamily:"inherit",fontSize:"12px",lineHeight:"1",outline:"none",transition:"border-color 150ms ease"},".cm-search .cm-textfield::placeholder":{color:t.colors.surface.mutedForeground,opacity:1},".cm-search .cm-textfield:focus":{borderColor:t.colors.primary.base},'.cm-search .cm-textfield[name="search"]':{order:1,flex:"1 1 120px",maxWidth:"calc(100% - 142px)",minWidth:"100px"},".cm-search label":{order:2,display:"inline-flex",alignItems:"center",justifyContent:"center",width:"26px",height:"26px",minWidth:"26px",flexShrink:"0",margin:0,marginLeft:"1px",padding:0,borderRadius:"4px",border:"1px solid transparent",backgroundColor:"transparent",color:"transparent",cursor:"pointer",userSelect:"none",fontSize:"1px",lineHeight:"0",overflow:"hidden",position:"relative",transition:"background-color 120ms ease, border-color 120ms ease"},".cm-search label:hover":{backgroundColor:t.colors.interactive.hover},'.cm-search label:has(input[type="checkbox"]:checked)':{backgroundColor:t.colors.interactive.hover,borderColor:t.colors.interactive.border},'.cm-search [type="checkbox"]':{appearance:"none",WebkitAppearance:"none",width:"0",height:"0",margin:"0",padding:"0",border:"none",position:"absolute",opacity:"0",pointerEvents:"none"},".cm-search label::after":{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontSize:"13px",fontWeight:"600",lineHeight:"1",fontFamily:"inherit",color:t.colors.surface.mutedForeground,pointerEvents:"none"},".cm-search label:hover::after":{color:t.colors.surface.foreground},'.cm-search label:has(input[type="checkbox"]:checked)::after':{color:t.colors.surface.foreground},'.cm-search label:has(input[name="case"])::after':{content:'"Aa"',fontSize:"12px",letterSpacing:"-0.5px"},'.cm-search label:has(input[name="re"])::after':{content:'".*"',fontSize:"13px",fontFamily:"monospace"},'.cm-search label:has(input[name="word"])::after':{content:'"ab"',fontSize:"12px",textDecoration:"underline",textUnderlineOffset:"2px"},".cm-search .cm-search-message":{order:3,color:t.colors.surface.mutedForeground,backgroundColor:"transparent",border:"none",borderRadius:"0",padding:"0 6px",fontSize:"11px",whiteSpace:"nowrap",lineHeight:"26px"},".cm-search .cm-button":{appearance:"none",WebkitAppearance:"none",display:"inline-flex",alignItems:"center",justifyContent:"center",width:"26px",height:"26px",minWidth:"26px",flexShrink:"0",margin:0,marginLeft:"1px",padding:0,borderRadius:"4px",border:"none",backgroundColor:"transparent",backgroundImage:"none",color:"transparent",cursor:"pointer",fontSize:"1px",fontWeight:"400",lineHeight:"0",overflow:"hidden",position:"relative",boxShadow:"none",transition:"background-color 120ms ease"},".cm-search .cm-button::after":{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontSize:"15px",lineHeight:"1",color:t.colors.surface.mutedForeground,pointerEvents:"none"},".cm-search .cm-button:hover":{backgroundColor:t.colors.interactive.hover},".cm-search .cm-button:hover::after":{color:t.colors.surface.foreground},".cm-search .cm-button:active":{backgroundColor:t.colors.interactive.active},".cm-search .cm-button:focus-visible":{outline:"none",boxShadow:`0 0 0 1px ${t.colors.interactive.focusRing}`},".cm-search .cm-button:disabled":{opacity:.4,cursor:"default",pointerEvents:"none"},'.cm-search .cm-button[name="prev"]':{order:21,marginTop:"2px"},'.cm-search .cm-button[name="prev"]::after':{content:'"↑"'},'.cm-search .cm-button[name="next"]':{order:22,marginTop:"2px"},'.cm-search .cm-button[name="next"]::after':{content:'"↓"'},'.cm-search .cm-button[name="select"]':{order:23,marginTop:"2px"},'.cm-search .cm-button[name="select"]::after':{content:'"≡"',fontSize:"17px"},'.cm-panel.cm-search button[name="close"]':{order:5,appearance:"none",WebkitAppearance:"none",display:"inline-flex",alignItems:"center",justifyContent:"center",width:"26px",height:"26px",minWidth:"26px",flexShrink:"0",margin:"0 0 0 auto",padding:"0",borderRadius:"4px",border:"none",backgroundColor:"transparent",backgroundImage:"none",color:t.colors.surface.mutedForeground,cursor:"pointer",fontSize:"16px",lineHeight:"1",boxShadow:"none",position:"relative",overflow:"visible",transition:"background-color 120ms ease, color 120ms ease"},'.cm-panel.cm-search button[name="close"]:hover':{backgroundColor:t.colors.interactive.hover,color:t.colors.surface.foreground},'.cm-search .cm-button[name="replace"]':{order:24,marginTop:"2px"},'.cm-search .cm-button[name="replace"]::after':{content:'"⇄"'},'.cm-search .cm-button[name="replaceAll"], .cm-search .cm-button[name="replace-all"]':{order:25,marginTop:"2px"},'.cm-search .cm-button[name="replaceAll"]::after, .cm-search .cm-button[name="replace-all"]::after':{content:'"⇉"'},'.cm-search .cm-textfield[name="replace"]':{order:20,flex:"1 1 100%",maxWidth:"calc(100% - 142px)",minWidth:"80px",marginTop:"2px"},".cm-searchMatch":{backgroundColor:t.colors.status.infoBackground,boxShadow:`inset 0 0 0 1px ${t.colors.status.infoBorder}`,borderRadius:"2px"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:t.colors.interactive.selection,color:t.colors.interactive.selectionForeground,boxShadow:`inset 0 0 0 1px ${t.colors.interactive.borderFocus}`},"&.cm-focused":{outline:"none"}},{dark:a}),f=G.define([{tag:[e.comment,e.docComment,e.meta,e.documentMeta],class:"cm-comment"},{tag:[e.keyword,e.controlKeyword,e.moduleKeyword,e.definitionKeyword,e.modifier],class:"cm-keyword"},{tag:[e.operatorKeyword,e.operator,e.derefOperator,e.updateOperator,e.definitionOperator,e.typeOperator,e.controlOperator,e.logicOperator,e.bitwiseOperator,e.arithmeticOperator,e.compareOperator],class:"cm-operator"},{tag:[e.punctuation,e.separator,e.bracket,e.paren,e.brace,e.squareBracket,e.angleBracket],class:"cm-punctuation"},{tag:[e.string,e.regexp,e.attributeValue,e.special(e.string),e.monospace],class:"cm-string"},{tag:e.escape,class:"cm-string-2"},{tag:[e.number,e.bool,e.atom,e.null,e.self],class:"cm-number"},{tag:[e.function(e.variableName),e.function(e.definition(e.variableName)),e.function(e.propertyName),e.standard(e.variableName),e.special(e.variableName)],class:"cm-builtin"},{tag:e.definition(e.variableName),class:"cm-def"},{tag:[e.variableName,e.local(e.variableName),e.constant(e.variableName),e.literal],class:"cm-variable"},{tag:e.propertyName,class:"cm-property"},{tag:e.attributeName,class:"cm-attribute"},{tag:[e.className,e.typeName,e.namespace],class:"cm-variable-3"},{tag:[e.tagName,e.labelName,e.annotation,e.macroName],class:"cm-tag"},{tag:e.link,class:"cm-link"},{tag:[e.heading,e.heading1,e.heading2,e.heading3,e.heading4,e.heading5,e.heading6],class:"cm-keyword"}]),m=G.define([{tag:[e.comment,e.docComment,e.meta,e.documentMeta],color:t.colors.syntax.base.comment},{tag:[e.keyword,e.controlKeyword,e.moduleKeyword,e.definitionKeyword,e.modifier],color:t.colors.syntax.base.keyword},{tag:[e.operatorKeyword,e.operator,e.derefOperator,e.updateOperator,e.definitionOperator,e.typeOperator,e.controlOperator,e.logicOperator,e.bitwiseOperator,e.arithmeticOperator,e.compareOperator],color:t.colors.syntax.base.operator},{tag:[e.string,e.regexp,e.attributeValue,e.special(e.string),e.monospace],color:t.colors.syntax.base.string},{tag:e.escape,color:r.stringEscape||t.colors.syntax.base.string},{tag:[e.number,e.bool,e.atom,e.null,e.self],color:t.colors.syntax.base.number},{tag:[e.function(e.variableName),e.function(e.definition(e.variableName)),e.function(e.propertyName),e.standard(e.variableName),e.special(e.variableName)],color:t.colors.syntax.base.function},{tag:e.definition(e.variableName),color:r.variableGlobal||t.colors.syntax.base.variable},{tag:[e.variableName,e.local(e.variableName),e.constant(e.variableName),e.literal],color:t.colors.syntax.base.variable},{tag:e.propertyName,color:r.variableProperty||t.colors.syntax.base.variable},{tag:e.attributeName,color:r.variableOther||t.colors.syntax.base.variable},{tag:[e.className,e.typeName,e.namespace],color:t.colors.syntax.base.type},{tag:[e.tagName,e.labelName,e.annotation,e.macroName],color:r.tag||t.colors.syntax.base.keyword},{tag:e.link,color:r.url||t.colors.syntax.base.function,textDecoration:"underline"},{tag:[e.punctuation,e.separator,e.bracket,e.paren,e.brace,e.squareBracket,e.angleBracket],color:r.punctuation||t.colors.syntax.base.comment}]);return o?.syntaxColors===!1?[u]:[u,P(Oe,{fallback:!0}),P($e),P(f),P(m)]}const Ze=180,fe=xe.define(),Je=1,Xe=2,et=4,ue=new Map,tt=(t,o)=>{const a=`${t}|${o}`,n=ue.get(a);if(n)return n;let c="";t&&(c+=`color:${t};`),o&Je&&(c+="font-style:italic;"),o&Xe&&(c+="font-weight:bold;"),o&et&&(c+="text-decoration:underline;");const r=M.mark({attributes:{style:c}});return ue.set(a,r),r},ot=(t,o)=>{const a=new _,n=t.state.doc,c=Math.min(o.length,n.lines);for(let r=0;r<c;r+=1){const l=o[r];if(!l||l.length===0)continue;const u=n.line(r+1);let f=u.from;for(const[m,b,T]of l){if(m<=0)continue;const N=f,x=Math.min(f+m,u.to);f+=m,!(x<=N)&&(!b&&!T||a.add(N,x,tt(b,T)))}}return a.finish()},rt=de.define({create(){return M.none},update(t,o){let a=t.map(o.changes);for(const n of o.effects)n.is(fe)&&(a=n.value);return a},provide:t=>w.decorations.from(t)}),nt=t=>me.fromClass(class{timer;generation=0;constructor(o){this.tokenize(o)}update(o){o.docChanged&&this.schedule(o.view)}schedule(o){this.timer&&clearTimeout(this.timer),this.timer=setTimeout(()=>{this.timer=void 0,this.tokenize(o)},Ze)}async tokenize(o){const a=++this.generation,n=o.state.doc.toString(),c=await _e(n,t.language,t.themeName,t.theme);c&&a===this.generation&&o.state.doc.length===n.length&&o.dispatch({effects:fe.of(ot(o,c))})}destroy(){this.timer&&clearTimeout(this.timer)}}),ht=t=>[rt,nt(t)];export{pt as C,gt as P,bt as c,ht as s};
|