@eigenpal/docx-js-editor 0.0.19 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -0
- package/dist/{ClipboardManager-EZ0C6Onq.d.cts → ClipboardManager-B1jZrC6h.d.cts} +1 -1
- package/dist/{ClipboardManager-D6dkOFg6.d.ts → ClipboardManager-jqJVxB6g.d.ts} +1 -1
- package/dist/{DocumentAgent-BcCDg7i2.d.ts → DocumentAgent-CnJ9AEl_.d.cts} +31 -3
- package/dist/{DocumentAgent-B0EC8lPC.d.cts → DocumentAgent-CrbsDniO.d.ts} +31 -3
- package/dist/{FindReplaceDialog-AWQXKEUQ.js → FindReplaceDialog-AQFR4OCT.js} +1 -2
- package/dist/FindReplaceDialog-J3DI3U5I.cjs +1 -0
- package/dist/{FootnotePropertiesDialog-73VT2ZVZ.cjs → FootnotePropertiesDialog-DO5DCAW6.cjs} +1 -2
- package/dist/{FootnotePropertiesDialog-ZM3EF3EF.js → FootnotePropertiesDialog-YYIZU5U6.js} +1 -2
- package/dist/{HyperlinkDialog-BA25XUT5.js → HyperlinkDialog-HGZ2S37Z.js} +1 -2
- package/dist/HyperlinkDialog-PEPS3C2G.cjs +1 -0
- package/dist/{ImagePositionDialog-AIAMKPFK.js → ImagePositionDialog-DQ4JWS4F.js} +1 -2
- package/dist/{ImagePositionDialog-KMK7ROV2.cjs → ImagePositionDialog-UYXYHSP4.cjs} +1 -2
- package/dist/{ImagePropertiesDialog-ERFCUVCW.js → ImagePropertiesDialog-GJMGLM6G.js} +1 -2
- package/dist/{ImagePropertiesDialog-USMMRK6X.cjs → ImagePropertiesDialog-V6SVKINO.cjs} +1 -2
- package/dist/{TablePropertiesDialog-72CIUAZT.cjs → TablePropertiesDialog-A36OXG3A.cjs} +1 -2
- package/dist/{TablePropertiesDialog-EMUEVYB3.js → TablePropertiesDialog-STZOGHJB.js} +1 -2
- package/dist/{agentApi-BFVyKagE.d.cts → agentApi-DfsWRyrP.d.cts} +1 -1
- package/dist/{agentApi-BFVyKagE.d.ts → agentApi-DfsWRyrP.d.ts} +1 -1
- package/dist/{chunk-FDANI5P4.cjs → chunk-2VHQ7YOQ.cjs} +1 -2
- package/dist/chunk-2Y6FLZ5Q.js +3 -0
- package/dist/chunk-32HMU2UV.js +111 -0
- package/dist/chunk-4CUGBNL2.cjs +1 -0
- package/dist/chunk-5GFXHUMP.js +1 -0
- package/dist/chunk-6NDMKJIE.js +9 -0
- package/dist/chunk-6NYA53QC.cjs +258 -0
- package/dist/chunk-7KJ3YVDQ.js +10 -0
- package/dist/{chunk-JOYPFQW2.js → chunk-AARNCPWR.js} +1 -2
- package/dist/{chunk-4QT5LPBA.cjs → chunk-B7TICMXD.cjs} +16 -17
- package/dist/{chunk-2QOEHCBX.js → chunk-BUEMG4NW.js} +1 -2
- package/dist/{chunk-CV5WFE7K.js → chunk-CLDB6TL7.js} +2 -3
- package/dist/{chunk-M2T6XKT5.js → chunk-CTYOM6BE.js} +1 -2
- package/dist/chunk-EH3NY2DQ.cjs +26 -0
- package/dist/{chunk-FGVGZLBL.js → chunk-FVUGBRDD.js} +1 -2
- package/dist/chunk-FXJAIFPR.js +59 -0
- package/dist/chunk-GICVJSFJ.cjs +9 -0
- package/dist/{chunk-Y6VCTLCJ.js → chunk-H5NTJZO4.js} +1 -2
- package/dist/chunk-HT2Z33YM.cjs +111 -0
- package/dist/chunk-JRRTZZ72.cjs +1 -0
- package/dist/{chunk-T2HQYRA7.cjs → chunk-NVAQQYBJ.cjs} +1 -2
- package/dist/chunk-P3AEZKQO.cjs +3 -0
- package/dist/{chunk-GWBTKVFD.cjs → chunk-P7ZF45KZ.cjs} +1 -2
- package/dist/{chunk-QEBO3EQP.cjs → chunk-PCJ5ACUV.cjs} +1 -2
- package/dist/{chunk-Q6HUGWO6.js → chunk-PJVI53AH.js} +1 -2
- package/dist/chunk-Q7YYC75E.js +258 -0
- package/dist/{chunk-7JSPKVOW.js → chunk-QVPR2W5S.js} +1 -2
- package/dist/{chunk-XZNOV52K.cjs → chunk-TAF6KYDM.cjs} +4 -5
- package/dist/chunk-USRMBYI6.js +3 -0
- package/dist/chunk-UTWPV2I4.js +26 -0
- package/dist/{chunk-DJAEBZ33.cjs → chunk-VTAS7VZ6.cjs} +1 -2
- package/dist/chunk-XQNCLN4T.cjs +3 -0
- package/dist/{chunk-S26DZVRQ.cjs → chunk-XS2AQFMF.cjs} +1 -2
- package/dist/chunk-Y6QBJGMO.cjs +59 -0
- package/dist/{chunk-WD2HTKRR.cjs → chunk-YS7FDEZ4.cjs} +1 -2
- package/dist/chunk-ZTVQA46Q.js +1 -0
- package/dist/{clipboard-beGtyabO.d.ts → clipboard-BE8E-szx.d.ts} +1 -1
- package/dist/{clipboard-CqE-UZ2d.d.cts → clipboard-DkfAv07F.d.cts} +1 -1
- package/dist/{colorResolver-B5YbO_a4.d.ts → colorResolver-CYttioMe.d.ts} +46 -3
- package/dist/{colorResolver-Cu46bSKr.d.cts → colorResolver-Dr8kQZAQ.d.cts} +46 -3
- package/dist/core-plugins-reexport.cjs +1 -2
- package/dist/core-plugins-reexport.d.cts +4 -4
- package/dist/core-plugins-reexport.d.ts +4 -4
- package/dist/core-plugins-reexport.js +1 -2
- package/dist/core-reexport.cjs +1 -2
- package/dist/core-reexport.d.cts +10 -10
- package/dist/core-reexport.d.ts +10 -10
- package/dist/core-reexport.js +1 -2
- package/dist/executor-JGWZ7S6Z.cjs +1 -0
- package/dist/executor-L2MVKMXO.js +1 -0
- package/dist/{fontLoader-CFKpg0Ri.d.ts → fontLoader-BsqQnB4v.d.ts} +1 -1
- package/dist/{fontLoader-HZYfILUm.d.cts → fontLoader-DECXIoMr.d.cts} +1 -1
- package/dist/headless-reexport.cjs +4 -5
- package/dist/headless-reexport.d.cts +7 -7
- package/dist/headless-reexport.d.ts +7 -7
- package/dist/headless-reexport.js +4 -5
- package/dist/index.cjs +6 -7
- package/dist/index.css +0 -1
- package/dist/index.d.cts +12 -12
- package/dist/index.d.ts +12 -12
- package/dist/index.js +6 -7
- package/dist/lib-GD2QD2JK.js +1 -0
- package/dist/lib-HOLGQI5K.cjs +1 -0
- package/dist/mcp-reexport.cjs +9 -10
- package/dist/mcp-reexport.d.cts +2 -2
- package/dist/mcp-reexport.d.ts +2 -2
- package/dist/mcp-reexport.js +4 -5
- package/dist/{processTemplate-G37IM66O.js → processTemplate-3HN7Q3KT.js} +1 -2
- package/dist/processTemplate-BXZKWRQD.cjs +1 -0
- package/dist/{react-BjOCdeTs.d.ts → react-C6bgHDFl.d.ts} +8 -6
- package/dist/{react-UzAn4o7l.d.cts → react-CAlVCYa4.d.cts} +8 -6
- package/dist/react.cjs +1 -2
- package/dist/react.css +0 -1
- package/dist/react.d.cts +5 -5
- package/dist/react.d.ts +5 -5
- package/dist/react.js +1 -2
- package/dist/{registry-DjacfR6Q.d.cts → registry-BU-FbHh-.d.cts} +1 -1
- package/dist/{registry-CV6nYWqP.d.ts → registry-gRbkCooh.d.ts} +1 -1
- package/dist/selectionRects-7QU337P5.cjs +1 -0
- package/dist/selectionRects-V5RC2BYX.js +1 -0
- package/dist/styles.css +1 -1
- package/dist/{types-DwZ3xysp.d.ts → types-7wjInVMW.d.ts} +1 -1
- package/dist/{types-Bnp8rvJn.d.cts → types-DEEpBL9H.d.cts} +1 -1
- package/dist/ui.cjs +1 -2
- package/dist/ui.d.cts +32 -85
- package/dist/ui.d.ts +32 -85
- package/dist/ui.js +1 -2
- package/dist/{variableDetector-CMhJtM96.d.cts → variableDetector-B4oQJa2e.d.cts} +33 -2
- package/dist/{variableDetector-BaDeXz7D.d.ts → variableDetector-BXJaTkiB.d.ts} +33 -2
- package/package.json +2 -1
- package/dist/FindReplaceDialog-AWQXKEUQ.js.map +0 -1
- package/dist/FindReplaceDialog-I4SZDSVP.cjs +0 -2
- package/dist/FindReplaceDialog-I4SZDSVP.cjs.map +0 -1
- package/dist/FootnotePropertiesDialog-73VT2ZVZ.cjs.map +0 -1
- package/dist/FootnotePropertiesDialog-ZM3EF3EF.js.map +0 -1
- package/dist/HyperlinkDialog-BA25XUT5.js.map +0 -1
- package/dist/HyperlinkDialog-V63LPOT2.cjs +0 -2
- package/dist/HyperlinkDialog-V63LPOT2.cjs.map +0 -1
- package/dist/ImagePositionDialog-AIAMKPFK.js.map +0 -1
- package/dist/ImagePositionDialog-KMK7ROV2.cjs.map +0 -1
- package/dist/ImagePropertiesDialog-ERFCUVCW.js.map +0 -1
- package/dist/ImagePropertiesDialog-USMMRK6X.cjs.map +0 -1
- package/dist/TablePropertiesDialog-72CIUAZT.cjs.map +0 -1
- package/dist/TablePropertiesDialog-EMUEVYB3.js.map +0 -1
- package/dist/chunk-2CHPKB5A.cjs +0 -112
- package/dist/chunk-2CHPKB5A.cjs.map +0 -1
- package/dist/chunk-2QOEHCBX.js.map +0 -1
- package/dist/chunk-4QT5LPBA.cjs.map +0 -1
- package/dist/chunk-5DYSI4O4.cjs +0 -60
- package/dist/chunk-5DYSI4O4.cjs.map +0 -1
- package/dist/chunk-5FJXHXFV.cjs +0 -2
- package/dist/chunk-5FJXHXFV.cjs.map +0 -1
- package/dist/chunk-6FEWNF6B.js +0 -4
- package/dist/chunk-6FEWNF6B.js.map +0 -1
- package/dist/chunk-6LF5HZCV.js +0 -10
- package/dist/chunk-6LF5HZCV.js.map +0 -1
- package/dist/chunk-7JSPKVOW.js.map +0 -1
- package/dist/chunk-C33XDRDJ.cjs +0 -28
- package/dist/chunk-C33XDRDJ.cjs.map +0 -1
- package/dist/chunk-CV5WFE7K.js.map +0 -1
- package/dist/chunk-CXJRNISO.js +0 -2
- package/dist/chunk-CXJRNISO.js.map +0 -1
- package/dist/chunk-DJAEBZ33.cjs.map +0 -1
- package/dist/chunk-DP6Q75ZD.js +0 -28
- package/dist/chunk-DP6Q75ZD.js.map +0 -1
- package/dist/chunk-FDANI5P4.cjs.map +0 -1
- package/dist/chunk-FGVGZLBL.js.map +0 -1
- package/dist/chunk-GJ4GKSDU.cjs +0 -2
- package/dist/chunk-GJ4GKSDU.cjs.map +0 -1
- package/dist/chunk-GWBTKVFD.cjs.map +0 -1
- package/dist/chunk-JOYPFQW2.js.map +0 -1
- package/dist/chunk-L54YNLSE.js +0 -2
- package/dist/chunk-L54YNLSE.js.map +0 -1
- package/dist/chunk-LPGMLJMO.js +0 -259
- package/dist/chunk-LPGMLJMO.js.map +0 -1
- package/dist/chunk-M2T6XKT5.js.map +0 -1
- package/dist/chunk-OHG7ROFC.js +0 -11
- package/dist/chunk-OHG7ROFC.js.map +0 -1
- package/dist/chunk-PANKMCFX.cjs +0 -4
- package/dist/chunk-PANKMCFX.cjs.map +0 -1
- package/dist/chunk-Q6HUGWO6.js.map +0 -1
- package/dist/chunk-QDV75OJ4.js +0 -112
- package/dist/chunk-QDV75OJ4.js.map +0 -1
- package/dist/chunk-QEBO3EQP.cjs.map +0 -1
- package/dist/chunk-QVIZ775M.cjs +0 -259
- package/dist/chunk-QVIZ775M.cjs.map +0 -1
- package/dist/chunk-RMUMR42R.cjs +0 -10
- package/dist/chunk-RMUMR42R.cjs.map +0 -1
- package/dist/chunk-S26DZVRQ.cjs.map +0 -1
- package/dist/chunk-T2HQYRA7.cjs.map +0 -1
- package/dist/chunk-ULXNEG66.js +0 -60
- package/dist/chunk-ULXNEG66.js.map +0 -1
- package/dist/chunk-WD2HTKRR.cjs.map +0 -1
- package/dist/chunk-XZNOV52K.cjs.map +0 -1
- package/dist/chunk-Y6VCTLCJ.js.map +0 -1
- package/dist/core-plugins-reexport.cjs.map +0 -1
- package/dist/core-plugins-reexport.js.map +0 -1
- package/dist/core-reexport.cjs.map +0 -1
- package/dist/core-reexport.js.map +0 -1
- package/dist/executor-K5RXUTTR.js +0 -2
- package/dist/executor-K5RXUTTR.js.map +0 -1
- package/dist/executor-XIPIU3H4.cjs +0 -2
- package/dist/executor-XIPIU3H4.cjs.map +0 -1
- package/dist/headless-reexport.cjs.map +0 -1
- package/dist/headless-reexport.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.css.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/mcp-reexport.cjs.map +0 -1
- package/dist/mcp-reexport.js.map +0 -1
- package/dist/processTemplate-G37IM66O.js.map +0 -1
- package/dist/processTemplate-RFBGVH7T.cjs +0 -2
- package/dist/processTemplate-RFBGVH7T.cjs.map +0 -1
- package/dist/react.cjs.map +0 -1
- package/dist/react.css.map +0 -1
- package/dist/react.js.map +0 -1
- package/dist/selectionRects-6DU7HN7E.js +0 -2
- package/dist/selectionRects-6DU7HN7E.js.map +0 -1
- package/dist/selectionRects-YZSC24ZP.cjs +0 -2
- package/dist/selectionRects-YZSC24ZP.cjs.map +0 -1
- package/dist/ui.cjs.map +0 -1
- package/dist/ui.js.map +0 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import {e as e$1,i,c,d,a,ia as ia$1}from'./chunk-2Y6FLZ5Q.js';import {g,e,f}from'./chunk-QVPR2W5S.js';import {b}from'./chunk-ZTVQA46Q.js';import hr,{useRef,useState,useEffect,useCallback,useMemo,useLayoutEffect}from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var Qt=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M8 4v4M8 10v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),qt=()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M13 3L3 13M3 3h4v4M13 13h-4v-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),eo=()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M8 3v10M3 8h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),to=()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M3 4h10M3 8h7M3 12h4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),oo=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M2 3h6M5 3v6M3 5c0 2 1 4 2 4s2-2 2-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),jsx("path",{d:"M9 7l3 6M15 7l-3 6M10 11h4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),ro=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M6 6c0-1.1.9-2 2-2s2 .9 2 2c0 1.5-2 1.5-2 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),jsx("circle",{cx:"8",cy:"12",r:"0.5",fill:"currentColor"})]}),no=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M4 12l3-8 3 8M5 10h4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),jsx("path",{d:"M12 6l2 2-2 2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),io=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{x:"3",y:"3",width:"10",height:"10",rx:"1",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M6 7h4M6 9h4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),ao=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("circle",{cx:"8",cy:"8",r:"5",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M6 9c.5.5 1 1 2 1s1.5-.5 2-1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),jsx("circle",{cx:"6",cy:"7",r:"0.5",fill:"currentColor"}),jsx("circle",{cx:"10",cy:"7",r:"0.5",fill:"currentColor"})]}),so=()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M12 4L4 12M4 4l8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})});function lo(e){switch(e){case "askAI":return jsx(Qt,{});case "rewrite":return jsx(qt,{});case "expand":return jsx(eo,{});case "summarize":return jsx(to,{});case "translate":return jsx(oo,{});case "explain":return jsx(ro,{});case "fixGrammar":return jsx(no,{});case "makeFormal":return jsx(io,{});case "makeCasual":return jsx(ao,{});case "custom":return jsx(so,{});default:return null}}var co=({action:e$1,onClick:t,isHighlighted:o,onMouseEnter:i})=>{let n=e(e$1),r=f(e$1),a=lo(e$1);return jsxs("button",{type:"button",className:`docx-context-menu-item ${o?"docx-context-menu-item-highlighted":""}`,onClick:t,onMouseEnter:i,title:r,role:"menuitem",style:{display:"flex",alignItems:"center",gap:"8px",width:"100%",padding:"8px 12px",border:"none",background:o?"var(--doc-primary-light)":"transparent",cursor:"pointer",fontSize:"13px",color:"var(--doc-text)",textAlign:"left"},children:[jsx("span",{style:{display:"flex",color:"var(--doc-text-muted)"},children:a}),jsx("span",{children:n})]})},po=({isOpen:e,onSubmit:t,onClose:o,selectedText:i})=>{let[n,r]=useState(""),a=useRef(null);useEffect(()=>{e&&a.current&&a.current.focus();},[e]);let d=l=>{l.preventDefault(),n.trim()&&(t(n.trim()),r(""));},s=l=>{l.key==="Escape"&&o();};return e?jsx("div",{className:"docx-custom-prompt-dialog",style:{position:"absolute",top:"100%",left:0,right:0,padding:"8px",background:"white",borderTop:"1px solid var(--doc-border)"},children:jsxs("form",{onSubmit:d,children:[jsxs("div",{style:{marginBottom:"8px",fontSize:"12px",color:"var(--doc-text-muted)"},children:['Selected: "',i.slice(0,50),i.length>50?"...":"",'"']}),jsx("input",{ref:a,type:"text",value:n,onChange:l=>r(l.target.value),onKeyDown:s,placeholder:"Enter custom prompt...",style:{width:"100%",padding:"8px",border:"1px solid var(--doc-border-light)",borderRadius:"4px",fontSize:"13px"}}),jsxs("div",{style:{marginTop:"8px",display:"flex",gap:"8px",justifyContent:"flex-end"},children:[jsx("button",{type:"button",onClick:o,style:{padding:"6px 12px",border:"1px solid var(--doc-border-light)",borderRadius:"4px",background:"white",cursor:"pointer",fontSize:"12px"},children:"Cancel"}),jsx("button",{type:"submit",disabled:!n.trim(),style:{padding:"6px 12px",border:"none",borderRadius:"4px",background:n.trim()?"var(--doc-primary)":"var(--doc-border)",color:n.trim()?"white":"var(--doc-text-placeholder)",cursor:n.trim()?"pointer":"not-allowed",fontSize:"12px"},children:"Send"})]})]})}):null},Kn=({isOpen:e,position:t,selectedText:o,selectionContext:i,onAction:n,onClose:r,actions:a=g,showCustomPrompt:d=true,className:s=""})=>{let l=useRef(null),[h,m]=useState(0),[p,u]=useState(false),x=d?[...a,"custom"]:a;useEffect(()=>{if(!e)return;let c=b=>{l.current&&!l.current.contains(b.target)&&r();};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[e,r]),useEffect(()=>{if(!e)return;let c=b=>{switch(b.key){case "Escape":p?u(false):r();break;case "ArrowDown":b.preventDefault(),m(P=>(P+1)%x.length);break;case "ArrowUp":b.preventDefault(),m(P=>(P-1+x.length)%x.length);break;case "Enter":b.preventDefault();let C=x[h];C==="custom"?u(true):(n(C),r());break}};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[e,h,x,n,r,p]),useEffect(()=>{e&&(m(0),u(false));},[e]);let v=useCallback(()=>{let b=x.length*36+16,C=t.x,P=t.y;return typeof window<"u"&&(C+200>window.innerWidth&&(C=window.innerWidth-200-10),P+b>window.innerHeight&&(P=window.innerHeight-b-10),C<10&&(C=10),P<10&&(P=10)),{position:"fixed",top:P,left:C,minWidth:200,background:"white",border:"1px solid var(--doc-border-light)",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0, 0, 0, 0.15)",zIndex:1e4,padding:"4px 0",overflow:"hidden"}},[t,x.length]),g=c=>{c==="custom"?u(true):(n(c),r());},f=c=>{n("custom",c),r();};return !e||!o?null:jsxs("div",{ref:l,className:`docx-context-menu ${s}`,style:v(),role:"menu","aria-label":"AI actions menu",children:[jsxs("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--doc-border)",fontSize:"11px",color:"var(--doc-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:['"',o.slice(0,30),o.length>30?"...":"",'"']}),jsx("div",{role:"group",children:x.map((c,b)=>jsx(co,{action:c,onClick:()=>g(c),isHighlighted:b===h,onMouseEnter:()=>m(b)},c))}),d&&jsx(po,{isOpen:p,onSubmit:f,onClose:()=>u(false),selectedText:o})]})};function $n(){let[e,t]=useState(false),[o,i]=useState({x:0,y:0}),[n,r]=useState(""),[a,d]=useState(),s=useCallback((h,m,p)=>{h.preventDefault(),i({x:h.clientX,y:h.clientY}),r(m),d(p),t(true);},[]),l=useCallback(()=>{t(false);},[]);return {isOpen:e,position:o,selectedText:n,selectionContext:a,openMenu:s,closeMenu:l}}function Gn(e){return {rewrite:"Ctrl+Shift+R",summarize:"Ctrl+Shift+S",translate:"Ctrl+Shift+T",fixGrammar:"Ctrl+Shift+G"}[e]}function jn(e,t,o){return !(!t||t.trim().length===0)}function Zn(){return [...g]}function Xn(){return ["askAI","rewrite","expand","summarize","translate","explain","fixGrammar","makeFormal","makeCasual","custom"]}var uo=()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M3 8l4 4 6-8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),gt=()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})}),go=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M2 8a6 6 0 0111.318-2.828M14 8a6 6 0 01-11.318 2.828",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),jsx("path",{d:"M13 2v4h-4M3 14v-4h4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),mo=()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M11 2l3 3-9 9H2v-3l9-9z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),xo=()=>jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{animation:"spin 1s linear infinite"},children:[jsx("circle",{cx:"10",cy:"10",r:"8",stroke:"var(--doc-border)",strokeWidth:"2",fill:"none"}),jsx("path",{d:"M10 2a8 8 0 018 8",stroke:"var(--doc-primary)",strokeWidth:"2",strokeLinecap:"round",fill:"none"}),jsx("style",{children:`
|
|
2
|
+
@keyframes spin {
|
|
3
|
+
from { transform: rotate(0deg); }
|
|
4
|
+
to { transform: rotate(360deg); }
|
|
5
|
+
}
|
|
6
|
+
`})]});function fo(e,t){let o=[],i=e.split(/(\s+)/),n=t.split(/(\s+)/),r=0,a=0;for(;r<i.length||a<n.length;){if(r>=i.length){o.push({type:"added",text:n.slice(a).join("")});break}if(a>=n.length){o.push({type:"removed",text:i.slice(r).join("")});break}if(i[r]===n[a])o.push({type:"same",text:i[r]}),r++,a++;else {let s=n.indexOf(i[r],a),l=i.indexOf(n[a],r);s===-1&&l===-1?(o.push({type:"removed",text:i[r]}),o.push({type:"added",text:n[a]}),r++,a++):l!==-1&&(s===-1||l-r<=s-a)?(o.push({type:"added",text:n[a]}),a++):(o.push({type:"removed",text:i[r]}),r++);}}let d=[];for(let s of o)d.length>0&&d[d.length-1].type===s.type?d[d.length-1].text+=s.text:d.push(s);return d}var ho=({original:e,modified:t})=>{let o=fo(e,t);return jsx("div",{className:"docx-response-diff",style:{lineHeight:1.6,fontSize:"14px"},children:o.map((i,n)=>{let r={};switch(i.type){case "removed":r={textDecoration:"line-through",color:"#d32f2f",backgroundColor:"#ffebee"};break;case "added":r={color:"#2e7d32",backgroundColor:"#e8f5e9"};break;}return jsx("span",{style:r,children:i.text},n)})})},oi=({originalText:e$1,response:t,action:o,isLoading:i,error:n,onAccept:r,onReject:a,onRetry:d,allowEdit:s=true,showDiff:l=true,className:h="",position:m})=>{let[p,u]=useState(false),[x,v]=useState(""),g=useRef(null),f=useRef(null),c=t?.newText||"";useEffect(()=>{c&&v(c);},[c]),useEffect(()=>{p&&g.current&&(g.current.focus(),g.current.select());},[p]),useEffect(()=>{let I=D=>{D.key==="Escape"?p?(u(false),v(c)):a():D.key==="Enter"&&(D.metaKey||D.ctrlKey)&&(D.preventDefault(),b());};return document.addEventListener("keydown",I),()=>document.removeEventListener("keydown",I)},[p,c,a]);let b=useCallback(()=>{r(p?x:c);},[p,x,c,r]),C=useCallback(()=>{u(true);},[]),P=useCallback(()=>{u(false),v(c);},[c]),U={position:m?"fixed":"relative",...m&&{left:m.x,top:m.y},width:"400px",maxWidth:"90vw",maxHeight:"80vh",background:"white",border:"1px solid var(--doc-border-light)",borderRadius:"8px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.15)",zIndex:1e4,overflow:"hidden",display:"flex",flexDirection:"column"};return i?jsx("div",{ref:f,className:`docx-response-preview docx-response-preview-loading ${h}`,style:U,children:jsxs("div",{style:{padding:"24px",display:"flex",flexDirection:"column",alignItems:"center",gap:"16px"},children:[jsx(xo,{}),jsxs("div",{style:{color:"var(--doc-text-muted)",fontSize:"14px"},children:[e(o),"..."]})]})}):n?jsx("div",{ref:f,className:`docx-response-preview docx-response-preview-error ${h}`,style:U,children:jsxs("div",{style:{padding:"16px"},children:[jsx("div",{style:{padding:"12px",background:"var(--doc-error-bg)",borderRadius:"4px",color:"var(--doc-error)",fontSize:"13px",marginBottom:"16px"},children:n}),jsxs("div",{style:{display:"flex",gap:"8px",justifyContent:"flex-end"},children:[d&&jsxs("button",{type:"button",onClick:d,style:{display:"flex",alignItems:"center",gap:"4px",padding:"8px 16px",border:"1px solid var(--doc-border-light)",borderRadius:"4px",background:"white",cursor:"pointer",fontSize:"13px"},children:[jsx(go,{}),"Retry"]}),jsx("button",{type:"button",onClick:a,style:{padding:"8px 16px",border:"none",borderRadius:"4px",background:"var(--doc-border)",cursor:"pointer",fontSize:"13px"},children:"Close"})]})]})}):!t||!c?null:jsxs("div",{ref:f,className:`docx-response-preview ${h}`,style:U,children:[jsxs("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--doc-border)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[jsxs("div",{style:{fontWeight:500,fontSize:"14px",color:"var(--doc-text)"},children:[e(o)," Result"]}),jsx("button",{type:"button",onClick:a,style:{display:"flex",padding:"4px",border:"none",background:"transparent",cursor:"pointer",color:"var(--doc-text-muted)"},title:"Close (Esc)",children:jsx(gt,{})})]}),jsxs("div",{style:{padding:"16px",overflowY:"auto",flex:1},children:[p?jsxs("div",{children:[jsx("div",{style:{marginBottom:"8px",fontSize:"12px",color:"var(--doc-text-muted)"},children:"Edit the result before accepting:"}),jsx("textarea",{ref:g,value:x,onChange:I=>v(I.target.value),style:{width:"100%",minHeight:"120px",padding:"12px",border:"1px solid var(--doc-primary)",borderRadius:"4px",fontSize:"14px",lineHeight:1.6,resize:"vertical",fontFamily:"inherit"}})]}):l?jsxs("div",{children:[jsx("div",{style:{marginBottom:"8px",fontSize:"12px",color:"var(--doc-text-muted)"},children:"Changes:"}),jsx(ho,{original:e$1,modified:c})]}):jsxs("div",{children:[jsx("div",{style:{marginBottom:"8px",fontSize:"12px",color:"var(--doc-text-muted)"},children:"Original:"}),jsx("div",{style:{padding:"8px 12px",background:"var(--doc-bg-subtle)",borderRadius:"4px",marginBottom:"16px",textDecoration:"line-through",color:"var(--doc-text-placeholder)",fontSize:"13px"},children:e$1}),jsx("div",{style:{marginBottom:"8px",fontSize:"12px",color:"var(--doc-text-muted)"},children:"New:"}),jsx("div",{style:{padding:"8px 12px",background:"#e8f5e9",borderRadius:"4px",color:"#2e7d32",fontSize:"13px"},children:c})]}),t.warnings&&t.warnings.length>0&&jsx("div",{style:{marginTop:"16px",padding:"8px 12px",background:"var(--doc-warning-bg)",borderRadius:"4px",fontSize:"12px",color:"var(--doc-warning)"},children:t.warnings.map((I,D)=>jsx("div",{children:I},D))})]}),jsxs("div",{style:{padding:"12px 16px",borderTop:"1px solid var(--doc-border)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[jsxs("div",{children:[s&&!p&&jsxs("button",{type:"button",onClick:C,style:{display:"flex",alignItems:"center",gap:"4px",padding:"6px 12px",border:"1px solid var(--doc-border-light)",borderRadius:"4px",background:"white",cursor:"pointer",fontSize:"12px",color:"var(--doc-text-muted)"},children:[jsx(mo,{}),"Edit"]}),p&&jsx("button",{type:"button",onClick:P,style:{padding:"6px 12px",border:"1px solid var(--doc-border-light)",borderRadius:"4px",background:"white",cursor:"pointer",fontSize:"12px",color:"var(--doc-text-muted)"},children:"Cancel Edit"})]}),jsxs("div",{style:{display:"flex",gap:"8px"},children:[jsxs("button",{type:"button",onClick:a,style:{display:"flex",alignItems:"center",gap:"4px",padding:"8px 16px",border:"1px solid var(--doc-border-light)",borderRadius:"4px",background:"white",cursor:"pointer",fontSize:"13px",color:"var(--doc-text-muted)"},children:[jsx(gt,{}),"Reject"]}),jsxs("button",{type:"button",onClick:b,style:{display:"flex",alignItems:"center",gap:"4px",padding:"8px 16px",border:"none",borderRadius:"4px",background:"var(--doc-primary)",cursor:"pointer",fontSize:"13px",color:"white"},children:[jsx(uo,{}),"Accept"]})]})]})]})};function ri(){let[e,t]=useState({isVisible:false,originalText:"",response:null,action:"rewrite",isLoading:false}),o=useCallback((a,d,s)=>{t({isVisible:true,originalText:a,response:null,action:d,isLoading:true,position:s});},[]),i=useCallback(a=>{t(d=>({...d,response:a,isLoading:false}));},[]),n=useCallback(a=>{t(d=>({...d,error:a,isLoading:false}));},[]),r=useCallback(()=>{t(a=>({...a,isVisible:false}));},[]);return {state:e,showPreview:o,setResponse:i,setError:n,hidePreview:r}}function ni(e,t){return {success:true,newText:e,warnings:t}}function ii(e){return {success:false,error:e}}var mt=[{action:"cut",label:"Cut",shortcut:"Ctrl+X"},{action:"copy",label:"Copy",shortcut:"Ctrl+C"},{action:"paste",label:"Paste",shortcut:"Ctrl+V"},{action:"pasteAsPlainText",label:"Paste as Plain Text",shortcut:"Ctrl+Shift+V",dividerAfter:true},{action:"delete",label:"Delete",shortcut:"Del",dividerAfter:true},{action:"selectAll",label:"Select All",shortcut:"Ctrl+A"}],vo=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("circle",{cx:"4",cy:"12",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),jsx("circle",{cx:"12",cy:"12",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M5.5 10.5L10.5 3M10.5 10.5L5.5 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),yo=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{x:"5",y:"5",width:"8",height:"9",rx:"1",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M11 5V3a1 1 0 00-1-1H4a1 1 0 00-1 1v8a1 1 0 001 1h2",stroke:"currentColor",strokeWidth:"1.5"})]}),Co=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{x:"3",y:"3",width:"10",height:"11",rx:"1",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M6 3V2a1 1 0 011-1h2a1 1 0 011 1v1",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M6 8h4M6 11h4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),So=()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),wo=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"1",stroke:"currentColor",strokeWidth:"1.5",strokeDasharray:"2 2"}),jsx("rect",{x:"4",y:"4",width:"8",height:"8",fill:"currentColor",opacity:"0.3"})]});function ko(e){switch(e){case "cut":return jsx(vo,{});case "copy":return jsx(yo,{});case "paste":case "pasteAsPlainText":return jsx(Co,{});case "delete":return jsx(So,{});case "selectAll":return jsx(wo,{});default:return null}}var To=({item:e,onClick:t,isHighlighted:o,onMouseEnter:i})=>e.action==="separator"?jsx("div",{className:"docx-text-context-menu-separator",style:{height:"1px",backgroundColor:"var(--doc-border)",margin:"4px 12px"}}):jsxs(Fragment,{children:[jsxs("button",{type:"button",className:`docx-text-context-menu-item ${o?"docx-text-context-menu-item-highlighted":""} ${e.disabled?"docx-text-context-menu-item-disabled":""}`,onClick:t,onMouseEnter:i,disabled:e.disabled,role:"menuitem","aria-disabled":e.disabled,style:{display:"flex",alignItems:"center",gap:"10px",width:"100%",padding:"8px 12px",border:"none",background:o&&!e.disabled?"var(--doc-primary-light)":"transparent",cursor:e.disabled?"not-allowed":"pointer",fontSize:"13px",color:e.disabled?"var(--doc-text-subtle)":"var(--doc-text)",textAlign:"left",opacity:e.disabled?.6:1},children:[jsx("span",{style:{display:"flex",color:e.disabled?"var(--doc-border)":"var(--doc-text-muted)"},children:ko(e.action)}),jsx("span",{style:{flex:1},children:e.label}),e.shortcut&&jsx("span",{style:{fontSize:"11px",color:"var(--doc-text-subtle)",fontFamily:"monospace"},children:e.shortcut})]}),e.dividerAfter&&jsx("div",{className:"docx-text-context-menu-separator",style:{height:"1px",backgroundColor:"var(--doc-border)",margin:"4px 12px"}})]}),di=({isOpen:e,position:t,hasSelection:o,isEditable:i,hasClipboardContent:n=true,onAction:r,onClose:a,items:d,className:s=""})=>{let l=useRef(null),[h,m]=useState(0),p=(d||mt).map(g=>{let f=(()=>{if(g.disabled!==void 0)return g.disabled;switch(g.action){case "cut":case "copy":case "delete":return !o;case "paste":case "pasteAsPlainText":return !i||!n;default:return false}})();return {...g,disabled:f}}),u=p.filter(g=>g.action!=="separator");useEffect(()=>{if(!e)return;let g=c=>{l.current&&!l.current.contains(c.target)&&a();},f=setTimeout(()=>{document.addEventListener("mousedown",g);},0);return ()=>{clearTimeout(f),document.removeEventListener("mousedown",g);}},[e,a]),useEffect(()=>{if(!e)return;let g=f=>{switch(f.key){case "Escape":f.preventDefault(),a();break;case "ArrowDown":f.preventDefault(),m(b=>{let C=(b+1)%u.length;for(;u[C]?.disabled&&C!==b;)C=(C+1)%u.length;return C});break;case "ArrowUp":f.preventDefault(),m(b=>{let C=(b-1+u.length)%u.length;for(;u[C]?.disabled&&C!==b;)C=(C-1+u.length)%u.length;return C});break;case "Enter":f.preventDefault();let c=u[h];c&&!c.disabled&&(r(c.action),a());break}};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[e,h,u,r,a]),useEffect(()=>{e&&m(0);},[e]);let x=useCallback(()=>{let f=p.length*36+16,c=t.x,b=t.y;return typeof window<"u"&&(c+220>window.innerWidth&&(c=window.innerWidth-220-10),b+f>window.innerHeight&&(b=window.innerHeight-f-10),c<10&&(c=10),b<10&&(b=10)),{position:"fixed",top:b,left:c,minWidth:220,background:"white",border:"1px solid var(--doc-border-light)",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0, 0, 0, 0.15)",zIndex:1e4,padding:"4px 0",overflow:"hidden"}},[t,p.length]),v=g=>{g.disabled||(r(g.action),a());};return e?jsx("div",{ref:l,className:`docx-text-context-menu ${s}`,style:x(),role:"menu","aria-label":"Text editing menu",children:p.map((g,f)=>{let c=u.findIndex(b=>b===g);return jsx(To,{item:g,onClick:()=>v(g),isHighlighted:c===h,onMouseEnter:()=>{c>=0&&!g.disabled&&m(c);}},`${g.action}-${f}`)})}):null};function pi(e={}){let{enabled:t=true,isEditable:o=true,containerRef:i,onAction:n}=e,[r,a]=useState(false),[d,s]=useState({x:0,y:0}),[l,h]=useState(false),m=useCallback(()=>{let g=window.getSelection(),f=g&&!g.isCollapsed&&g.toString().length>0;return h(!!f),!!f},[]),p=useCallback(g=>{t&&(g.preventDefault(),g.stopPropagation(),m(),s({x:g.clientX,y:g.clientY}),a(true));},[t,m]),u=useCallback(()=>{a(false);},[]),x=useCallback(g=>{switch(u(),g){case "cut":document.execCommand("cut");break;case "copy":document.execCommand("copy");break;case "paste":document.execCommand("paste");break;case "pasteAsPlainText":navigator.clipboard.readText?.().then(f=>{document.execCommand("insertText",false,f);}).catch(()=>{document.execCommand("paste");});break;case "delete":document.execCommand("delete");break;case "selectAll":document.execCommand("selectAll");break}n?.(g);},[u,n]),v=useCallback(g=>{p(g);},[p]);return useEffect(()=>{if(!r)return;let g=f=>{f.key==="Escape"&&u();};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[r,u]),{isOpen:r,position:d,hasSelection:l,openMenu:p,closeMenu:u,handleAction:x,onContextMenu:v}}function ui(e){return {cut:"Cut",copy:"Copy",paste:"Paste",pasteAsPlainText:"Paste as Plain Text",selectAll:"Select All",delete:"Delete",separator:""}[e]}function gi(e){return {cut:"Ctrl+X",copy:"Ctrl+C",paste:"Ctrl+V",pasteAsPlainText:"Ctrl+Shift+V",selectAll:"Ctrl+A",delete:"Del",separator:""}[e]}function mi(){return [...mt]}function xi(e,t,o){switch(e){case "cut":case "copy":case "delete":return t;case "paste":case "pasteAsPlainText":return o;case "selectAll":return true;default:return true}}var Io=[{name:"Black",hex:"000000"},{name:"Dark Red",hex:"7F0000"},{name:"Dark Orange",hex:"FF6600"},{name:"Dark Yellow",hex:"808000"},{name:"Dark Green",hex:"006400"},{name:"Dark Teal",hex:"008080"},{name:"Dark Blue",hex:"000080"},{name:"Dark Purple",hex:"4B0082"},{name:"Dark Gray",hex:"404040"},{name:"Gray",hex:"808080"},{name:"Red",hex:"FF0000"},{name:"Orange",hex:"FF9900"},{name:"Yellow",hex:"FFFF00"},{name:"Light Green",hex:"00FF00"},{name:"Cyan",hex:"00FFFF"},{name:"Light Blue",hex:"0066FF"},{name:"Blue",hex:"0000FF"},{name:"Purple",hex:"9900FF"},{name:"Magenta",hex:"FF00FF"},{name:"Pink",hex:"FF66FF"},{name:"Light Red",hex:"FFCCCC"},{name:"Light Orange",hex:"FFE5CC"},{name:"Light Yellow",hex:"FFFFCC"},{name:"Pale Green",hex:"CCFFCC"},{name:"Light Cyan",hex:"CCFFFF"},{name:"Sky Blue",hex:"CCE5FF"},{name:"Light Blue 2",hex:"CCCCFF"},{name:"Lavender",hex:"E5CCFF"},{name:"Light Magenta",hex:"FFCCFF"},{name:"White",hex:"FFFFFF"}],Po=[{name:"No Color",hex:""},{name:"Yellow",hex:"FFFF00"},{name:"Bright Green",hex:"00FF00"},{name:"Cyan",hex:"00FFFF"},{name:"Magenta",hex:"FF00FF"},{name:"Blue",hex:"0000FF"},{name:"Red",hex:"FF0000"},{name:"Dark Blue",hex:"00008B"},{name:"Teal",hex:"008080"},{name:"Green",hex:"008000"},{name:"Violet",hex:"800080"},{name:"Dark Red",hex:"8B0000"},{name:"Dark Yellow",hex:"808000"},{name:"Gray 50%",hex:"808080"},{name:"Gray 25%",hex:"C0C0C0"},{name:"Black",hex:"000000"}],Lo={position:"relative",display:"inline-block"},Ae={display:"flex",alignItems:"center",justifyContent:"center",width:"40px",height:"32px",padding:"2px 6px",border:"none",borderRadius:"4px",backgroundColor:"transparent",cursor:"pointer",transition:"background-color 0.1s",color:"var(--doc-text-muted)"},Ro={...Ae,backgroundColor:"var(--doc-bg-hover)"},Do={...Ae,backgroundColor:"var(--doc-primary-light)",color:"var(--doc-primary)"},Ao={...Ae,cursor:"default",opacity:.38},Mo={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"0"},Oo={width:"14px",height:"3px",borderRadius:"0",marginTop:"-2px"},_o={display:"grid",gap:"2px"},Me={width:"20px",height:"20px",border:"1px solid #ccc",borderRadius:"2px",cursor:"pointer",transition:"transform 0.1s, border-color 0.1s",padding:0},No={...Me,transform:"scale(1.1)",borderColor:"#333",zIndex:1},Fo={...Me,borderWidth:"2px",borderColor:"#0066cc",boxShadow:"0 0 0 1px #0066cc"},Bo={...Me,position:"relative",backgroundColor:"#fff"},zo={position:"absolute",top:"50%",left:"-2px",right:"-2px",height:"2px",backgroundColor:"#ff0000",transform:"rotate(-45deg)"},ft={fontSize:"11px",color:"#666",marginBottom:"4px",marginTop:"8px"},Wo={marginTop:"8px",paddingTop:"8px",borderTop:"1px solid #eee"},Yo={display:"flex",alignItems:"center",gap:"8px"},Uo={width:"70px",height:"24px",padding:"2px 6px",border:"1px solid #ccc",borderRadius:"3px",fontSize:"12px"},Ho={height:"24px",padding:"0 8px",border:"1px solid #ccc",borderRadius:"3px",backgroundColor:"#f5f5f5",fontSize:"12px",cursor:"pointer"},Vo=()=>jsx(d,{name:"format_color_text",size:18}),Ko=()=>jsx(d,{name:"ink_highlighter",size:18}),$o=()=>jsx(d,{name:"arrow_drop_down",size:14});function Go({colors:e,selectedColor:t,onSelect:o,columns:i=10,cellSize:n=20}){let[r,a]=useState(null),d={..._o,gridTemplateColumns:`repeat(${i}, ${n}px)`};return jsx("div",{style:d,className:"docx-color-grid",role:"grid",children:e.map((s,l)=>{let h=t?.toUpperCase()===s.hex.toUpperCase(),m=r===l,p=s.hex==="",u={...h?Fo:m?No:Me,width:`${n}px`,height:`${n}px`};return p||(u.backgroundColor=`#${s.hex}`),jsx("button",{type:"button",style:p?{...Bo,...u}:u,onClick:()=>o(s),onMouseDown:x=>x.preventDefault(),onMouseEnter:()=>a(l),onMouseLeave:()=>a(null),title:s.name,role:"gridcell","aria-label":s.name,"aria-selected":h,children:p&&jsx("span",{style:zo})},`${s.hex}-${l}`)})})}function Si({value:e,onChange:t,type:o="text",theme:i,colors:n,disabled:r=false,className:a,style:d,title:s,children:l,dropdownWidth:h=230,showNoColor:m=true,showMoreColors:p=true}){let[u,x]=useState(false),[v,g]=useState(false),[f,c]=useState(""),b$1=useCallback(()=>x(false),[]),{containerRef:C,dropdownRef:P,dropdownStyle:U}=e$1({isOpen:u,onClose:b$1}),I=useMemo(()=>{if(o==="highlight")return Po;let M=[...Io];return m&&M.unshift({name:"Automatic",hex:"000000"}),M},[o,m]),D=n||I,N=useMemo(()=>e?e.startsWith("#")?e:o==="highlight"?b(e)||"transparent":`#${e}`:o==="text"?"#000000":"transparent",[e,o]),y=useCallback(M=>{t?.(M.hex),x(false);},[t]),H=useCallback(()=>{let M=f.replace(/^#/,"").toUpperCase();/^[0-9A-F]{6}$/i.test(M)&&(t?.(M),x(false),c(""));},[f,t]),T=useCallback(()=>{r||x(M=>!M);},[r]),L=r?Ao:u?Do:v?Ro:Ae,oe=o==="text"?"Font Color":"Text Highlight Color";return jsxs("div",{ref:C,className:`docx-color-picker docx-color-picker-${o} ${a||""}`,style:{...Lo,...d},children:[jsxs("button",{type:"button",className:"docx-color-picker-button",style:L,onClick:T,onMouseDown:M=>M.preventDefault(),onMouseEnter:()=>g(true),onMouseLeave:()=>g(false),disabled:r,title:s||oe,"aria-label":s||oe,"aria-haspopup":"true","aria-expanded":u,children:[l||jsxs("div",{style:Mo,children:[o==="text"?jsx(Vo,{}):jsx(Ko,{}),jsx("div",{style:{...Oo,backgroundColor:N==="transparent"?"#fff":N,border:N==="transparent"?"1px solid #ccc":"none"}})]}),jsx($o,{})]}),u&&jsxs("div",{ref:P,className:"docx-color-picker-dropdown",style:{...U,padding:"8px",backgroundColor:"#fff",border:"1px solid #ccc",borderRadius:"4px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",width:h},role:"dialog","aria-label":`${o==="text"?"Font":"Highlight"} color picker`,onMouseDown:M=>M.preventDefault(),children:[o==="highlight"&&jsx("div",{style:ft,children:"Highlight Colors"}),jsx(Go,{colors:D,selectedColor:e,onSelect:y,columns:o==="highlight"?8:10}),p&&o==="text"&&jsxs("div",{style:Wo,children:[jsx("div",{style:ft,children:"Custom Color"}),jsxs("div",{style:Yo,children:[jsx("span",{style:{fontSize:"12px",color:"#666"},children:"#"}),jsx("input",{type:"text",style:Uo,value:f,onChange:M=>c(M.target.value.replace(/[^0-9A-Fa-f]/g,"").slice(0,6)),onKeyDown:M=>{M.key==="Enter"&&H();},placeholder:"FF0000",maxLength:6,"aria-label":"Custom hex color"}),jsx("button",{type:"button",style:Ho,onClick:H,disabled:!/^[0-9A-Fa-f]{6}$/.test(f),children:"Apply"})]})]})]})]})}var jo={includeHeaders:true,includeFooters:true,includePageNumbers:true,pageRange:null,scale:1,printBackground:true,margins:"default"};function Ti({onPrint:e,disabled:t=false,label:o="Print",className:i="",style:n,showIcon:r=true,compact:a=false}){let d={display:"flex",alignItems:"center",gap:a?"4px":"6px",padding:a?"4px 8px":"6px 12px",fontSize:a?"13px":"14px",backgroundColor:"white",border:"1px solid var(--doc-border)",borderRadius:"4px",cursor:t?"not-allowed":"pointer",color:t?"var(--doc-text-muted)":"var(--doc-text)",opacity:t?.6:1,transition:"background-color 0.15s, border-color 0.15s",...n};return jsxs("button",{className:`docx-print-button ${i}`.trim(),style:d,onClick:e,disabled:t,"aria-label":o,title:o,children:[r&&jsx(Zo,{size:a?14:16}),!a&&jsx("span",{children:o})]})}function Ei(){return jsx("style",{children:`
|
|
7
|
+
@media print {
|
|
8
|
+
/* Hide everything except print content */
|
|
9
|
+
body * {
|
|
10
|
+
visibility: hidden;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.docx-print-pages,
|
|
14
|
+
.docx-print-pages * {
|
|
15
|
+
visibility: visible;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.docx-print-pages {
|
|
19
|
+
position: absolute;
|
|
20
|
+
left: 0;
|
|
21
|
+
top: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* Remove shadows and margins in print */
|
|
25
|
+
.docx-print-page {
|
|
26
|
+
box-shadow: none !important;
|
|
27
|
+
margin: 0 !important;
|
|
28
|
+
page-break-after: always;
|
|
29
|
+
page-break-inside: avoid;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* Ensure images print */
|
|
33
|
+
img {
|
|
34
|
+
max-width: 100%;
|
|
35
|
+
page-break-inside: avoid;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* Ensure tables don't break badly */
|
|
39
|
+
table {
|
|
40
|
+
page-break-inside: avoid;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
tr {
|
|
44
|
+
page-break-inside: avoid;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Keep headings with content */
|
|
48
|
+
h1, h2, h3, h4, h5, h6 {
|
|
49
|
+
page-break-after: avoid;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Avoid orphan lines */
|
|
53
|
+
p {
|
|
54
|
+
orphans: 3;
|
|
55
|
+
widows: 3;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@page {
|
|
60
|
+
margin: 0;
|
|
61
|
+
size: auto;
|
|
62
|
+
}
|
|
63
|
+
`})}function Zo({size:e=18}){return jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("polyline",{points:"6 9 6 2 18 2 18 9"}),jsx("path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"}),jsx("rect",{x:"6",y:"14",width:"12",height:"8"})]})}function Ii(){window.print();}function Pi(e="Document",t){let o=window.open("","_blank");return o?(o.document.write(`
|
|
64
|
+
<!DOCTYPE html>
|
|
65
|
+
<html>
|
|
66
|
+
<head>
|
|
67
|
+
<title>${e}</title>
|
|
68
|
+
<style>
|
|
69
|
+
@media print {
|
|
70
|
+
body {
|
|
71
|
+
margin: 0;
|
|
72
|
+
padding: 0;
|
|
73
|
+
}
|
|
74
|
+
@page {
|
|
75
|
+
margin: 0;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
</style>
|
|
79
|
+
</head>
|
|
80
|
+
<body>
|
|
81
|
+
${t}
|
|
82
|
+
</body>
|
|
83
|
+
</html>
|
|
84
|
+
`),o.document.close(),o):null}function Li(){return {...jo}}function Ri(e,t){if(!e||!e.trim())return null;let o=e.trim();if(/^\d+$/.test(o)){let n=parseInt(o,10);return n>=1&&n<=t?{start:n,end:n}:null}let i=o.match(/^(\d+)-(\d+)$/);if(i){let n=parseInt(i[1],10),r=parseInt(i[2],10);return n>=1&&r<=t&&n<=r?{start:n,end:r}:null}return null}function Di(e,t){return e?e.start===e.end?`Page ${e.start}`:`Pages ${e.start}-${e.end}`:`All (${t} pages)`}function Ai(){return typeof window<"u"&&typeof window.print=="function"}function Yi({onAction:e,disabled:t=false,canMerge:o=false,canSplit:i$1=false}){let n=useCallback(l=>{l.preventDefault(),l.stopPropagation();},[]),r=useCallback(()=>{o&&e("mergeCells");},[e,o]),a$1=useCallback(()=>{i$1&&e("splitCell");},[e,i$1]),d$1=jsx(i,{content:"Merge cells",children:jsx(c,{variant:"ghost",size:"icon-sm",className:a("text-slate-500 hover:text-slate-900 hover:bg-slate-100/80",(t||!o)&&"opacity-30 cursor-not-allowed"),onMouseDown:n,onClick:r,disabled:t||!o,"aria-label":"Merge cells","data-testid":"toolbar-table-merge",children:jsx(d,{name:"call_merge",size:20})})}),s=jsx(i,{content:"Split cell",children:jsx(c,{variant:"ghost",size:"icon-sm",className:a("text-slate-500 hover:text-slate-900 hover:bg-slate-100/80",(t||!i$1)&&"opacity-30 cursor-not-allowed"),onMouseDown:n,onClick:a$1,disabled:t||!i$1,"aria-label":"Split cell","data-testid":"toolbar-table-split",children:jsx(d,{name:"call_split",size:20})})});return jsxs(Fragment,{children:[d$1,s]})}var qo=[{action:"addRowAbove",icon:"keyboard_arrow_up",label:"Insert row above",testId:"toolbar-table-add-row-above"},{action:"addRowBelow",icon:"keyboard_arrow_down",label:"Insert row below",testId:"toolbar-table-add-row-below"},{action:"addColumnLeft",icon:"keyboard_arrow_left",label:"Insert column left",testId:"toolbar-table-add-col-left"},{action:"addColumnRight",icon:"keyboard_arrow_right",label:"Insert column right",testId:"toolbar-table-add-col-right"}];function Xi({onAction:e,disabled:t=false}){let o=useCallback(i=>{i.preventDefault(),i.stopPropagation();},[]);return jsx(Fragment,{children:qo.map(({action:i$1,icon:n,label:r,testId:a$1})=>jsx(i,{content:r,children:jsx(c,{variant:"ghost",size:"icon-sm",className:a("text-slate-500 hover:text-slate-900 hover:bg-slate-100/80",t&&"opacity-30 cursor-not-allowed"),onMouseDown:o,onClick:()=>!t&&e(i$1),disabled:t,"aria-label":r,"data-testid":a$1,children:jsx(d,{name:n,size:20})})},typeof i$1=="string"?i$1:i$1.type))})}var tr="var(--doc-error)",or="var(--doc-success)",rr="You have unsaved changes. Are you sure you want to leave?",nr=({size:e=16})=>jsxs("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M3 2h8l2 2v9a1 1 0 01-1 1H3a1 1 0 01-1-1V3a1 1 0 011-1z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),jsx("path",{d:"M5 2v4h5V2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),jsx("path",{d:"M5 14v-4h6v4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),ir=({size:e=16})=>jsxs("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M8 5v4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),jsx("circle",{cx:"8",cy:"11",r:"0.5",fill:"currentColor"})]}),ar=`
|
|
85
|
+
@keyframes docx-unsaved-pulse {
|
|
86
|
+
0%, 100% { opacity: 1; }
|
|
87
|
+
50% { opacity: 0.6; }
|
|
88
|
+
}
|
|
89
|
+
`,sr=(e,t,o,i,n,r,a)=>{let d={display:"inline-flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease",animation:o&&i?"docx-unsaved-pulse 2s ease-in-out infinite":"none"};switch(t==="absolute-top-right"?(d.position="absolute",d.top="4px",d.right="4px"):t==="absolute-top-left"&&(d.position="absolute",d.top="4px",d.left="4px"),e){case "dot":return {...d,width:`${a}px`,height:`${a}px`,borderRadius:"50%",backgroundColor:o?n:r};case "badge":return {...d,padding:"2px 8px",borderRadius:"10px",fontSize:"11px",fontWeight:500,backgroundColor:o?n:r,color:"white"};case "text":return {...d,fontSize:"12px",color:o?n:r,fontWeight:500};case "icon":return {...d,color:o?n:r};default:return d}},ta=({hasUnsavedChanges:e,variant:t="dot",position:o="inline",showPulse:i=true,label:n="Unsaved",savedLabel:r="Saved",showWhenSaved:a=false,unsavedColor:d=tr,savedColor:s=or,size:l=8,className:h="",style:m,onClick:p,title:u})=>{if(useEffect(()=>{if(!i||!e)return;let c="docx-unsaved-pulse-keyframes";if(!document.getElementById(c)){let b=document.createElement("style");b.id=c,b.textContent=ar,document.head.appendChild(b);}},[i,e]),!e&&!a)return null;let v={...sr(t,o,e,i,d,s,l),...m,cursor:p?"pointer":void 0},g=e?"Document has unsaved changes":"All changes saved",f=()=>{switch(t){case "dot":return null;case "badge":return e?n:r;case "text":return e?n:r;case "icon":return e?jsx(ir,{size:l}):jsx(nr,{size:l});default:return null}};return jsx("span",{className:`docx-unsaved-indicator docx-unsaved-indicator-${t} ${e?"docx-unsaved":"docx-saved"} ${h}`,style:v,onClick:p,title:u??g,role:p?"button":"status","aria-label":e?"Unsaved changes":"All changes saved",children:f()})};function oa(e={}){let{document:t,warnBeforeLeave:o=true,warningMessage:i=rr,enabled:n=true,onChangeStatusChange:r}=e,[a,d]=useState(false),[s,l]=useState(0),[h,m]=useState(null),p=useRef(null),u=useRef(false),x=useCallback(c=>{if(!c)return null;try{return JSON.stringify(c.package)}catch{return null}},[]),v=useCallback(()=>{n&&(d(false),l(0),m(t??null),p.current=x(t));},[n,t,x]),g=useCallback(()=>{n&&(a||(d(true),r?.(true)),l(c=>c+1));},[n,a,r]),f=useCallback(c=>{let b=c!==void 0?c:t;d(false),l(0),m(b??null),p.current=x(b),u.current=true;},[t,x]);return useEffect(()=>{!n||!t||u.current||f(t);},[n,t,f]),useEffect(()=>{if(!n||!t||!u.current)return;let c=x(t),b=p.current;if(c!==b){let C=x(h);c!==C?(a||(d(true),r?.(true)),l(P=>P+1)):a&&(d(false),r?.(false)),p.current=c;}},[n,t,h,a,x,r]),useEffect(()=>{if(!n||!o||!a)return;let c=b=>(b.preventDefault(),b.returnValue=i,i);return window.addEventListener("beforeunload",c),()=>window.removeEventListener("beforeunload",c)},[n,o,a,i]),{hasUnsavedChanges:a,markAsSaved:v,markAsChanged:g,resetTracking:f,lastSavedDocument:h,changeCount:s}}function ra(e){return {dot:"Dot",badge:"Badge",text:"Text",icon:"Icon"}[e]}function na(){return ["dot","badge","text","icon"]}function ia(){return ["inline","absolute-top-right","absolute-top-left"]}function aa(){let e=0,t=null,o=false;return {markChanged:()=>{e++,o=true;},markSaved:()=>{o=false,t=new Date;},getState:()=>({changeCount:e,lastSaveTime:t,hasUnsavedChanges:o}),reset:()=>{e=0,t=null,o=false;}}}var lr={small:{size:16,strokeWidth:2,fontSize:11},medium:{size:32,strokeWidth:3,fontSize:13},large:{size:48,strokeWidth:4,fontSize:14}},cr="var(--doc-primary)",dr=300,pr=`
|
|
90
|
+
@keyframes docx-loading-spin {
|
|
91
|
+
0% { transform: rotate(0deg); }
|
|
92
|
+
100% { transform: rotate(360deg); }
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
@keyframes docx-loading-pulse {
|
|
96
|
+
0%, 100% { opacity: 1; transform: scale(1); }
|
|
97
|
+
50% { opacity: 0.5; transform: scale(0.95); }
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@keyframes docx-loading-dots {
|
|
101
|
+
0%, 80%, 100% { transform: scale(0); opacity: 0.5; }
|
|
102
|
+
40% { transform: scale(1); opacity: 1; }
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@keyframes docx-loading-bar {
|
|
106
|
+
0% { left: -35%; right: 100%; }
|
|
107
|
+
60% { left: 100%; right: -90%; }
|
|
108
|
+
100% { left: 100%; right: -90%; }
|
|
109
|
+
}
|
|
110
|
+
`,ur=({size:e,strokeWidth:t,color:o})=>{let i=(e-t)/2,n=i*2*Math.PI;return jsxs("svg",{width:e,height:e,viewBox:`0 0 ${e} ${e}`,style:{animation:"docx-loading-spin 1s linear infinite"},children:[jsx("circle",{cx:e/2,cy:e/2,r:i,fill:"none",stroke:o,strokeWidth:t,strokeLinecap:"round",strokeDasharray:`${n*.75} ${n}`,opacity:.25}),jsx("circle",{cx:e/2,cy:e/2,r:i,fill:"none",stroke:o,strokeWidth:t,strokeLinecap:"round",strokeDasharray:`${n*.25} ${n}`,transform:`rotate(-90 ${e/2} ${e/2})`})]})},gr=({size:e,color:t})=>{let o=e/4,i=o/2;return jsx("div",{style:{display:"flex",gap:`${i}px`},children:[0,1,2].map(n=>jsx("div",{style:{width:o,height:o,borderRadius:"50%",backgroundColor:t,animation:`docx-loading-dots 1.4s ease-in-out ${n*.16}s infinite both`}},n))})},mr=({size:e,color:t})=>jsx("div",{style:{width:e*3,height:e/4,backgroundColor:`${t}20`,borderRadius:e/8,overflow:"hidden",position:"relative"},children:jsx("div",{style:{position:"absolute",top:0,bottom:0,left:0,right:0,backgroundColor:t,borderRadius:e/8,animation:"docx-loading-bar 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite"}})}),xr=({size:e,color:t})=>jsx("div",{style:{width:e,height:e,borderRadius:"50%",backgroundColor:t,animation:"docx-loading-pulse 1.5s ease-in-out infinite"}}),fr=({size:e,color:t,progress:o,showText:i,fontSize:n})=>{let r=Math.max(0,Math.min(100,o));return jsxs("div",{style:{width:e*3,height:e/4,backgroundColor:`${t}20`,borderRadius:e/8,overflow:"hidden",position:"relative"},children:[jsx("div",{style:{position:"absolute",top:0,bottom:0,left:0,width:`${r}%`,backgroundColor:t,borderRadius:e/8,transition:"width 0.3s ease"}}),i&&jsxs("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",fontSize:n,fontWeight:500,color:r>50?"#fff":t},children:[Math.round(r),"%"]})]})},pa=({isLoading:e,variant:t="spinner",size:o="medium",message:i,overlay:n=false,overlayOpacity:r=.5,progress:a=0,showProgressText:d=true,color:s=cr,className:l="",style:h})=>{let m=lr[o];if(useEffect(()=>{let x="docx-loading-keyframes";if(!document.getElementById(x)){let v=document.createElement("style");v.id=x,v.textContent=pr,document.head.appendChild(v);}},[]),!e)return null;let p=()=>{switch(t){case "spinner":return jsx(ur,{size:m.size,strokeWidth:m.strokeWidth,color:s});case "dots":return jsx(gr,{size:m.size,color:s});case "bar":return jsx(mr,{size:m.size,color:s});case "pulse":return jsx(xr,{size:m.size,color:s});case "progress":return jsx(fr,{size:m.size,color:s,progress:a,showText:d,fontSize:m.fontSize});default:return null}},u=jsxs("div",{className:`docx-loading-content ${l}`,style:{display:"flex",flexDirection:"column",alignItems:"center",gap:"12px",...h},children:[p(),i&&jsx("div",{style:{fontSize:m.fontSize,color:n?"white":"var(--doc-text-muted)",textAlign:"center"},children:i})]});return n?jsx("div",{className:`docx-loading-overlay ${l}`,style:{position:"fixed",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:`rgba(0, 0, 0, ${r})`,zIndex:1e4,...h},role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":t==="progress"?a:void 0,"aria-busy":"true","aria-label":i||"Loading",children:u}):jsx("div",{className:`docx-loading-inline ${l}`,style:{display:"inline-flex",alignItems:"center",...h},role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":t==="progress"?a:void 0,"aria-busy":"true","aria-label":i||"Loading",children:u})};function ua(e={}){let{initialLoading:t=false,minDuration:o=dr,onStart:i,onEnd:n}=e,[r,a]=useState(t),[d,s]=useState(null),[l,h]=useState(0),m=useRef(null),p=useRef(null),u=useCallback(g=>{m.current=Date.now(),a(true),s(g||null),h(0),i?.();},[i]),x=useCallback(()=>{let g=m.current,f=Date.now(),c=g?f-g:0,b=Math.max(0,o-c);b>0?p.current=setTimeout(()=>{a(false),s(null),h(0),m.current=null,n?.();},b):(a(false),s(null),h(0),m.current=null,n?.());},[o,n]),v=useCallback(async(g,f)=>{u(f);try{let c=await g();return x(),c}catch(c){throw x(),c}},[u,x]);return useEffect(()=>()=>{p.current&&clearTimeout(p.current);},[]),{isLoading:r,message:d,progress:l,startLoading:u,stopLoading:x,setProgress:h,setMessage:s,withLoading:v}}function ga(){let[e,t]=useState(new Map),o=useCallback((d,s)=>{t(l=>{let h=new Map(l);return h.set(d,{id:d,message:s,startTime:Date.now()}),h});},[]),i=useCallback((d,s)=>{t(l=>{let h=l.get(d);if(!h)return l;let m=new Map(l);return m.set(d,{...h,...s}),m});},[]),n=useCallback(d=>{t(s=>{let l=new Map(s);return l.delete(d),l});},[]),r=e.size>0;return {operations:Array.from(e.values()),isAnyLoading:r,startOperation:o,updateOperation:i,endOperation:n,getOperation:d=>e.get(d)}}function ma(e){return {spinner:"Spinner",dots:"Dots",bar:"Bar",pulse:"Pulse",progress:"Progress"}[e]}function xa(){return ["spinner","dots","bar","pulse","progress"]}function fa(){return ["small","medium","large"]}function ha(e){return new Promise(t=>setTimeout(t,e))}var wt=4,kt=36,yr=32,Cr=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("circle",{cx:"3",cy:"8",r:"1.5",fill:"currentColor"}),jsx("circle",{cx:"8",cy:"8",r:"1.5",fill:"currentColor"}),jsx("circle",{cx:"13",cy:"8",r:"1.5",fill:"currentColor"})]});function Sr(e){let{containerRef:t,items:o,itemGap:i=wt,overflowButtonWidth:n=kt}=e,[r,a]=useState(o.length),d=useRef(new Map),s=useCallback(()=>{let m=t.current;if(!m){a(o.length);return}let p=m.offsetWidth;if(p===0)return;let u=[...o].sort((g,f)=>g.alwaysVisible&&!f.alwaysVisible?-1:!g.alwaysVisible&&f.alwaysVisible?1:(g.priority||3)-(f.priority||3)),x=0,v=0;for(let g of u){let c=(g.minWidth||d.current.get(g.id)||yr)+(v>0?i:0),b=v<o.length-1?n+i:0;if(x+c+b<=p)x+=c,v++;else if(g.alwaysVisible)x+=c,v++;else break}a(Math.max(0,v));},[t,o,i,n]);useLayoutEffect(()=>{let m=t.current;if(!m)return;s();let p=new ResizeObserver(()=>{s();});return p.observe(m),()=>{p.disconnect();}},[t,s]),useEffect(()=>{s();},[o,s]);let{visibleItems:l,overflowItems:h}=useMemo(()=>{let m=[...o].sort((p,u)=>p.alwaysVisible&&!u.alwaysVisible?-1:!p.alwaysVisible&&u.alwaysVisible?1:(p.priority||3)-(u.priority||3));return {visibleItems:m.slice(0,r),overflowItems:m.slice(r)}},[o,r]);return {visibleItems:l,overflowItems:h,hasOverflow:h.length>0,recalculate:s}}var wr=({items:e,isOpen:t,onClose:o,anchorRef:i})=>{let n=useRef(null);return useEffect(()=>{if(!t)return;let r=a=>{n.current&&!n.current.contains(a.target)&&i.current&&!i.current.contains(a.target)&&o();};return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[t,o,i]),useEffect(()=>{if(!t)return;let r=a=>{a.key==="Escape"&&o();};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[t,o]),!t||e.length===0?null:jsx("div",{ref:n,className:"docx-responsive-toolbar-overflow-menu",style:{position:"absolute",top:"100%",right:0,marginTop:"4px",backgroundColor:"white",border:"1px solid var(--doc-border)",borderRadius:"8px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",padding:"8px",zIndex:1e3,display:"flex",flexWrap:"wrap",gap:"4px",maxWidth:"300px"},role:"menu",children:e.map(r=>jsx("div",{className:"docx-responsive-toolbar-overflow-item",role:"menuitem",children:r.content},r.id))})},Ca=({items:e,overflowItems:t=[],alwaysShowOverflow:o=false,renderOverflowButton:i,renderOverflowMenu:n,itemGap:r=wt,padding:a="8px 12px",overflowButtonWidth:d=kt,className:s="",style:l,height:h=44,backgroundColor:m="var(--doc-toolbar-bg)",borderBottom:p="1px solid var(--doc-border)"})=>{let u=useRef(null),x=useRef(null),[v,g]=useState(false),{visibleItems:f,overflowItems:c,hasOverflow:b}=Sr({containerRef:u,items:e,itemGap:r,overflowButtonWidth:d}),C=[...c,...t],P=b||o||t.length>0,U=useCallback(()=>{g(N=>!N);},[]),I=useCallback(()=>{g(false);},[]),D=jsx("button",{ref:x,type:"button",className:"docx-responsive-toolbar-overflow-button",onClick:U,"aria-label":`Show ${C.length} more options`,"aria-expanded":v,"aria-haspopup":"menu",style:{display:"flex",alignItems:"center",justifyContent:"center",width:`${d}px`,height:"32px",border:"none",borderRadius:"4px",backgroundColor:v?"var(--doc-primary-light)":"transparent",color:"var(--doc-text-muted)",cursor:"pointer",transition:"background-color 0.15s ease"},children:jsx(Cr,{})});return jsxs("div",{ref:u,className:`docx-responsive-toolbar ${s}`,style:{display:"flex",alignItems:"center",gap:`${r}px`,height:typeof h=="number"?`${h}px`:h,padding:a,backgroundColor:m,borderBottom:p,position:"relative",...l},children:[f.map(N=>jsxs(hr.Fragment,{children:[jsx("div",{className:"docx-responsive-toolbar-item","data-item-id":N.id,style:{flexShrink:0},children:N.content}),N.separatorAfter&&jsx("div",{className:"docx-responsive-toolbar-separator",style:{width:"1px",height:"24px",backgroundColor:"var(--doc-border)",margin:"0 4px"}})]},N.id)),P&&jsx("div",{style:{flex:1,minWidth:0}}),P&&jsxs("div",{style:{position:"relative",flexShrink:0},children:[i?i(C.length,v,U):D,n?v&&n(C,I):jsx(wr,{items:C,isOpen:v,onClose:I,anchorRef:x})]})]})},Sa=({children:e,gap:t=2,separatorAfter:o=false,className:i="",style:n})=>jsxs(Fragment,{children:[jsx("div",{className:`docx-toolbar-group ${i}`,style:{display:"flex",alignItems:"center",gap:`${t}px`,...n},children:e}),o&&jsx("div",{className:"docx-toolbar-group-separator",style:{width:"1px",height:"24px",backgroundColor:"var(--doc-border)",margin:"0 4px"}})]});function wa(e,t,o){return {id:e,content:t,priority:3,...o}}function ka(e){return e.map(t=>({...t,priority:t.priority||3}))}function Ta(e){return {undo:1,redo:1,bold:1,italic:1,underline:2,fontFamily:2,fontSize:2,textColor:3,highlightColor:3,alignment:3,lists:4,indent:4,lineSpacing:5,styles:5}[e]||3}var Er={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4},Ir={backgroundColor:"white",borderRadius:"8px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.15)",minWidth:"320px",maxWidth:"400px",width:"100%",margin:"20px"},Pr={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"16px 20px",borderBottom:"1px solid var(--doc-border)"},Lr={margin:0,fontSize:"18px",fontWeight:600,color:"var(--doc-text)"},Rr={background:"none",border:"none",fontSize:"20px",cursor:"pointer",color:"var(--doc-text-muted)",padding:"4px 8px",lineHeight:1},Dr={padding:"20px"},Ar={display:"flex",flexDirection:"column",alignItems:"center",marginBottom:"16px"},Mr={display:"grid",gap:"2px",padding:"4px",backgroundColor:"var(--doc-bg-hover)",borderRadius:"4px",cursor:"pointer"},Rt={width:"24px",height:"24px",backgroundColor:"white",border:"1px solid var(--doc-border-dark)",borderRadius:"2px",transition:"background-color 0.1s, border-color 0.1s"},Or={...Rt,backgroundColor:"var(--doc-primary)",borderColor:"var(--doc-primary)"},_r={marginTop:"8px",fontSize:"14px",fontWeight:500,color:"var(--doc-text)"},Nr={display:"flex",alignItems:"center",gap:"12px",margin:"16px 0",color:"var(--doc-text-muted)",fontSize:"12px"},Et={flex:1,height:"1px",backgroundColor:"var(--doc-border)"},It={display:"flex",alignItems:"center",gap:"12px",marginBottom:"12px"},Pt={fontSize:"14px",fontWeight:500,color:"var(--doc-text)",minWidth:"80px"},Lt={width:"80px",padding:"8px 12px",border:"1px solid var(--doc-border-input)",borderRadius:"4px",fontSize:"14px",textAlign:"center"},Fr={display:"flex",justifyContent:"flex-end",gap:"12px",padding:"16px 20px",borderTop:"1px solid var(--doc-border)"},Qe={padding:"10px 20px",borderRadius:"4px",fontSize:"14px",fontWeight:500,cursor:"pointer",border:"none"},Br={...Qe,backgroundColor:"var(--doc-primary)",color:"white"},zr={...Qe,backgroundColor:"var(--doc-bg-hover)",color:"var(--doc-text)",border:"1px solid var(--doc-border-input)"},Wr={...Qe,backgroundColor:"var(--doc-border-input)",color:"var(--doc-text-muted)",cursor:"not-allowed"};function Yr(){return jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{x:"2",y:"2",width:"16",height:"16",stroke:"currentColor",strokeWidth:"1.5",fill:"none",rx:"1"}),jsx("line",{x1:"2",y1:"7",x2:"18",y2:"7",stroke:"currentColor",strokeWidth:"1.5"}),jsx("line",{x1:"2",y1:"12",x2:"18",y2:"12",stroke:"currentColor",strokeWidth:"1.5"}),jsx("line",{x1:"8",y1:"2",x2:"8",y2:"18",stroke:"currentColor",strokeWidth:"1.5"}),jsx("line",{x1:"13",y1:"2",x2:"13",y2:"18",stroke:"currentColor",strokeWidth:"1.5"})]})}function Ra({isOpen:e,onClose:t,onInsert:o,maxGridRows:i=8,maxGridColumns:n=10,maxRows:r=100,maxColumns:a=20,className:d,style:s}){let[l,h]=useState(0),[m,p]=useState(0),[u,x]=useState(3),[v,g]=useState(3),f=useRef(null);useEffect(()=>{e&&(h(0),p(0),x(3),g(3));},[e]),useEffect(()=>{e&&f.current?.focus();},[e]);let c=useCallback((T,L)=>{h(T),p(L);},[]),b=useCallback(()=>{l>0&&m>0&&o({rows:l,columns:m});},[l,m,o]),C=useCallback(()=>{let T=Math.min(Math.max(1,u),r),L=Math.min(Math.max(1,v),a);o({rows:T,columns:L});},[u,v,r,a,o]),P=useCallback(T=>{T.key==="Escape"?t():T.key==="Enter"&&!T.shiftKey&&(T.preventDefault(),C());},[t,C]),U=useCallback(T=>{T.target===T.currentTarget&&t();},[t]),I=useCallback(T=>{let L=parseInt(T.target.value,10);isNaN(L)?T.target.value===""&&x(1):x(Math.min(Math.max(1,L),r));},[r]),D=useCallback(T=>{let L=parseInt(T.target.value,10);isNaN(L)?T.target.value===""&&g(1):g(Math.min(Math.max(1,L),a));},[a]);if(!e)return null;let N=[];for(let T=1;T<=i;T++)for(let L=1;L<=n;L++){let oe=T<=l&&L<=m;N.push(jsx("div",{style:oe?Or:Rt,onMouseEnter:()=>c(T,L),onClick:b,role:"gridcell","aria-selected":oe},`${T}-${L}`));}let y=u>=1&&v>=1,H=l>0&&m>0?`${m} x ${l} Table`:"Hover to select size";return jsx("div",{className:`docx-insert-table-dialog-overlay ${d||""}`,style:{...Er,...s},onClick:U,onKeyDown:P,role:"dialog","aria-modal":"true","aria-labelledby":"insert-table-dialog-title",children:jsxs("div",{ref:f,className:"docx-insert-table-dialog",style:Ir,tabIndex:-1,children:[jsxs("div",{className:"docx-insert-table-dialog-header",style:Pr,children:[jsx("h2",{id:"insert-table-dialog-title",style:Lr,children:jsxs("span",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[jsx(Yr,{}),"Insert Table"]})}),jsx("button",{type:"button",className:"docx-insert-table-dialog-close",style:Rr,onClick:t,"aria-label":"Close dialog",children:"\xD7"})]}),jsxs("div",{className:"docx-insert-table-dialog-body",style:Dr,children:[jsxs("div",{className:"docx-insert-table-grid-container",style:Ar,children:[jsx("div",{className:"docx-insert-table-grid",style:{...Mr,gridTemplateColumns:`repeat(${n}, 1fr)`},onMouseLeave:()=>{h(0),p(0);},role:"grid","aria-label":"Table size selector",children:N}),jsx("div",{className:"docx-insert-table-grid-label",style:_r,children:H})]}),jsxs("div",{className:"docx-insert-table-separator",style:Nr,children:[jsx("div",{style:Et}),jsx("span",{children:"or specify size"}),jsx("div",{style:Et})]}),jsxs("div",{className:"docx-insert-table-inputs",children:[jsxs("div",{style:It,children:[jsx("label",{htmlFor:"insert-table-rows",style:Pt,children:"Rows:"}),jsx("input",{id:"insert-table-rows",type:"number",min:1,max:r,value:u,onChange:I,style:Lt})]}),jsxs("div",{style:It,children:[jsx("label",{htmlFor:"insert-table-cols",style:Pt,children:"Columns:"}),jsx("input",{id:"insert-table-cols",type:"number",min:1,max:a,value:v,onChange:D,style:Lt})]})]})]}),jsxs("div",{className:"docx-insert-table-dialog-footer",style:Fr,children:[jsx("button",{type:"button",className:"docx-insert-table-dialog-cancel",style:zr,onClick:t,children:"Cancel"}),jsx("button",{type:"button",className:"docx-insert-table-dialog-insert",style:y?Br:Wr,onClick:C,disabled:!y,children:"Insert Table"})]})]})})}function Da(){let[e,t]=useState(false),o=useCallback(()=>t(true),[]),i=useCallback(()=>t(false),[]),n=useCallback(()=>t(r=>!r),[]);return {isOpen:e,open:o,close:i,toggle:n}}function Aa(e=3,t=3){return {rows:e,columns:t}}function Ma(e,t=100,o=20){return e.rows>=1&&e.rows<=t&&e.columns>=1&&e.columns<=o}function Oa(e,t=100,o=20){return {rows:Math.min(Math.max(1,e.rows),t),columns:Math.min(Math.max(1,e.columns),o)}}function _a(e){return `${e.columns} x ${e.rows}`}function Na(){return [{label:"2 x 2",config:{rows:2,columns:2}},{label:"3 x 3",config:{rows:3,columns:3}},{label:"4 x 4",config:{rows:4,columns:4}},{label:"2 x 4",config:{rows:2,columns:4}},{label:"4 x 2",config:{rows:4,columns:2}},{label:"5 x 5",config:{rows:5,columns:5}}]}var Hr={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4},Vr={backgroundColor:"white",borderRadius:"8px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.15)",minWidth:"450px",maxWidth:"600px",width:"100%",margin:"20px",maxHeight:"90vh",overflow:"auto"},Kr={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"16px 20px",borderBottom:"1px solid var(--doc-border)"},$r={margin:0,fontSize:"18px",fontWeight:600,color:"var(--doc-text)"},Gr={background:"none",border:"none",fontSize:"20px",cursor:"pointer",color:"var(--doc-text-muted)",padding:"4px 8px",lineHeight:1},jr={padding:"20px"},qe={border:"2px dashed var(--doc-border-input)",borderRadius:"8px",padding:"40px 20px",textAlign:"center",cursor:"pointer",transition:"border-color 0.2s, background-color 0.2s",marginBottom:"16px"},Zr={...qe,borderColor:"var(--doc-primary)",backgroundColor:"var(--doc-primary-light)"},Xr={...qe,padding:"20px",borderStyle:"solid",borderColor:"var(--doc-primary)"},Jr={display:"flex",justifyContent:"center",alignItems:"center",maxHeight:"250px",overflow:"hidden"},Qr={maxWidth:"100%",maxHeight:"250px",objectFit:"contain",borderRadius:"4px"},qr={fontSize:"48px",color:"var(--doc-text-placeholder)",marginBottom:"12px"},en={fontSize:"14px",color:"var(--doc-text-muted)",marginBottom:"8px"},tn={fontSize:"12px",color:"var(--doc-text-placeholder)"},At={marginBottom:"16px"},Mt={display:"block",marginBottom:"6px",fontSize:"14px",fontWeight:500,color:"var(--doc-text)"},on={width:"100%",padding:"10px 12px",border:"1px solid var(--doc-border-input)",borderRadius:"4px",fontSize:"14px",boxSizing:"border-box"},rn={display:"flex",alignItems:"center",gap:"12px"},Ot={width:"100px",padding:"8px 12px",border:"1px solid var(--doc-border-input)",borderRadius:"4px",fontSize:"14px",textAlign:"center"},Nt={padding:"6px 10px",border:"1px solid var(--doc-border-input)",borderRadius:"4px",backgroundColor:"white",cursor:"pointer",fontSize:"16px"},nn={...Nt,backgroundColor:"var(--doc-primary)",borderColor:"var(--doc-primary)",color:"white"},an={fontSize:"12px",color:"var(--doc-text-muted)",marginTop:"8px",textAlign:"center"},sn={display:"flex",justifyContent:"flex-end",gap:"12px",padding:"16px 20px",borderTop:"1px solid var(--doc-border)"},et={padding:"10px 20px",borderRadius:"4px",fontSize:"14px",fontWeight:500,cursor:"pointer",border:"none"},ln={...et,backgroundColor:"var(--doc-primary)",color:"white"},cn={...et,backgroundColor:"var(--doc-bg-subtle)",color:"var(--doc-text)",border:"1px solid var(--doc-border-input)"},dn={...et,backgroundColor:"var(--doc-border-input)",color:"var(--doc-text-muted)",cursor:"not-allowed"};function pn(){return jsxs("svg",{width:"48",height:"48",viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{x:"6",y:"10",width:"36",height:"28",rx:"2",stroke:"var(--doc-text-placeholder)",strokeWidth:"2",fill:"none"}),jsx("circle",{cx:"16",cy:"20",r:"4",stroke:"var(--doc-text-placeholder)",strokeWidth:"2",fill:"none"}),jsx("path",{d:"M6 32L16 24L26 34L36 22L42 28",stroke:"var(--doc-text-placeholder)",strokeWidth:"2",fill:"none"})]})}function un({locked:e}){return e?jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M12 6V4a4 4 0 0 0-8 0v2H3v8h10V6h-1zm-6-2a2 2 0 0 1 4 0v2H6V4zm6 8H4V8h8v4z"})}):jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M10 6V4a2 2 0 0 0-4 0v2H4v8h8V6h-2zM6 4a2 2 0 0 1 4 0v2h-2V4H6v2H4v2H6V4zm4 8H6V8h4v4z"})})}function Ya({isOpen:e,onClose:t,onInsert:o,maxWidth:i=800,maxHeight:n=600,accept:r="image/*",className:a,style:d}){let[s,l]=useState(null),[h,m]=useState(false),[p,u]=useState(0),[x,v]=useState(0),[g,f]=useState(""),[c,b]=useState(true),[C,P]=useState(1),[U,I]=useState(null),D=useRef(null),N=useRef(null);useEffect(()=>{e&&(l(null),m(false),u(0),v(0),f(""),b(true),P(1),I(null));},[e]);let y=useCallback(E=>{if(!E.type.startsWith("image/")){I("Please select a valid image file");return}if(E.size>10*1024*1024){I("Image file is too large (max 10MB)");return}I(null);let W=new FileReader;W.onload=Zt=>{let at=Zt.target?.result,se=new Image;se.onload=()=>{let le=se.width,ce=se.height;if(le>i||ce>n){let Xt=i/le,Jt=n/ce,st=Math.min(Xt,Jt);le=Math.round(le*st),ce=Math.round(ce*st);}u(le),v(ce),P(se.width/se.height),l({src:at,width:le,height:ce,fileName:E.name,mimeType:E.type});},se.src=at;},W.onerror=()=>{I("Failed to read image file");},W.readAsDataURL(E);},[i,n]),H=useCallback(E=>{let W=E.target.files?.[0];W&&y(W);},[y]),T=useCallback(()=>{D.current?.click();},[]),L=useCallback(E=>{E.preventDefault(),m(true);},[]),oe=useCallback(E=>{E.preventDefault(),m(false);},[]),M=useCallback(E=>{E.preventDefault(),m(false);let W=E.dataTransfer.files?.[0];W&&y(W);},[y]),Ht=useCallback(E=>{let W=parseInt(E.target.value,10)||0;u(W),c&&C&&v(Math.round(W/C));},[c,C]),Vt=useCallback(E=>{let W=parseInt(E.target.value,10)||0;v(W),c&&C&&u(Math.round(W*C));},[c,C]),Ue=useCallback(()=>{s&&o({...s,width:p,height:x,alt:g||void 0});},[s,p,x,g,o]),Kt=useCallback(E=>{E.key==="Escape"?t():E.key==="Enter"&&s&&!E.shiftKey&&(E.preventDefault(),Ue());},[t,s,Ue]),$t=useCallback(E=>{E.target===E.currentTarget&&t();},[t]),Gt=useCallback(()=>{l(null),u(0),v(0),f(""),I(null),D.current&&(D.current.value="");},[]);if(!e)return null;let it=s!==null&&p>0&&x>0,jt=()=>s?Xr:h?Zr:qe;return jsx("div",{className:`docx-insert-image-dialog-overlay ${a||""}`,style:{...Hr,...d},onClick:$t,onKeyDown:Kt,role:"dialog","aria-modal":"true","aria-labelledby":"insert-image-dialog-title",children:jsxs("div",{ref:N,className:"docx-insert-image-dialog",style:Vr,tabIndex:-1,children:[jsxs("div",{className:"docx-insert-image-dialog-header",style:Kr,children:[jsx("h2",{id:"insert-image-dialog-title",style:$r,children:"Insert Image"}),jsx("button",{type:"button",className:"docx-insert-image-dialog-close",style:Gr,onClick:t,"aria-label":"Close dialog",children:"\xD7"})]}),jsxs("div",{className:"docx-insert-image-dialog-body",style:jr,children:[jsx("input",{ref:D,type:"file",accept:r,onChange:H,style:{display:"none"}}),jsx("div",{className:"docx-insert-image-dropzone",style:jt(),onClick:T,onDragOver:L,onDragLeave:oe,onDrop:M,role:"button",tabIndex:0,"aria-label":"Click or drag to upload image",children:s?jsx("div",{style:Jr,children:jsx("img",{src:s.src,alt:g||"Preview",style:Qr})}):jsxs(Fragment,{children:[jsx("div",{style:qr,children:jsx(pn,{})}),jsx("div",{style:en,children:"Click to select or drag and drop an image"}),jsx("div",{style:tn,children:"PNG, JPG, GIF up to 10MB"})]})}),s?.fileName&&jsxs("div",{style:an,children:[s.fileName,jsx("button",{type:"button",onClick:E=>{E.stopPropagation(),Gt();},style:{marginLeft:"8px",background:"none",border:"none",color:"var(--doc-primary)",cursor:"pointer",fontSize:"12px"},children:"Change"})]}),U&&jsx("div",{style:{color:"var(--doc-error)",fontSize:"14px",marginBottom:"16px",textAlign:"center"},children:U}),s&&jsxs(Fragment,{children:[jsxs("div",{style:At,children:[jsx("label",{style:Mt,children:"Dimensions"}),jsxs("div",{style:rn,children:[jsx("span",{style:{fontSize:"14px",color:"var(--doc-text-muted)"},children:"Width:"}),jsx("input",{type:"number",value:p,onChange:Ht,min:1,max:i,style:Ot}),jsx("span",{style:{fontSize:"14px",color:"var(--doc-text-muted)"},children:"px"}),jsx("button",{type:"button",onClick:()=>b(!c),style:c?nn:Nt,title:c?"Aspect ratio locked":"Aspect ratio unlocked",children:jsx(un,{locked:c})}),jsx("span",{style:{fontSize:"14px",color:"var(--doc-text-muted)"},children:"Height:"}),jsx("input",{type:"number",value:x,onChange:Vt,min:1,max:n,style:Ot}),jsx("span",{style:{fontSize:"14px",color:"var(--doc-text-muted)"},children:"px"})]})]}),jsxs("div",{style:At,children:[jsx("label",{htmlFor:"insert-image-alt",style:Mt,children:"Alt Text (optional)"}),jsx("input",{id:"insert-image-alt",type:"text",value:g,onChange:E=>f(E.target.value),placeholder:"Describe the image for accessibility",style:on})]})]})]}),jsxs("div",{className:"docx-insert-image-dialog-footer",style:sn,children:[jsx("button",{type:"button",className:"docx-insert-image-dialog-cancel",style:cn,onClick:t,children:"Cancel"}),jsx("button",{type:"button",className:"docx-insert-image-dialog-insert",style:it?ln:dn,onClick:Ue,disabled:!it,children:"Insert Image"})]})]})})}function Ua(){let[e,t]=useState(false),o=useCallback(()=>t(true),[]),i=useCallback(()=>t(false),[]),n=useCallback(()=>t(r=>!r),[]);return {isOpen:e,open:o,close:i,toggle:n}}function Ha(e){return e.type.startsWith("image/")}function Va(){return [".png",".jpg",".jpeg",".gif",".webp",".bmp",".svg"]}function Ka(){return "image/png,image/jpeg,image/gif,image/webp,image/bmp,image/svg+xml"}function $a(e,t,o,i){if(e<=o&&t<=i)return {width:e,height:t};let n=o/e,r=i/t,a=Math.min(n,r);return {width:Math.round(e*a),height:Math.round(t*a)}}function Ga(e){let t=e.split(","),o=t[0].match(/:(.*?);/)?.[1]||"image/png",i=atob(t[1]),n=new Uint8Array(i.length);for(let r=0;r<i.length;r++)n[r]=i.charCodeAt(r);return new Blob([n],{type:o})}function ja(e){return new Promise((t,o)=>{let i=new Image;i.onload=()=>t({width:i.width,height:i.height}),i.onerror=()=>o(new Error("Failed to load image")),i.src=e;})}function Za(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}var fn={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4},hn={backgroundColor:"white",borderRadius:"8px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.15)",minWidth:"450px",maxWidth:"550px",width:"100%",margin:"20px",maxHeight:"80vh",display:"flex",flexDirection:"column"},bn={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"16px 20px",borderBottom:"1px solid var(--doc-border)"},vn={margin:0,fontSize:"18px",fontWeight:600,color:"var(--doc-text)"},yn={background:"none",border:"none",fontSize:"20px",cursor:"pointer",color:"var(--doc-text-muted)",padding:"4px 8px",lineHeight:1},Cn={padding:"20px",flex:1,overflow:"auto"},Sn={width:"100%",padding:"10px 12px",border:"1px solid var(--doc-border-input)",borderRadius:"4px",fontSize:"14px",marginBottom:"16px",boxSizing:"border-box"},wn={display:"flex",flexWrap:"wrap",gap:"4px",marginBottom:"16px"},Ft={padding:"6px 12px",border:"1px solid var(--doc-border-input)",borderRadius:"4px",backgroundColor:"white",cursor:"pointer",fontSize:"12px",transition:"all 0.15s"},kn={...Ft,backgroundColor:"var(--doc-primary)",borderColor:"var(--doc-primary)",color:"white"},Tn={display:"grid",gridTemplateColumns:"repeat(10, 1fr)",gap:"4px",maxHeight:"250px",overflow:"auto"},En={width:"36px",height:"36px",display:"flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--doc-border)",borderRadius:"4px",backgroundColor:"white",cursor:"pointer",fontSize:"18px",transition:"all 0.15s"},In={marginTop:"16px",padding:"12px",backgroundColor:"var(--doc-bg-subtle)",borderRadius:"4px",display:"flex",alignItems:"center",gap:"16px"},Pn={fontSize:"36px",width:"60px",height:"60px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"white",borderRadius:"4px",border:"1px solid var(--doc-border)"},Ln={flex:1},Rn={display:"flex",justifyContent:"flex-end",gap:"12px",padding:"16px 20px",borderTop:"1px solid var(--doc-border)"},tt={padding:"10px 20px",borderRadius:"4px",fontSize:"14px",fontWeight:500,cursor:"pointer",border:"none"},Dn={...tt,backgroundColor:"var(--doc-primary)",color:"white"},An={...tt,backgroundColor:"var(--doc-bg-subtle)",color:"var(--doc-text)",border:"1px solid var(--doc-border-input)"},Mn={...tt,backgroundColor:"var(--doc-border-input)",color:"var(--doc-text-muted)",cursor:"not-allowed"},ke=[{name:"common",label:"Common",symbols:["\xA9","\xAE","\u2122","\u2022","\u2026","\u2014","\u2013","\xB0","\xB1","\xD7","\xF7","\u2260","\u2264","\u2265","\u221E","\u221A","\u2211","\u220F","\u222B","\u03C0","\u20AC","\xA3","\xA5","\xA2","\xA7","\xB6","\u2020","\u2021","\u2030","\u2116"]},{name:"arrows",label:"Arrows",symbols:["\u2190","\u2191","\u2192","\u2193","\u2194","\u2195","\u2196","\u2197","\u2198","\u2199","\u21D0","\u21D1","\u21D2","\u21D3","\u21D4","\u21D5","\u27F5","\u27F6","\u27F7","\u2794","\u279C","\u279E","\u27A1","\u27A2","\u27A3","\u27A4","\u27A5","\u27A6","\u27A7","\u27A8"]},{name:"math",label:"Math",symbols:["+","\u2212","\xD7","\xF7","=","\u2260","<",">","\u2264","\u2265","\xB1","\u2213","\u221E","\u221A","\u221B","\u221C","\u2211","\u220F","\u222B","\u2202","\u2206","\u2207","\u2208","\u2209","\u220B","\u2205","\u2200","\u2203","\u2204","\u2282","\u2283","\u2286","\u2287","\u222A","\u2229","\u2295","\u2297","\u22A5","\u2220","\u221F"]},{name:"greek",label:"Greek",symbols:["\u03B1","\u03B2","\u03B3","\u03B4","\u03B5","\u03B6","\u03B7","\u03B8","\u03B9","\u03BA","\u03BB","\u03BC","\u03BD","\u03BE","\u03BF","\u03C0","\u03C1","\u03C3","\u03C4","\u03C5","\u03C6","\u03C7","\u03C8","\u03C9","\u0391","\u0392","\u0393","\u0394","\u0395","\u0396","\u0397","\u0398","\u0399","\u039A","\u039B","\u039C","\u039D","\u039E","\u039F","\u03A0"]},{name:"shapes",label:"Shapes",symbols:["\u25A0","\u25A1","\u25AA","\u25AB","\u25AC","\u25AD","\u25AE","\u25AF","\u25B0","\u25B1","\u25B2","\u25B3","\u25B4","\u25B5","\u25B6","\u25B7","\u25B8","\u25B9","\u25BA","\u25BB","\u25BC","\u25BD","\u25BE","\u25BF","\u25C0","\u25C1","\u25C2","\u25C3","\u25C4","\u25C5","\u25CF","\u25CB","\u25CE","\u25C9","\u25CC","\u25CD","\u25D0","\u25D1","\u25D2","\u25D3"]},{name:"punctuation",label:"Punctuation",symbols:["\u2013","\u2014","\u2018","\u2019","\u201C","\u201D","\xAB","\xBB","\u2039","\u203A","\u2026","\xB7","\u2022","\u2023","\u2043","\u2010","\u2011","\u2012","\u2015","\u2016","\u2032","\u2033","\u2034","\u2057","\u2035","\u2036","\u2037","\u203B","\u203D","\u2042"]},{name:"currency",label:"Currency",symbols:["$","\xA2","\xA3","\xA4","\xA5","\u20A0","\u20A1","\u20A2","\u20A3","\u20A4","\u20A5","\u20A6","\u20A7","\u20A8","\u20A9","\u20AA","\u20AB","\u20AC","\u20AD","\u20AE","\u20AF","\u20B0","\u20B1","\u20B2","\u20B3","\u20B4","\u20B5","\u20B6","\u20B7","\u20B8"]},{name:"music",label:"Music",symbols:["\u2669","\u266A","\u266B","\u266C","\u266D","\u266E","\u266F","\u{1D11E}","\u{1D122}","\u{1D12A}","\u{1D12B}","\u{1D157}\u{1D165}","\u{1D158}\u{1D165}","\u{1D158}\u{1D165}\u{1D16E}","\u{1D158}\u{1D165}\u{1D16F}","\u{1D158}\u{1D165}\u{1D170}","\u{1D192}","\u{1D193}","\u{1D110}","\u{1D111}"]},{name:"emoji",label:"Emoji",symbols:["\u{1F600}","\u{1F603}","\u{1F604}","\u{1F601}","\u{1F606}","\u{1F605}","\u{1F923}","\u{1F602}","\u{1F642}","\u{1F643}","\u{1F609}","\u{1F60A}","\u{1F607}","\u{1F970}","\u{1F60D}","\u{1F929}","\u{1F618}","\u{1F617}","\u263A","\u{1F61A}","\u2764","\u{1F9E1}","\u{1F49B}","\u{1F49A}","\u{1F499}","\u{1F49C}","\u{1F5A4}","\u{1F90D}","\u{1F494}","\u2763","\u{1F44D}","\u{1F44E}","\u{1F44C}","\u270C","\u{1F91E}","\u{1F91F}","\u{1F918}","\u{1F44B}","\u{1F64F}","\u2705"]}];function Bt(){return ke.flatMap(e=>e.symbols)}function es({isOpen:e,onClose:t,onInsert:o,recentSymbols:i=[],className:n,style:r}){let[a,d]=useState("common"),[s,l]=useState(null),[h,m]=useState(""),[p,u]=useState(null),x=useRef(null);useEffect(()=>{e&&(l(null),m(""),u(null),setTimeout(()=>x.current?.focus(),100));},[e]);let v=useMemo(()=>{if(!h.trim())return a==="recent"?i:ke.find(L=>L.name===a)?.symbols||[];let y=h.toLowerCase();return Bt().filter(T=>{let L=T.codePointAt(0)?.toString(16).toUpperCase()||"";return T.includes(y)||L.includes(y.toUpperCase())||`U+${L}`.toLowerCase().includes(y)})},[h,a,i]),g=useCallback(y=>{l(y);},[]),f=useCallback(y=>{o(y);},[o]),c=useCallback(()=>{s&&o(s);},[s,o]),b=useCallback(y=>{y.key==="Escape"?t():y.key==="Enter"&&s&&(y.preventDefault(),c());},[t,s,c]),C=useCallback(y=>{y.target===y.currentTarget&&t();},[t]),P=y=>{if(!y)return null;let H=y.codePointAt(0);return {character:y,codePoint:H?`U+${H.toString(16).toUpperCase().padStart(4,"0")}`:"",decimal:H||0}};if(!e)return null;let I=P(p||s),D=s!==null,N=[...i.length>0?[{name:"recent",label:"Recent"}]:[],...ke.map(y=>({name:y.name,label:y.label}))];return jsx("div",{className:`docx-insert-symbol-dialog-overlay ${n||""}`,style:{...fn,...r},onClick:C,onKeyDown:b,role:"dialog","aria-modal":"true","aria-labelledby":"insert-symbol-dialog-title",children:jsxs("div",{className:"docx-insert-symbol-dialog",style:hn,children:[jsxs("div",{className:"docx-insert-symbol-dialog-header",style:bn,children:[jsx("h2",{id:"insert-symbol-dialog-title",style:vn,children:"Insert Symbol"}),jsx("button",{type:"button",className:"docx-insert-symbol-dialog-close",style:yn,onClick:t,"aria-label":"Close dialog",children:"\xD7"})]}),jsxs("div",{className:"docx-insert-symbol-dialog-body",style:Cn,children:[jsx("input",{ref:x,type:"text",placeholder:"Search symbols (character or Unicode)...",value:h,onChange:y=>m(y.target.value),style:Sn}),!h&&jsx("div",{className:"docx-insert-symbol-categories",style:wn,children:N.map(y=>jsx("button",{type:"button",onClick:()=>d(y.name),style:a===y.name?kn:Ft,children:y.label},y.name))}),jsx("div",{className:"docx-insert-symbol-grid",style:Tn,children:v.map((y,H)=>jsx("button",{type:"button",onClick:()=>g(y),onDoubleClick:()=>f(y),onMouseEnter:()=>u(y),onMouseLeave:()=>u(null),style:{...En,...s===y?{backgroundColor:"var(--doc-primary-light)",borderColor:"var(--doc-primary)"}:{}},title:`${y} - U+${y.codePointAt(0)?.toString(16).toUpperCase()}`,children:y},`${y}-${H}`))}),v.length===0&&jsxs("div",{style:{textAlign:"center",padding:"20px",color:"var(--doc-text-muted)"},children:['No symbols found for "',h,'"']}),I&&jsxs("div",{className:"docx-insert-symbol-preview",style:In,children:[jsx("div",{style:Pn,children:I.character}),jsxs("div",{style:Ln,children:[jsx("div",{style:{fontSize:"14px",fontWeight:500,marginBottom:"4px"},children:I.codePoint}),jsxs("div",{style:{fontSize:"12px",color:"var(--doc-text-muted)"},children:["Decimal: ",I.decimal]})]})]})]}),jsxs("div",{className:"docx-insert-symbol-dialog-footer",style:Rn,children:[jsx("button",{type:"button",className:"docx-insert-symbol-dialog-cancel",style:An,onClick:t,children:"Cancel"}),jsx("button",{type:"button",className:"docx-insert-symbol-dialog-insert",style:D?Dn:Mn,onClick:c,disabled:!D,children:"Insert"})]})]})})}function ts(e=20){let[t,o]=useState(false),[i,n]=useState([]),r=useCallback(()=>o(true),[]),a=useCallback(()=>o(false),[]),d=useCallback(()=>o(l=>!l),[]),s=useCallback(l=>{n(h=>{let m=h.filter(p=>p!==l);return [l,...m].slice(0,e)});},[e]);return {isOpen:t,recentSymbols:i,open:r,close:a,toggle:d,addRecent:s}}function os(){return ke}function rs(e){return ke.find(o=>o.name===e)?.symbols||[]}function ns(e){let t=e.codePointAt(0)||0;return {character:e,codePoint:`U+${t.toString(16).toUpperCase().padStart(4,"0")}`,decimal:t,hex:t.toString(16).toUpperCase()}}function is(e){if(!e.trim())return [];let t=e.toLowerCase();return Bt().filter(o=>{let i=o.codePointAt(0)?.toString(16).toUpperCase()||"";return o.includes(e)||i.includes(t.toUpperCase())||`U+${i}`.toLowerCase().includes(t)})}function as(e){let t=e.replace(/^U\+/i,"").replace(/^0x/i,""),o=parseInt(t,16);return isNaN(o)||o<0||o>1114111?null:String.fromCodePoint(o)}var ie=[{id:"formatted",label:"Keep Source Formatting",description:"Paste with original formatting",shortcut:"Ctrl+V"},{id:"plainText",label:"Paste as Plain Text",description:"Paste without any formatting",shortcut:"Ctrl+Shift+V"}],_n=()=>jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M4 4h12v2H4V4zM4 8h8v2H4V8zM4 12h10v2H4v-2zM4 16h6v2H4v-2z",fill:"currentColor"}),jsx("path",{d:"M14 10l3 3-3 3v-2h-2v-2h2v-2z",fill:"currentColor",opacity:"0.6"})]}),Nn=()=>jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4 4h12v1H4V4zM4 7h12v1H4V7zM4 10h12v1H4v-1zM4 13h12v1H4v-1zM4 16h8v1H4v-1z",fill:"currentColor"})});function Fn(e){switch(e){case "formatted":return jsx(_n,{});case "plainText":return jsx(Nn,{});default:return null}}var Bn=({option:e,isSelected:t,onClick:o,onMouseEnter:i})=>jsxs("button",{type:"button",className:`docx-paste-special-option ${t?"docx-paste-special-option-selected":""}`,onClick:o,onMouseEnter:i,role:"menuitem","aria-selected":t,style:{display:"flex",alignItems:"center",gap:"12px",width:"100%",padding:"12px 16px",border:"none",background:t?"var(--doc-primary-light)":"transparent",cursor:"pointer",textAlign:"left",borderRadius:"4px",transition:"background-color 0.15s ease"},children:[jsx("span",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"4px",background:t?"var(--doc-primary)":"var(--doc-bg-hover)",color:t?"white":"var(--doc-text-muted)"},children:Fn(e.id)}),jsxs("div",{style:{flex:1},children:[jsx("div",{style:{fontSize:"14px",fontWeight:500,color:"var(--doc-text)",marginBottom:"2px"},children:e.label}),jsx("div",{style:{fontSize:"12px",color:"var(--doc-text-muted)"},children:e.description})]}),jsx("span",{style:{fontSize:"11px",color:"var(--doc-text-subtle)",fontFamily:"monospace"},children:e.shortcut})]}),us=({isOpen:e,onClose:t,onPaste:o,position:i,className:n=""})=>{let r=useRef(null),[a,d]=useState(0),[s,l]=useState(null),[h,m]=useState(false),[p,u]=useState(null);useEffect(()=>{if(!e){l(null),u(null),d(0);return}(async()=>{m(true),u(null);try{let f=await ia$1({cleanWordFormatting:!0});l(f),f||u("No content available to paste");}catch{u("Unable to read clipboard. Please use Ctrl+V to paste.");}finally{m(false);}})();},[e]),useEffect(()=>{if(!e)return;let g=f=>{r.current&&!r.current.contains(f.target)&&t();};return document.addEventListener("mousedown",g),()=>document.removeEventListener("mousedown",g)},[e,t]),useEffect(()=>{if(!e)return;let g=f=>{switch(f.key){case "Escape":f.preventDefault(),t();break;case "ArrowDown":f.preventDefault(),d(c=>(c+1)%ie.length);break;case "ArrowUp":f.preventDefault(),d(c=>(c-1+ie.length)%ie.length);break;case "Enter":f.preventDefault(),x(ie[a].id);break}};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[e,a,t]);let x=useCallback(g=>{if(!s){u("No content available to paste");return}o(s,g==="plainText"),t();},[s,o,t]),v=useCallback(()=>{let c=i?.x??(typeof window<"u"?window.innerWidth/2-160:100),b=i?.y??(typeof window<"u"?window.innerHeight/2-200/2:100);return typeof window<"u"&&(c+320>window.innerWidth&&(c=window.innerWidth-320-10),b+200>window.innerHeight&&(b=window.innerHeight-200-10),c<10&&(c=10),b<10&&(b=10)),{position:"fixed",top:b,left:c,width:320,background:"white",border:"1px solid var(--doc-border-light)",borderRadius:"8px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.15)",zIndex:10001,overflow:"hidden"}},[i]);return e?jsxs("div",{ref:r,className:`docx-paste-special-dialog ${n}`,style:v(),role:"dialog","aria-label":"Paste Special",children:[jsxs("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--doc-border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[jsx("span",{style:{fontSize:"14px",fontWeight:600,color:"var(--doc-text)"},children:"Paste Special"}),jsx("button",{type:"button",onClick:t,"aria-label":"Close",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"4px",color:"var(--doc-text-muted)"},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"})})})]}),jsx("div",{style:{padding:"8px"},children:h?jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--doc-text-muted)",fontSize:"13px"},children:"Reading clipboard..."}):p?jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--doc-error)",fontSize:"13px"},children:p}):jsx("div",{role:"menu",children:ie.map((g,f)=>jsx(Bn,{option:g,isSelected:f===a,onClick:()=>x(g.id),onMouseEnter:()=>d(f)},g.id))})}),s&&!h&&!p&&jsxs("div",{style:{padding:"8px 16px 12px",borderTop:"1px solid var(--doc-border)"},children:[jsx("div",{style:{fontSize:"11px",color:"var(--doc-text-muted)",marginBottom:"4px"},children:"Preview:"}),jsxs("div",{style:{fontSize:"12px",color:"var(--doc-text)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",padding:"6px 8px",background:"var(--doc-bg)",borderRadius:"4px"},children:['"',s.plainText.slice(0,50),s.plainText.length>50?"...":"",'"']})]})]}):null};function gs(e={}){let{onPaste:t,enabled:o=true}=e,[i,n]=useState(false),r=useCallback(()=>{o&&n(true);},[o]),a=useCallback(()=>{n(false);},[]),d=useCallback(async()=>{if(!(!o||!t))try{let l=await ia$1({cleanWordFormatting:!0});l&&t(l,!0);}catch(l){console.error("Failed to paste as plain text:",l);}},[o,t]),s=useCallback(l=>o&&(l.ctrlKey||l.metaKey)&&l.shiftKey&&l.key.toLowerCase()==="v"?(l.preventDefault(),r(),true):false,[o,r]);return {isOpen:i,openDialog:r,closeDialog:a,handleKeyDown:s,pasteAsPlainText:d}}function ms(e){return ie.find(t=>t.id===e)}function xs(){return [...ie]}function fs(){return "formatted"}function hs(e){return (e.ctrlKey||e.metaKey)&&e.shiftKey&&e.key.toLowerCase()==="v"}var Yt={editing:"Editing",formatting:"Formatting",navigation:"Navigation",clipboard:"Clipboard",selection:"Selection",view:"View",file:"File",other:"Other"},Ut=["file","editing","clipboard","formatting","selection","navigation","view","other"],Ye=[{id:"save",name:"Save",description:"Save document",keys:"Ctrl+S",category:"file",common:true},{id:"print",name:"Print",description:"Print document",keys:"Ctrl+P",category:"file"},{id:"undo",name:"Undo",description:"Undo last action",keys:"Ctrl+Z",category:"editing",common:true},{id:"redo",name:"Redo",description:"Redo last action",keys:"Ctrl+Y",altKeys:"Ctrl+Shift+Z",category:"editing",common:true},{id:"delete",name:"Delete",description:"Delete selected text",keys:"Del",altKeys:"Backspace",category:"editing"},{id:"find",name:"Find",description:"Find text in document",keys:"Ctrl+F",category:"editing",common:true},{id:"replace",name:"Find & Replace",description:"Find and replace text",keys:"Ctrl+H",category:"editing"},{id:"cut",name:"Cut",description:"Cut selected text",keys:"Ctrl+X",category:"clipboard",common:true},{id:"copy",name:"Copy",description:"Copy selected text",keys:"Ctrl+C",category:"clipboard",common:true},{id:"paste",name:"Paste",description:"Paste from clipboard",keys:"Ctrl+V",category:"clipboard",common:true},{id:"paste-plain",name:"Paste as Plain Text",description:"Paste without formatting",keys:"Ctrl+Shift+V",category:"clipboard"},{id:"bold",name:"Bold",description:"Toggle bold formatting",keys:"Ctrl+B",category:"formatting",common:true},{id:"italic",name:"Italic",description:"Toggle italic formatting",keys:"Ctrl+I",category:"formatting",common:true},{id:"underline",name:"Underline",description:"Toggle underline formatting",keys:"Ctrl+U",category:"formatting",common:true},{id:"strikethrough",name:"Strikethrough",description:"Toggle strikethrough",keys:"Ctrl+Shift+X",category:"formatting"},{id:"subscript",name:"Subscript",description:"Toggle subscript",keys:"Ctrl+=",category:"formatting"},{id:"superscript",name:"Superscript",description:"Toggle superscript",keys:"Ctrl+Shift+=",category:"formatting"},{id:"align-left",name:"Align Left",description:"Left align paragraph",keys:"Ctrl+L",category:"formatting"},{id:"align-center",name:"Align Center",description:"Center align paragraph",keys:"Ctrl+E",category:"formatting"},{id:"align-right",name:"Align Right",description:"Right align paragraph",keys:"Ctrl+R",category:"formatting"},{id:"align-justify",name:"Justify",description:"Justify paragraph",keys:"Ctrl+J",category:"formatting"},{id:"indent",name:"Increase Indent",description:"Increase paragraph indent",keys:"Tab",category:"formatting"},{id:"outdent",name:"Decrease Indent",description:"Decrease paragraph indent",keys:"Shift+Tab",category:"formatting"},{id:"select-all",name:"Select All",description:"Select all content",keys:"Ctrl+A",category:"selection",common:true},{id:"select-word",name:"Select Word",description:"Select current word",keys:"Double-click",category:"selection"},{id:"select-paragraph",name:"Select Paragraph",description:"Select current paragraph",keys:"Triple-click",category:"selection"},{id:"extend-selection-word",name:"Extend Selection by Word",description:"Extend selection to next/previous word",keys:"Ctrl+Shift+Arrow",category:"selection"},{id:"extend-selection-line",name:"Extend Selection to Line Edge",description:"Extend selection to line start/end",keys:"Shift+Home/End",category:"selection"},{id:"move-word",name:"Move by Word",description:"Move cursor to next/previous word",keys:"Ctrl+Arrow",category:"navigation"},{id:"move-line-start",name:"Move to Line Start",description:"Move cursor to start of line",keys:"Home",category:"navigation"},{id:"move-line-end",name:"Move to Line End",description:"Move cursor to end of line",keys:"End",category:"navigation"},{id:"move-doc-start",name:"Move to Document Start",description:"Move cursor to start of document",keys:"Ctrl+Home",category:"navigation"},{id:"move-doc-end",name:"Move to Document End",description:"Move cursor to end of document",keys:"Ctrl+End",category:"navigation"},{id:"page-up",name:"Page Up",description:"Scroll up one page",keys:"Page Up",category:"navigation"},{id:"page-down",name:"Page Down",description:"Scroll down one page",keys:"Page Down",category:"navigation"},{id:"zoom-in",name:"Zoom In",description:"Increase zoom level",keys:"Ctrl++",altKeys:"Ctrl+Scroll Up",category:"view"},{id:"zoom-out",name:"Zoom Out",description:"Decrease zoom level",keys:"Ctrl+-",altKeys:"Ctrl+Scroll Down",category:"view"},{id:"zoom-reset",name:"Reset Zoom",description:"Reset zoom to 100%",keys:"Ctrl+0",category:"view"},{id:"shortcuts",name:"Keyboard Shortcuts",description:"Show this help dialog",keys:"Ctrl+/",altKeys:"F1",category:"view"}];function zn(){return typeof navigator<"u"&&/Mac|iPod|iPhone|iPad/.test(navigator.platform)}function nt(e){return zn()?e.replace(/Ctrl\+/g,"\u2318").replace(/Alt\+/g,"\u2325").replace(/Shift\+/g,"\u21E7"):e}var Wn=({shortcut:e})=>{let t=nt(e.keys),o=e.altKeys?nt(e.altKeys):null;return jsxs("div",{className:"docx-shortcut-item",style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 0",borderBottom:"1px solid var(--doc-border-light)"},children:[jsxs("div",{style:{flex:1},children:[jsx("div",{style:{fontSize:"13px",fontWeight:500,color:"var(--doc-text)"},children:e.name}),jsx("div",{style:{fontSize:"11px",color:"var(--doc-text-muted)",marginTop:"2px"},children:e.description})]}),jsxs("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[jsx("kbd",{style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",fontSize:"12px",fontFamily:"monospace",color:"var(--doc-text)",backgroundColor:"var(--doc-bg-hover)",borderRadius:"4px",border:"1px solid var(--doc-border-light)",boxShadow:"0 1px 1px rgba(0,0,0,0.1)"},children:t}),o&&jsxs(Fragment,{children:[jsx("span",{style:{color:"var(--doc-text-subtle)",fontSize:"11px"},children:"or"}),jsx("kbd",{style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",fontSize:"12px",fontFamily:"monospace",color:"var(--doc-text)",backgroundColor:"var(--doc-bg-hover)",borderRadius:"4px",border:"1px solid var(--doc-border-light)",boxShadow:"0 1px 1px rgba(0,0,0,0.1)"},children:o})]})]})]})},Ss=({isOpen:e,onClose:t,customShortcuts:o=[],showSearch:i=true,className:n=""})=>{let r=useRef(null),a=useRef(null),[d,s]=useState(""),l=useMemo(()=>{let p=[...Ye];for(let u of o){let x=p.findIndex(v=>v.id===u.id);x>=0?p[x]=u:p.push(u);}return p},[o]),h=useMemo(()=>{if(!d.trim())return l;let p=d.toLowerCase();return l.filter(u=>u.name.toLowerCase().includes(p)||u.description.toLowerCase().includes(p)||u.keys.toLowerCase().includes(p)||u.altKeys&&u.altKeys.toLowerCase().includes(p))},[l,d]),m=useMemo(()=>{let p=new Map;for(let x of h){let v=p.get(x.category)||[];v.push(x),p.set(x.category,v);}let u=[];for(let x of Ut){let v=p.get(x);v&&v.length>0&&u.push({category:x,shortcuts:v});}return u},[h]);return useEffect(()=>{e&&i&&a.current&&setTimeout(()=>a.current?.focus(),0);},[e,i]),useEffect(()=>{e||s("");},[e]),useEffect(()=>{if(!e)return;let p=u=>{r.current&&!r.current.contains(u.target)&&t();};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[e,t]),useEffect(()=>{if(!e)return;let p=u=>{u.key==="Escape"&&t();};return document.addEventListener("keydown",p),()=>document.removeEventListener("keydown",p)},[e,t]),e?jsx("div",{className:"docx-shortcuts-overlay",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:10001},children:jsxs("div",{ref:r,className:`docx-shortcuts-dialog ${n}`,style:{width:"600px",maxWidth:"90vw",maxHeight:"80vh",backgroundColor:"white",borderRadius:"12px",boxShadow:"0 4px 24px rgba(0, 0, 0, 0.2)",display:"flex",flexDirection:"column",overflow:"hidden"},role:"dialog","aria-label":"Keyboard Shortcuts",children:[jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid var(--doc-border)"},children:[jsx("h2",{style:{margin:0,fontSize:"18px",fontWeight:600,color:"var(--doc-text)"},children:"Keyboard Shortcuts"}),jsx("button",{type:"button",onClick:t,"aria-label":"Close",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"50%",color:"var(--doc-text-muted)"},children:jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:jsx("path",{d:"M5 5l10 10M15 5L5 15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),i&&jsx("div",{style:{padding:"12px 20px",borderBottom:"1px solid var(--doc-border)"},children:jsx("input",{ref:a,type:"text",value:d,onChange:p=>s(p.target.value),placeholder:"Search shortcuts...",style:{width:"100%",padding:"10px 12px",fontSize:"14px",border:"1px solid var(--doc-border-light)",borderRadius:"6px",outline:"none"}})}),jsx("div",{style:{flex:1,overflowY:"auto",padding:"16px 20px"},children:m.length===0?jsxs("div",{style:{textAlign:"center",padding:"32px",color:"var(--doc-text-muted)"},children:['No shortcuts found matching "',d,'"']}):m.map(({category:p,shortcuts:u})=>jsxs("div",{style:{marginBottom:"24px"},children:[jsx("h3",{style:{margin:"0 0 12px 0",fontSize:"13px",fontWeight:600,color:"var(--doc-primary)",textTransform:"uppercase",letterSpacing:"0.5px"},children:Yt[p]}),jsx("div",{children:u.map(x=>jsx(Wn,{shortcut:x},x.id))})]},p))}),jsxs("div",{style:{padding:"12px 20px",borderTop:"1px solid var(--doc-border)",backgroundColor:"var(--doc-bg)",fontSize:"12px",color:"var(--doc-text-muted)",textAlign:"center"},children:["Press"," ",jsx("kbd",{style:{padding:"2px 6px",backgroundColor:"white",borderRadius:"4px",border:"1px solid var(--doc-border-light)"},children:"Esc"})," ","to close"]})]})}):null};function ws(e={}){let{enabled:t=true,openShortcut:o="Ctrl+/"}=e,[i,n]=useState(false),r=useCallback(()=>{t&&n(true);},[t]),a=useCallback(()=>{n(false);},[]),d=useCallback(()=>{n(l=>!l);},[]),s=useCallback(l=>{if(!t)return;if((l.ctrlKey||l.metaKey)&&(l.key==="/"||l.key==="?")){l.preventDefault(),d();return}if(l.key==="F1"){l.preventDefault(),r();return}},[t,d,r]);return useEffect(()=>{if(t)return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[t,s]),{isOpen:i,open:r,close:a,toggle:d,handleKeyDown:s}}function ks(){return [...Ye]}function Ts(e){return Ye.filter(t=>t.category===e)}function Es(){return Ye.filter(e=>e.common)}function Is(e){return Yt[e]}function Ps(){return [...Ut]}function Ls(e){return nt(e)}
|
|
111
|
+
export{Ya as $,Xi as A,Es as Aa,ta as B,Is as Ba,oa as C,Ps as Ca,ra as D,Ls as Da,na as E,ia as F,aa as G,pa as H,ua as I,ga as J,ma as K,xa as L,fa as M,ha as N,Sr as O,Ca as P,Sa as Q,wa as R,ka as S,Ta as T,Ra as U,Da as V,Aa as W,Ma as X,Oa as Y,_a as Z,Na as _,Kn as a,Ua as aa,$n as b,Ha as ba,Gn as c,Va as ca,jn as d,Ka as da,Zn as e,$a as ea,Xn as f,Ga as fa,oi as g,ja as ga,ri as h,Za as ha,ni as i,ke as ia,ii as j,es as ja,di as k,ts as ka,pi as l,os as la,ui as m,rs as ma,gi as n,ns as na,mi as o,is as oa,xi as p,as as pa,Si as q,us as qa,Ti as r,gs as ra,Ei as s,ms as sa,Ii as t,xs as ta,Pi as u,fs as ua,Li as v,hs as va,Ri as w,Ss as wa,Di as x,ws as xa,Ai as y,ks as ya,Yi as z,Ts as za};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var ue={calibri:{googleFont:"Carlito",category:"sans-serif",fallbackStack:["Calibri","Carlito","Arial","Helvetica","sans-serif"],singleLineRatio:1.2207},cambria:{googleFont:"Caladea",category:"serif",fallbackStack:["Cambria","Caladea","Georgia","serif"],singleLineRatio:1.2676},arial:{googleFont:"Arimo",category:"sans-serif",fallbackStack:["Arial","Arimo","Helvetica","sans-serif"],singleLineRatio:1.1499},"times new roman":{googleFont:"Tinos",category:"serif",fallbackStack:["Times New Roman","Tinos","Times","serif"],singleLineRatio:1.1499},"courier new":{googleFont:"Cousine",category:"monospace",fallbackStack:["Courier New","Cousine","Courier","monospace"],singleLineRatio:1.1328},georgia:{googleFont:"Tinos",category:"serif",fallbackStack:["Georgia","Tinos","Times New Roman","serif"],singleLineRatio:1.1362},verdana:{googleFont:"Open Sans",category:"sans-serif",fallbackStack:["Verdana","Open Sans","Arial","sans-serif"],singleLineRatio:1.2153},tahoma:{googleFont:"Open Sans",category:"sans-serif",fallbackStack:["Tahoma","Open Sans","Arial","sans-serif"],singleLineRatio:1.2075},"trebuchet ms":{googleFont:"Fira Sans",category:"sans-serif",fallbackStack:["Trebuchet MS","Fira Sans","Arial","sans-serif"],singleLineRatio:1.1431},"comic sans ms":{googleFont:"Comic Neue",category:"cursive",fallbackStack:["Comic Sans MS","Comic Neue","cursive"],singleLineRatio:1.3936},impact:{googleFont:"Anton",category:"sans-serif",fallbackStack:["Impact","Anton","Arial Black","sans-serif"],singleLineRatio:1.2197},"palatino linotype":{googleFont:"EB Garamond",category:"serif",fallbackStack:["Palatino Linotype","EB Garamond","Palatino","Georgia","serif"],singleLineRatio:1.0259},"book antiqua":{googleFont:"EB Garamond",category:"serif",fallbackStack:["Book Antiqua","EB Garamond","Palatino","Georgia","serif"],singleLineRatio:1.0259},garamond:{googleFont:"EB Garamond",category:"serif",fallbackStack:["Garamond","EB Garamond","Georgia","serif"],singleLineRatio:1.068},"century gothic":{googleFont:"Questrial",category:"sans-serif",fallbackStack:["Century Gothic","Questrial","Arial","sans-serif"],singleLineRatio:1.1611},"lucida sans":{googleFont:"Open Sans",category:"sans-serif",fallbackStack:["Lucida Sans","Open Sans","Arial","sans-serif"],singleLineRatio:1.1655},"lucida console":{googleFont:"Cousine",category:"monospace",fallbackStack:["Lucida Console","Cousine","Courier New","monospace"],singleLineRatio:1.1387},consolas:{googleFont:"Inconsolata",category:"monospace",fallbackStack:["Consolas","Inconsolata","Cousine","Courier New","monospace"],singleLineRatio:1.1626},"ms mincho":{googleFont:"Noto Serif JP",category:"serif",fallbackStack:["MS Mincho","Noto Serif JP","serif"],singleLineRatio:1.15},"ms gothic":{googleFont:"Noto Sans JP",category:"sans-serif",fallbackStack:["MS Gothic","Noto Sans JP","sans-serif"],singleLineRatio:1.15},simhei:{googleFont:"Noto Sans SC",category:"sans-serif",fallbackStack:["SimHei","Noto Sans SC","sans-serif"],singleLineRatio:1.15},simsun:{googleFont:"Noto Serif SC",category:"serif",fallbackStack:["SimSun","Noto Serif SC","serif"],singleLineRatio:1.15},"malgun gothic":{googleFont:"Noto Sans KR",category:"sans-serif",fallbackStack:["Malgun Gothic","Noto Sans KR","sans-serif"],singleLineRatio:1.15}},ge={"sans-serif":"Arial, Helvetica, sans-serif",serif:"Times New Roman, Times, serif",monospace:"Courier New, Courier, monospace",cursive:"cursive",fantasy:"fantasy","system-ui":"system-ui, sans-serif"};function fe(n){let e=n.toLowerCase();return e.includes("mono")||e.includes("courier")||e.includes("consolas")||e.includes("console")||e.includes("code")||e.includes("terminal")?"monospace":e.includes("times")||e.includes("georgia")||e.includes("garamond")||e.includes("palatino")||e.includes("baskerville")||e.includes("bodoni")||e.includes("cambria")||e.includes("mincho")||e.includes("ming")||e.includes("song")||e.includes("serif")?"serif":e.includes("script")||e.includes("cursive")||e.includes("comic")||e.includes("brush")||e.includes("hand")?"cursive":"sans-serif"}function Q(n){let e=n.trim().toLowerCase(),a=ue[e];if(a)return {googleFont:a.googleFont,cssFallback:a.fallbackStack.map(K).join(", "),originalFont:n,hasGoogleEquivalent:true,singleLineRatio:a.singleLineRatio};let t=fe(n),r=ge[t];return {googleFont:null,cssFallback:`${K(n)}, ${r}`,originalFont:n,hasGoogleEquivalent:false,singleLineRatio:1.15}}function K(n){return ["serif","sans-serif","monospace","cursive","fantasy","system-ui"].includes(n.toLowerCase())?n:/[\s,'"()]/.test(n)?`"${n.replace(/"/g,'\\"')}"`:n}function Fe(n,e){if(!e)return null;let t=n.toLowerCase().startsWith("major")?e.majorFont:e.minorFont;if(!t)return null;let r=n.toLowerCase();return r.includes("eastasia")||r.includes("ea")?t.ea??t.latin??null:r.includes("cs")||r.includes("bidi")?t.cs??t.latin??null:t.latin??null}var Z=96,ee=11,ne="Calibri",he=1,de=.8,pe=.2,A=null;function X(){if(!A){let n=typeof document<"u"?document.createElement("canvas"):null;if(!n)throw new Error("Canvas not available. Ensure this runs in a DOM environment.");if(A=n.getContext("2d"),!A)throw new Error("Failed to get 2D context from canvas")}return A}function we(){A=null;}var V=new Map;function te(n){let e=V.get(n);if(e===void 0){let a=Q(n);e={cssFallback:a.cssFallback,singleLineRatio:a.singleLineRatio},V.set(n,e);}return e}function be(n){return te(n).cssFallback}function U(n){let e=[];n.italic&&e.push("italic"),n.bold&&e.push("bold");let a=n.fontSize??ee,t=oe(a);e.push(`${t}px`);let r=n.fontFamily??ne;return e.push(be(r)),e.join(" ")}function xe(n){let e=n.fontSize??ee,a=n.fontFamily??ne,t=oe(e),r=t*de,o=t*pe,c=t*he;try{let s=X();s.font=U(n);let g=s.measureText("Hg");typeof g.actualBoundingBoxAscent=="number"&&typeof g.actualBoundingBoxDescent=="number"&&(r=g.actualBoundingBoxAscent,o=g.actualBoundingBoxDescent);}catch{}c=Math.max(c,r+o);let i=te(a).singleLineRatio;return {fontSize:e,ascent:r,descent:o,lineHeight:c,fontFamily:a,singleLineRatio:i}}function Me(n,e){if(!n)return 0;let a=X();a.font=U(e);let r=a.measureText(n).width;return e.letterSpacing&&n.length>1&&(r+=e.letterSpacing*(n.length-1)),r}function W(n,e){let a=xe(e);if(!n)return {width:0,charWidths:[],metrics:a};let t=X();t.font=U(e);let r=e.letterSpacing??0,o=[],c=0;for(let i=0;i<n.length;i++){let s=n[i],h=t.measureText(s).width;r&&i<n.length-1&&(h+=r),o.push(h),c+=h;}return {width:c,charWidths:o,metrics:a}}function Te(n,e){if(e.length===0||n<=0)return 0;let a=0;for(let t=0;t<e.length;t++){let r=e[t],o=a+r/2;if(n<=o)return t;a+=r;}return e.length}function oe(n){return n*Z/72}function q(n,e){let a=n.pageGap??0,t=0;for(let r=0;r<e&&r<n.pages.length;r++){let c=n.pages[r].size?.h??n.pageSize.h;t+=c+a;}return t}function ae(n,e){return n.findIndex(a=>a.id===e)}function ke(n,e){let a=0;for(let t=n.fromLine;t<n.toLine&&t<e.lines.length;t++)a+=e.lines[t].lineHeight;return a}function Ie(n,e,a,t){let r=[...n.page.fragments].sort((o,c)=>{let i=o.y-c.y;return Math.abs(i)>.5?i:o.x-c.x});for(let o of r){let c=ae(e,o.blockId);if(c===-1)continue;let i=e[c],s=a[c];if(!i||!s)continue;let g;if(o.kind==="paragraph"){if(i.kind!=="paragraph"||s.kind!=="paragraph")continue;g=ke(o,s);}else if(o.kind==="table")g=o.height;else if(o.kind==="image")g=o.height;else continue;let h=t.x>=o.x&&t.x<=o.x+o.width,l=t.y>=o.y&&t.y<=o.y+g;if(h&&l)return {fragment:o,block:i,measure:s,pageIndex:n.pageIndex,localX:t.x-o.x,localY:t.y-o.y}}return null}function Ce(n,e,a,t){for(let r of n.page.fragments){if(r.kind!=="table")continue;let o=r,c=t.x>=o.x&&t.x<=o.x+o.width,i=t.y>=o.y&&t.y<=o.y+o.height;if(!c||!i)continue;let s=ae(e,o.blockId);if(s===-1)continue;let g=e[s],h=a[s];if(!g||g.kind!=="table"||!h||h.kind!=="table")continue;let l=g,f=h,d=t.x-o.x,F=t.y-o.y,x=0,p=-1;if(f.rows.length===0||l.rows.length===0)continue;for(let u=o.fromRow;u<o.toRow&&u<f.rows.length;u++){let L=f.rows[u];if(F>=x&&F<x+L.height){p=u;break}x+=L.height;}if(p===-1&&(p=Math.min(o.toRow-1,f.rows.length-1),p<o.fromRow))continue;let m=f.rows[p],S=l.rows[p];if(!m||!S)continue;let b=0,k=-1;if(m.cells.length===0||S.cells.length===0)continue;for(let u=0;u<m.cells.length;u++){let L=m.cells[u];if(d>=b&&d<b+L.width){k=u;break}b+=L.width;}if(k===-1&&(k=m.cells.length-1,k<0))continue;let y=m.cells[k],R=S.cells[k];if(!y||!R)continue;let w=0;for(let u=o.fromRow;u<p;u++)w+=f.rows[u]?.height??0;let I=0;for(let u=0;u<k;u++)I+=m.cells[u]?.width??0;let T,M;if(R.blocks&&R.blocks.length>0){let u=R.blocks[0],L=y.blocks[0];u.kind==="paragraph"&&L?.kind==="paragraph"&&(T=u,M=L);}let C=d-I,B=F-w;return {fragment:o,block:l,measure:f,pageIndex:n.pageIndex,rowIndex:p,colIndex:k,cellBlock:T,cellMeasure:M,cellLocalX:Math.max(0,C),cellLocalY:Math.max(0,B)}}return null}function re(n){return {fontFamily:n.fontFamily??"Arial",fontSize:n.fontSize??12,bold:n.bold,italic:n.italic,letterSpacing:n.letterSpacing}}function j(n,e){return n.findIndex(a=>a.id===e)}function G(n,e){let t=(n.pmStart??0)+1,r=0,o;for(let s=0;s<n.runs.length&&s<=e.toRun;s++){let g=n.runs[s];if(g){if(s<e.fromRun)g.kind==="text"?r+=(g.text??"").length:r+=1;else if(s===e.fromRun){r+=e.fromChar,o=t+r;break}}}o===void 0&&(o=t);let c=0;for(let s=e.fromRun;s<=e.toRun&&s<n.runs.length;s++){let g=n.runs[s];if(g)if(g.kind==="text"){let h=g.text??"",l=s===e.fromRun?e.fromChar:0,f=s===e.toRun?e.toChar:h.length;c+=f-l;}else c+=1;}let i=o+c;return {pmStart:o,pmEnd:i}}function ie(n,e,a,t){let r=[];for(let o=0;o<e.lines.length;o++){let c=e.lines[o],i=G(n,c);i.pmStart===void 0||i.pmEnd===void 0||i.pmEnd>a&&i.pmStart<t&&r.push({line:c,index:o});}return r}function v(n,e,a){let t=G(n,e);return t.pmStart===void 0?0:Math.max(0,a-t.pmStart)}function _(n,e,a,t){let r=0,o=0;for(let c=e.fromRun;c<=e.toRun&&c<n.runs.length;c++){let i=n.runs[c];if(i){if(i.kind==="tab"){let s=i.width??48;if(o+1>=a)return a<=o?r:r+s;r+=s,o+=1;continue}if(i.kind==="image"){let s=i.width;if(o+1>=a)return a<=o?r:r+s;r+=s,o+=1;continue}if(i.kind==="lineBreak"){if(a<=o)return r;o+=1;continue}if(i.kind==="text"){let s=i.text??"",g=c===e.fromRun,h=c===e.toRun,l=g?e.fromChar:0,f=h?e.toChar:s.length,d=s.slice(l,f);if(o+d.length>=a){let p=a-o,m=re(i),S=W(d.slice(0,p),m);return r+S.width}let F=re(i),x=W(d,F);r+=x.width,o+=d.length;}}}return r}function N(n,e){let a=0;for(let t=0;t<e&&t<n.lines.length;t++)a+=n.lines[t].lineHeight;return a}function He(n,e,a,t,r){if(t===r)return [];let o=Math.min(t,r),c=Math.max(t,r),i=[];for(let s=0;s<n.pages.length;s++){let g=n.pages[s],h=q(n,s);for(let l of g.fragments){if(l.kind==="paragraph"){let f=j(e,l.blockId);if(f===-1)continue;let d=e[f],F=a[f];if(!d||d.kind!=="paragraph"||!F||F.kind!=="paragraph")continue;let x=d,p=F,m=l,S=ie(x,p,o,c);for(let{line:b,index:k}of S){if(k<m.fromLine||k>=m.toLine)continue;let y=G(x,b);if(y.pmStart===void 0||y.pmEnd===void 0)continue;let R=Math.max(y.pmStart,o),w=Math.min(y.pmEnd,c);if(R>=w)continue;let I=v(x,b,R),T=v(x,b,w),M=x.attrs?.indent,C=M?.left??0,B=M?.right??0,u=Math.max(0,l.width-C-B),L=_(x,b,I),z=_(x,b,T),H=x.attrs?.alignment??"left",P=0;H==="center"?P=Math.max(0,(u-b.width)/2):H==="right"&&(P=Math.max(0,u-b.width));let D=N(p,k)-N(p,m.fromLine),E=l.x+C+P+Math.min(L,z),O=Math.max(1,Math.abs(z-L)),Y=l.y+D;i.push({x:E,y:Y+h,width:O,height:b.lineHeight,pageIndex:s});}}if(l.kind==="table"){let f=j(e,l.blockId);if(f===-1)continue;let d=e[f],F=a[f];if(!d||d.kind!=="table"||!F||F.kind!=="table")continue;let x=d,p=F,m=l,S=0;for(let b=m.fromRow;b<m.toRow&&b<x.rows.length;b++){let k=x.rows[b],y=p.rows[b];if(!k||!y)continue;let R=0;for(let w=0;w<k.cells.length;w++){let I=k.cells[w],T=y.cells[w];if(!(!I||!T)){for(let M=0;M<I.blocks.length;M++){let C=I.blocks[M],B=T.blocks[M];if(!C||C.kind!=="paragraph"||!B||B.kind!=="paragraph")continue;let u=C,L=B,z=ie(u,L,o,c),H=0;for(let{line:P,index:D}of z){let E=G(u,P);if(E.pmStart===void 0||E.pmEnd===void 0)continue;let O=Math.max(E.pmStart,o),Y=Math.min(E.pmEnd,c);if(O>=Y)continue;let se=v(u,P,O),ce=v(u,P,Y),J=_(u,P,se,T.width),$=_(u,P,ce,T.width),le=N(L,D);i.push({x:m.x+R+Math.min(J,$),y:m.y+S+H+le+h,width:Math.max(1,Math.abs($-J)),height:P.lineHeight,pageIndex:s});}H+=L.totalHeight;}R+=T.width;}}S+=y.height;}}if(l.kind==="image"){let f=l.pmStart??0;(l.pmEnd??f+1)>o&&f<c&&i.push({x:l.x,y:l.y+h,width:l.width,height:l.height,pageIndex:s});}}}return i}function Ae(n,e,a,t){for(let r=0;r<n.pages.length;r++){let o=n.pages[r],c=q(n,r);for(let i of o.fragments){if(i.kind==="paragraph"){let s=j(e,i.blockId);if(s===-1)continue;let g=e[s],h=a[s];if(!g||g.kind!=="paragraph"||!h||h.kind!=="paragraph")continue;let l=g,f=h,d=i,F=l.pmStart??0,x=l.pmEnd??F;if(t<F||t>x)continue;for(let p=d.fromLine;p<d.toLine;p++){let m=f.lines[p];if(!m)continue;let S=G(l,m);if(!(S.pmStart===void 0||S.pmEnd===void 0)&&t>=S.pmStart&&t<=S.pmEnd){let b=v(l,m,t),k=l.attrs?.indent,y=k?.left??0,R=k?.right??0,w=Math.max(0,i.width-y-R),I=_(l,m,b),T=l.attrs?.alignment??"left",M=0;T==="center"?M=Math.max(0,(w-m.width)/2):T==="right"&&(M=Math.max(0,w-m.width));let C=N(f,p)-N(f,d.fromLine);return {x:i.x+y+M+I,y:i.y+C+c,height:m.lineHeight,pageIndex:r}}}}if(i.kind==="image"){let s=i.pmStart??0,g=i.pmEnd??s+1;if(t>=s&&t<=g){let h=t===s?0:i.width;return {x:i.x+h,y:i.y+c,height:i.height,pageIndex:r}}}}}return null}function ve(n){return n.length<=1?false:new Set(n.map(a=>a.pageIndex)).size>1}function _e(n){let e=new Map;for(let a of n){let t=e.get(a.pageIndex)??[];t.push(a),e.set(a.pageIndex,t);}return e}exports.a=Q;exports.b=Fe;exports.c=we;exports.d=xe;exports.e=Me;exports.f=W;exports.g=Te;exports.h=oe;exports.i=Ie;exports.j=Ce;exports.k=He;exports.l=Ae;exports.m=ve;exports.n=_e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var ue={calibri:{googleFont:"Carlito",category:"sans-serif",fallbackStack:["Calibri","Carlito","Arial","Helvetica","sans-serif"],singleLineRatio:1.2207},cambria:{googleFont:"Caladea",category:"serif",fallbackStack:["Cambria","Caladea","Georgia","serif"],singleLineRatio:1.2676},arial:{googleFont:"Arimo",category:"sans-serif",fallbackStack:["Arial","Arimo","Helvetica","sans-serif"],singleLineRatio:1.1499},"times new roman":{googleFont:"Tinos",category:"serif",fallbackStack:["Times New Roman","Tinos","Times","serif"],singleLineRatio:1.1499},"courier new":{googleFont:"Cousine",category:"monospace",fallbackStack:["Courier New","Cousine","Courier","monospace"],singleLineRatio:1.1328},georgia:{googleFont:"Tinos",category:"serif",fallbackStack:["Georgia","Tinos","Times New Roman","serif"],singleLineRatio:1.1362},verdana:{googleFont:"Open Sans",category:"sans-serif",fallbackStack:["Verdana","Open Sans","Arial","sans-serif"],singleLineRatio:1.2153},tahoma:{googleFont:"Open Sans",category:"sans-serif",fallbackStack:["Tahoma","Open Sans","Arial","sans-serif"],singleLineRatio:1.2075},"trebuchet ms":{googleFont:"Fira Sans",category:"sans-serif",fallbackStack:["Trebuchet MS","Fira Sans","Arial","sans-serif"],singleLineRatio:1.1431},"comic sans ms":{googleFont:"Comic Neue",category:"cursive",fallbackStack:["Comic Sans MS","Comic Neue","cursive"],singleLineRatio:1.3936},impact:{googleFont:"Anton",category:"sans-serif",fallbackStack:["Impact","Anton","Arial Black","sans-serif"],singleLineRatio:1.2197},"palatino linotype":{googleFont:"EB Garamond",category:"serif",fallbackStack:["Palatino Linotype","EB Garamond","Palatino","Georgia","serif"],singleLineRatio:1.0259},"book antiqua":{googleFont:"EB Garamond",category:"serif",fallbackStack:["Book Antiqua","EB Garamond","Palatino","Georgia","serif"],singleLineRatio:1.0259},garamond:{googleFont:"EB Garamond",category:"serif",fallbackStack:["Garamond","EB Garamond","Georgia","serif"],singleLineRatio:1.068},"century gothic":{googleFont:"Questrial",category:"sans-serif",fallbackStack:["Century Gothic","Questrial","Arial","sans-serif"],singleLineRatio:1.1611},"lucida sans":{googleFont:"Open Sans",category:"sans-serif",fallbackStack:["Lucida Sans","Open Sans","Arial","sans-serif"],singleLineRatio:1.1655},"lucida console":{googleFont:"Cousine",category:"monospace",fallbackStack:["Lucida Console","Cousine","Courier New","monospace"],singleLineRatio:1.1387},consolas:{googleFont:"Inconsolata",category:"monospace",fallbackStack:["Consolas","Inconsolata","Cousine","Courier New","monospace"],singleLineRatio:1.1626},"ms mincho":{googleFont:"Noto Serif JP",category:"serif",fallbackStack:["MS Mincho","Noto Serif JP","serif"],singleLineRatio:1.15},"ms gothic":{googleFont:"Noto Sans JP",category:"sans-serif",fallbackStack:["MS Gothic","Noto Sans JP","sans-serif"],singleLineRatio:1.15},simhei:{googleFont:"Noto Sans SC",category:"sans-serif",fallbackStack:["SimHei","Noto Sans SC","sans-serif"],singleLineRatio:1.15},simsun:{googleFont:"Noto Serif SC",category:"serif",fallbackStack:["SimSun","Noto Serif SC","serif"],singleLineRatio:1.15},"malgun gothic":{googleFont:"Noto Sans KR",category:"sans-serif",fallbackStack:["Malgun Gothic","Noto Sans KR","sans-serif"],singleLineRatio:1.15}},ge={"sans-serif":"Arial, Helvetica, sans-serif",serif:"Times New Roman, Times, serif",monospace:"Courier New, Courier, monospace",cursive:"cursive",fantasy:"fantasy","system-ui":"system-ui, sans-serif"};function fe(n){let e=n.toLowerCase();return e.includes("mono")||e.includes("courier")||e.includes("consolas")||e.includes("console")||e.includes("code")||e.includes("terminal")?"monospace":e.includes("times")||e.includes("georgia")||e.includes("garamond")||e.includes("palatino")||e.includes("baskerville")||e.includes("bodoni")||e.includes("cambria")||e.includes("mincho")||e.includes("ming")||e.includes("song")||e.includes("serif")?"serif":e.includes("script")||e.includes("cursive")||e.includes("comic")||e.includes("brush")||e.includes("hand")?"cursive":"sans-serif"}function Q(n){let e=n.trim().toLowerCase(),a=ue[e];if(a)return {googleFont:a.googleFont,cssFallback:a.fallbackStack.map(K).join(", "),originalFont:n,hasGoogleEquivalent:true,singleLineRatio:a.singleLineRatio};let t=fe(n),r=ge[t];return {googleFont:null,cssFallback:`${K(n)}, ${r}`,originalFont:n,hasGoogleEquivalent:false,singleLineRatio:1.15}}function K(n){return ["serif","sans-serif","monospace","cursive","fantasy","system-ui"].includes(n.toLowerCase())?n:/[\s,'"()]/.test(n)?`"${n.replace(/"/g,'\\"')}"`:n}function Fe(n,e){if(!e)return null;let t=n.toLowerCase().startsWith("major")?e.majorFont:e.minorFont;if(!t)return null;let r=n.toLowerCase();return r.includes("eastasia")||r.includes("ea")?t.ea??t.latin??null:r.includes("cs")||r.includes("bidi")?t.cs??t.latin??null:t.latin??null}var Z=96,ee=11,ne="Calibri",he=1,de=.8,pe=.2,A=null;function X(){if(!A){let n=typeof document<"u"?document.createElement("canvas"):null;if(!n)throw new Error("Canvas not available. Ensure this runs in a DOM environment.");if(A=n.getContext("2d"),!A)throw new Error("Failed to get 2D context from canvas")}return A}function we(){A=null;}var V=new Map;function te(n){let e=V.get(n);if(e===void 0){let a=Q(n);e={cssFallback:a.cssFallback,singleLineRatio:a.singleLineRatio},V.set(n,e);}return e}function be(n){return te(n).cssFallback}function U(n){let e=[];n.italic&&e.push("italic"),n.bold&&e.push("bold");let a=n.fontSize??ee,t=oe(a);e.push(`${t}px`);let r=n.fontFamily??ne;return e.push(be(r)),e.join(" ")}function xe(n){let e=n.fontSize??ee,a=n.fontFamily??ne,t=oe(e),r=t*de,o=t*pe,c=t*he;try{let s=X();s.font=U(n);let g=s.measureText("Hg");typeof g.actualBoundingBoxAscent=="number"&&typeof g.actualBoundingBoxDescent=="number"&&(r=g.actualBoundingBoxAscent,o=g.actualBoundingBoxDescent);}catch{}c=Math.max(c,r+o);let i=te(a).singleLineRatio;return {fontSize:e,ascent:r,descent:o,lineHeight:c,fontFamily:a,singleLineRatio:i}}function Me(n,e){if(!n)return 0;let a=X();a.font=U(e);let r=a.measureText(n).width;return e.letterSpacing&&n.length>1&&(r+=e.letterSpacing*(n.length-1)),r}function W(n,e){let a=xe(e);if(!n)return {width:0,charWidths:[],metrics:a};let t=X();t.font=U(e);let r=e.letterSpacing??0,o=[],c=0;for(let i=0;i<n.length;i++){let s=n[i],h=t.measureText(s).width;r&&i<n.length-1&&(h+=r),o.push(h),c+=h;}return {width:c,charWidths:o,metrics:a}}function Te(n,e){if(e.length===0||n<=0)return 0;let a=0;for(let t=0;t<e.length;t++){let r=e[t],o=a+r/2;if(n<=o)return t;a+=r;}return e.length}function oe(n){return n*Z/72}function q(n,e){let a=n.pageGap??0,t=0;for(let r=0;r<e&&r<n.pages.length;r++){let c=n.pages[r].size?.h??n.pageSize.h;t+=c+a;}return t}function ae(n,e){return n.findIndex(a=>a.id===e)}function ke(n,e){let a=0;for(let t=n.fromLine;t<n.toLine&&t<e.lines.length;t++)a+=e.lines[t].lineHeight;return a}function Ie(n,e,a,t){let r=[...n.page.fragments].sort((o,c)=>{let i=o.y-c.y;return Math.abs(i)>.5?i:o.x-c.x});for(let o of r){let c=ae(e,o.blockId);if(c===-1)continue;let i=e[c],s=a[c];if(!i||!s)continue;let g;if(o.kind==="paragraph"){if(i.kind!=="paragraph"||s.kind!=="paragraph")continue;g=ke(o,s);}else if(o.kind==="table")g=o.height;else if(o.kind==="image")g=o.height;else continue;let h=t.x>=o.x&&t.x<=o.x+o.width,l=t.y>=o.y&&t.y<=o.y+g;if(h&&l)return {fragment:o,block:i,measure:s,pageIndex:n.pageIndex,localX:t.x-o.x,localY:t.y-o.y}}return null}function Ce(n,e,a,t){for(let r of n.page.fragments){if(r.kind!=="table")continue;let o=r,c=t.x>=o.x&&t.x<=o.x+o.width,i=t.y>=o.y&&t.y<=o.y+o.height;if(!c||!i)continue;let s=ae(e,o.blockId);if(s===-1)continue;let g=e[s],h=a[s];if(!g||g.kind!=="table"||!h||h.kind!=="table")continue;let l=g,f=h,d=t.x-o.x,F=t.y-o.y,x=0,p=-1;if(f.rows.length===0||l.rows.length===0)continue;for(let u=o.fromRow;u<o.toRow&&u<f.rows.length;u++){let L=f.rows[u];if(F>=x&&F<x+L.height){p=u;break}x+=L.height;}if(p===-1&&(p=Math.min(o.toRow-1,f.rows.length-1),p<o.fromRow))continue;let m=f.rows[p],S=l.rows[p];if(!m||!S)continue;let b=0,k=-1;if(m.cells.length===0||S.cells.length===0)continue;for(let u=0;u<m.cells.length;u++){let L=m.cells[u];if(d>=b&&d<b+L.width){k=u;break}b+=L.width;}if(k===-1&&(k=m.cells.length-1,k<0))continue;let y=m.cells[k],R=S.cells[k];if(!y||!R)continue;let w=0;for(let u=o.fromRow;u<p;u++)w+=f.rows[u]?.height??0;let I=0;for(let u=0;u<k;u++)I+=m.cells[u]?.width??0;let T,M;if(R.blocks&&R.blocks.length>0){let u=R.blocks[0],L=y.blocks[0];u.kind==="paragraph"&&L?.kind==="paragraph"&&(T=u,M=L);}let C=d-I,B=F-w;return {fragment:o,block:l,measure:f,pageIndex:n.pageIndex,rowIndex:p,colIndex:k,cellBlock:T,cellMeasure:M,cellLocalX:Math.max(0,C),cellLocalY:Math.max(0,B)}}return null}function re(n){return {fontFamily:n.fontFamily??"Arial",fontSize:n.fontSize??12,bold:n.bold,italic:n.italic,letterSpacing:n.letterSpacing}}function j(n,e){return n.findIndex(a=>a.id===e)}function G(n,e){let t=(n.pmStart??0)+1,r=0,o;for(let s=0;s<n.runs.length&&s<=e.toRun;s++){let g=n.runs[s];if(g){if(s<e.fromRun)g.kind==="text"?r+=(g.text??"").length:r+=1;else if(s===e.fromRun){r+=e.fromChar,o=t+r;break}}}o===void 0&&(o=t);let c=0;for(let s=e.fromRun;s<=e.toRun&&s<n.runs.length;s++){let g=n.runs[s];if(g)if(g.kind==="text"){let h=g.text??"",l=s===e.fromRun?e.fromChar:0,f=s===e.toRun?e.toChar:h.length;c+=f-l;}else c+=1;}let i=o+c;return {pmStart:o,pmEnd:i}}function ie(n,e,a,t){let r=[];for(let o=0;o<e.lines.length;o++){let c=e.lines[o],i=G(n,c);i.pmStart===void 0||i.pmEnd===void 0||i.pmEnd>a&&i.pmStart<t&&r.push({line:c,index:o});}return r}function v(n,e,a){let t=G(n,e);return t.pmStart===void 0?0:Math.max(0,a-t.pmStart)}function _(n,e,a,t){let r=0,o=0;for(let c=e.fromRun;c<=e.toRun&&c<n.runs.length;c++){let i=n.runs[c];if(i){if(i.kind==="tab"){let s=i.width??48;if(o+1>=a)return a<=o?r:r+s;r+=s,o+=1;continue}if(i.kind==="image"){let s=i.width;if(o+1>=a)return a<=o?r:r+s;r+=s,o+=1;continue}if(i.kind==="lineBreak"){if(a<=o)return r;o+=1;continue}if(i.kind==="text"){let s=i.text??"",g=c===e.fromRun,h=c===e.toRun,l=g?e.fromChar:0,f=h?e.toChar:s.length,d=s.slice(l,f);if(o+d.length>=a){let p=a-o,m=re(i),S=W(d.slice(0,p),m);return r+S.width}let F=re(i),x=W(d,F);r+=x.width,o+=d.length;}}}return r}function N(n,e){let a=0;for(let t=0;t<e&&t<n.lines.length;t++)a+=n.lines[t].lineHeight;return a}function He(n,e,a,t,r){if(t===r)return [];let o=Math.min(t,r),c=Math.max(t,r),i=[];for(let s=0;s<n.pages.length;s++){let g=n.pages[s],h=q(n,s);for(let l of g.fragments){if(l.kind==="paragraph"){let f=j(e,l.blockId);if(f===-1)continue;let d=e[f],F=a[f];if(!d||d.kind!=="paragraph"||!F||F.kind!=="paragraph")continue;let x=d,p=F,m=l,S=ie(x,p,o,c);for(let{line:b,index:k}of S){if(k<m.fromLine||k>=m.toLine)continue;let y=G(x,b);if(y.pmStart===void 0||y.pmEnd===void 0)continue;let R=Math.max(y.pmStart,o),w=Math.min(y.pmEnd,c);if(R>=w)continue;let I=v(x,b,R),T=v(x,b,w),M=x.attrs?.indent,C=M?.left??0,B=M?.right??0,u=Math.max(0,l.width-C-B),L=_(x,b,I),z=_(x,b,T),H=x.attrs?.alignment??"left",P=0;H==="center"?P=Math.max(0,(u-b.width)/2):H==="right"&&(P=Math.max(0,u-b.width));let D=N(p,k)-N(p,m.fromLine),E=l.x+C+P+Math.min(L,z),O=Math.max(1,Math.abs(z-L)),Y=l.y+D;i.push({x:E,y:Y+h,width:O,height:b.lineHeight,pageIndex:s});}}if(l.kind==="table"){let f=j(e,l.blockId);if(f===-1)continue;let d=e[f],F=a[f];if(!d||d.kind!=="table"||!F||F.kind!=="table")continue;let x=d,p=F,m=l,S=0;for(let b=m.fromRow;b<m.toRow&&b<x.rows.length;b++){let k=x.rows[b],y=p.rows[b];if(!k||!y)continue;let R=0;for(let w=0;w<k.cells.length;w++){let I=k.cells[w],T=y.cells[w];if(!(!I||!T)){for(let M=0;M<I.blocks.length;M++){let C=I.blocks[M],B=T.blocks[M];if(!C||C.kind!=="paragraph"||!B||B.kind!=="paragraph")continue;let u=C,L=B,z=ie(u,L,o,c),H=0;for(let{line:P,index:D}of z){let E=G(u,P);if(E.pmStart===void 0||E.pmEnd===void 0)continue;let O=Math.max(E.pmStart,o),Y=Math.min(E.pmEnd,c);if(O>=Y)continue;let se=v(u,P,O),ce=v(u,P,Y),J=_(u,P,se,T.width),$=_(u,P,ce,T.width),le=N(L,D);i.push({x:m.x+R+Math.min(J,$),y:m.y+S+H+le+h,width:Math.max(1,Math.abs($-J)),height:P.lineHeight,pageIndex:s});}H+=L.totalHeight;}R+=T.width;}}S+=y.height;}}if(l.kind==="image"){let f=l.pmStart??0;(l.pmEnd??f+1)>o&&f<c&&i.push({x:l.x,y:l.y+h,width:l.width,height:l.height,pageIndex:s});}}}return i}function Ae(n,e,a,t){for(let r=0;r<n.pages.length;r++){let o=n.pages[r],c=q(n,r);for(let i of o.fragments){if(i.kind==="paragraph"){let s=j(e,i.blockId);if(s===-1)continue;let g=e[s],h=a[s];if(!g||g.kind!=="paragraph"||!h||h.kind!=="paragraph")continue;let l=g,f=h,d=i,F=l.pmStart??0,x=l.pmEnd??F;if(t<F||t>x)continue;for(let p=d.fromLine;p<d.toLine;p++){let m=f.lines[p];if(!m)continue;let S=G(l,m);if(!(S.pmStart===void 0||S.pmEnd===void 0)&&t>=S.pmStart&&t<=S.pmEnd){let b=v(l,m,t),k=l.attrs?.indent,y=k?.left??0,R=k?.right??0,w=Math.max(0,i.width-y-R),I=_(l,m,b),T=l.attrs?.alignment??"left",M=0;T==="center"?M=Math.max(0,(w-m.width)/2):T==="right"&&(M=Math.max(0,w-m.width));let C=N(f,p)-N(f,d.fromLine);return {x:i.x+y+M+I,y:i.y+C+c,height:m.lineHeight,pageIndex:r}}}}if(i.kind==="image"){let s=i.pmStart??0,g=i.pmEnd??s+1;if(t>=s&&t<=g){let h=t===s?0:i.width;return {x:i.x+h,y:i.y+c,height:i.height,pageIndex:r}}}}}return null}function ve(n){return n.length<=1?false:new Set(n.map(a=>a.pageIndex)).size>1}function _e(n){let e=new Map;for(let a of n){let t=e.get(a.pageIndex)??[];t.push(a),e.set(a.pageIndex,t);}return e}export{Q as a,Fe as b,we as c,xe as d,Me as e,W as f,Te as g,oe as h,Ie as i,Ce as j,He as k,Ae as l,ve as m,_e as n};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import {a}from'./chunk-7KJ3YVDQ.js';import {c,e,d as d$1,f}from'./chunk-FXJAIFPR.js';import {b,a as a$1}from'./chunk-AARNCPWR.js';import {p}from'./chunk-UTWPV2I4.js';import {d}from'./chunk-H5NTJZO4.js';function $(r,t){let e=J(t),n=new RegExp(`<w:p[\\s][^>]*w14:paraId="${e}"`,"g"),a=[],o;for(;(o=n.exec(r))!==null;)a.push(o.index);if(a.length===0||a.length>1)return null;let i=a[0],s=i,c=0;for(;s<r.length;){let u=r.indexOf("<",s);if(u===-1)break;if(r.startsWith("<w:p",u)){let p=r[u+4];if(p===">"||p===" "||p==="/"){let l=r.indexOf(">",u);if(l===-1)break;if(r[l-1]==="/"){if(c===0)return {start:i,end:l+1};s=l+1;}else c++,s=l+1;}else s=u+1;}else if(r.startsWith("</w:p>",u)){if(c--,c===0)return {start:i,end:u+6};s=u+6;}else s=u+1;}return null}function G(r,t){let e=$(r,t);return e?r.substring(e.start,e.end):null}function L(r){let t=0,e=/<w:p[\s>]/g,n;for(;(n=e.exec(r))!==null;){let a=n.index,o=r[a+4];(o===">"||o===" ")&&t++;}return t}function W(r){let t=new Map,e=/w14:paraId="([^"]+)"/g,n;for(;(n=e.exec(r))!==null;){let a=n[1];t.set(a,(t.get(a)||0)+1);}return t}function X(r,t,e){if(e.size===0)return {safe:true};let n=W(r),a=W(t);for(let s of e){let c=n.get(s)||0;if(c===0)return {safe:false,reason:`paraId-not-found-in-original: ${s}`};if(c>1)return {safe:false,reason:`duplicate-paraId-in-original: ${s}`}}for(let s of e){let c=a.get(s)||0;if(c===0)return {safe:false,reason:`paraId-not-found-in-serialized: ${s}`};if(c>1)return {safe:false,reason:`duplicate-paraId-in-serialized: ${s}`}}let o=L(r),i=L(t);return o!==i?{safe:false,reason:`paragraph-count-mismatch: original=${o}, serialized=${i}`}:{safe:true}}function M(r,t,e){if(e.size===0)return r;if(!X(r,t,e).safe)return null;let a=[];for(let i of e){let s=$(r,i);if(!s)return null;let c=G(t,i);if(!c)return null;a.push({start:s.start,end:s.end,newXml:c});}a.sort((i,s)=>s.start-i.start);let o=r;for(let{start:i,end:s,newXml:c}of a)o=o.substring(0,i)+c+o.substring(s);return o}function J(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function N(r){for(let t of r)if(t.type==="paragraph"){for(let e of t.content)if(e.type==="run"){for(let n of e.content)if(n.type==="drawing"&&n.image?.src?.startsWith("data:")&&!n.image?.rId)return true}else if(e.type==="hyperlink"&&e.href&&!e.rId&&!e.anchor)return true}else if(t.type==="table"){for(let e of t.rows)for(let n of e.cells)if(N(n.content))return true}return false}async function q(r,t,e$1){let{changedParaIds:n,structuralChange:a,hasUntrackedChanges:o}=e$1;if(a||o||!t)return null;let i=r.package.document.content;if(N(i))return null;if(n.size===0)return t;try{let u=(await(await import('./lib-GD2QD2JK.js')).default.loadAsync(t)).file("word/document.xml");if(!u)return null;let p=await u.async("text"),l=c(r),f=M(p,l,n);if(!f)return null;let d=new Map;return d.set("word/document.xml",f),await e(t,d)}catch{return null}}function Z(){return [{styleId:"Normal",type:"paragraph",name:"Normal",default:true,qFormat:true,uiPriority:0,rPr:{fontSize:22,fontFamily:{ascii:"Arial",hAnsi:"Arial"}},pPr:{lineSpacing:276}},{styleId:"Title",type:"paragraph",name:"Title",basedOn:"Normal",next:"Normal",qFormat:true,uiPriority:10,rPr:{fontSize:52,bold:true,fontFamily:{ascii:"Arial",hAnsi:"Arial"}},pPr:{lineSpacing:240}},{styleId:"Subtitle",type:"paragraph",name:"Subtitle",basedOn:"Normal",next:"Normal",qFormat:true,uiPriority:11,rPr:{fontSize:30,color:{rgb:"666666"},fontFamily:{ascii:"Arial",hAnsi:"Arial"}},pPr:{lineSpacing:240}},{styleId:"Heading1",type:"paragraph",name:"Heading 1",basedOn:"Normal",next:"Normal",qFormat:true,uiPriority:9,rPr:{fontSize:40,bold:true,fontFamily:{ascii:"Arial",hAnsi:"Arial"}},pPr:{spaceBefore:400,spaceAfter:120,lineSpacing:240}},{styleId:"Heading2",type:"paragraph",name:"Heading 2",basedOn:"Normal",next:"Normal",qFormat:true,uiPriority:9,rPr:{fontSize:32,bold:true,fontFamily:{ascii:"Arial",hAnsi:"Arial"}},pPr:{spaceBefore:360,spaceAfter:80,lineSpacing:240}},{styleId:"Heading3",type:"paragraph",name:"Heading 3",basedOn:"Normal",next:"Normal",qFormat:true,uiPriority:9,rPr:{fontSize:28,bold:true,fontFamily:{ascii:"Arial",hAnsi:"Arial"}},pPr:{spaceBefore:320,spaceAfter:80,lineSpacing:240}},{styleId:"Heading4",type:"paragraph",name:"Heading 4",basedOn:"Normal",next:"Normal",qFormat:true,uiPriority:9,rPr:{fontSize:24,bold:true,fontFamily:{ascii:"Arial",hAnsi:"Arial"}},pPr:{spaceBefore:280,spaceAfter:80,lineSpacing:240}}]}function K(){return {pageWidth:12240,pageHeight:15840,orientation:"portrait",marginTop:1440,marginBottom:1440,marginLeft:1440,marginRight:1440,headerDistance:720,footerDistance:720,gutter:0,columnCount:1,columnSpace:720,equalWidth:true,sectionStart:"nextPage",verticalAlign:"top"}}function Q(r={}){let t=K();r.pageWidth!==void 0&&(t.pageWidth=r.pageWidth),r.pageHeight!==void 0&&(t.pageHeight=r.pageHeight),r.orientation!==void 0&&(t.orientation=r.orientation),r.marginTop!==void 0&&(t.marginTop=r.marginTop),r.marginBottom!==void 0&&(t.marginBottom=r.marginBottom),r.marginLeft!==void 0&&(t.marginLeft=r.marginLeft),r.marginRight!==void 0&&(t.marginRight=r.marginRight);let e={type:"text",text:r.initialText||""};return {package:{document:{content:[{type:"paragraph",content:[{type:"run",content:r.initialText?[e]:[],formatting:{fontSize:22,fontFamily:{ascii:"Arial",hAnsi:"Arial"}}}],formatting:{lineSpacing:276}}],finalSectionProperties:t},styles:{docDefaults:{rPr:{fontSize:22,fontFamily:{ascii:"Arial",hAnsi:"Arial"}},pPr:{lineSpacing:276}},styles:Z()}},templateVariables:[],warnings:[]}}function Ht(r,t={}){return Q({...t,initialText:r})}var S=class r{constructor(t){d(this,"_document");d(this,"_pendingVariables");t instanceof ArrayBuffer||ArrayBuffer.isView(t)?this._document={package:{document:{content:[]}},originalBuffer:t instanceof ArrayBuffer?t:t.buffer}:this._document=t,this._pendingVariables={};}static async fromBuffer(t){let e=await p(t);return new r(e)}static fromDocument(t){return new r(t)}getDocument(){return this._document}getText(){let t=this._document.package.document;return this._getBodyText(t)}getFormattedText(){let t=[],e=this._document.package.document;for(let n of e.content)n.type==="paragraph"&&this._extractParagraphSegments(n,t);return t}getVariables(){return a(this._document)}getStyles(){let t=this._document.package.styles;if(!t?.styles)return [];let e=[];for(let[n,a]of Object.entries(t.styles))if(typeof a=="object"&&a!==null){let o=a;e.push({id:n,name:o.name||n,type:o.type==="numbering"?"paragraph":o.type||"paragraph",builtIn:o.default});}return e}getPageCount(){let t=this.getWordCount();return Math.max(1,Math.ceil(t/500))}getWordCount(){return this.getText().split(/\s+/).filter(n=>n.length>0).length}getCharacterCount(t=true){let e=this.getText();return t?e.length:e.replace(/\s/g,"").length}getParagraphCount(){return this._document.package.document.content.filter(t=>t.type==="paragraph").length}getTableCount(){return this._document.package.document.content.filter(t=>t.type==="table").length}getAgentContext(t=100){let e=this._document.package.document,n=e.content.filter(i=>i.type==="paragraph"),a=n.map((i,s)=>{let c=this._getParagraphText(i),u=i.formatting?.styleId;return {index:s,preview:c.slice(0,t),style:u,isHeading:u?.toLowerCase().includes("heading")||false,headingLevel:this._parseHeadingLevel(u),isListItem:!!i.listRendering,isEmpty:c.trim().length===0}}),o=(e.sections||[]).map((i,s)=>({index:s,paragraphCount:i.content?.length||0,pageSize:i.properties?.pageWidth&&i.properties?.pageHeight?{width:i.properties.pageWidth,height:i.properties.pageHeight}:void 0,isLandscape:i.properties?.orientation==="landscape",hasHeader:!!i.properties?.headerReferences?.length,hasFooter:!!i.properties?.footerReferences?.length}));return {paragraphCount:n.length,wordCount:this.getWordCount(),characterCount:this.getCharacterCount(),variables:this.getVariables(),variableCount:this.getVariables().length,availableStyles:this.getStyles(),outline:a,sections:o,hasTables:this.getTableCount()>0,hasImages:this._hasImages(),hasHyperlinks:this._hasHyperlinks()}}insertText(t,e,n={}){let a={type:"insertText",position:t,text:e,formatting:n.formatting};return this._executeCommand(a)}replaceRange(t,e,n={}){let a={type:"replaceText",range:t,text:e,formatting:n.formatting};return this._executeCommand(a)}deleteRange(t){let e={type:"deleteText",range:t};return this._executeCommand(e)}applyFormatting(t,e){let n={type:"formatText",range:t,formatting:e};return this._executeCommand(n)}applyStyle(t,e){let n={type:"applyStyle",paragraphIndex:t,styleId:e};return this._executeCommand(n)}applyParagraphFormatting(t,e){let n={type:"formatParagraph",paragraphIndex:t,formatting:e};return this._executeCommand(n)}insertTable(t,e,n,a={}){let o={type:"insertTable",position:t,rows:e,columns:n,data:a.data,hasHeader:a.hasHeader};return this._executeCommand(o)}insertImage(t,e,n={}){let a={type:"insertImage",position:t,src:e,width:n.width,height:n.height,alt:n.alt};return this._executeCommand(a)}insertHyperlink(t,e,n={}){let a={type:"insertHyperlink",range:t,url:e,displayText:n.displayText,tooltip:n.tooltip};return this._executeCommand(a)}removeHyperlink(t){let e={type:"removeHyperlink",range:t};return this._executeCommand(e)}insertParagraphBreak(t){let e={type:"insertParagraphBreak",position:t};return this._executeCommand(e)}mergeParagraphs(t,e){let n={type:"mergeParagraphs",paragraphIndex:t,count:e};return this._executeCommand(n)}setVariable(t,e){return this._pendingVariables[t]=e,this}setVariables(t){for(let[e,n]of Object.entries(t))this._pendingVariables[e]=n;return this}getPendingVariables(){return {...this._pendingVariables}}clearPendingVariables(){return this._pendingVariables={},this}async applyVariables(t){let e={...this._pendingVariables,...t};if(Object.keys(e).length===0)return this;let n=this._document.originalBuffer;if(!n)throw new Error("Cannot apply variables: no original buffer for processing");let{processTemplate:a}=await import('./processTemplate-3HN7Q3KT.js'),o=a(n,e),i=await p(o),s=new r(i);return s._pendingVariables={},s}async toBuffer(t){if(this._document.originalBuffer){if(t?.selective){let n=await q(this._document,this._document.originalBuffer,t.selective);if(n)return this._document.originalBuffer=n,n}let e=await d$1(this._document);return this._document.originalBuffer=e,e}return f(this._document)}async toBlob(t="application/vnd.openxmlformats-officedocument.wordprocessingml.document"){let e=await this.toBuffer();return new Blob([e],{type:t})}executeCommands(t){return new r(b(this._document,t))}_executeCommand(t){let e=new r(a$1(this._document,t));return e._pendingVariables={...this._pendingVariables},e}_getBodyText(t){let e=[];for(let n of t.content)n.type==="paragraph"?e.push(this._getParagraphText(n)):n.type==="table"&&e.push(this._getTableText(n));return e.join(`
|
|
2
|
+
`)}_getParagraphText(t){let e=[];for(let n of t.content)n.type==="run"?e.push(this._getRunText(n)):n.type==="hyperlink"&&e.push(this._getHyperlinkText(n));return e.join("")}_getRunText(t){return t.content.filter(e=>e.type==="text").map(e=>e.text).join("")}_getHyperlinkText(t){let e=[];for(let n of t.children)n.type==="run"&&e.push(this._getRunText(n));return e.join("")}_getTableText(t){let e=[];for(let n of t.rows)for(let a of n.cells)for(let o of a.content)o.type==="paragraph"&&e.push(this._getParagraphText(o));return e.join(" ")}_extractParagraphSegments(t,e){for(let n of t.content)if(n.type==="run"){let a=this._getRunText(n);a&&e.push({text:a,formatting:n.formatting});}else if(n.type==="hyperlink"){let a=n.href||"";for(let o of n.children)if(o.type==="run"){let i=this._getRunText(o);i&&e.push({text:i,formatting:o.formatting,isHyperlink:true,hyperlinkUrl:a});}}}_parseHeadingLevel(t){if(!t)return;let e=t.match(/heading\s*(\d)/i);if(e)return parseInt(e[1],10)}_hasImages(){let t=this._document.package.document;for(let e of t.content)if(e.type==="paragraph"){for(let n of e.content)if(n.type==="run"){for(let a of n.content)if(a.type==="drawing")return true}}return false}_hasHyperlinks(){let t=this._document.package.document;for(let e of t.content)if(e.type==="paragraph"){for(let n of e.content)if(n.type==="hyperlink")return true}return false}};async function Lt(r){return S.fromBuffer(r)}function Wt(r){return S.fromDocument(r)}function Y(r,t={}){let{outlineMaxChars:e=100,maxOutlineParagraphs:n=50}=t,a$1=r.package.document,o=a$1.content.filter(x=>x.type==="paragraph"),i=tt(o,e,n),s=a(r),c=et(r),u=nt(a$1),p=rt(a$1),l=at(a$1),f=a$1.content.some(x=>x.type==="table"),d=st(a$1),g=ct(a$1);return {paragraphCount:o.length,wordCount:p,characterCount:l,variables:s,variableCount:s.length,availableStyles:c,outline:i,sections:u,hasTables:f,hasImages:d,hasHyperlinks:g}}function qt(r,t,e={}){let{contextChars:n=200,includeSuggestions:a=true}=e,i=r.package.document.content.filter(h=>h.type==="paragraph"),s=i[t.start.paragraphIndex];if(!s)throw new Error(`Paragraph not found at index ${t.start.paragraphIndex}`);let c=m(s),u="";if(t.start.paragraphIndex===t.end.paragraphIndex)u=c.slice(t.start.offset,t.end.offset);else {let h=[];for(let b=t.start.paragraphIndex;b<=t.end.paragraphIndex;b++){let H=i[b];if(!H)continue;let w=m(H);b===t.start.paragraphIndex?h.push(w.slice(t.start.offset)):b===t.end.paragraphIndex?h.push(w.slice(0,t.end.offset)):h.push(w);}u=h.join(`
|
|
3
|
+
`);}let p=lt(i,t.start.paragraphIndex,t.start.offset,n),l=gt(i,t.end.paragraphIndex,t.end.offset,n),f=ft(s,t.start.offset),d=s.formatting||{},g={index:t.start.paragraphIndex,fullText:c,style:s.formatting?.styleId,wordCount:F(c)},x=false,T=mt(s,t.start.offset),I=a?dt(u):[];return {selectedText:u,range:t,formatting:f,paragraphFormatting:d,textBefore:p,textAfter:l,paragraph:g,inTable:x,inHyperlink:T,suggestedActions:I}}function U(r){let t=Y(r,{outlineMaxChars:50,maxOutlineParagraphs:10}),e=[`Document with ${t.paragraphCount} paragraphs, ${t.wordCount} words.`];t.hasTables&&e.push("Contains tables."),t.hasImages&&e.push("Contains images."),t.hasHyperlinks&&e.push("Contains hyperlinks."),t.variableCount>0&&e.push(`Has ${t.variableCount} template variables: ${t.variables.join(", ")}`);let n=t.outline.filter(a=>a.isHeading);if(n.length>0){e.push(`
|
|
4
|
+
Headings:`);for(let a of n.slice(0,5)){let o=a.headingLevel||1;e.push(`${" ".repeat(o-1)}- ${a.preview}`);}n.length>5&&e.push(` ... and ${n.length-5} more headings`);}return e.join(" ")}function tt(r,t,e){let n=[];for(let a=0;a<Math.min(r.length,e);a++){let o=r[a],i=m(o),s=o.formatting?.styleId;n.push({index:a,preview:i.slice(0,t),style:s,isHeading:ut(s),headingLevel:pt(s),isListItem:!!o.listRendering,isEmpty:i.trim().length===0});}return n}function et(r){let t=r.package.styles;if(!t?.styles)return [];let e=[];for(let[n,a]of Object.entries(t.styles))if(typeof a=="object"&&a!==null){let o=a;e.push({id:n,name:o.name||n,type:o.type==="numbering"?"paragraph":o.type||"paragraph",builtIn:o.default});}return e}function nt(r){return r.sections?r.sections.map((t,e)=>({index:e,paragraphCount:t.content?.length||0,pageSize:t.properties?.pageWidth&&t.properties?.pageHeight?{width:t.properties.pageWidth,height:t.properties.pageHeight}:void 0,isLandscape:t.properties?.orientation==="landscape",hasHeader:!!t.properties?.headerReferences?.length,hasFooter:!!t.properties?.footerReferences?.length})):[]}function rt(r){let t=0;for(let e of r.content)if(e.type==="paragraph"){let n=m(e);t+=F(n);}else e.type==="table"&&(t+=ot(e));return t}function F(r){return r.split(/\s+/).filter(e=>e.length>0).length}function at(r){let t=0;for(let e of r.content)if(e.type==="paragraph"){let n=m(e);t+=n.length;}else e.type==="table"&&(t+=it(e));return t}function ot(r){let t=0;for(let e of r.rows)for(let n of e.cells)for(let a of n.content)if(a.type==="paragraph"){let o=m(a);t+=F(o);}return t}function it(r){let t=0;for(let e of r.rows)for(let n of e.cells)for(let a of n.content)if(a.type==="paragraph"){let o=m(a);t+=o.length;}return t}function m(r){let t=[];for(let e of r.content)e.type==="run"?t.push(A(e)):e.type==="hyperlink"&&t.push(v(e));return t.join("")}function A(r){return r.content.filter(t=>t.type==="text").map(t=>t.text).join("")}function v(r){let t=[];for(let e of r.children)e.type==="run"&&t.push(A(e));return t.join("")}function st(r){for(let t of r.content)if(t.type==="paragraph"){for(let e of t.content)if(e.type==="run"){for(let n of e.content)if(n.type==="drawing")return true}}return false}function ct(r){for(let t of r.content)if(t.type==="paragraph"){for(let e of t.content)if(e.type==="hyperlink")return true}return false}function ut(r){return r?r.toLowerCase().includes("heading"):false}function pt(r){if(!r)return;let t=r.match(/heading\s*(\d)/i);if(t)return parseInt(t[1],10)}function lt(r,t,e,n){let a=[],o=0,i=r[t];if(i){let u=m(i).slice(0,e);a.unshift(u),o+=u.length;}for(let c=t-1;c>=0&&o<n;c--){let u=r[c];if(!u)continue;let p=m(u);a.unshift(p),o+=p.length;}let s=a.join(`
|
|
5
|
+
`);return s.length>n?"..."+s.slice(-n):s}function gt(r,t,e,n){let a=[],o=0,i=r[t];if(i){let u=m(i).slice(e);a.push(u),o+=u.length;}for(let c=t+1;c<r.length&&o<n;c++){let u=r[c];if(!u)continue;let p=m(u);a.push(p),o+=p.length;}let s=a.join(`
|
|
6
|
+
`);return s.length>n?s.slice(0,n)+"...":s}function ft(r,t){let e=0;for(let n of r.content)if(n.type==="run"){let a=A(n),o=e,i=e+a.length;if(t>=o&&t<i)return n.formatting||{};e=i;}else if(n.type==="hyperlink"){let a=v(n),o=e,i=e+a.length;if(t>=o&&t<i){for(let s of n.children)if(s.type==="run")return s.formatting||{}}e=i;}return {}}function mt(r,t){let e=0;for(let n of r.content)if(n.type==="run"){let a=A(n);e+=a.length;}else if(n.type==="hyperlink"){let a=v(n),o=e,i=e+a.length;if(t>=o&&t<i)return true;e=i;}return false}function dt(r,t,e){let n=[];return r.length>0&&(n.push({id:"rewrite",label:"Rewrite",description:"Rewrite this text",priority:10},{id:"summarize",label:"Summarize",description:"Summarize this text",priority:9}),r.length>200&&n.push({id:"summarize",label:"Summarize",description:"Create a shorter version",priority:8}),r.length<50&&r.split(/\s+/).length<10&&n.push({id:"expand",label:"Expand",description:"Add more details",priority:8}),n.push({id:"fixGrammar",label:"Fix Grammar",description:"Fix grammar and spelling",priority:7}),n.push({id:"translate",label:"Translate",description:"Translate to another language",priority:6}),n.push({id:"makeFormal",label:"Make Formal",description:"Use formal tone",priority:5},{id:"makeCasual",label:"Make Casual",description:"Use casual tone",priority:4})),n.sort((a,o)=>(o.priority||0)-(a.priority||0)),n}function ht(r,t,e={}){let{contextCharsBefore:n=200,contextCharsAfter:a=200,includeSuggestions:o=true}=e,i=r.package.document,s=i.content.filter(h=>h.type==="paragraph");if(t.start.paragraphIndex>=s.length)throw new Error(`Invalid start paragraph index: ${t.start.paragraphIndex}`);let c=s[t.start.paragraphIndex],u=yt(s,t),p=xt(s,t.start,n),l=bt(s,t.end,a),f=Pt(c,t.start.offset),d=c.formatting||{},g={index:t.start.paragraphIndex,fullText:y(c),style:c.formatting?.styleId,wordCount:R(y(c))},x=St(i,t.start),T=At(c,t.start.offset),I=o?kt(u):[];return {selectedText:u,range:t,formatting:f,paragraphFormatting:d,textBefore:p,textAfter:l,paragraph:g,inTable:x,inHyperlink:T,suggestedActions:I}}function Xt(r,t,e={}){let n=ht(r,t,e),{includeDocumentSummary:a=true}=e,i=r.package.document.content.filter(g=>g.type==="paragraph"),s=R(n.selectedText),c=n.selectedText.length,u=t.start.paragraphIndex!==t.end.paragraphIndex,p=[];for(let g=t.start.paragraphIndex;g<=t.end.paragraphIndex;g++)p.push(g);let l=Tt(i,t),f=a?U(r):void 0,d=It(n.selectedText);return {...n,documentSummary:f,wordCount:s,characterCount:c,isMultiParagraph:u,paragraphIndices:p,detectedLanguage:d,contentType:l}}function Jt(r,t){let n=r.package.document.content.filter(s=>s.type==="paragraph"),a=[];for(let s=t.start.paragraphIndex;s<=t.end.paragraphIndex;s++){let c=n[s];if(!c)continue;let u=s===t.start.paragraphIndex?t.start.offset:0,p=s===t.end.paragraphIndex?t.end.offset:1/0;Ct(c,u,p,a);}let o=a.length<=1||a.every(s=>wt(s,a[0]));return {predominant:a.length>0?a[0]:{},isConsistent:o,allFormatting:a}}function yt(r,t){if(t.start.paragraphIndex===t.end.paragraphIndex){let n=r[t.start.paragraphIndex];return n?y(n).slice(t.start.offset,t.end.offset):""}let e=[];for(let n=t.start.paragraphIndex;n<=t.end.paragraphIndex;n++){let a=r[n];if(!a)continue;let o=y(a);n===t.start.paragraphIndex?e.push(o.slice(t.start.offset)):n===t.end.paragraphIndex?e.push(o.slice(0,t.end.offset)):e.push(o);}return e.join(`
|
|
7
|
+
`)}function xt(r,t,e){let n=[],a=0,o=r[t.paragraphIndex];if(o){let c=y(o).slice(0,t.offset);n.unshift(c),a+=c.length;}for(let s=t.paragraphIndex-1;s>=0&&a<e;s--){let c=r[s];if(!c)continue;let u=y(c);n.unshift(u),a+=u.length;}let i=n.join(`
|
|
8
|
+
`);return i.length>e?"..."+i.slice(-e):i}function bt(r,t,e){let n=[],a=0,o=r[t.paragraphIndex];if(o){let c=y(o).slice(t.offset);n.push(c),a+=c.length;}for(let s=t.paragraphIndex+1;s<r.length&&a<e;s++){let c=r[s];if(!c)continue;let u=y(c);n.push(u),a+=u.length;}let i=n.join(`
|
|
9
|
+
`);return i.length>e?i.slice(0,e)+"...":i}function Pt(r,t){let e=0;for(let n of r.content)if(n.type==="run"){let a=P(n),o=e+a.length;if(t>=e&&t<o)return n.formatting||{};e=o;}else if(n.type==="hyperlink"){let a=k(n),o=e+a.length;if(t>=e&&t<o){for(let i of n.children)if(i.type==="run")return i.formatting||{}}e=o;}return {}}function Ct(r,t,e,n){let a=0;for(let o of r.content)if(o.type==="run"){let i=P(o),s=a,c=a+i.length;c>t&&s<e&&o.formatting&&n.push({...o.formatting}),a=c;}else if(o.type==="hyperlink"){let i=k(o),s=a,c=a+i.length;if(c>t&&s<e)for(let u of o.children)u.type==="run"&&u.formatting&&n.push({...u.formatting});a=c;}}function St(r,t){return false}function At(r,t){let e=0;for(let n of r.content)if(n.type==="run"){let a=P(n);e+=a.length;}else if(n.type==="hyperlink"){let a=k(n),o=e,i=e+a.length;if(t>=o&&t<i)return true;e=i;}return false}function kt(r,t,e){let n=[];if(!r||r.trim().length===0)return n;n.push({id:"askAI",label:"Ask AI",description:"Ask AI about this text",priority:11},{id:"rewrite",label:"Rewrite",description:"Rewrite this text differently",priority:10});let a=R(r);return a>50&&n.push({id:"summarize",label:"Summarize",description:"Create a shorter version",priority:9}),a<20&&n.push({id:"expand",label:"Expand",description:"Add more details",priority:9}),n.push({id:"fixGrammar",label:"Fix Grammar",description:"Fix grammar and spelling",priority:7},{id:"translate",label:"Translate",description:"Translate to another language",priority:6},{id:"explain",label:"Explain",description:"Explain what this means",priority:5}),n.push({id:"makeFormal",label:"Make Formal",description:"Use formal tone",priority:4},{id:"makeCasual",label:"Make Casual",description:"Use casual tone",priority:3}),n.sort((o,i)=>(i.priority||0)-(o.priority||0)),n}function Tt(r,t){let e=new Set;for(let n=t.start.paragraphIndex;n<=t.end.paragraphIndex;n++){let a=r[n];a&&(a.listRendering?e.add("list"):a.formatting?.styleId?.toLowerCase().includes("heading")?e.add("heading"):e.add("prose"));}return e.size>1?"mixed":e.has("list")?"list":e.has("heading")?"heading":"prose"}function It(r){return /[а-яА-ЯёЁ]/.test(r)?"ru":/[一-龯]/.test(r)?"zh":/[ひらがなカタカナ]/.test(r)||/[\u3040-\u309F\u30A0-\u30FF]/.test(r)?"ja":/[가-힣]/.test(r)?"ko":/[àâäéèêëïîôùûüç]/i.test(r)?"fr":/[äöüß]/i.test(r)?"de":/[áéíóúñ]/i.test(r)?"es":"en"}function y(r){let t=[];for(let e of r.content)e.type==="run"?t.push(P(e)):e.type==="hyperlink"&&t.push(k(e));return t.join("")}function P(r){return r.content.filter(t=>t.type==="text").map(t=>t.text).join("")}function k(r){let t=[];for(let e of r.children)e.type==="run"&&t.push(P(e));return t.join("")}function R(r){return r.split(/\s+/).filter(t=>t.length>0).length}function wt(r,t){let e=Object.keys(r),n=Object.keys(t);return e.length!==n.length?false:e.every(a=>{let o=r[a],i=t[a];return o===i})}export{X as a,M as b,q as c,Q as d,Ht as e,S as f,Lt as g,Wt as h,Y as i,qt as j,U as k,ht as l,Xt as m,Jt as n};
|