@fgbg/mdocs 0.8.19 → 0.8.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/agent-skills/changelog/SKILL.md +13 -1
- package/agent-skills/getting-started-installation/SKILL.md +12 -2
- package/agent-skills/index.json +1 -1
- package/agent-skills/usage-onboarding-ai/SKILL.md +11 -0
- package/agent-skills/usage-settings/SKILL.md +15 -1
- package/bin/mdocs.js +1 -1
- package/dist/server/agent/Agent/choice-pending.js +10 -1
- package/dist/server/agent/Agent/choice-pending.js.map +1 -1
- package/dist/server/agent/Agent/context-usage.js +6 -5
- package/dist/server/agent/Agent/context-usage.js.map +1 -1
- package/dist/server/agent/Agent/hydrate-messages.js +137 -0
- package/dist/server/agent/Agent/hydrate-messages.js.map +1 -0
- package/dist/server/agent/Agent/run-pi-agent.js +115 -0
- package/dist/server/agent/Agent/run-pi-agent.js.map +1 -0
- package/dist/server/agent/Agent/run.js +49 -323
- package/dist/server/agent/Agent/run.js.map +1 -1
- package/dist/server/agent/Agent/session-manager.js +38 -3
- package/dist/server/agent/Agent/session-manager.js.map +1 -1
- package/dist/server/agent/Agent/skill-form-pending.js +77 -0
- package/dist/server/agent/Agent/skill-form-pending.js.map +1 -0
- package/dist/server/agent/Agent/stream-events.js +2 -0
- package/dist/server/agent/Agent/stream-events.js.map +1 -0
- package/dist/server/agent/Agent/system-prompt.js +8 -4
- package/dist/server/agent/Agent/system-prompt.js.map +1 -1
- package/dist/server/agent/Agent/tool-deps.js +7 -0
- package/dist/server/agent/Agent/tool-deps.js.map +1 -0
- package/dist/server/agent/Agent/tool-ui-effects.js +170 -0
- package/dist/server/agent/Agent/tool-ui-effects.js.map +1 -0
- package/dist/server/agent/Agent/tools-choice.js +44 -50
- package/dist/server/agent/Agent/tools-choice.js.map +1 -1
- package/dist/server/agent/Agent/tools-coding.get-working.test.js +10 -8
- package/dist/server/agent/Agent/tools-coding.get-working.test.js.map +1 -1
- package/dist/server/agent/Agent/tools-coding.js +51 -58
- package/dist/server/agent/Agent/tools-coding.js.map +1 -1
- package/dist/server/agent/Agent/tools-documents.get-document.test.js +2 -4
- package/dist/server/agent/Agent/tools-documents.get-document.test.js.map +1 -1
- package/dist/server/agent/Agent/tools-documents.js +192 -187
- package/dist/server/agent/Agent/tools-documents.js.map +1 -1
- package/dist/server/agent/Agent/tools-domains.js +155 -156
- package/dist/server/agent/Agent/tools-domains.js.map +1 -1
- package/dist/server/agent/Agent/tools-overwrite.js +93 -101
- package/dist/server/agent/Agent/tools-overwrite.js.map +1 -1
- package/dist/server/agent/Agent/tools-registry.js +26 -0
- package/dist/server/agent/Agent/tools-registry.js.map +1 -0
- package/dist/server/agent/Agent/tools-registry.test.js +67 -0
- package/dist/server/agent/Agent/tools-registry.test.js.map +1 -0
- package/dist/server/agent/Agent/tools-template.js +45 -0
- package/dist/server/agent/Agent/tools-template.js.map +1 -0
- package/dist/server/agent/Agent/tools-user-skills.js +176 -0
- package/dist/server/agent/Agent/tools-user-skills.js.map +1 -0
- package/dist/server/agent/Agent/tools-visitors.js +15 -22
- package/dist/server/agent/Agent/tools-visitors.js.map +1 -1
- package/dist/server/agent/Agent/tools.js +40 -33
- package/dist/server/agent/Agent/tools.js.map +1 -1
- package/dist/server/agent/Agent/user-skills.js +214 -0
- package/dist/server/agent/Agent/user-skills.js.map +1 -0
- package/dist/server/agent/Agent/user-skills.test.js +53 -0
- package/dist/server/agent/Agent/user-skills.test.js.map +1 -0
- package/dist/server/cli/main.js +10 -0
- package/dist/server/cli/main.js.map +1 -1
- package/dist/server/cli/self-update.js +158 -0
- package/dist/server/cli/self-update.js.map +1 -0
- package/dist/server/cli/self-update.test.js +17 -0
- package/dist/server/cli/self-update.test.js.map +1 -0
- package/dist/server/db/repositories/agent-user-skill.repo.js +78 -0
- package/dist/server/db/repositories/agent-user-skill.repo.js.map +1 -0
- package/dist/server/db/schema.js +11 -0
- package/dist/server/db/schema.js.map +1 -1
- package/dist/server/routes/agent.routes.js +198 -5
- package/dist/server/routes/agent.routes.js.map +1 -1
- package/dist/web/assets/AgentChatPanel-D95hI02c.js +1 -0
- package/dist/web/assets/AgentSkillFormCard-BtJ0QjLG.js +6 -0
- package/dist/web/assets/AiWriteWorkbench-Qam8cfY6.js +6 -0
- package/dist/web/assets/{DiagramEditor-BTRe45TX-DzJEhM4C.js → DiagramEditor-BTRe45TX-Did98cnP.js} +1 -1
- package/dist/web/assets/{DocumentEditor-NPbbAape.js → DocumentEditor-DtSzkl6A.js} +1 -1
- package/dist/web/assets/{MergeView-BnWbq08U.js → MergeView-DgFQHD5_.js} +1 -1
- package/dist/web/assets/{PlaygroundPage-BSGipUkC.js → PlaygroundPage-Dg57Xxpl.js} +1 -1
- package/dist/web/assets/SettingsPage-CkYpe5v7.js +1 -0
- package/dist/web/assets/{Toolbar-DjPuWk5G.js → Toolbar-0Y2wmGwe.js} +1 -1
- package/dist/web/assets/{VisitorPickerModal-BUS-cOq0.js → VisitorPickerModal-COxtOvc4.js} +1 -1
- package/dist/web/assets/{copy-hWOco_4c.js → copy-nOl0d3Th.js} +1 -1
- package/dist/web/assets/{diagram-gfUK8OHx.js → diagram-BJFhx-27.js} +332 -332
- package/dist/web/assets/{index-C46BU1-j.js → index-B-XJ-ScV.js} +22 -22
- package/dist/web/assets/index-CGvsjO9f.css +1 -0
- package/dist/web/assets/{meta2dEngine-BD2XbzaV-D7hJ1H1g.js → meta2dEngine-BD2XbzaV-e28q005B.js} +1 -1
- package/dist/web/assets/{motion-C4pN8CfU.js → motion-D-I76zAi.js} +1 -1
- package/dist/web/assets/{plus-CnKbiP8x.js → plus-DvBbg6jL.js} +1 -1
- package/dist/web/assets/{react-B7vrA7AR.js → react-BsVOIHR8.js} +3 -3
- package/dist/web/assets/{ui-DxdLi_28.js → ui-C3xtW1w8.js} +3 -3
- package/dist/web/index.html +4 -4
- package/package.json +1 -1
- package/dist/web/assets/AgentChatPanel-CLKeiDeR.js +0 -1
- package/dist/web/assets/AiWriteWorkbench-Ecp214S5.js +0 -6
- package/dist/web/assets/SettingsPage-OklrFCx7.js +0 -1
- package/dist/web/assets/history-AMIEbyMc.js +0 -6
- package/dist/web/assets/index-BksNm27A.css +0 -1
package/dist/web/index.html
CHANGED
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
opacity: 0.65;
|
|
28
28
|
}
|
|
29
29
|
</style>
|
|
30
|
-
<script type="module" crossorigin src="/assets/index-
|
|
30
|
+
<script type="module" crossorigin src="/assets/index-B-XJ-ScV.js"></script>
|
|
31
31
|
<link rel="modulepreload" crossorigin href="/assets/react-vendor-BNpqFP9B.js">
|
|
32
|
-
<link rel="modulepreload" crossorigin href="/assets/motion-
|
|
33
|
-
<link rel="modulepreload" crossorigin href="/assets/ui-
|
|
34
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
32
|
+
<link rel="modulepreload" crossorigin href="/assets/motion-D-I76zAi.js">
|
|
33
|
+
<link rel="modulepreload" crossorigin href="/assets/ui-C3xtW1w8.js">
|
|
34
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CGvsjO9f.css">
|
|
35
35
|
</head>
|
|
36
36
|
<body>
|
|
37
37
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as c,j as e}from"./react-vendor-BNpqFP9B.js";import{a6 as pe,a7 as he,i as te,a8 as fe,a9 as ge,aa as xe,ab as je,ac as ye,ad as Ne,ae as be,af as ke}from"./index-C46BU1-j.js";import{P as ve}from"./plus-CnKbiP8x.js";import{H as we}from"./history-AMIEbyMc.js";import{M as Se,r as Ie}from"./ui-DxdLi_28.js";import{C as Ae,a as Ce}from"./copy-hWOco_4c.js";import"./motion-C4pN8CfU.js";function G(i){var s;return i==null||typeof i=="boolean"?"":typeof i=="string"||typeof i=="number"?String(i):Array.isArray(i)?i.map(G).join(""):typeof i=="object"&&"props"in i?G((s=i.props)==null?void 0:s.children):""}function $e(i){const[s,d]=c.useState(!1),m=c.useRef(null),b=G(i.children).replace(/\n$/,"");c.useEffect(()=>()=>{m.current!=null&&window.clearTimeout(m.current)},[]);async function j(){if(b)try{await navigator.clipboard.writeText(b),d(!0),m.current!=null&&window.clearTimeout(m.current),m.current=window.setTimeout(()=>d(!1),1500)}catch{}}return e.jsxs("div",{className:"mdocs-agent-panel-md-pre-wrap",children:[e.jsx("button",{type:"button",className:"mdocs-agent-panel-md-copy",onClick:()=>void j(),"aria-label":s?"已复制":"复制代码",title:s?"已复制":"复制",children:s?e.jsx(Ae,{size:14,"aria-hidden":!0}):e.jsx(Ce,{size:14,"aria-hidden":!0})}),e.jsx("pre",{children:i.children})]})}function se(i){return e.jsx("div",{className:"mdocs-agent-panel-md",children:e.jsx(Se,{remarkPlugins:[Ie],components:{pre:({children:s})=>e.jsx($e,{children:s})},children:i.children})})}const _e=["如何发布文档?","草稿是什么?","如何创建域?"];function ne(i,s){return s.map((d,m)=>({id:`h-${i}-${m}-${d.role}`,role:d.role,content:d.content}))}function Re(i,s){const d=i.slice(),m=d[d.length-1];return(m==null?void 0:m.type)==="text"?d[d.length-1]={type:"text",text:m.text+s}:d.push({type:"text",text:s}),d}function ae(i){return i!=null&&i.length?i.filter(s=>s.type==="text").map(s=>s.text).join(""):""}function Ee(i){const s=new Date(i);if(Number.isNaN(s.getTime()))return"";const d=new Date;return s.getFullYear()===d.getFullYear()&&s.getMonth()===d.getMonth()&&s.getDate()===d.getDate()?s.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}):s.toLocaleDateString(void 0,{month:"2-digit",day:"2-digit"})}function re(i){if(i>=1e3){const s=i/1e3;return`${s>=10?Math.round(s):Math.round(s*10)/10}K`}return String(i)}function Me(i){const{block:s,onResolved:d}=i,[m,b]=c.useState(""),[j,S]=c.useState(!1),[k,v]=c.useState(1),M=c.useRef(!1),w=c.useRef(d);w.current=d;const h=s.status==="open",o=c.useRef(0);c.useEffect(()=>{if(!h)return;M.current=!1;const f=new Date(s.expiresAt).getTime(),y=Date.now(),g=Math.max(f-y,1);o.current=g,v(1);const R=()=>{const D=f-Date.now(),U=Math.max(0,Math.min(1,D/g));v(U),D<=0&&!M.current&&(M.current=!0,be(s.requestId).catch(()=>{}).finally(()=>{w.current(s.requestId,"","expired")}))};R();const E=window.setInterval(R,100);return()=>window.clearInterval(E)},[h,s.expiresAt,s.requestId]);async function _(f){const y=f.trim();if(!(!y||j||!h)){S(!0);try{await ke(s.requestId,y),d(s.requestId,y,"selected")}catch{d(s.requestId,y,"failed")}finally{S(!1)}}}const K=Math.max(0,Math.ceil(k*o.current/1e3));return e.jsxs("div",{className:"mdocs-agent-choice-card"+(h?"":" 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}),h?e.jsxs("span",{className:"mdocs-agent-choice-timer","aria-live":"polite",children:[K,"s"]}):null]}),h?e.jsx("div",{className:"mdocs-agent-choice-progress",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(k*100),children:e.jsx("div",{className:"mdocs-agent-choice-progress-bar",style:{transform:`scaleX(${k})`}})}):null,s.status==="selected"&&s.selected?e.jsxs("p",{className:"mdocs-agent-choice-result",children:["已选择:",s.selected]}):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,h?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mdocs-agent-choice-options",children:s.options.map(f=>e.jsx("button",{type:"button",className:"mdocs-agent-choice-option",disabled:j,onClick:()=>void _(f),children:f},f))}),e.jsxs("div",{className:"mdocs-agent-choice-custom",children:[e.jsx("input",{value:m,disabled:j,placeholder:"或输入自己的内容…",onChange:f=>b(f.target.value),onKeyDown:f=>{f.key==="Enter"&&(f.preventDefault(),_(m))}}),e.jsx("button",{type:"button",disabled:j||!m.trim(),onClick:()=>void _(m),children:"提交"})]})]}):null]})}function De(i){const b=2*Math.PI*8.75,j=Math.min(100,Math.max(0,i.percent)),S=b*(1-j/100),k=j>=90?"danger":j>=70?"warn":"ok",v=`上下文 ${j}% · 已用 ${re(i.used)} / ${re(i.limit)} tokens`;return e.jsx("span",{className:"mdocs-agent-panel-context mdocs-agent-panel-context-"+k,"data-tooltip":v,"aria-label":v,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:b,strokeDashoffset:S,transform:`rotate(-90 ${20/2} ${20/2})`})]})})}function Ue(i){const{open:s,onClose:d,visitorName:m,anchorStyle:b,onOpenDocument:j,onTreeChanged:S,onDocumentOverwritten:k,onOpenCoding:v}=i,M=((m==null?void 0:m.trim().charAt(0))||"我").toUpperCase(),[w,h]=c.useState(!1),[o,_]=c.useState(null),[K,f]=c.useState(null),[y,g]=c.useState([]),[R,E]=c.useState(null),[D,U]=c.useState([]),[ie,X]=c.useState(!1),[z,T]=c.useState(""),[N,F]=c.useState(!1),[Y,I]=c.useState(null),[P,J]=c.useState(null),ce=c.useRef(null),B=c.useRef(null),A=c.useRef(null),Q=c.useRef(0),q=c.useRef(!0);function V(t){return Q.current+=1,`${t}-${Q.current}`}function le(t,u=48){return t.scrollHeight-t.scrollTop-t.clientHeight<=u}function C(){const t=B.current;!t||!q.current||(t.scrollTop=t.scrollHeight)}function oe(){const t=B.current;t&&(q.current=le(t))}async function de(){X(!0);try{const t=await xe();U(t.sessions),R||E(t.lastOpenedSessionId)}catch{}finally{X(!1)}}async function H(){try{const t=await ge();J(t)}catch{}}c.useEffect(()=>{var u;if(!s){h(!1),(u=A.current)==null||u.abort(),A.current=null,F(!1);return}let t=!1;return(async()=>{try{const n=await pe();t||(_(n),f(null))}catch(n){t||(_(null),f(n instanceof Error?n.message:String(n)))}})(),H(),()=>{t=!0}},[s]),c.useEffect(()=>{if(!s)return;let t=!1;return(async()=>{try{const u=await he();if(t)return;E(u.sessionId),g(n=>n.length>0?n:ne(u.sessionId,u.messages))}catch{}})(),()=>{t=!0}},[s]),c.useEffect(()=>{!s||!w||de()},[s,w]),c.useEffect(()=>{if(!s)return;const t=u=>{if(u.key==="Escape"){if(w){h(!1);return}d()}};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[s,d,w]);async function W(t){var L;const u=t.trim();if(!u||N)return;if(!(o!=null&&o.enabled)){I((o==null?void 0:o.reason)==="missing_api_key"?"请先在设置 → AI 配置 DeepSeek API Key":(o==null?void 0:o.reason)==="skills_missing"?"手册 skills 未就绪,请确认已构建 agent-skills":"助手暂不可用");return}(L=A.current)==null||L.abort();const n=new AbortController;A.current=n;const $={id:V("u"),role:"user",content:u},p=V("a");q.current=!0,g(a=>[...a,$,{id:p,role:"assistant",content:""}]),T(""),F(!0),I(null),h(!1),requestAnimationFrame(()=>C());try{await Ne(u,{signal:n.signal,onEvent:a=>{a.type==="text_delta"?(g(x=>x.map(r=>{if(r.id!==p)return r;const l=Re(r.blocks??[],a.text);return{...r,blocks:l,content:ae(l)}})),requestAnimationFrame(()=>C())):a.type==="sources"?(g(x=>x.map(r=>{if(r.id!==p)return r;const l=(r.blocks??[]).slice(),O=l[l.length-1];return(O==null?void 0:O.type)==="sources"?l[l.length-1]={type:"sources",items:a.items}:l.push({type:"sources",items:a.items}),{...r,blocks:l}})),requestAnimationFrame(()=>C())):a.type==="document_table"?(g(x=>x.map(r=>{if(r.id!==p)return r;const l=[...r.blocks??[],{type:"document_table",title:a.title,rows:a.rows}];return{...r,blocks:l}})),requestAnimationFrame(()=>C())):a.type==="document_card"?(g(x=>x.map(r=>{if(r.id!==p)return r;const l=[...r.blocks??[],{type:"document_card",documentId:a.documentId,title:a.title,path:a.path,preview:a.preview}];return{...r,blocks:l}})),requestAnimationFrame(()=>C())):a.type==="tool_notice"?(g(x=>x.map(r=>{if(r.id!==p)return r;const l=[...r.blocks??[],{type:"tool_notice",toolName:a.toolName,text:a.text}];return{...r,blocks:l}})),requestAnimationFrame(()=>C())):a.type==="choice_card"?(g(x=>x.map(r=>{if(r.id!==p)return r;const l=[...r.blocks??[],{type:"choice_card",requestId:a.requestId,title:a.title,options:a.options,expiresAt:a.expiresAt,status:"open"}];return{...r,blocks:l}})),requestAnimationFrame(()=>C())):a.type==="choice_expired"?g(x=>x.map(r=>r.id!==p||!r.blocks?r:{...r,blocks:r.blocks.map(l=>l.type==="choice_card"&&l.requestId===a.requestId&&l.status==="open"?{...l,status:"expired"}:l)})):a.type==="tree_changed"?S==null||S():a.type==="document_overwritten"?k==null||k({documentId:a.documentId,headCommitId:a.headCommitId}):a.type==="open_coding"?v==null||v({documentId:a.documentId,displayName:a.displayName}):a.type==="context_usage"?J({percent:a.percent,used:a.used,limit:a.limit}):a.type==="error"&&I(a.message)}})}catch(a){if(n.signal.aborted)return;I(a instanceof Error?a.message:String(a))}finally{A.current===n&&(A.current=null),F(!1)}}async function ue(){var t;if(!N){(t=A.current)==null||t.abort(),I(null),h(!1),F(!1);try{const u=await je();E(u.sessionId),g([]),T(""),q.current=!0,H()}catch(u){I(u instanceof Error?u.message:String(u))}}}async function me(t){var u;if(!N){if(t===R){h(!1);return}(u=A.current)==null||u.abort(),I(null);try{const n=await ye(t);E(n.sessionId),g(ne(n.sessionId,n.messages)),T(""),h(!1),q.current=!0,requestAnimationFrame(()=>C()),H()}catch(n){I(n instanceof Error?n.message:String(n))}}}function Z(t){!t||!j||j(t)}if(!s)return null;const ee=K??(o&&!o.enabled?o.reason==="missing_api_key"?"未配置 API Key:请打开设置 → AI":o.reason==="skills_missing"?"skills 未就绪":"助手暂不可用":null);return e.jsxs("div",{ref:ce,className:"mdocs-agent-panel",role:"dialog","aria-label":"mdocs 智能助手",style:b,children:[e.jsxs("header",{className:"mdocs-agent-panel-header",children:[e.jsxs("div",{className:"mdocs-agent-panel-title",children:[e.jsx("img",{src:te,alt:"",className:"mdocs-agent-panel-title-logo"}),e.jsx("span",{children:"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:N,onClick:()=>void ue(),children:e.jsx(ve,{size:16,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"mdocs-agent-panel-icon-btn"+(w?" active":""),title:"历史会话","aria-label":"历史会话",onClick:()=>h(t=>!t),children:e.jsx(we,{size:16,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"mdocs-agent-panel-icon-btn",title:"关闭","aria-label":"关闭",onClick:d,children:e.jsx(fe,{size:16,strokeWidth:1.8})})]})]}),w?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),children:"返回对话"})]}),ie?e.jsx("p",{className:"mdocs-agent-panel-history-hint",children:"加载中…"}):D.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:"发一条消息后会出现在这里"})]}):e.jsx("ul",{className:"mdocs-agent-panel-history-list",children:D.map(t=>e.jsx("li",{children:e.jsxs("button",{type:"button",className:"mdocs-agent-panel-history-item"+(t.id===R?" active":""),disabled:N,onClick:()=>void me(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:Ee(t.updatedAt)})]})},t.id))})]}):e.jsxs("div",{className:"mdocs-agent-panel-body",children:[e.jsx("div",{className:"mdocs-agent-panel-welcome",ref:B,onScroll:oe,children:y.length===0?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"mdocs-agent-panel-hello",children:"你好,我是 mdocs 智能助手"}),e.jsx("p",{className:"mdocs-agent-panel-desc",children:"我能答疑、搜文档、整理结构,也能帮你写全文;需要精细改稿请点文档顶栏「帮写」。"}),ee?e.jsx("p",{className:"mdocs-agent-panel-status-warn",children:ee}):e.jsx("div",{className:"mdocs-agent-panel-chips",children:_e.map(t=>e.jsx("button",{type:"button",className:"mdocs-agent-panel-chip",onClick:()=>void W(t),disabled:N||!(o!=null&&o.enabled),children:t},t))})]}):e.jsx("div",{className:"mdocs-agent-panel-messages",children:y.map(t=>{var u;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:te,alt:""})}):null,e.jsx("div",{className:"mdocs-agent-panel-msg-bubble",children:t.role==="assistant"?t.blocks&&t.blocks.length>0?e.jsxs("div",{className:"mdocs-agent-panel-timeline",children:[t.blocks.map((n,$)=>n.type==="text"?n.text?e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsx(se,{children:n.text})},`${t.id}-t-${$}`):null:n.type==="sources"?n.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:["已阅读 ",n.items.length," 个页面"]}),e.jsx("ol",{className:"mdocs-agent-panel-sources-list",children:n.items.map(p=>e.jsx("li",{children:e.jsx("a",{href:p.url,target:"_blank",rel:"noreferrer",children:p.name})},p.id))})]})},`${t.id}-s-${$}`):n.type==="tool_notice"?e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsx("p",{className:"mdocs-agent-panel-tool-notice",children:n.text})},`${t.id}-n-${$}`):n.type==="choice_card"?e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsx(Me,{block:n,onResolved:(p,L,a)=>{g(x=>x.map(r=>r.id!==t.id||!r.blocks?r:{...r,blocks:r.blocks.map(l=>l.type==="choice_card"&&l.requestId===p?{...l,status:a,selected:a==="selected"?L:l.selected}:l)}))}})},`${t.id}-ch-${$}`):n.type==="document_card"?e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsxs("details",{className:"mdocs-agent-panel-tool-fold",children:[e.jsxs("summary",{children:[e.jsxs("button",{type:"button",className:"mdocs-agent-panel-doc-link",onClick:p=>{p.preventDefault(),p.stopPropagation(),Z(n.documentId)},children:["《",n.title,"》"]}),e.jsx("span",{className:"mdocs-agent-panel-tool-fold-hint",children:"文档预览"})]}),e.jsxs("div",{className:"mdocs-agent-panel-doc-card-body",children:[n.path?e.jsx("p",{className:"mdocs-agent-panel-doc-card-path",children:n.path}):null,n.preview?e.jsx("p",{className:"mdocs-agent-panel-doc-card-preview",children:n.preview}):e.jsx("p",{className:"mdocs-agent-panel-doc-card-preview muted",children:"(无正文预览)"})]})]})},`${t.id}-c-${$}`):e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsxs("details",{className:"mdocs-agent-panel-tool-fold",children:[e.jsxs("summary",{children:[n.title,e.jsx("span",{className:"mdocs-agent-panel-tool-fold-hint",children:n.rows.length===0?"无结果":`${n.rows.length} 条`})]}),e.jsx("div",{className:"mdocs-agent-panel-doc-table-wrap",children:n.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:n.rows.map(p=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("button",{type:"button",className:"mdocs-agent-panel-doc-link",onClick:()=>Z(p.documentId),children:p.title})}),e.jsx("td",{children:p.summary||"-"})]},p.documentId))})]})})]})},`${t.id}-d-${$}`)),N&&t.id===((u=y[y.length-1])==null?void 0:u.id)&&!ae(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(se,{children:t.content}):N?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:M}):null]},t.id)})})}),Y?e.jsx("p",{className:"mdocs-agent-panel-status-warn",children:Y}):null,e.jsxs("div",{className:"mdocs-agent-panel-input-wrap",children:[e.jsx("textarea",{className:"mdocs-agent-panel-input",rows:2,placeholder:o!=null&&o.enabled?"把你的问题告诉我…":"请先配置 API Key",value:z,disabled:N||!(o!=null&&o.enabled),onChange:t=>T(t.target.value),onKeyDown:t=>{t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),W(z))}}),P?e.jsx(De,{percent:P.percent,used:P.used,limit:P.limit}):null,e.jsx("button",{type:"button",className:"mdocs-agent-panel-send",disabled:N||!(o!=null&&o.enabled)||!z.trim(),onClick:()=>void W(z),title:"发送",children:"↑"})]}),e.jsx("p",{className:"mdocs-agent-panel-footnote",children:"内容由 AI 生成,仅供参考"})]})]})}export{Ue as AgentChatPanel};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{r as u,j as n}from"./react-vendor-BNpqFP9B.js";import{a6 as ee,a7 as ne,i as te,aa as se,ag as ie,ab as ae,ac as oe,ad as le}from"./index-C46BU1-j.js";import{P as re}from"./plus-CnKbiP8x.js";import{H as ce}from"./history-AMIEbyMc.js";import{M as de,r as ue}from"./ui-DxdLi_28.js";import"./motion-C4pN8CfU.js";function T(e){return e===""?[]:e.split(`
|
|
2
|
-
`)}function U(e){return e.join(`
|
|
3
|
-
`)}function R(e,s){const i=T(e),r=T(s),c=i.length,g=r.length,y=Array.from({length:c+1},()=>Array.from({length:g+1},()=>0));for(let j=c-1;j>=0;j--)for(let b=g-1;b>=0;b--)i[j]===r[b]?y[j][b]=y[j+1][b+1]+1:y[j][b]=Math.max(y[j+1][b],y[j][b+1]);const l=[];let p=0,h=0;for(;p<c||h<g;)if(p<c&&h<g&&i[p]===r[h])l.push({kind:"eq",oi:p,ni:h}),p++,h++;else if(h<g&&(p===c||y[p][h+1]>=y[p+1][h]))l.push({kind:"ins",oi:p,ni:h}),h++;else if(p<c)l.push({kind:"del",oi:p,ni:h}),p++;else break;const S=[];let x=0,E=0;for(;x<l.length;){if(l[x].kind==="eq"){x++;continue}const j=l[x].oi,b=l[x].ni,$=[],M=[];let a=j,f=b;for(;x<l.length&&l[x].kind!=="eq";){const w=l[x];w.kind==="del"?($.push(i[w.oi]),a=w.oi+1):(M.push(r[w.ni]),f=w.ni+1),x++}S.push({id:`h${E++}`,oldStart:j,oldEnd:a,newStart:b,newEnd:f,oldLines:$,newLines:M})}return S}function me(e,s){const i=T(e);return U([...i.slice(0,s.oldStart),...s.newLines,...i.slice(s.oldEnd)])}function he(e,s){const i=T(e);return U([...i.slice(0,s.newStart),...s.oldLines,...i.slice(s.newEnd)])}function fe(e){return e===""?[]:e.split(`
|
|
4
|
-
`)}function ge(e,s){const i=fe(e),r=[];let c=0;return s.forEach((g,y)=>{g.oldStart>c&&r.push({kind:"same",lines:i.slice(c,g.oldStart),key:`s-${c}-${g.oldStart}`}),r.push({kind:"hunk",hunk:g,hunkIndex:y,key:`h-${g.id}-${y}`}),c=g.oldEnd}),c<i.length?r.push({kind:"same",lines:i.slice(c),key:`s-${c}-end`}):s.length===0&&i.length===0&&r.push({kind:"same",lines:[],key:"s-empty"}),r}function xe(e){return e.oldLines.length===0?"add":e.newLines.length===0?"del":"mod"}function ke(e){const[s,i]=u.useState(!1),[r,c]=u.useState(0),[g,y]=u.useState(null),l=u.useMemo(()=>e.proposedMd==null||e.proposedMd===e.currentMd?[]:R(e.currentMd,e.proposedMd),[e.currentMd,e.proposedMd]),p=u.useMemo(()=>ge(e.currentMd,l),[e.currentMd,l]);u.useEffect(()=>{if(l.length===0){c(0);return}c(a=>Math.min(a,l.length-1))},[l.length]);const h=!s&&l.length>0,S=g??r;function x(a){const f=me(e.currentMd,a);e.onCurrentChange(f),e.proposedMd!=null&&R(f,e.proposedMd).length===0&&e.onProposedChange(null)}function E(a){if(e.proposedMd==null)return;const f=he(e.proposedMd,a);f===e.currentMd?e.onProposedChange(null):e.onProposedChange(f)}function j(){e.proposedMd!=null&&(e.onCurrentChange(e.proposedMd),e.onProposedChange(null))}function b(){e.onProposedChange(null)}function $(a){l.length!==0&&c(f=>{const w=(f+a+l.length)%l.length,N=document.getElementById(`mdocs-ai-hunk-${w}`);return N==null||N.scrollIntoView({block:"center",behavior:"smooth"}),w})}const M=l[S]??null;return n.jsxs("div",{className:"mdocs-ai-write-md-pane",children:[n.jsxs("div",{className:"mdocs-ai-write-diff-toolbar",children:[n.jsx("span",{className:"mdocs-ai-write-diff-count",children:l.length===0?s||!e.proposedMd?"Markdown 源码(可编辑)":"与提案一致":`${l.length} 处变更`}),l.length>0?n.jsxs(n.Fragment,{children:[n.jsx("button",{type:"button",onClick:j,children:"全部接受"}),n.jsx("button",{type:"button",onClick:b,children:"全部拒绝"})]}):null,n.jsx("button",{type:"button",className:s?"active":"",onClick:()=>i(a=>!a),children:s?"回到 diff":"纯编辑"})]}),h?n.jsxs("div",{className:"mdocs-ai-write-inline",role:"document",children:[p.map(a=>{if(a.kind==="same")return n.jsx("pre",{className:"mdocs-ai-write-inline-same",children:a.lines.map((C,k)=>n.jsxs("div",{className:"mdocs-ai-write-line ctx",children:[n.jsx("span",{className:"mdocs-ai-write-rail","aria-hidden":!0}),n.jsx("span",{className:"mdocs-ai-write-code",children:C||" "})]},k))},a.key);const f=a.hunk,w=xe(f),N=a.hunkIndex===S;return n.jsxs("div",{id:`mdocs-ai-hunk-${a.hunkIndex}`,className:`mdocs-ai-write-inline-hunk mdocs-ai-write-inline-hunk-${w}`+(N?" is-active":""),onMouseEnter:()=>y(a.hunkIndex),onMouseLeave:()=>y(null),onClick:()=>c(a.hunkIndex),children:[n.jsxs("div",{className:"mdocs-ai-write-hunk-hover",hidden:g!==a.hunkIndex,children:[n.jsx("button",{type:"button",className:"mdocs-ai-write-hunk-reject",onClick:C=>{C.stopPropagation(),E(f)},children:"拒绝"}),n.jsx("button",{type:"button",className:"mdocs-ai-write-hunk-accept",onClick:C=>{C.stopPropagation(),x(f)},children:"接受"})]}),n.jsxs("pre",{className:"mdocs-ai-write-hunk-pre",children:[f.oldLines.map((C,k)=>n.jsxs("div",{className:"mdocs-ai-write-line del",children:[n.jsx("span",{className:"mdocs-ai-write-rail","aria-hidden":!0}),n.jsx("span",{className:"mdocs-ai-write-code",children:C||" "})]},`o${k}`)),f.newLines.map((C,k)=>n.jsxs("div",{className:"mdocs-ai-write-line add",children:[n.jsx("span",{className:"mdocs-ai-write-rail","aria-hidden":!0}),n.jsx("span",{className:"mdocs-ai-write-code",children:C||" "})]},`n${k}`))]})]},a.key)}),M?n.jsxs("div",{className:"mdocs-ai-write-float-nav",role:"toolbar","aria-label":"变更导航",children:[n.jsx("button",{type:"button","aria-label":"上一段",onClick:()=>$(-1),children:"↑"}),n.jsxs("span",{children:[S+1," / ",l.length]}),n.jsx("button",{type:"button","aria-label":"下一段",onClick:()=>$(1),children:"↓"}),n.jsx("button",{type:"button",className:"mdocs-ai-write-hunk-reject",onClick:()=>E(M),children:"拒绝"}),n.jsx("button",{type:"button",className:"mdocs-ai-write-hunk-accept",onClick:()=>x(M),children:"接受"})]}):null]}):n.jsx("textarea",{className:"mdocs-ai-write-editor",value:e.currentMd,onChange:a=>e.onCurrentChange(a.target.value),spellCheck:!1,placeholder:`# 标题
|
|
5
|
-
|
|
6
|
-
在此编辑 Markdown 源码…`})]})}let V=0;function Y(e){return V+=1,`${e}-${Date.now()}-${V}`}function pe(e,s){const i=e.slice(),r=i[i.length-1];return(r==null?void 0:r.type)==="text"?i[i.length-1]={type:"text",text:r.text+s}:i.push({type:"text",text:s}),i}function F(e,s){const i=s.trim();return i?[...e,{type:"tool",text:i}]:e}function we(e){return e.some(s=>s.type==="text"?s.text.length>0:!0)}function ye(e){const s=new Date(e);if(Number.isNaN(s.getTime()))return"";const i=new Date;return s.getFullYear()===i.getFullYear()&&s.getMonth()===i.getMonth()&&s.getDate()===i.getDate()?s.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}):s.toLocaleDateString(void 0,{month:"2-digit",day:"2-digit"})}function G(e,s){return s.map((i,r)=>{const c=`h-${e}-${r}-${i.role}`;return i.role==="user"?{id:c,role:"user",content:i.content}:{id:c,role:"assistant",blocks:i.content?[{type:"text",text:i.content}]:[]}})}function ve(e){const[s,i]=u.useState(e.initialMarkdown),[r,c]=u.useState(null),[g]=u.useState(e.initialMarkdown),[y,l]=u.useState(e.displayName||"未命名"),[p,h]=u.useState([]),[S,x]=u.useState(null),[E,j]=u.useState([]),[b,$]=u.useState(!1),[M,a]=u.useState(!1),[f,w]=u.useState(""),[N,C]=u.useState(!1),[k,W]=u.useState(null),[_,I]=u.useState(null),[q,K]=u.useState(!1),A=u.useRef(null);async function H(){$(!0);try{const t=await se("coding",e.documentId);j(t.sessions),S||x(t.lastOpenedSessionId)}catch{}finally{$(!1)}}if(u.useEffect(()=>{var d;if(!e.open){a(!1),(d=A.current)==null||d.abort();return}i(e.initialMarkdown),c(null),l(e.displayName||"未命名"),w(""),I(null),a(!1);let t=!1;return(async()=>{try{const o=await ee();t||W(o)}catch{t||W({enabled:!1,skillsReady:!1,model:null})}try{const o=await ne("coding",e.documentId);if(t)return;x(o.sessionId),h(G(o.sessionId,o.messages))}catch{t||(x(null),h([]))}H()})(),()=>{t=!0}},[e.open,e.initialMarkdown,e.displayName,e.documentId]),u.useEffect(()=>()=>{var t;return(t=A.current)==null?void 0:t.abort()},[]),u.useEffect(()=>{e.open&&M&&H()},[M,e.open,e.documentId]),!e.open)return null;const O=r!=null&&r!==s?R(s,r):[];async function J(){var t;if(!N){(t=A.current)==null||t.abort(),I(null),a(!1),C(!1);try{const d=await ae("coding",e.documentId);x(d.sessionId),h([]),w(""),H()}catch(d){I(d instanceof Error?d.message:String(d))}}}async function Q(t){var d;if(!N){if(t===S){a(!1);return}(d=A.current)==null||d.abort(),I(null);try{const o=await oe(t,"coding",e.documentId);x(o.sessionId),h(G(o.sessionId,o.messages)),w(""),a(!1)}catch(o){I(o instanceof Error?o.message:String(o))}}}async function B(){var z;const t=f.trim();if(!t||N)return;if(!(k!=null&&k.enabled)){I("请先在设置 → AI 配置 API Key");return}(z=A.current)==null||z.abort();const d=new AbortController;A.current=d;const o=Y("u"),L=Y("a");h(m=>[...m,{id:o,role:"user",content:t},{id:L,role:"assistant",blocks:[]}]),w(""),C(!0),I(null);const P=m=>{h(v=>v.map(D=>D.id===L&&D.role==="assistant"?{...D,blocks:m(D.blocks)}:D))};try{await le(t,{mode:"coding",documentId:e.documentId,workingMarkdown:s,baseMarkdown:g,signal:d.signal,onEvent:m=>{m.type==="text_delta"?P(v=>pe(v,m.text)):m.type==="markdown_set"?c(m.markdown):m.type==="tool_notice"?P(v=>F(v,m.text)):m.type==="document_table"?P(v=>F(v,m.title)):m.type==="document_card"?P(v=>F(v,`读取文档「${m.title}」`)):m.type==="sources"?m.items.length>0&&P(v=>F(v,`已阅读 ${m.items.length} 个手册页面`)):m.type==="error"&&I(m.message)}}),H()}catch(m){d.signal.aborted||I(m instanceof Error?m.message:String(m))}finally{A.current===d&&(A.current=null),C(!1)}}async function X(){let t=s;if(O.length>0){if(!window.confirm(`还有 ${O.length} 段未审阅,将全部接受后写回。继续?`))return;t=r??s,i(t),c(null)}K(!0);const d=!e.documentId;try{const o=await e.onComplete({markdown:t,documentId:e.documentId,displayName:y.trim()||"未命名"}),L=o&&typeof o=="object"&&typeof o.documentId=="string"?o.documentId.trim():"";if(d&&L&&S)try{await ie(S,L)}catch{}e.onClose()}catch(o){if(o!=null&&o.silent||o instanceof Error&&o.message==="cancelled")return;I(o instanceof Error?o.message:String(o))}finally{K(!1)}}function Z(){var t;(s!==g||r!=null)&&!window.confirm("取消帮写?未写回的修改将丢失。")||((t=A.current)==null||t.abort(),e.onClose())}return n.jsxs("div",{className:"mdocs-ai-write-overlay",role:"dialog","aria-modal":"true","aria-label":"帮写",children:[n.jsxs("header",{className:"mdocs-ai-write-header",children:[n.jsxs("div",{className:"mdocs-ai-write-header-left",children:[n.jsx("img",{src:te,alt:"",className:"mdocs-ai-write-title-logo"}),n.jsx("strong",{children:"帮写"}),n.jsx("input",{className:"mdocs-ai-write-title",value:y,onChange:t=>l(t.target.value),"aria-label":"文档标题"})]}),n.jsxs("div",{className:"mdocs-ai-write-header-actions",children:[n.jsx("button",{type:"button",onClick:Z,disabled:q,children:"取消"}),n.jsx("button",{type:"button",className:"mdocs-ai-write-primary",onClick:()=>void X(),disabled:q,children:q?"写回中…":"完成并写回"})]})]}),n.jsxs("div",{className:"mdocs-ai-write-body",children:[n.jsxs("section",{className:"mdocs-ai-write-chat",children:[n.jsxs("div",{className:"mdocs-ai-write-chat-toolbar",children:[n.jsx("span",{className:"mdocs-ai-write-chat-toolbar-label",children:"对话"}),n.jsxs("div",{className:"mdocs-ai-write-chat-toolbar-actions",children:[n.jsx("button",{type:"button",className:"mdocs-agent-panel-icon-btn",title:"新会话","aria-label":"新会话",disabled:N,onClick:()=>void J(),children:n.jsx(re,{size:16,strokeWidth:1.8})}),n.jsx("button",{type:"button",className:"mdocs-agent-panel-icon-btn"+(M?" active":""),title:"历史会话","aria-label":"历史会话",onClick:()=>a(t=>!t),children:n.jsx(ce,{size:16,strokeWidth:1.8})})]})]}),M?n.jsxs("div",{className:"mdocs-ai-write-history mdocs-agent-panel-history",children:[n.jsxs("div",{className:"mdocs-agent-panel-history-head",children:[n.jsx("span",{children:"历史会话"}),n.jsx("button",{type:"button",className:"mdocs-agent-panel-history-back",onClick:()=>a(!1),children:"返回对话"})]}),b?n.jsx("p",{className:"mdocs-agent-panel-history-hint",children:"加载中…"}):E.length===0?n.jsxs(n.Fragment,{children:[n.jsx("p",{className:"mdocs-agent-panel-history-empty",children:"暂无历史会话"}),n.jsx("p",{className:"mdocs-agent-panel-history-hint",children:"发一条消息后会出现在这里"})]}):n.jsx("ul",{className:"mdocs-agent-panel-history-list",children:E.map(t=>n.jsx("li",{children:n.jsxs("button",{type:"button",className:"mdocs-agent-panel-history-item"+(t.id===S?" active":""),disabled:N,onClick:()=>void Q(t.id),children:[n.jsx("span",{className:"mdocs-agent-panel-history-title",children:t.title}),n.jsx("span",{className:"mdocs-agent-panel-history-time",children:ye(t.updatedAt)})]})},t.id))})]}):n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"mdocs-ai-write-chat-messages",children:p.length===0?n.jsx("p",{className:"mdocs-ai-write-hint",children:"描述你想写或改的内容。助手可读取右侧当前稿与进场快照,再更新提案;请按段接受或拒绝后完成写回。"}):p.map(t=>n.jsx("div",{className:"mdocs-ai-write-msg"+(t.role==="user"?" mdocs-ai-write-msg-user":""),children:t.role==="user"?t.content:we(t.blocks)?n.jsx("div",{className:"mdocs-ai-write-timeline",children:t.blocks.map((d,o)=>d.type==="tool"?n.jsx("p",{className:"mdocs-agent-panel-tool-notice",children:d.text},`${t.id}-tool-${o}`):d.text?n.jsx("div",{className:"mdocs-agent-panel-md",children:n.jsx(de,{remarkPlugins:[ue],children:d.text})},`${t.id}-text-${o}`):null)}):N?n.jsxs("span",{className:"mdocs-agent-panel-thinking","aria-label":"思考中",children:[n.jsx("span",{}),n.jsx("span",{}),n.jsx("span",{})]}):null},t.id))}),_?n.jsx("p",{className:"mdocs-ai-write-error",children:_}):null,n.jsxs("div",{className:"mdocs-ai-write-input-row",children:[n.jsx("textarea",{rows:2,value:f,disabled:N||!(k!=null&&k.enabled),placeholder:k!=null&&k.enabled?"说说要写什么…":"请先配置 API Key",onChange:t=>w(t.target.value),onKeyDown:t=>{t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),B())}}),n.jsx("button",{type:"button",disabled:N||!(k!=null&&k.enabled),onClick:()=>void B(),children:"发送"})]})]})]}),n.jsx(ke,{currentMd:s,proposedMd:r,onCurrentChange:i,onProposedChange:c})]})]})}export{ve as AiWriteWorkbench};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as a,j as e}from"./react-vendor-BNpqFP9B.js";import{b as Z,q as $e,s as We,D as Ue,l as ie,t as _e,v as He,w as _,x as ce,y as qe,z as Ge,A as Ze,a as Je,d as je,B as be,C as ve,E as Qe,G as Xe,H as Ye,I as es,J as ss,K as ke,L as ne,N as ts,O as as,P as ns,Q as is,R as cs,f as ls,T as os,U as rs,V as ds,W as ms,X as us,i as hs,Y as ps,Z as gs,_ as fs,$ as xs,a0 as js,a1 as ys,a2 as Ns,a3 as bs,a4 as vs,r as ks,j as ws,a5 as Ss,n as Cs,o as Ds}from"./index-C46BU1-j.js";import{V as we,a as Is,M as Ts}from"./VisitorPickerModal-BUS-cOq0.js";import"./ui-DxdLi_28.js";import"./motion-C4pN8CfU.js";function As({draft:t,onClose:s,onSuccess:y}){const{t:u,lang:m}=Z(),[E,p]=a.useState([]),[k,N]=a.useState(t.domainId??""),[C,i]=a.useState([]),[v,g]=a.useState(""),[o,x]=a.useState(`${t.displayName||"untitled"}_recovered.md`),[h,V]=a.useState(!1),[I,z]=a.useState(null),D=a.useRef(null),M=a.useRef(!0);a.useEffect(()=>(M.current=!0,()=>{M.current=!1}),[]),a.useEffect(()=>{$e().then(f=>{M.current&&p(f)})},[]),a.useEffect(()=>{k&&(i([]),g(""),We(k).then(f=>{M.current&&i(f)}).catch(()=>{M.current&&i([])}))},[k]),a.useEffect(()=>{const f=window.setTimeout(()=>{var A;return(A=D.current)==null?void 0:A.focus()},0);return()=>window.clearTimeout(f)},[]),a.useEffect(()=>{const f=A=>{A.key==="Escape"&&s()};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[s]);function F(f,A){for(const w of f){if(w.type==="folder"&&w.path===A)return w.documentId;if(w.type==="folder"){const S=F(w.children,A);if(S)return S}}return null}async function L(f){f.preventDefault(),V(!0),z(null);const A=o.replace(/\s+/g,"_").replace(/[^a-zA-Z0-9_\-.]/g,""),w=A.endsWith(".md")?A:A+".md",S=w.replace(/\.md$/i,"");try{const P=v?`${v}/${w}`:w,c=v?F(C,v)??void 0:void 0;await He({fileName:w,displayName:S,content:t.content,domainId:k,parentId:c}),y()}catch(P){z(_(u,P))}finally{V(!1)}}return e.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:f=>{f.target===f.currentTarget&&!h&&s()},children:e.jsxs("div",{className:"mdocs-dialog card mdocs-recovery-dialog",role:"dialog","aria-modal":"true",children:[e.jsx("h1",{children:u("recoverDraft")}),e.jsx("p",{className:"muted",children:u("recoverDraftDesc",{name:t.displayName||u("unknownTitle")})}),e.jsxs("form",{onSubmit:L,className:"mdocs-dialog-form",children:[e.jsxs("label",{className:"mdocs-dialog-label",children:[u("domainLabel"),E.length>0&&e.jsx(Ue,{domains:E,value:k,onChange:N,onDomainsChange:p,ariaLabel:u("domainLabel"),localizeName:f=>ie(f,m,u)})]}),e.jsxs("label",{className:"mdocs-dialog-label mdocs-recovery-tree-label",children:[u("recoverTargetFolder"),e.jsx("div",{className:"mdocs-recovery-tree",children:e.jsx(_e,{nodes:C,activeDocumentId:null,selectedParentPath:v,onOpen:()=>{},onOpenFolder:f=>g(f),onContextMenu:()=>{},onDeselect:()=>g("")})})]}),e.jsxs("label",{className:"mdocs-dialog-label",children:[u("fileNameLabel"),e.jsx("input",{ref:D,value:o,onChange:f=>x(f.target.value),placeholder:"recovered.md",maxLength:200,disabled:h})]}),I&&e.jsx("div",{className:"mdocs-dialog-error",children:I}),e.jsxs("div",{className:"mdocs-dialog-actions",children:[e.jsx("button",{type:"button",onClick:()=>!h&&s(),disabled:h,children:u("cancel")}),e.jsx("button",{type:"submit",className:"primary",disabled:h,children:u(h?"creating":"create")})]})]})]})})}function Ps({onPublish:t,onClose:s,onCountChange:y,onRecover:u}){const{t:m}=Z(),[E,p]=a.useState([]),[k,N]=a.useState(new Set),[C,i]=a.useState(!1),[v,g]=a.useState(null),[o,x]=a.useState(null),[h,V]=a.useState(null),I=a.useRef(null),z=a.useRef(!0);a.useEffect(()=>(z.current=!0,ce().then(c=>{if(!z.current)return;const d=c.filter(j=>!j.published);p(d),y==null||y(d.length)}),()=>{z.current=!1,I.current&&(clearTimeout(I.current),I.current=null)}),[]),a.useEffect(()=>{const c=d=>{d.key==="Escape"&&s()};return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[s]);const D=a.useCallback((c,d)=>{V({message:c,type:d}),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>V(null),3e3)},[]);async function M(c){await Ge(c),N(d=>new Set(d).add(c));try{await t(c),p(d=>{const j=d.filter(R=>R.documentId!==c);return y==null||y(j.length),j}),D(m("published"),"success")}catch(d){d instanceof Ze||D(m("publishFailed"),"error");const j=await Je(c);j&&p(R=>R.map(O=>O.documentId===c?j:O))}finally{N(d=>{const j=new Set(d);return j.delete(c),j})}}async function F(c){g(null),await je(c),p(d=>{const j=d.filter(R=>R.documentId!==c);return y==null||y(j.length),j}),D(m("draftDeleted"),"success")}function L(c){const d=E.find(j=>j.documentId===c);d&&x(d)}function f(c){x(null),je(c),p(d=>{const j=d.filter(R=>R.documentId!==c);return y==null||y(j.length),j}),u==null||u(E.find(d=>d.documentId===c)),D(m("published"),"success")}async function A(){i(!0);let c=0,d=0;for(const O of E)try{await t(O.documentId),c++}catch{d++}const R=(await ce()).filter(O=>!O.published);p(R),y==null||y(R.length),d===0?D(m("publishAll"),"success"):D(`${c} published, ${d} failed`,"error"),i(!1)}const w=c=>new Date(c).toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),S=c=>qe(m,c,c.publishError??"UNKNOWN"),P=E;return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mdocs-drawer-overlay",onClick:s}),e.jsxs("div",{className:"mdocs-drawer",role:"dialog","aria-modal":"true",children:[e.jsxs("header",{className:"mdocs-drawer-header",children:[e.jsxs("div",{className:"mdocs-drawer-header-text",children:[e.jsxs("h2",{className:"mdocs-drawer-title",children:[m("unpublishedDrafts"),P.length>0&&e.jsx("span",{className:"mdocs-drawer-count-badge",children:P.length})]}),e.jsx("span",{className:"mdocs-drawer-subtitle",children:m("draftCount",{count:String(P.length)})})]}),e.jsx("button",{type:"button",className:"mdocs-drawer-close-btn",onClick:s,"aria-label":m("close"),children:"×"})]}),e.jsx("div",{className:"mdocs-drawer-body",children:P.length===0?e.jsxs("div",{className:"mdocs-drawer-empty",children:[e.jsx("div",{className:"mdocs-drawer-empty-icon","aria-hidden":"true",children:"✓"}),e.jsx("p",{className:"mdocs-drawer-empty-text",children:m("draftsEmptyState")})]}):e.jsx("div",{className:"mdocs-drawer-items",children:P.map(c=>{const d=!!c.publishError;return e.jsxs("div",{className:d?"mdocs-drawer-item mdocs-drawer-item-failed":"mdocs-drawer-item",children:[e.jsx("div",{className:"mdocs-drawer-item-icon","aria-hidden":"true",children:"📄"}),e.jsxs("div",{className:"mdocs-drawer-item-info",children:[e.jsx("span",{className:"mdocs-drawer-item-name",children:c.displayName||m("unknownTitle")}),d?e.jsxs("span",{className:"mdocs-drawer-item-error",children:[w(c.publishErrorAt)," · ",S(c)]}):e.jsxs("span",{className:"mdocs-drawer-item-meta",children:[w(c.updatedAt)," · ",m("localSnapshot")]})]}),e.jsxs("div",{className:"mdocs-drawer-item-actions",children:[d?e.jsx("button",{type:"button",className:"mdocs-btn-ghost mdocs-btn-ghost-primary",disabled:C,onClick:()=>L(c.documentId),children:m("recoverDraft")}):e.jsx("button",{type:"button",className:"mdocs-btn-ghost mdocs-btn-ghost-primary",disabled:k.has(c.documentId)||C,onClick:()=>void M(c.documentId),children:k.has(c.documentId)?m("publishing"):m("publish")}),e.jsx("button",{type:"button",className:"mdocs-btn-ghost mdocs-btn-ghost-danger",disabled:C,onClick:()=>g(c.documentId),children:m("delete")})]})]},c.documentId)})})}),e.jsxs("footer",{className:"mdocs-drawer-footer",children:[e.jsx("button",{type:"button",onClick:s,children:m("close")}),e.jsx("button",{type:"button",className:"primary",disabled:P.length===0||C,onClick:()=>void A(),children:C?m("publishing"):`${m("publishAll")} (${P.length})`})]}),h&&e.jsx("div",{className:"mdocs-drawer-toast mdocs-drawer-toast--"+h.type,role:"status",children:h.message})]}),v&&e.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:c=>{c.target===c.currentTarget&&g(null)},children:e.jsxs("div",{className:"mdocs-dialog card",role:"dialog","aria-modal":"true",children:[e.jsx("h1",{children:m("delete")}),e.jsx("p",{className:"muted",children:m("confirmDeleteDraft")}),e.jsxs("div",{className:"mdocs-dialog-actions",children:[e.jsx("button",{type:"button",onClick:()=>g(null),children:m("cancel")}),e.jsx("button",{type:"button",className:"danger",onClick:()=>void F(v),children:m("delete")})]})]})}),o&&e.jsx(As,{draft:o,onClose:()=>x(null),onSuccess:()=>f(o.documentId)})]})}function Ms(){const{t,lang:s}=Z(),y=be(),u=a.useRef(!1),[m,E]=a.useState([]),[p,k]=a.useState(!1),[N,C]=a.useState(""),[i,v]=a.useState("restricted"),[g,o]=a.useState(!1),[x,h]=a.useState(null),[V,I]=a.useState(null),[z,D]=a.useState(""),[M,F]=a.useState(""),[L,f]=a.useState("all"),[A,w]=a.useState(null);a.useEffect(()=>(u.current=!0,()=>{u.current=!1}),[]);const S=a.useCallback(async()=>{k(!0),h(null);try{const r=await ve();if(!u.current)return;E(r)}catch(r){if(!u.current)return;h(_(t,r))}finally{u.current&&k(!1)}},[t]);a.useEffect(()=>{S()},[S]);async function P(r){if(r.preventDefault(),!N.trim()){h(t("domainNameRequired"));return}o(!0),h(null);try{if(await ss({domainName:N.trim(),permission:i}),!u.current)return;C(""),v("restricted"),await S()}catch(K){if(!u.current)return;h(_(t,K))}finally{u.current&&o(!1)}}async function c(r){if(z.trim()){h(null);try{if(await es(r,z.trim()),!u.current)return;I(null),w(null),await S()}catch(K){if(!u.current)return;h(_(t,K))}}}function d(r){I(r.domainId),D(r.domainName),w(null)}function j(){I(null),w(null)}async function R(r,K){h(null);try{if(await Ye(r,K),!u.current)return;w(null),await S()}catch($){if(!u.current)return;h(_(t,$))}}async function O(r){if(window.confirm(t("deleteDomainConfirmDetail",{name:r.domainName,count:String(r.docCount)}))){h(null);try{if(await Xe(r.domainId),!u.current)return;await S()}catch(K){if(!u.current)return;h(_(t,K))}}}const H=a.useCallback(r=>Qe(r,t),[t]),q=a.useCallback(r=>ie(r.domainName,s,t),[s,t]),G=a.useMemo(()=>{const r=M.trim().toLowerCase();return m.filter(K=>L!=="all"&&K.permission!==L?!1:r?ie(K.domainName,s,t).toLowerCase().includes(r)||K.domainName.toLowerCase().includes(r):!0)},[m,M,L,s,t]),b=a.useCallback((r,K)=>{const $=H(r.permission);return K?`${$} ${t("domainTypeBuiltinSuffix")}`:$},[H,t]);return{domains:m,loadingDomains:p,domainError:x,newDomainName:N,setNewDomainName:C,newDomainPermission:i,setNewDomainPermission:v,creating:g,handleCreateDomain:P,renamingId:V,setRenamingId:I,renameDraft:z,setRenameDraft:D,startRename:d,cancelRename:j,handleRename:c,changeTypeForId:A,setChangeTypeForId:w,handlePermissionChange:R,handleDelete:O,domainSearch:M,setDomainSearch:F,domainFilter:L,setDomainFilter:f,filteredDomains:G,visitorId:y,plabel:H,localizeDomain:q,domainTypeLabel:b}}function Es(){const{t}=Z(),s=Ms(),[y,u]=a.useState([]),[m,E]=a.useState(null),[p,k]=a.useState(null),N=a.useCallback(async()=>{try{const i=await ke();u(i)}catch{u([])}},[]);a.useEffect(()=>{N()},[N]);async function C(i){E(null);try{const v=await cs(i.domainId);k({domainId:i.domainId,creatorVisitorId:i.creatorVisitorId,initialIds:v.map(g=>g.visitorId),memberRows:v})}catch(v){E({kind:"err",text:_(t,v)})}}return e.jsxs("div",{className:"mdocs-settings",children:[e.jsx("div",{className:"mdocs-settings-header",children:e.jsx("h2",{className:"mdocs-settings-title",children:t("domainManagement")})}),e.jsx("p",{className:"mdocs-domain-mgmt-restricted-hint",children:t("domainMgmtRestrictedMemberHint")}),e.jsxs("div",{className:"mdocs-settings-cards",children:[e.jsxs("div",{className:"mdocs-settings-card mdocs-domain-mgmt-create",children:[e.jsx("div",{className:"mdocs-settings-card-title",children:t("createDomain")}),e.jsxs("form",{onSubmit:s.handleCreateDomain,className:"mdocs-domain-mgmt-create-form",children:[e.jsxs("label",{className:"mdocs-domain-mgmt-field",children:[e.jsx("span",{className:"mdocs-domain-mgmt-label",children:t("domainName")}),e.jsx("input",{value:s.newDomainName,onChange:i=>s.setNewDomainName(i.target.value),placeholder:t("domainName"),maxLength:100,disabled:s.creating,className:"mdocs-domain-name-input"})]}),e.jsxs("fieldset",{className:"mdocs-domain-mgmt-fieldset",children:[e.jsx("legend",{className:"mdocs-domain-mgmt-label",children:t("domainPermission")}),e.jsx("div",{className:"mdocs-domain-mgmt-type-radios",children:ne.map(i=>e.jsxs("label",{className:"mdocs-domain-mgmt-radio",children:[e.jsx("input",{type:"radio",name:"newDomainPermission",checked:s.newDomainPermission===i,onChange:()=>s.setNewDomainPermission(i),disabled:s.creating}),e.jsx("span",{children:s.plabel(i)})]},i))})]}),e.jsx("button",{type:"submit",className:"primary mdocs-domain-mgmt-submit",disabled:s.creating,children:s.creating?t("creating"):t("create")})]})]}),m&&e.jsx("div",{className:"mdocs-settings-card",style:{color:m.kind==="ok"?"var(--mdocs-success, #0a7)":"var(--mdocs-danger)"},children:e.jsx("span",{className:"mdocs-settings-item-desc",children:m.text})}),s.domainError&&e.jsx("div",{className:"mdocs-settings-card mdocs-domain-error",children:e.jsx("span",{className:"mdocs-settings-item-desc",style:{color:"var(--mdocs-danger)"},children:s.domainError})}),e.jsxs("div",{className:"mdocs-settings-card mdocs-domain-mgmt-toolbar",children:[e.jsx("input",{type:"search",value:s.domainSearch,onChange:i=>s.setDomainSearch(i.target.value),placeholder:t("domainSearchPlaceholder"),className:"mdocs-domain-mgmt-search","aria-label":t("domainSearchPlaceholder")}),e.jsx("div",{className:"mdocs-domain-mgmt-filters",role:"group","aria-label":t("domainPermission"),children:["all",...ne].map(i=>e.jsx("button",{type:"button",className:"mdocs-domain-mgmt-filter"+(s.domainFilter===i?" active":""),"aria-pressed":s.domainFilter===i,onClick:()=>s.setDomainFilter(i),children:i==="all"?t("domainFilterAll"):s.plabel(i)},i))})]}),s.loadingDomains?e.jsx("div",{className:"mdocs-settings-card",children:e.jsx("span",{className:"mdocs-settings-item-desc",children:t("loading")})}):s.domains.length===0?e.jsx("div",{className:"mdocs-settings-card mdocs-settings-draft-empty",children:e.jsx("span",{className:"mdocs-settings-item-desc",children:t("noDomains")})}):s.filteredDomains.length===0?e.jsx("div",{className:"mdocs-settings-card mdocs-settings-draft-empty",children:e.jsx("span",{className:"mdocs-settings-item-desc",children:t("domainNoMatch")})}):e.jsx("div",{className:"mdocs-settings-card mdocs-domain-table-wrap",children:e.jsxs("table",{className:"mdocs-domain-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:t("domainColName")}),e.jsx("th",{scope:"col",children:t("domainColType")}),e.jsx("th",{scope:"col",className:"mdocs-domain-table-num",children:t("domainColDocCount")}),e.jsx("th",{scope:"col",children:t("domainColActions")})]})}),e.jsx("tbody",{children:s.filteredDomains.map(i=>{const v=ts(i,s.visitorId),g=as(i.domainId),o=ns(i),x=o?t("domainTooltipTypeLocked",{count:String(i.docCount)}):void 0;return e.jsxs("tr",{className:g?"mdocs-domain-table-row-builtin":void 0,children:[e.jsx("td",{children:s.renamingId===i.domainId?e.jsxs("div",{className:"mdocs-domain-table-rename",children:[e.jsx("input",{value:s.renameDraft,onChange:h=>s.setRenameDraft(h.target.value),maxLength:100,autoFocus:!0,className:"mdocs-domain-name-input"}),e.jsx("button",{type:"button",className:"primary",onClick:()=>void s.handleRename(i.domainId),children:t("save")}),e.jsx("button",{type:"button",onClick:s.cancelRename,children:t("cancel")})]}):e.jsxs("div",{className:"mdocs-domain-table-name-cell",children:[e.jsx("span",{className:"mdocs-domain-table-name",children:s.localizeDomain(i)}),g&&e.jsx("span",{className:"mdocs-domain-badge-builtin",children:t("domainBuiltIn")}),!v&&!g&&e.jsx("span",{className:"mdocs-domain-badge-shared",children:t("shared")})]})}),e.jsx("td",{children:e.jsxs("span",{className:"mdocs-domain-table-type",title:x,children:[e.jsx("span",{className:"mdocs-domain-permission-badge","data-permission":i.permission,children:s.domainTypeLabel(i,g)}),o&&!g&&e.jsx("span",{className:"mdocs-domain-type-lock","aria-hidden":"true",children:"🔒"})]})}),e.jsx("td",{className:"mdocs-domain-table-num",children:i.docCount}),e.jsxs("td",{className:"mdocs-domain-table-actions",children:[g&&e.jsx("span",{className:"mdocs-domain-not-modifiable",children:t("domainNotModifiable")}),!g&&!v&&e.jsx("span",{className:"mdocs-domain-not-creator-inline",children:t("domainNotCreator")}),!g&&v&&s.changeTypeForId===i.domainId&&e.jsxs("div",{className:"mdocs-domain-change-type-panel",children:[e.jsx("div",{className:"mdocs-domain-permission-select",children:ne.map(h=>e.jsx("button",{type:"button",className:i.permission===h?"active":"",onClick:()=>void s.handlePermissionChange(i.domainId,h),children:s.plabel(h)},h))}),e.jsx("button",{type:"button",className:"secondary",onClick:()=>s.setChangeTypeForId(null),children:t("cancel")})]}),!g&&v&&s.renamingId!==i.domainId&&s.changeTypeForId!==i.domainId&&e.jsxs("div",{className:"mdocs-domain-action-buttons",children:[e.jsx("button",{type:"button",className:"secondary",title:o?t("domainLocked"):void 0,onClick:()=>{s.setChangeTypeForId(null),s.startRename(i)},disabled:o,children:t("rename")}),e.jsx("button",{type:"button",className:"secondary",title:o?x:void 0,onClick:()=>{s.setRenamingId(null),s.setChangeTypeForId(i.domainId)},disabled:o,children:t("domainChangeType")}),e.jsx("button",{type:"button",className:"secondary",title:o?t("domainLocked"):void 0,onClick:()=>void s.handleDelete(i),disabled:o,children:t("deleteDomain")}),i.permission==="restricted"&&!g&&e.jsx("button",{type:"button",className:"secondary",onClick:()=>void C(i),children:t("domainMembersManageButton")})]})]})]},i.domainId)})})]})})]}),e.jsx(we,{open:p!==null,title:t("domainMembersPickerTitle"),initialSelectedIds:(p==null?void 0:p.initialIds)??[],lockedIds:p?[p.creatorVisitorId]:[],seedMembers:p==null?void 0:p.memberRows,templates:y,onClose:()=>k(null),onConfirm:async i=>{p&&(await is(p.domainId,i),E({kind:"ok",text:t("domainMembersSaved",{count:String(i.length)})}))}})]})}function ye(t){return t.length<=6?t:`${t.slice(0,6)}…`}function Ls(){const{t}=Z(),s=a.useRef(!0),[y,u]=a.useState([]),[m,E]=a.useState(!0),[p,k]=a.useState(null),[N,C]=a.useState(1),[i,v]=a.useState(null),[g,o]=a.useState(""),[x,h]=a.useState([]),[V,I]=a.useState(!1),[z,D]=a.useState(null),[M,F]=a.useState(!1),L=be(),[f,A]=a.useState([]),[w,S]=a.useState("idle"),[P,c]=a.useState("");a.useEffect(()=>(s.current=!0,()=>{s.current=!1}),[]),a.useEffect(()=>{S("loading"),ls().then(l=>{s.current&&(A(l),S("ok"))}).catch(()=>{s.current&&S("err")})},[]);const d=a.useMemo(()=>{const l=new Map;for(const T of f)l.set(T.visitorId,T.visitorName);return l},[f]),j=a.useCallback(async()=>{E(!0),D(null);try{const l=await ke();s.current&&u(l)}catch(l){s.current&&D(_(t,l))}finally{s.current&&E(!1)}},[t]);a.useEffect(()=>{j()},[j]);const R=a.useMemo(()=>x.map(l=>{const T=f.find(W=>W.visitorId===l);return{visitorId:l,name:T?T.visitorName:t("visitorPickerUnknownVisitor"),muted:!T}}),[x,f,t]);function O(l){h(T=>T.includes(l)?T.filter(W=>W!==l):[...T,l])}const H=N===1?g.trim().length>0:N===2?x.length>0:!0;function q(){if(!(N>=3)){if(!H){F(!0);return}F(!1),C(N+1),c("")}}function G(){N<=1||(F(!1),C(N-1))}function b(){k(null),v(null),o(""),h(L?[L]:[]),D(null),C(1),c(""),F(!1)}function r(l){k(null),v(l.id),o(l.displayName);const T=L&&!l.visitorIds.includes(L)?[...l.visitorIds,L]:[...l.visitorIds];h(T),D(null),C(1),c(""),F(!1)}async function K(){if(!(!g.trim()||x.length===0)){I(!0),D(null);try{if(i===null?await os({displayName:g.trim(),visitorIds:x}):await rs(i,{displayName:g.trim(),visitorIds:x}),!s.current)return;b(),await j()}catch(l){if(!s.current)return;D(_(t,l))}finally{s.current&&I(!1)}}}async function $(l){I(!0),D(null);try{if(await ds(l),!s.current)return;k(null),i===l&&b(),await j()}catch(T){if(!s.current)return;D(_(t,T))}finally{s.current&&I(!1)}}const Q=[{key:1,label:t("memberTemplateStepName")},{key:2,label:t("memberTemplateStepMembers")},{key:3,label:t("memberTemplateStepSave")}],ee=`${(N-1)/2*100}%`;return e.jsxs("div",{className:"mdocs-settings",children:[e.jsxs("div",{className:"mdocs-settings-header",children:[e.jsx("h2",{className:"mdocs-settings-title",children:t(i!==null?"memberTemplateUpdate":"memberTemplateFormNew")}),i!==null&&e.jsx("button",{type:"button",className:"secondary",onClick:b,style:{fontSize:12},children:t("memberTemplateCancelEdit")})]}),e.jsxs("div",{className:"mdocs-wizard-progress",children:[e.jsx("div",{className:"mdocs-wizard-progress-track",children:e.jsx("div",{className:"mdocs-wizard-progress-fill",style:{width:ee}})}),e.jsx("div",{className:"mdocs-wizard-progress-steps",children:Q.map(l=>{const T=N===l.key,W=N>l.key;return e.jsxs("div",{className:"mdocs-wizard-step-indicator",children:[e.jsx("div",{className:`mdocs-wizard-step-circle${T?" current":""}${W?" done":""}`,children:W?"✓":l.key}),e.jsx("span",{className:`mdocs-wizard-step-label${T?" current":""}${W?" done":""}`,children:l.label})]},l.key)})})]}),z&&e.jsx("div",{className:"mdocs-settings-item-desc",style:{color:"var(--mdocs-danger)",marginBottom:12,marginTop:12},children:z}),e.jsxs("div",{className:"mdocs-settings-cards",children:[e.jsxs("div",{className:"mdocs-settings-card mdocs-wizard-card",children:[N===1&&e.jsxs("div",{className:"mdocs-wizard-step-content",children:[e.jsx("input",{className:"mdocs-wizard-name-input",value:g,onChange:l=>o(l.target.value),placeholder:t("memberTemplateNamePlaceholder"),maxLength:200,disabled:V,autoFocus:!0,"aria-invalid":M&&!g.trim()}),M&&!g.trim()&&e.jsx("p",{className:"mdocs-wizard-hint",style:{color:"var(--mdocs-danger)"},children:t("domainNameRequired")})]}),N===2&&e.jsxs("div",{className:"mdocs-wizard-step-content",children:[e.jsx(Is,{visitors:f,loadState:w,searchFilter:P,onSearchChange:c,selectedIds:new Set(x),onToggle:O,selectedRows:R,myVisitorId:L}),e.jsx("p",{className:`mdocs-wizard-hint${M&&x.length===0?" danger":""}`,children:"💡 "+t("memberTemplateStep2Hint")})]}),N===3&&e.jsx("div",{className:"mdocs-wizard-step-content",children:e.jsxs("div",{className:"mdocs-wizard-preview-card",children:[e.jsxs("div",{className:"mdocs-wizard-preview-row",children:[e.jsx("span",{className:"mdocs-wizard-preview-label",children:t("memberTemplateNameLabel")}),e.jsx("span",{className:"mdocs-wizard-preview-value",children:g})]}),e.jsxs("div",{className:"mdocs-wizard-preview-row",children:[e.jsx("span",{className:"mdocs-wizard-preview-label",children:t("memberTemplateIdsLabel")}),e.jsx("span",{className:"mdocs-wizard-preview-value",children:t("memberTemplateSelectedSummary",{count:String(x.length)})})]}),x.length>0&&e.jsxs("div",{className:"mdocs-wizard-preview-tags",children:[x.slice(0,15).map(l=>e.jsx("span",{className:"mdocs-wizard-preview-tag",children:ye(l)},l)),x.length>15&&e.jsxs("span",{className:"mdocs-wizard-preview-tag mdocs-wizard-preview-tag-more",children:["+",x.length-15]})]})]})}),e.jsxs("div",{className:"mdocs-wizard-footer",children:[e.jsxs("button",{type:"button",className:"secondary",onClick:G,children:["← ",t("memberTemplateWizardBack")]}),N<3?e.jsxs("button",{type:"button",className:"primary",onClick:q,children:[t("memberTemplateWizardNext")," →"]}):e.jsx("button",{type:"button",className:"primary",onClick:()=>void K(),children:t(V?"saving":i===null?"memberTemplateCreate":"memberTemplateUpdate")})]})]}),e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsx("div",{className:"mdocs-settings-card-title",children:t("memberTemplateSavedList")}),m?e.jsx("span",{className:"mdocs-settings-item-desc",children:t("loading")}):y.length===0?e.jsxs("div",{className:"mdocs-member-template-empty",children:[e.jsx("span",{className:"mdocs-settings-item-desc",children:t("memberTemplateEmpty")}),i===null&&e.jsx("button",{type:"button",className:"primary",onClick:b,children:t("memberTemplateEmptyAction")})]}):e.jsx("ul",{className:"mdocs-member-template-list",children:y.map(l=>e.jsx("li",{className:"mdocs-member-template-row",children:p===l.id?e.jsxs("div",{className:"mdocs-member-template-confirm-row",children:[e.jsx("span",{className:"mdocs-member-template-confirm-text",children:t("memberTemplateConfirmDeleteDesc",{name:l.displayName})}),e.jsxs("div",{className:"mdocs-member-template-confirm-actions",children:[e.jsx("button",{type:"button",className:"secondary",style:{color:"var(--mdocs-danger)"},onClick:()=>void $(l.id),children:t(V?"saving":"memberTemplateConfirmDeleteSubmit")}),e.jsx("button",{type:"button",className:"secondary",onClick:()=>k(null),children:t("memberTemplateConfirmDeleteCancel")})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mdocs-member-template-row-head",children:[e.jsx("strong",{children:l.displayName}),e.jsx("span",{className:"mdocs-settings-item-desc",children:t("memberTemplateCount",{count:String(l.visitorIds.length)})}),l.visitorIds.length>0&&e.jsx("div",{className:"mdocs-member-template-tags mdocs-member-template-tags-scroll",children:l.visitorIds.map(T=>e.jsx("span",{className:"mdocs-member-template-tag",children:d.get(T)??ye(T)},T))})]}),e.jsxs("div",{className:"mdocs-member-template-row-actions",children:[e.jsx("button",{type:"button",className:"secondary",onClick:()=>r(l),children:t("edit")}),e.jsx("button",{type:"button",className:"secondary",onClick:()=>k(l.id),children:t("memberTemplateDelete")})]})]})},l.id))})]})]})]})}const Rs=[{value:"deepseek-v4-flash",label:"deepseek-v4-flash"},{value:"deepseek-v4-pro",label:"deepseek-v4-pro"}];function Bs(){const{t}=Z(),s=a.useRef(!0),[y,u]=a.useState(""),[m,E]=a.useState(null),[p,k]=a.useState(""),[N,C]=a.useState("deepseek-v4-flash"),[i,v]=a.useState(128e3),[g,o]=a.useState(""),[x,h]=a.useState(!1),[V,I]=a.useState(null),[z,D]=a.useState(!0),[M,F]=a.useState(!1),[L,f]=a.useState(null),[A,w]=a.useState(!1),[S,P]=a.useState(!1),[c,d]=a.useState(!1),[j,R]=a.useState(null);a.useEffect(()=>(s.current=!0,()=>{s.current=!1}),[]),a.useEffect(()=>{(async()=>{try{const[b,r]=await Promise.all([ms(),us()]);if(!s.current)return;u(b.visitorName),r?(E(r.id),k(r.name),C(r.modelId),v(r.contextWindow||128e3),h(r.hasApiKey),I(r.apiKeyMasked),P(!1)):P(!0)}catch(b){if(!s.current)return;f(b instanceof Error?b.message:String(b)),P(!0)}finally{s.current&&D(!1)}})()},[]);function O(){R({name:p,modelId:N,contextWindow:i}),o(""),d(!1),w(!1),f(null),P(!0)}function H(){j&&(k(j.name),C(j.modelId),v(j.contextWindow)),o(""),d(!1),f(null),w(!1),P(!1),R(null)}async function q(){F(!0),f(null),w(!1);try{const b={modelId:N,name:p,contextWindow:i};g.trim()&&(b.apiKey=g.trim());const r=await ps(b);if(!s.current)return;E(r.id),k(r.name),C(r.modelId),v(r.contextWindow||128e3),h(r.hasApiKey),I(r.apiKeyMasked),o(""),d(!1),w(!0),P(!1),R(null)}catch(b){if(!s.current)return;f(b instanceof Error?b.message:String(b))}finally{s.current&&F(!1)}}const G=t("agentConfigNameDefault").replace("{{name}}",y||"…");return e.jsxs("div",{className:"mdocs-settings",children:[e.jsxs("div",{className:"mdocs-settings-header",children:[e.jsxs("h2",{className:"mdocs-settings-title mdocs-agent-config-title",children:[e.jsx("img",{src:hs,alt:"DeepSeek",className:"mdocs-agent-config-logo"}),t("agentConfig")]}),!z&&m&&!S?e.jsx("button",{type:"button",className:"secondary",onClick:O,children:t("edit")}):null]}),e.jsx("div",{className:"mdocs-settings-cards",children:e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsx("p",{className:"mdocs-settings-item-desc",style:{marginBottom:12},children:t("agentConfigDesc")}),z?e.jsx("p",{children:t("loading")}):e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"mdocs-settings-item",style:{display:"block",marginBottom:12},children:[e.jsx("span",{className:"mdocs-settings-card-title",children:t("agentConfigName")}),e.jsx("input",{type:"text",value:p,onChange:b=>k(b.target.value),placeholder:G,disabled:!S,style:{width:"100%",marginTop:6}})]}),e.jsxs("div",{className:"mdocs-settings-item mdocs-agent-config-field",style:{marginBottom:12},children:[e.jsx("span",{className:"mdocs-settings-card-title",children:t("agentConfigModel")}),S?e.jsx("div",{className:"mdocs-agent-config-select",children:e.jsx(Ts,{options:Rs,value:N,onChange:b=>C(b)})}):e.jsx("p",{className:"mdocs-agent-config-readonly",children:N})]}),e.jsxs("label",{className:"mdocs-settings-item",style:{display:"block",marginBottom:12},children:[e.jsx("span",{className:"mdocs-settings-card-title",children:t("agentConfigContextWindow")}),e.jsx("p",{className:"mdocs-settings-item-desc",style:{margin:"4px 0 6px"},children:t("agentConfigContextWindowDesc")}),S?e.jsx("input",{type:"number",min:1e3,max:2e6,step:1e3,value:i,onChange:b=>v(Number(b.target.value)||128e3),style:{width:"100%"}}):e.jsx("p",{className:"mdocs-agent-config-readonly",children:i})]}),e.jsxs("div",{className:"mdocs-settings-item mdocs-agent-config-field",style:{marginBottom:12},children:[e.jsx("span",{className:"mdocs-settings-card-title",children:t("agentConfigApiKey")}),S?e.jsxs("div",{className:"mdocs-agent-config-apikey",children:[e.jsx("input",{type:c?"text":"password",value:g,onChange:b=>o(b.target.value),placeholder:x?t("agentConfigApiKeyConfigured").replace("{{masked}}",V??"…"):t("agentConfigApiKeyPlaceholder"),autoComplete:"off"}),e.jsx("button",{type:"button",className:"mdocs-agent-config-eye","aria-label":t(c?"agentConfigHideKey":"agentConfigShowKey"),onClick:()=>d(b=>!b),children:c?e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":!0,children:[e.jsx("path",{d:"M3 3l18 18"}),e.jsx("path",{d:"M10.6 10.6a2 2 0 002.8 2.8"}),e.jsx("path",{d:"M9.9 5.1A10.5 10.5 0 0121 12c-.6 1.1-1.4 2.1-2.4 2.9"}),e.jsx("path",{d:"M6.1 6.1C4.5 7.4 3.2 9.1 2.5 12c1.5 3.5 5 7 9.5 7 1.4 0 2.7-.3 3.9-.8"})]}):e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":!0,children:[e.jsx("path",{d:"M2.5 12C4 8.5 7.5 5 12 5s8 3.5 9.5 7c-1.5 3.5-5 7-9.5 7s-8-3.5-9.5-7z"}),e.jsx("circle",{cx:"12",cy:"12",r:"3"})]})})]}):e.jsx("p",{className:"mdocs-agent-config-readonly",children:x?V??"…":t("agentConfigApiKeyPlaceholder")})]}),m?e.jsxs("p",{className:"mdocs-settings-item-desc",style:{marginBottom:12},children:[t("agentConfigId"),": ",m]}):null,L?e.jsx("p",{style:{color:"var(--mdocs-danger, #c00)",marginBottom:12},children:L}):null,A&&!S?e.jsx("p",{className:"mdocs-settings-item-desc",style:{marginBottom:12},children:t("saved")}):null,S?e.jsxs("div",{className:"mdocs-agent-config-actions",children:[e.jsx("button",{type:"button",onClick:()=>void q(),disabled:M,children:t(M?"saving":"save")}),m?e.jsx("button",{type:"button",className:"secondary",onClick:H,disabled:M,children:t("cancel")}):null]}):null]})]})})]})}function Ne(t,s){const y=localStorage.getItem(t);return y===null?s:y==="true"}function $s(t){const{t:s,lang:y,setLang:u}=Z(),{onBack:m,onPublishDraft:E}=t,p=a.useRef(!0);a.useEffect(()=>(p.current=!0,()=>{p.current=!1}),[]);const[k,N]=a.useState(()=>Ne("mdocs.autoPublish",!1)),[C,i]=a.useState(()=>Ne("mdocs.autoEdit",!0)),[v,g]=a.useState(!1),[o,x]=a.useState("general"),[h,V]=a.useState([]),[I,z]=a.useState(!0),[D,M]=a.useState(null),[F,L]=a.useState(!1),[f,A]=a.useState(!1),[w,S]=a.useState(!1),[P,c]=a.useState(!1),[d,j]=a.useState(null),[R,O]=a.useState(!1),[H,q]=a.useState(!1),[G,b]=a.useState(!1),[r,K]=a.useState(""),[$,Q]=a.useState(!1),[ee,l]=a.useState(!1),[T,W]=a.useState(0),[Se,le]=a.useState([]),[Ce,oe]=a.useState(!1),[X,De]=a.useState(""),[Ie,Te]=a.useState([]),[Ae,re]=a.useState(!1),[Y,Pe]=a.useState(""),[Me,Ee]=a.useState([]),[Le,se]=a.useState(!1),[te,de]=a.useState(null),[ae,me]=a.useState(new Map);a.useEffect(()=>{localStorage.setItem("mdocs.autoPublish",String(k))},[k]),a.useEffect(()=>{localStorage.setItem("mdocs.autoEdit",String(C))},[C]),a.useEffect(()=>{o==="savePublish"&&ce().then(n=>{p.current&&W(n.filter(B=>!B.published).length)})},[o]),a.useEffect(()=>{o==="bookmarks"&&Re(),o==="myDocuments"&&pe()},[o]),a.useEffect(()=>{he()},[]),a.useEffect(()=>{ve().then(n=>{p.current&&Ee(n)}).catch(()=>{})},[]);const ue=new Map(Me.map(n=>[n.domainId,n.domainName]));async function he(){try{z(!0);const n=await gs();if(!p.current)return;V(n)}catch{}finally{p.current&&z(!1)}}async function Re(){try{oe(!0);const n=await fs();if(!p.current)return;le(n)}catch{}finally{p.current&&oe(!1)}}async function pe(){try{re(!0);const n=await xs();if(!p.current)return;Te(n)}catch{}finally{p.current&&re(!1)}}async function Be(n){try{await ks(n),le(B=>B.filter(J=>J.documentId!==n))}catch{}}function ze(){if(h.some(B=>!B.revoked)){A(!0);return}ge()}async function ge(){try{L(!0);const n=await Ss();M({token:n.token,name:n.name}),await he()}finally{L(!1)}}async function Fe(){try{b(!0);const n=await bs();j(n.recoveryCode)}finally{b(!1)}}async function Ke(n){n.preventDefault();const B=r.trim();if(!(B&&B.length<4))try{Q(!0),await vs(B),K(""),l(!0),setTimeout(()=>l(!1),3e3)}finally{Q(!1)}}async function Ve(n){de(n);try{const B=await ws(n),J=new Map;B.forEach(U=>{J.set(U.visitorId,U.permission)}),me(J)}catch{me(new Map)}se(!0)}async function Oe(n){if(te)try{const B=new Set(n.map(U=>U.visitorId)),J=new Set(ae.keys());for(const U of J)B.has(U)||await Cs(te,U);for(const U of n)await Ds(te,U.visitorId,U.permission);await pe()}finally{se(!1),de(null)}}const fe=Se.filter(n=>{if(!X.trim())return!0;const B=X.toLowerCase();return(n.displayName||n.relativePath||"").toLowerCase().includes(B)||(n.ownerVisitorName||"").toLowerCase().includes(B)||(n.domainId||"").toLowerCase().includes(B)}),xe=Ie.filter(n=>{if(!Y.trim())return!0;const B=Y.toLowerCase();return(n.displayName||n.relativePath||"").toLowerCase().includes(B)||(n.domainId||"").toLowerCase().includes(B)});return e.jsxs(e.Fragment,{children:[e.jsxs("aside",{className:"mdocs-sidebar",children:[e.jsx("header",{className:"mdocs-sidebar-header",children:e.jsxs("div",{className:"mdocs-brand",children:[e.jsx("img",{src:js,alt:s("brand"),className:"mdocs-brand-logo"}),e.jsx("span",{children:s("brand")})]})}),e.jsxs("nav",{className:"mdocs-config-tree",children:[e.jsx("div",{className:"mdocs-config-item"+(o==="general"?" active":""),onClick:()=>x("general"),children:s("general")}),e.jsx("div",{className:"mdocs-config-item"+(o==="bookmarks"?" active":""),onClick:()=>x("bookmarks"),children:s("bookmarkTitle")}),e.jsx("div",{className:"mdocs-config-item"+(o==="myDocuments"?" active":""),onClick:()=>x("myDocuments"),children:s("myDocuments")}),e.jsx("div",{className:"mdocs-config-item"+(o==="domainManagement"?" active":""),onClick:()=>x("domainManagement"),children:s("domainManagement")}),e.jsx("div",{className:"mdocs-config-item"+(o==="memberTemplates"?" active":""),onClick:()=>x("memberTemplates"),children:s("memberTemplates")}),e.jsx("div",{className:"mdocs-config-item"+(o==="agentConfig"?" active":""),onClick:()=>x("agentConfig"),children:s("agentConfig")}),e.jsx("div",{className:"mdocs-config-item"+(o==="savePublish"?" active":""),onClick:()=>x("savePublish"),children:s("saveAndPublish")})]}),e.jsx("footer",{className:"mdocs-settings-sidebar-footer",onClick:m,children:s("backToDocs")})]}),e.jsxs("main",{className:"mdocs-main",children:[ys(),o==="general"?e.jsxs("div",{className:"mdocs-settings",children:[e.jsx("div",{className:"mdocs-settings-header",children:e.jsx("h2",{className:"mdocs-settings-title",children:s("general")})}),e.jsxs("div",{className:"mdocs-settings-cards",children:[e.jsx("div",{className:"mdocs-settings-card",children:e.jsxs("label",{className:"mdocs-settings-item",children:[e.jsx("span",{className:"mdocs-settings-item-info",children:e.jsx("span",{className:"mdocs-settings-card-title",children:s("language")})}),e.jsxs("span",{className:"mdocs-settings-lang",children:[e.jsx("button",{type:"button",className:y==="en"?"active":"",onClick:()=>u("en"),children:"EN"}),e.jsx("span",{children:"/"}),e.jsx("button",{type:"button",className:y==="zh"?"active":"",onClick:()=>u("zh"),children:"中"})]})]})}),e.jsx("div",{className:"mdocs-settings-card",children:e.jsxs("label",{className:"mdocs-settings-item",children:[e.jsxs("span",{className:"mdocs-settings-item-info",children:[e.jsx("span",{className:"mdocs-settings-card-title",children:s("autoEdit")}),e.jsx("span",{className:"mdocs-settings-item-desc",children:s("autoEditDesc")})]}),e.jsx("button",{type:"button",className:"mdocs-toggle"+(C?" active":""),role:"switch","aria-checked":C,onClick:()=>i(n=>!n),children:e.jsx("span",{className:"mdocs-toggle-knob"})})]})}),e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsxs("div",{className:"mdocs-settings-item",children:[e.jsxs("span",{className:"mdocs-settings-item-info",children:[e.jsx("span",{className:"mdocs-settings-card-title",children:s("cliToken")}),e.jsx("span",{className:"mdocs-settings-item-desc",children:s("cliTokenDesc")}),!I&&h.length>0&&e.jsx("span",{className:"mdocs-settings-item-desc",style:{marginTop:8,fontSize:"0.85em",opacity:.8},children:h.map(n=>e.jsxs("span",{style:{display:"block"},children:[n.name," — ",new Date(n.createdAt).toLocaleString()," ",n.revoked?`(${s("cliTokenRevoked")})`:`(${s("cliTokenActive")})`]},n.tokenId))})]}),e.jsx("button",{type:"button",className:"secondary",onClick:ze,disabled:F||I,children:F?"…":h.some(n=>!n.revoked)?s("cliTokenReset"):s("cliTokenCreate")})]}),D&&e.jsxs("div",{className:"mdocs-settings-secret-result mdocs-settings-secret-result--ok",children:[e.jsxs("div",{className:"mdocs-settings-secret-result-head",children:[e.jsx("span",{className:"mdocs-settings-card-title",children:s("cliTokenGenerated")}),e.jsx("span",{className:"mdocs-settings-secret-value",children:D.token})]}),e.jsxs("div",{className:"mdocs-settings-secret-result-actions",children:[e.jsx("button",{type:"button",className:"secondary",onClick:()=>{(async()=>{try{await navigator.clipboard.writeText(D.token),c(!1),S(!0),window.setTimeout(()=>S(!1),2e3)}catch{S(!1),c(!0),window.setTimeout(()=>c(!1),3e3)}})()},children:s(w?"cliTokenCopied":"cliTokenCopy")}),e.jsx("button",{type:"button",onClick:()=>M(null),children:s("close")})]}),w&&e.jsxs("div",{className:"mdocs-settings-copy-feedback mdocs-settings-copy-feedback--ok",role:"status",children:["✓ ",s("cliTokenCopied")]}),P&&e.jsx("div",{className:"mdocs-settings-copy-feedback mdocs-settings-copy-feedback--err",role:"status",children:s("cliTokenCopyFailed")})]})]}),e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsxs("div",{className:"mdocs-settings-item",children:[e.jsxs("span",{className:"mdocs-settings-item-info",children:[e.jsx("span",{className:"mdocs-settings-card-title",children:"🔑 恢复码"}),e.jsx("span",{className:"mdocs-settings-item-desc",children:"当 Token 丢失时,可用恢复码找回身份。生成后请立即保存,仅显示一次。"})]}),e.jsx("button",{type:"button",className:"secondary",onClick:Fe,disabled:G,children:G?"…":"生成恢复码"})]}),d&&e.jsxs("div",{className:"mdocs-settings-secret-result mdocs-settings-secret-result--warn",children:[e.jsxs("div",{className:"mdocs-settings-secret-result-head",children:[e.jsx("span",{className:"mdocs-settings-card-title",children:"🔑 你的恢复码"}),e.jsx("span",{className:"mdocs-settings-item-desc",style:{marginTop:8},children:"请立即复制保存,关闭后不可再查看。"}),e.jsx("div",{className:"mdocs-settings-secret-code",children:d})]}),e.jsxs("div",{className:"mdocs-settings-secret-result-actions",children:[e.jsx("button",{type:"button",className:"primary",onClick:()=>{(async()=>{try{await navigator.clipboard.writeText(d),q(!1),O(!0),window.setTimeout(()=>O(!1),2e3)}catch{O(!1),q(!0),window.setTimeout(()=>q(!1),3e3)}})()},children:R?"已复制":"复制恢复码"}),e.jsx("button",{type:"button",onClick:()=>j(null),children:s("close")})]}),R&&e.jsx("div",{className:"mdocs-settings-copy-feedback mdocs-settings-copy-feedback--ok",role:"status",children:"✓ 已复制到剪贴板"}),H&&e.jsx("div",{className:"mdocs-settings-copy-feedback mdocs-settings-copy-feedback--err",role:"status",children:"复制失败,请手动选中上方内容复制"})]})]}),e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsx("div",{className:"mdocs-settings-item",children:e.jsxs("span",{className:"mdocs-settings-item-info",children:[e.jsx("span",{className:"mdocs-settings-card-title",children:"🔐 登录密码"}),e.jsx("span",{className:"mdocs-settings-item-desc",children:"设置密码后,可在其他浏览器或设备用「用户名+密码」登录。"})]})}),e.jsxs("form",{onSubmit:Ke,style:{marginTop:12},children:[e.jsx("input",{type:"password",placeholder:"输入新密码(至少 4 位,留空则清除密码)",value:r,onChange:n=>K(n.target.value),minLength:0,style:{marginBottom:8}}),ee&&e.jsx("div",{style:{color:"#4caf50",marginBottom:8,fontSize:"0.875rem"},children:"✓ 密码设置成功"}),e.jsx("button",{type:"submit",className:"secondary",disabled:$,children:$?"设置中…":"保存密码"})]})]})]})]}):o==="bookmarks"?e.jsxs("div",{className:"mdocs-settings",children:[e.jsx("div",{className:"mdocs-settings-header",children:e.jsx("h2",{className:"mdocs-settings-title",children:s("bookmarkTitle")})}),e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsx("input",{type:"text",className:"mdocs-settings-search",placeholder:s("bookmarkSearch"),value:X,onChange:n=>De(n.target.value)}),Ce?e.jsx("div",{style:{textAlign:"center",padding:"40px 0"},children:s("loading")}):e.jsx(e.Fragment,{children:fe.length===0?e.jsx("div",{style:{textAlign:"center",padding:"40px 0",opacity:.6},children:s(X?"bookmarkNoMatch":"bookmarkEmpty")}):e.jsxs("table",{className:"mdocs-settings-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:s("bookmarkColTitle")}),e.jsx("th",{children:s("bookmarkColDomain")}),e.jsx("th",{children:s("bookmarkColAuthor")}),e.jsx("th",{children:s("bookmarkColTime")}),e.jsx("th",{style:{textAlign:"right"}})]})}),e.jsx("tbody",{children:fe.map(n=>e.jsxs("tr",{children:[e.jsx("td",{style:{cursor:"pointer",fontWeight:500},onClick:()=>t.onOpenDocument(n.documentId),children:n.displayName||n.relativePath||"Untitled"}),e.jsx("td",{children:n.isDeleted?e.jsx("span",{style:{opacity:.5,fontStyle:"italic"},children:"已删除"}):ue.get(n.domainId||"")||n.domainId||"—"}),e.jsx("td",{children:n.ownerVisitorName||"—"}),e.jsx("td",{children:new Date(n.bookmarkedAt).toLocaleDateString()}),e.jsx("td",{style:{textAlign:"right"},children:e.jsx("button",{type:"button",className:"secondary small",onClick:()=>Be(n.documentId),children:s("bookmarkRemove")})})]},n.documentId))})]})})]})]}):o==="myDocuments"?e.jsxs("div",{className:"mdocs-settings",children:[e.jsx("div",{className:"mdocs-settings-header",children:e.jsx("h2",{className:"mdocs-settings-title",children:s("myDocuments")})}),e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsx("input",{type:"text",className:"mdocs-settings-search",placeholder:"搜索文章…",value:Y,onChange:n=>Pe(n.target.value)}),Ae?e.jsx("div",{style:{textAlign:"center",padding:"40px 0"},children:s("loading")}):e.jsx(e.Fragment,{children:xe.length===0?e.jsx("div",{style:{textAlign:"center",padding:"40px 0",opacity:.6},children:s(Y?"myDocumentsNoMatch":"myDocumentsEmpty")}):e.jsxs("table",{className:"mdocs-settings-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:s("myDocumentsColTitle")}),e.jsx("th",{children:s("myDocumentsColDomain")}),e.jsx("th",{children:s("myDocumentsColUpdated")}),e.jsx("th",{children:s("myDocumentsColCreated")}),e.jsx("th",{colSpan:2})]})}),e.jsx("tbody",{children:xe.map(n=>e.jsxs("tr",{children:[e.jsx("td",{style:{cursor:"pointer",fontWeight:500},onClick:()=>t.onOpenDocument(n.documentId),children:n.displayName||n.relativePath||"Untitled"}),e.jsx("td",{children:ue.get(n.domainId||"")||n.domainId||"—"}),e.jsx("td",{children:new Date(n.updatedAt).toLocaleDateString()}),e.jsx("td",{children:new Date(n.createdAt).toLocaleDateString()}),e.jsx("td",{style:{textAlign:"right"},children:e.jsx("button",{type:"button",className:"secondary small",onClick:()=>Ve(n.documentId),children:s("docInfoInviteMember")})}),e.jsx("td",{style:{textAlign:"right",paddingLeft:0},children:e.jsx("button",{type:"button",className:"primary small",onClick:()=>t.onOpenDocument(n.documentId),children:s("bookmarkOpen")})})]},n.documentId))})]})})]})]}):o==="domainManagement"?e.jsx(Es,{}):o==="memberTemplates"?e.jsx(Ls,{}):o==="agentConfig"?e.jsx(Bs,{}):e.jsxs("div",{className:"mdocs-settings",children:[e.jsxs("div",{className:"mdocs-settings-header",children:[e.jsx("h2",{className:"mdocs-settings-title",children:s("saveAndPublish")}),e.jsx("button",{type:"button",className:"secondary",onClick:m,children:s("backToDocs")})]}),e.jsxs("div",{className:"mdocs-settings-cards",children:[e.jsx("div",{className:"mdocs-settings-card",children:e.jsxs("label",{className:"mdocs-settings-item",children:[e.jsxs("span",{className:"mdocs-settings-item-info",children:[e.jsx("span",{className:"mdocs-settings-card-title",children:s("autoSave")}),e.jsx("span",{className:"mdocs-settings-item-desc",children:s("autoSaveAlwaysOnDesc")})]}),e.jsx("span",{className:"mdocs-toggle active",role:"switch","aria-checked":"true","aria-disabled":"true",style:{opacity:.6,cursor:"not-allowed"},children:e.jsx("span",{className:"mdocs-toggle-knob"})})]})}),e.jsx("div",{className:"mdocs-settings-card",children:e.jsxs("label",{className:"mdocs-settings-item",children:[e.jsxs("span",{className:"mdocs-settings-item-info",children:[e.jsx("span",{className:"mdocs-settings-card-title",children:s("autoPublish")}),e.jsx("span",{className:"mdocs-settings-item-desc",children:s("autoPublishDesc")})]}),e.jsx("button",{type:"button",className:"mdocs-toggle"+(k?" active":""),role:"switch","aria-checked":k,onClick:()=>N(n=>!n),children:e.jsx("span",{className:"mdocs-toggle-knob"})})]})}),T>0?e.jsxs("button",{className:"mdocs-settings-card mdocs-settings-draft-link",onClick:()=>g(!0),children:[e.jsxs("span",{className:"mdocs-settings-draft-link-text",children:["📄 ",s("viewDrafts")," (",T,")"]}),e.jsx("span",{className:"mdocs-settings-draft-arrow","aria-hidden":"true",children:"›"})]}):e.jsx("div",{className:"mdocs-settings-card mdocs-settings-draft-empty",children:e.jsx("span",{className:"mdocs-settings-item-desc",children:s("noDrafts")})})]})]}),v&&e.jsx(Ps,{onPublish:E,onClose:()=>g(!1),onCountChange:W,onRecover:t.onRecoverDraft})]}),f&&e.jsx(Ns,{title:s("cliToken"),message:s("cliTokenResetConfirm"),confirmLabel:s("cliTokenReset"),cancelLabel:s("cancel"),busy:F,onConfirm:()=>{A(!1),ge()},onCancel:()=>A(!1)}),e.jsx(we,{open:Le,title:s("docInfoInviteMember"),initialSelectedIds:[...ae.keys()],initialPermissions:ae,templates:[],showPermissionSelect:!0,permissionOptions:[{value:"read",label:s("invitePermissionRead")},{value:"edit",label:s("invitePermissionEdit")}],onClose:()=>se(!1),onConfirm:n=>{Oe(n)}})]})}export{$s as SettingsPage};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{c as o}from"./index-C46BU1-j.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 t=[["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"}]],a=o("history",t);export{a as H};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.mdocs-app-root{display:flex;flex-direction:column;height:100vh;min-height:0}.mdocs-shell{display:grid;grid-template-columns:260px minmax(0,1fr);grid-template-rows:1fr;flex:1;min-height:0}.mdocs-loading{height:100%;display:flex;align-items:center;justify-content:center}.mdocs-layout{display:flex;flex:1;min-height:0;overflow:hidden;grid-column:1 / -1}.mdocs-sidebar{background:var(--mdocs-surface);border-right:1px solid var(--mdocs-border);display:flex;flex-direction:column;min-width:0;overflow:hidden;width:240px;flex-shrink:0;transition:width .2s ease-out}.mdocs-sidebar-collapsed{width:64px}.mdocs-sidebar-collapsed .mdocs-brand span,.mdocs-sidebar-collapsed .mdocs-sidebar-actions,.mdocs-sidebar-collapsed .mdocs-sidebar-list,.mdocs-sidebar-collapsed .mdocs-visitor-footer-name{opacity:0;pointer-events:none}.mdocs-sidebar-collapsed .mdocs-sidebar-actions{display:none}.mdocs-sidebar-header{padding:8px 16px;border-bottom:1px solid var(--mdocs-border);flex-shrink:0;display:flex;align-items:center;justify-content:space-between}.mdocs-sidebar-collapsed .mdocs-sidebar-header{padding:8px 12px;justify-content:center}.mdocs-sidebar-collapsed .mdocs-brand-logo{margin-right:0}.mdocs-sidebar-collapsed .mdocs-brand span{display:none}.mdocs-brand{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:24px;letter-spacing:.2px}.mdocs-brand-logo{width:24px;height:24px;display:block;flex-shrink:0}.mdocs-visitor-line{margin-top:2px;font-size:12px}.mdocs-lang-switch{margin-top:6px;font-size:12px;display:flex;align-items:center;gap:4px}.mdocs-lang-switch button{background:none;border:none;padding:0;font-size:12px;color:var(--mdocs-text-muted);cursor:pointer}.mdocs-lang-switch button.active{color:var(--mdocs-text);font-weight:600}.mdocs-lang-switch span{color:var(--mdocs-border)}.mdocs-sidebar-actions{padding:4px 16px 4px 24px;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px;flex-shrink:0;border-bottom:1px solid var(--mdocs-border)}.mdocs-sidebar-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;cursor:pointer;opacity:.7;transition:opacity .15s,color .15s;border-radius:0;padding:0}.mdocs-sidebar-icon:hover{opacity:1;color:var(--mdocs-accent)}.mdocs-sidebar-list{flex:1;overflow-y:auto;padding:4px 8px 16px;min-height:0}.mdocs-doc-item{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:var(--mdocs-radius);background:transparent;border:1px solid transparent;color:var(--mdocs-text);margin-bottom:2px}.mdocs-doc-item:hover{background:var(--mdocs-bg)}.mdocs-doc-item.active{background:var(--mdocs-accent-soft);border-color:var(--mdocs-accent-secondary);border-left:3px solid var(--mdocs-accent)}.mdocs-doc-item-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mdocs-doc-item-path{font-size:12px;color:var(--mdocs-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mdocs-tree-row{display:grid;grid-template-columns:12px 22px minmax(0,1fr);column-gap:6px;align-items:center;width:100%;text-align:left;padding:4px 10px;border-radius:6px;background:transparent;border:1px solid transparent;color:var(--mdocs-text);margin-bottom:1px;font-size:13px;box-sizing:border-box}.mdocs-tree-row:hover{background:var(--mdocs-bg)}.mdocs-tree-row.active{background:var(--mdocs-accent-soft);border-color:var(--mdocs-accent-secondary);border-left:3px solid var(--mdocs-accent)}.mdocs-tree-select-target{background:var(--mdocs-bg);border-color:var(--mdocs-border)}.mdocs-tree-dragging{color:var(--mdocs-text-muted)}.mdocs-tree-row.active.mdocs-tree-dragging{color:var(--mdocs-text)}.mdocs-tree-drop-target{background:var(--mdocs-accent-soft);border-color:var(--mdocs-accent);outline:1px dashed var(--mdocs-accent)}.mdocs-sidebar-list.mdocs-tree-drop-root{outline:1px dashed var(--mdocs-accent);outline-offset:-2px;background:color-mix(in srgb,var(--mdocs-accent-soft) 40%,transparent)}.mdocs-tree-caret{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--mdocs-text-muted);font-size:10px;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--mdocs-radius-sm);transition:background .15s ease}.mdocs-tree-caret:hover{background:var(--mdocs-bg)}.mdocs-tree-caret-spacer{width:12px}.mdocs-tree-icon{justify-self:center;font-size:10px;color:var(--mdocs-text-muted);width:18px;text-align:center;padding:1px 3px;border-radius:var(--mdocs-radius-sm);background:var(--mdocs-bg)}.mdocs-tree-icon-dir{background:transparent;padding:0;justify-self:center;display:flex;align-items:center;justify-content:center}.mdocs-tree-icon-dir svg{display:block}.mdocs-sidebar-footer{padding:10px 16px;border-top:1px solid var(--mdocs-border);flex-shrink:0;display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.mdocs-sidebar-footer:hover{background:var(--mdocs-bg)}.mdocs-settings-sidebar-footer{padding:10px 16px;border-top:1px solid var(--mdocs-border);flex-shrink:0;font-size:13px;color:var(--mdocs-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.mdocs-settings-sidebar-footer:hover{background:var(--mdocs-bg);color:var(--mdocs-text)}.mdocs-agent-fab-wrap{position:fixed;z-index:200;width:36px;height:36px}.mdocs-agent-fab-wrap.dragging{z-index:220}.mdocs-agent-fab{width:36px;height:36px;border-radius:50%;background:var(--mdocs-surface, #fff);border:1px solid var(--mdocs-border, #e5e5e5);box-shadow:0 2px 8px #0000001f;display:flex;align-items:center;justify-content:center;cursor:grab;padding:0;touch-action:none;-webkit-user-select:none;user-select:none}.mdocs-agent-fab.dragging{cursor:grabbing;border-color:var(--mdocs-accent, #4d6bfe);box-shadow:0 4px 16px #4d6bfe4d}.mdocs-agent-fab:hover,.mdocs-agent-fab.open{border-color:var(--mdocs-accent, #4d6bfe);box-shadow:0 2px 12px #4d6bfe40}.mdocs-agent-fab img{width:20px;height:20px;display:block;pointer-events:none}.mdocs-agent-fab-reset{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);border:1px solid var(--mdocs-border, #e5e5e5);background:var(--mdocs-surface, #fff);color:var(--mdocs-text-muted, #666);font-size:11px;line-height:1;padding:4px 8px;border-radius:999px;cursor:pointer;box-shadow:0 1px 4px #00000014;white-space:nowrap}.mdocs-agent-fab-reset:hover{color:var(--mdocs-text);border-color:var(--mdocs-accent, #4d6bfe)}.mdocs-agent-panel{position:fixed;z-index:201;width:min(480px,calc(100vw - 72px));height:min(680px,calc(100vh - 80px));display:flex;flex-direction:column;background:#fff;border:1px solid #e8eaed;border-radius:14px;box-shadow:0 12px 40px #0f172a29;overflow:hidden}.mdocs-agent-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #eef0f3;background:#fff;flex-shrink:0}.mdocs-agent-panel-title{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:#1f2329;min-width:0}.mdocs-agent-panel-title-logo{width:22px;height:22px;flex-shrink:0}.mdocs-agent-panel-context{position:absolute;right:50px;bottom:10px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;cursor:help;z-index:1;outline:none}.mdocs-agent-panel-context:hover,.mdocs-agent-panel-context:focus-visible{background:#f2f4f7}.mdocs-agent-panel-context-track{stroke:#d0d5dd}.mdocs-agent-panel-context-value{stroke:#3370ff;transition:stroke-dashoffset .25s ease}.mdocs-agent-panel-context-warn .mdocs-agent-panel-context-value{stroke:#d97706}.mdocs-agent-panel-context-danger .mdocs-agent-panel-context-value{stroke:#e11d48}.mdocs-agent-panel-context:after{content:attr(data-tooltip);position:absolute;right:0;bottom:calc(100% + 10px);padding:7px 10px;border-radius:8px;background:#1f2329;color:#fff;font-size:12px;font-weight:500;line-height:1.35;white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .12s ease,transform .12s ease;box-shadow:0 6px 16px #0f172a33}.mdocs-agent-panel-context:hover:after,.mdocs-agent-panel-context:focus-visible:after{opacity:1;transform:translateY(0)}.mdocs-agent-panel-actions{display:inline-flex;align-items:center;gap:4px}.mdocs-agent-panel-icon-btn{width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:#8a919f;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.mdocs-agent-panel-icon-btn:hover,.mdocs-agent-panel-icon-btn.active{background:#f2f4f7;color:#1f2329}.mdocs-agent-panel-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:18px 18px 12px;background:#fafbfc}.mdocs-agent-panel-welcome{flex:1;min-height:0;overflow-y:auto;padding-right:2px}.mdocs-agent-panel-hello{margin:12px 0 10px;font-size:22px;font-weight:600;line-height:1.35;color:#1f2329}.mdocs-agent-panel-desc{margin:0 0 18px;font-size:14px;line-height:1.6;color:#646a73}.mdocs-agent-panel-chips{display:flex;flex-direction:column;gap:10px}.mdocs-agent-panel-chip{display:block;width:100%;text-align:left;padding:12px 14px;border-radius:10px;background:#fff;border:1px solid #e8eaed;font-size:14px;color:#1f2329;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.mdocs-agent-panel-chip:hover:not(:disabled){border-color:#91b4ff;box-shadow:0 1px 4px #4080ff1f}.mdocs-agent-panel-chip:disabled{opacity:.6;cursor:not-allowed}.mdocs-agent-panel-status-warn{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:13px;line-height:1.45}.mdocs-agent-panel-messages{display:flex;flex-direction:column;gap:16px;padding:4px 0 12px}.mdocs-agent-panel-msg{display:flex;align-items:flex-start;gap:10px}.mdocs-agent-panel-msg-user{justify-content:flex-end}.mdocs-agent-panel-msg-assistant{justify-content:flex-start}.mdocs-agent-panel-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;box-sizing:border-box}.mdocs-agent-panel-avatar-ai{background:#f0f5ff;border:1px solid #d6e4ff}.mdocs-agent-panel-avatar-ai img{width:18px;height:18px;display:block}.mdocs-agent-panel-avatar-user{background:#3370ff;color:#fff;font-size:13px;font-weight:600;line-height:1}.mdocs-agent-panel-msg-bubble{max-width:calc(100% - 42px);font-size:14px;line-height:1.65;word-break:break-word;min-width:0}.mdocs-agent-panel-msg-user .mdocs-agent-panel-msg-bubble{padding:10px 14px;border-radius:12px 12px 4px;background:#e8f3ff;color:#1f2329;white-space:pre-wrap}.mdocs-agent-panel-msg-assistant .mdocs-agent-panel-msg-bubble{padding:0;background:transparent;border:none;color:#1f2329}.mdocs-agent-panel-thinking{display:inline-flex;align-items:center;gap:5px;padding:6px 2px;min-height:24px}.mdocs-agent-panel-thinking span{width:6px;height:6px;border-radius:50%;background:#8a919f;animation:mdocs-agent-dot-bounce 1.2s ease-in-out infinite}.mdocs-agent-panel-thinking span:nth-child(2){animation-delay:.18s}.mdocs-agent-panel-thinking span:nth-child(3){animation-delay:.36s}@keyframes mdocs-agent-dot-bounce{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-5px);opacity:1}}.mdocs-agent-panel-md{color:#1f2329}.mdocs-agent-panel-timeline{display:flex;flex-direction:column;gap:10px;min-width:0}.mdocs-agent-panel-block{min-width:0}.mdocs-agent-panel-md>:first-child{margin-top:0}.mdocs-agent-panel-md>:last-child{margin-bottom:0}.mdocs-agent-panel-md h1,.mdocs-agent-panel-md h2,.mdocs-agent-panel-md h3,.mdocs-agent-panel-md h4{margin:.9em 0 .4em;font-weight:600;line-height:1.35;color:#1f2329}.mdocs-agent-panel-md h1{font-size:1.25em}.mdocs-agent-panel-md h2{font-size:1.15em}.mdocs-agent-panel-md h3,.mdocs-agent-panel-md h4{font-size:1.05em}.mdocs-agent-panel-md p{margin:.55em 0}.mdocs-agent-panel-md ul,.mdocs-agent-panel-md ol{margin:.45em 0;padding-left:1.35em}.mdocs-agent-panel-md li{margin:.25em 0}.mdocs-agent-panel-md li>p{margin:.2em 0}.mdocs-agent-panel-md strong{font-weight:600}.mdocs-agent-panel-md a{color:#3370ff;text-decoration:none}.mdocs-agent-panel-md a:hover{text-decoration:underline}.mdocs-agent-panel-md code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em;padding:.1em .35em;border-radius:4px;background:#f2f4f7;color:#c41d7f}.mdocs-agent-panel-md pre{margin:0;padding:10px 12px;border-radius:8px;background:#f5f6f8;overflow-x:auto}.mdocs-agent-panel-md-pre-wrap{position:relative;margin:.65em 0}.mdocs-agent-panel-md-pre-wrap pre{padding-right:36px}.mdocs-agent-panel-md-copy{position:absolute;top:6px;right:6px;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid #e8eaed;border-radius:6px;background:#fff;color:#646a73;cursor:pointer}.mdocs-agent-panel-md-copy:hover{color:#1f2329;background:#f2f4f7}.mdocs-agent-panel-md pre code{padding:0;background:transparent;color:#1f2329;font-size:12.5px;line-height:1.5}.mdocs-agent-panel-md blockquote{margin:.55em 0;padding:.2em 0 .2em 12px;border-left:3px solid #d0d5dd;color:#646a73}.mdocs-agent-panel-md hr{margin:.9em 0;border:none;border-top:1px solid #e8eaed}.mdocs-agent-panel-md table{width:100%;border-collapse:collapse;margin:.65em 0;font-size:13px}.mdocs-agent-panel-md th,.mdocs-agent-panel-md td{border:1px solid #e8eaed;padding:6px 8px;text-align:left}.mdocs-agent-panel-md th{background:#f5f6f8;font-weight:600}.mdocs-agent-panel-sources{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#f2f4f7;font-size:13px}.mdocs-agent-panel-sources summary{cursor:pointer;font-weight:500;color:#646a73;list-style:none}.mdocs-agent-panel-sources summary::-webkit-details-marker{display:none}.mdocs-agent-panel-sources ol{margin:8px 0 0;padding-left:1.25em}.mdocs-agent-panel-sources li{margin:4px 0}.mdocs-agent-panel-sources a{color:#3370ff;text-decoration:none}.mdocs-agent-panel-sources a:hover{text-decoration:underline}.mdocs-agent-panel-tool-fold{margin:0;padding:8px 12px;border:1px solid #e8eaed;border-radius:10px;background:#f8f9fb;font-size:13px}.mdocs-agent-panel-tool-fold>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:500;color:#4e5969}.mdocs-agent-panel-tool-fold>summary::-webkit-details-marker{display:none}.mdocs-agent-panel-tool-fold>summary:before{content:"";width:0;height:0;border-left:5px solid #8a919f;border-top:4px solid transparent;border-bottom:4px solid transparent;flex-shrink:0}.mdocs-agent-panel-tool-fold[open]>summary:before{transform:rotate(90deg)}.mdocs-agent-panel-tool-fold-hint{margin-left:auto;font-size:12px;font-weight:400;color:#8a919f}.mdocs-agent-panel-sources-list{margin:8px 0 0;padding-left:1.25em}.mdocs-agent-panel-sources-list a{color:#3370ff;text-decoration:none}.mdocs-agent-panel-sources-list a:hover{text-decoration:underline}.mdocs-agent-panel-doc-table-wrap{margin:8px 0 0;padding:0;border:none;border-radius:0;background:transparent}.mdocs-agent-panel-doc-table-empty{margin:0;font-size:13px;color:#8a919f}.mdocs-agent-panel-doc-card-body{margin-top:8px}.mdocs-agent-panel-doc-card-path{margin:0;font-size:12px;color:#8a919f;word-break:break-all}.mdocs-agent-panel-doc-card-preview{margin:8px 0 0;font-size:13px;line-height:1.55;color:#4e5969;white-space:pre-wrap;word-break:break-word}.mdocs-agent-panel-doc-card-preview.muted{color:#8a919f}.mdocs-agent-panel-tool-notice{margin:0;padding:8px 12px;border-radius:8px;background:#f5f6f8;font-size:13px;color:#4e5969}.mdocs-agent-choice-card{padding:12px;border:1px solid #e8eaed;border-radius:10px;background:#fafbfc}.mdocs-agent-choice-card-done{opacity:.85}.mdocs-agent-choice-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.mdocs-agent-choice-title{margin:0;font-size:14px;font-weight:600;color:#1f2329}.mdocs-agent-choice-timer{flex-shrink:0;font-size:12px;font-variant-numeric:tabular-nums;color:#8a919f}.mdocs-agent-choice-progress{height:3px;border-radius:2px;background:#e8eaed;overflow:hidden;margin-bottom:10px}.mdocs-agent-choice-progress-bar{height:100%;width:100%;transform-origin:left center;background:#3370ff;transition:transform .1s linear}.mdocs-agent-choice-options{display:flex;flex-direction:column;gap:8px}.mdocs-agent-choice-option{text-align:left;border:1px solid #d0d3d9;background:#fff;border-radius:8px;padding:8px 12px;font:inherit;font-size:13px;color:#1f2329;cursor:pointer}.mdocs-agent-choice-option:hover:not(:disabled){border-color:#3370ff;color:#3370ff}.mdocs-agent-choice-option:disabled{cursor:not-allowed;opacity:.6}.mdocs-agent-choice-custom{display:flex;gap:8px;margin-top:10px}.mdocs-agent-choice-custom input{flex:1;min-width:0;border:1px solid #e8eaed;border-radius:8px;padding:8px 10px;font:inherit;font-size:13px}.mdocs-agent-choice-custom button{flex-shrink:0;border:none;border-radius:8px;padding:8px 12px;background:#3370ff;color:#fff;font:inherit;font-size:13px;cursor:pointer}.mdocs-agent-choice-custom button:disabled{opacity:.5;cursor:not-allowed}.mdocs-agent-choice-result{margin:0 0 8px;font-size:13px;color:#4e5969}.mdocs-agent-choice-result.muted{color:#8a919f}.mdocs-agent-panel-doc-table-title{margin:0 0 8px;font-size:13px;font-weight:600;color:#1f2329}.mdocs-agent-panel-doc-table{width:100%;border-collapse:collapse;font-size:13px}.mdocs-agent-panel-doc-table th,.mdocs-agent-panel-doc-table td{border:1px solid #e8eaed;padding:6px 8px;text-align:left;vertical-align:top}.mdocs-agent-panel-doc-table th{background:#f5f6f8;font-weight:600}.mdocs-agent-panel-doc-link{border:none;background:transparent;padding:0;color:#3370ff;text-decoration:none;font:inherit;cursor:pointer}.mdocs-agent-panel-doc-link:hover{text-decoration:underline}.mdocs-agent-panel-input-wrap{position:relative;margin-top:8px;flex-shrink:0;background:#fff;border:1px solid #e8eaed;border-radius:14px;box-shadow:0 1px 2px #0f172a0a}.mdocs-agent-panel-input{width:100%;resize:none;border:none;border-radius:14px;padding:14px 92px 14px 14px;font:inherit;font-size:14px;line-height:1.5;background:transparent;color:#1f2329;box-sizing:border-box;outline:none;min-height:72px}.mdocs-agent-panel-input:disabled{opacity:.7;cursor:not-allowed}.mdocs-agent-panel-send{position:absolute;right:10px;bottom:10px;width:32px;height:32px;border:none;border-radius:10px;background:#3370ff;color:#fff;cursor:pointer;font-size:15px;line-height:1}.mdocs-agent-panel-send:disabled{background:#c3d4ff;cursor:not-allowed}.mdocs-agent-panel-footnote{margin:10px 0 0;font-size:12px;color:#8a919f;text-align:center}.mdocs-agent-panel-history{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px 14px 16px;gap:10px;background:#fafbfc;overflow:hidden}.mdocs-agent-panel-history-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;font-size:14px;font-weight:600;color:#1f2329}.mdocs-agent-panel-history-back{border:none;background:transparent;color:#3370ff;font-size:13px;cursor:pointer;padding:4px 0}.mdocs-agent-panel-history-back:hover{text-decoration:underline}.mdocs-agent-panel-history-empty{margin:24px 0 0;font-size:15px;color:#1f2329;text-align:center}.mdocs-agent-panel-history-hint{margin:0;font-size:13px;color:#8a919f;text-align:center}.mdocs-agent-panel-history-list{list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.mdocs-agent-panel-history-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;padding:10px 12px;border:1px solid #e8eaed;border-radius:10px;background:#fff;cursor:pointer;color:#1f2329}.mdocs-agent-panel-history-item:hover:not(:disabled){border-color:#91b4ff}.mdocs-agent-panel-history-item.active{border-color:#3370ff;background:#f0f5ff}.mdocs-agent-panel-history-item:disabled{opacity:.6;cursor:not-allowed}.mdocs-agent-panel-history-title{flex:1;min-width:0;font-size:13px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mdocs-agent-panel-history-time{flex-shrink:0;font-size:12px;color:#8a919f}.mdocs-visitor-avatar{width:26px;height:26px;border-radius:50%;background:var(--mdocs-accent);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mdocs-visitor-footer-name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;color:var(--mdocs-text)}.mdocs-config-tree{flex:1;padding:8px;overflow-y:auto}.mdocs-config-item{padding:8px 12px;border-radius:6px;font-size:13px;color:var(--mdocs-text);cursor:pointer;transition:background .12s ease}.mdocs-config-item:hover:not(.active){background:var(--mdocs-bg)}.mdocs-config-item.active{background:var(--mdocs-accent-soft);font-weight:500;cursor:default}.mdocs-settings{flex:1;min-height:0;overflow-y:auto;padding:32px 40px;background:#f9fafb;-webkit-overflow-scrolling:touch}.mdocs-settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.mdocs-settings-title{margin:0;font-size:20px;font-weight:600}.mdocs-agent-config-title{display:inline-flex;align-items:center;gap:10px}.mdocs-agent-config-logo{width:28px;height:28px;display:block}.mdocs-agent-config-field .mdocs-settings-card-title{display:block;margin-bottom:6px}.mdocs-agent-config-select{width:100%;max-width:320px}.mdocs-agent-config-select .mdocs-mini-select,.mdocs-agent-config-select .mdocs-mini-select-trigger{width:100%}.mdocs-agent-config-select .mdocs-mini-select-trigger{justify-content:space-between;padding:6px 12px;font-size:inherit;min-width:0}.mdocs-agent-config-readonly{margin:6px 0 0;font-size:14px;color:var(--mdocs-text, #111827);word-break:break-all}.mdocs-agent-config-apikey{display:flex;align-items:center;gap:8px;margin-top:6px}.mdocs-agent-config-apikey input{flex:1;min-width:0}.mdocs-agent-config-eye{flex-shrink:0;width:36px;height:36px;padding:0;border:1px solid var(--mdocs-border, #e5e5e5);border-radius:var(--mdocs-radius, 6px);background:var(--mdocs-surface, #fff);color:var(--mdocs-text-muted, #6b7280);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.mdocs-agent-config-eye:hover{background:var(--mdocs-bg-hover, #f5f5f5)}.mdocs-agent-config-actions{display:flex;gap:8px;align-items:center}.mdocs-settings-cards{display:flex;flex-direction:column;gap:16px}.mdocs-settings-card{background:#fff;border-radius:12px;padding:20px 24px;box-shadow:0 1px 3px #00000014}.mdocs-settings-secret-result{margin-top:16px;padding:14px 16px;border-radius:10px;border:1px solid transparent}.mdocs-settings-secret-result--ok{border-color:var(--mdocs-success, #4caf50);background:var(--mdocs-success-soft, #f1f8f1)}.mdocs-settings-secret-result--warn{border-color:#e67e22;background:#fef9f0}.mdocs-settings-secret-result-head{display:flex;flex-direction:column;gap:4px}.mdocs-settings-secret-value{margin-top:8px;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem;color:var(--mdocs-text, #1f2937)}.mdocs-settings-secret-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1.25rem;letter-spacing:.1em;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px 14px;margin-top:8px;-webkit-user-select:all;user-select:all}.mdocs-settings-secret-result-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.mdocs-settings-copy-feedback{margin-top:10px;font-size:.875rem}.mdocs-settings-copy-feedback--ok{color:var(--mdocs-success-text, #2e7d32)}.mdocs-settings-copy-feedback--err{color:var(--mdocs-error-text, #c62828)}.mdocs-settings-search{width:100%;padding:10px 14px;border:1px solid var(--mdocs-border);border-radius:8px;font-size:14px;color:var(--mdocs-text);background:#fff;margin-bottom:16px;outline:none;transition:border-color .15s}.mdocs-settings-search:focus{border-color:var(--mdocs-primary)}.mdocs-settings-search::placeholder{color:var(--mdocs-text-muted)}.mdocs-settings-table{width:100%;border-collapse:collapse;font-size:14px}.mdocs-settings-table thead th{text-align:left;padding:12px 8px;font-weight:600;color:var(--mdocs-text-muted);border-bottom:1px solid var(--mdocs-border);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.mdocs-settings-table thead th:last-child{text-align:right}.mdocs-settings-table tbody td{padding:12px 8px;border-bottom:1px solid var(--mdocs-border-light);color:var(--mdocs-text)}.mdocs-settings-table tbody tr:last-child td{border-bottom:none}.mdocs-settings-table tbody tr:hover td{background:var(--mdocs-bg-hover)}button.small{padding:6px 12px;font-size:12px}.mdocs-settings-card-title{font-weight:600;font-size:14px;color:var(--mdocs-text);display:inline-flex;align-items:center;gap:8px}.mdocs-settings-hero{background:#f0fdf4;border-left:4px solid #22c55e;box-shadow:none}.mdocs-settings-hero-icon{font-size:16px;flex-shrink:0}.mdocs-settings-badge{display:inline-block;font-size:11px;font-weight:500;color:#16a34a;background:#dcfce7;padding:1px 8px;border-radius:9999px;line-height:1.6}.mdocs-settings-item{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;cursor:pointer}.mdocs-settings-item-info{display:flex;flex-direction:column;gap:6px;min-width:0}.mdocs-settings-item-desc{font-size:13px;color:#6b7280;line-height:1.5}.mdocs-settings-lang{display:flex;align-items:center;gap:4px;font-size:13px}.mdocs-settings-lang button{background:none;border:1px solid var(--mdocs-border);padding:6px 16px;font-size:13px;color:var(--mdocs-text-muted);cursor:pointer;border-radius:6px}.mdocs-settings-lang button.active{color:var(--mdocs-text);font-weight:600;border-color:var(--mdocs-accent);background:var(--mdocs-accent-soft)}.mdocs-settings-lang span{color:var(--mdocs-border)}.mdocs-settings-draft-link{display:flex;align-items:center;justify-content:space-between;width:100%;border:none;cursor:pointer;text-align:left;font-size:14px;color:var(--mdocs-text);background:#fff;border-radius:12px;padding:20px 24px;box-shadow:0 1px 3px #00000014;transition:box-shadow .15s ease}.mdocs-settings-draft-link:hover{box-shadow:0 2px 8px #0000001f}.mdocs-settings-draft-link-text{font-weight:500}.mdocs-settings-draft-arrow{font-size:20px;color:var(--mdocs-text-muted);font-weight:300}.mdocs-settings-draft-empty{color:#9ca3af;font-size:13px;text-align:center;padding:16px 24px}.mdocs-tree-folder-row{box-sizing:border-box;cursor:pointer}.mdocs-tree-folder-select{min-width:0;margin:0;padding:0;text-align:left}.mdocs-tree-folder-row:hover .mdocs-tree-label{text-decoration:underline}.mdocs-tree-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.mdocs-context-menu{position:fixed;min-width:200px;padding:4px;z-index:50;display:flex;flex-direction:column}.mdocs-context-item{text-align:left;border:none;background:transparent;padding:6px 10px;border-radius:6px;font-size:13px;color:var(--mdocs-text)}.mdocs-context-item:hover{background:var(--mdocs-bg)}.mdocs-context-item.danger{color:var(--mdocs-error)}.mdocs-context-item.danger:hover{background:var(--mdocs-error-soft)}.mdocs-document-editor-root{box-sizing:border-box;padding-left:50px;padding-right:50px;padding-top:20px;height:auto!important;min-height:100%}.mdocs-outline-siderail>div>div:first-child{border-left:1px solid var(--mdocs-border)!important;margin-top:24px!important;margin-bottom:24px!important;padding-left:16px!important;padding-right:16px!important;padding-top:20px!important}.mdocs-main{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;overflow:hidden;position:relative}.mdocs-empty{flex:1;display:flex;align-items:center;justify-content:center}.mdocs-editor{display:flex;flex-direction:column;flex:1;min-height:0}.mdocs-editor-toolbar{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid var(--mdocs-border);background:var(--mdocs-surface);flex-shrink:0}.mdocs-editor-title-input{width:200px;max-width:32vw;flex:0 0 auto;min-width:0;box-sizing:border-box}.mdocs-editor-permission-select{max-width:160px;flex:0 1 auto;min-width:100px;height:35px;padding:0 8px;border:1px solid var(--mdocs-border);border-radius:6px;background:var(--mdocs-surface);font-size:13px;color:var(--mdocs-text)}.mdocs-editor-toolbar-spacer{flex:1;min-width:4px}.mdocs-editor-toolbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.mdocs-editor-content-area :focus-visible{outline:none}.mdocs-editor-content-area{min-width:0!important}.mdocs-editor-content-area .editor_table_scrollable_wrapper{min-width:0!important;max-width:100%!important}.mdocs-editor-content-area img{max-width:100%!important}.mdocs-editor-scroll-host{box-sizing:border-box;flex:1;min-width:0;min-height:0;overflow:auto;padding:16px 16px 0}.mdocs-editor-scroll-host:after{content:"";display:block;height:80px}.mdocs-editor-body{flex:1;display:grid;grid-template-columns:1fr;min-height:0}.mdocs-editor h1{font-size:24px;font-weight:700;margin-top:0;margin-bottom:.5em}.mdocs-editor h2{font-size:20px;font-weight:600;margin-top:1.5em;margin-bottom:.5em}.mdocs-editor h3{font-size:18px;font-weight:500;margin-top:1.2em;margin-bottom:.5em}.mdocs-editor p,.mdocs-editor li,.mdocs-editor blockquote{line-height:1.6;margin-bottom:1em}.mdocs-editor ol,.mdocs-editor ul{padding-left:24px;margin-bottom:1em}.mdocs-editor li{margin-bottom:.5em}strong.label{color:var(--mdocs-accent);font-weight:600;margin-right:8px}.mdocs-save-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;transition:background .3s ease}.mdocs-save-dot.saved{background:var(--mdocs-success)}.mdocs-save-dot.unsaved{background:var(--mdocs-warning)}.mdocs-save-dot.saving{background:var(--mdocs-warning);animation:save-dot-pulse 1s infinite}@keyframes save-dot-pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.mdocs-save-indicator{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--mdocs-text-muted)}.mdocs-settings-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0;cursor:pointer}.mdocs-toggle{width:40px;height:22px;border-radius:11px;background:var(--mdocs-border);border:none;padding:2px;cursor:pointer;transition:background .2s ease;flex-shrink:0;position:relative}.mdocs-toggle.active{background:var(--mdocs-accent)}.mdocs-toggle-knob{display:block;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s ease;box-shadow:var(--mdocs-shadow)}.mdocs-toggle.active .mdocs-toggle-knob{transform:translate(18px)}.mdocs-conflict-notice{position:fixed;bottom:20px;right:20px;max-width:360px;padding:12px 16px;background:var(--mdocs-warning-soft);border:1px solid var(--mdocs-warning);border-radius:var(--mdocs-radius-lg);box-shadow:var(--mdocs-shadow-md);z-index:30;font-size:13px;color:var(--mdocs-text)}.mdocs-conflict-notice-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.mdocs-conflict-notice p{margin:0;font-size:12px;color:var(--mdocs-text-muted);line-height:1.5}.mdocs-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:30;animation:backdrop-in .2s ease}.mdocs-drawer{position:fixed;top:0;right:0;bottom:0;width:440px;max-width:100vw;background:#fff;z-index:31;display:flex;flex-direction:column;box-shadow:-4px 0 16px #0000001a;animation:drawer-slide-in .25s ease}@keyframes drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.mdocs-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 16px;border-bottom:1px solid var(--mdocs-border);flex-shrink:0}.mdocs-drawer-header-text{display:flex;flex-direction:column;gap:4px;min-width:0}.mdocs-drawer-title{margin:0;font-size:18px;font-weight:600;display:inline-flex;align-items:center;gap:8px}.mdocs-drawer-count-badge{display:inline-block;font-size:11px;font-weight:500;color:#16a34a;background:#dcfce7;padding:1px 8px;border-radius:9999px;line-height:1.6}.mdocs-drawer-subtitle{font-size:13px;color:var(--mdocs-text-muted)}.mdocs-drawer-close-btn{border:none;background:transparent;font-size:22px;color:var(--mdocs-text-muted);cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0}.mdocs-drawer-close-btn:hover{color:var(--mdocs-text)}.mdocs-drawer-body{flex:1;overflow-y:auto;min-height:0}.mdocs-drawer-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 24px;text-align:center}.mdocs-drawer-empty-icon{width:40px;height:40px;border-radius:50%;background:#dcfce7;color:#16a34a;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600}.mdocs-drawer-empty-text{margin:0;font-size:14px;color:var(--mdocs-text-muted)}.mdocs-drawer-items{display:flex;flex-direction:column}.mdocs-drawer-item{display:flex;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid var(--mdocs-border)}.mdocs-drawer-item-icon{font-size:18px;flex-shrink:0;width:24px;text-align:center}.mdocs-drawer-item-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.mdocs-drawer-item-name{font-weight:500;font-size:14px;color:var(--mdocs-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mdocs-drawer-item-meta{font-size:12px;color:var(--mdocs-text-muted)}.mdocs-drawer-item-error{font-size:12px;color:var(--mdocs-danger)}.mdocs-drawer-item-failed{background:var(--mdocs-danger-bg, rgba(220, 38, 38, .04))}.mdocs-drawer-item-actions{display:flex;gap:6px;flex-shrink:0}.mdocs-btn-ghost{border:none;background:transparent;padding:4px 10px;font-size:13px;cursor:pointer;border-radius:6px;font-weight:500;transition:background .12s ease}.mdocs-btn-ghost:disabled{opacity:.5;cursor:not-allowed}.mdocs-btn-ghost-primary{color:var(--mdocs-accent)}.mdocs-btn-ghost-primary:hover:not(:disabled){background:var(--mdocs-accent-soft)}.mdocs-btn-ghost-danger{color:var(--mdocs-error)}.mdocs-btn-ghost-danger:hover:not(:disabled){background:var(--mdocs-error-soft)}.mdocs-drawer-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--mdocs-border);flex-shrink:0}.mdocs-drawer-toast{position:absolute;bottom:80px;left:24px;right:24px;padding:10px 16px;border-radius:var(--mdocs-radius);font-size:13px;z-index:1;animation:toast-in .3s ease}.mdocs-drawer-toast--success{background:var(--mdocs-success-soft);color:var(--mdocs-success-text)}.mdocs-drawer-toast--error{background:var(--mdocs-error-soft);color:var(--mdocs-error-text)}.mdocs-toast{position:absolute;right:20px;bottom:20px;padding:10px 14px;background:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:10px;font-size:12px;z-index:20;animation:toast-in .3s ease;box-shadow:0 4px 12px #00000014}.mdocs-toast.success{background:var(--mdocs-success-soft);color:var(--mdocs-success-text)}.mdocs-toast.warning{background:var(--mdocs-warning-soft);color:var(--mdocs-warning-text)}.mdocs-toast.error{background:var(--mdocs-error-soft);color:var(--mdocs-error-text)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.mdocs-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:24px;z-index:40;animation:backdrop-in .2s ease}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.mdocs-dialog{width:min(420px,100%);padding:24px;animation:dialog-in .3s ease}@keyframes dialog-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.mdocs-dialog h1{margin:0 0 4px;font-size:18px;font-weight:600}.mdocs-dialog p{margin:0 0 16px;color:var(--mdocs-text-muted);font-size:13px}.mdocs-dialog form,.mdocs-dialog-form{display:flex;flex-direction:column;gap:12px}.mdocs-dialog-label{display:flex;flex-direction:column;gap:6px;font-size:13px}.mdocs-dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.mdocs-dialog-error{color:var(--mdocs-error);font-size:12px}.mdocs-message-dialog{width:min(360px,92vw);padding:20px 24px 16px}.mdocs-message-dialog-title{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--mdocs-text)}.mdocs-message-dialog-body{margin:0 0 16px;color:var(--mdocs-text-muted);font-size:14px;line-height:1.5;word-break:break-word}.mdocs-message-dialog-actions{display:flex;justify-content:flex-end}.mdocs-notice{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:10;max-width:560px;padding:12px 16px;display:flex;align-items:center;gap:10px}.mdocs-notice code{background:var(--mdocs-bg);padding:2px 6px;border-radius:6px;font-size:12px}.mdocs-shell-single{grid-template-columns:1fr}.mdocs-welcome{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px}.mdocs-welcome h1{margin:0;font-size:28px;font-weight:600;letter-spacing:.2px}.mdocs-welcome-lead{max-width:360px;text-align:center;line-height:1.45}.mdocs-welcome-domain{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}.mdocs-welcome-domain-label{font-size:13px}.mdocs-welcome-actions{display:flex;gap:10px;margin-top:8px}.mdocs-welcome-recent{margin-top:24px;display:flex;flex-direction:column;gap:4px;min-width:240px;align-items:stretch}.mdocs-toolbar{position:sticky;top:0;z-index:10;background:var(--mdocs-surface);border-bottom:1px solid var(--mdocs-border)}.mdocs-sidebar-bookmark,.mdocs-sidebar-logout{transition:color .15s ease,background .15s ease}.mdocs-sidebar-bookmark:hover,.mdocs-sidebar-logout:hover{color:var(--mdocs-text, #111827)!important;background:var(--mdocs-bg-hover, #f3f4f6)!important}.mdocs-bookmark-btn{transition:transform .15s ease,opacity .15s ease}.mdocs-bookmark-btn:hover:not(:disabled){transform:scale(1.1)}.mdocs-tooltip{position:relative}.mdocs-tooltip:before{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:6px 10px;border-radius:6px;background:#000000d9;color:#fff;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;z-index:1000;pointer-events:none}.mdocs-tooltip:after{content:"";position:absolute;bottom:calc(100% + 1px);left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:#000000d9;opacity:0;visibility:hidden;z-index:1000;pointer-events:none}.mdocs-tooltip:hover:before,.mdocs-tooltip:hover:after{opacity:1;visibility:visible}.mdocs-tooltip-bottom:before{top:calc(100% + 8px);bottom:auto}.mdocs-tooltip-bottom:after{top:calc(100% + 1px);bottom:auto;border-top-color:transparent;border-bottom-color:#000000d9}.mdocs-bookmark-filterbar{display:flex;gap:8px;margin-bottom:12px}.mdocs-bookmark-filterbar input{flex:1;min-width:0;padding:6px 10px;border:1px solid var(--mdocs-border, #e5e7eb);border-radius:6px;font-size:13px;background:var(--mdocs-bg, #f9fafb);color:var(--mdocs-text, #111827);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.mdocs-bookmark-filterbar input:focus{border-color:var(--mdocs-accent, #3b82f6);box-shadow:0 0 0 2px #3b82f626}.mdocs-bookmark-filterbar select{padding:6px 10px;border:1px solid var(--mdocs-border, #e5e7eb);border-radius:6px;font-size:13px;background:var(--mdocs-bg, #f9fafb);color:var(--mdocs-text, #111827);outline:none;cursor:pointer;max-width:140px}.mdocs-bookmark-filterbar select:focus{border-color:var(--mdocs-accent, #3b82f6);box-shadow:0 0 0 2px #3b82f626}.mdocs-mini-select-trigger{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border:1px solid var(--mdocs-border, #e5e5e5);border-radius:6px;font-size:12px;background:var(--mdocs-surface, #fff);color:var(--mdocs-text, #111827);cursor:pointer;min-width:72px;white-space:nowrap}.mdocs-mini-select-trigger:hover{background:var(--mdocs-bg-hover, #f5f5f5)}.mdocs-mini-select-chevron{transition:transform .15s ease}.mdocs-mini-select-chevron.open{transform:rotate(180deg)}.mdocs-mini-select-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:1000;min-width:100%;padding:4px}.mdocs-mini-select-option{width:100%;text-align:left;padding:6px 10px;border:none;background:transparent;border-radius:4px;font-size:12px;cursor:pointer}.mdocs-mini-select-option:hover{background:var(--mdocs-hover-bg, #f5f5f5)}.mdocs-mini-select-option.active{background:var(--mdocs-accent-bg, #eff6ff);color:var(--mdocs-accent, #3b82f6)}.mdocs-bookmark-table{width:100%;border-collapse:separate;border-spacing:0 2px;table-layout:fixed}.mdocs-bookmark-table th{padding:6px 12px;font-size:.75rem;color:var(--mdocs-text-muted, #999);font-weight:600;text-align:left;border-bottom:1px solid var(--mdocs-border, #eee)}.mdocs-bookmark-table td{padding:10px 12px;font-size:.8125rem;color:var(--mdocs-text-muted, #999);vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mdocs-bookmark-table .mdocs-bookmark-col-title{color:var(--mdocs-text, #111827);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mdocs-bookmark-table .mdocs-bookmark-col-action{width:72px;white-space:nowrap;overflow:visible}.mdocs-bookmark-table tbody tr{border-radius:6px;transition:background .15s ease}.mdocs-bookmark-table tbody tr:hover td{background:var(--mdocs-hover-bg, #f5f5f5)}.mdocs-bookmark-removing{opacity:0;transform:translate(20px);transition:opacity .25s ease,transform .25s ease}.mdocs-recovery-dialog{width:min(520px,92vw)}.mdocs-recovery-tree-label{display:block}.mdocs-recovery-tree{max-height:180px;overflow-y:auto;border:1px solid var(--mdocs-border);border-radius:6px;padding:4px 0;background:var(--mdocs-bg, #fff)}.mdocs-recovery-tree .mdocs-sidebar-list{padding:0}.mdocs-ai-write-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;flex-direction:column;background:#fff;color:#1f2329}.mdocs-ai-write-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:1px solid #e8eaed;flex-shrink:0}.mdocs-ai-write-header-left{display:flex;align-items:center;gap:12px;min-width:0}.mdocs-ai-write-title-logo{width:22px;height:22px;flex-shrink:0}.mdocs-ai-write-title{border:1px solid #e8eaed;border-radius:8px;padding:6px 10px;font:inherit;min-width:160px;max-width:360px}.mdocs-ai-write-header-actions{display:flex;gap:8px}.mdocs-ai-write-primary{background:#3370ff;color:#fff;border:none;border-radius:8px;padding:6px 12px;cursor:pointer}.mdocs-ai-write-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(280px,38%) 1fr}.mdocs-ai-write-chat{display:flex;flex-direction:column;border-right:1px solid #e8eaed;min-width:0;min-height:0}.mdocs-ai-write-chat-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid #e8eaed;flex-shrink:0}.mdocs-ai-write-chat-toolbar-label{font-size:13px;font-weight:600;color:#4e5969}.mdocs-ai-write-chat-toolbar-actions{display:flex;align-items:center;gap:2px}.mdocs-ai-write-history{flex:1;min-height:0;position:relative;border-bottom:none}.mdocs-ai-write-chat-messages{flex:1;overflow:auto;padding:16px}.mdocs-ai-write-hint,.mdocs-ai-write-diff-empty{color:#8a919f;font-size:13px;line-height:1.55}.mdocs-ai-write-timeline{display:flex;flex-direction:column;gap:8px}.mdocs-ai-write-timeline .mdocs-agent-panel-tool-notice{align-self:flex-start}.mdocs-ai-write-msg{margin-bottom:12px;font-size:14px;line-height:1.6}.mdocs-ai-write-msg-user{padding:8px 12px;border-radius:10px;background:#e8f3ff;white-space:pre-wrap}.mdocs-ai-write-error{margin:0 16px 8px;color:#cf1322;font-size:13px}.mdocs-ai-write-input-row{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #e8eaed}.mdocs-ai-write-input-row textarea{flex:1;resize:none;border:1px solid #e8eaed;border-radius:10px;padding:10px 12px;font:inherit}.mdocs-ai-write-md-pane{display:flex;flex-direction:column;min-width:0;min-height:0}.mdocs-ai-write-md-tabs{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid #e8eaed}.mdocs-ai-write-md-tabs button{border:none;background:transparent;padding:6px 10px;border-radius:6px;cursor:pointer;color:#646a73}.mdocs-ai-write-md-tabs button.active{background:#f2f4f7;color:#1f2329;font-weight:600}.mdocs-ai-write-diff{flex:1;overflow:auto;padding:12px 16px}.mdocs-ai-write-diff-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.mdocs-ai-write-diff-count{margin-right:auto;font-size:13px;color:#646a73}.mdocs-ai-write-hunk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.mdocs-ai-write-hunk{border:1px solid #e8eaed;border-radius:10px;overflow:hidden;background:#fafbfc}.mdocs-ai-write-hunk-actions{display:flex;gap:8px;padding:8px 10px;border-bottom:1px solid #e8eaed;background:#fff}.mdocs-ai-write-hunk-accept{background:#f6ffed;border:1px solid #b7eb8f;color:#389e0d;border-radius:6px;padding:4px 10px;cursor:pointer}.mdocs-ai-write-hunk-reject{background:#fff2f0;border:1px solid #ffccc7;color:#cf1322;border-radius:6px;padding:4px 10px;cursor:pointer}.mdocs-ai-write-hunk-pre{margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12.5px;line-height:1.5;overflow-x:auto}.mdocs-ai-write-line.del{background:#fff1f0;color:#a8071a}.mdocs-ai-write-line.add{background:#f6ffed;color:#237804}.mdocs-ai-write-editor{flex:1;width:100%;border:none;resize:none;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.55;box-sizing:border-box}.mdocs-ai-write-inline{position:relative;flex:1;overflow:auto;padding:8px 0 72px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12.5px;line-height:1.55}.mdocs-ai-write-inline-same{margin:0;padding:0 16px 0 12px;white-space:pre-wrap;word-break:break-word}.mdocs-ai-write-inline-hunk{position:relative;margin:0;padding:0 16px 0 12px;border:none;border-radius:0;background:transparent}.mdocs-ai-write-inline-hunk-add .mdocs-ai-write-line.add{background:#2ea0431f}.mdocs-ai-write-inline-hunk-del .mdocs-ai-write-line.del{background:#f851491f}.mdocs-ai-write-inline-hunk-mod .mdocs-ai-write-line.del{background:#f851491a}.mdocs-ai-write-inline-hunk-mod .mdocs-ai-write-line.add{background:#2ea0431a}.mdocs-ai-write-inline-hunk.is-active{outline:1px solid rgba(51,112,255,.35);outline-offset:-1px;background:#3370ff08}.mdocs-ai-write-rail{flex:0 0 3px;align-self:stretch;border-radius:1px;margin-right:8px}.mdocs-ai-write-line.del .mdocs-ai-write-rail{background:#f85149}.mdocs-ai-write-line.add .mdocs-ai-write-rail{background:#2ea043}.mdocs-ai-write-line.ctx .mdocs-ai-write-rail{background:transparent}.mdocs-ai-write-line{display:flex;align-items:stretch;gap:0;min-height:1.55em;margin:0 -16px 0 -12px;padding:0 16px 0 12px}.mdocs-ai-write-code{flex:1;min-width:0;white-space:pre-wrap;word-break:break-word}.mdocs-ai-write-hunk-hover{position:absolute;top:6px;right:12px;z-index:2;display:flex;gap:6px;padding:4px;border-radius:8px;background:#ffffffeb;border:1px solid #e8eaed;box-shadow:0 4px 12px #0f172a14}.mdocs-ai-write-hunk-hover[hidden]{display:none!important}.mdocs-ai-write-hunk-accept{background:#1a7f37;border:none;color:#fff;border-radius:6px;padding:4px 10px;cursor:pointer;font-size:12px}.mdocs-ai-write-hunk-reject{background:#fff;border:1px solid #d0d7de;color:#24292f;border-radius:6px;padding:4px 10px;cursor:pointer;font-size:12px}.mdocs-ai-write-hunk-pre{margin:0;padding:0;font:inherit;background:transparent;overflow:visible}.mdocs-ai-write-float-nav{position:absolute;right:16px;bottom:16px;display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border-radius:10px;background:#fffffff5;border:1px solid #e8eaed;box-shadow:0 8px 24px #0f172a1f;z-index:3;font-size:12px;color:#4e5969}.mdocs-ai-write-float-nav button{border:1px solid #e8eaed;background:#fff;border-radius:6px;padding:4px 8px;cursor:pointer;font:inherit}.mdocs-ai-write-float-nav .mdocs-ai-write-hunk-accept,.mdocs-ai-write-float-nav .mdocs-ai-write-hunk-reject{border:none}.mdocs-ai-write-diff-toolbar button.active{background:#f2f4f7;font-weight:600}.mdocs-lexical-md-bridge{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;opacity:0}.mdocs-conflict-modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#00000073;pointer-events:auto}.mdocs-conflict-modal-panel{width:min(440px,92vw);padding:20px 24px;border-radius:8px;background:#fff5f5;border:2px solid #cf1322;box-shadow:0 8px 24px #cf132240}.mdocs-conflict-modal-title{margin:0 0 8px;font-size:1.1rem;color:#cf1322}.mdocs-conflict-modal-body{margin:0 0 16px;color:#434343;line-height:1.5}.mdocs-conflict-modal-actions{display:flex;gap:8px;justify-content:flex-end}.mdocs-sync-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:4px;border:1px solid var(--mdocs-border, #e5e5e5);background:transparent;cursor:pointer;font-size:13px}.mdocs-sync-btn.behind{border-color:#1677ff;color:#1677ff;box-shadow:0 0 0 2px #1677ff33;animation:mdocs-sync-pulse 1.5s ease-in-out infinite}@keyframes mdocs-sync-pulse{0%,to{box-shadow:0 0 0 2px #1677ff26}50%{box-shadow:0 0 0 4px #1677ff59}}.mdocs-merge-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1500;display:flex;flex-direction:column;background:var(--mdocs-bg, #fff)}.mdocs-merge-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--mdocs-border, #e5e5e5)}.mdocs-merge-toolbar h2{margin:0;font-size:1rem}.mdocs-merge-toolbar-title{display:flex;align-items:center;gap:8px}.mdocs-merge-conflict-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500}.mdocs-merge-conflict-pill.pending{color:#ad6800;background:#fff7e6;border:1px solid #ffd591}.mdocs-merge-conflict-pill.resolved{color:#135200;background:#f6ffed;border:1px solid #b7eb8f}.mdocs-merge-toolbar-actions{display:flex;gap:8px}.mdocs-merge-body{flex:1;display:grid;grid-template-columns:minmax(180px,1fr) minmax(320px,1.4fr) minmax(180px,1fr);gap:1px;min-height:0;background:var(--mdocs-border, #e5e5e5)}.mdocs-merge-side,.mdocs-merge-center{min-height:0;background:var(--mdocs-bg, #fff)}.mdocs-merge-side .mdocs-merge-pane{height:100%}.mdocs-merge-center{display:flex;flex-direction:column;min-width:0;min-height:0}.mdocs-merge-cm-host{flex:1;min-height:0;overflow:hidden}.mdocs-merge-cm-side{height:100%}.mdocs-merge-result-cm{flex:1}.mdocs-merge-pane-header-static{padding:8px 12px;border-bottom:1px solid var(--mdocs-border, #e5e5e5);font-size:13px;font-weight:600}.mdocs-merge-base-warning{font-size:12px;color:#ad6800}.mdocs-merge-inline-conflict{box-sizing:border-box;width:100%;padding:8px;border:1px solid #ffa39e;border-radius:6px;background:#fff2f0}.mdocs-merge-inline-chunks{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:8px}.mdocs-merge-chunk-base .mdocs-merge-chunk-body{background:#f5f5f5;border:1px solid #d9d9d9}.mdocs-merge-inline-actions{display:flex;flex-wrap:wrap;gap:6px}.mdocs-merge-inline-actions button{padding:4px 10px;font-size:12px;border:1px solid var(--mdocs-border, #e5e5e5);border-radius:4px;background:#fff;cursor:pointer}.mdocs-merge-inline-actions button.active{border-color:#1677ff;color:#1677ff;background:#e6f4ff}.mdocs-merge-loading,.mdocs-merge-no-conflicts{margin:16px;color:var(--mdocs-muted, #666);font-size:13px}.mdocs-merge-conflicts-panel{flex:1;min-height:0;display:flex;flex-direction:column;border-bottom:1px solid var(--mdocs-border, #e5e5e5)}.mdocs-merge-conflicts-panel h3,.mdocs-merge-result-header h3{margin:0;font-size:13px;font-weight:600}.mdocs-merge-conflicts-panel h3{padding:8px 12px;border-bottom:1px solid var(--mdocs-border, #e5e5e5)}.mdocs-merge-conflict-list{flex:1;overflow:auto;padding:8px;display:flex;flex-direction:column;gap:8px}.mdocs-merge-conflict-card{border:1px solid var(--mdocs-border, #e5e5e5);border-radius:6px;padding:8px;background:var(--mdocs-bg, #fff)}.mdocs-merge-conflict-card.pending{border-color:#ffa39e;background:#fff2f0}.mdocs-merge-conflict-card.resolved{border-color:#b7eb8f;background:#f6ffed}.mdocs-merge-conflict-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;font-weight:600}.mdocs-merge-conflict-status{font-weight:500;color:var(--mdocs-muted, #666)}.mdocs-merge-conflict-chunks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mdocs-merge-chunk-label{font-size:11px;font-weight:600;margin-bottom:4px;color:var(--mdocs-muted, #666)}.mdocs-merge-chunk-body{margin:0;padding:8px;max-height:120px;overflow:auto;font-family:ui-monospace,monospace;font-size:12px;line-height:1.45;border-radius:4px;white-space:pre-wrap;word-break:break-word}.mdocs-merge-chunk-local .mdocs-merge-chunk-body{background:#e6f4ff;border:1px solid #91caff}.mdocs-merge-chunk-remote .mdocs-merge-chunk-body{background:#fff7e6;border:1px solid #ffd591}.mdocs-merge-manual-input{width:100%;min-height:64px;margin-top:8px;padding:8px;font-family:ui-monospace,monospace;font-size:12px;border:1px solid var(--mdocs-border, #e5e5e5);border-radius:4px;resize:vertical}.mdocs-merge-conflict-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.mdocs-merge-conflict-actions button{padding:4px 10px;font-size:12px;border:1px solid var(--mdocs-border, #e5e5e5);border-radius:4px;background:var(--mdocs-bg, #fff);cursor:pointer}.mdocs-merge-conflict-actions button.active{border-color:#1677ff;color:#1677ff;background:#e6f4ff}.mdocs-merge-result-panel{flex:0 0 38%;min-height:140px;display:flex;flex-direction:column}.mdocs-merge-result-header{display:flex;align-items:baseline;gap:8px;padding:8px 12px;border-bottom:1px solid var(--mdocs-border, #e5e5e5)}.mdocs-merge-result-hint{font-size:11px;color:var(--mdocs-muted, #666)}.mdocs-merge-result-textarea{flex:1;min-height:0}.mdocs-merge-columns{flex:1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;min-height:0;background:var(--mdocs-border, #e5e5e5)}.mdocs-merge-pane{display:flex;flex-direction:column;min-height:0;background:var(--mdocs-bg, #fff)}.mdocs-merge-pane-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--mdocs-border, #e5e5e5);font-size:13px;font-weight:600}.mdocs-merge-pane-tabs button{margin-left:4px;padding:2px 8px;font-size:12px;border:1px solid transparent;border-radius:4px;background:transparent;cursor:pointer}.mdocs-merge-pane-tabs button.active{border-color:var(--mdocs-border, #e5e5e5);background:var(--mdocs-hover-bg, #f5f5f5)}.mdocs-merge-textarea,.mdocs-merge-readonly,.mdocs-merge-preview{flex:1;margin:0;padding:12px;overflow:auto;font-family:ui-monospace,monospace;font-size:13px;line-height:1.5;border:none;resize:none}.mdocs-merge-preview{font-family:inherit}.mdocs-merge-preview pre{white-space:pre-wrap}.mdocs-domain-lock{flex-shrink:0}.mdocs-domain-select-wrapper{position:relative;flex:0 1 auto;min-width:120px;max-width:200px}.mdocs-domain-select-trigger{width:100%;height:35px;display:inline-flex;align-items:center;gap:6px;padding:0 8px;border:1px solid var(--mdocs-border);border-radius:var(--mdocs-radius);background:var(--mdocs-surface);font-size:13px;color:var(--mdocs-text);cursor:pointer}.mdocs-domain-select-trigger:hover{border-color:var(--mdocs-border-hover)}.mdocs-domain-select-text{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mdocs-domain-select-chevron{flex-shrink:0;transition:transform .15s ease}.mdocs-domain-select-chevron.open{transform:rotate(180deg)}.mdocs-domain-select-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:160px;padding:4px;z-index:50;display:flex;flex-direction:column;gap:1px}.mdocs-domain-select-option{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border:none;border-radius:6px;background:transparent;font-size:13px;color:var(--mdocs-text);cursor:pointer;text-align:left}.mdocs-domain-select-option:hover{background:var(--mdocs-bg)}.mdocs-domain-select-option.active{background:var(--mdocs-accent-soft);font-weight:500}.mdocs-domain-create-form{display:flex;flex-direction:column;gap:12px}.mdocs-domain-create-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mdocs-domain-name-input{flex:1;min-width:140px;padding:8px 10px;border:1px solid var(--mdocs-border);border-radius:6px;font-size:13px;background:var(--mdocs-bg);color:var(--mdocs-text);outline:none}.mdocs-domain-name-input:focus{border-color:var(--mdocs-accent)}.mdocs-domain-permission-select{flex-shrink:0}.mdocs-domain-item{display:flex;flex-direction:column;gap:12px}.mdocs-domain-item-main{display:flex;flex-direction:column;gap:4px}.mdocs-domain-item-info{display:flex;align-items:center;gap:8px}.mdocs-domain-item-name{font-weight:600;font-size:14px;color:var(--mdocs-text)}.mdocs-domain-item-meta{display:flex;align-items:center;gap:12px;font-size:12px}.mdocs-domain-permission-badge{display:inline-block;font-size:11px;font-weight:500;padding:2px 8px;border-radius:9999px;line-height:1.5}.mdocs-domain-permission-badge[data-permission=public]{color:#16a34a;background:#dcfce7}.mdocs-domain-permission-badge[data-permission=restricted]{color:#ca8a04;background:#fef9c3}.mdocs-domain-permission-badge[data-permission=private]{color:#6b7280;background:#f3f4f6}.mdocs-domain-doc-count{color:var(--mdocs-text-muted)}.mdocs-domain-item-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mdocs-domain-item-actions .mdocs-domain-permission-select button{font-size:12px;padding:4px 10px}.mdocs-domain-rename-row{display:flex;align-items:center;gap:6px}.mdocs-domain-locked-hint{font-size:12px;opacity:.6}.mdocs-domain-locked-banner{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:-20px -24px 16px;background:#fff8e1;border-bottom:1px solid #ffecb3;border-radius:12px 12px 0 0;font-size:13px;color:#ff8f00;line-height:1.4}.mdocs-domain-locked-icon{font-size:15px;flex-shrink:0}.mdocs-domain-badge-builtin{display:inline-block;font-size:11px;font-weight:500;padding:1px 8px;border-radius:9999px;background:#e3f2fd;color:#1565c0;line-height:1.6;margin-left:8px}.mdocs-domain-badge-shared{display:inline-block;font-size:11px;font-weight:500;padding:1px 8px;border-radius:9999px;background:#f3f4f6;color:#6b7280;line-height:1.6;margin-left:8px}.mdocs-domain-not-creator{padding-top:8px;border-top:1px solid var(--mdocs-border);margin-top:4px}.mdocs-domain-error{border-left:3px solid var(--mdocs-error)}.mdocs-domain-item-actions button:disabled{pointer-events:none}.mdocs-domain-mgmt-create .mdocs-domain-mgmt-create-form{display:flex;flex-direction:column;gap:16px;margin-top:10px}.mdocs-domain-mgmt-field{display:flex;flex-direction:column;gap:6px}.mdocs-domain-mgmt-label{font-size:12px;font-weight:600;color:var(--mdocs-muted, #666)}.mdocs-domain-mgmt-fieldset{border:none;margin:0;padding:0}.mdocs-domain-mgmt-type-radios{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:6px}.mdocs-domain-mgmt-radio{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:14px}.mdocs-domain-mgmt-radio input{accent-color:var(--mdocs-accent, #2563eb)}.mdocs-domain-mgmt-submit{align-self:flex-start}.mdocs-domain-mgmt-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between}.mdocs-domain-mgmt-search{flex:1;min-width:160px;max-width:320px;padding:8px 12px;border:1px solid var(--mdocs-border);border-radius:8px;font-size:14px;background:var(--mdocs-input-bg, var(--mdocs-surface));color:inherit}.mdocs-domain-mgmt-filters{display:flex;flex-wrap:wrap;gap:6px}.mdocs-domain-mgmt-filter{padding:6px 12px;border:1px solid var(--mdocs-border);border-radius:999px;background:var(--mdocs-surface);font-size:12px;cursor:pointer;color:inherit}.mdocs-domain-mgmt-filter:hover{border-color:var(--mdocs-muted)}.mdocs-domain-mgmt-filter.active{border-color:var(--mdocs-accent, #2563eb);background:color-mix(in srgb,var(--mdocs-accent, #2563eb) 12%,transparent)}.mdocs-domain-table-wrap{padding:0;overflow-x:auto}.mdocs-domain-table{width:100%;border-collapse:collapse;font-size:14px}.mdocs-domain-table th,.mdocs-domain-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--mdocs-border);vertical-align:middle}.mdocs-domain-table th{font-weight:600;font-size:12px;color:var(--mdocs-muted, #666);background:color-mix(in srgb,var(--mdocs-border) 35%,transparent)}.mdocs-domain-table-num{text-align:right;white-space:nowrap;width:6rem}.mdocs-domain-table-row-builtin{background:color-mix(in srgb,var(--mdocs-border) 25%,transparent)}.mdocs-domain-table-name-cell{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.mdocs-domain-table-name{font-weight:500}.mdocs-domain-table-type{display:inline-flex;align-items:center;gap:6px}.mdocs-domain-type-lock{font-size:14px;opacity:.85}.mdocs-domain-table-rename{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.mdocs-domain-table-actions{min-width:12rem}.mdocs-domain-action-buttons{display:flex;flex-wrap:wrap;gap:8px}.mdocs-domain-change-type-panel{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.mdocs-domain-change-type-panel .mdocs-domain-permission-select{flex-wrap:wrap}.mdocs-domain-not-modifiable{color:var(--mdocs-muted, #666)}.mdocs-domain-not-creator-inline{font-size:12px;color:var(--mdocs-muted, #666);line-height:1.4;max-width:14rem}.mdocs-domain-table .mdocs-domain-item-actions button:disabled,.mdocs-domain-action-buttons button:disabled{pointer-events:none;opacity:.5}.mdocs-member-template-name-input{display:block;width:100%;max-width:28rem;margin-top:4px;padding:6px 0;border:none;border-bottom:1px solid var(--mdocs-border);border-radius:0;font-size:15px;font-weight:500;background:transparent;color:var(--mdocs-text);outline:none}.mdocs-member-template-name-input:focus{border-bottom-color:var(--mdocs-accent)}.mdocs-member-template-name-input:disabled{opacity:.6}.mdocs-member-template-intro,.mdocs-domain-mgmt-restricted-hint{margin:0 0 1rem;max-width:52rem;font-size:14px;color:var(--mdocs-muted, #666);line-height:1.5}.mdocs-member-template-form .mdocs-member-template-ids{width:100%;max-width:40rem;margin-top:6px;padding:10px 12px;font-family:ui-monospace,monospace;font-size:13px;border:1px solid var(--mdocs-border);border-radius:6px;background:var(--mdocs-surface, #fff);resize:vertical}.mdocs-member-template-form-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.mdocs-member-template-list{list-style:none;margin:0;padding:0}.mdocs-member-template-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid color-mix(in srgb,var(--mdocs-border) 50%,transparent)}.mdocs-member-template-row:last-child{border-bottom:none}.mdocs-member-template-row-head{display:flex;flex-direction:column;gap:4px}.mdocs-member-template-row-actions{display:flex;flex-wrap:wrap;gap:8px}.mdocs-domain-member-import-title{flex:1 1 100%;margin:0;font-size:12px;font-weight:600;color:var(--mdocs-text);letter-spacing:.02em}.mdocs-domain-member-import{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed color-mix(in srgb,var(--mdocs-border) 60%,transparent)}.mdocs-domain-member-import select{min-width:10rem;padding:6px 8px;border-radius:6px;border:1px solid var(--mdocs-border)}.mdocs-domain-import-hint{font-size:12px;color:var(--mdocs-muted, #666)}.mdocs-domain-import-flash{font-size:13px;color:var(--mdocs-success, #0a7);margin-top:6px}.mdocs-member-template-members-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px}.mdocs-member-template-selected-count{font-size:14px;color:var(--mdocs-text)}.mdocs-wizard-card{display:flex;flex-direction:column}.mdocs-wizard-progress{margin-bottom:20px;padding:0 4px}.mdocs-wizard-progress-track{height:3px;background:color-mix(in srgb,var(--mdocs-border) 60%,transparent);border-radius:2px;margin-bottom:12px;position:relative}.mdocs-wizard-progress-fill{height:100%;background:var(--mdocs-accent, #2563eb);border-radius:2px;transition:width .3s ease}.mdocs-wizard-progress-steps{display:flex;justify-content:space-between;align-items:flex-start}.mdocs-wizard-step-indicator{display:flex;flex-direction:column;align-items:center;gap:6px}.mdocs-wizard-step-circle{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;line-height:1;border:2px solid var(--mdocs-border);color:var(--mdocs-muted, #999);background:var(--mdocs-surface);transition:all .2s ease}.mdocs-wizard-step-circle.current{border-color:var(--mdocs-accent, #2563eb);background:var(--mdocs-accent, #2563eb);color:#fff}.mdocs-wizard-step-circle.done{border-color:#16a34a;background:#16a34a;color:#fff}.mdocs-wizard-step-label{font-size:11px;color:var(--mdocs-muted, #999);white-space:nowrap;transition:color .2s ease}.mdocs-wizard-step-label.current{color:var(--mdocs-text);font-weight:600}.mdocs-wizard-step-label.done{color:#16a34a}.mdocs-wizard-step-content{min-height:320px;display:flex;flex-direction:column;gap:14px;padding:4px 0}.mdocs-wizard-name-input{width:100%;padding:12px 14px;border:1px solid var(--mdocs-border);border-radius:8px;font-size:16px;background:var(--mdocs-surface);color:var(--mdocs-text);outline:none;transition:border-color .15s ease}.mdocs-wizard-name-input:focus{border-color:var(--mdocs-accent, #2563eb)}.mdocs-wizard-name-input[aria-invalid=true]{border-color:var(--mdocs-danger);box-shadow:0 0 0 1px var(--mdocs-danger)}.mdocs-wizard-name-input:disabled{opacity:.6}.mdocs-wizard-hint{margin:4px 0 0;font-size:12px;color:var(--mdocs-muted, #999);line-height:1.4}.mdocs-wizard-hint.danger{color:var(--mdocs-danger)}.mdocs-wizard-preview-card{border:1px solid var(--mdocs-border);border-radius:8px;padding:16px;background:var(--mdocs-bg);display:flex;flex-direction:column;gap:12px}.mdocs-wizard-preview-row{display:flex;align-items:center;gap:12px}.mdocs-wizard-preview-label{font-size:12px;font-weight:600;color:var(--mdocs-muted, #999);min-width:60px;flex-shrink:0}.mdocs-wizard-preview-value{font-size:14px;color:var(--mdocs-text);font-weight:500}.mdocs-wizard-preview-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.mdocs-wizard-preview-tag{display:inline-block;padding:3px 10px;font-size:12px;font-family:ui-monospace,monospace;background:color-mix(in srgb,var(--mdocs-accent, #2563eb) 12%,transparent);color:var(--mdocs-accent, #2563eb);border-radius:4px;line-height:1.5}.mdocs-wizard-preview-tag-more{background:color-mix(in srgb,var(--mdocs-border) 50%,transparent);color:var(--mdocs-muted, #666)}.mdocs-wizard-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid color-mix(in srgb,var(--mdocs-border) 50%,transparent)}.mdocs-member-template-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.mdocs-member-template-tags-scroll{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.mdocs-member-template-tag{display:inline-block;padding:2px 8px;font-size:11px;background:color-mix(in srgb,var(--mdocs-accent, #2563eb) 12%,transparent);color:var(--mdocs-accent, #2563eb);border-radius:4px;line-height:1.6;white-space:nowrap}.mdocs-member-template-confirm-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;width:100%;padding:4px 0}.mdocs-member-template-confirm-text{font-size:13px;color:var(--mdocs-danger);line-height:1.4}.mdocs-member-template-confirm-actions{display:flex;gap:8px}.mdocs-member-template-empty{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.mdocs-visitor-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:color-mix(in srgb,#000 45%,transparent);display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}.mdocs-visitor-picker-dialog{width:min(960px,100%);max-height:min(88vh,900px);display:flex;flex-direction:column;background:var(--mdocs-surface, #fff);color:var(--mdocs-text);border-radius:12px;box-shadow:0 12px 48px color-mix(in srgb,#000 35%,transparent);border:1px solid var(--mdocs-border)}.mdocs-visitor-picker-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--mdocs-border)}.mdocs-visitor-picker-title{margin:0;font-size:1.125rem;font-weight:600}.mdocs-visitor-picker-close{border:none;background:transparent;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--mdocs-muted, #666);padding:4px 8px;border-radius:6px}.mdocs-visitor-picker-close:hover{background:color-mix(in srgb,var(--mdocs-border) 40%,transparent)}.mdocs-visitor-picker-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:12px 18px;border-bottom:1px solid color-mix(in srgb,var(--mdocs-border) 60%,transparent)}.mdocs-visitor-picker-search{flex:1 1 100%;min-width:0;padding:6px 12px;border:1px solid var(--mdocs-border);border-radius:8px;font-size:14px}.mdocs-visitor-picker-template-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.mdocs-template-picker{position:relative}.mdocs-template-picker-trigger{display:inline-flex;align-items:center;gap:6px;min-width:11rem;padding:8px 10px;border-radius:8px;border:1px solid var(--mdocs-border);background:var(--mdocs-surface);font-size:13px;color:var(--mdocs-text);cursor:pointer}.mdocs-template-picker-trigger:hover{border-color:var(--mdocs-border-hover)}.mdocs-template-picker-trigger:disabled{opacity:.5;cursor:default}.mdocs-template-picker-text{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mdocs-template-picker-chevron{flex-shrink:0;transition:transform .15s ease}.mdocs-template-picker-chevron.open{transform:rotate(180deg)}.mdocs-template-picker-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;padding:4px;z-index:60;display:flex;flex-direction:column;gap:1px}.mdocs-template-picker-option{display:flex;align-items:center;padding:6px 10px;border:none;border-radius:6px;background:transparent;font-size:13px;color:var(--mdocs-text);cursor:pointer;text-align:left;width:100%}.mdocs-template-picker-option:hover{background:var(--mdocs-bg)}.mdocs-template-picker-option.active{background:var(--mdocs-accent-soft);font-weight:500}.mdocs-visitor-picker-error,.mdocs-visitor-picker-loading{padding:8px 18px;font-size:14px}.mdocs-visitor-picker-error{color:var(--mdocs-danger);background:color-mix(in srgb,var(--mdocs-danger) 12%,transparent)}.mdocs-visitor-picker-columns{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:280px;max-height:50vh;overflow:hidden}@media (max-width: 720px){.mdocs-visitor-picker-columns{grid-template-columns:1fr;max-height:none}}.mdocs-visitor-picker-col{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--mdocs-border)}.mdocs-visitor-picker-col:last-child{border-right:none}.mdocs-visitor-picker-col-title{margin:0;padding:10px 14px;font-size:13px;font-weight:600;background:color-mix(in srgb,var(--mdocs-border) 22%,transparent);border-bottom:1px solid var(--mdocs-border)}.mdocs-visitor-picker-table-wrap{flex:1;overflow:auto}.mdocs-visitor-picker-table{width:100%;border-collapse:collapse;font-size:13px}.mdocs-visitor-picker-table th,.mdocs-visitor-picker-table td{padding:8px 12px;text-align:left;border-bottom:1px solid color-mix(in srgb,var(--mdocs-border) 55%,transparent);vertical-align:middle}.mdocs-visitor-picker-table th{position:sticky;top:0;background:var(--mdocs-surface, #fff);z-index:1;font-weight:600}.mdocs-visitor-picker-check-col{width:3rem;text-align:center;white-space:nowrap}.mdocs-visitor-picker-id-short{font-family:ui-monospace,monospace;font-size:12px}.mdocs-visitor-picker-id-full{font-family:ui-monospace,monospace;font-size:11px;word-break:break-all}.mdocs-visitor-picker-empty-cell{padding:24px!important;text-align:center;color:var(--mdocs-muted, #666)}.mdocs-visitor-picker-remove{border:none;background:transparent;color:var(--mdocs-danger);cursor:pointer;font-size:1.25rem;line-height:1;padding:0 4px}.mdocs-visitor-picker-locked{color:var(--mdocs-muted, #999);font-size:12px}.mdocs-visitor-picker-name-muted{color:var(--mdocs-muted, #666);font-style:italic}.mdocs-visitor-picker-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--mdocs-border)}.mdocs-visitor-picker-self-marker{color:#16a34a;font-weight:500;margin-left:4px}.mdocs-editor-with-comments{display:flex;flex:1;min-width:0;min-height:0;overflow:hidden}.mdocs-editor-container{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column}.mdocs-comments-panel{width:360px;flex-shrink:0;border-left:1px solid var(--mdocs-border, #eee);background:var(--mdocs-bg-secondary, #fafafa);display:flex;flex-direction:column;overflow:hidden;position:relative}.mdocs-comments-resize-handle{position:absolute;left:0;top:0;bottom:0;width:4px;cursor:col-resize;background:transparent;transition:background .2s;z-index:10}.mdocs-comments-resize-handle:hover,.mdocs-comments-resize-handle:active{background:var(--mdocs-primary, #1976d2)}.mdocs-comments-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--mdocs-border, #eee);background:#fff;flex-shrink:0}.mdocs-comments-error{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;color:#d32f2f;background:#fff5f5;border-bottom:1px solid #ffe0e0}.mdocs-comments-error button{background:none;border:none;color:#d32f2f;cursor:pointer;padding:2px;display:flex;align-items:center}.mdocs-comments-close-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#666;display:flex;align-items:center;justify-content:center}.mdocs-comments-close-btn:hover{background:var(--mdocs-hover-bg, #f0f0f0)}.mdocs-comments-list{flex:1;overflow-y:auto;padding:16px}.mdocs-comments-empty{text-align:center;color:#999;padding:2rem 0}.mdocs-comment-root{margin-bottom:16px;padding:12px;background:#fff;border-radius:8px;border:1px solid var(--mdocs-border, #eee)}.mdocs-comment-replies{margin-top:12px;margin-left:24px;padding-left:12px;border-left:2px solid var(--mdocs-border-light, #e8e8e8)}.mdocs-comment-reply{margin-bottom:8px;padding:8px;background:#fafafa;border-radius:6px}.mdocs-comment-header{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:.875rem}.mdocs-comment-avatar{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.75rem;font-weight:500;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mdocs-comment-avatar-small{width:20px;height:20px;font-size:.7rem}.mdocs-comment-author{font-weight:500;color:#333}.mdocs-comment-time{color:#999;font-size:.8rem}.mdocs-comment-reply-to{color:var(--mdocs-primary, #1976d2);font-size:.8rem;font-weight:500}.mdocs-comment-reply-to:before{content:"↳ ";margin-right:2px;color:var(--mdocs-primary, #1976d2)}.mdocs-comment-content{font-size:.9rem;line-height:1.5;color:#333;word-break:break-word;white-space:pre-wrap}.mdocs-comment-reply-btn{background:none;border:none;color:#1976d2;cursor:pointer;font-size:.85rem;padding:0;margin-top:4px}.mdocs-comment-reply-btn:hover{text-decoration:underline}.mdocs-comment-delete{background:none;border:none;color:#999;cursor:pointer;padding:2px;margin-left:auto;border-radius:4px;display:flex;align-items:center;justify-content:center}.mdocs-comment-delete:hover{color:#d32f2f;background:#ffebee}.mdocs-comments-input-wrapper{padding:12px 16px;border-top:1px solid var(--mdocs-border, #eee);background:#fff;flex-shrink:0;position:relative}.mdocs-comments-input-drag-handle{width:32px;height:3px;background:#e0e0e0;border-radius:2px;margin:0 auto 8px;cursor:row-resize;transition:background .2s}.mdocs-comments-input-drag-handle:hover,.mdocs-comments-input-drag-handle:active{background:var(--mdocs-primary, #1976d2)}.mdocs-comment-reply-notice{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:#666;margin-bottom:8px}.mdocs-comment-reply-notice button{background:none;border:none;cursor:pointer;color:#999;font-size:.8rem;display:flex;align-items:center;gap:2px}.mdocs-comment-reply-notice button:hover{color:#666}.mdocs-comment-reply-to-name{color:#1976d2;font-weight:500}.mdocs-comments-input{width:100%;padding:8px 12px 24px;border:1px solid #ddd;border-radius:6px;font-size:.9rem;font-family:inherit;resize:none;box-sizing:border-box;display:block}.mdocs-comments-char-count{position:absolute;right:22px;transform:translateY(-22px);font-size:.75rem;color:#999;padding:0 4px;background:linear-gradient(to bottom,transparent 0%,white 30%);pointer-events:none;z-index:1}.mdocs-comments-char-count.mdocs-char-count--warn{color:#d32f2f}.mdocs-comments-input:focus{outline:none;border-color:#1976d2}.mdocs-comments-input-actions{display:flex;justify-content:flex-end;margin-top:4px}.mdocs-btn-primary{background:#1976d2;color:#fff;border:none;padding:6px 16px;border-radius:6px;cursor:pointer;font-size:.9rem}.mdocs-btn-primary:hover{background:#1565c0}.mdocs-btn-primary:disabled{background:#90caf9;cursor:not-allowed}:root{--mdocs-accent: #4CAF50;--mdocs-accent-dark: #388E3C;--mdocs-accent-secondary: #81C784;--mdocs-accent-soft: #E8F5E9;--mdocs-accent-ring: rgba(76, 175, 80, .25);--mdocs-success: #66BB6A;--mdocs-success-soft: #E8F5E9;--mdocs-success-text: #2E7D32;--mdocs-warning: #FFB74D;--mdocs-warning-soft: #FFF3E0;--mdocs-warning-text: #EF6C00;--mdocs-error: #EF5350;--mdocs-error-soft: #FFEBEE;--mdocs-error-text: #C62828;--mdocs-danger: #E53935;--mdocs-bg: #F5F5F5;--mdocs-surface: #ffffff;--mdocs-border: #E0E0E0;--mdocs-border-hover: #BDBDBD;--mdocs-text: #212121;--mdocs-text-muted: #616161;--mdocs-text-disabled: #BDBDBD;--mdocs-radius-sm: 4px;--mdocs-radius: 8px;--mdocs-radius-lg: 12px;--mdocs-radius-xl: 16px;--mdocs-shadow: 0 1px 3px rgba(0, 0, 0, .1);--mdocs-shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--mdocs-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;min-height:0;margin:0}body{font-family:Inter,Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--mdocs-bg);color:var(--mdocs-text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus-visible{outline:2px solid var(--mdocs-accent);outline-offset:2px}button{font-family:inherit;font-size:inherit;border-radius:var(--mdocs-radius);border:1px solid var(--mdocs-border);background:var(--mdocs-surface);color:var(--mdocs-text);padding:6px 14px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .1s ease}button:hover{border-color:var(--mdocs-border-hover)}button:active{transform:scale(.98)}button:disabled{background:var(--mdocs-bg);border-color:var(--mdocs-border);color:var(--mdocs-text-disabled);cursor:not-allowed;transform:none}button.primary{background:var(--mdocs-accent);border-color:var(--mdocs-accent);color:#fff}button.primary:hover{background:var(--mdocs-accent-dark);border-color:var(--mdocs-accent-dark)}button.primary:active{background:var(--mdocs-accent-dark);transform:scale(.98)}button.primary:focus-visible{box-shadow:0 0 0 3px var(--mdocs-accent-ring)}button.secondary{background:transparent;border-color:var(--mdocs-accent);color:var(--mdocs-accent)}button.secondary:hover{background:var(--mdocs-accent-soft)}button.secondary:focus-visible{box-shadow:0 0 0 3px var(--mdocs-accent-ring)}button.danger{background:var(--mdocs-error);border-color:var(--mdocs-error);color:#fff}button.danger:hover{background:#d32f2f;border-color:#d32f2f}button.danger:focus-visible{box-shadow:0 0 0 3px #ef53504d}button.ghost{background:transparent;border-color:transparent;color:var(--mdocs-text-muted)}button.ghost:hover{background:var(--mdocs-bg);color:var(--mdocs-text)}input,textarea{font-family:inherit;font-size:inherit;border-radius:var(--mdocs-radius);border:1px solid var(--mdocs-border);background:var(--mdocs-surface);color:var(--mdocs-text);padding:8px 12px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus{border-color:var(--mdocs-accent);box-shadow:0 0 0 3px var(--mdocs-accent-ring)}input:disabled,textarea:disabled{background:var(--mdocs-bg);color:var(--mdocs-text-disabled);cursor:not-allowed}select{font-family:inherit;font-size:inherit;border-radius:var(--mdocs-radius);border:1px solid var(--mdocs-border);background:var(--mdocs-surface);color:var(--mdocs-text);padding:6px 12px;outline:none;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}select:focus{border-color:var(--mdocs-accent);box-shadow:0 0 0 3px var(--mdocs-accent-ring)}a{color:var(--mdocs-accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--mdocs-text-muted)}.card{background:var(--mdocs-surface);border:1px solid var(--mdocs-border);border-radius:var(--mdocs-radius-lg);box-shadow:var(--mdocs-shadow)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--mdocs-bg)}::-webkit-scrollbar-thumb{background:var(--mdocs-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--mdocs-border-hover)}.mdocs-playground-page{box-sizing:border-box;height:100%;min-height:0;overflow-y:auto;padding:16px;background:var(--mdocs-bg);-webkit-overflow-scrolling:touch}.mdocs-playground-header{margin-bottom:12px}.mdocs-playground-back{color:var(--mdocs-accent);text-decoration:none;font-size:13px}.mdocs-playground-back:hover{text-decoration:underline}.mdocs-playground-editor{padding:16px}.mdocs-demo-banner{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:8px 16px;font-size:13px;display:flex;align-items:center;justify-content:center;gap:8px}.mdocs-demo-banner a{color:#ffffffe6;text-decoration:underline}
|