@fgbg/mdocs 1.3.28 → 1.3.29
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 +1 -1
- package/agent-skills/changelog/SKILL.md +12 -0
- package/dist/server/agent/Agent/session-manager.js +116 -8
- package/dist/server/agent/Agent/session-manager.js.map +1 -1
- package/dist/server/agent/Agent/session-manager.pin-rename.test.js +75 -0
- package/dist/server/agent/Agent/session-manager.pin-rename.test.js.map +1 -0
- package/dist/server/app.js +41 -2
- package/dist/server/app.js.map +1 -1
- package/dist/server/routes/agent.routes.js +62 -2
- package/dist/server/routes/agent.routes.js.map +1 -1
- package/dist/web/assets/AgentChatPanel-BD1oyUQ2.js +42 -0
- package/dist/web/assets/AiWriteWorkbench-B0r87dOu.js +7 -0
- package/dist/web/assets/{DiagramEditor-NtNY3sZL-CyddeNUo.js → DiagramEditor-NtNY3sZL-zENSuUSW.js} +1 -1
- package/dist/web/assets/{DocChrome-C5syeHbQ.js → DocChrome-B-5PeA3Z.js} +1 -1
- package/dist/web/assets/{DocumentEditor-mG7hvAWj.js → DocumentEditor-CeH1smor.js} +1 -1
- package/dist/web/assets/{HtmlEditor-DABDor1R.js → HtmlEditor-DEwBOS1N.js} +1 -1
- package/dist/web/assets/{MergeView-BczHMfos.js → MergeView-Bzk9R2GH.js} +1 -1
- package/dist/web/assets/{PlaygroundPage-zg5tjWQs.js → PlaygroundPage-Bmq4l_R3.js} +1 -1
- package/dist/web/assets/{SettingsPage-BU0is_e7.js → SettingsPage-B3-GANlD.js} +1 -1
- package/dist/web/assets/{SheetEditor-4nXVP3NN.js → SheetEditor-DYVKW2RD.js} +1 -1
- package/dist/web/assets/{Toolbar-xB4u1mY1.js → Toolbar-SoiYp0SC.js} +1 -1
- package/dist/web/assets/{VisitorPickerModal-Djpm5bTf.js → VisitorPickerModal-BTmTrqrT.js} +1 -1
- package/dist/web/assets/{check--tqH9AMO.js → check-CnsclxvV.js} +1 -1
- package/dist/web/assets/copy-CI3NmTJZ.js +11 -0
- package/dist/web/assets/{docPlainCharCount-CTaZfi-M.js → docPlainCharCount-C7aeeOM1.js} +1 -1
- package/dist/web/assets/index-CSZ-Z1RJ.css +1 -0
- package/dist/web/assets/{index-CINfyH_g.js → index-DNb6Q69l.js} +14 -14
- package/dist/web/assets/{italic-phhei7W3.js → italic-BljxX8Uj.js} +1 -1
- package/dist/web/assets/{meta2dEngine-BD2XbzaV-BDjANcdr.js → meta2dEngine-BD2XbzaV-BuKVYpuY.js} +1 -1
- package/dist/web/assets/{plus-BxZJ-Mya.js → plus-BAqdJ6N2.js} +1 -1
- package/dist/web/assets/{react-8gAAnUbI.js → react-C7YGEhUS.js} +129 -134
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/AgentChatPanel-TJVgAwlH.js +0 -22
- package/dist/web/assets/AgentSkillFormCard-3ZpgH1RY.js +0 -11
- package/dist/web/assets/AiWriteWorkbench-B9HrhEmd.js +0 -7
- package/dist/web/assets/copy-5mwMd6zK.js +0 -6
- package/dist/web/assets/index-DCgILSIv.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as t,j as e}from"./react-vendor-BVS1XoFi.js";import{c as ie,$ as Es,a0 as Rs,V as Fs,l as de,a1 as zs,a2 as Ls,a3 as ee,a4 as Oe,a5 as Bs,a6 as Os,a7 as Us,a as Ks,d as Ze,a8 as ls,a9 as os,aa as $s,ab as Vs,ac as Ws,ad as _s,ae as Gs,af as rs,ag as ze,ah as qs,ai as Hs,aj as Js,X as Zs,ak as Ys,al as Qs,f as ds,am as Xs,an as et,ao as st,ap as tt,aq as at,ar as ms,as as nt,at as it,au as ct,av as lt,aw as ot,ax as rt,ay as dt,az as us,aA as mt,aB as ut,aC as ht,aD as pt,aE as gt,aF as ft,aG as xt,aH as yt,aI as bt,U as jt,aJ as Nt,aK as vt,aL as kt,aM as St,r as wt,j as Ct,aN as Dt,k as It,m as Tt}from"./index-CINfyH_g.js";import{V as hs,a as At,M as Ye}from"./VisitorPickerModal-Djpm5bTf.js";import{C as Mt}from"./check--tqH9AMO.js";import{ai as Le,aj as Pt,ak as Et,al as Rt,am as Ft,an as zt,ao as Qe,ap as Lt,aq as Xe}from"./ui-CEFkTVnG.js";import"./diagram-BF8g9yg4.js";import"./motion-BAXVQJfN.js";function Bt({draft:a,onClose:s,onSuccess:g}){const{t:u,lang:y}=ie(),[z,x]=t.useState([]),[S,v]=t.useState(a.domainId??""),[p,w]=t.useState([]),[A,I]=t.useState(""),[c,N]=t.useState(`${a.displayName||"untitled"}_recovered.md`),[f,m]=t.useState(!1),[D,M]=t.useState(null),b=t.useRef(null),R=t.useRef(!0);t.useEffect(()=>(R.current=!0,()=>{R.current=!1}),[]),t.useEffect(()=>{Es().then(k=>{R.current&&x(k)})},[]),t.useEffect(()=>{S&&(w([]),I(""),Rs(S).then(k=>{R.current&&w(k)}).catch(()=>{R.current&&w([])}))},[S]),t.useEffect(()=>{const k=window.setTimeout(()=>{var P;return(P=b.current)==null?void 0:P.focus()},0);return()=>window.clearTimeout(k)},[]),t.useEffect(()=>{const k=P=>{P.key==="Escape"&&s()};return window.addEventListener("keydown",k),()=>window.removeEventListener("keydown",k)},[s]);function O(k,P){for(const C of k){if(C.type==="folder"&&C.path===P)return C.documentId;if(C.type==="folder"){const F=O(C.children,P);if(F)return F}}return null}async function L(k){k.preventDefault(),m(!0),M(null);const P=c.replace(/\s+/g,"_").replace(/[^a-zA-Z0-9_\-.]/g,""),C=P.endsWith(".md")?P:P+".md",F=C.replace(/\.md$/i,"");try{const h=A?`${A}/${C}`:C,d=A?O(p,A)??void 0:void 0;await Ls({fileName:C,displayName:F,content:a.content,domainId:S,parentId:d}),g()}catch(h){M(ee(u,h))}finally{m(!1)}}return e.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:k=>{k.target===k.currentTarget&&!f&&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:a.displayName||u("unknownTitle")})}),e.jsxs("form",{onSubmit:L,className:"mdocs-dialog-form",children:[e.jsxs("label",{className:"mdocs-dialog-label",children:[u("domainLabel"),z.length>0&&e.jsx(Fs,{domains:z,value:S,onChange:v,onDomainsChange:x,ariaLabel:u("domainLabel"),localizeName:k=>de(k,y,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(zs,{nodes:p,activeDocumentId:null,selectedParentPath:A,onOpen:()=>{},onOpenFolder:k=>I(k),onContextMenu:()=>{},onDeselect:()=>I("")})})]}),e.jsxs("label",{className:"mdocs-dialog-label",children:[u("fileNameLabel"),e.jsx("input",{ref:b,value:c,onChange:k=>N(k.target.value),placeholder:"recovered.md",maxLength:200,disabled:f})]}),D&&e.jsx("div",{className:"mdocs-dialog-error",children:D}),e.jsxs("div",{className:"mdocs-dialog-actions",children:[e.jsx("button",{type:"button",onClick:()=>!f&&s(),disabled:f,children:u("cancel")}),e.jsx("button",{type:"submit",className:"primary",disabled:f,children:u(f?"creating":"create")})]})]})]})})}function Ot({onPublish:a,onClose:s,onCountChange:g,onRecover:u}){const{t:y}=ie(),[z,x]=t.useState([]),[S,v]=t.useState(new Set),[p,w]=t.useState(!1),[A,I]=t.useState(null),[c,N]=t.useState(null),[f,m]=t.useState(null),D=t.useRef(null),M=t.useRef(!0);t.useEffect(()=>(M.current=!0,Oe().then(d=>{if(!M.current)return;const j=d.filter(T=>!T.published);x(j),g==null||g(j.length)}),()=>{M.current=!1,D.current&&(clearTimeout(D.current),D.current=null)}),[]),t.useEffect(()=>{const d=j=>{j.key==="Escape"&&s()};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[s]);const b=t.useCallback((d,j)=>{m({message:d,type:j}),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>m(null),3e3)},[]);async function R(d){await Os(d),v(j=>new Set(j).add(d));try{await a(d),x(j=>{const T=j.filter(K=>K.documentId!==d);return g==null||g(T.length),T}),b(y("published"),"success")}catch(j){j instanceof Us||b(y("publishFailed"),"error");const T=await Ks(d);T&&x(K=>K.map(G=>G.documentId===d?T:G))}finally{v(j=>{const T=new Set(j);return T.delete(d),T})}}async function O(d){I(null),await Ze(d),x(j=>{const T=j.filter(K=>K.documentId!==d);return g==null||g(T.length),T}),b(y("draftDeleted"),"success")}function L(d){const j=z.find(T=>T.documentId===d);j&&N(j)}function k(d){N(null),Ze(d),x(j=>{const T=j.filter(K=>K.documentId!==d);return g==null||g(T.length),T}),u==null||u(z.find(j=>j.documentId===d)),b(y("published"),"success")}async function P(){w(!0);let d=0,j=0;for(const G of z)try{await a(G.documentId),d++}catch{j++}const K=(await Oe()).filter(G=>!G.published);x(K),g==null||g(K.length),j===0?b(y("publishAll"),"success"):b(`${d} published, ${j} failed`,"error"),w(!1)}const C=d=>new Date(d).toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),F=d=>Bs(y,d,d.publishError??"UNKNOWN"),h=z;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:[y("unpublishedDrafts"),h.length>0&&e.jsx("span",{className:"mdocs-drawer-count-badge",children:h.length})]}),e.jsx("span",{className:"mdocs-drawer-subtitle",children:y("draftCount",{count:String(h.length)})})]}),e.jsx("button",{type:"button",className:"mdocs-drawer-close-btn",onClick:s,"aria-label":y("close"),children:"×"})]}),e.jsx("div",{className:"mdocs-drawer-body",children:h.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:y("draftsEmptyState")})]}):e.jsx("div",{className:"mdocs-drawer-items",children:h.map(d=>{const j=!!d.publishError;return e.jsxs("div",{className:j?"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:d.displayName||y("unknownTitle")}),j?e.jsxs("span",{className:"mdocs-drawer-item-error",children:[C(d.publishErrorAt)," · ",F(d)]}):e.jsxs("span",{className:"mdocs-drawer-item-meta",children:[C(d.updatedAt)," · ",y("localSnapshot")]})]}),e.jsxs("div",{className:"mdocs-drawer-item-actions",children:[j?e.jsx("button",{type:"button",className:"mdocs-btn-ghost mdocs-btn-ghost-primary",disabled:p,onClick:()=>L(d.documentId),children:y("recoverDraft")}):e.jsx("button",{type:"button",className:"mdocs-btn-ghost mdocs-btn-ghost-primary",disabled:S.has(d.documentId)||p,onClick:()=>void R(d.documentId),children:S.has(d.documentId)?y("publishing"):y("publish")}),e.jsx("button",{type:"button",className:"mdocs-btn-ghost mdocs-btn-ghost-danger",disabled:p,onClick:()=>I(d.documentId),children:y("delete")})]})]},d.documentId)})})}),e.jsxs("footer",{className:"mdocs-drawer-footer",children:[e.jsx("button",{type:"button",onClick:s,children:y("close")}),e.jsx("button",{type:"button",className:"primary",disabled:h.length===0||p,onClick:()=>void P(),children:p?y("publishing"):`${y("publishAll")} (${h.length})`})]}),f&&e.jsx("div",{className:"mdocs-drawer-toast mdocs-drawer-toast--"+f.type,role:"status",children:f.message})]}),A&&e.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:d=>{d.target===d.currentTarget&&I(null)},children:e.jsxs("div",{className:"mdocs-dialog card",role:"dialog","aria-modal":"true",children:[e.jsx("h1",{children:y("delete")}),e.jsx("p",{className:"muted",children:y("confirmDeleteDraft")}),e.jsxs("div",{className:"mdocs-dialog-actions",children:[e.jsx("button",{type:"button",onClick:()=>I(null),children:y("cancel")}),e.jsx("button",{type:"button",className:"danger",onClick:()=>void O(A),children:y("delete")})]})]})}),c&&e.jsx(Bt,{draft:c,onClose:()=>N(null),onSuccess:()=>k(c.documentId)})]})}function Ut(){const{t:a,lang:s}=ie(),g=ls(),u=t.useRef(!1),[y,z]=t.useState([]),[x,S]=t.useState(!1),[v,p]=t.useState(""),[w,A]=t.useState("restricted"),[I,c]=t.useState(!1),[N,f]=t.useState(null),[m,D]=t.useState(null),[M,b]=t.useState(""),[R,O]=t.useState(""),[L,k]=t.useState("all"),[P,C]=t.useState(null);t.useEffect(()=>(u.current=!0,()=>{u.current=!1}),[]);const F=t.useCallback(async()=>{S(!0),f(null);try{const i=await os();if(!u.current)return;z(i)}catch(i){if(!u.current)return;f(ee(a,i))}finally{u.current&&S(!1)}},[a]);t.useEffect(()=>{F()},[F]);async function h(i){if(i.preventDefault(),!v.trim()){f(a("domainNameRequired"));return}c(!0),f(null);try{if(await Gs({domainName:v.trim(),permission:w}),!u.current)return;p(""),A("restricted"),await F()}catch(r){if(!u.current)return;f(ee(a,r))}finally{u.current&&c(!1)}}async function d(i){if(M.trim()){f(null);try{if(await _s(i,M.trim()),!u.current)return;D(null),C(null),await F()}catch(r){if(!u.current)return;f(ee(a,r))}}}function j(i){D(i.domainId),b(i.domainName),C(null)}function T(){D(null),C(null)}async function K(i,r){f(null);try{if(await Ws(i,r),!u.current)return;C(null),await F()}catch(U){if(!u.current)return;f(ee(a,U))}}async function G(i){if(window.confirm(a("deleteDomainConfirmDetail",{name:i.domainName,count:String(i.docCount)}))){f(null);try{if(await Vs(i.domainId),!u.current)return;await F()}catch(r){if(!u.current)return;f(ee(a,r))}}}const J=t.useCallback(i=>$s(i,a),[a]),Z=t.useCallback(i=>de(i.domainName,s,a),[s,a]),Q=t.useMemo(()=>{const i=R.trim().toLowerCase();return y.filter(r=>L!=="all"&&r.permission!==L?!1:i?de(r.domainName,s,a).toLowerCase().includes(i)||r.domainName.toLowerCase().includes(i):!0)},[y,R,L,s,a]),q=t.useCallback((i,r)=>{const U=J(i.permission);return r?`${U} ${a("domainTypeBuiltinSuffix")}`:U},[J,a]);return{domains:y,loadingDomains:x,domainError:N,newDomainName:v,setNewDomainName:p,newDomainPermission:w,setNewDomainPermission:A,creating:I,handleCreateDomain:h,renamingId:m,setRenamingId:D,renameDraft:M,setRenameDraft:b,startRename:j,cancelRename:T,handleRename:d,changeTypeForId:P,setChangeTypeForId:C,handlePermissionChange:K,handleDelete:G,domainSearch:R,setDomainSearch:O,domainFilter:L,setDomainFilter:k,filteredDomains:Q,visitorId:g,plabel:J,localizeDomain:Z,domainTypeLabel:q}}const es={private:0,restricted:1,public:2};function ss(a){return Object.prototype.hasOwnProperty.call(es,a)?es[a]:null}function ts(a,s){const g=ss(a),u=ss(s);return g===null||u===null?"invalid":u>g?"upgrade":u<g?"downgrade":"same"}function Kt(){const{t:a}=ie(),s=Ut(),[g,u]=t.useState([]),[y,z]=t.useState(null),[x,S]=t.useState(""),v=t.useRef(null),[p,w]=t.useState(null),A=t.useCallback(async()=>{try{const c=await rs();u(c)}catch{u([])}},[]);t.useEffect(()=>{A()},[A]),t.useEffect(()=>{if(!s.changeTypeForId)return;const c=N=>{var f;(f=v.current)!=null&&f.contains(N.target)||s.setChangeTypeForId(null)};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[s.changeTypeForId,s.setChangeTypeForId]);async function I(c){z(null);try{const N=await Qs(c.domainId);w({domainId:c.domainId,creatorVisitorId:c.creatorVisitorId,initialIds:N.map(f=>f.visitorId),memberRows:N})}catch(N){z({kind:"err",text:translateError(a,N)})}}return e.jsxs("div",{className:"mdocs-settings",children:[e.jsx("div",{className:"mdocs-settings-header",children:e.jsx("h2",{className:"mdocs-settings-title",children:a("domainManagement")})}),e.jsx("p",{className:"mdocs-domain-mgmt-restricted-hint",children:a("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:a("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:a("domainName")}),e.jsx("input",{value:s.newDomainName,onChange:c=>s.setNewDomainName(c.target.value),placeholder:a("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:a("domainPermission")}),e.jsx("div",{className:"mdocs-domain-mgmt-type-radios",children:ze.map(c=>e.jsxs("label",{className:"mdocs-domain-mgmt-radio",children:[e.jsx("input",{type:"radio",name:"newDomainPermission",checked:s.newDomainPermission===c,onChange:()=>s.setNewDomainPermission(c),disabled:s.creating}),e.jsx("span",{children:s.plabel(c)})]},c))})]}),e.jsx("button",{type:"submit",className:"primary mdocs-domain-mgmt-submit",disabled:s.creating,children:s.creating?a("creating"):a("create")})]})]}),y&&e.jsx("div",{className:"mdocs-settings-card",style:{color:y.kind==="ok"?"var(--mdocs-success, #0a7)":"var(--mdocs-danger)"},children:e.jsx("span",{className:"mdocs-settings-item-desc",children:y.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:c=>s.setDomainSearch(c.target.value),placeholder:a("domainSearchPlaceholder"),className:"mdocs-domain-mgmt-search","aria-label":a("domainSearchPlaceholder")}),e.jsx("div",{className:"mdocs-domain-mgmt-filters",role:"group","aria-label":a("domainPermission"),children:["all",...ze].map(c=>e.jsx("button",{type:"button",className:"mdocs-domain-mgmt-filter"+(s.domainFilter===c?" active":""),"aria-pressed":s.domainFilter===c,onClick:()=>s.setDomainFilter(c),children:c==="all"?a("domainFilterAll"):s.plabel(c)},c))})]}),s.loadingDomains?e.jsx("div",{className:"mdocs-settings-card",children:e.jsx("span",{className:"mdocs-settings-item-desc",children:a("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:a("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:a("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:a("domainColName")}),e.jsx("th",{scope:"col",children:a("domainColType")}),e.jsx("th",{scope:"col",className:"mdocs-domain-table-num",children:a("domainColDocCount")}),e.jsx("th",{scope:"col",children:a("domainColActions")})]})}),e.jsx("tbody",{children:s.filteredDomains.map(c=>{const N=qs(c,s.visitorId),f=Hs(c.domainId),m=Js(c),D=ts(c.permission,"public")==="upgrade",M=D?m?a("domainTooltipTypeLocked"):void 0:a("domainPermissionAlreadyTop");return e.jsxs("tr",{className:f?"mdocs-domain-table-row-builtin":void 0,children:[e.jsx("td",{children:s.renamingId===c.domainId?e.jsxs("div",{className:"mdocs-domain-table-rename",children:[e.jsx("input",{value:s.renameDraft,onChange:b=>s.setRenameDraft(b.target.value),maxLength:100,autoFocus:!0,className:"mdocs-domain-name-input"}),e.jsx("button",{type:"button",className:"primary",onClick:()=>void s.handleRename(c.domainId),children:a("save")}),e.jsx("button",{type:"button",onClick:s.cancelRename,children:a("cancel")})]}):e.jsxs("div",{className:"mdocs-domain-table-name-cell",children:[e.jsx("span",{className:"mdocs-domain-table-name",children:s.localizeDomain(c)}),f&&e.jsx("span",{className:"mdocs-domain-badge-builtin",children:a("domainBuiltIn")}),!N&&!f&&e.jsx("span",{className:"mdocs-domain-badge-shared",children:a("shared")})]})}),e.jsx("td",{children:e.jsx("span",{className:"mdocs-domain-table-type",title:M,children:e.jsx("span",{className:"mdocs-domain-permission-badge","data-permission":c.permission,children:s.domainTypeLabel(c,f)})})}),e.jsx("td",{className:"mdocs-domain-table-num",children:c.docCount}),e.jsxs("td",{className:"mdocs-domain-table-actions",children:[f&&e.jsx("span",{className:"mdocs-domain-not-modifiable",children:a("domainNotModifiable")}),!f&&!N&&e.jsx("span",{className:"mdocs-domain-not-creator-inline",children:a("domainNotCreator")}),!f&&N&&s.changeTypeForId===c.domainId&&e.jsxs("div",{className:"mdocs-domain-change-type-panel",ref:v,children:[e.jsx("div",{className:"mdocs-domain-type-segment",role:"radiogroup","aria-label":a("domainChangeType"),children:ze.map(b=>{const O=ts(c.permission,b)==="downgrade";return e.jsx("span",{title:O?a("domainPermissionNoDowngrade"):void 0,children:e.jsx("button",{type:"button",role:"radio","aria-checked":x===b,className:x===b?"active":"",disabled:O,onClick:()=>S(b),children:s.plabel(b)})},b)})}),e.jsx("button",{type:"button",className:"mdocs-domain-type-icon confirm","aria-label":a("save"),disabled:x===""||x===c.permission,onClick:()=>{x&&x!==c.permission&&s.handlePermissionChange(c.domainId,x)},children:e.jsx(Mt,{size:14,strokeWidth:2.5})}),e.jsx("button",{type:"button",className:"mdocs-domain-type-icon cancel","aria-label":a("cancel"),onClick:()=>s.setChangeTypeForId(null),children:e.jsx(Zs,{size:14,strokeWidth:2.5})})]}),!f&&N&&s.renamingId!==c.domainId&&s.changeTypeForId!==c.domainId&&e.jsxs("div",{className:"mdocs-domain-action-buttons",children:[c.permission==="restricted"&&e.jsx("button",{type:"button",className:"mdocs-domain-action mdocs-domain-action--primary",onClick:()=>void I(c),children:a("domainMembersManageButton")}),e.jsx("button",{type:"button",className:"mdocs-domain-action",title:m?a("domainLocked"):void 0,onClick:()=>{s.setChangeTypeForId(null),s.startRename(c)},disabled:m,children:a("rename")}),e.jsx("button",{type:"button",className:"mdocs-domain-action",title:M,onClick:()=>{s.setRenamingId(null),S(c.permission),s.setChangeTypeForId(c.domainId)},disabled:!D,children:a("domainChangeType")}),e.jsx("button",{type:"button",className:"mdocs-domain-action mdocs-domain-action--danger",title:m?a("domainLocked"):void 0,onClick:()=>void s.handleDelete(c),disabled:m,children:a("deleteDomain")})]})]})]},c.domainId)})})]})})]}),e.jsx(hs,{open:p!==null,title:a("domainMembersPickerTitle"),initialSelectedIds:(p==null?void 0:p.initialIds)??[],lockedIds:p?[p.creatorVisitorId]:[],seedMembers:p==null?void 0:p.memberRows,templates:g,onClose:()=>w(null),onConfirm:async c=>{p&&(await Ys(p.domainId,c),z({kind:"ok",text:a("domainMembersSaved",{count:String(c.length)})}))}})]})}function as(a){return a.length<=6?a:`${a.slice(0,6)}…`}function $t(){const{t:a}=ie(),s=t.useRef(!0),[g,u]=t.useState([]),[y,z]=t.useState(!0),[x,S]=t.useState(null),[v,p]=t.useState(1),[w,A]=t.useState(null),[I,c]=t.useState(""),[N,f]=t.useState([]),[m,D]=t.useState(!1),[M,b]=t.useState(null),[R,O]=t.useState(!1),L=ls(),[k,P]=t.useState([]),[C,F]=t.useState("idle"),[h,d]=t.useState("");t.useEffect(()=>(s.current=!0,()=>{s.current=!1}),[]),t.useEffect(()=>{F("loading"),ds().then(o=>{s.current&&(P(o),F("ok"))}).catch(()=>{s.current&&F("err")})},[]);const j=t.useMemo(()=>{const o=new Map;for(const E of k)o.set(E.visitorId,E.visitorName);return o},[k]),T=t.useCallback(async()=>{z(!0),b(null);try{const o=await rs();s.current&&u(o)}catch(o){s.current&&b(ee(a,o))}finally{s.current&&z(!1)}},[a]);t.useEffect(()=>{T()},[T]);const K=t.useMemo(()=>N.map(o=>{const E=k.find(W=>W.visitorId===o);return{visitorId:o,name:E?E.visitorName:a("visitorPickerUnknownVisitor"),muted:!E}}),[N,k,a]);function G(o){f(E=>E.includes(o)?E.filter(W=>W!==o):[...E,o])}const J=v===1?I.trim().length>0:v===2?N.length>0:!0;function Z(){if(!(v>=3)){if(!J){O(!0);return}O(!1),p(v+1),d("")}}function Q(){v<=1||(O(!1),p(v-1))}function q(){S(null),A(null),c(""),f(L?[L]:[]),b(null),p(1),d(""),O(!1)}function i(o){S(null),A(o.id),c(o.displayName);const E=L&&!o.visitorIds.includes(L)?[...o.visitorIds,L]:[...o.visitorIds];f(E),b(null),p(1),d(""),O(!1)}async function r(){if(!(!I.trim()||N.length===0)){D(!0),b(null);try{if(w===null?await Xs({displayName:I.trim(),visitorIds:N}):await et(w,{displayName:I.trim(),visitorIds:N}),!s.current)return;q(),await T()}catch(o){if(!s.current)return;b(ee(a,o))}finally{s.current&&D(!1)}}}async function U(o){D(!0),b(null);try{if(await st(o),!s.current)return;S(null),w===o&&q(),await T()}catch(E){if(!s.current)return;b(ee(a,E))}finally{s.current&&D(!1)}}const V=[{key:1,label:a("memberTemplateStepName")},{key:2,label:a("memberTemplateStepMembers")},{key:3,label:a("memberTemplateStepSave")}],$=`${(v-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:a(w!==null?"memberTemplateUpdate":"memberTemplateFormNew")}),w!==null&&e.jsx("button",{type:"button",className:"secondary",onClick:q,style:{fontSize:12},children:a("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:$}})}),e.jsx("div",{className:"mdocs-wizard-progress-steps",children:V.map(o=>{const E=v===o.key,W=v>o.key;return e.jsxs("div",{className:"mdocs-wizard-step-indicator",children:[e.jsx("div",{className:`mdocs-wizard-step-circle${E?" current":""}${W?" done":""}`,children:W?"✓":o.key}),e.jsx("span",{className:`mdocs-wizard-step-label${E?" current":""}${W?" done":""}`,children:o.label})]},o.key)})})]}),M&&e.jsx("div",{className:"mdocs-settings-item-desc",style:{color:"var(--mdocs-danger)",marginBottom:12,marginTop:12},children:M}),e.jsxs("div",{className:"mdocs-settings-cards",children:[e.jsxs("div",{className:"mdocs-settings-card mdocs-wizard-card",children:[v===1&&e.jsxs("div",{className:"mdocs-wizard-step-content",children:[e.jsx("input",{className:"mdocs-wizard-name-input",value:I,onChange:o=>c(o.target.value),placeholder:a("memberTemplateNamePlaceholder"),maxLength:200,disabled:m,autoFocus:!0,"aria-invalid":R&&!I.trim()}),R&&!I.trim()&&e.jsx("p",{className:"mdocs-wizard-hint",style:{color:"var(--mdocs-danger)"},children:a("domainNameRequired")})]}),v===2&&e.jsxs("div",{className:"mdocs-wizard-step-content",children:[e.jsx(At,{visitors:k,loadState:C,searchFilter:h,onSearchChange:d,selectedIds:new Set(N),onToggle:G,selectedRows:K,myVisitorId:L}),e.jsx("p",{className:`mdocs-wizard-hint${R&&N.length===0?" danger":""}`,children:"💡 "+a("memberTemplateStep2Hint")})]}),v===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:a("memberTemplateNameLabel")}),e.jsx("span",{className:"mdocs-wizard-preview-value",children:I})]}),e.jsxs("div",{className:"mdocs-wizard-preview-row",children:[e.jsx("span",{className:"mdocs-wizard-preview-label",children:a("memberTemplateIdsLabel")}),e.jsx("span",{className:"mdocs-wizard-preview-value",children:a("memberTemplateSelectedSummary",{count:String(N.length)})})]}),N.length>0&&e.jsxs("div",{className:"mdocs-wizard-preview-tags",children:[N.slice(0,15).map(o=>e.jsx("span",{className:"mdocs-wizard-preview-tag",children:as(o)},o)),N.length>15&&e.jsxs("span",{className:"mdocs-wizard-preview-tag mdocs-wizard-preview-tag-more",children:["+",N.length-15]})]})]})}),e.jsxs("div",{className:"mdocs-wizard-footer",children:[e.jsxs("button",{type:"button",className:"secondary",onClick:Q,children:["← ",a("memberTemplateWizardBack")]}),v<3?e.jsxs("button",{type:"button",className:"primary",onClick:Z,children:[a("memberTemplateWizardNext")," →"]}):e.jsx("button",{type:"button",className:"primary",onClick:()=>void r(),children:a(m?"saving":w===null?"memberTemplateCreate":"memberTemplateUpdate")})]})]}),e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsx("div",{className:"mdocs-settings-card-title",children:a("memberTemplateSavedList")}),y?e.jsx("span",{className:"mdocs-settings-item-desc",children:a("loading")}):g.length===0?e.jsxs("div",{className:"mdocs-member-template-empty",children:[e.jsx("span",{className:"mdocs-settings-item-desc",children:a("memberTemplateEmpty")}),w===null&&e.jsx("button",{type:"button",className:"primary",onClick:q,children:a("memberTemplateEmptyAction")})]}):e.jsx("ul",{className:"mdocs-member-template-list",children:g.map(o=>e.jsx("li",{className:"mdocs-member-template-row",children:x===o.id?e.jsxs("div",{className:"mdocs-member-template-confirm-row",children:[e.jsx("span",{className:"mdocs-member-template-confirm-text",children:a("memberTemplateConfirmDeleteDesc",{name:o.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 U(o.id),children:a(m?"saving":"memberTemplateConfirmDeleteSubmit")}),e.jsx("button",{type:"button",className:"secondary",onClick:()=>S(null),children:a("memberTemplateConfirmDeleteCancel")})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mdocs-member-template-row-head",children:[e.jsx("strong",{children:o.displayName}),e.jsx("span",{className:"mdocs-settings-item-desc",children:a("memberTemplateCount",{count:String(o.visitorIds.length)})}),o.visitorIds.length>0&&e.jsx("div",{className:"mdocs-member-template-tags mdocs-member-template-tags-scroll",children:o.visitorIds.map(E=>e.jsx("span",{className:"mdocs-member-template-tag",children:j.get(E)??as(E)},E))})]}),e.jsxs("div",{className:"mdocs-member-template-row-actions",children:[e.jsx("button",{type:"button",className:"secondary",onClick:()=>i(o),children:a("edit")}),e.jsx("button",{type:"button",className:"secondary",onClick:()=>S(o.id),children:a("memberTemplateDelete")})]})]})},o.id))})]})]})]})}const Vt=[{value:"deepseek-flash",label:"deepseek-flash(V4.1 Flash)"},{value:"deepseek-v4-pro",label:"deepseek-v4-pro(将路由至 Flash)"}],Wt=[{value:"openai-completions",label:"OpenAI 兼容"},{value:"anthropic-messages",label:"Anthropic 兼容"}];function _t(a,s,g){return a==="deepseek"?"Deepseek":s||g}function ns(a){return`${_t(a.kind,a.providerId,a.name)} · ${a.modelId} · ${a.name}`}function Gt(){const{t:a}=ie(),s=t.useRef(!0),[g,u]=t.useState(""),[y,z]=t.useState([]),[x,S]=t.useState(null),[v,p]=t.useState(null),[w,A]=t.useState("deepseek"),[I,c]=t.useState(""),[N,f]=t.useState(""),[m,D]=t.useState(""),[M,b]=t.useState("openai-completions"),[R,O]=t.useState("deepseek-flash"),[L,k]=t.useState(1e6),[P,C]=t.useState(""),[F,h]=t.useState(!1),[d,j]=t.useState(null),[T,K]=t.useState(!1),[G,J]=t.useState(!0),[Z,Q]=t.useState(!1),[q,i]=t.useState(null),[r,U]=t.useState(!1),[V,$]=t.useState(!1),[o,E]=t.useState(!1),[W,se]=t.useState(null),[ce,ae]=t.useState(null),te=t.useRef(!1);t.useEffect(()=>(s.current=!0,()=>{s.current=!1}),[]);const ne=t.useCallback(async()=>{const l=await tt();if(s.current)return z(l),l},[]);function le(){p(null),A("deepseek"),c(""),f(""),D(""),b("openai-completions"),O("deepseek-flash"),k(1e6),C(""),h(!1),j(null),K(!1),$(!1),E(!1),i(null),U(!1)}function xe(l){p(l.id),A(l.kind),c(l.name),f(l.providerId??""),D(l.baseUrl),b(l.apiType);const _=l.modelId.trim(),je=new Set(["deepseek-flash","deepseek-v4-flash","deepseek-v4-flash-vision-exp","deepseek-v4.1-flash","deepseek-v4.1-flash-expires-on-0910"]);O(l.kind==="deepseek"?_==="deepseek-v4-pro"?"deepseek-v4-pro":je.has(_)?"deepseek-flash":_||"deepseek-flash":_),k(l.contextWindow||1e6),h(l.hasApiKey),j(l.apiKeyMasked),C(""),K(l.isDefault)}t.useEffect(()=>{(async()=>{try{const l=await at();if(!s.current)return;u(l.visitorName);const _=await ne();if(!s.current||!_)return;_.length===0&&(le(),S("create"))}catch(l){if(!s.current)return;i(l instanceof Error?l.message:String(l)),S("create")}finally{s.current&&J(!1)}})()},[ne]);function we(){le(),S("create")}function ye(l){xe(l),S("edit"),U(!1),i(null)}function oe(){le(),S(null)}async function Ce(l){if(!(l.isDefault||ce)){ae(l.id),i(null);try{await nt(l.id),await ne()}catch(_){if(!s.current)return;i(_ instanceof Error?_.message:String(_))}finally{s.current&&ae(null)}}}async function be(){if(W){Q(!0),i(null);try{await ct(W.id);const l=await ne();if(!s.current)return;x==="edit"&&v===W.id&&oe(),((l==null?void 0:l.length)??0)===0&&(le(),S("create"))}catch(l){if(!s.current)return;i(l instanceof Error?l.message:String(l))}finally{s.current&&(Q(!1),se(null))}}}async function De(){Q(!0),i(null),U(!1);try{const l=w==="custom"?{...x==="edit"&&v?{id:v}:{},...x==="create"&&T?{isDefault:!0}:{},kind:w,baseUrl:m,modelId:R,providerId:N.trim()||void 0,apiType:M,name:I,contextWindow:L,...P.trim()?{apiKey:P.trim()}:{}}:{...x==="edit"&&v?{id:v}:{},...x==="create"&&T?{isDefault:!0}:{},kind:w,modelId:R,name:I,contextWindow:L,...P.trim()?{apiKey:P.trim()}:{}};if(await it(l),!s.current)return;await ne(),U(!0),S(null),le()}catch(l){if(!s.current)return;i(l instanceof Error?l.message:String(l))}finally{s.current&&Q(!1)}}const Ie=x!==null;return e.jsxs("div",{className:"mdocs-agent-config-panel",children:[e.jsxs("div",{className:"mdocs-settings-header",children:[e.jsx("h2",{className:"mdocs-settings-title",children:a("agentConfig")}),G?null:e.jsx("button",{type:"button",className:"secondary",onClick:we,children:"添加配置"})]}),e.jsxs("div",{className:"mdocs-settings-cards",children:[!G&&y.length>0?e.jsxs("div",{className:"mdocs-settings-card mdocs-agent-config-card",children:[e.jsx("p",{className:"mdocs-agent-config-lead",children:"选择默认配置后,智能助手与帮写将使用该模型。"}),e.jsx("ul",{className:"mdocs-agent-config-list",children:y.map(l=>e.jsxs("li",{className:"mdocs-agent-config-item",children:[e.jsxs("label",{className:"mdocs-agent-config-item-default",children:[e.jsx("input",{type:"radio",name:"agent-default-config",checked:l.isDefault,disabled:ce!==null,onChange:()=>void Ce(l)}),e.jsx("span",{children:l.isDefault?"默认":"设为默认"})]}),e.jsxs("div",{className:"mdocs-agent-config-item-main",children:[e.jsx("strong",{children:ns(l)}),l.kind==="custom"?e.jsx("span",{className:"mdocs-agent-badge",children:"自定义"}):null,e.jsx("p",{className:"mdocs-agent-config-item-meta",children:l.hasApiKey?`Key ${l.apiKeyMasked??"已配置"}`:"未配置 Key"})]}),e.jsxs("div",{className:"mdocs-agent-config-item-actions",children:[e.jsx("button",{type:"button",className:"secondary small",onClick:()=>ye(l),children:a("edit")}),e.jsx("button",{type:"button",className:"secondary small",onClick:()=>se(l),children:"删除"})]})]},l.id))}),r?e.jsx("p",{className:"mdocs-agent-config-ok",children:a("saved")}):null,q?e.jsx("p",{className:"mdocs-agent-config-error",children:q}):null]}):null,Ie?e.jsxs("div",{className:"mdocs-settings-card mdocs-agent-config-card",children:[e.jsxs("p",{className:"mdocs-agent-config-lead",children:[x==="create"?"新建模型配置。":"编辑模型配置。","可以保存多套,勾选一条作为默认。智能助手和帮写使用默认那套。"]}),e.jsxs("div",{className:"mdocs-agent-form",children:[e.jsxs("div",{className:"mdocs-agent-kind-tabs",role:"tablist","aria-label":"配置方式",children:[e.jsx("button",{type:"button",role:"tab","aria-selected":w==="deepseek",className:w==="deepseek"?"active":"",onClick:()=>A("deepseek"),children:"Deepseek"}),e.jsx("button",{type:"button",role:"tab","aria-selected":w==="custom",className:w==="custom"?"active":"",onClick:()=>A("custom"),children:"自定义"})]}),w==="deepseek"?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:a("agentConfigModel")}),e.jsx(Ye,{options:[...Vt],value:R,onChange:O})]}),e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:a("agentConfigApiKey")}),e.jsxs("div",{className:"mdocs-agent-config-apikey",children:[e.jsx("input",{type:V?"text":"password",value:P,onChange:l=>C(l.target.value),placeholder:F?a("agentConfigApiKeyConfigured").replace("{{masked}}",d??"…"):a("agentConfigApiKeyPlaceholder"),autoComplete:"off"}),e.jsx("button",{type:"button",className:"mdocs-agent-config-eye","aria-label":a(V?"agentConfigHideKey":"agentConfigShowKey"),onClick:()=>$(l=>!l),children:V?"隐藏":"显示"})]})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:"API 地址"}),e.jsx("input",{type:"url",value:m,onChange:l=>{const _=l.target.value;if(D(_),te.current)return;_.toLowerCase().includes("anthropic")?b("anthropic-messages"):b("openai-completions")},placeholder:"https://api.example.com/v1",className:"mdocs-agent-mono"})]}),e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:"Model ID"}),e.jsx("input",{type:"text",value:R,onChange:l=>O(l.target.value),placeholder:"模型名称,如 gpt-4o",className:"mdocs-agent-mono"})]}),e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:a("agentConfigApiKey")}),e.jsxs("div",{className:"mdocs-agent-config-apikey",children:[e.jsx("input",{type:V?"text":"password",value:P,onChange:l=>C(l.target.value),placeholder:F?a("agentConfigApiKeyConfigured").replace("{{masked}}",d??"…"):"粘贴 API Key",autoComplete:"off"}),e.jsx("button",{type:"button",className:"mdocs-agent-config-eye","aria-label":a(V?"agentConfigHideKey":"agentConfigShowKey"),onClick:()=>$(l=>!l),children:V?"隐藏":"显示"})]})]})]}),e.jsxs("details",{className:"mdocs-agent-advanced",open:o,onToggle:l=>E(l.target.open),children:[e.jsx("summary",{children:"高级选项"}),w==="custom"?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:"Provider ID(选填)"}),e.jsx("input",{type:"text",value:N,onChange:l=>f(l.target.value),placeholder:"不填则自动从 API 地址提取域名"})]}),e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:"API 协议"}),e.jsx(Ye,{options:[...Wt],value:M,onChange:l=>{te.current=!0,b(l)}})]})]}):null,e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:a("agentConfigName")}),e.jsx("input",{type:"text",value:I,onChange:l=>c(l.target.value),placeholder:a("agentConfigNameDefault").replace("{{name}}",g||"…")})]}),e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:a("agentConfigContextWindow")}),e.jsx("input",{type:"number",min:1e3,max:2e6,step:1e3,value:L,onChange:l=>k(Number(l.target.value)||1e6)}),e.jsx("p",{className:"mdocs-agent-field-hint",children:a("agentConfigContextWindowDesc")})]})]}),x==="create"&&y.length>0?e.jsxs("label",{className:"mdocs-agent-config-default-check",children:[e.jsx("input",{type:"checkbox",checked:T,onChange:l=>K(l.target.checked)}),e.jsx("span",{children:"保存后设为默认配置"})]}):null,q?e.jsx("p",{className:"mdocs-agent-config-error",children:q}):null,e.jsxs("div",{className:"mdocs-agent-config-actions",children:[e.jsx("button",{type:"button",onClick:()=>void De(),disabled:Z,children:a(Z?"saving":"save")}),y.length>0?e.jsx("button",{type:"button",className:"secondary",onClick:oe,disabled:Z,children:a("cancel")}):null]})]})]}):G?e.jsx("div",{className:"mdocs-settings-card mdocs-agent-config-card",children:e.jsx("p",{className:"mdocs-agent-config-muted",children:a("loading")})}):null]}),W?e.jsx(ms,{title:"删除配置",message:`确定删除「${ns(W)}」?${W.isDefault&&y.length>1?" 删除后将自动把另一条设为默认。":""}`,confirmLabel:"删除",cancelLabel:a("cancel"),onConfirm:()=>void be(),onCancel:()=>se(null)}):null]})}const qt=/^[A-Za-z0-9_]+$/;function Be(a){return qt.test(a.trim())}function Ht(){const a=t.useRef(!0),[s,g]=t.useState([]),[u,y]=t.useState(!0),[z,x]=t.useState(null),[S,v]=t.useState(null),[p,w]=t.useState(!1),[A,I]=t.useState(""),[c,N]=t.useState(""),[f,m]=t.useState(""),[D,M]=t.useState(!1);t.useEffect(()=>(a.current=!0,()=>{a.current=!1}),[]);async function b(){y(!0),x(null);try{const h=await lt();if(!a.current)return;g(h)}catch(h){if(!a.current)return;x(h instanceof Error?h.message:String(h))}finally{a.current&&y(!1)}}t.useEffect(()=>{b()},[]);function R(){w(!0),v(null),I(""),N(""),m(""),x(null)}function O(h){w(!1),v(h.id),I(h.name),N(h.description),m(h.body),x(null)}function L(){w(!1),v(null),I(""),N(""),m("")}async function k(){const h=A.trim();if(!Be(h)){x("名称仅允许英文、数字、下划线");return}if(!f.trim()){x("正文不能为空");return}M(!0),x(null);try{if(p?await ot({name:h,description:c,body:f}):S&&await rt(S,{name:h,description:c,body:f}),!a.current)return;L(),await b()}catch(d){if(!a.current)return;x(d instanceof Error?d.message:String(d))}finally{a.current&&M(!1)}}async function P(h){if(window.confirm("删除该 Skill?已引用的历史轮次将跳过缺失项。")){x(null);try{if(await dt(h),!a.current)return;S===h&&L(),await b()}catch(d){if(!a.current)return;x(d instanceof Error?d.message:String(d))}}}const C=p||S!==null,F=!A.trim()||Be(A);return e.jsxs("div",{className:"mdocs-agent-skills-panel",children:[e.jsxs("div",{className:"mdocs-settings-header",children:[e.jsxs("h2",{className:"mdocs-settings-title",children:["Agent Skills",!u&&s.length>0?e.jsx("span",{className:"mdocs-agent-skills-count",children:s.length}):null]}),C?null:e.jsx("button",{type:"button",className:"secondary",onClick:R,children:"新建"})]}),e.jsx("div",{className:"mdocs-settings-cards",children:e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsx("p",{className:"mdocs-settings-item-desc mdocs-agent-skills-lead",children:"私人提示词宏。名称对本账号唯一,仅英文、数字、下划线;智能助手 / 帮写里按名称引用。"}),z?e.jsx("p",{className:"mdocs-agent-skills-error",children:z}):null,C?e.jsxs("div",{className:"mdocs-agent-skills-form",children:[e.jsx("div",{className:"mdocs-agent-skills-form-head",children:e.jsx("strong",{children:p?"新建 Skill":"编辑 Skill"})}),e.jsxs("label",{className:"mdocs-agent-skills-field",children:[e.jsx("span",{children:"名称"}),e.jsx("input",{type:"text",value:A,onChange:h=>I(h.target.value),maxLength:64,spellCheck:!1,autoComplete:"off",placeholder:"e.g. weekly_report",className:F?void 0:"mdocs-agent-skills-input-invalid"}),F?e.jsx("span",{className:"mdocs-agent-skills-hint",children:"引用与索引键,保存后按此名称使用"}):e.jsx("span",{className:"mdocs-agent-skills-hint-bad",children:"仅允许 A–Z、a–z、0–9、_"})]}),e.jsxs("label",{className:"mdocs-agent-skills-field",children:[e.jsx("span",{children:"简介(可选)"}),e.jsx("input",{type:"text",value:c,onChange:h=>N(h.target.value),maxLength:200,placeholder:"一句话说明用途"})]}),e.jsxs("label",{className:"mdocs-agent-skills-field",children:[e.jsx("span",{children:"正文"}),e.jsx("textarea",{value:f,onChange:h=>m(h.target.value),rows:10,placeholder:"写入 Agent 应遵守的步骤与约束…"})]}),e.jsxs("div",{className:"mdocs-agent-config-actions",children:[e.jsx("button",{type:"button",onClick:()=>void k(),disabled:D||!F||!A.trim()||!f.trim(),children:D?"保存中…":"保存"}),e.jsx("button",{type:"button",className:"secondary",onClick:L,disabled:D,children:"取消"})]})]}):null,u?e.jsx("p",{className:"mdocs-settings-item-desc",children:"加载中…"}):null,!u&&s.length===0&&!C?e.jsxs("div",{className:"mdocs-agent-skills-empty",children:[e.jsx("p",{children:"还没有 Skill"}),e.jsx("button",{type:"button",className:"secondary",onClick:R,children:"新建第一个"})]}):null,!u&&s.length>0?e.jsx("ul",{className:"mdocs-agent-skills-list",children:s.map(h=>{const d=Be(h.name),j=S===h.id;return e.jsxs("li",{className:"mdocs-agent-skills-item"+(j?" mdocs-agent-skills-item-active":""),children:[e.jsxs("div",{className:"mdocs-agent-skills-item-main",children:[e.jsxs("div",{className:"mdocs-agent-skills-item-title-row",children:[e.jsx("code",{className:"mdocs-agent-skills-name",children:h.name}),d?null:e.jsx("span",{className:"mdocs-agent-skills-badge-warn",title:"名称含非法字符,请编辑改为英文数字下划线",children:"需改名"})]}),e.jsx("span",{className:"mdocs-agent-skills-desc",children:h.description.trim()||"无简介"})]}),e.jsxs("div",{className:"mdocs-agent-skills-item-actions",children:[e.jsx("button",{type:"button",className:"secondary small",onClick:()=>O(h),disabled:C&&!j,children:"编辑"}),e.jsx("button",{type:"button",className:"secondary small",onClick:()=>void P(h.id),disabled:C,children:"删除"})]})]},h.id)})}):null]})})]})}const Jt={algorithm:Et.defaultAlgorithm,token:{colorPrimary:"#4CAF50",colorLink:"#4CAF50",colorInfo:"#4CAF50",colorSuccess:"#66BB6A",colorBgBase:"#ffffff",colorBgContainer:"#ffffff",colorText:"#212121",colorTextSecondary:"#616161",colorBorder:"#E0E0E0",colorFillSecondary:"#E8F5E9",borderRadius:8,fontFamily:"inherit"},components:{Table:{headerBg:"#F5F5F5",headerColor:"#212121",rowHoverBg:"#E8F5E9",borderColor:"#E0E0E0"},Button:{primaryShadow:"none"},Tag:{defaultBg:"#F5F5F5",defaultColor:"#616161"}}};function is(a,s){if(!a)return"—";const g=new Date(a);return Number.isNaN(g.getTime())?"—":g.toLocaleString(s==="zh"?"zh-CN":"en-US",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}function Zt(a){const{t:s,lang:g}=ie(),[u,y]=t.useState(!1),[z,x]=t.useState(!1),[S,v]=t.useState(!1),[p,w]=t.useState([]),[A,I]=t.useState([]),[c,N]=t.useState(null),[f,m]=t.useState(null),[D,M]=t.useState(""),[b,R]=t.useState("keyword"),[O,L]=t.useState(null),[k,P]=t.useState(!1),C=t.useRef(0),[F,h]=t.useState({current:1,pageSize:20}),[d,j]=t.useState(0);async function T(){y(!0),m(null);try{const i=await mt();v(i.modelReady),w(i.items),I([]),j(i.items.length),h(r=>({...r,current:1}))}catch(i){m(ee(s,i)||s("embeddingIndexLoadFailed"))}finally{y(!1)}}t.useEffect(()=>{T()},[]);const K=t.useMemo(()=>{const i=new Map;for(const r of p)i.has(r.domainId)||i.set(r.domainId,de(r.domainName,g,s));return Array.from(i.entries()).map(([r,U])=>({text:U,value:r}))},[p,g,s]),G=t.useMemo(()=>{const i=D.trim().toLowerCase();return i?p.filter(r=>(r.displayName||"").toLowerCase().includes(i)||(r.relativePath||"").toLowerCase().includes(i)||r.documentId.toLowerCase().includes(i)):p},[p,D]),J=b==="semantic"&&!!D.trim();t.useEffect(()=>{if(b!=="semantic")return;const i=D.trim();if(!i){C.current+=1,L(null);return}const r=++C.current;P(!0);const U=window.setTimeout(()=>{(async()=>{try{const V=await us({query:i,mode:"semantic",topN:50});if(r!==C.current)return;const $=new Map(p.map(o=>[o.documentId,o]));L(V.results.map(o=>{const E=$.get(o.documentId);return E?{...E,snippet:o.snippet}:{documentId:o.documentId,displayName:o.displayName,relativePath:o.relativePath,domainId:o.domainId,domainName:o.domainId,documentUpdatedAt:o.updatedAt,chunkCount:0,chunkUnknown:!0,embeddingUpdatedAt:null,snippet:o.snippet}}))}catch{r===C.current&&L([])}finally{r===C.current&&P(!1)}})()},300);return()=>window.clearTimeout(U)},[b,D,p]);const Z=J?O??[]:G;t.useEffect(()=>{j(Z.length),h(i=>({...i,current:1}))},[Z.length,b]);const Q=t.useMemo(()=>[{title:s("myDocumentsColTitle"),dataIndex:"displayName",key:"displayName",ellipsis:!0,sorter:(i,r)=>(i.displayName||i.relativePath).localeCompare(r.displayName||r.relativePath,g==="zh"?"zh":"en"),render:(i,r)=>e.jsxs("div",{style:{minWidth:0},children:[e.jsx("button",{type:"button",className:"mdocs-linkish",style:{background:"none",border:"none",padding:0,cursor:"pointer",fontWeight:500,color:"inherit",textAlign:"left"},onClick:()=>a.onOpenDocument(r.documentId),children:r.displayName||r.relativePath||"Untitled"}),r.snippet&&e.jsx("div",{className:"mdocs-embedding-index-snippet",title:r.snippet,children:r.snippet})]})},{title:s("myDocumentsColDomain"),dataIndex:"domainId",key:"domainId",width:160,ellipsis:!0,filters:K,onFilter:(i,r)=>r.domainId===i,sorter:(i,r)=>de(i.domainName,g,s).localeCompare(de(r.domainName,g,s),g==="zh"?"zh":"en"),render:(i,r)=>de(r.domainName,g,s)},{title:s("embeddingIndexColDocUpdated"),dataIndex:"documentUpdatedAt",key:"documentUpdatedAt",width:160,sorter:(i,r)=>new Date(i.documentUpdatedAt).getTime()-new Date(r.documentUpdatedAt).getTime(),defaultSortOrder:"descend",render:i=>is(i,g)},{title:s("embeddingIndexColStatus"),dataIndex:"chunkCount",key:"buildStatus",width:140,filters:[{text:s("embeddingIndexFilterBuilt"),value:"built"},{text:s("embeddingIndexFilterMissing"),value:"missing"}],onFilter:(i,r)=>i==="built"?r.chunkCount>0:r.chunkCount===0,sorter:(i,r)=>i.chunkCount-r.chunkCount,render:(i,r)=>r.chunkUnknown?e.jsx(Le,{color:"success",children:s("embeddingIndexStatusBuiltUnknown")}):i>0?e.jsx(Le,{color:"success",children:s("embeddingIndexStatusReady",{chunks:String(i)})}):e.jsx(Le,{children:s("embeddingIndexStatusMissing")})},{title:s("embeddingIndexColBuiltAt"),dataIndex:"embeddingUpdatedAt",key:"embeddingUpdatedAt",width:160,sorter:(i,r)=>{const U=i.embeddingUpdatedAt?new Date(i.embeddingUpdatedAt).getTime():0,V=r.embeddingUpdatedAt?new Date(r.embeddingUpdatedAt).getTime():0;return U-V},render:i=>is(i,g)}],[K,g,a,s]);async function q(){const i=A.map(String);if(i.length!==0){x(!0),N(null),m(null);try{const r=await ut(i);v(r.modelReady),N(s("embeddingIndexRebuildResult",{ok:String(r.ok.length),skipped:String(r.skipped.length),failed:String(r.failed.length)})),await T()}catch(r){m(ee(s,r)||s("embeddingIndexRebuildFailed"))}finally{x(!1)}}}return e.jsx(Pt,{theme:Jt,children:e.jsxs("div",{className:"mdocs-settings mdocs-embedding-index",children:[e.jsx("div",{className:"mdocs-settings-header",children:e.jsx("h2",{className:"mdocs-settings-title",children:s("embeddingIndex")})}),e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsx("p",{className:"muted",style:{marginTop:0},children:s("embeddingIndexDesc")}),e.jsxs("p",{style:{margin:"0 0 12px",fontSize:13},children:[s("embeddingIndexModel"),":"," ",e.jsx("strong",{children:s(S?"embeddingIndexModelReady":"embeddingIndexModelPending")})]}),e.jsxs(Rt,{wrap:!0,style:{marginBottom:12},children:[e.jsx(Ft,{value:b,"aria-label":s("myDocumentsSearchMode"),onChange:i=>R(i),options:[{label:s("myDocumentsModeKeyword"),value:"keyword"},{label:s("myDocumentsModeSemantic"),value:"semantic"}]}),e.jsx(zt.Search,{allowClear:!0,placeholder:s(b==="semantic"?"embeddingIndexSearchSemanticPlaceholder":"embeddingIndexSearchPlaceholder"),"aria-label":s(b==="semantic"?"embeddingIndexSearchSemanticPlaceholder":"embeddingIndexSearchPlaceholder"),value:D,onChange:i=>M(i.target.value),style:{width:240},disabled:u||z}),e.jsx(Qe,{onClick:()=>void T(),disabled:u||z,children:s("embeddingIndexRefresh")}),e.jsx(Qe,{type:"primary",onClick:()=>void q(),disabled:z||A.length===0,loading:z,children:s("embeddingIndexRebuildSelected",{count:String(A.length)})})]}),c&&e.jsx("p",{style:{fontSize:13,color:"var(--mdocs-text-muted)"},children:c}),f&&e.jsx("p",{className:"mdocs-doc-search-error",style:{marginBottom:8},children:f}),J&&!S&&e.jsx("p",{className:"muted",style:{margin:"0 0 8px",fontSize:13},children:s("myDocumentsSemanticNotReady")}),(()=>{const i=Number(F.pageSize)||20,r=Number(F.current)||1,U=d,V=Math.max(1,Math.ceil(U/i)||1);return e.jsx(Lt,{size:"small",rowKey:"documentId",loading:u||J&&k,columns:Q,dataSource:Z,rowSelection:{selectedRowKeys:A,onChange:$=>I($)},pagination:{current:r,pageSize:i,total:U,showSizeChanger:!1,showQuickJumper:!1,showTotal:($,o)=>s("embeddingIndexPageTotal",{from:String(o[0]??0),to:String(o[1]??0),total:String($)})},onChange:($,o,E,W)=>{const se=$.pageSize??i,ce=W.currentDataSource.length,ae=Math.max(1,Math.ceil(ce/se)||1);let te=$.current??1;te>ae&&(te=ae),j(ce),h({current:te,pageSize:se})},locale:{emptyText:D.trim()?s("myDocumentsNoMatch"):s("embeddingIndexEmpty"),filterReset:s("embeddingIndexFilterReset"),filterConfirm:s("embeddingIndexFilterOk")},scroll:{x:900},footer:()=>e.jsxs("div",{className:"mdocs-embedding-index-pager",style:{display:"flex",flexWrap:"wrap",alignItems:"center",justifyContent:"flex-end",gap:10},children:[e.jsx("span",{style:{fontSize:13},children:s("embeddingIndexPageSize")}),e.jsx(Xe,{size:"small",min:5,max:200,step:5,value:i,controls:!0,changeOnWheel:!0,disabled:u||z,"aria-label":s("embeddingIndexPageSize"),onChange:$=>{if($==null||!Number.isFinite(Number($)))return;const o=Math.min(200,Math.max(5,Math.floor(Number($))));h({current:1,pageSize:o})}}),e.jsx("span",{style:{fontSize:13},children:s("embeddingIndexGoPage")}),e.jsx(Xe,{size:"small",min:1,max:V,step:1,value:Math.min(r,V),controls:!0,changeOnWheel:!0,disabled:u||z||U===0,"aria-label":s("embeddingIndexGoPage"),onChange:$=>{if($==null||!Number.isFinite(Number($)))return;const o=Math.min(V,Math.max(1,Math.floor(Number($))));h(E=>({...E,current:o}))}}),e.jsxs("span",{style:{fontSize:13,color:"var(--mdocs-text-muted)"},children:["/ ",V]})]})})})()]})]})})}function cs(a,s){const g=localStorage.getItem(a);return g===null?s:g==="true"}function Se(a){const s=new Date(a);if(Number.isNaN(s.getTime()))return"—";const g=String(s.getMonth()+1).padStart(2,"0"),u=String(s.getDate()).padStart(2,"0");return`${s.getFullYear()}-${g}-${u}`}function na(a){const{t:s,lang:g,setLang:u}=ie(),{onBack:y,onPublishDraft:z}=a,x=ht(),[S,v]=t.useState(!1);pt(x&&!S,()=>v(!0));const p=t.useRef(!0);t.useEffect(()=>(p.current=!0,()=>{p.current=!1}),[]),t.useEffect(()=>{x||v(!1)},[x]);const[w,A]=t.useState(()=>cs("mdocs.autoPublish",!1)),[I,c]=t.useState(()=>cs("mdocs.autoEdit",!0)),[N,f]=t.useState(!1),[m,D]=t.useState("general");function M(n){D(n),x&&v(!1)}const b=s(m==="general"?"general":m==="bookmarks"?"bookmarkTitle":m==="myDocuments"?"myDocuments":m==="embeddingIndex"?"embeddingIndex":m==="domainManagement"?"domainManagement":m==="memberTemplates"?"memberTemplates":m==="agentConfig"?"agentConfig":"saveAndPublish"),[R,O]=t.useState([]),[L,k]=t.useState(!0),[P,C]=t.useState(null),[F,h]=t.useState(!1),[d,j]=t.useState(!1),[T,K]=t.useState(!1),[G,J]=t.useState(!1),[Z,Q]=t.useState(null),[q,i]=t.useState(!1),[r,U]=t.useState(!1),[V,$]=t.useState(!1),[o,E]=t.useState(""),[W,se]=t.useState(!1),[ce,ae]=t.useState(!1),[te,ne]=t.useState(0),[le,xe]=t.useState([]),[we,ye]=t.useState(!1),[oe,Ce]=t.useState(""),[be,De]=t.useState([]),[Ie,l]=t.useState(!1),[_,je]=t.useState(""),[ue,ps]=t.useState("auto"),[Ne,Te]=t.useState(null),[Ue,Ae]=t.useState(!0),[me,gs]=t.useState(0),[Ke,$e]=t.useState("1"),[Ve,fs]=t.useState(0),[he,xs]=t.useState(""),[Me,ys]=t.useState(""),[ve,bs]=t.useState(""),[js,Ns]=t.useState(null),[vs,ks]=t.useState([]),ke=t.useRef(0),Pe=20,pe=Ne!==null,[We,Ss]=t.useState([]),[ws,Ee]=t.useState(!1),[Re,_e]=t.useState(null),[Fe,Ge]=t.useState(new Map);t.useEffect(()=>{localStorage.setItem("mdocs.autoPublish",String(w))},[w]),t.useEffect(()=>{localStorage.setItem("mdocs.autoEdit",String(I))},[I]),t.useEffect(()=>{m==="savePublish"&&Oe().then(n=>{p.current&&ne(n.filter(B=>!B.published).length)})},[m]),t.useEffect(()=>{m==="bookmarks"&&Cs(),m==="myDocuments"&&(fe(),ds().then(n=>{p.current&&ks(n)}).catch(()=>{}))},[m,he,Me,ve]),t.useEffect(()=>{if(m!=="myDocuments")return;const n=_.trim();if(!n){ke.current+=1,Te(null),Ae(!0);return}const B=++ke.current,Y=window.setTimeout(()=>{(async()=>{try{const H=await us({query:n,mode:ue,domainId:he||void 0,topN:50});if(!p.current||B!==ke.current)return;Te(H.results),Ae(H.modelReady)}catch{if(!p.current||B!==ke.current)return;Te([]),Ae(!0)}})()},300);return()=>window.clearTimeout(Y)},[m,_,ue,he]),t.useEffect(()=>{qe()},[]),t.useEffect(()=>{os().then(n=>{p.current&&Ss(n)}).catch(()=>{})},[]);const ge=new Map(We.map(n=>[n.domainId,n.domainName]));async function qe(){try{k(!0);const n=await gt();if(!p.current)return;O(n)}catch{}finally{p.current&&k(!1)}}async function Cs(){try{ye(!0);const n=await ft();if(!p.current)return;xe(n)}catch{}finally{p.current&&ye(!1)}}async function fe(n=0){try{l(!0);const B=await xt({offset:n*Pe,limit:Pe,domainId:he||void 0,creatorVisitorId:Me||void 0,groupBy:ve||void 0});if(!p.current)return;De(B.items),Ns(B.groups??null),fs(B.total),gs(n),$e(String(n+1))}catch{}finally{p.current&&l(!1)}}async function Ds(n){try{await wt(n),xe(B=>B.filter(Y=>Y.documentId!==n))}catch{}}function Is(){if(R.some(B=>!B.revoked)){j(!0);return}He()}async function He(){try{h(!0);const n=await Dt();C({token:n.token,name:n.name}),await qe()}finally{h(!1)}}async function Ts(){try{$(!0);const n=await kt();Q(n.recoveryCode)}finally{$(!1)}}async function As(n){n.preventDefault();const B=o.trim();if(!(B&&B.length<4))try{se(!0),await St(B),E(""),ae(!0),setTimeout(()=>ae(!1),3e3)}finally{se(!1)}}async function Ms(n){_e(n);try{const B=await Ct(n),Y=new Map;B.forEach(H=>{Y.set(H.visitorId,H.permission)}),Ge(Y)}catch{Ge(new Map)}Ee(!0)}async function Ps(n){if(Re)try{const B=new Set(n.map(H=>H.visitorId)),Y=new Set(Fe.keys());for(const H of Y)B.has(H)||await It(Re,H);for(const H of n)await Tt(Re,H.visitorId,H.permission);await fe()}finally{Ee(!1),_e(null)}}const Je=le.filter(n=>{if(!oe.trim())return!0;const B=oe.toLowerCase();return(n.displayName||n.relativePath||"").toLowerCase().includes(B)||(n.ownerVisitorName||"").toLowerCase().includes(B)||(n.domainId||"").toLowerCase().includes(B)}),re=Math.ceil(Ve/Pe);return e.jsxs("div",{className:"mdocs-layout"+(x?" mdocs-layout--reader mdocs-layout--settings":""),children:[x&&S?e.jsx("button",{type:"button",className:"mdocs-mobile-nav-scrim","aria-label":s("collapseSidebar"),onClick:()=>v(!1)}):null,e.jsxs("aside",{className:"mdocs-sidebar"+(x?S?" mdocs-sidebar--drawer-open":" mdocs-sidebar--drawer":""),children:[e.jsxs("header",{className:"mdocs-sidebar-header",children:[e.jsxs("div",{className:"mdocs-brand",children:[e.jsx("img",{src:yt,alt:s("brand"),className:"mdocs-brand-logo"}),e.jsx("span",{children:s("brand")})]}),x?e.jsx("button",{type:"button",className:"mdocs-sidebar-toggle",onClick:()=>v(!1),"aria-label":s("collapseSidebar"),style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(bt,{size:18})}):null]}),e.jsxs("nav",{className:"mdocs-config-tree",children:[e.jsx("div",{className:"mdocs-config-item"+(m==="general"?" active":""),onClick:()=>M("general"),children:s("general")}),e.jsx("div",{className:"mdocs-config-item"+(m==="bookmarks"?" active":""),onClick:()=>M("bookmarks"),children:s("bookmarkTitle")}),e.jsx("div",{className:"mdocs-config-item"+(m==="myDocuments"?" active":""),onClick:()=>M("myDocuments"),children:s("myDocuments")}),e.jsx("div",{className:"mdocs-config-item"+(m==="embeddingIndex"?" active":""),onClick:()=>M("embeddingIndex"),children:s("embeddingIndex")}),e.jsx("div",{className:"mdocs-config-item"+(m==="domainManagement"?" active":""),onClick:()=>M("domainManagement"),children:s("domainManagement")}),e.jsx("div",{className:"mdocs-config-item"+(m==="memberTemplates"?" active":""),onClick:()=>M("memberTemplates"),children:s("memberTemplates")}),e.jsx("div",{className:"mdocs-config-item"+(m==="agentConfig"?" active":""),onClick:()=>M("agentConfig"),children:s("agentConfig")}),e.jsx("div",{className:"mdocs-config-item"+(m==="savePublish"?" active":""),onClick:()=>M("savePublish"),children:s("saveAndPublish")})]}),e.jsx("footer",{className:"mdocs-settings-sidebar-footer",onClick:y,children:s("backToDocs")})]}),e.jsxs("main",{className:"mdocs-main",children:[x?e.jsxs("div",{className:"mdocs-settings-mobile-bar",children:[e.jsx("button",{type:"button",className:"mdocs-reader-nav-btn",onClick:()=>v(!0),"aria-label":s("expandSidebar"),children:e.jsx(jt,{size:18,strokeWidth:1.75})}),e.jsx("span",{className:"mdocs-settings-mobile-bar-title",children:b})]}):null,Nt(),m==="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:g==="en"?"active":"",onClick:()=>u("en"),children:"EN"}),e.jsx("span",{children:"/"}),e.jsx("button",{type:"button",className:g==="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"+(I?" active":""),role:"switch","aria-checked":I,onClick:()=>c(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")}),!L&&R.length>0&&e.jsx("span",{className:"mdocs-settings-item-desc",style:{marginTop:8,fontSize:"0.85em",opacity:.8},children:R.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:Is,disabled:F||L,children:F?"…":R.some(n=>!n.revoked)?s("cliTokenReset"):s("cliTokenCreate")})]}),P&&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:P.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(P.token),J(!1),K(!0),window.setTimeout(()=>K(!1),2e3)}catch{K(!1),J(!0),window.setTimeout(()=>J(!1),3e3)}})()},children:s(T?"cliTokenCopied":"cliTokenCopy")}),e.jsx("button",{type:"button",onClick:()=>C(null),children:s("close")})]}),T&&e.jsxs("div",{className:"mdocs-settings-copy-feedback mdocs-settings-copy-feedback--ok",role:"status",children:["✓ ",s("cliTokenCopied")]}),G&&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:Ts,disabled:V,children:V?"…":"生成恢复码"})]}),Z&&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:Z})]}),e.jsxs("div",{className:"mdocs-settings-secret-result-actions",children:[e.jsx("button",{type:"button",className:"primary",onClick:()=>{(async()=>{try{await navigator.clipboard.writeText(Z),U(!1),i(!0),window.setTimeout(()=>i(!1),2e3)}catch{i(!1),U(!0),window.setTimeout(()=>U(!1),3e3)}})()},children:q?"已复制":"复制恢复码"}),e.jsx("button",{type:"button",onClick:()=>Q(null),children:s("close")})]}),q&&e.jsx("div",{className:"mdocs-settings-copy-feedback mdocs-settings-copy-feedback--ok",role:"status",children:"✓ 已复制到剪贴板"}),r&&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:As,style:{marginTop:12},children:[e.jsx("input",{type:"password",placeholder:"输入新密码(至少 4 位,留空则清除密码)",value:o,onChange:n=>E(n.target.value),minLength:0,style:{marginBottom:8}}),ce&&e.jsx("div",{style:{color:"#4caf50",marginBottom:8,fontSize:"0.875rem"},children:"✓ 密码设置成功"}),e.jsx("button",{type:"submit",className:"secondary",disabled:W,children:W?"设置中…":"保存密码"})]})]})]})]}):m==="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:oe,onChange:n=>Ce(n.target.value)}),we?e.jsx("div",{style:{textAlign:"center",padding:"40px 0"},children:s("loading")}):e.jsx(e.Fragment,{children:Je.length===0?e.jsx("div",{style:{textAlign:"center",padding:"40px 0",opacity:.6},children:s(oe?"bookmarkNoMatch":"bookmarkEmpty")}):e.jsx("div",{className:"mdocs-settings-table-wrap",children: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:Je.map(n=>e.jsxs("tr",{children:[e.jsx("td",{style:{cursor:"pointer",fontWeight:500},onClick:()=>a.onOpenDocument(n.documentId),children:n.displayName||n.relativePath||"Untitled"}),e.jsx("td",{children:n.isDeleted?e.jsx("span",{style:{opacity:.5,fontStyle:"italic"},children:"已删除"}):ge.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:()=>Ds(n.documentId),children:s("bookmarkRemove")})})]},n.documentId))})]})})})]})]}):m==="myDocuments"?e.jsxs("div",{className:"mdocs-settings mdocs-my-docs",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.jsxs("div",{className:"mdocs-my-docs-toolbar",children:[e.jsxs("div",{className:"mdocs-my-docs-search",children:[e.jsx(vt,{size:16,strokeWidth:2,"aria-hidden":"true"}),e.jsx("input",{type:"text",placeholder:"搜索文章…",value:_,onChange:n=>je(n.target.value)})]}),e.jsxs("select",{className:"mdocs-my-docs-select",value:he,"aria-label":s("myDocumentsFilterDomain"),onChange:n=>xs(n.target.value),children:[e.jsx("option",{value:"",children:s("myDocumentsFilterAllDomains")}),We.map(n=>e.jsx("option",{value:n.domainId,children:ge.get(n.domainId)||n.domainName},n.domainId))]}),e.jsxs("select",{className:"mdocs-my-docs-select",value:ue,"aria-label":s("myDocumentsSearchMode"),onChange:n=>ps(n.target.value),children:[e.jsx("option",{value:"auto",children:s("myDocumentsModeAuto")}),e.jsx("option",{value:"keyword",children:s("myDocumentsModeKeyword")}),e.jsx("option",{value:"semantic",children:s("myDocumentsModeSemantic")})]}),!pe&&e.jsxs("select",{className:"mdocs-my-docs-select",value:Me,"aria-label":s("myDocumentsFilterCreator"),onChange:n=>ys(n.target.value),children:[e.jsx("option",{value:"",children:s("myDocumentsFilterAllCreators")}),vs.map(n=>e.jsx("option",{value:n.visitorId,children:n.visitorName},n.visitorId))]}),!pe&&e.jsxs("select",{className:"mdocs-my-docs-select",value:ve,"aria-label":s("myDocumentsGroupBy"),onChange:n=>bs(n.target.value),children:[e.jsx("option",{value:"",children:s("myDocumentsGroupNone")}),e.jsx("option",{value:"domain",children:s("myDocumentsGroupDomain")}),e.jsx("option",{value:"creator",children:s("myDocumentsGroupCreator")})]})]}),Ie&&!pe?e.jsx("div",{className:"mdocs-my-docs-empty",children:s("loading")}):pe?e.jsx(e.Fragment,{children:Ne.length===0?e.jsx("div",{className:"mdocs-my-docs-empty",children:s(ue==="semantic"&&!Ue?"myDocumentsSemanticNotReady":"myDocumentsNoMatch")}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mdocs-my-docs-search-meta",children:[s("myDocumentsResultCount",{count:String(Ne.length)}),ue==="semantic"&&!Ue?` · ${s("myDocumentsSemanticNotReadyShort")}`:""]}),e.jsx("div",{className:"mdocs-settings-table-wrap",children: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("myDocumentsColCreator")}),e.jsx("th",{children:s("myDocumentsColUpdated")}),e.jsx("th",{children:s("myDocumentsColCreated")}),e.jsx("th",{})]})}),e.jsx("tbody",{children:Ne.map(n=>e.jsxs("tr",{children:[e.jsx("td",{className:"mdocs-my-docs-title",onClick:()=>a.onOpenDocument(n.documentId),children:n.displayName||n.relativePath||"Untitled"}),e.jsx("td",{children:ge.get(n.domainId||"")||n.domainId||"—"}),e.jsx("td",{children:n.ownerVisitorName||"—"}),e.jsx("td",{className:"mdocs-my-docs-date",children:Se(n.updatedAt)}),e.jsx("td",{className:"mdocs-my-docs-date",children:n.createdAt?Se(n.createdAt):"—"}),e.jsx("td",{className:"mdocs-my-docs-actions",children:e.jsx("button",{type:"button",className:"primary small",onClick:()=>a.onOpenDocument(n.documentId),children:s("bookmarkOpen")})})]},n.documentId))})]})})]})}):e.jsxs(e.Fragment,{children:[be.length===0?e.jsx("div",{className:"mdocs-my-docs-empty",children:s(_?"myDocumentsNoMatch":"myDocumentsEmpty")}):e.jsx("div",{className:"mdocs-settings-table-wrap",children: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("myDocumentsColCreator")}),e.jsx("th",{children:s("myDocumentsColUpdated")}),e.jsx("th",{children:s("myDocumentsColCreated")}),e.jsx("th",{})]})}),e.jsx("tbody",{children:(js??[{key:"",items:be}]).flatMap(n=>{var H;const B=n.key?e.jsx("tr",{className:"mdocs-my-docs-group",children:e.jsx("td",{colSpan:6,children:ve==="domain"?ge.get(n.key)||n.key:((H=n.items[0])==null?void 0:H.creatorName)||n.key})},`group-${n.key}`):null,Y=n.items.map(X=>e.jsxs("tr",{children:[e.jsx("td",{className:"mdocs-my-docs-title",onClick:()=>a.onOpenDocument(X.documentId),children:X.displayName||X.relativePath||"Untitled"}),e.jsx("td",{children:ge.get(X.domainId||"")||X.domainId||"—"}),e.jsx("td",{children:X.creatorName||X.creatorVisitorId||"—"}),e.jsx("td",{className:"mdocs-my-docs-date",children:Se(X.updatedAt)}),e.jsx("td",{className:"mdocs-my-docs-date",children:Se(X.createdAt)}),e.jsxs("td",{className:"mdocs-my-docs-actions",children:[e.jsx("button",{type:"button",className:"ghost small",onClick:()=>Ms(X.documentId),children:s("docInfoInviteMember")}),e.jsx("button",{type:"button",className:"primary small",onClick:()=>a.onOpenDocument(X.documentId),children:s("bookmarkOpen")})]})]},X.documentId));return B?[B,...Y]:Y})})]})}),!pe&&e.jsxs("div",{className:"mdocs-my-docs-footer",children:[e.jsx("span",{className:"mdocs-settings-page-info",children:s("myDocumentsPageInfo",{current:String(re>0?me+1:0),total:String(re),count:String(Ve)})}),re>1&&e.jsxs("form",{className:"mdocs-my-docs-jump",onSubmit:n=>{n.preventDefault();const B=Number.parseInt(Ke,10);if(!Number.isFinite(B))return;const Y=Math.min(Math.max(B,1),re)-1;Y!==me&&fe(Y)},children:[e.jsx("span",{children:s("myDocumentsJumpTo")}),e.jsx("input",{type:"number",inputMode:"numeric",min:1,max:re,"aria-label":s("myDocumentsJumpTo"),value:Ke,onChange:n=>$e(n.target.value)}),e.jsx("button",{type:"submit",className:"secondary small",children:s("myDocumentsJump")})]}),re>1&&e.jsxs("div",{className:"mdocs-settings-pagination",children:[e.jsx("button",{type:"button",className:"secondary small",disabled:me<=0,onClick:()=>fe(me-1),children:s("myDocumentsPrev")}),e.jsx("button",{type:"button",className:"secondary small",disabled:me>=re-1,onClick:()=>fe(me+1),children:s("myDocumentsNext")})]})]})]})]})]}):m==="embeddingIndex"?e.jsx(Zt,{onOpenDocument:a.onOpenDocument}):m==="domainManagement"?e.jsx(Kt,{}):m==="memberTemplates"?e.jsx($t,{}):m==="agentConfig"?e.jsxs("div",{className:"mdocs-settings",children:[e.jsx(Gt,{}),e.jsx(Ht,{})]}):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:y,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"+(w?" active":""),role:"switch","aria-checked":w,onClick:()=>A(n=>!n),children:e.jsx("span",{className:"mdocs-toggle-knob"})})]})}),te>0?e.jsxs("button",{className:"mdocs-settings-card mdocs-settings-draft-link",onClick:()=>f(!0),children:[e.jsxs("span",{className:"mdocs-settings-draft-link-text",children:["📄 ",s("viewDrafts")," (",te,")"]}),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")})})]})]}),N&&e.jsx(Ot,{onPublish:z,onClose:()=>f(!1),onCountChange:ne,onRecover:a.onRecoverDraft})]}),d&&e.jsx(ms,{title:s("cliToken"),message:s("cliTokenResetConfirm"),confirmLabel:s("cliTokenReset"),cancelLabel:s("cancel"),busy:F,onConfirm:()=>{j(!1),He()},onCancel:()=>j(!1)}),e.jsx(hs,{open:ws,title:s("docInfoInviteMember"),initialSelectedIds:[...Fe.keys()],initialPermissions:Fe,templates:[],showPermissionSelect:!0,permissionOptions:[{value:"read",label:s("invitePermissionRead")},{value:"edit",label:s("invitePermissionEdit")}],onClose:()=>Ee(!1),onConfirm:n=>{Ps(n)}})]})}export{na as SettingsPage};
|
|
1
|
+
import{r as t,j as e}from"./react-vendor-BVS1XoFi.js";import{c as ie,$ as Es,a0 as Rs,V as Fs,l as de,a1 as zs,a2 as Ls,a3 as ee,a4 as Oe,a5 as Bs,a6 as Os,a7 as Us,a as Ks,d as Ze,a8 as ls,a9 as os,aa as $s,ab as Vs,ac as Ws,ad as _s,ae as Gs,af as rs,ag as ze,ah as qs,ai as Hs,aj as Js,X as Zs,ak as Ys,al as Qs,f as ds,am as Xs,an as et,ao as st,ap as tt,aq as at,ar as ms,as as nt,at as it,au as ct,av as lt,aw as ot,ax as rt,ay as dt,az as us,aA as mt,aB as ut,aC as ht,aD as pt,aE as gt,aF as ft,aG as xt,aH as yt,aI as bt,U as jt,aJ as Nt,aK as vt,aL as kt,aM as St,r as wt,j as Ct,aN as Dt,k as It,m as Tt}from"./index-DNb6Q69l.js";import{V as hs,a as At,M as Ye}from"./VisitorPickerModal-BTmTrqrT.js";import{C as Mt}from"./check-CnsclxvV.js";import{ai as Le,aj as Pt,ak as Et,al as Rt,am as Ft,an as zt,ao as Qe,ap as Lt,aq as Xe}from"./ui-CEFkTVnG.js";import"./diagram-BF8g9yg4.js";import"./motion-BAXVQJfN.js";function Bt({draft:a,onClose:s,onSuccess:g}){const{t:u,lang:y}=ie(),[z,x]=t.useState([]),[S,v]=t.useState(a.domainId??""),[p,w]=t.useState([]),[A,I]=t.useState(""),[c,N]=t.useState(`${a.displayName||"untitled"}_recovered.md`),[f,m]=t.useState(!1),[D,M]=t.useState(null),b=t.useRef(null),R=t.useRef(!0);t.useEffect(()=>(R.current=!0,()=>{R.current=!1}),[]),t.useEffect(()=>{Es().then(k=>{R.current&&x(k)})},[]),t.useEffect(()=>{S&&(w([]),I(""),Rs(S).then(k=>{R.current&&w(k)}).catch(()=>{R.current&&w([])}))},[S]),t.useEffect(()=>{const k=window.setTimeout(()=>{var P;return(P=b.current)==null?void 0:P.focus()},0);return()=>window.clearTimeout(k)},[]),t.useEffect(()=>{const k=P=>{P.key==="Escape"&&s()};return window.addEventListener("keydown",k),()=>window.removeEventListener("keydown",k)},[s]);function O(k,P){for(const C of k){if(C.type==="folder"&&C.path===P)return C.documentId;if(C.type==="folder"){const F=O(C.children,P);if(F)return F}}return null}async function L(k){k.preventDefault(),m(!0),M(null);const P=c.replace(/\s+/g,"_").replace(/[^a-zA-Z0-9_\-.]/g,""),C=P.endsWith(".md")?P:P+".md",F=C.replace(/\.md$/i,"");try{const h=A?`${A}/${C}`:C,d=A?O(p,A)??void 0:void 0;await Ls({fileName:C,displayName:F,content:a.content,domainId:S,parentId:d}),g()}catch(h){M(ee(u,h))}finally{m(!1)}}return e.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:k=>{k.target===k.currentTarget&&!f&&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:a.displayName||u("unknownTitle")})}),e.jsxs("form",{onSubmit:L,className:"mdocs-dialog-form",children:[e.jsxs("label",{className:"mdocs-dialog-label",children:[u("domainLabel"),z.length>0&&e.jsx(Fs,{domains:z,value:S,onChange:v,onDomainsChange:x,ariaLabel:u("domainLabel"),localizeName:k=>de(k,y,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(zs,{nodes:p,activeDocumentId:null,selectedParentPath:A,onOpen:()=>{},onOpenFolder:k=>I(k),onContextMenu:()=>{},onDeselect:()=>I("")})})]}),e.jsxs("label",{className:"mdocs-dialog-label",children:[u("fileNameLabel"),e.jsx("input",{ref:b,value:c,onChange:k=>N(k.target.value),placeholder:"recovered.md",maxLength:200,disabled:f})]}),D&&e.jsx("div",{className:"mdocs-dialog-error",children:D}),e.jsxs("div",{className:"mdocs-dialog-actions",children:[e.jsx("button",{type:"button",onClick:()=>!f&&s(),disabled:f,children:u("cancel")}),e.jsx("button",{type:"submit",className:"primary",disabled:f,children:u(f?"creating":"create")})]})]})]})})}function Ot({onPublish:a,onClose:s,onCountChange:g,onRecover:u}){const{t:y}=ie(),[z,x]=t.useState([]),[S,v]=t.useState(new Set),[p,w]=t.useState(!1),[A,I]=t.useState(null),[c,N]=t.useState(null),[f,m]=t.useState(null),D=t.useRef(null),M=t.useRef(!0);t.useEffect(()=>(M.current=!0,Oe().then(d=>{if(!M.current)return;const j=d.filter(T=>!T.published);x(j),g==null||g(j.length)}),()=>{M.current=!1,D.current&&(clearTimeout(D.current),D.current=null)}),[]),t.useEffect(()=>{const d=j=>{j.key==="Escape"&&s()};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[s]);const b=t.useCallback((d,j)=>{m({message:d,type:j}),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>m(null),3e3)},[]);async function R(d){await Os(d),v(j=>new Set(j).add(d));try{await a(d),x(j=>{const T=j.filter(K=>K.documentId!==d);return g==null||g(T.length),T}),b(y("published"),"success")}catch(j){j instanceof Us||b(y("publishFailed"),"error");const T=await Ks(d);T&&x(K=>K.map(G=>G.documentId===d?T:G))}finally{v(j=>{const T=new Set(j);return T.delete(d),T})}}async function O(d){I(null),await Ze(d),x(j=>{const T=j.filter(K=>K.documentId!==d);return g==null||g(T.length),T}),b(y("draftDeleted"),"success")}function L(d){const j=z.find(T=>T.documentId===d);j&&N(j)}function k(d){N(null),Ze(d),x(j=>{const T=j.filter(K=>K.documentId!==d);return g==null||g(T.length),T}),u==null||u(z.find(j=>j.documentId===d)),b(y("published"),"success")}async function P(){w(!0);let d=0,j=0;for(const G of z)try{await a(G.documentId),d++}catch{j++}const K=(await Oe()).filter(G=>!G.published);x(K),g==null||g(K.length),j===0?b(y("publishAll"),"success"):b(`${d} published, ${j} failed`,"error"),w(!1)}const C=d=>new Date(d).toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),F=d=>Bs(y,d,d.publishError??"UNKNOWN"),h=z;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:[y("unpublishedDrafts"),h.length>0&&e.jsx("span",{className:"mdocs-drawer-count-badge",children:h.length})]}),e.jsx("span",{className:"mdocs-drawer-subtitle",children:y("draftCount",{count:String(h.length)})})]}),e.jsx("button",{type:"button",className:"mdocs-drawer-close-btn",onClick:s,"aria-label":y("close"),children:"×"})]}),e.jsx("div",{className:"mdocs-drawer-body",children:h.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:y("draftsEmptyState")})]}):e.jsx("div",{className:"mdocs-drawer-items",children:h.map(d=>{const j=!!d.publishError;return e.jsxs("div",{className:j?"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:d.displayName||y("unknownTitle")}),j?e.jsxs("span",{className:"mdocs-drawer-item-error",children:[C(d.publishErrorAt)," · ",F(d)]}):e.jsxs("span",{className:"mdocs-drawer-item-meta",children:[C(d.updatedAt)," · ",y("localSnapshot")]})]}),e.jsxs("div",{className:"mdocs-drawer-item-actions",children:[j?e.jsx("button",{type:"button",className:"mdocs-btn-ghost mdocs-btn-ghost-primary",disabled:p,onClick:()=>L(d.documentId),children:y("recoverDraft")}):e.jsx("button",{type:"button",className:"mdocs-btn-ghost mdocs-btn-ghost-primary",disabled:S.has(d.documentId)||p,onClick:()=>void R(d.documentId),children:S.has(d.documentId)?y("publishing"):y("publish")}),e.jsx("button",{type:"button",className:"mdocs-btn-ghost mdocs-btn-ghost-danger",disabled:p,onClick:()=>I(d.documentId),children:y("delete")})]})]},d.documentId)})})}),e.jsxs("footer",{className:"mdocs-drawer-footer",children:[e.jsx("button",{type:"button",onClick:s,children:y("close")}),e.jsx("button",{type:"button",className:"primary",disabled:h.length===0||p,onClick:()=>void P(),children:p?y("publishing"):`${y("publishAll")} (${h.length})`})]}),f&&e.jsx("div",{className:"mdocs-drawer-toast mdocs-drawer-toast--"+f.type,role:"status",children:f.message})]}),A&&e.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:d=>{d.target===d.currentTarget&&I(null)},children:e.jsxs("div",{className:"mdocs-dialog card",role:"dialog","aria-modal":"true",children:[e.jsx("h1",{children:y("delete")}),e.jsx("p",{className:"muted",children:y("confirmDeleteDraft")}),e.jsxs("div",{className:"mdocs-dialog-actions",children:[e.jsx("button",{type:"button",onClick:()=>I(null),children:y("cancel")}),e.jsx("button",{type:"button",className:"danger",onClick:()=>void O(A),children:y("delete")})]})]})}),c&&e.jsx(Bt,{draft:c,onClose:()=>N(null),onSuccess:()=>k(c.documentId)})]})}function Ut(){const{t:a,lang:s}=ie(),g=ls(),u=t.useRef(!1),[y,z]=t.useState([]),[x,S]=t.useState(!1),[v,p]=t.useState(""),[w,A]=t.useState("restricted"),[I,c]=t.useState(!1),[N,f]=t.useState(null),[m,D]=t.useState(null),[M,b]=t.useState(""),[R,O]=t.useState(""),[L,k]=t.useState("all"),[P,C]=t.useState(null);t.useEffect(()=>(u.current=!0,()=>{u.current=!1}),[]);const F=t.useCallback(async()=>{S(!0),f(null);try{const i=await os();if(!u.current)return;z(i)}catch(i){if(!u.current)return;f(ee(a,i))}finally{u.current&&S(!1)}},[a]);t.useEffect(()=>{F()},[F]);async function h(i){if(i.preventDefault(),!v.trim()){f(a("domainNameRequired"));return}c(!0),f(null);try{if(await Gs({domainName:v.trim(),permission:w}),!u.current)return;p(""),A("restricted"),await F()}catch(r){if(!u.current)return;f(ee(a,r))}finally{u.current&&c(!1)}}async function d(i){if(M.trim()){f(null);try{if(await _s(i,M.trim()),!u.current)return;D(null),C(null),await F()}catch(r){if(!u.current)return;f(ee(a,r))}}}function j(i){D(i.domainId),b(i.domainName),C(null)}function T(){D(null),C(null)}async function K(i,r){f(null);try{if(await Ws(i,r),!u.current)return;C(null),await F()}catch(U){if(!u.current)return;f(ee(a,U))}}async function G(i){if(window.confirm(a("deleteDomainConfirmDetail",{name:i.domainName,count:String(i.docCount)}))){f(null);try{if(await Vs(i.domainId),!u.current)return;await F()}catch(r){if(!u.current)return;f(ee(a,r))}}}const J=t.useCallback(i=>$s(i,a),[a]),Z=t.useCallback(i=>de(i.domainName,s,a),[s,a]),Q=t.useMemo(()=>{const i=R.trim().toLowerCase();return y.filter(r=>L!=="all"&&r.permission!==L?!1:i?de(r.domainName,s,a).toLowerCase().includes(i)||r.domainName.toLowerCase().includes(i):!0)},[y,R,L,s,a]),q=t.useCallback((i,r)=>{const U=J(i.permission);return r?`${U} ${a("domainTypeBuiltinSuffix")}`:U},[J,a]);return{domains:y,loadingDomains:x,domainError:N,newDomainName:v,setNewDomainName:p,newDomainPermission:w,setNewDomainPermission:A,creating:I,handleCreateDomain:h,renamingId:m,setRenamingId:D,renameDraft:M,setRenameDraft:b,startRename:j,cancelRename:T,handleRename:d,changeTypeForId:P,setChangeTypeForId:C,handlePermissionChange:K,handleDelete:G,domainSearch:R,setDomainSearch:O,domainFilter:L,setDomainFilter:k,filteredDomains:Q,visitorId:g,plabel:J,localizeDomain:Z,domainTypeLabel:q}}const es={private:0,restricted:1,public:2};function ss(a){return Object.prototype.hasOwnProperty.call(es,a)?es[a]:null}function ts(a,s){const g=ss(a),u=ss(s);return g===null||u===null?"invalid":u>g?"upgrade":u<g?"downgrade":"same"}function Kt(){const{t:a}=ie(),s=Ut(),[g,u]=t.useState([]),[y,z]=t.useState(null),[x,S]=t.useState(""),v=t.useRef(null),[p,w]=t.useState(null),A=t.useCallback(async()=>{try{const c=await rs();u(c)}catch{u([])}},[]);t.useEffect(()=>{A()},[A]),t.useEffect(()=>{if(!s.changeTypeForId)return;const c=N=>{var f;(f=v.current)!=null&&f.contains(N.target)||s.setChangeTypeForId(null)};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[s.changeTypeForId,s.setChangeTypeForId]);async function I(c){z(null);try{const N=await Qs(c.domainId);w({domainId:c.domainId,creatorVisitorId:c.creatorVisitorId,initialIds:N.map(f=>f.visitorId),memberRows:N})}catch(N){z({kind:"err",text:translateError(a,N)})}}return e.jsxs("div",{className:"mdocs-settings",children:[e.jsx("div",{className:"mdocs-settings-header",children:e.jsx("h2",{className:"mdocs-settings-title",children:a("domainManagement")})}),e.jsx("p",{className:"mdocs-domain-mgmt-restricted-hint",children:a("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:a("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:a("domainName")}),e.jsx("input",{value:s.newDomainName,onChange:c=>s.setNewDomainName(c.target.value),placeholder:a("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:a("domainPermission")}),e.jsx("div",{className:"mdocs-domain-mgmt-type-radios",children:ze.map(c=>e.jsxs("label",{className:"mdocs-domain-mgmt-radio",children:[e.jsx("input",{type:"radio",name:"newDomainPermission",checked:s.newDomainPermission===c,onChange:()=>s.setNewDomainPermission(c),disabled:s.creating}),e.jsx("span",{children:s.plabel(c)})]},c))})]}),e.jsx("button",{type:"submit",className:"primary mdocs-domain-mgmt-submit",disabled:s.creating,children:s.creating?a("creating"):a("create")})]})]}),y&&e.jsx("div",{className:"mdocs-settings-card",style:{color:y.kind==="ok"?"var(--mdocs-success, #0a7)":"var(--mdocs-danger)"},children:e.jsx("span",{className:"mdocs-settings-item-desc",children:y.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:c=>s.setDomainSearch(c.target.value),placeholder:a("domainSearchPlaceholder"),className:"mdocs-domain-mgmt-search","aria-label":a("domainSearchPlaceholder")}),e.jsx("div",{className:"mdocs-domain-mgmt-filters",role:"group","aria-label":a("domainPermission"),children:["all",...ze].map(c=>e.jsx("button",{type:"button",className:"mdocs-domain-mgmt-filter"+(s.domainFilter===c?" active":""),"aria-pressed":s.domainFilter===c,onClick:()=>s.setDomainFilter(c),children:c==="all"?a("domainFilterAll"):s.plabel(c)},c))})]}),s.loadingDomains?e.jsx("div",{className:"mdocs-settings-card",children:e.jsx("span",{className:"mdocs-settings-item-desc",children:a("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:a("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:a("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:a("domainColName")}),e.jsx("th",{scope:"col",children:a("domainColType")}),e.jsx("th",{scope:"col",className:"mdocs-domain-table-num",children:a("domainColDocCount")}),e.jsx("th",{scope:"col",children:a("domainColActions")})]})}),e.jsx("tbody",{children:s.filteredDomains.map(c=>{const N=qs(c,s.visitorId),f=Hs(c.domainId),m=Js(c),D=ts(c.permission,"public")==="upgrade",M=D?m?a("domainTooltipTypeLocked"):void 0:a("domainPermissionAlreadyTop");return e.jsxs("tr",{className:f?"mdocs-domain-table-row-builtin":void 0,children:[e.jsx("td",{children:s.renamingId===c.domainId?e.jsxs("div",{className:"mdocs-domain-table-rename",children:[e.jsx("input",{value:s.renameDraft,onChange:b=>s.setRenameDraft(b.target.value),maxLength:100,autoFocus:!0,className:"mdocs-domain-name-input"}),e.jsx("button",{type:"button",className:"primary",onClick:()=>void s.handleRename(c.domainId),children:a("save")}),e.jsx("button",{type:"button",onClick:s.cancelRename,children:a("cancel")})]}):e.jsxs("div",{className:"mdocs-domain-table-name-cell",children:[e.jsx("span",{className:"mdocs-domain-table-name",children:s.localizeDomain(c)}),f&&e.jsx("span",{className:"mdocs-domain-badge-builtin",children:a("domainBuiltIn")}),!N&&!f&&e.jsx("span",{className:"mdocs-domain-badge-shared",children:a("shared")})]})}),e.jsx("td",{children:e.jsx("span",{className:"mdocs-domain-table-type",title:M,children:e.jsx("span",{className:"mdocs-domain-permission-badge","data-permission":c.permission,children:s.domainTypeLabel(c,f)})})}),e.jsx("td",{className:"mdocs-domain-table-num",children:c.docCount}),e.jsxs("td",{className:"mdocs-domain-table-actions",children:[f&&e.jsx("span",{className:"mdocs-domain-not-modifiable",children:a("domainNotModifiable")}),!f&&!N&&e.jsx("span",{className:"mdocs-domain-not-creator-inline",children:a("domainNotCreator")}),!f&&N&&s.changeTypeForId===c.domainId&&e.jsxs("div",{className:"mdocs-domain-change-type-panel",ref:v,children:[e.jsx("div",{className:"mdocs-domain-type-segment",role:"radiogroup","aria-label":a("domainChangeType"),children:ze.map(b=>{const O=ts(c.permission,b)==="downgrade";return e.jsx("span",{title:O?a("domainPermissionNoDowngrade"):void 0,children:e.jsx("button",{type:"button",role:"radio","aria-checked":x===b,className:x===b?"active":"",disabled:O,onClick:()=>S(b),children:s.plabel(b)})},b)})}),e.jsx("button",{type:"button",className:"mdocs-domain-type-icon confirm","aria-label":a("save"),disabled:x===""||x===c.permission,onClick:()=>{x&&x!==c.permission&&s.handlePermissionChange(c.domainId,x)},children:e.jsx(Mt,{size:14,strokeWidth:2.5})}),e.jsx("button",{type:"button",className:"mdocs-domain-type-icon cancel","aria-label":a("cancel"),onClick:()=>s.setChangeTypeForId(null),children:e.jsx(Zs,{size:14,strokeWidth:2.5})})]}),!f&&N&&s.renamingId!==c.domainId&&s.changeTypeForId!==c.domainId&&e.jsxs("div",{className:"mdocs-domain-action-buttons",children:[c.permission==="restricted"&&e.jsx("button",{type:"button",className:"mdocs-domain-action mdocs-domain-action--primary",onClick:()=>void I(c),children:a("domainMembersManageButton")}),e.jsx("button",{type:"button",className:"mdocs-domain-action",title:m?a("domainLocked"):void 0,onClick:()=>{s.setChangeTypeForId(null),s.startRename(c)},disabled:m,children:a("rename")}),e.jsx("button",{type:"button",className:"mdocs-domain-action",title:M,onClick:()=>{s.setRenamingId(null),S(c.permission),s.setChangeTypeForId(c.domainId)},disabled:!D,children:a("domainChangeType")}),e.jsx("button",{type:"button",className:"mdocs-domain-action mdocs-domain-action--danger",title:m?a("domainLocked"):void 0,onClick:()=>void s.handleDelete(c),disabled:m,children:a("deleteDomain")})]})]})]},c.domainId)})})]})})]}),e.jsx(hs,{open:p!==null,title:a("domainMembersPickerTitle"),initialSelectedIds:(p==null?void 0:p.initialIds)??[],lockedIds:p?[p.creatorVisitorId]:[],seedMembers:p==null?void 0:p.memberRows,templates:g,onClose:()=>w(null),onConfirm:async c=>{p&&(await Ys(p.domainId,c),z({kind:"ok",text:a("domainMembersSaved",{count:String(c.length)})}))}})]})}function as(a){return a.length<=6?a:`${a.slice(0,6)}…`}function $t(){const{t:a}=ie(),s=t.useRef(!0),[g,u]=t.useState([]),[y,z]=t.useState(!0),[x,S]=t.useState(null),[v,p]=t.useState(1),[w,A]=t.useState(null),[I,c]=t.useState(""),[N,f]=t.useState([]),[m,D]=t.useState(!1),[M,b]=t.useState(null),[R,O]=t.useState(!1),L=ls(),[k,P]=t.useState([]),[C,F]=t.useState("idle"),[h,d]=t.useState("");t.useEffect(()=>(s.current=!0,()=>{s.current=!1}),[]),t.useEffect(()=>{F("loading"),ds().then(o=>{s.current&&(P(o),F("ok"))}).catch(()=>{s.current&&F("err")})},[]);const j=t.useMemo(()=>{const o=new Map;for(const E of k)o.set(E.visitorId,E.visitorName);return o},[k]),T=t.useCallback(async()=>{z(!0),b(null);try{const o=await rs();s.current&&u(o)}catch(o){s.current&&b(ee(a,o))}finally{s.current&&z(!1)}},[a]);t.useEffect(()=>{T()},[T]);const K=t.useMemo(()=>N.map(o=>{const E=k.find(W=>W.visitorId===o);return{visitorId:o,name:E?E.visitorName:a("visitorPickerUnknownVisitor"),muted:!E}}),[N,k,a]);function G(o){f(E=>E.includes(o)?E.filter(W=>W!==o):[...E,o])}const J=v===1?I.trim().length>0:v===2?N.length>0:!0;function Z(){if(!(v>=3)){if(!J){O(!0);return}O(!1),p(v+1),d("")}}function Q(){v<=1||(O(!1),p(v-1))}function q(){S(null),A(null),c(""),f(L?[L]:[]),b(null),p(1),d(""),O(!1)}function i(o){S(null),A(o.id),c(o.displayName);const E=L&&!o.visitorIds.includes(L)?[...o.visitorIds,L]:[...o.visitorIds];f(E),b(null),p(1),d(""),O(!1)}async function r(){if(!(!I.trim()||N.length===0)){D(!0),b(null);try{if(w===null?await Xs({displayName:I.trim(),visitorIds:N}):await et(w,{displayName:I.trim(),visitorIds:N}),!s.current)return;q(),await T()}catch(o){if(!s.current)return;b(ee(a,o))}finally{s.current&&D(!1)}}}async function U(o){D(!0),b(null);try{if(await st(o),!s.current)return;S(null),w===o&&q(),await T()}catch(E){if(!s.current)return;b(ee(a,E))}finally{s.current&&D(!1)}}const V=[{key:1,label:a("memberTemplateStepName")},{key:2,label:a("memberTemplateStepMembers")},{key:3,label:a("memberTemplateStepSave")}],$=`${(v-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:a(w!==null?"memberTemplateUpdate":"memberTemplateFormNew")}),w!==null&&e.jsx("button",{type:"button",className:"secondary",onClick:q,style:{fontSize:12},children:a("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:$}})}),e.jsx("div",{className:"mdocs-wizard-progress-steps",children:V.map(o=>{const E=v===o.key,W=v>o.key;return e.jsxs("div",{className:"mdocs-wizard-step-indicator",children:[e.jsx("div",{className:`mdocs-wizard-step-circle${E?" current":""}${W?" done":""}`,children:W?"✓":o.key}),e.jsx("span",{className:`mdocs-wizard-step-label${E?" current":""}${W?" done":""}`,children:o.label})]},o.key)})})]}),M&&e.jsx("div",{className:"mdocs-settings-item-desc",style:{color:"var(--mdocs-danger)",marginBottom:12,marginTop:12},children:M}),e.jsxs("div",{className:"mdocs-settings-cards",children:[e.jsxs("div",{className:"mdocs-settings-card mdocs-wizard-card",children:[v===1&&e.jsxs("div",{className:"mdocs-wizard-step-content",children:[e.jsx("input",{className:"mdocs-wizard-name-input",value:I,onChange:o=>c(o.target.value),placeholder:a("memberTemplateNamePlaceholder"),maxLength:200,disabled:m,autoFocus:!0,"aria-invalid":R&&!I.trim()}),R&&!I.trim()&&e.jsx("p",{className:"mdocs-wizard-hint",style:{color:"var(--mdocs-danger)"},children:a("domainNameRequired")})]}),v===2&&e.jsxs("div",{className:"mdocs-wizard-step-content",children:[e.jsx(At,{visitors:k,loadState:C,searchFilter:h,onSearchChange:d,selectedIds:new Set(N),onToggle:G,selectedRows:K,myVisitorId:L}),e.jsx("p",{className:`mdocs-wizard-hint${R&&N.length===0?" danger":""}`,children:"💡 "+a("memberTemplateStep2Hint")})]}),v===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:a("memberTemplateNameLabel")}),e.jsx("span",{className:"mdocs-wizard-preview-value",children:I})]}),e.jsxs("div",{className:"mdocs-wizard-preview-row",children:[e.jsx("span",{className:"mdocs-wizard-preview-label",children:a("memberTemplateIdsLabel")}),e.jsx("span",{className:"mdocs-wizard-preview-value",children:a("memberTemplateSelectedSummary",{count:String(N.length)})})]}),N.length>0&&e.jsxs("div",{className:"mdocs-wizard-preview-tags",children:[N.slice(0,15).map(o=>e.jsx("span",{className:"mdocs-wizard-preview-tag",children:as(o)},o)),N.length>15&&e.jsxs("span",{className:"mdocs-wizard-preview-tag mdocs-wizard-preview-tag-more",children:["+",N.length-15]})]})]})}),e.jsxs("div",{className:"mdocs-wizard-footer",children:[e.jsxs("button",{type:"button",className:"secondary",onClick:Q,children:["← ",a("memberTemplateWizardBack")]}),v<3?e.jsxs("button",{type:"button",className:"primary",onClick:Z,children:[a("memberTemplateWizardNext")," →"]}):e.jsx("button",{type:"button",className:"primary",onClick:()=>void r(),children:a(m?"saving":w===null?"memberTemplateCreate":"memberTemplateUpdate")})]})]}),e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsx("div",{className:"mdocs-settings-card-title",children:a("memberTemplateSavedList")}),y?e.jsx("span",{className:"mdocs-settings-item-desc",children:a("loading")}):g.length===0?e.jsxs("div",{className:"mdocs-member-template-empty",children:[e.jsx("span",{className:"mdocs-settings-item-desc",children:a("memberTemplateEmpty")}),w===null&&e.jsx("button",{type:"button",className:"primary",onClick:q,children:a("memberTemplateEmptyAction")})]}):e.jsx("ul",{className:"mdocs-member-template-list",children:g.map(o=>e.jsx("li",{className:"mdocs-member-template-row",children:x===o.id?e.jsxs("div",{className:"mdocs-member-template-confirm-row",children:[e.jsx("span",{className:"mdocs-member-template-confirm-text",children:a("memberTemplateConfirmDeleteDesc",{name:o.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 U(o.id),children:a(m?"saving":"memberTemplateConfirmDeleteSubmit")}),e.jsx("button",{type:"button",className:"secondary",onClick:()=>S(null),children:a("memberTemplateConfirmDeleteCancel")})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mdocs-member-template-row-head",children:[e.jsx("strong",{children:o.displayName}),e.jsx("span",{className:"mdocs-settings-item-desc",children:a("memberTemplateCount",{count:String(o.visitorIds.length)})}),o.visitorIds.length>0&&e.jsx("div",{className:"mdocs-member-template-tags mdocs-member-template-tags-scroll",children:o.visitorIds.map(E=>e.jsx("span",{className:"mdocs-member-template-tag",children:j.get(E)??as(E)},E))})]}),e.jsxs("div",{className:"mdocs-member-template-row-actions",children:[e.jsx("button",{type:"button",className:"secondary",onClick:()=>i(o),children:a("edit")}),e.jsx("button",{type:"button",className:"secondary",onClick:()=>S(o.id),children:a("memberTemplateDelete")})]})]})},o.id))})]})]})]})}const Vt=[{value:"deepseek-flash",label:"deepseek-flash(V4.1 Flash)"},{value:"deepseek-v4-pro",label:"deepseek-v4-pro(将路由至 Flash)"}],Wt=[{value:"openai-completions",label:"OpenAI 兼容"},{value:"anthropic-messages",label:"Anthropic 兼容"}];function _t(a,s,g){return a==="deepseek"?"Deepseek":s||g}function ns(a){return`${_t(a.kind,a.providerId,a.name)} · ${a.modelId} · ${a.name}`}function Gt(){const{t:a}=ie(),s=t.useRef(!0),[g,u]=t.useState(""),[y,z]=t.useState([]),[x,S]=t.useState(null),[v,p]=t.useState(null),[w,A]=t.useState("deepseek"),[I,c]=t.useState(""),[N,f]=t.useState(""),[m,D]=t.useState(""),[M,b]=t.useState("openai-completions"),[R,O]=t.useState("deepseek-flash"),[L,k]=t.useState(1e6),[P,C]=t.useState(""),[F,h]=t.useState(!1),[d,j]=t.useState(null),[T,K]=t.useState(!1),[G,J]=t.useState(!0),[Z,Q]=t.useState(!1),[q,i]=t.useState(null),[r,U]=t.useState(!1),[V,$]=t.useState(!1),[o,E]=t.useState(!1),[W,se]=t.useState(null),[ce,ae]=t.useState(null),te=t.useRef(!1);t.useEffect(()=>(s.current=!0,()=>{s.current=!1}),[]);const ne=t.useCallback(async()=>{const l=await tt();if(s.current)return z(l),l},[]);function le(){p(null),A("deepseek"),c(""),f(""),D(""),b("openai-completions"),O("deepseek-flash"),k(1e6),C(""),h(!1),j(null),K(!1),$(!1),E(!1),i(null),U(!1)}function xe(l){p(l.id),A(l.kind),c(l.name),f(l.providerId??""),D(l.baseUrl),b(l.apiType);const _=l.modelId.trim(),je=new Set(["deepseek-flash","deepseek-v4-flash","deepseek-v4-flash-vision-exp","deepseek-v4.1-flash","deepseek-v4.1-flash-expires-on-0910"]);O(l.kind==="deepseek"?_==="deepseek-v4-pro"?"deepseek-v4-pro":je.has(_)?"deepseek-flash":_||"deepseek-flash":_),k(l.contextWindow||1e6),h(l.hasApiKey),j(l.apiKeyMasked),C(""),K(l.isDefault)}t.useEffect(()=>{(async()=>{try{const l=await at();if(!s.current)return;u(l.visitorName);const _=await ne();if(!s.current||!_)return;_.length===0&&(le(),S("create"))}catch(l){if(!s.current)return;i(l instanceof Error?l.message:String(l)),S("create")}finally{s.current&&J(!1)}})()},[ne]);function we(){le(),S("create")}function ye(l){xe(l),S("edit"),U(!1),i(null)}function oe(){le(),S(null)}async function Ce(l){if(!(l.isDefault||ce)){ae(l.id),i(null);try{await nt(l.id),await ne()}catch(_){if(!s.current)return;i(_ instanceof Error?_.message:String(_))}finally{s.current&&ae(null)}}}async function be(){if(W){Q(!0),i(null);try{await ct(W.id);const l=await ne();if(!s.current)return;x==="edit"&&v===W.id&&oe(),((l==null?void 0:l.length)??0)===0&&(le(),S("create"))}catch(l){if(!s.current)return;i(l instanceof Error?l.message:String(l))}finally{s.current&&(Q(!1),se(null))}}}async function De(){Q(!0),i(null),U(!1);try{const l=w==="custom"?{...x==="edit"&&v?{id:v}:{},...x==="create"&&T?{isDefault:!0}:{},kind:w,baseUrl:m,modelId:R,providerId:N.trim()||void 0,apiType:M,name:I,contextWindow:L,...P.trim()?{apiKey:P.trim()}:{}}:{...x==="edit"&&v?{id:v}:{},...x==="create"&&T?{isDefault:!0}:{},kind:w,modelId:R,name:I,contextWindow:L,...P.trim()?{apiKey:P.trim()}:{}};if(await it(l),!s.current)return;await ne(),U(!0),S(null),le()}catch(l){if(!s.current)return;i(l instanceof Error?l.message:String(l))}finally{s.current&&Q(!1)}}const Ie=x!==null;return e.jsxs("div",{className:"mdocs-agent-config-panel",children:[e.jsxs("div",{className:"mdocs-settings-header",children:[e.jsx("h2",{className:"mdocs-settings-title",children:a("agentConfig")}),G?null:e.jsx("button",{type:"button",className:"secondary",onClick:we,children:"添加配置"})]}),e.jsxs("div",{className:"mdocs-settings-cards",children:[!G&&y.length>0?e.jsxs("div",{className:"mdocs-settings-card mdocs-agent-config-card",children:[e.jsx("p",{className:"mdocs-agent-config-lead",children:"选择默认配置后,智能助手与帮写将使用该模型。"}),e.jsx("ul",{className:"mdocs-agent-config-list",children:y.map(l=>e.jsxs("li",{className:"mdocs-agent-config-item",children:[e.jsxs("label",{className:"mdocs-agent-config-item-default",children:[e.jsx("input",{type:"radio",name:"agent-default-config",checked:l.isDefault,disabled:ce!==null,onChange:()=>void Ce(l)}),e.jsx("span",{children:l.isDefault?"默认":"设为默认"})]}),e.jsxs("div",{className:"mdocs-agent-config-item-main",children:[e.jsx("strong",{children:ns(l)}),l.kind==="custom"?e.jsx("span",{className:"mdocs-agent-badge",children:"自定义"}):null,e.jsx("p",{className:"mdocs-agent-config-item-meta",children:l.hasApiKey?`Key ${l.apiKeyMasked??"已配置"}`:"未配置 Key"})]}),e.jsxs("div",{className:"mdocs-agent-config-item-actions",children:[e.jsx("button",{type:"button",className:"secondary small",onClick:()=>ye(l),children:a("edit")}),e.jsx("button",{type:"button",className:"secondary small",onClick:()=>se(l),children:"删除"})]})]},l.id))}),r?e.jsx("p",{className:"mdocs-agent-config-ok",children:a("saved")}):null,q?e.jsx("p",{className:"mdocs-agent-config-error",children:q}):null]}):null,Ie?e.jsxs("div",{className:"mdocs-settings-card mdocs-agent-config-card",children:[e.jsxs("p",{className:"mdocs-agent-config-lead",children:[x==="create"?"新建模型配置。":"编辑模型配置。","可以保存多套,勾选一条作为默认。智能助手和帮写使用默认那套。"]}),e.jsxs("div",{className:"mdocs-agent-form",children:[e.jsxs("div",{className:"mdocs-agent-kind-tabs",role:"tablist","aria-label":"配置方式",children:[e.jsx("button",{type:"button",role:"tab","aria-selected":w==="deepseek",className:w==="deepseek"?"active":"",onClick:()=>A("deepseek"),children:"Deepseek"}),e.jsx("button",{type:"button",role:"tab","aria-selected":w==="custom",className:w==="custom"?"active":"",onClick:()=>A("custom"),children:"自定义"})]}),w==="deepseek"?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:a("agentConfigModel")}),e.jsx(Ye,{options:[...Vt],value:R,onChange:O})]}),e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:a("agentConfigApiKey")}),e.jsxs("div",{className:"mdocs-agent-config-apikey",children:[e.jsx("input",{type:V?"text":"password",value:P,onChange:l=>C(l.target.value),placeholder:F?a("agentConfigApiKeyConfigured").replace("{{masked}}",d??"…"):a("agentConfigApiKeyPlaceholder"),autoComplete:"off"}),e.jsx("button",{type:"button",className:"mdocs-agent-config-eye","aria-label":a(V?"agentConfigHideKey":"agentConfigShowKey"),onClick:()=>$(l=>!l),children:V?"隐藏":"显示"})]})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:"API 地址"}),e.jsx("input",{type:"url",value:m,onChange:l=>{const _=l.target.value;if(D(_),te.current)return;_.toLowerCase().includes("anthropic")?b("anthropic-messages"):b("openai-completions")},placeholder:"https://api.example.com/v1",className:"mdocs-agent-mono"})]}),e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:"Model ID"}),e.jsx("input",{type:"text",value:R,onChange:l=>O(l.target.value),placeholder:"模型名称,如 gpt-4o",className:"mdocs-agent-mono"})]}),e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:a("agentConfigApiKey")}),e.jsxs("div",{className:"mdocs-agent-config-apikey",children:[e.jsx("input",{type:V?"text":"password",value:P,onChange:l=>C(l.target.value),placeholder:F?a("agentConfigApiKeyConfigured").replace("{{masked}}",d??"…"):"粘贴 API Key",autoComplete:"off"}),e.jsx("button",{type:"button",className:"mdocs-agent-config-eye","aria-label":a(V?"agentConfigHideKey":"agentConfigShowKey"),onClick:()=>$(l=>!l),children:V?"隐藏":"显示"})]})]})]}),e.jsxs("details",{className:"mdocs-agent-advanced",open:o,onToggle:l=>E(l.target.open),children:[e.jsx("summary",{children:"高级选项"}),w==="custom"?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:"Provider ID(选填)"}),e.jsx("input",{type:"text",value:N,onChange:l=>f(l.target.value),placeholder:"不填则自动从 API 地址提取域名"})]}),e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:"API 协议"}),e.jsx(Ye,{options:[...Wt],value:M,onChange:l=>{te.current=!0,b(l)}})]})]}):null,e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:a("agentConfigName")}),e.jsx("input",{type:"text",value:I,onChange:l=>c(l.target.value),placeholder:a("agentConfigNameDefault").replace("{{name}}",g||"…")})]}),e.jsxs("label",{className:"mdocs-agent-field",children:[e.jsx("span",{children:a("agentConfigContextWindow")}),e.jsx("input",{type:"number",min:1e3,max:2e6,step:1e3,value:L,onChange:l=>k(Number(l.target.value)||1e6)}),e.jsx("p",{className:"mdocs-agent-field-hint",children:a("agentConfigContextWindowDesc")})]})]}),x==="create"&&y.length>0?e.jsxs("label",{className:"mdocs-agent-config-default-check",children:[e.jsx("input",{type:"checkbox",checked:T,onChange:l=>K(l.target.checked)}),e.jsx("span",{children:"保存后设为默认配置"})]}):null,q?e.jsx("p",{className:"mdocs-agent-config-error",children:q}):null,e.jsxs("div",{className:"mdocs-agent-config-actions",children:[e.jsx("button",{type:"button",onClick:()=>void De(),disabled:Z,children:a(Z?"saving":"save")}),y.length>0?e.jsx("button",{type:"button",className:"secondary",onClick:oe,disabled:Z,children:a("cancel")}):null]})]})]}):G?e.jsx("div",{className:"mdocs-settings-card mdocs-agent-config-card",children:e.jsx("p",{className:"mdocs-agent-config-muted",children:a("loading")})}):null]}),W?e.jsx(ms,{title:"删除配置",message:`确定删除「${ns(W)}」?${W.isDefault&&y.length>1?" 删除后将自动把另一条设为默认。":""}`,confirmLabel:"删除",cancelLabel:a("cancel"),onConfirm:()=>void be(),onCancel:()=>se(null)}):null]})}const qt=/^[A-Za-z0-9_]+$/;function Be(a){return qt.test(a.trim())}function Ht(){const a=t.useRef(!0),[s,g]=t.useState([]),[u,y]=t.useState(!0),[z,x]=t.useState(null),[S,v]=t.useState(null),[p,w]=t.useState(!1),[A,I]=t.useState(""),[c,N]=t.useState(""),[f,m]=t.useState(""),[D,M]=t.useState(!1);t.useEffect(()=>(a.current=!0,()=>{a.current=!1}),[]);async function b(){y(!0),x(null);try{const h=await lt();if(!a.current)return;g(h)}catch(h){if(!a.current)return;x(h instanceof Error?h.message:String(h))}finally{a.current&&y(!1)}}t.useEffect(()=>{b()},[]);function R(){w(!0),v(null),I(""),N(""),m(""),x(null)}function O(h){w(!1),v(h.id),I(h.name),N(h.description),m(h.body),x(null)}function L(){w(!1),v(null),I(""),N(""),m("")}async function k(){const h=A.trim();if(!Be(h)){x("名称仅允许英文、数字、下划线");return}if(!f.trim()){x("正文不能为空");return}M(!0),x(null);try{if(p?await ot({name:h,description:c,body:f}):S&&await rt(S,{name:h,description:c,body:f}),!a.current)return;L(),await b()}catch(d){if(!a.current)return;x(d instanceof Error?d.message:String(d))}finally{a.current&&M(!1)}}async function P(h){if(window.confirm("删除该 Skill?已引用的历史轮次将跳过缺失项。")){x(null);try{if(await dt(h),!a.current)return;S===h&&L(),await b()}catch(d){if(!a.current)return;x(d instanceof Error?d.message:String(d))}}}const C=p||S!==null,F=!A.trim()||Be(A);return e.jsxs("div",{className:"mdocs-agent-skills-panel",children:[e.jsxs("div",{className:"mdocs-settings-header",children:[e.jsxs("h2",{className:"mdocs-settings-title",children:["Agent Skills",!u&&s.length>0?e.jsx("span",{className:"mdocs-agent-skills-count",children:s.length}):null]}),C?null:e.jsx("button",{type:"button",className:"secondary",onClick:R,children:"新建"})]}),e.jsx("div",{className:"mdocs-settings-cards",children:e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsx("p",{className:"mdocs-settings-item-desc mdocs-agent-skills-lead",children:"私人提示词宏。名称对本账号唯一,仅英文、数字、下划线;智能助手 / 帮写里按名称引用。"}),z?e.jsx("p",{className:"mdocs-agent-skills-error",children:z}):null,C?e.jsxs("div",{className:"mdocs-agent-skills-form",children:[e.jsx("div",{className:"mdocs-agent-skills-form-head",children:e.jsx("strong",{children:p?"新建 Skill":"编辑 Skill"})}),e.jsxs("label",{className:"mdocs-agent-skills-field",children:[e.jsx("span",{children:"名称"}),e.jsx("input",{type:"text",value:A,onChange:h=>I(h.target.value),maxLength:64,spellCheck:!1,autoComplete:"off",placeholder:"e.g. weekly_report",className:F?void 0:"mdocs-agent-skills-input-invalid"}),F?e.jsx("span",{className:"mdocs-agent-skills-hint",children:"引用与索引键,保存后按此名称使用"}):e.jsx("span",{className:"mdocs-agent-skills-hint-bad",children:"仅允许 A–Z、a–z、0–9、_"})]}),e.jsxs("label",{className:"mdocs-agent-skills-field",children:[e.jsx("span",{children:"简介(可选)"}),e.jsx("input",{type:"text",value:c,onChange:h=>N(h.target.value),maxLength:200,placeholder:"一句话说明用途"})]}),e.jsxs("label",{className:"mdocs-agent-skills-field",children:[e.jsx("span",{children:"正文"}),e.jsx("textarea",{value:f,onChange:h=>m(h.target.value),rows:10,placeholder:"写入 Agent 应遵守的步骤与约束…"})]}),e.jsxs("div",{className:"mdocs-agent-config-actions",children:[e.jsx("button",{type:"button",onClick:()=>void k(),disabled:D||!F||!A.trim()||!f.trim(),children:D?"保存中…":"保存"}),e.jsx("button",{type:"button",className:"secondary",onClick:L,disabled:D,children:"取消"})]})]}):null,u?e.jsx("p",{className:"mdocs-settings-item-desc",children:"加载中…"}):null,!u&&s.length===0&&!C?e.jsxs("div",{className:"mdocs-agent-skills-empty",children:[e.jsx("p",{children:"还没有 Skill"}),e.jsx("button",{type:"button",className:"secondary",onClick:R,children:"新建第一个"})]}):null,!u&&s.length>0?e.jsx("ul",{className:"mdocs-agent-skills-list",children:s.map(h=>{const d=Be(h.name),j=S===h.id;return e.jsxs("li",{className:"mdocs-agent-skills-item"+(j?" mdocs-agent-skills-item-active":""),children:[e.jsxs("div",{className:"mdocs-agent-skills-item-main",children:[e.jsxs("div",{className:"mdocs-agent-skills-item-title-row",children:[e.jsx("code",{className:"mdocs-agent-skills-name",children:h.name}),d?null:e.jsx("span",{className:"mdocs-agent-skills-badge-warn",title:"名称含非法字符,请编辑改为英文数字下划线",children:"需改名"})]}),e.jsx("span",{className:"mdocs-agent-skills-desc",children:h.description.trim()||"无简介"})]}),e.jsxs("div",{className:"mdocs-agent-skills-item-actions",children:[e.jsx("button",{type:"button",className:"secondary small",onClick:()=>O(h),disabled:C&&!j,children:"编辑"}),e.jsx("button",{type:"button",className:"secondary small",onClick:()=>void P(h.id),disabled:C,children:"删除"})]})]},h.id)})}):null]})})]})}const Jt={algorithm:Et.defaultAlgorithm,token:{colorPrimary:"#4CAF50",colorLink:"#4CAF50",colorInfo:"#4CAF50",colorSuccess:"#66BB6A",colorBgBase:"#ffffff",colorBgContainer:"#ffffff",colorText:"#212121",colorTextSecondary:"#616161",colorBorder:"#E0E0E0",colorFillSecondary:"#E8F5E9",borderRadius:8,fontFamily:"inherit"},components:{Table:{headerBg:"#F5F5F5",headerColor:"#212121",rowHoverBg:"#E8F5E9",borderColor:"#E0E0E0"},Button:{primaryShadow:"none"},Tag:{defaultBg:"#F5F5F5",defaultColor:"#616161"}}};function is(a,s){if(!a)return"—";const g=new Date(a);return Number.isNaN(g.getTime())?"—":g.toLocaleString(s==="zh"?"zh-CN":"en-US",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}function Zt(a){const{t:s,lang:g}=ie(),[u,y]=t.useState(!1),[z,x]=t.useState(!1),[S,v]=t.useState(!1),[p,w]=t.useState([]),[A,I]=t.useState([]),[c,N]=t.useState(null),[f,m]=t.useState(null),[D,M]=t.useState(""),[b,R]=t.useState("keyword"),[O,L]=t.useState(null),[k,P]=t.useState(!1),C=t.useRef(0),[F,h]=t.useState({current:1,pageSize:20}),[d,j]=t.useState(0);async function T(){y(!0),m(null);try{const i=await mt();v(i.modelReady),w(i.items),I([]),j(i.items.length),h(r=>({...r,current:1}))}catch(i){m(ee(s,i)||s("embeddingIndexLoadFailed"))}finally{y(!1)}}t.useEffect(()=>{T()},[]);const K=t.useMemo(()=>{const i=new Map;for(const r of p)i.has(r.domainId)||i.set(r.domainId,de(r.domainName,g,s));return Array.from(i.entries()).map(([r,U])=>({text:U,value:r}))},[p,g,s]),G=t.useMemo(()=>{const i=D.trim().toLowerCase();return i?p.filter(r=>(r.displayName||"").toLowerCase().includes(i)||(r.relativePath||"").toLowerCase().includes(i)||r.documentId.toLowerCase().includes(i)):p},[p,D]),J=b==="semantic"&&!!D.trim();t.useEffect(()=>{if(b!=="semantic")return;const i=D.trim();if(!i){C.current+=1,L(null);return}const r=++C.current;P(!0);const U=window.setTimeout(()=>{(async()=>{try{const V=await us({query:i,mode:"semantic",topN:50});if(r!==C.current)return;const $=new Map(p.map(o=>[o.documentId,o]));L(V.results.map(o=>{const E=$.get(o.documentId);return E?{...E,snippet:o.snippet}:{documentId:o.documentId,displayName:o.displayName,relativePath:o.relativePath,domainId:o.domainId,domainName:o.domainId,documentUpdatedAt:o.updatedAt,chunkCount:0,chunkUnknown:!0,embeddingUpdatedAt:null,snippet:o.snippet}}))}catch{r===C.current&&L([])}finally{r===C.current&&P(!1)}})()},300);return()=>window.clearTimeout(U)},[b,D,p]);const Z=J?O??[]:G;t.useEffect(()=>{j(Z.length),h(i=>({...i,current:1}))},[Z.length,b]);const Q=t.useMemo(()=>[{title:s("myDocumentsColTitle"),dataIndex:"displayName",key:"displayName",ellipsis:!0,sorter:(i,r)=>(i.displayName||i.relativePath).localeCompare(r.displayName||r.relativePath,g==="zh"?"zh":"en"),render:(i,r)=>e.jsxs("div",{style:{minWidth:0},children:[e.jsx("button",{type:"button",className:"mdocs-linkish",style:{background:"none",border:"none",padding:0,cursor:"pointer",fontWeight:500,color:"inherit",textAlign:"left"},onClick:()=>a.onOpenDocument(r.documentId),children:r.displayName||r.relativePath||"Untitled"}),r.snippet&&e.jsx("div",{className:"mdocs-embedding-index-snippet",title:r.snippet,children:r.snippet})]})},{title:s("myDocumentsColDomain"),dataIndex:"domainId",key:"domainId",width:160,ellipsis:!0,filters:K,onFilter:(i,r)=>r.domainId===i,sorter:(i,r)=>de(i.domainName,g,s).localeCompare(de(r.domainName,g,s),g==="zh"?"zh":"en"),render:(i,r)=>de(r.domainName,g,s)},{title:s("embeddingIndexColDocUpdated"),dataIndex:"documentUpdatedAt",key:"documentUpdatedAt",width:160,sorter:(i,r)=>new Date(i.documentUpdatedAt).getTime()-new Date(r.documentUpdatedAt).getTime(),defaultSortOrder:"descend",render:i=>is(i,g)},{title:s("embeddingIndexColStatus"),dataIndex:"chunkCount",key:"buildStatus",width:140,filters:[{text:s("embeddingIndexFilterBuilt"),value:"built"},{text:s("embeddingIndexFilterMissing"),value:"missing"}],onFilter:(i,r)=>i==="built"?r.chunkCount>0:r.chunkCount===0,sorter:(i,r)=>i.chunkCount-r.chunkCount,render:(i,r)=>r.chunkUnknown?e.jsx(Le,{color:"success",children:s("embeddingIndexStatusBuiltUnknown")}):i>0?e.jsx(Le,{color:"success",children:s("embeddingIndexStatusReady",{chunks:String(i)})}):e.jsx(Le,{children:s("embeddingIndexStatusMissing")})},{title:s("embeddingIndexColBuiltAt"),dataIndex:"embeddingUpdatedAt",key:"embeddingUpdatedAt",width:160,sorter:(i,r)=>{const U=i.embeddingUpdatedAt?new Date(i.embeddingUpdatedAt).getTime():0,V=r.embeddingUpdatedAt?new Date(r.embeddingUpdatedAt).getTime():0;return U-V},render:i=>is(i,g)}],[K,g,a,s]);async function q(){const i=A.map(String);if(i.length!==0){x(!0),N(null),m(null);try{const r=await ut(i);v(r.modelReady),N(s("embeddingIndexRebuildResult",{ok:String(r.ok.length),skipped:String(r.skipped.length),failed:String(r.failed.length)})),await T()}catch(r){m(ee(s,r)||s("embeddingIndexRebuildFailed"))}finally{x(!1)}}}return e.jsx(Pt,{theme:Jt,children:e.jsxs("div",{className:"mdocs-settings mdocs-embedding-index",children:[e.jsx("div",{className:"mdocs-settings-header",children:e.jsx("h2",{className:"mdocs-settings-title",children:s("embeddingIndex")})}),e.jsxs("div",{className:"mdocs-settings-card",children:[e.jsx("p",{className:"muted",style:{marginTop:0},children:s("embeddingIndexDesc")}),e.jsxs("p",{style:{margin:"0 0 12px",fontSize:13},children:[s("embeddingIndexModel"),":"," ",e.jsx("strong",{children:s(S?"embeddingIndexModelReady":"embeddingIndexModelPending")})]}),e.jsxs(Rt,{wrap:!0,style:{marginBottom:12},children:[e.jsx(Ft,{value:b,"aria-label":s("myDocumentsSearchMode"),onChange:i=>R(i),options:[{label:s("myDocumentsModeKeyword"),value:"keyword"},{label:s("myDocumentsModeSemantic"),value:"semantic"}]}),e.jsx(zt.Search,{allowClear:!0,placeholder:s(b==="semantic"?"embeddingIndexSearchSemanticPlaceholder":"embeddingIndexSearchPlaceholder"),"aria-label":s(b==="semantic"?"embeddingIndexSearchSemanticPlaceholder":"embeddingIndexSearchPlaceholder"),value:D,onChange:i=>M(i.target.value),style:{width:240},disabled:u||z}),e.jsx(Qe,{onClick:()=>void T(),disabled:u||z,children:s("embeddingIndexRefresh")}),e.jsx(Qe,{type:"primary",onClick:()=>void q(),disabled:z||A.length===0,loading:z,children:s("embeddingIndexRebuildSelected",{count:String(A.length)})})]}),c&&e.jsx("p",{style:{fontSize:13,color:"var(--mdocs-text-muted)"},children:c}),f&&e.jsx("p",{className:"mdocs-doc-search-error",style:{marginBottom:8},children:f}),J&&!S&&e.jsx("p",{className:"muted",style:{margin:"0 0 8px",fontSize:13},children:s("myDocumentsSemanticNotReady")}),(()=>{const i=Number(F.pageSize)||20,r=Number(F.current)||1,U=d,V=Math.max(1,Math.ceil(U/i)||1);return e.jsx(Lt,{size:"small",rowKey:"documentId",loading:u||J&&k,columns:Q,dataSource:Z,rowSelection:{selectedRowKeys:A,onChange:$=>I($)},pagination:{current:r,pageSize:i,total:U,showSizeChanger:!1,showQuickJumper:!1,showTotal:($,o)=>s("embeddingIndexPageTotal",{from:String(o[0]??0),to:String(o[1]??0),total:String($)})},onChange:($,o,E,W)=>{const se=$.pageSize??i,ce=W.currentDataSource.length,ae=Math.max(1,Math.ceil(ce/se)||1);let te=$.current??1;te>ae&&(te=ae),j(ce),h({current:te,pageSize:se})},locale:{emptyText:D.trim()?s("myDocumentsNoMatch"):s("embeddingIndexEmpty"),filterReset:s("embeddingIndexFilterReset"),filterConfirm:s("embeddingIndexFilterOk")},scroll:{x:900},footer:()=>e.jsxs("div",{className:"mdocs-embedding-index-pager",style:{display:"flex",flexWrap:"wrap",alignItems:"center",justifyContent:"flex-end",gap:10},children:[e.jsx("span",{style:{fontSize:13},children:s("embeddingIndexPageSize")}),e.jsx(Xe,{size:"small",min:5,max:200,step:5,value:i,controls:!0,changeOnWheel:!0,disabled:u||z,"aria-label":s("embeddingIndexPageSize"),onChange:$=>{if($==null||!Number.isFinite(Number($)))return;const o=Math.min(200,Math.max(5,Math.floor(Number($))));h({current:1,pageSize:o})}}),e.jsx("span",{style:{fontSize:13},children:s("embeddingIndexGoPage")}),e.jsx(Xe,{size:"small",min:1,max:V,step:1,value:Math.min(r,V),controls:!0,changeOnWheel:!0,disabled:u||z||U===0,"aria-label":s("embeddingIndexGoPage"),onChange:$=>{if($==null||!Number.isFinite(Number($)))return;const o=Math.min(V,Math.max(1,Math.floor(Number($))));h(E=>({...E,current:o}))}}),e.jsxs("span",{style:{fontSize:13,color:"var(--mdocs-text-muted)"},children:["/ ",V]})]})})})()]})]})})}function cs(a,s){const g=localStorage.getItem(a);return g===null?s:g==="true"}function Se(a){const s=new Date(a);if(Number.isNaN(s.getTime()))return"—";const g=String(s.getMonth()+1).padStart(2,"0"),u=String(s.getDate()).padStart(2,"0");return`${s.getFullYear()}-${g}-${u}`}function na(a){const{t:s,lang:g,setLang:u}=ie(),{onBack:y,onPublishDraft:z}=a,x=ht(),[S,v]=t.useState(!1);pt(x&&!S,()=>v(!0));const p=t.useRef(!0);t.useEffect(()=>(p.current=!0,()=>{p.current=!1}),[]),t.useEffect(()=>{x||v(!1)},[x]);const[w,A]=t.useState(()=>cs("mdocs.autoPublish",!1)),[I,c]=t.useState(()=>cs("mdocs.autoEdit",!0)),[N,f]=t.useState(!1),[m,D]=t.useState("general");function M(n){D(n),x&&v(!1)}const b=s(m==="general"?"general":m==="bookmarks"?"bookmarkTitle":m==="myDocuments"?"myDocuments":m==="embeddingIndex"?"embeddingIndex":m==="domainManagement"?"domainManagement":m==="memberTemplates"?"memberTemplates":m==="agentConfig"?"agentConfig":"saveAndPublish"),[R,O]=t.useState([]),[L,k]=t.useState(!0),[P,C]=t.useState(null),[F,h]=t.useState(!1),[d,j]=t.useState(!1),[T,K]=t.useState(!1),[G,J]=t.useState(!1),[Z,Q]=t.useState(null),[q,i]=t.useState(!1),[r,U]=t.useState(!1),[V,$]=t.useState(!1),[o,E]=t.useState(""),[W,se]=t.useState(!1),[ce,ae]=t.useState(!1),[te,ne]=t.useState(0),[le,xe]=t.useState([]),[we,ye]=t.useState(!1),[oe,Ce]=t.useState(""),[be,De]=t.useState([]),[Ie,l]=t.useState(!1),[_,je]=t.useState(""),[ue,ps]=t.useState("auto"),[Ne,Te]=t.useState(null),[Ue,Ae]=t.useState(!0),[me,gs]=t.useState(0),[Ke,$e]=t.useState("1"),[Ve,fs]=t.useState(0),[he,xs]=t.useState(""),[Me,ys]=t.useState(""),[ve,bs]=t.useState(""),[js,Ns]=t.useState(null),[vs,ks]=t.useState([]),ke=t.useRef(0),Pe=20,pe=Ne!==null,[We,Ss]=t.useState([]),[ws,Ee]=t.useState(!1),[Re,_e]=t.useState(null),[Fe,Ge]=t.useState(new Map);t.useEffect(()=>{localStorage.setItem("mdocs.autoPublish",String(w))},[w]),t.useEffect(()=>{localStorage.setItem("mdocs.autoEdit",String(I))},[I]),t.useEffect(()=>{m==="savePublish"&&Oe().then(n=>{p.current&&ne(n.filter(B=>!B.published).length)})},[m]),t.useEffect(()=>{m==="bookmarks"&&Cs(),m==="myDocuments"&&(fe(),ds().then(n=>{p.current&&ks(n)}).catch(()=>{}))},[m,he,Me,ve]),t.useEffect(()=>{if(m!=="myDocuments")return;const n=_.trim();if(!n){ke.current+=1,Te(null),Ae(!0);return}const B=++ke.current,Y=window.setTimeout(()=>{(async()=>{try{const H=await us({query:n,mode:ue,domainId:he||void 0,topN:50});if(!p.current||B!==ke.current)return;Te(H.results),Ae(H.modelReady)}catch{if(!p.current||B!==ke.current)return;Te([]),Ae(!0)}})()},300);return()=>window.clearTimeout(Y)},[m,_,ue,he]),t.useEffect(()=>{qe()},[]),t.useEffect(()=>{os().then(n=>{p.current&&Ss(n)}).catch(()=>{})},[]);const ge=new Map(We.map(n=>[n.domainId,n.domainName]));async function qe(){try{k(!0);const n=await gt();if(!p.current)return;O(n)}catch{}finally{p.current&&k(!1)}}async function Cs(){try{ye(!0);const n=await ft();if(!p.current)return;xe(n)}catch{}finally{p.current&&ye(!1)}}async function fe(n=0){try{l(!0);const B=await xt({offset:n*Pe,limit:Pe,domainId:he||void 0,creatorVisitorId:Me||void 0,groupBy:ve||void 0});if(!p.current)return;De(B.items),Ns(B.groups??null),fs(B.total),gs(n),$e(String(n+1))}catch{}finally{p.current&&l(!1)}}async function Ds(n){try{await wt(n),xe(B=>B.filter(Y=>Y.documentId!==n))}catch{}}function Is(){if(R.some(B=>!B.revoked)){j(!0);return}He()}async function He(){try{h(!0);const n=await Dt();C({token:n.token,name:n.name}),await qe()}finally{h(!1)}}async function Ts(){try{$(!0);const n=await kt();Q(n.recoveryCode)}finally{$(!1)}}async function As(n){n.preventDefault();const B=o.trim();if(!(B&&B.length<4))try{se(!0),await St(B),E(""),ae(!0),setTimeout(()=>ae(!1),3e3)}finally{se(!1)}}async function Ms(n){_e(n);try{const B=await Ct(n),Y=new Map;B.forEach(H=>{Y.set(H.visitorId,H.permission)}),Ge(Y)}catch{Ge(new Map)}Ee(!0)}async function Ps(n){if(Re)try{const B=new Set(n.map(H=>H.visitorId)),Y=new Set(Fe.keys());for(const H of Y)B.has(H)||await It(Re,H);for(const H of n)await Tt(Re,H.visitorId,H.permission);await fe()}finally{Ee(!1),_e(null)}}const Je=le.filter(n=>{if(!oe.trim())return!0;const B=oe.toLowerCase();return(n.displayName||n.relativePath||"").toLowerCase().includes(B)||(n.ownerVisitorName||"").toLowerCase().includes(B)||(n.domainId||"").toLowerCase().includes(B)}),re=Math.ceil(Ve/Pe);return e.jsxs("div",{className:"mdocs-layout"+(x?" mdocs-layout--reader mdocs-layout--settings":""),children:[x&&S?e.jsx("button",{type:"button",className:"mdocs-mobile-nav-scrim","aria-label":s("collapseSidebar"),onClick:()=>v(!1)}):null,e.jsxs("aside",{className:"mdocs-sidebar"+(x?S?" mdocs-sidebar--drawer-open":" mdocs-sidebar--drawer":""),children:[e.jsxs("header",{className:"mdocs-sidebar-header",children:[e.jsxs("div",{className:"mdocs-brand",children:[e.jsx("img",{src:yt,alt:s("brand"),className:"mdocs-brand-logo"}),e.jsx("span",{children:s("brand")})]}),x?e.jsx("button",{type:"button",className:"mdocs-sidebar-toggle",onClick:()=>v(!1),"aria-label":s("collapseSidebar"),style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(bt,{size:18})}):null]}),e.jsxs("nav",{className:"mdocs-config-tree",children:[e.jsx("div",{className:"mdocs-config-item"+(m==="general"?" active":""),onClick:()=>M("general"),children:s("general")}),e.jsx("div",{className:"mdocs-config-item"+(m==="bookmarks"?" active":""),onClick:()=>M("bookmarks"),children:s("bookmarkTitle")}),e.jsx("div",{className:"mdocs-config-item"+(m==="myDocuments"?" active":""),onClick:()=>M("myDocuments"),children:s("myDocuments")}),e.jsx("div",{className:"mdocs-config-item"+(m==="embeddingIndex"?" active":""),onClick:()=>M("embeddingIndex"),children:s("embeddingIndex")}),e.jsx("div",{className:"mdocs-config-item"+(m==="domainManagement"?" active":""),onClick:()=>M("domainManagement"),children:s("domainManagement")}),e.jsx("div",{className:"mdocs-config-item"+(m==="memberTemplates"?" active":""),onClick:()=>M("memberTemplates"),children:s("memberTemplates")}),e.jsx("div",{className:"mdocs-config-item"+(m==="agentConfig"?" active":""),onClick:()=>M("agentConfig"),children:s("agentConfig")}),e.jsx("div",{className:"mdocs-config-item"+(m==="savePublish"?" active":""),onClick:()=>M("savePublish"),children:s("saveAndPublish")})]}),e.jsx("footer",{className:"mdocs-settings-sidebar-footer",onClick:y,children:s("backToDocs")})]}),e.jsxs("main",{className:"mdocs-main",children:[x?e.jsxs("div",{className:"mdocs-settings-mobile-bar",children:[e.jsx("button",{type:"button",className:"mdocs-reader-nav-btn",onClick:()=>v(!0),"aria-label":s("expandSidebar"),children:e.jsx(jt,{size:18,strokeWidth:1.75})}),e.jsx("span",{className:"mdocs-settings-mobile-bar-title",children:b})]}):null,Nt(),m==="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:g==="en"?"active":"",onClick:()=>u("en"),children:"EN"}),e.jsx("span",{children:"/"}),e.jsx("button",{type:"button",className:g==="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"+(I?" active":""),role:"switch","aria-checked":I,onClick:()=>c(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")}),!L&&R.length>0&&e.jsx("span",{className:"mdocs-settings-item-desc",style:{marginTop:8,fontSize:"0.85em",opacity:.8},children:R.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:Is,disabled:F||L,children:F?"…":R.some(n=>!n.revoked)?s("cliTokenReset"):s("cliTokenCreate")})]}),P&&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:P.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(P.token),J(!1),K(!0),window.setTimeout(()=>K(!1),2e3)}catch{K(!1),J(!0),window.setTimeout(()=>J(!1),3e3)}})()},children:s(T?"cliTokenCopied":"cliTokenCopy")}),e.jsx("button",{type:"button",onClick:()=>C(null),children:s("close")})]}),T&&e.jsxs("div",{className:"mdocs-settings-copy-feedback mdocs-settings-copy-feedback--ok",role:"status",children:["✓ ",s("cliTokenCopied")]}),G&&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:Ts,disabled:V,children:V?"…":"生成恢复码"})]}),Z&&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:Z})]}),e.jsxs("div",{className:"mdocs-settings-secret-result-actions",children:[e.jsx("button",{type:"button",className:"primary",onClick:()=>{(async()=>{try{await navigator.clipboard.writeText(Z),U(!1),i(!0),window.setTimeout(()=>i(!1),2e3)}catch{i(!1),U(!0),window.setTimeout(()=>U(!1),3e3)}})()},children:q?"已复制":"复制恢复码"}),e.jsx("button",{type:"button",onClick:()=>Q(null),children:s("close")})]}),q&&e.jsx("div",{className:"mdocs-settings-copy-feedback mdocs-settings-copy-feedback--ok",role:"status",children:"✓ 已复制到剪贴板"}),r&&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:As,style:{marginTop:12},children:[e.jsx("input",{type:"password",placeholder:"输入新密码(至少 4 位,留空则清除密码)",value:o,onChange:n=>E(n.target.value),minLength:0,style:{marginBottom:8}}),ce&&e.jsx("div",{style:{color:"#4caf50",marginBottom:8,fontSize:"0.875rem"},children:"✓ 密码设置成功"}),e.jsx("button",{type:"submit",className:"secondary",disabled:W,children:W?"设置中…":"保存密码"})]})]})]})]}):m==="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:oe,onChange:n=>Ce(n.target.value)}),we?e.jsx("div",{style:{textAlign:"center",padding:"40px 0"},children:s("loading")}):e.jsx(e.Fragment,{children:Je.length===0?e.jsx("div",{style:{textAlign:"center",padding:"40px 0",opacity:.6},children:s(oe?"bookmarkNoMatch":"bookmarkEmpty")}):e.jsx("div",{className:"mdocs-settings-table-wrap",children: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:Je.map(n=>e.jsxs("tr",{children:[e.jsx("td",{style:{cursor:"pointer",fontWeight:500},onClick:()=>a.onOpenDocument(n.documentId),children:n.displayName||n.relativePath||"Untitled"}),e.jsx("td",{children:n.isDeleted?e.jsx("span",{style:{opacity:.5,fontStyle:"italic"},children:"已删除"}):ge.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:()=>Ds(n.documentId),children:s("bookmarkRemove")})})]},n.documentId))})]})})})]})]}):m==="myDocuments"?e.jsxs("div",{className:"mdocs-settings mdocs-my-docs",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.jsxs("div",{className:"mdocs-my-docs-toolbar",children:[e.jsxs("div",{className:"mdocs-my-docs-search",children:[e.jsx(vt,{size:16,strokeWidth:2,"aria-hidden":"true"}),e.jsx("input",{type:"text",placeholder:"搜索文章…",value:_,onChange:n=>je(n.target.value)})]}),e.jsxs("select",{className:"mdocs-my-docs-select",value:he,"aria-label":s("myDocumentsFilterDomain"),onChange:n=>xs(n.target.value),children:[e.jsx("option",{value:"",children:s("myDocumentsFilterAllDomains")}),We.map(n=>e.jsx("option",{value:n.domainId,children:ge.get(n.domainId)||n.domainName},n.domainId))]}),e.jsxs("select",{className:"mdocs-my-docs-select",value:ue,"aria-label":s("myDocumentsSearchMode"),onChange:n=>ps(n.target.value),children:[e.jsx("option",{value:"auto",children:s("myDocumentsModeAuto")}),e.jsx("option",{value:"keyword",children:s("myDocumentsModeKeyword")}),e.jsx("option",{value:"semantic",children:s("myDocumentsModeSemantic")})]}),!pe&&e.jsxs("select",{className:"mdocs-my-docs-select",value:Me,"aria-label":s("myDocumentsFilterCreator"),onChange:n=>ys(n.target.value),children:[e.jsx("option",{value:"",children:s("myDocumentsFilterAllCreators")}),vs.map(n=>e.jsx("option",{value:n.visitorId,children:n.visitorName},n.visitorId))]}),!pe&&e.jsxs("select",{className:"mdocs-my-docs-select",value:ve,"aria-label":s("myDocumentsGroupBy"),onChange:n=>bs(n.target.value),children:[e.jsx("option",{value:"",children:s("myDocumentsGroupNone")}),e.jsx("option",{value:"domain",children:s("myDocumentsGroupDomain")}),e.jsx("option",{value:"creator",children:s("myDocumentsGroupCreator")})]})]}),Ie&&!pe?e.jsx("div",{className:"mdocs-my-docs-empty",children:s("loading")}):pe?e.jsx(e.Fragment,{children:Ne.length===0?e.jsx("div",{className:"mdocs-my-docs-empty",children:s(ue==="semantic"&&!Ue?"myDocumentsSemanticNotReady":"myDocumentsNoMatch")}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mdocs-my-docs-search-meta",children:[s("myDocumentsResultCount",{count:String(Ne.length)}),ue==="semantic"&&!Ue?` · ${s("myDocumentsSemanticNotReadyShort")}`:""]}),e.jsx("div",{className:"mdocs-settings-table-wrap",children: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("myDocumentsColCreator")}),e.jsx("th",{children:s("myDocumentsColUpdated")}),e.jsx("th",{children:s("myDocumentsColCreated")}),e.jsx("th",{})]})}),e.jsx("tbody",{children:Ne.map(n=>e.jsxs("tr",{children:[e.jsx("td",{className:"mdocs-my-docs-title",onClick:()=>a.onOpenDocument(n.documentId),children:n.displayName||n.relativePath||"Untitled"}),e.jsx("td",{children:ge.get(n.domainId||"")||n.domainId||"—"}),e.jsx("td",{children:n.ownerVisitorName||"—"}),e.jsx("td",{className:"mdocs-my-docs-date",children:Se(n.updatedAt)}),e.jsx("td",{className:"mdocs-my-docs-date",children:n.createdAt?Se(n.createdAt):"—"}),e.jsx("td",{className:"mdocs-my-docs-actions",children:e.jsx("button",{type:"button",className:"primary small",onClick:()=>a.onOpenDocument(n.documentId),children:s("bookmarkOpen")})})]},n.documentId))})]})})]})}):e.jsxs(e.Fragment,{children:[be.length===0?e.jsx("div",{className:"mdocs-my-docs-empty",children:s(_?"myDocumentsNoMatch":"myDocumentsEmpty")}):e.jsx("div",{className:"mdocs-settings-table-wrap",children: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("myDocumentsColCreator")}),e.jsx("th",{children:s("myDocumentsColUpdated")}),e.jsx("th",{children:s("myDocumentsColCreated")}),e.jsx("th",{})]})}),e.jsx("tbody",{children:(js??[{key:"",items:be}]).flatMap(n=>{var H;const B=n.key?e.jsx("tr",{className:"mdocs-my-docs-group",children:e.jsx("td",{colSpan:6,children:ve==="domain"?ge.get(n.key)||n.key:((H=n.items[0])==null?void 0:H.creatorName)||n.key})},`group-${n.key}`):null,Y=n.items.map(X=>e.jsxs("tr",{children:[e.jsx("td",{className:"mdocs-my-docs-title",onClick:()=>a.onOpenDocument(X.documentId),children:X.displayName||X.relativePath||"Untitled"}),e.jsx("td",{children:ge.get(X.domainId||"")||X.domainId||"—"}),e.jsx("td",{children:X.creatorName||X.creatorVisitorId||"—"}),e.jsx("td",{className:"mdocs-my-docs-date",children:Se(X.updatedAt)}),e.jsx("td",{className:"mdocs-my-docs-date",children:Se(X.createdAt)}),e.jsxs("td",{className:"mdocs-my-docs-actions",children:[e.jsx("button",{type:"button",className:"ghost small",onClick:()=>Ms(X.documentId),children:s("docInfoInviteMember")}),e.jsx("button",{type:"button",className:"primary small",onClick:()=>a.onOpenDocument(X.documentId),children:s("bookmarkOpen")})]})]},X.documentId));return B?[B,...Y]:Y})})]})}),!pe&&e.jsxs("div",{className:"mdocs-my-docs-footer",children:[e.jsx("span",{className:"mdocs-settings-page-info",children:s("myDocumentsPageInfo",{current:String(re>0?me+1:0),total:String(re),count:String(Ve)})}),re>1&&e.jsxs("form",{className:"mdocs-my-docs-jump",onSubmit:n=>{n.preventDefault();const B=Number.parseInt(Ke,10);if(!Number.isFinite(B))return;const Y=Math.min(Math.max(B,1),re)-1;Y!==me&&fe(Y)},children:[e.jsx("span",{children:s("myDocumentsJumpTo")}),e.jsx("input",{type:"number",inputMode:"numeric",min:1,max:re,"aria-label":s("myDocumentsJumpTo"),value:Ke,onChange:n=>$e(n.target.value)}),e.jsx("button",{type:"submit",className:"secondary small",children:s("myDocumentsJump")})]}),re>1&&e.jsxs("div",{className:"mdocs-settings-pagination",children:[e.jsx("button",{type:"button",className:"secondary small",disabled:me<=0,onClick:()=>fe(me-1),children:s("myDocumentsPrev")}),e.jsx("button",{type:"button",className:"secondary small",disabled:me>=re-1,onClick:()=>fe(me+1),children:s("myDocumentsNext")})]})]})]})]})]}):m==="embeddingIndex"?e.jsx(Zt,{onOpenDocument:a.onOpenDocument}):m==="domainManagement"?e.jsx(Kt,{}):m==="memberTemplates"?e.jsx($t,{}):m==="agentConfig"?e.jsxs("div",{className:"mdocs-settings",children:[e.jsx(Gt,{}),e.jsx(Ht,{})]}):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:y,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"+(w?" active":""),role:"switch","aria-checked":w,onClick:()=>A(n=>!n),children:e.jsx("span",{className:"mdocs-toggle-knob"})})]})}),te>0?e.jsxs("button",{className:"mdocs-settings-card mdocs-settings-draft-link",onClick:()=>f(!0),children:[e.jsxs("span",{className:"mdocs-settings-draft-link-text",children:["📄 ",s("viewDrafts")," (",te,")"]}),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")})})]})]}),N&&e.jsx(Ot,{onPublish:z,onClose:()=>f(!1),onCountChange:ne,onRecover:a.onRecoverDraft})]}),d&&e.jsx(ms,{title:s("cliToken"),message:s("cliTokenResetConfirm"),confirmLabel:s("cliTokenReset"),cancelLabel:s("cancel"),busy:F,onConfirm:()=>{j(!1),He()},onCancel:()=>j(!1)}),e.jsx(hs,{open:ws,title:s("docInfoInviteMember"),initialSelectedIds:[...Fe.keys()],initialPermissions:Fe,templates:[],showPermissionSelect:!0,permissionOptions:[{value:"read",label:s("invitePermissionRead")},{value:"edit",label:s("invitePermissionEdit")}],onClose:()=>Ee(!1),onConfirm:n=>{Ps(n)}})]})}export{na as SettingsPage};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as c,j as s}from"./react-vendor-BVS1XoFi.js";import{o as X,c as ke,p as H,q as ye,a as ve,s as Ce,e as Ie,g as je,u as we,t as $,v as K,w as Ne,x as Se,y as ne,z as Ee,A as De,B as Me,E as Be,F as Re,G as ze,H as Te,I as Ae,J as We,K as Pe,X as $e,L as Ke,M as Le,r as Ve,i as Fe,O as _e,P as qe,Q as Oe,R as Ue}from"./index-
|
|
1
|
+
import{r as c,j as s}from"./react-vendor-BVS1XoFi.js";import{o as X,c as ke,p as H,q as ye,a as ve,s as Ce,e as Ie,g as je,u as we,t as $,v as K,w as Ne,x as Se,y as ne,z as Ee,A as De,B as Me,E as Be,F as Re,G as ze,H as Te,I as Ae,J as We,K as Pe,X as $e,L as Ke,M as Le,r as Ve,i as Fe,O as _e,P as qe,Q as Oe,R as Ue}from"./index-DNb6Q69l.js";import{D as Qe}from"./DocChrome-B-5PeA3Z.js";import{P as J}from"./plus-BAqdJ6N2.js";import{B as Ge,I as He}from"./italic-BljxX8Uj.js";import"./ui-CEFkTVnG.js";import"./motion-BAXVQJfN.js";import"./diagram-BF8g9yg4.js";import"./file-type-policy-C6Nun42Q.js";/**
|
|
2
2
|
* @license lucide-react v0.562.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as t,C as _}from"./index-
|
|
1
|
+
import{o as t,C as _}from"./index-DNb6Q69l.js";import{r as u,j as y}from"./react-vendor-BVS1XoFi.js";import{F as x,G as v,L,H as c,J as l,K as N,M as z,q as j,N as H,P as w}from"./react-C7YGEhUS.js";import{z as f,V as g}from"./editor-DBWWidi3.js";import{B as I,I as $}from"./italic-BljxX8Uj.js";/**
|
|
2
2
|
* @license lucide-react v0.562.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as e}from"./react-vendor-BVS1XoFi.js";import{c as G,a8 as ee,f as se,a3 as z}from"./index-CINfyH_g.js";function ie({options:v,value:a,onChange:b}){const[d,f]=r.useState(!1),y=r.useRef(null),x=r.useRef(null),p=v.find(o=>o.value===a);r.useEffect(()=>{if(!d)return;const o=u=>{var N,k;!((N=y.current)!=null&&N.contains(u.target))&&!((k=x.current)!=null&&k.contains(u.target))&&f(!1)};return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[d]),r.useEffect(()=>{if(!d)return;const o=u=>{var N;u.key==="Escape"&&(f(!1),(N=y.current)==null||N.focus())};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[d]);function j(o){b(o),f(!1)}return e.jsxs("div",{className:"mdocs-mini-select",style:{position:"relative"},children:[e.jsxs("button",{ref:y,type:"button",className:"mdocs-mini-select-trigger","aria-expanded":d,"aria-haspopup":"listbox",onClick:()=>f(o=>!o),children:[e.jsx("span",{children:p==null?void 0:p.label}),e.jsx("svg",{className:"mdocs-mini-select-chevron"+(d?" open":""),width:"10",height:"6",viewBox:"0 0 10 6",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:e.jsx("path",{d:"M1 1l4 4 4-4"})})]}),d&&e.jsx("div",{ref:x,className:"mdocs-mini-select-menu card",role:"listbox",children:v.map(o=>e.jsx("button",{type:"button",className:"mdocs-mini-select-option"+(o.value===a?" active":""),role:"option","aria-selected":o.value===a,onClick:()=>j(o.value),children:o.label},o.value))})]})}function te(v){return v.length<=6?v:`${v.slice(0,6)}…`}function re(v){const{visitors:a,loadState:b,searchFilter:d,onSearchChange:f,selectedIds:y,onToggle:x,selectedRows:p,lockedIds:j=new Set,myVisitorId:o,showPermissionSelect:u=!1,permissionOptions:N=[],onPermissionChange:k}=v,{t:i}=G(),P=r.useMemo(()=>{const t=d.trim().toLowerCase();let g=t?a.filter(m=>m.visitorName.toLowerCase().includes(t)||m.visitorId.toLowerCase().includes(t)):a;return o&&(g=[...g].sort((m,R)=>m.visitorId===o?-1:R.visitorId===o?1:0)),g},[a,d,o]);return e.jsxs(e.Fragment,{children:[e.jsx("input",{type:"search",className:"mdocs-visitor-picker-search",placeholder:i("visitorPickerSearchPlaceholder"),value:d,onChange:t=>f(t.target.value),disabled:b!=="ok"}),b==="loading"&&e.jsx("div",{className:"mdocs-visitor-picker-loading",children:i("loading")}),b==="err"&&e.jsx("div",{className:"mdocs-visitor-picker-error",children:i("visitorPickerLoadError")}),b==="ok"&&e.jsxs("div",{className:"mdocs-visitor-picker-columns",children:[e.jsxs("div",{className:"mdocs-visitor-picker-col",children:[e.jsx("h3",{className:"mdocs-visitor-picker-col-title",children:i("visitorPickerColumnAll")}),e.jsx("div",{className:"mdocs-visitor-picker-table-wrap",children:e.jsxs("table",{className:"mdocs-visitor-picker-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:i("visitorPickerColIdShort")}),e.jsx("th",{scope:"col",children:i("visitorPickerColName")}),e.jsx("th",{scope:"col",className:"mdocs-visitor-picker-check-col",children:i("visitorPickerColPick")})]})}),e.jsx("tbody",{children:P.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:3,className:"mdocs-visitor-picker-empty-cell",children:a.length===0?i("visitorPickerEmptyDirectory"):i("domainNoMatch")})}):P.map(t=>{const g=j.has(t.visitorId),m=y.has(t.visitorId);return e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{className:"mdocs-visitor-picker-id-short",children:te(t.visitorId)})}),e.jsxs("td",{children:[t.visitorName,t.visitorId===o&&e.jsx("span",{className:"mdocs-visitor-picker-self-marker",children:i("visitorPickerSelfMarker")})]}),e.jsx("td",{className:"mdocs-visitor-picker-check-col",children:e.jsx("input",{type:"checkbox",checked:m,disabled:g,onChange:()=>x(t.visitorId),"aria-label":t.visitorName})})]},t.visitorId)})})]})})]}),e.jsxs("div",{className:"mdocs-visitor-picker-col",children:[e.jsx("h3",{className:"mdocs-visitor-picker-col-title",children:i("visitorPickerColumnSelected")}),e.jsx("div",{className:"mdocs-visitor-picker-table-wrap",children:e.jsxs("table",{className:"mdocs-visitor-picker-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:i("visitorPickerColIdFull")}),e.jsx("th",{scope:"col",children:i("visitorPickerColName")}),u&&e.jsx("th",{scope:"col",children:i("permissionLabel")}),e.jsx("th",{scope:"col",className:"mdocs-visitor-picker-check-col"})]})}),e.jsx("tbody",{children:p.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:u?4:3,className:"mdocs-visitor-picker-empty-cell",children:i("visitorPickerNoSelection")})}):p.map(t=>{const g=j.has(t.visitorId);return e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{className:"mdocs-visitor-picker-id-full",children:t.visitorId})}),e.jsx("td",{className:t.muted?"mdocs-visitor-picker-name-muted":void 0,children:t.name}),u&&e.jsx("td",{children:e.jsx(ie,{options:N,value:t.permission??"read",onChange:m=>k==null?void 0:k(t.visitorId,m)})}),e.jsx("td",{className:"mdocs-visitor-picker-check-col",children:g?e.jsx("span",{className:"mdocs-visitor-picker-locked",title:i("visitorPickerLockedHint"),children:"—"}):e.jsx("button",{type:"button",className:"mdocs-visitor-picker-remove",onClick:()=>x(t.visitorId),"aria-label":i("visitorPickerRemove"),children:"×"})})]},t.visitorId)})})]})})]})]})]})}function ne(v){var U;const{open:a,title:b,initialSelectedIds:d,lockedIds:f=[],seedMembers:y,excludeTemplateId:x,templates:p,onClose:j,onConfirm:o,showPermissionSelect:u=!1,permissionOptions:N=[],initialPermissions:k}=v,{t:i}=G(),P=r.useRef(i);P.current=i;const t=r.useMemo(()=>new Set(f),[f]),g=ee(),[m,R]=r.useState([]),[E,T]=r.useState("idle"),[w,V]=r.useState(()=>new Set),[O,L]=r.useState(()=>new Map),[J,A]=r.useState(""),[C,B]=r.useState(""),[M,D]=r.useState(!1),$=r.useRef(null),[K,W]=r.useState(!1),[q,I]=r.useState(null),F=r.useMemo(()=>p.filter(s=>x==null||s.id!==x),[p,x]),H=r.useMemo(()=>new Map((y??[]).map(s=>[s.visitorId,s])),[y]);r.useEffect(()=>{a&&(V(new Set(d)),L(k?new Map(k):new Map),A(""),B(""),I(null))},[a,d,k]),r.useEffect(()=>{if(!a)return;let s=!1;return T("loading"),se().then(n=>{s||(R(n),T("ok"))}).catch(n=>{s||(T("err"),I(z(P.current,n)))}),()=>{s=!0}},[a]),r.useEffect(()=>{if(!M)return;const s=n=>{var c;(c=$.current)!=null&&c.contains(n.target)||D(!1)};return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[M]);const Q=r.useMemo(()=>{const s=new Map(m.map(c=>[c.visitorId,c])),n=[];for(const c of w){const l=O.get(c),h=s.get(c);if(h){n.push({visitorId:c,name:h.visitorName,muted:!1,permission:l});continue}const S=H.get(c);if(S){S.missing?n.push({visitorId:c,name:i("visitorPickerMemberMissing"),muted:!0,permission:l}):S.disabled?n.push({visitorId:c,name:`${S.visitorName} · ${i("visitorPickerDisabledTag")}`,muted:!0,permission:l}):n.push({visitorId:c,name:S.visitorName,muted:!1,permission:l});continue}n.push({visitorId:c,name:i("visitorPickerUnknownVisitor"),muted:!0,permission:l})}return n.sort((c,l)=>c.name.localeCompare(l.name,void 0,{sensitivity:"base"})),n},[m,w,H,O,i]),X=r.useCallback(s=>{t.has(s)||V(n=>{const c=new Set(n);return c.has(s)?(c.delete(s),L(l=>{const h=new Map(l);return h.delete(s),h})):(c.add(s),L(l=>{const h=new Map(l);return h.set(s,"read"),h})),c})},[t]),Y=r.useCallback((s,n)=>{L(c=>{const l=new Map(c);return l.set(s,n),l})},[]),Z=r.useCallback(()=>{const s=Number(C);if(!Number.isInteger(s)||s<1)return;const n=p.find(l=>l.id===s);if(!n)return;const c=new Set(m.map(l=>l.visitorId));V(l=>{const h=new Set(l);for(const S of n.visitorIds)c.has(S)&&h.add(S);return h})},[C,p,m]);async function _(){I(null),W(!0);try{if(u){const s=[...w].sort().map(n=>({visitorId:n,permission:O.get(n)??"read"}));await o(s)}else{const s=[...w].sort();await o(s)}j()}catch(s){I(z(i,s))}finally{W(!1)}}return a?e.jsx("div",{className:"mdocs-visitor-picker-overlay",role:"presentation",onMouseDown:s=>s.target===s.currentTarget&&j(),children:e.jsxs("div",{className:"mdocs-visitor-picker-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"mdocs-visitor-picker-title",children:[e.jsxs("header",{className:"mdocs-visitor-picker-header",children:[e.jsx("h2",{id:"mdocs-visitor-picker-title",className:"mdocs-visitor-picker-title",children:b}),e.jsx("button",{type:"button",className:"mdocs-visitor-picker-close",onClick:j,"aria-label":i("close"),children:"×"})]}),F.length>0&&e.jsx("div",{className:"mdocs-visitor-picker-toolbar",children:e.jsxs("div",{className:"mdocs-visitor-picker-template-bar",children:[e.jsxs("div",{ref:$,className:"mdocs-template-picker",children:[e.jsxs("button",{type:"button",className:"mdocs-template-picker-trigger",onClick:()=>D(s=>!s),disabled:E!=="ok","aria-haspopup":"listbox","aria-expanded":M,children:[e.jsx("span",{className:"mdocs-template-picker-text",children:C?(U=F.find(s=>String(s.id)===C))==null?void 0:U.displayName:i("visitorPickerPickTemplate")}),e.jsx("svg",{className:"mdocs-template-picker-chevron"+(M?" open":""),width:"10",height:"6",viewBox:"0 0 10 6",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:e.jsx("path",{d:"M1 1l4 4 4-4"})})]}),M&&e.jsx("div",{className:"mdocs-template-picker-menu card",role:"listbox",children:F.map(s=>e.jsx("button",{type:"button",className:"mdocs-template-picker-option"+(String(s.id)===C?" active":""),role:"option","aria-selected":String(s.id)===C,onClick:()=>{B(String(s.id)),D(!1)},children:s.displayName},s.id))})]}),e.jsx("button",{type:"button",className:"secondary",onClick:()=>{if(E!=="ok"){I(i("loading"));return}if(!C){I(i("visitorPickerPickTemplate"));return}Z()},children:i("visitorPickerApplyTemplate")})]})}),q&&e.jsx("div",{className:"mdocs-visitor-picker-error",role:"alert",children:q}),e.jsx("div",{style:{padding:"8px 18px 12px"},children:e.jsx(re,{visitors:m,loadState:E,searchFilter:J,onSearchChange:A,selectedIds:w,onToggle:X,selectedRows:Q,lockedIds:t,myVisitorId:g,showPermissionSelect:u,permissionOptions:N,onPermissionChange:Y})}),e.jsxs("footer",{className:"mdocs-visitor-picker-footer",children:[e.jsx("button",{type:"button",className:"secondary",onClick:j,children:i("cancel")}),e.jsx("button",{type:"button",className:"primary",onClick:()=>{if(E!=="ok"){I(i("loading"));return}_()},children:i(K?"saving":"visitorPickerConfirm")})]})]})}):null}export{ie as M,ne as V,re as a};
|
|
1
|
+
import{r,j as e}from"./react-vendor-BVS1XoFi.js";import{c as G,a8 as ee,f as se,a3 as z}from"./index-DNb6Q69l.js";function ie({options:v,value:a,onChange:b}){const[d,f]=r.useState(!1),y=r.useRef(null),x=r.useRef(null),p=v.find(o=>o.value===a);r.useEffect(()=>{if(!d)return;const o=u=>{var N,k;!((N=y.current)!=null&&N.contains(u.target))&&!((k=x.current)!=null&&k.contains(u.target))&&f(!1)};return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[d]),r.useEffect(()=>{if(!d)return;const o=u=>{var N;u.key==="Escape"&&(f(!1),(N=y.current)==null||N.focus())};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[d]);function j(o){b(o),f(!1)}return e.jsxs("div",{className:"mdocs-mini-select",style:{position:"relative"},children:[e.jsxs("button",{ref:y,type:"button",className:"mdocs-mini-select-trigger","aria-expanded":d,"aria-haspopup":"listbox",onClick:()=>f(o=>!o),children:[e.jsx("span",{children:p==null?void 0:p.label}),e.jsx("svg",{className:"mdocs-mini-select-chevron"+(d?" open":""),width:"10",height:"6",viewBox:"0 0 10 6",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:e.jsx("path",{d:"M1 1l4 4 4-4"})})]}),d&&e.jsx("div",{ref:x,className:"mdocs-mini-select-menu card",role:"listbox",children:v.map(o=>e.jsx("button",{type:"button",className:"mdocs-mini-select-option"+(o.value===a?" active":""),role:"option","aria-selected":o.value===a,onClick:()=>j(o.value),children:o.label},o.value))})]})}function te(v){return v.length<=6?v:`${v.slice(0,6)}…`}function re(v){const{visitors:a,loadState:b,searchFilter:d,onSearchChange:f,selectedIds:y,onToggle:x,selectedRows:p,lockedIds:j=new Set,myVisitorId:o,showPermissionSelect:u=!1,permissionOptions:N=[],onPermissionChange:k}=v,{t:i}=G(),P=r.useMemo(()=>{const t=d.trim().toLowerCase();let g=t?a.filter(m=>m.visitorName.toLowerCase().includes(t)||m.visitorId.toLowerCase().includes(t)):a;return o&&(g=[...g].sort((m,R)=>m.visitorId===o?-1:R.visitorId===o?1:0)),g},[a,d,o]);return e.jsxs(e.Fragment,{children:[e.jsx("input",{type:"search",className:"mdocs-visitor-picker-search",placeholder:i("visitorPickerSearchPlaceholder"),value:d,onChange:t=>f(t.target.value),disabled:b!=="ok"}),b==="loading"&&e.jsx("div",{className:"mdocs-visitor-picker-loading",children:i("loading")}),b==="err"&&e.jsx("div",{className:"mdocs-visitor-picker-error",children:i("visitorPickerLoadError")}),b==="ok"&&e.jsxs("div",{className:"mdocs-visitor-picker-columns",children:[e.jsxs("div",{className:"mdocs-visitor-picker-col",children:[e.jsx("h3",{className:"mdocs-visitor-picker-col-title",children:i("visitorPickerColumnAll")}),e.jsx("div",{className:"mdocs-visitor-picker-table-wrap",children:e.jsxs("table",{className:"mdocs-visitor-picker-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:i("visitorPickerColIdShort")}),e.jsx("th",{scope:"col",children:i("visitorPickerColName")}),e.jsx("th",{scope:"col",className:"mdocs-visitor-picker-check-col",children:i("visitorPickerColPick")})]})}),e.jsx("tbody",{children:P.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:3,className:"mdocs-visitor-picker-empty-cell",children:a.length===0?i("visitorPickerEmptyDirectory"):i("domainNoMatch")})}):P.map(t=>{const g=j.has(t.visitorId),m=y.has(t.visitorId);return e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{className:"mdocs-visitor-picker-id-short",children:te(t.visitorId)})}),e.jsxs("td",{children:[t.visitorName,t.visitorId===o&&e.jsx("span",{className:"mdocs-visitor-picker-self-marker",children:i("visitorPickerSelfMarker")})]}),e.jsx("td",{className:"mdocs-visitor-picker-check-col",children:e.jsx("input",{type:"checkbox",checked:m,disabled:g,onChange:()=>x(t.visitorId),"aria-label":t.visitorName})})]},t.visitorId)})})]})})]}),e.jsxs("div",{className:"mdocs-visitor-picker-col",children:[e.jsx("h3",{className:"mdocs-visitor-picker-col-title",children:i("visitorPickerColumnSelected")}),e.jsx("div",{className:"mdocs-visitor-picker-table-wrap",children:e.jsxs("table",{className:"mdocs-visitor-picker-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:i("visitorPickerColIdFull")}),e.jsx("th",{scope:"col",children:i("visitorPickerColName")}),u&&e.jsx("th",{scope:"col",children:i("permissionLabel")}),e.jsx("th",{scope:"col",className:"mdocs-visitor-picker-check-col"})]})}),e.jsx("tbody",{children:p.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:u?4:3,className:"mdocs-visitor-picker-empty-cell",children:i("visitorPickerNoSelection")})}):p.map(t=>{const g=j.has(t.visitorId);return e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{className:"mdocs-visitor-picker-id-full",children:t.visitorId})}),e.jsx("td",{className:t.muted?"mdocs-visitor-picker-name-muted":void 0,children:t.name}),u&&e.jsx("td",{children:e.jsx(ie,{options:N,value:t.permission??"read",onChange:m=>k==null?void 0:k(t.visitorId,m)})}),e.jsx("td",{className:"mdocs-visitor-picker-check-col",children:g?e.jsx("span",{className:"mdocs-visitor-picker-locked",title:i("visitorPickerLockedHint"),children:"—"}):e.jsx("button",{type:"button",className:"mdocs-visitor-picker-remove",onClick:()=>x(t.visitorId),"aria-label":i("visitorPickerRemove"),children:"×"})})]},t.visitorId)})})]})})]})]})]})}function ne(v){var U;const{open:a,title:b,initialSelectedIds:d,lockedIds:f=[],seedMembers:y,excludeTemplateId:x,templates:p,onClose:j,onConfirm:o,showPermissionSelect:u=!1,permissionOptions:N=[],initialPermissions:k}=v,{t:i}=G(),P=r.useRef(i);P.current=i;const t=r.useMemo(()=>new Set(f),[f]),g=ee(),[m,R]=r.useState([]),[E,T]=r.useState("idle"),[w,V]=r.useState(()=>new Set),[O,L]=r.useState(()=>new Map),[J,A]=r.useState(""),[C,B]=r.useState(""),[M,D]=r.useState(!1),$=r.useRef(null),[K,W]=r.useState(!1),[q,I]=r.useState(null),F=r.useMemo(()=>p.filter(s=>x==null||s.id!==x),[p,x]),H=r.useMemo(()=>new Map((y??[]).map(s=>[s.visitorId,s])),[y]);r.useEffect(()=>{a&&(V(new Set(d)),L(k?new Map(k):new Map),A(""),B(""),I(null))},[a,d,k]),r.useEffect(()=>{if(!a)return;let s=!1;return T("loading"),se().then(n=>{s||(R(n),T("ok"))}).catch(n=>{s||(T("err"),I(z(P.current,n)))}),()=>{s=!0}},[a]),r.useEffect(()=>{if(!M)return;const s=n=>{var c;(c=$.current)!=null&&c.contains(n.target)||D(!1)};return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[M]);const Q=r.useMemo(()=>{const s=new Map(m.map(c=>[c.visitorId,c])),n=[];for(const c of w){const l=O.get(c),h=s.get(c);if(h){n.push({visitorId:c,name:h.visitorName,muted:!1,permission:l});continue}const S=H.get(c);if(S){S.missing?n.push({visitorId:c,name:i("visitorPickerMemberMissing"),muted:!0,permission:l}):S.disabled?n.push({visitorId:c,name:`${S.visitorName} · ${i("visitorPickerDisabledTag")}`,muted:!0,permission:l}):n.push({visitorId:c,name:S.visitorName,muted:!1,permission:l});continue}n.push({visitorId:c,name:i("visitorPickerUnknownVisitor"),muted:!0,permission:l})}return n.sort((c,l)=>c.name.localeCompare(l.name,void 0,{sensitivity:"base"})),n},[m,w,H,O,i]),X=r.useCallback(s=>{t.has(s)||V(n=>{const c=new Set(n);return c.has(s)?(c.delete(s),L(l=>{const h=new Map(l);return h.delete(s),h})):(c.add(s),L(l=>{const h=new Map(l);return h.set(s,"read"),h})),c})},[t]),Y=r.useCallback((s,n)=>{L(c=>{const l=new Map(c);return l.set(s,n),l})},[]),Z=r.useCallback(()=>{const s=Number(C);if(!Number.isInteger(s)||s<1)return;const n=p.find(l=>l.id===s);if(!n)return;const c=new Set(m.map(l=>l.visitorId));V(l=>{const h=new Set(l);for(const S of n.visitorIds)c.has(S)&&h.add(S);return h})},[C,p,m]);async function _(){I(null),W(!0);try{if(u){const s=[...w].sort().map(n=>({visitorId:n,permission:O.get(n)??"read"}));await o(s)}else{const s=[...w].sort();await o(s)}j()}catch(s){I(z(i,s))}finally{W(!1)}}return a?e.jsx("div",{className:"mdocs-visitor-picker-overlay",role:"presentation",onMouseDown:s=>s.target===s.currentTarget&&j(),children:e.jsxs("div",{className:"mdocs-visitor-picker-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"mdocs-visitor-picker-title",children:[e.jsxs("header",{className:"mdocs-visitor-picker-header",children:[e.jsx("h2",{id:"mdocs-visitor-picker-title",className:"mdocs-visitor-picker-title",children:b}),e.jsx("button",{type:"button",className:"mdocs-visitor-picker-close",onClick:j,"aria-label":i("close"),children:"×"})]}),F.length>0&&e.jsx("div",{className:"mdocs-visitor-picker-toolbar",children:e.jsxs("div",{className:"mdocs-visitor-picker-template-bar",children:[e.jsxs("div",{ref:$,className:"mdocs-template-picker",children:[e.jsxs("button",{type:"button",className:"mdocs-template-picker-trigger",onClick:()=>D(s=>!s),disabled:E!=="ok","aria-haspopup":"listbox","aria-expanded":M,children:[e.jsx("span",{className:"mdocs-template-picker-text",children:C?(U=F.find(s=>String(s.id)===C))==null?void 0:U.displayName:i("visitorPickerPickTemplate")}),e.jsx("svg",{className:"mdocs-template-picker-chevron"+(M?" open":""),width:"10",height:"6",viewBox:"0 0 10 6",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:e.jsx("path",{d:"M1 1l4 4 4-4"})})]}),M&&e.jsx("div",{className:"mdocs-template-picker-menu card",role:"listbox",children:F.map(s=>e.jsx("button",{type:"button",className:"mdocs-template-picker-option"+(String(s.id)===C?" active":""),role:"option","aria-selected":String(s.id)===C,onClick:()=>{B(String(s.id)),D(!1)},children:s.displayName},s.id))})]}),e.jsx("button",{type:"button",className:"secondary",onClick:()=>{if(E!=="ok"){I(i("loading"));return}if(!C){I(i("visitorPickerPickTemplate"));return}Z()},children:i("visitorPickerApplyTemplate")})]})}),q&&e.jsx("div",{className:"mdocs-visitor-picker-error",role:"alert",children:q}),e.jsx("div",{style:{padding:"8px 18px 12px"},children:e.jsx(re,{visitors:m,loadState:E,searchFilter:J,onSearchChange:A,selectedIds:w,onToggle:X,selectedRows:Q,lockedIds:t,myVisitorId:g,showPermissionSelect:u,permissionOptions:N,onPermissionChange:Y})}),e.jsxs("footer",{className:"mdocs-visitor-picker-footer",children:[e.jsx("button",{type:"button",className:"secondary",onClick:j,children:i("cancel")}),e.jsx("button",{type:"button",className:"primary",onClick:()=>{if(E!=="ok"){I(i("loading"));return}_()},children:i(K?"saving":"visitorPickerConfirm")})]})]})}):null}export{ie as M,ne as V,re as a};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{o}from"./index-DNb6Q69l.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 c=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],h=o("chevron-right",c);/**
|
|
7
|
+
* @license lucide-react v0.562.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const t=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],r=o("copy",t);export{r as C,h as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as i}from"./index-
|
|
1
|
+
import{o as i}from"./index-DNb6Q69l.js";import{ae as s,af as l,ag as u,ah as f}from"./ui-CEFkTVnG.js";/**
|
|
2
2
|
* @license lucide-react v0.562.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|