@eigenpal/docx-js-editor 0.0.17 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -0
- package/dist/ClipboardManager-D6dkOFg6.d.ts +436 -0
- package/dist/ClipboardManager-EZ0C6Onq.d.cts +436 -0
- package/dist/DocumentAgent-B0EC8lPC.d.cts +412 -0
- package/dist/DocumentAgent-BcCDg7i2.d.ts +412 -0
- package/dist/{FindReplaceDialog-MMDEJORP.js → FindReplaceDialog-AWQXKEUQ.js} +2 -2
- package/dist/{FindReplaceDialog-MMDEJORP.js.map → FindReplaceDialog-AWQXKEUQ.js.map} +1 -1
- package/dist/{FindReplaceDialog-K4GRE4JB.cjs → FindReplaceDialog-I4SZDSVP.cjs} +2 -2
- package/dist/{FindReplaceDialog-K4GRE4JB.cjs.map → FindReplaceDialog-I4SZDSVP.cjs.map} +1 -1
- package/dist/{FootnotePropertiesDialog-V3YOIJCV.cjs → FootnotePropertiesDialog-73VT2ZVZ.cjs} +2 -2
- package/dist/{FootnotePropertiesDialog-V3YOIJCV.cjs.map → FootnotePropertiesDialog-73VT2ZVZ.cjs.map} +1 -1
- package/dist/{FootnotePropertiesDialog-HG4267LR.js → FootnotePropertiesDialog-ZM3EF3EF.js} +2 -2
- package/dist/{FootnotePropertiesDialog-HG4267LR.js.map → FootnotePropertiesDialog-ZM3EF3EF.js.map} +1 -1
- package/dist/{HyperlinkDialog-SCSX4RP7.js → HyperlinkDialog-BA25XUT5.js} +2 -2
- package/dist/{HyperlinkDialog-SCSX4RP7.js.map → HyperlinkDialog-BA25XUT5.js.map} +1 -1
- package/dist/{HyperlinkDialog-YPKURBZK.cjs → HyperlinkDialog-V63LPOT2.cjs} +2 -2
- package/dist/{HyperlinkDialog-YPKURBZK.cjs.map → HyperlinkDialog-V63LPOT2.cjs.map} +1 -1
- package/dist/{ImagePositionDialog-CJYJ35PI.js → ImagePositionDialog-AIAMKPFK.js} +2 -2
- package/dist/{ImagePositionDialog-CJYJ35PI.js.map → ImagePositionDialog-AIAMKPFK.js.map} +1 -1
- package/dist/{ImagePositionDialog-IMVI7EXA.cjs → ImagePositionDialog-KMK7ROV2.cjs} +2 -2
- package/dist/{ImagePositionDialog-IMVI7EXA.cjs.map → ImagePositionDialog-KMK7ROV2.cjs.map} +1 -1
- package/dist/{ImagePropertiesDialog-P7WN2ALR.js → ImagePropertiesDialog-ERFCUVCW.js} +2 -2
- package/dist/{ImagePropertiesDialog-P7WN2ALR.js.map → ImagePropertiesDialog-ERFCUVCW.js.map} +1 -1
- package/dist/{ImagePropertiesDialog-YS4KJRN7.cjs → ImagePropertiesDialog-USMMRK6X.cjs} +2 -2
- package/dist/{ImagePropertiesDialog-YS4KJRN7.cjs.map → ImagePropertiesDialog-USMMRK6X.cjs.map} +1 -1
- package/dist/{TablePropertiesDialog-CUQXUBQN.cjs → TablePropertiesDialog-72CIUAZT.cjs} +2 -2
- package/dist/{TablePropertiesDialog-CUQXUBQN.cjs.map → TablePropertiesDialog-72CIUAZT.cjs.map} +1 -1
- package/dist/{TablePropertiesDialog-ZHAYVHPZ.js → TablePropertiesDialog-EMUEVYB3.js} +2 -2
- package/dist/{TablePropertiesDialog-ZHAYVHPZ.js.map → TablePropertiesDialog-EMUEVYB3.js.map} +1 -1
- package/dist/agentApi-BFVyKagE.d.cts +2227 -0
- package/dist/agentApi-BFVyKagE.d.ts +2227 -0
- package/dist/chunk-2CHPKB5A.cjs +112 -0
- package/dist/chunk-2CHPKB5A.cjs.map +1 -0
- package/dist/chunk-2QOEHCBX.js +2 -0
- package/dist/chunk-2QOEHCBX.js.map +1 -0
- package/dist/chunk-4QT5LPBA.cjs +24 -0
- package/dist/chunk-4QT5LPBA.cjs.map +1 -0
- package/dist/chunk-5DYSI4O4.cjs +60 -0
- package/dist/chunk-5DYSI4O4.cjs.map +1 -0
- package/dist/chunk-5FJXHXFV.cjs +2 -0
- package/dist/chunk-5FJXHXFV.cjs.map +1 -0
- package/dist/chunk-6FEWNF6B.js +4 -0
- package/dist/chunk-6FEWNF6B.js.map +1 -0
- package/dist/chunk-6LF5HZCV.js +10 -0
- package/dist/chunk-6LF5HZCV.js.map +1 -0
- package/dist/chunk-7JSPKVOW.js +2 -0
- package/dist/chunk-7JSPKVOW.js.map +1 -0
- package/dist/chunk-C33XDRDJ.cjs +28 -0
- package/dist/chunk-C33XDRDJ.cjs.map +1 -0
- package/dist/chunk-CV5WFE7K.js +24 -0
- package/dist/chunk-CV5WFE7K.js.map +1 -0
- package/dist/chunk-CXJRNISO.js +2 -0
- package/dist/chunk-CXJRNISO.js.map +1 -0
- package/dist/chunk-DP6Q75ZD.js +28 -0
- package/dist/chunk-DP6Q75ZD.js.map +1 -0
- package/dist/chunk-FDANI5P4.cjs +2 -0
- package/dist/chunk-FDANI5P4.cjs.map +1 -0
- package/dist/chunk-FGVGZLBL.js +2 -0
- package/dist/chunk-FGVGZLBL.js.map +1 -0
- package/dist/chunk-GJ4GKSDU.cjs +2 -0
- package/dist/chunk-GJ4GKSDU.cjs.map +1 -0
- package/dist/chunk-GWBTKVFD.cjs +2 -0
- package/dist/chunk-GWBTKVFD.cjs.map +1 -0
- package/dist/chunk-JOYPFQW2.js +2 -0
- package/dist/chunk-JOYPFQW2.js.map +1 -0
- package/dist/chunk-L54YNLSE.js +2 -0
- package/dist/chunk-L54YNLSE.js.map +1 -0
- package/dist/chunk-LPGMLJMO.js +259 -0
- package/dist/chunk-LPGMLJMO.js.map +1 -0
- package/dist/chunk-OHG7ROFC.js +11 -0
- package/dist/chunk-OHG7ROFC.js.map +1 -0
- package/dist/chunk-PANKMCFX.cjs +4 -0
- package/dist/chunk-PANKMCFX.cjs.map +1 -0
- package/dist/chunk-QDV75OJ4.js +112 -0
- package/dist/chunk-QDV75OJ4.js.map +1 -0
- package/dist/chunk-QEBO3EQP.cjs +2 -0
- package/dist/{chunk-V3MCDVZE.cjs.map → chunk-QEBO3EQP.cjs.map} +1 -1
- package/dist/chunk-QVIZ775M.cjs +259 -0
- package/dist/chunk-QVIZ775M.cjs.map +1 -0
- package/dist/chunk-RMUMR42R.cjs +10 -0
- package/dist/chunk-RMUMR42R.cjs.map +1 -0
- package/dist/chunk-T2HQYRA7.cjs +2 -0
- package/dist/chunk-T2HQYRA7.cjs.map +1 -0
- package/dist/chunk-ULXNEG66.js +60 -0
- package/dist/chunk-ULXNEG66.js.map +1 -0
- package/dist/chunk-WD2HTKRR.cjs +2 -0
- package/dist/chunk-WD2HTKRR.cjs.map +1 -0
- package/dist/chunk-XZNOV52K.cjs +11 -0
- package/dist/chunk-XZNOV52K.cjs.map +1 -0
- package/dist/chunk-Y6VCTLCJ.js +2 -0
- package/dist/{chunk-AL62KQYJ.js.map → chunk-Y6VCTLCJ.js.map} +1 -1
- package/dist/{TableToolbar-RHX9L4h9.d.ts → clipboard-CqE-UZ2d.d.cts} +125 -2
- package/dist/{TableToolbar-RHX9L4h9.d.cts → clipboard-beGtyabO.d.ts} +125 -2
- package/dist/colorResolver-B5YbO_a4.d.ts +618 -0
- package/dist/colorResolver-Cu46bSKr.d.cts +618 -0
- package/dist/core-plugins-reexport.cjs +1 -1
- package/dist/core-plugins-reexport.cjs.map +1 -1
- package/dist/core-plugins-reexport.d.cts +31 -1
- package/dist/core-plugins-reexport.d.ts +31 -1
- package/dist/core-plugins-reexport.js +1 -1
- package/dist/core-plugins-reexport.js.map +1 -1
- package/dist/core-reexport.cjs +1 -1
- package/dist/core-reexport.cjs.map +1 -1
- package/dist/core-reexport.d.cts +309 -4
- package/dist/core-reexport.d.ts +309 -4
- package/dist/core-reexport.js +1 -1
- package/dist/core-reexport.js.map +1 -1
- package/dist/executor-K5RXUTTR.js +2 -0
- package/dist/executor-K5RXUTTR.js.map +1 -0
- package/dist/executor-XIPIU3H4.cjs +2 -0
- package/dist/executor-XIPIU3H4.cjs.map +1 -0
- package/dist/fontLoader-CFKpg0Ri.d.ts +176 -0
- package/dist/fontLoader-HZYfILUm.d.cts +176 -0
- package/dist/headless-reexport.cjs +4 -1
- package/dist/headless-reexport.cjs.map +1 -1
- package/dist/headless-reexport.d.cts +195 -1
- package/dist/headless-reexport.d.ts +195 -1
- package/dist/headless-reexport.js +4 -1
- package/dist/headless-reexport.js.map +1 -1
- package/dist/index.cjs +9 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +2 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.cts +261 -30
- package/dist/index.d.ts +261 -30
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/mcp-reexport.cjs +16 -1
- package/dist/mcp-reexport.cjs.map +1 -1
- package/dist/mcp-reexport.d.cts +156 -1
- package/dist/mcp-reexport.d.ts +156 -1
- package/dist/mcp-reexport.js +16 -1
- package/dist/mcp-reexport.js.map +1 -1
- package/dist/processTemplate-G37IM66O.js +2 -0
- package/dist/processTemplate-G37IM66O.js.map +1 -0
- package/dist/processTemplate-RFBGVH7T.cjs +2 -0
- package/dist/processTemplate-RFBGVH7T.cjs.map +1 -0
- package/dist/react-BjOCdeTs.d.ts +1027 -0
- package/dist/react-UzAn4o7l.d.cts +1027 -0
- package/dist/react.cjs +1 -1
- package/dist/react.cjs.map +1 -1
- package/dist/react.css +2 -0
- package/dist/react.css.map +1 -0
- package/dist/react.d.cts +10 -860
- package/dist/react.d.ts +10 -860
- package/dist/react.js +1 -1
- package/dist/react.js.map +1 -1
- package/dist/registry-CV6nYWqP.d.ts +165 -0
- package/dist/registry-DjacfR6Q.d.cts +165 -0
- package/dist/selectionRects-6DU7HN7E.js +2 -0
- package/dist/selectionRects-6DU7HN7E.js.map +1 -0
- package/dist/selectionRects-YZSC24ZP.cjs +2 -0
- package/dist/selectionRects-YZSC24ZP.cjs.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/types-Bnp8rvJn.d.cts +310 -0
- package/dist/types-DwZ3xysp.d.ts +310 -0
- package/dist/ui.cjs +1 -1
- package/dist/ui.d.cts +3 -5
- package/dist/ui.d.ts +3 -5
- package/dist/ui.js +1 -1
- package/dist/variableDetector-BaDeXz7D.d.ts +173 -0
- package/dist/variableDetector-CMhJtM96.d.cts +173 -0
- package/package.json +11 -3
- package/dist/chunk-7FEY3YWC.cjs +0 -3
- package/dist/chunk-7FEY3YWC.cjs.map +0 -1
- package/dist/chunk-AL62KQYJ.js +0 -2
- package/dist/chunk-MXGYESPA.cjs +0 -178
- package/dist/chunk-MXGYESPA.cjs.map +0 -1
- package/dist/chunk-NMYD4OJZ.js +0 -3
- package/dist/chunk-NMYD4OJZ.js.map +0 -1
- package/dist/chunk-OD33FUTO.js +0 -178
- package/dist/chunk-OD33FUTO.js.map +0 -1
- package/dist/chunk-V3MCDVZE.cjs +0 -2
- package/dist/chunk-VIEW4NAF.js +0 -112
- package/dist/chunk-VIEW4NAF.js.map +0 -1
- package/dist/chunk-ZX4CSEL3.cjs +0 -112
- package/dist/chunk-ZX4CSEL3.cjs.map +0 -1
package/dist/chunk-OD33FUTO.js
DELETED
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import {e,t,x,N,G,y,d,T,$,_,U,Z as Z$1,X,Y,W}from'./chunk-NMYD4OJZ.js';import {m as m$1}from'./chunk-Q6HUGWO6.js';import {m,j,l}from'./chunk-M2T6XKT5.js';import {d as d$1,e as e$1,g,c,f,b,a}from'./chunk-AL62KQYJ.js';import Wr,{createContext,forwardRef,useRef,useState,useLayoutEffect,useEffect,useCallback,useImperativeHandle,memo,useMemo,lazy,Suspense,cloneElement,Component,useContext}from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {twipsToPixels,pixelsToTwips,formatPx}from'@eigenpal/docx-core/utils/units';import {EditorState,NodeSelection,TextSelection}from'prosemirror-state';import {EditorView}from'prosemirror-view';import {redo,undo}from'prosemirror-history';import {schema}from'@eigenpal/docx-core/prosemirror/schema';import {headerFooterToProseDoc}from'@eigenpal/docx-core/prosemirror/conversion/toProseDoc';import {proseDocToBlocks,fromProseDoc}from'@eigenpal/docx-core/prosemirror/conversion/fromProseDoc';import {extractSelectionState,getTableContext,insertTable,insertPageBreak,generateTOC,setCellFillColor,setTableBorderColor,setTableBorderWidth,setCellBorder,setCellVerticalAlign,setCellMargins,setCellTextDirection,toggleNoWrap,setRowHeight,toggleHeaderRow,distributeColumns,autoFitContents,setTableProperties,createStyleResolver,applyTableStyle,removeTableBorders,setInsideTableBorders,setOutsideTableBorders,setAllTableBorders,splitCell,mergeCells,selectColumn,selectRow,selectTable,deleteTable,deleteColumn,deleteRow,addColumnRight,addColumnLeft,addRowBelow,addRowAbove,TextSelection as TextSelection$1,toggleBold,toggleItalic,toggleUnderline,toggleStrike,toggleSuperscript,toggleSubscript,toggleBulletList,toggleNumberedList,increaseListLevel,increaseIndent,decreaseListLevel,decreaseIndent,clearFormatting,getSelectedText,getHyperlinkAttrs,applyStyle,setLineSpacing,setFontFamily,setFontSize,setHighlight,setTextColor,setAlignment,insertHyperlink,setHyperlink,removeHyperlink,setIndentLeft,setIndentRight,setIndentFirstLine,removeTabStop}from'@eigenpal/docx-core/prosemirror';import {createStarterKit}from'@eigenpal/docx-core/prosemirror/extensions/StarterKit';import {ExtensionManager}from'@eigenpal/docx-core/prosemirror/extensions/ExtensionManager';import'prosemirror-view/style/prosemirror.css';import {DocumentAgent}from'@eigenpal/docx-core/agent/DocumentAgent';import {parseDocx}from'@eigenpal/docx-core/docx/parser';import {loadDocumentFonts,onFontsLoaded}from'@eigenpal/docx-core/utils/fontLoader';import {executeCommand}from'@eigenpal/docx-core/agent/executor';import {collectHeadings}from'@eigenpal/docx-core/utils/headingCollector';import {CellSelection}from'prosemirror-tables';import {toProseDoc,createEmptyDoc}from'@eigenpal/docx-core/prosemirror/conversion';import'@eigenpal/docx-core/prosemirror/editor.css';import {layoutDocument}from'@eigenpal/docx-core/layout-engine';import {toFlowBlocks}from'@eigenpal/docx-core/layout-bridge/toFlowBlocks';import {resetCanvasContext,clearAllCaches,getCachedParagraphMeasure,measureParagraph,setCachedParagraphMeasure}from'@eigenpal/docx-core/layout-bridge/measuring';import {hitTestFragment,hitTestTableCell}from'@eigenpal/docx-core/layout-bridge/hitTest';import {clickToPosition}from'@eigenpal/docx-core/layout-bridge/clickToPosition';import {clickToPositionDom}from'@eigenpal/docx-core/layout-bridge/clickToPositionDom';import {getCaretPosition,selectionToRects}from'@eigenpal/docx-core/layout-bridge/selectionRects';import {LayoutPainter}from'@eigenpal/docx-core/layout-painter';import {renderPages}from'@eigenpal/docx-core/layout-painter/renderPage';import {getFootnoteText}from'@eigenpal/docx-core/docx/footnoteParser';import {collectFootnoteRefs,mapFootnotesToPages,buildFootnoteContentMap,calculateFootnoteReservedHeights}from'@eigenpal/docx-core/layout-bridge/footnoteLayout';import {createRoot}from'react-dom/client';import {DEFAULT_SELECTION_STYLE,hasActiveSelection,getSelectedText as getSelectedText$1,isSelectionWithin,getMergedSelectionRects,areSelectionStylesInjected,injectSelectionStyles}from'@eigenpal/docx-core/utils/selectionHighlight';import {copyRuns,runsToClipboardContent,handlePasteEvent}from'@eigenpal/docx-core/utils/clipboard';var Fo=createContext(null);function cc(){let e=useContext(Fo);if(!e)throw new Error("useErrorNotifications must be used within an ErrorProvider");return e}function Ho({children:e}){let[t,o]=useState([]),r=useRef(0),d=useCallback((c,h,b)=>{let x=`error-${++r.current}-${Date.now()}`,D={id:x,message:c,severity:h,details:b,timestamp:Date.now()};return o(f=>[...f,D]),h!=="error"&&setTimeout(()=>{a(x);},5e3),x},[]),s=useCallback((c,h)=>{d(c,"error",h);},[d]),l=useCallback((c,h)=>{d(c,"warning",h);},[d]),u=useCallback((c,h)=>{d(c,"info",h);},[d]),a=useCallback(c=>{o(h=>h.map(b=>b.id===c?{...b,dismissed:true}:b)),setTimeout(()=>{o(h=>h.filter(b=>b.id!==c));},300);},[]),m=useCallback(()=>{o([]);},[]),g={notifications:t,showError:s,showWarning:l,showInfo:u,dismissNotification:a,clearNotifications:m};return jsxs(Fo.Provider,{value:g,children:[e,jsx(gi,{notifications:t,onDismiss:a})]})}function gi({notifications:e,onDismiss:t}){let o=e.filter(d=>!d.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(d=>jsx(hi,{notification:d,onDismiss:()=>t(d.id)},d.id))})}function hi({notification:e,onDismiss:t}){let[o,r]=useState(false),s=(x=>{switch(x){case "error":return {bg:"var(--doc-error-bg)",border:"#f5c6cb",text:"var(--doc-error)",icon:"var(--doc-error)"};case "warning":return {bg:"var(--doc-warning-bg)",border:"#ffeeba",text:"#856404",icon:"var(--doc-warning)"};case "info":return {bg:"#e8f4fd",border:"#b8daff",text:"#0c5460",icon:"var(--doc-primary)"}}})(e.severity),l={background:s.bg,border:`1px solid ${s.border}`,borderRadius:"8px",padding:"12px 16px",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)",animation:"slideIn 0.3s ease-out"},u={display:"flex",alignItems:"flex-start",gap:"8px"},a={color:s.icon,flexShrink:0},m={flex:1,minWidth:0},g={color:s.text,fontSize:"14px",fontWeight:500,wordBreak:"break-word"},c={marginTop:"8px",padding:"8px",background:"rgba(0, 0, 0, 0.05)",borderRadius:"4px",fontSize:"12px",fontFamily:"monospace",whiteSpace:"pre-wrap",wordBreak:"break-word",color:s.text,maxHeight:"200px",overflow:"auto"},h={background:"transparent",border:"none",cursor:"pointer",padding:"4px",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",color:s.text},b=x=>{switch(x){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:l,children:[jsx("style",{children:`
|
|
2
|
-
@keyframes slideIn {
|
|
3
|
-
from {
|
|
4
|
-
opacity: 0;
|
|
5
|
-
transform: translateX(100%);
|
|
6
|
-
}
|
|
7
|
-
to {
|
|
8
|
-
opacity: 1;
|
|
9
|
-
transform: translateX(0);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
`}),jsxs("div",{style:u,children:[jsx("span",{style:a,children:b(e.severity)}),jsxs("div",{style:m,children:[jsx("div",{style:g,children:e.message}),e.details&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:()=>r(!o),style:{...h,marginTop:"4px",fontSize:"12px",padding:"2px 8px"},children:o?"Hide details":"Show details"}),o&&jsx("div",{style:c,children:e.details})]})]}),jsx("button",{type:"button",onClick:t,style:h,title:"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 Sn=class extends Component{constructor(o){super(o);b(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:d,errorInfo:s}=this.state;return o?typeof o=="function"?o(d,this.resetError):o:jsx(bi,{error:d,errorInfo:s,showDetails:r,onReset:this.resetError})}return this.props.children}};function bi({error:e,errorInfo:t,showDetails:o,onReset:r}){let d={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"40px",textAlign:"center",minHeight:"200px",background:"white",borderRadius:"8px",border:"1px solid var(--doc-border)",margin:"20px"},s={color:"var(--doc-error)",marginBottom:"16px"},l={fontSize:"18px",fontWeight:600,color:"var(--doc-text)",marginBottom:"8px"},u={fontSize:"14px",color:"var(--doc-text-muted)",marginBottom:"16px",maxWidth:"400px"},a={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"},m={padding:"10px 20px",background:"var(--doc-primary)",color:"white",border:"none",borderRadius:"4px",fontSize:"14px",cursor:"pointer"};return jsxs("div",{className:"docx-error-fallback",style:d,children:[jsx("div",{style:s,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:l,children:"Something went wrong"}),jsx("p",{style:u,children:"An error occurred while rendering this component. Please try again or contact support if the problem persists."}),o&&jsxs("div",{style:a,children:[jsx("strong",{children:"Error:"})," ",e.message,t&&jsxs(Fragment,{children:[`
|
|
13
|
-
|
|
14
|
-
`,jsx("strong",{children:"Component Stack:"}),t.componentStack]})]}),jsx("button",{type:"button",onClick:r,style:m,children:"Try Again"})]})}function uc({message:e,details:t,onRetry:o,className:r=""}){let d={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"40px",textAlign:"center",background:"white",borderRadius:"8px",border:"1px solid var(--doc-border-light)"},s={color:"var(--doc-error)",marginBottom:"16px"},l={fontSize:"16px",fontWeight:600,color:"var(--doc-text)",marginBottom:"8px"},u={fontSize:"14px",color:"var(--doc-text-muted)",marginBottom:"16px",maxWidth:"400px"},a={marginBottom:"16px",padding:"12px",background:"var(--doc-bg)",borderRadius:"4px",fontSize:"12px",fontFamily:"monospace",maxWidth:"100%",overflow:"auto",textAlign:"left"},m={padding:"8px 16px",background:"var(--doc-primary)",color:"white",border:"none",borderRadius:"4px",fontSize:"13px",cursor:"pointer"};return jsxs("div",{className:`docx-parse-error ${r}`,style:d,children:[jsx("div",{style:s,children:jsxs("svg",{width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",children:[jsx("path",{d:"M10 10h20v20H10z",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round"}),jsx("path",{d:"M25 10l-10 20M15 10l10 20",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})}),jsx("h3",{style:l,children:"Unable to Parse Document"}),jsx("p",{style:u,children:e}),t&&jsx("div",{style:a,children:t}),o&&jsx("button",{type:"button",onClick:o,style:m,children:"Try Again"})]})}function dc({feature:e,description:t,className:o=""}){let r={display:"flex",alignItems:"center",gap:"8px",padding:"8px 12px",background:"var(--doc-warning-bg)",border:"1px solid #ffeeba",borderRadius:"4px",fontSize:"12px",color:"#856404"},d={flexShrink:0,color:"var(--doc-warning)"};return jsxs("div",{className:`docx-unsupported-warning ${o}`,style:r,children:[jsx("span",{style:d,children:jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[jsx("path",{d:"M8 2l7 12H1L8 2z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsx("path",{d:"M8 6v4M8 12v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}),jsxs("span",{children:[jsx("strong",{children:e}),t&&`: ${t}`]})]})}function pc(e){return e.message.includes("parse")||e.message.includes("Parse")||e.message.includes("XML")||e.message.includes("DOCX")||e.message.includes("Invalid")}function fc(e){let t=e.message.toLowerCase();return t.includes("network")||t.includes("fetch")?"Network error. Please check your internet connection and try again.":t.includes("parse")||t.includes("xml")||t.includes("invalid")?"The document could not be parsed. It may be corrupted or in an unsupported format.":t.includes("permission")||t.includes("access")?"Access denied. You may not have permission to access this file.":t.includes("not found")||t.includes("404")?"The requested file was not found.":t.includes("timeout")?"The operation timed out. Please try again.":"An unexpected error occurred. Please try again."}var vc={TABLE_INDEX:"data-table-index",ROW_INDEX:"data-row",COLUMN_INDEX:"data-col",TABLE_CELL:"data-table-cell"};function vi(e,t){if(!e.package?.document?.content)return null;let o=0;for(let r of e.package.document.content)if(r.type==="table"){if(o===t)return r;o++;}return null}function Si(e,t,o){if(!e.package?.document?.content)return e;let r=0,d=e.package.document.content.map(s=>{if(s.type==="table"){if(r===t)return r++,o;r++;}return s});return {...e,package:{...e.package,document:{...e.package.document,content:d}}}}function xi(e,t){if(!e.package?.document?.content)return e;let o=0,r=e.package.document.content.filter(d=>{if(d.type==="table"){let s=o===t;return o++,!s}return true});return {...e,package:{...e.package,document:{...e.package.document,content:r}}}}function Bo({document:e,onChange:t,onSelectionChange:o}){let[r,d]=useState({context:null,table:null,tableIndex:null,rowIndex:null,columnIndex:null}),s=useCallback((m,g,c)=>{if(!e)return;let h=vi(e,m);if(!h){d({context:null,table:null,tableIndex:null,rowIndex:null,columnIndex:null});return}let x=T(h,{tableIndex:m,rowIndex:g,columnIndex:c});d({context:x,table:h,tableIndex:m,rowIndex:g,columnIndex:c}),o?.(x);},[e,o]),l=useCallback(()=>{d({context:null,table:null,tableIndex:null,rowIndex:null,columnIndex:null}),o?.(null);},[o]),u=useCallback(m=>{if(!e||!r.context||r.tableIndex===null||r.rowIndex===null||r.columnIndex===null)return;let g=r.table;if(!g)return;let c=null,h=null,b=r.rowIndex,x=r.columnIndex;switch(m){case "addRowAbove":c=W(g,r.rowIndex,"before"),b=r.rowIndex+1;break;case "addRowBelow":c=W(g,r.rowIndex,"after");break;case "addColumnLeft":c=Y(g,r.columnIndex,"before"),x=r.columnIndex+1;break;case "addColumnRight":c=Y(g,r.columnIndex,"after");break;case "deleteRow":g.rows.length>1&&(c=X(g,r.rowIndex),b>=c.rows.length&&(b=c.rows.length-1));break;case "deleteColumn":{if(U(g)>1){c=Z$1(g,r.columnIndex);let f=U(c);x>=f&&(x=f-1);}break}case "mergeCells":r.context.selection.selectedCells&&(c=_(g,r.context.selection));break;case "splitCell":r.context.canSplitCell&&(c=$(g,r.rowIndex,r.columnIndex));break;case "deleteTable":h=xi(e,r.tableIndex),l(),t?.(h);return}c&&(h=Si(e,r.tableIndex,c),t?.(h),h&&s(r.tableIndex,b,x));},[e,r,t,l,s]),a=useCallback((m,g,c)=>r.tableIndex===m&&r.rowIndex===g&&r.columnIndex===c,[r]);return {state:r,handleCellClick:s,handleAction:u,clearSelection:l,isCellSelected:a,tableContext:r.context}}var zo=({headings:e,onHeadingClick:t,onClose:o,topOffset:r=0})=>{let[d$1,s]=useState(false);return useEffect(()=>{requestAnimationFrame(()=>s(true));},[]),jsxs("nav",{className:"docx-outline-nav",role:"navigation","aria-label":"Document outline",style:{position:"absolute",top:r,left:30,bottom:0,width:240,display:"flex",flexDirection:"column",overflow:"hidden",fontFamily:"'Google Sans', Roboto, Arial, sans-serif",zIndex:40,transform:d$1?"translateX(0)":"translateX(-270px)",transition:"transform 0.15s ease-out"},onMouseDown:l=>l.stopPropagation(),children:[jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"16px 16px 12px"},children:[jsx("button",{onClick:o,"aria-label":"Close outline",style:{background:"none",border:"none",cursor:"pointer",padding:4,borderRadius:"50%",display:"flex",alignItems:"center",color:"#444746"},title:"Close outline",children:jsx(d,{name:"arrow_back",size:20})}),jsx("span",{style:{fontWeight:400,fontSize:14,color:"#1f1f1f",letterSpacing:"0.01em"},children:"Outline"})]}),jsx("div",{style:{overflowY:"auto",flex:1,paddingLeft:20},children:e.length===0?jsx("div",{style:{padding:"8px 16px",color:"#80868b",fontSize:13,lineHeight:"20px"},children:"No headings found. Add headings to your document to see them here."}):e.map((l,u)=>jsx("div",{style:{marginLeft:l.level*12},children:jsx("button",{className:"docx-outline-heading-btn",onClick:()=>t(l.pmPos),style:{display:"block",width:"100%",textAlign:"left",background:"none",border:"none",cursor:"pointer",padding:"5px 12px",fontSize:13,fontWeight:400,color:"#1f1f1f",lineHeight:"18px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",borderRadius:0,letterSpacing:"0.01em"},title:l.text,children:l.text})},`${l.pmPos}-${u}`))})]})};var ki=15840,_o=1440,Pi=1440,Di=567,$o=20,Ii="var(--doc-text-muted)",Mi="var(--doc-text-subtle)",Li="var(--doc-primary)",Fi="var(--doc-primary)",Hi="var(--doc-primary-hover)";function Wo({sectionProps:e,zoom:t=1,editable:o=false,onTopMarginChange:r,onBottomMarginChange:d,unit:s="inch",className:l="",style:u}){let[a,m]=useState(null),[g,c]=useState(null),h=useRef(null),b=e?.pageHeight??ki,x=e?.marginTop??_o,D=e?.marginBottom??_o,f=twipsToPixels(b)*t,S=twipsToPixels(x)*t,L=twipsToPixels(D)*t,_=useCallback((I,A)=>{o&&(I.preventDefault(),m(A));},[o]),V=useCallback(I=>{if(!a||!h.current)return;let A=h.current.getBoundingClientRect(),v=I.clientY-A.top,he=pixelsToTwips(v/t);if(a==="topMargin"){let se=b-D-720,Y=Math.max(0,Math.min(he,se));r?.(Math.round(Y));}else if(a==="bottomMargin"){let se=b-he,Y=b-x-720,ne=Math.max(0,Math.min(se,Y));d?.(Math.round(ne));}},[a,t,b,x,D,r,d]),C=useCallback(()=>{m(null);},[]);useEffect(()=>{if(a)return document.addEventListener("mousemove",V),document.addEventListener("mouseup",C),()=>{document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",C);}},[a,V,C]);let J=Bi(b,t,s),j={position:"relative",width:$o,height:formatPx(f),backgroundColor:"transparent",overflow:"visible",userSelect:"none",cursor:a?"ns-resize":"default",...u};return jsxs("div",{ref:h,className:`docx-vertical-ruler ${l}`,style:j,role:"slider","aria-label":"Vertical ruler","aria-orientation":"vertical",children:[jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"},children:J.map((I,A)=>jsx(Ai,{tick:I},A))}),jsx(Vo,{type:"topMargin",position:S,editable:o,isDragging:a==="topMargin",isHovered:g==="topMargin",onMouseEnter:()=>c("topMargin"),onMouseLeave:()=>c(null),onMouseDown:I=>_(I,"topMargin")}),jsx(Vo,{type:"bottomMargin",position:f-L,editable:o,isDragging:a==="bottomMargin",isHovered:g==="bottomMargin",onMouseEnter:()=>c("bottomMargin"),onMouseLeave:()=>c(null),onMouseDown:I=>_(I,"bottomMargin")})]})}function Ai({tick:e}){let t={position:"absolute",top:formatPx(e.position),right:0,height:1,width:e.width,backgroundColor:Mi},o={position:"absolute",top:formatPx(e.position),left:2,transform:"translateY(-50%)",fontSize:"9px",color:Ii,fontFamily:"sans-serif",whiteSpace:"nowrap"};return jsxs(Fragment,{children:[jsx("div",{style:t}),e.label&&jsx("div",{style:o,children:e.label})]})}function Vo({type:e,position:t,editable:o,isDragging:r,isHovered:d,onMouseEnter:s,onMouseLeave:l,onMouseDown:u}){let a=r?Hi:d?Fi:Li,m={position:"absolute",top:formatPx(t-5),right:0,width:$o,height:10,cursor:o?"ns-resize":"default",zIndex:r?10:1},g={position:"absolute",top:0,right:2,width:0,height:0,borderTop:"5px solid transparent",borderBottom:"5px solid transparent",borderRight:`8px solid ${a}`,transition:"border-right-color 0.1s"};return jsx("div",{className:`docx-ruler-marker docx-ruler-marker-${e}`,style:m,onMouseEnter:s,onMouseLeave:l,onMouseDown:u,role:"slider","aria-label":e==="topMargin"?"Top margin":"Bottom margin","aria-orientation":"vertical",tabIndex:o?0:-1,children:jsx("div",{style:g})})}function Bi(e,t,o){let r=[];if(o==="inch"){let d=Pi/8,s=Math.ceil(e/d);for(let l=0;l<=s;l++){let u=l*d;if(u>e)break;let a=twipsToPixels(u)*t;if(l%8===0){let m=l/8;r.push({position:a,width:10,label:m>0?String(m):void 0});}else l%4===0?r.push({position:a,width:6}):l%2===0?r.push({position:a,width:4}):r.push({position:a,width:2});}}else {let d=Di/10,s=Math.ceil(e/d);for(let l=0;l<=s;l++){let u=l*d;if(u>e)break;let a=twipsToPixels(u)*t;if(l%10===0){let m=l/10;r.push({position:a,width:10,label:m>0?String(m):void 0});}else l%5===0?r.push({position:a,width:6}):r.push({position:a,width:3});}}return r}var Go={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"2px 0",fontSize:11,color:"#4285f4",userSelect:"none"},Xo={fontWeight:500,letterSpacing:.3},Zi={background:"none",border:"none",color:"#4285f4",cursor:"pointer",fontSize:11,padding:"2px 6px",borderRadius:3},Yi={position:"absolute",right:0,top:"100%",background:"white",border:"1px solid #dadce0",borderRadius:4,boxShadow:"0 2px 6px rgba(0,0,0,0.15)",zIndex:100,minWidth:160,padding:"4px 0"},Rn={display:"block",width:"100%",padding:"6px 12px",border:"none",background:"none",textAlign:"left",cursor:"pointer",fontSize:12,color:"#3c4043"},jo=forwardRef(function({headerFooter:t,position:o,styles:r,targetElement:d,parentElement:s,onSave:l,onClose:u,onSelectionChange:a,onRemove:m},g){let c=useRef(null),h=useRef(null),[b,x]=useState(false),[D,f]=useState(false),S=useRef(null),[L,_]=useState(null);useLayoutEffect(()=>{let I=()=>{let v=s.getBoundingClientRect(),he=d.getBoundingClientRect();_({top:he.top-v.top+s.scrollTop,left:he.left-v.left+s.scrollLeft,width:he.width});};I();let A=s.closest('[style*="overflow"]')||s;return A.addEventListener("scroll",I),window.addEventListener("resize",I),()=>{A.removeEventListener("scroll",I),window.removeEventListener("resize",I);}},[d,s]),useEffect(()=>{if(!c.current||h.current)return;let I=headerFooterToProseDoc(t.content,{styles:r||void 0}),A=new ExtensionManager(createStarterKit());A.buildSchema(),A.initializeRuntime();let v=A.getPlugins(),he=EditorState.create({doc:I,schema:schema,plugins:v}),se=new EditorView(c.current,{state:he,dispatchTransaction(Y){let ne=se.state.apply(Y);if(se.updateState(ne),Y.docChanged&&x(true),Y.selectionSet||Y.docChanged){let y=extractSelectionState(ne);a?.(y);}}});return h.current=se,requestAnimationFrame(()=>{se.focus();let Y=extractSelectionState(se.state);a?.(Y);}),()=>{se.destroy(),h.current=null;}},[L]);let V=useCallback(()=>{if(!h.current)return;let I=proseDocToBlocks(h.current.state.doc);l(I);},[l]),C=useCallback(()=>{b?V():u();},[b,V,u]);useEffect(()=>{function I(A){A.key==="Escape"&&(A.preventDefault(),A.stopPropagation(),C());}return document.addEventListener("keydown",I,true),()=>document.removeEventListener("keydown",I,true)},[C]),useEffect(()=>{if(!D)return;function I(A){S.current&&!S.current.contains(A.target)&&f(false);}return document.addEventListener("mousedown",I),()=>document.removeEventListener("mousedown",I)},[D]),useImperativeHandle(g,()=>({getView:()=>h.current,focus:()=>h.current?.focus(),undo:()=>{let I=h.current;return I?undo(I.state,I.dispatch):false},redo:()=>{let I=h.current;return I?redo(I.state,I.dispatch):false}}));let J=o==="header"?"Header":"Footer";if(!L)return null;let j={position:"absolute",top:L.top,left:L.left,width:L.width,zIndex:10};return jsxs("div",{className:"hf-inline-editor",style:j,onMouseDown:I=>{I.stopPropagation();},children:[o==="footer"&&jsxs("div",{className:"hf-separator-bar",style:Go,children:[jsx("span",{style:Xo,children:J}),jsx(Zo,{label:J,showOptions:D,setShowOptions:f,optionsRef:S,onRemove:m,onClose:C,viewRef:h})]}),jsx("div",{ref:c,className:"hf-editor-pm",style:{minHeight:40,outline:"none"}}),o==="header"&&jsxs("div",{className:"hf-separator-bar",style:Go,children:[jsx("span",{style:Xo,children:J}),jsx(Zo,{label:J,showOptions:D,setShowOptions:f,optionsRef:S,onRemove:m,onClose:C,viewRef:h})]})]})});function Zo({label:e,showOptions:t,setShowOptions:o,optionsRef:r,onRemove:d,onClose:s,viewRef:l}){let u=a=>{let m=l.current;if(!m)return;let{$from:g,from:c}=m.state.selection,h=m.state.storedMarks||g.marks(),b=schema.nodes.field.create({fieldType:a,instruction:` ${a} \\* MERGEFORMAT `,fieldKind:"simple",dirty:true}),x=m.state.tr.insert(c,b.mark(h));m.dispatch(x),m.focus();};return jsxs("div",{style:{position:"relative"},ref:r,children:[jsx("button",{type:"button",style:Zi,onClick:a=>{a.stopPropagation(),o(m=>!m);},onMouseDown:a=>a.stopPropagation(),children:"Options \u25BE"}),t&&jsxs("div",{style:Yi,children:[jsx("button",{type:"button",style:Rn,onClick:()=>{o(false),u("PAGE");},onMouseOver:a=>{a.target.style.backgroundColor="#f1f3f4";},onMouseOut:a=>{a.target.style.backgroundColor="transparent";},children:"Insert current page number"}),jsx("button",{type:"button",style:Rn,onClick:()=>{o(false),u("NUMPAGES");},onMouseOver:a=>{a.target.style.backgroundColor="#f1f3f4";},onMouseOut:a=>{a.target.style.backgroundColor="transparent";},children:"Insert total page count"}),jsx("div",{style:{borderTop:"1px solid #e8eaed",margin:"4px 0"}}),d&&jsxs("button",{type:"button",style:Rn,onClick:()=>{o(false),d();},onMouseOver:a=>{a.target.style.backgroundColor="#f1f3f4";},onMouseOut:a=>{a.target.style.backgroundColor="transparent";},children:["Remove ",e.toLowerCase()]}),jsxs("button",{type:"button",style:Rn,onClick:()=>{o(false),s();},onMouseOver:a=>{a.target.style.backgroundColor="#f1f3f4";},onMouseOut:a=>{a.target.style.backgroundColor="transparent";},children:["Close ",e.toLowerCase()," editing"]})]})]})}var Z=e=>({style:"single",size:4,color:{rgb:e}}),ji=[{id:"TableNormal",name:"Normal Table",look:{firstRow:false,lastRow:false,noHBand:true,noVBand:true}},{id:"TableGrid",name:"Table Grid",tableBorders:{top:Z("000000"),bottom:Z("000000"),left:Z("000000"),right:Z("000000"),insideH:Z("000000"),insideV:Z("000000")},look:{firstRow:false,lastRow:false,noHBand:true,noVBand:true}},{id:"TableGridLight",name:"Grid Table Light",tableBorders:{top:Z("BFBFBF"),bottom:Z("BFBFBF"),left:Z("BFBFBF"),right:Z("BFBFBF"),insideH:Z("BFBFBF"),insideV:Z("BFBFBF")},look:{firstRow:true,lastRow:false,noHBand:true,noVBand:true},conditionals:{firstRow:{bold:true,borders:{bottom:Z("000000")}}}},{id:"PlainTable1",name:"Plain Table 1",tableBorders:{top:Z("BFBFBF"),bottom:Z("BFBFBF"),insideH:Z("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:Z("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:Z("B4C6E7"),bottom:Z("B4C6E7"),left:Z("B4C6E7"),right:Z("B4C6E7"),insideH:Z("B4C6E7"),insideV:Z("B4C6E7")},look:{firstRow:true,lastRow:false,noHBand:true,noVBand:true},conditionals:{firstRow:{bold:true,borders:{bottom:Z("4472C4")}}}},{id:"GridTable4-Accent1",name:"Grid Table 4 Accent 1",tableBorders:{top:Z("4472C4"),bottom:Z("4472C4"),left:Z("4472C4"),right:Z("4472C4"),insideH:Z("4472C4"),insideV:Z("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:Z("FFFFFF"),bottom:Z("FFFFFF"),left:Z("FFFFFF"),right:Z("FFFFFF"),insideH:Z("FFFFFF"),insideV:Z("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:Z("ED7D31"),bottom:Z("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:Z("A5A5A5"),bottom:Z("A5A5A5"),insideH:Z("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:Z("5B9BD5"),bottom:Z("5B9BD5"),left:Z("5B9BD5"),right:Z("5B9BD5"),insideH:Z("5B9BD5"),insideV:Z("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:Z("70AD47"),bottom:Z("70AD47"),left:Z("70AD47"),right:Z("70AD47"),insideH:Z("70AD47"),insideV:Z("70AD47")},look:{firstRow:true,lastRow:false,noHBand:false,noVBand:true},conditionals:{firstRow:{bold:true,color:"#FFFFFF",backgroundColor:"#70AD47"},band1Horz:{backgroundColor:"#E2EFDA"}}}];function Jo(e){return ji.find(t=>t.id===e)}function Qo(){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:`
|
|
15
|
-
@keyframes docx-spin {
|
|
16
|
-
to { transform: rotate(360deg); }
|
|
17
|
-
}
|
|
18
|
-
`}),jsx("div",{style:{fontSize:"14px"},children:"Loading document..."})]})}function er(){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:"No document loaded"})]})}function tr({message:e}){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:"Failed to Load Document"}),jsx("p",{style:{color:"var(--doc-text-muted)",maxWidth:"400px"},children:e})]})}function Qi(e,t){return JSON.stringify(e)===JSON.stringify(t)}function es(e,t={}){let{maxEntries:o=100,groupingInterval:r=500,enableKeyboardShortcuts:d=true,isEqual:s=Qi,onUndo:l,onRedo:u,containerRef:a}=t,[m,g]=useState(e),[c,h]=useState([]),[b,x]=useState([]),D=useRef(0),f=useRef(false),S=useCallback((I,A)=>{if(s(m,I))return;if(f.current){g(I);return}let v=Date.now();v-D.current<r&&c.length>0?h(se=>{let Y=[...se];return Y[Y.length-1]={state:m,timestamp:v,description:A||Y[Y.length-1].description},Y}):h(se=>{let Y={state:m,timestamp:v,description:A},ne=[...se,Y];return ne.length>o?ne.slice(ne.length-o):ne}),x([]),g(I),D.current=v;},[m,s,r,o,c.length]),L=useCallback(()=>{if(c.length===0)return;f.current=true;let I=c[c.length-1];return h(A=>A.slice(0,-1)),x(A=>[...A,{state:m,timestamp:Date.now()}]),g(I.state),setTimeout(()=>{f.current=false;},0),l?.(I.state),I.state},[c,m,l]),_=useCallback(()=>{if(b.length===0)return;f.current=true;let I=b[b.length-1];return x(A=>A.slice(0,-1)),h(A=>[...A,{state:m,timestamp:Date.now()}]),g(I.state),setTimeout(()=>{f.current=false;},0),u?.(I.state),I.state},[b,m,u]),V=useCallback(()=>{h([]),x([]);},[]),C=useCallback(I=>{g(I??e),h([]),x([]),D.current=0;},[e]),J=useCallback(()=>[...c],[c]),j=useCallback(()=>[...b],[b]);return useEffect(()=>{if(!d)return;let I=v=>{if((v.ctrlKey||v.metaKey)&&v.key==="z"&&!v.shiftKey){v.preventDefault(),L();return}if((v.ctrlKey||v.metaKey)&&v.key==="y"||(v.ctrlKey||v.metaKey)&&v.key==="z"&&v.shiftKey){v.preventDefault(),_();return}},A=a?.current||document;return A.addEventListener("keydown",I),()=>{A.removeEventListener("keydown",I);}},[d,L,_,a]),{state:m,canUndo:c.length>0,canRedo:b.length>0,undoCount:c.length,redoCount:b.length,push:S,undo:L,redo:_,clear:V,reset:C,getUndoStack:J,getRedoStack:j}}function or(e,t={}){let o=useCallback((r,d)=>!(r?.package?.document!==d?.package?.document&&JSON.stringify(r?.package?.document)!==JSON.stringify(d?.package?.document)||r?.package?.headers!==d?.package?.headers||r?.package?.footers!==d?.package?.footers),[]);return es(e,{...t,isEqual:o})}var fs={position:"fixed",left:"-9999px",top:"0",opacity:0,zIndex:-1,pointerEvents:"none",userSelect:"none",overflowAnchor:"none"};function ar(e,t,o,r=[]){let d=o?.getSchema()??schema,s=e?toProseDoc(e,{styles:t??void 0}):createEmptyDoc(),l=[...o?.getPlugins()??[],...r];return EditorState.create({doc:s,schema:d,plugins:l})}function ms(e,t){return t?fromProseDoc(e.doc,t):null}var gs=forwardRef(function(t,o){let{document:r,styles:d,theme:s,widthPx:l=612,readOnly:u=false,onTransaction:a,onSelectionChange:m,externalPlugins:g=[],extensionManager:c,onEditorViewReady:h,onEditorViewDestroy:b,onKeyDown:x}=t,D=useRef(null),f=useRef(null),S=useRef(r),L=useRef(false),_=useRef(null),V=useRef(false),C=useRef(a),J=useRef(m),j=useRef(h),I=useRef(b),A=useRef(x);C.current=a,J.current=m,j.current=h,I.current=b,A.current=x,S.current=r;let v=useCallback(()=>{if(!D.current||L.current)return;let Y={state:ar(r,d,c,g),editable:()=>!u,dispatchTransaction:ne=>{if(!f.current||L.current)return;let y=f.current.state.apply(ne);f.current.updateState(y),C.current?.(ne,y),(ne.selectionSet||ne.docChanged)&&J.current?.(y);},handleKeyDown:(ne,y)=>A.current?.(ne,y)??false,handleDOMEvents:{focus:()=>false,blur:()=>false}};f.current=new EditorView(D.current,Y),j.current?.(f.current);},[r,d,g,c,u]),he=useCallback(()=>{f.current&&!L.current&&(L.current=true,I.current?.(),f.current.destroy(),f.current=null,L.current=false);},[]);return useEffect(()=>(v(),()=>he()),[]),useEffect(()=>{if(!f.current||L.current)return;let Y=(y=>{if(!y)return "empty";let R=y.package?.properties;return `${R?.created||""}-${R?.modified||""}-${R?.title||""}`})(r);if(V.current&&Y===_.current)return;V.current=true,_.current=Y;let ne=ar(r,d,c,g);f.current.updateState(ne),J.current?.(ne);},[r,d,c,g]),useEffect(()=>{f.current;},[u]),useImperativeHandle(o,()=>({getState(){return f.current?.state??null},getView(){return f.current??null},getDocument(){return f.current?ms(f.current.state,S.current):null},focus(){f.current?.focus();},blur(){f.current?.hasFocus()&&f.current.dom.blur();},isFocused(){return f.current?.hasFocus()??false},dispatch(se){f.current&&!L.current&&f.current.dispatch(se);},executeCommand(se){return f.current?se(f.current.state,f.current.dispatch,f.current):false},undo(){return f.current?undo(f.current.state,f.current.dispatch):false},redo(){return f.current?redo(f.current.state,f.current.dispatch):false},canUndo(){return f.current?undo(f.current.state):false},canRedo(){return f.current?redo(f.current.state):false},setSelection(se,Y){if(!f.current)return;let{state:ne,dispatch:y}=f.current,R=ne.doc.resolve(se),W=Y!==void 0?ne.doc.resolve(Y):R,ae=TextSelection.between(R,W);y(ne.tr.setSelection(ae));},setNodeSelection(se){if(!f.current)return;let{state:Y,dispatch:ne}=f.current;try{let y=NodeSelection.create(Y.doc,se);ne(Y.tr.setSelection(y));}catch{this.setSelection(se);}},setCellSelection(se,Y){if(!f.current)return;let{state:ne,dispatch:y}=f.current;try{let R=CellSelection.create(ne.doc,se,Y);y(ne.tr.setSelection(R));}catch{this.setSelection(se,Y);}},scrollToSelection(){}}),[]),jsx("div",{ref:D,className:"paged-editor__hidden-pm",style:{...fs,width:l>0?`${l}px`:void 0}})}),lr=memo(gs);var vs="#000",Ss="rgba(66, 133, 244, 0.3)",xs=2,ws=530,Rs={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10,overflow:"hidden"},Cs=(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"}),Es=(e,t)=>({position:"absolute",left:e.x,top:e.y,width:e.width,height:e.height,backgroundColor:t,pointerEvents:"none"}),Ts=({position:e,color:t,width:o,blinkInterval:r,isFocused:d})=>{let[s,l]=useState(d),u=useRef(null);return useEffect(()=>(u.current&&(window.clearInterval(u.current),u.current=null),d&&r>0?(l(true),u.current=window.setInterval(()=>{l(a=>!a);},r)):l(false),()=>{u.current&&window.clearInterval(u.current);}),[d,r]),useEffect(()=>{if(d)return l(true),u.current&&window.clearInterval(u.current),r>0&&(u.current=window.setInterval(()=>{l(a=>!a);},r)),()=>{u.current&&window.clearInterval(u.current);}},[e.x,e.y,d,r]),jsx("div",{style:Cs(e,t,o,s),"data-testid":"caret"})},ks=({rect:e,color:t,index:o})=>jsx("div",{style:Es(e,t),"data-testid":`selection-rect-${o}`,"data-page-index":e.pageIndex}),ur=({selectionRects:e,caretPosition:t,isFocused:o,readOnly:r=false,caretColor:d=vs,selectionColor:s=Ss,caretWidth:l=xs,blinkInterval:u=ws})=>{if(r)return null;let a=e.length>0,m=t!==null&&!a;return jsxs("div",{style:Rs,"data-testid":"selection-overlay",children:[a&&e.map((g,c)=>jsx(ks,{rect:g,color:s,index:c},`sel-${g.pageIndex}-${g.x}-${g.y}-${c}`)),m&&t&&jsx(Ts,{position:t,color:d,width:l,blinkInterval:u,isFocused:o})]})};var po=10,Tt=po/2,sn=2,mr="#2563eb",pr={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:15,overflow:"visible"},Ds={position:"absolute",border:`${sn}px solid ${mr}`,pointerEvents:"none",boxSizing:"border-box"},Is={position:"absolute",width:`${po}px`,height:`${po}px`,backgroundColor:mr,border:"1px solid white",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.3)",boxSizing:"border-box",pointerEvents:"auto",zIndex:16},Ms={position:"absolute",backgroundColor:"rgba(0, 0, 0, 0.75)",color:"white",fontSize:"11px",fontFamily:"system-ui, sans-serif",padding:"2px 8px",borderRadius:"3px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:20,transform:"translateX(-50%)"},Ls={nw:"nw-resize",ne:"ne-resize",se:"se-resize",sw:"sw-resize"};function Fs(e,t,o,r,d,s){let l=e.includes("w")?-1:1,u=e.includes("n")?-1:1,a=r+t*l,m=d+o*u;if(s){let g=Math.max(a/r,m/d);a=r*g,m=d*g;}return {width:Math.max(20,Math.min(2e3,a)),height:Math.max(20,Math.min(2e3,m))}}function gr({imageInfo:e,zoom:t,isFocused:o,onResize:r,onResizeStart:d,onResizeEnd:s,onDragMove:l,onDragStart:u,onDragEnd:a}){let[m,g]=useState(false),[c,h]=useState(false),[b,x]=useState(0),[D,f]=useState(0),[S,L]=useState(null),_=useRef(null),V=useRef(null),C=useRef(r),J=useRef(d),j=useRef(s),I=useRef(l),A=useRef(u),v=useRef(a);C.current=r,J.current=d,j.current=s,I.current=l,A.current=u,v.current=a;let he=useRef(e),se=useRef(t);he.current=e,se.current=t;let Y=useCallback(()=>{if(!e||!V.current){L(null);return}let de=V.current.offsetParent;if(!de){L(null);return}let K=de.getBoundingClientRect(),Se=e.element.getBoundingClientRect();L({left:(Se.left-K.left)/t,top:(Se.top-K.top)/t,width:Se.width/t,height:Se.height/t});},[e,t]);useEffect(()=>{Y();},[Y]),useEffect(()=>{if(!e)return;let de=V.current?.closest('[style*="overflow"]')??V.current?.closest(".paged-editor__container");if(!de)return;let K=()=>{_.current&&cancelAnimationFrame(_.current),_.current=requestAnimationFrame(Y);};return de.addEventListener("scroll",K,{passive:true}),window.addEventListener("resize",K,{passive:true}),()=>{de.removeEventListener("scroll",K),window.removeEventListener("resize",K),_.current&&cancelAnimationFrame(_.current);}},[e,Y]);let ne=useCallback((de,K)=>{if(!e||!S)return;K.preventDefault(),K.stopPropagation();let Se=S.width,Te=S.height,Ye=K.clientX,we=K.clientY,je=Math.round(Se),Me=Math.round(Te);g(true),x(je),f(Me),J.current?.();let Be=He=>{let pe=se.current,Ne=(He.clientX-Ye)/pe,rt=(He.clientY-we)/pe,it=!He.shiftKey,Ve=Fs(de,Ne,rt,Se,Te,it);je=Math.round(Ve.width),Me=Math.round(Ve.height),x(je),f(Me),L(Ze=>{if(!Ze)return Ze;let $e={...Ze};return de.includes("w")&&($e.left=Ze.left+(Ze.width-Ve.width)),de.includes("n")&&($e.top=Ze.top+(Ze.height-Ve.height)),$e.width=Ve.width,$e.height=Ve.height,$e});},Fe=()=>{window.removeEventListener("mousemove",Be),window.removeEventListener("mouseup",Fe),g(false);let He=he.current;He&&C.current?.(He.pmPos,je,Me),j.current?.();};window.addEventListener("mousemove",Be),window.addEventListener("mouseup",Fe);},[e,S]),y=useCallback(de=>{if(!e||!S)return;de.preventDefault(),de.stopPropagation();let K=4,Se=de.clientX,Te=de.clientY,Ye=false,we=null,je=Be=>{let Fe=Be.clientX-Se,He=Be.clientY-Te;!Ye&&Math.sqrt(Fe*Fe+He*He)<K||(Ye||(Ye=true,h(true),A.current?.(),we=document.createElement("div"),we.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);",we.style.width=`${S.width}px`,we.style.height=`${S.height}px`,document.body.appendChild(we)),we&&(we.style.left=`${Be.clientX-S.width/2}px`,we.style.top=`${Be.clientY-S.height/2}px`));},Me=Be=>{if(window.removeEventListener("mousemove",je),window.removeEventListener("mouseup",Me),we&&(we.remove(),we=null),h(false),Ye){let Fe=he.current;Fe&&I.current?.(Fe.pmPos,Be.clientX,Be.clientY),v.current?.();}};window.addEventListener("mousemove",je),window.addEventListener("mouseup",Me);},[e,S]);if(!!!(e&&S&&o))return jsx("div",{ref:V,style:{...pr,visibility:"hidden"},className:"image-selection-overlay"});let{left:W,top:ae,width:ie,height:Ce}=S;return jsxs("div",{ref:V,style:pr,className:"image-selection-overlay",children:[jsx("div",{style:{...Ds,left:W-sn,top:ae-sn,width:ie+sn*2,height:Ce+sn*2}}),jsx("div",{style:{position:"absolute",left:W,top:ae,width:ie,height:Ce,cursor:c?"grabbing":"grab",pointerEvents:"auto",zIndex:15},onMouseDown:y}),jsx(En,{handle:"nw",style:{left:W-Tt,top:ae-Tt},onMouseDown:ne}),jsx(En,{handle:"ne",style:{left:W+ie-Tt,top:ae-Tt},onMouseDown:ne}),jsx(En,{handle:"se",style:{left:W+ie-Tt,top:ae+Ce-Tt},onMouseDown:ne}),jsx(En,{handle:"sw",style:{left:W-Tt,top:ae+Ce-Tt},onMouseDown:ne}),m&&jsxs("div",{style:{...Ms,left:W+ie/2,top:ae+Ce+12},children:[b," \xD7 ",D]})]})}function En({handle:e,style:t,onMouseDown:o}){return jsx("div",{style:{...Is,...t,cursor:Ls[e]},onMouseDown:r=>o(e,r),"data-handle":e})}var ht,Pt,Dt,bt,Gt,Nt,hr,fo,Tn=class{constructor(){d$1(this,Nt);d$1(this,ht,0);d$1(this,Pt,0);d$1(this,Dt,false);d$1(this,bt,null);d$1(this,Gt,new Set);}setStateSeq(t){e$1(this,ht,t);}incrementStateSeq(){return ++g(this,ht)._}getStateSeq(){return c(this,ht)}getRenderSeq(){return c(this,Pt)}onLayoutStart(){e$1(this,Dt,true);}onLayoutComplete(t){e$1(this,Pt,t),e$1(this,Dt,false),f(this,Nt,hr).call(this);}isSafeToRender(){return !c(this,Dt)&&c(this,Pt)>=c(this,ht)}requestRender(){this.isSafeToRender()?f(this,Nt,fo).call(this):e$1(this,bt,()=>f(this,Nt,fo).call(this));}onRender(t){return c(this,Gt).add(t),()=>{c(this,Gt).delete(t);}}reset(){e$1(this,ht,0),e$1(this,Pt,0),e$1(this,Dt,false),e$1(this,bt,null);}getDebugInfo(){return {stateSeq:c(this,ht),renderSeq:c(this,Pt),layoutUpdating:c(this,Dt),hasPendingRender:c(this,bt)!==null,isSafe:this.isSafeToRender()}}};ht=new WeakMap,Pt=new WeakMap,Dt=new WeakMap,bt=new WeakMap,Gt=new WeakMap,Nt=new WeakSet,hr=function(){if(c(this,bt)&&this.isSafeToRender()){let t=c(this,bt);e$1(this,bt,null),t();}},fo=function(){for(let t of c(this,Gt))try{t();}catch(o){console.error("LayoutSelectionGate: render callback error",o);}};function yr({pagesContainerRef:e}){let t=useRef(null),o=useRef(-1),r=useCallback(u=>{if(!e.current)return null;let a=e.current.querySelectorAll("span[data-pm-start][data-pm-end]");for(let g of Array.from(a)){let c=g,h=Number(c.dataset.pmStart),b=Number(c.dataset.pmEnd);if(c.classList.contains("layout-run-tab")){if(u>=h&&u<b)return c.getBoundingClientRect().left;continue}if(u>=h&&u<=b&&g.firstChild?.nodeType===Node.TEXT_NODE){let x=g.firstChild,D=Math.min(u-h,x.length),f=c.ownerDocument;if(!f)continue;let S=f.createRange();return S.setStart(x,D),S.setEnd(x,D),S.getBoundingClientRect().left}}let m=e.current.querySelectorAll(".layout-empty-run");for(let g of Array.from(m)){let c=g.closest(".layout-paragraph");if(!c)continue;let h=Number(c.dataset.pmStart),b=Number(c.dataset.pmEnd);if(u>=h&&u<=b)return g.getBoundingClientRect().left}return null},[e]),d=useCallback(u=>{if(!e.current)return null;let a=e.current.querySelectorAll(".layout-line");for(let m of Array.from(a)){let g=m,c=g.querySelectorAll("span[data-pm-start][data-pm-end]");for(let h of Array.from(c)){let b=h,x=Number(b.dataset.pmStart),D=Number(b.dataset.pmEnd);if(u>=x&&u<=D)return g}}for(let m of Array.from(a)){let g=m,c=g.closest(".layout-paragraph");if(!c)continue;let h=Number(c.dataset.pmStart),b=Number(c.dataset.pmEnd);if(u>=h&&u<=b&&c.querySelector(".layout-line")===g)return g}return null},[e]),s=useCallback((u,a)=>{let m=u.querySelectorAll("span[data-pm-start][data-pm-end]");if(m.length===0){let b=u.closest(".layout-paragraph");return b?.dataset.pmStart?Number(b.dataset.pmStart)+1:null}for(let b of Array.from(m)){let x=b,D=x.getBoundingClientRect(),f=Number(x.dataset.pmStart),S=Number(x.dataset.pmEnd);if(x.classList.contains("layout-run-tab")){if(a>=D.left&&a<=D.right){let L=(D.left+D.right)/2;return a<L?f:S}continue}if(a>=D.left&&a<=D.right){let L=x.firstChild;if(!L||L.nodeType!==Node.TEXT_NODE)return f;let _=L,V=x.ownerDocument;if(!V)return f;let C=0,J=_.length;for(;C<J;){let j=Math.floor((C+J)/2),I=V.createRange();I.setStart(_,j),I.setEnd(_,j),a<I.getBoundingClientRect().left?J=j:C=j+1;}if(C>0&&C<=_.length){let j=V.createRange();j.setStart(_,C-1),j.setEnd(_,C-1);let I=j.getBoundingClientRect().left;j.setStart(_,Math.min(C,_.length)),j.setEnd(_,Math.min(C,_.length));let A=j.getBoundingClientRect().left;if(Math.abs(a-I)<Math.abs(a-A))return f+(C-1)}return f+Math.min(C,S-f)}}let g=null,c=1/0;for(let b of Array.from(m)){let x=b,D=x.getBoundingClientRect(),f=a<D.left?D.left-a:a-D.right;f<c&&(c=f,g=x);}if(!g)return null;let h=g.getBoundingClientRect();return a<h.left?Number(g.dataset.pmStart):Number(g.dataset.pmEnd)},[]),l=useCallback((u,a)=>{if(a.key!=="ArrowUp"&&a.key!=="ArrowDown")return (["ArrowLeft","ArrowRight","Home","End"].includes(a.key)||a.key.length===1&&!a.ctrlKey&&!a.metaKey)&&(t.current=null,o.current=-1),false;if(a.ctrlKey||a.metaKey)return t.current=null,o.current=-1,false;if(!e.current)return false;let m=Array.from(e.current.querySelectorAll(".layout-line"));if(m.length===0)return false;let{from:g,anchor:c}=u.state.selection;if(t.current===null){let _=r(g);if(_===null)return false;t.current=_;}let h;if(o.current>=0&&o.current<m.length)h=o.current;else {let _=d(g);if(!_||(h=m.indexOf(_),h===-1))return false}let b=a.key==="ArrowUp"?h-1:h+1;if(b<0||b>=m.length)return o.current=-1,false;let x=m[b],D=s(x,t.current);if(D===null)return false;o.current=b;let{state:f,dispatch:S}=u,L=Math.max(0,Math.min(D,f.doc.content.size));try{let _=a.shiftKey?TextSelection.create(f.doc,c,L):TextSelection.create(f.doc,L);S(f.tr.setSelection(_));}catch{let _=f.doc.resolve(L),V=a.shiftKey?TextSelection.between(f.doc.resolve(c),_):TextSelection.near(_);S(f.tr.setSelection(V));}return true},[e,r,d,s]);return {stickyXRef:t,lastVisualLineIndexRef:o,getCaretClientX:r,findLineElementAtPosition:d,findPositionOnLineAtClientX:s,handlePMKeyDown:l}}var mo=class{constructor(t,o=1){b(this,"pagesContainer");b(this,"zoom");this.pagesContainer=t,this.zoom=o;}getCoordinatesForPosition(t){let o=this.pagesContainer.getBoundingClientRect(),r=this.pagesContainer.querySelectorAll("span[data-pm-start][data-pm-end]");for(let s of Array.from(r)){let l=s,u=Number(l.dataset.pmStart),a=Number(l.dataset.pmEnd);if(l.classList.contains("layout-run-tab")){if(t>=u&&t<a){let m=l.getBoundingClientRect(),g=l.closest(".layout-line"),c=g?g.offsetHeight:16;return {x:(m.left-o.left)/this.zoom,y:(m.top-o.top)/this.zoom,height:c/this.zoom}}continue}if(t>=u&&t<=a&&s.firstChild?.nodeType===Node.TEXT_NODE){let m=s.firstChild,g=Math.min(t-u,m.length),c=l.ownerDocument;if(!c)continue;let h=c.createRange();h.setStart(m,g),h.setEnd(m,g);let b=h.getBoundingClientRect(),x=l.closest(".layout-line"),D=x?x.offsetHeight:16;return {x:(b.left-o.left)/this.zoom,y:(b.top-o.top)/this.zoom,height:D/this.zoom}}}let d=this.pagesContainer.querySelectorAll(".layout-empty-run");for(let s of Array.from(d)){let l=s.closest(".layout-paragraph");if(!l)continue;let u=Number(l.dataset.pmStart),a=Number(l.dataset.pmEnd);if(t>=u&&t<=a){let m=s.getBoundingClientRect(),g=s.closest(".layout-line"),c=g?g.offsetHeight:16;return {x:(m.left-o.left)/this.zoom,y:(m.top-o.top)/this.zoom,height:c/this.zoom}}}return null}findElementsForRange(t,o){let r=[],d=this.pagesContainer.querySelectorAll("span[data-pm-start][data-pm-end]");for(let s of Array.from(d)){let l=s,u=Number(l.dataset.pmStart);Number(l.dataset.pmEnd)>t&&u<o&&r.push(l);}return r}getRectsForRange(t,o){let r=this.pagesContainer.getBoundingClientRect(),d=[],s=this.pagesContainer.querySelectorAll("span[data-pm-start][data-pm-end]");for(let l of Array.from(s)){let u=l,a=Number(u.dataset.pmStart);if(Number(u.dataset.pmEnd)>t&&a<o){if(u.classList.contains("layout-run-tab")){let x=u.getBoundingClientRect();d.push({x:(x.left-r.left)/this.zoom,y:(x.top-r.top)/this.zoom,width:x.width/this.zoom,height:x.height/this.zoom});continue}if(l.firstChild?.nodeType!==Node.TEXT_NODE)continue;let g=l.firstChild,c=u.ownerDocument;if(!c)continue;let h=Math.max(0,t-a),b=Math.min(g.length,o-a);if(h<b){let x=c.createRange();x.setStart(g,h),x.setEnd(g,b);let D=x.getClientRects();for(let f of Array.from(D))d.push({x:(f.left-r.left)/this.zoom,y:(f.top-r.top)/this.zoom,width:f.width/this.zoom,height:f.height/this.zoom});}}}return d}getContainerOffset(){let t=this.pagesContainer.parentElement;if(!t)return {x:0,y:0};let o=this.pagesContainer.getBoundingClientRect(),r=t.getBoundingClientRect();return {x:(o.left-r.left)/this.zoom,y:(o.top-r.top)/this.zoom}}};function vr(e,t=1){return new mo(e,t)}var ea=816,Tr=1056,Dn={top:96,right:96,bottom:96,left:96},ta=24,na=[],oa={position:"relative",width:"100%",height:"100%",overflow:"auto",backgroundColor:"var(--doc-bg, #f8f9fa)"},ra={position:"relative",display:"flex",flexDirection:"column",alignItems:"center",paddingTop:24,paddingBottom:24},ia={position:"relative",display:"flex",flexDirection:"column",alignItems:"center"},sa={position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",overflow:"visible",zIndex:8};function pt(e){return Math.round(e/1440*96)}function aa(e){return {w:e?.pageWidth?pt(e.pageWidth):ea,h:e?.pageHeight?pt(e.pageHeight):Tr}}function la(e){let t=e?.marginTop?pt(e.marginTop):Dn.top,o=e?.marginBottom?pt(e.marginBottom):Dn.bottom;return {top:t,right:e?.marginRight?pt(e.marginRight):Dn.right,bottom:o,left:e?.marginLeft?pt(e.marginLeft):Dn.left,header:e?.headerDistance?pt(e.headerDistance):48,footer:e?.footerDistance?pt(e.footerDistance):48}}function ca(e){let t=e.wrapType,o=e.displayMode;return !!(t&&["square","tight","through"].includes(t)||o==="float")}function Rr(e){return e===void 0?0:Math.round(e*96/914400)}function ua(e,t,o){if(e){if(t==="pct")return o*e/5e3;if(t==="dxa"||!t||t==="auto")return Math.round(e/20*1.333)}}function kr(e,t){let s=e.columnWidths??[],l=ua(e.width,e.widthType,t);if(s.length===0&&e.rows.length>0){let c=e.rows[0].cells.reduce((x,D)=>x+(D.colSpan??1),0),b=(l??t)/Math.max(1,c);s=Array(c).fill(b);}else if(s.length>0&&l){let c=s.reduce((h,b)=>h+b,0);if(c>0&&Math.abs(c-l)>1){let h=l/c;s=s.map(b=>b*h);}}let u=new Map;for(let c=0;c<e.rows.length;c++){let h=e.rows[c];if(!h)continue;let b=0,x=u.get(c)??new Set;for(;x.has(b);)b++;for(let D of h.cells){let f=D.colSpan??1,S=D.rowSpan??1;if(S>1)for(let L=c+1;L<c+S;L++){u.has(L)||u.set(L,new Set);let _=u.get(L);for(let V=0;V<f;V++)_.add(b+V);}for(b+=f;x.has(b);)b++;}}let a=e.rows.map((c,h)=>{let b=0,x=u.get(h)??new Set;for(;x.has(b);)b++;return {cells:c.cells.map(D=>{let f=D.colSpan??1,S=0;for(let C=0;C<f&&b+C<s.length;C++)S+=s[b+C]??0;for(S===0&&(S=D.width??100),b+=f;x.has(b);)b++;let L=D.padding?.left??7,_=D.padding?.right??7,V=Math.max(1,S-L-_);return {blocks:D.blocks.map(C=>Pr(C,V)),width:S,height:0,colSpan:D.colSpan,rowSpan:D.rowSpan}}),height:0}});for(let c=0;c<a.length;c++){let h=a[c],b=e.rows[c]?.cells,x=0;for(let L=0;L<h.cells.length;L++){let _=h.cells[L],V=b?.[L];_.height=_.blocks.reduce((j,I)=>"totalHeight"in I?j+I.totalHeight:j,0);let C=V?.padding?.top??1,J=V?.padding?.bottom??1;_.height+=C+J,x=Math.max(x,_.height);}let D=e.rows[c],f=D?.height,S=D?.heightRule;f&&S==="exact"?h.height=f:f&&S==="atLeast"?h.height=Math.max(x,f):h.height=Math.max(x,24);}let m=a.reduce((c,h)=>c+h.height,0),g=s.reduce((c,h)=>c+h,0)||l||t;return {kind:"table",rows:a,columnWidths:s,totalWidth:g,totalHeight:m}}function da(e,t){let o=[];for(let r=0;r<e.length;r++){let d=e[r];if(d.kind!=="paragraph")continue;let s=d;for(let l of s.runs){if(l.kind!=="image")continue;let u=l;if(!ca(u))continue;let a=0,m=u.position,g=u.distTop??0,c=u.distBottom??0,h=u.distLeft??12,b=u.distRight??12;if(m?.vertical){let S=m.vertical;S.align==="top"&&S.relativeTo==="margin"?a=0:S.posOffset!==void 0&&(a=Rr(S.posOffset));}let x=a+u.height,D=0,f=0;if(m?.horizontal){let S=m.horizontal;if(S.align==="left")D=u.width+b;else if(S.align==="right")f=u.width+h;else if(S.posOffset!==void 0){let L=Rr(S.posOffset);L<t/2?D=L+u.width+b:f=t-L+h;}}else u.cssFloat==="left"?D=u.width+b:u.cssFloat==="right"&&(f=u.width+h);if(D>0||f>0){let S=m?.vertical?.relativeTo==="margin"||m?.vertical?.relativeTo==="page";o.push({leftMargin:D,rightMargin:f,topY:a-g,bottomY:x+c,anchorBlockIndex:r,isMarginRelative:S});}}}for(let r=0;r<e.length;r++){let d=e[r];if(d.kind!=="table")continue;let s=d,l=s.floating;if(!l)continue;let u=kr(s,t),a=u.totalWidth,m=u.totalHeight,g=l.leftFromText??12,c=l.rightFromText??12,h=l.topFromText??0,b=l.bottomFromText??0,x=0,D=0,f=0;l.tblpX!==void 0?f=l.tblpX:l.tblpXSpec?l.tblpXSpec==="left"||l.tblpXSpec==="inside"?f=0:l.tblpXSpec==="right"||l.tblpXSpec==="outside"?f=t-a:l.tblpXSpec==="center"&&(f=(t-a)/2):s.justification==="center"?f=(t-a)/2:s.justification==="right"&&(f=t-a),f<t/2?x=f+a+c:D=t-f+g;let S=l.tblpY??0,L=S+m;o.push({leftMargin:x,rightMargin:D,topY:S-h,bottomY:L+b,anchorBlockIndex:r});}return o}function Pr(e,t,o,r){switch(e.kind){case "paragraph":{let d=e;if(!o||o.length===0){let l=getCachedParagraphMeasure(d,t);if(l)return l}let s=measureParagraph(d,t,{floatingZones:o,paragraphYOffset:r??0});return (!o||o.length===0)&&setCachedParagraphMeasure(d,t,s),s}case "table":return kr(e,t);case "image":{let d=e;return {kind:"image",width:d.width??100,height:d.height??100}}case "pageBreak":return {kind:"pageBreak"};case "columnBreak":return {kind:"columnBreak"};case "sectionBreak":return {kind:"sectionBreak"};default:return {kind:"paragraph",lines:[],totalHeight:0}}}function Dr(e,t){let o=da(e,t),r=o.filter(c=>c.isMarginRelative),d=o.filter(c=>!c.isMarginRelative),s=new Map;for(let c of r){let h=s.get(c.topY)??[];h.push(c),s.set(c.topY,h);}let l=[...d];for(let c of s.values()){let h=Math.min(...c.map(b=>b.anchorBlockIndex));for(let b of c)l.push({...b,anchorBlockIndex:h});}let u=new Map;for(let c of l){let h=u.get(c.anchorBlockIndex)??[];h.push({leftMargin:c.leftMargin,rightMargin:c.rightMargin,topY:c.topY,bottomY:c.bottomY}),u.set(c.anchorBlockIndex,h);}let a=new Set(l.map(c=>c.anchorBlockIndex)),m=0,g=[];return e.map((c,h)=>{a.has(h)&&(m=0,g=u.get(h)??[]);let b=g.length>0?g:void 0;try{let x=performance.now(),D=Pr(c,t,b,m),f=performance.now()-x;return f>500&&console.warn(`[measureBlocks] Block ${h} (${c.kind}) took ${Math.round(f)}ms`),"totalHeight"in D&&(c.kind==="table"&&c.floating||(m+=D.totalHeight)),D}catch(x){return console.error(`[measureBlocks] Error measuring block ${h} (${c.kind}):`,x),{totalHeight:20}}})}function In(e){let t=[];for(let o of e){let r=o;if(r.type==="run"&&Array.isArray(r.content)){let d=r.formatting,s={};if(d){if(d.bold&&(s.bold=true),d.italic&&(s.italic=true),d.underline&&(s.underline=true),d.strike&&(s.strike=true),d.color){let l=d.color;l.val?s.color=`#${l.val}`:l.rgb&&(s.color=`#${l.rgb}`);}if(d.fontSize&&(s.fontSize=d.fontSize/2),d.fontFamily){let l=d.fontFamily;s.fontFamily=l.ascii||l.hAnsi;}}for(let l of r.content){let u=l;if(u.type==="text"&&typeof u.text=="string")t.push({kind:"text",text:u.text,...s});else if(u.type==="tab")t.push({kind:"tab",...s});else if(u.type==="break")t.push({kind:"lineBreak"});else if(u.type==="drawing"&&u.image){let a=u.image,m=a.size,g=x=>Math.round(x/914400*96),c=m?.width?g(m.width):100,h=m?.height?g(m.height):100,b=a.position;t.push({kind:"image",src:a.src||"",width:c,height:h,alt:a.alt||void 0,position:b?{horizontal:b.horizontal,vertical:b.vertical}:void 0});}}}if(r.type==="simpleField"){let d=r.fieldType,s={};if(Array.isArray(r.content)&&r.content.length>0){let l=r.content[0];if(l?.type==="run"&&l.formatting){let u=l.formatting;if(u.fontSize&&(s.fontSize=u.fontSize/2),u.fontFamily){let a=u.fontFamily;s.fontFamily=a.ascii||a.hAnsi;}if(u.bold&&(s.bold=true),u.italic&&(s.italic=true),u.color){let a=u.color,m=a.rgb||a.val;m&&(s.color=m.startsWith("#")?m:`#${m}`);}}}if(d==="PAGE")t.push({kind:"field",fieldType:"PAGE",fallback:"1",...s});else if(d==="NUMPAGES")t.push({kind:"field",fieldType:"NUMPAGES",fallback:"1",...s});else if(Array.isArray(r.content)){let l=In(r.content);t.push(...l);}continue}if(r.type==="complexField"){let d=r.fieldType,s={};if(Array.isArray(r.fieldResult)&&r.fieldResult.length>0){let l=r.fieldResult[0];if(l?.type==="run"&&l.formatting){let u=l.formatting;if(u.fontSize&&(s.fontSize=u.fontSize/2),u.fontFamily){let a=u.fontFamily;s.fontFamily=a.ascii||a.hAnsi;}if(u.bold&&(s.bold=true),u.italic&&(s.italic=true),u.color){let a=u.color,m=a.rgb||a.val;m&&(s.color=m.startsWith("#")?m:`#${m}`);}}}if(d==="PAGE")t.push({kind:"field",fieldType:"PAGE",fallback:"1",...s});else if(d==="NUMPAGES")t.push({kind:"field",fieldType:"NUMPAGES",fallback:"1",...s});else if(Array.isArray(r.fieldResult)){let l=In(r.fieldResult);t.push(...l);}}if(r.type==="hyperlink"&&Array.isArray(r.children)){let d=In(r.children);t.push(...d);}}return t}function Cr(e,t){if(!e||!e.content||e.content.length===0)return;let o=[];for(let l of e.content){let u=l;if(u.type==="paragraph"&&Array.isArray(u.content)){let a=u.formatting,m={};if(a&&a.alignment){let c=a.alignment;c==="both"?m.alignment="justify":["left","center","right","justify"].includes(c)&&(m.alignment=c);}let g=In(u.content);if(g.length>0){let c={kind:"paragraph",id:String(o.length),runs:g,attrs:Object.keys(m).length>0?m:void 0};o.push(c);}}}if(o.length===0)return;let r=o.map(l=>{if(l.kind!=="paragraph")return l;let u=l;if(!u.runs.some(g=>g.kind==="image"&&"position"in g&&g.position))return l;let m=u.runs.filter(g=>!(g.kind==="image"&&"position"in g&&g.position));return m.length===0&&m.push({kind:"text",text:""}),{...u,runs:m}}),d=Dr(r,t),s=d.reduce((l,u)=>u.kind==="paragraph"?l+u.totalHeight:l,0);return {blocks:o,measures:d,height:s}}function pa(e,t,o){let r=new Map;if(!o?.package?.footnotes)return r;let d=new Map;for(let s of o.package.footnotes)s.noteType&&s.noteType!=="normal"||d.set(s.id,s);for(let[s,l]of e){let u=[];for(let a of l){let m=d.get(a);if(!m)continue;let c=t.get(a)?.displayNumber??0,h=getFootnoteText(m);u.push({displayNumber:String(c),text:h});}u.length>0&&r.set(s,u);}return r}var fa=forwardRef(function(t,o){let{document:r,styles:d,theme:s,sectionProperties:l,headerContent:u,footerContent:a,readOnly:m=false,pageGap:g=ta,zoom:c=1,onDocumentChange:h,onSelectionChange:b,externalPlugins:x=na,extensionManager:D,onReady:f,onRenderedDomContextReady:S,pluginOverlays:L,onHeaderFooterDoubleClick:_,hfEditMode:V,onBodyClick:C,className:J,style:j}=t,I=useRef(null),A=useRef(null),v=useRef(null),he=useRef(null),{handlePMKeyDown:se}=yr({pagesContainerRef:A}),Y=useRef(b),ne=useRef(h),y=useRef(f),R=useRef(S);Y.current=b,ne.current=h,y.current=f,R.current=S;let[W,ae]=useState(null),[ie,Ce]=useState([]),[de,K]=useState([]),[Se,Te]=useState(false),[Ye,we]=useState([]),[je,Me]=useState(null),[Be,Fe]=useState(null),He=useRef(false),pe=useCallback((p,B)=>{let T=p.tagName==="IMG"?p:p.querySelector("img"),w=(T??p).getBoundingClientRect();return {element:T??p,pmPos:B,width:Math.round(w.width/c),height:Math.round(w.height/c)}},[c]),Ne=useRef(false),rt=useRef(null),it=useRef(false),Ve=useRef(0),Ze=useRef(0),$e=useRef(0),$=useRef({left:0,right:0}),ft=useRef(null),Ee=useRef(false),Oe=useRef(0),vt=useRef(0),We=useRef(0),St=useRef(0),st=useRef(null),fn=useRef(false),Wt=useRef(false),mt=useRef(0),Qt=useRef(0),Lt=useRef(0),xt=useRef(0),Ie=useRef(null),wt=useRef(false),te=useRef(null),fe=useRef(null),at=useRef(null),Nn=5,be=useMemo(()=>new Tn,[]),xe=useMemo(()=>aa(l),[l]),ke=useMemo(()=>la(l),[l]),lt=xe.w-ke.left-ke.right,Ft=useMemo(()=>new LayoutPainter({pageGap:g,showShadow:true,pageBackground:"#fff"}),[g]);he.current=Ft;let Ue=useCallback(p=>{let B=performance.now(),T=be.getStateSeq();be.onLayoutStart();try{let w=performance.now(),F=xe.h-ke.top-ke.bottom,k=toFlowBlocks(p.doc,{theme:s,pageContentHeight:F}),P=performance.now()-w;P>500&&console.warn(`[PagedEditor] toFlowBlocks took ${Math.round(P)}ms (${k.length} blocks)`),Ce(k),w=performance.now();let M=Dr(k,lt);P=performance.now()-w,P>1e3&&console.warn(`[PagedEditor] measureBlocks took ${Math.round(P)}ms (${k.length} blocks)`),K(M);let O=collectFootnoteRefs(k),X=O.length>0&&r?.package?.footnotes,q=Cr(u,lt),Q=Cr(a,lt),le=ke.header??48,oe=ke.footer??48,ge=ke.top-le,ye=ke.bottom-oe,Pe=q?.height??0,De=Q?.height??0,qe=ke;(Pe>ge||De>ye)&&(qe={...ke},Pe>ge&&(qe.top=le+Pe),De>ye&&(qe.bottom=oe+De)),w=performance.now();let i,n=new Map,E=new Map;if(X){let H=layoutDocument(k,M,{pageSize:xe,margins:qe});n=mapFootnotesToPages(H.pages,O),E=buildFootnoteContentMap(r.package.footnotes,O,lt);let z=calculateFootnoteReservedHeights(n,E);if(z.size>0){i=layoutDocument(k,M,{pageSize:xe,margins:qe,footnoteReservedHeights:z}),n=mapFootnotesToPages(i.pages,O);for(let[N,G]of n){let re=i.pages.find(Re=>Re.number===N);re&&(re.footnoteIds=G);}}else i=H;}else i=layoutDocument(k,M,{pageSize:xe,margins:qe});if(P=performance.now()-w,P>500&&console.warn(`[PagedEditor] layoutDocument took ${Math.round(P)}ms (${i.pages.length} pages)`),ae(i),A.current&&he.current){w=performance.now();let H=new Map;for(let N=0;N<k.length;N++){let G=k[N],re=M[N];G&&re&&H.set(String(G.id),{block:G,measure:re});}he.current.setBlockLookup(H);let z=X?pa(n,E,r):void 0;if(renderPages(i.pages,A.current,{pageGap:g,showShadow:!0,pageBackground:"#fff",blockLookup:H,headerContent:q,footerContent:Q,headerDistance:l?.headerDistance?pt(l.headerDistance):void 0,footerDistance:l?.footerDistance?pt(l.footerDistance):void 0,pageBorders:l?.pageBorders,theme:s,footnotesByPage:z?.size?z:void 0}),P=performance.now()-w,P>500&&console.warn(`[PagedEditor] renderPages took ${Math.round(P)}ms`),S){let N=vr(A.current,c);S(N);}}let U=performance.now()-B;U>2e3&&console.warn(`[PagedEditor] Layout pipeline took ${Math.round(U)}ms total (${k.length} blocks, ${M.length} measures)`);}catch(w){console.error("[PagedEditor] Layout pipeline error:",w);}be.onLayoutComplete(T);},[lt,xe,ke,g,c,be,u,a,l,S,r]),ct=useRef(null),mn=useCallback(p=>{if(ct.current){ct.current.state=p;return}let B=requestAnimationFrame(()=>{let T=ct.current;ct.current=null,T&&Ue(T.state);});ct.current={rafId:B,state:p};},[Ue]);useEffect(()=>()=>{ct.current&&(cancelAnimationFrame(ct.current.rafId),ct.current=null);},[]);let gn=useCallback((p,B=1)=>{if(!A.current)return null;let T=A.current.parentElement?.querySelector('[data-testid="selection-overlay"]');if(!T)return null;let w=T.getBoundingClientRect(),F=A.current.querySelectorAll("span[data-pm-start][data-pm-end]");for(let P of Array.from(F)){let M=P,O=Number(M.dataset.pmStart),X=Number(M.dataset.pmEnd);if(M.classList.contains("layout-run-tab")){if(p>=O&&p<X){let q=M.getBoundingClientRect(),Q=M.closest(".layout-page"),le=Q?Number(Q.dataset.pageNumber)-1:0,oe=M.closest(".layout-line"),ge=oe?oe.offsetHeight:16;return {x:(q.left-w.left)/B,y:(q.top-w.top)/B,height:ge,pageIndex:le}}continue}if(p>=O&&p<=X&&P.firstChild?.nodeType===Node.TEXT_NODE){let q=P.firstChild,Q=Math.min(p-O,q.length),le=M.ownerDocument;if(!le)continue;let oe=le.createRange();oe.setStart(q,Q),oe.setEnd(q,Q);let ge=oe.getBoundingClientRect(),ye=M.closest(".layout-page"),Pe=ye?Number(ye.dataset.pageNumber)-1:0,De=M.closest(".layout-line"),qe=De?De.offsetHeight:16;return {x:(ge.left-w.left)/B,y:(ge.top-w.top)/B,height:qe,pageIndex:Pe}}}let k=A.current.querySelectorAll(".layout-empty-run");for(let P of Array.from(k)){let M=P.closest(".layout-paragraph");if(!M)continue;let O=Number(M.dataset.pmStart),X=Number(M.dataset.pmEnd);if(p>=O&&p<=X){let q=P.getBoundingClientRect(),Q=M.closest(".layout-page"),le=Q?Number(Q.dataset.pageNumber)-1:0,oe=P.closest(".layout-line"),ge=oe?oe.offsetHeight:16;return {x:(q.left-w.left)/B,y:(q.top-w.top)/B,height:ge,pageIndex:le}}}return null},[]),Ke=useCallback(p=>{let{from:B,to:T}=p.selection;if(Y.current?.(B,T),A.current){let w=A.current.querySelectorAll(".layout-table-cell-selected");for(let P of Array.from(w))P.classList.remove("layout-table-cell-selected");let F=p.selection;if("$anchorCell"in F&&typeof F.forEachCell=="function"){let P=[];F.forEachCell((O,X)=>{P.push([X,X+O.nodeSize]);});let M=A.current.querySelectorAll(".layout-table-cell");for(let O of Array.from(M)){let X=O,q=X.dataset.pmStart;if(q!==void 0){let Q=Number(q);for(let[le,oe]of P)if(Q>=le&&Q<oe){X.classList.add("layout-table-cell-selected");break}}}}}if(!(!W||ie.length===0))if(B===T){let w=gn(B,c);if(w)Me(w);else {let F=A.current?.parentElement?.querySelector('[data-testid="selection-overlay"]'),k=A.current?.querySelector(".layout-page");if(F&&k){let P=F.getBoundingClientRect(),M=k.getBoundingClientRect(),O=getCaretPosition(W,ie,de,B);Me(O?{...O,x:O.x+(M.left-P.left)/c,y:O.y+(M.top-P.top)/c}:null);}else Me(null);}we([]);}else {let w=A.current?.parentElement?.querySelector('[data-testid="selection-overlay"]');if(w&&A.current){let F=w.getBoundingClientRect(),k=[],P=A.current.querySelectorAll("span[data-pm-start][data-pm-end]");for(let M of Array.from(P)){let O=M,X=Number(O.dataset.pmStart);if(Number(O.dataset.pmEnd)>B&&X<T){if(O.classList.contains("layout-run-tab")){let ye=O.getBoundingClientRect(),Pe=O.closest(".layout-page"),De=Pe?Number(Pe.dataset.pageNumber)-1:0;k.push({x:(ye.left-F.left)/c,y:(ye.top-F.top)/c,width:ye.width/c,height:ye.height/c,pageIndex:De});continue}if(M.firstChild?.nodeType!==Node.TEXT_NODE)continue;let Q=M.firstChild,le=O.ownerDocument;if(!le)continue;let oe=Math.max(0,B-X),ge=Math.min(Q.length,T-X);if(oe<ge){let ye=le.createRange();ye.setStart(Q,oe),ye.setEnd(Q,ge);let Pe=ye.getClientRects();for(let De of Array.from(Pe)){let qe=O.closest(".layout-page"),i=qe?Number(qe.dataset.pageNumber)-1:0;k.push({x:(De.left-F.left)/c,y:(De.top-F.top)/c,width:De.width/c,height:De.height/c,pageIndex:i});}}}}if(k.length>0)we(k);else {let M=A.current.querySelector(".layout-page");if(M){let O=M.getBoundingClientRect(),X=(O.left-F.left)/c,q=(O.top-F.top)/c,le=selectionToRects(W,ie,de,B,T).map(oe=>({...oe,x:oe.x+X,y:oe.y+q}));we(le);}else we([]);}}else we([]);Me(null);}},[W,ie,de,gn,c]),zn=useCallback((p,B)=>{if(p.docChanged){be.incrementStateSeq(),mn(B);let T=v.current?.getDocument();T&&ne.current?.(T);}be.requestRender(),p.docChanged||Ke(B);},[mn,Ke,be]),On=useCallback(p=>{let{selection:B}=p;B instanceof NodeSelection&&B.node.type.name==="image"?(we([]),Me(null)):be.isSafeToRender()&&Ke(p),requestAnimationFrame(()=>{let T=v.current?.getView();if(!T){Fe(null);return}let{selection:w}=T.state;if(w instanceof NodeSelection&&w.node.type.name==="image"){let F=w.from,k=A.current?.querySelector(`[data-pm-start="${F}"]`);if(k){Fe(pe(k,F));return}}He.current||Fe(null);});},[Ke,c,pe,be]),Je=useCallback((p,B)=>{if(!A.current||!W)return null;let T=clickToPositionDom(A.current,p,B,c);if(T!==null)return T;let w=A.current.querySelectorAll(".layout-page"),F=-1,k=null;for(let Q=0;Q<w.length;Q++){let oe=w[Q].getBoundingClientRect();if(p>=oe.left&&p<=oe.right&&B>=oe.top&&B<=oe.bottom){F=Q,k=oe;break}}if(F<0||!k)return null;let P=(p-k.left)/c,M=(B-k.top)/c,O=W.pages[F];if(!O)return null;let X={pageIndex:F,page:O,pageY:M},q=hitTestFragment(X,ie,de,{x:P,y:M});if(!q)return null;if(q.fragment.kind==="table"){let Q=hitTestTableCell(X,ie,de,{x:P,y:M});return clickToPosition(q,Q)}return clickToPosition(q)},[W,ie,de,c]),Rt=useCallback(p=>{let B=v.current?.getView();if(!B)return null;try{let T=B.state.doc.resolve(p);for(let w=T.depth;w>0;w--){let F=T.node(w);if(F.type.name==="tableCell"||F.type.name==="tableHeader")return T.before(w)}}catch{}return null},[]),_n=useCallback(p=>{let B=["layout-block-image","layout-image","layout-page-floating-image"],T=w=>!!w.dataset.pmStart&&B.some(F=>w.classList.contains(F));return p.tagName==="IMG"&&p.classList.contains("layout-run-image")?p:p.tagName==="IMG"&&p.parentElement&&T(p.parentElement)?p.parentElement:T(p)?p:null},[]),Ut=useCallback(p=>{let B=A.current;if(!B)return;let T=B.querySelector(`[data-pm-start="${p}"]`);T&&T.scrollIntoView({behavior:"smooth",block:"center"});},[]),Vn=useCallback(p=>{if(!v.current||p.button!==0)return;if(p.target.closest('a[href^="#"]')){p.preventDefault(),p.stopPropagation();return}if(m)return;if(V&&C){let k=p.target;if(!(k.closest(".layout-page-header")||k.closest(".layout-page-footer")||k.closest(".hf-inline-editor"))){p.preventDefault(),p.stopPropagation(),C();return}}if(!V){let k=p.target;if(k.closest(".layout-page-header")||k.closest(".layout-page-footer")){p.preventDefault(),v.current&&(v.current.setSelection(0),v.current.focus(),Te(true));return}}let T=p.target;if(T.classList.contains("layout-table-resize-handle")){p.preventDefault(),p.stopPropagation(),it.current=true,Ve.current=p.clientX,ft.current=T,T.classList.add("dragging");let k=parseInt(T.dataset.columnIndex??"0",10);Ze.current=k,$e.current=parseInt(T.dataset.tablePmStart??"0",10);let P=v.current.getView();if(P){let M=P.state.doc.resolve($e.current+1);for(let O=M.depth;O>=0;O--){let X=M.node(O);if(X.type.name==="table"){let q=X.attrs.columnWidths;q&&q[k]!==void 0&&q[k+1]!==void 0&&($.current={left:q[k],right:q[k+1]});break}}}return}if(T.classList.contains("layout-table-row-resize-handle")||T.classList.contains("layout-table-edge-handle-bottom")){p.preventDefault(),p.stopPropagation(),Ee.current=true,Oe.current=p.clientY,st.current=T,fn.current=T.dataset.isEdge==="bottom",T.classList.add("dragging");let k=parseInt(T.dataset.rowIndex??"0",10);vt.current=k,We.current=parseInt(T.dataset.tablePmStart??"0",10);let P=v.current.getView();if(P){let M=P.state.doc.resolve(We.current+1);for(let O=M.depth;O>=0;O--){let X=M.node(O);if(X.type.name==="table"){let q=null,Q=0;if(X.forEach(le=>{Q===k&&(q=le),Q++;}),q){let le=q.attrs.height;if(le)St.current=le;else {let ge=T.closest(".layout-table")?.querySelector(`[data-row-index="${k}"]`),ye=ge?ge.getBoundingClientRect().height:30;St.current=Math.round(ye*15);}}break}}}return}if(T.classList.contains("layout-table-edge-handle-right")){p.preventDefault(),p.stopPropagation(),Wt.current=true,mt.current=p.clientX,Ie.current=T,T.classList.add("dragging");let k=parseInt(T.dataset.columnIndex??"0",10);Qt.current=k,Lt.current=parseInt(T.dataset.tablePmStart??"0",10);let P=v.current.getView();if(P){let M=P.state.doc.resolve(Lt.current+1);for(let O=M.depth;O>=0;O--){let X=M.node(O);if(X.type.name==="table"){let q=X.attrs.columnWidths;q&&q[k]!==void 0&&(xt.current=q[k]);break}}}return}let w=_n(T);if(w){p.preventDefault(),p.stopPropagation();let k=w.dataset.pmStart;if(k!==void 0){let P=parseInt(k,10);v.current.setNodeSelection(P),Fe(pe(w,P)),we([]),Me(null);}v.current.focus(),Te(true);return}Fe(null),p.preventDefault();let F=Je(p.clientX,p.clientY);if(F!==null){let k=Rt(F);te.current=k,wt.current=false,fe.current=null,at.current=null,Ne.current=true,rt.current=F,v.current.setSelection(F);}else {te.current=null,wt.current=false;let k=v.current.getView();if(k){let P=Math.max(0,k.state.doc.content.size-1);v.current.setSelection(P),rt.current=P,Ne.current=true;}}v.current.focus(),Te(true);},[Je,Rt,m,V,C,c]),en=useCallback(p=>{if(it.current){p.preventDefault();let w=p.clientX-Ve.current;if(ft.current){let F=parseFloat(ft.current.style.left);ft.current.style.left=`${F+w}px`,Ve.current=p.clientX;let k=Math.round(w*15),P=300,M=$.current.left+k,O=$.current.right-k;M>=P&&O>=P&&($.current={left:M,right:O});}return}if(Ee.current){p.preventDefault();let w=p.clientY-Oe.current;if(st.current){let F=parseFloat(st.current.style.top);st.current.style.top=`${F+w}px`,Oe.current=p.clientY;let k=Math.round(w*15),P=200,M=St.current+k;M>=P&&(St.current=M);}return}if(Wt.current){p.preventDefault();let w=p.clientX-mt.current;if(Ie.current){let F=parseFloat(Ie.current.style.left);Ie.current.style.left=`${F+w}px`,mt.current=p.clientX;let k=Math.round(w*15),P=300,M=xt.current+k;M>=P&&(xt.current=M);}return}if(!Ne.current||rt.current===null||!v.current||!A.current)return;let B=Je(p.clientX,p.clientY);if(B===null)return;if(te.current!==null){if(wt.current){let F=Rt(B);if(F!==null){v.current.setCellSelection(te.current,F);return}}let w=Rt(B);if(w!==null&&w!==te.current){wt.current=true,v.current.setCellSelection(te.current,w),at.current=null;return}if(fe.current!==null&&B===fe.current){if(at.current===null)at.current=p.clientX;else if(Math.abs(p.clientX-at.current)>=Nn){wt.current=true,v.current.setCellSelection(te.current,te.current),at.current=null;return}}else at.current=null,fe.current=B;}let T=rt.current;v.current.setSelection(T,B);},[Je,Rt]),tn=useCallback(()=>{if(it.current){it.current=false,ft.current&&(ft.current.classList.remove("dragging"),ft.current=null);let p=v.current?.getView();if(p){let B=$e.current,T=Ze.current,{left:w,right:F}=$.current,k=p.state.doc.resolve(B+1);for(let P=k.depth;P>=0;P--){let M=k.node(P);if(M.type.name==="table"){let O=k.before(P),X=p.state.tr,q=[...M.attrs.columnWidths];q[T]=w,q[T+1]=F,X.setNodeMarkup(O,void 0,{...M.attrs,columnWidths:q});let Q=O+1;M.forEach(le=>{let oe=Q+1,ge=0;le.forEach(ye=>{let Pe=ye.attrs.colspan||1;if(ge===T||ge===T+1){let De=ge===T?w:F;X.setNodeMarkup(X.mapping.map(oe),void 0,{...ye.attrs,width:De,widthType:"dxa",colwidth:null});}oe+=ye.nodeSize,ge+=Pe;}),Q+=le.nodeSize;}),p.dispatch(X);break}}}return}if(Ee.current){Ee.current=false,st.current&&(st.current.classList.remove("dragging"),st.current=null);let p=v.current?.getView();if(p){let B=We.current,T=vt.current,w=St.current,F=p.state.doc.resolve(B+1);for(let k=F.depth;k>=0;k--){let P=F.node(k);if(P.type.name==="table"){let M=F.before(k),O=p.state.tr,X=M+1,q=0;P.forEach(Q=>{q===T&&O.setNodeMarkup(O.mapping.map(X),void 0,{...Q.attrs,height:w,heightRule:"atLeast"}),X+=Q.nodeSize,q++;}),p.dispatch(O);break}}}return}if(Wt.current){Wt.current=false,Ie.current&&(Ie.current.classList.remove("dragging"),Ie.current=null);let p=v.current?.getView();if(p){let B=Lt.current,T=Qt.current,w=xt.current,F=p.state.doc.resolve(B+1);for(let k=F.depth;k>=0;k--){let P=F.node(k);if(P.type.name==="table"){let M=F.before(k),O=p.state.tr,X=[...P.attrs.columnWidths];X[T]=w,O.setNodeMarkup(M,void 0,{...P.attrs,columnWidths:X});let q=M+1;P.forEach(Q=>{let le=q+1,oe=0;Q.forEach(ge=>{let ye=ge.attrs.colspan||1;oe===T&&O.setNodeMarkup(O.mapping.map(le),void 0,{...ge.attrs,width:w,widthType:"dxa",colwidth:null}),le+=ge.nodeSize,oe+=ye;}),q+=Q.nodeSize;}),p.dispatch(O);break}}}return}Ne.current=false,wt.current=false,fe.current=null,at.current=null;},[]);useEffect(()=>(window.addEventListener("mousemove",en),window.addEventListener("mouseup",tn),()=>{window.removeEventListener("mousemove",en),window.removeEventListener("mouseup",tn);}),[en,tn]);let $n=useCallback(p=>{let B=p.target.closest('a[href^="#"]');if(B){p.preventDefault(),p.stopPropagation();let T=B.getAttribute("href")?.substring(1);if(T&&v.current){let w=v.current.getView();if(w){let F=null;w.state.doc.descendants((k,P)=>{if(F!==null)return false;if(k.type.name==="paragraph"&&k.attrs.bookmarks?.some(O=>O.name===T))return F=P,false}),F!==null&&(Ut(F),v.current.setSelection(F+1));}}return}if(p.detail===2&&_){let T=p.target,w=T.closest(".layout-page-header"),F=T.closest(".layout-page-footer");if(w){p.preventDefault(),p.stopPropagation(),_("header");return}if(F){p.preventDefault(),p.stopPropagation(),_("footer");return}}if(p.detail===2&&v.current){let T=Je(p.clientX,p.clientY);if(T!==null){let w=Rt(T);if(w!==null){p.preventDefault(),p.stopPropagation(),v.current.setCellSelection(w,w);return}let F=v.current.getView();if(F){let{doc:k}=F.state,P=k.resolve(T),M=P.parent;if(M.isTextblock){let O=M.textContent,X=P.parentOffset,q=X;for(;q>0&&/\w/.test(O[q-1]);)q--;let Q=X;for(;Q<O.length&&/\w/.test(O[Q]);)Q++;let le=P.start()+q,oe=P.start()+Q;le<oe&&v.current.setSelection(le,oe);}}}}if(p.detail===3&&v.current){let T=Je(p.clientX,p.clientY);if(T!==null){let w=v.current.getView();if(w){let{doc:F}=w.state,k=F.resolve(T),P=k.start(k.depth),M=k.end(k.depth);v.current.setSelection(P,M);}}}},[Je,_]),Wn=useCallback(()=>{m||(v.current?.focus(),Te(true));},[m]),Un=useCallback(p=>{let B=p.relatedTarget;B&&I.current?.contains(B)||Te(false);},[]),Kn=useCallback((p,B,T)=>{let w=v.current?.getView();if(w)try{let F=w.state.doc.nodeAt(p);if(!F||F.type.name!=="image")return;let k=w.state.tr.setNodeMarkup(p,void 0,{...F.attrs,width:B,height:T});w.dispatch(k),v.current?.setNodeSelection(p);}catch{}},[]),ut=useCallback(()=>{He.current=true;},[]),qn=useCallback(()=>{He.current=false;},[]),Gn=useCallback((p,B,T)=>{let w=v.current?.getView();if(w)try{let F=w.state.doc.nodeAt(p);if(!F||F.type.name!=="image")return;if(F.attrs.displayMode==="float"||F.attrs.wrapType&&["square","tight","through"].includes(F.attrs.wrapType)){let P=A.current?.querySelectorAll(".layout-page");if(!P||P.length===0)return;let M=null;for(let Pe of P){let De=Pe.getBoundingClientRect();if(T>=De.top&&T<=De.bottom){M=Pe.querySelector(".layout-page-content");break}}if(M||(M=P[P.length-1].querySelector(".layout-page-content")),!M)return;let O=M.getBoundingClientRect(),X=(B-O.left)/c,q=(T-O.top)/c,Q=914400/96,le=Math.round(X*Q),oe=Math.round(q*Q),ge={horizontal:{posOffset:le,relativeTo:"margin"},vertical:{posOffset:oe,relativeTo:"margin"}},ye=w.state.tr.setNodeMarkup(p,void 0,{...F.attrs,position:ge});w.dispatch(ye),v.current?.setNodeSelection(p);}else {let P=Je(B,T);if(P===null||P===p||P===p+1)return;let M=w.state.tr;if(P<=p)M=M.delete(p,p+F.nodeSize),M=M.insert(P,F),v.current?.setNodeSelection(P);else {M=M.delete(p,p+F.nodeSize);let O=P-F.nodeSize;M=M.insert(Math.min(O,M.doc.content.size),F),v.current?.setNodeSelection(Math.min(O,M.doc.content.size-1));}w.dispatch(M);}}catch{}},[Je,c]),Xn=useCallback(()=>{He.current=true;},[]),Zn=useCallback(()=>{He.current=false;},[]),Yn=useCallback(p=>{if(!m){if(v.current?.isFocused()||(v.current?.focus(),Te(true)),p.key===" "&&!p.ctrlKey&&!p.metaKey){p.preventDefault();let B=v.current?.getView();if(B){let{state:T,dispatch:w}=B;w(T.tr.insertText(" "));}return}["PageUp","PageDown"].includes(p.key)&&!p.metaKey&&p.ctrlKey,p.key==="Home"&&(p.metaKey||p.ctrlKey)&&I.current&&(I.current.scrollTop=0),p.key==="End"&&(p.metaKey||p.ctrlKey)&&I.current&&(I.current.scrollTop=I.current.scrollHeight);}},[m]),jn=useCallback(()=>{m||v.current?.isFocused()||(v.current?.focus(),Te(true));},[m]),Jn=useCallback(p=>{Ue(p.state),Ke(p.state),m||requestAnimationFrame(()=>{p.focus(),Te(true);});},[Ue,Ke,m]);useEffect(()=>{let p=()=>{let B=v.current?.getView();B&&(resetCanvasContext(),clearAllCaches(),Ue(B.state),Ke(B.state));};return window.document.fonts.addEventListener("loadingdone",p),()=>{window.document.fonts.removeEventListener("loadingdone",p);}},[]);let hn=useRef(0);useEffect(()=>{if(hn.current===0){hn.current=1;return}let p=v.current?.getView();p&&Ue(p.state);},[u,a,Ue]),useEffect(()=>{let p=I.current;if(!p)return;let B=new ResizeObserver(()=>{let T=v.current?.getState();T&&Ke(T);});return B.observe(p),()=>B.disconnect()},[Ke]),useImperativeHandle(o,()=>({getDocument(){return v.current?.getDocument()??null},getState(){return v.current?.getState()??null},getView(){return v.current?.getView()??null},focus(){v.current?.focus(),Te(true);},blur(){v.current?.blur(),Te(false);},isFocused(){return v.current?.isFocused()??false},dispatch(p){v.current?.dispatch(p);},undo(){return v.current?.undo()??false},redo(){return v.current?.redo()??false},setSelection(p,B){v.current?.setSelection(p,B);},getLayout(){return W},relayout(){let p=v.current?.getState();p&&Ue(p);},scrollToPosition:Ut}),[W,Ue,Ut]),useEffect(()=>{let p=v.current?.getState();W&&p&&Ke(p);},[W,Ke]),useEffect(()=>{y.current&&v.current&&y.current({getDocument:()=>v.current?.getDocument()??null,getState:()=>v.current?.getState()??null,getView:()=>v.current?.getView()??null,focus:()=>{v.current?.focus(),Te(true);},blur:()=>{v.current?.blur(),Te(false);},isFocused:()=>v.current?.isFocused()??false,dispatch:p=>v.current?.dispatch(p),undo:()=>v.current?.undo()??false,redo:()=>v.current?.redo()??false,setSelection:(p,B)=>v.current?.setSelection(p,B),getLayout:()=>W,relayout:()=>{let p=v.current?.getState();p&&Ue(p);},scrollToPosition:Ut});},[W,Ue]);let Qn=useMemo(()=>{if(!W)return Tr+48;let p=W.pages.length;return p*xe.h+(p-1)*g+48},[W,xe.h,g]);return jsxs("div",{ref:I,className:`ep-root paged-editor ${J??""}`,style:{...oa,...j},tabIndex:0,onFocus:Wn,onBlur:Un,onKeyDown:Yn,onMouseDown:jn,children:[jsx(lr,{ref:v,document:r,styles:d,widthPx:lt,readOnly:m,onTransaction:zn,onSelectionChange:On,externalPlugins:x,extensionManager:D,onEditorViewReady:Jn,onKeyDown:se}),jsxs("div",{style:{...ra,minHeight:Qn,transform:c!==1?`scale(${c})`:void 0,transformOrigin:"top center"},children:[jsx("div",{ref:A,className:`paged-editor__pages${V?` paged-editor--hf-editing paged-editor--editing-${V}`:""}`,style:ia,onMouseDown:Vn,onClick:$n,"aria-hidden":"true"}),jsx(ur,{selectionRects:Ye,caretPosition:je,isFocused:Se,pageGap:g,readOnly:m}),jsx(gr,{imageInfo:Be,zoom:c,isFocused:Se,onResize:Kn,onResizeStart:ut,onResizeEnd:qn,onDragMove:Gn,onDragStart:Xn,onDragEnd:Zn}),L&&jsx("div",{className:"paged-editor__plugin-overlays",style:sa,children:L})]})]})}),Ir=memo(fa);var ba=lazy(()=>import('./FindReplaceDialog-MMDEJORP.js')),ya=lazy(()=>import('./HyperlinkDialog-SCSX4RP7.js')),va=lazy(()=>import('./TablePropertiesDialog-ZHAYVHPZ.js').then(e=>({default:e.TablePropertiesDialog}))),Sa=lazy(()=>import('./ImagePositionDialog-CJYJ35PI.js').then(e=>({default:e.ImagePositionDialog}))),xa=lazy(()=>import('./ImagePropertiesDialog-P7WN2ALR.js').then(e=>({default:e.ImagePropertiesDialog}))),wa=lazy(()=>import('./FootnotePropertiesDialog-HG4267LR.js').then(e=>({default:e.FootnotePropertiesDialog}))),$r=forwardRef(function({documentBuffer:t$1,document:o,onSave:r,onChange:d$1,onSelectionChange:s,onError:l$1,onFontsLoaded:u,theme:a,showToolbar:m$2=true,showZoomControl:g=true,showPageNumbers:c=true,enablePageNavigation:h=true,pageNumberPosition:b="bottom-center",pageNumberVariant:x$1="default",showMarginGuides:D=false,marginGuideColor:f,showRuler:S=false,rulerUnit:L="inch",initialZoom:_=1,readOnly:V=false,toolbarExtra:C,className:J="",style:j$1,placeholder:I,loadingIndicator:A,showOutline:v=false,showPrintButton:he=true,printOptions:se,onPrint:Y,onCopy:ne,onCut:y$1,onPaste:R,externalPlugins:W,onEditorViewReady:ae,onRenderedDomContextReady:ie,pluginOverlays:Ce},de){let[K,Se]=useState({isLoading:!!t$1,parseError:null,zoom:_,selectionFormatting:{},currentPage:1,totalPages:1,paragraphIndentLeft:0,paragraphIndentRight:0,paragraphFirstLineIndent:0,paragraphHangingIndent:false,paragraphTabs:null,pmTableContext:null,pmImageContext:null}),[Te,Ye]=useState(false),[we,je]=useState(false),[Me,Be]=useState(false),[Fe,He]=useState(false),[pe,Ne]=useState(null),[rt,it]=useState(v),Ve=useRef(false);Ve.current=rt;let[Ze,$e]=useState([]);useEffect(()=>{if(it(v),v){let i=Ee.current?.getView();i&&$e(collectHeadings(i.state.doc));}},[v]);let $=or(o||null,{maxEntries:100,groupingInterval:500,enableKeyboardShortcuts:true}),ft=useMemo(()=>{let i=new ExtensionManager(createStarterKit());return i.buildSchema(),i.initializeRuntime(),i},[]),Ee=useRef(null),Oe=useRef(null),vt=useRef(null),We=useRef(null),St=useRef(null),st=useRef(null),fn=useRef(null),Wt=useRef(null),mt=useRef(null),[Qt,Lt]=useState(0),xt=useRef($.state);xt.current=$.state;let Ie=useRef({style:"single",size:4,color:{rgb:"000000"}}),wt=useCallback(i=>{if(Wt.current=i,mt.current&&(mt.current.disconnect(),mt.current=null),!i){Lt(0);return}Lt(i.offsetHeight);let n=new ResizeObserver(()=>{Lt(i.offsetHeight);});n.observe(i),mt.current=n;},[]);useEffect(()=>()=>{mt.current?.disconnect();},[]);let te=useCallback(()=>pe&&Oe.current?Oe.current.getView():Ee.current?.getView(),[pe]),fe=useCallback(()=>{pe&&Oe.current?Oe.current.focus():Ee.current?.focus();},[pe]),at=useCallback(()=>{pe&&Oe.current?Oe.current.undo():Ee.current?.undo();},[pe]),Nn=useCallback(()=>{pe&&Oe.current?Oe.current.redo():Ee.current?.redo();},[pe]),be=m(),xe=m$1();useEffect(()=>{if(!t$1){o&&($.reset(o),Se(n=>({...n,isLoading:false})),loadDocumentFonts(o).catch(n=>{console.warn("Failed to load document fonts:",n);}));return}Se(n=>({...n,isLoading:true,parseError:null})),(async()=>{try{let n=await parseDocx(t$1);$.reset(n),Se(E=>({...E,isLoading:!1,parseError:null})),loadDocumentFonts(n).catch(E=>{console.warn("Failed to load document fonts:",E);});}catch(n){let E=n instanceof Error?n.message:"Failed to parse document";Se(U=>({...U,isLoading:false,parseError:E})),l$1?.(n instanceof Error?n:new Error(E));}})();},[t$1,o,l$1]),useEffect(()=>{o&&!t$1&&$.reset(o);},[o,t$1]),useEffect(()=>{$.state?vt.current=new DocumentAgent($.state):vt.current=null;},[$.state]),useEffect(()=>onFontsLoaded(()=>{u?.();}),[u]);let ke=useCallback(i=>{if($.push(i),d$1?.(i),Ve.current){let n=Ee.current?.getView();n&&$e(collectHeadings(n.state.doc));}},[d$1,$]),lt=useCallback(i=>{let n=te();if(n){let{from:_e,to:Ge}=n.state.selection;St.current={from:_e,to:Ge};}let E=null;n&&(E=getTableContext(n.state),E.isInTable||(E=null));let U=null;if(n){let _e=n.state.selection,Ge=_e.node;Ge?.type.name==="image"&&(U={pos:_e.from,wrapType:Ge.attrs.wrapType??"inline",displayMode:Ge.attrs.displayMode??"inline",cssFloat:Ge.attrs.cssFloat??null,transform:Ge.attrs.transform??null,alt:Ge.attrs.alt??null,borderWidth:Ge.attrs.borderWidth??null,borderColor:Ge.attrs.borderColor??null,borderStyle:Ge.attrs.borderStyle??null});}if(!i){Se(_e=>({..._e,selectionFormatting:{},pmTableContext:E,pmImageContext:U}));return}let{textFormatting:H,paragraphFormatting:z}=i,N=H.fontFamily?.ascii||H.fontFamily?.hAnsi,G=H.color?.rgb?`#${H.color.rgb}`:void 0,re=z.numPr,Re=re?{type:re.numId===1?"bullet":"numbered",level:re.ilvl??0,isInList:true,numId:re.numId}:void 0,Le={bold:H.bold,italic:H.italic,underline:!!H.underline,strike:H.strike,superscript:H.vertAlign==="superscript",subscript:H.vertAlign==="subscript",fontFamily:N,fontSize:H.fontSize,color:G,highlight:H.highlight,alignment:z.alignment,lineSpacing:z.lineSpacing,listState:Re,styleId:i.styleId??void 0,indentLeft:z.indentLeft};Se(_e=>({..._e,selectionFormatting:Le,paragraphIndentLeft:z.indentLeft??0,paragraphIndentRight:z.indentRight??0,paragraphFirstLineIndent:z.indentFirstLine??0,paragraphHangingIndent:z.hangingIndent??false,paragraphTabs:z.tabs??null,pmTableContext:E,pmImageContext:U})),s?.(i);},[s]),Ft=Bo({document:$.state,onChange:ke,onSelectionChange:i=>{}});useEffect(()=>{let i=n=>{let U=navigator.platform.toUpperCase().indexOf("MAC")>=0?n.metaKey:n.ctrlKey;if(!U&&!n.shiftKey&&!n.altKey&&(n.key==="Delete"||n.key==="Backspace")){let H=Ee.current?.getView();if(H){let z=H.state.selection;if("$anchorCell"in z&&typeof z.forEachCell=="function"){let G=getTableContext(H.state);if(G.isInTable&&G.table){let re=0;G.table.descendants(Le=>{(Le.type.name==="tableCell"||Le.type.name==="tableHeader")&&(re+=1);});let Re=0;if(z.forEachCell(()=>{Re+=1;}),re>0&&Re>=re){n.preventDefault(),deleteTable(H.state,H.dispatch);return}}}}if(Ft.state.tableIndex!==null){n.preventDefault(),Ft.handleAction("deleteTable");return}}if(U&&!n.shiftKey&&!n.altKey){if(n.key.toLowerCase()==="f"){n.preventDefault();let H=window.getSelection(),z=H&&!H.isCollapsed?H.toString():"";be.openFind(z);}else if(n.key.toLowerCase()==="h"){n.preventDefault();let H=window.getSelection(),z=H&&!H.isCollapsed?H.toString():"";be.openReplace(z);}else if(n.key.toLowerCase()==="k"){n.preventDefault();let H=Ee.current?.getView();if(H){let z=getSelectedText(H.state),N=getHyperlinkAttrs(H.state);N?xe.openEdit({url:N.href,displayText:z,tooltip:N.tooltip}):xe.openInsert(z);}}}};return document.addEventListener("keydown",i),()=>{document.removeEventListener("keydown",i);}},[be,xe,Ft]);let Ue=useCallback((i,n)=>{let E=te();E&&(insertTable(i,n)(E.state,E.dispatch),fe());},[te,fe]),ct=useCallback(()=>{let i=te();i&&(insertPageBreak(i.state,i.dispatch),fe());},[te,fe]),mn=useCallback(()=>{let i=te();i&&(generateTOC(i.state,i.dispatch),fe());},[te,fe]),gn=useCallback(()=>{it(i=>{if(!i){let n=Ee.current?.getView();n&&$e(collectHeadings(n.state.doc));}return !i});},[]),Ke=useCallback(i=>{Ee.current?.scrollToPosition(i),Ee.current?.setSelection(i+1),Ee.current?.focus();},[]),zn=useCallback(()=>{st.current?.click();},[]),On=useCallback(i=>{let n=i.target.files?.[0];if(!n)return;let E=te();if(!E)return;let U=new FileReader;U.onload=()=>{let H=U.result,z=new Image;z.onload=()=>{let N=z.naturalWidth,G=z.naturalHeight,re=612;if(N>re){let ci=re/N;N=re,G=Math.round(G*ci);}let Re=`rId_img_${Date.now()}`,Le=E.state.schema.nodes.image.create({src:H,alt:n.name,width:N,height:G,rId:Re,wrapType:"inline",displayMode:"inline"}),{from:_e}=E.state.selection,Ge=E.state.tr.insert(_e,Le);E.dispatch(Ge.scrollIntoView()),fe();},z.src=H;},U.readAsDataURL(n),i.target.value="";},[te,fe]),Je=useCallback(i=>{let n=te();if(!n||!K.pmImageContext)return;let E=K.pmImageContext.pos,U=n.state.doc.nodeAt(E);if(!U||U.type.name!=="image")return;let H="inline",z=null;switch(i){case "inline":H="inline",z=null;break;case "square":case "tight":case "through":H="float",z="left";break;case "topAndBottom":H="block",z=null;break;case "behind":case "inFront":H="float",z="none";break;case "wrapLeft":H="float",z="right",i="square";break;case "wrapRight":H="float",z="left",i="square";break}let N=n.state.tr.setNodeMarkup(E,void 0,{...U.attrs,wrapType:i,displayMode:H,cssFloat:z});n.dispatch(N.scrollIntoView()),fe();},[te,fe,K.pmImageContext]),Rt=useCallback(i=>{let n=te();if(!n||!K.pmImageContext)return;let E=K.pmImageContext.pos,U=n.state.doc.nodeAt(E);if(!U||U.type.name!=="image")return;let H=U.attrs.transform||"",z=H.match(/rotate\((-?\d+(?:\.\d+)?)deg\)/),N=z?parseFloat(z[1]):0,G=/scaleX\(-1\)/.test(H),re=/scaleY\(-1\)/.test(H);switch(i){case "rotateCW":N=(N+90)%360;break;case "rotateCCW":N=(N-90+360)%360;break;case "flipH":G=!G;break;case "flipV":re=!re;break}let Re=[];N!==0&&Re.push(`rotate(${N}deg)`),G&&Re.push("scaleX(-1)"),re&&Re.push("scaleY(-1)");let Le=Re.length>0?Re.join(" "):null,_e=n.state.tr.setNodeMarkup(E,void 0,{...U.attrs,transform:Le});n.dispatch(_e.scrollIntoView()),fe();},[te,fe,K.pmImageContext]),_n=useCallback(i=>{let n=te();if(!n||!K.pmImageContext)return;let E=K.pmImageContext.pos,U=n.state.doc.nodeAt(E);if(!U||U.type.name!=="image")return;let H=n.state.tr.setNodeMarkup(E,void 0,{...U.attrs,position:{horizontal:i.horizontal,vertical:i.vertical},distTop:i.distTop??U.attrs.distTop,distBottom:i.distBottom??U.attrs.distBottom,distLeft:i.distLeft??U.attrs.distLeft,distRight:i.distRight??U.attrs.distRight});n.dispatch(H.scrollIntoView()),fe();},[te,fe,K.pmImageContext]),Ut=useCallback(()=>{Be(true);},[]),Vn=useCallback(i=>{let n=te();if(!n||!K.pmImageContext)return;let E=K.pmImageContext.pos,U=n.state.doc.nodeAt(E);if(!U||U.type.name!=="image")return;let H=n.state.tr.setNodeMarkup(E,void 0,{...U.attrs,alt:i.alt??null,borderWidth:i.borderWidth??null,borderColor:i.borderColor??null,borderStyle:i.borderStyle??null});n.dispatch(H.scrollIntoView()),fe();},[te,fe,K.pmImageContext]),en=useCallback((i,n)=>{if(!$.state?.package)return;let E={...$.state.package.document,finalSectionProperties:{...$.state.package.document.finalSectionProperties,footnotePr:i,endnotePr:n}};$.push({...$.state,package:{...$.state.package,document:E}});},[$]),tn=useCallback(i=>{let n=te();if(n){switch(i){case "addRowAbove":addRowAbove(n.state,n.dispatch);break;case "addRowBelow":addRowBelow(n.state,n.dispatch);break;case "addColumnLeft":addColumnLeft(n.state,n.dispatch);break;case "addColumnRight":addColumnRight(n.state,n.dispatch);break;case "deleteRow":deleteRow(n.state,n.dispatch);break;case "deleteColumn":deleteColumn(n.state,n.dispatch);break;case "deleteTable":deleteTable(n.state,n.dispatch);break;case "selectTable":selectTable(n.state,n.dispatch);break;case "selectRow":selectRow(n.state,n.dispatch);break;case "selectColumn":selectColumn(n.state,n.dispatch);break;case "mergeCells":mergeCells(n.state,n.dispatch);break;case "splitCell":splitCell(n.state,n.dispatch);break;case "borderAll":setAllTableBorders(n.state,n.dispatch,Ie.current);break;case "borderOutside":setOutsideTableBorders(n.state,n.dispatch,Ie.current);break;case "borderInside":setInsideTableBorders(n.state,n.dispatch,Ie.current);break;case "borderNone":removeTableBorders(n.state,n.dispatch);break;case "borderTop":setCellBorder("top",Ie.current)(n.state,n.dispatch);break;case "borderBottom":setCellBorder("bottom",Ie.current)(n.state,n.dispatch);break;case "borderLeft":setCellBorder("left",Ie.current)(n.state,n.dispatch);break;case "borderRight":setCellBorder("right",Ie.current)(n.state,n.dispatch);break;default:if(typeof i=="object"){if(i.type==="cellFillColor")setCellFillColor(i.color)(n.state,n.dispatch);else if(i.type==="borderColor"){let E=i.color.replace(/^#/,"");Ie.current={...Ie.current,color:{rgb:E}},setTableBorderColor(i.color)(n.state,n.dispatch);}else if(i.type==="borderWidth")Ie.current={...Ie.current,size:i.size},setTableBorderWidth(i.size)(n.state,n.dispatch);else if(i.type==="cellBorder")setCellBorder(i.side,{style:i.style,size:i.size,color:{rgb:i.color.replace(/^#/,"")}})(n.state,n.dispatch);else if(i.type==="cellVerticalAlign")setCellVerticalAlign(i.align)(n.state,n.dispatch);else if(i.type==="cellMargins")setCellMargins(i.margins)(n.state,n.dispatch);else if(i.type==="cellTextDirection")setCellTextDirection(i.direction)(n.state,n.dispatch);else if(i.type==="toggleNoWrap")toggleNoWrap()(n.state,n.dispatch);else if(i.type==="rowHeight")setRowHeight(i.height,i.rule)(n.state,n.dispatch);else if(i.type==="toggleHeaderRow")toggleHeaderRow()(n.state,n.dispatch);else if(i.type==="distributeColumns")distributeColumns()(n.state,n.dispatch);else if(i.type==="autoFitContents")autoFitContents()(n.state,n.dispatch);else if(i.type==="openTableProperties")Ye(true);else if(i.type==="tableProperties")setTableProperties(i.props)(n.state,n.dispatch);else if(i.type==="applyTableStyle"){let E=Jo(i.styleId),U=xt.current;if(!E&&U?.package.styles){let z=createStyleResolver(U.package.styles).getStyle(i.styleId);if(z){if(E={id:z.styleId,name:z.name??z.styleId},z.tblPr?.borders){let N=z.tblPr.borders;E.tableBorders={};for(let G of ["top","bottom","left","right","insideH","insideV"]){let re=N[G];re&&(E.tableBorders[G]={style:re.style,size:re.size,color:re.color?.rgb?{rgb:re.color.rgb}:void 0});}}if(z.tblStylePr){E.conditionals={};for(let N of z.tblStylePr){let G={};if(N.tcPr?.shading?.fill&&(G.backgroundColor=`#${N.tcPr.shading.fill}`),N.tcPr?.borders){let re={};for(let Re of ["top","bottom","left","right"]){let Le=N.tcPr.borders[Re];Le&&(re[Re]={style:Le.style,size:Le.size,color:Le.color?.rgb?{rgb:Le.color.rgb}:void 0});}G.borders=re;}N.rPr?.bold&&(G.bold=true),N.rPr?.color?.rgb&&(G.color=`#${N.rPr.color.rgb}`),E.conditionals[N.type]=G;}}E.look={firstRow:true,lastRow:false,noHBand:false,noVBand:true};}}E&&applyTableStyle({styleId:E.id,tableBorders:E.tableBorders,conditionals:E.conditionals,look:E.look})(n.state,n.dispatch);}}else Ft.handleAction(i);}fe();}},[Ft,te,fe]),$n=useCallback(i=>{let n=te();if(!n)return;n.focus();let E=n===Ee.current?.getView(),{from:U,to:H}=n.state.selection,z=St.current;if(E&&z&&(U!==z.from||H!==z.to))try{let N=n.state.tr.setSelection(TextSelection$1.create(n.state.doc,z.from,z.to));n.dispatch(N);}catch(N){console.warn("Could not restore selection:",N);}if(i==="bold"){toggleBold(n.state,n.dispatch);return}if(i==="italic"){toggleItalic(n.state,n.dispatch);return}if(i==="underline"){toggleUnderline(n.state,n.dispatch);return}if(i==="strikethrough"){toggleStrike(n.state,n.dispatch);return}if(i==="superscript"){toggleSuperscript(n.state,n.dispatch);return}if(i==="subscript"){toggleSubscript(n.state,n.dispatch);return}if(i==="bulletList"){toggleBulletList(n.state,n.dispatch);return}if(i==="numberedList"){toggleNumberedList(n.state,n.dispatch);return}if(i==="indent"){increaseListLevel(n.state,n.dispatch)||increaseIndent()(n.state,n.dispatch);return}if(i==="outdent"){decreaseListLevel(n.state,n.dispatch)||decreaseIndent()(n.state,n.dispatch);return}if(i==="clearFormatting"){clearFormatting(n.state,n.dispatch);return}if(i==="insertLink"){let N=getSelectedText(n.state),G=getHyperlinkAttrs(n.state);G?xe.openEdit({url:G.href,displayText:N,tooltip:G.tooltip}):xe.openInsert(N);return}if(typeof i=="object")switch(i.type){case "alignment":setAlignment(i.value)(n.state,n.dispatch);break;case "textColor":setTextColor({rgb:i.value.replace("#","")})(n.state,n.dispatch);break;case "highlightColor":{let N=i.value?t(i.value):"";setHighlight(N||i.value)(n.state,n.dispatch);break}case "fontSize":setFontSize(e(i.value))(n.state,n.dispatch);break;case "fontFamily":setFontFamily(i.value)(n.state,n.dispatch);break;case "lineSpacing":setLineSpacing(i.value)(n.state,n.dispatch);break;case "applyStyle":{let N=xt.current,G=N?.package.styles?createStyleResolver(N.package.styles):null;if(G){let re=G.resolveParagraphStyle(i.value);applyStyle(i.value,{paragraphFormatting:re.paragraphFormatting,runFormatting:re.runFormatting})(n.state,n.dispatch);}else applyStyle(i.value)(n.state,n.dispatch);break}}},[te]),Wn=useCallback(i=>{Se(n=>({...n,zoom:i}));},[]),Un=useCallback(i=>{let n=te();if(!n)return;let E=i.url||"",U=i.tooltip,{empty:H}=n.state.selection;H&&i.displayText?insertHyperlink(i.displayText,E,U)(n.state,n.dispatch):H?i.displayText&&insertHyperlink(i.displayText,E,U)(n.state,n.dispatch):setHyperlink(E,U)(n.state,n.dispatch),xe.close(),fe();},[xe,te,fe]),Kn=useCallback(()=>{let i=te();i&&(removeHyperlink(i.state,i.dispatch),xe.close(),fe());},[xe,te,fe]),ut=useCallback(i=>n=>{if(!$.state||V)return;let E={...$.state,package:{...$.state.package,document:{...$.state.package.document,finalSectionProperties:{...$.state.package.document.finalSectionProperties,[i]:n}}}};ke(E);},[$.state,V,ke]),qn=useMemo(()=>ut("marginLeft"),[ut]),Gn=useMemo(()=>ut("marginRight"),[ut]),Xn=useMemo(()=>ut("marginTop"),[ut]),Zn=useMemo(()=>ut("marginBottom"),[ut]),Yn=useCallback(i=>{let n=te();n&&setIndentLeft(i)(n.state,n.dispatch);},[te]),jn=useCallback(i=>{let n=te();n&&setIndentRight(i)(n.state,n.dispatch);},[te]),Jn=useCallback(i=>{let n=te();n&&(i<0?setIndentFirstLine(-i,true)(n.state,n.dispatch):setIndentFirstLine(i,false)(n.state,n.dispatch));},[te]),hn=useCallback(i=>{let n=te();n&&removeTabStop(i)(n.state,n.dispatch);},[te]),Qn=useCallback(i=>{},[]),p=useCallback(async()=>{if(!vt.current)return null;try{let i=await vt.current.toBuffer();return r?.(i),i}catch(i){return l$1?.(i instanceof Error?i:new Error("Failed to save document")),null}},[r,l$1]),B=useCallback(i=>{l$1?.(i);},[l$1]),T=useCallback(()=>{let i=We.current?.querySelector(".paged-editor__pages");if(!i){window.print(),Y?.();return}let n=window.open("","_blank");if(!n){window.print(),Y?.();return}let E=[];for(let H of Array.from(document.styleSheets))try{for(let z of Array.from(H.cssRules))z instanceof CSSFontFaceRule&&E.push(z.cssText);}catch{}let U=i.cloneNode(true);U.style.cssText="display: block; margin: 0; padding: 0;";for(let H of Array.from(U.querySelectorAll(".layout-page"))){let z=H;z.style.boxShadow="none",z.style.margin="0";}n.document.write(`<!DOCTYPE html>
|
|
19
|
-
<html><head><title>Print</title>
|
|
20
|
-
<style>
|
|
21
|
-
${E.join(`
|
|
22
|
-
`)}
|
|
23
|
-
* { margin: 0; padding: 0; }
|
|
24
|
-
body { background: white; }
|
|
25
|
-
.layout-page { break-after: page; }
|
|
26
|
-
.layout-page:last-child { break-after: auto; }
|
|
27
|
-
@page { margin: 0; size: auto; }
|
|
28
|
-
</style>
|
|
29
|
-
</head><body>${U.outerHTML}</body></html>`),n.document.close(),n.onload=()=>{n.print(),n.close();},setTimeout(()=>{n.closed||(n.print(),n.close());},1e3),Y?.();},[Y]),w=useRef(null),F=useCallback((i,n)=>{if(!$.state||!i.trim())return w.current=null,null;let E=j($.state,i,n),U={matches:E,totalCount:E.length,currentIndex:0};return w.current=U,be.setMatches(E,0),E.length>0&&We.current&&l(We.current,E[0]),U},[$.state,be]),k=useCallback(()=>{if(!w.current||w.current.matches.length===0)return null;let i=be.goToNextMatch(),n=w.current.matches[i];return n&&We.current&&l(We.current,n),n||null},[be]),P=useCallback(()=>{if(!w.current||w.current.matches.length===0)return null;let i=be.goToPreviousMatch(),n=w.current.matches[i];return n&&We.current&&l(We.current,n),n||null},[be]),M=useCallback(i=>{if(!$.state||!w.current||w.current.matches.length===0)return false;let n=w.current.matches[w.current.currentIndex];if(!n)return false;try{let E=executeCommand($.state,{type:"replaceText",range:{start:{paragraphIndex:n.paragraphIndex,offset:n.startOffset},end:{paragraphIndex:n.paragraphIndex,offset:n.endOffset}},text:i});return ke(E),!0}catch(E){return console.error("Replace failed:",E),false}},[$.state,ke]),O=useCallback((i,n,E)=>{if(!$.state||!i.trim())return 0;let U=j($.state,i,E);if(U.length===0)return 0;let H=$.state,z=[...U].sort((N,G)=>N.paragraphIndex!==G.paragraphIndex?G.paragraphIndex-N.paragraphIndex:G.startOffset-N.startOffset);for(let N of z)try{H=executeCommand(H,{type:"replaceText",range:{start:{paragraphIndex:N.paragraphIndex,offset:N.startOffset},end:{paragraphIndex:N.paragraphIndex,offset:N.endOffset}},text:n});}catch(G){console.error("Replace failed for match:",N,G);}return ke(H),w.current=null,be.setMatches([],0),U.length},[$.state,ke,be]);useImperativeHandle(de,()=>({getAgent:()=>vt.current,getDocument:()=>$.state,getEditorRef:()=>Ee.current,save:p,setZoom:i=>Se(n=>({...n,zoom:i})),getZoom:()=>K.zoom,focus:()=>{Ee.current?.focus();},getCurrentPage:()=>K.currentPage,getTotalPages:()=>K.totalPages,scrollToPage:i=>{},openPrintPreview:T,print:T}),[$.state,K.zoom,K.currentPage,K.totalPages,p,T]);let{headerContent:X,footerContent:q}=useMemo(()=>{if(!$.state?.package)return {headerContent:null,footerContent:null};let i=$.state.package,n=i.document?.finalSectionProperties,E=i.headers,U=i.footers,H=null,z=null;if(E&&n?.headerReferences){let N=n.headerReferences.find(G=>G.type==="default");N?.rId&&(H=E.get(N.rId)??null);}if(U&&n?.footerReferences){let N=n.footerReferences.find(G=>G.type==="default");N?.rId&&(z=U.get(N.rId)??null);}return {headerContent:H,footerContent:z}},[$.state]),Q=useCallback(i=>{if(i==="header"?X:q){Ne(i);return}if(!$.state?.package)return;let E=$.state.package,U=E.document?.finalSectionProperties;if(!U)return;let H=`rId_new_${i}`,z={type:i==="header"?"header":"footer",hdrFtrType:"default",content:[{type:"paragraph",content:[]}]},N=i==="header"?"headers":"footers",G=new Map(E[N]??[]);G.set(H,z);let re=i==="header"?"headerReferences":"footerReferences",Re=U[re]??[],Le={type:"default",rId:H},_e={...$.state,package:{...E,[N]:G,document:E.document?{...E.document,finalSectionProperties:{...U,[re]:[...Re,Le]}}:E.document}};$.push(_e),Ne(i);},[X,q,$]),le=useCallback(i=>{if(!pe||!$.state?.package){Ne(null);return}let n=$.state.package,E=n.document?.finalSectionProperties,H=(pe==="header"?E?.headerReferences:E?.footerReferences)?.find(G=>G.type==="default"),z=pe==="header"?"headers":"footers",N=n[z];if(H?.rId&&N){let G=N.get(H.rId),re={type:pe,hdrFtrType:"default",...G,content:i},Re=new Map(N);Re.set(H.rId,re);let Le={...$.state,package:{...n,[z]:Re}};$.push(Le);}Ne(null);},[pe,$]),oe=useCallback(()=>{if(!pe)return;let i=Oe.current?.getView();if(i){let n=proseDocToBlocks(i.state.doc);le(n);}else Ne(null);},[pe,le]),ge=useCallback(()=>{if(!pe||!$.state?.package){Ne(null);return}let i=$.state.package,n=i.document?.finalSectionProperties,E=pe==="header"?"headerReferences":"footerReferences",U=pe==="header"?"headers":"footers",H=n?.[E],z=H?.find(N=>N.type==="default");if(z?.rId){let N=new Map(i[U]??[]);N.delete(z.rId);let G=(H??[]).filter(Re=>Re.rId!==z.rId),re={...$.state,package:{...i,[U]:N,document:i.document?{...i.document,finalSectionProperties:{...n,[E]:G}}:i.document}};$.push(re);}Ne(null);},[pe,$]),ye=useCallback(i=>{let n=We.current?.querySelector(".paged-editor__pages");if(!n)return null;let E=i==="header"?".layout-page-header":".layout-page-footer";return n.querySelector(E)},[]),Pe={display:"flex",flexDirection:"column",height:"100%",width:"100%",backgroundColor:"var(--doc-bg-subtle)",...j$1},De={display:"flex",flex:1,minHeight:0,minWidth:0,flexDirection:"row"},qe={flex:1,minHeight:0,minWidth:0,overflow:"auto",position:"relative"};return K.isLoading?jsx("div",{className:`ep-root docx-editor docx-editor-loading ${J}`,style:Pe,"data-testid":"docx-editor",children:A||jsx(Qo,{})}):K.parseError?jsx("div",{className:`ep-root docx-editor docx-editor-error ${J}`,style:Pe,"data-testid":"docx-editor",children:jsx(tr,{message:K.parseError})}):$.state?jsx(Ho,{children:jsx(Sn,{onError:B,children:jsxs("div",{ref:We,className:`ep-root docx-editor ${J}`,style:Pe,"data-testid":"docx-editor",children:[jsx("div",{style:De,children:jsxs("div",{style:{position:"relative",flex:1,minHeight:0,minWidth:0,display:"flex",flexDirection:"column"},children:[jsxs("div",{style:qe,children:[m$2&&!V&&jsxs("div",{ref:wt,className:"sticky top-0 z-50 flex flex-col gap-0 bg-white shadow-sm",children:[jsx(x,{currentFormatting:K.selectionFormatting,onFormat:$n,onUndo:at,onRedo:Nn,canUndo:true,canRedo:true,disabled:V,documentStyles:$.state?.package.styles?.styles,theme:$.state?.package.theme||a,showPrintButton:he,onPrint:T,showZoomControl:g,zoom:K.zoom,onZoomChange:Wn,onRefocusEditor:fe,onInsertTable:Ue,showTableInsert:true,onInsertImage:zn,onInsertPageBreak:ct,onInsertTOC:mn,imageContext:K.pmImageContext,onImageWrapType:Je,onImageTransform:Rt,onOpenImageProperties:Ut,tableContext:K.pmTableContext,onTableAction:tn,children:C}),S&&jsx("div",{className:"flex justify-center px-5 py-1 overflow-x-auto flex-shrink-0 bg-doc-bg",children:jsx(N,{sectionProps:$.state?.package.document?.finalSectionProperties,zoom:K.zoom,unit:L,editable:!V,onLeftMarginChange:qn,onRightMarginChange:Gn,indentLeft:K.paragraphIndentLeft,indentRight:K.paragraphIndentRight,onIndentLeftChange:Yn,onIndentRightChange:jn,showFirstLineIndent:true,firstLineIndent:K.paragraphFirstLineIndent,hangingIndent:K.paragraphHangingIndent,onFirstLineIndentChange:Jn,tabStops:K.paragraphTabs,onTabStopRemove:hn})})]}),S&&!V&&jsx("div",{style:{position:"absolute",left:0,top:0,paddingTop:20,zIndex:10},children:jsx(Wo,{sectionProps:$.state?.package.document?.finalSectionProperties,zoom:K.zoom,unit:L,editable:!V,onTopMarginChange:Xn,onBottomMarginChange:Zn})}),jsx("div",{style:{display:"flex",flex:1,minHeight:0,position:"relative"},children:jsxs("div",{ref:fn,style:{position:"relative",flex:1,minWidth:0},onMouseDown:i=>{i.target===i.currentTarget&&(i.preventDefault(),Ee.current?.focus());},children:[jsx(Ir,{ref:Ee,document:$.state,styles:$.state?.package.styles,theme:$.state?.package.theme||a,sectionProperties:$.state?.package.document?.finalSectionProperties,headerContent:X,footerContent:q,onHeaderFooterDoubleClick:Q,hfEditMode:pe,onBodyClick:oe,zoom:K.zoom,readOnly:V,extensionManager:ft,onDocumentChange:ke,onSelectionChange:(i,n)=>{let E=Ee.current?.getView();if(E){let U=extractSelectionState(E.state);lt(U);}else lt(null);},externalPlugins:W,onReady:i=>{ae?.(i.getView());},onRenderedDomContextReady:ie,pluginOverlays:Ce}),c&&K.totalPages>0&&(h?jsx(G,{currentPage:K.currentPage,totalPages:K.totalPages,onNavigate:Qn,position:b,variant:x$1,floating:true}):jsx(y,{currentPage:K.currentPage,totalPages:K.totalPages,position:b,variant:x$1,floating:true})),pe&&(pe==="header"?X:q)&&(()=>{let i=ye(pe),n=fn.current;return !i||!n?null:jsx(jo,{ref:Oe,headerFooter:pe==="header"?X:q,position:pe,styles:$.state?.package.styles,targetElement:i,parentElement:n,onSave:le,onClose:()=>Ne(null),onSelectionChange:lt,onRemove:ge})})()]})})]}),rt&&jsx(zo,{headings:Ze,onHeadingClick:Ke,onClose:()=>it(false),topOffset:Qt}),!rt&&jsx("button",{className:"docx-outline-nav",onClick:gn,onMouseDown:i=>i.stopPropagation(),title:"Show document outline",style:{position:"absolute",left:48,top:Qt+12,zIndex:20,background:"transparent",border:"none",borderRadius:"50%",padding:6,cursor:"pointer",display:"flex",alignItems:"center"},children:jsx(d,{name:"format_list_bulleted",size:20,style:{color:"#444746"}})})]})}),jsxs(Suspense,{fallback:null,children:[be.state.isOpen&&jsx(ba,{isOpen:be.state.isOpen,onClose:be.close,onFind:F,onFindNext:k,onFindPrevious:P,onReplace:M,onReplaceAll:O,initialSearchText:be.state.searchText,replaceMode:be.state.replaceMode,currentResult:w.current}),xe.state.isOpen&&jsx(ya,{isOpen:xe.state.isOpen,onClose:xe.close,onSubmit:Un,onRemove:xe.state.isEditing?Kn:void 0,initialData:xe.state.initialData,selectedText:xe.state.selectedText,isEditing:xe.state.isEditing}),Te&&jsx(va,{isOpen:Te,onClose:()=>Ye(false),onApply:i=>{let n=te();n&&setTableProperties(i)(n.state,n.dispatch);},currentProps:K.pmTableContext?.table?.attrs}),we&&jsx(Sa,{isOpen:we,onClose:()=>je(false),onApply:_n}),Me&&jsx(xa,{isOpen:Me,onClose:()=>Be(false),onApply:Vn,currentData:K.pmImageContext?{alt:K.pmImageContext.alt??void 0,borderWidth:K.pmImageContext.borderWidth??void 0,borderColor:K.pmImageContext.borderColor??void 0,borderStyle:K.pmImageContext.borderStyle??void 0}:void 0}),Fe&&jsx(wa,{isOpen:Fe,onClose:()=>He(false),onApply:en,footnotePr:$.state?.package.document?.finalSectionProperties?.footnotePr,endnotePr:$.state?.package.document?.finalSectionProperties?.endnotePr})]}),jsx("input",{ref:st,type:"file",accept:"image/*",style:{display:"none"},onChange:On})]})})}):jsx("div",{className:`ep-root docx-editor docx-editor-empty ${J}`,style:Pe,"data-testid":"docx-editor",children:I||jsx(er,{})})});function Ad(e,t,o={}){return new Promise((r,d)=>{let s=Wr.createRef(),l=null;try{l=createRoot(t);}catch(g){d(g);return}let u={save:()=>s.current?.save()??Promise.resolve(null),getDocument:()=>s.current?.getDocument()??null,focus:()=>s.current?.focus(),setZoom:g=>s.current?.setZoom(g),destroy:()=>{l?.unmount(),l=null;}},a=false,m=Wr.createElement($r,{...o,documentBuffer:e,onError:g=>{o.onError?.(g),a||(a=true,d(g));},onChange:g=>{o.onChange?.(g),a||(a=true,r(u));},ref:s});l.render(m);})}var Ur="docx-editor-autosave",Ll=3e4,Fl=1440*60*1e3,Hl=2e3,Ln=1;function Kr(){try{let e="__docx_editor_test__";return localStorage.setItem(e,"test"),localStorage.removeItem(e),!0}catch{return false}}function Al(e){let t={...e,originalBuffer:null};return JSON.stringify(t)}function Bl(e){try{let t=JSON.parse(e);return !t||typeof t!="object"||!t.document||!t.savedAt?null:(t.version!==Ln&&console.warn("Auto-save data version mismatch, may need migration"),t)}catch{return null}}function Nl(e,t){let o=new Date(e).getTime();return Date.now()-o>t}function zd(e,t={}){let{storageKey:o=Ur,interval:r=Ll,enabled:d=true,maxAge:s=Fl,onSave:l,onError:u,onRecoveryAvailable:a,saveOnChange:m=true,debounceDelay:g=Hl}=t,[c,h]=useState("idle"),[b,x]=useState(null),[D,f]=useState(false),[S,L]=useState(d),_=useRef(e),V=useRef(null),C=useRef(null),J=useRef(null),j=useRef(Kr());useEffect(()=>{_.current=e;},[e]);let I=useCallback(async()=>{if(!j.current)return u?.(new Error("localStorage is not available")),false;let y=_.current;if(!y)return false;h("saving");try{let R=Al(y);if(R===J.current)return h("saved"),!0;let W={document:y,savedAt:new Date().toISOString(),version:Ln},ae={document:{...y,originalBuffer:null},savedAt:W.savedAt,version:Ln};localStorage.setItem(o,JSON.stringify(ae)),J.current=R;let ie=new Date;return x(ie),h("saved"),l?.(ie),!0}catch(R){return console.error("Auto-save failed:",R),h("error"),u?.(R),false}},[o,l,u]),A=useCallback(()=>{if(j.current)try{localStorage.removeItem(o),f(!1),J.current=null;}catch(y){console.error("Failed to clear auto-save:",y);}},[o]),v=useCallback(()=>{if(!j.current)return null;try{let y=localStorage.getItem(o);if(!y)return null;let R=Bl(y);return R?Nl(R.savedAt,s)?(A(),null):R:null}catch{return null}},[o,s,A]),he=useCallback(()=>{let y=v();return y?(f(false),y.document):null},[v]),se=useCallback(()=>{A(),f(false);},[A]),Y=useCallback(()=>{L(true);},[]),ne=useCallback(()=>{L(false),V.current&&(clearInterval(V.current),V.current=null),C.current&&(clearTimeout(C.current),C.current=null);},[]);return useEffect(()=>{if(!j.current)return;let y=v();y&&(f(true),a?.(y));},[v,a]),useEffect(()=>{if(!S||!j.current){V.current&&(clearInterval(V.current),V.current=null);return}return V.current=setInterval(()=>{I();},r),()=>{V.current&&(clearInterval(V.current),V.current=null);}},[S,r,I]),useEffect(()=>{if(!(!S||!m||!e||!j.current))return C.current&&clearTimeout(C.current),C.current=setTimeout(()=>{I();},g),()=>{C.current&&clearTimeout(C.current);}},[S,m,e,g,I]),useEffect(()=>()=>{if(S&&_.current&&j.current)try{let R={document:{..._.current,originalBuffer:null},savedAt:new Date().toISOString(),version:Ln};localStorage.setItem(o,JSON.stringify(R));}catch(y){console.error("Failed to save on unmount:",y);}},[S,o]),{status:c,lastSaveTime:b,save:I,clearAutoSave:A,hasRecoveryData:D,getRecoveryData:v,acceptRecovery:he,dismissRecovery:se,isEnabled:S,enable:Y,disable:ne}}function Od(e){if(!e)return "Never";let o=new Date().getTime()-e.getTime(),r=Math.floor(o/1e3),d=Math.floor(r/60),s=Math.floor(d/60);return r<10?"Just now":r<60?`${r} seconds ago`:d<60?`${d} minute${d===1?"":"s"} ago`:s<24?`${s} hour${s===1?"":"s"} ago`:e.toLocaleDateString()}function _d(e){return {idle:"Ready",saving:"Saving...",saved:"Saved",error:"Save failed"}[e]}function Vd(e=Ur){try{let t=localStorage.getItem(e);return t?new Blob([t]).size:0}catch{return 0}}function $d(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Wd(){return Kr()}var _l=1,qr=.25,Gr=4,Vl=.1,nt=[.25,.5,.75,1,1.25,1.5,2,3,4];function Xr(e,t,o){return Math.max(t,Math.min(o,e))}function Zr(e){return Math.round(e*100)/100}function $l(e){let t=nt[0],o=Math.abs(e-t);for(let r of nt){let d=Math.abs(e-r);d<o&&(o=d,t=r);}return t}function Wl(e){for(let t of nt)if(t>e+.01)return t;return nt[nt.length-1]}function Ul(e){for(let t=nt.length-1;t>=0;t--)if(nt[t]<e-.01)return nt[t];return nt[0]}function qd(e={}){let{initialZoom:t=_l,minZoom:o=qr,maxZoom:r=Gr,zoomStep:d=Vl,enabled:s=true,containerRef:l,onZoomChange:u,enableKeyboardShortcuts:a=true,preventDefault:m=true}=e,[g,c]=useState(t),h=useRef(g);useEffect(()=>{h.current=g;},[g]);let b=useCallback(C=>{let J=Zr(Xr(C,o,r));J!==h.current&&(c(J),u?.(J));},[o,r,u]),x=useCallback(()=>{b(h.current+d);},[d,b]),D=useCallback(()=>{b(h.current-d);},[d,b]),f=useCallback(()=>{b(t);},[t,b]),S=useCallback(()=>{b(1);},[b]),L=useCallback((C,J)=>{if(J>0){let j=C/J;b(j);}},[b]),_=useCallback(C=>{if(!s||!(C.ctrlKey||C.metaKey))return;m&&C.preventDefault();let j=C.deltaY;j<0?b(h.current+d):j>0&&b(h.current-d);},[s,m,d,b]),V=useCallback(C=>{if(!(!s||!a||!(C.ctrlKey||C.metaKey))){if(C.key==="0"){C.preventDefault(),S();return}if(C.key==="+"||C.key==="="){C.preventDefault(),x();return}if(C.key==="-"){C.preventDefault(),D();return}}},[s,a,x,D,S]);return useEffect(()=>{if(!s)return;let C=l?.current;if(C)return C.addEventListener("wheel",_,{passive:false}),()=>{C.removeEventListener("wheel",_);}},[s,l,_]),useEffect(()=>{if(!(!s||!a))return document.addEventListener("keydown",V),()=>{document.removeEventListener("keydown",V);}},[s,a,V]),{zoom:g,setZoom:b,zoomIn:x,zoomOut:D,resetZoom:f,zoomTo100:S,zoomToFit:L,isMinZoom:g<=o,isMaxZoom:g>=r,zoomPercent:Math.round(g*100),handleWheel:_,handleKeyDown:V}}function Gd(){return [...nt]}function Xd(e){return $l(e)}function Zd(e){return Wl(e)}function Yd(e){return Ul(e)}function jd(e){return `${Math.round(e*100)}%`}function Jd(e){let t=e.match(/(\d+(\.\d+)?)/);if(t){let o=parseFloat(t[1]);if(!isNaN(o))return o/100}return null}function Qd(e){return nt.some(t=>Math.abs(t-e)<.01)}function ep(e,t=qr,o=Gr){return Zr(Xr(e,t,o))}function sp(e){let{containerRef:t,enabled:o=true,config:r=DEFAULT_SELECTION_STYLE,useOverlay:d=false,debounceMs:s=16,onSelectionChange:l}=e,[u,a]=useState(false),[m,g]=useState(""),[c,h]=useState([]),[b,x]=useState(false),D=useRef(null),f=useRef(0),S=useCallback(()=>{let C=t.current,J=hasActiveSelection(),j=getSelectedText$1(),I=C?isSelectionWithin(C):false;if(a(J),g(j),x(I),d&&I){let A=getMergedSelectionRects(C);h(A);}else h([]);l&&l(J&&I,j);},[t,d,l]),L=useCallback(()=>{let C=performance.now();if(C-f.current<s){D.current!==null&&clearTimeout(D.current),D.current=window.setTimeout(()=>{f.current=performance.now(),S(),D.current=null;},s);return}f.current=C,S();},[s,S]),_=useCallback(()=>{S();},[S]),V=useCallback(C=>({position:"absolute",left:`${C.left}px`,top:`${C.top}px`,width:`${C.width}px`,height:`${C.height}px`,backgroundColor:r.backgroundColor,borderRadius:r.borderRadius?`${r.borderRadius}px`:void 0,border:r.borderColor?`1px solid ${r.borderColor}`:void 0,zIndex:r.zIndex??0,opacity:r.opacity??1,mixBlendMode:r.mixBlendMode,pointerEvents:"none",userSelect:"none"}),[r]);return useEffect(()=>(o&&!areSelectionStylesInjected()&&injectSelectionStyles(r),()=>{}),[o,r]),useEffect(()=>{if(!o)return;let C=()=>{L();};return document.addEventListener("selectionchange",C),document.addEventListener("mouseup",C),S(),()=>{document.removeEventListener("selectionchange",C),document.removeEventListener("mouseup",C),D.current!==null&&clearTimeout(D.current);}},[o,L,S]),{hasSelection:u,selectedText:m,highlightRects:c,isSelectionInContainer:b,refresh:_,getOverlayStyle:V}}function ap(e,t=DEFAULT_SELECTION_STYLE){return e.map((o,r)=>Wr.createElement("div",{key:`selection-overlay-${r}`,style:{position:"absolute",left:`${o.left}px`,top:`${o.top}px`,width:`${o.width}px`,height:`${o.height}px`,backgroundColor:t.backgroundColor,borderRadius:t.borderRadius?`${t.borderRadius}px`:void 0,border:t.borderColor?`1px solid ${t.borderColor}`:void 0,zIndex:t.zIndex??0,opacity:t.opacity??1,mixBlendMode:t.mixBlendMode,pointerEvents:"none",userSelect:"none"}}))}function Ql(){let e=window.getSelection();if(!e||e.isCollapsed)return [];let t=[],o=e.getRangeAt(0),r=o.commonAncestorContainer,d=r.nodeType===Node.ELEMENT_NODE?r:r.parentElement;if(!d)return t;if(d.querySelectorAll(".docx-run").forEach(l=>{if(o.intersectsNode(l)){let u=ec(l,o);if(u){let a=tc(l);t.push({type:"run",formatting:a,content:[{type:"text",text:u}]});}}}),t.length===0){let l=e.toString();l&&t.push({type:"run",content:[{type:"text",text:l}]});}return t}function ec(e,t){let o=document.createRange();o.selectNodeContents(e);let r=t.compareBoundaryPoints(Range.START_TO_START,o)>=0&&t.compareBoundaryPoints(Range.START_TO_END,o)<=0,d=t.compareBoundaryPoints(Range.END_TO_START,o)>=0&&t.compareBoundaryPoints(Range.END_TO_END,o)<=0;if(r&&d)return t.toString();if(r){let s=document.createRange();return s.setStart(t.startContainer,t.startOffset),s.selectNodeContents(e),s.setEnd(o.endContainer,o.endOffset),s.toString()}else if(d){let s=document.createRange();return s.selectNodeContents(e),s.setEnd(t.endContainer,t.endOffset),s.setStart(o.startContainer,o.startOffset),s.toString()}else if(t.intersectsNode(e))return e.textContent||"";return ""}function tc(e){let t=window.getComputedStyle(e),o={};(t.fontWeight==="bold"||parseInt(t.fontWeight)>=700)&&(o.bold=true),t.fontStyle==="italic"&&(o.italic=true);let r=t.textDecoration||t.textDecorationLine;r&&r.includes("underline")&&(o.underline={style:"single"}),r&&r.includes("line-through")&&(o.strike=true);let d=parseFloat(t.fontSize);!isNaN(d)&&d>0&&(o.fontSize=Math.round(d/1.333*2));let s=t.fontFamily.replace(/["']/g,"").split(",")[0].trim();s&&(o.fontFamily={ascii:s});let l=t.color;if(l&&l!=="rgb(0, 0, 0)"){let a=ni(l);a&&(o.color={rgb:a});}let u=t.backgroundColor;if(u&&u!=="transparent"&&u!=="rgba(0, 0, 0, 0)"){let a=ni(u);a&&(o.shading={fill:{rgb:a}});}return Object.keys(o).length>0?o:void 0}function ni(e){if(!e||e==="transparent"||e==="inherit")return null;if(e.startsWith("#"))return e.slice(1).toUpperCase();let t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(t){let o=parseInt(t[1]).toString(16).padStart(2,"0"),r=parseInt(t[2]).toString(16).padStart(2,"0"),d=parseInt(t[3]).toString(16).padStart(2,"0");return (o+r+d).toUpperCase()}return null}function oi(){let e=window.getSelection();if(!e||e.isCollapsed)return null;let t=Ql();if(t.length===0)return null;let o=e.toString(),r=e.getRangeAt(0),d=ri(r.startContainer),s=ri(r.endContainer),l=d?parseInt(d.getAttribute("data-paragraph-index")||"0",10):0,u=s?parseInt(s.getAttribute("data-paragraph-index")||"0",10):0;return {text:o,runs:t,startParagraphIndex:l,startRunIndex:0,startOffset:r.startOffset,endParagraphIndex:u,endRunIndex:0,endOffset:r.endOffset,isMultiParagraph:l!==u}}function ri(e){let t=e;for(;t;){if(t.nodeType===Node.ELEMENT_NODE){let o=t;if(o.hasAttribute("data-paragraph-index"))return o}t=t.parentNode;}return null}function dp(e={}){let{onCopy:t,onCut:o,onPaste:r,cleanWordFormatting:d=true,editable:s=true,onError:l}=e,u=useRef(false),a=useRef(null),m=useCallback(async f=>{if(u.current)return false;u.current=true;try{let S=await copyRuns(f.runs,{onError:l});return S&&t?.(f),S}finally{u.current=false;}},[t,l]),g=useCallback(async f=>{if(u.current||!s)return false;u.current=true;try{let S=await copyRuns(f.runs,{onError:l});return S&&o?.(f),S}finally{u.current=false;}},[o,s,l]),c=useCallback(async(f=false)=>{if(u.current||!s)return null;u.current=true;try{if(navigator.clipboard&&navigator.clipboard.read){let S=await navigator.clipboard.read(),L="",_="";for(let C of S)C.types.includes("text/html")&&(L=await(await C.getType("text/html")).text()),C.types.includes("text/plain")&&(_=await(await C.getType("text/plain")).text());f&&(L="");let V=nc(L,_,d);return a.current=V,r?.(V,f),V}return null}catch(S){return l?.(S),null}finally{u.current=false;}},[s,d,r,l]),h=useCallback(f=>{let S=oi();if(!S)return;f.preventDefault();let L=runsToClipboardContent(S.runs);f.clipboardData&&(f.clipboardData.setData("text/plain",L.plainText),f.clipboardData.setData("text/html",L.html),L.internal&&f.clipboardData.setData("application/x-docx-editor",L.internal)),t?.(S);},[t]),b=useCallback(f=>{if(!s)return;let S=oi();if(!S)return;f.preventDefault();let L=runsToClipboardContent(S.runs);f.clipboardData&&(f.clipboardData.setData("text/plain",L.plainText),f.clipboardData.setData("text/html",L.html),L.internal&&f.clipboardData.setData("application/x-docx-editor",L.internal)),o?.(S);},[s,o]),x=useCallback(f=>{if(!s)return;f.preventDefault();let S=handlePasteEvent(f,{cleanWordFormatting:d});if(S){a.current=S;let L=f.shiftKey??false;r?.(S,L);}},[s,d,r]),D=useCallback(f=>{f.ctrlKey||f.metaKey;},[]);return {copy:m,cut:g,paste:c,handleCopy:h,handleCut:b,handlePaste:x,handleKeyDown:D,isProcessing:u.current,lastPastedContent:a.current}}function nc(e,t,o){let{parseClipboardHtml:r}=a("@eigenpal/docx-core/utils/clipboard");return r(e,t,o)}var Bn={position:"right",defaultSize:280,minSize:200,maxSize:500,resizable:true,collapsible:true,defaultCollapsed:false};function ai(e,t){let o=`plugin-styles-${e}`,r=document.getElementById(o);r&&r.remove();let d=document.createElement("style");return d.id=o,d.textContent=t,document.head.appendChild(d),()=>{let s=document.getElementById(o);s&&s.remove();}}var li=`
|
|
30
|
-
.plugin-host {
|
|
31
|
-
display: flex;
|
|
32
|
-
width: 100%;
|
|
33
|
-
height: 100%;
|
|
34
|
-
overflow: visible;
|
|
35
|
-
position: relative;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.plugin-host-editor {
|
|
39
|
-
flex: 1;
|
|
40
|
-
display: flex;
|
|
41
|
-
flex-direction: column;
|
|
42
|
-
min-width: 0;
|
|
43
|
-
overflow: visible;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
.plugin-panels-left,
|
|
48
|
-
.plugin-panels-right {
|
|
49
|
-
display: flex;
|
|
50
|
-
flex-direction: column;
|
|
51
|
-
flex-shrink: 0;
|
|
52
|
-
background: #f8f9fa;
|
|
53
|
-
border-color: #e9ecef;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.plugin-panels-left {
|
|
57
|
-
border-right: 1px solid #e9ecef;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.plugin-panels-right {
|
|
61
|
-
border-left: 1px solid #e9ecef;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.plugin-panels-bottom {
|
|
65
|
-
border-top: 1px solid #e9ecef;
|
|
66
|
-
background: #f8f9fa;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.plugin-panel {
|
|
70
|
-
position: relative;
|
|
71
|
-
display: flex;
|
|
72
|
-
flex-direction: column;
|
|
73
|
-
overflow: hidden;
|
|
74
|
-
transition: width 0.2s ease, height 0.2s ease;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.plugin-panel.collapsed {
|
|
78
|
-
overflow: visible;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.plugin-panel-toggle {
|
|
82
|
-
display: flex;
|
|
83
|
-
align-items: center;
|
|
84
|
-
gap: 4px;
|
|
85
|
-
padding: 6px 8px;
|
|
86
|
-
background: transparent;
|
|
87
|
-
border: none;
|
|
88
|
-
cursor: pointer;
|
|
89
|
-
font-size: 12px;
|
|
90
|
-
color: #6c757d;
|
|
91
|
-
white-space: nowrap;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.plugin-panel.collapsed .plugin-panel-toggle {
|
|
95
|
-
writing-mode: vertical-rl;
|
|
96
|
-
text-orientation: mixed;
|
|
97
|
-
flex-direction: column;
|
|
98
|
-
height: 100%;
|
|
99
|
-
padding: 8px 6px;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.plugin-panel-toggle:hover {
|
|
103
|
-
background: #e9ecef;
|
|
104
|
-
color: #495057;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.plugin-panel-toggle-icon {
|
|
108
|
-
font-weight: bold;
|
|
109
|
-
font-size: 14px;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
.plugin-panel.collapsed .plugin-panel-toggle-icon {
|
|
113
|
-
transform: rotate(90deg);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
.plugin-panel-toggle-label {
|
|
117
|
-
font-weight: 500;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.plugin-panel-content {
|
|
121
|
-
flex: 1;
|
|
122
|
-
overflow: auto;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/* Right panel rendered inside viewport - scrolls with content */
|
|
126
|
-
.plugin-panel-in-viewport {
|
|
127
|
-
position: absolute;
|
|
128
|
-
top: 0;
|
|
129
|
-
/* Position is set dynamically via inline styles based on page edge */
|
|
130
|
-
width: 220px;
|
|
131
|
-
pointer-events: auto;
|
|
132
|
-
z-index: 10;
|
|
133
|
-
overflow: visible;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.plugin-panel-in-viewport.collapsed {
|
|
137
|
-
width: 32px;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
.plugin-panel-in-viewport .plugin-panel-toggle {
|
|
141
|
-
position: sticky;
|
|
142
|
-
top: 0;
|
|
143
|
-
background: rgba(255, 255, 255, 0.95);
|
|
144
|
-
border-radius: 4px;
|
|
145
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
.plugin-panel-in-viewport-content {
|
|
149
|
-
overflow: visible;
|
|
150
|
-
position: relative;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/* Plugin overlay container for rendering highlights/decorations */
|
|
154
|
-
.plugin-overlays-container {
|
|
155
|
-
position: absolute;
|
|
156
|
-
top: 0;
|
|
157
|
-
left: 0;
|
|
158
|
-
right: 0;
|
|
159
|
-
bottom: 0;
|
|
160
|
-
pointer-events: none;
|
|
161
|
-
overflow: visible;
|
|
162
|
-
z-index: 5;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
.plugin-overlay {
|
|
166
|
-
position: absolute;
|
|
167
|
-
top: 0;
|
|
168
|
-
left: 0;
|
|
169
|
-
right: 0;
|
|
170
|
-
bottom: 0;
|
|
171
|
-
pointer-events: none;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
.plugin-overlay > * {
|
|
175
|
-
pointer-events: auto;
|
|
176
|
-
}
|
|
177
|
-
`,sc=forwardRef(function({plugins:t,children:o,className:r=""},d){let[s,l]=useState(null),u=useRef(o.props);u.current=o.props;let[a,m]=useState(null),g=useRef(new Map),[c,h]=useState(0),b=useCallback(()=>h(y=>y+1),[]),[x,D]=useState(()=>{let y=new Set;for(let R of t)({...Bn,...R.panelConfig}).defaultCollapsed&&y.add(R.id);return y}),[f]=useState(()=>{let y=new Map;for(let R of t){let W={...Bn,...R.panelConfig};y.set(R.id,W.defaultSize);}return y});useEffect(()=>{for(let y of t)y.initialize&&!g.current.has(y.id)&&g.current.set(y.id,y.initialize(s));b();},[t,s]),useEffect(()=>ai("plugin-host-base",li),[]),useEffect(()=>{let y=[];for(let R of t)R.styles&&y.push(ai(R.id,R.styles));return ()=>{for(let R of y)R();}},[t]),useEffect(()=>()=>{for(let y of t)y.destroy&&y.destroy();},[t]),useEffect(()=>{if(!s)return;let y=()=>{let Ce=false;for(let de of t)if(de.onStateChange){let K=de.onStateChange(s);K!==void 0&&(g.current.set(de.id,K),Ce=true);}Ce&&b();};y();let R=s.dom;R.addEventListener("input",y),R.addEventListener("focus",y),R.addEventListener("click",y);let W=null,ae=()=>{W&&cancelAnimationFrame(W),W=requestAnimationFrame(y);},ie=s.dispatch.bind(s);return s.dispatch=Ce=>{ie(Ce),ae();},()=>{R.removeEventListener("input",y),R.removeEventListener("focus",y),R.removeEventListener("click",y),W&&cancelAnimationFrame(W),s.dispatch=ie;}},[s,t]);let S=useCallback(y=>{if(!s)return;if(s.coordsAtPos(y)){s.dom.scrollIntoView({block:"center",inline:"nearest"});let{state:W}=s,ae=W.doc.resolve(Math.min(y,W.doc.content.size)),ie=W.tr.setSelection(TextSelection.near(ae));s.dispatch(ie),s.focus();}},[s]),L=useCallback((y,R)=>{if(!s)return;let{state:W}=s,ae=W.doc.content.size,ie=Math.max(0,Math.min(y,ae)),Ce=Math.max(0,Math.min(R,ae)),de=W.tr.setSelection(TextSelection.create(W.doc,ie,Ce));s.dispatch(de),s.focus();},[s]),_=useCallback(y=>g.current.get(y),[]),V=useCallback((y,R)=>{g.current.set(y,R),b();},[]),C=useCallback(()=>{if(s){for(let y of t)if(y.onStateChange){let R=y.onStateChange(s);R!==void 0&&g.current.set(y.id,R);}b();}},[s,t]);useImperativeHandle(d,()=>({getPluginState:_,setPluginState:V,getEditorView:()=>s,refreshPluginStates:C}),[_,V,s,C]);let J=useMemo(()=>{let y=[];for(let R of t)R.proseMirrorPlugins&&y.push(...R.proseMirrorPlugins);return y},[t]),j=useCallback(y=>{D(R=>{let W=new Set(R);return W.has(y)?W.delete(y):W.add(y),W});},[]),[I,A]=useState(null);useEffect(()=>{if(!a){A(null);return}let y=()=>{let ae=a.pagesContainer,ie=ae.querySelector(".layout-page");if(!ie){A(null);return}let Ce=a.getContainerOffset(),de=ie.getBoundingClientRect(),K=ae.getBoundingClientRect(),Se=(de.right-K.left)/a.zoom,Te=Ce.x+Se+5;A(Te);};y();let R=()=>{requestAnimationFrame(y);};window.addEventListener("resize",R);let W=new ResizeObserver(()=>{requestAnimationFrame(y);});return W.observe(a.pagesContainer),()=>{window.removeEventListener("resize",R),W.disconnect();}},[a]);let v=useMemo(()=>{let y=[];if(a){for(let R of t)if(R.renderOverlay){let W=g.current.get(R.id);y.push(jsx("div",{className:"plugin-overlay","data-plugin-id":R.id,children:R.renderOverlay(a,W,s)},`overlay-${R.id}`));}}for(let R of t){if(!R.Panel||(R.panelConfig?.position??"right")!=="right")continue;let ae={...Bn,...R.panelConfig},ie=x.has(R.id),Ce=f.get(R.id)??ae.defaultSize,de=R.Panel,K=g.current.get(R.id),Se=I!==null?`${I}px`:"calc(50% + 428px)";y.push(jsxs("div",{className:`plugin-panel-in-viewport ${ie?"collapsed":""}`,style:{width:ie?"32px":`${Ce}px`,left:Se},"data-plugin-id":R.id,children:[ae.collapsible&&jsx("button",{className:"plugin-panel-toggle",onClick:()=>j(R.id),title:ie?`Show ${R.name}`:`Hide ${R.name}`,"aria-label":ie?`Show ${R.name}`:`Hide ${R.name}`,children:jsx("span",{className:"plugin-panel-toggle-icon",children:ie?"\u2039":"\u203A"})}),!ie&&a&&jsx("div",{className:"plugin-panel-in-viewport-content",children:jsx(de,{editorView:s,doc:s?.state.doc??null,scrollToPosition:S,selectRange:L,pluginState:K,panelWidth:Ce,renderedDomContext:a})})]},`panel-overlay-${R.id}`));}return y.length>0?y:null},[a,t,c,s,x,f,S,L,j,I]),he=useCallback(y=>{m(y);let R=u.current?.onRenderedDomContextReady;typeof R=="function"&&R(y);},[]),se=useMemo(()=>cloneElement(o,{externalPlugins:J,pluginOverlays:v,onRenderedDomContextReady:he,onEditorViewReady:y=>{l(y);let R=u.current?.onEditorViewReady;typeof R=="function"&&R(y);}}),[o,J,v,he]),Y=useMemo(()=>{let y=[],R=[],W=[];for(let ae of t){if(!ae.Panel)continue;let ie=ae.panelConfig?.position??"right";ie==="left"?y.push(ae):ie==="bottom"?W.push(ae):R.push(ae);}return {left:y,right:R,bottom:W}},[t]),ne=y=>{if(!y.Panel)return null;let R={...Bn,...y.panelConfig},W=x.has(y.id),ae=f.get(y.id)??R.defaultSize,ie=y.Panel,Ce=g.current.get(y.id);return jsxs("div",{className:`plugin-panel plugin-panel-${R.position} ${W?"collapsed":""}`,style:{[R.position==="bottom"?"height":"width"]:W?"32px":`${ae}px`,minWidth:R.position!=="bottom"?W?"32px":`${R.minSize}px`:void 0,maxWidth:R.position!=="bottom"?`${R.maxSize}px`:void 0,minHeight:R.position==="bottom"?W?"32px":`${R.minSize}px`:void 0,maxHeight:R.position==="bottom"?`${R.maxSize}px`:void 0},"data-plugin-id":y.id,children:[R.collapsible&&jsxs("button",{className:"plugin-panel-toggle",onClick:()=>j(y.id),title:W?`Show ${y.name}`:`Hide ${y.name}`,"aria-label":W?`Show ${y.name}`:`Hide ${y.name}`,children:[jsx("span",{className:"plugin-panel-toggle-icon",children:W?"\u203A":"\u2039"}),W&&jsx("span",{className:"plugin-panel-toggle-label",children:y.name})]}),!W&&jsx("div",{className:"plugin-panel-content",children:jsx(ie,{editorView:s,doc:s?.state.doc??null,scrollToPosition:S,selectRange:L,pluginState:Ce,panelWidth:ae,renderedDomContext:a??null})})]},y.id)};return jsxs("div",{className:`plugin-host ${r}`,children:[Y.left.length>0&&jsx("div",{className:"plugin-panels-left",children:Y.left.map(ne)}),jsxs("div",{className:"plugin-host-editor",children:[se,Y.bottom.length>0&&jsx("div",{className:"plugin-panels-bottom",children:Y.bottom.map(ne)})]})]})});export{ep as A,sp as B,ap as C,Ql as D,oi as E,dp as F,li as G,sc as H,cc as a,Ho as b,Sn as c,uc as d,dc as e,pc as f,fc as g,vc as h,Bo as i,$r as j,Ad as k,zd as l,Od as m,_d as n,Vd as o,$d as p,Wd as q,nt as r,qd as s,Gd as t,Xd as u,Zd as v,Yd as w,jd as x,Jd as y,Qd as z};//# sourceMappingURL=chunk-OD33FUTO.js.map
|
|
178
|
-
//# sourceMappingURL=chunk-OD33FUTO.js.map
|