@fgbg/mdocs 1.4.0 → 2.0.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.
Files changed (117) hide show
  1. package/README.md +1 -1
  2. package/agent-skills/changelog/SKILL.md +25 -0
  3. package/dist/server/agent/Agent/run-manager.js +1 -0
  4. package/dist/server/agent/Agent/run-manager.js.map +1 -1
  5. package/dist/server/agent/Agent/run-pi-agent.js +22 -7
  6. package/dist/server/agent/Agent/run-pi-agent.js.map +1 -1
  7. package/dist/server/agent/Agent/run.js +29 -4
  8. package/dist/server/agent/Agent/run.js.map +1 -1
  9. package/dist/server/agent/Agent/session-manager.js +45 -5
  10. package/dist/server/agent/Agent/session-manager.js.map +1 -1
  11. package/dist/server/agent/Agent/system-prompt.js +5 -3
  12. package/dist/server/agent/Agent/system-prompt.js.map +1 -1
  13. package/dist/server/agent/Agent/tools-documents.js +13 -4
  14. package/dist/server/agent/Agent/tools-documents.js.map +1 -1
  15. package/dist/server/agent/Agent/tools-registry.test.js +1 -1
  16. package/dist/server/agent/Agent/tools-registry.test.js.map +1 -1
  17. package/dist/server/agent/Agent/tools-template.js +2 -1
  18. package/dist/server/agent/Agent/tools-template.js.map +1 -1
  19. package/dist/server/agent/Config/config.test.js +21 -0
  20. package/dist/server/agent/Config/config.test.js.map +1 -1
  21. package/dist/server/agent/attachments/capabilities.js +52 -0
  22. package/dist/server/agent/attachments/capabilities.js.map +1 -0
  23. package/dist/server/agent/attachments/capabilities.test.js +33 -0
  24. package/dist/server/agent/attachments/capabilities.test.js.map +1 -0
  25. package/dist/server/agent/attachments/index.js +6 -0
  26. package/dist/server/agent/attachments/index.js.map +1 -0
  27. package/dist/server/agent/attachments/inject.js +67 -0
  28. package/dist/server/agent/attachments/inject.js.map +1 -0
  29. package/dist/server/agent/attachments/inject.test.js +41 -0
  30. package/dist/server/agent/attachments/inject.test.js.map +1 -0
  31. package/dist/server/agent/attachments/object-fs.js +44 -0
  32. package/dist/server/agent/attachments/object-fs.js.map +1 -0
  33. package/dist/server/agent/attachments/parse/image.js +22 -0
  34. package/dist/server/agent/attachments/parse/image.js.map +1 -0
  35. package/dist/server/agent/attachments/parse/pdf.js +19 -0
  36. package/dist/server/agent/attachments/parse/pdf.js.map +1 -0
  37. package/dist/server/agent/attachments/parse/plain-text.js +18 -0
  38. package/dist/server/agent/attachments/parse/plain-text.js.map +1 -0
  39. package/dist/server/agent/attachments/prepare-turn.js +32 -0
  40. package/dist/server/agent/attachments/prepare-turn.js.map +1 -0
  41. package/dist/server/agent/attachments/store.js +120 -0
  42. package/dist/server/agent/attachments/store.js.map +1 -0
  43. package/dist/server/agent/attachments/tools-read-attachment.js +95 -0
  44. package/dist/server/agent/attachments/tools-read-attachment.js.map +1 -0
  45. package/dist/server/agent/attachments/types.js +6 -0
  46. package/dist/server/agent/attachments/types.js.map +1 -0
  47. package/dist/server/agent/attachments/upload-filename.test.js +39 -0
  48. package/dist/server/agent/attachments/upload-filename.test.js.map +1 -0
  49. package/dist/server/agent/attachments/upload.js +11 -0
  50. package/dist/server/agent/attachments/upload.js.map +1 -0
  51. package/dist/server/app.js +9 -1
  52. package/dist/server/app.js.map +1 -1
  53. package/dist/server/config/index.js +1 -0
  54. package/dist/server/config/index.js.map +1 -1
  55. package/dist/server/db/repositories/agent-attachment.repo.js +51 -0
  56. package/dist/server/db/repositories/agent-attachment.repo.js.map +1 -0
  57. package/dist/server/db/repositories/document.repo.js +9 -9
  58. package/dist/server/db/repositories/document.repo.js.map +1 -1
  59. package/dist/server/db/schema.js +64 -3
  60. package/dist/server/db/schema.js.map +1 -1
  61. package/dist/server/documents/document.service.js +2 -3
  62. package/dist/server/documents/document.service.js.map +1 -1
  63. package/dist/server/documents/graph.integration.test.js +1 -0
  64. package/dist/server/documents/graph.integration.test.js.map +1 -1
  65. package/dist/server/documents/tree-and-folders.test.js +1 -0
  66. package/dist/server/documents/tree-and-folders.test.js.map +1 -1
  67. package/dist/server/domains/change-domain-permission.test.js +12 -0
  68. package/dist/server/domains/change-domain-permission.test.js.map +1 -1
  69. package/dist/server/routes/agent.routes.js +85 -2
  70. package/dist/server/routes/agent.routes.js.map +1 -1
  71. package/dist/server/routes/visitors.routes.js +2 -0
  72. package/dist/server/routes/visitors.routes.js.map +1 -1
  73. package/dist/server/search/document-index-manager.js +13 -4
  74. package/dist/server/search/document-index-manager.js.map +1 -1
  75. package/dist/server/search/document-index-manager.test.js +14 -3
  76. package/dist/server/search/document-index-manager.test.js.map +1 -1
  77. package/dist/server/search/embedding-store.js +9 -0
  78. package/dist/server/search/embedding-store.js.map +1 -1
  79. package/dist/server/search/embedding-store.test.js +27 -3
  80. package/dist/server/search/embedding-store.test.js.map +1 -1
  81. package/dist/shared/file-type-policy.js +1 -1
  82. package/dist/shared/file-type-policy.js.map +1 -1
  83. package/dist/shared/file-type-policy.test.js +2 -1
  84. package/dist/shared/file-type-policy.test.js.map +1 -1
  85. package/dist/web/assets/AgentChatPanel-Bhv57WUW.js +47 -0
  86. package/dist/web/assets/{AiWriteWorkbench-DzJAmRHY.js → AiWriteWorkbench-DOse9-oQ.js} +4 -4
  87. package/dist/web/assets/{DiagramEditor-NtNY3sZL-KWdKFFEL.js → DiagramEditor-NtNY3sZL-D7sapmVz.js} +1 -1
  88. package/dist/web/assets/DocChrome-Dj5rSAvl.js +16 -0
  89. package/dist/web/assets/{DocumentEditor-CrU6HKmU.js → DocumentEditor-BTxsH3UT.js} +1 -1
  90. package/dist/web/assets/{HtmlEditor-BBcreXJD.js → HtmlEditor-OEfTnjjz.js} +1 -1
  91. package/dist/web/assets/MergeView-CGz2CWUZ.js +10 -0
  92. package/dist/web/assets/{PlaygroundPage-Bo9rM8MY.js → PlaygroundPage-BsekHU2o.js} +1 -1
  93. package/dist/web/assets/{SettingsPage-D09P0j48.js → SettingsPage-cVFmyADe.js} +5 -5
  94. package/dist/web/assets/SheetEditor-1LMR2jA1.js +26 -0
  95. package/dist/web/assets/SheetEditor-DJOs2u-u.css +1 -0
  96. package/dist/web/assets/{Toolbar-C1HmC2Qc.js → Toolbar-CPIpQgP1.js} +1 -1
  97. package/dist/web/assets/VisitorPickerModal-aRuuDomz.js +6 -0
  98. package/dist/web/assets/{check-BAYRiedE.js → check-NyVbPIj8.js} +1 -1
  99. package/dist/web/assets/{copy-J9XXv57X.js → copy-C_H9wgwB.js} +1 -1
  100. package/dist/web/assets/file-type-policy-5jFXMeIz.js +1 -0
  101. package/dist/web/assets/index-CervldVc.css +1 -0
  102. package/dist/web/assets/index-Kp5r4mc7.js +299 -0
  103. package/dist/web/assets/{italic-BfR6fH81.js → italic-BqrahN0G.js} +1 -1
  104. package/dist/web/assets/{meta2dEngine-BD2XbzaV-MY1Hyyeh.js → meta2dEngine-BD2XbzaV-CUKxedXW.js} +1 -1
  105. package/dist/web/assets/{plus-DvWl4lHk.js → plus-D8tCpRfA.js} +1 -1
  106. package/dist/web/assets/{react-C7aGt3wN.js → react-DsdrF7vh.js} +3 -3
  107. package/dist/web/index.html +2 -2
  108. package/package.json +1 -1
  109. package/dist/web/assets/AgentChatPanel-_IV-LAS4.js +0 -42
  110. package/dist/web/assets/DocChrome-CtT7xOl6.js +0 -16
  111. package/dist/web/assets/MergeView-LV_hny8a.js +0 -10
  112. package/dist/web/assets/SheetEditor-BPTMQ2s5.css +0 -1
  113. package/dist/web/assets/SheetEditor-Dyk-jpRL.js +0 -26
  114. package/dist/web/assets/VisitorPickerModal-Cx03Papl.js +0 -6
  115. package/dist/web/assets/file-type-policy-aRrzC4LZ.js +0 -1
  116. package/dist/web/assets/index-Btfv_3-Q.js +0 -299
  117. package/dist/web/assets/index-C1Mc0Svw.css +0 -1
