@docx-editor.dev/pro 2.1.3 → 2.2.1
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/dist/react/index.cjs +2 -2
- package/dist/react/index.d.cts +11 -8
- package/dist/react/index.d.ts +11 -8
- package/dist/react/index.js +2 -2
- package/package.json +1 -1
package/dist/react/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var chunkA7NTVTWG_cjs=require('../chunk-A7NTVTWG.cjs'),react=require('react'),react$1=require('@docx-editor.dev/react'),jsxRuntime=require('react/jsx-runtime'),store=require('@docx-editor.dev/core/store');function me(e){let i=react$1.useDocxEditor();return it(i,e)}function it(e,i){let l=react.useCallback(f=>{if(!e)return ()=>{};let x=e.on("change",f),A=e.on("selectionChange",f),N=e.on("error",f);return ()=>{x(),A(),N();}},[e]),r=react.useSyncExternalStore(l,()=>e?`${e.getReviewRevision()}`:"none",()=>"none"),t=react.useMemo(()=>e?e.getReviewItems(i).filter(f=>f.item.kind!=="custom"||f.item.carded):[],[e,r,i]),o=react.useMemo(()=>t.find(f=>f.isActive)?.key??null,[t]),n=react.useCallback((f,x)=>e?e.setActiveReviewItem(f,x).ok:false,[e]),a=react.useCallback(f=>!e||f.kind!=="revision"||f.readOnly?false:e.acceptReviewItem(f.key).ok,[e]),d=react.useCallback(f=>!e||f.kind!=="revision"||f.readOnly?false:e.rejectReviewItem(f.key).ok,[e]),u=react.useCallback(f=>!e||f.kind==="custom"||f.kind==="revision"&&f.readOnly?false:e.deleteReviewItem(f.key).ok,[e]),c=react.useCallback((f,x,A)=>x.trim().length===0||!e?false:e.replyToReviewItem(f.key,x,A).ok,[e]),w=react.useMemo(()=>e?e.getSelectionPlacement()?.anchorY??null:null,[e,r]),R=react.useCallback((f,x)=>f.trim().length===0||!e?false:e.addComment(f,x).ok,[e]),y=react.useMemo(()=>e?e.isReviewPaneOpen():true,[e,r]),v=react.useCallback(f=>{!e||e.isReviewPaneOpen()===f||e.exec({type:"toggleReviewPane"});},[e]);return react.useMemo(()=>({items:t,activeKey:o,setActive:n,accept:a,reject:d,remove:u,reply:c,selectionAnchorY:w,comment:R,paneOpen:y,setPaneOpen:v,ready:e!==null&&!e.snapshot().isLoading&&e.snapshot().parseError===null}),[t,o,n,a,d,u,c,w,R,y,v,e])}function Mt(e,i,l={}){let r=l.gap??8,t=l.scale??1,o=l.defaultHeight??0;return react.useMemo(()=>{let n=new Map,a=Number.NEGATIVE_INFINITY;for(let d of e){let u=d.anchorY===null?Number.isFinite(a)?a:0:Math.max(d.anchorY,a);n.set(d.key,u),a=u+((i.get(d.key)??o)+r)/t;}return n},[e,i,r,t,o])}var X=e=>jsxRuntime.jsx("svg",{viewBox:"0 -960 960 960",width:16,height:16,"aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:e,fill:"currentColor"})}),lt="M440-400h80v-120h120v-80H520v-120h-80v120H320v80h120v120ZM80-80v-720q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H240L80-80Zm126-240h594v-480H160v525l46-45Zm-46 0v-480 480Z",at="M240-400h480v-80H240v80Zm0-120h480v-80H240v80Zm0-120h480v-80H240v80ZM880-80 720-240H160q-33 0-56.5-23.5T80-320v-480q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v720ZM160-320h594l46 45v-525H160v480Zm0 0v-480 480Z",ct="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z",dt="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z",ut="M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z",Dt="M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z",St="M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 78t85.5 30q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-341q0 86-61.5 133.5T486-160ZM80-520v-80h800v80H80Zm402-360q66 0 116 30t74 84l-88 38q-11-28-38.5-47T480-794q-42 0-72 19t-30 51q0 15 6 27t18 22H272q-6-13-9-27t-3-30q0-70 55-114t167-44Z",Ot="M360-160q-83 0-141.5-58.5T160-360v-360q0-83 58.5-141.5T360-920q83 0 141.5 58.5T560-720v360q0 83-58.5 141.5T360-160Zm0-80q50 0 85-35t35-85v-360q0-50-35-85t-85-35q-50 0-85 35t-35 85v360q0 50 35 85t85 35Zm300 80q29 0 49.5-20.5T730-230q0-22-12.5-40T684-296l-64-32v-232l100 100q23 23 51.5 35.5T832-412v-80q-17 0-32-6.5T773-517L633-657q-12-12-27.5-17.5T573-680h-13v520h100ZM360-720Z",Lt="M580-360q-25 0-42.5-17.5T520-420v-160q0-25 17.5-42.5T580-640h160q25 0 42.5 17.5T800-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T720-320v-40H580Zm-360 0q-25 0-42.5-17.5T160-420v-160q0-25 17.5-42.5T220-640h160q25 0 42.5 17.5T440-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T360-320v-40H220Z";function mt(e){if(e.kind==="comment")return at;if(e.kind==="custom")return e.item.icon??Lt;switch(e.revisionKind){case "insert":case "moveTo":return Dt;case "delete":case "moveFrom":return St;case "format":return Ot;default:return at}}var Kt=e=>e.isLoading||e.parseError!==null||e.pageSetup==null,Ie=react.createContext(null),I=react.createContext(null);function Yt(){return react.useContext(I)}var Zt={scale:96/72,top:0,left:null},Bt=16,ve="\0compose",ft=600,wt=8,Ft=72,jt=64,Ut=480,zt=Object.freeze({placement:false});function Pe(e,i){return e.kind!=="comment"?false:e.parentId!==void 0?i.has(e.parentId):e.parentRevisionId!==void 0?i.has(e.parentRevisionId):false}function ke(e){return new Set(e.map(i=>i.id))}function j(e){let i=e.target?.tagName;i==="INPUT"||i==="SELECT"||i==="TEXTAREA"||e.preventDefault();}function H(){let e=react.useContext(Ie);return e||Qt}function Y(){let{t:e}=react.useContext(Ie)??{},{t:i}=react$1.useTranslation();return react.useCallback(l=>e?.(l)??i(l),[e,i])}var Qt={t:void 0,cardClassName:void 0,review:{items:[],activeKey:null,setActive:()=>false,accept:()=>false,reject:()=>false,remove:()=>false,reply:()=>false,selectionAnchorY:null,comment:()=>false,paneOpen:true,setPaneOpen:()=>{},ready:false},allItems:[],authorSlots:new Map,byId:new Map,measure:()=>{},beginDraft:()=>{},endDraft:()=>{}};function Gt({className:e,furniture:i,asChild:l,hidden:r,children:t,t:o,card:n,preset:a=true,stack:d=true,gap:u=8,filter:c,structural:w=false,formatting:R=false}){let y=react$1.useDocxEditor(),v=react$1.useEditorState(Kt),f=react.useMemo(()=>{let p=[];return w||p.push("structural"),R||p.push("format"),p.length>0?p:void 0},[w,R]),x=react.useMemo(()=>f?{excludeRevisionKinds:f}:void 0,[f]);react.useEffect(()=>(y?.setReviewActivationExclusions(f??null),()=>y?.setReviewActivationExclusions(null)),[y,f]);let A=me(zt),N=me(x),E=N.setPaneOpen,{t:C}=react$1.useTranslation(),T=react.useCallback(p=>o?.(p)??C(p),[o,C]),D=react.useRef(null),de=react.useContext(react$1.ReviewRailContext);react.useEffect(()=>de?.register(),[de]);let Z=N.paneOpen,k=react.useMemo(()=>c?N.items.filter(p=>c(p)):N.items,[N.items,c]),Ke=react.useMemo(()=>{let p=new Map;for(let m of k)m.author&&!p.has(m.author)&&p.set(m.author,p.size);return p},[k]),Ye=react.useMemo(()=>{let p=new Map;for(let m of k)p.set(m.id,m);return p},[k]),[Ze,_t]=react.useState(()=>new Map),ye=react.useCallback((p,m)=>{m<=0||_t(b=>{if(b.get(p)===m)return b;let _=new Map(b);return _.set(p,m),_});},[]),be=react.useRef(new WeakMap),te=react.useRef(null),Be=react.useCallback((p,m)=>{!p||typeof ResizeObserver>"u"||(ye(m,p.offsetHeight),te.current??(te.current=new ResizeObserver(b=>{for(let _ of b){let g=be.current.get(_.target);g&&ye(g,_.target.offsetHeight);}})),be.current.get(p)!==m&&(be.current.set(p,m),te.current.observe(p)));},[ye]);react.useEffect(()=>()=>te.current?.disconnect(),[]);let[S,Ct]=react.useState(Zt);react.useEffect(()=>{let p=D.current;if(!y||!p)return;let m=p.offsetParent,b=m?.querySelector(".docx-paginated-surface")??null,_=()=>{Ct(M=>{let q=b&&m?b.getBoundingClientRect():null,L=q&&m?m.getBoundingClientRect():null,$={scale:y.getRenderScale(),top:q&&L&&m?q.top-L.top-m.clientTop+m.scrollTop:0,left:q&&L&&m?q.right-L.left-m.clientLeft+m.scrollLeft+Bt:null};return M.scale===$.scale&&M.top===$.top&&M.left===$.left?M:$});};_();let g=new ResizeObserver(_);return m&&g.observe(m),b&&g.observe(b),()=>g.disconnect()},[y,k,v,r]),react.useEffect(()=>{let p=D.current;if(!y||!p)return;let m=b=>{let _=b.target;if(!(_ instanceof Node)||p.contains(_))return;let g=p.offsetParent;!g||!g.contains(_)||g.querySelector(".docx-paginated-surface")?.contains(_)||y.setActiveReviewItem(null);};return document.addEventListener("mousedown",m,true),()=>document.removeEventListener("mousedown",m,true)},[y,v,r]);let[xe,Et]=react.useState(null);react.useEffect(()=>{let p=D.current,m=p?.offsetParent;if(!m)return;let b=0,_=()=>{b=0,Et(L=>{let $=m.scrollTop-ft,ue=m.scrollTop+m.clientHeight+ft;return L&&L.top===$&&L.bottom===ue?L:{top:$,bottom:ue}});},g=0,M=()=>{b===0&&(b=requestAnimationFrame(_)),p?.setAttribute("data-scrolling",""),window.clearTimeout(g),g=window.setTimeout(()=>p?.removeAttribute("data-scrolling"),150);};_(),m.addEventListener("scroll",M,{passive:true});let q=new ResizeObserver(M);return q.observe(m),()=>{b!==0&&cancelAnimationFrame(b),window.clearTimeout(g),m.removeEventListener("scroll",M),q.disconnect();}},[y,v,r]);let[B,he]=react.useState(null),Fe=react.useCallback(()=>{y&&(y.surface?.retainSelection(),E(true),he(y.getSelectionPlacement()?.anchorY??null));},[y,E]),je=react.useCallback(()=>{y?.surface?.releaseSelection(),he(null),y?.focus();},[y]);react.useEffect(()=>{Z||B===null||(y?.surface?.releaseSelection(),he(null));},[Z,B,y]);let Ue=B??N.selectionAnchorY,U=react.useMemo(()=>{let p=ke(k);return k.filter(m=>!Pe(m,p))},[k]),ze=react.useMemo(()=>{if(B===null)return U;let p=U.findIndex(b=>b.anchorY!==null&&b.anchorY>B),m={key:ve,anchorY:B};return p===-1?[...U,m]:[...U.slice(0,p),m,...U.slice(p)]},[U,B]),Qe=react.useMemo(()=>{let p=new Map(Ze);for(let m of U){if(p.has(m.key))continue;let b=m.text.length+(m.kind==="revision"?m.replacedText?.length??0:0),_=Math.min(6,Math.max(1,Math.ceil(b/36)));p.set(m.key,64+_*20);}return p},[Ze,U]),{stacked:ge,collapsedKeys:Ge}=react.useMemo(()=>{let p=S.scale,m=new Map,b=new Set,_=Number.NEGATIVE_INFINITY;for(let g of ze){let M=g.anchorY===null?Number.isFinite(_)?_:0:Math.max(g.anchorY,_);m.set(g.key,M);let q=g.anchorY===null?0:(M-g.anchorY)*p,L="isActive"in g&&g.isActive,$=q>Ut&&!L&&g.key!==ve;$&&b.add(g.key);let ue=$?jt:Qe.get(g.key)??Ft;_=M+(ue+u)/p;}return {stacked:m,collapsedKeys:b}},[ze,Qe,u,S.scale]),Ne=Ue===null?null:S.top+(ge.get(ve)??Ue)*S.scale,We=n?.className,Tt=react.useMemo(()=>({t:o,cardClassName:We,review:{...N,items:k},allItems:A.items,authorSlots:Ke,byId:Ye,measure:Be,beginDraft:Fe,endDraft:je}),[o,We,N,A.items,k,Ke,Ye,Be,Fe,je]);if(r||v)return null;let Xe={ref:D,className:`docx-review${e?` ${e}`:""}`,"data-testid":"review-rail","data-count":k.length,"data-open":Z?"":void 0,role:"complementary","aria-label":T("review.ariaLabel"),onMouseDown:j,style:S.left===null?void 0:{left:S.left,right:"auto"}},Je=typeof t=="function"?{}:Rt(t),ne=(p,m)=>{if(!(p in Je))return m;let b=Je[p];return !react.isValidElement(b)||!react.isValidElement(m)?b:react.cloneElement(b,{...m.props,...b.props})},et=a?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[ne("AddComment",jsxRuntime.jsx(Me,{top:Ne,drafting:B!==null})),!Z||B===null||Ne===null?null:ne("Draft",jsxRuntime.jsx(De,{top:Ne})),ne("Balloon",jsxRuntime.jsx(Se,{}))]}):null,It=a?Z?ne("List",jsxRuntime.jsx(fe,{stack:d,positions:ge,collapsed:Ge,scale:S.scale,offset:S.top,window:xe,children:t})):ne("Markers",jsxRuntime.jsx(Ae,{scale:S.scale,offset:S.top,window:xe})):typeof t=="function"?null:t;return jsxRuntime.jsx(Ie.Provider,{value:Tt,children:l&&react.isValidElement(t)?jsxRuntime.jsx(react$1.Slot,{...Xe,children:react.cloneElement(t,void 0,t.props.children,a?jsxRuntime.jsx(fe,{stack:d,positions:ge,collapsed:Ge,scale:S.scale,offset:S.top,window:xe}):null,et)}):jsxRuntime.jsxs("aside",{...Xe,children:[Z&&i!==void 0?jsxRuntime.jsx("div",{className:"docx-review__furniture","data-testid":"review-furniture",children:i}):null,It,et]})})}function fe({stack:e=true,positions:i,collapsed:l,scale:r=1,offset:t=0,window:o=null,children:n,className:a,hidden:d}){let{review:u,measure:c,cardClassName:w}=H();if(d)return null;let R=ke(u.items),y=u.items.filter(v=>!Pe(v,R));return y.length===0?typeof n=="function"?null:jsxRuntime.jsx(Oe,{}):jsxRuntime.jsx("div",{className:`docx-review__list${a?` ${a}`:""}`,children:y.map(v=>{let f=e?i?.get(v.key)??v.anchorY:v.anchorY,x=f==null?null:t+f*r;if(x!==null&&o&&(x<o.top||x>o.bottom))return null;let A=x===null?{}:{position:"absolute",top:x};return jsxRuntime.jsx(I.Provider,{value:v,children:jsxRuntime.jsx("div",{className:"docx-review__slot",style:A,...l?.has(v.key)?{"data-collapsed":""}:{},ref:N=>{c(N,v.key);},children:typeof n=="function"?n(v):jsxRuntime.jsx(Le,{...w?{className:w}:{},children:n})})},v.key)})})}fe.docxReviewPart="List";function Ae({scale:e=1,offset:i=0,window:l=null,className:r,hidden:t,icon:o}){let{review:n}=H(),a=Y();if(t)return null;let d=ke(n.items),u=n.items.filter(c=>!Pe(c,d));return jsxRuntime.jsx("div",{className:`docx-review__markers${r?` ${r}`:""}`,children:u.map(c=>{if(c.anchorY===null)return null;let w=i+c.anchorY*e;return l&&(w<l.top||w>l.bottom)?null:jsxRuntime.jsx("button",{type:"button",className:"docx-review__marker","data-testid":"review-marker","data-kind":c.kind==="revision"?c.revisionKind:c.kind,style:{position:"absolute",top:w},title:c.author?`${c.author}: ${c.text}`:c.text,"aria-label":`${a("review.showPane")}: ${c.author?`${c.author}. `:""}${c.text}`,onMouseDown:j,onClick:()=>{n.setPaneOpen(true),n.setActive(c.key);},children:(typeof o=="function"?o(c):o)??X(mt(c))},c.key)})})}Ae.docxReviewPart="Markers";function Me({top:e,drafting:i=false,className:l,hidden:r,children:t}){let{beginDraft:o}=H(),n=Y();if(r||i||e===null)return null;let a={type:"button",className:`docx-review__add${l?` ${l}`:""}`,"data-testid":"review-add-comment",style:{position:"absolute",top:e},"aria-label":n("common.comment"),title:n("common.comment"),onMouseDown:j,onClick:o};return t?jsxRuntime.jsx(react$1.Slot,{...a,children:t}):jsxRuntime.jsx("button",{...a,children:X(lt)})}Me.docxReviewPart="AddComment";function De({top:e,className:i,hidden:l}){let{review:r,endDraft:t,measure:o}=H(),n=Y(),[a,d]=react.useState(""),[u,c]=react.useState(false),w=react.useRef(null),R=react.useId();react.useEffect(()=>{w.current?.focus({preventScroll:true});},[]);let y=react.useCallback(()=>{if(a.trim().length===0)return;let v=r.comment(a.trim());c(!v),v&&(d(""),t());},[a,r,t]);return l?null:jsxRuntime.jsx("div",{className:`docx-review__slot${i?` ${i}`:""}`,style:{position:"absolute",top:e},ref:v=>{o(v,ve);},children:jsxRuntime.jsx("div",{className:"docx-review__card","data-testid":"review-draft","data-draft":"",children:jsxRuntime.jsxs("form",{className:"docx-review__reply-box",onSubmit:v=>{v.preventDefault(),y();},children:[jsxRuntime.jsx("label",{className:"docx-editor-sr-only",htmlFor:R,children:n("comments.addComment")}),jsxRuntime.jsx("input",{id:R,ref:w,"data-testid":"review-draft-input",className:"docx-review__input",value:a,placeholder:n("comments.addComment"),...u?{"aria-invalid":true}:{},onChange:v=>{c(false),d(v.target.value);},onKeyDown:v=>{if(v.key==="Escape"){v.preventDefault(),t();return}v.key==="Enter"&&(v.preventDefault(),y());}}),jsxRuntime.jsxs("div",{className:"docx-review__reply-actions",children:[jsxRuntime.jsx("button",{type:"button","data-testid":"review-draft-cancel",className:"docx-review__text-button",onMouseDown:j,onClick:t,children:n("common.cancel")}),jsxRuntime.jsx("button",{type:"submit","data-testid":"review-draft-submit",className:"docx-review__submit",disabled:a.trim().length===0,children:n("common.comment")})]}),u?jsxRuntime.jsx("span",{className:"docx-review__refused",role:"alert",children:n("review.commentRefused")}):null]})})})}De.docxReviewPart="Draft";function Se({className:e,hidden:i}){let{review:l,allItems:r,authorSlots:t}=H(),o=Y(),n=react.useRef(null),[a,d]=react.useState(null),u=react.useRef(false);u.current=a!==null,react.useEffect(()=>{let v=n.current,f=v?.closest(".docx-review"),x=f?.closest(".docx-editor__scroll-container")??f?.offsetParent;if(!v||!f||!x)return;let A=(E,C)=>{let T=f.getBoundingClientRect(),D=E.getBoundingClientRect(),de=E.ownerDocument.defaultView?.innerHeight??1/0,Z=Number(E.dataset.start),k=Number(E.dataset.end);d({revisionId:E.dataset.revisionId,author:E.dataset.revisionAuthor??"",...E.dataset.revisionDate!==void 0?{date:E.dataset.revisionDate}:{},...E.dataset.revisionKind!==void 0?{kind:E.dataset.revisionKind}:{},structuralSite:C,...E.dataset.paragraphId!==void 0?{paragraphId:E.dataset.paragraphId}:{},...Number.isFinite(Z)?{start:Z}:{},...Number.isFinite(k)?{end:k}:{},left:D.left-T.left,top:D.top-T.top,bottom:D.bottom-T.top,above:D.bottom+220>de});},N=E=>{let C=E.target;if(!(C instanceof Element)||v.contains(C))return;let T=C.closest("[data-revision-id]");if(T instanceof HTMLElement&&x.contains(T)){let D=T.classList.contains("docx-table-row--revision");if(T.dataset.revisionKind==="format"||D){A(T,D);return}}u.current&&d(null);};return x.addEventListener("pointerdown",N,true),x.addEventListener("mousedown",N,true),()=>{x.removeEventListener("pointerdown",N,true),x.removeEventListener("mousedown",N,true);}},[]);let c=react.useMemo(()=>{if(!a)return null;let v=null,f=false,x=null,A=false,N=null,E=false;for(let C of r)if(!(C.kind!=="revision"||C.item.kind!=="revision")){for(let T of C.item.addresses)if(T.id===a.revisionId){if(T.author===a.author){if(T.date===a.date)return C;v===null?v=C:v!==C&&(f=true);}x===null?x=C:x!==C&&(A=true);}if(a.paragraphId!==void 0&&a.start!==void 0&&a.end!==void 0&&(C.revisionKind==="format"||C.revisionKind==="structural")){for(let T of C.item.ranges)if(T.start.paragraphId===a.paragraphId&&T.start.offset<a.end&&T.end.offset>a.start){N===null?N=C:N!==C&&(E=true);break}}}return v!==null&&!f?v:x!==null&&!A?x:N!==null&&!E?N:null},[r,a]),w=c&&(c.revisionKind==="format"||c.revisionKind==="structural")?c:null,R=react.useRef(false);if(react.useEffect(()=>{if(w){R.current=true;return}R.current&&(R.current=false,d(null));},[w]),i)return null;let y=a?.kind==="format"?"format":"structural";return jsxRuntime.jsx("div",{ref:n,className:`docx-review__balloon-root${e?` ${e}`:""}`,children:a===null?null:jsxRuntime.jsx("div",{className:"docx-review__balloon","data-testid":"review-balloon",style:{left:a.left,top:a.above?a.top-6:a.bottom+6,transform:a.above?"translateY(-100%)":void 0},onMouseDown:j,children:w?jsxRuntime.jsx(I.Provider,{value:w,children:jsxRuntime.jsxs("div",{className:"docx-review__card","data-testid":"review-balloon-card","data-kind":w.revisionKind??"revision",style:{"--doc-review-author":`var(--doc-review-author-${(t.get(w.author)??0)%wt})`},onClick:()=>l.setActive(w.key),children:[jsxRuntime.jsxs("div",{className:"docx-review__head",children:[jsxRuntime.jsx(re,{}),jsxRuntime.jsxs("div",{className:"docx-review__meta",children:[jsxRuntime.jsx(ie,{}),jsxRuntime.jsx(ae,{})]}),w.kind==="revision"&&!w.readOnly?jsxRuntime.jsxs("div",{className:"docx-review__actions",children:[jsxRuntime.jsx(pe,{}),jsxRuntime.jsx(we,{})]}):null]}),jsxRuntime.jsx(se,{})]})}):jsxRuntime.jsxs("div",{className:"docx-review__card","data-testid":"review-balloon-card","data-kind":y,children:[jsxRuntime.jsxs("div",{className:"docx-review__head",children:[jsxRuntime.jsx("span",{className:"docx-review__avatar","aria-hidden":"true",children:Wt(a.author)}),jsxRuntime.jsxs("div",{className:"docx-review__meta",children:[jsxRuntime.jsx("span",{className:"docx-review__author",children:a.author||o("comments.unknown")}),a.date?jsxRuntime.jsx(Xt,{raw:a.date}):null]})]}),jsxRuntime.jsx("div",{className:"docx-review__summary",children:jsxRuntime.jsx("span",{className:"docx-review__label","data-kind":y,children:o(bt(y))})})]})})})}Se.docxReviewPart="Balloon";function Wt(e){let i=e.trim().split(/\s+/).filter(Boolean);return i.length===0?"?":i.slice(0,2).map(l=>l[0].toUpperCase()).join("")}function Xt({raw:e}){let i=new Date(e);return Number.isNaN(i.getTime())?null:jsxRuntime.jsx("time",{className:"docx-review__time",dateTime:e,children:yt.format(i)})}function Oe({className:e,hidden:i,children:l}){let r=Y();return i?null:jsxRuntime.jsx("div",{className:`docx-review__empty${e?` ${e}`:""}`,"data-testid":"review-empty",children:l??r("review.empty")})}Oe.docxReviewPart="Empty";function Le({className:e,asChild:i,hidden:l,children:r}){let{review:t,authorSlots:o}=H(),n=react.useContext(I),a=react.useId();if(l||!n)return null;let d=o.get(n.author)??0,u={className:`docx-review__card${e?` ${e}`:""}`,"data-testid":"review-card","aria-labelledby":`${a}-author ${a}-summary`,"data-kind":n.kind==="revision"?n.revisionKind??"revision":n.kind,...n.kind==="custom"&&n.item.kind==="custom"?{"data-node-name":n.item.name}:{},...n.isActive?{"data-active":""}:{},...n.kind==="comment"&&n.resolved?{"data-resolved":""}:{},style:{"--doc-review-author":`var(--doc-review-author-${d%wt})`},tabIndex:0,role:"button",id:a,onMouseDown:c=>{c.target?.closest("[data-review-selectable]")||c.currentTarget.focus({preventScroll:true});},onClick:()=>t.setActive(n.key),onKeyDown:c=>{c.target===c.currentTarget&&(c.key!=="Enter"&&c.key!==" "||(c.preventDefault(),t.setActive(n.key)));}};return i?jsxRuntime.jsx(react$1.Slot,{...u,children:r}):jsxRuntime.jsx("div",{...u,children:jsxRuntime.jsx(Jt,{children:r})})}Le.docxReviewPart="Card";function Jt({children:e}){let i=react.useContext(I),l=react.useMemo(()=>Rt(e),[e]),r=(o,n)=>o in l?l[o]:n;if(!i)return null;if(i.kind==="custom"&&i.item.kind==="custom"){let o=i.item;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"docx-review__head",children:[r("Avatar",null),jsxRuntime.jsx("div",{className:"docx-review__meta",children:r("Author",jsxRuntime.jsx("span",{className:"docx-review__author","data-testid":"review-custom-title",children:o.title}))})]}),r("Summary",o.detail?jsxRuntime.jsx("div",{className:"docx-review__summary","data-testid":"review-summary","data-review-selectable":"",children:jsxRuntime.jsx("span",{className:"docx-review__text",children:o.detail})}):null),l.__extra]})}let t=i.kind==="revision"&&!i.readOnly;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"docx-review__head",children:[r("Avatar",jsxRuntime.jsx(re,{})),jsxRuntime.jsxs("div",{className:"docx-review__meta",children:[r("Author",jsxRuntime.jsx(ie,{})),r("Time",jsxRuntime.jsx(ae,{}))]}),t||i.kind==="comment"?jsxRuntime.jsxs("div",{className:"docx-review__actions",children:[r("Accept",jsxRuntime.jsx(pe,{})),r("Reject",jsxRuntime.jsx(we,{})),r("Delete",jsxRuntime.jsx(Re,{}))]}):null]}),r("Summary",jsxRuntime.jsx(se,{})),r("Replies",jsxRuntime.jsx(He,{})),r("Reply",jsxRuntime.jsx(qe,{})),l.__extra]})}function Rt(e){let i={},l=[],r=t=>{if(Array.isArray(t)){t.forEach(r);return}if(!t||typeof t!="object"||!("type"in t)){t&&l.push(t);return}if(t.type===react.Fragment){r(t.props.children);return}let o=t.type.docxReviewPart;o?i[o]=t:l.push(t);};return r(e),l.length>0&&(i.__extra=l),i}function re({className:e,asChild:i,hidden:l,children:r}){let t=react.useContext(I);if(l||!t||r===void 0&&!t.initials)return null;let o={className:`docx-review__avatar${e?` ${e}`:""}`,"data-testid":"review-avatar","aria-hidden":true};return i?jsxRuntime.jsx(react$1.Slot,{...o,children:r}):jsxRuntime.jsx("span",{...o,children:r??t.initials})}re.docxReviewPart="Avatar";function ie({className:e,asChild:i,hidden:l,children:r}){let t=react.useContext(I),o=Y();if(l||!t)return null;let n=t.author||o("comments.unknown"),a={className:`docx-review__author${e?` ${e}`:""}`,"data-testid":"review-author"};return i?jsxRuntime.jsx(react$1.Slot,{...a,children:r}):jsxRuntime.jsx("span",{...a,children:r??n})}ie.docxReviewPart="Author";function ae({className:e,asChild:i,hidden:l,children:r}){let t=react.useContext(I);if(l||!t)return null;let o=t.date;if(!o)return null;let n=new Date(o);if(Number.isNaN(n.getTime()))return null;let a={className:`docx-review__time${e?` ${e}`:""}`,"data-testid":"review-time",dateTime:o};return i?jsxRuntime.jsx(react$1.Slot,{...a,children:r}):jsxRuntime.jsx("time",{...a,children:r??yt.format(n)})}ae.docxReviewPart="Time";var yt=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function se({className:e,asChild:i,hidden:l,children:r}){let t=react.useContext(I),o=Y();if(l||!t)return null;let n=t.text,a=t.kind!=="revision"?null:o(bt(t.revisionKind)),d=t.kind==="revision"&&t.revisionKind==="replace",u={className:`docx-review__summary${e?` ${e}`:""}`,"data-testid":"review-summary","data-review-selectable":""};return i?jsxRuntime.jsx(react$1.Slot,{...u,children:r}):jsxRuntime.jsx("div",{...u,children:r??(d?jsxRuntime.jsxs("span",{className:"docx-review__text",children:[o("review.replaced")," ",jsxRuntime.jsxs("span",{className:"docx-review__removed",children:['"',t.replacedText,'"']})," ",o("review.replacedWith")," ",jsxRuntime.jsxs("span",{className:"docx-review__added",children:['"',n,'"']})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[a?jsxRuntime.jsx("span",{className:"docx-review__label","data-kind":t.kind==="revision"?t.revisionKind:"revision",children:a}):null,n?jsxRuntime.jsx("span",{className:"docx-review__text",children:n}):null]}))})}se.docxReviewPart="Summary";function bt(e){switch(e){case "insert":return "review.inserted";case "delete":return "review.deleted";case "replace":return "review.replaced";case "moveFrom":return "review.movedFrom";case "moveTo":return "review.movedTo";case "format":return "revisions.runPropertiesChanged";case "paragraphMark":return "revisions.paragraphMarkInserted";default:return "review.structural"}}function pe({className:e,asChild:i,hidden:l,children:r,icon:t}){let{review:o}=H(),n=react.useContext(I),a=Y();if(l||!n||n.kind!=="revision"||n.readOnly)return null;let d=a("review.accept"),u={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-accept","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.accept(n);}};return i?jsxRuntime.jsx(react$1.Slot,{...u,children:r}):jsxRuntime.jsx("button",{...u,children:t??r??X(ct)})}pe.docxReviewPart="Accept";function we({className:e,asChild:i,hidden:l,children:r,icon:t}){let{review:o}=H(),n=react.useContext(I),a=Y();if(l||!n||n.kind!=="revision"||n.readOnly)return null;let d=a("review.reject"),u={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-reject","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.reject(n);}};return i?jsxRuntime.jsx(react$1.Slot,{...u,children:r}):jsxRuntime.jsx("button",{...u,children:t??r??X(dt)})}we.docxReviewPart="Reject";function Re({className:e,asChild:i,hidden:l,children:r,icon:t}){let{review:o}=H(),n=react.useContext(I),{t:a}=react$1.useTranslation();if(l||!n||n.kind==="custom"||n.kind==="revision"&&n.readOnly)return null;let d=n.kind==="comment"?a("review.deleteComment"):a("review.discardChange"),u={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-delete","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.remove(n);}};return i?jsxRuntime.jsx(react$1.Slot,{...u,children:r}):jsxRuntime.jsx("button",{...u,children:t??r??X(ut)})}Re.docxReviewPart="Delete";function He({className:e,hidden:i}){let{byId:l}=H(),r=react.useContext(I);if(i||!r||r.kind==="custom")return null;let t=r.replyIds.map(o=>l.get(o)).filter(o=>o!==void 0);return t.length===0?null:jsxRuntime.jsx("ol",{className:`docx-review__replies${e?` ${e}`:""}`,children:t.map(o=>jsxRuntime.jsx(I.Provider,{value:o,children:jsxRuntime.jsxs("li",{className:"docx-review__reply","data-testid":"review-reply",children:[jsxRuntime.jsxs("div",{className:"docx-review__head",children:[jsxRuntime.jsx(re,{}),jsxRuntime.jsxs("div",{className:"docx-review__meta",children:[jsxRuntime.jsx(ie,{}),jsxRuntime.jsx(ae,{})]}),jsxRuntime.jsx("div",{className:"docx-review__actions",children:jsxRuntime.jsx(Re,{})})]}),jsxRuntime.jsx(se,{})]})},o.key))})}He.docxReviewPart="Replies";function qe({className:e,hidden:i,children:l}){let{review:r}=H(),t=react.useContext(I),o=Y(),[n,a]=react.useState(""),[d,u]=react.useState(false),c=react.useId(),w=react.useCallback(()=>{if(!t||n.trim().length===0)return;let R=r.reply(t,n.trim());u(!R),R&&a("");},[t,n,r]);return i||!t||!t.isActive?null:l?jsxRuntime.jsx(jsxRuntime.Fragment,{children:l}):jsxRuntime.jsxs("form",{className:`docx-review__reply-box${e?` ${e}`:""}`,onSubmit:R=>{R.preventDefault(),w();},children:[jsxRuntime.jsx("label",{className:"docx-editor-sr-only",htmlFor:c,children:o("comments.replyPlaceholder")}),jsxRuntime.jsx("input",{id:c,"data-testid":"review-reply-input",className:"docx-review__input",value:n,placeholder:o("comments.replyPlaceholder"),...d?{"aria-invalid":true,"data-refused":""}:{},onChange:R=>{u(false),a(R.target.value);},onClick:R=>R.stopPropagation(),onKeyDown:R=>{R.key==="Enter"&&(R.preventDefault(),w());}}),jsxRuntime.jsxs("div",{className:"docx-review__reply-actions",children:[jsxRuntime.jsx("button",{type:"button","data-testid":"review-reply-cancel",className:"docx-review__text-button",onMouseDown:j,onClick:R=>{R.stopPropagation(),a(""),u(false),r.setActive(null);},children:o("common.cancel")}),jsxRuntime.jsx("button",{type:"submit","data-testid":"review-reply-submit",className:"docx-review__submit",disabled:n.trim().length===0,children:o("review.reply")})]}),d?jsxRuntime.jsx("span",{className:"docx-review__refused",role:"alert","data-testid":"review-reply-refused",children:o("review.replyRefused")}):null]})}qe.docxReviewPart="Reply";var en=Object.assign(Gt,{List:fe,Empty:Oe,Card:Le,Avatar:re,Author:ie,Time:ae,Summary:se,Accept:pe,Reject:we,Delete:Re,Replies:He,Reply:qe,Markers:Ae,AddComment:Me,Draft:De,Balloon:Se});function le(e){let i=react$1.useDocxEditor();return react.useMemo(()=>e||(i?.getCustomNodeDefinitions()??[]).filter(chunkA7NTVTWG_cjs.j),[e,i])}var rn=".docx-content-control-boundary";function J(e,i){let{node:l,definition:r,controlId:t}=e,o=t?i?.getReviewItems().find(d=>d.kind==="custom"&&d.item.id===t):void 0;if(o&&o.kind==="custom"){let d=o.item;return {...l,attrs:d.attrs,text:d.text,...d.data===void 0?{}:{data:d.data},...t?{nodeId:t}:{}}}let n=t?an(i,t,r):void 0,a=r.fromDocx?r.fromDocx({attrs:l.attrs,text:"",...n===void 0?{}:{data:n}}):l.attrs;return a===null?null:{...l,attrs:a,...n===void 0?{}:{data:n},...t?{nodeId:t}:{}}}function an(e,i,l){let r=e?.surface;if(!r)return;let t=r.session.part(),o=store.customNodePayloadsByControl(r.session.currentPackage(),t.name).get(i);if(!o)return;let n=chunkA7NTVTWG_cjs.e(l.schema,o.data);return n.ok?n.value:void 0}function ee(e,i){let l=e?.closest?.(rn),r=l?.closest(".docx-content-control-chrome"),t=r?.getAttribute("data-tag"),o=t?chunkA7NTVTWG_cjs.c(t):null;if(!l||!o||!t)return null;let n=i.find(a=>a.tagPrefix===o.prefix&&a.name===o.name);return n?{node:{name:o.name,attrs:o.attrs,tag:t,rect:l.getBoundingClientRect()},definition:n,controlId:r?.getAttribute("data-docx-content-control")??null}:null}var $e=".docx-content-control-boundary",ln=e=>{if(!chunkA7NTVTWG_cjs.k.test(e.tagPrefix)||!chunkA7NTVTWG_cjs.k.test(e.name))return [];let i=`${e.tagPrefix}:${e.name}`;return [`.docx-content-control-chrome[data-tag="${i}"]`,`.docx-content-control-chrome[data-tag^="${i}?"]`]};function cn(e){let{onNodeClick:i,onNodeHover:l}=e,r=react$1.useDocxEditor(),t=le(e.nodes);return react.useEffect(()=>{let o=document.createElement("style"),n=[];for(let a of t){let d=ln(a);if(d.length===0)continue;let u=a.chrome?.color!==void 0&&CSS.supports("color",a.chrome.color)?a.chrome.color:"#2563eb";n.push(`${d.map(c=>`${c} ${$e}`).join(", ")} {`," pointer-events: auto !important;"," opacity: 1;"," border: none;",` background: color-mix(in srgb, ${u} 12%, transparent);`," border-radius: 6px;"," cursor: default;","}");}return o.textContent=n.join(`
|
|
2
|
-
`),document.head.append(o),()=>o.remove()},[
|
|
1
|
+
'use strict';var chunkA7NTVTWG_cjs=require('../chunk-A7NTVTWG.cjs'),react=require('react'),react$1=require('@docx-editor.dev/react'),jsxRuntime=require('react/jsx-runtime'),store=require('@docx-editor.dev/core/store');var $t=new Set(["List","Markers","AddComment","Draft","Balloon"]),Ht=new Set(["Card","Empty"]);function Ie(e,r){let l=r==="root"?$t:Ht,s={},n=[],o=t=>{if(Array.isArray(t)){for(let d of t)o(d);return}if(!react.isValidElement(t)){t!=null&&t!==false&&n.push(t);return}if(t.type===react.Fragment){o(t.props.children);return}let i=t.type.docxReviewPart;i&&l.has(i)?s[i]=t:n.push(t);};return o(e),{parts:s,rest:n}}function at(e,r){if(!r)return e;let l=e.props.className;return react.cloneElement(e,{className:`${r}${l?` ${l}`:""}`})}function fe(e){let r=react$1.useDocxEditor();return lt(r,e)}function lt(e,r){let l=react.useCallback(u=>{if(!e)return ()=>{};let x=e.on("change",u),I=e.on("selectionChange",u),N=e.on("error",u);return ()=>{x(),I(),N();}},[e]),s=react.useSyncExternalStore(l,()=>e?`${e.getReviewRevision()}`:"none",()=>"none"),n=react.useMemo(()=>e?e.getReviewItems(r).filter(u=>u.item.kind!=="custom"||u.item.carded):[],[e,s,r]),o=react.useMemo(()=>n.find(u=>u.isActive)?.key??null,[n]),t=react.useCallback((u,x)=>e?e.setActiveReviewItem(u,x).ok:false,[e]),i=react.useCallback(u=>!e||u.kind!=="revision"||u.readOnly?false:e.acceptReviewItem(u.key).ok,[e]),d=react.useCallback(u=>!e||u.kind!=="revision"||u.readOnly?false:e.rejectReviewItem(u.key).ok,[e]),m=react.useCallback(u=>!e||u.kind==="custom"||u.kind==="revision"&&u.readOnly?false:e.deleteReviewItem(u.key).ok,[e]),c=react.useCallback((u,x,I)=>x.trim().length===0||!e?false:e.replyToReviewItem(u.key,x,I).ok,[e]),p=react.useMemo(()=>e?e.getSelectionPlacement()?.anchorY??null:null,[e,s]),R=react.useCallback((u,x)=>u.trim().length===0||!e?false:e.addComment(u,x).ok,[e]),y=react.useMemo(()=>e?e.isReviewPaneOpen():true,[e,s]),w=react.useCallback(u=>{!e||e.isReviewPaneOpen()===u||e.exec({type:"toggleReviewPane"});},[e]);return react.useMemo(()=>({items:n,activeKey:o,setActive:t,accept:i,reject:d,remove:m,reply:c,selectionAnchorY:p,comment:R,paneOpen:y,setPaneOpen:w,ready:e!==null&&!e.snapshot().isLoading&&e.snapshot().parseError===null}),[n,o,t,i,d,m,c,p,R,y,w,e])}function Kt(e,r,l={}){let s=l.gap??8,n=l.scale??1,o=l.defaultHeight??0;return react.useMemo(()=>{let t=new Map,i=Number.NEGATIVE_INFINITY;for(let d of e){let m=d.anchorY===null?Number.isFinite(i)?i:0:Math.max(d.anchorY,i);t.set(d.key,m),i=m+((r.get(d.key)??o)+s)/n;}return t},[e,r,s,n,o])}var ee=e=>jsxRuntime.jsx("svg",{viewBox:"0 -960 960 960",width:16,height:16,"aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:e,fill:"currentColor"})}),ut="M440-400h80v-120h120v-80H520v-120h-80v120H320v80h120v120ZM80-80v-720q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H240L80-80Zm126-240h594v-480H160v525l46-45Zm-46 0v-480 480Z",ct="M240-400h480v-80H240v80Zm0-120h480v-80H240v80Zm0-120h480v-80H240v80ZM880-80 720-240H160q-33 0-56.5-23.5T80-320v-480q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v720ZM160-320h594l46 45v-525H160v480Zm0 0v-480 480Z",mt="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z",vt="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z",ft="M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z",Yt="M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z",Zt="M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 78t85.5 30q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-341q0 86-61.5 133.5T486-160ZM80-520v-80h800v80H80Zm402-360q66 0 116 30t74 84l-88 38q-11-28-38.5-47T480-794q-42 0-72 19t-30 51q0 15 6 27t18 22H272q-6-13-9-27t-3-30q0-70 55-114t167-44Z",Bt="M360-160q-83 0-141.5-58.5T160-360v-360q0-83 58.5-141.5T360-920q83 0 141.5 58.5T560-720v360q0 83-58.5 141.5T360-160Zm0-80q50 0 85-35t35-85v-360q0-50-35-85t-85-35q-50 0-85 35t-35 85v360q0 50 35 85t85 35Zm300 80q29 0 49.5-20.5T730-230q0-22-12.5-40T684-296l-64-32v-232l100 100q23 23 51.5 35.5T832-412v-80q-17 0-32-6.5T773-517L633-657q-12-12-27.5-17.5T573-680h-13v520h100ZM360-720Z",Ft="M580-360q-25 0-42.5-17.5T520-420v-160q0-25 17.5-42.5T580-640h160q25 0 42.5 17.5T800-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T720-320v-40H580Zm-360 0q-25 0-42.5-17.5T160-420v-160q0-25 17.5-42.5T220-640h160q25 0 42.5 17.5T440-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T360-320v-40H220Z";function pt(e){if(e.kind==="comment")return ct;if(e.kind==="custom")return e.item.icon??Ft;switch(e.revisionKind){case "insert":case "moveTo":return Yt;case "delete":case "moveFrom":return Zt;case "format":return Bt;default:return ct}}var Gt=e=>e.isLoading||e.parseError!==null||e.pageSetup==null,ke=react.createContext(null),P=react.createContext(null);function Wt(){return react.useContext(P)}var Xt={scale:96/72,top:0,left:null},Jt=16,we="\0compose",Rt=600,bt=8,en=72,tn=64,nn=480,on=Object.freeze({placement:false});function Me(e,r){return e.kind!=="comment"?false:e.parentId!==void 0?r.has(e.parentId):e.parentRevisionId!==void 0?r.has(e.parentRevisionId):false}function De(e){return new Set(e.map(r=>r.id))}function j(e){let r=e.target?.tagName;r==="INPUT"||r==="SELECT"||r==="TEXTAREA"||e.preventDefault();}function $(){let e=react.useContext(ke);return e||rn}function Y(){let{t:e}=react.useContext(ke)??{},{t:r}=react$1.useTranslation();return react.useCallback(l=>e?.(l)??r(l),[e,r])}var rn={t:void 0,cardClassName:void 0,review:{items:[],activeKey:null,setActive:()=>false,accept:()=>false,reject:()=>false,remove:()=>false,reply:()=>false,selectionAnchorY:null,comment:()=>false,paneOpen:true,setPaneOpen:()=>{},ready:false},allItems:[],authorSlots:new Map,byId:new Map,measure:()=>{},beginDraft:()=>{},endDraft:()=>{}};function sn({className:e,furniture:r,asChild:l,hidden:s,children:n,t:o,card:t,preset:i=true,stack:d=true,gap:m=8,filter:c,structural:p=false,formatting:R=false}){let y=react$1.useDocxEditor(),w=react$1.useEditorState(Gt),u=react.useMemo(()=>{let f=[];return p||f.push("structural"),R||f.push("format"),f.length>0?f:void 0},[p,R]),x=react.useMemo(()=>u?{excludeRevisionKinds:u}:void 0,[u]);react.useEffect(()=>(y?.setReviewActivationExclusions(u??null),()=>y?.setReviewActivationExclusions(null)),[y,u]);let I=fe(on),N=fe(x),C=N.setPaneOpen,{t:E}=react$1.useTranslation(),T=react.useCallback(f=>o?.(f)??E(f),[o,E]),D=react.useRef(null),me=react.useContext(react$1.ReviewRailContext);react.useEffect(()=>me?.register(),[me]);let Z=N.paneOpen,k=react.useMemo(()=>c?N.items.filter(f=>c(f)):N.items,[N.items,c]),Be=react.useMemo(()=>{let f=new Map;for(let v of k)v.author&&!f.has(v.author)&&f.set(v.author,f.size);return f},[k]),Fe=react.useMemo(()=>{let f=new Map;for(let v of k)f.set(v.id,v);return f},[k]),[je,Et]=react.useState(()=>new Map),he=react.useCallback((f,v)=>{v<=0||Et(b=>{if(b.get(f)===v)return b;let _=new Map(b);return _.set(f,v),_});},[]),ge=react.useRef(new WeakMap),oe=react.useRef(null),Ue=react.useCallback((f,v)=>{!f||typeof ResizeObserver>"u"||(he(v,f.offsetHeight),oe.current??(oe.current=new ResizeObserver(b=>{for(let _ of b){let g=ge.current.get(_.target);g&&he(g,_.target.offsetHeight);}})),ge.current.get(f)!==v&&(ge.current.set(f,v),oe.current.observe(f)));},[he]);react.useEffect(()=>()=>oe.current?.disconnect(),[]);let[S,Tt]=react.useState(Xt);react.useEffect(()=>{let f=D.current;if(!y||!f)return;let v=f.offsetParent,b=v?.querySelector(".docx-paginated-surface")??null,_=()=>{Tt(M=>{let H=b&&v?b.getBoundingClientRect():null,L=H&&v?v.getBoundingClientRect():null,q={scale:y.getRenderScale(),top:H&&L&&v?H.top-L.top-v.clientTop+v.scrollTop:0,left:H&&L&&v?H.right-L.left-v.clientLeft+v.scrollLeft+Jt:null};return M.scale===q.scale&&M.top===q.top&&M.left===q.left?M:q});};_();let g=new ResizeObserver(_);return v&&g.observe(v),b&&g.observe(b),()=>g.disconnect()},[y,k,w,s]),react.useEffect(()=>{let f=D.current;if(!y||!f)return;let v=b=>{let _=b.target;if(!(_ instanceof Node)||f.contains(_))return;let g=f.offsetParent;!g||!g.contains(_)||g.querySelector(".docx-paginated-surface")?.contains(_)||y.setActiveReviewItem(null);};return document.addEventListener("mousedown",v,true),()=>document.removeEventListener("mousedown",v,true)},[y,w,s]);let[Ne,It]=react.useState(null);react.useEffect(()=>{let f=D.current,v=f?.offsetParent;if(!v)return;let b=0,_=()=>{b=0,It(L=>{let q=v.scrollTop-Rt,ve=v.scrollTop+v.clientHeight+Rt;return L&&L.top===q&&L.bottom===ve?L:{top:q,bottom:ve}});},g=0,M=()=>{b===0&&(b=requestAnimationFrame(_)),f?.setAttribute("data-scrolling",""),window.clearTimeout(g),g=window.setTimeout(()=>f?.removeAttribute("data-scrolling"),150);};_(),v.addEventListener("scroll",M,{passive:true});let H=new ResizeObserver(M);return H.observe(v),()=>{b!==0&&cancelAnimationFrame(b),window.clearTimeout(g),v.removeEventListener("scroll",M),H.disconnect();}},[y,w,s]);let[B,_e]=react.useState(null),ze=react.useCallback(()=>{y&&(y.surface?.retainSelection(),C(true),_e(y.getSelectionPlacement()?.anchorY??null));},[y,C]),Qe=react.useCallback(()=>{y?.surface?.releaseSelection(),_e(null),y?.focus();},[y]);react.useEffect(()=>{Z||B===null||(y?.surface?.releaseSelection(),_e(null));},[Z,B,y]);let Ge=B??N.selectionAnchorY,U=react.useMemo(()=>{let f=De(k);return k.filter(v=>!Me(v,f))},[k]),We=react.useMemo(()=>{if(B===null)return U;let f=U.findIndex(b=>b.anchorY!==null&&b.anchorY>B),v={key:we,anchorY:B};return f===-1?[...U,v]:[...U.slice(0,f),v,...U.slice(f)]},[U,B]),Xe=react.useMemo(()=>{let f=new Map(je);for(let v of U){if(f.has(v.key))continue;let b=v.text.length+(v.kind==="revision"?v.replacedText?.length??0:0),_=Math.min(6,Math.max(1,Math.ceil(b/36)));f.set(v.key,64+_*20);}return f},[je,U]),{stacked:Ce,collapsedKeys:Je}=react.useMemo(()=>{let f=S.scale,v=new Map,b=new Set,_=Number.NEGATIVE_INFINITY;for(let g of We){let M=g.anchorY===null?Number.isFinite(_)?_:0:Math.max(g.anchorY,_);v.set(g.key,M);let H=g.anchorY===null?0:(M-g.anchorY)*f,L="isActive"in g&&g.isActive,q=H>nn&&!L&&g.key!==we;q&&b.add(g.key);let ve=q?tn:Xe.get(g.key)??en;_=M+(ve+m)/f;}return {stacked:v,collapsedKeys:b}},[We,Xe,m,S.scale]),Ee=Ge===null?null:S.top+(Ce.get(we)??Ge)*S.scale,et=t?.className,Pt=react.useMemo(()=>({t:o,cardClassName:et,review:{...N,items:k},allItems:I.items,authorSlots:Be,byId:Fe,measure:Ue,beginDraft:ze,endDraft:Qe}),[o,et,N,I.items,k,Be,Fe,Ue,ze,Qe]);if(s||w)return null;let tt={ref:D,className:`docx-review${e?` ${e}`:""}`,"data-testid":"review-rail","data-count":k.length,"data-open":Z?"":void 0,role:"complementary","aria-label":T("review.ariaLabel"),onMouseDown:j,style:S.left===null?void 0:{left:S.left,right:"auto"}},X=typeof n=="function"?{parts:{},rest:n}:Ie(n,"root"),G=X.parts,re=(f,v)=>{if(!(f in G))return v;let b=G[f];return !react.isValidElement(b)||!react.isValidElement(v)?b:react.cloneElement(b,{...v.props,...b.props})},nt=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i||"AddComment"in G?re("AddComment",jsxRuntime.jsx(Oe,{top:Ee,drafting:B!==null})):null,!Z||B===null||Ee===null||!i&&!("Draft"in G)?null:re("Draft",jsxRuntime.jsx(Le,{top:Ee})),i||"Balloon"in G?re("Balloon",jsxRuntime.jsx($e,{})):null]}),At=jsxRuntime.jsx(Re,{stack:d,positions:Ce,collapsed:Je,scale:S.scale,offset:S.top,window:Ne,children:X.rest}),kt=jsxRuntime.jsx(Se,{scale:S.scale,offset:S.top,window:Ne}),Mt=Z?i||"List"in G?re("List",At):typeof X.rest=="function"?null:X.rest:i||"Markers"in G?re("Markers",kt):typeof X.rest=="function"?null:X.rest;return jsxRuntime.jsx(ke.Provider,{value:Pt,children:l&&react.isValidElement(n)?jsxRuntime.jsx(react$1.Slot,{...tt,children:react.cloneElement(n,void 0,n.props.children,i?jsxRuntime.jsx(Re,{stack:d,positions:Ce,collapsed:Je,scale:S.scale,offset:S.top,window:Ne}):null,nt)}):jsxRuntime.jsxs("aside",{...tt,children:[Z&&r!==void 0?jsxRuntime.jsx("div",{className:"docx-review__furniture","data-testid":"review-furniture",children:r}):null,Mt,nt]})})}function Re({stack:e=true,positions:r,collapsed:l,scale:s=1,offset:n=0,window:o=null,children:t,className:i,hidden:d}){let{review:m,measure:c,cardClassName:p}=$();if(d)return null;let R=typeof t=="function"?null:Ie(t,"list"),y=De(m.items),w=m.items.filter(u=>!Me(u,y));return w.length===0?typeof t=="function"?null:R?.parts.Empty??jsxRuntime.jsx(He,{}):jsxRuntime.jsx("div",{className:`docx-review__list${i?` ${i}`:""}`,children:w.map(u=>{let x=e?r?.get(u.key)??u.anchorY:u.anchorY,I=x==null?null:n+x*s;if(I!==null&&o&&(I<o.top||I>o.bottom))return null;let N=I===null?{}:{position:"absolute",top:I};return jsxRuntime.jsx(P.Provider,{value:u,children:jsxRuntime.jsx("div",{className:"docx-review__slot",style:N,...l?.has(u.key)?{"data-collapsed":""}:{},ref:C=>{c(C,u.key);},children:typeof t=="function"?t(u):R?.parts.Card&&react.isValidElement(R.parts.Card)?at(R.parts.Card,p):jsxRuntime.jsx(qe,{...p?{className:p}:{},children:R?.rest})})},u.key)})})}Re.docxReviewPart="List";function Se({scale:e=1,offset:r=0,window:l=null,className:s,hidden:n,icon:o}){let{review:t}=$(),i=Y();if(n)return null;let d=De(t.items),m=t.items.filter(c=>!Me(c,d));return jsxRuntime.jsx("div",{className:`docx-review__markers${s?` ${s}`:""}`,children:m.map(c=>{if(c.anchorY===null)return null;let p=r+c.anchorY*e;return l&&(p<l.top||p>l.bottom)?null:jsxRuntime.jsx("button",{type:"button",className:"docx-review__marker","data-testid":"review-marker","data-kind":c.kind==="revision"?c.revisionKind:c.kind,style:{position:"absolute",top:p},title:c.author?`${c.author}: ${c.text}`:c.text,"aria-label":`${i("review.showPane")}: ${c.author?`${c.author}. `:""}${c.text}`,onMouseDown:j,onClick:()=>{t.setPaneOpen(true),t.setActive(c.key);},children:(typeof o=="function"?o(c):o)??ee(pt(c))},c.key)})})}Se.docxReviewPart="Markers";function Oe({top:e=null,drafting:r=false,className:l,hidden:s,children:n}){let{beginDraft:o}=$(),t=Y();if(s||r||e===null)return null;let i={type:"button",className:`docx-review__add${l?` ${l}`:""}`,"data-testid":"review-add-comment",style:{position:"absolute",top:e},"aria-label":t("common.comment"),title:t("common.comment"),onMouseDown:j,onClick:o};return n?jsxRuntime.jsx(react$1.Slot,{...i,children:n}):jsxRuntime.jsx("button",{...i,children:ee(ut)})}Oe.docxReviewPart="AddComment";function Le({top:e=0,className:r,hidden:l}){let{review:s,endDraft:n,measure:o}=$(),t=Y(),[i,d]=react.useState(""),[m,c]=react.useState(false),p=react.useRef(null),R=react.useId();react.useEffect(()=>{p.current?.focus({preventScroll:true});},[]);let y=react.useCallback(()=>{if(i.trim().length===0)return;let w=s.comment(i.trim());c(!w),w&&(d(""),n());},[i,s,n]);return l?null:jsxRuntime.jsx("div",{className:`docx-review__slot${r?` ${r}`:""}`,style:{position:"absolute",top:e},ref:w=>{o(w,we);},children:jsxRuntime.jsx("div",{className:"docx-review__card","data-testid":"review-draft","data-draft":"",children:jsxRuntime.jsxs("form",{className:"docx-review__reply-box",onSubmit:w=>{w.preventDefault(),y();},children:[jsxRuntime.jsx("label",{className:"docx-editor-sr-only",htmlFor:R,children:t("comments.addComment")}),jsxRuntime.jsx("input",{id:R,ref:p,"data-testid":"review-draft-input",className:"docx-review__input",value:i,placeholder:t("comments.addComment"),...m?{"aria-invalid":true}:{},onChange:w=>{c(false),d(w.target.value);},onKeyDown:w=>{if(w.key==="Escape"){w.preventDefault(),n();return}w.key==="Enter"&&(w.preventDefault(),y());}}),jsxRuntime.jsxs("div",{className:"docx-review__reply-actions",children:[jsxRuntime.jsx("button",{type:"button","data-testid":"review-draft-cancel",className:"docx-review__text-button",onMouseDown:j,onClick:n,children:t("common.cancel")}),jsxRuntime.jsx("button",{type:"submit","data-testid":"review-draft-submit",className:"docx-review__submit",disabled:i.trim().length===0,children:t("common.comment")})]}),m?jsxRuntime.jsx("span",{className:"docx-review__refused",role:"alert",children:t("review.commentRefused")}):null]})})})}Le.docxReviewPart="Draft";function $e({className:e,hidden:r}){let{review:l,allItems:s,authorSlots:n}=$(),o=Y(),t=react.useRef(null),[i,d]=react.useState(null),m=react.useRef(false);m.current=i!==null,react.useEffect(()=>{let w=t.current,u=w?.closest(".docx-review"),x=u?.closest(".docx-editor__scroll-container")??u?.offsetParent;if(!w||!u||!x)return;let I=(C,E)=>{let T=u.getBoundingClientRect(),D=C.getBoundingClientRect(),me=C.ownerDocument.defaultView?.innerHeight??1/0,Z=Number(C.dataset.start),k=Number(C.dataset.end);d({revisionId:C.dataset.revisionId,author:C.dataset.revisionAuthor??"",...C.dataset.revisionDate!==void 0?{date:C.dataset.revisionDate}:{},...C.dataset.revisionKind!==void 0?{kind:C.dataset.revisionKind}:{},structuralSite:E,...C.dataset.paragraphId!==void 0?{paragraphId:C.dataset.paragraphId}:{},...Number.isFinite(Z)?{start:Z}:{},...Number.isFinite(k)?{end:k}:{},left:D.left-T.left,top:D.top-T.top,bottom:D.bottom-T.top,above:D.bottom+220>me});},N=C=>{let E=C.target;if(!(E instanceof Element)||w.contains(E))return;let T=E.closest("[data-revision-id]");if(T instanceof HTMLElement&&x.contains(T)){let D=T.classList.contains("docx-table-row--revision");if(T.dataset.revisionKind==="format"||D){I(T,D);return}}m.current&&d(null);};return x.addEventListener("pointerdown",N,true),x.addEventListener("mousedown",N,true),()=>{x.removeEventListener("pointerdown",N,true),x.removeEventListener("mousedown",N,true);}},[]);let c=react.useMemo(()=>{if(!i)return null;let w=null,u=false,x=null,I=false,N=null,C=false;for(let E of s)if(!(E.kind!=="revision"||E.item.kind!=="revision")){for(let T of E.item.addresses)if(T.id===i.revisionId){if(T.author===i.author){if(T.date===i.date)return E;w===null?w=E:w!==E&&(u=true);}x===null?x=E:x!==E&&(I=true);}if(i.paragraphId!==void 0&&i.start!==void 0&&i.end!==void 0&&(E.revisionKind==="format"||E.revisionKind==="structural")){for(let T of E.item.ranges)if(T.start.paragraphId===i.paragraphId&&T.start.offset<i.end&&T.end.offset>i.start){N===null?N=E:N!==E&&(C=true);break}}}return w!==null&&!u?w:x!==null&&!I?x:N!==null&&!C?N:null},[s,i]),p=c&&(c.revisionKind==="format"||c.revisionKind==="structural")?c:null,R=react.useRef(false);if(react.useEffect(()=>{if(p){R.current=true;return}R.current&&(R.current=false,d(null));},[p]),r)return null;let y=i?.kind==="format"?"format":"structural";return jsxRuntime.jsx("div",{ref:t,className:`docx-review__balloon-root${e?` ${e}`:""}`,children:i===null?null:jsxRuntime.jsx("div",{className:"docx-review__balloon","data-testid":"review-balloon",style:{left:i.left,top:i.above?i.top-6:i.bottom+6,transform:i.above?"translateY(-100%)":void 0},onMouseDown:j,children:p?jsxRuntime.jsx(P.Provider,{value:p,children:jsxRuntime.jsxs("div",{className:"docx-review__card","data-testid":"review-balloon-card","data-kind":p.revisionKind??"revision",style:{"--doc-review-author":`var(--doc-review-author-${(n.get(p.author)??0)%bt})`},onClick:()=>l.setActive(p.key),children:[jsxRuntime.jsxs("div",{className:"docx-review__head",children:[jsxRuntime.jsx(se,{}),jsxRuntime.jsxs("div",{className:"docx-review__meta",children:[jsxRuntime.jsx(ae,{}),jsxRuntime.jsx(le,{})]}),p.kind==="revision"&&!p.readOnly?jsxRuntime.jsxs("div",{className:"docx-review__actions",children:[jsxRuntime.jsx(ye,{}),jsxRuntime.jsx(be,{})]}):null]}),jsxRuntime.jsx(ce,{})]})}):jsxRuntime.jsxs("div",{className:"docx-review__card","data-testid":"review-balloon-card","data-kind":y,children:[jsxRuntime.jsxs("div",{className:"docx-review__head",children:[jsxRuntime.jsx("span",{className:"docx-review__avatar","aria-hidden":"true",children:an(i.author)}),jsxRuntime.jsxs("div",{className:"docx-review__meta",children:[jsxRuntime.jsx("span",{className:"docx-review__author",children:i.author||o("comments.unknown")}),i.date?jsxRuntime.jsx(ln,{raw:i.date}):null]})]}),jsxRuntime.jsx("div",{className:"docx-review__summary",children:jsxRuntime.jsx("span",{className:"docx-review__label","data-kind":y,children:o(ht(y))})})]})})})}$e.docxReviewPart="Balloon";function an(e){let r=e.trim().split(/\s+/).filter(Boolean);return r.length===0?"?":r.slice(0,2).map(l=>l[0].toUpperCase()).join("")}function ln({raw:e}){let r=new Date(e);return Number.isNaN(r.getTime())?null:jsxRuntime.jsx("time",{className:"docx-review__time",dateTime:e,children:xt.format(r)})}function He({className:e,hidden:r,children:l}){let s=Y();return r?null:jsxRuntime.jsx("div",{className:`docx-review__empty${e?` ${e}`:""}`,"data-testid":"review-empty",children:l??s("review.empty")})}He.docxReviewPart="Empty";function qe({className:e,asChild:r,hidden:l,children:s}){let{review:n,authorSlots:o}=$(),t=react.useContext(P),i=react.useId();if(l||!t)return null;let d=o.get(t.author)??0,m={className:`docx-review__card${e?` ${e}`:""}`,"data-testid":"review-card","aria-labelledby":`${i}-author ${i}-summary`,"data-kind":t.kind==="revision"?t.revisionKind??"revision":t.kind,...t.kind==="custom"&&t.item.kind==="custom"?{"data-node-name":t.item.name}:{},...t.isActive?{"data-active":""}:{},...t.kind==="comment"&&t.resolved?{"data-resolved":""}:{},style:{"--doc-review-author":`var(--doc-review-author-${d%bt})`},tabIndex:0,role:"button",id:i,onMouseDown:c=>{c.target?.closest("[data-review-selectable]")||c.currentTarget.focus({preventScroll:true});},onClick:()=>n.setActive(t.key),onKeyDown:c=>{c.target===c.currentTarget&&(c.key!=="Enter"&&c.key!==" "||(c.preventDefault(),n.setActive(t.key)));}};return r?jsxRuntime.jsx(react$1.Slot,{...m,children:s}):jsxRuntime.jsx("div",{...m,children:jsxRuntime.jsx(cn,{children:s})})}qe.docxReviewPart="Card";function cn({children:e}){let r=react.useContext(P),l=react.useMemo(()=>dn(e),[e]),s=(o,t)=>o in l?l[o]:t;if(!r)return null;if(r.kind==="custom"&&r.item.kind==="custom"){let o=r.item;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"docx-review__head",children:[s("Avatar",null),jsxRuntime.jsx("div",{className:"docx-review__meta",children:s("Author",jsxRuntime.jsx("span",{className:"docx-review__author","data-testid":"review-custom-title",children:o.title}))})]}),s("Summary",o.detail?jsxRuntime.jsx("div",{className:"docx-review__summary","data-testid":"review-summary","data-review-selectable":"",children:jsxRuntime.jsx("span",{className:"docx-review__text",children:o.detail})}):null),l.__extra]})}let n=r.kind==="revision"&&!r.readOnly;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"docx-review__head",children:[s("Avatar",jsxRuntime.jsx(se,{})),jsxRuntime.jsxs("div",{className:"docx-review__meta",children:[s("Author",jsxRuntime.jsx(ae,{})),s("Time",jsxRuntime.jsx(le,{}))]}),n||r.kind==="comment"?jsxRuntime.jsxs("div",{className:"docx-review__actions",children:[s("Accept",jsxRuntime.jsx(ye,{})),s("Reject",jsxRuntime.jsx(be,{})),s("Delete",jsxRuntime.jsx(xe,{}))]}):null]}),s("Summary",jsxRuntime.jsx(ce,{})),s("Replies",jsxRuntime.jsx(Ve,{})),s("Reply",jsxRuntime.jsx(Ke,{})),l.__extra]})}function dn(e){let r={},l=[],s=n=>{if(Array.isArray(n)){n.forEach(s);return}if(!n||typeof n!="object"||!("type"in n)){n&&l.push(n);return}if(n.type===react.Fragment){s(n.props.children);return}let o=n.type.docxReviewPart;o?r[o]=n:l.push(n);};return s(e),l.length>0&&(r.__extra=l),r}function se({className:e,asChild:r,hidden:l,children:s}){let n=react.useContext(P);if(l||!n||s===void 0&&!n.initials)return null;let o={className:`docx-review__avatar${e?` ${e}`:""}`,"data-testid":"review-avatar","aria-hidden":true};return r?jsxRuntime.jsx(react$1.Slot,{...o,children:s}):jsxRuntime.jsx("span",{...o,children:s??n.initials})}se.docxReviewPart="Avatar";function ae({className:e,asChild:r,hidden:l,children:s}){let n=react.useContext(P),o=Y();if(l||!n)return null;let t=n.author||o("comments.unknown"),i={className:`docx-review__author${e?` ${e}`:""}`,"data-testid":"review-author"};return r?jsxRuntime.jsx(react$1.Slot,{...i,children:s}):jsxRuntime.jsx("span",{...i,children:s??t})}ae.docxReviewPart="Author";function le({className:e,asChild:r,hidden:l,children:s}){let n=react.useContext(P);if(l||!n)return null;let o=n.date;if(!o)return null;let t=new Date(o);if(Number.isNaN(t.getTime()))return null;let i={className:`docx-review__time${e?` ${e}`:""}`,"data-testid":"review-time",dateTime:o};return r?jsxRuntime.jsx(react$1.Slot,{...i,children:s}):jsxRuntime.jsx("time",{...i,children:s??xt.format(t)})}le.docxReviewPart="Time";var xt=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function ce({className:e,asChild:r,hidden:l,children:s}){let n=react.useContext(P),o=Y();if(l||!n)return null;let t=n.text,i=n.kind!=="revision"?null:o(ht(n.revisionKind)),d=n.kind==="revision"&&n.revisionKind==="replace",m={className:`docx-review__summary${e?` ${e}`:""}`,"data-testid":"review-summary","data-review-selectable":""};return r?jsxRuntime.jsx(react$1.Slot,{...m,children:s}):jsxRuntime.jsx("div",{...m,children:s??(d?jsxRuntime.jsxs("span",{className:"docx-review__text",children:[o("review.replaced")," ",jsxRuntime.jsxs("span",{className:"docx-review__removed",children:['"',n.replacedText,'"']})," ",o("review.replacedWith")," ",jsxRuntime.jsxs("span",{className:"docx-review__added",children:['"',t,'"']})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i?jsxRuntime.jsx("span",{className:"docx-review__label","data-kind":n.kind==="revision"?n.revisionKind:"revision",children:i}):null,t?jsxRuntime.jsx("span",{className:"docx-review__text",children:t}):null]}))})}ce.docxReviewPart="Summary";function ht(e){switch(e){case "insert":return "review.inserted";case "delete":return "review.deleted";case "replace":return "review.replaced";case "moveFrom":return "review.movedFrom";case "moveTo":return "review.movedTo";case "format":return "revisions.runPropertiesChanged";case "paragraphMark":return "revisions.paragraphMarkInserted";default:return "review.structural"}}function ye({className:e,asChild:r,hidden:l,children:s,icon:n}){let{review:o}=$(),t=react.useContext(P),i=Y();if(l||!t||t.kind!=="revision"||t.readOnly)return null;let d=i("review.accept"),m={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-accept","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.accept(t);}};return r?jsxRuntime.jsx(react$1.Slot,{...m,children:s}):jsxRuntime.jsx("button",{...m,children:n??s??ee(mt)})}ye.docxReviewPart="Accept";function be({className:e,asChild:r,hidden:l,children:s,icon:n}){let{review:o}=$(),t=react.useContext(P),i=Y();if(l||!t||t.kind!=="revision"||t.readOnly)return null;let d=i("review.reject"),m={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-reject","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.reject(t);}};return r?jsxRuntime.jsx(react$1.Slot,{...m,children:s}):jsxRuntime.jsx("button",{...m,children:n??s??ee(vt)})}be.docxReviewPart="Reject";function xe({className:e,asChild:r,hidden:l,children:s,icon:n}){let{review:o}=$(),t=react.useContext(P),{t:i}=react$1.useTranslation();if(l||!t||t.kind==="custom"||t.kind==="revision"&&t.readOnly)return null;let d=t.kind==="comment"?i("review.deleteComment"):i("review.discardChange"),m={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-delete","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.remove(t);}};return r?jsxRuntime.jsx(react$1.Slot,{...m,children:s}):jsxRuntime.jsx("button",{...m,children:n??s??ee(ft)})}xe.docxReviewPart="Delete";function Ve({className:e,hidden:r}){let{byId:l}=$(),s=react.useContext(P);if(r||!s||s.kind==="custom")return null;let n=s.replyIds.map(o=>l.get(o)).filter(o=>o!==void 0);return n.length===0?null:jsxRuntime.jsx("ol",{className:`docx-review__replies${e?` ${e}`:""}`,children:n.map(o=>jsxRuntime.jsx(P.Provider,{value:o,children:jsxRuntime.jsxs("li",{className:"docx-review__reply","data-testid":"review-reply",children:[jsxRuntime.jsxs("div",{className:"docx-review__head",children:[jsxRuntime.jsx(se,{}),jsxRuntime.jsxs("div",{className:"docx-review__meta",children:[jsxRuntime.jsx(ae,{}),jsxRuntime.jsx(le,{})]}),jsxRuntime.jsx("div",{className:"docx-review__actions",children:jsxRuntime.jsx(xe,{})})]}),jsxRuntime.jsx(ce,{})]})},o.key))})}Ve.docxReviewPart="Replies";function Ke({className:e,hidden:r,children:l}){let{review:s}=$(),n=react.useContext(P),o=Y(),[t,i]=react.useState(""),[d,m]=react.useState(false),c=react.useId(),p=react.useCallback(()=>{if(!n||t.trim().length===0)return;let R=s.reply(n,t.trim());m(!R),R&&i("");},[n,t,s]);return r||!n||!n.isActive?null:l?jsxRuntime.jsx(jsxRuntime.Fragment,{children:l}):jsxRuntime.jsxs("form",{className:`docx-review__reply-box${e?` ${e}`:""}`,onSubmit:R=>{R.preventDefault(),p();},children:[jsxRuntime.jsx("label",{className:"docx-editor-sr-only",htmlFor:c,children:o("comments.replyPlaceholder")}),jsxRuntime.jsx("input",{id:c,"data-testid":"review-reply-input",className:"docx-review__input",value:t,placeholder:o("comments.replyPlaceholder"),...d?{"aria-invalid":true,"data-refused":""}:{},onChange:R=>{m(false),i(R.target.value);},onClick:R=>R.stopPropagation(),onKeyDown:R=>{R.key==="Enter"&&(R.preventDefault(),p());}}),jsxRuntime.jsxs("div",{className:"docx-review__reply-actions",children:[jsxRuntime.jsx("button",{type:"button","data-testid":"review-reply-cancel",className:"docx-review__text-button",onMouseDown:j,onClick:R=>{R.stopPropagation(),i(""),m(false),s.setActive(null);},children:o("common.cancel")}),jsxRuntime.jsx("button",{type:"submit","data-testid":"review-reply-submit",className:"docx-review__submit",disabled:t.trim().length===0,children:o("review.reply")})]}),d?jsxRuntime.jsx("span",{className:"docx-review__refused",role:"alert","data-testid":"review-reply-refused",children:o("review.replyRefused")}):null]})}Ke.docxReviewPart="Reply";var un=Object.assign(sn,{List:Re,Empty:He,Card:qe,Avatar:se,Author:ae,Time:le,Summary:ce,Accept:ye,Reject:be,Delete:xe,Replies:Ve,Reply:Ke,Markers:Se,AddComment:Oe,Draft:Le,Balloon:$e});function de(e){let r=react$1.useDocxEditor();return react.useMemo(()=>e||(r?.getCustomNodeDefinitions()??[]).filter(chunkA7NTVTWG_cjs.j),[e,r])}var pn=".docx-content-control-boundary";function te(e,r){let{node:l,definition:s,controlId:n}=e,o=n?r?.getReviewItems().find(d=>d.kind==="custom"&&d.item.id===n):void 0;if(o&&o.kind==="custom"){let d=o.item;return {...l,attrs:d.attrs,text:d.text,...d.data===void 0?{}:{data:d.data},...n?{nodeId:n}:{}}}let t=n?wn(r,n,s):void 0,i=s.fromDocx?s.fromDocx({attrs:l.attrs,text:"",...t===void 0?{}:{data:t}}):l.attrs;return i===null?null:{...l,attrs:i,...t===void 0?{}:{data:t},...n?{nodeId:n}:{}}}function wn(e,r,l){let s=e?.surface;if(!s)return;let n=s.session.part(),o=store.customNodePayloadsByControl(s.session.currentPackage(),n.name).get(r);if(!o)return;let t=chunkA7NTVTWG_cjs.e(l.schema,o.data);return t.ok?t.value:void 0}function ne(e,r){let l=e?.closest?.(pn),s=l?.closest(".docx-content-control-chrome"),n=s?.getAttribute("data-tag"),o=n?chunkA7NTVTWG_cjs.c(n):null;if(!l||!o||!n)return null;let t=r.find(i=>i.tagPrefix===o.prefix&&i.name===o.name);return t?{node:{name:o.name,attrs:o.attrs,tag:n,rect:l.getBoundingClientRect()},definition:t,controlId:s?.getAttribute("data-docx-content-control")??null}:null}var Ye=".docx-content-control-boundary",yn=e=>{if(!chunkA7NTVTWG_cjs.k.test(e.tagPrefix)||!chunkA7NTVTWG_cjs.k.test(e.name))return [];let r=`${e.tagPrefix}:${e.name}`;return [`.docx-content-control-chrome[data-tag="${r}"]`,`.docx-content-control-chrome[data-tag^="${r}?"]`]};function bn(e){let{onNodeClick:r,onNodeHover:l}=e,s=react$1.useDocxEditor(),n=de(e.nodes);return react.useEffect(()=>{let o=document.createElement("style"),t=[];for(let i of n){let d=yn(i);if(d.length===0)continue;let m=i.chrome?.color!==void 0&&CSS.supports("color",i.chrome.color)?i.chrome.color:"#2563eb";t.push(`${d.map(c=>`${c} ${Ye}`).join(", ")} {`," pointer-events: auto !important;"," opacity: 1;"," border: none;",` background: color-mix(in srgb, ${m} 12%, transparent);`," border-radius: 6px;"," cursor: default;","}");}return o.textContent=t.join(`
|
|
2
|
+
`),document.head.append(o),()=>o.remove()},[n]),react.useEffect(()=>{let o=null,t=null,i=p=>ne(document.elementFromPoint(p.clientX,p.clientY),n),d=p=>{let R=p.button===0?i(p):null;o=R?.controlId??null,t=R?.node.tag??null;},m=p=>{let R=o,y=t;if(o=null,t=null,y===null)return;let w=i(p);if(!w||w.node.tag!==y||R!==null&&w.controlId!==R)return;let u=te(w,s);u&&(w.definition.onClick?.(u),r?.(u));},c=p=>{let R=ne(p.target,n);if(!R||p.relatedTarget?.closest?.(Ye)===p.target.closest(Ye))return;let w=te(R,s);w&&(R.definition.onHover?.(w),l?.(w));};return document.addEventListener("pointerdown",d,true),document.addEventListener("pointerup",m,true),document.addEventListener("mouseover",c),()=>{document.removeEventListener("pointerdown",d,true),document.removeEventListener("pointerup",m,true),document.removeEventListener("mouseover",c);}},[n,s,r,l]),null}function Ct(e){let{onEditNode:r,onRemoveRefused:l,remove:s=true}=e,n=de(e.nodes),o=react$1.useContextMenuTarget(),t=react$1.useDocxEditor(),{t:i}=react$1.useTranslation(),d=react.useMemo(()=>o?ne(o,n):null,[o,n]),m=react.useMemo(()=>d?te(d,t):null,[d,t]),c=react.useMemo(()=>!d?.definition.reviewCard||!m?null:d.definition.reviewCard({attrs:m.attrs,text:m.text??"",...m.data===void 0?{}:{data:m.data}}),[d,m]);if(!d||!m)return null;let{definition:p}=d,R=p.label??p.name,y=p.onEdit!==void 0||r!==void 0,w=s&&m.nodeId!==void 0&&t!==null;return !c&&!y&&!w?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[c?jsxRuntime.jsxs("div",{className:"docx-contextmenu__custom-info","data-testid":"custom-node-info",children:[jsxRuntime.jsx("span",{className:"docx-contextmenu__custom-title",children:c.title}),c.detail?jsxRuntime.jsx("span",{className:"docx-contextmenu__custom-detail",children:c.detail}):null]}):null,y?jsxRuntime.jsx(react$1.ContextMenuItem,{label:i("contextMenu.editCustomNode",{label:R}),className:"docx-contextmenu__custom-edit",onSelect:()=>{p.onEdit?.(m),r?.(m,p);}}):null,w?jsxRuntime.jsx(react$1.ContextMenuItem,{label:i("contextMenu.removeCustomNode",{label:R}),className:"docx-contextmenu__custom-remove",onSelect:()=>{let u=chunkA7NTVTWG_cjs.q(t,m.nodeId);u.ok||l?.(m,u.reason);}}):null,jsxRuntime.jsx("div",{role:"separator",className:"docx-toolbar__menu-separator"})]})}Ct.docxRowPlacement="start";Object.defineProperty(exports,"reviewModule",{enumerable:true,get:function(){return chunkA7NTVTWG_cjs.o}});exports.CustomNodeChrome=bn;exports.CustomNodeContextMenu=Ct;exports.DocxEditorReview=un;exports.activatedCustomNodeOf=te;exports.resolveCustomNodeActivation=ne;exports.useCustomNodeDefinitions=de;exports.useReview=fe;exports.useReviewItem=Wt;exports.useReviewOf=lt;exports.useStackedReviewPositions=Kt;
|
package/dist/react/index.d.cts
CHANGED
|
@@ -156,12 +156,14 @@ interface ReviewProps extends Omit<ReviewPartProps, 'children'> {
|
|
|
156
156
|
className?: string;
|
|
157
157
|
};
|
|
158
158
|
/**
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
159
|
+
* Compound parts for the rail and its implicit List. A function remains supported as the
|
|
160
|
+
* legacy shorthand for a List render callback, but cannot be combined with root siblings;
|
|
161
|
+
* prefer an explicit `<Review.List>{item => ...}</Review.List>` in new code.
|
|
162
162
|
*
|
|
163
163
|
* ```tsx
|
|
164
|
-
* <DocxEditor.Review>
|
|
164
|
+
* <DocxEditor.Review>
|
|
165
|
+
* <DocxEditor.Review.List>{(item) => <MyCard item={item} />}</DocxEditor.Review.List>
|
|
166
|
+
* </DocxEditor.Review>
|
|
165
167
|
* ```
|
|
166
168
|
*/
|
|
167
169
|
children?: ReactNode | ((item: ReviewItemView) => ReactNode);
|
|
@@ -176,7 +178,8 @@ interface ReviewProps extends Omit<ReviewPartProps, 'children'> {
|
|
|
176
178
|
furniture?: ReactNode;
|
|
177
179
|
/**
|
|
178
180
|
* Render the packaged arrangement. `false` mounts the rail and its context only, so a host
|
|
179
|
-
* can lay the cards out itself while keeping the subscription and the anchoring.
|
|
181
|
+
* can lay the cards out itself while keeping the subscription and the anchoring. Explicit
|
|
182
|
+
* compound parts still inherit root-owned geometry; no omitted part is added back.
|
|
180
183
|
*/
|
|
181
184
|
preset?: boolean;
|
|
182
185
|
/**
|
|
@@ -241,7 +244,7 @@ interface ReviewListProps {
|
|
|
241
244
|
*
|
|
242
245
|
* @public
|
|
243
246
|
*/
|
|
244
|
-
declare function ReviewList({ stack, positions, collapsed, scale, offset, window: visible, children, className, hidden, }: ReviewListProps): react.JSX.Element | null;
|
|
247
|
+
declare function ReviewList({ stack, positions, collapsed, scale, offset, window: visible, children, className, hidden, }: ReviewListProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react.JSX.Element | null;
|
|
245
248
|
declare namespace ReviewList {
|
|
246
249
|
var docxReviewPart: "List";
|
|
247
250
|
}
|
|
@@ -287,7 +290,7 @@ declare namespace ReviewMarkers {
|
|
|
287
290
|
* @public
|
|
288
291
|
*/
|
|
289
292
|
declare function ReviewAddComment({ top, drafting, className, hidden, children, }: ReviewPartProps & {
|
|
290
|
-
top
|
|
293
|
+
top?: number | null;
|
|
291
294
|
drafting?: boolean;
|
|
292
295
|
}): react.JSX.Element | null;
|
|
293
296
|
declare namespace ReviewAddComment {
|
|
@@ -302,7 +305,7 @@ declare namespace ReviewAddComment {
|
|
|
302
305
|
* @public
|
|
303
306
|
*/
|
|
304
307
|
declare function ReviewDraft({ top, className, hidden }: ReviewPartProps & {
|
|
305
|
-
top
|
|
308
|
+
top?: number;
|
|
306
309
|
}): react.JSX.Element | null;
|
|
307
310
|
declare namespace ReviewDraft {
|
|
308
311
|
var docxReviewPart: "Draft";
|
package/dist/react/index.d.ts
CHANGED
|
@@ -156,12 +156,14 @@ interface ReviewProps extends Omit<ReviewPartProps, 'children'> {
|
|
|
156
156
|
className?: string;
|
|
157
157
|
};
|
|
158
158
|
/**
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
159
|
+
* Compound parts for the rail and its implicit List. A function remains supported as the
|
|
160
|
+
* legacy shorthand for a List render callback, but cannot be combined with root siblings;
|
|
161
|
+
* prefer an explicit `<Review.List>{item => ...}</Review.List>` in new code.
|
|
162
162
|
*
|
|
163
163
|
* ```tsx
|
|
164
|
-
* <DocxEditor.Review>
|
|
164
|
+
* <DocxEditor.Review>
|
|
165
|
+
* <DocxEditor.Review.List>{(item) => <MyCard item={item} />}</DocxEditor.Review.List>
|
|
166
|
+
* </DocxEditor.Review>
|
|
165
167
|
* ```
|
|
166
168
|
*/
|
|
167
169
|
children?: ReactNode | ((item: ReviewItemView) => ReactNode);
|
|
@@ -176,7 +178,8 @@ interface ReviewProps extends Omit<ReviewPartProps, 'children'> {
|
|
|
176
178
|
furniture?: ReactNode;
|
|
177
179
|
/**
|
|
178
180
|
* Render the packaged arrangement. `false` mounts the rail and its context only, so a host
|
|
179
|
-
* can lay the cards out itself while keeping the subscription and the anchoring.
|
|
181
|
+
* can lay the cards out itself while keeping the subscription and the anchoring. Explicit
|
|
182
|
+
* compound parts still inherit root-owned geometry; no omitted part is added back.
|
|
180
183
|
*/
|
|
181
184
|
preset?: boolean;
|
|
182
185
|
/**
|
|
@@ -241,7 +244,7 @@ interface ReviewListProps {
|
|
|
241
244
|
*
|
|
242
245
|
* @public
|
|
243
246
|
*/
|
|
244
|
-
declare function ReviewList({ stack, positions, collapsed, scale, offset, window: visible, children, className, hidden, }: ReviewListProps): react.JSX.Element | null;
|
|
247
|
+
declare function ReviewList({ stack, positions, collapsed, scale, offset, window: visible, children, className, hidden, }: ReviewListProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react.JSX.Element | null;
|
|
245
248
|
declare namespace ReviewList {
|
|
246
249
|
var docxReviewPart: "List";
|
|
247
250
|
}
|
|
@@ -287,7 +290,7 @@ declare namespace ReviewMarkers {
|
|
|
287
290
|
* @public
|
|
288
291
|
*/
|
|
289
292
|
declare function ReviewAddComment({ top, drafting, className, hidden, children, }: ReviewPartProps & {
|
|
290
|
-
top
|
|
293
|
+
top?: number | null;
|
|
291
294
|
drafting?: boolean;
|
|
292
295
|
}): react.JSX.Element | null;
|
|
293
296
|
declare namespace ReviewAddComment {
|
|
@@ -302,7 +305,7 @@ declare namespace ReviewAddComment {
|
|
|
302
305
|
* @public
|
|
303
306
|
*/
|
|
304
307
|
declare function ReviewDraft({ top, className, hidden }: ReviewPartProps & {
|
|
305
|
-
top
|
|
308
|
+
top?: number;
|
|
306
309
|
}): react.JSX.Element | null;
|
|
307
310
|
declare namespace ReviewDraft {
|
|
308
311
|
var docxReviewPart: "Draft";
|
package/dist/react/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {j as j$1,e,c,q,k}from'../chunk-PWNAGXXX.js';export{o as reviewModule}from'../chunk-PWNAGXXX.js';import {createContext,useMemo,useEffect,useCallback,useRef,useContext,useState,isValidElement,cloneElement,useId,useSyncExternalStore,Fragment as Fragment$1}from'react';import {useDocxEditor,useEditorState,useTranslation,ReviewRailContext,Slot,useContextMenuTarget,ContextMenuItem}from'@docx-editor.dev/react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';import {customNodePayloadsByControl}from'@docx-editor.dev/core/store';function me(e){let i=useDocxEditor();return it(i,e)}function it(e,i){let l=useCallback(f=>{if(!e)return ()=>{};let x=e.on("change",f),A=e.on("selectionChange",f),N=e.on("error",f);return ()=>{x(),A(),N();}},[e]),r=useSyncExternalStore(l,()=>e?`${e.getReviewRevision()}`:"none",()=>"none"),t=useMemo(()=>e?e.getReviewItems(i).filter(f=>f.item.kind!=="custom"||f.item.carded):[],[e,r,i]),o=useMemo(()=>t.find(f=>f.isActive)?.key??null,[t]),n=useCallback((f,x)=>e?e.setActiveReviewItem(f,x).ok:false,[e]),a=useCallback(f=>!e||f.kind!=="revision"||f.readOnly?false:e.acceptReviewItem(f.key).ok,[e]),d=useCallback(f=>!e||f.kind!=="revision"||f.readOnly?false:e.rejectReviewItem(f.key).ok,[e]),u=useCallback(f=>!e||f.kind==="custom"||f.kind==="revision"&&f.readOnly?false:e.deleteReviewItem(f.key).ok,[e]),c=useCallback((f,x,A)=>x.trim().length===0||!e?false:e.replyToReviewItem(f.key,x,A).ok,[e]),w=useMemo(()=>e?e.getSelectionPlacement()?.anchorY??null:null,[e,r]),R=useCallback((f,x)=>f.trim().length===0||!e?false:e.addComment(f,x).ok,[e]),y=useMemo(()=>e?e.isReviewPaneOpen():true,[e,r]),v=useCallback(f=>{!e||e.isReviewPaneOpen()===f||e.exec({type:"toggleReviewPane"});},[e]);return useMemo(()=>({items:t,activeKey:o,setActive:n,accept:a,reject:d,remove:u,reply:c,selectionAnchorY:w,comment:R,paneOpen:y,setPaneOpen:v,ready:e!==null&&!e.snapshot().isLoading&&e.snapshot().parseError===null}),[t,o,n,a,d,u,c,w,R,y,v,e])}function Mt(e,i,l={}){let r=l.gap??8,t=l.scale??1,o=l.defaultHeight??0;return useMemo(()=>{let n=new Map,a=Number.NEGATIVE_INFINITY;for(let d of e){let u=d.anchorY===null?Number.isFinite(a)?a:0:Math.max(d.anchorY,a);n.set(d.key,u),a=u+((i.get(d.key)??o)+r)/t;}return n},[e,i,r,t,o])}var X=e=>jsx("svg",{viewBox:"0 -960 960 960",width:16,height:16,"aria-hidden":"true",focusable:"false",children:jsx("path",{d:e,fill:"currentColor"})}),lt="M440-400h80v-120h120v-80H520v-120h-80v120H320v80h120v120ZM80-80v-720q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H240L80-80Zm126-240h594v-480H160v525l46-45Zm-46 0v-480 480Z",at="M240-400h480v-80H240v80Zm0-120h480v-80H240v80Zm0-120h480v-80H240v80ZM880-80 720-240H160q-33 0-56.5-23.5T80-320v-480q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v720ZM160-320h594l46 45v-525H160v480Zm0 0v-480 480Z",ct="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z",dt="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z",ut="M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z",Dt="M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z",St="M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 78t85.5 30q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-341q0 86-61.5 133.5T486-160ZM80-520v-80h800v80H80Zm402-360q66 0 116 30t74 84l-88 38q-11-28-38.5-47T480-794q-42 0-72 19t-30 51q0 15 6 27t18 22H272q-6-13-9-27t-3-30q0-70 55-114t167-44Z",Ot="M360-160q-83 0-141.5-58.5T160-360v-360q0-83 58.5-141.5T360-920q83 0 141.5 58.5T560-720v360q0 83-58.5 141.5T360-160Zm0-80q50 0 85-35t35-85v-360q0-50-35-85t-85-35q-50 0-85 35t-35 85v360q0 50 35 85t85 35Zm300 80q29 0 49.5-20.5T730-230q0-22-12.5-40T684-296l-64-32v-232l100 100q23 23 51.5 35.5T832-412v-80q-17 0-32-6.5T773-517L633-657q-12-12-27.5-17.5T573-680h-13v520h100ZM360-720Z",Lt="M580-360q-25 0-42.5-17.5T520-420v-160q0-25 17.5-42.5T580-640h160q25 0 42.5 17.5T800-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T720-320v-40H580Zm-360 0q-25 0-42.5-17.5T160-420v-160q0-25 17.5-42.5T220-640h160q25 0 42.5 17.5T440-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T360-320v-40H220Z";function mt(e){if(e.kind==="comment")return at;if(e.kind==="custom")return e.item.icon??Lt;switch(e.revisionKind){case "insert":case "moveTo":return Dt;case "delete":case "moveFrom":return St;case "format":return Ot;default:return at}}var Kt=e=>e.isLoading||e.parseError!==null||e.pageSetup==null,Ie=createContext(null),I=createContext(null);function Yt(){return useContext(I)}var Zt={scale:96/72,top:0,left:null},Bt=16,ve="\0compose",ft=600,wt=8,Ft=72,jt=64,Ut=480,zt=Object.freeze({placement:false});function Pe(e,i){return e.kind!=="comment"?false:e.parentId!==void 0?i.has(e.parentId):e.parentRevisionId!==void 0?i.has(e.parentRevisionId):false}function ke(e){return new Set(e.map(i=>i.id))}function j(e){let i=e.target?.tagName;i==="INPUT"||i==="SELECT"||i==="TEXTAREA"||e.preventDefault();}function H(){let e=useContext(Ie);return e||Qt}function Y(){let{t:e}=useContext(Ie)??{},{t:i}=useTranslation();return useCallback(l=>e?.(l)??i(l),[e,i])}var Qt={t:void 0,cardClassName:void 0,review:{items:[],activeKey:null,setActive:()=>false,accept:()=>false,reject:()=>false,remove:()=>false,reply:()=>false,selectionAnchorY:null,comment:()=>false,paneOpen:true,setPaneOpen:()=>{},ready:false},allItems:[],authorSlots:new Map,byId:new Map,measure:()=>{},beginDraft:()=>{},endDraft:()=>{}};function Gt({className:e,furniture:i,asChild:l,hidden:r,children:t,t:o,card:n,preset:a=true,stack:d=true,gap:u=8,filter:c,structural:w=false,formatting:R=false}){let y=useDocxEditor(),v=useEditorState(Kt),f=useMemo(()=>{let p=[];return w||p.push("structural"),R||p.push("format"),p.length>0?p:void 0},[w,R]),x=useMemo(()=>f?{excludeRevisionKinds:f}:void 0,[f]);useEffect(()=>(y?.setReviewActivationExclusions(f??null),()=>y?.setReviewActivationExclusions(null)),[y,f]);let A=me(zt),N=me(x),E=N.setPaneOpen,{t:C}=useTranslation(),T=useCallback(p=>o?.(p)??C(p),[o,C]),D=useRef(null),de=useContext(ReviewRailContext);useEffect(()=>de?.register(),[de]);let Z=N.paneOpen,k=useMemo(()=>c?N.items.filter(p=>c(p)):N.items,[N.items,c]),Ke=useMemo(()=>{let p=new Map;for(let m of k)m.author&&!p.has(m.author)&&p.set(m.author,p.size);return p},[k]),Ye=useMemo(()=>{let p=new Map;for(let m of k)p.set(m.id,m);return p},[k]),[Ze,_t]=useState(()=>new Map),ye=useCallback((p,m)=>{m<=0||_t(b=>{if(b.get(p)===m)return b;let _=new Map(b);return _.set(p,m),_});},[]),be=useRef(new WeakMap),te=useRef(null),Be=useCallback((p,m)=>{!p||typeof ResizeObserver>"u"||(ye(m,p.offsetHeight),te.current??(te.current=new ResizeObserver(b=>{for(let _ of b){let g=be.current.get(_.target);g&&ye(g,_.target.offsetHeight);}})),be.current.get(p)!==m&&(be.current.set(p,m),te.current.observe(p)));},[ye]);useEffect(()=>()=>te.current?.disconnect(),[]);let[S,Ct]=useState(Zt);useEffect(()=>{let p=D.current;if(!y||!p)return;let m=p.offsetParent,b=m?.querySelector(".docx-paginated-surface")??null,_=()=>{Ct(M=>{let q=b&&m?b.getBoundingClientRect():null,L=q&&m?m.getBoundingClientRect():null,$={scale:y.getRenderScale(),top:q&&L&&m?q.top-L.top-m.clientTop+m.scrollTop:0,left:q&&L&&m?q.right-L.left-m.clientLeft+m.scrollLeft+Bt:null};return M.scale===$.scale&&M.top===$.top&&M.left===$.left?M:$});};_();let g=new ResizeObserver(_);return m&&g.observe(m),b&&g.observe(b),()=>g.disconnect()},[y,k,v,r]),useEffect(()=>{let p=D.current;if(!y||!p)return;let m=b=>{let _=b.target;if(!(_ instanceof Node)||p.contains(_))return;let g=p.offsetParent;!g||!g.contains(_)||g.querySelector(".docx-paginated-surface")?.contains(_)||y.setActiveReviewItem(null);};return document.addEventListener("mousedown",m,true),()=>document.removeEventListener("mousedown",m,true)},[y,v,r]);let[xe,Et]=useState(null);useEffect(()=>{let p=D.current,m=p?.offsetParent;if(!m)return;let b=0,_=()=>{b=0,Et(L=>{let $=m.scrollTop-ft,ue=m.scrollTop+m.clientHeight+ft;return L&&L.top===$&&L.bottom===ue?L:{top:$,bottom:ue}});},g=0,M=()=>{b===0&&(b=requestAnimationFrame(_)),p?.setAttribute("data-scrolling",""),window.clearTimeout(g),g=window.setTimeout(()=>p?.removeAttribute("data-scrolling"),150);};_(),m.addEventListener("scroll",M,{passive:true});let q=new ResizeObserver(M);return q.observe(m),()=>{b!==0&&cancelAnimationFrame(b),window.clearTimeout(g),m.removeEventListener("scroll",M),q.disconnect();}},[y,v,r]);let[B,he]=useState(null),Fe=useCallback(()=>{y&&(y.surface?.retainSelection(),E(true),he(y.getSelectionPlacement()?.anchorY??null));},[y,E]),je=useCallback(()=>{y?.surface?.releaseSelection(),he(null),y?.focus();},[y]);useEffect(()=>{Z||B===null||(y?.surface?.releaseSelection(),he(null));},[Z,B,y]);let Ue=B??N.selectionAnchorY,U=useMemo(()=>{let p=ke(k);return k.filter(m=>!Pe(m,p))},[k]),ze=useMemo(()=>{if(B===null)return U;let p=U.findIndex(b=>b.anchorY!==null&&b.anchorY>B),m={key:ve,anchorY:B};return p===-1?[...U,m]:[...U.slice(0,p),m,...U.slice(p)]},[U,B]),Qe=useMemo(()=>{let p=new Map(Ze);for(let m of U){if(p.has(m.key))continue;let b=m.text.length+(m.kind==="revision"?m.replacedText?.length??0:0),_=Math.min(6,Math.max(1,Math.ceil(b/36)));p.set(m.key,64+_*20);}return p},[Ze,U]),{stacked:ge,collapsedKeys:Ge}=useMemo(()=>{let p=S.scale,m=new Map,b=new Set,_=Number.NEGATIVE_INFINITY;for(let g of ze){let M=g.anchorY===null?Number.isFinite(_)?_:0:Math.max(g.anchorY,_);m.set(g.key,M);let q=g.anchorY===null?0:(M-g.anchorY)*p,L="isActive"in g&&g.isActive,$=q>Ut&&!L&&g.key!==ve;$&&b.add(g.key);let ue=$?jt:Qe.get(g.key)??Ft;_=M+(ue+u)/p;}return {stacked:m,collapsedKeys:b}},[ze,Qe,u,S.scale]),Ne=Ue===null?null:S.top+(ge.get(ve)??Ue)*S.scale,We=n?.className,Tt=useMemo(()=>({t:o,cardClassName:We,review:{...N,items:k},allItems:A.items,authorSlots:Ke,byId:Ye,measure:Be,beginDraft:Fe,endDraft:je}),[o,We,N,A.items,k,Ke,Ye,Be,Fe,je]);if(r||v)return null;let Xe={ref:D,className:`docx-review${e?` ${e}`:""}`,"data-testid":"review-rail","data-count":k.length,"data-open":Z?"":void 0,role:"complementary","aria-label":T("review.ariaLabel"),onMouseDown:j,style:S.left===null?void 0:{left:S.left,right:"auto"}},Je=typeof t=="function"?{}:Rt(t),ne=(p,m)=>{if(!(p in Je))return m;let b=Je[p];return !isValidElement(b)||!isValidElement(m)?b:cloneElement(b,{...m.props,...b.props})},et=a?jsxs(Fragment,{children:[ne("AddComment",jsx(Me,{top:Ne,drafting:B!==null})),!Z||B===null||Ne===null?null:ne("Draft",jsx(De,{top:Ne})),ne("Balloon",jsx(Se,{}))]}):null,It=a?Z?ne("List",jsx(fe,{stack:d,positions:ge,collapsed:Ge,scale:S.scale,offset:S.top,window:xe,children:t})):ne("Markers",jsx(Ae,{scale:S.scale,offset:S.top,window:xe})):typeof t=="function"?null:t;return jsx(Ie.Provider,{value:Tt,children:l&&isValidElement(t)?jsx(Slot,{...Xe,children:cloneElement(t,void 0,t.props.children,a?jsx(fe,{stack:d,positions:ge,collapsed:Ge,scale:S.scale,offset:S.top,window:xe}):null,et)}):jsxs("aside",{...Xe,children:[Z&&i!==void 0?jsx("div",{className:"docx-review__furniture","data-testid":"review-furniture",children:i}):null,It,et]})})}function fe({stack:e=true,positions:i,collapsed:l,scale:r=1,offset:t=0,window:o=null,children:n,className:a,hidden:d}){let{review:u,measure:c,cardClassName:w}=H();if(d)return null;let R=ke(u.items),y=u.items.filter(v=>!Pe(v,R));return y.length===0?typeof n=="function"?null:jsx(Oe,{}):jsx("div",{className:`docx-review__list${a?` ${a}`:""}`,children:y.map(v=>{let f=e?i?.get(v.key)??v.anchorY:v.anchorY,x=f==null?null:t+f*r;if(x!==null&&o&&(x<o.top||x>o.bottom))return null;let A=x===null?{}:{position:"absolute",top:x};return jsx(I.Provider,{value:v,children:jsx("div",{className:"docx-review__slot",style:A,...l?.has(v.key)?{"data-collapsed":""}:{},ref:N=>{c(N,v.key);},children:typeof n=="function"?n(v):jsx(Le,{...w?{className:w}:{},children:n})})},v.key)})})}fe.docxReviewPart="List";function Ae({scale:e=1,offset:i=0,window:l=null,className:r,hidden:t,icon:o}){let{review:n}=H(),a=Y();if(t)return null;let d=ke(n.items),u=n.items.filter(c=>!Pe(c,d));return jsx("div",{className:`docx-review__markers${r?` ${r}`:""}`,children:u.map(c=>{if(c.anchorY===null)return null;let w=i+c.anchorY*e;return l&&(w<l.top||w>l.bottom)?null:jsx("button",{type:"button",className:"docx-review__marker","data-testid":"review-marker","data-kind":c.kind==="revision"?c.revisionKind:c.kind,style:{position:"absolute",top:w},title:c.author?`${c.author}: ${c.text}`:c.text,"aria-label":`${a("review.showPane")}: ${c.author?`${c.author}. `:""}${c.text}`,onMouseDown:j,onClick:()=>{n.setPaneOpen(true),n.setActive(c.key);},children:(typeof o=="function"?o(c):o)??X(mt(c))},c.key)})})}Ae.docxReviewPart="Markers";function Me({top:e,drafting:i=false,className:l,hidden:r,children:t}){let{beginDraft:o}=H(),n=Y();if(r||i||e===null)return null;let a={type:"button",className:`docx-review__add${l?` ${l}`:""}`,"data-testid":"review-add-comment",style:{position:"absolute",top:e},"aria-label":n("common.comment"),title:n("common.comment"),onMouseDown:j,onClick:o};return t?jsx(Slot,{...a,children:t}):jsx("button",{...a,children:X(lt)})}Me.docxReviewPart="AddComment";function De({top:e,className:i,hidden:l}){let{review:r,endDraft:t,measure:o}=H(),n=Y(),[a,d]=useState(""),[u,c]=useState(false),w=useRef(null),R=useId();useEffect(()=>{w.current?.focus({preventScroll:true});},[]);let y=useCallback(()=>{if(a.trim().length===0)return;let v=r.comment(a.trim());c(!v),v&&(d(""),t());},[a,r,t]);return l?null:jsx("div",{className:`docx-review__slot${i?` ${i}`:""}`,style:{position:"absolute",top:e},ref:v=>{o(v,ve);},children:jsx("div",{className:"docx-review__card","data-testid":"review-draft","data-draft":"",children:jsxs("form",{className:"docx-review__reply-box",onSubmit:v=>{v.preventDefault(),y();},children:[jsx("label",{className:"docx-editor-sr-only",htmlFor:R,children:n("comments.addComment")}),jsx("input",{id:R,ref:w,"data-testid":"review-draft-input",className:"docx-review__input",value:a,placeholder:n("comments.addComment"),...u?{"aria-invalid":true}:{},onChange:v=>{c(false),d(v.target.value);},onKeyDown:v=>{if(v.key==="Escape"){v.preventDefault(),t();return}v.key==="Enter"&&(v.preventDefault(),y());}}),jsxs("div",{className:"docx-review__reply-actions",children:[jsx("button",{type:"button","data-testid":"review-draft-cancel",className:"docx-review__text-button",onMouseDown:j,onClick:t,children:n("common.cancel")}),jsx("button",{type:"submit","data-testid":"review-draft-submit",className:"docx-review__submit",disabled:a.trim().length===0,children:n("common.comment")})]}),u?jsx("span",{className:"docx-review__refused",role:"alert",children:n("review.commentRefused")}):null]})})})}De.docxReviewPart="Draft";function Se({className:e,hidden:i}){let{review:l,allItems:r,authorSlots:t}=H(),o=Y(),n=useRef(null),[a,d]=useState(null),u=useRef(false);u.current=a!==null,useEffect(()=>{let v=n.current,f=v?.closest(".docx-review"),x=f?.closest(".docx-editor__scroll-container")??f?.offsetParent;if(!v||!f||!x)return;let A=(E,C)=>{let T=f.getBoundingClientRect(),D=E.getBoundingClientRect(),de=E.ownerDocument.defaultView?.innerHeight??1/0,Z=Number(E.dataset.start),k=Number(E.dataset.end);d({revisionId:E.dataset.revisionId,author:E.dataset.revisionAuthor??"",...E.dataset.revisionDate!==void 0?{date:E.dataset.revisionDate}:{},...E.dataset.revisionKind!==void 0?{kind:E.dataset.revisionKind}:{},structuralSite:C,...E.dataset.paragraphId!==void 0?{paragraphId:E.dataset.paragraphId}:{},...Number.isFinite(Z)?{start:Z}:{},...Number.isFinite(k)?{end:k}:{},left:D.left-T.left,top:D.top-T.top,bottom:D.bottom-T.top,above:D.bottom+220>de});},N=E=>{let C=E.target;if(!(C instanceof Element)||v.contains(C))return;let T=C.closest("[data-revision-id]");if(T instanceof HTMLElement&&x.contains(T)){let D=T.classList.contains("docx-table-row--revision");if(T.dataset.revisionKind==="format"||D){A(T,D);return}}u.current&&d(null);};return x.addEventListener("pointerdown",N,true),x.addEventListener("mousedown",N,true),()=>{x.removeEventListener("pointerdown",N,true),x.removeEventListener("mousedown",N,true);}},[]);let c=useMemo(()=>{if(!a)return null;let v=null,f=false,x=null,A=false,N=null,E=false;for(let C of r)if(!(C.kind!=="revision"||C.item.kind!=="revision")){for(let T of C.item.addresses)if(T.id===a.revisionId){if(T.author===a.author){if(T.date===a.date)return C;v===null?v=C:v!==C&&(f=true);}x===null?x=C:x!==C&&(A=true);}if(a.paragraphId!==void 0&&a.start!==void 0&&a.end!==void 0&&(C.revisionKind==="format"||C.revisionKind==="structural")){for(let T of C.item.ranges)if(T.start.paragraphId===a.paragraphId&&T.start.offset<a.end&&T.end.offset>a.start){N===null?N=C:N!==C&&(E=true);break}}}return v!==null&&!f?v:x!==null&&!A?x:N!==null&&!E?N:null},[r,a]),w=c&&(c.revisionKind==="format"||c.revisionKind==="structural")?c:null,R=useRef(false);if(useEffect(()=>{if(w){R.current=true;return}R.current&&(R.current=false,d(null));},[w]),i)return null;let y=a?.kind==="format"?"format":"structural";return jsx("div",{ref:n,className:`docx-review__balloon-root${e?` ${e}`:""}`,children:a===null?null:jsx("div",{className:"docx-review__balloon","data-testid":"review-balloon",style:{left:a.left,top:a.above?a.top-6:a.bottom+6,transform:a.above?"translateY(-100%)":void 0},onMouseDown:j,children:w?jsx(I.Provider,{value:w,children:jsxs("div",{className:"docx-review__card","data-testid":"review-balloon-card","data-kind":w.revisionKind??"revision",style:{"--doc-review-author":`var(--doc-review-author-${(t.get(w.author)??0)%wt})`},onClick:()=>l.setActive(w.key),children:[jsxs("div",{className:"docx-review__head",children:[jsx(re,{}),jsxs("div",{className:"docx-review__meta",children:[jsx(ie,{}),jsx(ae,{})]}),w.kind==="revision"&&!w.readOnly?jsxs("div",{className:"docx-review__actions",children:[jsx(pe,{}),jsx(we,{})]}):null]}),jsx(se,{})]})}):jsxs("div",{className:"docx-review__card","data-testid":"review-balloon-card","data-kind":y,children:[jsxs("div",{className:"docx-review__head",children:[jsx("span",{className:"docx-review__avatar","aria-hidden":"true",children:Wt(a.author)}),jsxs("div",{className:"docx-review__meta",children:[jsx("span",{className:"docx-review__author",children:a.author||o("comments.unknown")}),a.date?jsx(Xt,{raw:a.date}):null]})]}),jsx("div",{className:"docx-review__summary",children:jsx("span",{className:"docx-review__label","data-kind":y,children:o(bt(y))})})]})})})}Se.docxReviewPart="Balloon";function Wt(e){let i=e.trim().split(/\s+/).filter(Boolean);return i.length===0?"?":i.slice(0,2).map(l=>l[0].toUpperCase()).join("")}function Xt({raw:e}){let i=new Date(e);return Number.isNaN(i.getTime())?null:jsx("time",{className:"docx-review__time",dateTime:e,children:yt.format(i)})}function Oe({className:e,hidden:i,children:l}){let r=Y();return i?null:jsx("div",{className:`docx-review__empty${e?` ${e}`:""}`,"data-testid":"review-empty",children:l??r("review.empty")})}Oe.docxReviewPart="Empty";function Le({className:e,asChild:i,hidden:l,children:r}){let{review:t,authorSlots:o}=H(),n=useContext(I),a=useId();if(l||!n)return null;let d=o.get(n.author)??0,u={className:`docx-review__card${e?` ${e}`:""}`,"data-testid":"review-card","aria-labelledby":`${a}-author ${a}-summary`,"data-kind":n.kind==="revision"?n.revisionKind??"revision":n.kind,...n.kind==="custom"&&n.item.kind==="custom"?{"data-node-name":n.item.name}:{},...n.isActive?{"data-active":""}:{},...n.kind==="comment"&&n.resolved?{"data-resolved":""}:{},style:{"--doc-review-author":`var(--doc-review-author-${d%wt})`},tabIndex:0,role:"button",id:a,onMouseDown:c=>{c.target?.closest("[data-review-selectable]")||c.currentTarget.focus({preventScroll:true});},onClick:()=>t.setActive(n.key),onKeyDown:c=>{c.target===c.currentTarget&&(c.key!=="Enter"&&c.key!==" "||(c.preventDefault(),t.setActive(n.key)));}};return i?jsx(Slot,{...u,children:r}):jsx("div",{...u,children:jsx(Jt,{children:r})})}Le.docxReviewPart="Card";function Jt({children:e}){let i=useContext(I),l=useMemo(()=>Rt(e),[e]),r=(o,n)=>o in l?l[o]:n;if(!i)return null;if(i.kind==="custom"&&i.item.kind==="custom"){let o=i.item;return jsxs(Fragment,{children:[jsxs("div",{className:"docx-review__head",children:[r("Avatar",null),jsx("div",{className:"docx-review__meta",children:r("Author",jsx("span",{className:"docx-review__author","data-testid":"review-custom-title",children:o.title}))})]}),r("Summary",o.detail?jsx("div",{className:"docx-review__summary","data-testid":"review-summary","data-review-selectable":"",children:jsx("span",{className:"docx-review__text",children:o.detail})}):null),l.__extra]})}let t=i.kind==="revision"&&!i.readOnly;return jsxs(Fragment,{children:[jsxs("div",{className:"docx-review__head",children:[r("Avatar",jsx(re,{})),jsxs("div",{className:"docx-review__meta",children:[r("Author",jsx(ie,{})),r("Time",jsx(ae,{}))]}),t||i.kind==="comment"?jsxs("div",{className:"docx-review__actions",children:[r("Accept",jsx(pe,{})),r("Reject",jsx(we,{})),r("Delete",jsx(Re,{}))]}):null]}),r("Summary",jsx(se,{})),r("Replies",jsx(He,{})),r("Reply",jsx(qe,{})),l.__extra]})}function Rt(e){let i={},l=[],r=t=>{if(Array.isArray(t)){t.forEach(r);return}if(!t||typeof t!="object"||!("type"in t)){t&&l.push(t);return}if(t.type===Fragment$1){r(t.props.children);return}let o=t.type.docxReviewPart;o?i[o]=t:l.push(t);};return r(e),l.length>0&&(i.__extra=l),i}function re({className:e,asChild:i,hidden:l,children:r}){let t=useContext(I);if(l||!t||r===void 0&&!t.initials)return null;let o={className:`docx-review__avatar${e?` ${e}`:""}`,"data-testid":"review-avatar","aria-hidden":true};return i?jsx(Slot,{...o,children:r}):jsx("span",{...o,children:r??t.initials})}re.docxReviewPart="Avatar";function ie({className:e,asChild:i,hidden:l,children:r}){let t=useContext(I),o=Y();if(l||!t)return null;let n=t.author||o("comments.unknown"),a={className:`docx-review__author${e?` ${e}`:""}`,"data-testid":"review-author"};return i?jsx(Slot,{...a,children:r}):jsx("span",{...a,children:r??n})}ie.docxReviewPart="Author";function ae({className:e,asChild:i,hidden:l,children:r}){let t=useContext(I);if(l||!t)return null;let o=t.date;if(!o)return null;let n=new Date(o);if(Number.isNaN(n.getTime()))return null;let a={className:`docx-review__time${e?` ${e}`:""}`,"data-testid":"review-time",dateTime:o};return i?jsx(Slot,{...a,children:r}):jsx("time",{...a,children:r??yt.format(n)})}ae.docxReviewPart="Time";var yt=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function se({className:e,asChild:i,hidden:l,children:r}){let t=useContext(I),o=Y();if(l||!t)return null;let n=t.text,a=t.kind!=="revision"?null:o(bt(t.revisionKind)),d=t.kind==="revision"&&t.revisionKind==="replace",u={className:`docx-review__summary${e?` ${e}`:""}`,"data-testid":"review-summary","data-review-selectable":""};return i?jsx(Slot,{...u,children:r}):jsx("div",{...u,children:r??(d?jsxs("span",{className:"docx-review__text",children:[o("review.replaced")," ",jsxs("span",{className:"docx-review__removed",children:['"',t.replacedText,'"']})," ",o("review.replacedWith")," ",jsxs("span",{className:"docx-review__added",children:['"',n,'"']})]}):jsxs(Fragment,{children:[a?jsx("span",{className:"docx-review__label","data-kind":t.kind==="revision"?t.revisionKind:"revision",children:a}):null,n?jsx("span",{className:"docx-review__text",children:n}):null]}))})}se.docxReviewPart="Summary";function bt(e){switch(e){case "insert":return "review.inserted";case "delete":return "review.deleted";case "replace":return "review.replaced";case "moveFrom":return "review.movedFrom";case "moveTo":return "review.movedTo";case "format":return "revisions.runPropertiesChanged";case "paragraphMark":return "revisions.paragraphMarkInserted";default:return "review.structural"}}function pe({className:e,asChild:i,hidden:l,children:r,icon:t}){let{review:o}=H(),n=useContext(I),a=Y();if(l||!n||n.kind!=="revision"||n.readOnly)return null;let d=a("review.accept"),u={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-accept","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.accept(n);}};return i?jsx(Slot,{...u,children:r}):jsx("button",{...u,children:t??r??X(ct)})}pe.docxReviewPart="Accept";function we({className:e,asChild:i,hidden:l,children:r,icon:t}){let{review:o}=H(),n=useContext(I),a=Y();if(l||!n||n.kind!=="revision"||n.readOnly)return null;let d=a("review.reject"),u={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-reject","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.reject(n);}};return i?jsx(Slot,{...u,children:r}):jsx("button",{...u,children:t??r??X(dt)})}we.docxReviewPart="Reject";function Re({className:e,asChild:i,hidden:l,children:r,icon:t}){let{review:o}=H(),n=useContext(I),{t:a}=useTranslation();if(l||!n||n.kind==="custom"||n.kind==="revision"&&n.readOnly)return null;let d=n.kind==="comment"?a("review.deleteComment"):a("review.discardChange"),u={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-delete","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.remove(n);}};return i?jsx(Slot,{...u,children:r}):jsx("button",{...u,children:t??r??X(ut)})}Re.docxReviewPart="Delete";function He({className:e,hidden:i}){let{byId:l}=H(),r=useContext(I);if(i||!r||r.kind==="custom")return null;let t=r.replyIds.map(o=>l.get(o)).filter(o=>o!==void 0);return t.length===0?null:jsx("ol",{className:`docx-review__replies${e?` ${e}`:""}`,children:t.map(o=>jsx(I.Provider,{value:o,children:jsxs("li",{className:"docx-review__reply","data-testid":"review-reply",children:[jsxs("div",{className:"docx-review__head",children:[jsx(re,{}),jsxs("div",{className:"docx-review__meta",children:[jsx(ie,{}),jsx(ae,{})]}),jsx("div",{className:"docx-review__actions",children:jsx(Re,{})})]}),jsx(se,{})]})},o.key))})}He.docxReviewPart="Replies";function qe({className:e,hidden:i,children:l}){let{review:r}=H(),t=useContext(I),o=Y(),[n,a]=useState(""),[d,u]=useState(false),c=useId(),w=useCallback(()=>{if(!t||n.trim().length===0)return;let R=r.reply(t,n.trim());u(!R),R&&a("");},[t,n,r]);return i||!t||!t.isActive?null:l?jsx(Fragment,{children:l}):jsxs("form",{className:`docx-review__reply-box${e?` ${e}`:""}`,onSubmit:R=>{R.preventDefault(),w();},children:[jsx("label",{className:"docx-editor-sr-only",htmlFor:c,children:o("comments.replyPlaceholder")}),jsx("input",{id:c,"data-testid":"review-reply-input",className:"docx-review__input",value:n,placeholder:o("comments.replyPlaceholder"),...d?{"aria-invalid":true,"data-refused":""}:{},onChange:R=>{u(false),a(R.target.value);},onClick:R=>R.stopPropagation(),onKeyDown:R=>{R.key==="Enter"&&(R.preventDefault(),w());}}),jsxs("div",{className:"docx-review__reply-actions",children:[jsx("button",{type:"button","data-testid":"review-reply-cancel",className:"docx-review__text-button",onMouseDown:j,onClick:R=>{R.stopPropagation(),a(""),u(false),r.setActive(null);},children:o("common.cancel")}),jsx("button",{type:"submit","data-testid":"review-reply-submit",className:"docx-review__submit",disabled:n.trim().length===0,children:o("review.reply")})]}),d?jsx("span",{className:"docx-review__refused",role:"alert","data-testid":"review-reply-refused",children:o("review.replyRefused")}):null]})}qe.docxReviewPart="Reply";var en=Object.assign(Gt,{List:fe,Empty:Oe,Card:Le,Avatar:re,Author:ie,Time:ae,Summary:se,Accept:pe,Reject:we,Delete:Re,Replies:He,Reply:qe,Markers:Ae,AddComment:Me,Draft:De,Balloon:Se});function le(e){let i=useDocxEditor();return useMemo(()=>e||(i?.getCustomNodeDefinitions()??[]).filter(j$1),[e,i])}var rn=".docx-content-control-boundary";function J(e,i){let{node:l,definition:r,controlId:t}=e,o=t?i?.getReviewItems().find(d=>d.kind==="custom"&&d.item.id===t):void 0;if(o&&o.kind==="custom"){let d=o.item;return {...l,attrs:d.attrs,text:d.text,...d.data===void 0?{}:{data:d.data},...t?{nodeId:t}:{}}}let n=t?an(i,t,r):void 0,a=r.fromDocx?r.fromDocx({attrs:l.attrs,text:"",...n===void 0?{}:{data:n}}):l.attrs;return a===null?null:{...l,attrs:a,...n===void 0?{}:{data:n},...t?{nodeId:t}:{}}}function an(e$1,i,l){let r=e$1?.surface;if(!r)return;let t=r.session.part(),o=customNodePayloadsByControl(r.session.currentPackage(),t.name).get(i);if(!o)return;let n=e(l.schema,o.data);return n.ok?n.value:void 0}function ee(e,i){let l=e?.closest?.(rn),r=l?.closest(".docx-content-control-chrome"),t=r?.getAttribute("data-tag"),o=t?c(t):null;if(!l||!o||!t)return null;let n=i.find(a=>a.tagPrefix===o.prefix&&a.name===o.name);return n?{node:{name:o.name,attrs:o.attrs,tag:t,rect:l.getBoundingClientRect()},definition:n,controlId:r?.getAttribute("data-docx-content-control")??null}:null}var $e=".docx-content-control-boundary",ln=e=>{if(!k.test(e.tagPrefix)||!k.test(e.name))return [];let i=`${e.tagPrefix}:${e.name}`;return [`.docx-content-control-chrome[data-tag="${i}"]`,`.docx-content-control-chrome[data-tag^="${i}?"]`]};function cn(e){let{onNodeClick:i,onNodeHover:l}=e,r=useDocxEditor(),t=le(e.nodes);return useEffect(()=>{let o=document.createElement("style"),n=[];for(let a of t){let d=ln(a);if(d.length===0)continue;let u=a.chrome?.color!==void 0&&CSS.supports("color",a.chrome.color)?a.chrome.color:"#2563eb";n.push(`${d.map(c=>`${c} ${$e}`).join(", ")} {`," pointer-events: auto !important;"," opacity: 1;"," border: none;",` background: color-mix(in srgb, ${u} 12%, transparent);`," border-radius: 6px;"," cursor: default;","}");}return o.textContent=n.join(`
|
|
2
|
-
`),document.head.append(o),()=>o.remove()},[
|
|
1
|
+
import {j as j$1,e,c,q,k}from'../chunk-PWNAGXXX.js';export{o as reviewModule}from'../chunk-PWNAGXXX.js';import {createContext,useMemo,useEffect,useCallback,useRef,useContext,useState,isValidElement,cloneElement,useId,useSyncExternalStore,Fragment as Fragment$1}from'react';import {useDocxEditor,useEditorState,useTranslation,ReviewRailContext,Slot,useContextMenuTarget,ContextMenuItem}from'@docx-editor.dev/react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';import {customNodePayloadsByControl}from'@docx-editor.dev/core/store';var $t=new Set(["List","Markers","AddComment","Draft","Balloon"]),Ht=new Set(["Card","Empty"]);function Ie(e,r){let l=r==="root"?$t:Ht,s={},n=[],o=t=>{if(Array.isArray(t)){for(let d of t)o(d);return}if(!isValidElement(t)){t!=null&&t!==false&&n.push(t);return}if(t.type===Fragment$1){o(t.props.children);return}let i=t.type.docxReviewPart;i&&l.has(i)?s[i]=t:n.push(t);};return o(e),{parts:s,rest:n}}function at(e,r){if(!r)return e;let l=e.props.className;return cloneElement(e,{className:`${r}${l?` ${l}`:""}`})}function fe(e){let r=useDocxEditor();return lt(r,e)}function lt(e,r){let l=useCallback(u=>{if(!e)return ()=>{};let x=e.on("change",u),I=e.on("selectionChange",u),N=e.on("error",u);return ()=>{x(),I(),N();}},[e]),s=useSyncExternalStore(l,()=>e?`${e.getReviewRevision()}`:"none",()=>"none"),n=useMemo(()=>e?e.getReviewItems(r).filter(u=>u.item.kind!=="custom"||u.item.carded):[],[e,s,r]),o=useMemo(()=>n.find(u=>u.isActive)?.key??null,[n]),t=useCallback((u,x)=>e?e.setActiveReviewItem(u,x).ok:false,[e]),i=useCallback(u=>!e||u.kind!=="revision"||u.readOnly?false:e.acceptReviewItem(u.key).ok,[e]),d=useCallback(u=>!e||u.kind!=="revision"||u.readOnly?false:e.rejectReviewItem(u.key).ok,[e]),m=useCallback(u=>!e||u.kind==="custom"||u.kind==="revision"&&u.readOnly?false:e.deleteReviewItem(u.key).ok,[e]),c=useCallback((u,x,I)=>x.trim().length===0||!e?false:e.replyToReviewItem(u.key,x,I).ok,[e]),p=useMemo(()=>e?e.getSelectionPlacement()?.anchorY??null:null,[e,s]),R=useCallback((u,x)=>u.trim().length===0||!e?false:e.addComment(u,x).ok,[e]),y=useMemo(()=>e?e.isReviewPaneOpen():true,[e,s]),w=useCallback(u=>{!e||e.isReviewPaneOpen()===u||e.exec({type:"toggleReviewPane"});},[e]);return useMemo(()=>({items:n,activeKey:o,setActive:t,accept:i,reject:d,remove:m,reply:c,selectionAnchorY:p,comment:R,paneOpen:y,setPaneOpen:w,ready:e!==null&&!e.snapshot().isLoading&&e.snapshot().parseError===null}),[n,o,t,i,d,m,c,p,R,y,w,e])}function Kt(e,r,l={}){let s=l.gap??8,n=l.scale??1,o=l.defaultHeight??0;return useMemo(()=>{let t=new Map,i=Number.NEGATIVE_INFINITY;for(let d of e){let m=d.anchorY===null?Number.isFinite(i)?i:0:Math.max(d.anchorY,i);t.set(d.key,m),i=m+((r.get(d.key)??o)+s)/n;}return t},[e,r,s,n,o])}var ee=e=>jsx("svg",{viewBox:"0 -960 960 960",width:16,height:16,"aria-hidden":"true",focusable:"false",children:jsx("path",{d:e,fill:"currentColor"})}),ut="M440-400h80v-120h120v-80H520v-120h-80v120H320v80h120v120ZM80-80v-720q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H240L80-80Zm126-240h594v-480H160v525l46-45Zm-46 0v-480 480Z",ct="M240-400h480v-80H240v80Zm0-120h480v-80H240v80Zm0-120h480v-80H240v80ZM880-80 720-240H160q-33 0-56.5-23.5T80-320v-480q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v720ZM160-320h594l46 45v-525H160v480Zm0 0v-480 480Z",mt="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z",vt="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z",ft="M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z",Yt="M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z",Zt="M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 78t85.5 30q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-341q0 86-61.5 133.5T486-160ZM80-520v-80h800v80H80Zm402-360q66 0 116 30t74 84l-88 38q-11-28-38.5-47T480-794q-42 0-72 19t-30 51q0 15 6 27t18 22H272q-6-13-9-27t-3-30q0-70 55-114t167-44Z",Bt="M360-160q-83 0-141.5-58.5T160-360v-360q0-83 58.5-141.5T360-920q83 0 141.5 58.5T560-720v360q0 83-58.5 141.5T360-160Zm0-80q50 0 85-35t35-85v-360q0-50-35-85t-85-35q-50 0-85 35t-35 85v360q0 50 35 85t85 35Zm300 80q29 0 49.5-20.5T730-230q0-22-12.5-40T684-296l-64-32v-232l100 100q23 23 51.5 35.5T832-412v-80q-17 0-32-6.5T773-517L633-657q-12-12-27.5-17.5T573-680h-13v520h100ZM360-720Z",Ft="M580-360q-25 0-42.5-17.5T520-420v-160q0-25 17.5-42.5T580-640h160q25 0 42.5 17.5T800-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T720-320v-40H580Zm-360 0q-25 0-42.5-17.5T160-420v-160q0-25 17.5-42.5T220-640h160q25 0 42.5 17.5T440-580v260q0 66-47 113t-113 47v-80q33 0 56.5-23.5T360-320v-40H220Z";function pt(e){if(e.kind==="comment")return ct;if(e.kind==="custom")return e.item.icon??Ft;switch(e.revisionKind){case "insert":case "moveTo":return Yt;case "delete":case "moveFrom":return Zt;case "format":return Bt;default:return ct}}var Gt=e=>e.isLoading||e.parseError!==null||e.pageSetup==null,ke=createContext(null),P=createContext(null);function Wt(){return useContext(P)}var Xt={scale:96/72,top:0,left:null},Jt=16,we="\0compose",Rt=600,bt=8,en=72,tn=64,nn=480,on=Object.freeze({placement:false});function Me(e,r){return e.kind!=="comment"?false:e.parentId!==void 0?r.has(e.parentId):e.parentRevisionId!==void 0?r.has(e.parentRevisionId):false}function De(e){return new Set(e.map(r=>r.id))}function j(e){let r=e.target?.tagName;r==="INPUT"||r==="SELECT"||r==="TEXTAREA"||e.preventDefault();}function $(){let e=useContext(ke);return e||rn}function Y(){let{t:e}=useContext(ke)??{},{t:r}=useTranslation();return useCallback(l=>e?.(l)??r(l),[e,r])}var rn={t:void 0,cardClassName:void 0,review:{items:[],activeKey:null,setActive:()=>false,accept:()=>false,reject:()=>false,remove:()=>false,reply:()=>false,selectionAnchorY:null,comment:()=>false,paneOpen:true,setPaneOpen:()=>{},ready:false},allItems:[],authorSlots:new Map,byId:new Map,measure:()=>{},beginDraft:()=>{},endDraft:()=>{}};function sn({className:e,furniture:r,asChild:l,hidden:s,children:n,t:o,card:t,preset:i=true,stack:d=true,gap:m=8,filter:c,structural:p=false,formatting:R=false}){let y=useDocxEditor(),w=useEditorState(Gt),u=useMemo(()=>{let f=[];return p||f.push("structural"),R||f.push("format"),f.length>0?f:void 0},[p,R]),x=useMemo(()=>u?{excludeRevisionKinds:u}:void 0,[u]);useEffect(()=>(y?.setReviewActivationExclusions(u??null),()=>y?.setReviewActivationExclusions(null)),[y,u]);let I=fe(on),N=fe(x),C=N.setPaneOpen,{t:E}=useTranslation(),T=useCallback(f=>o?.(f)??E(f),[o,E]),D=useRef(null),me=useContext(ReviewRailContext);useEffect(()=>me?.register(),[me]);let Z=N.paneOpen,k=useMemo(()=>c?N.items.filter(f=>c(f)):N.items,[N.items,c]),Be=useMemo(()=>{let f=new Map;for(let v of k)v.author&&!f.has(v.author)&&f.set(v.author,f.size);return f},[k]),Fe=useMemo(()=>{let f=new Map;for(let v of k)f.set(v.id,v);return f},[k]),[je,Et]=useState(()=>new Map),he=useCallback((f,v)=>{v<=0||Et(b=>{if(b.get(f)===v)return b;let _=new Map(b);return _.set(f,v),_});},[]),ge=useRef(new WeakMap),oe=useRef(null),Ue=useCallback((f,v)=>{!f||typeof ResizeObserver>"u"||(he(v,f.offsetHeight),oe.current??(oe.current=new ResizeObserver(b=>{for(let _ of b){let g=ge.current.get(_.target);g&&he(g,_.target.offsetHeight);}})),ge.current.get(f)!==v&&(ge.current.set(f,v),oe.current.observe(f)));},[he]);useEffect(()=>()=>oe.current?.disconnect(),[]);let[S,Tt]=useState(Xt);useEffect(()=>{let f=D.current;if(!y||!f)return;let v=f.offsetParent,b=v?.querySelector(".docx-paginated-surface")??null,_=()=>{Tt(M=>{let H=b&&v?b.getBoundingClientRect():null,L=H&&v?v.getBoundingClientRect():null,q={scale:y.getRenderScale(),top:H&&L&&v?H.top-L.top-v.clientTop+v.scrollTop:0,left:H&&L&&v?H.right-L.left-v.clientLeft+v.scrollLeft+Jt:null};return M.scale===q.scale&&M.top===q.top&&M.left===q.left?M:q});};_();let g=new ResizeObserver(_);return v&&g.observe(v),b&&g.observe(b),()=>g.disconnect()},[y,k,w,s]),useEffect(()=>{let f=D.current;if(!y||!f)return;let v=b=>{let _=b.target;if(!(_ instanceof Node)||f.contains(_))return;let g=f.offsetParent;!g||!g.contains(_)||g.querySelector(".docx-paginated-surface")?.contains(_)||y.setActiveReviewItem(null);};return document.addEventListener("mousedown",v,true),()=>document.removeEventListener("mousedown",v,true)},[y,w,s]);let[Ne,It]=useState(null);useEffect(()=>{let f=D.current,v=f?.offsetParent;if(!v)return;let b=0,_=()=>{b=0,It(L=>{let q=v.scrollTop-Rt,ve=v.scrollTop+v.clientHeight+Rt;return L&&L.top===q&&L.bottom===ve?L:{top:q,bottom:ve}});},g=0,M=()=>{b===0&&(b=requestAnimationFrame(_)),f?.setAttribute("data-scrolling",""),window.clearTimeout(g),g=window.setTimeout(()=>f?.removeAttribute("data-scrolling"),150);};_(),v.addEventListener("scroll",M,{passive:true});let H=new ResizeObserver(M);return H.observe(v),()=>{b!==0&&cancelAnimationFrame(b),window.clearTimeout(g),v.removeEventListener("scroll",M),H.disconnect();}},[y,w,s]);let[B,_e]=useState(null),ze=useCallback(()=>{y&&(y.surface?.retainSelection(),C(true),_e(y.getSelectionPlacement()?.anchorY??null));},[y,C]),Qe=useCallback(()=>{y?.surface?.releaseSelection(),_e(null),y?.focus();},[y]);useEffect(()=>{Z||B===null||(y?.surface?.releaseSelection(),_e(null));},[Z,B,y]);let Ge=B??N.selectionAnchorY,U=useMemo(()=>{let f=De(k);return k.filter(v=>!Me(v,f))},[k]),We=useMemo(()=>{if(B===null)return U;let f=U.findIndex(b=>b.anchorY!==null&&b.anchorY>B),v={key:we,anchorY:B};return f===-1?[...U,v]:[...U.slice(0,f),v,...U.slice(f)]},[U,B]),Xe=useMemo(()=>{let f=new Map(je);for(let v of U){if(f.has(v.key))continue;let b=v.text.length+(v.kind==="revision"?v.replacedText?.length??0:0),_=Math.min(6,Math.max(1,Math.ceil(b/36)));f.set(v.key,64+_*20);}return f},[je,U]),{stacked:Ce,collapsedKeys:Je}=useMemo(()=>{let f=S.scale,v=new Map,b=new Set,_=Number.NEGATIVE_INFINITY;for(let g of We){let M=g.anchorY===null?Number.isFinite(_)?_:0:Math.max(g.anchorY,_);v.set(g.key,M);let H=g.anchorY===null?0:(M-g.anchorY)*f,L="isActive"in g&&g.isActive,q=H>nn&&!L&&g.key!==we;q&&b.add(g.key);let ve=q?tn:Xe.get(g.key)??en;_=M+(ve+m)/f;}return {stacked:v,collapsedKeys:b}},[We,Xe,m,S.scale]),Ee=Ge===null?null:S.top+(Ce.get(we)??Ge)*S.scale,et=t?.className,Pt=useMemo(()=>({t:o,cardClassName:et,review:{...N,items:k},allItems:I.items,authorSlots:Be,byId:Fe,measure:Ue,beginDraft:ze,endDraft:Qe}),[o,et,N,I.items,k,Be,Fe,Ue,ze,Qe]);if(s||w)return null;let tt={ref:D,className:`docx-review${e?` ${e}`:""}`,"data-testid":"review-rail","data-count":k.length,"data-open":Z?"":void 0,role:"complementary","aria-label":T("review.ariaLabel"),onMouseDown:j,style:S.left===null?void 0:{left:S.left,right:"auto"}},X=typeof n=="function"?{parts:{},rest:n}:Ie(n,"root"),G=X.parts,re=(f,v)=>{if(!(f in G))return v;let b=G[f];return !isValidElement(b)||!isValidElement(v)?b:cloneElement(b,{...v.props,...b.props})},nt=jsxs(Fragment,{children:[i||"AddComment"in G?re("AddComment",jsx(Oe,{top:Ee,drafting:B!==null})):null,!Z||B===null||Ee===null||!i&&!("Draft"in G)?null:re("Draft",jsx(Le,{top:Ee})),i||"Balloon"in G?re("Balloon",jsx($e,{})):null]}),At=jsx(Re,{stack:d,positions:Ce,collapsed:Je,scale:S.scale,offset:S.top,window:Ne,children:X.rest}),kt=jsx(Se,{scale:S.scale,offset:S.top,window:Ne}),Mt=Z?i||"List"in G?re("List",At):typeof X.rest=="function"?null:X.rest:i||"Markers"in G?re("Markers",kt):typeof X.rest=="function"?null:X.rest;return jsx(ke.Provider,{value:Pt,children:l&&isValidElement(n)?jsx(Slot,{...tt,children:cloneElement(n,void 0,n.props.children,i?jsx(Re,{stack:d,positions:Ce,collapsed:Je,scale:S.scale,offset:S.top,window:Ne}):null,nt)}):jsxs("aside",{...tt,children:[Z&&r!==void 0?jsx("div",{className:"docx-review__furniture","data-testid":"review-furniture",children:r}):null,Mt,nt]})})}function Re({stack:e=true,positions:r,collapsed:l,scale:s=1,offset:n=0,window:o=null,children:t,className:i,hidden:d}){let{review:m,measure:c,cardClassName:p}=$();if(d)return null;let R=typeof t=="function"?null:Ie(t,"list"),y=De(m.items),w=m.items.filter(u=>!Me(u,y));return w.length===0?typeof t=="function"?null:R?.parts.Empty??jsx(He,{}):jsx("div",{className:`docx-review__list${i?` ${i}`:""}`,children:w.map(u=>{let x=e?r?.get(u.key)??u.anchorY:u.anchorY,I=x==null?null:n+x*s;if(I!==null&&o&&(I<o.top||I>o.bottom))return null;let N=I===null?{}:{position:"absolute",top:I};return jsx(P.Provider,{value:u,children:jsx("div",{className:"docx-review__slot",style:N,...l?.has(u.key)?{"data-collapsed":""}:{},ref:C=>{c(C,u.key);},children:typeof t=="function"?t(u):R?.parts.Card&&isValidElement(R.parts.Card)?at(R.parts.Card,p):jsx(qe,{...p?{className:p}:{},children:R?.rest})})},u.key)})})}Re.docxReviewPart="List";function Se({scale:e=1,offset:r=0,window:l=null,className:s,hidden:n,icon:o}){let{review:t}=$(),i=Y();if(n)return null;let d=De(t.items),m=t.items.filter(c=>!Me(c,d));return jsx("div",{className:`docx-review__markers${s?` ${s}`:""}`,children:m.map(c=>{if(c.anchorY===null)return null;let p=r+c.anchorY*e;return l&&(p<l.top||p>l.bottom)?null:jsx("button",{type:"button",className:"docx-review__marker","data-testid":"review-marker","data-kind":c.kind==="revision"?c.revisionKind:c.kind,style:{position:"absolute",top:p},title:c.author?`${c.author}: ${c.text}`:c.text,"aria-label":`${i("review.showPane")}: ${c.author?`${c.author}. `:""}${c.text}`,onMouseDown:j,onClick:()=>{t.setPaneOpen(true),t.setActive(c.key);},children:(typeof o=="function"?o(c):o)??ee(pt(c))},c.key)})})}Se.docxReviewPart="Markers";function Oe({top:e=null,drafting:r=false,className:l,hidden:s,children:n}){let{beginDraft:o}=$(),t=Y();if(s||r||e===null)return null;let i={type:"button",className:`docx-review__add${l?` ${l}`:""}`,"data-testid":"review-add-comment",style:{position:"absolute",top:e},"aria-label":t("common.comment"),title:t("common.comment"),onMouseDown:j,onClick:o};return n?jsx(Slot,{...i,children:n}):jsx("button",{...i,children:ee(ut)})}Oe.docxReviewPart="AddComment";function Le({top:e=0,className:r,hidden:l}){let{review:s,endDraft:n,measure:o}=$(),t=Y(),[i,d]=useState(""),[m,c]=useState(false),p=useRef(null),R=useId();useEffect(()=>{p.current?.focus({preventScroll:true});},[]);let y=useCallback(()=>{if(i.trim().length===0)return;let w=s.comment(i.trim());c(!w),w&&(d(""),n());},[i,s,n]);return l?null:jsx("div",{className:`docx-review__slot${r?` ${r}`:""}`,style:{position:"absolute",top:e},ref:w=>{o(w,we);},children:jsx("div",{className:"docx-review__card","data-testid":"review-draft","data-draft":"",children:jsxs("form",{className:"docx-review__reply-box",onSubmit:w=>{w.preventDefault(),y();},children:[jsx("label",{className:"docx-editor-sr-only",htmlFor:R,children:t("comments.addComment")}),jsx("input",{id:R,ref:p,"data-testid":"review-draft-input",className:"docx-review__input",value:i,placeholder:t("comments.addComment"),...m?{"aria-invalid":true}:{},onChange:w=>{c(false),d(w.target.value);},onKeyDown:w=>{if(w.key==="Escape"){w.preventDefault(),n();return}w.key==="Enter"&&(w.preventDefault(),y());}}),jsxs("div",{className:"docx-review__reply-actions",children:[jsx("button",{type:"button","data-testid":"review-draft-cancel",className:"docx-review__text-button",onMouseDown:j,onClick:n,children:t("common.cancel")}),jsx("button",{type:"submit","data-testid":"review-draft-submit",className:"docx-review__submit",disabled:i.trim().length===0,children:t("common.comment")})]}),m?jsx("span",{className:"docx-review__refused",role:"alert",children:t("review.commentRefused")}):null]})})})}Le.docxReviewPart="Draft";function $e({className:e,hidden:r}){let{review:l,allItems:s,authorSlots:n}=$(),o=Y(),t=useRef(null),[i,d]=useState(null),m=useRef(false);m.current=i!==null,useEffect(()=>{let w=t.current,u=w?.closest(".docx-review"),x=u?.closest(".docx-editor__scroll-container")??u?.offsetParent;if(!w||!u||!x)return;let I=(C,E)=>{let T=u.getBoundingClientRect(),D=C.getBoundingClientRect(),me=C.ownerDocument.defaultView?.innerHeight??1/0,Z=Number(C.dataset.start),k=Number(C.dataset.end);d({revisionId:C.dataset.revisionId,author:C.dataset.revisionAuthor??"",...C.dataset.revisionDate!==void 0?{date:C.dataset.revisionDate}:{},...C.dataset.revisionKind!==void 0?{kind:C.dataset.revisionKind}:{},structuralSite:E,...C.dataset.paragraphId!==void 0?{paragraphId:C.dataset.paragraphId}:{},...Number.isFinite(Z)?{start:Z}:{},...Number.isFinite(k)?{end:k}:{},left:D.left-T.left,top:D.top-T.top,bottom:D.bottom-T.top,above:D.bottom+220>me});},N=C=>{let E=C.target;if(!(E instanceof Element)||w.contains(E))return;let T=E.closest("[data-revision-id]");if(T instanceof HTMLElement&&x.contains(T)){let D=T.classList.contains("docx-table-row--revision");if(T.dataset.revisionKind==="format"||D){I(T,D);return}}m.current&&d(null);};return x.addEventListener("pointerdown",N,true),x.addEventListener("mousedown",N,true),()=>{x.removeEventListener("pointerdown",N,true),x.removeEventListener("mousedown",N,true);}},[]);let c=useMemo(()=>{if(!i)return null;let w=null,u=false,x=null,I=false,N=null,C=false;for(let E of s)if(!(E.kind!=="revision"||E.item.kind!=="revision")){for(let T of E.item.addresses)if(T.id===i.revisionId){if(T.author===i.author){if(T.date===i.date)return E;w===null?w=E:w!==E&&(u=true);}x===null?x=E:x!==E&&(I=true);}if(i.paragraphId!==void 0&&i.start!==void 0&&i.end!==void 0&&(E.revisionKind==="format"||E.revisionKind==="structural")){for(let T of E.item.ranges)if(T.start.paragraphId===i.paragraphId&&T.start.offset<i.end&&T.end.offset>i.start){N===null?N=E:N!==E&&(C=true);break}}}return w!==null&&!u?w:x!==null&&!I?x:N!==null&&!C?N:null},[s,i]),p=c&&(c.revisionKind==="format"||c.revisionKind==="structural")?c:null,R=useRef(false);if(useEffect(()=>{if(p){R.current=true;return}R.current&&(R.current=false,d(null));},[p]),r)return null;let y=i?.kind==="format"?"format":"structural";return jsx("div",{ref:t,className:`docx-review__balloon-root${e?` ${e}`:""}`,children:i===null?null:jsx("div",{className:"docx-review__balloon","data-testid":"review-balloon",style:{left:i.left,top:i.above?i.top-6:i.bottom+6,transform:i.above?"translateY(-100%)":void 0},onMouseDown:j,children:p?jsx(P.Provider,{value:p,children:jsxs("div",{className:"docx-review__card","data-testid":"review-balloon-card","data-kind":p.revisionKind??"revision",style:{"--doc-review-author":`var(--doc-review-author-${(n.get(p.author)??0)%bt})`},onClick:()=>l.setActive(p.key),children:[jsxs("div",{className:"docx-review__head",children:[jsx(se,{}),jsxs("div",{className:"docx-review__meta",children:[jsx(ae,{}),jsx(le,{})]}),p.kind==="revision"&&!p.readOnly?jsxs("div",{className:"docx-review__actions",children:[jsx(ye,{}),jsx(be,{})]}):null]}),jsx(ce,{})]})}):jsxs("div",{className:"docx-review__card","data-testid":"review-balloon-card","data-kind":y,children:[jsxs("div",{className:"docx-review__head",children:[jsx("span",{className:"docx-review__avatar","aria-hidden":"true",children:an(i.author)}),jsxs("div",{className:"docx-review__meta",children:[jsx("span",{className:"docx-review__author",children:i.author||o("comments.unknown")}),i.date?jsx(ln,{raw:i.date}):null]})]}),jsx("div",{className:"docx-review__summary",children:jsx("span",{className:"docx-review__label","data-kind":y,children:o(ht(y))})})]})})})}$e.docxReviewPart="Balloon";function an(e){let r=e.trim().split(/\s+/).filter(Boolean);return r.length===0?"?":r.slice(0,2).map(l=>l[0].toUpperCase()).join("")}function ln({raw:e}){let r=new Date(e);return Number.isNaN(r.getTime())?null:jsx("time",{className:"docx-review__time",dateTime:e,children:xt.format(r)})}function He({className:e,hidden:r,children:l}){let s=Y();return r?null:jsx("div",{className:`docx-review__empty${e?` ${e}`:""}`,"data-testid":"review-empty",children:l??s("review.empty")})}He.docxReviewPart="Empty";function qe({className:e,asChild:r,hidden:l,children:s}){let{review:n,authorSlots:o}=$(),t=useContext(P),i=useId();if(l||!t)return null;let d=o.get(t.author)??0,m={className:`docx-review__card${e?` ${e}`:""}`,"data-testid":"review-card","aria-labelledby":`${i}-author ${i}-summary`,"data-kind":t.kind==="revision"?t.revisionKind??"revision":t.kind,...t.kind==="custom"&&t.item.kind==="custom"?{"data-node-name":t.item.name}:{},...t.isActive?{"data-active":""}:{},...t.kind==="comment"&&t.resolved?{"data-resolved":""}:{},style:{"--doc-review-author":`var(--doc-review-author-${d%bt})`},tabIndex:0,role:"button",id:i,onMouseDown:c=>{c.target?.closest("[data-review-selectable]")||c.currentTarget.focus({preventScroll:true});},onClick:()=>n.setActive(t.key),onKeyDown:c=>{c.target===c.currentTarget&&(c.key!=="Enter"&&c.key!==" "||(c.preventDefault(),n.setActive(t.key)));}};return r?jsx(Slot,{...m,children:s}):jsx("div",{...m,children:jsx(cn,{children:s})})}qe.docxReviewPart="Card";function cn({children:e}){let r=useContext(P),l=useMemo(()=>dn(e),[e]),s=(o,t)=>o in l?l[o]:t;if(!r)return null;if(r.kind==="custom"&&r.item.kind==="custom"){let o=r.item;return jsxs(Fragment,{children:[jsxs("div",{className:"docx-review__head",children:[s("Avatar",null),jsx("div",{className:"docx-review__meta",children:s("Author",jsx("span",{className:"docx-review__author","data-testid":"review-custom-title",children:o.title}))})]}),s("Summary",o.detail?jsx("div",{className:"docx-review__summary","data-testid":"review-summary","data-review-selectable":"",children:jsx("span",{className:"docx-review__text",children:o.detail})}):null),l.__extra]})}let n=r.kind==="revision"&&!r.readOnly;return jsxs(Fragment,{children:[jsxs("div",{className:"docx-review__head",children:[s("Avatar",jsx(se,{})),jsxs("div",{className:"docx-review__meta",children:[s("Author",jsx(ae,{})),s("Time",jsx(le,{}))]}),n||r.kind==="comment"?jsxs("div",{className:"docx-review__actions",children:[s("Accept",jsx(ye,{})),s("Reject",jsx(be,{})),s("Delete",jsx(xe,{}))]}):null]}),s("Summary",jsx(ce,{})),s("Replies",jsx(Ve,{})),s("Reply",jsx(Ke,{})),l.__extra]})}function dn(e){let r={},l=[],s=n=>{if(Array.isArray(n)){n.forEach(s);return}if(!n||typeof n!="object"||!("type"in n)){n&&l.push(n);return}if(n.type===Fragment$1){s(n.props.children);return}let o=n.type.docxReviewPart;o?r[o]=n:l.push(n);};return s(e),l.length>0&&(r.__extra=l),r}function se({className:e,asChild:r,hidden:l,children:s}){let n=useContext(P);if(l||!n||s===void 0&&!n.initials)return null;let o={className:`docx-review__avatar${e?` ${e}`:""}`,"data-testid":"review-avatar","aria-hidden":true};return r?jsx(Slot,{...o,children:s}):jsx("span",{...o,children:s??n.initials})}se.docxReviewPart="Avatar";function ae({className:e,asChild:r,hidden:l,children:s}){let n=useContext(P),o=Y();if(l||!n)return null;let t=n.author||o("comments.unknown"),i={className:`docx-review__author${e?` ${e}`:""}`,"data-testid":"review-author"};return r?jsx(Slot,{...i,children:s}):jsx("span",{...i,children:s??t})}ae.docxReviewPart="Author";function le({className:e,asChild:r,hidden:l,children:s}){let n=useContext(P);if(l||!n)return null;let o=n.date;if(!o)return null;let t=new Date(o);if(Number.isNaN(t.getTime()))return null;let i={className:`docx-review__time${e?` ${e}`:""}`,"data-testid":"review-time",dateTime:o};return r?jsx(Slot,{...i,children:s}):jsx("time",{...i,children:s??xt.format(t)})}le.docxReviewPart="Time";var xt=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function ce({className:e,asChild:r,hidden:l,children:s}){let n=useContext(P),o=Y();if(l||!n)return null;let t=n.text,i=n.kind!=="revision"?null:o(ht(n.revisionKind)),d=n.kind==="revision"&&n.revisionKind==="replace",m={className:`docx-review__summary${e?` ${e}`:""}`,"data-testid":"review-summary","data-review-selectable":""};return r?jsx(Slot,{...m,children:s}):jsx("div",{...m,children:s??(d?jsxs("span",{className:"docx-review__text",children:[o("review.replaced")," ",jsxs("span",{className:"docx-review__removed",children:['"',n.replacedText,'"']})," ",o("review.replacedWith")," ",jsxs("span",{className:"docx-review__added",children:['"',t,'"']})]}):jsxs(Fragment,{children:[i?jsx("span",{className:"docx-review__label","data-kind":n.kind==="revision"?n.revisionKind:"revision",children:i}):null,t?jsx("span",{className:"docx-review__text",children:t}):null]}))})}ce.docxReviewPart="Summary";function ht(e){switch(e){case "insert":return "review.inserted";case "delete":return "review.deleted";case "replace":return "review.replaced";case "moveFrom":return "review.movedFrom";case "moveTo":return "review.movedTo";case "format":return "revisions.runPropertiesChanged";case "paragraphMark":return "revisions.paragraphMarkInserted";default:return "review.structural"}}function ye({className:e,asChild:r,hidden:l,children:s,icon:n}){let{review:o}=$(),t=useContext(P),i=Y();if(l||!t||t.kind!=="revision"||t.readOnly)return null;let d=i("review.accept"),m={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-accept","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.accept(t);}};return r?jsx(Slot,{...m,children:s}):jsx("button",{...m,children:n??s??ee(mt)})}ye.docxReviewPart="Accept";function be({className:e,asChild:r,hidden:l,children:s,icon:n}){let{review:o}=$(),t=useContext(P),i=Y();if(l||!t||t.kind!=="revision"||t.readOnly)return null;let d=i("review.reject"),m={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-reject","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.reject(t);}};return r?jsx(Slot,{...m,children:s}):jsx("button",{...m,children:n??s??ee(vt)})}be.docxReviewPart="Reject";function xe({className:e,asChild:r,hidden:l,children:s,icon:n}){let{review:o}=$(),t=useContext(P),{t:i}=useTranslation();if(l||!t||t.kind==="custom"||t.kind==="revision"&&t.readOnly)return null;let d=t.kind==="comment"?i("review.deleteComment"):i("review.discardChange"),m={type:"button",className:`docx-review__action${e?` ${e}`:""}`,"data-testid":"review-delete","aria-label":d,title:d,onMouseDown:j,onClick:c=>{c.stopPropagation(),o.remove(t);}};return r?jsx(Slot,{...m,children:s}):jsx("button",{...m,children:n??s??ee(ft)})}xe.docxReviewPart="Delete";function Ve({className:e,hidden:r}){let{byId:l}=$(),s=useContext(P);if(r||!s||s.kind==="custom")return null;let n=s.replyIds.map(o=>l.get(o)).filter(o=>o!==void 0);return n.length===0?null:jsx("ol",{className:`docx-review__replies${e?` ${e}`:""}`,children:n.map(o=>jsx(P.Provider,{value:o,children:jsxs("li",{className:"docx-review__reply","data-testid":"review-reply",children:[jsxs("div",{className:"docx-review__head",children:[jsx(se,{}),jsxs("div",{className:"docx-review__meta",children:[jsx(ae,{}),jsx(le,{})]}),jsx("div",{className:"docx-review__actions",children:jsx(xe,{})})]}),jsx(ce,{})]})},o.key))})}Ve.docxReviewPart="Replies";function Ke({className:e,hidden:r,children:l}){let{review:s}=$(),n=useContext(P),o=Y(),[t,i]=useState(""),[d,m]=useState(false),c=useId(),p=useCallback(()=>{if(!n||t.trim().length===0)return;let R=s.reply(n,t.trim());m(!R),R&&i("");},[n,t,s]);return r||!n||!n.isActive?null:l?jsx(Fragment,{children:l}):jsxs("form",{className:`docx-review__reply-box${e?` ${e}`:""}`,onSubmit:R=>{R.preventDefault(),p();},children:[jsx("label",{className:"docx-editor-sr-only",htmlFor:c,children:o("comments.replyPlaceholder")}),jsx("input",{id:c,"data-testid":"review-reply-input",className:"docx-review__input",value:t,placeholder:o("comments.replyPlaceholder"),...d?{"aria-invalid":true,"data-refused":""}:{},onChange:R=>{m(false),i(R.target.value);},onClick:R=>R.stopPropagation(),onKeyDown:R=>{R.key==="Enter"&&(R.preventDefault(),p());}}),jsxs("div",{className:"docx-review__reply-actions",children:[jsx("button",{type:"button","data-testid":"review-reply-cancel",className:"docx-review__text-button",onMouseDown:j,onClick:R=>{R.stopPropagation(),i(""),m(false),s.setActive(null);},children:o("common.cancel")}),jsx("button",{type:"submit","data-testid":"review-reply-submit",className:"docx-review__submit",disabled:t.trim().length===0,children:o("review.reply")})]}),d?jsx("span",{className:"docx-review__refused",role:"alert","data-testid":"review-reply-refused",children:o("review.replyRefused")}):null]})}Ke.docxReviewPart="Reply";var un=Object.assign(sn,{List:Re,Empty:He,Card:qe,Avatar:se,Author:ae,Time:le,Summary:ce,Accept:ye,Reject:be,Delete:xe,Replies:Ve,Reply:Ke,Markers:Se,AddComment:Oe,Draft:Le,Balloon:$e});function de(e){let r=useDocxEditor();return useMemo(()=>e||(r?.getCustomNodeDefinitions()??[]).filter(j$1),[e,r])}var pn=".docx-content-control-boundary";function te(e,r){let{node:l,definition:s,controlId:n}=e,o=n?r?.getReviewItems().find(d=>d.kind==="custom"&&d.item.id===n):void 0;if(o&&o.kind==="custom"){let d=o.item;return {...l,attrs:d.attrs,text:d.text,...d.data===void 0?{}:{data:d.data},...n?{nodeId:n}:{}}}let t=n?wn(r,n,s):void 0,i=s.fromDocx?s.fromDocx({attrs:l.attrs,text:"",...t===void 0?{}:{data:t}}):l.attrs;return i===null?null:{...l,attrs:i,...t===void 0?{}:{data:t},...n?{nodeId:n}:{}}}function wn(e$1,r,l){let s=e$1?.surface;if(!s)return;let n=s.session.part(),o=customNodePayloadsByControl(s.session.currentPackage(),n.name).get(r);if(!o)return;let t=e(l.schema,o.data);return t.ok?t.value:void 0}function ne(e,r){let l=e?.closest?.(pn),s=l?.closest(".docx-content-control-chrome"),n=s?.getAttribute("data-tag"),o=n?c(n):null;if(!l||!o||!n)return null;let t=r.find(i=>i.tagPrefix===o.prefix&&i.name===o.name);return t?{node:{name:o.name,attrs:o.attrs,tag:n,rect:l.getBoundingClientRect()},definition:t,controlId:s?.getAttribute("data-docx-content-control")??null}:null}var Ye=".docx-content-control-boundary",yn=e=>{if(!k.test(e.tagPrefix)||!k.test(e.name))return [];let r=`${e.tagPrefix}:${e.name}`;return [`.docx-content-control-chrome[data-tag="${r}"]`,`.docx-content-control-chrome[data-tag^="${r}?"]`]};function bn(e){let{onNodeClick:r,onNodeHover:l}=e,s=useDocxEditor(),n=de(e.nodes);return useEffect(()=>{let o=document.createElement("style"),t=[];for(let i of n){let d=yn(i);if(d.length===0)continue;let m=i.chrome?.color!==void 0&&CSS.supports("color",i.chrome.color)?i.chrome.color:"#2563eb";t.push(`${d.map(c=>`${c} ${Ye}`).join(", ")} {`," pointer-events: auto !important;"," opacity: 1;"," border: none;",` background: color-mix(in srgb, ${m} 12%, transparent);`," border-radius: 6px;"," cursor: default;","}");}return o.textContent=t.join(`
|
|
2
|
+
`),document.head.append(o),()=>o.remove()},[n]),useEffect(()=>{let o=null,t=null,i=p=>ne(document.elementFromPoint(p.clientX,p.clientY),n),d=p=>{let R=p.button===0?i(p):null;o=R?.controlId??null,t=R?.node.tag??null;},m=p=>{let R=o,y=t;if(o=null,t=null,y===null)return;let w=i(p);if(!w||w.node.tag!==y||R!==null&&w.controlId!==R)return;let u=te(w,s);u&&(w.definition.onClick?.(u),r?.(u));},c=p=>{let R=ne(p.target,n);if(!R||p.relatedTarget?.closest?.(Ye)===p.target.closest(Ye))return;let w=te(R,s);w&&(R.definition.onHover?.(w),l?.(w));};return document.addEventListener("pointerdown",d,true),document.addEventListener("pointerup",m,true),document.addEventListener("mouseover",c),()=>{document.removeEventListener("pointerdown",d,true),document.removeEventListener("pointerup",m,true),document.removeEventListener("mouseover",c);}},[n,s,r,l]),null}function Ct(e){let{onEditNode:r,onRemoveRefused:l,remove:s=true}=e,n=de(e.nodes),o=useContextMenuTarget(),t=useDocxEditor(),{t:i}=useTranslation(),d=useMemo(()=>o?ne(o,n):null,[o,n]),m=useMemo(()=>d?te(d,t):null,[d,t]),c=useMemo(()=>!d?.definition.reviewCard||!m?null:d.definition.reviewCard({attrs:m.attrs,text:m.text??"",...m.data===void 0?{}:{data:m.data}}),[d,m]);if(!d||!m)return null;let{definition:p}=d,R=p.label??p.name,y=p.onEdit!==void 0||r!==void 0,w=s&&m.nodeId!==void 0&&t!==null;return !c&&!y&&!w?null:jsxs(Fragment,{children:[c?jsxs("div",{className:"docx-contextmenu__custom-info","data-testid":"custom-node-info",children:[jsx("span",{className:"docx-contextmenu__custom-title",children:c.title}),c.detail?jsx("span",{className:"docx-contextmenu__custom-detail",children:c.detail}):null]}):null,y?jsx(ContextMenuItem,{label:i("contextMenu.editCustomNode",{label:R}),className:"docx-contextmenu__custom-edit",onSelect:()=>{p.onEdit?.(m),r?.(m,p);}}):null,w?jsx(ContextMenuItem,{label:i("contextMenu.removeCustomNode",{label:R}),className:"docx-contextmenu__custom-remove",onSelect:()=>{let u=q(t,m.nodeId);u.ok||l?.(m,u.reason);}}):null,jsx("div",{role:"separator",className:"docx-toolbar__menu-separator"})]})}Ct.docxRowPlacement="start";export{bn as CustomNodeChrome,Ct as CustomNodeContextMenu,un as DocxEditorReview,te as activatedCustomNodeOf,ne as resolveCustomNodeActivation,de as useCustomNodeDefinitions,fe as useReview,Wt as useReviewItem,lt as useReviewOf,Kt as useStackedReviewPositions};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docx-editor.dev/pro",
|
|
3
|
-
"version": "2.1
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "Commercial capabilities for @docx-editor.dev: the review module (comments, tracked changes, markup rendering) and custom inline nodes over content controls.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|