@heyirisai/docx-editor-react 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +139 -0
- package/dist/FindReplaceDialog-HM63BMXE.js +1 -0
- package/dist/FindReplaceDialog-KU5TEIBJ.mjs +1 -0
- package/dist/FootnotePropertiesDialog-TV2BGQDC.js +1 -0
- package/dist/FootnotePropertiesDialog-W3YHM4BV.mjs +1 -0
- package/dist/HyperlinkDialog-7MEQJIYP.js +1 -0
- package/dist/HyperlinkDialog-ZYH7ZHRF.mjs +1 -0
- package/dist/ImagePositionDialog-HEWYR6Q3.mjs +1 -0
- package/dist/ImagePositionDialog-LSCCQORZ.js +1 -0
- package/dist/ImagePropertiesDialog-RAB47C6M.mjs +1 -0
- package/dist/ImagePropertiesDialog-Z4M6XKFG.js +1 -0
- package/dist/KeyboardShortcutsDialog-B-h3NAat.d.mts +415 -0
- package/dist/KeyboardShortcutsDialog-B-h3NAat.d.ts +415 -0
- package/dist/PageSetupDialog-AIGIXO3E.mjs +1 -0
- package/dist/PageSetupDialog-LWYOYKEU.js +1 -0
- package/dist/SplitCellDialog-45W7SDPY.js +1 -0
- package/dist/SplitCellDialog-IFBKYCD6.mjs +1 -0
- package/dist/TablePropertiesDialog-TMLKGOOW.mjs +1 -0
- package/dist/TablePropertiesDialog-VCDCPM3R.js +1 -0
- package/dist/WatermarkDialog-KRL7WMIS.mjs +1 -0
- package/dist/WatermarkDialog-XGLAH3TK.js +1 -0
- package/dist/chunk-4Y4JFAPY.mjs +2 -0
- package/dist/chunk-72OSVJPF.mjs +2 -0
- package/dist/chunk-74OM4KEH.js +2 -0
- package/dist/chunk-BJ5RZW6Y.js +1 -0
- package/dist/chunk-BMBP5UFA.mjs +1 -0
- package/dist/chunk-BWGNQQOL.mjs +1 -0
- package/dist/chunk-BZO4G5M6.js +1 -0
- package/dist/chunk-FIXL5PLO.js +2 -0
- package/dist/chunk-GM2S2WMT.mjs +1 -0
- package/dist/chunk-GNIO6SOS.js +1 -0
- package/dist/chunk-GWXEFL3H.js +1 -0
- package/dist/chunk-IVFYCMAM.mjs +1 -0
- package/dist/chunk-J72K2BOS.mjs +2 -0
- package/dist/chunk-L4MDZW2J.js +1 -0
- package/dist/chunk-LMMQD3OQ.js +2 -0
- package/dist/chunk-NIBCC7WQ.js +1 -0
- package/dist/chunk-O6M2HAIZ.mjs +1 -0
- package/dist/chunk-OCA7BO3G.mjs +1 -0
- package/dist/chunk-OHNO4NRQ.mjs +1 -0
- package/dist/chunk-P5ZOUQIK.mjs +1 -0
- package/dist/chunk-PSBO3UDN.js +1 -0
- package/dist/chunk-QD7BVJV3.js +2 -0
- package/dist/chunk-SSLYGYTD.js +1 -0
- package/dist/chunk-YY52FSUR.js +1 -0
- package/dist/chunk-Z3X4KBNE.mjs +2 -0
- package/dist/chunk-ZFZJRL2R.mjs +1 -0
- package/dist/dialogs.d.mts +40 -0
- package/dist/dialogs.d.ts +40 -0
- package/dist/dialogs.js +1 -0
- package/dist/dialogs.mjs +1 -0
- package/dist/hooks.d.mts +513 -0
- package/dist/hooks.d.ts +513 -0
- package/dist/hooks.js +1 -0
- package/dist/hooks.mjs +1 -0
- package/dist/index.d.mts +680 -0
- package/dist/index.d.ts +680 -0
- package/dist/index.js +31 -0
- package/dist/index.mjs +31 -0
- package/dist/plugin-api.d.mts +90 -0
- package/dist/plugin-api.d.ts +90 -0
- package/dist/plugin-api.js +246 -0
- package/dist/plugin-api.mjs +246 -0
- package/dist/styles.css +1 -0
- package/dist/styles.d.mts +13 -0
- package/dist/styles.d.ts +13 -0
- package/dist/styles.js +1 -0
- package/dist/styles.mjs +1 -0
- package/dist/types-D35gNE-_.d.mts +106 -0
- package/dist/types-D35gNE-_.d.ts +106 -0
- package/dist/ui.d.mts +1692 -0
- package/dist/ui.d.ts +1692 -0
- package/dist/ui.js +90 -0
- package/dist/ui.mjs +90 -0
- package/dist/useFindReplace-Bc2ubEeV.d.mts +219 -0
- package/dist/useFindReplace-Bc2ubEeV.d.ts +219 -0
- package/package.json +137 -0
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {h,a as a$1,d,g,F,i as i$1,o,E,C,A}from'./chunk-Z3X4KBNE.mjs';import {a as a$2}from'./chunk-O6M2HAIZ.mjs';import {a,c,i,e,b as b$4}from'./chunk-BWGNQQOL.mjs';import {b as b$1}from'./chunk-72OSVJPF.mjs';import {b as b$3}from'./chunk-IVFYCMAM.mjs';import'./chunk-OCA7BO3G.mjs';import {b as b$2,a as a$4}from'./chunk-OHNO4NRQ.mjs';import {m}from'./chunk-J72K2BOS.mjs';import {b,a as a$3}from'./chunk-ZFZJRL2R.mjs';export{a as LocaleProvider,b as useTranslation}from'./chunk-ZFZJRL2R.mjs';import {b as b$5}from'./chunk-BMBP5UFA.mjs';import ql,{lazy,forwardRef,useRef,useCallback,useEffect,useImperativeHandle,memo,useMemo,useState,useLayoutEffect,createContext,Suspense,useSyncExternalStore,Component}from'react';import {prefersColorSchemeDark,subscribeSystemDark,resolveIsDark,collectHeadings,findWordBoundaries,pixelsToEmu,loadDocumentFonts,getRenderableDocumentFonts,getEmbeddedFontFamilies,readDocxFileFromInput,loadFontDefinitions,onFontsLoaded,onFontError,resolveColorToHex,flashParagraphFragmentsByParaId,twipsToPixels,pixelsToTwips,formatPx}from'@heyirisai/docx-editor-core/utils';import {createStyleResolver,extractSelectionState,schema,createDocumentStylesPlugin,createDocumentContextPlugin,ensureParaIdsInState,findStartPosForParaId,addRowBelow,addColumnRight,getTableContext,setCellFillColor,setTableBorderColor,setTableBorderWidth,setCellBorder,setCellVerticalAlign,setCellMargins,setCellTextDirection,toggleNoWrap,setRowHeight,toggleHeaderRow,distributeColumns,autoFitContents,applyTableStyle,removeTableBorders,setInsideTableBorders,setOutsideTableBorders,setAllTableBorders,mergeCells,selectColumn,selectRow,selectTable,deleteTable,deleteColumn,deleteRow,addColumnLeft,addRowAbove,setContentControlValueTr,removeContentControlTr,setContentControlContentTr,findContentControlPos,findContentControlsInPM,setContentControlValueAtPosTr,getSelectedText as getSelectedText$1,getHyperlinkAttrs as getHyperlinkAttrs$1,addRepeatingSectionItemTr,removeRepeatingSectionItemTr}from'@heyirisai/docx-editor-core/prosemirror';import {parseDocx,injectReplyRangeMarkers,injectTCReplyRangeMarkers,getCachedNumberingMap}from'@heyirisai/docx-editor-core/docx';import {ExtensionManager,createStarterKit,hasUntrackedChanges,hasStructuralChanges,getChangedParagraphIds,clearTrackedChanges}from'@heyirisai/docx-editor-core/prosemirror/extensions';import {rejectChangeById,acceptChangeById,rejectChange,acceptChange,insertImageFromFile,setImageWrapType,getSplitCellDialogConfig,splitActiveTableCell,toggleBold,toggleItalic,toggleUnderline,toggleStrike,toggleSuperscript,toggleSubscript,toggleBulletList,toggleNumberedList,increaseListLevel,increaseIndent,decreaseListLevel,decreaseIndent,clearFormatting,setRtl,setLtr,getSelectedText,getHyperlinkAttrs,applyStyle,setLineSpacing,setFontFamily,setFontSize,setHighlight,setTextColor,clearTextColor,setAlignment,insertTable,insertPageBreak,insertSectionBreakNextPage,insertSectionBreakContinuous,generateTOC,insertHyperlink,setHyperlink,removeHyperlink,findHyperlinkRangeAt,setIndentLeft,setIndentRight,setIndentFirstLine,removeTabStop,getWatermarkFromState,setWatermark,setTableProperties}from'@heyirisai/docx-editor-core/prosemirror/commands';import {LayoutPainter,buildBlockLookup,renderPages,applySdtFocus,enclosingSdtGroupIds,findImageElement,hitTestImage,captureInlinePositionEmu,renderAllPagesNow,toolbarValueToLayoutTarget,deriveLayoutChoice,IMAGE_LAYOUT_OPTIONS,isImageLayoutOptionEnabled}from'@heyirisai/docx-editor-core/layout-painter';import {toast,Toaster}from'sonner';import {NodeSelection,TextSelection,EditorState}from'prosemirror-state';import {getSelectionInfo,findInDocument,getPageContent,findChangeRange,findCommentRange,clampRangeToDoc}from'@heyirisai/docx-editor-core/prosemirror/queries';import {insertBreak,setParagraphStyle,applyFormatting}from'@heyirisai/docx-editor-core/prosemirror/applyFormatting';import {DocumentAgent,ContentControlNotFoundError}from'@heyirisai/docx-editor-core/agent';import {createComment,applyProposedChange,addCommentToRange}from'@heyirisai/docx-editor-core/prosemirror/commentOps';import {createCommentIdAllocator,PENDING_COMMENT_ID,seedCommentAllocator}from'@heyirisai/docx-editor-core/prosemirror/commentIdAllocator';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {DEFAULT_PAGE_HEIGHT_PX,getPageSize,getMargins,getColumns,applyCellSelectionHighlight,getCaretPosition,selectionToRects,findBodyPmAnchor,clickToPositionDom,hitTestFragment,hitTestTableCell,clickToPosition,detectTableInsertHover,TABLE_INSERT_HIDE_DELAY_MS,resolveHeaderFooter,computeHfCaretRectFromView,computeHfSelectionRectsFromView,invalidateHfDomCache,measureBlocksWithFloats,getCaretPositionFromDom,getSelectionRectsFromDom,findBodyPmSpans,resetCanvasContext,clearAllCaches,findBodyPmAnchors,measureParagraph,measureTableBlock,getCachedParagraphMeasure,setCachedParagraphMeasure,getPageTop}from'@heyirisai/docx-editor-core/layout-bridge';import {proseDocToBlocks,toProseDoc,createEmptyDoc,fromProseDoc,headerFooterToProseDoc}from'@heyirisai/docx-editor-core/prosemirror/conversion';import {en}from'@heyirisai/docx-editor-i18n';import {redo,undo,redoDepth,undoDepth}from'prosemirror-history';import {createPortal}from'react-dom';import {CellSelection}from'prosemirror-tables';import {EditorView}from'prosemirror-view';import {stripScrollFlag,computeLayout,createLayoutScheduler}from'@heyirisai/docx-editor-core/editor';import'prosemirror-view/style/prosemirror.css';import'@heyirisai/docx-editor-core/prosemirror/editor.css';import {setSuggestionMode,createSuggestionModePlugin}from'@heyirisai/docx-editor-core/prosemirror/plugins';import {commitImageResize,isFloatingImage,commitImageFloatMove,commitImageInlineMove,calculateResizedImageDimensions}from'@heyirisai/docx-editor-core/prosemirror/imageCommit';import {LayoutSelectionGate}from'@heyirisai/docx-editor-core/prosemirror/utils/LayoutSelectionGate';import {SIDEBAR_DOCUMENT_SHIFT,SIDEBAR_WIDTH,SIDEBAR_PAGE_GAP}from'@heyirisai/docx-editor-core/utils/sidebarConstants';import {findVerticalScrollParentOrRoot}from'@heyirisai/docx-editor-core/utils/findVerticalScrollParent';import {findPageIndexContainingPmPos,assertExhaustiveFlowBlock,DEFAULT_TEXTBOX_MARGINS,DEFAULT_TEXTBOX_WIDTH}from'@heyirisai/docx-editor-core/layout-engine';import {readColumnWidths,readRowHeight,TWIPS_PER_PIXEL,readColumnWidthAt,MIN_CELL_WIDTH_TWIPS,MIN_ROW_HEIGHT_TWIPS,commitColumnResize,commitRowResize,commitRightEdgeResize}from'@heyirisai/docx-editor-core/prosemirror/tableResize';import {createCellDragTracker,findCellPosFromPmPos}from'@heyirisai/docx-editor-core/prosemirror/cellDragSelection';import {resolveItemPositions}from'@heyirisai/docx-editor-core/plugin-api/resolveItemPositions';import {ErrorManager}from'@heyirisai/docx-editor-core';export{createDocumentWithText,createEmptyDocument}from'@heyirisai/docx-editor-core';import {AgentPanel}from'@heyirisai/docx-editor-agents/react';import {getInitials,formatDate,getCommentText,truncateText,getAvatarColor}from'@heyirisai/docx-editor-core/utils/comments';import {CARD_STYLE_EXPANDED,CARD_STYLE_COLLAPSED}from'@heyirisai/docx-editor-core/utils/cardStyles';import {createRoot}from'react-dom/client';function Ei({showOutlineProp:e,pagedEditorRef:t,scrollContainerRef:o,isLoading:r}){let[n,d]=useState(e),p=useRef(false);p.current=n;let[s,u]=useState([]);useEffect(()=>{if(d(e),e){let h=t.current?.getView();h&&u(collectHeadings(h.state.doc));}},[e,t]);let c=useRef(null),a=useRef(null),[m,g]=useState(0),b=useCallback(h=>{if(a.current=h,c.current&&(c.current.disconnect(),c.current=null),!h){g(0);return}g(h.offsetHeight);let x=new ResizeObserver(()=>{g(h.offsetHeight);});x.observe(h),c.current=x;},[]);useEffect(()=>()=>{c.current?.disconnect();},[]);let[i,f]=useState(0);return useEffect(()=>{let h=o.current;if(!h)return;let x=0,C=()=>{x=0,f(h.scrollLeft);},l=()=>{x===0&&(x=requestAnimationFrame(C));};return C(),h.addEventListener("scroll",l,{passive:true}),()=>{h.removeEventListener("scroll",l),x!==0&&cancelAnimationFrame(x);}},[r,o]),{showOutline:n,setShowOutline:d,showOutlineRef:p,outlineHeadings:s,setHeadingInfos:u,toolbarHeight:m,toolbarRefCallback:b,editorScrollLeft:i}}function Ii({pagedEditorRef:e,disableFindReplaceShortcuts:t,showFileOpen:o,onOpenDocument:r,findReplace:n,hyperlinkDialog:d,tableSelection:p}){useEffect(()=>{let s=u=>{let a=navigator.platform.toUpperCase().indexOf("MAC")>=0?u.metaKey:u.ctrlKey;if(!a&&!u.shiftKey&&!u.altKey&&(u.key==="Delete"||u.key==="Backspace")){let m=e.current?.getView();if(m){let g=m.state.selection;if("$anchorCell"in g&&typeof g.forEachCell=="function"){let i=getTableContext(m.state);if(i.isInTable&&i.table){let f=0;i.table.descendants(x=>{(x.type.name==="tableCell"||x.type.name==="tableHeader")&&(f+=1);});let h=0;if(g.forEachCell(()=>{h+=1;}),f>0&&h>=f){u.preventDefault(),deleteTable(m.state,m.dispatch);return}}}}if(p.state.tableIndex!==null){u.preventDefault(),p.handleAction("deleteTable");return}}if(a&&!u.shiftKey&&!u.altKey){if(u.key.toLowerCase()==="f"){if(t)return;u.preventDefault();let m=window.getSelection(),g=m&&!m.isCollapsed?m.toString():"";n.openFind(g);}else if(u.key.toLowerCase()==="o"){if(!o||!r)return;u.preventDefault(),r();}else if(u.key.toLowerCase()==="h"){if(t)return;u.preventDefault();let m=window.getSelection(),g=m&&!m.isCollapsed?m.toString():"";n.openReplace(g);}else if(u.key.toLowerCase()==="k"){u.preventDefault();let m=e.current?.getView();if(m){let g=getSelectedText$1(m.state),b=getHyperlinkAttrs$1(m.state);b?d.openEdit({url:b.href,displayText:g,tooltip:b.tooltip}):d.openInsert(g);}}}};return document.addEventListener("keydown",s),()=>{document.removeEventListener("keydown",s);}},[e,t,o,r,n,d,p]);}function ar(e,t){return e instanceof Error?e:new Error(t)}function Mi({agentRef:e,pagedEditorRef:t,containerRef:o,comments:r,documentName:n,onSave:d,onOpen:p,onError:s,onPrint:u,onDocumentNameChange:c,loadBuffer:a,getActiveEditorView:m,focusActiveEditor:g}){let b=useRef(null),i=useRef(null),f=useCallback(async S=>{if(!e.current)return null;try{let v=e.current.getDocument(),P=t.current?.getDocument();P?.package?.document&&(v.package.document.content=P.package.document.content),v.package.document.comments=r,injectReplyRangeMarkers(v.package.document.content,r),injectTCReplyRangeMarkers(v.package.document.content,r);let k=S?.selective!==!1,E=t.current?.getView(),I;if(k&&E){let M=E.state,H=r.some(O=>O.parentId!=null);I={selective:{changedParaIds:getChangedParagraphIds(M),structuralChange:hasStructuralChanges(M)||H,hasUntrackedChanges:hasUntrackedChanges(M)}};}let w=await e.current.toBuffer(I);return E&&E.dispatch(clearTrackedChanges(E.state)),d?.(w),w}catch(v){return s?.(ar(v,"Failed to save document")),null}},[e,t,r,d,s]),h=useCallback(()=>{let S=o.current?.querySelector(".paged-editor__pages");if(!S){window.print(),u?.();return}renderAllPagesNow(S);let v=window.open("","_blank");if(!v){window.print(),u?.();return}let P=[];for(let I of Array.from(document.styleSheets))try{for(let w of Array.from(I.cssRules))w instanceof CSSFontFaceRule&&P.push(w.cssText);}catch{}let k=S.cloneNode(true);k.style.cssText="display: block; margin: 0; padding: 0;";for(let I of Array.from(k.querySelectorAll(".layout-page"))){let w=I;w.style.boxShadow="none",w.style.margin="0";}v.document.write(`<!DOCTYPE html>
|
|
2
|
+
<html><head><title>Print</title>
|
|
3
|
+
<style>
|
|
4
|
+
* { margin: 0; padding: 0; }
|
|
5
|
+
body { background: white; }
|
|
6
|
+
.layout-page { break-after: page; }
|
|
7
|
+
.layout-page:last-child { break-after: auto; }
|
|
8
|
+
@page { margin: 0; size: auto; }
|
|
9
|
+
</style>
|
|
10
|
+
</head><body></body></html>`);let E=v.document.createElement("style");E.textContent=P.join(`
|
|
11
|
+
`),v.document.head.appendChild(E),v.document.body.appendChild(v.document.importNode(k,true)),v.document.close(),v.onload=()=>{v.print(),v.close();},setTimeout(()=>{v.closed||(v.print(),v.close());},1e3),u?.();},[o,u]),x=useCallback(async()=>{let S=await f();if(!S)return;let v=new Blob([S],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}),P=URL.createObjectURL(v),k=window.document.createElement("a");k.href=P,k.download=`${(n?.trim()||"document").replace(/\.docx$/i,"")}.docx`,k.click(),setTimeout(()=>URL.revokeObjectURL(P),0);},[f,n]),C=useCallback(()=>{i.current?.click();},[]),l=useCallback(async S=>{if(p){let v=S.currentTarget,P=v.files?.[0];if(v.value="",!P)return;try{await p(P);}catch(k){s?.(ar(k,"Failed to open document"));}return}try{let v=await readDocxFileFromInput(S.nativeEvent);if(!v)return;await a(v.buffer),c?.(v.name);}catch(v){s?.(ar(v,"Failed to open document"));}},[a,c,s,p]),y=useCallback(()=>{b.current?.click();},[]),R=useCallback(S=>{let v=S.target.files?.[0],P=m();v&&P&&insertImageFromFile(P,v,{onInserted:g}),S.target.value="";},[m,g]);return {imageInputRef:b,docxInputRef:i,handleSave:f,handleDirectPrint:h,handleDownloadDocument:x,handleOpenDocument:C,handleDocxFileChange:l,handleInsertImageClick:y,handleImageFileChange:R}}function Hi({document:e,readOnly:t,handleDocumentChange:o,getActiveEditorView:r}){let[n,d]=useState(false),p=useCallback(()=>d(true),[]),s=useCallback(x=>C=>{if(!e||t)return;let l={...e,package:{...e.package,document:{...e.package.document,finalSectionProperties:{...e.package.document.finalSectionProperties,[x]:C}}}};o(l);},[e,t,o]),u=useMemo(()=>s("marginLeft"),[s]),c=useMemo(()=>s("marginRight"),[s]),a=useMemo(()=>s("marginTop"),[s]),m=useMemo(()=>s("marginBottom"),[s]),g=useCallback(x=>{if(!e||t)return;let C={...e,package:{...e.package,document:{...e.package.document,finalSectionProperties:{...e.package.document.finalSectionProperties,...x}}}};o(C);},[e,t,o]),b=useCallback(x=>{let C=r();C&&setIndentLeft(x)(C.state,C.dispatch);},[r]),i=useCallback(x=>{let C=r();C&&setIndentRight(x)(C.state,C.dispatch);},[r]),f=useCallback(x=>{let C=r();C&&(x<0?setIndentFirstLine(-x,true)(C.state,C.dispatch):setIndentFirstLine(x,false)(C.state,C.dispatch));},[r]),h=useCallback(x=>{let C=r();C&&removeTabStop(x)(C.state,C.dispatch);},[r]);return {showPageSetup:n,setShowPageSetup:d,handleOpenPageSetup:p,handleLeftMarginChange:u,handleRightMarginChange:c,handleTopMarginChange:a,handleBottomMarginChange:m,handlePageSetupApply:g,handleIndentLeftChange:b,handleIndentRightChange:i,handleFirstLineIndentChange:f,handleTabStopRemove:h}}function Li({readOnly:e,getBodyEditorView:t}){let[o,r]=useState(false),n=useCallback(()=>r(true),[]),d=t(),p=d?getWatermarkFromState(d.state)??void 0:void 0,s=useCallback(u=>{if(e)return;let c=t();c&&setWatermark(u)(c.state,c.dispatch);},[e,t]);return {showWatermark:o,setShowWatermark:r,handleOpenWatermark:n,currentWatermark:p,handleWatermarkApply:s}}function Bi({hyperlinkDialog:e,getActiveEditorView:t,focusActiveEditor:o}){let[r,n]=useState(null),d=useCallback(i=>{let f=t();if(!f)return;let h=i.url||"",x=i.tooltip,{empty:C}=f.state.selection;C&&i.displayText?insertHyperlink(i.displayText,h,x)(f.state,f.dispatch):C?i.displayText&&insertHyperlink(i.displayText,h,x)(f.state,f.dispatch):setHyperlink(h,x)(f.state,f.dispatch),e.close(),o();},[e,t,o]),p=useCallback(()=>{let i=t();i&&(removeHyperlink(i.state,i.dispatch),o());},[t,o]),s=useCallback(()=>{p(),e.close();},[e,p]),u=useCallback(i=>n(i),[]),c=useCallback(i=>{window.open(i,"_blank","noopener,noreferrer");},[]),a=useCallback(i=>{navigator.clipboard.writeText(i).catch(()=>{let f=document.createElement("textarea");f.value=i,f.style.position="fixed",f.style.opacity="0",document.body.appendChild(f),f.select(),document.execCommand("copy"),document.body.removeChild(f);});},[]),m=useCallback((i,f)=>{let h=t();if(!h)return;let x=findHyperlinkRangeAt(h.state);if(x){let C=h.state.schema.marks.hyperlink,{$from:l}=h.state.selection,y=C.create({href:f,tooltip:x.mark.attrs.tooltip}),R=h.state.schema.text(i,[...l.marks().filter(v=>v.type!==C),y]),S=h.state.tr.replaceWith(x.start,x.end,R);h.dispatch(S.scrollIntoView());}n(null),o();},[t,o]),g=useCallback(()=>{let i=t();if(!i)return;let f=findHyperlinkRangeAt(i.state,r?.href);if(!f)return;let h=i.state.schema.marks.hyperlink;i.dispatch(i.state.tr.removeMark(f.start,f.end,h).scrollIntoView()),n(null),o(),toast("Link removed");},[t,o,r]),b=useCallback(()=>{n(null);},[]);return {hyperlinkPopupData:r,setHyperlinkPopupData:n,handleHyperlinkSubmit:d,handleHyperlinkRemove:s,handleHyperlinkClick:u,handleHyperlinkPopupNavigate:c,handleHyperlinkPopupCopy:a,handleHyperlinkPopupEdit:m,handleHyperlinkPopupRemove:g,handleHyperlinkPopupClose:b}}function Ni(e,t,o){let r=0;for(let n of e){let d=r+n.text.length;if(o==="start"&&t>=r&&t<d||o==="end"&&t>r&&t<=d)return n.pmStart+t-r;r=d;}return null}function zi(e,t,o){let r=[],n=0;return e.state.doc.descendants((d,p)=>{if(!d.isTextblock)return true;let s=[],u="";if(d.descendants((a,m)=>(!a.isText||!a.text||(s.push({text:a.text,pmStart:p+1+m}),u+=a.text),true)),!u)return n+=1,false;let c=(0, a$4.findAllMatches)(u,t,o);for(let a of c){let m=Ni(s,a.start,"start"),g=Ni(s,a.end,"end");m==null||g==null||m>=g||r.push({paragraphIndex:n,contentIndex:0,startOffset:a.start,endOffset:a.end,text:u.slice(a.start,a.end),pmFrom:m,pmTo:g});}return n+=1,false}),r}function _i({pagedEditorRef:e,findReplace:t}){let o=useRef(null),r=useCallback(()=>e.current?.getView()??null,[e]),n=useCallback((a,m)=>{let g=r();if(!g||!a)return null;try{let i=TextSelection.create(g.state.doc,a.pmFrom,a.pmTo);g.dispatch(g.state.tr.setSelection(i)),e.current?.scrollToPosition(a.pmFrom);}catch(i){return console.error("Find navigation failed:",i),null}let b=o.current;return b&&(b.currentIndex=m),t.goToMatch(m),a},[t,r,e]),d=useCallback((a,m)=>{let g=r();if(!g||!a.trim())return o.current=null,t.setMatches([],0),null;let b=zi(g,a,m),i={matches:b,totalCount:b.length,currentIndex:0};return o.current=i,t.setMatches(b,0),b.length>0&&n(b[0],0),i},[t,r,n]),p=useCallback(()=>{let a=o.current;if(!a||a.matches.length===0)return null;let m=(a.currentIndex+1)%a.matches.length;return n(a.matches[m],m)},[n]),s=useCallback(()=>{let a=o.current;if(!a||a.matches.length===0)return null;let m=a.currentIndex===0?a.matches.length-1:a.currentIndex-1;return n(a.matches[m],m)},[n]),u=useCallback(a=>{let m=r(),g=o.current;if(!m||!g||g.matches.length===0)return false;let b=g.matches[g.currentIndex];if(!b)return false;try{let i=a?m.state.tr.replaceWith(b.pmFrom,b.pmTo,m.state.schema.text(a)):m.state.tr.delete(b.pmFrom,b.pmTo);return m.dispatch(i),!0}catch(i){return console.error("Replace failed:",i),false}},[r]),c=useCallback((a,m,g)=>{let b=r();if(!b||!a.trim())return 0;let i=zi(b,a,g);if(i.length===0)return 0;let f=[...i].sort((x,C)=>C.pmFrom-x.pmFrom),h=b.state.tr;for(let x of f)try{h=m?h.replaceWith(x.pmFrom,x.pmTo,b.state.schema.text(m)):h.delete(x.pmFrom,x.pmTo);}catch(C){console.error("Replace failed for match:",x,C);}return b.dispatch(h),o.current=null,t.setMatches([],0),i.length},[t,r]);return {findResultRef:o,handleFind:d,handleFindNext:p,handleFindPrevious:s,handleReplace:u,handleReplaceAll:c}}function Ui({getActiveEditorView:e,focusActiveEditor:t,pagedEditorRef:o,lastSelectionRef:r,hyperlinkDialog:n,historyStateRef:d$1,getCachedStyleResolver:p}){let s=useCallback(b=>{let i=e();if(!i)return;i.focus();let f=i===o.current?.getView(),{from:h,to:x}=i.state.selection,C=r.current;if(f&&C&&(h!==C.from||x!==C.to))try{let l=i.state.tr.setSelection(TextSelection.create(i.state.doc,C.from,C.to));i.dispatch(l);}catch(l){console.warn("Could not restore selection:",l);}if(b==="bold")return void toggleBold(i.state,i.dispatch);if(b==="italic")return void toggleItalic(i.state,i.dispatch);if(b==="underline")return void toggleUnderline(i.state,i.dispatch);if(b==="strikethrough")return void toggleStrike(i.state,i.dispatch);if(b==="superscript")return void toggleSuperscript(i.state,i.dispatch);if(b==="subscript")return void toggleSubscript(i.state,i.dispatch);if(b==="bulletList")return void toggleBulletList(i.state,i.dispatch);if(b==="numberedList")return void toggleNumberedList(i.state,i.dispatch);if(b==="indent"){increaseListLevel(i.state,i.dispatch)||increaseIndent()(i.state,i.dispatch);return}if(b==="outdent"){decreaseListLevel(i.state,i.dispatch)||decreaseIndent()(i.state,i.dispatch);return}if(b==="clearFormatting")return void clearFormatting(i.state,i.dispatch);if(b==="setRtl")return void setRtl(i.state,i.dispatch);if(b==="setLtr")return void setLtr(i.state,i.dispatch);if(b==="insertLink"){let l=getSelectedText(i.state),y=getHyperlinkAttrs(i.state);y?n.openEdit({url:y.href,displayText:l,tooltip:y.tooltip}):n.openInsert(l);return}if(typeof b=="object")switch(b.type){case "alignment":setAlignment(b.value)(i.state,i.dispatch);break;case "textColor":{let l=b.value;typeof l=="string"?setTextColor({rgb:l.replace("#","")})(i.state,i.dispatch):l.auto?clearTextColor(i.state,i.dispatch):setTextColor(l)(i.state,i.dispatch);break}case "highlightColor":{let l=b.value?g(b.value):"";setHighlight(l||b.value)(i.state,i.dispatch);break}case "fontSize":setFontSize(d(b.value))(i.state,i.dispatch);break;case "fontFamily":setFontFamily(b.value)(i.state,i.dispatch);break;case "lineSpacing":setLineSpacing(b.value)(i.state,i.dispatch);break;case "applyStyle":{let l=d$1.current,y=l?.package.styles?p(l.package.styles):null;if(y){let R=y.resolveParagraphStyle(b.value);applyStyle(b.value,{paragraphFormatting:R.paragraphFormatting,runFormatting:R.runFormatting,numbering:l?.package.numbering?getCachedNumberingMap(l.package.numbering):null})(i.state,i.dispatch);}else applyStyle(b.value)(i.state,i.dispatch);break}}},[e,o,r,n,d$1,p]),u=useCallback((b,i)=>{let f=e();f&&(insertTable(b,i)(f.state,f.dispatch),t());},[e,t]),c=useCallback(()=>{let b=e();b&&(insertPageBreak(b.state,b.dispatch),t());},[e,t]),a=useCallback(()=>{let b=e();b&&(insertSectionBreakNextPage(b.state,b.dispatch),t());},[e,t]),m=useCallback(()=>{let b=e();b&&(insertSectionBreakContinuous(b.state,b.dispatch),t());},[e,t]),g$1=useCallback(()=>{let b=e();b&&(generateTOC(b.state,b.dispatch),t());},[e,t]);return {handleFormat:s,handleInsertTable:u,handleInsertPageBreak:c,handleInsertSectionBreakNextPage:a,handleInsertSectionBreakContinuous:m,handleInsertTOC:g$1}}function $i({document:e,pmImageContext:t,zoom:o,getActiveEditorView:r,focusActiveEditor:n,pushDocument:d}){let[p,s]=useState(false),[u,c]=useState(false),[a,m]=useState(false),g=useCallback(C=>{let l=r();if(!l||!t)return;let y=t.pos,R=l.state.doc.nodeAt(y);if(!R||R.type.name!=="image")return;let S=toolbarValueToLayoutTarget(C);if(!S)return;let v;if(R.attrs.wrapType==="inline"&&S!=="inline"){let P=window.document.querySelector(`.layout-run-image[data-pm-start="${y}"]`),k=P?captureInlinePositionEmu(P,o):void 0;k&&(v={initialPositionEmu:k});}setImageWrapType(y,S,v)(l.state,l.dispatch),n();},[r,n,t,o]),b=useCallback(C=>{let l=r();if(!l||!t)return;let y=t.pos,R=l.state.doc.nodeAt(y);if(!R||R.type.name!=="image")return;let S=R.attrs.transform||"",v=S.match(/rotate\((-?\d+(?:\.\d+)?)deg\)/),P=v?parseFloat(v[1]):0,k=/scaleX\(-1\)/.test(S),E=/scaleY\(-1\)/.test(S);switch(C){case "rotateCW":P=(P+90)%360;break;case "rotateCCW":P=(P-90+360)%360;break;case "flipH":k=!k;break;case "flipV":E=!E;break}let I=[];P!==0&&I.push(`rotate(${P}deg)`),k&&I.push("scaleX(-1)"),E&&I.push("scaleY(-1)");let w=I.length>0?I.join(" "):null,M=l.state.tr.setNodeMarkup(y,void 0,{...R.attrs,transform:w});l.dispatch(M.scrollIntoView()),n();},[r,n,t]),i=useCallback(C=>{let l=r();if(!l||!t)return;let y=t.pos,R=l.state.doc.nodeAt(y);if(!R||R.type.name!=="image")return;let S=l.state.tr.setNodeMarkup(y,void 0,{...R.attrs,position:{horizontal:C.horizontal,vertical:C.vertical},distTop:C.distTop??R.attrs.distTop,distBottom:C.distBottom??R.attrs.distBottom,distLeft:C.distLeft??R.attrs.distLeft,distRight:C.distRight??R.attrs.distRight});l.dispatch(S.scrollIntoView()),n();},[r,n,t]),f=useCallback(()=>{c(true);},[]),h=useCallback(C=>{let l=r();if(!l||!t)return;let y=t.pos,R=l.state.doc.nodeAt(y);if(!R||R.type.name!=="image")return;let S=l.state.tr.setNodeMarkup(y,void 0,{...R.attrs,alt:C.alt??null,borderWidth:C.borderWidth??null,borderColor:C.borderColor??null,borderStyle:C.borderStyle??null,width:C.width??null,height:C.height??null});l.dispatch(S.scrollIntoView()),n();},[r,n,t]),x=useCallback((C,l)=>{if(!e?.package)return;let y={...e.package.document,finalSectionProperties:{...e.package.document.finalSectionProperties,footnotePr:C,endnotePr:l}};d({...e,package:{...e.package,document:y}});},[e,d]);return {imagePositionOpen:p,setImagePositionOpen:s,imagePropsOpen:u,setImagePropsOpen:c,footnotePropsOpen:a,setFootnotePropsOpen:m,handleImageWrapType:g,handleImageTransform:b,handleApplyImagePosition:i,handleOpenImageProperties:f,handleApplyImageProperties:h,handleApplyFootnoteProperties:x}}var sn=new Map;function Ki({ref:e,agentRef:t,document:o,historyStateRef:r,pagedEditorRef:n,handleSave:d,handleDirectPrint:p,zoom:s,setZoom:u,scrollPageInfo:c,loadParsedDocument:a,loadBuffer:m,comments:g,setComments:b,setShowCommentsSidebar:i,contentChangeSubscribersRef:f,selectionChangeSubscribersRef:h,getCachedStyleResolver:x,commentIdAllocator:C}){useImperativeHandle(e,()=>({getAgent:()=>t.current,getDocument:()=>o,getEditorRef:()=>n.current,save:d,setZoom:u,getZoom:()=>s,focus:()=>{n.current?.focus();},getCurrentPage:()=>c.currentPage,getTotalPages:()=>c.totalPages,scrollToPage:l=>{n.current?.scrollToPage(l);},scrollToPosition:l=>{n.current?.scrollToPosition(l);},openPrintPreview:p,print:p,loadDocument:a,loadDocumentBuffer:m,addComment:l=>{let y=n.current?.getView();if(!y)return null;let R=addCommentToRange(y,l,C);return R?(b(S=>[...S,R]),i(true),R.id):null},replyToComment:(l,y,R)=>{if(!g.some(v=>v.id===l))return null;let S=createComment(C,y,R,l);return b(v=>[...v,S]),S.id},resolveComment:l=>{b(y=>y.map(R=>R.id===l?{...R,done:true}:R));},proposeChange:l=>{let y=n.current?.getView();if(!y)return false;let R=applyProposedChange(y,l,C);return R&&i(true),R},applyFormatting:l=>{let y=n.current?.getView();return y?applyFormatting(y,l):false},setParagraphStyle:l=>{let y=n.current?.getView();if(!y)return false;let R=r.current,S=R?.package?.styles?x(R.package.styles):null,v=R?.package?.numbering?getCachedNumberingMap(R.package.numbering):null;return setParagraphStyle(y,l,{styleResolver:S,numbering:v})},insertBreak:l=>{let y=n.current?.getView();return y?insertBreak(y,l):false},getPageContent:l=>getPageContent(n.current?.getView()??null,n.current?.getLayout()??null,l),scrollToParaId:(l,y)=>n.current?.scrollToParaId(l,y)??false,scrollToCommentId:l=>n.current?.scrollToCommentId(l)??false,scrollToChangeId:l=>n.current?.scrollToChangeId(l)??false,highlightRange:(l,y)=>{n.current?.highlightRange(l,y);},findInDocument:(l,y)=>findInDocument(n.current?.getView()??null,l,y),getSelectionInfo:()=>getSelectionInfo(n.current?.getView()??null),getComments:()=>g,getContentControls:l=>{let y=n.current?.getView();return y?findContentControlsInPM(y.state.doc,l??{}):[]},scrollToContentControl:l=>{let y=n.current?.getView();if(!y)return false;let R=findContentControlPos(y.state.doc,l);return R==null?false:(n.current?.scrollToPosition(R),true)},setContentControlContent:(l,y,R)=>{let S=n.current?.getView();if(!S)return false;try{return S.dispatch(setContentControlContentTr(S.state,l,y,R)),!0}catch(v){if(v instanceof ContentControlNotFoundError)return false;throw v}},removeContentControl:(l,y)=>{let R=n.current?.getView();if(!R)return false;try{return R.dispatch(removeContentControlTr(R.state,l,y)),!0}catch(S){if(S instanceof ContentControlNotFoundError)return false;throw S}},setContentControlValue:(l,y,R)=>{let S=n.current?.getView();if(!S)return false;try{return S.dispatch(setContentControlValueTr(S.state,l,y,R)),!0}catch(v){if(v instanceof ContentControlNotFoundError)return false;throw v}},onContentChange:l=>(f.current.add(l),()=>{f.current.delete(l);}),onSelectionChange:l=>(h.current.add(l),()=>{h.current.delete(l);})}),[o,s,c,d,p,a,m,g]);}function ji(e,t,o=false){let r=e!==void 0,[n,d]=useState(o),p=r?e:n,s=useRef(p);s.current=p;let u=useRef(r);u.current=r;let c=useRef(t);c.current=t;let a=useCallback(m=>{let g=s.current,b=typeof m=="function"?m(g):m;b!==g&&(u.current||(s.current=b,d(b)),c.current?.(b));},[]);return [p,a]}var G=e=>({style:"single",size:4,color:{rgb:e}}),Sp=[{id:"TableNormal",name:"Normal Table",look:{firstRow:false,lastRow:false,noHBand:true,noVBand:true}},{id:"TableGrid",name:"Table Grid",tableBorders:{top:G("000000"),bottom:G("000000"),left:G("000000"),right:G("000000"),insideH:G("000000"),insideV:G("000000")},look:{firstRow:false,lastRow:false,noHBand:true,noVBand:true}},{id:"TableGridLight",name:"Grid Table Light",tableBorders:{top:G("BFBFBF"),bottom:G("BFBFBF"),left:G("BFBFBF"),right:G("BFBFBF"),insideH:G("BFBFBF"),insideV:G("BFBFBF")},look:{firstRow:true,lastRow:false,noHBand:true,noVBand:true},conditionals:{firstRow:{bold:true,borders:{bottom:G("000000")}}}},{id:"PlainTable1",name:"Plain Table 1",tableBorders:{top:G("BFBFBF"),bottom:G("BFBFBF"),insideH:G("BFBFBF")},look:{firstRow:true,lastRow:false,noHBand:true,noVBand:true},conditionals:{firstRow:{bold:true}}},{id:"PlainTable2",name:"Plain Table 2",look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,borders:{bottom:G("7F7F7F")}},band1Horz:{backgroundColor:"#F2F2F2"}}},{id:"PlainTable3",name:"Plain Table 3",look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#A5A5A5"},band1Horz:{backgroundColor:"#E7E7E7"}}},{id:"PlainTable4",name:"Plain Table 4",look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#000000"},band1Horz:{backgroundColor:"#F2F2F2"}}},{id:"GridTable1Light-Accent1",name:"Grid Table 1 Light",tableBorders:{top:G("B4C6E7"),bottom:G("B4C6E7"),left:G("B4C6E7"),right:G("B4C6E7"),insideH:G("B4C6E7"),insideV:G("B4C6E7")},look:{firstRow:true,lastRow:false,noHBand:true,noVBand:true},conditionals:{firstRow:{bold:true,borders:{bottom:G("4472C4")}}}},{id:"GridTable4-Accent1",name:"Grid Table 4 Accent 1",tableBorders:{top:G("4472C4"),bottom:G("4472C4"),left:G("4472C4"),right:G("4472C4"),insideH:G("4472C4"),insideV:G("4472C4")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#4472C4"},band1Horz:{backgroundColor:"#D6E4F0"}}},{id:"GridTable5Dark-Accent1",name:"Grid Table 5 Dark",tableBorders:{top:G("FFFFFF"),bottom:G("FFFFFF"),left:G("FFFFFF"),right:G("FFFFFF"),insideH:G("FFFFFF"),insideV:G("FFFFFF")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#4472C4"},band1Horz:{backgroundColor:"#D6E4F0"},band2Horz:{backgroundColor:"#B4C6E7"}}},{id:"ListTable3-Accent2",name:"List Table 3 Accent 2",tableBorders:{top:G("ED7D31"),bottom:G("ED7D31")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#ED7D31"},band1Horz:{backgroundColor:"#FBE4D5"}}},{id:"ListTable4-Accent3",name:"List Table 4 Accent 3",tableBorders:{top:G("A5A5A5"),bottom:G("A5A5A5"),insideH:G("A5A5A5")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#A5A5A5"},band1Horz:{backgroundColor:"#EDEDED"}}},{id:"GridTable4-Accent5",name:"Grid Table 4 Accent 5",tableBorders:{top:G("5B9BD5"),bottom:G("5B9BD5"),left:G("5B9BD5"),right:G("5B9BD5"),insideH:G("5B9BD5"),insideV:G("5B9BD5")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#5B9BD5"},band1Horz:{backgroundColor:"#DEEAF6"}}},{id:"GridTable4-Accent6",name:"Grid Table 4 Accent 6",tableBorders:{top:G("70AD47"),bottom:G("70AD47"),left:G("70AD47"),right:G("70AD47"),insideH:G("70AD47"),insideV:G("70AD47")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#70AD47"},band1Horz:{backgroundColor:"#E2EFDA"}}}];function Yi(e){return Sp.find(t=>t.id===e)}function Xi({getActiveEditorView:e,focusActiveEditor:t,tableSelection:o,borderSpecRef:r,historyStateRef:n,getCachedStyleResolver:d}){let[p,s]=useState(false),[u,c]=useState({isOpen:false,initialRows:1,initialCols:2,minRows:1,minCols:1,source:null,capturedCellRow:null,capturedCellCol:null}),a=useCallback(()=>{let i=e(),f=i?getSplitCellDialogConfig(i.state):null,h=f?null:o.getSplitCellConfig(),x=f??h;x&&c({isOpen:true,...x,source:f?"pm":"legacy",capturedCellRow:f?.capturedCellRow??null,capturedCellCol:f?.capturedCellCol??null});},[e,o]),m=useCallback(i=>{let f=e();if(!f){i==="splitCell"?a():typeof i!="object"&&o.handleAction(i);return}switch(i){case "addRowAbove":addRowAbove(f.state,f.dispatch);break;case "addRowBelow":addRowBelow(f.state,f.dispatch);break;case "addColumnLeft":addColumnLeft(f.state,f.dispatch);break;case "addColumnRight":addColumnRight(f.state,f.dispatch);break;case "deleteRow":deleteRow(f.state,f.dispatch);break;case "deleteColumn":deleteColumn(f.state,f.dispatch);break;case "deleteTable":deleteTable(f.state,f.dispatch);break;case "selectTable":selectTable(f.state,f.dispatch);break;case "selectRow":selectRow(f.state,f.dispatch);break;case "selectColumn":selectColumn(f.state,f.dispatch);break;case "mergeCells":mergeCells(f.state,f.dispatch);break;case "splitCell":a();break;case "borderAll":setAllTableBorders(f.state,f.dispatch,r.current);break;case "borderOutside":setOutsideTableBorders(f.state,f.dispatch,r.current);break;case "borderInside":setInsideTableBorders(f.state,f.dispatch,r.current);break;case "borderNone":removeTableBorders(f.state,f.dispatch);break;case "borderTop":setCellBorder("top",r.current,true)(f.state,f.dispatch);break;case "borderBottom":setCellBorder("bottom",r.current,true)(f.state,f.dispatch);break;case "borderLeft":setCellBorder("left",r.current,true)(f.state,f.dispatch);break;case "borderRight":setCellBorder("right",r.current,true)(f.state,f.dispatch);break;default:if(typeof i=="object"){if(i.type==="cellFillColor")setCellFillColor(i.color)(f.state,f.dispatch);else if(i.type==="borderColor"){let h=i.color.replace(/^#/,"");r.current={...r.current,color:{rgb:h}},setTableBorderColor(i.color)(f.state,f.dispatch);}else if(i.type==="borderWidth")r.current={...r.current,size:i.size},setTableBorderWidth(i.size)(f.state,f.dispatch);else if(i.type==="cellBorder")setCellBorder(i.side,{style:i.style,size:i.size,color:{rgb:i.color.replace(/^#/,"")}})(f.state,f.dispatch);else if(i.type==="cellVerticalAlign")setCellVerticalAlign(i.align)(f.state,f.dispatch);else if(i.type==="cellMargins")setCellMargins(i.margins)(f.state,f.dispatch);else if(i.type==="cellTextDirection")setCellTextDirection(i.direction)(f.state,f.dispatch);else if(i.type==="toggleNoWrap")toggleNoWrap()(f.state,f.dispatch);else if(i.type==="rowHeight")setRowHeight(i.height,i.rule)(f.state,f.dispatch);else if(i.type==="toggleHeaderRow")toggleHeaderRow()(f.state,f.dispatch);else if(i.type==="distributeColumns")distributeColumns()(f.state,f.dispatch);else if(i.type==="autoFitContents")autoFitContents()(f.state,f.dispatch);else if(i.type==="openTableProperties")s(true);else if(i.type==="applyTableStyle"){let h=Yi(i.styleId),x=n.current;if(!h&&x?.package.styles){let l=d(x.package.styles).getStyle(i.styleId);if(l){if(h={id:l.styleId,name:l.name??l.styleId},l.tblPr?.borders){let y=l.tblPr.borders;h.tableBorders={};for(let R of ["top","bottom","left","right","insideH","insideV"]){let S=y[R];S&&(h.tableBorders[R]={style:S.style,size:S.size,color:S.color?.rgb?{rgb:S.color.rgb}:void 0});}}if(l.tblStylePr){h.conditionals={};for(let y of l.tblStylePr){let R={};if(y.tcPr?.shading?.fill&&(R.backgroundColor=`#${y.tcPr.shading.fill}`),y.tcPr?.borders){let S={};for(let v of ["top","bottom","left","right"]){let P=y.tcPr.borders[v];P&&(S[v]={style:P.style,size:P.size,color:P.color?.rgb?{rgb:P.color.rgb}:void 0});}R.borders=S;}y.rPr?.bold&&(R.bold=true),y.rPr?.color?.rgb&&(R.color=`#${y.rPr.color.rgb}`),h.conditionals[y.type]=R;}}h.look={firstRow:true,lastRow:false,noHBand:false,noVBand:true};}}h&&applyTableStyle({styleId:h.id,tableBorders:h.tableBorders,conditionals:h.conditionals,look:h.look})(f.state,f.dispatch);}}else o.handleAction(i);}t();},[o,e,t,a,r,n,d]),g=useCallback(()=>{c(i=>({...i,isOpen:false,source:null,capturedCellRow:null,capturedCellCol:null}));},[]),b=useCallback((i,f)=>{if(u.source==="legacy"){o.applySplitCell(i,f),t();return}let h=e();h&&(splitActiveTableCell(h.state,h.dispatch,i,f,u.capturedCellRow??void 0,u.capturedCellCol??void 0),t());},[t,e,u.source,u.capturedCellRow,u.capturedCellCol,o]);return {tablePropsOpen:p,setTablePropsOpen:s,splitCellDialogState:u,openSplitCellDialog:a,handleTableAction:m,handleSplitCellDialogClose:g,handleSplitCellDialogApply:b}}function Zi({document:e,pushDocument:t,hfEditorRef:o,containerRef:r,initialSectionProperties:n,finalSectionProperties:d,hfEditPosition:p,setHfEditPosition:s,hfEditIsFirstPage:u,setHfEditIsFirstPage:c}){let{headerContent:a,footerContent:m,firstPageHeaderContent:g,firstPageFooterContent:b}=useMemo(()=>{let{header:l,footer:y,firstHeader:R,firstFooter:S}=resolveHeaderFooter(e??null,d??n);return {headerContent:l,footerContent:y,firstPageHeaderContent:R,firstPageFooterContent:S}},[e,n,d]),i=useCallback((l,y)=>{let S=e?.package?.document?.finalSectionProperties?.titlePg===true&&(y??1)===1,v=S?l==="header"?g:b:l==="header"?a:m;if(c(S),v){s(l);return}if(!e?.package)return;let P=e.package,k=P.document?.finalSectionProperties;if(!k)return;let E=S?"first":"default",I=`rId_new_${l}_${E}`,w={type:l==="header"?"header":"footer",hdrFtrType:E,content:[{type:"paragraph",content:[]}]},M=l==="header"?"headers":"footers",H=new Map(P[M]??[]);H.set(I,w);let O=l==="header"?"headerReferences":"footerReferences",B=k[O]??[],V={type:E,rId:I},U=P.relationships,re=new Set;for(let pe of U?.values()??[])pe.target&&re.add(pe.target);let q=1;for(;re.has(`${l}${q}.xml`);)q++;let ie=l==="header"?"http://schemas.openxmlformats.org/officeDocument/2006/relationships/header":"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer",te=new Map(U);te.set(I,{id:I,type:ie,target:`${l}${q}.xml`});let se={...e,package:{...P,[M]:H,relationships:te,document:P.document?{...P.document,finalSectionProperties:{...k,[O]:[...B,V]}}:P.document}};t(se),s(l);},[a,m,g,b,e,t,s,c]),f=useCallback(l=>{if(!p||!e?.package){s(null);return}let y=e.package,R=y.document?.finalSectionProperties,S=p==="header"?R?.headerReferences:R?.footerReferences,v=u?"first":"default",P=S?.find(I=>I.type===v)??S?.find(I=>I.type==="default")??S?.find(I=>I.type==="first")??S?.[0],k=p==="header"?"headers":"footers",E=y[k];if(P?.rId&&E){let I=E.get(P.rId),w={type:p,hdrFtrType:P.type,...I,content:l},M=new Map(E);M.set(P.rId,w);let H={...e,package:{...y,[k]:M}};t(H);}s(null);},[p,u,e,t,s]),h=useCallback(()=>{if(!p)return;let l=o.current?.getView();if(l){let y=proseDocToBlocks(l.state.doc);f(y);}else s(null);},[p,f,o,s]),x=useCallback(()=>{if(!p||!e?.package){s(null);return}let l=e.package,y=l.document?.finalSectionProperties,R=p==="header"?"headerReferences":"footerReferences",S=p==="header"?"headers":"footers",v=y?.[R],P=u?"first":"default",k=v?.find(E=>E.type===P)??v?.find(E=>E.type==="default")??v?.find(E=>E.type==="first")??v?.[0];if(k?.rId){let E=new Map(l[S]??[]);E.delete(k.rId);let I=(v??[]).filter(M=>M.rId!==k.rId),w={...e,package:{...l,[S]:E,document:l.document?{...l.document,finalSectionProperties:{...y,[R]:I}}:l.document}};t(w);}s(null);},[p,u,e,t,s]),C=useCallback(l=>{let y=r.current?.querySelector(".paged-editor__pages");if(!y)return null;let R=l==="header"?".layout-page-header":".layout-page-footer";return y.querySelector(R)},[r]);return {headerContent:a,footerContent:m,firstPageHeaderContent:g,firstPageFooterContent:b,handleHeaderFooterDoubleClick:i,handleHeaderFooterSave:f,handleBodyClick:h,handleRemoveHeaderFooter:x,getHfTargetElement:C}}function Ji({documentBuffer:e,initialDocument:t,externalContent:o,history:r,agentRef:n,pagedEditorRef:d,setLoadingState:p,setComments:s,setShowCommentsSidebar:u,onError:c,resetForNewDocument:a,commentsLoadedRef:m,commentIdAllocator:g,setDocumentFonts:b}){let i=useRef(0),f=useCallback(x=>{a(),r.reset(x),p({isLoading:false,parseError:null}),loadDocumentFonts(x).catch(C=>{console.warn("Failed to load document fonts:",C);}),b(getRenderableDocumentFonts(x,{embeddedFamilies:getEmbeddedFontFamilies(x.package?.fontTable)}));},[a,r,p,b]),h=useCallback(async x=>{let C=++i.current;a(),p({isLoading:true,parseError:null});try{let l=await parseDocx(x);if(i.current!==C)return;f(l);}catch(l){if(i.current!==C)return;let y=l instanceof Error?l.message:"Failed to parse document";p({isLoading:false,parseError:y}),c?.(l instanceof Error?l:new Error(y));}},[a,f,c,p]);return useEffect(()=>{if(!o){if(!e){t&&f(t);return}h(e);}},[e,t,o]),useEffect(()=>{r.state?n.current=new DocumentAgent(r.state):n.current=null;},[r.state,n]),useEffect(()=>{if(m.current)return;let x=r.state;if(!x)return;m.current=true;let C=x.package?.document?.comments;C&&C.length>0&&(s(C),u(true)),seedCommentAllocator(g,C,d.current?.getView()??null);},[r.state,d,s,u,m,g]),{loadParsedDocument:f,loadBuffer:h}}var dm={inline:"wrap_text",squareLeft:"format_image_left",squareRight:"format_image_right",behind:"flip_to_back",inFront:"flip_to_front"},Po=18,oa=({isOpen:e,position:t,currentWrapType:o,currentCssFloat:r,onApplyLayout:n,textActions:d,onTextAction:p,onOpenProperties:s,onClose:u})=>{let{t:c}=b(),a=useRef(null),[m,g]=useState(0),b$2=useMemo(()=>deriveLayoutChoice(o,r),[o,r]),i=useMemo(()=>IMAGE_LAYOUT_OPTIONS.filter(l=>isImageLayoutOptionEnabled(l,o)),[o]),f=useMemo(()=>(d??[]).filter(l=>!l.disabled),[d]),h$1=s?1:0,x=h$1+i.length+f.length;useEffect(()=>{if(!e)return;let l=R=>{a.current&&!a.current.contains(R.target)&&u();},y=setTimeout(()=>{document.addEventListener("mousedown",l);},0);return ()=>{clearTimeout(y),document.removeEventListener("mousedown",l);}},[e,u]),useEffect(()=>{if(!e)return;let l=y=>{if(y.key==="Escape"){y.preventDefault(),u();return}let R=Math.max(1,x);if(y.key==="ArrowDown")y.preventDefault(),g(S=>(S+1)%R);else if(y.key==="ArrowUp")y.preventDefault(),g(S=>(S-1+R)%R);else if(y.key==="Enter"){if(y.preventDefault(),h$1&&m===0)s?.(),u();else if(m<h$1+i.length)n(i[m-h$1].choice),u();else if(p){let S=f[m-h$1-i.length];S&&(p(S.action),u());}}};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[e,m,i,f,x,h$1,n,s,p,u]),useEffect(()=>{if(!e)return;let l=b$2?i.findIndex(y=>y.choice===b$2):-1;g(l>=0?h$1+l:0);},[e,b$2,i,h$1]);let C=useCallback(()=>{let y=IMAGE_LAYOUT_OPTIONS.length,R=d?.length??0,S=y*36+R*32+(R>0?9:0)+16,v=t.x,P=t.y;return typeof window<"u"&&(v+260>window.innerWidth&&(v=window.innerWidth-260-10),P+S>window.innerHeight&&(P=window.innerHeight-S-10),v<10&&(v=10),P<10&&(P=10)),{position:"fixed",top:P,left:v,minWidth:260,background:"var(--doc-surface)",border:"1px solid var(--doc-border-light)",borderRadius:"8px",boxShadow:"0 2px 10px var(--doc-shadow)",zIndex:h.contextMenu,padding:"4px 0",overflow:"hidden"}},[t,d]);return e?jsxs("div",{ref:a,className:"docx-image-context-menu",style:C(),role:"menu","aria-label":c("imageWrap.menu.ariaLabel"),"data-testid":"image-context-menu",children:[s&&jsxs(Fragment,{children:[jsxs("button",{type:"button",role:"menuitem","data-action":"open-properties",onClick:()=>{s(),u();},onMouseEnter:()=>g(0),style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"8px 12px",border:"none",background:m===0?"var(--doc-primary-light)":"transparent",cursor:"pointer",fontSize:"13px",color:"var(--doc-text)",textAlign:"left"},children:[jsx("span",{style:{display:"flex",color:"var(--doc-text-muted)",width:Po},children:jsx(b$1,{name:"settings",size:Po})}),jsx("span",{style:{flex:1},children:c("imageWrap.menu.imageProperties")})]}),jsx("div",{style:{height:1,background:"var(--doc-border-light)",margin:"4px 0"},role:"separator"})]}),IMAGE_LAYOUT_OPTIONS.map(l=>{let y=l.choice===b$2,R=isImageLayoutOptionEnabled(l,o),S=R?h$1+i.findIndex(k=>k.choice===l.choice):-1,v=S>=0&&S===m,P=c(`imageWrap.menuDesc.${l.i18nDescKey}`);return jsxs("button",{type:"button",role:"menuitem","data-wrap-type":l.choice,"data-current":y?"true":"false","data-disabled":R?"false":"true",disabled:!R,onClick:()=>{R&&(n(l.choice),u());},onMouseEnter:()=>{S>=0&&g(S);},title:P,style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"8px 12px",border:"none",background:v?"var(--doc-primary-light)":"transparent",cursor:R?"pointer":"not-allowed",fontSize:"13px",color:R?"var(--doc-text)":"var(--doc-text-placeholder)",textAlign:"left",opacity:R?1:.55},children:[jsx("span",{style:{display:"flex",color:y?"var(--doc-primary)":"var(--doc-text-muted)",width:Po},children:jsx(b$1,{name:dm[l.iconHint],size:Po})}),jsx("span",{style:{flex:1},children:c(`imageWrap.menu.${l.i18nLabelKey}`)}),y&&jsx("span",{style:{fontSize:"11px",color:"var(--doc-primary)"},"aria-label":c("toolbar.imageWrap.current"),children:"\u25CF"})]},l.choice)}),d&&d.length>0&&jsxs(Fragment,{children:[jsx("div",{style:{height:1,background:"var(--doc-border-light)",margin:"4px 0"},role:"separator"}),d.map((l,y)=>{let R=l.disabled?-1:h$1+i.length+f.findIndex(v=>v.action===l.action),S=R===m&&!l.disabled;return jsxs(ql.Fragment,{children:[jsxs("button",{type:"button",role:"menuitem","data-action":l.action,"data-disabled":l.disabled?"true":"false",disabled:l.disabled,onClick:()=>{l.disabled||!p||(p(l.action),u());},onMouseEnter:()=>{R>=0&&g(R);},style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"7px 12px",border:"none",background:S?"var(--doc-primary-light)":"transparent",cursor:l.disabled?"not-allowed":"pointer",fontSize:"13px",color:l.disabled?"var(--doc-text-placeholder)":"var(--doc-text)",textAlign:"left",opacity:l.disabled?.55:1},children:[jsx("span",{style:{width:Po},"aria-hidden":"true"}),jsx("span",{style:{flex:1},children:l.label}),l.shortcut&&jsx("span",{style:{fontSize:"11px",color:"var(--doc-text-muted)",fontFamily:"monospace"},children:l.shortcut})]}),l.dividerAfter&&jsx("div",{style:{height:1,background:"var(--doc-border-light)",margin:"4px 0"},role:"separator"})]},`${l.action}-${y}`)})]})]}):null};function na(){let[e,t]=useState(false),[o,r]=useState({x:0,y:0}),[n,d]=useState("inline"),[p,s]=useState(null),[u,c]=useState(null),[a,m]=useState(null),g=useCallback(i=>{r({x:i.x,y:i.y}),d(i.wrapType),s(i.cssFloat??null),c(i.pos),m(i.inlinePositionEmu??null),t(true);},[]),b=useCallback(()=>{t(false),c(null),m(null);},[]);return {isOpen:e,position:o,currentWrapType:n,currentCssFloat:p,imagePos:u,inlinePositionEmu:a,openForImage:g,closeMenu:b}}function cn(e,t,o){if(!e||!t)return null;let r=e.querySelector(".paged-editor__pages");if(!r)return null;for(let n of findBodyPmAnchors(r)){let d=Number(n.dataset.pmStart),p=Number(n.dataset.pmEnd);if(o>=d&&o<=p)return n.getBoundingClientRect().top-t.getBoundingClientRect().top}return null}function ra(e){let t=e?.package?.document;return t?.sections?.[0]?.properties??t?.finalSectionProperties}function la({getActiveEditorView:e,focusActiveEditor:t,openSplitCellDialog:o,scrollContainerRef:r,editorContentRef:n,i18n:d,onAddComment:p}){let{t:s}=b(),[u,c]=useState({isOpen:false,position:{x:0,y:0},hasSelection:false,cursorInTable:false,tableContext:null}),a=na(),m=useCallback(C=>{let l=C.target;if(l?.closest(".paged-editor__pages")&&!l.closest(".hf-inline-editor"))return;C.preventDefault(),C.stopPropagation();let y=e(),R=y?getTableContext(y.state):{isInTable:false},{from:S,to:v}=y?.state.selection??{from:0,to:0},P=S!==v;c({isOpen:true,position:{x:C.clientX,y:C.clientY},hasSelection:P,cursorInTable:R.isInTable,tableContext:R.isInTable?R:null});},[e]),g=useCallback(C=>{if(C.image){a.openForImage({x:C.x,y:C.y,wrapType:C.image.wrapType,cssFloat:C.image.cssFloat,pos:C.image.pos,inlinePositionEmu:C.image.inlinePositionEmu});return}let l=e(),y=l?getTableContext(l.state):{isInTable:false};c({isOpen:true,position:C,hasSelection:C.hasSelection,cursorInTable:y.isInTable,tableContext:y.isInTable?y:null});},[e,a]),b$1=useCallback(C=>{let l=e();if(!l||a.imagePos===null)return;let y=a.inlinePositionEmu?{initialPositionEmu:a.inlinePositionEmu}:void 0;setImageWrapType(a.imagePos,C,y)(l.state,l.dispatch);},[e,a.imagePos,a.inlinePositionEmu]),i=useMemo(()=>[{action:"cut",label:s("contextMenu.cut"),shortcut:a$2(s("contextMenu.cutShortcut"))},{action:"copy",label:s("contextMenu.copy"),shortcut:a$2(s("contextMenu.copyShortcut"))},{action:"paste",label:s("contextMenu.paste"),shortcut:a$2(s("contextMenu.pasteShortcut")),dividerAfter:true},{action:"delete",label:s("contextMenu.delete"),shortcut:a$2(s("contextMenu.deleteShortcut"))}],[s]),f=useCallback(()=>{c({isOpen:false,position:{x:0,y:0},hasSelection:false,cursorInTable:false,tableContext:null});},[]),h=useMemo(()=>{let C=[{action:"cut",label:s("contextMenu.cut"),shortcut:a$2(s("contextMenu.cutShortcut"))},{action:"copy",label:s("contextMenu.copy"),shortcut:a$2(s("contextMenu.copyShortcut"))},{action:"paste",label:s("contextMenu.paste"),shortcut:a$2(s("contextMenu.pasteShortcut"))},{action:"pasteAsPlainText",label:s("contextMenu.pastePlainText"),shortcut:a$2(s("contextMenu.pastePlainTextShortcut")),dividerAfter:true},{action:"delete",label:s("contextMenu.delete"),shortcut:a$2(s("contextMenu.deleteShortcut")),dividerAfter:!u.hasSelection&&!u.cursorInTable}];return u.hasSelection&&C.push({action:"addComment",label:"Comment",dividerAfter:!u.cursorInTable}),u.cursorInTable&&C.push({action:"addRowAbove",label:"Insert row above"},{action:"addRowBelow",label:"Insert row below"},{action:"deleteRow",label:"Delete row",dividerAfter:true},{action:"addColumnLeft",label:"Insert column left"},{action:"addColumnRight",label:"Insert column right"},{action:"deleteColumn",label:"Delete column"},{action:"mergeCells",label:d?.table?.mergeCells??en.table.mergeCells,disabled:!u.tableContext?.hasMultiCellSelection},{action:"splitCell",label:d?.table?.splitCell??en.table.splitCell,disabled:!u.tableContext?.canSplitCell,dividerAfter:true},{action:"selectTable",label:d?.table?.selectTable??en.table.selectTable},{action:"deleteTable",label:d?.table?.deleteTable??en.table.deleteTable,dividerAfter:true}),C.push({action:"selectAll",label:s("contextMenu.selectAll"),shortcut:a$2(s("contextMenu.selectAllShortcut"))}),C},[u.hasSelection,u.cursorInTable,u.tableContext,d,s]),x=useCallback(async C=>{let l=e();if(l)switch(t(),C){case "cut":document.execCommand("cut");break;case "copy":document.execCommand("copy");break;case "paste":{try{let y=await navigator.clipboard.read(),R="",S="";for(let k of y)k.types.includes("text/html")&&(R=await(await k.getType("text/html")).text()),k.types.includes("text/plain")&&(S=await(await k.getType("text/plain")).text());let v=new DataTransfer;R&&v.items.add(R,"text/html"),S&&v.items.add(S,"text/plain");let P=new ClipboardEvent("paste",{clipboardData:v,bubbles:!0,cancelable:!0});l.dom.dispatchEvent(P);}catch{try{let y=await navigator.clipboard.readText();y&&l.dispatch(l.state.tr.insertText(y));}catch{}}break}case "pasteAsPlainText":try{let y=await navigator.clipboard.readText();y&&l.dispatch(l.state.tr.insertText(y));}catch{}break;case "delete":{let{from:y,to:R}=l.state.selection;y!==R&&l.dispatch(l.state.tr.deleteRange(y,R));break}case "selectAll":l.dispatch(l.state.tr.setSelection(TextSelection.create(l.state.doc,0,l.state.doc.content.size)));break;case "addRowAbove":addRowAbove(l.state,l.dispatch);break;case "addRowBelow":addRowBelow(l.state,l.dispatch);break;case "deleteRow":deleteRow(l.state,l.dispatch);break;case "addColumnLeft":addColumnLeft(l.state,l.dispatch);break;case "addColumnRight":addColumnRight(l.state,l.dispatch);break;case "deleteColumn":deleteColumn(l.state,l.dispatch);break;case "mergeCells":mergeCells(l.state,l.dispatch);break;case "splitCell":o();break;case "selectTable":selectTable(l.state,l.dispatch);break;case "deleteTable":deleteTable(l.state,l.dispatch);break;case "addComment":{let{from:y,to:R}=l.state.selection;if(y===R)break;let S=cn(r.current,n.current,y),v=l.state.schema.marks.comment.create({commentId:PENDING_COMMENT_ID}),P=l.state.tr.addMark(y,R,v);P.setSelection(TextSelection.create(P.doc,R)),l.dispatch(P),p({from:y,to:R,yPos:S});break}}},[e,t,o,r,n,p]);return {contextMenu:u,imageContextMenu:a,handleEditorContextMenu:m,handleContextMenu:g,handleContextMenuClose:f,handleImageWrapApply:b$1,imageContextMenuTextActions:i,contextMenuItems:h,handleContextMenuAction:x}}function da({commentsProp:e,onCommentDelete:t,onCommentsChange:o,pagedEditorRef:r}){let[n,d]=useState([]),p=e!==void 0,s=p?e:n,[u,c]=useState(false),[a,m]=useState(null),[g,b]=useState(null),[i,f]=useState(null),h=useRef(null),x=useRef(s);x.current=s;let C=useRef(u);C.current=u;let l=useRef(t);l.current=t;let y=useRef(o);y.current=o;let R=useCallback(v=>{let P=typeof v=="function"?v(x.current):v;P!==x.current&&(p||(x.current=P,d(P)),y.current?.(P));},[p]),S=useCallback(()=>{if(C.current)return;let v=r.current?.getView();if(!v)return;let{doc:P,schema:k}=v.state,E=k.marks.comment;if(!E)return;let I=new Set;P.descendants(H=>{for(let O of H.marks)if(O.type===E){let B=O.attrs.commentId;B!==PENDING_COMMENT_ID&&I.add(B);}});let w=x.current,M=new Set;for(let H of w)H.parentId==null&&!I.has(H.id)&&M.add(H.id);if(M.size!==0){for(let H of w)M.has(H.id)&&l.current?.(H);R(H=>H.filter(O=>!M.has(O.id)&&!M.has(O.parentId)));}},[r,R]);return useEffect(()=>()=>{h.current&&clearTimeout(h.current);},[]),{comments:s,setComments:R,isAddingComment:u,setIsAddingComment:c,isAddingCommentRef:C,commentSelectionRange:a,setCommentSelectionRange:m,addCommentYPosition:g,setAddCommentYPosition:b,floatingCommentBtn:i,setFloatingCommentBtn:f,cleanOrphanedCommentsTimerRef:h,cleanOrphanedComments:S}}function pa({commentToRevision:e,setComments:t,pmState:o,isLoading:r,trackedChangesCount:n,setShowCommentsSidebar:d,trackedChangesLoadedRef:p}){useEffect(()=>{e.size!==0&&t(s=>{let u=false,c=s.map(a=>{if(a.parentId!=null)return a;let m=e.get(a.id);return m!=null?(u=true,{...a,parentId:m}):a});return u?c:s});},[e,t]),useEffect(()=>{p.current||r||!o||(p.current=true,n>0&&d(true));},[o,r,n,d,p]);}function fa({getActiveEditorView:e,lastSelectionRef:t,borderSpecRef:o,theme:r,historyStateRef:n,getCachedStyleResolver:d,setFloatingCommentBtn:p,applySelectionDelta:s,recomputeFloatingCommentBtn:u,onSelectionChange:c,selectionChangeSubscribersRef:a}){return {handleSelectionChange:useCallback(g=>{let b=e();if(b){let{from:k,to:E}=b.state.selection;t.current={from:k,to:E};}let i=null;if(b&&(i=getTableContext(b.state),i.isInTable||(i=null)),i?.cellBorderColor){let k=resolveColorToHex(i.cellBorderColor,r??void 0);k&&(o.current={...o.current,color:{rgb:k}});}let f=null;if(b){let k=b.state.selection,E=k.node;E?.type.name==="image"&&(f={pos:k.from,wrapType:E.attrs.wrapType??"inline",displayMode:E.attrs.displayMode??"inline",cssFloat:E.attrs.cssFloat??null,transform:E.attrs.transform??null,alt:E.attrs.alt??null,borderWidth:E.attrs.borderWidth??null,borderColor:E.attrs.borderColor??null,borderStyle:E.attrs.borderStyle??null,width:E.attrs.width??null,height:E.attrs.height??null});}if(!g){p(null),s({selectionFormatting:{},pmTableContext:i,pmImageContext:f});return}let{textFormatting:h,paragraphFormatting:x}=g,C=h.fontFamily?.ascii||h.fontFamily?.hAnsi,l=h.fontSize;if(!C||!l){let k=n.current,E=g.styleId;if(k?.package.styles&&E){let w=d(k.package.styles).resolveParagraphStyle(E);!C&&w.runFormatting?.fontFamily&&(C=w.runFormatting.fontFamily.ascii||w.runFormatting.fontFamily.hAnsi),!l&&w.runFormatting?.fontSize&&(l=w.runFormatting.fontSize);}}let y=resolveColorToHex(h.color,r??void 0),R=y?`#${y}`:void 0,S=x.numPr,v=S?{type:S.numId===1?"bullet":"numbered",level:S.ilvl??0,isInList:true,numId:S.numId}:void 0,P={bold:h.bold,italic:h.italic,underline:!!h.underline,strike:h.strike,superscript:h.vertAlign==="superscript",subscript:h.vertAlign==="subscript",fontFamily:C,fontSize:l,color:R,highlight:h.highlight,alignment:x.alignment,lineSpacing:x.lineSpacing,listState:v,styleId:g.styleId??void 0,indentLeft:x.indentLeft,bidi:!!x.bidi};s({selectionFormatting:P,paragraphIndentLeft:x.indentLeft??0,paragraphIndentRight:x.indentRight??0,paragraphFirstLineIndent:x.indentFirstLine??0,paragraphHangingIndent:x.hangingIndent??false,paragraphTabs:x.tabs??null,pmTableContext:i,pmImageContext:f}),u(),c?.(g);for(let k of a.current)try{k(g);}catch(E){console.error("selectionChange subscriber threw:",E);}},[e,t,o,r,n,d,p,s,u,c,a])}}function ba({pagedEditorRef:e,scrollContainerRef:t,editorContentRef:o,isAddingCommentRef:r,setFloatingCommentBtn:n,readOnly:d,isLoading:p,zoom:s}){let u=useRef(false);u.current=d;let c=useCallback(()=>{let a=e.current?.getView();if(!a)return;if(r.current||u.current){n(null);return}let{from:m,to:g}=a.state.selection;if(m===g){n(null);return}let b=t.current,i=o.current;if(!b||!i)return;let f=cn(b,i,m);if(f==null)return;let x=b.querySelector(".paged-editor__pages")?.querySelector(".layout-page"),C=x?x.getBoundingClientRect().right-i.getBoundingClientRect().left:i.getBoundingClientRect().width/2+408;n({top:f,left:C});},[e,t,o,r,n]);return useEffect(()=>{let a=t.current;if(!a)return;let m=new ResizeObserver(()=>c());m.observe(a);let g=()=>c();return window.addEventListener("resize",g),()=>{m.disconnect(),window.removeEventListener("resize",g);}},[p,c,t]),useEffect(()=>{c();},[s,c]),{recomputeFloatingCommentBtn:c}}function ha({hfEditPosition:e,hfEditorRef:t,pagedEditorRef:o}){let r=useCallback(()=>e&&t.current?t.current.getView():o.current?.getView(),[e,t,o]),n=useCallback(()=>{e&&t.current?t.current.focus():o.current?.focus();},[e,t,o]),d=useCallback(()=>{e&&t.current?t.current.undo():o.current?.undo();},[e,t,o]),p=useCallback(()=>{e&&t.current?t.current.redo():o.current?.redo();},[e,t,o]);return {getActiveEditorView:r,focusActiveEditor:n,undoActiveEditor:d,redoActiveEditor:p}}function ya({scrollContainerRef:e,pagedEditorRef:t}){let[o,r]=useState({currentPage:1,totalPages:1,visible:false}),n=useRef(null),d=e.current;return useEffect(()=>{if(!d)return;let p=()=>{let s=t.current?.getLayout();if(!s||s.pages.length===0)return;let u=d.scrollTop,c=s.pages.length,a=24,m=24,g=u+d.clientHeight/2,b=m,i=1;for(let f=0;f<s.pages.length;f++){let h=s.pages[f].size.h,x=b+h;if(g<x){i=f+1;break}b=x+a,i=f+2;}i=Math.min(i,c),r({currentPage:i,totalPages:c,visible:true}),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{r(f=>({...f,visible:false}));},600);};return d.addEventListener("scroll",p,{passive:true}),()=>{d.removeEventListener("scroll",p),n.current&&clearTimeout(n.current);}},[d,t]),{scrollPageInfo:o,setScrollPageInfo:r}}function va({contextMenu:e,contextMenuItems:t,onContextMenuAction:o,onContextMenuClose:r,imageContextMenu:n,onImageWrapApply:d,imageContextMenuTextActions:p,onOpenImageProperties:s,readOnly:u}){return jsxs(Fragment,{children:[jsx(i$1,{isOpen:e.isOpen,position:e.position,hasSelection:e.hasSelection,isEditable:!u,items:t,onAction:o,onClose:r}),jsx(oa,{isOpen:n.isOpen,position:n.position,currentWrapType:n.currentWrapType,currentCssFloat:n.currentCssFloat,onApplyLayout:d,textActions:p,onTextAction:o,onOpenProperties:s,onClose:n.closeMenu}),jsx(Toaster,{position:"bottom-right"})]})}var Om=lazy(()=>import('./FindReplaceDialog-KU5TEIBJ.mjs')),Bm=lazy(()=>import('./HyperlinkDialog-ZYH7ZHRF.mjs')),Nm=lazy(()=>import('./TablePropertiesDialog-TMLKGOOW.mjs').then(e=>({default:e.TablePropertiesDialog}))),zm=lazy(()=>import('./SplitCellDialog-IFBKYCD6.mjs')),_m=lazy(()=>import('./ImagePositionDialog-HEWYR6Q3.mjs').then(e=>({default:e.ImagePositionDialog}))),Vm=lazy(()=>import('./ImagePropertiesDialog-RAB47C6M.mjs').then(e=>({default:e.ImagePropertiesDialog}))),Wm=lazy(()=>import('./FootnotePropertiesDialog-W3YHM4BV.mjs').then(e=>({default:e.FootnotePropertiesDialog}))),Um=lazy(()=>import('./PageSetupDialog-AIGIXO3E.mjs').then(e=>({default:e.PageSetupDialog}))),$m=lazy(()=>import('./WatermarkDialog-KRL7WMIS.mjs').then(e=>({default:e.WatermarkDialog})));function Ca({findReplace:e,findResultRef:t,onFind:o,onFindNext:r,onFindPrevious:n,onReplace:d,onReplaceAll:p,hyperlinkDialog:s,onHyperlinkSubmit:u,onHyperlinkRemove:c,tablePropsOpen:a,onTablePropsClose:m,pmTableContext:g,getActiveEditorView:b,splitCellDialogState:i,onSplitCellDialogClose:f,onSplitCellDialogApply:h,imagePositionOpen:x,onImagePositionClose:C,onApplyImagePosition:l,imagePropsOpen:y,onImagePropsClose:R,onApplyImageProperties:S,pmImageContext:v,showPageSetup:P,onPageSetupClose:k,onPageSetupApply:E,showWatermark:I,onWatermarkClose:w,onWatermarkApply:M,currentWatermark:H,watermarkPresets:O,document:B,footnotePropsOpen:V,onFootnotePropsClose:U,onApplyFootnoteProperties:re}){return jsxs(Suspense,{fallback:null,children:[e.state.isOpen&&jsx(Om,{isOpen:e.state.isOpen,onClose:e.close,onFind:o,onFindNext:r,onFindPrevious:n,onReplace:d,onReplaceAll:p,initialSearchText:e.state.searchText,replaceMode:e.state.replaceMode,currentResult:t.current}),s.state.isOpen&&jsx(Bm,{isOpen:s.state.isOpen,onClose:s.close,onSubmit:u,onRemove:s.state.isEditing?c:void 0,initialData:s.state.initialData,selectedText:s.state.selectedText,isEditing:s.state.isEditing}),a&&jsx(Nm,{isOpen:a,onClose:m,onApply:q=>{let ie=b();ie&&setTableProperties(q)(ie.state,ie.dispatch);},currentProps:g?.table?.attrs}),i.isOpen&&jsx(zm,{isOpen:i.isOpen,onClose:f,onApply:h,initialRows:i.initialRows,initialCols:i.initialCols,minRows:i.minRows,minCols:i.minCols}),x&&jsx(_m,{isOpen:x,onClose:C,onApply:l}),y&&jsx(Vm,{isOpen:y,onClose:R,onApply:S,currentData:v?{alt:v.alt??void 0,borderWidth:v.borderWidth??void 0,borderColor:v.borderColor??void 0,borderStyle:v.borderStyle??void 0,width:v.width??void 0,height:v.height??void 0}:void 0}),P&&jsx(Um,{isOpen:P,onClose:k,onApply:E,currentProps:B?.package.document?.finalSectionProperties}),I&&jsx($m,{isOpen:I,onClose:w,onApply:M,current:H,presets:O}),V&&jsx(Wm,{isOpen:V,onClose:U,onApply:re,footnotePr:B?.package.document?.finalSectionProperties?.footnotePr,endnotePr:B?.package.document?.finalSectionProperties?.endnotePr})]})}function Ra({active:e,onClick:t}){let{t:o}=b(),r=o("editor.toggleCommentsSidebar");return jsx(A,{onClick:t,active:e,title:r,ariaLabel:r,children:jsx(b$1,{name:"comment",size:20})})}var br=[{value:"editing",labelKey:"editor.editing",icon:"edit_note",descKey:"editor.editingDescription"},{value:"suggesting",labelKey:"editor.suggesting",icon:"rate_review",descKey:"editor.suggestingDescription"},{value:"viewing",labelKey:"editor.viewing",icon:"visibility",descKey:"editor.viewingDescription"}];function Pa({mode:e,onModeChange:t}){let{t:o}=b(),[r,n]=useState(false),[d,p]=useState(false),s=useRef(null),u=useRef(null),[c,a]=useState({top:0,left:0}),m=br.find(g=>g.value===e);return useEffect(()=>{let g=window.matchMedia("(max-width: 1400px)");p(g.matches);let b=i=>p(i.matches);return g.addEventListener("change",b),()=>g.removeEventListener("change",b)},[]),useEffect(()=>{if(!r||!s.current)return;let g=s.current.getBoundingClientRect();a({top:g.bottom+2,left:g.right-220});},[r]),useEffect(()=>{if(!r)return;let g=i=>{!s.current?.contains(i.target)&&!u.current?.contains(i.target)&&n(false);},b=i=>{i.key==="Escape"&&n(false);};return document.addEventListener("mousedown",g),document.addEventListener("keydown",b),()=>{document.removeEventListener("mousedown",g),document.removeEventListener("keydown",b);}},[r]),jsxs("div",{style:{position:"relative"},children:[jsxs("button",{ref:s,type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>n(!r),title:`${o(m.labelKey)} (Ctrl+Shift+E)`,style:{display:"flex",alignItems:"center",gap:d?0:4,padding:d?"2px 4px":"2px 6px 2px 4px",border:"none",background:r?"var(--doc-bg-hover)":"transparent",borderRadius:4,cursor:"pointer",fontSize:13,fontWeight:400,color:"var(--doc-text)",whiteSpace:"nowrap",height:28},children:[jsx(b$1,{name:m.icon,size:18}),!d&&jsx("span",{children:o(m.labelKey)}),jsx(b$1,{name:"arrow_drop_down",size:16})]}),r&&jsx("div",{ref:u,onMouseDown:g=>g.preventDefault(),style:{position:"fixed",top:c.top,left:c.left,backgroundColor:"var(--doc-surface)",border:"1px solid var(--doc-border)",borderRadius:8,boxShadow:"0 4px 12px var(--doc-shadow)",padding:"4px 0",zIndex:1e4,minWidth:220},children:br.map(g=>jsxs("button",{type:"button",onMouseDown:b=>b.preventDefault(),onClick:()=>{t(g.value),n(false);},onMouseOver:b=>{b.currentTarget.style.backgroundColor="var(--doc-bg-hover)";},onMouseOut:b=>{b.currentTarget.style.backgroundColor="transparent";},style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",border:"none",background:"transparent",cursor:"pointer",fontSize:13,color:"var(--doc-text)",width:"100%",textAlign:"left"},children:[jsx(b$1,{name:g.icon,size:20}),jsxs("span",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start"},children:[jsx("span",{style:{fontWeight:500},children:o(g.labelKey)}),jsx("span",{style:{fontSize:11,color:"var(--doc-text-muted)"},children:o(g.descKey)})]}),g.value===e&&jsx(b$1,{name:"check",size:18,style:{marginLeft:"auto",color:"var(--doc-primary)"}})]},g.value))})]})}function Ta({active:e,onClick:t,badge:o}){let{t:r}=b(),n=r("agentPanel.toggle");return jsx(A,{onClick:t,active:e,title:n,ariaLabel:n,children:jsxs("span",{style:{position:"relative",display:"inline-flex"},children:[jsx(b$1,{name:"agent-sparkle",size:20}),o!=null&&jsx("span",{"data-testid":"agent-panel-toggle-badge",style:{position:"absolute",top:-4,right:-6,display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:14,height:14,padding:"0 3px",borderRadius:7,fontSize:10,fontWeight:600,background:"var(--doc-error)",color:"var(--doc-on-primary)",lineHeight:1},children:o})]})})}function wa({toolbarRefCallback:e,agentPanelOpen:t,setAgentPanelOpen:o,document:r,theme:n,pmState:d,selectionFormatting:p,tableContext:s,imageContext:u,readOnly:c,editingMode:a,setEditingMode:m,setShowCommentsSidebar:g,setExpandedSidebarItem:b,showCommentsSidebar:i,agentPanel:f,renderLogo:h,documentName:x,onDocumentNameChange:C$1,documentNameEditable:l,renderTitleBarRight:y,toolbarExtra:R,fontFamilies:S,documentFonts:v,zoom:P,showZoomControl:k,onFormat:E$1,onUndo:I,onRedo:w,onPrint:M,showFileOpen:H,showHelpMenu:O,onOpen:B,onSave:V,onZoomChange:U,onRefocusEditor:re,onInsertTable:q,onInsertImage:ie,onInsertPageBreak:te,onInsertSectionBreakNextPage:se,onInsertSectionBreakContinuous:pe,onInsertTOC:Me,onImageWrapType:Te,onImageTransform:D,onOpenImageProperties:L,onPageSetup:N,onWatermark:W,onTableAction:_}){return jsx("div",{ref:e,className:"z-50 flex flex-col gap-0 flex-shrink-0",children:jsxs(E,{className:t?"rounded-br-2xl":void 0,style:{transition:"border-radius 220ms cubic-bezier(0.4, 0, 0.2, 1)"},currentFormatting:p,onFormat:E$1,onUndo:I,onRedo:w,canUndo:d?undoDepth(d)>0:false,canRedo:d?redoDepth(d)>0:false,disabled:c,documentStyles:r?.package.styles?.styles,theme:r?.package.theme||n,fontFamilies:S,documentFonts:v,onPrint:M,onOpen:H?B:void 0,onSave:V,showZoomControl:k,zoom:P,onZoomChange:U,onRefocusEditor:re,onInsertTable:q,showTableInsert:true,showHelpMenu:O,onInsertImage:ie,onInsertPageBreak:te,onInsertSectionBreakNextPage:se,onInsertSectionBreakContinuous:pe,onInsertTOC:Me,imageContext:u,onImageWrapType:Te,onImageTransform:D,onOpenImageProperties:L,onPageSetup:N,onWatermark:W,tableContext:s,onTableAction:_,children:[jsxs(E.TitleBar,{children:[h&&jsx(E.Logo,{children:h()}),x!==void 0&&jsx(E.DocumentName,{value:x,onChange:C$1,editable:l}),y&&jsx(E.TitleBarRight,{children:y()}),jsx(E.MenuBar,{})]}),jsxs(E.Toolbar,{children:[jsx(C,{}),jsx(Ra,{active:i,onClick:()=>{g(X=>!X),b(null);}}),jsx(C,{}),jsx(Pa,{mode:a,onModeChange:X=>{m(X),X==="suggesting"&&g(true);}}),f&&f.showToolbarButton!==false&&jsxs(Fragment,{children:[jsx(C,{}),jsx(Ta,{active:t,badge:f.toolbarBadge,onClick:()=>o(!t)})]}),R]})]})})}function Ea(e,t,o){let r=e.parentElement?.querySelector('[data-testid="selection-overlay"]');if(!r)return null;let n=r.getBoundingClientRect(),d=getCaretPositionFromDom(e,t,n,o);return d?{x:d.x/o,y:d.y/o,height:d.height,pageIndex:d.pageIndex}:null}function Ia(e,t,o,r,n){return getSelectionRectsFromDom(e,o,r,t).map(p=>({x:p.x/n,y:p.y/n,width:p.width/n,height:p.height/n,pageIndex:p.pageIndex}))}var bf={position:"fixed",left:"-9999px",top:"0",opacity:0,zIndex:-1,pointerEvents:"none",userSelect:"none",overflowAnchor:"none"};function Ha(e,t,o,r=[]){let n=o?.getSchema()??schema,d=t??e?.package?.styles,p=e?toProseDoc(e,{styles:d}):createEmptyDoc(),s=createDocumentStylesPlugin(d),u=createDocumentContextPlugin({theme:e?.package?.theme??null,defaultTableStyleId:e?.package?.settings?.defaultTableStyle??null}),c=[...r,...o?.getPlugins()??[],s,u];return ensureParaIdsInState(EditorState.create({doc:p,schema:n,plugins:c}))}function hf(e,t){return t?fromProseDoc(e.doc,t):null}var yf=forwardRef(function(t,o){let{document:r,styles:n,theme:d,widthPx:p=612,readOnly:s=false,onTransaction:u,onSelectionChange:c,externalPlugins:a=[],extensionManager:m,onEditorViewReady:g,onEditorViewDestroy:b,onKeyDown:i}=t,f=useRef(null),h=useRef(null),x=useRef(r),C=useRef(false),l=useRef(null),y=useRef(false),R=useRef(u),S=useRef(c),v=useRef(g),P=useRef(b),k=useRef(i),E=useRef(s);R.current=u,S.current=c,v.current=g,P.current=b,k.current=i,E.current=s,x.current=r;let I=V=>{if(!V)return "empty";let U=V.package?.properties;return `${U?.created||""}-${U?.modified||""}-${U?.title||""}`},w=useCallback(()=>{if(!f.current||C.current)return;let U={state:Ha(r,n,m,a),editable:()=>!E.current,attributes:{style:"overflow-anchor: none"},dispatchTransaction(q){if(C.current)return;h.current||(h.current=this),stripScrollFlag(q,this.state.tr);let ie=this.state.apply(q);this.updateState(ie),R.current?.(q,ie),(q.selectionSet||q.docChanged)&&S.current?.(ie);},handleKeyDown:(q,ie)=>k.current?.(q,ie)??false,handleScrollToSelection:()=>true,handleDOMEvents:{focus:()=>false,blur:()=>false}};h.current=new EditorView(f.current,U);let re=h.current.dom;re.style.overflowAnchor="none",y.current=true,l.current=I(r),v.current?.(h.current);},[r,n,a,m,s]),M=useCallback(()=>{h.current&&!C.current&&(C.current=true,P.current?.(),h.current.destroy(),h.current=null,C.current=false);},[]);useEffect(()=>(w(),()=>M()),[]),useEffect(()=>{if(!h.current||C.current)return;let V=I(r);if(y.current&&V===l.current)return;y.current=true,l.current=V;let U=Ha(r,n,m,a);h.current.updateState(U),S.current?.(U);},[r,n,m,a]),useEffect(()=>{h.current;},[s]),useImperativeHandle(o,()=>({getState(){return h.current?.state??null},getView(){return h.current??null},getDocument(){return h.current?hf(h.current.state,x.current):null},focus(){h.current?.focus();},blur(){h.current?.hasFocus()&&h.current.dom.blur();},isFocused(){return h.current?.hasFocus()??false},dispatch(V){h.current&&!C.current&&h.current.dispatch(V);},executeCommand(V){return h.current?V(h.current.state,h.current.dispatch,h.current):false},undo(){return h.current?undo(h.current.state,h.current.dispatch):false},redo(){return h.current?redo(h.current.state,h.current.dispatch):false},canUndo(){return h.current?undo(h.current.state):false},canRedo(){return h.current?redo(h.current.state):false},setSelection(V,U){if(!h.current)return;let{state:re,dispatch:q}=h.current,ie=re.doc.resolve(V),te=U!==void 0?re.doc.resolve(U):ie,se=TextSelection.between(ie,te);q(re.tr.setSelection(se));},setNodeSelection(V){if(!h.current)return;let{state:U,dispatch:re}=h.current;try{let q=NodeSelection.create(U.doc,V);re(U.tr.setSelection(q));}catch{this.setSelection(V);}},setCellSelection(V,U){if(!h.current)return;let{state:re,dispatch:q}=h.current;try{let ie=CellSelection.create(re.doc,V,U);q(re.tr.setSelection(ie));}catch{this.setSelection(V,U);}},scrollToSelection(){}}),[]);let H=jsx("div",{ref:f,className:"paged-editor__hidden-pm",style:{...bf,width:p>0?`${p}px`:void 0}}),O=globalThis.document,B=O&&"body"in O&&O.body!=null?O.body:null;return B?createPortal(H,B):H}),Fa=memo(yf);function Of(e,t,o,r,n,d,p,s){let u=headerFooterToProseDoc(e.content,{styles:t??void 0,theme:o??null,defaultTabStopTwips:r??null}),c=createDocumentStylesPlugin(t),a=createDocumentContextPlugin({theme:o??null,defaultTableStyleId:n??null}),m=createSuggestionModePlugin(p,s);return EditorState.create({doc:u,schema:schema,plugins:[m,...d.getPlugins(),c,a]})}function Bf(e){if(!e?.package)return [];let t=[],o=e.package.headers;if(o)for(let n of o.keys())t.push({rId:n,kind:"header"});let r=e.package.footers;if(r)for(let n of r.keys())(!o||!o.has(n))&&t.push({rId:n,kind:"footer"});return t}var Rr=memo(forwardRef(function({document:t,styles:o,theme:r,isSuggesting:n=false,author:d="User",defaultTabStopTwips:p,onTransaction:s},u){let c=useRef(s);c.current=s;let a=t?.package?.settings?.defaultTableStyle??null,m=useRef(n);m.current=n;let g=useRef(d);g.current=d,useEffect(()=>{for(let{view:y}of h.current.values())setSuggestionMode(n,y.state,y.dispatch,d);},[n,d]);let b=useRef(t);b.current=t;let i=useRef(null),f=useRef(null),h=useRef(new Map),x=useRef(new Map);i.current=(y,R,S)=>{let P=b.current?.package;if(!P)return;let E=(R==="header"?P.headers:P.footers)?.get(y);E&&(E.content=proseDocToBlocks(S.doc));};let C=useCallback((y,R)=>{let S=t?.package;return S?(R==="header"?S.headers:S.footers)?.get(y)??null:null},[t]),l=useMemo(()=>Bf(t),[t?.package?.headers,t?.package?.footers]);return useEffect(()=>{if(!f.current)return;let y=f.current,R=new Map(l.map(v=>[v.rId,v])),S=h.current;for(let[v,P]of S)R.has(v)||(P.view.destroy(),P.mountNode.remove(),x.current.get(v)?.destroy(),x.current.delete(v),S.delete(v));for(let v of l){if(S.has(v.rId))continue;let P=C(v.rId,v.kind);if(!P)continue;let k=new ExtensionManager(createStarterKit());k.buildSchema(),k.initializeRuntime(),x.current.set(v.rId,k);let E=y.ownerDocument.createElement("div");E.dataset.hfRId=v.rId,E.dataset.hfKind=v.kind,y.appendChild(E);let I=Of(P,o,r,p,a,k,m.current,g.current),w=v.rId,M=v.kind,H=new EditorView(E,{state:I,dispatchTransaction(O){let B=H.state.apply(O);H.updateState(B),O.docChanged&&i.current?.(w,M,B),c.current?.(w,H,O.docChanged);}});S.set(v.rId,{rId:v.rId,kind:v.kind,view:H,mountNode:E});}},[l,C,o,r,p,a]),useEffect(()=>{let y=h.current,R=x.current;return ()=>{for(let{view:S,mountNode:v}of y.values())S.destroy(),v.remove();y.clear();for(let S of R.values())S.destroy();R.clear();}},[]),useImperativeHandle(u,()=>({getView(y){return h.current.get(y)?.view??null},getViews(){let y=new Map;for(let[R,S]of h.current)y.set(R,S.view);return y}}),[]),jsx("div",{ref:f,style:{position:"fixed",left:-9999,top:0,opacity:0,zIndex:-1,pointerEvents:"none"}})}));Rr.displayName="HiddenHeaderFooterPMs";var Vf="var(--doc-caret, #000)",Wf="rgba(66, 133, 244, 0.3)",Uf=2,$f=530,Gf={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10,overflow:"hidden"},Kf=(e,t,o,r)=>({position:"absolute",left:e.x,top:e.y,width:o,height:e.height,backgroundColor:t,opacity:r?1:0,transition:"opacity 0.05s ease-out",pointerEvents:"none"}),jf=(e,t)=>({position:"absolute",left:e.x,top:e.y,width:e.width,height:e.height,backgroundColor:t,pointerEvents:"none"}),Yf=({position:e,color:t,width:o,blinkInterval:r,isFocused:n})=>{let[d,p]=useState(n),s=useRef(null);return useEffect(()=>(s.current&&(window.clearInterval(s.current),s.current=null),n&&r>0?(p(true),s.current=window.setInterval(()=>{p(u=>!u);},r)):p(false),()=>{s.current&&window.clearInterval(s.current);}),[n,r]),useEffect(()=>{if(n)return p(true),s.current&&window.clearInterval(s.current),r>0&&(s.current=window.setInterval(()=>{p(u=>!u);},r)),()=>{s.current&&window.clearInterval(s.current);}},[e.x,e.y,n,r]),jsx("div",{style:Kf(e,t,o,d),"data-testid":"caret"})},qf=({rect:e,color:t,index:o})=>jsx("div",{style:jf(e,t),"data-testid":`selection-rect-${o}`,"data-page-index":e.pageIndex}),Aa=({selectionRects:e,caretPosition:t,isFocused:o,readOnly:r=false,caretColor:n=Vf,selectionColor:d=Wf,caretWidth:p=Uf,blinkInterval:s=$f})=>{if(r)return null;let u=e.length>0,c=t!==null&&!u;return jsxs("div",{style:Gf,"data-testid":"selection-overlay",children:[u&&e.map((a,m)=>jsx(qf,{rect:a,color:d,index:m},`sel-${a.pageIndex}-${a.x}-${a.y}-${m}`)),c&&t&&jsx(Yf,{position:t,color:n,width:p,blinkInterval:s,isFocused:o})]})};var Pr=10,Ba=Pr/2,ko=2,_a="#2563eb",Na={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:15,overflow:"visible"},Qf={position:"absolute",border:`${ko}px solid ${_a}`,pointerEvents:"none",boxSizing:"border-box"},Jf={position:"absolute",width:`${Pr}px`,height:`${Pr}px`,backgroundColor:"#ffffff",border:`1.5px solid ${_a}`,borderRadius:"50%",boxShadow:"0 1px 2.5px rgba(0, 0, 0, 0.35)",boxSizing:"border-box",pointerEvents:"auto",zIndex:16},eg={position:"absolute",backgroundColor:"rgba(0, 0, 0, 0.75)",color:"var(--doc-on-primary)",fontSize:"11px",fontFamily:"system-ui, sans-serif",padding:"2px 8px",borderRadius:"3px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:20,transform:"translateX(-50%)"},tg={nw:"nw-resize",ne:"ne-resize",se:"se-resize",sw:"sw-resize",n:"ns-resize",s:"ns-resize",e:"ew-resize",w:"ew-resize"},og=[{pos:"nw",x:0,y:0},{pos:"ne",x:1,y:0},{pos:"se",x:1,y:1},{pos:"sw",x:0,y:1},{pos:"n",x:.5,y:0},{pos:"s",x:.5,y:1},{pos:"e",x:1,y:.5},{pos:"w",x:0,y:.5}];function Va({imageInfo:e,zoom:t,isFocused:o,onResize:r,onResizeStart:n,onResizeEnd:d,onDragMove:p,onDragStart:s,onDragEnd:u,onContextMenu:c}){let[a,m]=useState(false),[g,b]=useState(false),[i,f]=useState(0),[h,x]=useState(0),[C,l]=useState(null),y=useRef(null),R=useRef(null),S=useRef(r),v=useRef(n),P=useRef(d),k=useRef(p),E=useRef(s),I=useRef(u);S.current=r,v.current=n,P.current=d,k.current=p,E.current=s,I.current=u;let w=useRef(e),M=useRef(t);w.current=e,M.current=t;let H=useCallback(()=>{if(!e||!R.current){l(null);return}let te=R.current.offsetParent;if(!te){l(null);return}let se=te.getBoundingClientRect(),pe=e.element.getBoundingClientRect();l({left:(pe.left-se.left)/t,top:(pe.top-se.top)/t,width:pe.width/t,height:pe.height/t});},[e,t]);useEffect(()=>{H();},[H]),useEffect(()=>{if(!e)return;let te=R.current?.closest('[style*="overflow"]')??R.current?.closest(".paged-editor__container");if(!te)return;let se=()=>{y.current&&cancelAnimationFrame(y.current),y.current=requestAnimationFrame(H);};return te.addEventListener("scroll",se,{passive:true}),window.addEventListener("resize",se,{passive:true}),()=>{te.removeEventListener("scroll",se),window.removeEventListener("resize",se),y.current&&cancelAnimationFrame(y.current);}},[e,H]);let O=useCallback((te,se)=>{if(!e||!C)return;se.preventDefault(),se.stopPropagation();let pe=C.width,Me=C.height,Te=se.clientX,D=se.clientY,L=Math.round(pe),N=Math.round(Me);m(true),f(L),x(N),v.current?.();let W=A=>{let X=M.current,ne=(A.clientX-Te)/X,K=(A.clientY-D)/X,de=!A.shiftKey,oe=calculateResizedImageDimensions(te,ne,K,pe,Me,de);L=Math.round(oe.width),N=Math.round(oe.height),f(L),x(N),l(Z=>{if(!Z)return Z;let ue={...Z};return te.includes("w")&&(ue.left=Z.left+(Z.width-oe.width)),te.includes("n")&&(ue.top=Z.top+(Z.height-oe.height)),ue.width=oe.width,ue.height=oe.height,ue});},_=()=>{window.removeEventListener("mousemove",W),window.removeEventListener("mouseup",_),m(false);let A=w.current;A&&S.current?.(A.pmPos,L,N),P.current?.();};window.addEventListener("mousemove",W),window.addEventListener("mouseup",_);},[e,C]),B=useCallback(te=>{if(!e||!C)return;te.preventDefault(),te.stopPropagation();let se=4,pe=te.clientX,Me=te.clientY,Te=false,D=null,L=W=>{let _=W.clientX-pe,A=W.clientY-Me;!Te&&Math.sqrt(_*_+A*A)<se||(Te||(Te=true,b(true),E.current?.(),D=document.createElement("div"),D.style.cssText="position: fixed; pointer-events: none; z-index: 10000; opacity: 0.5; border: 2px dashed #2563eb; border-radius: 4px; background: rgba(37, 99, 235, 0.1);",D.style.width=`${C.width}px`,D.style.height=`${C.height}px`,document.body.appendChild(D)),D&&(D.style.left=`${W.clientX-C.width/2}px`,D.style.top=`${W.clientY-C.height/2}px`));},N=W=>{if(window.removeEventListener("mousemove",L),window.removeEventListener("mouseup",N),D&&(D.remove(),D=null),b(false),Te){let _=w.current;_&&k.current?.(_.pmPos,W.clientX,W.clientY),I.current?.();}};window.addEventListener("mousemove",L),window.addEventListener("mouseup",N);},[e,C]);if(!!!(e&&C&&o))return jsx("div",{ref:R,style:{...Na,visibility:"hidden"},className:"image-selection-overlay"});let{left:U,top:re,width:q,height:ie}=C;return jsxs("div",{ref:R,style:Na,className:"image-selection-overlay",children:[jsx("div",{style:{...Qf,left:U-ko,top:re-ko,width:q+ko*2,height:ie+ko*2}}),jsx("div",{style:{position:"absolute",left:U,top:re,width:q,height:ie,cursor:g?"grabbing":"grab",pointerEvents:"auto",zIndex:15},onMouseDown:B,onContextMenu:c}),og.map(({pos:te,x:se,y:pe})=>jsx(ng,{handle:te,style:{left:U+q*se-Ba,top:re+ie*pe-Ba},onMouseDown:O},te)),a&&jsxs("div",{style:{...eg,left:U+q/2,top:re+ie+12},children:[i," \xD7 ",h]})]})}function ng({handle:e,style:t,onMouseDown:o}){return jsx("div",{style:{...Jf,...t,cursor:tg[e]},onMouseDown:r=>o(e,r),"data-handle":e})}var ig={position:"absolute",inset:0,pointerEvents:"none",zIndex:11};function $a({getView:e,getPagesContainer:t,zoom:o,decorationSyncToken:r,syncCoordinator:n}){let d=useRef(null),p=useRef(null),[s,u]=useState(0);return useEffect(()=>n.onRender(()=>u(c=>c+1)),[n]),useEffect(()=>(p.current!==null&&cancelAnimationFrame(p.current),p.current=requestAnimationFrame(()=>{p.current=null;let c=e(),a=t(),m=d.current;!c||!a||!m||n.isSafeToRender()&&ag(c,a,m,o);}),()=>{p.current!==null&&(cancelAnimationFrame(p.current),p.current=null);}),[o,r,s]),jsx("div",{ref:d,className:"paged-editor__decoration-overlay",style:ig,"aria-hidden":"true"})}function ag(e,t,o,r){let n=sg(e.state);if(n.length===0){o.firstChild&&o.replaceChildren();return}let d=b$3(t,r),p=d.getContainerOffset(),s=document.createDocumentFragment();for(let{decoration:u,from:c,to:a}of n){if(c===a){let b=lg(u,e);if(!b)continue;let i=d.getCoordinatesForPosition(c);if(!i)continue;let f=document.createElement("div");f.style.cssText=`position:absolute;left:${i.x+p.x}px;top:${i.y+p.y}px;height:${i.height}px;`,f.appendChild(b),s.appendChild(f);continue}let m=cg(u);if(!m)continue;let g=d.getRectsForRange(c,a);for(let b of g){let i=document.createElement("div");for(let[h,x]of Object.entries(m))h!=="nodeName"&&i.setAttribute(h,x);let f=`position:absolute;left:${b.x+p.x}px;top:${b.y+p.y}px;width:${b.width}px;height:${b.height}px;`;i.style.cssText=f+(m.style??""),s.appendChild(i);}}o.replaceChildren(s);}function sg(e){let t=[];for(let o of e.plugins){let r=o.props.decorations;if(!r)continue;let n=r.call(o,e);n&&n.forEachSet(d=>{d.find().forEach(p=>{p.spec?.noOverlay||t.push({decoration:p,from:p.from,to:p.to});});});}return t}function lg(e,t){let o=e.type;if(!o)return null;let r=o.toDOM;return typeof r=="function"?r(t,()=>e.from):r instanceof HTMLElement?r.cloneNode(true):null}function cg(e){return e.type?.attrs??null}var Ya=[];var qa={position:"relative",width:"100%",minHeight:"100%",overflow:"visible",backgroundColor:"var(--doc-bg)"},Xa={position:"relative",display:"flex",flexDirection:"column",alignItems:"center",paddingTop:24,paddingBottom:24,overflowAnchor:"none"},Za={position:"relative",display:"flex",flexDirection:"column",alignItems:"center",overflowAnchor:"none"},Qa={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",overflow:"visible",zIndex:8};function bn(e,t,o){let r=t.getBoundingClientRect(),n=e.getBoundingClientRect(),d=n.top+n.height/2,p=r.top+r.height/2,s=d-p,u=Math.max(0,t.scrollHeight-t.clientHeight),c=Math.max(0,Math.min(u,t.scrollTop+s));t.scrollTop=c;}function hn(e,t){if(t.aborted)return;let o=requestAnimationFrame(()=>{if(t.aborted)return;let r=requestAnimationFrame(()=>{if(t.aborted)return;let n=requestAnimationFrame(()=>{t.aborted||e();});t.addEventListener("abort",()=>cancelAnimationFrame(n),{once:true});});t.addEventListener("abort",()=>cancelAnimationFrame(r),{once:true});});t.addEventListener("abort",()=>cancelAnimationFrame(o),{once:true});}function es(e,t){let o=null,r=findBodyPmAnchors(e);for(let n=0;n<r.length;n++){let d=r[n].dataset.pmStart;if(d==null)continue;let p=Number(d);Number.isNaN(p)||p<=t&&(o===null||p>o)&&(o=p);}return o}function yn(e,t){let o=e.pages.length;return e.pages.reduce((n,d)=>n+d.size.h,0)+Math.max(0,o-1)*t+24+24}function ts(e,t,o,r,n){let d=new Map;if(!e?.state)return d;let{doc:p,schema:s}=e.state,u=s.marks.comment,c=s.marks.insertion,a=s.marks.deletion;if(!u&&!c&&!a)return d;let m=new Set,g=24+n,b=0,i=(f,h)=>{if(m.has(f))return;m.add(f);let x=getCaretPosition(t,o,r,h,b);if(x){b=x.pageIndex,d.set(f,x.y+g);return}for(let C=b;C<t.pages.length;C++){let l=t.pages[C];for(let y of l.fragments){let R=y.pmStart??0,S=y.pmEnd??R;if(h<R||h>S)continue;let v=y.kind==="table"?fg(o,r,y,h):0;b=C,d.set(f,y.y+v+getPageTop(t,C)+g);return}}};return p.descendants((f,h)=>{let x=f.attrs;if(x){let C=[x.trIns,x.trDel,x.pPrIns,x.pPrDel];for(let S of C){let v=S?.revisionId;typeof v=="number"&&i(`revision-${v}`,h);}let y=x.cellMarker?.info?.revisionId;typeof y=="number"&&i(`revision-${y}`,h);let R=[x.pPrChange,x.trPrChange,x.tcPrChange,x.tblPrChange];for(let S of R)if(Array.isArray(S))for(let v of S){let P=v?.info?.id;typeof P=="number"&&i(`revision-${P}`,h);}}if(f.isInline)for(let C of f.marks){let l=null;u&&C.type===u?l=`comment-${C.attrs.commentId}`:(c&&C.type===c||a&&C.type===a)&&(l=`revision-${C.attrs.revisionId}`),l&&i(l,h);}}),d}function fg(e,t,o,r){let n=e.findIndex(u=>u.id===o.blockId);if(n===-1)return 0;let d=e[n],p=t[n];if(d.kind!=="table"||p.kind!=="table")return 0;let s=0;for(let u=o.fromRow;u<o.toRow;u++){let c=d.rows[u];if(!c||c.cells.some(m=>m.blocks.some(g=>{let b=g.pmStart??0,i=g.pmEnd??b;return r>=b&&r<=i})))break;s+=p.rows[u]?.height??0;}return s}function rs(e,t,o,r){switch(e.kind){case "paragraph":{let n=e;if(!o||o.length===0){let p=getCachedParagraphMeasure(n,t);if(p)return p}let d=measureParagraph(n,t,{floatingZones:o,paragraphYOffset:r??0});return (!o||o.length===0)&&setCachedParagraphMeasure(n,t,d),d}case "table":return measureTableBlock(e,t,rs);case "image":{let n=e;return {kind:"image",width:n.width??100,height:n.height??100}}case "textBox":{let n=e,d=n.margins??DEFAULT_TEXTBOX_MARGINS,p=(n.width??DEFAULT_TEXTBOX_WIDTH)-d.left-d.right,s=n.content.map(a=>measureParagraph(a,p)),u=s.reduce((a,m)=>a+m.totalHeight,0),c=n.height??u+d.top+d.bottom;return {kind:"textBox",width:n.width??DEFAULT_TEXTBOX_WIDTH,height:c,innerMeasures:s}}case "pageBreak":return {kind:"pageBreak"};case "columnBreak":return {kind:"columnBreak"};case "sectionBreak":return {kind:"sectionBreak"};default:assertExhaustiveFlowBlock(e,"react PagedEditor measureBlock");}}function is(e,t,o){return measureBlocksWithFloats(e,t,rs,o)}function ss(e,t,o){t.style.overflowAnchor||t.style.setProperty("overflow-anchor","none");let r=Math.max(1,t.scrollHeight-t.clientHeight),n=t.scrollTop/r,d=es(e,o),p=0;if(d!=null){let s=findBodyPmAnchor(e,d);if(s){let u=s.getBoundingClientRect(),c=t.getBoundingClientRect();p=u.top-c.top;}else d=null;}return {scrollRestoreRatioPre:n,domAnchorPmStart:d,domAnchorOffsetInScroller:p}}function ls(e,t,o){let r=o.scrollRestoreRatioPre;if(e==="incremental"){let d=Math.max(1,t.scrollHeight-t.clientHeight);r=t.scrollTop/d;}let n=e==="incremental"?t.scrollTop:null;return {renderKind:e,ratio:r,scrollTopSnapshot:n,domAnchorPmStart:o.domAnchorPmStart,domAnchorOffsetInScroller:o.domAnchorOffsetInScroller}}function wr(e,t,o){let{renderKind:r,ratio:n,scrollTopSnapshot:d,domAnchorPmStart:p,domAnchorOffsetInScroller:s}=e;if(r==="incremental"&&d!=null){let c=Math.max(1,o.scrollHeight-o.clientHeight);o.scrollTop=Math.min(Math.max(0,d),c);return}if(r!=="incremental"&&p!=null){let c=findBodyPmAnchor(t,p);if(c){let a=o.getBoundingClientRect(),m=c.getBoundingClientRect().top-a.top;o.scrollTop+=s-m;return}}let u=Math.max(1,o.scrollHeight-o.clientHeight);o.scrollTop=n*u;}function cs(e,t,o,r){if(e?.renderKind!=="incremental"||e.scrollTopSnapshot==null||r&&o>32||!t?.isConnected)return;let n=Math.max(1,t.scrollHeight-t.clientHeight),d=Math.min(Math.max(0,e.scrollTopSnapshot),n);Math.abs(t.scrollTop-d)>.5&&(t.scrollTop=d);}function fs(e){let{document:t,styles:o,theme:r,sectionProperties:n,finalSectionProperties:d,headerContent:p,footerContent:s,firstPageHeaderContent:u,firstPageFooterContent:c,getHfPmDoc:a,pageGap:m,zoom:g,resolvedCommentIds:b,pagesContainerRef:i,viewportLayoutRef:f,hiddenPMRef:h,syncCoordinator:x,getScrollContainer:C,onTotalPagesChange:l,onAnchorPositionsChange:y,onRenderedDomContextReady:R}=e,[S,v]=useState(null),[P,k]=useState([]),[E,I]=useState([]),[w,M]=useState(0),H=useCallback(()=>M(K=>K+1),[]),O=useRef(l),B=useRef(y),V=useRef(R),U=useRef(a);O.current=l,B.current=y,V.current=R,U.current=a;let re=useRef(0);useEffect(()=>{let K=S?.pages.length??0;K!==re.current&&(re.current=K,O.current?.(K));},[S]);let q=useMemo(()=>getPageSize(n),[n]),ie=useMemo(()=>getMargins(n),[n]),te=useMemo(()=>getColumns(n),[n]),{finalPageSize:se,finalMargins:pe,finalColumns:Me}=useMemo(()=>{let K=d??n;return {finalPageSize:getPageSize(K),finalMargins:getMargins(K),finalColumns:getColumns(K)}},[d,n]),Te=q.w-ie.left-ie.right,D=useMemo(()=>new LayoutPainter({pageGap:m,showShadow:true,pageBackground:"var(--doc-page-bg, #ffffff)"}),[m]),L=useRef(null);L.current=D;let N=useRef(null),W=useRef(0),_=useCallback(K=>{let de=performance.now(),oe=x.getStateSeq();x.onLayoutStart();let Z=ue=>{let me=i.current,Re=me?C()??findVerticalScrollParentOrRoot(me):null,We=performance.now()-W.current;cs(N.current,Re,We,ue);};Z(true);try{let{blocks:ue,measures:me,layout:Re,headerContentForRender:We,footerContentForRender:De,firstPageHeaderForRender:Be,firstPageFooterForRender:ye,hasTitlePg:Ne,watermark:J,headerDistancePx:Le,footerDistancePx:tt,pageBorders:vt,footnotesByPage:_e}=computeLayout({state:K,document:t,pageSize:q,margins:ie,columns:te,finalPageSize:se,finalMargins:pe,finalColumns:Me,pageGap:m,contentWidth:Te,theme:r,styles:o,sectionProperties:n,finalSectionProperties:d,headerContent:p,footerContent:s,firstPageHeaderContent:u,firstPageFooterContent:c,measureBlocks:is,getHfPmDoc:Y=>U.current?.(Y)??null});if(k(ue),I(me),v(Re),i.current&&L.current){N.current=null,W.current=0;let Y=i.current,Q=C()??findVerticalScrollParentOrRoot(Y),ve=Q?.isConnected?ss(Y,Q,K.selection.head):null,xe=buildBlockLookup(ue,me);L.current.setBlockLookup(xe);let fe=renderPages(Re.pages,i.current,{pageGap:m,showShadow:!0,pageBackground:"var(--doc-page-bg, #ffffff)",blockLookup:xe,headerContent:We,footerContent:De,firstPageHeaderContent:Be,firstPageFooterContent:ye,titlePg:Ne,headerDistance:Le,footerDistance:tt,pageBorders:vt,theme:r,watermark:J,footnotesByPage:_e,resolvedCommentIds:b}),Xe=f.current;if(Xe){let Pe=yn(Re,m);Xe.style.minHeight=`${Pe}px`,g!==1?Xe.style.marginBottom=`${Pe*(g-1)}px`:Xe.style.marginBottom="";}if(Q?.isConnected&&ve){let Pe=ls(fe,Q,ve);N.current=Pe,Pe.renderKind==="incremental"&&Pe.scrollTopSnapshot!=null&&(W.current=performance.now());}if(i.current?.dispatchEvent(new CustomEvent("painter:painted",{bubbles:!0})),V.current){let Pe=b$3(i.current,g);V.current(Pe);}}else N.current=null,W.current=0;if(B.current){let Y=ts(h.current?.getView()??null,Re,ue,me,m),Q=i.current;if(Q){let ve=Q.querySelectorAll(".layout-page-header, .layout-page-footer");if(ve.length>0){let xe=Q.getBoundingClientRect(),fe=g||1;for(let Xe=0;Xe<ve.length;Xe++){let Pe=ve[Xe],Ge=Pe.querySelectorAll(".docx-insertion[data-revision-id]");for(let Ee=0;Ee<Ge.length;Ee++){let He=Ge[Ee],Fe=He.getAttribute("data-revision-id");if(Fe&&!Y.has(`revision-${Fe}`)){let Ue=(He.getBoundingClientRect().top-xe.top+Q.scrollTop)/fe;Y.set(`revision-${Fe}`,Ue);}}let ae=Pe.querySelectorAll(".docx-deletion[data-revision-id]");for(let Ee=0;Ee<ae.length;Ee++){let He=ae[Ee],Fe=He.getAttribute("data-revision-id");if(Fe&&!Y.has(`revision-${Fe}`)){let Ue=(He.getBoundingClientRect().top-xe.top+Q.scrollTop)/fe;Y.set(`revision-${Fe}`,Ue);}}let Ke=Pe.querySelectorAll("[data-comment-id]");for(let Ee=0;Ee<Ke.length;Ee++){let He=Ke[Ee],Fe=He.getAttribute("data-comment-id");if(Fe&&!Y.has(`comment-${Fe}`)){let Ue=(He.getBoundingClientRect().top-xe.top+Q.scrollTop)/fe;Y.set(`comment-${Fe}`,Ue);}}let Ve=Pe.querySelectorAll(".ep-revision-table[data-revision-id], .ep-revision-row[data-revision-id], .ep-revision-cell[data-revision-id], .layout-revision-pmark[data-revision-id]");for(let Ee=0;Ee<Ve.length;Ee++){let He=Ve[Ee],Fe=He.getAttribute("data-revision-id");if(Fe&&!Y.has(`revision-${Fe}`)){let Ue=(He.getBoundingClientRect().top-xe.top+Q.scrollTop)/fe;Y.set(`revision-${Fe}`,Ue);}}}}}B.current(Y);}Z(!1);let ee=performance.now()-de;ee>2e3&&console.warn(`[PagedEditor] Layout pipeline took ${Math.round(ee)}ms total (${ue.length} blocks, ${me.length} measures)`);}catch(ue){console.error("[PagedEditor] Layout pipeline error:",ue);}x.onLayoutComplete(oe),Z(false);},[Te,te,q,ie,se,pe,Me,m,g,x,p,s,u,c,n,d,t,b,C,h,i,o,r,f]);useLayoutEffect(()=>{let K=N.current;if(!K)return;N.current=null,W.current=0;let de=i.current,oe=C()??(de?findVerticalScrollParentOrRoot(de):null);if(!de||!oe?.isConnected)return;wr(K,de,oe);let Z=requestAnimationFrame(()=>{oe.isConnected&&wr(K,de,oe);});return ()=>cancelAnimationFrame(Z)},[S,C,i]);let A=useRef(_);A.current=_;let X=useRef(null);X.current||(X.current=createLayoutScheduler(K=>A.current(K)));let ne=useCallback(K=>{X.current.schedule(K);},[]);return useEffect(()=>{let K=X.current;return ()=>K?.cancel()},[]),{layout:S,blocks:P,measures:E,decorationSyncToken:w,notifyDecorationLayer:H,contentWidth:Te,runLayoutPipeline:_,scheduleLayout:ne}}function hs(e){let{layout:t,blocks:o,measures:r,zoom:n,containerRef:d,pagesContainerRef:p,hiddenPMRef:s,syncCoordinator:u,isImageInteractingRef:c,onSelectionChangeRef:a}=e,[m,g]=useState([]),[b,i]=useState(null),[f,h]=useState(null),x=useRef(null),C=useCallback((R,S)=>{let v=R.tagName==="IMG"?R:R.querySelector("img"),P=(v??R).getBoundingClientRect();return {element:v??R,pmPos:S,width:Math.round(P.width/n),height:Math.round(P.height/n)}},[n]),l=useCallback(R=>{let{from:S,to:v}=R.selection;x.current!==R&&(x.current=R,a.current?.(S,v));let P=p.current;if(P&&(applyCellSelectionHighlight(P,R),applySdtFocus(P,enclosingSdtGroupIds(R.doc,S,v))),!(!t||o.length===0))if(S===v){let k=P?Ea(P,S,n):null;if(k)i(k);else {let E=p.current?.parentElement?.querySelector('[data-testid="selection-overlay"]'),I=p.current?.querySelector(".layout-page");if(E&&I){let w=E.getBoundingClientRect(),M=I.getBoundingClientRect(),H=getCaretPosition(t,o,r,S);i(H?{...H,x:H.x+(M.left-w.left)/n,y:H.y+(M.top-w.top)/n}:null);}else i(null);}g([]);}else {let k=p.current?.parentElement?.querySelector('[data-testid="selection-overlay"]');if(k&&p.current){let E=k.getBoundingClientRect(),I=Ia(p.current,E,S,v,n);if(I.length>0)g(I);else {let w=p.current.querySelector(".layout-page");if(w){let M=w.getBoundingClientRect(),H=(M.left-E.left)/n,O=(M.top-E.top)/n,V=selectionToRects(t,o,r,S,v).map(U=>({...U,x:U.x+H,y:U.y+O}));g(V);}else g([]);}}else g([]);i(null);}},[t,o,r,n,a,p]),y=useCallback(R=>{let{selection:S}=R;S instanceof NodeSelection&&S.node.type.name==="image"?(g([]),i(null)):u.isSafeToRender()&&l(R),requestAnimationFrame(()=>{let v=s.current?.getView();if(!v){h(null);return}let{selection:P}=v.state;if(P instanceof NodeSelection&&P.node.type.name==="image"){let k=P.from,E=p.current?findBodyPmAnchor(p.current,k):null;if(E){h(C(E,k));return}}c.current||h(null);});},[l,C,u,s,c,p]);return useEffect(()=>{let R=d.current;if(!R)return;let S=new ResizeObserver(()=>{let v=s.current?.getState();v&&l(v);});return S.observe(R),()=>S.disconnect()},[l,d,s]),useEffect(()=>{let R=s.current?.getState();t&&R&&l(R);},[t,l,s]),{selectionRects:m,caretPosition:b,selectedImageInfo:f,setSelectionRects:g,setCaretPosition:i,setSelectedImageInfo:h,buildImageSelectionInfo:C,updateSelectionOverlay:l,handleSelectionChange:y}}function vs(e){let{pagesContainerRef:t,hiddenPMRef:o,zoom:r,isImageInteractingRef:n,getPositionFromMouse:d}=e,p=useCallback((g,b,i)=>{let f=o.current?.getView();if(!f)return;let h=commitImageResize(f,g,b,i);h!==null&&o.current?.setNodeSelection(h);},[o]),s=useCallback(()=>{n.current=true;},[n]),u=useCallback(()=>{n.current=false;},[n]),c=useCallback((g,b,i)=>{let f=o.current?.getView();if(!f)return;let h=f.state.doc.nodeAt(g);if(!(!h||h.type.name!=="image"))if(isFloatingImage(h)){let x=t.current?.querySelectorAll(".layout-page");if(!x||x.length===0)return;let C=null;for(let v of x){let P=v.getBoundingClientRect();if(i>=P.top&&i<=P.bottom){C=v.querySelector(".layout-page-content");break}}if(C||(C=x[x.length-1].querySelector(".layout-page-content")),!C)return;let l=C.getBoundingClientRect(),y=pixelsToEmu((b-l.left)/r),R=pixelsToEmu((i-l.top)/r),S=commitImageFloatMove(f,g,y,R);S!==null&&o.current?.setNodeSelection(S);}else {let x=d(b,i);if(x===null)return;let C=commitImageInlineMove(f,g,x);C!==null&&o.current?.setNodeSelection(C);}},[d,r,o,t]),a=useCallback(()=>{n.current=true;},[n]),m=useCallback(()=>{n.current=false;},[n]);return {handleImageResize:p,handleImageResizeStart:s,handleImageResizeEnd:u,handleImageDragMove:c,handleImageDragStart:a,handleImageDragEnd:m}}function Rs(e){let{layout:t,blocks:o,measures:r,pagesContainerRef:n,hiddenPMRef:d,getScrollContainer:p}=e,s=useRef(null);useEffect(()=>()=>{s.current?.abort(),s.current=null;},[]);let u=useCallback((m,g=false)=>{if(!Number.isInteger(m)||m<0)return;let b=n.current;if(!b)return;s.current?.abort();let i=new AbortController;s.current=i;let{signal:f}=i,h=()=>{let E=findBodyPmAnchor(b,m);if(E)return E;for(let I of findBodyPmSpans(b)){let w=Number(I.dataset.pmStart),M=Number(I.dataset.pmEnd);if(Number.isFinite(w)&&Number.isFinite(M)&&m>=w&&m<=M)return I}return null};if(!g){let E={block:"center",inline:"nearest",behavior:"smooth"},I=h();if(I){I.scrollIntoView(E);return}let w=t,M=o,H=r;if(!w||M.length===0||H.length!==M.length)return;let O=null,B=getCaretPosition(w,M,H,m);if(B?O=B.pageIndex:O=findPageIndexContainingPmPos(w,m),O==null)return;let U=b.querySelectorAll(".layout-page")[O];if(!U)return;U.scrollIntoView(E),hn(()=>{if(!b.isConnected)return;let re=h();re&&re.scrollIntoView(E);},f);return}let x=p()??findVerticalScrollParentOrRoot(b),C=()=>{let E=h();return E?(bn(E,x),true):false};if(C())return;let l=t,y=o,R=r;if(!l||y.length===0||R.length!==y.length)return;let S=null,v=getCaretPosition(l,y,R,m);if(v?S=v.pageIndex:S=findPageIndexContainingPmPos(l,m),S==null)return;let k=b.querySelectorAll(".layout-page")[S];k&&(bn(k,x),hn(()=>{if(!b.isConnected)return;let E=h();E?bn(E,x):C();},f));},[t,o,r,p,n]),c=useCallback(m=>{if(!Number.isInteger(m)||m<1||!t||m>t.pages.length)return;let g=t.pages[m-1];for(let i of g.fragments)if(typeof i.pmStart=="number"){u(i.pmStart,true);return}n.current?.querySelectorAll(".layout-page")[m-1]?.scrollIntoView({block:"center",inline:"nearest"});},[t,u,n]),a=useCallback((m,g)=>{let b=d.current?.getState();if(!b)return false;let i=findStartPosForParaId(b.doc,m);if(i==null||i<0)return false;u(i,true);let f=()=>{if(!g?.highlight)return;let l=n.current;l&&flashParagraphFragmentsByParaId(l,m,g.highlight);};f();let h=s.current?.signal;if(!h)return true;let x=b.doc.nodeAt(i),C=x?.isTextblock===true?Math.min(i+1+x.content.size,b.doc.content.size):Math.min(i+1,b.doc.content.size);return hn(()=>{f(),d.current&&(d.current.setSelection(C),d.current.focus());},h),true},[u,d,n]);return {scrollToPositionImpl:u,scrollToPageImpl:c,scrollToParaIdImpl:a}}function Ms(e){let{hiddenPMRef:t,getActiveHfView:o}=e,r=useRef(null);function n(w){return w.closest(".layout-page-header")||w.closest(".layout-page-footer")?o?.()??t.current?.getView()??null:t.current?.getView()??null}let d=useRef(false),p=useRef(0),s=useRef(0),u=useRef(0),c=useRef({left:0,right:0}),a=useRef(null),m=useRef(false),g=useRef(0),b=useRef(0),i=useRef(0),f=useRef(0),h=useRef(null),x=useRef(false),C=useRef(false),l=useRef(0),y=useRef(0),R=useRef(0),S=useRef(0),v=useRef(null),P=useCallback((w,M)=>{let H=n(w);if(!H)return false;if(w.classList.contains("layout-table-resize-handle")){M.preventDefault(),M.stopPropagation(),d.current=true,p.current=M.clientX,a.current=w,r.current=H,w.classList.add("dragging");let O=parseInt(w.dataset.columnIndex??"0",10);s.current=O,u.current=parseInt(w.dataset.tablePmStart??"0",10);let B=readColumnWidths(H,u.current,O);return B&&(c.current=B),true}if(w.classList.contains("layout-table-row-resize-handle")||w.classList.contains("layout-table-edge-handle-bottom")){M.preventDefault(),M.stopPropagation(),m.current=true,g.current=M.clientY,h.current=w,x.current=w.dataset.isEdge==="bottom",r.current=H,w.classList.add("dragging");let O=parseInt(w.dataset.rowIndex??"0",10);b.current=O,i.current=parseInt(w.dataset.tablePmStart??"0",10);let B=readRowHeight(H,i.current,O);if(B!=null)f.current=B;else {let U=w.closest(".layout-table")?.querySelector(`[data-row-index="${O}"]`),re=U?U.getBoundingClientRect().height:30;f.current=Math.round(re*TWIPS_PER_PIXEL);}return true}if(w.classList.contains("layout-table-edge-handle-right")){M.preventDefault(),M.stopPropagation(),C.current=true,l.current=M.clientX,v.current=w,r.current=H,w.classList.add("dragging");let O=parseInt(w.dataset.columnIndex??"0",10);y.current=O,R.current=parseInt(w.dataset.tablePmStart??"0",10);let B=readColumnWidthAt(H,R.current,O);return B!=null&&(S.current=B),true}return false},[t,o]),k=useCallback(w=>{if(d.current){w.preventDefault();let M=w.clientX-p.current;if(a.current){let H=parseFloat(a.current.style.left);a.current.style.left=`${H+M}px`,p.current=w.clientX;let O=Math.round(M*TWIPS_PER_PIXEL),B=c.current.left+O,V=c.current.right-O;B>=MIN_CELL_WIDTH_TWIPS&&V>=MIN_CELL_WIDTH_TWIPS&&(c.current={left:B,right:V});}return true}if(m.current){w.preventDefault();let M=w.clientY-g.current;if(h.current){let H=parseFloat(h.current.style.top);h.current.style.top=`${H+M}px`,g.current=w.clientY;let O=Math.round(M*TWIPS_PER_PIXEL),B=f.current+O;B>=MIN_ROW_HEIGHT_TWIPS&&(f.current=B);}return true}if(C.current){w.preventDefault();let M=w.clientX-l.current;if(v.current){let H=parseFloat(v.current.style.left);v.current.style.left=`${H+M}px`,l.current=w.clientX;let O=Math.round(M*TWIPS_PER_PIXEL),B=S.current+O;B>=MIN_CELL_WIDTH_TWIPS&&(S.current=B);}return true}return false},[]),E=useCallback(()=>{let w=r.current;if(d.current){if(d.current=false,a.current&&(a.current.classList.remove("dragging"),a.current=null),w){let{left:M,right:H}=c.current;commitColumnResize(w,{pmStart:u.current,colIdx:s.current,newLeft:M,newRight:H});}return r.current=null,true}return m.current?(m.current=false,h.current&&(h.current.classList.remove("dragging"),h.current=null),w&&commitRowResize(w,{pmStart:i.current,rowIdx:b.current,newHeight:f.current}),r.current=null,true):C.current?(C.current=false,v.current&&(v.current.classList.remove("dragging"),v.current=null),w&&commitRightEdgeResize(w,{pmStart:R.current,colIdx:y.current,newWidth:S.current}),r.current=null,true):false},[]),I=useCallback(()=>d.current||m.current||C.current,[]);return {tryStartFromMouseDown:P,handleMouseMoveUpdate:k,tryCommit:E,isAnyResizeActive:I}}function rb(e){return {getView:()=>e,setSelection(t,o){let r=o??t;try{let n=e.state.doc.resolve(t),d=e.state.doc.resolve(r);e.dispatch(e.state.tr.setSelection(TextSelection.between(n,d)));}catch{e.dispatch(e.state.tr.setSelection(TextSelection.create(e.state.doc,0)));}},setNodeSelection(t){try{e.dispatch(e.state.tr.setSelection(NodeSelection.create(e.state.doc,t)));}catch{}},setCellSelection(t,o){try{let r=e.state.doc.resolve(t),n=e.state.doc.resolve(o);e.dispatch(e.state.tr.setSelection(new CellSelection(r,n)));}catch{}},focus(){e.focus();}}}function As(e){let{pagesContainerRef:t,hiddenPMRef:o,getHfView:r,layout:n,blocks:d,measures:p,zoom:s,readOnly:u,hfEditMode:c,onBodyClick:a,onContextMenu:m,onHyperlinkClick:g,onHeaderFooterDoubleClick:b,setSelectedImageInfo:i,setSelectionRects:f,setCaretPosition:h,buildImageSelectionInfo:x,setIsFocused:C,scrollToPositionImpl:l}=e,y=useRef(false),R=useRef(null),S=Ms({hiddenPMRef:o,getActiveHfView:r}),v=useRef(createCellDragTracker()),[P,k]=useState(null),E=useRef(null),I=useCallback(()=>{E.current&&(clearTimeout(E.current),E.current=null);},[]);useEffect(()=>()=>{E.current&&clearTimeout(E.current);},[]);let w=useRef(()=>{}),M=useCallback((D,L)=>{w.current(D,L);},[]),{updateMousePosition:H,stopAutoScroll:O}=b$4({pagesContainerRef:t,onScrollExtendSelection:M}),B=useCallback((D,L)=>{if(!t.current||!n)return null;let N=clickToPositionDom(t.current,D,L,s);if(N!==null)return N;if(c){let ue=window.document.elementsFromPoint(D,L).find(De=>De.closest(".layout-page-header")||De.closest(".layout-page-footer"));if(!ue)return null;let me=ue.closest(".layout-page-header")??ue.closest(".layout-page-footer");if(!me)return null;let Re=Array.from(me.querySelectorAll("span[data-pm-start][data-pm-end]")),We=null;for(let De of Re){let Be=De.getBoundingClientRect();if(L<Be.top-4||L>Be.bottom+4)continue;let ye=Number(De.dataset.pmStart),Ne=Number(De.dataset.pmEnd);if(!Number.isFinite(ye)||!Number.isFinite(Ne))continue;let J,Le;if(D<Be.left)J=ye,Le=Be.left-D;else if(D>Be.right)J=Ne,Le=D-Be.right;else {let tt=(D-Be.left)/Math.max(1,Be.width);J=ye+Math.round(tt*(Ne-ye)),Le=0;}(!We||Le<We.dist)&&(We={pos:J,dist:Le});}return We?.pos??null}let W=t.current.querySelectorAll(".layout-page"),_=-1,A=null;for(let Z=0;Z<W.length;Z++){let me=W[Z].getBoundingClientRect();if(D>=me.left&&D<=me.right&&L>=me.top&&L<=me.bottom){_=Z,A=me;break}}if(_<0||!A)return null;let X=(D-A.left)/s,ne=(L-A.top)/s,K=n.pages[_];if(!K)return null;let de={pageIndex:_,page:K,pageY:ne},oe=hitTestFragment(de,d,p,{x:X,y:ne});if(!oe)return null;if(oe.fragment.kind==="table"){let Z=hitTestTableCell(de,d,p,{x:X,y:ne});return clickToPosition(oe,Z)}return clickToPosition(oe)},[n,d,p,s,c,t]),V=useCallback(()=>{if(c&&r){let D=r();if(D)return rb(D)}return o.current},[c,r,o]),U=useCallback(D=>{let L=V()?.getView();return L?findCellPosFromPmPos(L,D):null},[V]),re=useCallback(D=>{let L=V();if(!L)return;if(D.button===2){D.preventDefault();return}if(D.button!==0||(k(null),I(),D.target.closest("a[href]")&&D.preventDefault(),u))return;let W=D.target;if(c){if(!(W.closest(".layout-page-header")||W.closest(".layout-page-footer")||W.closest(".hf-inline-editor"))&&a){D.preventDefault(),D.stopPropagation(),a();return}}else if((W.closest(".layout-page-header")||W.closest(".layout-page-footer"))&&D.detail!==2){D.preventDefault();return}if(S.tryStartFromMouseDown(W,D))return;let _=findImageElement(W);if(_){D.preventDefault(),D.stopPropagation();let X=_.dataset.pmStart;if(X!==void 0){let ne=parseInt(X,10);L.setNodeSelection(ne),i(x(_,ne)),f([]),h(null);}L.focus(),c||C(true);return}i(null),D.preventDefault();let A=B(D.clientX,D.clientY);if(A!==null)v.current.begin(U(A)),y.current=true,R.current=A,L.setSelection(A);else {v.current.begin(null);let X=L.getView();if(X){let ne=Math.max(0,X.state.doc.content.size-1);L.setSelection(ne),R.current=ne,y.current=true;}}L.focus(),c||C(true);},[V,u,c,a,B,U,S,I,i,f,h,x,C]);w.current=(D,L)=>{if(!y.current||R.current===null)return;let N=V();if(!N)return;let W=B(D,L);W!==null&&N.setSelection(R.current,W);};let q=useCallback(D=>{if(S.handleMouseMoveUpdate(D)||!y.current||R.current===null)return;let L=V();if(!L||!t.current)return;H(D.clientX,D.clientY);let N=B(D.clientX,D.clientY);if(N===null)return;let W=L.getView();if(W&&v.current.update(W,N,D.clientX))return;let _=R.current;L.setSelection(_,N);},[V,B,U,H,S,t]),ie=useCallback(()=>{S.tryCommit()||(y.current=false,v.current.end(),O());},[O,S]);useEffect(()=>(window.addEventListener("mousemove",q),window.addEventListener("mouseup",ie),()=>{window.removeEventListener("mousemove",q),window.removeEventListener("mouseup",ie);}),[q,ie]);let te=useCallback(D=>{if(u||y.current||v.current.isCellDragging||S.isAnyResizeActive())return;let L=t.current;if(!L)return;let N=detectTableInsertHover({mouseX:D.clientX,mouseY:D.clientY,pagesContainer:L,target:D.target,hfEditMode:c??null});if(!N){E.current||(E.current=setTimeout(()=>{k(null),E.current=null;},TABLE_INSERT_HIDE_DELAY_MS));return}let W=L.parentElement;if(!W)return;let _=W.getBoundingClientRect();k({type:N.type,x:(N.clientX-_.left)/s,y:(N.clientY-_.top)/s,cellPmPos:N.cellPmPos}),I();},[u,I,c,t,s]),se=useCallback(D=>{if(D.preventDefault(),D.stopPropagation(),!P)return;let L=V(),N=L?.getView();if(!L||!N)return;let{type:W,cellPmPos:_}=P,A=N.state.tr.setSelection(TextSelection.create(N.state.doc,_+1));N.dispatch(A),W==="row"?addRowBelow(N.state,N.dispatch):addColumnRight(N.state,N.dispatch),k(null),L.focus();},[P,V]),pe=useCallback(D=>{let L=V(),N=D.target.closest("a[href]");if(N&&L){D.preventDefault();let _=N.getAttribute("href")||"",A=L.getView();if(_.startsWith("#")){let X=_.substring(1);if(X&&A){let ne=null;A.state.doc.descendants((K,de)=>{if(ne!==null)return false;if(K.type.name==="paragraph"&&K.attrs.bookmarks?.some(Z=>Z.name===X))return ne=de,false}),ne!==null&&(l(ne),L.setSelection(ne+1));}}else if(g&&!(A&&A.state.selection.from!==A.state.selection.to)){let ne=N.textContent||"",K=N.getAttribute("title")||void 0,de=N.closest(".ep-root.paged-editor");if(de){let oe=de.getBoundingClientRect(),Z=N.getBoundingClientRect(),ue={top:Z.bottom-oe.top+4,left:Z.left-oe.left};g({href:_,displayText:ne,tooltip:K,position:ue});}}return}if(D.detail===2&&!c&&b){let _=D.target,A=_.closest(".layout-page-header"),X=_.closest(".layout-page-footer");if(A||X){let ne=_.closest("[data-page-number]"),K=ne?Number(ne.dataset.pageNumber):1;D.preventDefault(),D.stopPropagation(),b(A?"header":"footer",K);return}}if(!L)return;let W=L.getView();if(W){if(D.detail===2){let _=B(D.clientX,D.clientY);if(_!==null){let A=U(_);if(A!==null){D.preventDefault(),D.stopPropagation(),L.setCellSelection(A,A);return}let{doc:X}=W.state,ne=X.resolve(_),K=ne.parent;if(K.isTextblock){let de=K.textContent,oe=ne.parentOffset,[Z,ue]=findWordBoundaries(de,oe),me=ne.start()+Z,Re=ne.start()+ue;me<Re&&L.setSelection(me,Re);}}}if(D.detail===3){let _=B(D.clientX,D.clientY);if(_!==null){let A=W.state.doc.resolve(_);L.setSelection(A.start(A.depth),A.end(A.depth));}}}},[V,c,B,b,g,U,l]),Me=useCallback(D=>{if(!m)return;D.preventDefault();let L=V(),N=L?.getView();if(!L||!N)return;let W=oe=>{let Z=N.state.doc.nodeAt(oe);if(!Z||Z.type.name!=="image")return null;let ue=Z.attrs.wrapType??"inline",me=Z.attrs.cssFloat;return {pos:oe,wrapType:ue,cssFloat:me}},_=null,A=hitTestImage(D.target);if(A&&(_=W(A.pos),_&&(_.inlinePositionEmu=captureInlinePositionEmu(A.imageEl,s))),!_){let oe=N.state.selection;if(oe instanceof NodeSelection&&oe.node.type.name==="image"&&(_=W(oe.from),_)){let Z=t.current?.querySelector(`.layout-run-image[data-pm-start="${oe.from}"]`);Z&&(_.inlinePositionEmu=captureInlinePositionEmu(Z,s));}}let{from:X,to:ne}=N.state.selection,K=B(D.clientX,D.clientY);K!==null&&(X===ne||K<X||K>ne)&&(L.setSelection(K),L.focus(),c||C(true));let de=N.state.selection.from!==N.state.selection.to;m({x:D.clientX,y:D.clientY,hasSelection:de,image:_});},[V,c,m,B,s,t,C]),Te=useCallback(()=>k(null),[]);return {handlePagesMouseDown:re,handlePagesMouseMove:te,handlePagesClick:pe,handlePagesContextMenu:Me,handleTableInsertClick:se,tableInsertButton:P,clearTableInsertTimer:I,hideTableInsertButton:Te,getPositionFromMouse:B}}function db(e,t){let o=e?.package;if(!o)return null;let r=n=>{if(!n)return null;for(let[d,p]of n)if(p===t)return d;return null};return r(o.headers)??r(o.footers)}function Bs(e){let{hiddenPMRef:t,hiddenHfPMsRef:o,documentRef:r,layout:n,runLayoutPipeline:d,scrollToPositionImpl:p,scrollToParaIdImpl:s,scrollToPageImpl:u,setIsFocused:c}=e;return {getDocument:()=>t.current?.getDocument()??null,getState:()=>t.current?.getState()??null,getView:()=>t.current?.getView()??null,focus:()=>{t.current?.focus(),c(true);},blur:()=>{t.current?.blur(),c(false);},isFocused:()=>t.current?.isFocused()??false,dispatch:a=>t.current?.dispatch(a),undo:()=>t.current?.undo()??false,redo:()=>t.current?.redo()??false,setSelection:(a,m)=>t.current?.setSelection(a,m),getLayout:()=>n,relayout:()=>{let a=t.current?.getState();a&&d(a);},scrollToPosition:p,scrollToParaId:s,scrollToPage:u,highlightRange:(a,m)=>{let g=t.current?.getView()??null;if(!g)return;let b=clampRangeToDoc(g.state.doc,a,m);b&&(t.current?.setSelection(b.from,b.to),p(b.from,true));},scrollToCommentId:a=>{let m=t.current?.getView()??null,g=findCommentRange(m,a);return g?(t.current?.setSelection(g.from,g.to),p(g.from,true),true):false},scrollToChangeId:a=>{let m=t.current?.getView()??null,g=findChangeRange(m,a);if(g)return t.current?.setSelection(g.from,g.to),p(g.from,true),true;let b=o.current?.getViews();if(b){for(let i of b.values())if(g=findChangeRange(i,a),g){let f=i.state.tr.setSelection(TextSelection.create(i.state.doc,g.from,g.to));return i.dispatch(f),i.focus(),true}}return false},getHfPmView:a=>{let m=db(r.current,a);return m?o.current?.getView(m)??null:null},getHfPmViews:()=>o.current?.getViews()??new Map}}function Ns(e){let{ref:t,hiddenPMRef:o,hiddenHfPMsRef:r,documentRef:n,layout:d,runLayoutPipeline:p,scrollToPositionImpl:s,scrollToParaIdImpl:u,scrollToPageImpl:c,setIsFocused:a,onReadyRef:m}=e;useImperativeHandle(t,()=>Bs({hiddenPMRef:o,hiddenHfPMsRef:r,documentRef:n,layout:d,runLayoutPipeline:p,scrollToPositionImpl:s,scrollToParaIdImpl:u,scrollToPageImpl:c,setIsFocused:a}),[d,p,s,u,c]),useEffect(()=>{m.current&&o.current&&m.current(Bs({hiddenPMRef:o,hiddenHfPMsRef:r,documentRef:n,layout:d,runLayoutPipeline:p,scrollToPositionImpl:s,scrollToParaIdImpl:u,scrollToPageImpl:c,setIsFocused:a}));},[d,p,u,c]);}function _s(e){let{hiddenPMRef:t,runLayoutPipeline:o,updateSelectionOverlay:r,headerContent:n,footerContent:d,firstPageHeaderContent:p,firstPageFooterContent:s}=e;useEffect(()=>{let c=()=>{let a=t.current?.getView();a&&(resetCanvasContext(),clearAllCaches(),o(a.state),r(a.state));};return window.document.fonts.addEventListener("loadingdone",c),()=>{window.document.fonts.removeEventListener("loadingdone",c);}},[]);let u=useRef(0);useEffect(()=>{if(u.current===0){u.current=1;return}let c=t.current?.getView();c&&o(c.state);},[n,d,p,s,o,t]);}function Vs({type:e,x:t,y:o,onMouseDown:r,onMouseEnter:n,onMouseLeave:d}){let p=e==="row"?"Insert row below":"Insert column to the right";return jsx("button",{type:"button",onMouseDown:r,onMouseEnter:n,onMouseLeave:d,style:{position:"absolute",left:t,top:o,width:20,height:20,borderRadius:"4px",border:"1px solid var(--doc-border-light)",backgroundColor:"var(--doc-bg)",color:"var(--doc-text-muted)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:200,padding:0,boxShadow:"none"},title:p,"aria-label":p,children:jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:jsx("path",{d:"M6 1v10M1 6h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})}var Gs={position:"absolute",zIndex:1e4,background:"var(--doc-surface)",borderRadius:"8px",boxShadow:"0 1px 3px var(--doc-shadow), 0 4px 12px var(--doc-shadow-subtle)",border:"1px solid var(--doc-border-light)",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px"},gb={...Gs,padding:"8px 12px",display:"flex",alignItems:"center",gap:"8px",maxWidth:"400px"},bb={...Gs,padding:"12px",width:"320px"},Ar={width:"20px",height:"20px",flexShrink:0,color:"var(--doc-text-muted)",display:"flex",alignItems:"center",justifyContent:"center"},hb={color:"var(--doc-link)",textDecoration:"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"220px",fontSize:"14px",lineHeight:"20px",cursor:"pointer"},yb={width:"28px",height:"28px",display:"flex",alignItems:"center",justifyContent:"center",border:"none",background:"none",borderRadius:"4px",cursor:"pointer",color:"var(--doc-text-muted)",padding:0,flexShrink:0},vb={width:"1px",height:"20px",background:"var(--doc-border-light)",flexShrink:0},Us={display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},$s={flex:1,padding:"6px 8px",border:"1px solid var(--doc-border-light)",borderRadius:"4px",fontSize:"14px",outline:"none",lineHeight:"20px"},Cb={color:"var(--doc-primary)",fontWeight:600,fontSize:"14px",border:"none",background:"none",cursor:"pointer",padding:"6px 12px",borderRadius:"4px",flexShrink:0},lo={width:18,height:18,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};function Sb(){return jsxs("svg",{...lo,children:[jsx("circle",{cx:"12",cy:"12",r:"10"}),jsx("path",{d:"M2 12h20"}),jsx("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})]})}function Rb(){return jsxs("svg",{...lo,children:[jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function xb(){return jsx("svg",{...lo,children:jsx("path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})})}function Pb(){return jsxs("svg",{...lo,children:[jsx("path",{d:"M18.84 12.25l1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71"}),jsx("path",{d:"M5.17 11.75l-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71"}),jsx("line",{x1:"8",y1:"2",x2:"8",y2:"5"}),jsx("line",{x1:"2",y1:"8",x2:"5",y2:"8"}),jsx("line",{x1:"16",y1:"19",x2:"16",y2:"22"}),jsx("line",{x1:"19",y1:"16",x2:"22",y2:"16"})]})}function Tb(){return jsxs("svg",{...lo,children:[jsx("line",{x1:"4",y1:"9",x2:"20",y2:"9"}),jsx("line",{x1:"4",y1:"15",x2:"20",y2:"15"}),jsx("line",{x1:"10",y1:"3",x2:"8",y2:"21"}),jsx("line",{x1:"16",y1:"3",x2:"14",y2:"21"})]})}function wb(){return jsxs("svg",{...lo,children:[jsx("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),jsx("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]})}function Or({title:e,onClick:t,children:o}){return jsx("button",{type:"button",className:"ep-hyperlink-popup__icon-btn",style:yb,title:e,onClick:t,children:o})}function Ks({data:e,onNavigate:t,onCopy:o,onEdit:r,onRemove:n,onClose:d,readOnly:p}){let{t:s}=b(),[u,c]=useState("view"),[a,m]=useState(""),[g,b$1]=useState(""),i=useRef(null),f=useRef(null);useEffect(()=>{e&&(c("view"),m(e.displayText),b$1(e.href));},[e]),useEffect(()=>{u==="edit"&&requestAnimationFrame(()=>{f.current?.focus(),f.current?.select();});},[u]),useEffect(()=>{if(!e)return;let S=false,v=k=>{i.current&&!i.current.contains(k.target)&&d();},P=setTimeout(()=>{S||document.addEventListener("mousedown",v);},0);return ()=>{S=true,clearTimeout(P),document.removeEventListener("mousedown",v);}},[e,d]),useEffect(()=>{if(!e)return;let S=v=>{v.key==="Escape"&&(u==="edit"?c("view"):d());};return document.addEventListener("keydown",S),()=>document.removeEventListener("keydown",S)},[e,u,d]);let h=useCallback(()=>{e&&(o(e.href),toast("Link copied to clipboard"));},[e,o]),x=useCallback(()=>{e&&(m(e.displayText),b$1(e.href),c("edit"));},[e]),C=useCallback(()=>{let S=g.trim();S&&r(a.trim()||S,S);},[a,g,r]),l=useCallback(S=>{S.key==="Enter"&&(S.preventDefault(),C());},[C]);if(!e)return null;let y=e.position.top,R=e.position.left;return u==="edit"?jsxs("div",{ref:i,className:"ep-hyperlink-popup ep-hyperlink-popup--edit",style:{...bb,top:y,left:R},onMouseDown:S=>S.stopPropagation(),children:[jsxs("div",{style:Us,children:[jsx("span",{style:Ar,children:jsx(Tb,{})}),jsx("input",{ref:f,type:"text",style:$s,value:a,onChange:S=>m(S.target.value),onKeyDown:l,placeholder:s("hyperlinkPopup.displayTextPlaceholder"),onFocus:S=>S.target.style.borderColor="var(--doc-primary)",onBlur:S=>S.target.style.borderColor="var(--doc-border-light)"})]}),jsxs("div",{style:{...Us,marginBottom:0},children:[jsx("span",{style:Ar,children:jsx(wb,{})}),jsx("input",{type:"text",style:$s,value:g,onChange:S=>b$1(S.target.value),onKeyDown:l,placeholder:s("hyperlinkPopup.urlPlaceholder"),onFocus:S=>S.target.style.borderColor="var(--doc-primary)",onBlur:S=>S.target.style.borderColor="var(--doc-border-light)"}),jsx("button",{type:"button",style:{...Cb,opacity:g.trim()?1:.5,cursor:g.trim()?"pointer":"default"},onClick:C,disabled:!g.trim(),children:s("common.apply")})]})]}):jsxs("div",{ref:i,className:"ep-hyperlink-popup",style:{...gb,top:y,left:R},onMouseDown:S=>S.stopPropagation(),children:[jsx("span",{style:Ar,children:jsx(Sb,{})}),jsx("a",{href:e.href,style:hb,title:e.href,target:"_blank",rel:"noopener noreferrer",onClick:S=>{S.preventDefault(),t(e.href);},children:e.href}),jsx("span",{style:vb}),jsx(Or,{title:s("hyperlinkPopup.copyLink"),onClick:h,children:jsx(Rb,{})}),!p&&jsxs(Fragment,{children:[jsx(Or,{title:s("hyperlinkPopup.editLink"),onClick:x,children:jsx(xb,{})}),jsx(Or,{title:s("hyperlinkPopup.removeLink"),onClick:n,children:jsx(Pb,{})})]})]})}var Ab=forwardRef(function(t,o){let{document:r,styles:n,theme:d,sectionProperties:p,finalSectionProperties:s,headerContent:u,footerContent:c,firstPageHeaderContent:a$1,firstPageFooterContent:m,readOnly:g=false,pageGap:b=24,zoom:i=1,onDocumentChange:f,onSelectionChange:h,externalPlugins:x=Ya,extensionManager:C,onReady:l,onRenderedDomContextReady:y,pluginOverlays:R,onHeaderFooterDoubleClick:S,hfEditMode:v,onBodyClick:P,onHfTransaction:k,className:E,style:I,commentsSidebarOpen:w=false,sidebarOverlay:M,scrollContainerRef:H,onHyperlinkClick:O,onContextMenu:B,onAnchorPositionsChange:V,onTotalPagesChange:U,resolvedCommentIds:re,hyperlinkPopupData:q,onHyperlinkPopupNavigate:ie,onHyperlinkPopupCopy:te,onHyperlinkPopupEdit:se,onHyperlinkPopupRemove:pe,onHyperlinkPopupClose:Me,isSuggesting:Te=false,author:D="User"}=t,L=useCallback(()=>H&&typeof H=="object"?H.current:N.current,[H]),N=useRef(null),W=useRef(null),_=useRef(null),A=useRef(null),X=useRef(null),ne=useRef(r);ne.current=r;let{handlePMKeyDown:K}=a({pagesContainerRef:W}),de=useRef(h),oe=useRef(f),Z=useRef(l),ue=useRef(y);de.current=h,oe.current=f,Z.current=l,ue.current=y;let[me,Re]=useState(false);useEffect(()=>{if(v){let $=A.current?.getView();if($){try{let Ce=$.state.tr.setSelection(TextSelection.create($.state.doc,0));$.dispatch(Ce);}catch{}$.dom.blur?.();}Re(false);}},[v]);let We=useRef(false),De=useMemo(()=>new LayoutSelectionGate,[]),Be=useCallback($=>{let Ce=X.current;if(!Ce)return null;let he=r?.package;if(!he)return null;let je=Jt=>{if(!Jt)return null;for(let[eo,Ko]of Jt)if(Ko===$)return eo;return null},it=je(he.headers)??je(he.footers);return it?Ce.getView(it)?.state.doc??null:null},[r]),{layout:ye,blocks:Ne,measures:J,decorationSyncToken:Le,notifyDecorationLayer:tt,contentWidth:vt,runLayoutPipeline:_e,scheduleLayout:ee}=fs({document:r,styles:n,theme:d,sectionProperties:p,finalSectionProperties:s,headerContent:u,footerContent:c,firstPageHeaderContent:a$1,firstPageFooterContent:m,getHfPmDoc:Be,pageGap:b,zoom:i,resolvedCommentIds:re,pagesContainerRef:W,viewportLayoutRef:_,hiddenPMRef:A,syncCoordinator:De,getScrollContainer:L,onTotalPagesChange:U,onAnchorPositionsChange:V,onRenderedDomContextReady:y}),{selectionRects:Y,caretPosition:Q,selectedImageInfo:ve,setSelectionRects:xe,setCaretPosition:fe,setSelectedImageInfo:Xe,buildImageSelectionInfo:Pe,updateSelectionOverlay:Ge,handleSelectionChange:ae}=hs({layout:ye,blocks:Ne,measures:J,zoom:i,containerRef:N,pagesContainerRef:W,hiddenPMRef:A,syncCoordinator:De,isImageInteractingRef:We,onSelectionChangeRef:de}),Ke=useCallback(($,Ce)=>{if(tt(),$.docChanged){De.incrementStateSeq(),ee(Ce);let he=A.current?.getDocument();he&&oe.current?.(he);}De.requestRender(),$.docChanged||Ge(Ce);},[ee,Ge,De,tt]),{scrollToPositionImpl:Ve,scrollToPageImpl:Ee,scrollToParaIdImpl:He}=Rs({layout:ye,blocks:Ne,measures:J,pagesContainerRef:W,hiddenPMRef:A,getScrollContainer:L}),{handlePagesMouseDown:Fe,handlePagesMouseMove:pt,handlePagesClick:Ue,handlePagesContextMenu:Uo,handleTableInsertClick:Ot,tableInsertButton:Xt,clearTableInsertTimer:Bt,hideTableInsertButton:Zt,getPositionFromMouse:$o}=As({pagesContainerRef:W,hiddenPMRef:A,getHfView:useCallback(()=>{let $=X.current;if(!$)return null;let Ce=r?.package?.document?.finalSectionProperties,he=v==="header"?Ce?.headerReferences:Ce?.footerReferences,je=he?.find(it=>it.type==="default")??he?.find(it=>it.type==="first")??null;return je?.rId?$.getView(je.rId):null},[v,r]),layout:ye,blocks:Ne,measures:J,zoom:i,readOnly:g,hfEditMode:v,onBodyClick:P,onContextMenu:B,onHyperlinkClick:O,onHeaderFooterDoubleClick:S,setSelectedImageInfo:Xe,setSelectionRects:xe,setCaretPosition:fe,buildImageSelectionInfo:Pe,setIsFocused:Re,scrollToPositionImpl:Ve}),Qt=useCallback($=>{if(g)return;let Ce=$.target;Ce.closest(".docx-comments-sidebar")||Ce.closest(".docx-unified-sidebar")||Ce.closest(".ep-hyperlink-popup")||Ce.closest("[data-hf-r-id]")||(A.current?.focus(),Re(true));},[g]),go=useCallback($=>{let Ce=$.relatedTarget;Ce&&N.current?.contains(Ce)||Ce?.closest('[role="toolbar"], [data-radix-popper-content-wrapper], [data-radix-select-content], .docx-table-options-dropdown')||Re(false);},[]),{handleImageResize:Wn,handleImageResizeStart:bo,handleImageResizeEnd:Nt,handleImageDragMove:Un,handleImageDragStart:$n,handleImageDragEnd:Go}=vs({pagesContainerRef:W,hiddenPMRef:A,zoom:i,isImageInteractingRef:We,getPositionFromMouse:$o}),Gn=useCallback($=>{if(g)return;let Ce=$.target;if(!Ce?.closest("[data-hf-r-id]")&&!Ce?.closest(".ep-hyperlink-popup")){if(A.current?.isFocused()||(A.current?.focus(),Re(true)),$.key===" "&&!$.ctrlKey&&!$.metaKey&&!$.nativeEvent.isComposing){$.preventDefault();let he=A.current?.getView();if(he){let{from:je,to:it}=he.state.selection;he.someProp("handleTextInput",eo=>eo(he,je,it," "))||he.dispatch(he.state.tr.insertText(" "));}return}if(["PageUp","PageDown"].includes($.key)&&!$.metaKey&&$.ctrlKey,$.key==="Home"&&($.metaKey||$.ctrlKey)){let he=L();he&&(he.scrollTop=0);}if($.key==="End"&&($.metaKey||$.ctrlKey)){let he=L();he&&(he.scrollTop=he.scrollHeight);}}},[g,L]),Kn=useCallback($=>{g||$.target.closest(".docx-comments-sidebar")||$.target.closest(".docx-unified-sidebar")||A.current?.isFocused()||(A.current?.focus(),Re(true));},[g]),Et=useCallback($=>{_e($.state),Ge($.state),g||requestAnimationFrame(()=>{$.focus(),Re(true);});},[_e,Ge,g]);_s({hiddenPMRef:A,runLayoutPipeline:_e,updateSelectionOverlay:Ge,headerContent:u,footerContent:c,firstPageHeaderContent:a$1,firstPageFooterContent:m}),Ns({ref:o,hiddenPMRef:A,hiddenHfPMsRef:X,documentRef:ne,layout:ye,runLayoutPipeline:_e,scrollToPositionImpl:Ve,scrollToParaIdImpl:He,scrollToPageImpl:Ee,setIsFocused:Re,onReadyRef:Z});let ho=useMemo(()=>ye?yn(ye,b):DEFAULT_PAGE_HEIGHT_PX+24+24,[ye,b]);return jsxs("div",{ref:N,className:`ep-root paged-editor ${E??""}`,style:{...qa,...I},tabIndex:0,onFocus:Qt,onBlur:go,onKeyDown:Gn,onMouseDown:Kn,children:[jsx(Fa,{ref:A,document:r,styles:n,widthPx:vt,readOnly:g||!!v,onTransaction:Ke,onSelectionChange:ae,externalPlugins:x,extensionManager:C,onEditorViewReady:Et,onKeyDown:K}),jsx(Rr,{ref:X,document:r,styles:n,theme:d,isSuggesting:Te,author:D,defaultTabStopTwips:r?.package?.settings?.defaultTabStop??null,onTransaction:($,Ce,he)=>{if(he){let je=A.current?.getState();je&&_e(je);}k?.($,Ce,he);}}),jsxs("div",{ref:_,style:{...Xa,minHeight:ho,marginBottom:i!==1?ho*(i-1):void 0,transform:(()=>{let $=[];return w&&$.push(`translateX(-${SIDEBAR_DOCUMENT_SHIFT}px)`),i!==1&&$.push(`scale(${i})`),$.length>0?$.join(" "):void 0})(),transformOrigin:"top center",transition:"transform 0.2s ease"},children:[jsx("div",{ref:W,className:`paged-editor__pages${g?" paged-editor--readonly":""}${v?` paged-editor--hf-editing paged-editor--editing-${v}`:""}`,style:Za,onMouseDown:Fe,onMouseMove:pt,onClick:Ue,onContextMenu:Uo,"aria-hidden":"true"}),jsx(Aa,{selectionRects:v?[]:Y,caretPosition:v?null:Q,isFocused:me&&!v,pageGap:b,readOnly:g}),jsx(Va,{imageInfo:ve,zoom:i,isFocused:me,onResize:Wn,onResizeStart:bo,onResizeEnd:Nt,onDragMove:Un,onDragStart:$n,onDragEnd:Go,onContextMenu:Uo}),Xt&&jsx(Vs,{type:Xt.type,x:Xt.x,y:Xt.y,onMouseDown:Ot,onMouseEnter:Bt,onMouseLeave:Zt}),R&&jsx("div",{className:"paged-editor__plugin-overlays",style:Qa,children:R}),jsx($a,{getView:()=>A.current?.getView()??null,getPagesContainer:()=>W.current,zoom:i,decorationSyncToken:Le,syncCoordinator:De})]}),M&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,height:ho*i,pointerEvents:"none",overflow:"visible"},children:jsx("div",{style:{pointerEvents:"auto"},children:M})}),q&&ie&&te&&se&&pe&&Me&&jsx(Ks,{data:q,onNavigate:ie,onCopy:te,onEdit:se,onRemove:pe,onClose:Me,readOnly:g})]})}),Xs=memo(Ab);var Js={position:"absolute",left:0,right:0,bottom:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",padding:"2px 0",fontSize:11,color:"var(--doc-primary)",userSelect:"none",pointerEvents:"auto"},el={fontWeight:500,letterSpacing:.3},Ub={background:"none",border:"none",color:"var(--doc-primary)",cursor:"pointer",fontSize:11,padding:"2px 6px",borderRadius:3},$b={position:"absolute",right:0,top:"100%",background:"var(--doc-surface)",border:"1px solid var(--doc-border-light)",borderRadius:4,boxShadow:"0 2px 6px var(--doc-shadow)",zIndex:h.dropdown,minWidth:160,padding:"4px 0"},Pn={display:"block",width:"100%",padding:"6px 12px",border:"none",background:"none",textAlign:"left",cursor:"pointer",fontSize:12,color:"var(--doc-text)"},ol=forwardRef(function({headerFooter:t,position:o,view:r,targetElement:n,parentElement:d,onSave:p,onClose:s,onRemove:u},c){let a=useRef(r);a.current=r;let[m,g]=useState(false),b$1=useRef(null),[i,f]=useState(null);useLayoutEffect(()=>{let v=()=>{let k=d.getBoundingClientRect(),E=n.getBoundingClientRect();f({top:E.top-k.top+d.scrollTop,left:E.left-k.left+d.scrollLeft,width:E.width,height:E.height});};v();let P=d.closest('[style*="overflow"]')||d;return P.addEventListener("scroll",v),window.addEventListener("resize",v),()=>{P.removeEventListener("scroll",v),window.removeEventListener("resize",v);}},[n,d]);let h$1=useRef(false);useEffect(()=>{!r||h$1.current||(h$1.current=true,requestAnimationFrame(()=>r.focus()));},[r]);let x=useCallback(()=>{if(!a.current)return;let v=proseDocToBlocks(a.current.state.doc);p(v);},[p]),C=useCallback(()=>{x(),s();},[x,s]);useEffect(()=>{function v(P){P.key==="Escape"&&(P.preventDefault(),P.stopPropagation(),C());}return document.addEventListener("keydown",v,true),()=>document.removeEventListener("keydown",v,true)},[C]),useEffect(()=>{if(!m)return;function v(P){b$1.current&&!b$1.current.contains(P.target)&&g(false);}return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[m]),useImperativeHandle(c,()=>({getView:()=>a.current,focus:()=>a.current?.focus(),undo:()=>{let v=a.current;return v?undo(v.state,v.dispatch):false},redo:()=>{let v=a.current;return v?redo(v.state,v.dispatch):false}}));let{t:l}=b(),y=l(o==="header"?"headerFooter.header":"headerFooter.footer");if(!i)return null;let R={position:"absolute",top:i.top,left:i.left,width:i.width,height:i.height,zIndex:h.hfInlineEditor,pointerEvents:"none"},S={...Js,bottom:"auto",top:"100%"};return jsxs("div",{className:"hf-inline-editor",style:R,children:[o==="footer"&&jsxs("div",{className:"hf-separator-bar",style:S,children:[jsx("span",{style:el,children:y}),jsx(tl,{label:y,showOptions:m,setShowOptions:g,optionsRef:b$1,onRemove:u,onClose:C,viewRef:a})]}),o==="header"&&jsxs("div",{className:"hf-separator-bar",style:Js,children:[jsx("span",{style:el,children:y}),jsx(tl,{label:y,showOptions:m,setShowOptions:g,optionsRef:b$1,onRemove:u,onClose:C,viewRef:a})]})]})});function tl({label:e,showOptions:t,setShowOptions:o,optionsRef:r,onRemove:n,onClose:d,viewRef:p}){let{t:s}=b(),u=c=>{let a=p.current;if(!a)return;let{$from:m,from:g}=a.state.selection,b=a.state.storedMarks||m.marks(),i=schema.nodes.field.create({fieldType:c,instruction:` ${c} \\* MERGEFORMAT `,fieldKind:"simple",dirty:true}),f=a.state.tr.insert(g,i.mark(b));a.dispatch(f),a.focus();};return jsxs("div",{style:{position:"relative"},ref:r,children:[jsxs("button",{type:"button",style:Ub,onClick:c=>{c.stopPropagation(),o(a=>!a);},onMouseDown:c=>c.stopPropagation(),children:[s("headerFooter.options")," \u25BE"]}),t&&jsxs("div",{style:$b,onMouseDown:c=>c.stopPropagation(),children:[jsx("button",{type:"button",style:Pn,onClick:()=>{o(false),u("PAGE");},onMouseOver:c=>{c.target.style.backgroundColor="var(--doc-bg-hover)";},onMouseOut:c=>{c.target.style.backgroundColor="transparent";},children:s("headerFooter.insertPageNumber")}),jsx("button",{type:"button",style:Pn,onClick:()=>{o(false),u("NUMPAGES");},onMouseOver:c=>{c.target.style.backgroundColor="var(--doc-bg-hover)";},onMouseOut:c=>{c.target.style.backgroundColor="transparent";},children:s("headerFooter.insertTotalPages")}),jsx("div",{style:{borderTop:"1px solid var(--doc-border-light)",margin:"4px 0"}}),n&&jsx("button",{type:"button",style:Pn,onClick:()=>{o(false),n();},onMouseOver:c=>{c.target.style.backgroundColor="var(--doc-bg-hover)";},onMouseOut:c=>{c.target.style.backgroundColor="transparent";},children:s("headerFooter.remove",{label:e.toLowerCase()})}),jsx("button",{type:"button",style:Pn,onClick:()=>{o(false),d();},onMouseOver:c=>{c.target.style.backgroundColor="var(--doc-bg-hover)";},onMouseOut:c=>{c.target.style.backgroundColor="transparent";},children:s("headerFooter.closeEditing",{label:e.toLowerCase()})})]})]})}var nl=resolveItemPositions;function al({items:e,anchorPositions:t,renderedDomContext:o,pageWidth:r,zoom:n,editorContainerRef:d,onExpandedItemChange:p,activeItemId:s}){let{t:u}=b(),c=s??null,a=useRef(c);a.current=c;let[m,g]=useState(false),b$1=useRef(new Map),i=useRef(new Map),f=useRef(new Set),h=useRef(null),x=useRef(new Map),C=useRef(new Map),[l,y]=useState(0),R=useMemo(()=>nl(e,t,o,n,b$1.current,i.current),[e,t,o,n,l]),S=R.length>0,v=useMemo(()=>{let I=new Map;for(let w of R)I.set(w.item.id,w.y);return I},[R]);useEffect(()=>{for(let I of R)f.current.add(I.item.id);},[R]);let P=useCallback(()=>{let I=false;for(let[w,M]of x.current){let H=M.offsetHeight;b$1.current.get(w)!==H&&(b$1.current.set(w,H),I=true);}I&&y(w=>w+1);},[]);useEffect(()=>{let I=requestAnimationFrame(P),w=setTimeout(()=>{P(),g(true);},400);return ()=>{cancelAnimationFrame(I),clearTimeout(w);}},[e.length,P]),useEffect(()=>{let I=d?.current;if(!I)return;let w=new ResizeObserver(()=>{requestAnimationFrame(()=>y(M=>M+1));});return w.observe(I),()=>w.disconnect()},[d]),useEffect(()=>{let I=requestAnimationFrame(P);return ()=>cancelAnimationFrame(I)},[c,P]),useEffect(()=>{if(!c)return;let I=x.current.get(c);if(!I){let H=requestAnimationFrame(()=>y(O=>O+1));return ()=>cancelAnimationFrame(H)}let w,M=new ResizeObserver(()=>{cancelAnimationFrame(w),w=requestAnimationFrame(()=>{b$1.current.set(c,I.offsetHeight),y(H=>H+1);});});return M.observe(I),()=>{cancelAnimationFrame(w),M.disconnect();}},[c]);let k=useCallback(I=>{let w=C.current.get(I);return w||(w=M=>{M?(x.current.set(I,M),b$1.current.set(I,M.offsetHeight)):(x.current.delete(I),b$1.current.delete(I));},C.current.set(I,w)),w},[]),E=useCallback(I=>{p?.(a.current===I?null:I);},[p]);return e.length===0?null:jsx("aside",{ref:h,className:"docx-unified-sidebar",role:"complementary","aria-label":u("sidebar.ariaLabel"),style:{position:"absolute",top:0,left:`calc(50% - ${SIDEBAR_DOCUMENT_SHIFT}px + ${r*n/2+SIDEBAR_PAGE_GAP}px)`,width:SIDEBAR_WIDTH,fontFamily:"'Google Sans', Roboto, Arial, sans-serif",zIndex:40,backgroundColor:"transparent",overflowY:"visible",overflowX:"visible",opacity:S?1:0,transition:"opacity 0.15s ease"},onMouseDown:I=>I.stopPropagation(),children:jsx("div",{style:{position:"relative"},children:e.map(I=>{let w=v.get(I.id),M=c===I.id,O=!f.current.has(I.id)&&w!==void 0,B=S&&!v.has(I.id),V=S?w!==void 0?{position:"absolute",top:w,left:0,right:0,opacity:1}:{position:"absolute",top:0,left:0,right:0,opacity:0,visibility:"hidden"}:{marginBottom:6},U=B?"none":O||I.isTemporary?"opacity 0.2s ease":m?"opacity 0.2s ease, top 0.15s ease":"none";return jsx("div",{style:{...V,transition:U},children:I.render({isExpanded:M,onToggleExpand:()=>E(I.id),measureRef:k(I.id)})},I.id)})})})}function sl({comments:e,anchorPositions:t,zoom:o,pageWidth:r,sidebarOpen:n,resolvedCommentIds:d,onMarkerClick:p}){let{t:s}=b(),c=e.filter(a=>a.parentId==null).map(a=>{let m=d.has(a.id);if(!m&&n||m&&n)return null;let g=t.get(`comment-${a.id}`);return g==null?null:{comment:a,isResolved:m,y:g}}).filter(Boolean);return c.length===0?null:jsx("div",{className:"docx-comment-margin-markers",style:{position:"absolute",top:0,left:`calc(50% + ${r*o/2+6}px)`,zIndex:30,pointerEvents:"none"},onMouseDown:a=>a.stopPropagation(),children:c.map(({comment:a,isResolved:m,y:g})=>jsx("button",{onClick:()=>p(a.id),title:s(m?"commentMarkers.resolvedComment":"commentMarkers.comment"),style:{position:"absolute",top:g*o,left:0,width:24,height:24,display:"flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:4,background:"transparent",cursor:"pointer",pointerEvents:"auto",color:"var(--doc-text-muted)",padding:0,fontFamily:"inherit"},onMouseOver:b=>{b.currentTarget.style.opacity="0.7";},onMouseOut:b=>{b.currentTarget.style.opacity="1";},children:jsx(b$1,{name:m?"chat_bubble_check":"chat_bubble_outline",size:18})},a.id))})}function dl({pagedEditorRef:e,hfEditorRef:t,scrollContainerRef:o$1,editorContentRef:r,document:n,theme:d,initialSectionProperties:p,finalSectionProperties:s,headerContent:u,footerContent:c,firstPageHeaderContent:a,firstPageFooterContent:m,hfEditPosition:g,setHfEditPosition:b,hfEditIsFirstPage:i,onHeaderFooterDoubleClick:f,onHeaderFooterSave:h,onRemoveHeaderFooter:x,onBodyClick:C,getHfTargetElement:l,zoom:y,readOnly:R,extensionManager:S,externalPlugins:v,onDocumentChange:P,onSelectionChange:k,onPagedSelectionChange:E,onReady:I,onEditorViewReady:w,onRenderedDomContextReady:M,pluginOverlays:H,onHyperlinkClick:O,hyperlinkPopupData:B,onHyperlinkPopupNavigate:V,onHyperlinkPopupCopy:U,onHyperlinkPopupEdit:re,onHyperlinkPopupRemove:q,onHyperlinkPopupClose:ie,onContextMenu:te,sidebarOpen:se,sidebarItems:pe,anchorPositions:Me,onAnchorPositionsChange:Te,pluginRenderedDomContext:D,pageWidthPx:L,expandedSidebarItem:N,setExpandedSidebarItem:W,comments:_,resolvedCommentIds:A,resolvedIdsForRender:X,setShowCommentsSidebar:ne,onTotalPagesChange:K,floatingCommentBtn:de,isAddingComment:oe,setCommentSelectionRange:Z,setAddCommentYPosition:ue,setIsAddingComment:me,setFloatingCommentBtn:Re,isSuggesting:We=false,author:De="User",onHfTransaction:Be}){let ye=g?i?g==="header"?a:m:g==="header"?u:c:null,[Ne,J]=useState(null),[Le,tt]=useState([]),vt=useCallback(ee=>{let Q=window.document.querySelector(".paged-editor__pages")?.parentElement;if(!Q)return ee;let ve=Q.getBoundingClientRect();return {...ee,top:ee.top-ve.top+Q.scrollTop,left:ee.left-ve.left+Q.scrollLeft}},[]),_e=useCallback(ee=>{if(!g){J(null),tt([]);return}let Y=computeHfCaretRectFromView(ee,g);J(Y?vt(Y):null),tt(computeHfSelectionRectsFromView(ee,g).map(vt));let Q=window.document.querySelector(".paged-editor__pages");Q&&applyCellSelectionHighlight(Q,ee.state,{scope:g});},[g,vt]);return useEffect(()=>{if(!g){J(null),tt([]),invalidateHfDomCache();return}let ee=()=>{let fe=t.current?.getView();fe&&_e(fe);},Y=window.document.querySelector(".paged-editor__pages"),Q=()=>{invalidateHfDomCache(),ee();};Y?.addEventListener("painter:painted",Q);let ve=requestAnimationFrame(ee),xe=()=>ee();return window.addEventListener("resize",xe),()=>{cancelAnimationFrame(ve),Y?.removeEventListener("painter:painted",Q),window.removeEventListener("resize",xe),invalidateHfDomCache();}},[g,t,_e]),jsxs(Fragment,{children:[jsx(Xs,{ref:e,document:n,styles:n?.package.styles,theme:n?.package.theme||d,sectionProperties:p,finalSectionProperties:s,headerContent:u,footerContent:c,firstPageHeaderContent:a,firstPageFooterContent:m,onHeaderFooterDoubleClick:f,hfEditMode:g,onBodyClick:C,isSuggesting:We,author:De,onHfTransaction:(ee,Y,Q)=>{let ve=window.document.querySelector(".paged-editor__pages"),xe=false,fe=()=>{xe||(xe=true,invalidateHfDomCache(),_e(Y));};ve?.addEventListener("painter:painted",fe,{once:true}),requestAnimationFrame(()=>{xe||(ve?.removeEventListener("painter:painted",fe),fe());}),k(extractSelectionState(Y.state)),Be?.(ee,Y,Q);},zoom:y,readOnly:R,extensionManager:S,onDocumentChange:P,onSelectionChange:E,externalPlugins:v,onReady:ee=>{I(ee);let Y=ee.getView();Y&&w?.(Y);},onRenderedDomContextReady:M,pluginOverlays:H,onHyperlinkClick:O,hyperlinkPopupData:B,onHyperlinkPopupNavigate:V,onHyperlinkPopupCopy:U,onHyperlinkPopupEdit:re,onHyperlinkPopupRemove:q,onHyperlinkPopupClose:ie,onContextMenu:te,commentsSidebarOpen:se,onAnchorPositionsChange:Te,onTotalPagesChange:K,resolvedCommentIds:X,scrollContainerRef:o$1,sidebarOverlay:jsxs(Fragment,{children:[pe.length>0&&jsx(al,{items:pe,anchorPositions:Me,renderedDomContext:D??null,pageWidth:L,zoom:y,editorContainerRef:o$1,onExpandedItemChange:W,activeItemId:N}),jsx(sl,{comments:_,anchorPositions:Me,zoom:y,pageWidth:L,sidebarOpen:se,resolvedCommentIds:A,onMarkerClick:()=>ne(true)})]})}),de!=null&&!oe&&!R&&jsx(o,{content:"Add comment",side:"bottom",delayMs:300,children:jsx("button",{type:"button",onMouseDown:ee=>{ee.preventDefault(),ee.stopPropagation();let Y=e.current?.getView();if(Y){let{from:Q,to:ve}=Y.state.selection;if(Q!==ve){Z({from:Q,to:ve});let xe=Y.state.schema.marks.comment.create({commentId:PENDING_COMMENT_ID}),fe=Y.state.tr.addMark(Q,ve,xe);fe.setSelection(TextSelection.create(fe.doc,ve)),Y.dispatch(fe);}}ue(de.top),ne(true),me(true),Re(null);},style:{position:"absolute",top:de.top,left:de.left,transform:"translate(-50%, -50%)",zIndex:50,width:28,height:28,borderRadius:6,border:"1px solid var(--doc-focus-ring)",backgroundColor:"var(--doc-surface)",color:"var(--doc-primary)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 1px 3px var(--doc-shadow)",transition:"background-color 0.15s ease, box-shadow 0.15s ease"},onMouseOver:ee=>{ee.currentTarget.style.backgroundColor="var(--doc-primary-light)",ee.currentTarget.style.boxShadow="0 1px 4px var(--doc-focus-ring)";},onMouseOut:ee=>{ee.currentTarget.style.backgroundColor="var(--doc-surface)",ee.currentTarget.style.boxShadow="0 1px 3px var(--doc-shadow)";},children:jsx(b$1,{name:"add_comment",size:16})})}),g&&(Ne||Le.length>0)&&(()=>{let ee=window.document.querySelector(".paged-editor__pages"),Y=ee?.parentElement;return !ee||!Y?null:createPortal(jsxs(Fragment,{children:[Ne&&Le.length===0&&jsx(Fragment,{children:jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:Ne.top,left:Ne.left,width:2,height:Ne.height,background:"#4285f4",pointerEvents:"none",zIndex:11,animation:"hf-caret-blink 1.06s steps(1) infinite"}})}),Le.map((Q,ve)=>jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:Q.top,left:Q.left,width:Q.width,height:Q.height,background:"rgba(66, 133, 244, 0.25)",pointerEvents:"none",zIndex:10}},`hf-sel-${ve}-${Q.top}-${Q.left}`))]}),Y)})(),g&&ye&&(()=>{let ee=l(g),Y=r.current;if(!ee||!Y)return null;let Q=e.current?.getHfPmView(ye)??null;return jsx(ol,{ref:t,headerFooter:ye,position:g,view:Q,targetElement:ee,parentElement:Y,onSave:h,onClose:()=>{b(null),J(null);},onRemove:x})})()]})}var $r=".layout-sdt-widget, .layout-inline-sdt-widget";function pl(e){let t=/^sdt@(\d+)$/.exec(e??"");return t?Number(t[1]):null}function ih(e){if(e==null||e==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}function ah(e){let t=pl(e.dataset.sdtGroupId)??ih(e.dataset.sdtPos),o=e.dataset.sdtTag;return t!=null?o?{pos:t,tag:o}:{pos:t}:o?{tag:o}:null}function sh(e,t){return findContentControlsInPM(e.state.doc,{tag:t})[0]}function lh(e,t){return t.pos!=null?findContentControlsInPM(e.state.doc).find(o=>o.pos===t.pos):t.tag?sh(e,t.tag):void 0}function ml({containerRef:e,getView:t}){let[o,r]=useState(null),n=useRef(null),d=useCallback((u,c)=>{let a=t();if(a){try{let m=u.pos!=null?setContentControlValueAtPosTr(a.state,u.pos,c):u.tag?setContentControlValueTr(a.state,{tag:u.tag},c):null;if(!m)return;a.dispatch(m),a.focus();}catch{}r(null);}},[t]);useEffect(()=>{let u=e.current;if(!u)return;let c=i=>{let f=t(),h=i.dataset.sdtWidget,x=ah(i);if(!f||!h||!x)return;let C=lh(f,x),l=i.getBoundingClientRect();h==="checkbox"?d(x,{kind:"checkbox",checked:!C?.checked}):h==="dropdown"?r({kind:"dropdown",target:x,items:C?.listItems??[],current:C?.text??"",rect:l}):h==="date"&&r({kind:"date",target:x,current:C?.dateValue??"",rect:l});},a=i=>{let f=t(),h=pl(i.dataset.sdtGroupId);if(!(!f||h==null))try{let x=i.dataset.sdtRepeat==="add"?addRepeatingSectionItemTr(f.state,h):removeRepeatingSectionItemTr(f.state,h);f.dispatch(x),f.focus();}catch{}},m=i=>{let f=i.target;(f?.closest?.($r)||f?.closest?.(".layout-sdt-repeat-btn"))&&i.preventDefault();},g=i=>{let f=i.target?.closest?.(".layout-sdt-repeat-btn");if(f){i.preventDefault(),i.stopPropagation(),a(f);return}let h=i.target?.closest?.($r);h&&(i.preventDefault(),i.stopPropagation(),c(h));},b=i=>{if(i.key!=="Enter"&&i.key!==" ")return;let f=i.target?.closest?.($r);f&&(i.preventDefault(),c(f));};return u.addEventListener("mousedown",m),u.addEventListener("click",g),u.addEventListener("keydown",b),()=>{u.removeEventListener("mousedown",m),u.removeEventListener("click",g),u.removeEventListener("keydown",b);}},[e,t,d]),useEffect(()=>{if(!o)return;let u=a=>{n.current?.contains(a.target)||r(null);},c=a=>{a.key==="Escape"&&r(null);};return document.addEventListener("mousedown",u),document.addEventListener("keydown",c),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("keydown",c);}},[o]),useEffect(()=>{if(o?.kind!=="dropdown")return;let u=n.current?.querySelectorAll(".layout-sdt-widget-option");u?.length&&([...u].find(c=>c.getAttribute("aria-selected")==="true")??u[0]).focus();},[o]);let p=u=>{if(u.key!=="ArrowDown"&&u.key!=="ArrowUp")return;let c=[...n.current?.querySelectorAll(".layout-sdt-widget-option")??[]];if(!c.length)return;u.preventDefault();let a=c.indexOf(document.activeElement),m=u.key==="ArrowDown"?(a+1)%c.length:(a-1+c.length)%c.length;c[m].focus();};if(!o)return null;let s={position:"fixed",top:o.rect.bottom+2,left:o.rect.left,zIndex:1e3};return jsx("div",{ref:n,className:"layout-sdt-widget-popup",style:s,role:o.kind==="dropdown"?"listbox":void 0,onKeyDown:p,onMouseDown:u=>u.preventDefault(),children:o.kind==="dropdown"?o.items.length===0?jsx("div",{className:"layout-sdt-widget-empty",children:"No options"}):o.items.map(u=>{let c=u.displayText===o.current;return jsx("button",{type:"button",role:"option","aria-selected":c,className:`layout-sdt-widget-option${c?" is-selected":""}`,onClick:()=>d(o.target,{kind:"dropdown",value:u.value}),children:u.displayText},u.value)}):jsx("input",{type:"date",className:"layout-sdt-widget-date",autoFocus:true,defaultValue:o.current,onChange:u=>{u.target.value&&d(o.target,{kind:"date",date:u.target.value});}})})}function fl({commentsLoadedRef:e,trackedChangesLoadedRef:t,setComments:o,setHeadingInfos:r,setShowCommentsSidebar:n,setIsAddingComment:d,setCommentSelectionRange:p,setAddCommentYPosition:s,setFloatingCommentBtn:u,setHfEditPosition:c,setHfEditIsFirstPage:a,setAnchorPositions:m,clearFindReplaceMatches:g,cleanOrphanedCommentsTimerRef:b}){return {resetForNewDocument:useCallback(()=>{e.current=false,t.current=false,o([]),r([]),n(false),d(false),p(null),s(null),u(null),c(null),a(false),m(sn),g(),b.current&&(clearTimeout(b.current),b.current=null);},[e,t,o,r,n,d,p,s,u,c,a,m,g,b])}}var gh=createContext(null);function bl({children:e}){let t=useMemo(()=>new ErrorManager,[]),o=useSyncExternalStore(t.subscribe,t.getSnapshot),r=useCallback((c,a)=>{t.showError(c,a);},[t]),n=useCallback((c,a)=>{t.showWarning(c,a);},[t]),d=useCallback((c,a)=>{t.showInfo(c,a);},[t]),p=useCallback(c=>{t.dismiss(c);},[t]),s=useCallback(()=>{t.clearAll();},[t]),u=useMemo(()=>({notifications:o.notifications,showError:r,showWarning:n,showInfo:d,dismissNotification:p,clearNotifications:s}),[o.notifications,r,n,d,p,s]);return jsxs(gh.Provider,{value:u,children:[e,jsx(bh,{notifications:o.notifications,onDismiss:p})]})}function bh({notifications:e,onDismiss:t}){let o=e.filter(n=>!n.dismissed);return o.length===0?null:jsx("div",{className:"docx-notification-container",style:{position:"fixed",top:"16px",right:"16px",zIndex:10001,display:"flex",flexDirection:"column",gap:"8px",maxWidth:"400px"},children:o.map(n=>jsx(hh,{notification:n,onDismiss:()=>t(n.id)},n.id))})}function hh({notification:e,onDismiss:t}){let{t:o}=b(),[r,n]=useState(false),p=(f=>{switch(f){case "error":return {bg:"var(--doc-error-bg)",border:"var(--doc-error)",text:"var(--doc-error)",icon:"var(--doc-error)"};case "warning":return {bg:"var(--doc-warning-bg)",border:"var(--doc-warning)",text:"var(--doc-warning-text)",icon:"var(--doc-warning)"};case "info":return {bg:"var(--doc-primary-light)",border:"var(--doc-primary)",text:"var(--doc-primary)",icon:"var(--doc-primary)"}}})(e.severity),s={background:p.bg,border:`1px solid ${p.border}`,borderRadius:"8px",padding:"12px 16px",boxShadow:"0 2px 8px var(--doc-shadow)",animation:"slideIn 0.3s ease-out"},u={display:"flex",alignItems:"flex-start",gap:"8px"},c={color:p.icon,flexShrink:0},a={flex:1,minWidth:0},m={color:p.text,fontSize:"14px",fontWeight:500,wordBreak:"break-word"},g={marginTop:"8px",padding:"8px",background:"var(--doc-shadow-subtle)",borderRadius:"4px",fontSize:"12px",fontFamily:"monospace",whiteSpace:"pre-wrap",wordBreak:"break-word",color:p.text,maxHeight:"200px",overflow:"auto"},b$1={background:"transparent",border:"none",cursor:"pointer",padding:"4px",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",color:p.text},i=f=>{switch(f){case "error":return jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[jsx("circle",{cx:"10",cy:"10",r:"8",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M10 6v5M10 13v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]});case "warning":return jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[jsx("path",{d:"M10 3L18 17H2L10 3z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsx("path",{d:"M10 8v4M10 14v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]});case "info":return jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[jsx("circle",{cx:"10",cy:"10",r:"8",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M10 9v5M10 6v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}};return jsxs("div",{className:`docx-notification-toast docx-notification-${e.severity}`,style:s,children:[jsx("style",{children:`
|
|
12
|
+
@keyframes slideIn {
|
|
13
|
+
from {
|
|
14
|
+
opacity: 0;
|
|
15
|
+
transform: translateX(100%);
|
|
16
|
+
}
|
|
17
|
+
to {
|
|
18
|
+
opacity: 1;
|
|
19
|
+
transform: translateX(0);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
`}),jsxs("div",{style:u,children:[jsx("span",{style:c,children:i(e.severity)}),jsxs("div",{style:a,children:[jsx("div",{style:m,children:e.message}),e.details&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:()=>n(!r),style:{...b$1,marginTop:"4px",fontSize:"12px",padding:"2px 8px"},children:o(r?"errors.hideDetails":"errors.showDetails")}),r&&jsx("div",{style:g,children:e.details})]})]}),jsx("button",{type:"button",onClick:t,style:b$1,title:o("common.dismiss"),children:jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]})]})}var In=class extends Component{constructor(o){super(o);b$5(this,"resetError",()=>{this.setState({hasError:false,error:null,errorInfo:null});});this.state={hasError:false,error:null,errorInfo:null};}static getDerivedStateFromError(o){return {hasError:true,error:o}}componentDidCatch(o,r){this.setState({errorInfo:r}),console.error("ErrorBoundary caught an error:",o,r),this.props.onError&&this.props.onError(o,r);}render(){if(this.state.hasError){let{fallback:o,showDetails:r=true}=this.props,{error:n,errorInfo:d}=this.state;return o?typeof o=="function"?o(n,this.resetError):o:jsx(yh,{error:n,errorInfo:d,showDetails:r,onReset:this.resetError})}return this.props.children}};function yh({error:e,errorInfo:t,showDetails:o,onReset:r}){let{t:n}=b(),d={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"40px",textAlign:"center",minHeight:"200px",background:"var(--doc-surface)",borderRadius:"8px",border:"1px solid var(--doc-border)",margin:"20px"},p={color:"var(--doc-error)",marginBottom:"16px"},s={fontSize:"18px",fontWeight:600,color:"var(--doc-text)",marginBottom:"8px"},u={fontSize:"14px",color:"var(--doc-text-muted)",marginBottom:"16px",maxWidth:"400px"},c={width:"100%",maxWidth:"600px",marginBottom:"16px",padding:"12px",background:"var(--doc-error-bg)",borderRadius:"4px",fontSize:"12px",fontFamily:"monospace",textAlign:"left",whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:"200px",overflow:"auto"},a={padding:"10px 20px",background:"var(--doc-primary)",color:"var(--doc-on-primary)",border:"none",borderRadius:"4px",fontSize:"14px",cursor:"pointer"};return jsxs("div",{className:"docx-error-fallback",style:d,children:[jsx("div",{style:p,children:jsxs("svg",{width:"48",height:"48",viewBox:"0 0 48 48",fill:"none",children:[jsx("circle",{cx:"24",cy:"24",r:"20",stroke:"currentColor",strokeWidth:"2"}),jsx("path",{d:"M24 14v12M24 30v2",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})}),jsx("h2",{style:s,children:n("errors.somethingWentWrong")}),jsx("p",{style:u,children:n("errors.errorDescription")}),o&&jsxs("div",{style:c,children:[jsx("strong",{children:n("errors.errorLabel")})," ",e.message,t&&jsxs(Fragment,{children:[`
|
|
23
|
+
|
|
24
|
+
`,jsx("strong",{children:n("errors.componentStack")}),t.componentStack]})]}),jsx("button",{type:"button",onClick:r,style:a,children:n("errors.tryAgain")})]})}var Rh=15840,vl=1440,xh=1440,Ph=567,jt=20,Th="var(--doc-text-muted)",wh="var(--doc-text-subtle)",Eh="var(--doc-primary)",Ih="var(--doc-primary)",kh="var(--doc-primary-hover)";function Sl({sectionProps:e,zoom:t=1,editable:o=false,onTopMarginChange:r,onBottomMarginChange:n,unit:d="inch",className:p="",style:s}){let{t:u}=b(),[c,a]=useState(null),[m,g]=useState(null),b$1=useRef(null),i=e?.pageHeight??Rh,f=e?.marginTop??vl,h=e?.marginBottom??vl,x=twipsToPixels(i)*t,C=twipsToPixels(f)*t,l=twipsToPixels(h)*t,y=useCallback((k,E)=>{o&&(k.preventDefault(),a(E));},[o]),R=useCallback(k=>{if(!c||!b$1.current)return;let E=b$1.current.getBoundingClientRect(),I=k.clientY-E.top,w=pixelsToTwips(I/t);if(c==="topMargin"){let M=i-h-720,H=Math.max(0,Math.min(w,M));r?.(Math.round(H));}else if(c==="bottomMargin"){let M=i-w,H=i-f-720,O=Math.max(0,Math.min(M,H));n?.(Math.round(O));}},[c,t,i,f,h,r,n]),S=useCallback(()=>{a(null);},[]);useEffect(()=>{if(c)return document.addEventListener("mousemove",R),document.addEventListener("mouseup",S),()=>{document.removeEventListener("mousemove",R),document.removeEventListener("mouseup",S);}},[c,R,S]);let v=Dh(i,t,d),P={position:"relative",width:jt,height:formatPx(x),backgroundColor:"transparent",overflow:"visible",userSelect:"none",cursor:c?"ns-resize":"default",...s};return jsxs("div",{ref:b$1,className:`docx-vertical-ruler ${p}`,style:P,role:"slider","aria-label":u("ruler.vertical"),"aria-orientation":"vertical",children:[jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"},children:v.map((k,E)=>jsx(Mh,{tick:k},E))}),jsx(Cl,{type:"topMargin",position:C,editable:o,isDragging:c==="topMargin",isHovered:m==="topMargin",onMouseEnter:()=>g("topMargin"),onMouseLeave:()=>g(null),onMouseDown:k=>y(k,"topMargin")}),jsx(Cl,{type:"bottomMargin",position:x-l,editable:o,isDragging:c==="bottomMargin",isHovered:m==="bottomMargin",onMouseEnter:()=>g("bottomMargin"),onMouseLeave:()=>g(null),onMouseDown:k=>y(k,"bottomMargin")})]})}function Mh({tick:e}){let t={position:"absolute",top:formatPx(e.position),right:0,height:1,width:e.width,backgroundColor:wh},o={position:"absolute",top:formatPx(e.position),left:2,transform:"translateY(-50%)",fontSize:"9px",color:Th,fontFamily:"sans-serif",whiteSpace:"nowrap"};return jsxs(Fragment,{children:[jsx("div",{style:t}),e.label&&jsx("div",{style:o,children:e.label})]})}function Cl({type:e,position:t,editable:o,isDragging:r,isHovered:n,onMouseEnter:d,onMouseLeave:p,onMouseDown:s}){let{t:u}=b(),c=r?kh:n?Ih:Eh,a={position:"absolute",top:formatPx(t-5),right:0,width:jt,height:10,cursor:o?"ns-resize":"default",zIndex:r?10:1},m={position:"absolute",top:0,right:2,width:0,height:0,borderTop:"5px solid transparent",borderBottom:"5px solid transparent",borderRight:`8px solid ${c}`,transition:"border-right-color 0.1s"};return jsx("div",{className:`docx-ruler-marker docx-ruler-marker-${e}`,style:a,onMouseEnter:d,onMouseLeave:p,onMouseDown:s,role:"slider","aria-label":u(e==="topMargin"?"ruler.topMargin":"ruler.bottomMargin"),"aria-orientation":"vertical",tabIndex:o?0:-1,children:jsx("div",{style:m})})}function Dh(e,t,o){let r=[];if(o==="inch"){let n=xh/8,d=Math.ceil(e/n);for(let p=0;p<=d;p++){let s=p*n;if(s>e)break;let u=twipsToPixels(s)*t;if(p%8===0){let c=p/8;r.push({position:u,width:10,label:c>0?String(c):void 0});}else p%4===0?r.push({position:u,width:6}):p%2===0?r.push({position:u,width:4}):r.push({position:u,width:2});}}else {let n=Ph/10,d=Math.ceil(e/n);for(let p=0;p<=d;p++){let s=p*n;if(s>e)break;let u=twipsToPixels(s)*t;if(p%10===0){let c=p/10;r.push({position:u,width:10,label:c>0?String(c):void 0});}else p%5===0?r.push({position:u,width:6}):r.push({position:u,width:3});}}return r}var Mn=12,Kr=240,Pl=16,Oh=24,Tl=Mn+Kr+Pl,Bo=12,Bh=36,wl=Bo+Bh+Pl,El=ql.memo(function({headings:t,onHeadingClick:o,onClose:r,topOffset:n=0,scrollLeft:d=0,leftOffset:p=Mn}){let{t:s}=b(),[u,c]=useState(false),a=t.length?Math.min(...t.map(m=>m.level)):0;return useEffect(()=>{requestAnimationFrame(()=>c(true));},[]),jsxs("nav",{className:"docx-outline-nav",role:"navigation","aria-label":s("documentOutline.ariaLabel"),style:{position:"absolute",top:n,left:p-d,bottom:0,width:Kr,paddingTop:Oh,display:"flex",flexDirection:"column",overflow:"hidden",fontFamily:"'Google Sans', Roboto, Arial, sans-serif",zIndex:40,transform:u?"translateX(0)":`translateX(-${p+Kr}px)`,transition:"transform 0.15s ease-out"},onMouseDown:m=>m.stopPropagation(),children:[jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"16px 16px 12px 0"},children:[jsx("button",{onClick:r,"aria-label":s("documentOutline.closeAriaLabel"),style:{background:"none",border:"none",cursor:"pointer",padding:4,borderRadius:"50%",display:"flex",alignItems:"center",color:"var(--doc-text-muted)"},title:s("documentOutline.closeTitle"),children:jsx(b$1,{name:"arrow_back",size:20})}),jsx("span",{style:{fontWeight:400,fontSize:14,color:"var(--doc-text)",letterSpacing:"0.01em"},children:s("documentOutline.title")})]}),jsx("div",{style:{overflowY:"auto",flex:1,paddingLeft:4},children:t.length===0?jsx("div",{style:{padding:"8px 16px",color:"var(--doc-text-subtle)",fontSize:13,lineHeight:"20px"},children:s("documentOutline.noHeadings")}):t.map((m,g)=>jsx("div",{style:{marginLeft:(m.level-a)*16},children:jsx("button",{className:"docx-outline-heading-btn",onClick:()=>o(m.pmPos),style:{display:"block",width:"100%",textAlign:"left",background:"none",border:"none",cursor:"pointer",padding:"5px 8px",fontSize:13,fontWeight:400,color:"var(--doc-text)",lineHeight:"18px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",borderRadius:0,letterSpacing:"0.01em"},title:m.text,children:m.text})},`${m.pmPos}-${g}`))})]})});function kl({onClick:e,topPx:t,scrollLeft:o=0,leftOffset:r=Bo}){let{t:n}=b();return jsx("button",{className:"docx-outline-toggle",onClick:e,onMouseDown:d=>d.stopPropagation(),title:n("editor.showDocumentOutline"),"aria-label":n("editor.showDocumentOutline"),style:{position:"absolute",left:r-o,top:t,zIndex:h.outline},children:jsx(b$1,{name:"format_list_bulleted",size:20})})}function Ml({currentPage:e,totalPages:t,visible:o}){let{t:r}=b();return jsx("div",{style:{position:"absolute",right:24,top:"50%",transform:"translateY(-50%)",backgroundColor:"var(--doc-overlay)",color:"#fff",padding:"6px 12px",borderRadius:"4px",fontSize:"12px",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontWeight:500,whiteSpace:"nowrap",pointerEvents:"none",zIndex:1e3,opacity:o?1:0,transition:"opacity 0.3s ease",userSelect:"none"},"aria-live":"polite",role:"status",children:r("viewer.pageIndicator",{current:e,total:t})})}function Dl({agentPanel:e,closed:t,onClose:o}){let{t:r}=b();return jsx(AgentPanel,{title:e.title??r("agentPanel.defaultTitle"),icon:e.icon,closeLabel:r("agentPanel.close"),resizeHandleLabel:r("agentPanel.resizeHandle"),defaultWidth:e.defaultWidth,minWidth:e.minWidth,maxWidth:e.maxWidth,onClose:o,closed:t,children:e.render({close:o})})}function Hl({i18n:e,isDark:t,onEditorError:o,containerRef:r,scrollContainerRef:n,editorContentRef:d,className:p,containerStyle:s,mainContentStyle:u,editorContainerStyle:c,showRuler:a,readOnlyProp:m,showOutline:g,showOutlineButton:b,sidebarOpen:i,minLayoutWidth:f,toolbarHeight:h$1,editorScrollLeft:x,expandedSidebarItem:C,trackedChanges:l,onScrollContainerMouseDown:y,onEditorBgMouseDown:R,onEditorContextMenu:S,horizontalRulerProps:v,verticalRulerProps:P,outlineProps:k,onToggleOutline:E,scrollPageInfo:I,agentPanel:w,agentPanelOpen:M,onAgentPanelClose:H,toolbar:O,pagedArea:B,overlays:V,dialogs:U,fileInputs:re}){return jsx(a$3,{i18n:e,children:jsx(bl,{children:jsx(In,{onError:o,children:jsxs("div",{ref:r,className:a$1("ep-root docx-editor",t&&"dark",p),style:s,"data-testid":"docx-editor",children:[jsxs("div",{style:u,children:[jsxs("div",{style:{position:"relative",flex:1,minHeight:0,minWidth:0,display:"flex",flexDirection:"column"},children:[O,jsxs("div",{ref:n,className:"docx-editor__scroll-container",style:c,onMouseDown:y,children:[a&&jsx("div",{className:"flex justify-center py-1 flex-shrink-0 bg-doc-bg",style:{position:"sticky",top:0,zIndex:h.ruler,paddingLeft:20,paddingRight:20+(i?SIDEBAR_DOCUMENT_SHIFT*2:0),minWidth:f,transition:"padding 0.2s ease"},children:jsx(F,{...v})}),jsx("div",{style:{display:"flex",flex:1,minHeight:0,position:"relative",minWidth:f},children:jsxs("div",{ref:d,style:{position:"relative",flex:1,minWidth:0},onMouseDown:R,onContextMenu:S,children:[a&&!m&&jsx("div",{style:{position:"absolute",left:0,top:0,zIndex:h.ruler,paddingTop:48},children:jsx(Sl,{...P})}),C&&C.startsWith("comment-")&&jsx("style",{children:`.paged-editor__pages [data-comment-id="${C.replace("comment-","")}"] { background-color: rgba(255, 212, 0, 0.35) !important; border-bottom: 2px solid rgba(255, 212, 0, 0.7) !important; }`}),C?.startsWith("tc-")&&(()=>{let q=C.split("-")[1],te=l.find(se=>String(se.revisionId)===q)?.insertionRevisionId;return jsx("style",{children:`
|
|
25
|
+
.paged-editor__pages .docx-insertion[data-revision-id="${te??q}"] { background-color: rgba(52, 168, 83, 0.2) !important; border-bottom: 2px solid #2e7d32 !important; }
|
|
26
|
+
.paged-editor__pages .docx-deletion[data-revision-id="${q}"] { background-color: rgba(211, 47, 47, 0.2) !important; text-decoration-thickness: 2px !important; }
|
|
27
|
+
`})})(),B]})})]}),I.totalPages>1&&jsx(Ml,{currentPage:I.currentPage,totalPages:I.totalPages,visible:I.visible}),g&&jsx(El,{...k,leftOffset:Mn+(a?jt:0)}),b&&!g&&jsx(kl,{onClick:E,topPx:h$1+(a?30:0)+48,scrollLeft:x,leftOffset:Bo+(a?jt:0)})]}),w&&jsx(Dl,{agentPanel:w,closed:!M,onClose:H})]}),V,U,re]})})})})}var uo={background:"none",border:"none",cursor:"pointer",padding:4,color:"var(--doc-text-muted)",display:"flex",borderRadius:"50%"},Dn={padding:"6px 16px",fontSize:14,border:"none",background:"none",color:"var(--doc-primary)",cursor:"pointer",fontWeight:500,fontFamily:"inherit"};function po(e,t=32){return {width:t,height:t,borderRadius:"50%",backgroundColor:getAvatarColor(e),color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:t===32?13:11,fontWeight:500,flexShrink:0}}function Hn(e){return {padding:"6px 16px",fontSize:14,border:"none",borderRadius:20,background:e?"var(--doc-primary)":"var(--doc-bg-hover)",color:e?"#fff":"var(--doc-text-subtle)",cursor:e?"pointer":"default",fontWeight:500,fontFamily:"inherit"}}function An({replies:e,isExpanded:t}){let{t:o}=b();if(e.length===0)return null;let r=t?e:e.slice(-1),n=t?0:e.length-1;return jsxs("div",{style:{marginTop:8},children:[n>0&&jsx("div",{style:{fontSize:12,fontWeight:500,color:"var(--doc-primary)",paddingTop:6,paddingBottom:6,borderTop:"1px solid var(--doc-border-light)"},children:o("comments.replyCount",{count:n})}),r.map(d=>jsxs("div",{style:{marginBottom:t?8:0,paddingTop:8,borderTop:"1px solid var(--doc-border-light)"},children:[jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[jsx("div",{style:po(d.author||"U",28),children:getInitials(d.author||"U")}),jsxs("div",{style:{flex:1,minWidth:0},children:[jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--doc-text)"},children:d.author||o("comments.unknown")}),jsx("div",{style:{fontSize:11,color:"var(--doc-text-muted)"},children:formatDate(d.date)})]})]}),jsx("div",{style:{fontSize:13,color:"var(--doc-text)",lineHeight:"20px",marginTop:4,...t?{}:{overflow:"hidden",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"}},children:getCommentText(d.content)})]},d.id))]})}var Wh={width:"100%",border:"1px solid var(--doc-primary)",borderRadius:20,outline:"none",fontSize:14,padding:"8px 16px",fontFamily:"inherit",boxSizing:"border-box",color:"var(--doc-text)"},Uh={width:"100%",border:"1px solid var(--doc-border-light)",borderRadius:20,outline:"none",fontSize:14,padding:"8px 16px",fontFamily:"inherit",color:"var(--doc-text-subtle)",cursor:"text",backgroundColor:"var(--doc-surface)",boxSizing:"border-box"};function On({onSubmit:e}){let[t,o]=useState(false),[r,n]=useState(""),{t:d}=b();if(!t)return jsx("div",{onClick:s=>s.stopPropagation(),style:{marginTop:12},children:jsx("input",{readOnly:true,onMouseDown:s=>s.stopPropagation(),onClick:s=>{s.stopPropagation(),o(true);},placeholder:d("comments.replyPlaceholder"),style:Uh})});let p=r.trim();return jsxs("div",{onClick:s=>s.stopPropagation(),style:{marginTop:12},children:[jsx("input",{ref:s=>s?.focus({preventScroll:true}),type:"text",value:r,onChange:s=>n(s.target.value),onMouseDown:s=>s.stopPropagation(),onKeyDown:s=>{s.stopPropagation(),s.key==="Enter"&&(s.preventDefault(),p&&e(p),n(""),o(false)),s.key==="Escape"&&(o(false),n(""));},placeholder:d("comments.replyPlaceholder"),style:Wh}),jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:8},children:[jsx("button",{onClick:s=>{s.stopPropagation(),o(false),n("");},style:Dn,children:d("common.cancel")}),jsx("button",{onClick:s=>{s.stopPropagation(),p&&e(p),n(""),o(false);},disabled:!p,style:Hn(!!p),children:d("common.reply")})]})]})}var Bn=CARD_STYLE_COLLAPSED,Nn=CARD_STYLE_EXPANDED;function Al({comment:e,replies:t,isExpanded:o,onToggleExpand:r,measureRef:n,onReply:d,onResolve:p,onUnresolve:s,onDelete:u}){let[c,a]=useState(false),{t:m}=b();return jsxs("div",{ref:n,"data-comment-id":e.id,className:"docx-comment-card",onClick:r,onMouseDown:g=>g.stopPropagation(),style:{...o?Nn:Bn},children:[e.done&&jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",marginBottom:8,fontSize:11,fontWeight:500,color:"var(--doc-success)",backgroundColor:"var(--doc-success-bg)",borderRadius:10},children:[jsx(b$1,{name:"check",size:12}),m("comments.resolved")]}),jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[jsx("div",{style:po(e.author||"U"),children:getInitials(e.author||"U")}),jsxs("div",{style:{flex:1,minWidth:0},children:[jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--doc-text)"},children:e.author||m("comments.unknown")}),jsx("div",{style:{fontSize:11,color:"var(--doc-text-muted)"},children:formatDate(e.date)})]}),o&&jsxs("div",{style:{display:"flex",gap:4,marginTop:2,position:"relative"},children:[jsx("button",{onClick:g=>{g.stopPropagation(),e.done?s?.(e.id):p?.(e.id);},title:e.done?m("comments.reopen"):m("comments.resolve"),style:uo,children:jsx(b$1,{name:e.done?"undo":"check",size:20})}),jsx("button",{onClick:g=>{g.stopPropagation(),a(!c);},title:m("comments.moreOptions"),style:uo,children:jsx(b$1,{name:"more_vert",size:20})}),c&&jsx("div",{onClick:g=>g.stopPropagation(),onMouseDown:g=>g.stopPropagation(),style:{position:"absolute",top:32,right:0,background:"var(--doc-surface)",borderRadius:8,boxShadow:"0 2px 6px var(--doc-shadow-strong), 0 1px 2px var(--doc-shadow)",zIndex:100,minWidth:120,padding:"4px 0"},children:jsx("button",{onClick:()=>{a(false),u?.(e.id);},style:{display:"block",width:"100%",padding:"8px 16px",border:"none",background:"none",textAlign:"left",fontSize:14,color:"var(--doc-text)",cursor:"pointer",fontFamily:"inherit"},onMouseOver:g=>{g.target.style.backgroundColor="var(--doc-bg-hover)";},onMouseOut:g=>{g.target.style.backgroundColor="transparent";},children:m("common.delete")})})]})]}),jsx("div",{style:{fontSize:13,color:"var(--doc-text)",lineHeight:"20px",marginTop:6},children:getCommentText(e.content)}),jsx(An,{replies:t,isExpanded:o}),o&&!e.done&&jsx(On,{onSubmit:g=>d?.(e.id,g)})]})}function Ol({change:e,replies:t,isExpanded:o,onToggleExpand:r,measureRef:n,onAccept:d,onReject:p,onAcceptById:s,onRejectById:u,onReply:c}){let{t:a}=b(),m=e.author||a("trackedChanges.unknown"),g=()=>{let f=new Set([e.revisionId]);e.type==="replacement"&&e.insertionRevisionId!=null&&f.add(e.insertionRevisionId);for(let h of e.coalescedRevisionIds??[])f.add(h);return [...f]},b$2=f=>{if(f.stopPropagation(),s)for(let h of g())s(h);else d?.(e.from,e.to);},i=f=>{if(f.stopPropagation(),u)for(let h of g())u(h);else p?.(e.from,e.to);};return jsxs("div",{ref:n,className:"docx-tracked-change-card",onClick:()=>r(),onMouseDown:f=>f.stopPropagation(),style:o?Nn:Bn,children:[jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[jsx("div",{style:po(m),children:getInitials(m)}),jsxs("div",{style:{flex:1,minWidth:0},children:[jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--doc-text)"},children:m}),e.date&&jsx("div",{style:{fontSize:11,color:"var(--doc-text-muted)"},children:formatDate(e.date)})]}),o&&jsxs("div",{style:{display:"flex",gap:4,marginTop:2},children:[jsx("button",{onClick:b$2,title:a("common.accept"),style:uo,children:jsx(b$1,{name:"check",size:20})}),jsx("button",{onClick:i,title:a("common.reject"),style:uo,children:jsx(b$1,{name:"close",size:20})})]})]}),jsx("div",{style:{fontSize:13,lineHeight:"20px",color:"var(--doc-text)",marginTop:6},children:e.type==="replacement"?jsxs(Fragment,{children:[a("trackedChanges.replaced")," ",jsxs("span",{style:{color:"var(--doc-error)",fontWeight:500},children:['"',truncateText(e.deletedText||""),'"']})," ",a("trackedChanges.with")," ",jsxs("span",{style:{color:"var(--doc-success)",fontWeight:500},children:['"',truncateText(e.text),'"']})]}):e.type==="paragraphMarkInsertion"?jsxs(Fragment,{children:[a("revisions.paragraphMarkInserted"),e.text?jsxs(Fragment,{children:[": ",jsxs("span",{style:{color:"var(--doc-success)",fontWeight:500},children:['"',truncateText(e.text),'"']})]}):null]}):e.type==="paragraphMarkDeletion"?jsxs(Fragment,{children:[a("revisions.paragraphMarkDeleted"),e.text?jsxs(Fragment,{children:[": ",jsxs("span",{style:{color:"var(--doc-error)",fontWeight:500},children:['"',truncateText(e.text),'"']})]}):null]}):e.type==="paragraphPropertiesChanged"?jsxs(Fragment,{children:[a("revisions.paragraphPropertiesChanged"),e.text?jsxs(Fragment,{children:[": ",jsxs("span",{style:{color:"var(--doc-text-muted)",fontWeight:500},children:['"',truncateText(e.text),'"']})]}):null]}):e.type==="rowInserted"?jsx("span",{style:{color:"var(--doc-success)",fontWeight:500},children:a("revisions.rowInserted")}):e.type==="rowDeleted"?jsx("span",{style:{color:"var(--doc-error)",fontWeight:500},children:a("revisions.rowDeleted")}):e.type==="cellInserted"?jsx("span",{style:{color:"var(--doc-success)",fontWeight:500},children:a("revisions.cellInserted")}):e.type==="cellDeleted"?jsx("span",{style:{color:"var(--doc-error)",fontWeight:500},children:a("revisions.cellDeleted")}):e.type==="cellMerged"?jsx("span",{style:{color:"var(--doc-text-muted)",fontWeight:500},children:a("revisions.cellMerged")}):e.type==="rowPropertiesChanged"?jsx("span",{style:{color:"var(--doc-text-muted)"},children:a("revisions.rowPropertiesChanged")}):e.type==="cellPropertiesChanged"?jsx("span",{style:{color:"var(--doc-text-muted)"},children:a("revisions.cellPropertiesChanged")}):e.type==="tablePropertiesChanged"?jsx("span",{style:{color:"var(--doc-text-muted)"},children:a("revisions.tablePropertiesChanged")}):e.type==="tableInserted"?jsx("span",{style:{color:"var(--doc-success)",fontWeight:500},children:a("revisions.tableInserted")}):e.type==="tableDeleted"?jsx("span",{style:{color:"var(--doc-error)",fontWeight:500},children:a("revisions.tableDeleted")}):jsxs(Fragment,{children:[e.type==="insertion"?a("trackedChanges.added"):a("trackedChanges.deleted")," ",jsxs("span",{style:{color:e.type==="insertion"?"var(--doc-success)":"var(--doc-error)",fontWeight:500},children:['"',truncateText(e.text),'"']})]})}),jsx(An,{replies:t,isExpanded:o}),o&&jsx(On,{onSubmit:f=>c?.(e.revisionId,f)})]})}function Nl({measureRef:e,onSubmit:t,onCancel:o}){let[r,n]=useState(""),{t:d}=b(),p=()=>{r.trim()&&(t?.(r.trim()),n(""));};return jsxs("div",{ref:e,onMouseDown:s=>s.stopPropagation(),style:{padding:12,borderRadius:8,backgroundColor:"var(--doc-surface)",boxShadow:"0 1px 3px var(--doc-shadow-strong), 0 4px 8px 3px var(--doc-shadow)",zIndex:50},children:[jsx("textarea",{ref:s=>s?.focus({preventScroll:true}),value:r,onChange:s=>n(s.target.value),onMouseDown:s=>s.stopPropagation(),onKeyDown:s=>{s.stopPropagation(),s.key==="Enter"&&!s.shiftKey&&(s.preventDefault(),p()),s.key==="Escape"&&(o?.(),n(""));},placeholder:d("comments.addComment"),style:{width:"100%",border:"1px solid var(--doc-primary)",borderRadius:20,outline:"none",resize:"none",fontSize:14,lineHeight:"20px",padding:"8px 16px",fontFamily:"inherit",minHeight:40,boxSizing:"border-box",color:"var(--doc-text)"}}),jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:8},children:[jsx("button",{onClick:()=>{o?.(),n("");},style:Dn,children:d("common.cancel")}),jsx("button",{onClick:p,disabled:!r.trim(),style:Hn(!!r.trim()),children:d("common.comment")})]})]})}function _l({comment:e,measureRef:t,onToggleExpand:o}){return jsx("div",{ref:t,"data-comment-id":e.id,"data-comment-resolved":"true",onClick:o,onMouseDown:r=>r.stopPropagation(),style:{display:"inline-flex",alignItems:"center",cursor:"pointer",color:"var(--doc-text-muted)",padding:2},onMouseOver:r=>{r.currentTarget.style.opacity="0.7";},onMouseOut:r=>{r.currentTarget.style.opacity="1";},children:jsx(b$1,{name:"chat_bubble_check",size:20})})}function Vl({comments:e,trackedChanges:t,callbacks:o,showResolved:r=false,isAddingComment:n=false,addCommentYPosition:d=null}){let p=useMemo(()=>e.filter(u=>!(u.parentId!=null||u.done&&!r)),[e,r]),s=useMemo(()=>{let u=new Map;for(let c of e)if(c.parentId!=null){let a=u.get(c.parentId);a?a.push(c):u.set(c.parentId,[c]);}return u},[e]);return useMemo(()=>{let u=[];n&&d!=null&&u.push({id:"new-comment-input",anchorPos:0,fixedY:d,priority:-1e3,isTemporary:true,estimatedHeight:120,render:c=>jsx(Nl,{...c,onSubmit:o.onAddComment,onCancel:o.onCancelAddComment})});for(let c of p){let a=s.get(c.id)??[];u.push({id:`comment-${c.id}`,anchorPos:0,anchorKey:`comment-${c.id}`,priority:0,estimatedHeight:c.done?28:80,render:m=>c.done&&!m.isExpanded?jsx(_l,{...m,comment:c}):jsx(Al,{...m,comment:c,replies:a,onReply:o.onCommentReply,onResolve:o.onCommentResolve,onUnresolve:o.onCommentUnresolve,onDelete:o.onCommentDelete})});}return t.forEach((c,a)=>{let m=s.get(c.revisionId)??[];u.push({id:`tc-${c.revisionId}-${a}`,anchorPos:c.from,anchorKey:`revision-${c.revisionId}`,priority:1,estimatedHeight:80,render:g=>jsx(Ol,{...g,change:c,replies:m,onAccept:o.onAcceptChange,onReject:o.onRejectChange,onAcceptById:o.onAcceptChangeById,onRejectById:o.onRejectChangeById,onReply:o.onTrackedChangeReply})});}),u},[p,t,s,o,n,d])}function Wl(){let{t:e}=b();return jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",gap:"20px",color:"var(--doc-text-muted)"},children:[jsx("div",{style:{width:"36px",height:"36px",border:"3px solid var(--doc-border)",borderTopColor:"var(--doc-primary)",borderRadius:"50%",animation:"docx-spin 0.8s linear infinite"}}),jsx("style",{children:`
|
|
28
|
+
@keyframes docx-spin {
|
|
29
|
+
to { transform: rotate(360deg); }
|
|
30
|
+
}
|
|
31
|
+
`}),jsx("div",{style:{fontSize:"14px"},children:e("errors.loadingDocument")})]})}function Ul(){let{t:e}=b();return jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",color:"var(--doc-text-placeholder)"},children:[jsxs("svg",{width:"64",height:"64",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),jsx("polyline",{points:"14 2 14 8 20 8"})]}),jsx("div",{style:{marginTop:"16px"},children:e("errors.noDocumentLoaded")})]})}function $l({message:e}){let{t}=b();return jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",padding:"20px",textAlign:"center"},children:[jsx("div",{style:{color:"var(--doc-error)",marginBottom:"16px"},children:jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("circle",{cx:"12",cy:"12",r:"10"}),jsx("path",{d:"M12 8v4M12 16v.01"})]})}),jsx("h3",{style:{color:"var(--doc-error)",marginBottom:"8px"},children:t("errors.failedToLoad")}),jsx("p",{style:{color:"var(--doc-text-muted)",maxWidth:"400px"},children:e})]})}function Gl(e,t,o){useEffect(()=>{loadFontDefinitions(e);},[e]),useEffect(()=>onFontsLoaded(()=>t?.()),[t]);let r=useRef(o);useEffect(()=>{r.current=o;},[o]),useEffect(()=>onFontError(n=>r.current?.(n)),[]);}var qr=forwardRef(function({documentBuffer:t,document:o,onSave:r,onOpen:n,author:d="User",onChange:p,onSelectionChange:s,onError:u,onFontsLoaded:c$1,colorMode:a="light",theme:m$1,showToolbar:g=true,showFileOpen:b=true,showHelpMenu:i$1=true,showZoomControl:f=true,showMarginGuides:h=false,marginGuideColor:x,showRuler:C=false,rulerUnit:l="inch",initialZoom:y=1,readOnly:R=false,disableFindReplaceShortcuts:S=false,toolbarExtra:v,className:P="",style:k,placeholder:E,loadingIndicator:I,showOutline:w=false,showOutlineButton:M=true,fontFamilies:H,fonts:O,watermarkPresets:B,printOptions:V,onPrint:U,onCopy:re,onCut:q,onPaste:ie,mode:te,onModeChange:se,onCommentAdd:pe,onCommentResolve:Me,onCommentDelete:Te,onCommentReply:D,comments:L,onCommentsChange:N,commentsSidebarOpen:W,onCommentsSidebarOpenChange:_,externalPlugins:A,externalContent:X=false,onEditorViewReady:ne,onRenderedDomContextReady:K,pluginOverlays:de,pluginSidebarItems:oe,pluginRenderedDomContext:Z,renderLogo:ue,documentName:me,onDocumentNameChange:Re,documentNameEditable:We=true,renderTitleBarRight:De,i18n:Be,agentPanel:ye},Ne){let[J,Le]=useState({isLoading:!!t&&!X,parseError:null,zoom:y,selectionFormatting:{},paragraphIndentLeft:0,paragraphIndentRight:0,paragraphFirstLineIndent:0,paragraphHangingIndent:false,paragraphTabs:null,pmTableContext:null,pmImageContext:null}),[tt,vt]=useState(prefersColorSchemeDark);useEffect(()=>{if(a==="system")return subscribeSystemDark(vt)},[a]);let _e=resolveIsDark(a,tt),[ee,Y]=useState(null),[Q,ve]=useState(false),[xe,fe]=ji(W,_),Xe=useRef(false),[Pe,Ge]=useState(null),ae=useRef(null),{comments:Ke,setComments:Ve,isAddingComment:Ee,setIsAddingComment:He,isAddingCommentRef:Fe,commentSelectionRange:pt,setCommentSelectionRange:Ue,addCommentYPosition:Uo,setAddCommentYPosition:Ot,floatingCommentBtn:Xt,setFloatingCommentBtn:Bt,cleanOrphanedCommentsTimerRef:Zt,cleanOrphanedComments:$o}=da({commentsProp:L,onCommentDelete:Te,onCommentsChange:N,pagedEditorRef:ae}),[Qt,go]=useState(null),[Wn,bo]=useState(0),{entries:Nt,commentToRevision:Un}=useMemo(()=>{let T=c(Qt),F=[...T.entries],z=new Map(T.commentToRevision),le=ae.current?.getHfPmViews?.();if(le)for(let[ge,$e]of le.entries()){let Ae=c($e.state);for(let kt of Ae.entries)kt.hfRid=ge,F.push(kt);for(let[kt,oo]of Ae.commentToRevision.entries())z.set(kt,oo);}return {entries:F,commentToRevision:z}},[Qt,Wn]),[$n,Go]=useState(sn),[Gn,Kn]=useState(te??"editing"),Et=te??Gn,ho=T=>{te||Kn(T),se?.(T);},$=R||Et==="viewing",[Ce,he]=useState(false),je=ye?.open!==void 0,it=ye?je?!!ye.open:Ce:false,Jt=useCallback(T=>{ye?.onOpenChange?.(T),je||he(T);},[ye,je]),eo=useRef(new Set),Ko=useRef(new Set),we=i(o||null,{maxEntries:100,groupingInterval:500,enableKeyboardShortcuts:true}),Xl=useMemo(()=>{let T=new ExtensionManager(createStarterKit());return T.buildSchema(),T.initializeRuntime(),T},[]),Xr=useMemo(()=>createSuggestionModePlugin(Et==="suggesting",d),[]),Zl=useMemo(()=>[Xr,...A??[]],[Xr,A]),jn=useRef(null),Yn=useRef(null),jo=useRef(null),Zr=useRef(null),Yo=useRef(null),to=useRef(null),[Ql,Jl]=useState([]),{showOutline:qn,setShowOutline:Qr,showOutlineRef:ec,outlineHeadings:tc,setHeadingInfos:Xn,toolbarHeight:Jr,toolbarRefCallback:oc,editorScrollLeft:ei}=Ei({showOutlineProp:w,pagedEditorRef:ae,scrollContainerRef:to,isLoading:J.isLoading}),yo=useRef(we.state);yo.current=we.state;let ti=useRef({style:"single",size:4,color:{rgb:"000000"}}),oi=useRef(null),qo=useCallback(T=>{let F=oi.current;if(F&&F.styles===T)return F.resolver;let z=createStyleResolver(T);return oi.current={styles:T,resolver:z},z},[]),{getActiveEditorView:Ct,focusActiveEditor:zt,undoActiveEditor:nc,redoActiveEditor:rc}=ha({hfEditPosition:ee,hfEditorRef:jn,pagedEditorRef:ae}),vo=b$2(),Xo=m(),ni=useRef(false),ri=useRef(false),Co=useRef(createCommentIdAllocator()),{resetForNewDocument:ic}=fl({commentsLoadedRef:ni,trackedChangesLoadedRef:ri,setComments:Ve,setHeadingInfos:Xn,setShowCommentsSidebar:fe,setIsAddingComment:He,setCommentSelectionRange:Ue,setAddCommentYPosition:Ot,setFloatingCommentBtn:Bt,setHfEditPosition:Y,setHfEditIsFirstPage:ve,setAnchorPositions:Go,clearFindReplaceMatches:useCallback(()=>vo.setMatches([],0),[vo]),cleanOrphanedCommentsTimerRef:Zt}),{loadParsedDocument:ac,loadBuffer:ii}=Ji({documentBuffer:t,initialDocument:o,externalContent:X,history:we,agentRef:Yn,pagedEditorRef:ae,setLoadingState:useCallback(T=>{Le(F=>({...F,isLoading:T.isLoading,parseError:T.parseError}));},[]),setComments:Ve,setShowCommentsSidebar:fe,onError:u,resetForNewDocument:ic,commentsLoadedRef:ni,commentIdAllocator:Co.current,setDocumentFonts:Jl}),{imageInputRef:sc,docxInputRef:lc,handleSave:cc,handleDirectPrint:ai,handleDownloadDocument:dc,handleOpenDocument:si,handleDocxFileChange:uc,handleInsertImageClick:pc,handleImageFileChange:mc}=Mi({agentRef:Yn,pagedEditorRef:ae,containerRef:jo,comments:Ke,documentName:me,onSave:r,onOpen:n,onError:u,onPrint:U,onDocumentNameChange:Re,loadBuffer:ii,getActiveEditorView:Ct,focusActiveEditor:zt});useEffect(()=>{if(J.isLoading||!we.state)return;let T=ae.current?.getView();T&&go(T.state);},[J.isLoading,we.state]),pa({commentToRevision:Un,setComments:Ve,pmState:Qt,isLoading:J.isLoading,trackedChangesCount:Nt.length,setShowCommentsSidebar:fe,trackedChangesLoadedRef:ri}),Gl(O,c$1,u),useEffect(()=>{let T=ae.current?.getView();T&&setSuggestionMode(Et==="suggesting",T.state,T.dispatch,d);},[Et,d]);let Zo=useCallback(T=>(we.push(T),T),[we]),Zn=useCallback(T=>{Zo(T),p?.(T);for(let z of eo.current)try{z(T);}catch(le){console.error("contentChange subscriber threw:",le);}if(ec.current){let z=ae.current?.getView();z&&Xn(collectHeadings(z.state.doc));}let F=ae.current?.getView();F&&go(F.state),Zt.current&&clearTimeout(Zt.current),Zt.current=setTimeout($o,300);},[p,Zo,$o]),{recomputeFloatingCommentBtn:fc}=ba({pagedEditorRef:ae,scrollContainerRef:to,editorContentRef:Yo,isAddingCommentRef:Fe,setFloatingCommentBtn:Bt,readOnly:$,isLoading:J.isLoading,zoom:J.zoom}),{handleSelectionChange:Qo}=fa({getActiveEditorView:Ct,lastSelectionRef:Zr,borderSpecRef:ti,theme:m$1,historyStateRef:yo,getCachedStyleResolver:qo,setFloatingCommentBtn:Bt,applySelectionDelta:useCallback(T=>Le(F=>({...F,...T})),[]),recomputeFloatingCommentBtn:fc,onSelectionChange:s,selectionChangeSubscribersRef:Ko}),li=e({document:we.state,onChange:Zn,onSelectionChange:T=>{}});Ii({pagedEditorRef:ae,disableFindReplaceShortcuts:S,showFileOpen:b,onOpenDocument:si,findReplace:vo,hyperlinkDialog:Xo,tableSelection:li});let gc=useCallback(()=>{Qr(T=>{if(!T){let F=ae.current?.getView();F&&Xn(collectHeadings(F.state.doc));}return !T});},[]),bc=useCallback(T=>{ae.current?.scrollToPosition(T),ae.current?.setSelection(T+1),ae.current?.focus();},[]),{imagePositionOpen:hc,setImagePositionOpen:yc,imagePropsOpen:vc,setImagePropsOpen:Cc,footnotePropsOpen:Sc,setFootnotePropsOpen:Rc,handleImageWrapType:xc,handleImageTransform:Pc,handleApplyImagePosition:Tc,handleOpenImageProperties:ci,handleApplyImageProperties:wc,handleApplyFootnoteProperties:Ec}=$i({document:we.state,pmImageContext:J.pmImageContext,zoom:J.zoom,getActiveEditorView:Ct,focusActiveEditor:zt,pushDocument:Zo}),{tablePropsOpen:Ic,setTablePropsOpen:kc,splitCellDialogState:Mc,openSplitCellDialog:Dc,handleTableAction:Hc,handleSplitCellDialogClose:Fc,handleSplitCellDialogApply:Lc}=Xi({getActiveEditorView:Ct,focusActiveEditor:zt,tableSelection:li,borderSpecRef:ti,historyStateRef:yo,getCachedStyleResolver:qo}),{handleFormat:Ac,handleInsertTable:Oc,handleInsertPageBreak:Bc,handleInsertSectionBreakNextPage:Nc,handleInsertSectionBreakContinuous:zc,handleInsertTOC:_c}=Ui({getActiveEditorView:Ct,focusActiveEditor:zt,pagedEditorRef:ae,lastSelectionRef:Zr,hyperlinkDialog:Xo,historyStateRef:yo,getCachedStyleResolver:qo}),Vc=useCallback(T=>{Le(F=>({...F,zoom:T}));},[]),{hyperlinkPopupData:Wc,handleHyperlinkSubmit:Uc,handleHyperlinkRemove:$c,handleHyperlinkClick:Gc,handleHyperlinkPopupNavigate:Kc,handleHyperlinkPopupCopy:jc,handleHyperlinkPopupEdit:Yc,handleHyperlinkPopupRemove:qc,handleHyperlinkPopupClose:Xc}=Bi({hyperlinkDialog:Xo,getActiveEditorView:Ct,focusActiveEditor:zt}),{contextMenu:Zc,imageContextMenu:Qc,handleEditorContextMenu:Jc,handleContextMenu:ed,handleContextMenuClose:td,handleImageWrapApply:od,imageContextMenuTextActions:nd,contextMenuItems:rd,handleContextMenuAction:id}=la({getActiveEditorView:Ct,focusActiveEditor:zt,openSplitCellDialog:Dc,scrollContainerRef:to,editorContentRef:Yo,i18n:Be,onAddComment:useCallback(({from:T,to:F,yPos:z})=>{Ue({from:T,to:F}),Ot(z),fe(true),He(true),Bt(null);},[])}),{showPageSetup:ad,setShowPageSetup:sd,handleOpenPageSetup:ld,handleLeftMarginChange:cd,handleRightMarginChange:dd,handleTopMarginChange:ud,handleBottomMarginChange:pd,handlePageSetupApply:md,handleIndentLeftChange:fd,handleIndentRightChange:gd,handleFirstLineIndentChange:bd,handleTabStopRemove:hd}=Hi({document:we.state,readOnly:$,handleDocumentChange:Zn,getActiveEditorView:Ct}),{showWatermark:yd,setShowWatermark:vd,handleOpenWatermark:Cd,currentWatermark:Sd,handleWatermarkApply:Rd}=Li({readOnly:$,getBodyEditorView:()=>ae.current?.getView()}),{scrollPageInfo:di,setScrollPageInfo:xd}=ya({scrollContainerRef:to,pagedEditorRef:ae}),Pd=useCallback(T=>{u?.(T);},[u]),{findResultRef:Td,handleFind:wd,handleFindNext:Ed,handleFindPrevious:Id,handleReplace:kd,handleReplaceAll:Md}=_i({pagedEditorRef:ae,findReplace:vo});Ki({ref:Ne,agentRef:Yn,document:we.state,historyStateRef:yo,pagedEditorRef:ae,handleSave:cc,handleDirectPrint:ai,zoom:J.zoom,setZoom:T=>Le(F=>({...F,zoom:T})),scrollPageInfo:di,loadParsedDocument:ac,loadBuffer:ii,comments:Ke,setComments:Ve,setShowCommentsSidebar:fe,contentChangeSubscribersRef:eo,selectionChangeSubscribersRef:Ko,getCachedStyleResolver:qo,commentIdAllocator:Co.current});let Qn=useMemo(()=>ra(we.state),[we.state]),ui=we.state?.package.document?.finalSectionProperties,{headerContent:Dd,footerContent:Hd,firstPageHeaderContent:Fd,firstPageFooterContent:Ld,handleHeaderFooterDoubleClick:Ad,handleHeaderFooterSave:Od,handleBodyClick:Bd,handleRemoveHeaderFooter:Nd,getHfTargetElement:zd}=Zi({document:we.state,pushDocument:Zo,hfEditorRef:jn,containerRef:jo,initialSectionProperties:Qn,finalSectionProperties:ui,hfEditPosition:ee,setHfEditPosition:Y,hfEditIsFirstPage:Q,setHfEditIsFirstPage:ve}),Jo={display:"flex",flexDirection:"column",height:"100%",width:"100%",backgroundColor:"var(--doc-bg)",...k},_d={display:"flex",flex:1,minHeight:0,minWidth:0,flexDirection:"row"},ot=useRef({});ot.current={onCommentReply:(T,F)=>{let z=createComment(Co.current,F,d,T),le=Ke.find(ge=>ge.id===T);Ve(ge=>[...ge,z]),le&&D?.(z,le);},onCommentResolve:T=>{let F=Ke.find(z=>z.id===T);Ve(z=>z.map(le=>le.id===T?{...le,done:true}:le)),Pe===`comment-${T}`&&Ge(null),F&&Me?.({...F,done:true});},onCommentUnresolve:T=>{Ve(F=>F.map(z=>z.id===T?{...z,done:void 0}:z));},onCommentDelete:T=>{let F=Ke.find(le=>le.id===T);Ve(le=>le.filter(ge=>ge.id!==T&&ge.parentId!==T));let z=ae.current?.getView();if(z){let le=z.state.schema.marks.comment?.create({commentId:T});if(le){let ge=z.state.tr.removeMark(0,z.state.doc.content.size,le);ge.docChanged&&z.dispatch(ge);}}F&&Te?.(F);},onAddComment:T=>{let F=createComment(Co.current,T,d),z=ae.current?.getView();if(z&&pt){let{from:le,to:ge}=pt,$e=z.state.schema.marks.comment.create({commentId:PENDING_COMMENT_ID}),Ae=z.state.schema.marks.comment.create({commentId:F.id}),kt=z.state.tr.removeMark(le,ge,$e).addMark(le,ge,Ae);z.dispatch(kt);}Ve(le=>[...le,F]),He(false),Ue(null),Ot(null),pe?.(F);},onCancelAddComment:()=>{let T=ae.current?.getView();if(T&&pt){let{from:F,to:z}=pt,le=T.state.schema.marks.comment.create({commentId:PENDING_COMMENT_ID});T.dispatch(T.state.tr.removeMark(F,z,le));}He(false),Ue(null),Ot(null);},onAcceptChange:(T,F)=>{let z=ae.current?.getView();z&&acceptChange(T,F)(z.state,z.dispatch);},onRejectChange:(T,F)=>{let z=ae.current?.getView();z&&rejectChange(T,F)(z.state,z.dispatch);},onAcceptChangeById:T=>{let F=ae.current?.getHfPmViews?.(),z=null;if(F)for(let ge of F.values()){let{entries:$e}=c(ge.state);if($e.some(Ae=>Ae.revisionId===T||Ae.insertionRevisionId===T||Ae.coalescedRevisionIds?.includes(T))){z=ge;break}}let le=z||ae.current?.getView();le&&(acceptChangeById(T)(le.state,le.dispatch),z&&bo(ge=>ge+1));},onRejectChangeById:T=>{let F=ae.current?.getHfPmViews?.(),z=null;if(F)for(let ge of F.values()){let{entries:$e}=c(ge.state);if($e.some(Ae=>Ae.revisionId===T||Ae.insertionRevisionId===T||Ae.coalescedRevisionIds?.includes(T))){z=ge;break}}let le=z||ae.current?.getView();le&&(rejectChangeById(T)(le.state,le.dispatch),z&&bo(ge=>ge+1));},onTrackedChangeReply:(T,F)=>{Ve(z=>[...z,createComment(Co.current,F,d,T)]);}};let Vd=useMemo(()=>({onCommentReply:(...T)=>ot.current.onCommentReply?.(...T),onCommentResolve:(...T)=>ot.current.onCommentResolve?.(...T),onCommentUnresolve:(...T)=>ot.current.onCommentUnresolve?.(...T),onCommentDelete:(...T)=>ot.current.onCommentDelete?.(...T),onAddComment:(...T)=>ot.current.onAddComment?.(...T),onCancelAddComment:(...T)=>ot.current.onCancelAddComment?.(...T),onAcceptChange:(...T)=>ot.current.onAcceptChange?.(...T),onRejectChange:(...T)=>ot.current.onRejectChange?.(...T),onAcceptChangeById:(...T)=>ot.current.onAcceptChangeById?.(...T),onRejectChangeById:(...T)=>ot.current.onRejectChangeById?.(...T),onTrackedChangeReply:(...T)=>ot.current.onTrackedChangeReply?.(...T)}),[]),_t=Vl({comments:Ke,trackedChanges:Nt,callbacks:Vd,showResolved:xe,isAddingComment:xe?Ee:false,addCommentYPosition:Uo}),pi=useMemo(()=>{let T=[];return xe&&T.push(..._t),oe&&T.push(...oe),T},[xe,_t,oe]),Jn=useMemo(()=>{let T=new Map;return Nt.forEach((F,z)=>{F.type==="replacement"&&F.insertionRevisionId!=null&&T.set(String(F.insertionRevisionId),`tc-${F.revisionId}-${z}`);}),T},[Nt]),er=pi.length>0,Wd=(qn?Tl:M?wl:20)+(C&&(qn||M)?jt:0),tr=we.state?.package?.document,mi=[tr?.finalSectionProperties?.pageWidth,...tr?.sections?.map(T=>T.properties?.pageWidth)??[]].filter(T=>typeof T=="number"&&T>0),Ud=mi.length?Math.round(Math.max(...mi)/15):816,$d=2*Wd+Ud+(er?SIDEBAR_DOCUMENT_SHIFT*2:0),fi=tr?.finalSectionProperties?.pageWidth,Gd=fi?Math.round(fi/15):816,It=useMemo(()=>{let T=new Set;for(let F of Ke)F.done&&F.parentId==null&&T.add(F.id);return T},[Ke]),Kd=useCallback(()=>{let T=ae.current?.getView();if(!T){Qo(null);return}let F=extractSelectionState(T.state);Qo(F);let z=T.state.selection.$from,le=[...T.state.storedMarks??[],...z.nodeAfter?.marks??[],...z.nodeBefore?.marks??[],...z.marks()],ge=null;for(let $e of le){if($e.type.name==="comment"&&$e.attrs.commentId!=null){let Ae=$e.attrs.commentId;if(It.has(Ae))continue;ge=`comment-${Ae}`;break}if(($e.type.name==="insertion"||$e.type.name==="deletion")&&$e.attrs.revisionId!=null){let Ae=String($e.attrs.revisionId),kt=`tc-${Ae}-`,oo=_t.find(en=>en.id.startsWith(kt));if(!oo&&Jn){let en=Jn.get(Ae);en&&(oo=_t.find(qd=>qd.id===en));}if(oo){ge=oo.id;break}}}ge&&fe(true),Ge(ge);},[Qo,It,_t,Jn]);useEffect(()=>{Xe.current||_t.length!==0&&(Xe.current=true,fe(true));},[_t]);let jd=useMemo(()=>{if(!Pe?.startsWith("comment-"))return It;let T=parseInt(Pe.slice(8),10);if(isNaN(T)||!It.has(T))return It;let F=new Set(It);return F.delete(T),F},[It,Pe]),Yd={flex:1,minHeight:0,minWidth:0,overflow:"auto",position:"relative",overflowAnchor:"none"};return J.isLoading?jsx("div",{className:a$1("ep-root docx-editor docx-editor-loading",_e&&"dark",P),style:Jo,"data-testid":"docx-editor",children:I||jsx(Wl,{})}):J.parseError?jsx("div",{className:a$1("ep-root docx-editor docx-editor-error",_e&&"dark",P),style:Jo,"data-testid":"docx-editor",children:jsx($l,{message:J.parseError})}):we.state?jsx(Hl,{i18n:Be,isDark:_e,onEditorError:Pd,containerRef:jo,scrollContainerRef:to,editorContentRef:Yo,className:P,containerStyle:Jo,mainContentStyle:_d,editorContainerStyle:Yd,showRuler:C,readOnlyProp:R,showOutline:qn,showOutlineButton:M,sidebarOpen:er,minLayoutWidth:$d,toolbarHeight:Jr,editorScrollLeft:ei,expandedSidebarItem:Pe,trackedChanges:Nt,onScrollContainerMouseDown:T=>{let F=T.target;F.closest(".paged-editor__pages")||F.closest(".docx-unified-sidebar")||F.closest(".docx-comment-margin-markers")||Ge(null);},onEditorBgMouseDown:T=>{T.target===T.currentTarget&&(T.preventDefault(),ae.current?.focus());},onEditorContextMenu:Jc,horizontalRulerProps:{sectionProps:we.state?.package.document?.finalSectionProperties,zoom:J.zoom,unit:l,editable:!$,onLeftMarginChange:cd,onRightMarginChange:dd,indentLeft:J.paragraphIndentLeft,indentRight:J.paragraphIndentRight,onIndentLeftChange:fd,onIndentRightChange:gd,firstLineIndent:J.paragraphFirstLineIndent,hangingIndent:J.paragraphHangingIndent,onFirstLineIndentChange:bd,tabStops:J.paragraphTabs,onTabStopRemove:hd},verticalRulerProps:{sectionProps:Qn,zoom:J.zoom,unit:l,editable:!$,onTopMarginChange:ud,onBottomMarginChange:pd},outlineProps:{headings:tc,onHeadingClick:bc,onClose:()=>Qr(false),topOffset:Jr,scrollLeft:ei},onToggleOutline:gc,scrollPageInfo:di,agentPanel:ye,agentPanelOpen:it,onAgentPanelClose:()=>Jt(false),toolbar:g&&!R?jsx(wa,{toolbarRefCallback:oc,agentPanelOpen:it,setAgentPanelOpen:Jt,document:we.state,theme:m$1,pmState:Qt,selectionFormatting:J.selectionFormatting,tableContext:J.pmTableContext,imageContext:J.pmImageContext,readOnly:$,editingMode:Et,setEditingMode:ho,setShowCommentsSidebar:fe,setExpandedSidebarItem:Ge,showCommentsSidebar:xe,agentPanel:ye,renderLogo:ue,documentName:me,onDocumentNameChange:Re,documentNameEditable:We,renderTitleBarRight:De,toolbarExtra:v,fontFamilies:H,documentFonts:Ql,zoom:J.zoom,showZoomControl:f,onFormat:Ac,onUndo:nc,onRedo:rc,onPrint:ai,showFileOpen:b,showHelpMenu:i$1,onOpen:si,onSave:dc,onZoomChange:Vc,onRefocusEditor:zt,onInsertTable:Oc,onInsertImage:pc,onInsertPageBreak:Bc,onInsertSectionBreakNextPage:Nc,onInsertSectionBreakContinuous:zc,onInsertTOC:_c,onImageWrapType:xc,onImageTransform:Pc,onOpenImageProperties:ci,onPageSetup:ld,onWatermark:Cd,onTableAction:Hc}):null,pagedArea:jsxs(Fragment,{children:[jsx(dl,{pagedEditorRef:ae,hfEditorRef:jn,scrollContainerRef:to,editorContentRef:Yo,document:we.state,theme:m$1,initialSectionProperties:Qn,finalSectionProperties:ui,headerContent:Dd,footerContent:Hd,firstPageHeaderContent:Fd,firstPageFooterContent:Ld,hfEditPosition:ee,setHfEditPosition:Y,hfEditIsFirstPage:Q,onHeaderFooterDoubleClick:Ad,onHeaderFooterSave:Od,onRemoveHeaderFooter:Nd,onBodyClick:Bd,getHfTargetElement:zd,zoom:J.zoom,readOnly:$,isSuggesting:Et==="suggesting",author:d,onHfTransaction:(T,F,z)=>{z&&bo(le=>le+1);},extensionManager:Xl,externalPlugins:Zl,onDocumentChange:Zn,onSelectionChange:Qo,onPagedSelectionChange:Kd,onReady:T=>{let F=T.getView();F&&go(F.state);},onEditorViewReady:ne,onRenderedDomContextReady:K,pluginOverlays:de,onHyperlinkClick:Gc,hyperlinkPopupData:Wc,onHyperlinkPopupNavigate:Kc,onHyperlinkPopupCopy:jc,onHyperlinkPopupEdit:Yc,onHyperlinkPopupRemove:qc,onHyperlinkPopupClose:Xc,onContextMenu:ed,sidebarOpen:er,sidebarItems:pi,anchorPositions:$n,onAnchorPositionsChange:Go,pluginRenderedDomContext:Z,pageWidthPx:Gd,expandedSidebarItem:Pe,setExpandedSidebarItem:Ge,comments:Ke,resolvedCommentIds:It,resolvedIdsForRender:jd,setShowCommentsSidebar:fe,onTotalPagesChange:T=>{xd(F=>F.totalPages===T?F:{...F,totalPages:T});},floatingCommentBtn:Xt,isAddingComment:Ee,setCommentSelectionRange:Ue,setAddCommentYPosition:Ot,setIsAddingComment:He,setFloatingCommentBtn:Bt}),!$&&jsx(ml,{containerRef:jo,getView:()=>ae.current?.getView()??null})]}),overlays:jsx(va,{contextMenu:Zc,contextMenuItems:rd,onContextMenuAction:id,onContextMenuClose:td,imageContextMenu:Qc,onImageWrapApply:od,imageContextMenuTextActions:nd,onOpenImageProperties:ci,readOnly:$}),dialogs:jsx(Ca,{findReplace:vo,findResultRef:Td,onFind:wd,onFindNext:Ed,onFindPrevious:Id,onReplace:kd,onReplaceAll:Md,hyperlinkDialog:Xo,onHyperlinkSubmit:Uc,onHyperlinkRemove:$c,tablePropsOpen:Ic,onTablePropsClose:()=>kc(false),pmTableContext:J.pmTableContext,getActiveEditorView:Ct,splitCellDialogState:Mc,onSplitCellDialogClose:Fc,onSplitCellDialogApply:Lc,imagePositionOpen:hc,onImagePositionClose:()=>yc(false),onApplyImagePosition:Tc,imagePropsOpen:vc,onImagePropsClose:()=>Cc(false),onApplyImageProperties:wc,pmImageContext:J.pmImageContext,showPageSetup:ad,onPageSetupClose:()=>sd(false),onPageSetupApply:md,showWatermark:yd,onWatermarkClose:()=>vd(false),onWatermarkApply:Rd,currentWatermark:Sd,watermarkPresets:B,document:we.state,footnotePropsOpen:Sc,onFootnotePropsClose:()=>Rc(false),onApplyFootnoteProperties:Ec}),fileInputs:jsxs(Fragment,{children:[jsx("input",{ref:sc,type:"file",accept:"image/*",style:{display:"none"},onChange:mc}),jsx("input",{ref:lc,type:"file",accept:".docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document",style:{display:"none"},onChange:uc})]})}):jsx("div",{className:a$1("ep-root docx-editor docx-editor-empty",_e&&"dark",P),style:Jo,"data-testid":"docx-editor",children:E||jsx(Ul,{})})});function my(e,t,o={}){return new Promise((r,n)=>{let d=ql.createRef(),p=null;try{p=createRoot(t);}catch(a){n(a);return}let s={save:async()=>{let a=await(d.current?.save()??Promise.resolve(null));return a?new Blob([a],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}):null},getDocument:()=>d.current?.getDocument()??null,focus:()=>d.current?.focus(),setZoom:a=>d.current?.setZoom(a),scrollToParaId:(a,m)=>d.current?.scrollToParaId(a,m)??false,scrollToPosition:a=>d.current?.scrollToPosition(a),destroy:()=>{p?.unmount(),p=null;}},u=false,c=ql.createElement(qr,{...o,documentBuffer:e,onError:a=>{o.onError?.(a),u||(u=true,n(a));},onChange:a=>{o.onChange?.(a),u||(u=true,r(s));},ref:d});p.render(c);})}var RE="0.0.2";export{qr as DocxEditor,RE as VERSION,my as renderAsync};
|