@@ -1,4 +1,4 @@
1
- import{o}from"./index-Btfv_3-Q.js";/**
1
+ import{o}from"./index-Kp5r4mc7.js";/**
2
2
  * @license lucide-react v0.562.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{T as D,W as _}from"./react-C7aGt3wN.js";import{r as p,a as A,b as u,c as z,i as N,M as O,C,f as k,d as q,e as L,g as V,h as j,s as B,j as G,k as H,l as J,m as W,n as K,o as Q}from"./meta2d-DP4Vt_ZE.js";import"./react-vendor-BVS1XoFi.js";import"./editor-DBWWidi3.js";import"./ui-CEFkTVnG.js";import"./motion-BAXVQJfN.js";import"./diagram-BF8g9yg4.js";import"./index-Btfv_3-Q.js";import"./plus-DvWl4lHk.js";import"./copy-J9XXv57X.js";import"./check-BAYRiedE.js";let E=!1;function U(){E||(p(k()),A(q()),p(L()),u(V()),p(j()),p(B()),u(G()),z(),u(H()),u(J()),p(W()),u(K()),A(Q()),E=!0)}let F=!1;function Z(){F||(U(),F=!0)}function Y(e,r){try{e==null||e.destroy()}catch{}try{r.remove()}catch{}}function X(e){let r=e.font;Object.defineProperty(e,"font",{configurable:!0,get:()=>r,set:t=>{r=typeof t=="string"?t.replace(/(\d+(?:\.\d+)?(?:px|pt|pc|em|ex|%|in|cm|mm))\s*\/\s*(\d+(?:\.\d+)?)(?=\s|$)/,"$1/normal"):t,e.__ctx&&(e.__ctx.font=r)}})}function ee(e){typeof e.ellipse!="function"&&(e.ellipse=(r,t,n,a,s=0,o=0,m=Math.PI*2,i=!1)=>{var M;if(n<0||a<0)throw new Error("IndexSizeError: The radius provided is negative.");((M=e.__currentElement)==null?void 0:M.nodeName)!=="path"&&e.beginPath();const h=Math.PI*2,f=Math.abs(m-o),y=f>=h-1e-4||f===0,w=s*180/Math.PI,v=i?0:1,c=g=>{const l=Math.cos(g),S=Math.sin(g),b=Math.cos(s),x=Math.sin(s);return{x:r+n*l*b-a*S*x,y:t+n*l*x+a*S*b}},d=(g,l)=>{e.__addPathCommand(`A ${n} ${a} ${w} ${g} ${v} ${l.x} ${l.y}`),e.__currentPosition=l},P=c(o);if(e.moveTo(P.x,P.y),y){d(1,c(o+Math.PI)),d(1,P);return}const T=c(m);d(f>Math.PI?1:0,T)})}function $(){return new Promise(e=>{requestAnimationFrame(()=>e())})}async function I(){await $(),await $()}function R(){const e=C.default??C.C2S??C;if(typeof e=="function")return e;const r=window.C2S;return typeof r=="function"?r:null}async function te(e,r=R()){var f,y,w,v;if(!r)return console.error("[meta2d] preview failed: canvas2svg constructor missing"),"";D(e.data()),e.render(!0),await I();const t=e.store,n=(f=t==null?void 0:t.data)==null?void 0:f.pens,a=Array.isArray(n)?n.length:0,s=10,o=e.getRect();if(!o||!Number.isFinite(o.width)||!Number.isFinite(o.height)||o.width<=0||o.height<=0)return a===0?_:(console.error("[meta2d] preview failed: invalid bounds",o),"");const m={...o,x:o.x-s,y:o.y-s},i=new r(Math.ceil(o.width+s*2),Math.ceil(o.height+s*2));if(i.textBaseline="middle",i.strokeStyle=((y=t==null?void 0:t.styles)==null?void 0:y.color)||"#1f1f1f",X(i),ee(i),Array.isArray(n)&&t){for(const c of n)if(!((c==null?void 0:c.visible)===!1||!N(c,t)))try{e.renderPenRaw(i,c,m,!0)}catch(d){console.error("[meta2d] preview failed: render pen",c,d)}}const h=((v=(w=i.getSerializedSvg)==null?void 0:w.call(i))==null?void 0:v.replace(/--le5le--/g,"&#x"))??"";return h.trim()?h:a===0?_:(console.error("[meta2d] preview failed: serialized SVG is empty",{pensCount:a}),"")}async function ue(e){const r=R();if(!r)return console.error("[meta2d] preview failed: canvas2svg constructor missing"),"";Z();const t=document.createElement("div");t.style.cssText="position:fixed;left:-20000px;top:0;width:1200px;height:800px;pointer-events:none;z-index:-1;",document.body.append(t);let n=null;try{let a;try{a=JSON.parse(e)}catch(s){return console.error("[meta2d] preview failed: invalid diagram JSON",s,e),""}return n=new O(t,{background:"#fff",grid:!1,rule:!1}),D(a),n.open(a),n.render(!0),await I(),te(n,r)}catch(a){return console.error("[meta2d] preview failed: unexpected error",a),""}finally{Y(n,t)}}export{Z as ensureMeta2dShapes,ue as generateSvgFromDiagram,te as generateSvgFromMeta2d};
1
+ import{T as D,W as _}from"./react-DsdrF7vh.js";import{r as p,a as A,b as u,c as z,i as N,M as O,C,f as k,d as q,e as L,g as V,h as j,s as B,j as G,k as H,l as J,m as W,n as K,o as Q}from"./meta2d-DP4Vt_ZE.js";import"./react-vendor-BVS1XoFi.js";import"./editor-DBWWidi3.js";import"./ui-CEFkTVnG.js";import"./motion-BAXVQJfN.js";import"./diagram-BF8g9yg4.js";import"./index-Kp5r4mc7.js";import"./plus-D8tCpRfA.js";import"./copy-C_H9wgwB.js";import"./check-NyVbPIj8.js";let E=!1;function U(){E||(p(k()),A(q()),p(L()),u(V()),p(j()),p(B()),u(G()),z(),u(H()),u(J()),p(W()),u(K()),A(Q()),E=!0)}let F=!1;function Z(){F||(U(),F=!0)}function Y(e,r){try{e==null||e.destroy()}catch{}try{r.remove()}catch{}}function X(e){let r=e.font;Object.defineProperty(e,"font",{configurable:!0,get:()=>r,set:t=>{r=typeof t=="string"?t.replace(/(\d+(?:\.\d+)?(?:px|pt|pc|em|ex|%|in|cm|mm))\s*\/\s*(\d+(?:\.\d+)?)(?=\s|$)/,"$1/normal"):t,e.__ctx&&(e.__ctx.font=r)}})}function ee(e){typeof e.ellipse!="function"&&(e.ellipse=(r,t,n,a,s=0,o=0,m=Math.PI*2,i=!1)=>{var M;if(n<0||a<0)throw new Error("IndexSizeError: The radius provided is negative.");((M=e.__currentElement)==null?void 0:M.nodeName)!=="path"&&e.beginPath();const h=Math.PI*2,f=Math.abs(m-o),y=f>=h-1e-4||f===0,w=s*180/Math.PI,v=i?0:1,c=g=>{const l=Math.cos(g),S=Math.sin(g),b=Math.cos(s),x=Math.sin(s);return{x:r+n*l*b-a*S*x,y:t+n*l*x+a*S*b}},d=(g,l)=>{e.__addPathCommand(`A ${n} ${a} ${w} ${g} ${v} ${l.x} ${l.y}`),e.__currentPosition=l},P=c(o);if(e.moveTo(P.x,P.y),y){d(1,c(o+Math.PI)),d(1,P);return}const T=c(m);d(f>Math.PI?1:0,T)})}function $(){return new Promise(e=>{requestAnimationFrame(()=>e())})}async function I(){await $(),await $()}function R(){const e=C.default??C.C2S??C;if(typeof e=="function")return e;const r=window.C2S;return typeof r=="function"?r:null}async function te(e,r=R()){var f,y,w,v;if(!r)return console.error("[meta2d] preview failed: canvas2svg constructor missing"),"";D(e.data()),e.render(!0),await I();const t=e.store,n=(f=t==null?void 0:t.data)==null?void 0:f.pens,a=Array.isArray(n)?n.length:0,s=10,o=e.getRect();if(!o||!Number.isFinite(o.width)||!Number.isFinite(o.height)||o.width<=0||o.height<=0)return a===0?_:(console.error("[meta2d] preview failed: invalid bounds",o),"");const m={...o,x:o.x-s,y:o.y-s},i=new r(Math.ceil(o.width+s*2),Math.ceil(o.height+s*2));if(i.textBaseline="middle",i.strokeStyle=((y=t==null?void 0:t.styles)==null?void 0:y.color)||"#1f1f1f",X(i),ee(i),Array.isArray(n)&&t){for(const c of n)if(!((c==null?void 0:c.visible)===!1||!N(c,t)))try{e.renderPenRaw(i,c,m,!0)}catch(d){console.error("[meta2d] preview failed: render pen",c,d)}}const h=((v=(w=i.getSerializedSvg)==null?void 0:w.call(i))==null?void 0:v.replace(/--le5le--/g,"&#x"))??"";return h.trim()?h:a===0?_:(console.error("[meta2d] preview failed: serialized SVG is empty",{pensCount:a}),"")}async function ue(e){const r=R();if(!r)return console.error("[meta2d] preview failed: canvas2svg constructor missing"),"";Z();const t=document.createElement("div");t.style.cssText="position:fixed;left:-20000px;top:0;width:1200px;height:800px;pointer-events:none;z-index:-1;",document.body.append(t);let n=null;try{let a;try{a=JSON.parse(e)}catch(s){return console.error("[meta2d] preview failed: invalid diagram JSON",s,e),""}return n=new O(t,{background:"#fff",grid:!1,rule:!1}),D(a),n.open(a),n.render(!0),await I(),te(n,r)}catch(a){return console.error("[meta2d] preview failed: unexpected error",a),""}finally{Y(n,t)}}export{Z as ensureMeta2dShapes,ue as generateSvgFromDiagram,te as generateSvgFromMeta2d};
@@ -1,4 +1,4 @@
1
- import{o}from"./index-Btfv_3-Q.js";/**
1
+ import{o}from"./index-Kp5r4mc7.js";/**
2
2
  * @license lucide-react v0.562.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/html-GMplVEZG.js","assets/javascript-wDzz0qaB.js","assets/css-DPfMkruS.js","assets/scss-OYdSNvt2.js","assets/vue-DVfSmUF7.js","assets/typescript-BPQ3VLAy.js","assets/json-Cp-IABpG.js","assets/svelte-DZMnMd3x.js","assets/xml-sdJ4AIDG.js","assets/java-CylS5w8V.js","assets/cpp-BRuaLJcg.js","assets/c-BIGW1oBm.js","assets/sql-BLtJtn59.js","assets/ruby-BGX7qA9Y.js","assets/graphql-ChdNCCLP.js","assets/jsx-g9-lgVsj.js","assets/tsx-COt5Ahok.js","assets/shellscript-Yzrsuije.js","assets/lua-BaeVxFsk.js","assets/yaml-Buea-lGh.js","assets/php-Dhbhpdrm.js","assets/shellsession-BADoaaVG.js","assets/nginx-BpAMiNFr.js","assets/meta2dEngine-BD2XbzaV-MY1Hyyeh.js","assets/meta2d-DP4Vt_ZE.js","assets/react-vendor-BVS1XoFi.js","assets/editor-DBWWidi3.js","assets/ui-CEFkTVnG.js","assets/motion-BAXVQJfN.js","assets/diagram-BF8g9yg4.js","assets/index-Btfv_3-Q.js","assets/index-C1Mc0Svw.css","assets/plus-DvWl4lHk.js","assets/copy-J9XXv57X.js","assets/check-BAYRiedE.js","assets/DiagramEditor-NtNY3sZL-KWdKFFEL.js"])))=>i.map(i=>d[i]);
2
- var x7=Object.defineProperty;var k7=(e,t,n)=>t in e?x7(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Mn=(e,t,n)=>k7(e,typeof t!="symbol"?t+"":t,n);import{B as eb,_ as Oe,r as E,af as w7,ag as v7,ah as S7,ai as Dn,aj as Xh,ak as Em,al as C7,j as O,b as Pi,am as _7,an as E7,ao as T7,ap as A7,z as M7,C as Jh,aq as N7,ar as D7,as as I7,at as L7}from"./react-vendor-BVS1XoFi.js";import{P as ze,e as Yh,A as ru,a as Ut,b as tb,w as de,c as fn,k as Cn,n as lt,F as Wr,p as Bi,$ as ce,O as Ln,G as pr,d as gs,l as gd,z as Sn,r as gt,v as nb,B as je,X as Fn,T as rb,M as Il,L as Ai,W as ml,f as hi,g as bs,h as So,C as Zh,Y as ib,y as Pt,i as Ll,H as Xe,j as F7,t as O7,m as Lo,J as bn,o as sb,R as fi,S as iu,Q as Zn,q as ob,s as z7,u as Aa,x as mt,E as R7,D as yc,I as P7,K as B7,_ as $7,N as su,U as bd,Z as ys,a0 as Co,a1 as Tt,a2 as ab,a3 as yn,a4 as j7,a5 as q7,a6 as Hr,a7 as Li,a8 as Fl,a9 as _n,aa as yd,ab as H7,ac as ub,ad as xd,ae as kd,af as _o,V as hn,ag as lb,ah as Qh,ai as U7,aj as cb,ak as W7,al as K7,am as V7,an as G7,ao as hb,ap as Qn,aq as X7,ar as jr,as as qn,at as xs,au as Tm,av as Am,aw as J7,ax as Y7,ay as Z7,az as Q7,aA as Ma,aB as fb,aC as db,aD as aa,aE as Na,aF as ou,aG as ek,aH as ef,aI as Mm,aJ as tk,aK as nk,aL as pb,aM as rk,aN as ik,aO as sk,aP as wd,aQ as Rr,aR as Eo,aS as vd,aT as ma,aU as fs,aV as Da,aW as tf,aX as Nm,aY as ga,aZ as gl,a_ as Ol,a$ as ok,b0 as ak,b1 as uk,b2 as lk,b3 as ck,b4 as Pr,b5 as hk,b6 as fk,b7 as dk,b8 as Dm,b9 as bl,ba as Im,bb as pk,bc as mk,bd as gk,be as bk,bf as ks,bg as Lm,bh as nf,bi as yk,bj as xk,bk as kk,bl as wk,bm as Fm,bn as ii,bo as Ia,bp as rf,bq as vk,br as ua,bs as mb,bt as gb,bu as bb,bv as yb,bw as xb,bx as Sk,by as Ck,bz as Sd,bA as kb,bB as _k,bC as Ek,bD as Cd,bE as Tk,bF as sf,bG as wb,bH as vb,bI as Ak,bJ as Mk,bK as Ju,bL as Sb,bM as Nk,bN as Dk,bO as Ik,bP as Cb,bQ as Lk,bR as Fk,bS as _b,bT as zl,bU as Ok,bV as zk,bW as Rk}from"./editor-DBWWidi3.js";import{as as tt,at,au as Pk,av as La,aw as Bk,ax as Rl,ay as $k,az as wi,aA as Zo,aB as jk,aC as qk,aD as Hk,aE as Uk,aF as Wk,aG as Kk,aH as Vk,aI as Gk,ad as _d,aJ as Xk,aK as It,ac as qr,aL as of,aM as Fa,aN as Ue,aO as Pl,aP as Eb,aQ as Jk,aR as zn,aS as Yk,aT as Zk,aU as Qk,aV as au,aW as Ed,aX as af,aY as Bl,aZ as Tb,a_ as ew,a$ as Om,b0 as tw,b1 as nw,t as uf,b2 as Ab,b3 as rw,b4 as iw,b5 as Mb,b6 as Nb,b7 as sw}from"./ui-CEFkTVnG.js";import{i as B0,j as ow,k as aw,l as uw,n as zm,e as Qo,s as lw,y as cw,h as Rm,m as Pm,r as hw,u as fw,v as dw,o as pw,w as mw,x as Db}from"./diagram-BF8g9yg4.js";import{o as xn,be as gw,aZ as Td,aK as bw}from"./index-Btfv_3-Q.js";import{P as Bm}from"./plus-DvWl4lHk.js";import{a as yw,C as xw}from"./copy-J9XXv57X.js";import{C as kw}from"./check-BAYRiedE.js";/**
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/html-GMplVEZG.js","assets/javascript-wDzz0qaB.js","assets/css-DPfMkruS.js","assets/scss-OYdSNvt2.js","assets/vue-DVfSmUF7.js","assets/typescript-BPQ3VLAy.js","assets/json-Cp-IABpG.js","assets/svelte-DZMnMd3x.js","assets/xml-sdJ4AIDG.js","assets/java-CylS5w8V.js","assets/cpp-BRuaLJcg.js","assets/c-BIGW1oBm.js","assets/sql-BLtJtn59.js","assets/ruby-BGX7qA9Y.js","assets/graphql-ChdNCCLP.js","assets/jsx-g9-lgVsj.js","assets/tsx-COt5Ahok.js","assets/shellscript-Yzrsuije.js","assets/lua-BaeVxFsk.js","assets/yaml-Buea-lGh.js","assets/php-Dhbhpdrm.js","assets/shellsession-BADoaaVG.js","assets/nginx-BpAMiNFr.js","assets/meta2dEngine-BD2XbzaV-CUKxedXW.js","assets/meta2d-DP4Vt_ZE.js","assets/react-vendor-BVS1XoFi.js","assets/editor-DBWWidi3.js","assets/ui-CEFkTVnG.js","assets/motion-BAXVQJfN.js","assets/diagram-BF8g9yg4.js","assets/index-Kp5r4mc7.js","assets/index-CervldVc.css","assets/plus-D8tCpRfA.js","assets/copy-C_H9wgwB.js","assets/check-NyVbPIj8.js","assets/DiagramEditor-NtNY3sZL-D7sapmVz.js"])))=>i.map(i=>d[i]);
2
+ var x7=Object.defineProperty;var k7=(e,t,n)=>t in e?x7(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Mn=(e,t,n)=>k7(e,typeof t!="symbol"?t+"":t,n);import{B as eb,_ as Oe,r as E,af as w7,ag as v7,ah as S7,ai as Dn,aj as Xh,ak as Em,al as C7,j as O,b as Pi,am as _7,an as E7,ao as T7,ap as A7,z as M7,C as Jh,aq as N7,ar as D7,as as I7,at as L7}from"./react-vendor-BVS1XoFi.js";import{P as ze,e as Yh,A as ru,a as Ut,b as tb,w as de,c as fn,k as Cn,n as lt,F as Wr,p as Bi,$ as ce,O as Ln,G as pr,d as gs,l as gd,z as Sn,r as gt,v as nb,B as je,X as Fn,T as rb,M as Il,L as Ai,W as ml,f as hi,g as bs,h as So,C as Zh,Y as ib,y as Pt,i as Ll,H as Xe,j as F7,t as O7,m as Lo,J as bn,o as sb,R as fi,S as iu,Q as Zn,q as ob,s as z7,u as Aa,x as mt,E as R7,D as yc,I as P7,K as B7,_ as $7,N as su,U as bd,Z as ys,a0 as Co,a1 as Tt,a2 as ab,a3 as yn,a4 as j7,a5 as q7,a6 as Hr,a7 as Li,a8 as Fl,a9 as _n,aa as yd,ab as H7,ac as ub,ad as xd,ae as kd,af as _o,V as hn,ag as lb,ah as Qh,ai as U7,aj as cb,ak as W7,al as K7,am as V7,an as G7,ao as hb,ap as Qn,aq as X7,ar as jr,as as qn,at as xs,au as Tm,av as Am,aw as J7,ax as Y7,ay as Z7,az as Q7,aA as Ma,aB as fb,aC as db,aD as aa,aE as Na,aF as ou,aG as ek,aH as ef,aI as Mm,aJ as tk,aK as nk,aL as pb,aM as rk,aN as ik,aO as sk,aP as wd,aQ as Rr,aR as Eo,aS as vd,aT as ma,aU as fs,aV as Da,aW as tf,aX as Nm,aY as ga,aZ as gl,a_ as Ol,a$ as ok,b0 as ak,b1 as uk,b2 as lk,b3 as ck,b4 as Pr,b5 as hk,b6 as fk,b7 as dk,b8 as Dm,b9 as bl,ba as Im,bb as pk,bc as mk,bd as gk,be as bk,bf as ks,bg as Lm,bh as nf,bi as yk,bj as xk,bk as kk,bl as wk,bm as Fm,bn as ii,bo as Ia,bp as rf,bq as vk,br as ua,bs as mb,bt as gb,bu as bb,bv as yb,bw as xb,bx as Sk,by as Ck,bz as Sd,bA as kb,bB as _k,bC as Ek,bD as Cd,bE as Tk,bF as sf,bG as wb,bH as vb,bI as Ak,bJ as Mk,bK as Ju,bL as Sb,bM as Nk,bN as Dk,bO as Ik,bP as Cb,bQ as Lk,bR as Fk,bS as _b,bT as zl,bU as Ok,bV as zk,bW as Rk}from"./editor-DBWWidi3.js";import{as as tt,at,au as Pk,av as La,aw as Bk,ax as Rl,ay as $k,az as wi,aA as Zo,aB as jk,aC as qk,aD as Hk,aE as Uk,aF as Wk,aG as Kk,aH as Vk,aI as Gk,ad as _d,aJ as Xk,aK as It,ac as qr,aL as of,aM as Fa,aN as Ue,aO as Pl,aP as Eb,aQ as Jk,aR as zn,aS as Yk,aT as Zk,aU as Qk,aV as au,aW as Ed,aX as af,aY as Bl,aZ as Tb,a_ as ew,a$ as Om,b0 as tw,b1 as nw,t as uf,b2 as Ab,b3 as rw,b4 as iw,b5 as Mb,b6 as Nb,b7 as sw}from"./ui-CEFkTVnG.js";import{i as B0,j as ow,k as aw,l as uw,n as zm,e as Qo,s as lw,y as cw,h as Rm,m as Pm,r as hw,u as fw,v as dw,o as pw,w as mw,x as Db}from"./diagram-BF8g9yg4.js";import{o as xn,bj as gw,a$ as Td,aL as bw}from"./index-Kp5r4mc7.js";import{P as Bm}from"./plus-D8tCpRfA.js";import{a as yw,C as xw}from"./copy-C_H9wgwB.js";import{C as kw}from"./check-NyVbPIj8.js";/**
3
3
  * @license lucide-react v0.562.0 - ISC
4
4
  *
5
5
  * This source code is licensed under the ISC license.
@@ -1729,7 +1729,7 @@ ${this.__markdown}
1729
1729
  ## 分支 2`,style:{border:"none",flex:1,fontFamily:"monospace",fontSize:14,lineHeight:1.6,outline:"none",padding:16,resize:"none"},value:r})]}),O.jsx("div",{style:{display:"flex",flexDirection:"column",width:"50%"},children:O.jsx(Wx,{markdown:r})})]})]})}function Oq({className:e,editor:t,node:n}){const[r,i]=E.useState(!1),s=n.__markdown;E.useLayoutEffect(()=>{const u=n.getKey();let l=!1;t.getEditorState().read(()=>{const h=ze(u);h&&j4(h)&&h.__autoOpenEditor&&(l=!0)}),l&&(i(!0),t.update(()=>{const h=ze(u);h&&j4(h)&&h.__autoOpenEditor&&h.clearAutoOpenEditor()}))},[t,n.getKey()]);const o=E.useCallback(()=>{t.update(()=>{const u=n.getLatest(),l=u.getNextSibling(),h=u.getPreviousSibling();if(u.remove(),l){l.selectStart();return}h&&h.selectEnd()})},[t,n]),a=E.useCallback(u=>{t.update(()=>{n.updateMarkdown(u)}),i(!1)},[t,n]);return r?O.jsx("div",{className:e,children:O.jsx(Fq,{markdown:s,onClose:()=>i(!1),onSave:a})}):O.jsxs("div",{className:e,style:{margin:"8px 0",position:"relative"},children:[O.jsxs("div",{style:{bottom:8,display:"flex",gap:4,position:"absolute",right:8,zIndex:10},children:[O.jsx("button",{onClick:()=>i(!0),style:{background:"rgba(0,0,0,0.5)",border:"none",borderRadius:4,color:"#fff",cursor:"pointer",fontSize:12,padding:"4px 8px"},type:"button",children:"编辑"}),O.jsx("button",{onClick:o,style:{background:"rgba(255,77,79,0.7)",border:"none",borderRadius:4,color:"#fff",cursor:"pointer",fontSize:12,padding:"4px 8px"},type:"button",children:"删除"})]}),O.jsx("div",{style:{border:"1px solid #f0f0f0",borderRadius:8,height:350},children:O.jsx(Wx,{markdown:s})})]})}function yU({className:e,theme:t}){const[n]=_t(),r=E.useCallback((s,o)=>O.jsx(Oq,{className:e,editor:o,node:s}),[e]),i=E.useRef(!1);return i.current||(i.current=!0,n.registerPlugin(Lq,{decorator:r,theme:t})),null}const zq=lt("INSERT_MATH_COMMAND"),Kx=lt("UPDATE_MATH_COMMAND"),Nl=lt("SELECT_MATH_SIDE_COMMAND");function Rq(e){return gt(e.registerCommand(zq,t=>{const{code:n}=t;return e.update(()=>{const r=cu(n);_n([r]),qn(r.getParentOrThrow())&&xs(r,hn).selectEnd()}),!0},Fn),e.registerCommand(Kx,t=>{const{code:n,key:r}=t;return e.update(()=>{const i=ze(r);i&&(i.updateCode(n),i.selectNext())}),!0},Fn),e.registerCommand(Nl,t=>{const{key:n,prev:r}=t;return e.update(()=>{const i=ze(n);i&&(r?i.selectPrevious():i.selectNext())}),!0},Fn))}function Pq(e){const t=e.trim();return t?!!(/\\[A-Za-z]/.test(t)||/[\d!()*+,/<=>^_{|}-]/.test(t)||/^[A-Za-z]$/.test(t)):!1}rn();Bt();Ot();var wo;const Bq=(wo=class extends zt{constructor(t,n){super(),this.kernel=t,this.config=n,this.logger=Qe("plugin","math"),t.registerNodes([xa,Fi]),n!=null&&n.theme&&t.registerThemes(n==null?void 0:n.theme),this.registerDecorator(t,xa.getType(),(r,i)=>n!=null&&n.decorator?n.decorator(r,i):null),this.registerDecorator(t,Fi.getType(),(r,i)=>n!=null&&n.decorator?n.decorator(r,i):null)}onInit(t){this.register(Rq(t)),this.registerMarkdown()}registerMarkdown(){const t=this.kernel.requireService(Lt);t==null||t.registerMarkdownShortCut({regExp:/\$([^\s$](?:[^$]*[^\s$])?)\$\s?$/,replace:(n,r)=>{const[,i]=r;if(!Pq(i))return;const s=cu(i);this.logger.debug("Math node inserted:",s),n.insertBefore(s),n.setTextContent(""),n.select()},trigger:"$",type:"text-match"}),t==null||t.registerMarkdownShortCut({regExp:/^(\$\$)$/,replace:(n,r,i,s)=>{const o=wc();s||n.getNextSibling()?n.replace(o):n.insertBefore(o);const a=bn();a.add(o.getKey()),je(a)},trigger:"enter",type:"element"}),t==null||t.registerMarkdownWriter(xa.getType(),(n,r)=>(n.appendLine(r.getTextContent()),!0)),t==null||t.registerMarkdownWriter(Fi.getType(),(n,r)=>(n.appendLine(r.getTextContent()),!0)),t==null||t.registerMarkdownReader("inlineMath",n=>ke.createElementNode("math",{code:n.value,version:1})),t==null||t.registerMarkdownReader("math",n=>ke.createElementNode("mathBlock",{code:n.value,version:1}))}},wo.pluginName="MathPlugin",wo),Vx=E.memo(({children:e,isBlockMode:t,mathDOM:n,onFocus:r,prev:i})=>{const s=E.useRef(null),[o,a]=E.useState(void 0),u=E.useRef(void 0),l=E.useCallback(m=>{const y=typeof m=="number"?Math.round(m):void 0;u.current!==y&&(u.current=y,a(y))},[]),h=E.useCallback(()=>{if(!t){l(void 0);return}const m=n==null?void 0:n.closest('[contenteditable="true"]');m&&l(m.getBoundingClientRect().width)},[t,n,l]),d=E.useCallback(()=>Zc({callback:()=>{!s.current||!n||(r==null||r(),h())},floating:s.current,placement:t?"bottom-start":"bottom",reference:n}),[t,n,r,h]),g=E.useCallback(()=>{n&&d()},[n,d]);return E.useEffect(()=>{if(!n||!s.current)return;const m=s.current,y=new ResizeObserver(()=>{h()});y.observe(m);let w=null;return t&&(w=n.closest('[contenteditable="true"]'),w&&y.observe(w)),d(),window.addEventListener("resize",d),()=>{y.disconnect(),window.removeEventListener("resize",d)}},[n,i,t,d]),E.useEffect(()=>{n||!s.current||tu(s.current)},[n]),O.jsx(au,{arrow:!1,content:O.jsx(It,{className:zi.mathEditor,"data-math-editor-container":!0,style:o?{width:o}:void 0,children:e}),open:!!n,placement:t?"bottomLeft":"bottom",styles:{content:{borderRadius:"6px",padding:0}},children:O.jsx("span",{className:zi.mathEditorAnchor,onClick:g,ref:s})})});Vx.displayName="MathEditorContainer";Hb();const Gx=E.memo(({focusRef:e,mathNode:t,onArrowLeft:n,onArrowRight:r,onCancel:i,onDelete:s,onSubmit:o,onValidationChange:a,onValueChange:u,value:l})=>{const h=nr(),d=E.useRef(null),[g,m]=E.useState("");E.useEffect(()=>{e==null||e(d.current)},[e]),E.useEffect(()=>{if(!t)return;if(!l.trim()){m(""),a==null||a(!0);return}const w=setTimeout(()=>{try{tw(l,{displayMode:!0,throwOnError:!0}),m(""),a==null||a(!0)}catch(_){m(_ instanceof Error?_.message:"LaTeX Parse Error"),a==null||a(!1)}},50);return()=>clearTimeout(w)},[l,t,a]);const y=E.useCallback(w=>{if(t){if(ob(w,qb)&&w.key==="Enter"){w.preventDefault(),o();return}if(w.key==="Escape"){w.preventDefault(),i();return}if(w.key==="Backspace"&&!l.trim()){w.preventDefault(),s();return}w.key==="ArrowLeft"&&w.currentTarget.selectionStart===0&&(w.preventDefault(),n()),w.key==="ArrowRight"&&w.currentTarget.selectionStart===w.currentTarget.value.length&&(w.preventDefault(),r())}},[t,o,i,s,n,r,l]);return O.jsxs(O.Fragment,{children:[O.jsx(nw,{autoFocus:!0,autoSize:{maxRows:6,minRows:1},className:zi.mathEditorTextArea,onChange:w=>{u(w.target.value)},onKeyDown:y,placeholder:`${h("math.placeholder")}...`,ref:d,resize:!1,value:l,variant:"borderless"}),g&&O.jsx(It,{className:zi.mathEditorFooter,horizontal:!0,paddingBlock:4,paddingInline:12,width:"100%",children:O.jsx(qr,{fontSize:13,type:"danger",children:g})}),O.jsx(It,{className:zi.mathEditorFooter,horizontal:!0,justify:"flex-end",padding:4,width:"100%",children:O.jsxs(Pl,{onClick:w=>{w.preventDefault(),o()},size:"small",type:"text",variant:"filled",children:[h("confirm"),O.jsx(Eb,{compact:!0,keys:"mod+enter",variant:"borderless"})]})})]})});Gx.displayName="MathEditorContent";kr();const $q=E.memo(({renderComp:e})=>{const t=E.useRef(null),n=E.useRef(!1),[r,i]=E.useState(null),[s,o]=E.useState(""),a=E.useRef(""),u=E.useRef(!0),[l,h]=E.useState(null),[d,g]=E.useState(!1),[m,y]=E.useState(!1),[w,_]=E.useState(!1),[v]=_t();E.useEffect(()=>{if(!r||!u.current)return;const z=setTimeout(()=>{const V=v.getLexicalEditor();if(V&&!n.current){const X=r.code;if(s&&X&&X===s)return;n.current=!0,V.update(()=>{if(V.getEditorState().read(()=>V.getElementByKey(r.getKey()))){const ee=r.getWritable();ee.__code=s}}),setTimeout(()=>{n.current=!1},50)}},50);return()=>clearTimeout(z)},[s,r,v]);const M=E.useCallback(()=>{if(!r)return;const z=v.getLexicalEditor();if(z){const V=u.current?s:a.current;z.dispatchCommand(Kx,{code:V,key:r.getKey()})}},[v,r,s]),T=E.useCallback(()=>{if(!r)return;const z=v.getLexicalEditor();z&&(z.dispatchCommand(Nl,{key:r.getKey(),prev:!1}),z.focus())},[r,v]),D=E.useCallback(()=>{if(!r)return;const z=v.getLexicalEditor();z&&z.update(()=>{r.remove()})},[r,v]),R=E.useCallback(()=>{r&&v.dispatchCommand(Nl,{key:r.getKey(),prev:!0})},[r,v]),F=E.useCallback(()=>{r&&v.dispatchCommand(Nl,{key:r.getKey(),prev:!1})},[r,v]),j=E.useCallback(()=>{var z,V,X,ee;(z=t.current)==null||z.focus(),d&&((ee=(X=(V=t.current)==null?void 0:V.resizableTextArea)==null?void 0:X.textArea)==null||ee.setSelectionRange(0,0))},[d]),K=E.useCallback(z=>{t.current=z},[]);br(z=>gt(z.registerUpdateListener(({prevEditorState:V})=>{if(n.current)return;const X=z.getEditorState().read(()=>{const ee=ce();if(!Ln(ee))return!1;const Q=ee.getNodes()[0];if(!x3(Q))return!1;const ae=r&&r.getKey()===Q.getKey();return i(Q),!ae&&Q.code!==s&&(o(Q.code),a.current=Q.code,u.current=!0),h(z.getElementByKey(Q.getKey())),y(Q instanceof Fi),Q});if(X){const ee=V.read(()=>{const Q=V._selection;return de(Q)?Q.anchor.key:!1});z.getEditorState().read(()=>{const Q=ee?ze(ee):null;Q&&h9(Q,X)<0?g(!0):g(!1)}),_(!0)}X||(i(null),h(null),o(""),a.current="",u.current=!0,y(!1),_(!1))})),[r,s]);const U=O.jsx(Gx,{focusRef:K,mathNode:r,onArrowLeft:R,onArrowRight:F,onCancel:T,onDelete:D,onSubmit:M,onValidationChange:z=>{u.current=z,z&&(a.current=s)},onValueChange:o,value:s});return E.useEffect(()=>{if(!w)return;const z=V=>{const X=V.target;X&&(Array.from(document.querySelectorAll("[data-math-editor-container]")).some(ee=>ee&&ee.contains(X))||T())};return document.addEventListener("mousedown",z),document.addEventListener("touchstart",z),()=>{document.removeEventListener("mousedown",z),document.removeEventListener("touchstart",z)}},[w,T]),e?O.jsx(O.Fragment,{children:e({children:O.jsx("div",{"data-math-editor-container":!0,children:U}),open:w})}):O.jsx(Yc,{children:O.jsx(Vx,{isBlockMode:m,mathDOM:l,onFocus:j,prev:d,children:U})})}),jq=({mathBlock:e})=>{const t=nr(),n=O.jsx(qr,{as:"span",className:at("katex",zi.mathPlaceholder),fontSize:e?"1.2em":"1em",type:"secondary",children:t("math.placeholder")});return e?O.jsx(af,{padding:18,width:"100%",children:n}):n};Ot();const qq=Qe("plugin","math"),Hq=({editor:e,node:t,className:n})=>{const r=E.useRef(null),[i,s,o]=zo(t.getKey()),[a,u]=E.useState(!1),l=t instanceof Fi;return E.useEffect(()=>{r.current&&t.code&&Yk.render(t.code,r.current,{displayMode:t instanceof Fi,throwOnError:!1})},[t.code]),E.useEffect(()=>{const h=e.getElementByKey(t.getKey());if(h){const d=setTimeout(()=>{a?(Ut(h,"editing"),ua(h,"selected")):i?(Ut(h,"selected"),ua(h,"editing")):(ua(h,"selected"),ua(h,"editing"))},10);return()=>clearTimeout(d)}},[i,a,e,t]),br(h=>h.registerUpdateListener(()=>{h.getEditorState().read(()=>{const d=ce();if(!Ln(d)){u(!1);return}const g=d.getNodes()[0];if(!x3(g)){u(!1);return}g.getKey()===t.getKey()?u(!0):u(!1)})}),[t]),O.jsx("span",{className:n,onClick:E.useCallback(h=>{qq.debug("📊 Math click event:",h.target===r.current),h.preventDefault(),h.stopPropagation(),i&&o(),s(!0),e.focus()},[o,e,i,s]),ref:r,children:t.code?t.code:O.jsx(jq,{mathBlock:l})})},Uq=({className:e,renderComp:t,theme:n})=>{const[r]=_t();return E.useLayoutEffect(()=>{r.registerPlugin(Vi),r.registerPlugin(Bq,{decorator:(i,s)=>O.jsx(Hq,{className:e,editor:s,node:i}),theme:n||zi})},[r,e,n,zi]),O.jsx($q,{renderComp:t})};Uq.displayName="ReactMathPlugin";var Gs=class Dl extends Wr{static getType(){return"meta2d"}static clone(t){return new Dl(t.__diagram,t.__svg,t.__key,t.__autoOpenEditor)}static importJSON(t){return new Dl(t.diagram,t.svg)}constructor(t="",n="",r,i=!1){super(r),this.__diagram=t,this.__svg=n,this.__autoOpenEditor=i}clearAutoOpenEditor(){const t=this.getWritable();t.__autoOpenEditor=!1}createDOM(t){const n=document.createElement("div");return Ut(n,t.theme.meta2d??"editor-meta2d"),n}decorate(t){var r;const n=(r=Hi(t))==null?void 0:r.getDecorator(Dl.getType());return n?typeof n=="function"?n(this,t):{queryDOM:n.queryDOM,render:n.render(this,t)}:null}exportJSON(){return{...super.exportJSON(),diagram:this.__diagram,svg:this.__svg}}getTextContent(){return`---meta2d---
1730
1730
  ${this.__diagram}
1731
1731
  ---/meta2d---
1732
- `}isInline(){return!1}updateDiagram(t,n){const r=this.getWritable();r.__diagram=t,r.__svg=n}updateDOM(){return!1}};function Xx(e="",t="",n){return Cn(new Gs(e,t,void 0,(n==null?void 0:n.autoOpenEditor)??!1))}function H4(e){return e instanceof Gs}const Wq=lt("INSERT_META2D_COMMAND");function Kq(e){return e.registerCommand(Wq,t=>(e.update(()=>{var n;_n([Xx(((n=t==null?void 0:t.diagram)==null?void 0:n.trim())||Cl,(t==null?void 0:t.svg)!==void 0&&t.svg.trim()!==""?t.svg:nc,{autoOpenEditor:(t==null?void 0:t.autoOpenEditor)??!0})])}),!0),Tt)}rn();Bt();const Vq=/^---meta2d---$/i,Gq=/---meta2d---(\\n?)([\S\s]*?)\n?---\/meta2d---/i;function Xq(e){return(e.children||[]).map(t=>"value"in t&&typeof t.value=="string"?t.value:"").join("")}var vo;const Jq=(vo=class extends zt{constructor(t,n){super(),this.kernel=t,this.config=n,t.registerNodes([Gs]),n!=null&&n.theme&&t.registerThemes(n.theme),this.registerDecorator(t,Gs.getType(),(r,i)=>n!=null&&n.decorator?n.decorator(r,i):null)}onInit(t){this.register(Kq(t)),this.registerMarkdown()}registerMarkdown(){const t=this.kernel.requireService(Lt);t&&(t.registerMarkdownShortCut({regExp:Vq,replace:n=>{const r=Xx(Cl,nc,{autoOpenEditor:!0});n.replace(r);const i=bn();i.add(r.getKey()),je(i)},trigger:"enter",type:"element"}),t.registerMarkdownWriter(Gs.getType(),(n,r)=>{const i=r;return n.appendLine("---meta2d---"),n.appendLine(i.__diagram||Cl),n.appendLine("---/meta2d---"),!0}),t.registerMarkdownReader("paragraph",n=>{var s;const r=Xq(n).match(Gq);if(!r)return!1;const i=((s=r[2])==null?void 0:s.trim())||Cl;return ke.createTypeNode(Gs.getType(),{diagram:i,svg:yD(i)})},1))}},vo.pluginName="Meta2dPlugin",vo);let U4=null;function Yq(){return U4??(U4=Oe(()=>import("./meta2dEngine-BD2XbzaV-MY1Hyyeh.js"),__vite__mapDeps([23,24,25,26,27,28,29,30,31,32,33,34]))),U4}async function Zq(e){return(await Yq()).generateSvgFromDiagram(e)}function Qq(e){const t=e.trimStart();return t.startsWith("<svg")?t.replace(/^<svg\b/,'<svg style="max-width:100%;height:auto;display:block;margin:0 auto" '):e}function W4({color:e,label:t,onClick:n,title:r}){return O.jsx("button",{onClick:i=>{i.preventDefault(),i.stopPropagation(),n()},style:{alignItems:"center",background:"#fff",border:"1px solid #e5e5e5",borderRadius:6,color:e,cursor:"pointer",display:"inline-flex",height:28,justifyContent:"center",width:28},title:r,type:"button",children:t})}function eH({diagram:e,onDelete:t,onEdit:n,onSvgReady:r,svg:i}){const[s,o]=E.useState(!1),[a,u]=E.useState(null),[l,h]=E.useState(!1),[d,g]=E.useState(!1),m=E.useRef(null);return E.useEffect(()=>{u(null),g(!1)},[e]),E.useEffect(()=>{if(!e||d||s)return;if(i){m.current=e;return}let y=!0;const w=window.setTimeout(()=>{y&&(u("Preview timeout (still loading). Double-click to open editor."),g(!0),o(!1))},5e3);return o(!0),Zq(e).then(_=>{if(y){if(window.clearTimeout(w),_){m.current=e,r(_);return}u("Preview generation failed. Double-click to open editor."),g(!0)}}).finally(()=>{y&&o(!1)}),()=>{y=!1,window.clearTimeout(w)}},[e,d,r,i]),O.jsxs("div",{onDoubleClick:y=>{y.stopPropagation(),n()},onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),style:{background:"#fff",border:"1px solid #efefef",borderRadius:10,cursor:"pointer",minHeight:140,overflow:"hidden",padding:10,position:"relative"},children:[l&&!!i&&O.jsxs("div",{style:{display:"flex",gap:8,position:"absolute",right:10,top:10,zIndex:1},children:[O.jsx(W4,{color:"#1677ff",label:"✎",onClick:n,title:"Edit diagram"}),O.jsx(W4,{color:"#ff4d4f",label:"🗑",onClick:t,title:"Delete diagram"})]}),i?O.jsx("div",{style:{alignItems:"center",display:"flex",justifyContent:"center",maxHeight:400,overflow:"auto",width:"100%"},children:O.jsx("div",{dangerouslySetInnerHTML:{__html:Qq(i)},style:{lineHeight:0,maxWidth:"100%",width:"100%"}})}):O.jsx("div",{style:{alignItems:"center",color:a?"#cf1322":"#999",display:"flex",justifyContent:"center",minHeight:120,textAlign:"center"},children:s?"Generating preview...":a||"Double-click to edit diagram"})]})}const tH=E.memo(eH),nH=E.lazy(async()=>({default:(await Oe(async()=>{const{DiagramEditor:e}=await import("./DiagramEditor-NtNY3sZL-KWdKFFEL.js");return{DiagramEditor:e}},__vite__mapDeps([35,25,23,24,26,27,28,29,30,31,32,33,34]))).DiagramEditor}));function rH({className:e,editor:t,node:n}){const[r,i]=E.useState(!1),s=n.__diagram,o=n.__svg;E.useLayoutEffect(()=>{const l=n.getKey();let h=!1;t.getEditorState().read(()=>{const d=ze(l);d&&H4(d)&&d.__autoOpenEditor&&(h=!0)}),h&&i(!0),h&&t.update(()=>{const d=ze(l);d&&H4(d)&&d.__autoOpenEditor&&d.clearAutoOpenEditor()})},[t,n.getKey()]);const a=E.useCallback(()=>{t.update(()=>{const l=n.getLatest(),h=l.getNextSibling(),d=l.getPreviousSibling();if(l.remove(),h){h.selectStart();return}d&&d.selectEnd()})},[t,n]),u=E.useCallback((l,h)=>{t.update(()=>{n.updateDiagram(l,h)}),i(!1)},[t,n]);return O.jsxs("div",{className:e,style:{margin:0},children:[O.jsx(tH,{diagram:s,onDelete:a,onEdit:()=>i(!0),onSvgReady:E.useCallback(l=>{t.update(()=>{n.updateDiagram(n.__diagram,l)})},[t,n]),svg:o}),r&&O.jsx(E.Suspense,{fallback:null,children:O.jsx(nH,{diagram:s,onClose:()=>i(!1),onSave:u})})]})}function xU({className:e,theme:t}){const[n]=_t(),r=E.useCallback((i,s)=>O.jsx(rH,{className:e,editor:s,node:i}),[e]);return E.useLayoutEffect(()=>{n.registerPlugin(Jq,{decorator:r,theme:t})},[r,n,t]),null}const Jx=E.createContext(null),iH=({children:e,defaultVisible:t=!0})=>{const[n,r]=E.useState(t),i=E.useCallback(()=>r(o=>!o),[]),s=E.useMemo(()=>({setVisible:r,toggle:i,visible:n}),[i,n]);return O.jsx(Jx.Provider,{value:s,children:e})};iH.displayName="OutlineProvider";function Y1(){return E.useContext(Jx)}function kU(){const e=Y1();if(!e)throw new Error("useOutlineVisibility must be used within <OutlineProvider>.");return e}function sH(e){const t=Y1(),n=(e==null?void 0:e.visible)!==void 0&&(e==null?void 0:e.onVisibleChange)!==void 0;return E.useMemo(()=>n&&(e!=null&&e.onVisibleChange)?{ready:!0,toggle:()=>e.onVisibleChange(!e.visible),visible:e.visible}:t?{ready:!0,toggle:t.toggle,visible:t.visible}:{ready:!1},[e==null?void 0:e.onVisibleChange,e==null?void 0:e.visible,t,n])}kr();const wU=({editor:e,visible:t})=>{const n=Y1(),r=E.useMemo(()=>t!==void 0?t:(n==null?void 0:n.visible)??!0,[t,n==null?void 0:n.visible]),[i,s]=E.useState([]),o=E.useCallback(()=>{const u=[],l=Sn(),h=d=>{for(const g of d){if(_o(g)){const m=g.getTextContent().trim();m&&u.push({key:g.getKey(),level:parseInt(g.getTag()[1],10),text:m})}if(fn(g)){const m=g.getChildren();m.length>0&&h(m)}}};h(l.getChildren()),s(u)},[]);E.useEffect(()=>{const u=e.getLexicalEditor();let l=Fo;const h=d=>(l=d.registerUpdateListener(({editorState:g})=>{g.read(o)}),d.getEditorState().read(o),l);return u?h(u):(e.on("initialized",h),()=>{l(),e.off("initialized",h)})},[e,o]);const a=E.useCallback(u=>{const l=e.getLexicalEditor();l&&(l.update(()=>{const h=bn();h.add(u),je(h)}),requestAnimationFrame(()=>{const h=l.getElementByKey(u);h&&h.scrollIntoView({behavior:"smooth",block:"center"})}))},[e]);return!r||i.length===0?null:O.jsxs("div",{style:{borderLeft:"1px solid rgba(0, 0, 0, 0.08)",paddingLeft:12},children:[O.jsx("div",{style:{color:"rgba(0,0,0,0.45)",fontSize:12,fontWeight:600,marginBottom:8},children:"OUTLINE"}),i.map(u=>O.jsx("div",{onClick:()=>a(u.key),onMouseEnter:l=>{l.currentTarget.style.background="rgba(0,0,0,0.04)"},onMouseLeave:l=>{l.currentTarget.style.background="transparent"},style:{borderRadius:4,color:"rgba(0,0,0,0.75)",cursor:"pointer",fontSize:13,lineHeight:"28px",overflow:"hidden",paddingLeft:(u.level-1)*16+8,textOverflow:"ellipsis",whiteSpace:"nowrap"},children:u.text},u.key))]})},oH="Hide outline",aH="Show outline",uH="outline";function vU(e){const{collapseTitle:t=oH,expandTitle:n=aH,onVisibleChange:r,visible:i}=e??{},s=sH(i!==void 0&&r!==void 0?{onVisibleChange:r,visible:i}:void 0);return E.useMemo(()=>{if(!s.ready)return null;const{toggle:o,visible:a}=s;return{active:a,icon:a?zb:Fw,key:uH,label:a?t:n,onClick:o}},[t,n,s])}kr();function lH(e,t){const{domRows:n}=e;for(const[r,i]of n.entries())if(i)for(const[s,o]of i.entries()){if(!o)continue;const a=jr(o.elem);a!==null&&t(o,a,{x:s,y:r})}}function cH(e,t){const n=t.elem,r=e._config.theme;xc(hi(jr(n)),"Expected to find LexicalNode from Table Cell DOMNode"),Ut(n,r.tableCellSelected)}function hH(e,t){const n=t.elem;xc(hi(jr(n)),"Expected to find LexicalNode from Table Cell DOMNode");const r=e._config.theme;ua(n,r.tableCellSelected)}function fH(e,t,n){const r=new Set(n?n.getNodes():[]);lH(t,(i,s)=>{const o=i.elem;r.has(s)?(i.highlighted=!0,cH(e,i)):(i.highlighted=!1,hH(e,i),o.getAttribute("style")||o.removeAttribute("style"))})}function K4(e){const t=e.getShape();return{columns:t.toX-t.fromX+1,rows:t.toY-t.fromY+1}}function dH(){const e=ce();if(de(e)&&!e.isCollapsed()||fi(e)&&!e.anchor.is(e.focus)||!de(e)&&!fi(e))return!1;const[t]=Cb(e.anchor);return t.__colSpan>1||t.__rowSpan>1}function pH(e){const t=e.getLastDescendant();Pt(t)?t.select():fn(t)?t.selectEnd():t!==null&&t.selectNext()}function V4(e){return e.getEditorState().read(()=>{const t=ce();if(de(t)||fi(t)){const[n]=Cb(t.anchor);if(hi(n))return n.getBackgroundColor()}return null})}const Yx=E.memo(({editor:e,tableCellNode:t,cellMerge:n,children:r})=>{const[i,s]=E.useState(t),[o,a]=E.useState({columns:1,rows:1}),[u,l]=E.useState(!1),[h,d]=E.useState(!1),[,g]=E.useState(()=>V4(e)||""),m=nr();E.useEffect(()=>e.registerMutationListener(nf,K=>{K.get(i.getKey())==="updated"&&(e.getEditorState().read(()=>{s(i.getLatest())}),g(V4(e)||""))},{skipInitialization:!0}),[e,i]),E.useEffect(()=>{e.getEditorState().read(()=>{const K=ce();if(fi(K)){const U=K4(K);a(K4(K)),l(U.columns>1||U.rows>1)}d(dH())})},[e]);const y=E.useCallback(()=>{e.update(()=>{if(i.isAttached()){const K=ii(i),U=Ia(K,e.getElementByKey(K.getKey()));if(U===null)throw new Error("TableActionMenu: Expected to find tableElement in DOM");const z=rf(U);z!==null&&z.$clearHighlight(),K.markDirty(),s(i.getLatest())}je(null)})},[e,i]),w=()=>{e.update(()=>{const K=ce();if(!fi(K))return;const U=Lk(K.getNodes().filter(hi));U&&pH(U)})},_=()=>{e.update(()=>{Fk()})},v=E.useCallback(K=>{e.update(()=>{for(let U=0;U<o.rows;U++)wb(K)})},[e,o.rows]),M=E.useCallback(K=>{e.update(()=>{for(let U=0;U<o.columns;U++)vb(K)})},[e,o.columns]),T=E.useCallback(()=>{e.update(()=>{Ak()})},[e]),D=E.useCallback(()=>{e.update(()=>{ii(i).remove(),y()})},[e,i,y]),R=E.useCallback(()=>{e.update(()=>{Mk()})},[e]),F=E.useCallback(()=>{e.update(()=>{const K=ii(i),U=Cd(i),[z]=sf(K,null,null),V=new Set,X=i.getHeaderStyles()^Ju.ROW;for(let ee=0;ee<z[U].length;ee++){const Q=z[U][ee];Q!=null&&Q.cell&&(V.has(Q.cell)||(V.add(Q.cell),Q.cell.setHeaderStyles(X,Ju.ROW)))}y()})},[e,i,y]),j=E.useCallback(()=>{e.update(()=>{const K=ii(i),U=Sb(i),[z]=sf(K,null,null),V=new Set,X=i.getHeaderStyles()^Ju.COLUMN;for(const ee of z){const Q=ee[U];Q!=null&&Q.cell&&(V.has(Q.cell)||(V.add(Q.cell),Q.cell.setHeaderStyles(X,Ju.COLUMN)))}y()})},[e,i,y]);return O.jsx(Ed,{menu:{items:E.useMemo(()=>[{icon:Bw,key:"table-insert-row-above",label:m("table.insertRowAbove",{count:o.rows}),onClick:()=>v(!1)},{icon:zw,key:"table-insert-row-below",label:m("table.insertRowBelow",{count:o.rows}),onClick:()=>v(!0)},{type:"divider"},{icon:bw,key:"table-insert-column-before",label:m("table.insertColumnLeft",{count:o.columns}),onClick:()=>M(!1)},{icon:zb,key:"table-insert-column-after",label:m("table.insertColumnRight",{count:o.columns}),onClick:()=>M(!0)},{type:"divider"},{icon:Hw,key:"table-delete-columns",label:m("table.deleteColumn"),onClick:()=>R()},{icon:Ww,key:"table-delete-rows",label:m("table.deleteRow"),onClick:()=>T()},{type:"divider"},{icon:Dw,key:"table-delete",label:m("table.delete"),onClick:()=>D()}],[n,u,h,o.rows,o.columns,i.__headerState,w,_,v,M,R,T,D,F,j])},children:r})});Yx.displayName="TableActionMenu";const G4=tt(({css:e})=>({actionIcon:e`
1732
+ `}isInline(){return!1}updateDiagram(t,n){const r=this.getWritable();r.__diagram=t,r.__svg=n}updateDOM(){return!1}};function Xx(e="",t="",n){return Cn(new Gs(e,t,void 0,(n==null?void 0:n.autoOpenEditor)??!1))}function H4(e){return e instanceof Gs}const Wq=lt("INSERT_META2D_COMMAND");function Kq(e){return e.registerCommand(Wq,t=>(e.update(()=>{var n;_n([Xx(((n=t==null?void 0:t.diagram)==null?void 0:n.trim())||Cl,(t==null?void 0:t.svg)!==void 0&&t.svg.trim()!==""?t.svg:nc,{autoOpenEditor:(t==null?void 0:t.autoOpenEditor)??!0})])}),!0),Tt)}rn();Bt();const Vq=/^---meta2d---$/i,Gq=/---meta2d---(\\n?)([\S\s]*?)\n?---\/meta2d---/i;function Xq(e){return(e.children||[]).map(t=>"value"in t&&typeof t.value=="string"?t.value:"").join("")}var vo;const Jq=(vo=class extends zt{constructor(t,n){super(),this.kernel=t,this.config=n,t.registerNodes([Gs]),n!=null&&n.theme&&t.registerThemes(n.theme),this.registerDecorator(t,Gs.getType(),(r,i)=>n!=null&&n.decorator?n.decorator(r,i):null)}onInit(t){this.register(Kq(t)),this.registerMarkdown()}registerMarkdown(){const t=this.kernel.requireService(Lt);t&&(t.registerMarkdownShortCut({regExp:Vq,replace:n=>{const r=Xx(Cl,nc,{autoOpenEditor:!0});n.replace(r);const i=bn();i.add(r.getKey()),je(i)},trigger:"enter",type:"element"}),t.registerMarkdownWriter(Gs.getType(),(n,r)=>{const i=r;return n.appendLine("---meta2d---"),n.appendLine(i.__diagram||Cl),n.appendLine("---/meta2d---"),!0}),t.registerMarkdownReader("paragraph",n=>{var s;const r=Xq(n).match(Gq);if(!r)return!1;const i=((s=r[2])==null?void 0:s.trim())||Cl;return ke.createTypeNode(Gs.getType(),{diagram:i,svg:yD(i)})},1))}},vo.pluginName="Meta2dPlugin",vo);let U4=null;function Yq(){return U4??(U4=Oe(()=>import("./meta2dEngine-BD2XbzaV-CUKxedXW.js"),__vite__mapDeps([23,24,25,26,27,28,29,30,31,32,33,34]))),U4}async function Zq(e){return(await Yq()).generateSvgFromDiagram(e)}function Qq(e){const t=e.trimStart();return t.startsWith("<svg")?t.replace(/^<svg\b/,'<svg style="max-width:100%;height:auto;display:block;margin:0 auto" '):e}function W4({color:e,label:t,onClick:n,title:r}){return O.jsx("button",{onClick:i=>{i.preventDefault(),i.stopPropagation(),n()},style:{alignItems:"center",background:"#fff",border:"1px solid #e5e5e5",borderRadius:6,color:e,cursor:"pointer",display:"inline-flex",height:28,justifyContent:"center",width:28},title:r,type:"button",children:t})}function eH({diagram:e,onDelete:t,onEdit:n,onSvgReady:r,svg:i}){const[s,o]=E.useState(!1),[a,u]=E.useState(null),[l,h]=E.useState(!1),[d,g]=E.useState(!1),m=E.useRef(null);return E.useEffect(()=>{u(null),g(!1)},[e]),E.useEffect(()=>{if(!e||d||s)return;if(i){m.current=e;return}let y=!0;const w=window.setTimeout(()=>{y&&(u("Preview timeout (still loading). Double-click to open editor."),g(!0),o(!1))},5e3);return o(!0),Zq(e).then(_=>{if(y){if(window.clearTimeout(w),_){m.current=e,r(_);return}u("Preview generation failed. Double-click to open editor."),g(!0)}}).finally(()=>{y&&o(!1)}),()=>{y=!1,window.clearTimeout(w)}},[e,d,r,i]),O.jsxs("div",{onDoubleClick:y=>{y.stopPropagation(),n()},onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),style:{background:"#fff",border:"1px solid #efefef",borderRadius:10,cursor:"pointer",minHeight:140,overflow:"hidden",padding:10,position:"relative"},children:[l&&!!i&&O.jsxs("div",{style:{display:"flex",gap:8,position:"absolute",right:10,top:10,zIndex:1},children:[O.jsx(W4,{color:"#1677ff",label:"✎",onClick:n,title:"Edit diagram"}),O.jsx(W4,{color:"#ff4d4f",label:"🗑",onClick:t,title:"Delete diagram"})]}),i?O.jsx("div",{style:{alignItems:"center",display:"flex",justifyContent:"center",maxHeight:400,overflow:"auto",width:"100%"},children:O.jsx("div",{dangerouslySetInnerHTML:{__html:Qq(i)},style:{lineHeight:0,maxWidth:"100%",width:"100%"}})}):O.jsx("div",{style:{alignItems:"center",color:a?"#cf1322":"#999",display:"flex",justifyContent:"center",minHeight:120,textAlign:"center"},children:s?"Generating preview...":a||"Double-click to edit diagram"})]})}const tH=E.memo(eH),nH=E.lazy(async()=>({default:(await Oe(async()=>{const{DiagramEditor:e}=await import("./DiagramEditor-NtNY3sZL-D7sapmVz.js");return{DiagramEditor:e}},__vite__mapDeps([35,25,23,24,26,27,28,29,30,31,32,33,34]))).DiagramEditor}));function rH({className:e,editor:t,node:n}){const[r,i]=E.useState(!1),s=n.__diagram,o=n.__svg;E.useLayoutEffect(()=>{const l=n.getKey();let h=!1;t.getEditorState().read(()=>{const d=ze(l);d&&H4(d)&&d.__autoOpenEditor&&(h=!0)}),h&&i(!0),h&&t.update(()=>{const d=ze(l);d&&H4(d)&&d.__autoOpenEditor&&d.clearAutoOpenEditor()})},[t,n.getKey()]);const a=E.useCallback(()=>{t.update(()=>{const l=n.getLatest(),h=l.getNextSibling(),d=l.getPreviousSibling();if(l.remove(),h){h.selectStart();return}d&&d.selectEnd()})},[t,n]),u=E.useCallback((l,h)=>{t.update(()=>{n.updateDiagram(l,h)}),i(!1)},[t,n]);return O.jsxs("div",{className:e,style:{margin:0},children:[O.jsx(tH,{diagram:s,onDelete:a,onEdit:()=>i(!0),onSvgReady:E.useCallback(l=>{t.update(()=>{n.updateDiagram(n.__diagram,l)})},[t,n]),svg:o}),r&&O.jsx(E.Suspense,{fallback:null,children:O.jsx(nH,{diagram:s,onClose:()=>i(!1),onSave:u})})]})}function xU({className:e,theme:t}){const[n]=_t(),r=E.useCallback((i,s)=>O.jsx(rH,{className:e,editor:s,node:i}),[e]);return E.useLayoutEffect(()=>{n.registerPlugin(Jq,{decorator:r,theme:t})},[r,n,t]),null}const Jx=E.createContext(null),iH=({children:e,defaultVisible:t=!0})=>{const[n,r]=E.useState(t),i=E.useCallback(()=>r(o=>!o),[]),s=E.useMemo(()=>({setVisible:r,toggle:i,visible:n}),[i,n]);return O.jsx(Jx.Provider,{value:s,children:e})};iH.displayName="OutlineProvider";function Y1(){return E.useContext(Jx)}function kU(){const e=Y1();if(!e)throw new Error("useOutlineVisibility must be used within <OutlineProvider>.");return e}function sH(e){const t=Y1(),n=(e==null?void 0:e.visible)!==void 0&&(e==null?void 0:e.onVisibleChange)!==void 0;return E.useMemo(()=>n&&(e!=null&&e.onVisibleChange)?{ready:!0,toggle:()=>e.onVisibleChange(!e.visible),visible:e.visible}:t?{ready:!0,toggle:t.toggle,visible:t.visible}:{ready:!1},[e==null?void 0:e.onVisibleChange,e==null?void 0:e.visible,t,n])}kr();const wU=({editor:e,visible:t})=>{const n=Y1(),r=E.useMemo(()=>t!==void 0?t:(n==null?void 0:n.visible)??!0,[t,n==null?void 0:n.visible]),[i,s]=E.useState([]),o=E.useCallback(()=>{const u=[],l=Sn(),h=d=>{for(const g of d){if(_o(g)){const m=g.getTextContent().trim();m&&u.push({key:g.getKey(),level:parseInt(g.getTag()[1],10),text:m})}if(fn(g)){const m=g.getChildren();m.length>0&&h(m)}}};h(l.getChildren()),s(u)},[]);E.useEffect(()=>{const u=e.getLexicalEditor();let l=Fo;const h=d=>(l=d.registerUpdateListener(({editorState:g})=>{g.read(o)}),d.getEditorState().read(o),l);return u?h(u):(e.on("initialized",h),()=>{l(),e.off("initialized",h)})},[e,o]);const a=E.useCallback(u=>{const l=e.getLexicalEditor();l&&(l.update(()=>{const h=bn();h.add(u),je(h)}),requestAnimationFrame(()=>{const h=l.getElementByKey(u);h&&h.scrollIntoView({behavior:"smooth",block:"center"})}))},[e]);return!r||i.length===0?null:O.jsxs("div",{style:{borderLeft:"1px solid rgba(0, 0, 0, 0.08)",paddingLeft:12},children:[O.jsx("div",{style:{color:"rgba(0,0,0,0.45)",fontSize:12,fontWeight:600,marginBottom:8},children:"OUTLINE"}),i.map(u=>O.jsx("div",{onClick:()=>a(u.key),onMouseEnter:l=>{l.currentTarget.style.background="rgba(0,0,0,0.04)"},onMouseLeave:l=>{l.currentTarget.style.background="transparent"},style:{borderRadius:4,color:"rgba(0,0,0,0.75)",cursor:"pointer",fontSize:13,lineHeight:"28px",overflow:"hidden",paddingLeft:(u.level-1)*16+8,textOverflow:"ellipsis",whiteSpace:"nowrap"},children:u.text},u.key))]})},oH="Hide outline",aH="Show outline",uH="outline";function vU(e){const{collapseTitle:t=oH,expandTitle:n=aH,onVisibleChange:r,visible:i}=e??{},s=sH(i!==void 0&&r!==void 0?{onVisibleChange:r,visible:i}:void 0);return E.useMemo(()=>{if(!s.ready)return null;const{toggle:o,visible:a}=s;return{active:a,icon:a?zb:Fw,key:uH,label:a?t:n,onClick:o}},[t,n,s])}kr();function lH(e,t){const{domRows:n}=e;for(const[r,i]of n.entries())if(i)for(const[s,o]of i.entries()){if(!o)continue;const a=jr(o.elem);a!==null&&t(o,a,{x:s,y:r})}}function cH(e,t){const n=t.elem,r=e._config.theme;xc(hi(jr(n)),"Expected to find LexicalNode from Table Cell DOMNode"),Ut(n,r.tableCellSelected)}function hH(e,t){const n=t.elem;xc(hi(jr(n)),"Expected to find LexicalNode from Table Cell DOMNode");const r=e._config.theme;ua(n,r.tableCellSelected)}function fH(e,t,n){const r=new Set(n?n.getNodes():[]);lH(t,(i,s)=>{const o=i.elem;r.has(s)?(i.highlighted=!0,cH(e,i)):(i.highlighted=!1,hH(e,i),o.getAttribute("style")||o.removeAttribute("style"))})}function K4(e){const t=e.getShape();return{columns:t.toX-t.fromX+1,rows:t.toY-t.fromY+1}}function dH(){const e=ce();if(de(e)&&!e.isCollapsed()||fi(e)&&!e.anchor.is(e.focus)||!de(e)&&!fi(e))return!1;const[t]=Cb(e.anchor);return t.__colSpan>1||t.__rowSpan>1}function pH(e){const t=e.getLastDescendant();Pt(t)?t.select():fn(t)?t.selectEnd():t!==null&&t.selectNext()}function V4(e){return e.getEditorState().read(()=>{const t=ce();if(de(t)||fi(t)){const[n]=Cb(t.anchor);if(hi(n))return n.getBackgroundColor()}return null})}const Yx=E.memo(({editor:e,tableCellNode:t,cellMerge:n,children:r})=>{const[i,s]=E.useState(t),[o,a]=E.useState({columns:1,rows:1}),[u,l]=E.useState(!1),[h,d]=E.useState(!1),[,g]=E.useState(()=>V4(e)||""),m=nr();E.useEffect(()=>e.registerMutationListener(nf,K=>{K.get(i.getKey())==="updated"&&(e.getEditorState().read(()=>{s(i.getLatest())}),g(V4(e)||""))},{skipInitialization:!0}),[e,i]),E.useEffect(()=>{e.getEditorState().read(()=>{const K=ce();if(fi(K)){const U=K4(K);a(K4(K)),l(U.columns>1||U.rows>1)}d(dH())})},[e]);const y=E.useCallback(()=>{e.update(()=>{if(i.isAttached()){const K=ii(i),U=Ia(K,e.getElementByKey(K.getKey()));if(U===null)throw new Error("TableActionMenu: Expected to find tableElement in DOM");const z=rf(U);z!==null&&z.$clearHighlight(),K.markDirty(),s(i.getLatest())}je(null)})},[e,i]),w=()=>{e.update(()=>{const K=ce();if(!fi(K))return;const U=Lk(K.getNodes().filter(hi));U&&pH(U)})},_=()=>{e.update(()=>{Fk()})},v=E.useCallback(K=>{e.update(()=>{for(let U=0;U<o.rows;U++)wb(K)})},[e,o.rows]),M=E.useCallback(K=>{e.update(()=>{for(let U=0;U<o.columns;U++)vb(K)})},[e,o.columns]),T=E.useCallback(()=>{e.update(()=>{Ak()})},[e]),D=E.useCallback(()=>{e.update(()=>{ii(i).remove(),y()})},[e,i,y]),R=E.useCallback(()=>{e.update(()=>{Mk()})},[e]),F=E.useCallback(()=>{e.update(()=>{const K=ii(i),U=Cd(i),[z]=sf(K,null,null),V=new Set,X=i.getHeaderStyles()^Ju.ROW;for(let ee=0;ee<z[U].length;ee++){const Q=z[U][ee];Q!=null&&Q.cell&&(V.has(Q.cell)||(V.add(Q.cell),Q.cell.setHeaderStyles(X,Ju.ROW)))}y()})},[e,i,y]),j=E.useCallback(()=>{e.update(()=>{const K=ii(i),U=Sb(i),[z]=sf(K,null,null),V=new Set,X=i.getHeaderStyles()^Ju.COLUMN;for(const ee of z){const Q=ee[U];Q!=null&&Q.cell&&(V.has(Q.cell)||(V.add(Q.cell),Q.cell.setHeaderStyles(X,Ju.COLUMN)))}y()})},[e,i,y]);return O.jsx(Ed,{menu:{items:E.useMemo(()=>[{icon:Bw,key:"table-insert-row-above",label:m("table.insertRowAbove",{count:o.rows}),onClick:()=>v(!1)},{icon:zw,key:"table-insert-row-below",label:m("table.insertRowBelow",{count:o.rows}),onClick:()=>v(!0)},{type:"divider"},{icon:bw,key:"table-insert-column-before",label:m("table.insertColumnLeft",{count:o.columns}),onClick:()=>M(!1)},{icon:zb,key:"table-insert-column-after",label:m("table.insertColumnRight",{count:o.columns}),onClick:()=>M(!0)},{type:"divider"},{icon:Hw,key:"table-delete-columns",label:m("table.deleteColumn"),onClick:()=>R()},{icon:Ww,key:"table-delete-rows",label:m("table.deleteRow"),onClick:()=>T()},{type:"divider"},{icon:Dw,key:"table-delete",label:m("table.delete"),onClick:()=>D()}],[n,u,h,o.rows,o.columns,i.__headerState,w,_,v,M,R,T,D,F,j])},children:r})});Yx.displayName="TableActionMenu";const G4=tt(({css:e})=>({actionIcon:e`
1733
1733
  transform: translateX(2px);
1734
1734
  `,root:e`
1735
1735
  will-change: transform;
@@ -27,12 +27,12 @@
27
27
  opacity: 0.65;
28
28
  }
29
29
  </style>
30
- <script type="module" crossorigin src="/assets/index-Btfv_3-Q.js"></script>
30
+ <script type="module" crossorigin src="/assets/index-Kp5r4mc7.js"></script>
31
31
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-BVS1XoFi.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/motion-BAXVQJfN.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/ui-CEFkTVnG.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/diagram-BF8g9yg4.js">
35
- <link rel="stylesheet" crossorigin href="/assets/index-C1Mc0Svw.css">
35
+ <link rel="stylesheet" crossorigin href="/assets/index-CervldVc.css">
36
36
  </head>
37
37
  <body>
38
38
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fgbg/mdocs",
3
- "version": "1.4.0",
3
+ "version": "2.0.0",
4
4
  "description": "A Markdown knowledge base for small teams",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,42 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/diagram-BF8g9yg4.js","assets/ui-CEFkTVnG.js","assets/react-vendor-BVS1XoFi.js","assets/motion-BAXVQJfN.js"])))=>i.map(i=>d[i]);
2
- import{r as o,j as e,_ as Jt,b as Qt}from"./react-vendor-BVS1XoFi.js";import{o as G,av as es,aR as ts,aS as wt,aT as ss,N as St,C as ns,aU as Ct,X as we,aV as gt,aW as as,aX as rs,aY as oe,_ as xt,aZ as is,a_ as yt,aF as os,a$ as be,b0 as ls,b1 as cs,b2 as ds,b3 as us,b4 as At,b5 as ms,b6 as ps,b7 as fs,b8 as hs,b9 as gs}from"./index-Btfv_3-Q.js";import{C as It}from"./check-BAYRiedE.js";import{C as _t,a as Rt}from"./copy-J9XXv57X.js";import{P as xs}from"./plus-DvWl4lHk.js";import{ar as ys,ah as js}from"./ui-CEFkTVnG.js";import"./diagram-BF8g9yg4.js";import"./motion-BAXVQJfN.js";/**
3
- * @license lucide-react v0.562.0 - ISC
4
- *
5
- * This source code is licensed under the ISC license.
6
- * See the LICENSE file in the root directory of this source tree.
7
- */const ks=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Ns=G("arrow-down",ks);/**
8
- * @license lucide-react v0.562.0 - ISC
9
- *
10
- * This source code is licensed under the ISC license.
11
- * See the LICENSE file in the root directory of this source tree.
12
- */const bs=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],vs=G("history",bs);/**
13
- * @license lucide-react v0.562.0 - ISC
14
- *
15
- * This source code is licensed under the ISC license.
16
- * See the LICENSE file in the root directory of this source tree.
17
- */const ws=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],Ss=G("maximize-2",ws);/**
18
- * @license lucide-react v0.562.0 - ISC
19
- *
20
- * This source code is licensed under the ISC license.
21
- * See the LICENSE file in the root directory of this source tree.
22
- */const Cs=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],As=G("minimize-2",Cs);/**
23
- * @license lucide-react v0.562.0 - ISC
24
- *
25
- * This source code is licensed under the ISC license.
26
- * See the LICENSE file in the root directory of this source tree.
27
- */const Is=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],_s=G("pencil",Is);/**
28
- * @license lucide-react v0.562.0 - ISC
29
- *
30
- * This source code is licensed under the ISC license.
31
- * See the LICENSE file in the root directory of this source tree.
32
- */const Rs=[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]],Ms=G("pin",Rs);/**
33
- * @license lucide-react v0.562.0 - ISC
34
- *
35
- * This source code is licensed under the ISC license.
36
- * See the LICENSE file in the root directory of this source tree.
37
- */const Es=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],Ds=G("zoom-in",Es);/**
38
- * @license lucide-react v0.562.0 - ISC
39
- *
40
- * This source code is licensed under the ISC license.
41
- * See the LICENSE file in the root directory of this source tree.
42
- */const $s=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],zs=G("zoom-out",$s),Pe=5;function Ts(a){const s=o.useRef(!0),l=o.useRef(null),[d,f]=o.useState([]),[y,w]=o.useState(!1),[j,A]=o.useState(null);o.useEffect(()=>(s.current=!0,()=>{s.current=!1}),[]),o.useEffect(()=>{(async()=>{try{const p=await es();if(!s.current)return;f(p)}catch(p){if(!s.current)return;A(p instanceof Error?p.message:String(p))}})()},[]),o.useEffect(()=>{if(!y)return;function p(x){const S=l.current;!S||S.contains(x.target)||w(!1)}function u(x){x.key==="Escape"&&w(!1)}return document.addEventListener("mousedown",p),document.addEventListener("keydown",u),()=>{document.removeEventListener("mousedown",p),document.removeEventListener("keydown",u)}},[y]);const g=d.filter(p=>a.selectedNames.includes(p.name));function I(p){if(a.disabled)return;const u=new Set(a.selectedNames);if(u.has(p))u.delete(p);else{if(u.size>=Pe)return;u.add(p)}a.onChange([...u])}return d.length===0&&!j?null:e.jsxs("div",{className:"mdocs-agent-skill-ref",ref:l,children:[e.jsxs("div",{className:"mdocs-agent-skill-ref-bar",children:[e.jsxs("div",{className:"mdocs-agent-skill-ref-anchor",children:[y&&d.length>0?e.jsxs("div",{className:"mdocs-agent-skill-popover",role:"listbox","aria-label":"选择 Skill",children:[e.jsxs("div",{className:"mdocs-agent-skill-popover-hint",children:["选择要引用的 Skill(最多 ",Pe," 个)"]}),e.jsx("ul",{className:"mdocs-agent-skill-popover-list",children:d.map(p=>{const u=a.selectedNames.includes(p.name),x=!u&&a.selectedNames.length>=Pe;return e.jsx("li",{children:e.jsxs("button",{type:"button",role:"option","aria-selected":u,className:"mdocs-agent-skill-popover-item"+(u?" mdocs-agent-skill-popover-item-on":""),disabled:a.disabled||x,onClick:()=>I(p.name),children:[e.jsx("span",{className:"mdocs-agent-skill-popover-check","aria-hidden":!0,children:u?"✓":""}),e.jsxs("span",{className:"mdocs-agent-skill-popover-text",children:[e.jsx("span",{className:"mdocs-agent-skill-popover-name",children:p.name}),p.description?e.jsx("span",{className:"mdocs-agent-skill-popover-desc",children:p.description}):e.jsx("span",{className:"mdocs-agent-skill-popover-desc mdocs-agent-skill-popover-desc-muted",children:"无简介"})]})]})},p.id)})})]}):null,e.jsxs("button",{type:"button",className:"mdocs-agent-skill-ref-toggle"+(y?" mdocs-agent-skill-ref-toggle-open":""),disabled:a.disabled||d.length===0,onClick:()=>w(p=>!p),"aria-expanded":y,"aria-haspopup":"listbox",title:"引用 Skill",children:["Skill",g.length>0?` · ${g.length}`:""]})]}),g.map(p=>e.jsxs("button",{type:"button",className:"mdocs-agent-skill-chip mdocs-agent-skill-chip-on",disabled:a.disabled,onClick:()=>I(p.name),title:"移除引用",children:[p.name,e.jsx("span",{"aria-hidden":!0,children:" ×"})]},p.name))]}),j?e.jsx("p",{className:"mdocs-agent-panel-status-warn",children:j}):null]})}const qs=/^[A-Za-z0-9_]+$/;function Fs(a){const{block:s,onResolved:l}=a,[d,f]=o.useState(s.initialName),[y,w]=o.useState(s.initialDescription),[j,A]=o.useState(s.initialBody),[g,I]=o.useState(!1),[p,u]=o.useState(null),[x,S]=o.useState(1),M=o.useRef(!1),N=o.useRef(l);N.current=l;const b=s.status==="open",F=o.useRef(0);o.useEffect(()=>{if(!b)return;M.current=!1;const _=new Date(s.expiresAt).getTime(),Ce=Date.now(),le=Math.max(_-Ce,1);F.current=le,S(1);const Q=()=>{const te=_-Date.now(),O=Math.max(0,Math.min(1,te/le));S(O),te<=0&&!M.current&&(M.current=!0,ts(s.requestId).catch(()=>{}).finally(()=>{N.current(s.requestId,"expired")}))};Q();const ce=window.setInterval(Q,100);return()=>window.clearInterval(ce)},[b,s.expiresAt,s.requestId]);async function $(){if(g||!b)return;const _=d.trim();if(!_){u("名称不能为空");return}if(!qs.test(_)){u("名称仅允许英文、数字、下划线");return}if(!j.trim()){u("正文不能为空");return}I(!0),u(null);try{await ss(s.requestId,{name:_,description:y.trim(),body:j}),l(s.requestId,"submitted",_)}catch{l(s.requestId,"failed")}finally{I(!1)}}async function W(){if(!(g||!b)){I(!0),u(null),M.current=!0;try{await wt(s.requestId),l(s.requestId,"cancelled")}catch{l(s.requestId,"failed")}finally{I(!1)}}}const E=Math.max(0,Math.ceil(x*F.current/1e3));return e.jsxs("div",{className:"mdocs-agent-choice-card mdocs-agent-skill-form-card"+(b?"":" mdocs-agent-choice-card-done"),children:[e.jsxs("div",{className:"mdocs-agent-choice-head",children:[e.jsx("p",{className:"mdocs-agent-choice-title",children:s.title}),b?e.jsxs("span",{className:"mdocs-agent-choice-timer","aria-live":"polite",children:[E,"s"]}):null]}),b?e.jsx("div",{className:"mdocs-agent-choice-progress",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(x*100),children:e.jsx("div",{className:"mdocs-agent-choice-progress-bar",style:{transform:`scaleX(${x})`}})}):null,s.status==="submitted"?e.jsxs("p",{className:"mdocs-agent-choice-result",children:["已提交",s.submittedName?`:${s.submittedName}`:""]}):null,s.status==="cancelled"?e.jsx("p",{className:"mdocs-agent-choice-result muted",children:"已取消"}):null,s.status==="expired"?e.jsx("p",{className:"mdocs-agent-choice-result muted",children:"已超时,表单已失效"}):null,s.status==="failed"?e.jsx("p",{className:"mdocs-agent-choice-result muted",children:"提交失败或已失效"}):null,b?e.jsxs("div",{className:"mdocs-agent-skill-form-fields",children:[e.jsxs("label",{className:"mdocs-agent-skill-form-field",children:[e.jsx("span",{children:"名称(英文数字下划线)"}),e.jsx("input",{type:"text",value:d,onChange:_=>f(_.target.value),maxLength:64,disabled:g,autoComplete:"off",spellCheck:!1})]}),e.jsxs("label",{className:"mdocs-agent-skill-form-field",children:[e.jsx("span",{children:"简介"}),e.jsx("input",{type:"text",value:y,onChange:_=>w(_.target.value),maxLength:200,disabled:g})]}),e.jsxs("label",{className:"mdocs-agent-skill-form-field",children:[e.jsx("span",{children:"正文"}),e.jsx("textarea",{value:j,onChange:_=>A(_.target.value),rows:8,disabled:g})]}),p?e.jsx("p",{className:"mdocs-agent-skill-form-error",children:p}):null,e.jsxs("div",{className:"mdocs-agent-skill-form-actions",children:[e.jsx("button",{type:"button",className:"mdocs-agent-skill-form-cancel",disabled:g,onClick:()=>void W(),children:"取消"}),e.jsx("button",{type:"button",disabled:g,onClick:()=>void $(),children:g?"提交中…":s.mode==="create"?"创建":"保存"})]})]}):null]})}function We(a){var s;return a==null||typeof a=="boolean"?"":typeof a=="string"||typeof a=="number"?String(a):Array.isArray(a)?a.map(We).join(""):typeof a=="object"&&"props"in a?We((s=a.props)==null?void 0:s.children):""}function Ls(a){return a?/\blanguage-mermaid\b|\bmermaid\b/i.test(a):!1}function Ps(a){const s=Array.isArray(a)?a:[a];for(const l of s){if(l==null||typeof l!="object"||!("props"in l))continue;const d=l.props;if(!(!d||!Ls(d.className)))return We(d.children).replace(/\n$/,"")}return null}const Bs=.4,Os=4,ve=.2;let Be=null;function Ws(){return Be||(Be=Jt(()=>import("./diagram-BF8g9yg4.js").then(a=>a.z),__vite__mapDeps([0,1,2,3])).then(a=>{const s=a.default;return s.initialize({startOnLoad:!1,securityLevel:"strict",theme:"neutral",fontFamily:"ui-sans-serif, system-ui, sans-serif"}),s})),Be}const Hs=32,J=new Map;function jt(a){return J.get(a)??null}function Ks(a,s){for(J.has(a)&&J.delete(a),J.set(a,s);J.size>Hs;){const l=J.keys().next().value;if(l==null)break;J.delete(l)}}function Oe(a){return Math.min(Os,Math.max(Bs,a))}function Us(a){const[s,l]=o.useState(1),[d,f]=o.useState({x:0,y:0}),y=o.useRef(null),[w,j]=o.useState(!1);o.useEffect(()=>{const u=S=>{S.key==="Escape"&&a.onClose()};window.addEventListener("keydown",u);const x=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",u),document.body.style.overflow=x}},[a.onClose]);function A(u){u.button===0&&(u.currentTarget.setPointerCapture(u.pointerId),y.current={pointerId:u.pointerId,startX:u.clientX,startY:u.clientY,originX:d.x,originY:d.y},j(!0))}function g(u){const x=y.current;!x||x.pointerId!==u.pointerId||f({x:x.originX+(u.clientX-x.startX),y:x.originY+(u.clientY-x.startY)})}function I(u){const x=y.current;if(!(!x||x.pointerId!==u.pointerId)){y.current=null,j(!1);try{u.currentTarget.releasePointerCapture(u.pointerId)}catch{}}}function p(u){u.preventDefault();const x=u.deltaY>0?-ve:ve;l(S=>Oe(Number((S+x).toFixed(2))))}return Qt.createPortal(e.jsxs("div",{className:"mdocs-agent-mermaid-float",role:"dialog","aria-modal":"true","aria-label":"Mermaid 图预览",children:[e.jsx("button",{type:"button",className:"mdocs-agent-mermaid-float-backdrop","aria-label":"关闭预览",onClick:a.onClose}),e.jsxs("div",{className:"mdocs-agent-mermaid-float-chrome",children:[e.jsxs("div",{className:"mdocs-agent-mermaid-float-tools",children:[e.jsx("button",{type:"button",className:"mdocs-agent-mermaid-float-btn",onClick:()=>l(u=>Oe(Number((u-ve).toFixed(2)))),title:"缩小","aria-label":"缩小",children:e.jsx(zs,{size:16,"aria-hidden":!0})}),e.jsxs("span",{className:"mdocs-agent-mermaid-float-scale",children:[Math.round(s*100),"%"]}),e.jsx("button",{type:"button",className:"mdocs-agent-mermaid-float-btn",onClick:()=>l(u=>Oe(Number((u+ve).toFixed(2)))),title:"放大","aria-label":"放大",children:e.jsx(Ds,{size:16,"aria-hidden":!0})}),e.jsx("button",{type:"button",className:"mdocs-agent-mermaid-float-btn",onClick:()=>{l(1),f({x:0,y:0})},title:"重置",children:"重置"}),e.jsx("button",{type:"button",className:"mdocs-agent-mermaid-float-btn",onClick:a.onClose,title:"关闭","aria-label":"关闭",children:e.jsx(we,{size:16,"aria-hidden":!0})})]}),e.jsx("div",{className:w?"mdocs-agent-mermaid-float-stage is-dragging":"mdocs-agent-mermaid-float-stage",onPointerDown:A,onPointerMove:g,onPointerUp:I,onPointerCancel:I,onWheel:p,children:e.jsx("div",{className:"mdocs-agent-mermaid-float-canvas",style:{transform:`translate(calc(-50% + ${d.x}px), calc(-50% + ${d.y}px)) scale(${s})`},dangerouslySetInnerHTML:{__html:a.svg}})}),e.jsx("p",{className:"mdocs-agent-mermaid-float-hint",children:"拖动平移 · 滚轮缩放 · Esc 关闭"})]})]}),document.body)}function Xs(a){const s=o.useId().replace(/:/g,""),[l,d]=o.useState("diagram"),[f,y]=o.useState(()=>jt(a.source.trim())),[w,j]=o.useState(null),[A,g]=o.useState(!1),[I,p]=o.useState(!1),u=o.useRef(null),x=a.source.trim(),S=o.useMemo(()=>x,[x]);o.useEffect(()=>()=>{u.current!=null&&window.clearTimeout(u.current)},[]),o.useEffect(()=>{if(l!=="diagram")return;if(!S){y(null),j(null);return}const N=jt(S);if(N){y(N),j(null);return}let b=!1;const F=window.setTimeout(()=>{(async()=>{try{const $=await Ws();if(b)return;const W=`mdocs-agent-mmd-${s}-${Date.now()}`,{svg:E}=await $.render(W,S);if(b)return;Ks(S,E),y(E),j(null)}catch($){if(b)return;y(null),j($ instanceof Error?$.message:"Mermaid 渲染失败")}})()},200);return()=>{b=!0,window.clearTimeout(F)}},[l,S,s]);async function M(){!x||!await Ct(x)||(g(!0),u.current!=null&&window.clearTimeout(u.current),u.current=window.setTimeout(()=>g(!1),1500))}return e.jsxs("div",{className:"mdocs-agent-mermaid",children:[e.jsxs("div",{className:"mdocs-agent-mermaid-toolbar",children:[e.jsxs("div",{className:"mdocs-agent-mermaid-toggle",role:"group","aria-label":"Mermaid 显示模式",children:[e.jsxs("button",{type:"button",className:l==="diagram"?"mdocs-agent-mermaid-toggle-btn is-active":"mdocs-agent-mermaid-toggle-btn",onClick:()=>d("diagram"),"aria-pressed":l==="diagram",title:"图谱",children:[e.jsx(St,{size:14,"aria-hidden":!0}),e.jsx("span",{children:"图谱"})]}),e.jsxs("button",{type:"button",className:l==="code"?"mdocs-agent-mermaid-toggle-btn is-active":"mdocs-agent-mermaid-toggle-btn",onClick:()=>d("code"),"aria-pressed":l==="code",title:"代码",children:[e.jsx(ns,{size:14,"aria-hidden":!0}),e.jsx("span",{children:"代码"})]})]}),e.jsx("button",{type:"button",className:"mdocs-agent-panel-md-copy mdocs-agent-mermaid-copy",onClick:()=>void M(),"aria-label":A?"已复制":"复制代码",title:A?"已复制":"复制",children:A?e.jsx(It,{size:14,"aria-hidden":!0}):e.jsx(_t,{size:14,"aria-hidden":!0})})]}),l==="diagram"?e.jsx("div",{className:"mdocs-agent-mermaid-diagram",children:w?e.jsxs("div",{className:"mdocs-agent-mermaid-error",role:"alert",children:[e.jsx("p",{children:"无法渲染该图,可切换到代码查看源码。"}),e.jsx("pre",{children:w})]}):f?e.jsx("div",{className:"mdocs-agent-mermaid-svg mdocs-agent-mermaid-svg-hit",role:"button",tabIndex:0,onClick:()=>p(!0),onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),p(!0))},title:"点击放大预览","aria-label":"点击放大预览 Mermaid 图",children:e.jsx("span",{className:"mdocs-agent-mermaid-svg-inner",dangerouslySetInnerHTML:{__html:f}})}):e.jsx("div",{className:"mdocs-agent-mermaid-loading",children:"渲染中…"})}):e.jsx("div",{className:"mdocs-agent-panel-md-pre-wrap mdocs-agent-mermaid-code",children:e.jsx("pre",{children:a.codeChildren??e.jsx("code",{className:"language-mermaid",children:x})})}),I&&f?e.jsx(Us,{svg:f,onClose:()=>p(!1)}):null]})}const Gs=o.memo(Xs,(a,s)=>a.source===s.source);function Ys(a){const[s,l]=o.useState(()=>Date.now());return o.useEffect(()=>{if(!a)return;const d=window.setInterval(()=>l(Date.now()),1e3);return()=>window.clearInterval(d)},[a]),s}function Vs(a,s){if(!a.startedAt)return null;const l=a.endedAt??s;return Math.max(1,Math.round((l-a.startedAt)/1e3))}function Se(a,s=Date.now()){let l=!1;const d=a.map(f=>f.type==="thinking"&&f.startedAt&&!f.endedAt?(l=!0,{...f,endedAt:s}):f);return l?d:a}function Zs(a){const{block:s,live:l,now:d}=a;if(!s.text)return null;const f=Vs(s,d),y=f!=null?l?`思考中 ${f}s`:`思考 ${f}s`:"思考";return e.jsxs("details",{className:"mdocs-agent-panel-think-fold",children:[e.jsxs("summary",{children:[e.jsx("span",{className:"mdocs-agent-think-label"+(l?" live":""),children:y}),e.jsx(Rt,{size:14,strokeWidth:1.8,className:"mdocs-agent-think-chevron"})]}),e.jsx("pre",{className:"mdocs-agent-panel-think-body",children:s.text})]})}function He(a){var s;return a==null||typeof a=="boolean"?"":typeof a=="string"||typeof a=="number"?String(a):Array.isArray(a)?a.map(He).join(""):typeof a=="object"&&"props"in a?He((s=a.props)==null?void 0:s.children):""}function Js(a){const[s,l]=o.useState(!1),d=o.useRef(null),f=o.useRef(null),y=He(a.children).replace(/\n$/,"");o.useEffect(()=>()=>{d.current!=null&&window.clearTimeout(d.current)},[]);async function w(j){var p,u,x;j.preventDefault(),j.stopPropagation();const g=(((x=(u=(p=f.current)==null?void 0:p.querySelector("pre"))==null?void 0:u.innerText)==null?void 0:x.replace(/\n$/,""))??"")||y;!g||!await Ct(g)||(l(!0),d.current!=null&&window.clearTimeout(d.current),d.current=window.setTimeout(()=>l(!1),1500))}return e.jsxs("div",{className:"mdocs-agent-panel-md-pre-wrap",ref:f,children:[e.jsx("button",{type:"button",className:"mdocs-agent-panel-md-copy",onClick:j=>void w(j),"aria-label":s?"已复制":"复制代码",title:s?"已复制":"复制",children:s?e.jsx(It,{size:14,"aria-hidden":!0}):e.jsx(_t,{size:14,"aria-hidden":!0})}),e.jsx("pre",{children:a.children})]})}function Qs(a){const s=Ps(a.children);return s!=null?e.jsx(Gs,{source:s,codeChildren:a.children}):e.jsx(Js,{children:a.children})}const en={pre:({children:a})=>e.jsx(Qs,{children:a})},kt=o.memo(function(s){return e.jsx("div",{className:"mdocs-agent-panel-md",children:e.jsx(ys,{remarkPlugins:[js],components:en,children:s.children})})}),tn=["如何发布文档?","草稿是什么?","如何创建工作空间?"],sn=["润色当前文稿","补写开头引言","把这段改得更简洁"];function Nt(a,s){return s.map((l,d)=>{const f=l.skillNames&&l.skillNames.length>0?l.skillNames:l.skillIds&&l.skillIds.length>0?l.skillIds:void 0;return{id:`h-${a}-${d}-${l.role}`,role:l.role,content:l.content,skillNames:f}})}function nn(a,s){const l=Se(a).slice(),d=l[l.length-1];return(d==null?void 0:d.type)==="text"?l[l.length-1]={type:"text",text:d.text+s}:l.push({type:"text",text:s}),l}function an(a,s){const l=Date.now(),d=a.slice(),f=d[d.length-1];return(f==null?void 0:f.type)==="thinking"&&!f.endedAt?d[d.length-1]={type:"thinking",text:f.text+s,startedAt:f.startedAt??l}:d.push({type:"thinking",text:s,startedAt:l}),d}function rn(a,s){const l=Se(a).slice(),d=l.findIndex(f=>f.type==="tool_call"&&f.toolCallId===s.toolCallId);if(d>=0){const f=l[d];l[d]={...f,...s,detail:s.detail??f.detail}}else l.push(s);return l}function bt(a){return a!=null&&a.length?a.filter(s=>s.type==="text").map(s=>s.text).join(""):""}function on(a){return!!(a!=null&&a.some(s=>s.type==="thinking"&&s.text.length>0))}function ln(a){const s=new Date(a);if(Number.isNaN(s.getTime()))return"";const l=new Date;return s.getFullYear()===l.getFullYear()&&s.getMonth()===l.getMonth()&&s.getDate()===l.getDate()?s.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}):s.toLocaleDateString(void 0,{month:"2-digit",day:"2-digit"})}function vt(a){if(a>=1e3){const s=a/1e3;return`${s>=10?Math.round(s):Math.round(s*10)/10}K`}return String(a)}function cn(a){const{block:s,onResolved:l}=a,[d,f]=o.useState(""),[y,w]=o.useState(!1),[j,A]=o.useState(1),g=o.useRef(!1),I=o.useRef(l);I.current=l;const p=s.status==="open",u=o.useRef(0);o.useEffect(()=>{if(!p)return;g.current=!1;const N=new Date(s.expiresAt).getTime(),b=Date.now(),F=Math.max(N-b,1);u.current=F,A(1);const $=()=>{const E=N-Date.now(),_=Math.max(0,Math.min(1,E/F));A(_),E<=0&&!g.current&&(g.current=!0,hs(s.requestId).catch(()=>{}).finally(()=>{I.current(s.requestId,"","expired")}))};$();const W=window.setInterval($,100);return()=>window.clearInterval(W)},[p,s.expiresAt,s.requestId]);async function x(N){const b=N.trim();if(!(!b||y||!p)){w(!0);try{await gs(s.requestId,b),l(s.requestId,b,"selected")}catch{l(s.requestId,b,"failed")}finally{w(!1)}}}async function S(){if(!(y||!p)){w(!0),g.current=!0;try{await At(s.requestId),l(s.requestId,"","cancelled")}catch{l(s.requestId,"","failed")}finally{w(!1)}}}const M=Math.max(0,Math.ceil(j*u.current/1e3));return e.jsxs("div",{className:"mdocs-agent-choice-card"+(p?"":" mdocs-agent-choice-card-done"),children:[e.jsxs("div",{className:"mdocs-agent-choice-head",children:[e.jsx("p",{className:"mdocs-agent-choice-title",children:s.title}),p?e.jsxs("span",{className:"mdocs-agent-choice-timer","aria-live":"polite",children:[M,"s"]}):null]}),p?e.jsx("div",{className:"mdocs-agent-choice-progress",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(j*100),children:e.jsx("div",{className:"mdocs-agent-choice-progress-bar",style:{transform:`scaleX(${j})`}})}):null,s.status==="selected"&&s.selected?e.jsxs("p",{className:"mdocs-agent-choice-result",children:["已选择:",s.selected]}):null,s.status==="cancelled"?e.jsx("p",{className:"mdocs-agent-choice-result muted",children:"已取消"}):null,s.status==="expired"?e.jsx("p",{className:"mdocs-agent-choice-result muted",children:"已超时,选择已失效"}):null,s.status==="failed"?e.jsx("p",{className:"mdocs-agent-choice-result muted",children:"提交失败或已失效"}):null,p?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mdocs-agent-choice-options",children:s.options.map(N=>e.jsx("button",{type:"button",className:"mdocs-agent-choice-option",disabled:y,onClick:()=>void x(N),children:N},N))}),e.jsxs("div",{className:"mdocs-agent-choice-custom",children:[e.jsx("input",{value:d,disabled:y,placeholder:"或输入自己的内容…",onChange:N=>f(N.target.value),onKeyDown:N=>{N.key==="Enter"&&(N.preventDefault(),x(d))}}),e.jsx("button",{type:"button",disabled:y||!d.trim(),onClick:()=>void x(d),children:"提交"})]}),e.jsx("div",{className:"mdocs-agent-choice-footer",children:e.jsx("button",{type:"button",className:"mdocs-agent-choice-cancel",disabled:y,onClick:()=>void S(),children:"取消"})})]}):null]})}function dn(a){const f=2*Math.PI*8.75,y=Math.min(100,Math.max(0,a.percent)),w=f*(1-y/100),j=y>=90?"danger":y>=70?"warn":"ok",A=`上下文 ${y}% · 已用 ${vt(a.used)} / ${vt(a.limit)} tokens`;return e.jsx("span",{className:"mdocs-agent-panel-context mdocs-agent-panel-context-"+j,"data-tooltip":A,"aria-label":A,role:"img",tabIndex:0,children:e.jsxs("svg",{width:20,height:20,viewBox:"0 0 20 20","aria-hidden":!0,children:[e.jsx("circle",{className:"mdocs-agent-panel-context-track",cx:20/2,cy:20/2,r:8.75,fill:"none",strokeWidth:2.5}),e.jsx("circle",{className:"mdocs-agent-panel-context-value",cx:20/2,cy:20/2,r:8.75,fill:"none",strokeWidth:2.5,strokeLinecap:"round",strokeDasharray:f,strokeDashoffset:w,transform:`rotate(-90 ${20/2} ${20/2})`})]})})}function un(a){var s;for(const l of a)if(!(l.role!=="assistant"||!((s=l.blocks)!=null&&s.length))){for(const d of l.blocks)if((d.type==="choice_card"||d.type==="skill_form_card")&&d.status==="open")return!0}return!1}const kn=o.forwardRef(function(s,l){const{open:d,onClose:f,visitorName:y,anchorStyle:w,fullscreen:j,onToggleFullscreen:A,domainId:g,domains:I=[],localizeDomainName:p,documentId:u,documentTitle:x,documentPath:S,graphFileId:M,graphLabel:N,onOpenDocument:b,onTreeChanged:F,onDocumentOverwritten:$,onOpenCoding:W,embedded:E=!1,mode:_="normal",workingMarkdown:Ce,baseMarkdown:le,onMarkdownSet:Q,onSendingChange:ce,onSessionId:te}=s,O=_==="coding"?"coding":"normal",z=O==="coding",Mt=((y==null?void 0:y.trim().charAt(0))||"我").toUpperCase(),[ee,H]=o.useState(!1),[Y,Ke]=o.useState("current"),[Ue,Et]=o.useState({}),[Dt,se]=o.useState(null),[Xe,Ge]=o.useState(""),[k,de]=o.useState(null),[$t,ue]=o.useState(null),[K,C]=o.useState([]),[ne,ae]=o.useState(null),[me,Ye]=o.useState([]),[zt,Ve]=o.useState(!1),[pe,fe]=o.useState(""),[re,Ae]=o.useState([]),[Ze,Ie]=o.useState(!1),[v,U]=o.useState(!1),[Je,q]=o.useState(null),[he,Qe]=o.useState(null),[_e,V]=o.useState(!1),[X,et]=o.useState(!1),Tt=o.useRef(null),ge=o.useRef(null),R=o.useRef(null),T=o.useRef(null),xe=o.useRef(null),tt=o.useRef(0),Z=o.useRef(!0),[qt,Re]=o.useState(!1),Ft=Ys(v),Me=o.useRef(K);Me.current=K;const st=!!(u!=null&&u.trim())&&!Ze,Lt=(x==null?void 0:x.trim())||"当前文档",nt=(S==null?void 0:S.trim())||"",Ee=!!(M!=null&&M.trim())&&!Ze,Pt=(N==null?void 0:N.trim())||"当前图谱";o.useEffect(()=>{Ie(!1)},[u,M]);function De(t){return tt.current+=1,`${t}-${tt.current}`}const at=120;function rt(t){return t.scrollHeight-t.scrollTop-t.clientHeight}function ye(){const t=ge.current;t&&(t.scrollTop=t.scrollHeight,Re(!1))}function L(){Z.current&&ye()}function Bt(){const t=ge.current;if(!t)return;const n=rt(t);Z.current=n<=48,Re(n>at)}function Ot(){Z.current=!0,ye()}o.useLayoutEffect(()=>{L();const t=ge.current;t&&Re(rt(t)>at)},[K]);async function it(){Ve(!0);try{const t=await cs(O,z?u:void 0);Ye(t.sessions),ne||ae(t.lastOpenedSessionId)}catch{}finally{Ve(!1)}}async function $e(){try{const t=await ls();Qe(t)}catch{}}async function ot(){try{const t=await gt();de(t),ue(null)}catch(t){de(null),ue(t instanceof Error?t.message:String(t))}}const je=o.useRef(ce);je.current=ce;const ke=o.useRef(te);ke.current=te,o.useEffect(()=>{var t;(t=je.current)==null||t.call(je,v)},[v]),o.useEffect(()=>{var t;(t=ke.current)==null||t.call(ke,ne)},[ne]),o.useEffect(()=>{var n;if(!d){H(!1),(n=R.current)==null||n.abort(),R.current=null;return}let t=!1;return(async()=>{try{const r=await gt();t||(de(r),ue(null))}catch(r){t||(de(null),ue(r instanceof Error?r.message:String(r)))}})(),$e(),()=>{t=!0}},[d]);const Ne=z?`coding:${u??""}`:"normal",lt=o.useRef(Ne);o.useEffect(()=>{if(!d)return;const t=lt.current!==Ne;lt.current=Ne;let n=!1;return(async()=>{try{const r=await as(O,z?u:void 0);if(n)return;ae(r.sessionId),C(m=>!t&&m.length>0&&!r.activeRun?m:Nt(r.sessionId,r.messages)),r.activeRun&&(r.activeRun.status==="running"||r.activeRun.status==="waiting_user")&&Ht(r.activeRun)}catch{}})(),()=>{n=!0}},[d,Ne]),o.useEffect(()=>{!d||!ee||it()},[d,ee]),o.useEffect(()=>()=>{var t;(t=R.current)==null||t.abort()},[]);function ze(){if(!X){if(un(Me.current)){V(!0);return}V(!1),f()}}async function Wt(){var m;if(X)return;et(!0);const t=Me.current,n=[];for(const i of t)if(!(i.role!=="assistant"||!i.blocks))for(const c of i.blocks)c.type==="choice_card"&&c.status==="open"&&n.push(At(c.requestId).catch(()=>{})),c.type==="skill_form_card"&&c.status==="open"&&n.push(wt(c.requestId).catch(()=>{}));const r=T.current;r&&n.push(be(r).catch(()=>{})),await Promise.all(n),(m=R.current)==null||m.abort(),T.current=null,U(!1),C(i=>i.map(c=>c.role!=="assistant"||!c.blocks?c:{...c,blocks:c.blocks.map(h=>h.type==="choice_card"&&h.status==="open"?{...h,status:"cancelled"}:h.type==="skill_form_card"&&h.status==="open"?{...h,status:"cancelled"}:h)})),V(!1),et(!1),f()}const Te=o.useRef(ze);Te.current=ze,o.useImperativeHandle(l,()=>({requestClose:()=>Te.current()}),[]),o.useEffect(()=>{if(!d){V(!1);return}const t=n=>{if(n.key==="Escape"){if(_e){X||V(!1);return}if(ee){H(!1);return}Te.current()}};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[d,ee,_e,X]);function ct(t,n){let r=!1;return n.type==="run_started"?(T.current=n.runId,ae(n.sessionId),!1):(n.type==="text_delta"?(C(m=>m.map(i=>{if(i.id!==t)return i;const c=nn(i.blocks??[],n.text);return{...i,blocks:c,content:bt(c)}})),requestAnimationFrame(()=>L())):n.type==="thinking_delta"?(C(m=>m.map(i=>{if(i.id!==t)return i;const c=an(i.blocks??[],n.text);return{...i,blocks:c}})),requestAnimationFrame(()=>L())):n.type==="sources"?(C(m=>m.map(i=>{if(i.id!==t)return i;const c=(i.blocks??[]).slice(),h=c[c.length-1];return(h==null?void 0:h.type)==="sources"?c[c.length-1]={type:"sources",items:n.items}:c.push({type:"sources",items:n.items}),{...i,blocks:c}})),requestAnimationFrame(()=>L())):n.type==="document_table"?(C(m=>m.map(i=>{if(i.id!==t)return i;const c=[...i.blocks??[],{type:"document_table",title:n.title,rows:n.rows}];return{...i,blocks:c}})),requestAnimationFrame(()=>L())):n.type==="document_card"?(C(m=>m.map(i=>{if(i.id!==t)return i;const c=[...i.blocks??[],{type:"document_card",documentId:n.documentId,title:n.title,path:n.path,preview:n.preview}];return{...i,blocks:c}})),requestAnimationFrame(()=>L())):n.type==="tool_notice"?(C(m=>m.map(i=>{if(i.id!==t)return i;const c=[...i.blocks??[],{type:"tool_notice",toolName:n.toolName,text:n.text}];return{...i,blocks:c}})),requestAnimationFrame(()=>L())):n.type==="tool_call"?(C(m=>m.map(i=>{if(i.id!==t)return i;const c=rn(i.blocks??[],{type:"tool_call",toolCallId:n.toolCallId,toolName:n.toolName,label:n.label,status:n.status,detail:n.detail});return{...i,blocks:c}})),requestAnimationFrame(()=>L())):n.type==="choice_card"?(C(m=>m.map(i=>{if(i.id!==t)return i;const c=[...i.blocks??[],{type:"choice_card",requestId:n.requestId,title:n.title,options:n.options,expiresAt:n.expiresAt,status:"open"}];return{...i,blocks:c}})),requestAnimationFrame(()=>L())):n.type==="choice_expired"?C(m=>m.map(i=>i.id!==t||!i.blocks?i:{...i,blocks:i.blocks.map(c=>c.type==="choice_card"&&c.requestId===n.requestId&&c.status==="open"?{...c,status:"expired"}:c)})):n.type==="skill_form_card"?(C(m=>m.map(i=>{if(i.id!==t)return i;const c=[...i.blocks??[],{type:"skill_form_card",requestId:n.requestId,mode:n.mode,title:n.title,currentName:n.currentName,initialName:n.initialName,initialDescription:n.initialDescription,initialBody:n.initialBody,expiresAt:n.expiresAt,status:"open"}];return{...i,blocks:c}})),requestAnimationFrame(()=>L())):n.type==="skill_form_expired"?C(m=>m.map(i=>i.id!==t||!i.blocks?i:{...i,blocks:i.blocks.map(c=>c.type==="skill_form_card"&&c.requestId===n.requestId&&c.status==="open"?{...c,status:"expired"}:c)})):n.type==="markdown_set"?Q==null||Q(n.markdown):n.type==="tree_changed"?F==null||F():n.type==="document_overwritten"?$==null||$({documentId:n.documentId,headCommitId:n.headCommitId}):n.type==="open_coding"?W==null||W({documentId:n.documentId,displayName:n.displayName}):n.type==="context_usage"?Qe({percent:n.percent,used:n.used,limit:n.limit}):n.type==="error"?(r=!0,q(n.message)):n.type==="done"&&(T.current=null),r)}async function Ht(t){var i;(i=R.current)==null||i.abort();const n=new AbortController;R.current=n,T.current=t.runId;const r=De("a");xe.current=r,Z.current=!0,C(c=>{var D;const h=c[c.length-1];return(h==null?void 0:h.role)==="assistant"&&!h.content&&!((D=h.blocks)!=null&&D.length)?(xe.current=h.id,c):[...c,{id:r,role:"assistant",content:""}]});const m=xe.current??r;U(!0),q(null);try{let c=!1;await rs(t.runId,{afterSeq:0,signal:n.signal,onEvent:h=>{ct(m,h)&&(c=!0)}}),!n.signal.aborted&&!c&&Ae([])}catch(c){if(n.signal.aborted)return;q(c instanceof Error?c.message:String(c))}finally{C(c=>c.map(h=>h.id===m&&h.blocks?{...h,blocks:Se(h.blocks)}:h)),R.current===n&&(R.current=null),T.current||U(!1)}}async function qe(t){var c;const n=t.trim();if(!n||v)return;if(!(k!=null&&k.enabled)){q((k==null?void 0:k.reason)==="missing_api_key"?"请先配置 API Key":(k==null?void 0:k.reason)==="skills_missing"?"手册 skills 未就绪,请确认已构建 agent-skills":"助手暂不可用");return}(c=R.current)==null||c.abort();const r=new AbortController;R.current=r;const m={id:De("u"),role:"user",content:n,skillNames:re.length>0?[...re]:void 0},i=De("a");xe.current=i,Z.current=!0,C(h=>[...h,m,{id:i,role:"assistant",content:""}]),fe(""),U(!0),q(null),H(!1),requestAnimationFrame(()=>{ye(),requestAnimationFrame(ye)});try{let h=!1;await us(n,{mode:O,skillNames:re.length>0?re:void 0,...z?{documentId:u??null,workingMarkdown:Ce,baseMarkdown:le}:{references:{domainId:(g==null?void 0:g.trim())||void 0,documentId:!Ee&&st?u.trim():void 0,graphFileId:Ee?M.trim():void 0}},signal:r.signal,onEvent:D=>{ct(i,D)&&(h=!0)}}),!r.signal.aborted&&!h&&Ae([])}catch(h){if(r.signal.aborted)return;q(h instanceof Error?h.message:String(h))}finally{C(h=>h.map(D=>D.id===i&&D.blocks?{...D,blocks:Se(D.blocks)}:D)),R.current===r&&(R.current=null),T.current||U(!1)}}async function Kt(){var n;(n=R.current)==null||n.abort();const t=T.current;T.current=null,U(!1),t&&be(t).catch(()=>{}),q(null),H(!1);try{const r=await ds(O,z?u:void 0,g??null);ae(r.sessionId),C([]),fe(""),Z.current=!0,$e(),it()}catch(r){q(r instanceof Error?r.message:String(r))}}async function Ut(t){var r;if(t===ne){H(!1);return}(r=R.current)==null||r.abort();const n=T.current;T.current=null,U(!1),n&&be(n).catch(()=>{}),q(null);try{const m=await ms(t,O,z?u:void 0);ae(m.sessionId),C(Nt(m.sessionId,m.messages)),fe(""),H(!1),se(null),Z.current=!0,requestAnimationFrame(()=>L()),$e()}catch(m){q(m instanceof Error?m.message:String(m))}}function dt(t){Ye(n=>{const r=n.map(m=>m.id===t.id?{...m,...t}:m);return r.sort((m,i)=>{const c=m.pinned===!0,h=i.pinned===!0;return c!==h?c?-1:1:m.updatedAt<i.updatedAt?1:m.updatedAt>i.updatedAt?-1:0}),r})}async function Xt(t){if(!v)try{const n=await ps(t.id,t.pinned!==!0,O);dt(n)}catch(n){q(n instanceof Error?n.message:String(n))}}function Gt(t){se(t.id),Ge(t.title)}async function ut(t){const n=Xe.trim();if(se(null),!!n)try{const r=await fs(t,n,O);dt(r)}catch(r){q(r instanceof Error?r.message:String(r))}}const Yt=t=>{const n=I.find(r=>r.domainId===t);return n?p?p(n.domainName):n.domainName:t===oe?"default":t},ie=o.useMemo(()=>Y==="all"||!g?me:me.filter(t=>(t.domainId||oe)===g),[me,Y,g]),mt=o.useMemo(()=>ie.filter(t=>t.pinned===!0),[ie]),Vt=o.useMemo(()=>{var r;const t=new Map;for(const m of ie){const i=((r=m.domainId)==null?void 0:r.trim())||oe,c=t.get(i);c?c.push(m):t.set(i,[m])}const n=(g==null?void 0:g.trim())||oe;return Array.from(t.entries()).map(([m,i])=>({id:m,items:i,label:Yt(m)})).sort((m,i)=>m.id===n?-1:i.id===n?1:m.label.localeCompare(i.label,"zh"))},[ie,I,p,g]);function pt(t){return Ue[t]!==void 0?!Ue[t]:Y==="all"?t===((g==null?void 0:g.trim())||oe):!0}function Zt(t){Et(n=>{const r=pt(t);return{...n,[t]:r}})}function Fe(t){!t||!b||b(t)}function ft(t){const n=Dt===t.id;return e.jsxs("div",{className:"mdocs-agent-panel-history-item"+(t.id===ne?" active":""),children:[n?e.jsx("input",{className:"mdocs-agent-panel-history-rename",value:Xe,autoFocus:!0,maxLength:80,"aria-label":"重命名会话",onChange:r=>Ge(r.target.value),onClick:r=>r.stopPropagation(),onKeyDown:r=>{r.key==="Enter"?(r.preventDefault(),ut(t.id)):r.key==="Escape"&&se(null)},onBlur:()=>void ut(t.id)}):e.jsxs("button",{type:"button",className:"mdocs-agent-panel-history-open",disabled:v,onClick:()=>void Ut(t.id),children:[e.jsx("span",{className:"mdocs-agent-panel-history-title",children:t.title}),e.jsx("span",{className:"mdocs-agent-panel-history-time",children:ln(t.updatedAt)})]}),e.jsxs("div",{className:"mdocs-agent-panel-history-actions",children:[e.jsx("button",{type:"button",className:"mdocs-agent-panel-history-action"+(t.pinned?" pinned":""),title:t.pinned?"取消置顶":"置顶","aria-label":t.pinned?"取消置顶":"置顶",disabled:v,onClick:r=>{r.stopPropagation(),Xt(t)},children:e.jsx(Ms,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"mdocs-agent-panel-history-action",title:"重命名","aria-label":"重命名",disabled:v||n,onClick:r=>{r.stopPropagation(),Gt(t)},children:e.jsx(_s,{size:14,strokeWidth:1.8})})]})]})}if(!d)return null;const Le=(k==null?void 0:k.reason)==="missing_api_key",ht=$t??(k&&!k.enabled&&!Le?k.reason==="skills_missing"?"skills 未就绪":"助手暂不可用":null);return e.jsxs("div",{ref:Tt,className:"mdocs-agent-panel"+(E?" mdocs-agent-panel--embedded":j?" mdocs-agent-panel--fullscreen":""),role:E?void 0:"dialog","aria-label":z?"mdocs 帮写助手":"mdocs 智能助手","aria-modal":E?void 0:j?!0:void 0,style:E||j?void 0:w,children:[e.jsxs("header",{className:"mdocs-agent-panel-header",children:[e.jsxs("div",{className:"mdocs-agent-panel-title",children:[e.jsx("img",{src:xt,alt:"",className:"mdocs-agent-panel-title-logo"}),e.jsx("span",{children:z?"mdocs 帮写助手":"mdocs 智能助手"})]}),e.jsxs("div",{className:"mdocs-agent-panel-actions",children:[e.jsx("button",{type:"button",className:"mdocs-agent-panel-icon-btn",title:"新会话","aria-label":"新会话",disabled:v,onClick:()=>void Kt(),children:e.jsx(xs,{size:16,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"mdocs-agent-panel-icon-btn"+(ee?" active":""),title:"历史会话","aria-label":"历史会话",onClick:()=>H(t=>!t),children:e.jsx(vs,{size:16,strokeWidth:1.8})}),E||!A?null:e.jsx("button",{type:"button",className:"mdocs-agent-panel-icon-btn",title:j?"退出全屏":"全屏","aria-label":j?"退出全屏":"全屏",onClick:A,children:j?e.jsx(As,{size:16,strokeWidth:1.8}):e.jsx(Ss,{size:16,strokeWidth:1.8})}),E?null:e.jsx("button",{type:"button",className:"mdocs-agent-panel-icon-btn",title:"关闭","aria-label":"关闭",onClick:ze,children:e.jsx(we,{size:16,strokeWidth:1.8})})]})]}),ee?e.jsxs("div",{className:"mdocs-agent-panel-history",children:[e.jsxs("div",{className:"mdocs-agent-panel-history-head",children:[e.jsx("span",{children:"历史会话"}),e.jsx("button",{type:"button",className:"mdocs-agent-panel-history-back",onClick:()=>{H(!1),se(null)},children:"返回对话"})]}),e.jsxs("div",{className:"mdocs-agent-panel-history-filters",role:"tablist","aria-label":"按工作空间筛选",children:[e.jsx("button",{type:"button",role:"tab","aria-selected":Y==="current",className:"mdocs-agent-panel-history-filter"+(Y==="current"?" active":""),onClick:()=>Ke("current"),children:"当前工作空间"}),e.jsx("button",{type:"button",role:"tab","aria-selected":Y==="all",className:"mdocs-agent-panel-history-filter"+(Y==="all"?" active":""),onClick:()=>Ke("all"),children:"全部"})]}),zt?e.jsx("p",{className:"mdocs-agent-panel-history-hint",children:"加载中…"}):me.length===0?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"mdocs-agent-panel-history-empty",children:"暂无历史会话"}),e.jsx("p",{className:"mdocs-agent-panel-history-hint",children:"发一条消息后会出现在这里"})]}):ie.length===0?e.jsx("p",{className:"mdocs-agent-panel-history-empty",children:"此工作空间暂无会话"}):e.jsxs("div",{className:"mdocs-agent-panel-history-list",children:[mt.length>0?e.jsxs("section",{className:"mdocs-agent-panel-history-section",children:[e.jsx("div",{className:"mdocs-agent-panel-history-section-label",children:"Pinned"}),e.jsx("ul",{children:mt.map(t=>e.jsx("li",{children:ft(t)},t.id))})]}):null,Vt.map(t=>{const n=pt(t.id);return e.jsxs("section",{className:"mdocs-agent-panel-history-folder",children:[e.jsxs("button",{type:"button",className:"mdocs-agent-panel-history-folder-head","aria-expanded":n,onClick:()=>Zt(t.id),children:[n?e.jsx(is,{size:14,strokeWidth:1.8}):e.jsx(Rt,{size:14,strokeWidth:1.8}),e.jsx("span",{className:"mdocs-agent-panel-history-folder-name",children:t.label}),e.jsx("span",{className:"mdocs-agent-panel-history-folder-count",children:t.items.length})]}),n?e.jsx("ul",{children:t.items.map(r=>e.jsx("li",{children:ft(r)},r.id))}):null]},t.id)})]})]}):e.jsxs("div",{className:"mdocs-agent-panel-body",children:[e.jsxs("div",{className:"mdocs-agent-panel-scroll-wrap",children:[e.jsx("div",{className:"mdocs-agent-panel-welcome",ref:ge,onScroll:Bt,children:K.length===0?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"mdocs-agent-panel-hello",children:z?"你好,我是 mdocs 帮写助手":"你好,我是 mdocs 智能助手"}),e.jsx("p",{className:"mdocs-agent-panel-desc",children:z?"这里专注改稿:你说怎么写,我更新右侧提案;按段接受或拒绝后,再点「完成并写回」。答疑、建目录、搜文档请用右下角「智能助手」。":"我能答疑、搜文档、整理结构,也能帮你写全文;需要按段精细改稿,请点文档顶栏「帮写」。"}),Le?e.jsx(yt,{onConfigured:ot}):ht?e.jsx("p",{className:"mdocs-agent-panel-status-warn",children:ht}):e.jsx("div",{className:"mdocs-agent-panel-chips",children:(z?sn:tn).map(t=>e.jsx("button",{type:"button",className:"mdocs-agent-panel-chip",onClick:()=>void qe(t),disabled:v||!(k!=null&&k.enabled),children:t},t))})]}):e.jsx("div",{className:"mdocs-agent-panel-messages",children:K.map(t=>{var n;return e.jsxs("div",{className:"mdocs-agent-panel-msg"+(t.role==="user"?" mdocs-agent-panel-msg-user":" mdocs-agent-panel-msg-assistant"),children:[t.role==="assistant"?e.jsx("div",{className:"mdocs-agent-panel-avatar mdocs-agent-panel-avatar-ai","aria-hidden":!0,children:e.jsx("img",{src:xt,alt:""})}):null,e.jsxs("div",{className:"mdocs-agent-panel-msg-bubble",children:[t.role==="user"&&t.skillNames&&t.skillNames.length>0?e.jsxs("div",{className:"mdocs-agent-msg-skills",children:["Skill ×",t.skillNames.length]}):null,t.role==="assistant"?t.blocks&&t.blocks.length>0?e.jsxs("div",{className:"mdocs-agent-panel-timeline",children:[t.blocks.map((r,m)=>{if(r.type==="thinking")return e.jsx(Zs,{block:r,live:v&&!r.endedAt,now:Ft},`${t.id}-th-${m}`);if(r.type==="text")return r.text?e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsx(kt,{children:r.text})},`${t.id}-t-${m}`):null;if(r.type==="sources")return r.items.length===0?null:e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsxs("details",{className:"mdocs-agent-panel-tool-fold",children:[e.jsxs("summary",{children:["已阅读 ",r.items.length," 个页面"]}),e.jsx("ol",{className:"mdocs-agent-panel-sources-list",children:r.items.map(i=>e.jsx("li",{children:e.jsx("a",{href:i.url,target:"_blank",rel:"noreferrer",children:i.name})},i.id))})]})},`${t.id}-s-${m}`);if(r.type==="tool_call"){const i=r.status==="running"?"进行中":r.status==="error"?"失败":"完成";return e.jsxs("div",{className:`mdocs-agent-panel-block mdocs-agent-tool-call mdocs-agent-tool-call-${r.status}`,children:[e.jsxs("div",{className:"mdocs-agent-tool-call-head",children:[e.jsx("span",{className:"mdocs-agent-tool-call-status","aria-hidden":!0}),e.jsx("span",{className:"mdocs-agent-tool-call-label",children:r.label}),e.jsx("span",{className:"mdocs-agent-tool-call-badge",children:i})]}),r.detail?e.jsx("p",{className:"mdocs-agent-tool-call-detail",children:r.detail}):null]},`${t.id}-tc-${r.toolCallId}`)}if(r.type==="tool_notice")return e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsx("p",{className:"mdocs-agent-panel-tool-notice",children:r.text})},`${t.id}-n-${m}`);if(r.type==="choice_card")return e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsx(cn,{block:r,onResolved:(i,c,h)=>{C(D=>D.map(P=>P.id!==t.id||!P.blocks?P:{...P,blocks:P.blocks.map(B=>B.type==="choice_card"&&B.requestId===i?{...B,status:h,selected:h==="selected"?c:B.selected}:B)}))}})},`${t.id}-ch-${m}`);if(r.type==="skill_form_card")return e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsx(Fs,{block:r,onResolved:(i,c,h)=>{C(D=>D.map(P=>P.id!==t.id||!P.blocks?P:{...P,blocks:P.blocks.map(B=>B.type==="skill_form_card"&&B.requestId===i?{...B,status:c,submittedName:c==="submitted"?h:B.submittedName}:B)}))}})},`${t.id}-sf-${m}`);if(r.type==="document_card"){const i=`${window.location.origin}${window.location.pathname}#/doc/${r.documentId}`;return e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsxs("details",{className:"mdocs-agent-panel-tool-fold",open:!0,children:[e.jsxs("summary",{children:[e.jsxs("button",{type:"button",className:"mdocs-agent-panel-doc-link",onClick:c=>{c.preventDefault(),c.stopPropagation(),Fe(r.documentId)},children:["《",r.title,"》"]}),e.jsx("span",{className:"mdocs-agent-panel-tool-fold-hint",children:"打开文档"})]}),e.jsxs("div",{className:"mdocs-agent-panel-doc-card-body",children:[r.path?e.jsx("p",{className:"mdocs-agent-panel-doc-card-path",children:r.path}):null,e.jsx("p",{className:"mdocs-agent-panel-doc-card-path",children:e.jsx("a",{href:i,className:"mdocs-agent-panel-doc-link",onClick:c=>{c.preventDefault(),Fe(r.documentId)},children:i})}),r.preview?e.jsx("p",{className:"mdocs-agent-panel-doc-card-preview",children:r.preview}):e.jsx("p",{className:"mdocs-agent-panel-doc-card-preview muted",children:"(无正文预览)"})]})]})},`${t.id}-c-${m}`)}return e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsxs("details",{className:"mdocs-agent-panel-tool-fold",children:[e.jsxs("summary",{children:[r.title,e.jsx("span",{className:"mdocs-agent-panel-tool-fold-hint",children:r.rows.length===0?"无结果":`${r.rows.length} 条`})]}),e.jsx("div",{className:"mdocs-agent-panel-doc-table-wrap",children:r.rows.length===0?e.jsx("p",{className:"mdocs-agent-panel-doc-table-empty",children:"无结果"}):e.jsxs("table",{className:"mdocs-agent-panel-doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"文章名字"}),e.jsx("th",{children:"文章内容"})]})}),e.jsx("tbody",{children:r.rows.map(i=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("button",{type:"button",className:"mdocs-agent-panel-doc-link",onClick:()=>Fe(i.documentId),children:i.title})}),e.jsx("td",{children:i.summary||"-"})]},i.documentId))})]})})]})},`${t.id}-d-${m}`)}),v&&t.id===((n=K[K.length-1])==null?void 0:n.id)&&!bt(t.blocks)&&!on(t.blocks)?e.jsxs("span",{className:"mdocs-agent-panel-thinking","aria-label":"思考中",children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]}):null]}):t.content?e.jsx(kt,{children:t.content}):v?e.jsxs("span",{className:"mdocs-agent-panel-thinking","aria-label":"思考中",children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]}):null:t.content]}),t.role==="user"?e.jsx("div",{className:"mdocs-agent-panel-avatar mdocs-agent-panel-avatar-user","aria-hidden":!0,children:Mt}):null]},t.id)})})}),qt?e.jsxs("button",{type:"button",className:"mdocs-chat-jump-bottom",onClick:Ot,title:"回到底部","aria-label":"回到底部",children:[e.jsx(Ns,{size:14,strokeWidth:2,"aria-hidden":!0}),e.jsx("span",{children:"置底"})]}):null]}),Je?e.jsx("p",{className:"mdocs-agent-panel-status-warn",children:Je}):null,Le&&K.length>0?e.jsx(yt,{onConfigured:ot}):null,e.jsx(Ts,{selectedNames:re,onChange:Ae,disabled:v||!(k!=null&&k.enabled)}),e.jsxs("div",{className:"mdocs-agent-panel-input-wrap",children:[z?null:Ee?e.jsxs("div",{className:"mdocs-agent-doc-ref mdocs-agent-graph-ref",children:[e.jsx(St,{size:15,strokeWidth:1.75,className:"mdocs-agent-doc-ref-icon","aria-hidden":!0}),e.jsxs("div",{className:"mdocs-agent-doc-ref-text",children:[e.jsx("span",{className:"mdocs-agent-doc-ref-title",children:Pt}),e.jsx("span",{className:"mdocs-agent-doc-ref-path",children:"图谱(只读)"})]}),e.jsx("button",{type:"button",className:"mdocs-agent-doc-ref-unlink",title:"取消引用","aria-label":"取消引用当前图谱",disabled:v,onClick:()=>Ie(!0),children:e.jsx(we,{size:14,strokeWidth:2,"aria-hidden":!0})})]}):st?e.jsxs("div",{className:"mdocs-agent-doc-ref",children:[e.jsx(os,{size:15,strokeWidth:1.75,className:"mdocs-agent-doc-ref-icon","aria-hidden":!0}),e.jsxs("div",{className:"mdocs-agent-doc-ref-text",children:[e.jsx("span",{className:"mdocs-agent-doc-ref-title",children:Lt}),nt?e.jsx("span",{className:"mdocs-agent-doc-ref-path",children:nt}):null]}),e.jsx("button",{type:"button",className:"mdocs-agent-doc-ref-unlink",title:"取消引用","aria-label":"取消引用当前文档",disabled:v,onClick:()=>Ie(!0),children:e.jsx(we,{size:14,strokeWidth:2,"aria-hidden":!0})})]}):null,e.jsxs("div",{className:"mdocs-agent-panel-input-body",children:[e.jsx("textarea",{className:"mdocs-agent-panel-input",rows:2,placeholder:k!=null&&k.enabled?z?"说说要写什么…":"把你的问题告诉我…":"请先配置 API Key",value:pe,disabled:v||!(k!=null&&k.enabled),onChange:t=>fe(t.target.value),onKeyDown:t=>{t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),qe(pe))}}),he?e.jsx(dn,{percent:he.percent,used:he.used,limit:he.limit}):null,e.jsx("button",{type:"button",className:v?"mdocs-agent-panel-send mdocs-agent-panel-send-stop":"mdocs-agent-panel-send",disabled:v?!1:!(k!=null&&k.enabled)||!pe.trim(),onClick:()=>{var t;if(v){const n=T.current;(t=R.current)==null||t.abort(),T.current=null,U(!1),n&&be(n).catch(()=>{});return}qe(pe)},title:v?"停止":"发送","aria-label":v?"停止":"发送",children:v?"■":"↑"})]})]}),e.jsx("p",{className:"mdocs-agent-panel-footnote",children:"内容由 AI 生成,仅供参考"})]}),_e?e.jsx("div",{className:"mdocs-agent-close-confirm-backdrop",role:"presentation",onClick:()=>{X||V(!1)},children:e.jsxs("div",{className:"mdocs-message-dialog mdocs-agent-close-confirm",role:"dialog","aria-modal":"true","aria-labelledby":"mdocs-agent-close-confirm-title",onClick:t=>t.stopPropagation(),children:[e.jsx("h3",{id:"mdocs-agent-close-confirm-title",className:"mdocs-message-dialog-title",children:"有待处理的倒计时"}),e.jsx("p",{className:"mdocs-message-dialog-body",children:"当前还有选择卡或 Skill 表单在倒计时。强制关闭会取消这些操作并退出助手;也可以继续等待完成后再关。"}),e.jsxs("div",{className:"mdocs-message-dialog-actions mdocs-agent-close-confirm-actions",children:[e.jsx("button",{type:"button",className:"secondary",disabled:X,onClick:()=>V(!1),children:"继续等待"}),e.jsx("button",{type:"button",disabled:X,onClick:()=>void Wt(),children:X?"关闭中…":"强制关闭并退出"})]})]})}):null]})});export{kn as AgentChatPanel};
@@ -1,16 +0,0 @@
1
- import{o as m,c as B,U as A,V as S,W as k,l as j,Y as v,Z as I,_ as W,S as z,$ as H}from"./index-Btfv_3-Q.js";import{r as C,j as n}from"./react-vendor-BVS1XoFi.js";import{g as O}from"./file-type-policy-aRrzC4LZ.js";/**
2
- * @license lucide-react v0.562.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const R=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],L=m("chevron-up",R);/**
7
- * @license lucide-react v0.562.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const T=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M6.376 18.91a6 6 0 0 1 11.249.003",key:"hnjrf2"}],["circle",{cx:"12",cy:"11",r:"4",key:"1gt34v"}]],q=m("shield-user",T);/**
12
- * @license lucide-react v0.562.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const _=[["path",{d:"M3 5h18",key:"1u36vt"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 19h18",key:"awlh7x"}]],K=m("text-align-justify",_);function N(){if(typeof navigator>"u")return!1;const e=navigator.userAgent||"",a=navigator.platform||"";return/Mac|iPhone|iPad|iPod/i.test(a)||/Mac OS X|Macintosh/i.test(e)}function U(){return N()?"⌘+Enter":"Alt+Enter"}function V(e){return e.key!=="Enter"||e.shiftKey||e.ctrlKey?!1:N()?e.metaKey&&!e.altKey:e.altKey&&!e.metaKey}function J(e){const{t:a,lang:u}=B(),l=O(e.fileType||"md"),D=!!(l!=null&&l.aiWrite&&e.onAiWrite),M=!!(l!=null&&l.comments&&e.onToggleComments),h=e.canEdit&&(e.editing||!!e.actionsAlwaysVisible),[c,P]=C.useState(!1),y=e.domains.length?e.domains:[A],b=!e.readerChrome&&!!e.onPublish&&h&&!e.busy;C.useEffect(()=>{if(!b)return;const t=o=>{var d;V(o)&&(o.preventDefault(),(d=e.onPublish)==null||d.call(e))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[b,e.onPublish]);const E=e.readerChrome?a("publish"):a("publishHotkeyHint",{hotkey:U()}),w=n.jsxs("span",{className:"mdocs-save-indicator","aria-live":"polite",children:[n.jsx("span",{className:"mdocs-save-dot "+(e.busy?"saving":e.draftExists?"unsaved":"saved")}),n.jsx("span",{children:e.busy?a("publishing"):e.draftExists?a("unsaved"):a("published")})]}),s="mdocs-editor-toolbar"+(e.readerChrome?e.readerHeaderDocked?" mdocs-editor-toolbar--docked":" mdocs-editor-toolbar--float":""),r=e.readerChrome&&!e.readerHeaderDocked&&e.readerDragOffset?{transform:`translateY(${e.readerDragOffset}px)`}:void 0;if(e.readerChrome){const t=n.jsxs("div",{className:"mdocs-editor-toolbar-leading",onPointerDown:e.onReaderHeaderPointerDown,onPointerMove:e.onReaderHeaderPointerMove,onPointerUp:e.onReaderHeaderPointerUp,onPointerCancel:e.onReaderHeaderPointerUp,children:[n.jsx("button",{type:"button",className:"mdocs-reader-nav-btn",onClick:()=>{var i;return(i=e.onOpenMobileNav)==null?void 0:i.call(e)},"aria-label":a("expandSidebar"),children:n.jsx(S,{size:18,strokeWidth:1.75})}),n.jsx("input",{className:"mdocs-editor-title-input",value:e.displayName,onChange:i=>e.onDisplayNameChange(i.target.value),onBlur:e.onDisplayNameBlur,placeholder:a("displayNamePlaceholder"),disabled:!e.editing,readOnly:!e.editing})]}),o=n.jsx(k,{domains:y,value:e.currentDomainId,onChange:e.onDomainChange,onDomainsChange:e.onDomainsChange,ariaLabel:a("currentDomainAria"),localizeName:i=>j(i,u,a)}),d=e.canEdit&&e.onPublish?n.jsx("button",{type:"button",className:"primary mdocs-reader-action-btn",disabled:e.busy,onMouseDown:i=>i.preventDefault(),onClick:()=>{var i,f;e.editing||(i=e.onEnterEdit)==null||i.call(e),(f=e.onPublish)==null||f.call(e)},children:e.busy?a("publishing"):a("publish")}):null,g=e.onSyncClick?n.jsx("button",{type:"button",className:"mdocs-sync-btn mdocs-reader-sync-btn"+(e.syncBehind?" behind":""),"aria-label":e.syncBehind?a("syncBehindHint"):a("syncPull"),onClick:()=>{var i;return void((i=e.onSyncClick)==null?void 0:i.call(e))},children:n.jsx(v,{size:16,strokeWidth:1.75})}):null,x=e.readerMoreMenu!=null?n.jsxs("div",{ref:e.readerMoreMenuRef,className:"mdocs-reader-more-menu",children:[n.jsx("button",{type:"button",className:"mdocs-reader-more-btn","aria-label":"更多","aria-expanded":e.readerMoreOpen,onClick:()=>{var i;return(i=e.onToggleReaderMore)==null?void 0:i.call(e)},children:n.jsx(I,{size:18,strokeWidth:1.75})}),e.readerMoreOpen?n.jsx("div",{className:"mdocs-reader-more-dropdown card",children:e.readerMoreMenu}):null]}):null;return e.readerActionsCollapsible?n.jsxs("div",{className:s+" mdocs-editor-toolbar--stacked",style:r,children:[n.jsxs("div",{className:"mdocs-reader-top-row",children:[t,g,n.jsx("button",{type:"button",className:"mdocs-reader-expand-btn",onClick:()=>P(i=>!i),"aria-label":c?"收起操作栏":"展开操作栏",children:n.jsx(L,{size:16,strokeWidth:2,style:{transform:c?"rotate(0deg)":"rotate(180deg)",transition:"transform 0.2s"}})}),x]}),c&&n.jsxs("div",{className:"mdocs-reader-actions-row",children:[o,e.leadingExtra,d,e.trailingExtra]})]}):n.jsxs("div",{className:s,style:r,children:[t,o,e.leadingExtra,g,d,x,e.trailingExtra]})}return n.jsxs("div",{className:s,style:r,children:[n.jsxs("div",{className:"mdocs-editor-toolbar-leading",children:[n.jsx("input",{className:"mdocs-editor-title-input",value:e.displayName,onChange:t=>e.onDisplayNameChange(t.target.value),onBlur:e.onDisplayNameBlur,placeholder:a("displayNamePlaceholder"),disabled:!e.editing}),n.jsx(k,{domains:y,value:e.currentDomainId,onChange:e.onDomainChange,onDomainsChange:e.onDomainsChange,ariaLabel:a("currentDomainAria"),localizeName:t=>j(t,u,a)}),D?n.jsxs("button",{type:"button",className:"secondary",onClick:()=>{var t;return(t=e.onAiWrite)==null?void 0:t.call(e)},style:{padding:"4px 10px",whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",gap:6},children:[n.jsx("img",{src:W,alt:"",width:16,height:16,style:{display:"block"}}),"帮写"]}):null,e.leadingExtra]}),n.jsx("span",{className:"mdocs-editor-toolbar-spacer","aria-hidden":!0}),n.jsxs("div",{className:"mdocs-editor-toolbar-trailing",children:[e.onToggleBookmark?n.jsxs("button",{type:"button",className:"ghost mdocs-tooltip mdocs-tooltip-bottom",onClick:()=>{var t;return(t=e.onToggleBookmark)==null?void 0:t.call(e)},disabled:e.bookmarkBusy,"data-tooltip":e.isBookmarked?"取消收藏":"收藏",style:{padding:"4px 8px",minWidth:"auto",display:"flex",alignItems:"center",justifyContent:"center",gap:4,opacity:e.bookmarkBusy?.5:1},children:[n.jsx(z,{size:18,strokeWidth:1.5,style:{color:e.isBookmarked?"#faad14":"var(--mdocs-text-secondary, #6b7280)",fill:e.isBookmarked?"#faad14":"none"}}),e.isBookmarked?n.jsx("span",{children:"已收藏"}):null]}):null,n.jsxs("div",{className:"mdocs-editor-toolbar-actions",children:[e.onSyncClick?n.jsxs("button",{type:"button",className:"mdocs-sync-btn mdocs-tooltip mdocs-tooltip-bottom"+(e.syncBehind?" behind":""),"data-tooltip":e.syncBehind?a("syncBehindHint"):a("syncPull"),onClick:()=>{var t;return void((t=e.onSyncClick)==null?void 0:t.call(e))},style:{display:"flex",alignItems:"center",gap:4},children:[n.jsx(v,{size:16,strokeWidth:1.5}),n.jsx("span",{children:a("syncPull")})]}):null,h?n.jsxs(n.Fragment,{children:[w,e.onPublish?n.jsx("button",{type:"button",className:"primary mdocs-tooltip mdocs-tooltip-bottom",disabled:e.busy,"data-tooltip":E,onMouseDown:t=>t.preventDefault(),onClick:()=>{var t;return(t=e.onPublish)==null?void 0:t.call(e)},children:e.busy?a("publishing"):a("publish")}):null,e.onDelete?n.jsx("button",{type:"button",className:"danger",disabled:e.busy,onClick:()=>{var t;return(t=e.onDelete)==null?void 0:t.call(e)},children:a("delete")}):null]}):null,!e.editing&&e.canEdit&&e.onEnterEdit&&!e.actionsAlwaysVisible?n.jsx("button",{type:"button",className:"primary",onClick:()=>{var t;return(t=e.onEnterEdit)==null?void 0:t.call(e)},children:a("edit")}):null,e.trailingExtra,M?n.jsxs("button",{type:"button",className:"ghost mdocs-tooltip mdocs-tooltip-bottom",onClick:()=>{var t;return(t=e.onToggleComments)==null?void 0:t.call(e)},"data-tooltip":"评论",style:{padding:"4px 8px",minWidth:"auto",display:"flex",alignItems:"center",justifyContent:"center",gap:4,background:e.commentPanelOpen?"var(--mdocs-hover-bg, #f0f0f0)":void 0},children:[n.jsx(H,{size:18,strokeWidth:1.5,style:{color:"var(--mdocs-text-secondary, #6b7280)"}}),e.commentCount&&e.commentCount>0?n.jsx("span",{style:{fontSize:"0.85rem"},children:e.commentCount}):null]}):null,e.onToggleDocInfo?n.jsxs("div",{ref:e.docInfoMenuRef,className:"mdocs-tooltip mdocs-tooltip-bottom","data-tooltip":a("docInfo"),style:{position:"relative"},children:[n.jsx("button",{type:"button",className:"secondary",onClick:()=>{var t;return(t=e.onToggleDocInfo)==null?void 0:t.call(e)},style:{padding:"4px 8px",minWidth:"auto",display:"flex",alignItems:"center",justifyContent:"center"},children:n.jsx(K,{size:18,strokeWidth:1.5,style:{color:"var(--mdocs-text-secondary, #6b7280)"}})}),e.docInfoOpen?n.jsx("div",{className:"mdocs-doc-info-dropdown",children:e.docInfoMenu}):null]}):null]})]})]})}export{J as D,q as S};
@@ -1,10 +0,0 @@
1
- import{r as x,j as i}from"./react-vendor-BVS1XoFi.js";import{c as K,ba as H,bb as Y,bc as Z,bd as ee}from"./index-Btfv_3-Q.js";import{E as te,B as ne}from"./react-C7aGt3wN.js";import{g as le}from"./file-type-policy-aRrzC4LZ.js";import"./ui-CEFkTVnG.js";import"./motion-BAXVQJfN.js";import"./diagram-BF8g9yg4.js";import"./editor-DBWWidi3.js";import"./plus-DvWl4lHk.js";import"./copy-J9XXv57X.js";import"./check-BAYRiedE.js";function B({lexicalJson:e,onMarkdown:n,onError:c}){const[s,l]=x.useState(null),o=x.useRef(!1);return x.useEffect(()=>{o.current=!1},[e]),x.useEffect(()=>{if(!(!s||o.current))try{s.setDocument("json",e);const a=s.getDocument("markdown");typeof a=="string"&&(o.current=!0,n(a))}catch{c==null||c()}},[s,e,n,c]),i.jsx("div",{className:"mdocs-lexical-md-bridge","aria-hidden":!0,children:i.jsx(te,{content:e,type:"json",editable:!1,onInit:l,plugins:[ne]})})}function se(e){const{t:n}=K(),[c,s]=x.useState(0),l=e.segments.filter(t=>t.kind==="conflict"),o=e.unresolvedCount>0;x.useEffect(()=>{if(l.length===0){s(0);return}s(t=>Math.min(t,l.length-1))},[l.length]);function a(t){l.length!==0&&s(d=>{var m;const u=(d+t+l.length)%l.length;return(m=document.getElementById(`mdocs-merge-hunk-${u}`))==null||m.scrollIntoView({block:"center",behavior:"smooth"}),u})}let r=-1;return i.jsxs("div",{className:"mdocs-merge-inline-pane",children:[i.jsxs("div",{className:"mdocs-merge-inline-toolbar",children:[i.jsx("span",{className:"mdocs-merge-inline-hint",children:o?n("mergeReviewHint"):l.length===0?n("mergeNoConflicts"):n("mergeEditAfterResolve")}),l.length>0?i.jsxs(i.Fragment,{children:[i.jsx("button",{type:"button",onClick:e.onUseAllMine,children:n("mergeUseAllMine")}),i.jsx("button",{type:"button",onClick:e.onUseAllTheirs,children:n("mergeUseAllTheirs")})]}):null]}),o?i.jsxs("div",{className:"mdocs-merge-inline",role:"document",children:[e.segments.map((t,d)=>{if(t.kind==="unchanged")return i.jsx("pre",{className:"mdocs-merge-inline-same",children:t.lines.map((g,C)=>i.jsxs("div",{className:"mdocs-ai-write-line ctx",children:[i.jsx("span",{className:"mdocs-ai-write-rail","aria-hidden":!0}),i.jsx("span",{className:"mdocs-ai-write-code",children:g||" "})]},C))},`u-${d}`);r+=1;const u=r,m=t.resolution!=="unresolved",f=u===c;return i.jsxs("div",{id:`mdocs-merge-hunk-${u}`,className:"mdocs-merge-inline-hunk"+(f?" is-active":"")+(m?" is-resolved":""),onClick:()=>s(u),children:[m?i.jsx("div",{className:"mdocs-merge-hunk-resolved-tag",children:t.resolution==="remote"?n("mergeReceive"):n("mergeReject")}):i.jsxs("div",{className:"mdocs-merge-hunk-actions",children:[i.jsx("button",{type:"button",className:"mdocs-ai-write-hunk-reject",onClick:g=>{g.stopPropagation(),e.onReject(t.id)},children:n("mergeReject")}),i.jsx("button",{type:"button",className:"mdocs-ai-write-hunk-accept",onClick:g=>{g.stopPropagation(),e.onReceive(t.id)},children:n("mergeReceive")})]}),i.jsxs("pre",{className:"mdocs-ai-write-hunk-pre",children:[t.localLines.map((g,C)=>i.jsxs("div",{className:"mdocs-ai-write-line del",children:[i.jsx("span",{className:"mdocs-ai-write-rail","aria-hidden":!0}),i.jsx("span",{className:"mdocs-ai-write-code",children:g||" "})]},`l${C}`)),t.remoteLines.map((g,C)=>i.jsxs("div",{className:"mdocs-ai-write-line add",children:[i.jsx("span",{className:"mdocs-ai-write-rail","aria-hidden":!0}),i.jsx("span",{className:"mdocs-ai-write-code",children:g||" "})]},`r${C}`))]})]},t.id)}),l.length>0?i.jsxs("div",{className:"mdocs-ai-write-float-nav",role:"toolbar","aria-label":"冲突导航",children:[i.jsx("button",{type:"button","aria-label":"上一段",onClick:()=>a(-1),children:"↑"}),i.jsxs("span",{children:[c+1," / ",l.length]}),i.jsx("button",{type:"button","aria-label":"下一段",onClick:()=>a(1),children:"↓"}),l[c]&&l[c].resolution==="unresolved"?i.jsxs(i.Fragment,{children:[i.jsx("button",{type:"button",className:"mdocs-ai-write-hunk-reject",onClick:()=>e.onReject(l[c].id),children:n("mergeReject")}),i.jsx("button",{type:"button",className:"mdocs-ai-write-hunk-accept",onClick:()=>e.onReceive(l[c].id),children:n("mergeReceive")})]}):null]}):null]}):i.jsx("textarea",{className:"mdocs-merge-inline-editor",value:e.editableMarkdown,onChange:t=>e.onEditableChange(t.target.value),spellCheck:!1})]})}function ie(e,n){let c={};for(let o=0;o<n.length;o++){const a=n[o];c[a]?c[a].push(o):c[a]=[o]}let l=[{buffer1index:-1,buffer2index:-1,chain:null}];for(let o=0;o<e.length;o++){const a=e[o],r=c[a]||[];let t=0,d=l[0];for(let u=0;u<r.length;u++){const m=r[u];let f;for(f=t;f<l.length&&!(l[f].buffer2index<m&&(f===l.length-1||l[f+1].buffer2index>m));f++);if(f<l.length){const g={buffer1index:o,buffer2index:m,chain:l[f]};if(t===l.length?l.push(d):l[t]=d,t=f+1,d=g,t===l.length)break}}l[t]=d}return l[l.length-1]}function O(e,n){const c=ie(e,n);let s=[],l=e.length,o=n.length;for(let a=c;a!==null;a=a.chain){const r=l-a.buffer1index-1,t=o-a.buffer2index-1;l=a.buffer1index,o=a.buffer2index,(r||t)&&s.push({buffer1:[l+1,r],buffer1Content:e.slice(l+1,l+1+r),buffer2:[o+1,t],buffer2Content:n.slice(o+1,o+1+t)})}return s.reverse(),s}function oe(e,n,c){let s=[];function l(t,d){s.push({ab:d,oStart:t.buffer1[0],oLength:t.buffer1[1],abStart:t.buffer2[0],abLength:t.buffer2[1]})}O(n,e).forEach(t=>l(t,"a")),O(n,c).forEach(t=>l(t,"b")),s.sort((t,d)=>t.oStart-d.oStart);let o=[],a=0;function r(t){t>a&&(o.push({stable:!0,buffer:"o",bufferStart:a,bufferLength:t-a,bufferContent:n.slice(a,t)}),a=t)}for(;s.length;){let t=s.shift(),d=t.oStart,u=t.oStart+t.oLength,m=[t];for(r(d);s.length;){const f=s[0],g=f.oStart;if(g>u)break;u=Math.max(u,g+f.oLength),m.push(s.shift())}if(m.length===1){if(t.abLength>0){const f=t.ab==="a"?e:c;o.push({stable:!0,buffer:t.ab,bufferStart:t.abStart,bufferLength:t.abLength,bufferContent:f.slice(t.abStart,t.abStart+t.abLength)})}}else{let f={a:[e.length,-1,n.length,-1],b:[c.length,-1,n.length,-1]};for(;m.length;){t=m.shift();const b=t.oStart,w=b+t.oLength,L=t.abStart,y=L+t.abLength;let v=f[t.ab];v[0]=Math.min(L,v[0]),v[1]=Math.max(y,v[1]),v[2]=Math.min(b,v[2]),v[3]=Math.max(w,v[3])}const g=f.a[0]+(d-f.a[2]),C=f.a[1]+(u-f.a[3]),k=f.b[0]+(d-f.b[2]),h=f.b[1]+(u-f.b[3]);let p={stable:!1,aStart:g,aLength:C-g,aContent:e.slice(g,C),oStart:d,oLength:u-d,oContent:n.slice(d,u),bStart:k,bLength:h-k,bContent:c.slice(k,h)};o.push(p)}a=u}return r(n.length),o}function ce(e,n,c,s){s=Object.assign({excludeFalseConflicts:!0,stringSeparator:/\s+/},s),typeof e=="string"&&(e=e.split(s.stringSeparator)),typeof n=="string"&&(n=n.split(s.stringSeparator)),typeof c=="string"&&(c=c.split(s.stringSeparator));let o=[];const a=oe(e,n,c);let r=[];function t(){r.length&&o.push({ok:r}),r=[]}function d(u,m){if(u.length!==m.length)return!1;for(let f=0;f<u.length;f++)if(u[f]!==m[f])return!1;return!0}return a.forEach(u=>{u.stable?r.push(...u.bufferContent):s.excludeFalseConflicts&&d(u.aContent,u.bContent)?r.push(...u.aContent):(t(),o.push({conflict:{a:u.aContent,aIndex:u.aStart,o:u.oContent,oIndex:u.oStart,b:u.bContent,bIndex:u.bStart}}))}),t(),o}const ae=/^<!--\s*mdocs-merge-conflict:([^\s]+)\s*-->$/;function re(e){return`<!-- mdocs-merge-conflict:${e} -->`}function ue(e){const n=e.trim().match(ae);return(n==null?void 0:n[1])??null}function E(e){return e===""?[]:e.split(`
2
- `)}function V(e,n){return e.length===n.length&&e.every((c,s)=>c===n[s])}function de(e,n,c){const s=E(e),l=E(n),o=E(c);if(l.length===0&&n==="")return me(e,c);const a=ce(s,l,o),r=[];let t=0,d=0,u=0,m=0;const f=(C,k,h,p)=>{r.push({kind:"conflict",id:`conflict-${t}`,conflictKind:p,baseLines:C,localLines:k,remoteLines:h,resolution:"unresolved"}),t+=1},g=(C,k,h)=>{if(k.length===0&&C.length===0&&h.length===0)return;if(V(C,k)&&V(h,k)){k.length>0&&r.push({kind:"unchanged",lines:[...k]});return}if(C.length===k.length&&h.length===k.length){let b=[];const w=()=>{b.length>0&&(r.push({kind:"unchanged",lines:b}),b=[])};for(let L=0;L<k.length;L+=1){const y=k[L],v=C[L],I=h[L];v===y&&I===y?b.push(y):(w(),f([y],[v],[I],v!==y&&I!==y&&v!==I?"true_conflict":"change"))}w();return}const p=C.join(`
3
- `)!==k.join(`
4
- `)&&h.join(`
5
- `)!==k.join(`
6
- `)&&C.join(`
7
- `)!==h.join(`
8
- `)?"true_conflict":"change";f(k,C,h,p)};for(let C=0;C<a.length;C+=1){const k=a[C],h=k.conflict;if(h){g(s.slice(d,h.aIndex),l.slice(u,h.oIndex),o.slice(m,h.bIndex)),f(h.o,h.a,h.b,"true_conflict"),d=h.aIndex+h.a.length,u=h.oIndex+h.o.length,m=h.bIndex+h.b.length;continue}if(k.ok){const p=a[C+1],b=p==null?void 0:p.conflict;b?(g(s.slice(d,b.aIndex),l.slice(u,b.oIndex),o.slice(m,b.bIndex)),d=b.aIndex,u=b.oIndex,m=b.bIndex):(g(s.slice(d),l.slice(u),o.slice(m)),d=s.length,u=l.length,m=o.length)}}return r}function fe(e,n){const c=e.length,s=n.length,l=Array.from({length:c+1},()=>new Array(s+1).fill(0));for(let t=1;t<=c;t+=1)for(let d=1;d<=s;d+=1)e[t-1]===n[d-1]?l[t][d]=l[t-1][d-1]+1:l[t][d]=Math.max(l[t-1][d],l[t][d-1]);const o=[];let a=c,r=s;for(;a>0||r>0;)a>0&&r>0&&e[a-1]===n[r-1]?(o.push({type:"equal",line:e[a-1]}),a-=1,r-=1):r>0&&(a===0||l[a][r-1]>=l[a-1][r])?(o.push({type:"add",line:n[r-1]}),r-=1):(o.push({type:"del",line:e[a-1]}),a-=1);return o.reverse()}function me(e,n){const c=E(e),s=E(n),l=fe(c,s),o=[];let a=0,r=0;for(;r<l.length;){if(l[r].type==="equal"){const m=[];for(;r<l.length&&l[r].type==="equal";)m.push(l[r].line),r+=1;o.push({kind:"unchanged",lines:m});continue}const d=[],u=[];for(;r<l.length&&l[r].type!=="equal";){const m=l[r];m.type==="del"&&d.push(m.line),m.type==="add"&&u.push(m.line),r+=1}o.push({kind:"conflict",id:`conflict-${a}`,conflictKind:"true_conflict",baseLines:[],localLines:d,remoteLines:u,resolution:"unresolved"}),a+=1}return o}function he(e){return e.filter(n=>n.kind==="conflict").length}function ge(e){return e.filter(n=>n.kind==="conflict"&&n.resolution==="unresolved").length}function be(e){switch(e.resolution){case"local":return e.localLines;case"remote":return e.remoteLines;case"both":return[...e.localLines,...e.remoteLines];case"manual":return e.manualLines??[];default:return[]}}function xe(e){const n=[];for(const c of e)c.kind==="unchanged"?n.push(...c.lines):c.resolution==="unresolved"?n.push(re(c.id)):n.push(...be(c));return n.join(`
9
- `)}function W(e){return E(e).filter(n=>!ue(n)).join(`
10
- `)}function F(e,n,c,s){return e.map(l=>l.kind!=="conflict"||l.id!==n?l:{...l,resolution:c,manualLines:c==="manual"?l.manualLines??[]:void 0})}function Ee(e){var _;const{t:n}=K(),s=(((_=le(e.fileType??"md"))==null?void 0:_.mergePipeline)??"lexical-md-bridge")==="raw-text",[l,o]=x.useState(""),[a,r]=x.useState(""),[t,d]=x.useState(null),[u,m]=x.useState(!1),[f,g]=x.useState(!1),[C,k]=x.useState(null),[h,p]=x.useState(""),[b,w]=x.useState(null),[L,y]=x.useState(null),[v,I]=x.useState(!1),[A,M]=x.useState(!0);x.useEffect(()=>{let S=!1;return M(!0),k(null),p(""),w(null),y(null),(async()=>{try{const j=await H(e.documentId);if(S)return;s?(p(j.content),M(!1)):k(j.content)}catch{S||e.onError(n("mergeLoadRemoteFailed")),S||M(!1)}})(),()=>{S=!0}},[e.documentId,e.onError,n,s]),x.useEffect(()=>{let S=!1;return d(null),r(""),m(!1),g(!1),(async()=>{try{const j=await Y(e.documentId,e.conflict.localBaseCommitId,e.conflict.remoteCommitId);if(S)return;if(j.mode==="three_way"&&j.mergeBaseContent){s?(r(j.mergeBaseContent),g(!0)):d(j.mergeBaseContent);return}m(!0),g(!0)}catch{if(S)return;m(!0),g(!0)}})(),()=>{S=!0}},[e.documentId,e.conflict.localBaseCommitId,e.conflict.remoteCommitId,s]),x.useEffect(()=>{s&&o(e.conflict.localSnapshotContent)},[s,e.conflict.localSnapshotContent]);const z=x.useCallback(S=>{p(S),M(!1)},[]),G=x.useCallback(S=>{o(S)},[]),J=x.useCallback(S=>{r(S),g(!0)},[]),Q=x.useCallback(()=>{m(!0),r(""),g(!0)},[]);x.useEffect(()=>{!l||!h||A||!f||(w(de(l,a,h)),y(null))},[l,h,a,f,A,e.conflict.remoteCommitId]);const P=x.useMemo(()=>b?W(xe(b)):"",[b]),T=b?he(b):0,N=b?ge(b):0,$=L??P;x.useEffect(()=>{N===0&&b&&L===null&&y(P)},[N,b,P,L]);function D(S){w(j=>{if(!j)return j;let R=j;for(const q of j)q.kind==="conflict"&&(R=F(R,q.id,S));return R}),y(null)}async function X(){if(N>0){e.onError(n("mergeConflictsUnresolved",{count:String(N)}));return}const S=W($);I(!0);try{const j=s?S:(await Z({content:S,from:"markdown",to:"lexical"})).content;await ee(e.documentId,{content:j,displayName:e.displayName,version:{localBaseCommitId:e.conflict.localBaseCommitId,merge:{remoteCommitId:e.conflict.remoteCommitId,localSnapshotContent:e.conflict.localSnapshotContent}}});const R=await H(e.documentId);e.onSuccess(R)}catch(j){e.onError(j instanceof Error?j.message:String(j))}finally{I(!1)}}const U=!!(l&&h&&b&&!A&&f);return i.jsxs("div",{className:"mdocs-merge-overlay",children:[s?null:i.jsxs(i.Fragment,{children:[i.jsx(B,{lexicalJson:e.conflict.localSnapshotContent,onMarkdown:G,onError:()=>e.onError(n("mergeLoadLocalFailed"))}),t?i.jsx(B,{lexicalJson:t,onMarkdown:J,onError:Q}):null,C?i.jsx(B,{lexicalJson:C,onMarkdown:z,onError:()=>{M(!1),e.onError(n("mergeLoadRemoteFailed"))}}):null]}),i.jsxs("header",{className:"mdocs-merge-toolbar",children:[i.jsxs("div",{className:"mdocs-merge-toolbar-title",children:[i.jsx("h2",{children:n("mergeTitle")}),U&&T>0?i.jsx("span",{className:`mdocs-merge-conflict-pill ${N>0?"pending":"resolved"}`,children:N>0?n("mergeConflictsPending",{unresolved:String(N),total:String(T)}):n("mergeConflictsResolved",{total:String(T)})}):null,u?i.jsx("span",{className:"mdocs-merge-base-warning",children:n("mergeBaseMissing")}):null]}),i.jsxs("div",{className:"mdocs-merge-toolbar-actions",children:[i.jsx("button",{type:"button",className:"secondary",disabled:v,onClick:e.onClose,children:n("cancel")}),i.jsx("button",{type:"button",className:"primary",disabled:v||!U||N>0,onClick:()=>void X(),children:n(v?"publishing":"mergeComplete")})]})]}),i.jsx("div",{className:"mdocs-merge-body mdocs-merge-body--inline",children:U?i.jsx(se,{segments:b,unresolvedCount:N,onReceive:S=>{w(j=>j&&F(j,S,"remote")),y(null)},onReject:S=>{w(j=>j&&F(j,S,"local")),y(null)},onUseAllMine:()=>D("local"),onUseAllTheirs:()=>D("remote"),editableMarkdown:$,onEditableChange:y}):i.jsx("p",{className:"mdocs-merge-loading",children:n("mergeLoadingRemote")})})]})}export{Ee as MergeView};
@@ -1 +0,0 @@
1
- .mdocs-sheet-editor{display:flex;flex-direction:column;height:100%;min-height:0;background-color:var(--mdocs-bg, #f5f5f5);color:var(--mdocs-text, #212121);overflow:hidden;position:relative}.mdocs-sheet-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:38px;min-height:38px;background:var(--mdocs-surface, #ffffff);border-bottom:1px solid var(--mdocs-border, #e0e0e0);gap:12px}.mdocs-sheet-toolbar-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.mdocs-sheet-toolbar-sep{width:1px;height:18px;background:var(--mdocs-border, #e0e0e0);margin:0 4px}.mdocs-sheet-btn-icon{width:26px;padding:0;justify-content:center}.mdocs-sheet-btn.is-active{background:var(--mdocs-accent-soft, #e8f5e9);border-color:var(--mdocs-accent, #4caf50);color:var(--mdocs-accent-dark, #388e3c)}.mdocs-sheet-style-label{display:inline-flex;align-items:center;margin:0}.mdocs-sheet-font-size{height:26px;border:1px solid var(--mdocs-border, #e0e0e0);border-radius:var(--mdocs-radius-sm, 4px);background:var(--mdocs-surface, #fff);font-size:12px;color:var(--mdocs-text, #212121);padding:0 4px}.mdocs-sheet-color{width:26px;height:26px;padding:0;border:1px solid var(--mdocs-border, #e0e0e0);border-radius:4px;background:transparent;cursor:pointer}.mdocs-sheet-td.is-selected{--sel-t: 0;--sel-b: 0;--sel-l: 0;--sel-r: 0;outline:none;z-index:1;box-shadow:inset 0 calc(var(--sel-t) * 2px) 0 0 var(--mdocs-accent, #4caf50),inset 0 calc(var(--sel-b) * -2px) 0 0 var(--mdocs-accent, #4caf50),inset calc(var(--sel-l) * 2px) 0 0 0 var(--mdocs-accent, #4caf50),inset calc(var(--sel-r) * -2px) 0 0 0 var(--mdocs-accent, #4caf50)}.mdocs-sheet-td.is-selected.sel-t{--sel-t: 1}.mdocs-sheet-td.is-selected.sel-b{--sel-b: 1}.mdocs-sheet-td.is-selected.sel-l{--sel-l: 1}.mdocs-sheet-td.is-selected.sel-r{--sel-r: 1}.mdocs-sheet-td.is-selected:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--mdocs-accent, #4caf50) 12%,transparent);pointer-events:none;z-index:0}.mdocs-sheet-td.is-selected.is-active{z-index:2;box-shadow:inset 0 0 0 2px var(--mdocs-accent, #4caf50)}.mdocs-sheet-td.is-selected.is-active:after{background:color-mix(in srgb,var(--mdocs-accent, #4caf50) 8%,transparent)}.mdocs-sheet-toolbar-right{display:flex;align-items:center}.mdocs-sheet-btn{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;font-size:12px;font-weight:500;color:var(--mdocs-text, #212121);background:var(--mdocs-surface, #ffffff);border:1px solid var(--mdocs-border, #e0e0e0);border-radius:var(--mdocs-radius-sm, 4px);cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.mdocs-sheet-btn:hover:not(:disabled){background:var(--mdocs-accent-soft, #e8f5e9);border-color:var(--mdocs-accent-secondary, #81c784);color:var(--mdocs-accent-dark, #388e3c)}.mdocs-sheet-btn:disabled{opacity:.45;cursor:not-allowed}.mdocs-sheet-btn-add{height:28px;padding:0 11px 0 8px;font-weight:600;color:var(--mdocs-accent-dark, #388e3c);background:var(--mdocs-surface, #fff);border:1.5px solid var(--mdocs-accent, #4caf50);box-shadow:none}.mdocs-sheet-btn-add:hover:not(:disabled){color:var(--mdocs-accent-dark, #2e7d32);background:var(--mdocs-surface, #fff);border-color:var(--mdocs-accent-dark, #388e3c);box-shadow:0 0 0 2px #4caf502e}.mdocs-sheet-btn-add:disabled{opacity:.4;box-shadow:none}.mdocs-sheet-btn-add-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;color:var(--mdocs-accent, #4caf50)}.mdocs-sheet-btn-add-plus{position:absolute;right:-3px;bottom:-2px;background:var(--mdocs-surface, #fff);color:var(--mdocs-accent-dark, #388e3c);border:1px solid var(--mdocs-accent, #4caf50);border-radius:50%;padding:0;box-sizing:content-box}.mdocs-sheet-stats-badge{font-size:11.5px;color:var(--mdocs-accent-dark, #388e3c);background:var(--mdocs-accent-soft, #e8f5e9);padding:3px 10px;border-radius:12px;font-variant-numeric:tabular-nums;border:1px solid var(--mdocs-accent-secondary, #81c784)}.mdocs-sheet-formula-bar{flex-shrink:0;background:var(--mdocs-bg, #f5f5f5);border-bottom:1px solid var(--mdocs-border, #e0e0e0);padding:6px 12px;min-width:0}.mdocs-sheet-formula-bar-inner{display:flex;align-items:center;gap:8px;min-width:0}.mdocs-sheet-name-box,.mdocs-sheet-formula-input{height:28px;box-sizing:border-box;border:1px solid var(--mdocs-border, #e0e0e0);border-radius:6px;background:var(--mdocs-surface, #fff);color:var(--mdocs-text, #212121);font-size:13px;line-height:1.2;padding:0 10px;outline:none;overflow-x:auto;white-space:nowrap}.mdocs-sheet-name-box:focus,.mdocs-sheet-formula-input:focus{border-color:var(--mdocs-accent, #4caf50);box-shadow:0 0 0 2px #4caf5026}.mdocs-sheet-name-box{width:72px;flex:0 0 72px;text-align:center;font-variant-numeric:tabular-nums;font-weight:500;color:var(--mdocs-text-secondary, #616161);cursor:default}.mdocs-sheet-formula-input{flex:1 1 auto;min-width:0;width:100%}.mdocs-sheet-formula-input:disabled{color:var(--mdocs-text-muted, #9e9e9e);background:#fafafa;cursor:default}@media (max-width: 768px){.mdocs-sheet-toolbar{height:auto;min-height:42px;padding:6px 8px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;justify-content:flex-start}.mdocs-sheet-toolbar-left{flex-wrap:nowrap;min-width:max-content}.mdocs-sheet-toolbar-right{display:none}.mdocs-sheet-formula-bar{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding:6px 8px}.mdocs-sheet-formula-bar-inner{width:max-content;min-width:100%}.mdocs-sheet-name-box{width:64px;flex:0 0 64px}.mdocs-sheet-formula-input{flex:0 0 auto;width:auto;min-width:min(70vw,320px);max-width:none}}.mdocs-sheet-scroll{flex:1;min-height:0;overflow:auto;position:relative;background:var(--mdocs-surface, #ffffff)}.mdocs-sheet-table{border-collapse:separate;border-spacing:0;min-width:100%;table-layout:fixed;font-size:13px}.mdocs-sheet-corner-cell{position:sticky;top:0;left:0;z-index:10;width:44px;min-width:44px;max-width:44px;height:30px;background:#f8fafc;color:var(--mdocs-text-muted, #616161);font-size:11.5px;font-weight:600;text-align:center;border-right:1px solid var(--mdocs-border, #e0e0e0);border-bottom:1.5px solid var(--mdocs-border, #e0e0e0);-webkit-user-select:none;user-select:none;cursor:pointer}.mdocs-sheet-corner-cell:hover{background:var(--mdocs-accent-soft, #e8f5e9);color:var(--mdocs-accent-dark, #388e3c)}.mdocs-sheet-th{position:sticky;top:0;z-index:5;height:30px;min-width:140px;background:#f8fafc;border-right:1px solid var(--mdocs-border, #e0e0e0);border-bottom:1.5px solid var(--mdocs-border, #e0e0e0);padding:0;-webkit-user-select:none;user-select:none;cursor:pointer}.mdocs-sheet-header-cell{display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 6px 0 10px;gap:4px}.mdocs-sheet-th.is-selected{background:var(--mdocs-accent-soft, #e8f5e9)!important;color:var(--mdocs-accent-dark, #388e3c);box-shadow:inset 0 -2px 0 0 var(--mdocs-accent, #4caf50)}.mdocs-sheet-rownum.is-selected{background:var(--mdocs-accent-soft, #e8f5e9)!important;color:var(--mdocs-accent-dark, #388e3c);box-shadow:inset -2px 0 0 0 var(--mdocs-accent, #4caf50)}.mdocs-sheet-header-label{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:12px;font-weight:600;color:inherit;padding:2px 4px;border-radius:3px;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mdocs-sheet-header-label:hover{background:var(--mdocs-accent-soft, #e8f5e9)}.mdocs-sheet-header-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:12px;font-weight:600;color:var(--mdocs-text, #212121);padding:2px 4px;border-radius:3px;transition:background-color .15s ease}.mdocs-sheet-header-input:hover:not(:disabled){background:var(--mdocs-accent-soft, #e8f5e9)}.mdocs-sheet-header-input:focus{background:var(--mdocs-surface, #ffffff);box-shadow:0 0 0 1.5px var(--mdocs-accent, #4caf50);color:var(--mdocs-text, #212121)}.mdocs-sheet-col-del{opacity:0;border:none;background:transparent;color:var(--mdocs-text-muted, #616161);cursor:pointer;padding:3px;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:opacity .15s ease,background .15s ease,color .15s ease}.mdocs-sheet-th:hover .mdocs-sheet-col-del{opacity:1}.mdocs-sheet-col-del:hover{color:var(--mdocs-danger, #e53935);background:var(--mdocs-error-soft, #ffebee)}.mdocs-sheet-actions-header{position:sticky;top:0;z-index:5;width:36px;min-width:36px;max-width:36px;background:#f8fafc;border-bottom:1.5px solid var(--mdocs-border, #e0e0e0)}.mdocs-sheet-rownum{position:sticky;left:0;z-index:4;width:44px;min-width:44px;max-width:44px;height:28px;background:#f8fafc;color:var(--mdocs-text-muted, #616161);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-align:center;border-right:1px solid var(--mdocs-border, #e0e0e0);border-bottom:1px solid var(--mdocs-border, #e0e0e0);-webkit-user-select:none;user-select:none;line-height:28px;cursor:pointer}.mdocs-sheet-tr:hover td{background-color:#f8fafc}.mdocs-sheet-tr:hover .mdocs-sheet-rownum{background-color:var(--mdocs-accent-soft, #e8f5e9);color:var(--mdocs-accent-dark, #388e3c)}.mdocs-sheet-td{height:28px;min-width:140px;padding:0;border-right:1px solid var(--mdocs-border, #e0e0e0);border-bottom:1px solid var(--mdocs-border, #e0e0e0);background:var(--mdocs-surface, #ffffff);position:relative;user-select:none;-webkit-user-select:none}.mdocs-sheet-td.is-selected .mdocs-sheet-cell-input{position:relative;z-index:1;background:transparent}.mdocs-sheet-cell-input:focus{user-select:text;-webkit-user-select:text}.mdocs-sheet-cell-input{width:100%;height:100%;min-height:28px;border:none;outline:none;background:transparent;padding:0 8px;font-size:12.5px;color:var(--mdocs-text, #212121);font-family:inherit;transition:box-shadow .1s ease}.mdocs-sheet-cell-input:focus{background:var(--mdocs-surface, #ffffff)!important;box-shadow:inset 0 0 0 2px var(--mdocs-accent, #4caf50);z-index:2;position:relative}.mdocs-sheet-actions-col{width:36px;min-width:36px;max-width:36px;border-bottom:1px solid var(--mdocs-border, #e0e0e0);text-align:center;vertical-align:middle;padding:0;background:var(--mdocs-surface, #ffffff)}.mdocs-sheet-row-del{opacity:0;border:none;background:transparent;color:var(--mdocs-text-muted, #616161);cursor:pointer;padding:4px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;transition:opacity .15s ease,background .15s ease,color .15s ease}.mdocs-sheet-tr:hover .mdocs-sheet-row-del{opacity:1}.mdocs-sheet-row-del:hover:not(:disabled){color:var(--mdocs-danger, #e53935);background:var(--mdocs-error-soft, #ffebee)}.mdocs-sheet-footer{height:36px;min-height:36px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--mdocs-border, #e0e0e0);background:var(--mdocs-bg, #f5f5f5);padding:0 12px;gap:16px;-webkit-user-select:none;user-select:none;z-index:10}.mdocs-sheet-tabs{display:flex;align-items:flex-end;height:100%;gap:2px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.mdocs-sheet-tabs::-webkit-scrollbar{display:none}.mdocs-sheet-tab{display:flex;align-items:center;height:30px;padding:0 12px;border-radius:6px 6px 0 0;background:transparent;border:1px solid transparent;border-bottom:none;font-size:12px;color:var(--mdocs-text-muted, #616161);position:relative;transition:all .15s ease;white-space:nowrap}.mdocs-sheet-tab:hover:not(.mdocs-sheet-tab--active){background:var(--mdocs-border, #e0e0e0);color:var(--mdocs-text, #212121)}.mdocs-sheet-tab--active{background:var(--mdocs-surface, #ffffff);color:var(--mdocs-text, #212121);font-weight:600;border-color:var(--mdocs-border, #e0e0e0);border-bottom-color:var(--mdocs-surface, #ffffff);box-shadow:0 -1px 3px #0000000a}.mdocs-sheet-tab--active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2.5px;background:var(--mdocs-accent, #4caf50);border-radius:2px 2px 0 0}.mdocs-sheet-tab-btn{border:none;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}.mdocs-sheet-tab-rename{border:1px solid var(--mdocs-accent, #4caf50);border-radius:3px;outline:none;font-size:12px;font-weight:500;padding:1px 4px;width:90px;background:var(--mdocs-surface, #ffffff);color:var(--mdocs-text, #212121)}.mdocs-sheet-tab-close{margin-left:6px;border:none;background:transparent;padding:2px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--mdocs-text-muted, #616161);opacity:.6;transition:all .15s ease}.mdocs-sheet-tab-close:hover{opacity:1;background:var(--mdocs-error-soft, #ffebee);color:var(--mdocs-danger, #e53935)}.mdocs-sheet-tab-add{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:max-content;height:24px;padding:0 9px;border:1px solid var(--mdocs-accent, #4caf50);background:var(--mdocs-surface, #fff);border-radius:4px;cursor:pointer;color:var(--mdocs-accent-dark, #388e3c);font-size:12px;font-weight:600;margin-left:4px;margin-bottom:3px;transition:all .15s ease}.mdocs-sheet-tab-add:hover:not(:disabled){background:var(--mdocs-accent-soft, #e8f5e9);color:var(--mdocs-accent-dark, #388e3c)}.mdocs-sheet-tab-add:disabled{opacity:.4;cursor:not-allowed}.mdocs-sheet-footer-info{font-size:11px;color:var(--mdocs-text-muted, #616161);white-space:nowrap}
@@ -1,26 +0,0 @@
1
- import{r as l,j as n}from"./react-vendor-BVS1XoFi.js";import{o as _,c as st,p as be,q as it,t as Me,a as ot,s as at,e as lt,f as dt,g as ct,u as rt,v as T,h as ut,w as ee,S as mt,x as ht,y as ft,z as ze,A as xt,B as gt,E as It,F as vt,G as bt,H as Be,I as yt,J as wt,K as jt,X as kt,L as Ct,M as St,O as Nt,l as Dt,r as Et,i as Mt,j as zt,P as Bt,Q as Pt,R as Rt,T as At,D as te,k as Tt,m as Wt}from"./index-Btfv_3-Q.js";import{D as $t,S as Lt}from"./DocChrome-CtT7xOl6.js";import{V as Vt,U as Ft}from"./VisitorPickerModal-Cx03Papl.js";import{P as ye}from"./plus-DvWl4lHk.js";import{B as pt,I as _t}from"./italic-BfR6fH81.js";import"./ui-CEFkTVnG.js";import"./motion-BAXVQJfN.js";import"./diagram-BF8g9yg4.js";import"./file-type-policy-aRrzC4LZ.js";/**
2
- * @license lucide-react v0.562.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const Ot=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]],Ut=_("columns-3",Ot);/**
7
- * @license lucide-react v0.562.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const qt=[["path",{d:"m8 6 4-4 4 4",key:"ybng9g"}],["path",{d:"M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22",key:"1hyw0i"}],["path",{d:"m20 22-5-5",key:"1m27yz"}]],Kt=_("merge",qt);/**
12
- * @license lucide-react v0.562.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const Ht=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 9H3",key:"1338ky"}],["path",{d:"M21 15H3",key:"9uk58r"}]],Qt=_("rows-3",Ht);/**
17
- * @license lucide-react v0.562.0 - ISC
18
- *
19
- * This source code is licensed under the ISC license.
20
- * See the LICENSE file in the root directory of this source tree.
21
- */const Gt=[["path",{d:"M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3",key:"lubmu8"}],["path",{d:"M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3",key:"1ag34g"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]],Jt=_("square-split-horizontal",Gt);/**
22
- * @license lucide-react v0.562.0 - ISC
23
- *
24
- * This source code is licensed under the ISC license.
25
- * See the LICENSE file in the root directory of this source tree.
26
- */const Xt=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Pe=_("trash-2",Xt);function w(t){return`${t.rowId}::${t.colId}`}function Yt(t){let i=t+1,u="";for(;i>0;){const c=(i-1)%26;u=String.fromCharCode(65+c)+u,i=Math.floor((i-1)/26)}return u}function Zt(t,i){const u=t.columns.findIndex(r=>r.id===i.colId),c=t.rows.findIndex(r=>r.id===i.rowId);return u<0||c<0?"":`${Yt(u)}${c+1}`}function en(t,i,u,c){return!i||!u||c.size===0?null:i.rowId===u.rowId&&t.columns.length>0&&t.columns.every(m=>c.has(w({rowId:i.rowId,colId:m.id})))?{rowId:i.rowId,colId:t.columns[0].id}:i.colId===u.colId&&t.rows.length>0&&t.rows.every(m=>c.has(w({rowId:m.id,colId:i.colId})))?{rowId:t.rows[0].id,colId:i.colId}:u}function tn(t,i,u,c){if(!u.has(w(i)))return"mdocs-sheet-td";const r=t.rows.findIndex(y=>y.id===i.rowId),x=t.columns.findIndex(y=>y.id===i.colId),m=["mdocs-sheet-td","is-selected"];if(c&&c.rowId===i.rowId&&c.colId===i.colId&&m.push("is-active"),r<0||x<0)return m.join(" ");const C=r>0?w({rowId:t.rows[r-1].id,colId:i.colId}):null,E=r<t.rows.length-1?w({rowId:t.rows[r+1].id,colId:i.colId}):null,M=x>0?w({rowId:i.rowId,colId:t.columns[x-1].id}):null,A=x<t.columns.length-1?w({rowId:i.rowId,colId:t.columns[x+1].id}):null;return(!C||!u.has(C))&&m.push("sel-t"),(!E||!u.has(E))&&m.push("sel-b"),(!M||!u.has(M))&&m.push("sel-l"),(!A||!u.has(A))&&m.push("sel-r"),m.join(" ")}function nn(t,i,u){const c=t.rows.findIndex(h=>h.id===i.rowId),r=t.rows.findIndex(h=>h.id===u.rowId),x=t.columns.findIndex(h=>h.id===i.colId),m=t.columns.findIndex(h=>h.id===u.colId);if(c<0||r<0||x<0||m<0)return[i];const C=Math.min(c,r),E=Math.max(c,r),M=Math.min(x,m),A=Math.max(x,m),y=[];for(let h=C;h<=E;h+=1)for(let z=M;z<=A;z+=1)y.push({rowId:t.rows[h].id,colId:t.columns[z].id});return y}function sn(t){return t?{background:t.bg,color:t.color,fontWeight:t.bold?700:void 0,fontStyle:t.italic?"italic":void 0,fontSize:t.fontSize?`${t.fontSize}px`:void 0}:{}}function xn(t){var Ee;const{t:i,lang:u}=st(),c=t.meta.documentId,[r,x]=l.useState(()=>be(t.initialContent)),[m,C]=l.useState(t.initialDisplayName),[E,M]=l.useState(!1),[A,y]=l.useState(t.hasLocalDraft??!1),[h,z]=l.useState(!1),[ne,we]=l.useState(!1),[O,se]=l.useState(!1),[ie,oe]=l.useState(!1),[Re,Ae]=l.useState([]),[Te,W]=l.useState(!1),[ae,le]=l.useState(t.meta.permission),[de,je]=l.useState(!1),[We,ce]=l.useState(!1),[U,$e]=l.useState(new Map),[Le,re]=l.useState(null),[ue,me]=l.useState(null),[ke,q]=l.useState(null),[B,$]=l.useState(null),[v,k]=l.useState(null),[L,he]=l.useState(""),S=l.useRef(null),K=l.useRef(!1),P=l.useRef(null),H=l.useRef(r),Q=l.useRef(m),fe=l.useRef(null),xe=l.useRef(null);H.current=r,Q.current=m,P.current=B,l.useEffect(()=>{const e=()=>{K.current=!1};return window.addEventListener("mouseup",e),()=>window.removeEventListener("mouseup",e)},[]);const d=it(r)??r.sheets[0],I=B&&v?nn(d,B,v):[],V=new Set(I.map(w)),f=en(d,B,v,V),Ce=f?Zt(d,f):"",G=f?Me((Ee=d.rows.find(e=>e.id===f.rowId))==null?void 0:Ee.cells[f.colId]):"";l.useEffect(()=>{he(G)},[G,f==null?void 0:f.rowId,f==null?void 0:f.colId]),l.useEffect(()=>{x(be(t.initialContent)),C(t.initialDisplayName),$(null),k(null),q(null)},[c,t.contentRevision,t.initialContent,t.initialDisplayName]),l.useEffect(()=>{let e=!1;return(async()=>{var s;const o=await ot(c);e||!o||o.contentKind!=="sheet"||(x(be(o.content)),o.displayName&&C(o.displayName),y(!0),(s=t.onDraftExistsChange)==null||s.call(t,!0))})(),()=>{e=!0}},[c]),l.useEffect(()=>at((e,o)=>{var s;e===c&&(y(o),(s=t.onDraftExistsChange)==null||s.call(t,o))}),[c]),l.useEffect(()=>{let e=!1;return lt(c).then(o=>{e||z(!!(o!=null&&o.bookmarked))}),()=>{e=!0}},[c]),l.useEffect(()=>{let e=!0;return dt().then(o=>{e&&Ae(o)}).catch(()=>{}),()=>{e=!1}},[]),l.useEffect(()=>{le(t.meta.permission)},[t.meta.permission,c]),l.useEffect(()=>{const e=o=>{fe.current&&!fe.current.contains(o.target)&&se(!1),xe.current&&!xe.current.contains(o.target)&&oe(!1)};return(O||ie)&&document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[O,ie]);const ge=l.useCallback(async()=>{var e;await ct(c).execute(()=>rt({documentId:c,content:T(H.current),displayName:Q.current,contentKind:"sheet",localBaseCommitIdAtEditStart:t.meta.headCommitId??null,snapshotMeta:{permission:t.meta.permission,ownerVisitorId:t.meta.ownerVisitorId,domainId:t.meta.domainId}})),y(!0),(e=t.onDraftExistsChange)==null||e.call(t,!0)},[c,t]),Se=l.useCallback(()=>{S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{ge()},1e3)},[ge]);l.useEffect(()=>()=>{S.current&&clearTimeout(S.current)},[]);function J(e){var o;t.canEdit&&(x(e),(o=t.onContentChange)==null||o.call(t,T(e)),Se())}function j(e){J(Bt(r,e))}function Ve(e,o,s){if(o&&P.current){s.preventDefault(),k(e);return}K.current=!0,$(e),k(e),P.current=e}function Fe(e){K.current&&k(e)}function Ie(e,o){$(e),k(o),P.current=e}function pe(e,o,s){s.preventDefault();const a=d.rows;if(a.length===0)return;const D=a[0].id,b=a[a.length-1].id;if(o&&P.current){k({rowId:b,colId:e});return}Ie({rowId:D,colId:e},{rowId:b,colId:e})}function _e(e,o,s){s.preventDefault();const a=d.columns;if(a.length===0)return;const D=a[0].id,b=a[a.length-1].id;if(o&&P.current){k({rowId:e,colId:b});return}Ie({rowId:e,colId:D},{rowId:e,colId:b})}function Oe(e){e.preventDefault();const o=d.rows,s=d.columns;o.length===0||s.length===0||Ie({rowId:o[0].id,colId:s[0].id},{rowId:o[o.length-1].id,colId:s[s.length-1].id})}function F(e){if(!t.canEdit||I.length===0)return;let o=d;for(const s of I)o=Pt(o,s.rowId,s.colId,e);j(o)}function Ue(){var s;const e=I[0];if(!e)return;const o=ee((s=d.rows.find(a=>a.id===e.rowId))==null?void 0:s.cells[e.colId]);F({bold:!(o!=null&&o.bold)})}function qe(){var s;const e=I[0];if(!e)return;const o=ee((s=d.rows.find(a=>a.id===e.rowId))==null?void 0:s.cells[e.colId]);F({italic:!(o!=null&&o.italic)})}function Ke(){if(!(!t.canEdit||!B||!v))try{j(Rt(d,{startRowId:B.rowId,startColId:B.colId,endRowId:v.rowId,endColId:v.colId}))}catch{}}function He(){if(!t.canEdit||!v)return;const{tab:e}=At(d,v.rowId,v.colId);j(e)}async function Ne(){var a;if(!t.canEdit)return;const e=document.querySelector(".mdocs-sheet-scroll"),o=(e==null?void 0:e.scrollTop)??null,s=(e==null?void 0:e.scrollLeft)??null;M(!0);try{S.current&&(clearTimeout(S.current),S.current=null),await ge(),await t.onPublish(T(H.current),Q.current.trim()||m,c),y(!1),(a=t.onDraftExistsChange)==null||a.call(t,!1)}finally{M(!1),e&&o!=null&&(e.scrollTop=o,s!=null&&(e.scrollLeft=s),requestAnimationFrame(()=>{e.scrollTop=o,s!=null&&(e.scrollLeft=s)}))}}async function Qe(){if(t.canEdit&&m.trim()!==t.initialDisplayName.trim())try{await Ne()}catch{}}async function ve(){var e,o;if(!ne){we(!0);try{h?(await Et(c),z(!1),(e=t.onShowToast)==null||e.call(t,i("bookmarkRemoved"))):(await Mt(c),z(!0),(o=t.onShowToast)==null||o.call(t,i("bookmarkAdded")))}finally{we(!1)}}}function Ge(e){const o=Re.find(s=>s.visitorId===e);return(o==null?void 0:o.visitorName)??e.slice(0,8)}function Je(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}const N=l.useMemo(()=>t.domains.find(e=>e.domainId===t.meta.domainId),[t.domains,t.meta.domainId]),Xe=l.useMemo(()=>{const e=(N==null?void 0:N.permission)??"public";return ut(e)},[N==null?void 0:N.permission]);function Ye(e){return e===te.PRIVATE?i("permissionPrivate"):e===te.DOMAIN_READ?i("permissionInvite"):e===te.DOMAIN_WRITE?i("permissionDomainWrite"):e===te.PUBLIC_READ?i("permissionPublicRead"):i("permissionPublicEdit")}async function Ze(){if(de||ae===t.meta.permission){W(!1);return}je(!0);try{await t.onPublish(T(H.current),Q.current.trim()||m,c,ae),W(!1)}finally{je(!1)}}async function et(e){const o=new Set(e.map(s=>s.visitorId));for(const[s]of U)o.has(s)||await Tt(c,s);for(const s of e)U.get(s.visitorId)!==s.permission&&await Wt(c,s.visitorId,s.permission);ce(!1)}function X(){se(!1),oe(!1)}function De(e,o){const s=(o==null?void 0:o.includeBookmark)??!0,a={width:"100%",textAlign:"left",padding:"8px 16px",background:"none",border:"none",cursor:"pointer",fontSize:"13px",display:"flex",alignItems:"center",gap:"8px"},D=T(r);return n.jsxs(n.Fragment,{children:[n.jsxs("div",{style:{padding:"4px 16px",fontSize:"13px"},children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"6px"},children:[n.jsx("span",{style:{color:"var(--mdocs-text-muted, #888)"},children:i("docInfoCreator")}),n.jsx("span",{children:Ge(t.meta.ownerVisitorId)})]}),n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"6px"},children:[n.jsx("span",{style:{color:"var(--mdocs-text-muted, #888)"},children:i("docInfoCreatedAt")}),n.jsx("span",{children:new Date(t.meta.createdAt).toLocaleString(u==="zh"?"zh-CN":"en-US")})]}),n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"6px"},children:[n.jsx("span",{style:{color:"var(--mdocs-text-muted, #888)"},children:i("docInfoSize")}),n.jsx("span",{children:Je(new Blob([D]).size)})]}),n.jsxs("div",{style:{display:"flex",justifyContent:"space-between"},children:[n.jsx("span",{style:{color:"var(--mdocs-text-muted, #888)"},children:i("docInfoUpdatedAt")}),n.jsx("span",{children:new Date(t.meta.updatedAt).toLocaleString(u==="zh"?"zh-CN":"en-US")})]})]}),n.jsx("div",{style:{height:"1px",background:"var(--mdocs-border, #e5e5e5)",margin:"8px 0"}}),s?n.jsxs("button",{type:"button",style:a,onClick:()=>{ve(),e()},children:[n.jsx("span",{children:h?"⭐":"☆"}),n.jsx("span",{children:i(h?"bookmarkRemove":"bookmarkAdd")})]}):null,t.canManageInvites?n.jsxs("button",{type:"button",style:a,onClick:()=>{e(),(async()=>{const b=await zt(c);$e(new Map(b.map(p=>[p.visitorId,p.permission]))),ce(!0)})()},children:[n.jsx(Ft,{size:14}),n.jsx("span",{children:i("docInfoInviteMember")})]}):null,n.jsxs("button",{type:"button",style:a,onClick:()=>{e(),le(t.meta.permission),W(!0)},children:[n.jsx(Lt,{size:14}),n.jsx("span",{children:i("docInfoChangePermission")})]})]})}const g=(()=>{var o;const e=I[0];if(e)return ee((o=d.rows.find(s=>s.id===e.rowId))==null?void 0:o.cells[e.colId])})();function tt(){!t.canEdit||!f||L!==G&&j(Be(d,f.rowId,f.colId,L))}return n.jsxs("div",{className:"mdocs-sheet-editor",children:[n.jsx($t,{fileType:"sheet",displayName:m,onDisplayNameChange:C,onDisplayNameBlur:()=>void Qe(),domains:t.domains,currentDomainId:t.currentDomainId,onDomainChange:t.onDomainChange,onDomainsChange:t.onDomainsChange,canEdit:t.canEdit,editing:!0,actionsAlwaysVisible:!0,syncBehind:t.syncBehind,onSyncClick:t.onSyncClick,busy:E,draftExists:A,onPublish:()=>void Ne(),onDelete:()=>void t.onDelete(),isBookmarked:h,bookmarkBusy:ne,onToggleBookmark:()=>void ve(),onToggleComments:t.onToggleComments,commentPanelOpen:t.commentPanelOpen,commentCount:t.commentCount,docInfoMenu:De(X),docInfoOpen:O,onToggleDocInfo:()=>se(!O),docInfoMenuRef:fe,readerChrome:t.readerChrome,onOpenMobileNav:t.onOpenMobileNav,readerMoreOpen:ie,onToggleReaderMore:()=>oe(e=>!e),readerMoreMenuRef:xe,readerMoreMenu:n.jsxs(n.Fragment,{children:[n.jsxs("button",{type:"button",className:"mdocs-reader-more-item",disabled:ne,onClick:()=>{ve(),X()},children:[n.jsx(mt,{size:16,strokeWidth:1.5,style:{color:h?"#faad14":"var(--mdocs-text-secondary, #6b7280)",fill:h?"#faad14":"none"}}),n.jsx("span",{children:i(h?"bookmarkRemove":"bookmarkAdd")})]}),n.jsx("div",{className:"mdocs-reader-more-divider"}),t.canEdit?n.jsx("button",{type:"button",className:"mdocs-reader-more-item mdocs-reader-more-item--danger",disabled:E,onClick:()=>{X(),t.onDelete()},children:n.jsx("span",{children:i("delete")})}):null,n.jsx("div",{className:"mdocs-reader-more-divider"}),De(X,{includeBookmark:!1})]})}),n.jsxs("div",{className:"mdocs-sheet-toolbar",children:[n.jsxs("div",{className:"mdocs-sheet-toolbar-left",children:[n.jsxs("button",{type:"button",className:"mdocs-sheet-btn mdocs-sheet-btn-add",disabled:!t.canEdit,onClick:()=>j(ht(d)),children:[n.jsxs("span",{className:"mdocs-sheet-btn-add-icon","aria-hidden":!0,children:[n.jsx(Qt,{size:14,strokeWidth:2.4}),n.jsx(ye,{size:10,strokeWidth:3,className:"mdocs-sheet-btn-add-plus"})]}),n.jsx("span",{children:i("sheetAddRow")})]}),n.jsxs("button",{type:"button",className:"mdocs-sheet-btn mdocs-sheet-btn-add",disabled:!t.canEdit,onClick:()=>j(ft(d)),children:[n.jsxs("span",{className:"mdocs-sheet-btn-add-icon","aria-hidden":!0,children:[n.jsx(Ut,{size:14,strokeWidth:2.4}),n.jsx(ye,{size:10,strokeWidth:3,className:"mdocs-sheet-btn-add-plus"})]}),n.jsx("span",{children:i("sheetAddColumn")})]}),n.jsx("span",{className:"mdocs-sheet-toolbar-sep","aria-hidden":!0}),n.jsx("button",{type:"button",className:`mdocs-sheet-btn mdocs-sheet-btn-icon${g!=null&&g.bold?" is-active":""}`,disabled:!t.canEdit||I.length===0,title:i("sheetBold"),onClick:Ue,children:n.jsx(pt,{size:13,strokeWidth:2.4})}),n.jsx("button",{type:"button",className:`mdocs-sheet-btn mdocs-sheet-btn-icon${g!=null&&g.italic?" is-active":""}`,disabled:!t.canEdit||I.length===0,title:i("sheetItalic"),onClick:qe,children:n.jsx(_t,{size:13,strokeWidth:2.4})}),n.jsx("label",{className:"mdocs-sheet-style-label",title:i("sheetFontSize"),children:n.jsxs("select",{className:"mdocs-sheet-font-size",disabled:!t.canEdit||I.length===0,value:(g==null?void 0:g.fontSize)??"",onChange:e=>{const o=e.target.value;F(o?{fontSize:Number(o)}:{fontSize:void 0})},children:[n.jsx("option",{value:"",children:"Aa"}),[12,13,14,16,18,20,24].map(e=>n.jsx("option",{value:e,children:e},e))]})}),n.jsx("label",{className:"mdocs-sheet-style-label",title:i("sheetTextColor"),children:n.jsx("input",{type:"color",className:"mdocs-sheet-color",disabled:!t.canEdit||I.length===0,value:(g==null?void 0:g.color)??"#212121",onChange:e=>F({color:e.target.value})})}),n.jsx("label",{className:"mdocs-sheet-style-label",title:i("sheetBgColor"),children:n.jsx("input",{type:"color",className:"mdocs-sheet-color",disabled:!t.canEdit||I.length===0,value:(g==null?void 0:g.bg)??"#ffffff",onChange:e=>F({bg:e.target.value})})}),n.jsx("span",{className:"mdocs-sheet-toolbar-sep","aria-hidden":!0}),n.jsxs("button",{type:"button",className:"mdocs-sheet-btn",disabled:!t.canEdit||I.length<2,title:`${i("sheetMerge")}(按住拖选,或 Shift+点第二格)`,onClick:Ke,children:[n.jsx(Kt,{size:13,strokeWidth:2.2}),n.jsx("span",{children:i("sheetMerge")})]}),n.jsxs("button",{type:"button",className:"mdocs-sheet-btn",disabled:!t.canEdit||!v||!ze(d,v.rowId,v.colId),title:i("sheetUnmerge"),onClick:He,children:[n.jsx(Jt,{size:13,strokeWidth:2.2}),n.jsx("span",{children:i("sheetUnmerge")})]})]}),n.jsx("div",{className:"mdocs-sheet-toolbar-right",children:n.jsxs("span",{className:"mdocs-sheet-stats-badge",children:[d.name," · ",d.rows.length," 行 × ",d.columns.length," 列"]})})]}),n.jsx("div",{className:"mdocs-sheet-formula-bar","aria-label":"单元格信息栏",children:n.jsxs("div",{className:"mdocs-sheet-formula-bar-inner",children:[n.jsx("input",{className:"mdocs-sheet-name-box",readOnly:!0,tabIndex:-1,value:Ce,placeholder:"—",title:Ce||"单元格地址","aria-label":"单元格地址"}),n.jsx("input",{className:"mdocs-sheet-formula-input",value:L,disabled:!t.canEdit||!f,placeholder:f?"":"点击单元格查看内容",title:L,"aria-label":"单元格内容",style:t.readerChrome?{width:`${Math.max(28,Math.min((L||" ").length+4,96))}ch`}:void 0,onChange:e=>he(e.target.value),onBlur:()=>tt(),onKeyDown:e=>{e.key==="Enter"&&(e.preventDefault(),e.target.blur()),e.key==="Escape"&&(he(G),e.target.blur())}})]})}),n.jsx("div",{className:"mdocs-sheet-scroll",children:n.jsxs("table",{className:"mdocs-sheet-table",children:[n.jsx("thead",{children:n.jsxs("tr",{children:[n.jsx("th",{className:"mdocs-sheet-corner-cell",title:"全选",onMouseDown:Oe,children:"#"}),d.columns.map(e=>{const o=I.length>0&&d.rows.every(s=>V.has(w({rowId:s.id,colId:e.id})));return n.jsx("th",{className:`mdocs-sheet-th${o?" is-selected":""}`,onMouseDown:s=>{ke!==e.id&&(s.target.closest(".mdocs-sheet-col-del")||pe(e.id,s.shiftKey,s))},children:n.jsxs("div",{className:"mdocs-sheet-header-cell",children:[ke===e.id&&t.canEdit?n.jsx("input",{className:"mdocs-sheet-header-input",autoFocus:!0,defaultValue:e.name,title:"编辑列名",onClick:s=>s.stopPropagation(),onMouseDown:s=>s.stopPropagation(),onBlur:s=>{q(null);const a=s.target.value.trim();!a||a===e.name||j(xt(d,e.id,a))},onKeyDown:s=>{s.key==="Enter"&&s.target.blur(),s.key==="Escape"&&q(null)}}):n.jsx("button",{type:"button",className:"mdocs-sheet-header-label",title:"单击全选列;双击重命名",onDoubleClick:s=>{s.preventDefault(),s.stopPropagation(),t.canEdit&&q(e.id)},children:e.name}),t.canEdit&&d.columns.length>1&&n.jsx("button",{type:"button",className:"mdocs-sheet-col-del",title:i("sheetDeleteColumn"),onMouseDown:s=>s.stopPropagation(),onClick:()=>{try{const{tab:s}=gt(d,[e.id]);j(s)}catch{}},children:n.jsx(Pe,{size:12,strokeWidth:1.8})})]})},e.id)}),n.jsx("th",{className:"mdocs-sheet-actions-header"})]})}),n.jsx("tbody",{children:d.rows.map((e,o)=>{const s=I.length>0&&d.columns.every(a=>V.has(w({rowId:e.id,colId:a.id})));return n.jsxs("tr",{className:`mdocs-sheet-tr${s?" is-row-selected":""}`,children:[n.jsx("td",{className:`mdocs-sheet-rownum${s?" is-selected":""}`,title:"单击全选行",onMouseDown:a=>_e(e.id,a.shiftKey,a),children:o+1}),d.columns.map(a=>{if(It(d,e.id,a.id))return null;const D=e.cells[a.id],b=ee(D),p=ze(d,e.id,a.id),nt=vt(d,e.id,a.id),Y=p&&nt?bt(d,p):{rowSpan:1,colSpan:1},R={rowId:e.id,colId:a.id};return V.has(w(R)),n.jsx("td",{className:tn(d,R,V,v),rowSpan:Y.rowSpan>1?Y.rowSpan:void 0,colSpan:Y.colSpan>1?Y.colSpan:void 0,style:b!=null&&b.bg?{background:b.bg}:void 0,onMouseEnter:()=>Fe(R),children:n.jsx("input",{className:"mdocs-sheet-cell-input",style:sn(b),value:Me(D),disabled:!t.canEdit,onMouseDown:Z=>Ve(R,Z.shiftKey,Z),onFocus:()=>{K.current||($(R),k(R),P.current=R)},onChange:Z=>j(Be(d,e.id,a.id,Z.target.value))})},a.id)}),n.jsx("td",{className:"mdocs-sheet-actions-col",children:n.jsx("button",{type:"button",className:"mdocs-sheet-row-del",disabled:!t.canEdit,title:i("sheetDeleteRow"),onClick:()=>j(yt(d,e.id)),children:n.jsx(Pe,{size:13,strokeWidth:1.8})})})]},e.id)})})]})}),n.jsxs("footer",{className:"mdocs-sheet-footer",children:[n.jsxs("div",{className:"mdocs-sheet-tabs",role:"tablist",children:[r.sheets.map(e=>{const o=e.id===d.id;return n.jsxs("div",{className:`mdocs-sheet-tab${o?" mdocs-sheet-tab--active":""}`,role:"tab","aria-selected":o,children:[Le===e.id&&t.canEdit?n.jsx("input",{className:"mdocs-sheet-tab-rename",autoFocus:!0,defaultValue:e.name,onBlur:s=>{re(null);const a=s.target.value.trim();if(!(!a||a===e.name))try{J(wt(r,e.id,a))}catch{}},onKeyDown:s=>{s.key==="Enter"&&s.target.blur(),s.key==="Escape"&&re(null)}}):n.jsx("button",{type:"button",className:"mdocs-sheet-tab-btn",title:"双击可重命名工作表",onClick:()=>{var a;if(o)return;const s=jt(r,e.id);x(s),$(null),k(null),t.canEdit&&((a=t.onContentChange)==null||a.call(t,T(s)),Se())},onDoubleClick:()=>{t.canEdit&&re(e.id)},children:e.name}),t.canEdit&&r.sheets.length>1?n.jsx("button",{type:"button",className:"mdocs-sheet-tab-close",title:i("sheetDeleteSheet"),onClick:s=>{s.stopPropagation(),me({id:e.id,name:e.name})},children:n.jsx(kt,{size:11,strokeWidth:2.4})}):null]},e.id)}),n.jsxs("button",{type:"button",className:"mdocs-sheet-tab-add",disabled:!t.canEdit,title:i("sheetAddSheet"),onClick:()=>{const{doc:e}=Ct(r);J(e)},children:[n.jsx(ye,{size:14,strokeWidth:2.4}),n.jsx("span",{children:i("sheetAddSheet")})]})]}),n.jsx("div",{className:"mdocs-sheet-footer-info",children:n.jsxs("span",{children:["共 ",r.sheets.length," 个工作表"]})})]}),ue?n.jsx(St,{title:i("sheetDeleteSheet"),message:`确定删除工作表「${ue.name}」?其中的数据将一并删除。`,confirmLabel:i("delete"),cancelLabel:i("cancel"),danger:!0,onCancel:()=>me(null),onConfirm:()=>{try{J(Nt(r,ue.id))}finally{me(null)}}}):null,Te&&n.jsx("div",{className:"mdocs-dialog-backdrop",style:{position:"fixed",zIndex:9999},onClick:e=>{e.target===e.currentTarget&&W(!1)},children:n.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:480},children:[n.jsx("h1",{style:{fontSize:"1.1rem",marginBottom:12},children:i("docInfoChangePermission")}),n.jsxs("div",{className:"muted",style:{marginBottom:12},children:[i("domainPermission"),":",N?Dt(N.domainName,u,i):t.meta.domainId]}),n.jsx("div",{style:{display:"grid",gap:8},children:Xe.map(e=>n.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer"},children:[n.jsx("input",{type:"radio",name:"sheet-doc-permission",value:e,checked:ae===e,onChange:()=>le(e)}),n.jsx("span",{children:Ye(e)})]},e))}),n.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:16},children:[n.jsx("button",{type:"button",onClick:()=>W(!1),children:i("cancel")}),n.jsx("button",{type:"button",className:"primary",disabled:de,onClick:()=>void Ze(),children:i(de?"publishing":"saveAndPublish")})]})]})}),t.canManageInvites?n.jsx(Vt,{open:We,title:i("docInfoInviteMember"),initialSelectedIds:[...U.keys()],initialPermissions:U,templates:[],showPermissionSelect:!0,permissionOptions:[{value:"read",label:i("invitePermissionRead")},{value:"edit",label:i("invitePermissionEdit")}],onClose:()=>ce(!1),onConfirm:e=>{et(e)}}):null]})}export{xn as SheetEditor};