@eigenpal/docx-editor-react 1.2.1 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ui.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import {h,o,b as b$1,a as a$1}from'./chunk-SW2JOSQG.mjs';export{r as AlignmentButtons,q as ColorPicker,E as EditorToolbar,p as FontPicker,c as FontSizePicker,F as HorizontalRuler,s as LineSpacingPicker,e as ListButtons,t as StylePicker,w as TableBorderColorPicker,v as TableBorderPicker,x as TableBorderWidthPicker,y as TableCellFillPicker,z as TableMoreDropdown,i as TextContextMenu,D as Toolbar,A as ToolbarButton,B as ToolbarGroup,C as ToolbarSeparator,u as ZoomControl,f as createDefaultListState,m as getDefaultTextContextMenuItems,I as getMarginInUnits,H as getRulerDimensions,k as getTextActionLabel,l as getTextActionShortcut,n as isTextActionAvailable,J as parseMarginFromUnits,G as positionToMargin,j as useTextContextMenu}from'./chunk-SW2JOSQG.mjs';export{l as KeyboardShortcutsDialog,a as PasteSpecialDialog,k as getAllCategories,d as getAllPasteOptions,j as getCategoryLabel,i as getCommonShortcuts,e as getDefaultPasteOption,g as getDefaultShortcuts,c as getPasteOption,h as getShortcutsByCategory,f as isPasteSpecialShortcut,m as useKeyboardShortcutsDialog,b as usePasteSpecial}from'./chunk-IL65NW44.mjs';export{a as formatShortcutKeys}from'./chunk-K5DD2LSK.mjs';import {a as a$2}from'./chunk-GM2S2WMT.mjs';import {b as b$2}from'./chunk-TN5C2ZYV.mjs';export{o as TableToolbar,k as addColumn,i as addRow,d as createTableContext,l as deleteColumn,j as deleteRow,f as getCellAt,e as getColumnCount,g as getTableSplitCellDialogConfig,m as mergeCells,n as splitCell,h as splitTableCell}from'./chunk-TN5C2ZYV.mjs';export{a as FindReplaceDialog}from'./chunk-AYHZMFCQ.mjs';import {a}from'./chunk-OHNO4NRQ.mjs';export{b as useFindReplace}from'./chunk-OHNO4NRQ.mjs';export{d as HyperlinkDialog,m as useHyperlinkDialog}from'./chunk-ICVBXT6V.mjs';import {b}from'./chunk-ZFZJRL2R.mjs';import'./chunk-BMBP5UFA.mjs';import Kr,{useRef,useState,useEffect,useCallback,useLayoutEffect,useMemo}from'react';import {DEFAULT_AI_ACTIONS,getActionLabel,getActionDescription}from'@eigenpal/docx-editor-core/types/agentApi';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var Io={askAI:"contextMenu.aiActions.askAi",rewrite:"contextMenu.aiActions.rewrite",expand:"contextMenu.aiActions.expand",summarize:"contextMenu.aiActions.summarize",translate:"contextMenu.aiActions.translate",explain:"contextMenu.aiActions.explain",fixGrammar:"contextMenu.aiActions.fixGrammar",makeFormal:"contextMenu.aiActions.makeFormal",makeCasual:"contextMenu.aiActions.makeCasual",custom:"contextMenu.aiActions.custom"},Po=()=>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"})]}),Lo=()=>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"})}),Ro=()=>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"})}),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:"M3 4h10M3 8h7M3 12h4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Do=()=>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"})]}),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:"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"})]}),Mo=()=>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"})]}),Oo=()=>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"})]}),_o=()=>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"})]}),Bo=()=>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 No(e){switch(e){case "askAI":return jsx(Po,{});case "rewrite":return jsx(Lo,{});case "expand":return jsx(Ro,{});case "summarize":return jsx(Eo,{});case "translate":return jsx(Do,{});case "explain":return jsx(Ao,{});case "fixGrammar":return jsx(Mo,{});case "makeFormal":return jsx(Oo,{});case "makeCasual":return jsx(_o,{});case "custom":return jsx(Bo,{});default:return null}}var zo=({action:e,onClick:t,isHighlighted:o,onMouseEnter:i})=>{let{t:r}=b(),n=r(Io[e]),s=getActionDescription(e),a=No(e);return jsxs("button",{type:"button",className:`docx-context-menu-item ${o?"docx-context-menu-item-highlighted":""}`,onClick:t,onMouseEnter:i,title:s,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})]})},Wo=({isOpen:e,onSubmit:t,onClose:o,selectedText:i})=>{let[r,n]=useState(""),s=useRef(null),{t:a}=b();useEffect(()=>{e&&s.current&&s.current.focus();},[e]);let l=p=>{p.preventDefault(),r.trim()&&(t(r.trim()),n(""));},c=p=>{p.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:l,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:s,type:"text",value:r,onChange:p=>n(p.target.value),onKeyDown:c,placeholder:a("contextMenu.customPromptPlaceholder"),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:a("common.cancel")}),jsx("button",{type:"submit",disabled:!r.trim(),style:{padding:"6px 12px",border:"none",borderRadius:"4px",background:r.trim()?"var(--doc-primary)":"var(--doc-border)",color:r.trim()?"white":"var(--doc-text-placeholder)",cursor:r.trim()?"pointer":"not-allowed",fontSize:"12px"},children:a("common.send")})]})]})}):null},Yo=({isOpen:e,position:t,selectedText:o,selectionContext:i,onAction:r,onClose:n,actions:s=DEFAULT_AI_ACTIONS,showCustomPrompt:a=true,className:l=""})=>{let c=useRef(null),[p,g]=useState(0),[d,m]=useState(false),{t:x}=b(),b$1=a?[...s,"custom"]:s;useEffect(()=>{if(!e)return;let u=h=>{c.current&&!c.current.contains(h.target)&&n();};return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[e,n]),useEffect(()=>{if(!e)return;let u=h=>{switch(h.key){case "Escape":d?m(false):n();break;case "ArrowDown":h.preventDefault(),g(P=>(P+1)%b$1.length);break;case "ArrowUp":h.preventDefault(),g(P=>(P-1+b$1.length)%b$1.length);break;case "Enter":h.preventDefault();let I=b$1[p];I==="custom"?m(true):(r(I),n());break}};return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[e,p,b$1,r,n,d]),useEffect(()=>{e&&(g(0),m(false));},[e]);let f=useCallback(()=>{let h$1=b$1.length*36+16,I=t.x,P=t.y;return typeof window<"u"&&(I+200>window.innerWidth&&(I=window.innerWidth-200-10),P+h$1>window.innerHeight&&(P=window.innerHeight-h$1-10),I<10&&(I=10),P<10&&(P=10)),{position:"fixed",top:P,left:I,minWidth:200,background:"white",border:"1px solid var(--doc-border-light)",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0, 0, 0, 0.15)",zIndex:h.contextMenu,padding:"4px 0",overflow:"hidden"}},[t,b$1.length]),k=u=>{u==="custom"?m(true):(r(u),n());},T=u=>{r("custom",u),n();};return !e||!o?null:jsxs("div",{ref:c,className:`docx-context-menu ${l}`,style:f(),role:"menu","aria-label":x("contextMenu.ariaLabel"),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:b$1.map((u,h)=>jsx(zo,{action:u,onClick:()=>k(u),isHighlighted:h===p,onMouseEnter:()=>g(h)},u))}),a&&jsx(Wo,{isOpen:d,onSubmit:T,onClose:()=>m(false),selectedText:o})]})};function Uo(){let[e,t]=useState(false),[o,i]=useState({x:0,y:0}),[r,n]=useState(""),[s,a]=useState(),l=useCallback((p,g,d)=>{p.preventDefault(),i({x:p.clientX,y:p.clientY}),n(g),a(d),t(true);},[]),c=useCallback(()=>{t(false);},[]);return {isOpen:e,position:o,selectedText:r,selectionContext:s,openMenu:l,closeMenu:c}}function Fo(e){return {rewrite:"Ctrl+Shift+R",summarize:"Ctrl+Shift+S",translate:"Ctrl+Shift+T",fixGrammar:"Ctrl+Shift+G"}[e]}function Vo(e,t,o){return !(!t||t.trim().length===0)}function $o(){return [...DEFAULT_AI_ACTIONS]}function Go(){return ["askAI","rewrite","expand","summarize","translate","explain","fixGrammar","makeFormal","makeCasual","custom"]}var Ho=()=>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"})}),Ve=()=>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"})}),Ko=()=>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"})]}),jo=()=>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"})}),Zo=()=>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:`
1
+ import {h,o,b as b$1,a as a$1}from'./chunk-72ZQJWN2.mjs';export{r as AlignmentButtons,q as ColorPicker,E as EditorToolbar,p as FontPicker,c as FontSizePicker,F as HorizontalRuler,s as LineSpacingPicker,e as ListButtons,t as StylePicker,w as TableBorderColorPicker,v as TableBorderPicker,x as TableBorderWidthPicker,y as TableCellFillPicker,z as TableMoreDropdown,i as TextContextMenu,D as Toolbar,A as ToolbarButton,B as ToolbarGroup,C as ToolbarSeparator,u as ZoomControl,f as createDefaultListState,m as getDefaultTextContextMenuItems,I as getMarginInUnits,H as getRulerDimensions,k as getTextActionLabel,l as getTextActionShortcut,n as isTextActionAvailable,J as parseMarginFromUnits,G as positionToMargin,j as useTextContextMenu}from'./chunk-72ZQJWN2.mjs';export{l as KeyboardShortcutsDialog,a as PasteSpecialDialog,k as getAllCategories,d as getAllPasteOptions,j as getCategoryLabel,i as getCommonShortcuts,e as getDefaultPasteOption,g as getDefaultShortcuts,c as getPasteOption,h as getShortcutsByCategory,f as isPasteSpecialShortcut,m as useKeyboardShortcutsDialog,b as usePasteSpecial}from'./chunk-IL65NW44.mjs';export{a as formatShortcutKeys}from'./chunk-K5DD2LSK.mjs';import {a as a$2}from'./chunk-GM2S2WMT.mjs';import {b as b$2}from'./chunk-3L2QMHNA.mjs';export{o as TableToolbar,k as addColumn,i as addRow,d as createTableContext,l as deleteColumn,j as deleteRow,f as getCellAt,e as getColumnCount,g as getTableSplitCellDialogConfig,m as mergeCells,n as splitCell,h as splitTableCell}from'./chunk-3L2QMHNA.mjs';export{a as FindReplaceDialog}from'./chunk-AYHZMFCQ.mjs';import {a}from'./chunk-OHNO4NRQ.mjs';export{b as useFindReplace}from'./chunk-OHNO4NRQ.mjs';export{d as HyperlinkDialog,m as useHyperlinkDialog}from'./chunk-ICVBXT6V.mjs';import {b}from'./chunk-ZFZJRL2R.mjs';import'./chunk-BMBP5UFA.mjs';import Kr,{useRef,useState,useEffect,useCallback,useLayoutEffect,useMemo}from'react';import {DEFAULT_AI_ACTIONS,getActionLabel,getActionDescription}from'@eigenpal/docx-editor-core/types/agentApi';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var Io={askAI:"contextMenu.aiActions.askAi",rewrite:"contextMenu.aiActions.rewrite",expand:"contextMenu.aiActions.expand",summarize:"contextMenu.aiActions.summarize",translate:"contextMenu.aiActions.translate",explain:"contextMenu.aiActions.explain",fixGrammar:"contextMenu.aiActions.fixGrammar",makeFormal:"contextMenu.aiActions.makeFormal",makeCasual:"contextMenu.aiActions.makeCasual",custom:"contextMenu.aiActions.custom"},Po=()=>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"})]}),Lo=()=>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"})}),Ro=()=>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"})}),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:"M3 4h10M3 8h7M3 12h4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Do=()=>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"})]}),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:"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"})]}),Mo=()=>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"})]}),Oo=()=>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"})]}),_o=()=>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"})]}),Bo=()=>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 No(e){switch(e){case "askAI":return jsx(Po,{});case "rewrite":return jsx(Lo,{});case "expand":return jsx(Ro,{});case "summarize":return jsx(Eo,{});case "translate":return jsx(Do,{});case "explain":return jsx(Ao,{});case "fixGrammar":return jsx(Mo,{});case "makeFormal":return jsx(Oo,{});case "makeCasual":return jsx(_o,{});case "custom":return jsx(Bo,{});default:return null}}var zo=({action:e,onClick:t,isHighlighted:o,onMouseEnter:i})=>{let{t:r}=b(),n=r(Io[e]),s=getActionDescription(e),a=No(e);return jsxs("button",{type:"button",className:`docx-context-menu-item ${o?"docx-context-menu-item-highlighted":""}`,onClick:t,onMouseEnter:i,title:s,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})]})},Wo=({isOpen:e,onSubmit:t,onClose:o,selectedText:i})=>{let[r,n]=useState(""),s=useRef(null),{t:a}=b();useEffect(()=>{e&&s.current&&s.current.focus();},[e]);let l=p=>{p.preventDefault(),r.trim()&&(t(r.trim()),n(""));},c=p=>{p.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:l,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:s,type:"text",value:r,onChange:p=>n(p.target.value),onKeyDown:c,placeholder:a("contextMenu.customPromptPlaceholder"),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:a("common.cancel")}),jsx("button",{type:"submit",disabled:!r.trim(),style:{padding:"6px 12px",border:"none",borderRadius:"4px",background:r.trim()?"var(--doc-primary)":"var(--doc-border)",color:r.trim()?"white":"var(--doc-text-placeholder)",cursor:r.trim()?"pointer":"not-allowed",fontSize:"12px"},children:a("common.send")})]})]})}):null},Yo=({isOpen:e,position:t,selectedText:o,selectionContext:i,onAction:r,onClose:n,actions:s=DEFAULT_AI_ACTIONS,showCustomPrompt:a=true,className:l=""})=>{let c=useRef(null),[p,g]=useState(0),[d,m]=useState(false),{t:x}=b(),b$1=a?[...s,"custom"]:s;useEffect(()=>{if(!e)return;let u=h=>{c.current&&!c.current.contains(h.target)&&n();};return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[e,n]),useEffect(()=>{if(!e)return;let u=h=>{switch(h.key){case "Escape":d?m(false):n();break;case "ArrowDown":h.preventDefault(),g(P=>(P+1)%b$1.length);break;case "ArrowUp":h.preventDefault(),g(P=>(P-1+b$1.length)%b$1.length);break;case "Enter":h.preventDefault();let I=b$1[p];I==="custom"?m(true):(r(I),n());break}};return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[e,p,b$1,r,n,d]),useEffect(()=>{e&&(g(0),m(false));},[e]);let f=useCallback(()=>{let h$1=b$1.length*36+16,I=t.x,P=t.y;return typeof window<"u"&&(I+200>window.innerWidth&&(I=window.innerWidth-200-10),P+h$1>window.innerHeight&&(P=window.innerHeight-h$1-10),I<10&&(I=10),P<10&&(P=10)),{position:"fixed",top:P,left:I,minWidth:200,background:"white",border:"1px solid var(--doc-border-light)",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0, 0, 0, 0.15)",zIndex:h.contextMenu,padding:"4px 0",overflow:"hidden"}},[t,b$1.length]),k=u=>{u==="custom"?m(true):(r(u),n());},T=u=>{r("custom",u),n();};return !e||!o?null:jsxs("div",{ref:c,className:`docx-context-menu ${l}`,style:f(),role:"menu","aria-label":x("contextMenu.ariaLabel"),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:b$1.map((u,h)=>jsx(zo,{action:u,onClick:()=>k(u),isHighlighted:h===p,onMouseEnter:()=>g(h)},u))}),a&&jsx(Wo,{isOpen:d,onSubmit:T,onClose:()=>m(false),selectedText:o})]})};function Uo(){let[e,t]=useState(false),[o,i]=useState({x:0,y:0}),[r,n]=useState(""),[s,a]=useState(),l=useCallback((p,g,d)=>{p.preventDefault(),i({x:p.clientX,y:p.clientY}),n(g),a(d),t(true);},[]),c=useCallback(()=>{t(false);},[]);return {isOpen:e,position:o,selectedText:r,selectionContext:s,openMenu:l,closeMenu:c}}function Fo(e){return {rewrite:"Ctrl+Shift+R",summarize:"Ctrl+Shift+S",translate:"Ctrl+Shift+T",fixGrammar:"Ctrl+Shift+G"}[e]}function Vo(e,t,o){return !(!t||t.trim().length===0)}function $o(){return [...DEFAULT_AI_ACTIONS]}function Go(){return ["askAI","rewrite","expand","summarize","translate","explain","fixGrammar","makeFormal","makeCasual","custom"]}var Ho=()=>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"})}),Ve=()=>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"})}),Ko=()=>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"})]}),jo=()=>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"})}),Zo=()=>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
2
  @keyframes spin {
3
3
  from { transform: rotate(0deg); }
4
4
  to { transform: rotate(360deg); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eigenpal/docx-editor-react",
3
- "version": "1.2.1",
3
+ "version": "1.3.1",
4
4
  "description": "React DOCX editor adapter for @eigenpal/docx-editor-core.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -92,9 +92,9 @@
92
92
  }
93
93
  },
94
94
  "dependencies": {
95
- "@eigenpal/docx-editor-agents": "^1.2.1",
96
- "@eigenpal/docx-editor-core": "^1.2.1",
97
- "@eigenpal/docx-editor-i18n": "^1.2.1",
95
+ "@eigenpal/docx-editor-agents": "^1.3.1",
96
+ "@eigenpal/docx-editor-core": "^1.3.1",
97
+ "@eigenpal/docx-editor-i18n": "^1.3.1",
98
98
  "@radix-ui/react-select": "^2.2.6",
99
99
  "clsx": "^2.1.0",
100
100
  "sonner": "^2.0.7"
@@ -1 +0,0 @@
1
- 'use strict';var chunkYVYT3JWY_js=require('./chunk-YVYT3JWY.js'),chunkBJ5RZW6Y_js=require('./chunk-BJ5RZW6Y.js'),react=require('react'),prosemirrorState=require('prosemirror-state'),layoutBridge=require('@eigenpal/docx-editor-core/layout-bridge'),findVerticalScrollParent=require('@eigenpal/docx-editor-core/utils/findVerticalScrollParent'),extractTrackedChanges=require('@eigenpal/docx-editor-core/prosemirror/utils/extractTrackedChanges'),docxEditorCore=require('@eigenpal/docx-editor-core');var W=".layout-page-content .layout-line";function at(o){let a=findVerticalScrollParent.findVerticalScrollParent(o);if(!a)return;let u=o.getBoundingClientRect(),m=a.getBoundingClientRect(),t=40;u.bottom>m.bottom-t?a.scrollTop+=u.bottom-m.bottom+t:u.top<m.top+t&&(a.scrollTop-=m.top-u.top+t);}function xt({pagesContainerRef:o}){let a=react.useRef(null),u=react.useRef(-1),m=react.useCallback(b=>{if(!o.current)return null;let i=layoutBridge.findBodyPmSpans(o.current);for(let d of i){let l=Number(d.dataset.pmStart),r=Number(d.dataset.pmEnd);if(d.classList.contains("layout-run-tab")){if(b>=l&&b<r)return d.getBoundingClientRect().left;continue}if(b>=l&&b<=r&&d.firstChild?.nodeType===Node.TEXT_NODE){let n=d.firstChild,e=Math.min(b-l,n.length),s=d.ownerDocument;if(!s)continue;let c=s.createRange();return c.setStart(n,e),c.setEnd(n,e),c.getBoundingClientRect().left}}let f=o.current.querySelectorAll(".layout-empty-run");for(let d of Array.from(f)){let l=d.closest(".layout-paragraph");if(!l)continue;let r=Number(l.dataset.pmStart),n=Number(l.dataset.pmEnd);if(b>=r&&b<=n)return d.getBoundingClientRect().left}return null},[o]),t=react.useCallback(b=>{if(!o.current)return null;let i=o.current.querySelectorAll(W);for(let f of Array.from(i)){let d=f,l=d.querySelectorAll("span[data-pm-start][data-pm-end]");for(let r of Array.from(l)){let n=r,e=Number(n.dataset.pmStart),s=Number(n.dataset.pmEnd);if(b>=e&&b<=s)return d}}for(let f of Array.from(i)){let d=f,l=d.closest(".layout-paragraph");if(!l)continue;let r=Number(l.dataset.pmStart),n=Number(l.dataset.pmEnd);if(b>=r&&b<=n&&l.querySelector(".layout-line")===d)return d}return null},[o]),S=react.useCallback((b,i)=>{let f=b.querySelectorAll("span[data-pm-start][data-pm-end]");if(f.length===0){let n=b.closest(".layout-paragraph");return n?.dataset.pmStart?Number(n.dataset.pmStart)+1:null}for(let n of Array.from(f)){let e=n,s=e.getBoundingClientRect(),c=Number(e.dataset.pmStart),y=Number(e.dataset.pmEnd);if(e.classList.contains("layout-run-tab")){if(i>=s.left&&i<=s.right){let E=(s.left+s.right)/2;return i<E?c:y}continue}if(i>=s.left&&i<=s.right){let E=e.firstChild;if(!E||E.nodeType!==Node.TEXT_NODE)return c;let p=E,L=e.ownerDocument;if(!L)return c;let k=0,M=p.length;for(;k<M;){let w=Math.floor((k+M)/2),A=L.createRange();A.setStart(p,w),A.setEnd(p,w),i<A.getBoundingClientRect().left?M=w:k=w+1;}if(k>0&&k<=p.length){let w=L.createRange();w.setStart(p,k-1),w.setEnd(p,k-1);let A=w.getBoundingClientRect().left;w.setStart(p,Math.min(k,p.length)),w.setEnd(p,Math.min(k,p.length));let h=w.getBoundingClientRect().left;if(Math.abs(i-A)<Math.abs(i-h))return c+(k-1)}return c+Math.min(k,y-c)}}let d=null,l=1/0;for(let n of Array.from(f)){let e=n,s=e.getBoundingClientRect(),c=i<s.left?s.left-i:i-s.right;c<l&&(l=c,d=e);}if(!d)return null;let r=d.getBoundingClientRect();return i<r.left?Number(d.dataset.pmStart):Number(d.dataset.pmEnd)},[]),x=react.useCallback((b,i)=>{if(i.key!=="ArrowUp"&&i.key!=="ArrowDown")return (["ArrowLeft","ArrowRight","Home","End"].includes(i.key)||i.key.length===1&&!i.ctrlKey&&!i.metaKey)&&(a.current=null,u.current=-1),false;if(i.ctrlKey||i.metaKey)return a.current=null,u.current=-1,false;if(!o.current)return false;let f=Array.from(o.current.querySelectorAll(W));if(f.length===0)return false;let{from:d,anchor:l}=b.state.selection;if(a.current===null){let p=m(d);if(p===null)return false;a.current=p;}let r;if(u.current>=0&&u.current<f.length)r=u.current;else {let p=t(d);if(!p||(r=f.indexOf(p),r===-1))return false}let n=i.key==="ArrowUp"?r-1:r+1;if(n<0||n>=f.length)return u.current=-1,false;let e=f[n],s=S(e,a.current);if(s===null)return false;u.current=n;let{state:c,dispatch:y}=b,E=Math.max(0,Math.min(s,c.doc.content.size));try{let p=i.shiftKey?prosemirrorState.TextSelection.create(c.doc,l,E):prosemirrorState.TextSelection.create(c.doc,E);y(c.tr.setSelection(p));}catch{let p=c.doc.resolve(E),L=i.shiftKey?prosemirrorState.TextSelection.between(c.doc.resolve(l),p):prosemirrorState.TextSelection.near(p);y(c.tr.setSelection(L));}return at(e),true},[o,m,t,S]);return {stickyXRef:a,lastVisualLineIndexRef:u,getCaretClientX:m,findLineElementAtPosition:t,findPositionOnLineAtClientX:S,handlePMKeyDown:x}}var R=40,q=12;function wt({pagesContainerRef:o,onScrollExtendSelection:a}){let u=react.useRef(null),m=react.useRef({x:0,y:0}),t=react.useRef(false),S=react.useRef(null),x=react.useCallback(()=>{if(S.current)return S.current;let l=o.current;return l?(S.current=findVerticalScrollParent.findVerticalScrollParent(l),S.current):null},[o]),b=react.useCallback(()=>{t.current=false,u.current!==null&&(cancelAnimationFrame(u.current),u.current=null);},[]),i=react.useCallback(()=>{if(!t.current)return;let l=x();if(!l)return;let r=l.getBoundingClientRect(),{x:n,y:e}=m.current,s=0;if(e<r.top+R){let c=Math.max(0,r.top+R-e);s=-Math.min(q,c/R*q);}else if(e>r.bottom-R){let c=Math.max(0,e-(r.bottom-R));s=Math.min(q,c/R*q);}s!==0&&(l.scrollTop+=s,a(n,e)),u.current=requestAnimationFrame(i);},[x,a]),f=react.useCallback(()=>{t.current||(t.current=true,u.current=requestAnimationFrame(i));},[i]);return {updateMousePosition:react.useCallback((l,r)=>{if(m.current={x:l,y:r},!t.current){let n=x();if(!n)return;let e=n.getBoundingClientRect();(r<e.top+R||r>e.bottom-R)&&f();}},[x,f]),stopAutoScroll:b}}function Lt(o){return react.useMemo(()=>extractTrackedChanges.extractTrackedChanges(o),[o])}function Nt({document:o,onChange:a,onSelectionChange:u}){let m=react.useMemo(()=>new docxEditorCore.TableSelectionManager,[]),[t,S]=react.useState({context:null,table:null,tableIndex:null,rowIndex:null,columnIndex:null}),x=react.useCallback((r,n,e)=>{if(!o)return;let s=docxEditorCore.getTableFromDocument(o,r);if(!s){m.clearSelection(),S({context:null,table:null,tableIndex:null,rowIndex:null,columnIndex:null});return}m.selectCell({tableIndex:r,rowIndex:n,columnIndex:e});let y=chunkYVYT3JWY_js.d(s,{tableIndex:r,rowIndex:n,columnIndex:e});S({context:y,table:s,tableIndex:r,rowIndex:n,columnIndex:e}),u?.(y);},[o,m,u]),b=react.useCallback(()=>{m.clearSelection(),S({context:null,table:null,tableIndex:null,rowIndex:null,columnIndex:null}),u?.(null);},[m,u]),i=react.useCallback(()=>!t.table||t.rowIndex===null||t.columnIndex===null?null:chunkYVYT3JWY_js.g(t.table,t.rowIndex,t.columnIndex),[t.columnIndex,t.rowIndex,t.table]),f=react.useCallback((r,n)=>{if(!o||!t.table||t.tableIndex===null||t.rowIndex===null||t.columnIndex===null)return;let e=chunkYVYT3JWY_js.h(t.table,t.rowIndex,t.columnIndex,r,n);if(e===t.table)return;let s=docxEditorCore.updateTableInDocument(o,t.tableIndex,e);a?.(s),s&&x(t.tableIndex,t.rowIndex,t.columnIndex);},[o,x,a,t.columnIndex,t.rowIndex,t.table,t.tableIndex]),d=react.useCallback(r=>{if(!o||!t.context||t.tableIndex===null||t.rowIndex===null||t.columnIndex===null)return;let n=t.table;if(!n)return;let e=null,s=null,c=t.rowIndex,y=t.columnIndex;switch(r){case "addRowAbove":e=chunkYVYT3JWY_js.i(n,t.rowIndex,"before"),c=t.rowIndex+1;break;case "addRowBelow":e=chunkYVYT3JWY_js.i(n,t.rowIndex,"after");break;case "addColumnLeft":e=chunkYVYT3JWY_js.k(n,t.columnIndex,"before"),y=t.columnIndex+1;break;case "addColumnRight":e=chunkYVYT3JWY_js.k(n,t.columnIndex,"after");break;case "deleteRow":n.rows.length>1&&(e=chunkYVYT3JWY_js.j(n,t.rowIndex),c>=e.rows.length&&(c=e.rows.length-1));break;case "deleteColumn":{if(chunkYVYT3JWY_js.e(n)>1){e=chunkYVYT3JWY_js.l(n,t.columnIndex);let p=chunkYVYT3JWY_js.e(e);y>=p&&(y=p-1);}break}case "mergeCells":t.context.selection.selectedCells&&(e=chunkYVYT3JWY_js.m(n,t.context.selection));break;case "splitCell":break;case "deleteTable":s=docxEditorCore.deleteTableFromDocument(o,t.tableIndex),b(),a?.(s);return}e&&(s=docxEditorCore.updateTableInDocument(o,t.tableIndex,e),a?.(s),s&&x(t.tableIndex,c,y));},[o,t,a,b,x]),l=react.useCallback((r,n,e)=>m.isCellSelected(r,n,e),[m,t]);return {state:t,handleCellClick:x,handleAction:d,getSplitCellConfig:i,applySplitCell:f,clearSelection:b,isCellSelected:l,tableContext:t.context}}function nt(o,a){return JSON.stringify(o)===JSON.stringify(a)}function rt(o,a={}){let{maxEntries:u=100,groupingInterval:m=500,enableKeyboardShortcuts:t=true,isEqual:S=nt,onUndo:x,onRedo:b,containerRef:i}=a,[f,d]=react.useState(o),[l,r]=react.useState([]),[n,e]=react.useState([]),s=react.useRef(0),c=react.useRef(false),y=react.useCallback((h,g)=>{if(S(f,h))return;if(c.current){d(h);return}let T=Date.now();T-s.current<m&&l.length>0?r(B=>{let D=[...B];return D[D.length-1]={state:f,timestamp:T,description:g||D[D.length-1].description},D}):r(B=>{let D={state:f,timestamp:T,description:g},O=[...B,D];return O.length>u?O.slice(O.length-u):O}),e([]),d(h),s.current=T;},[f,S,m,u,l.length]),E=react.useCallback(()=>{if(l.length===0)return;c.current=true;let h=l[l.length-1];return r(g=>g.slice(0,-1)),e(g=>[...g,{state:f,timestamp:Date.now()}]),d(h.state),setTimeout(()=>{c.current=false;},0),x?.(h.state),h.state},[l,f,x]),p=react.useCallback(()=>{if(n.length===0)return;c.current=true;let h=n[n.length-1];return e(g=>g.slice(0,-1)),r(g=>[...g,{state:f,timestamp:Date.now()}]),d(h.state),setTimeout(()=>{c.current=false;},0),b?.(h.state),h.state},[n,f,b]),L=react.useCallback(()=>{r([]),e([]);},[]),k=react.useCallback(h=>{d(h??o),r([]),e([]),s.current=0;},[o]),M=react.useCallback(()=>[...l],[l]),w=react.useCallback(()=>[...n],[n]),A=react.useCallback(h=>{d(g=>h(g)),r(g=>g.map(T=>({...T,state:h(T.state)}))),e(g=>g.map(T=>({...T,state:h(T.state)})));},[]);return react.useEffect(()=>{if(!t)return;let h=T=>{if((T.ctrlKey||T.metaKey)&&T.key==="z"&&!T.shiftKey){T.preventDefault(),E();return}if((T.ctrlKey||T.metaKey)&&T.key==="y"||(T.ctrlKey||T.metaKey)&&T.key==="z"&&T.shiftKey){T.preventDefault(),p();return}},g=i?.current||document;return g.addEventListener("keydown",h),()=>{g.removeEventListener("keydown",h);}},[t,E,p,i]),{state:f,canUndo:l.length>0,canRedo:n.length>0,undoCount:l.length,redoCount:n.length,push:y,undo:E,redo:p,clear:L,reset:k,getUndoStack:M,getRedoStack:w,transformAll:A}}function Ft(o,a={}){let u=rt(o,a);return react.useEffect(()=>{u.push(o);},[o]),u}function _t(o,a={}){let u=react.useCallback((m,t)=>!(m?.package?.document!==t?.package?.document&&JSON.stringify(m?.package?.document)!==JSON.stringify(t?.package?.document)||m?.package?.headers!==t?.package?.headers||m?.package?.footers!==t?.package?.footers),[]);return rt(o,{...a,isEqual:u})}var tt=class{constructor(a,u={}){chunkBJ5RZW6Y_js.b(this,"undoStack",[]);chunkBJ5RZW6Y_js.b(this,"redoStack",[]);chunkBJ5RZW6Y_js.b(this,"currentState");chunkBJ5RZW6Y_js.b(this,"maxEntries");chunkBJ5RZW6Y_js.b(this,"groupingInterval");chunkBJ5RZW6Y_js.b(this,"lastPushTime",0);chunkBJ5RZW6Y_js.b(this,"isEqual");this.currentState=a,this.maxEntries=u.maxEntries??100,this.groupingInterval=u.groupingInterval??500,this.isEqual=u.isEqual??nt;}get state(){return this.currentState}get canUndo(){return this.undoStack.length>0}get canRedo(){return this.redoStack.length>0}push(a,u){if(this.isEqual(this.currentState,a))return;let m=Date.now();m-this.lastPushTime<this.groupingInterval&&this.undoStack.length>0?this.undoStack[this.undoStack.length-1].timestamp=m:(this.undoStack.push({state:this.currentState,timestamp:m,description:u}),this.undoStack.length>this.maxEntries&&(this.undoStack=this.undoStack.slice(-this.maxEntries))),this.redoStack=[],this.currentState=a,this.lastPushTime=m;}undo(){if(this.undoStack.length===0)return;let a=this.undoStack.pop();return this.redoStack.push({state:this.currentState,timestamp:Date.now()}),this.currentState=a.state,a.state}redo(){if(this.redoStack.length===0)return;let a=this.redoStack.pop();return this.undoStack.push({state:this.currentState,timestamp:Date.now()}),this.currentState=a.state,a.state}clear(){this.undoStack=[],this.redoStack=[];}reset(a){this.currentState=a??this.currentState,this.undoStack=[],this.redoStack=[],this.lastPushTime=0;}};Object.defineProperty(exports,"c",{enumerable:true,get:function(){return extractTrackedChanges.extractTrackedChanges}});Object.defineProperty(exports,"f",{enumerable:true,get:function(){return docxEditorCore.TABLE_DATA_ATTRIBUTES}});exports.a=xt;exports.b=wt;exports.d=Lt;exports.e=Nt;exports.g=rt;exports.h=Ft;exports.i=_t;exports.j=tt;
@@ -1,2 +0,0 @@
1
- import {b,c,a}from'./chunk-TN5C2ZYV.mjs';import {b as b$1}from'./chunk-ZFZJRL2R.mjs';import*as j from'react';import j__default,{createContext,useState,useRef,useCallback,useMemo,useEffect,Children,isValidElement,useContext}from'react';import {clsx}from'clsx';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {halfPointsToPoints}from'@eigenpal/docx-editor-core/utils/units';export{pointsToHalfPoints as d}from'@eigenpal/docx-editor-core/utils/units';import {createDefaultListState}from'@eigenpal/docx-editor-core/utils/listState';export{createDefaultListState as f}from'@eigenpal/docx-editor-core/utils/listState';import {en as en$1}from'@eigenpal/docx-editor-i18n';import*as N from'@radix-ui/react-select';import {generateThemeTintShadeMatrix,resolveColorToHex,twipsToPixels,pixelsToTwips,formatPx,resolveHighlightColor,resolveColor}from'@eigenpal/docx-editor-core/utils';import {normalizeFontFamilies}from'@eigenpal/docx-editor-core/utils/fontOptions';export{mapHexToHighlightName as g}from'@eigenpal/docx-editor-core/utils/highlightColors';import {openReportIssue}from'@eigenpal/docx-editor-core/utils/reportIssue';var Ut=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Zt=clsx,qt=(e,t)=>o=>{var r;if(t?.variants==null)return Zt(e,o?.class,o?.className);let{variants:n,defaultVariants:s}=t,i=Object.keys(n).map(a=>{let p=o?.[a],m=s?.[a];if(p===null)return null;let l=Ut(p)||Ut(m);return n[a][l]}),c=o&&Object.entries(o).reduce((a,p)=>{let[m,l]=p;return l===void 0||(a[m]=l),a},{}),d=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((a,p)=>{let{class:m,className:l,...g}=p;return Object.entries(g).every(u=>{let[f,x]=u;return Array.isArray(x)?x.includes({...s,...c}[f]):{...s,...c}[f]===x})?[...a,m,l]:a},[]);return Zt(e,i,d,o?.class,o?.className)};function M(...e){return clsx(e)}var sr=qt("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-9 w-9","icon-sm":"h-7 w-7"}},defaultVariants:{variant:"default",size:"default"}}),V=j.forwardRef(({className:e,variant:t,size:o,...r},n)=>jsx("button",{className:M(sr({variant:t,size:o,className:e})),ref:n,...r}));V.displayName="Button";var ur=[8,9,10,11,12,14,16,18,20,24,28,36,48,72],pr=1,mr=400;function Xt(e,t,o){for(let r of t)if(r>e)return r;return Math.min(e+1,o)}function jt(e,t,o){for(let r=t.length-1;r>=0;r--)if(t[r]<e)return t[r];return Math.max(e-1,o)}function Jt({value:e,onChange:t,sizes:o=ur,disabled:r=false,className:n,placeholder:s="11",minSize:i=pr,maxSize:c$1=mr}){let{t:d}=b$1(),[a,p]=useState(false),[m,l]=useState(""),[g,u]=useState(false),f=useRef(null),x=useCallback(()=>{u(false),p(false);},[]),{containerRef:h,dropdownRef:b$2,dropdownStyle:y}=c({isOpen:g,onClose:x}),C=e??(parseInt(s,10)||11),I=e!==void 0?e.toString():s,L=useCallback(k=>{if(k.preventDefault(),r)return;let _=jt(C,o,i);t?.(_);},[C,o,i,r,t]),ce=useCallback(k=>{if(k.preventDefault(),r)return;let _=Xt(C,o,c$1);t?.(_);},[C,o,c$1,r,t]),F=useCallback(k=>{k.preventDefault(),!r&&(p(true),l(I),u(true),requestAnimationFrame(()=>{f.current?.focus(),f.current?.select();}));},[r,I]),Y=useCallback(k=>{l(k.target.value);},[]),de=useCallback(()=>{p(false);let k=parseFloat(m);if(!isNaN(k)&&k>=i&&k<=c$1){let _=Math.round(k*2)/2;t?.(_);}},[m,i,c$1,t]),ge=useCallback(k=>{if(k.key==="Enter")k.preventDefault(),de(),u(false);else if(k.key==="Escape")p(false),u(false);else if(k.key==="ArrowUp"){k.preventDefault();let _=Xt(C,o,c$1);l(_.toString()),t?.(_);}else if(k.key==="ArrowDown"){k.preventDefault();let _=jt(C,o,i);l(_.toString()),t?.(_);}},[de,C,o,c$1,i,t]),G=useCallback(k=>{t?.(k),u(false),p(false);},[t]),R=useCallback(k=>{k.target.tagName!=="INPUT"&&k.preventDefault();},[]);return jsxs("div",{ref:h,className:M("flex items-center",n),onMouseDown:R,children:[jsx(V,{variant:"ghost",size:"icon-sm",className:M("h-7 w-7 text-slate-500 hover:text-slate-900 hover:bg-slate-100/80 rounded-r-none",r&&"opacity-30 cursor-not-allowed"),onMouseDown:L,disabled:r||C<=i,"aria-label":d("fontSize.decrease"),"data-testid":"font-size-decrease",children:jsx(b,{name:"remove",size:18})}),jsx("div",{className:"relative",children:a?jsx("input",{ref:f,type:"text",value:m,onChange:Y,onBlur:de,onKeyDown:ge,className:M("h-7 w-10 text-center text-sm border border-slate-300 bg-white","focus:outline-none focus:ring-1 focus:ring-slate-400","rounded-none"),"aria-label":d("fontSize.label"),"data-testid":"font-size-input"}):jsx("button",{type:"button",onClick:F,className:M("h-7 w-10 text-center text-sm border border-slate-200 bg-white","hover:border-slate-300 hover:bg-slate-50","focus:outline-none focus:ring-1 focus:ring-slate-400","rounded-none",r&&"opacity-50 cursor-not-allowed"),disabled:r,"aria-label":d("fontSize.label"),"aria-haspopup":"listbox","aria-expanded":g,"data-testid":"font-size-display",children:I})}),g&&jsx("div",{ref:b$2,style:{...y,backgroundColor:"white",border:"1px solid #e2e8f0",borderRadius:6,boxShadow:"0 4px 12px rgba(0, 0, 0, 0.12)",maxHeight:240,overflowY:"auto",minWidth:60},role:"listbox","aria-label":d("fontSize.listLabel"),children:o.map(k=>jsx("button",{type:"button",onClick:()=>G(k),className:M("w-full px-3 py-1.5 text-sm text-left","hover:bg-slate-100",k===C&&"bg-slate-100 font-medium"),role:"option","aria-selected":k===C,children:k},k))}),jsx(V,{variant:"ghost",size:"icon-sm",className:M("h-7 w-7 text-slate-500 hover:text-slate-900 hover:bg-slate-100/80 rounded-l-none",r&&"opacity-30 cursor-not-allowed"),onMouseDown:ce,disabled:r||C>=c$1,"aria-label":d("fontSize.increase"),"data-testid":"font-size-increase",children:jsx(b,{name:"add",size:18})})]})}var hr={display:"inline-flex",alignItems:"center",gap:"4px"},eo={display:"inline-flex",alignItems:"center",gap:"4px"},at={display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",padding:"4px",border:"none",borderRadius:"4px",backgroundColor:"transparent",cursor:"pointer",transition:"background-color 0.1s",color:"var(--doc-text-muted)"},xr={...at,backgroundColor:"var(--doc-bg-hover)"},yr={...at,backgroundColor:"var(--doc-primary-light)",color:"var(--doc-primary)"},vr={...at,cursor:"default",opacity:.38},Cr={width:"28px",height:"28px",padding:"2px"},Sr={width:"1px",height:"20px",backgroundColor:"var(--doc-border)",margin:"0 6px"},ot=20;function rt({active:e=false,disabled:t=false,title:o,onClick:r,children:n,className:s,style:i}){let[c,d]=useState(false),a={...t?vr:e?yr:c?xr:at,...i},p=m=>{m.preventDefault();};return jsx("button",{type:"button",className:`docx-list-button ${e?"docx-list-button-active":""} ${t?"docx-list-button-disabled":""} ${s||""}`,style:a,onMouseDown:p,onClick:t?void 0:r,onMouseEnter:()=>d(true),onMouseLeave:()=>d(false),disabled:t,title:o,"aria-label":o,"aria-pressed":e,role:"button",children:n})}function to({listState:e,onBulletList:t,onNumberedList:o,onIndent:r,onOutdent:n,disabled:s=false,className:i,style:c,showIndentButtons:d=true,compact:a=false,hasIndent:p=false}){let{t:m}=b$1(),l=useCallback(()=>a?{...Cr}:{},[a]),g=e?.type==="bullet",u=e?.type==="numbered",x=(e?.isInList||g||u)&&(e?.level??0)>0||p;return jsxs("div",{className:`docx-list-buttons ${i||""}`,style:{...hr,...c},role:"group","aria-label":m("lists.ariaLabel"),children:[jsxs("div",{style:eo,role:"group","aria-label":m("lists.typeAriaLabel"),children:[jsx(rt,{active:g,disabled:s,title:m("lists.bulletList"),onClick:t,style:l(),children:jsx(b,{name:"format_list_bulleted",size:ot})}),jsx(rt,{active:u,disabled:s,title:m("lists.numberedList"),onClick:o,style:l(),children:jsx(b,{name:"format_list_numbered",size:ot})})]}),d&&jsxs(Fragment,{children:[jsx("div",{style:Sr,role:"separator"}),jsxs("div",{style:eo,role:"group","aria-label":m("lists.indentationAriaLabel"),children:[jsx(rt,{active:false,disabled:s||!x,title:m("lists.decreaseIndent"),onClick:n,style:l(),children:jsx(b,{name:"format_indent_decrease",size:ot})}),jsx(rt,{active:false,disabled:s,title:m("lists.increaseIndent"),onClick:r,style:l(),children:jsx(b,{name:"format_indent_increase",size:ot})})]})]})]})}var ro={hfInlineEditor:10,ruler:30,dropdown:100,contextMenu:1e4};var ao=[{action:"cut",labelKey:"contextMenu.cut",shortcutKey:"contextMenu.cutShortcut"},{action:"copy",labelKey:"contextMenu.copy",shortcutKey:"contextMenu.copyShortcut"},{action:"paste",labelKey:"contextMenu.paste",shortcutKey:"contextMenu.pasteShortcut"},{action:"pasteAsPlainText",labelKey:"contextMenu.pastePlainText",shortcutKey:"contextMenu.pastePlainTextShortcut",dividerAfter:true},{action:"delete",labelKey:"contextMenu.delete",shortcutKey:"contextMenu.deleteShortcut",dividerAfter:true},{action:"selectAll",labelKey:"contextMenu.selectAll",shortcutKey:"contextMenu.selectAllShortcut"}],Pr=()=>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"})]}),Mr=()=>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"})]}),Ir=()=>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"})]}),Lr=()=>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"})}),Rr=()=>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"})]}),Er=()=>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:"6",width:"12",height:"4",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("rect",{x:"2",y:"10",width:"12",height:"4",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("path",{d:"M8 1v3M6.5 2.5h3",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}),Ar=()=>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:"4",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("rect",{x:"2",y:"6",width:"12",height:"4",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("path",{d:"M8 12v3M6.5 13.5h3",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}),Nr=()=>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:"4",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("rect",{x:"2",y:"6",width:"12",height:"4",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2",opacity:"0.3"}),jsx("rect",{x:"2",y:"10",width:"12",height:"4",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("path",{d:"M5 8h6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),Dr=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{x:"6",y:"2",width:"4",height:"12",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("rect",{x:"10",y:"2",width:"4",height:"12",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("path",{d:"M3 8H0.5M1.75 6.5v3",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}),Br=()=>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:"4",height:"12",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("rect",{x:"6",y:"2",width:"4",height:"12",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("path",{d:"M13 8h2.5M14.25 6.5v3",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}),_r=()=>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:"4",height:"12",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("rect",{x:"6",y:"2",width:"4",height:"12",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2",opacity:"0.3"}),jsx("rect",{x:"10",y:"2",width:"4",height:"12",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("path",{d:"M8 5v6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),Fr=()=>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:"4",width:"4",height:"8",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("rect",{x:"10",y:"4",width:"4",height:"8",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("path",{d:"M7 8h2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),jsx("path",{d:"M8 7l1 1-1 1",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}),Or=()=>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:"4",width:"12",height:"8",rx:"0.5",stroke:"currentColor",strokeWidth:"1.2"}),jsx("path",{d:"M8 4v8",stroke:"currentColor",strokeWidth:"1.2",strokeDasharray:"2 1"}),jsx("path",{d:"M6.5 8h-1M9.5 8h1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),Kr=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M3 3h10a1 1 0 011 1v6a1 1 0 01-1 1H6l-3 2.5V11H3a1 1 0 01-1-1V4a1 1 0 011-1z",stroke:"currentColor",strokeWidth:"1.3"}),jsx("path",{d:"M5 6h6M5 8.5h4",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]});function zr(e){switch(e){case "cut":return jsx(Pr,{});case "copy":return jsx(Mr,{});case "paste":case "pasteAsPlainText":return jsx(Ir,{});case "delete":return jsx(Lr,{});case "selectAll":return jsx(Rr,{});case "addRowAbove":return jsx(Er,{});case "addRowBelow":return jsx(Ar,{});case "deleteRow":return jsx(Nr,{});case "addColumnLeft":return jsx(Dr,{});case "addColumnRight":return jsx(Br,{});case "deleteColumn":return jsx(_r,{});case "mergeCells":return jsx(Fr,{});case "splitCell":return jsx(Or,{});case "addComment":return jsx(Kr,{});default:return null}}var Hr=({item:e,onClick:t,isHighlighted:o,onMouseEnter:r})=>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:r,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:zr(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:r,hasClipboardContent:n=true,onAction:s,onClose:i,items:c,className:d=""})=>{let a=useRef(null),[p,m]=useState(0),{t:l}=b$1(),g=useMemo(()=>ao.map(b=>({action:b.action,label:l(b.labelKey),shortcut:b.shortcutKey?l(b.shortcutKey):void 0,dividerAfter:b.dividerAfter})),[l]),u=(c||g).map(b=>{let y=(()=>{if(b.disabled!==void 0)return b.disabled;switch(b.action){case "cut":case "copy":case "delete":return !o;case "paste":case "pasteAsPlainText":return !r||!n;default:return false}})();return {...b,disabled:y}}),f=u.filter(b=>b.action!=="separator");useEffect(()=>{if(!e)return;let b=C=>{a.current&&!a.current.contains(C.target)&&i();},y=setTimeout(()=>{document.addEventListener("mousedown",b);},0);return ()=>{clearTimeout(y),document.removeEventListener("mousedown",b);}},[e,i]),useEffect(()=>{if(!e)return;let b=y=>{switch(y.key){case "Escape":y.preventDefault(),i();break;case "ArrowDown":y.preventDefault(),m(I=>{let L=(I+1)%f.length;for(;f[L]?.disabled&&L!==I;)L=(L+1)%f.length;return L});break;case "ArrowUp":y.preventDefault(),m(I=>{let L=(I-1+f.length)%f.length;for(;f[L]?.disabled&&L!==I;)L=(L-1+f.length)%f.length;return L});break;case "Enter":y.preventDefault();let C=f[p];C&&!C.disabled&&(s(C.action),i());break}};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[e,p,f,s,i]),useEffect(()=>{e&&m(0);},[e]);let x=useCallback(()=>{let y=u.length*36+16,C=t.x,I=t.y;return typeof window<"u"&&(C+220>window.innerWidth&&(C=window.innerWidth-220-10),I+y>window.innerHeight&&(I=window.innerHeight-y-10),C<10&&(C=10),I<10&&(I=10)),{position:"fixed",top:I,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:ro.contextMenu,padding:"4px 0",overflow:"hidden"}},[t,u.length]),h=b=>{b.disabled||(s(b.action),i());};return e?jsx("div",{ref:a,className:`docx-text-context-menu ${d}`,style:x(),role:"menu","aria-label":l("contextMenu.textMenuAriaLabel"),children:u.map((b,y)=>{let C=f.findIndex(I=>I===b);return jsx(Hr,{item:b,onClick:()=>h(b),isHighlighted:C===p,onMouseEnter:()=>{C>=0&&!b.disabled&&m(C);}},`${b.action}-${y}`)})}):null};function ui(e={}){let{enabled:t=true,isEditable:o=true,containerRef:r,onAction:n}=e,[s,i]=useState(false),[c,d]=useState({x:0,y:0}),[a,p]=useState(false),m=useCallback(()=>{let x=window.getSelection(),h=x&&!x.isCollapsed&&x.toString().length>0;return p(!!h),!!h},[]),l=useCallback(x=>{t&&(x.preventDefault(),x.stopPropagation(),m(),d({x:x.clientX,y:x.clientY}),i(true));},[t,m]),g=useCallback(()=>{i(false);},[]),u=useCallback(x=>{switch(g(),x){case "cut":document.execCommand("cut");break;case "copy":document.execCommand("copy");break;case "paste":document.execCommand("paste");break;case "pasteAsPlainText":navigator.clipboard.readText?.().then(h=>{document.execCommand("insertText",false,h);}).catch(()=>{document.execCommand("paste");});break;case "delete":document.execCommand("delete");break;case "selectAll":document.execCommand("selectAll");break}n?.(x);},[g,n]),f=useCallback(x=>{l(x);},[l]);return useEffect(()=>{if(!s)return;let x=h=>{h.key==="Escape"&&g();};return document.addEventListener("keydown",x),()=>document.removeEventListener("keydown",x)},[s,g]),{isOpen:s,position:c,hasSelection:a,openMenu:l,closeMenu:g,handleAction:u,onContextMenu:f}}function pi(e){return {cut:"Cut",copy:"Copy",paste:"Paste",pasteAsPlainText:"Paste as Plain Text",selectAll:"Select All",delete:"Delete",separator:"",addRowAbove:"Insert row above",addRowBelow:"Insert row below",deleteRow:"Delete row",addColumnLeft:"Insert column left",addColumnRight:"Insert column right",deleteColumn:"Delete column",mergeCells:en$1.table.mergeCells,splitCell:en$1.table.splitCell,addComment:"Comment"}[e]}function mi(e){return {cut:"Ctrl+X",copy:"Ctrl+C",paste:"Ctrl+V",pasteAsPlainText:"Ctrl+Shift+V",selectAll:"Ctrl+A",delete:"Del",separator:"",addRowAbove:"",addRowBelow:"",deleteRow:"",addColumnLeft:"",addColumnRight:"",deleteColumn:"",mergeCells:"",splitCell:"",addComment:""}[e]}function fi(){return ao.map(e=>({action:e.action,label:e.labelKey,shortcut:e.shortcutKey,dividerAfter:e.dividerAfter}))}function bi(e,t,o){switch(e){case "cut":case "copy":case "delete":return t;case "paste":case "pasteAsPlainText":return o;case "addComment":return t;case "selectAll":return true;default:return true}}var we=N.Root,De=N.Group,st=N.Value;function Te({className:e,children:t,onMouseDown:o,...r}){return jsxs(N.Trigger,{className:M("flex h-8 items-center justify-between gap-1 rounded px-2 py-1","text-sm text-slate-700 bg-transparent","hover:bg-slate-100/80 focus:outline-none focus:bg-slate-100/80","disabled:cursor-not-allowed disabled:opacity-50","transition-colors duration-150","[&>span]:truncate",e),onMouseDown:n=>{n.preventDefault(),o?.(n);},...r,children:[t,jsx(N.Icon,{asChild:true,children:jsx(Vr,{className:"h-4 w-4 text-slate-400 shrink-0"})})]})}function ke({className:e,children:t,position:o="popper",onCloseAutoFocus:r,...n}){return jsx(N.Portal,{children:jsx("div",{className:"ep-root",children:jsx(N.Content,{className:M("relative z-50 max-h-72 min-w-[8rem] overflow-hidden","rounded-lg border border-slate-200 bg-white shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",o==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",e),position:o,onCloseAutoFocus:s=>{s.preventDefault(),r?.(s);},...n,children:jsx(N.Viewport,{className:M("p-1",o==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),onMouseDown:s=>s.preventDefault(),children:t})})})})}function We({className:e,...t}){return jsx(N.Label,{className:M("px-2 py-1.5 text-xs font-medium text-slate-500",e),...t})}function ae({className:e,children:t,onMouseDown:o,...r}){return jsxs(N.Item,{className:M("relative flex w-full cursor-pointer select-none items-center","rounded px-2 py-1.5 text-sm text-slate-700 outline-none","hover:bg-slate-100 focus:bg-slate-100","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),onMouseDown:n=>{n.preventDefault(),o?.(n);},...r,children:[jsx(N.ItemText,{children:t}),jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:jsx(N.ItemIndicator,{children:jsx($r,{className:"h-4 w-4"})})})]})}function Ve({className:e,...t}){return jsx(N.Separator,{className:M("-mx-1 my-1 h-px bg-slate-100",e),...t})}function Vr({className:e}){return jsx("svg",{className:e,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z",clipRule:"evenodd"})})}function $r({className:e}){return jsx("svg",{className:e,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z",clipRule:"evenodd"})})}var Gr=[{name:"Arial",fontFamily:"Arial, Helvetica, sans-serif",category:"sans-serif"},{name:"Calibri",fontFamily:'"Calibri", Arial, sans-serif',category:"sans-serif"},{name:"Helvetica",fontFamily:"Helvetica, Arial, sans-serif",category:"sans-serif"},{name:"Verdana",fontFamily:"Verdana, Geneva, sans-serif",category:"sans-serif"},{name:"Open Sans",fontFamily:'"Open Sans", sans-serif',category:"sans-serif"},{name:"Roboto",fontFamily:"Roboto, sans-serif",category:"sans-serif"},{name:"Times New Roman",fontFamily:'"Times New Roman", Times, serif',category:"serif"},{name:"Georgia",fontFamily:"Georgia, serif",category:"serif"},{name:"Cambria",fontFamily:"Cambria, Georgia, serif",category:"serif"},{name:"Garamond",fontFamily:"Garamond, serif",category:"serif"},{name:"Courier New",fontFamily:'"Courier New", Courier, monospace',category:"monospace"},{name:"Consolas",fontFamily:"Consolas, monospace",category:"monospace"}];function lo({value:e,onChange:t,fonts:o=Gr,disabled:r=false,className:n,placeholder:s="Arial",width:i=120,showPreview:c=true}){let{t:d}=b$1(),a=j.useMemo(()=>e?o.find(g=>g.fontFamily===e||g.name.toLowerCase()===e.toLowerCase())?.name||e:s,[e,o,s]),p=j.useCallback(l=>{let g=o.find(u=>u.name===l);g&&t?.(g.fontFamily);},[t,o]),m=j.useMemo(()=>{let l={"sans-serif":[],serif:[],monospace:[],other:[]};return o.forEach(g=>{let u=g.category||"other";l[u].push(g);}),l},[o]);return jsxs(we,{value:a,onValueChange:p,disabled:r,children:[jsx(Te,{className:M("h-8 text-sm",n),style:{minWidth:typeof i=="number"?`${i}px`:i},"aria-label":d("font.selectAriaLabel"),children:jsx(st,{placeholder:s,children:a})}),jsxs(ke,{className:"max-h-[300px]",children:[m["sans-serif"].length>0&&jsxs(De,{children:[jsx(We,{children:d("font.sansSerif")}),m["sans-serif"].map(l=>jsx(ae,{value:l.name,style:c?{fontFamily:l.fontFamily}:void 0,children:l.name},l.name))]}),m.serif.length>0&&jsxs(Fragment,{children:[jsx(Ve,{}),jsxs(De,{children:[jsx(We,{children:d("font.serif")}),m.serif.map(l=>jsx(ae,{value:l.name,style:c?{fontFamily:l.fontFamily}:void 0,children:l.name},l.name))]})]}),m.monospace.length>0&&jsxs(Fragment,{children:[jsx(Ve,{}),jsxs(De,{children:[jsx(We,{children:d("font.monospace")}),m.monospace.map(l=>jsx(ae,{value:l.name,style:c?{fontFamily:l.fontFamily}:void 0,children:l.name},l.name))]})]}),m.other.length>0&&jsxs(Fragment,{children:[jsx(Ve,{}),jsx(De,{children:m.other.map(l=>jsx(ae,{value:l.name,style:c?{fontFamily:l.fontFamily}:void 0,children:l.name},l.name))})]})]})]})}var jr=[{name:"Dark Red",nameKey:"colorPicker.colors.darkRed",hex:"C00000"},{name:"Red",nameKey:"colorPicker.colors.red",hex:"FF0000"},{name:"Orange",nameKey:"colorPicker.colors.orange",hex:"FFC000"},{name:"Yellow",nameKey:"colorPicker.colors.yellow",hex:"FFFF00"},{name:"Light Green",nameKey:"colorPicker.colors.lightGreen",hex:"92D050"},{name:"Green",nameKey:"colorPicker.colors.green",hex:"00B050"},{name:"Light Blue",nameKey:"colorPicker.colors.lightBlue",hex:"00B0F0"},{name:"Blue",nameKey:"colorPicker.colors.blue",hex:"0070C0"},{name:"Dark Blue",nameKey:"colorPicker.colors.darkBlue",hex:"002060"},{name:"Purple",nameKey:"colorPicker.colors.purple",hex:"7030A0"}],ct=18,Jr=2,Qr={position:"relative",display:"inline-block"},en={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)"},tn={padding:"10px",backgroundColor:"#fff",border:"1px solid #d0d0d0",borderRadius:"6px",boxShadow:"0 4px 16px rgba(0, 0, 0, 0.15)",width:"auto"},Pt={fontSize:"11px",color:"#666",marginBottom:"4px",fontWeight:500},Mt={height:"1px",backgroundColor:"#e0e0e0",margin:"8px 0"},uo={display:"grid",gap:`${Jr}px`},dt={width:`${ct}px`,height:`${ct}px`,border:"1px solid #c0c0c0",borderRadius:"2px",cursor:"pointer",padding:0,transition:"transform 0.1s, border-color 0.1s"},po={...dt,transform:"scale(1.15)",borderColor:"#333",zIndex:1},mo={...dt,borderWidth:"2px",borderColor:"#0066cc",boxShadow:"0 0 0 1px #0066cc"},on={display:"flex",alignItems:"center",gap:"8px",width:"100%",padding:"5px 8px",border:"1px solid #d0d0d0",borderRadius:"4px",backgroundColor:"#fff",cursor:"pointer",fontSize:"12px",color:"#333"},rn={display:"flex",alignItems:"center",gap:"6px"},nn={width:"70px",height:"24px",padding:"2px 6px",border:"1px solid #ccc",borderRadius:"3px",fontSize:"12px"},an={height:"24px",padding:"0 10px",border:"1px solid #ccc",borderRadius:"3px",backgroundColor:"#f5f5f5",fontSize:"12px",cursor:"pointer"},so={width:"16px",height:"4px",borderRadius:"1px",marginTop:"-2px"},ln={display:"inline-flex",alignItems:"stretch",height:"32px",gap:"2px"},sn={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:0,width:"28px",padding:"2px 4px",border:"none",borderRadius:"4px",backgroundColor:"transparent",cursor:"pointer",transition:"background-color 0.1s",color:"var(--doc-text-muted)"},cn={display:"flex",alignItems:"center",justifyContent:"center",width:"18px",padding:0,border:"none",borderRadius:"4px",backgroundColor:"transparent",cursor:"pointer",transition:"background-color 0.1s",color:"var(--doc-text-muted)"};function It(e,t,o){if(!e)return t==="text"||t==="border"?"#000000":"transparent";if(typeof e=="string"){if(t==="highlight"){let r=resolveHighlightColor(e);return r||(e==="none"?"transparent":e.startsWith("#")?e:`#${e}`)}return e.startsWith("#")?e:`#${e}`}return resolveColor(e,o)}function co(e){let t=e.replace(/^#/,"");if(t.length!==6)return false;let o=parseInt(t.slice(0,2),16),r=parseInt(t.slice(2,4),16),n=parseInt(t.slice(4,6),16);return (o*299+r*587+n*114)/1e3>230}function fo(e,t,o){return e?(typeof e=="string"?e.replace(/^#/,"").toUpperCase():resolveColorToHex(e,o))===t.toUpperCase():false}function dn({matrix:e,selectedColor:t,theme:o,onSelect:r}){let[n,s]=useState(null);return jsx("div",{style:{...uo,gridTemplateColumns:`repeat(10, ${ct}px)`},children:e.flatMap((i,c)=>i.map((d,a)=>{let p=`${c}-${a}`,m=n===p,l=fo(t,d.hex,o);return jsx("button",{type:"button",style:{...l?mo:m?po:dt,backgroundColor:`#${d.hex}`},title:d.label,"aria-label":d.label,"aria-selected":l,onClick:()=>r(d),onMouseDown:g=>g.preventDefault(),onMouseEnter:()=>s(p),onMouseLeave:()=>s(null)},p)}))})}function un({selectedColor:e,theme:t,onSelect:o}){let[r,n]=useState(null),{t:s}=b$1();return jsx("div",{style:{...uo,gridTemplateColumns:`repeat(10, ${ct}px)`},children:jr.map((i,c)=>{let d=r===c,a=fo(e,i.hex,t),p=s(i.nameKey);return jsx("button",{type:"button",style:{...a?mo:d?po:dt,backgroundColor:`#${i.hex}`},title:p,"aria-label":p,"aria-selected":a,onClick:()=>o(i.hex),onMouseDown:m=>m.preventDefault(),onMouseEnter:()=>n(c),onMouseLeave:()=>n(null)},i.hex)})})}function _e({mode:e,value:t,onChange:o,theme:r,disabled:n=false,className:s,style:i,title:c$1,icon:d,autoLabel:a,splitButton:p=true,defaultColor:m}){let[l,g]=useState(false),[u,f]=useState(false),[x,h]=useState(false),[b$2,y]=useState(false),[C,I]=useState(""),[L,ce]=useState(()=>m??(e==="highlight"?"FFFF00":e==="border"?{rgb:"000000"}:{rgb:"FF0000"})),{t:F}=b$1();useEffect(()=>{let w=It(t,e,r).replace(/^#/,"");/^[0-9A-Fa-f]{6}$/.test(w)&&I(w.toUpperCase());},[t,e,r]);let Y=useCallback(()=>g(false),[]),{containerRef:de,dropdownRef:ge,dropdownStyle:G}=c({isOpen:l,onClose:Y}),R=r?.colorScheme??null,k=useMemo(()=>generateThemeTintShadeMatrix(R),[R]),_=useMemo(()=>It(t,e,r),[t,e,r]),ue=useMemo(()=>It(L,e,r),[L,e,r]),he=useCallback(()=>{n||g(w=>!w);},[n]),xe=useCallback(w=>{let W;if(e==="highlight")W=w.hex;else {let ve={themeColor:w.themeSlot,rgb:w.hex};w.tint&&(ve.themeTint=w.tint),w.shade&&(ve.themeShade=w.shade),W=ve;}ce(W),o?.(W),g(false);},[e,o]),ye=useCallback(w=>{let W=e==="highlight"?w:{rgb:w};ce(W),o?.(W),g(false);},[e,o]),te=useCallback(()=>{o?.(e==="highlight"?"none":{auto:true}),g(false);},[e,o]),Ee=useCallback(()=>{let w=C.replace(/^#/,"").toUpperCase();if(/^[0-9A-F]{6}$/i.test(w)){let W=e==="highlight"?w:{rgb:w};ce(W),o?.(W),g(false),I("");}},[e,C,o]),O=useCallback(()=>{n||o?.(L);},[n,L,o]),qe={...en,...n?{cursor:"default",opacity:.38}:l?{backgroundColor:"var(--doc-primary-light)",color:"var(--doc-primary)"}:u?{backgroundColor:"var(--doc-bg-hover)"}:{}},oe=F(e==="text"?"formattingBar.fontColor":e==="highlight"?"formattingBar.highlightColor":"table.borderColor"),ze=d??(e==="text"?"format_color_text":e==="highlight"?"ink_highlighter":"border_color");return jsxs("div",{ref:de,className:`docx-color-picker ${s||""}`,style:{...Qr,...i},children:[p?jsxs("div",{className:"docx-color-picker-split",style:{...ln,...n?{opacity:.38,cursor:"default"}:null},children:[jsxs("button",{type:"button",className:"docx-color-picker-apply",style:{...sn,...n?{cursor:"default"}:x?{backgroundColor:"var(--doc-bg-hover)"}:null},onClick:O,onMouseDown:w=>w.preventDefault(),onMouseEnter:()=>h(true),onMouseLeave:()=>h(false),disabled:n,title:c$1||oe,"aria-label":c$1||oe,children:[jsx(b,{name:ze,size:18}),jsx("div",{style:{...so,backgroundColor:ue==="transparent"?"#fff":ue,outline:ue==="transparent"||co(ue)?"1px solid #bbb":"none"}})]}),jsx("button",{type:"button",className:"docx-color-picker-arrow",style:{...cn,...n?{cursor:"default"}:l?{backgroundColor:"var(--doc-primary-light)",color:"var(--doc-primary)"}:b$2?{backgroundColor:"var(--doc-bg-hover)"}:null},onClick:he,onMouseDown:w=>w.preventDefault(),onMouseEnter:()=>y(true),onMouseLeave:()=>y(false),disabled:n,title:c$1||oe,"aria-label":c$1||oe,"aria-haspopup":"true","aria-expanded":l,children:jsx(b,{name:"arrow_drop_down",size:18})})]}):jsxs("button",{type:"button",className:"docx-color-picker-button",style:qe,onClick:he,onMouseDown:w=>w.preventDefault(),onMouseEnter:()=>f(true),onMouseLeave:()=>f(false),disabled:n,title:c$1||oe,"aria-label":c$1||oe,"aria-haspopup":"true","aria-expanded":l,children:[jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:0},children:[jsx(b,{name:ze,size:18}),jsx("div",{style:{...so,backgroundColor:_==="transparent"?"#fff":_,outline:_==="transparent"||co(_)?"1px solid #bbb":"none"}})]}),jsx(b,{name:"arrow_drop_down",size:14})]}),l&&jsx("div",{ref:ge,className:"docx-color-picker-dropdown",style:{...G,...tn},role:"dialog","aria-label":`${oe} picker`,onMouseDown:w=>{w.target.tagName!=="INPUT"&&w.preventDefault();},children:jsxs(Fragment,{children:[jsxs("button",{type:"button",style:on,onClick:te,onMouseDown:w=>w.preventDefault(),children:[e==="highlight"?jsx("span",{style:{display:"inline-block",width:"16px",height:"16px",border:"1px solid #ccc",borderRadius:"2px",position:"relative",backgroundColor:"#fff"},children:jsx("span",{style:{position:"absolute",top:"50%",left:"-1px",right:"-1px",height:"2px",backgroundColor:"#ff0000",transform:"rotate(-45deg)"}})}):jsx("span",{style:{display:"inline-block",width:"16px",height:"16px",backgroundColor:"#000",borderRadius:"2px"}}),a??F(e==="highlight"?"colorPicker.noColor":"colorPicker.automatic")]}),jsx("div",{style:Mt}),jsx("div",{style:Pt,children:F("colorPicker.themeColors")}),jsx(dn,{matrix:k,selectedColor:t,theme:r,onSelect:xe}),jsx("div",{style:Mt}),jsx("div",{style:Pt,children:F("colorPicker.standardColors")}),jsx(un,{selectedColor:t,theme:r,onSelect:ye}),jsx("div",{style:Mt}),jsx("div",{style:Pt,children:F("colorPicker.customColor")}),jsxs("div",{style:rn,children:[jsx("span",{style:{fontSize:"12px",color:"#666"},children:"#"}),jsx("input",{type:"text",style:nn,value:C,onChange:w=>I(w.target.value.replace(/[^0-9A-Fa-f]/g,"").slice(0,6)),onKeyDown:w=>{w.key==="Enter"&&Ee();},onMouseDown:w=>{w.stopPropagation();},placeholder:"FF0000",maxLength:6,"aria-label":"Custom hex color"}),jsx("button",{type:"button",style:{...an,opacity:/^[0-9A-Fa-f]{6}$/.test(C)?1:.4,cursor:/^[0-9A-Fa-f]{6}$/.test(C)?"pointer":"default"},onClick:Ee,onMouseDown:w=>w.preventDefault(),disabled:!/^[0-9A-Fa-f]{6}$/.test(C),children:F("common.apply")})]})]})})]})}function Q({content:e,children:t,side:o="bottom",delayMs:r=400}){let[n,s]=j.useState(false),[i,c]=j.useState({x:0,y:0}),d=j.useRef(null),a=j.useRef(null),p=j.useCallback(()=>{a.current=setTimeout(()=>{if(d.current){let u=d.current.getBoundingClientRect(),f=u.left+u.width/2,x=o==="top"?u.top-8:u.bottom+8;c({x:f,y:x});}s(true);},r);},[r,o]),m=j.useCallback(()=>{a.current&&(clearTimeout(a.current),a.current=null),s(false);},[]);j.useEffect(()=>()=>{a.current&&clearTimeout(a.current);},[]);let l=t.props,g=j.cloneElement(t,{ref:d,onMouseEnter:u=>{p(),l.onMouseEnter?.(u);},onMouseLeave:u=>{m(),l.onMouseLeave?.(u);}});return jsxs(Fragment,{children:[g,n&&jsx("div",{className:"fixed z-50 px-2 py-1 text-xs font-medium text-white bg-slate-900 rounded-md shadow-lg",style:{left:i.x,top:i.y,transform:o==="top"?"translate(-50%, -100%)":o==="bottom"?"translate(-50%, 0)":void 0},children:e})]})}var je=20,Lt=[{value:"left",label:"Align Left",labelKey:"alignment.alignLeft",shortcutKey:"alignment.alignLeftShortcut",icon:jsx(b,{name:"format_align_left",size:je}),iconName:"format_align_left",shortcut:"Ctrl+L"},{value:"center",label:"Center",labelKey:"alignment.center",shortcutKey:"alignment.centerShortcut",icon:jsx(b,{name:"format_align_center",size:je}),iconName:"format_align_center",shortcut:"Ctrl+E"},{value:"right",label:"Align Right",labelKey:"alignment.alignRight",shortcutKey:"alignment.alignRightShortcut",icon:jsx(b,{name:"format_align_right",size:je}),iconName:"format_align_right",shortcut:"Ctrl+R"},{value:"both",label:"Justify",labelKey:"alignment.justify",shortcutKey:"alignment.justifyShortcut",icon:jsx(b,{name:"format_align_justify",size:je}),iconName:"format_align_justify",shortcut:"Ctrl+J"}];function ho({value:e="left",onChange:t,disabled:o=false}){let{t:r}=b$1(),[n,s]=useState(false),i=useCallback(()=>s(false),[]),{containerRef:c$1,dropdownRef:d,dropdownStyle:a,handleMouseDown:p}=c({isOpen:n,onClose:i}),m=useCallback(h=>{o||t?.(h),s(false);},[o,t]),l=Lt.find(h=>h.value===e)||Lt[0],g=r(l.labelKey),u=l.shortcutKey?r(l.shortcutKey):void 0,f=`${g}${u?` (${u})`:""}`,x=jsxs(V,{variant:"ghost",size:"icon-sm",className:M("text-slate-500 hover:text-slate-900 hover:bg-slate-100/80",n&&"bg-slate-100",o&&"opacity-30 cursor-not-allowed"),onMouseDown:p,onClick:()=>!o&&s(h=>!h),disabled:o,"aria-label":f,"aria-expanded":n,"aria-haspopup":"true","data-testid":"toolbar-alignment",children:[jsx(b,{name:l.iconName,size:je}),jsx(b,{name:"arrow_drop_down",size:14,className:"-ml-1"})]});return jsxs("div",{ref:c$1,style:{position:"relative",display:"inline-block"},children:[n?x:jsx(Q,{content:f,children:x}),n&&!o&&jsx("div",{ref:d,style:{...a,backgroundColor:"white",border:"1px solid var(--doc-border)",borderRadius:8,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.12)",padding:6},onMouseDown:h=>h.stopPropagation(),children:jsx("div",{style:{display:"flex",gap:2},children:Lt.map(h=>{let b$1=e===h.value,y=r(h.labelKey),C=h.shortcutKey?r(h.shortcutKey):void 0;return jsx("button",{type:"button",title:`${y}${C?` (${C})`:""}`,"data-testid":`alignment-${h.value}`,style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,border:"1px solid transparent",borderRadius:4,backgroundColor:b$1?"var(--doc-primary-light)":"transparent",cursor:"pointer",color:b$1?"var(--doc-primary)":"var(--doc-text)"},onMouseDown:I=>I.preventDefault(),onMouseEnter:I=>{b$1||(I.currentTarget.style.backgroundColor="var(--doc-bg-hover)");},onMouseLeave:I=>{I.currentTarget.style.backgroundColor=b$1?"var(--doc-primary-light)":"transparent";},onClick:()=>m(h.value),children:jsx(b,{name:h.iconName,size:18})},h.value)})})})]})}var hn=[{label:"Single",labelKey:"lineSpacing.single",value:1,twipsValue:240},{label:"1.15",value:1.15,twipsValue:276},{label:"1.5",value:1.5,twipsValue:360},{label:"Double",labelKey:"lineSpacing.double",value:2,twipsValue:480}];function yo({value:e,onChange:t,options:o=hn,disabled:r=false,className:n}){let{t:s}=b$1(),i=j.useMemo(()=>e===void 0?o[0]:o.find(a=>a.twipsValue===e)||o[0],[e,o]),c=j.useCallback(a=>{let p=parseInt(a,10);isNaN(p)||t?.(p);},[t]),d=a=>a.labelKey?s(a.labelKey):a.label;return jsxs(we,{value:i.twipsValue.toString(),onValueChange:c,disabled:r,children:[jsx(Te,{className:M("h-8 text-sm gap-0.5 px-2",n),style:{width:"auto"},title:s("lineSpacing.lineSpacingTitle",{label:d(i)}),children:jsx(a,{className:"h-5 w-5 shrink-0"})}),jsxs(ke,{children:[o.map(a=>jsx(ae,{value:a.twipsValue.toString(),children:d(a)},a.twipsValue)),jsx(Ve,{}),jsx(De,{children:jsx(We,{children:s("lineSpacing.paragraphSpacing")})})]})]})}var vo=[{styleId:"Normal",name:"Normal text",nameKey:"styles.normalText",type:"paragraph",isDefault:true,priority:0,qFormat:true,fontSize:22},{styleId:"Title",name:"Title",nameKey:"styles.title",type:"paragraph",priority:1,qFormat:true,fontSize:52,bold:true},{styleId:"Subtitle",name:"Subtitle",nameKey:"styles.subtitle",type:"paragraph",priority:2,qFormat:true,fontSize:30,color:"666666"},{styleId:"Heading1",name:"Heading 1",nameKey:"styles.heading1",type:"paragraph",priority:3,qFormat:true,fontSize:40,bold:true},{styleId:"Heading2",name:"Heading 2",nameKey:"styles.heading2",type:"paragraph",priority:4,qFormat:true,fontSize:32,bold:true},{styleId:"Heading3",name:"Heading 3",nameKey:"styles.heading3",type:"paragraph",priority:5,qFormat:true,fontSize:28,bold:true}],xn="#4a6c8c",yn={Title:26,Subtitle:18,Heading1:24,Heading2:18,Heading3:16,Heading4:14,Heading5:13,Heading6:13,Normal:14};function vn(e){let t={},o=yn[e.styleId];if(o)t.fontSize=`${o}px`;else {let r=e.fontSize?e.fontSize/2:11,n=Math.min(Math.max(r,11),20);t.fontSize=`${n}px`;}return t.lineHeight="1.3",e.bold&&(t.fontWeight="bold"),e.italic&&(t.fontStyle="italic"),e.color?t.color=`#${e.color}`:e.styleId.startsWith("Heading")&&(t.color=xn),t}function Co({value:e,onChange:t,styles:o,disabled:r=false,className:n,width:s=120}){let{t:i}=b$1(),c=j.useMemo(()=>!o||o.length===0?vo:o.filter(u=>u.type==="paragraph").filter(u=>u.qFormat?true:!(u.hidden||u.semiHidden)).map(u=>{let f=vo.find(x=>x.styleId===u.styleId);return {styleId:u.styleId,name:u.name||u.styleId,nameKey:f?.nameKey,type:u.type,isDefault:u.default,qFormat:u.qFormat,priority:u.uiPriority??99,fontSize:u.rPr?.fontSize??f?.fontSize,bold:u.rPr?.bold??f?.bold,italic:u.rPr?.italic??f?.italic,color:u.rPr?.color?.rgb??f?.color}}).sort((u,f)=>(u.priority??99)-(f.priority??99)),[o]),d=j.useCallback(g=>{t?.(g);},[t]),a=g=>g.nameKey?i(g.nameKey):g.name,p=e||"Normal",m=c.find(g=>g.styleId===p),l=m?a(m):p;return jsxs(we,{value:p,onValueChange:d,disabled:r,children:[jsx(Te,{className:M("h-8 text-sm",n),style:{width:typeof s=="number"?`${s}px`:s},"aria-label":i("styles.selectAriaLabel"),children:jsx("span",{className:"truncate",children:l})}),jsx(ke,{className:"min-w-[260px] max-h-[400px]",children:c.map(g=>jsx(ae,{value:g.styleId,className:"py-2.5 px-3",children:jsx("span",{style:vn(g),children:a(g)})},g.styleId))})]})}var Sn=[{value:.5,label:"50%"},{value:.75,label:"75%"},{value:1,label:"100%"},{value:1.25,label:"125%"},{value:1.5,label:"150%"},{value:2,label:"200%"}];function So({value:e=1,onChange:t,levels:o=Sn,disabled:r=false,className:n,compact:s=false}){let{t:i}=b$1(),c=j.useMemo(()=>{let a=o.find(p=>Math.abs(p.value-e)<.001);return a?a.label:`${Math.round(e*100)}%`},[o,e]),d=j.useCallback(a=>{let p=parseFloat(a);isNaN(p)||t?.(p);},[t]);return jsxs(we,{value:e.toString(),onValueChange:d,disabled:r,children:[jsx(Te,{className:M(s?"h-7 min-w-[55px] text-xs":"h-8 min-w-[70px] text-sm",n),"aria-label":i("zoom.ariaLabel",{label:c}),children:jsx(st,{placeholder:"100%",children:c})}),jsx(ke,{children:o.map(a=>jsx(ae,{value:a.value.toString(),children:a.label},a.value))})]})}var kn=[{action:"borderAll",icon:"border_all",labelKey:"table.borders.all"},{action:"borderOutside",icon:"border_outer",labelKey:"table.borders.outside"},{action:"borderInside",icon:"border_inner",labelKey:"table.borders.inside"},{action:"borderTop",icon:"border_top",labelKey:"table.borders.top"},{action:"borderBottom",icon:"border_bottom",labelKey:"table.borders.bottom"},{action:"borderLeft",icon:"border_left",labelKey:"table.borders.left"},{action:"borderRight",icon:"border_right",labelKey:"table.borders.right"},{action:"borderNone",icon:"border_clear",labelKey:"table.borders.none"}];function ko({onAction:e,disabled:t=false}){let{t:o}=b$1(),[r,n]=useState(false),s=useCallback(()=>n(false),[]),{containerRef:i,dropdownRef:c$1,dropdownStyle:d,handleMouseDown:a}=c({isOpen:r,onClose:s}),p=useCallback(l=>{e(l),n(false);},[e]),m=jsxs(V,{variant:"ghost",size:"icon-sm",className:M("text-slate-500 hover:text-slate-900 hover:bg-slate-100/80",r&&"bg-slate-100",t&&"opacity-30 cursor-not-allowed"),onMouseDown:a,onClick:()=>!t&&n(l=>!l),disabled:t,"aria-label":o("table.borders.styleAriaLabel"),"aria-expanded":r,"aria-haspopup":"true","data-testid":"toolbar-table-borders",children:[jsx(b,{name:"border_all",size:20}),jsx(b,{name:"arrow_drop_down",size:14,className:"-ml-1"})]});return jsxs("div",{ref:i,style:{position:"relative",display:"inline-block"},children:[r?m:jsx(Q,{content:o("table.borders.tooltip"),children:m}),r&&!t&&jsx("div",{ref:c$1,style:{...d,backgroundColor:"white",border:"1px solid var(--doc-border)",borderRadius:8,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.12)",padding:6},onMouseDown:l=>l.stopPropagation(),children:jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:2},children:kn.map(({action:l,icon:g,labelKey:u})=>jsx("button",{type:"button",title:o(u),style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,border:"1px solid transparent",borderRadius:4,backgroundColor:"transparent",cursor:"pointer",color:"var(--doc-text)"},onMouseDown:f=>f.preventDefault(),onMouseEnter:f=>{f.currentTarget.style.backgroundColor="var(--doc-bg-hover)";},onMouseLeave:f=>{f.currentTarget.style.backgroundColor="transparent";},onClick:()=>p(l),children:jsx(b,{name:g,size:18})},typeof l=="string"?l:l.type))})})]})}function Po({onAction:e,disabled:t=false,theme:o,value:r}){let{t:n}=b$1(),s=useCallback(i=>{typeof i=="string"?e({type:"borderColor",color:i.replace(/^#/,"")}):i.rgb?e({type:"borderColor",color:i.rgb.replace(/^#/,"")}):i.auto&&e({type:"borderColor",color:"000000"});},[e]);return jsx(_e,{mode:"border",value:r,onChange:s,theme:o,disabled:t,title:n("table.borderColor")})}var Ln=[{size:4,label:"0.5 pt",thickness:.5},{size:8,label:"1 pt",thickness:1},{size:12,label:"1.5 pt",thickness:1.5},{size:16,label:"2 pt",thickness:2},{size:24,label:"3 pt",thickness:3}];function Io({onAction:e,disabled:t=false}){let[o,r]=useState(false),{t:n}=b$1(),s=useCallback(()=>r(false),[]),{containerRef:i,dropdownRef:c$1,dropdownStyle:d,handleMouseDown:a}=c({isOpen:o,onClose:s}),p=useCallback(l=>{e({type:"borderWidth",size:l}),r(false);},[e]),m=jsxs(V,{variant:"ghost",size:"icon-sm",className:M("text-slate-500 hover:text-slate-900 hover:bg-slate-100/80",o&&"bg-slate-100",t&&"opacity-30 cursor-not-allowed"),onMouseDown:a,onClick:()=>!t&&r(l=>!l),disabled:t,"aria-label":n("table.borderWidth"),"aria-expanded":o,"aria-haspopup":"true","data-testid":"toolbar-table-border-width",children:[jsx(b,{name:"line_weight",size:20}),jsx(b,{name:"arrow_drop_down",size:14,className:"-ml-1"})]});return jsxs("div",{ref:i,style:{position:"relative",display:"inline-block"},children:[o?m:jsx(Q,{content:n("table.borderWidth"),children:m}),o&&!t&&jsx("div",{ref:c$1,style:{...d,backgroundColor:"white",border:"1px solid var(--doc-border)",borderRadius:8,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.12)",padding:"4px 0",minWidth:120},onMouseDown:l=>l.stopPropagation(),children:Ln.map(({size:l,label:g,thickness:u})=>jsxs("button",{type:"button",style:{display:"flex",alignItems:"center",gap:10,padding:"6px 12px",width:"100%",border:"none",backgroundColor:"transparent",cursor:"pointer",fontSize:12,color:"var(--doc-text)"},onMouseDown:f=>f.preventDefault(),onMouseEnter:f=>{f.currentTarget.style.backgroundColor="var(--doc-bg-hover)";},onMouseLeave:f=>{f.currentTarget.style.backgroundColor="transparent";},onClick:()=>p(l),children:[jsx("div",{style:{width:50,height:Math.max(u,1),backgroundColor:"#000",borderRadius:u>2?1:0}}),jsx("span",{children:g})]},l))})]})}function Lo({onAction:e,disabled:t=false,theme:o,value:r}){let{t:n}=b$1(),s=useCallback(i=>{typeof i=="string"&&e(i==="none"?{type:"cellFillColor",color:null}:{type:"cellFillColor",color:i.replace(/^#/,"")});},[e]);return jsx(_e,{mode:"highlight",value:r,onChange:s,theme:o,disabled:t,title:n("table.cellFillColor"),icon:"format_color_fill",autoLabel:n("colorPicker.noColor")})}var An={display:"flex",alignItems:"center",gap:10,padding:"7px 14px",fontSize:13,color:"var(--doc-text)",cursor:"pointer",border:"none",backgroundColor:"transparent",width:"100%",textAlign:"left"},Ue={height:1,backgroundColor:"var(--doc-border)",margin:"4px 0"},Ao={padding:"6px 14px 2px",fontSize:11,color:"var(--doc-text-muted)",fontWeight:500};function No({onAction:e,disabled:t=false,tableContext:o}){let{t:r}=b$1(),[n,s]=useState(false),[i,c$1]=useState(null),d=useCallback(()=>s(false),[]),{containerRef:a,dropdownRef:p,dropdownStyle:m,handleMouseDown:l}=c({isOpen:n,onClose:d,align:"right"}),g=o?.table?.attrs?.justification??"left",u=useCallback(h=>{e(h),s(false);},[e]),f=(h,b$1,y,C,I)=>{let L=t||I?.itemDisabled;return jsxs("button",{type:"button",role:"menuitem",style:{...An,backgroundColor:i===h&&!L?"var(--doc-bg-hover)":"transparent",color:L?"var(--doc-text-muted)":I?.danger?"var(--doc-error)":"var(--doc-text)",cursor:L?"not-allowed":"pointer"},onClick:()=>!L&&u(C),onMouseEnter:()=>c$1(h),onMouseLeave:()=>c$1(null),disabled:L,children:[jsx(b,{name:b$1,size:16,className:I?.danger&&!L?"text-red-600":""}),jsx("span",{style:{flex:1},children:y})]},h)},x=jsx(V,{variant:"ghost",size:"icon-sm",className:M("text-slate-500 hover:text-slate-900 hover:bg-slate-100/80",n&&"bg-slate-100",t&&"opacity-30 cursor-not-allowed"),onMouseDown:l,onClick:()=>!t&&s(h=>!h),disabled:t,"aria-label":r("table.moreOptions"),"aria-expanded":n,"aria-haspopup":"menu","data-testid":"toolbar-table-more",children:jsx(b,{name:"more_vert",size:20})});return jsxs("div",{ref:a,style:{position:"relative",display:"inline-block"},children:[n?x:jsx(Q,{content:r("table.moreOptions"),children:x}),n&&!t&&jsxs("div",{ref:p,style:{...m,backgroundColor:"white",border:"1px solid var(--doc-border)",borderRadius:8,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.12)",padding:"4px 0",minWidth:200,maxHeight:"70vh",overflowY:"auto"},role:"menu",onMouseDown:h=>h.stopPropagation(),children:[f("addRowAbove","add",r("table.insertRowAbove"),"addRowAbove"),f("addRowBelow","add",r("table.insertRowBelow"),"addRowBelow"),f("addColumnLeft","add",r("table.insertColumnLeft"),"addColumnLeft"),f("addColumnRight","add",r("table.insertColumnRight"),"addColumnRight"),jsx("div",{style:Ue,role:"separator"}),f("mergeCells","call_merge",r("table.mergeCells"),"mergeCells",{itemDisabled:!o?.hasMultiCellSelection}),f("splitCell","call_split",r("table.splitCell"),"splitCell",{itemDisabled:!o?.canSplitCell}),jsx("div",{style:Ue,role:"separator"}),f("deleteRow","delete",r("table.deleteRow"),"deleteRow",{danger:true,itemDisabled:(o?.rowCount??0)<=1}),f("deleteColumn","delete",r("table.deleteColumn"),"deleteColumn",{danger:true,itemDisabled:(o?.columnCount??0)<=1}),f("deleteTable","delete",r("table.deleteTable"),"deleteTable",{danger:true}),jsx("div",{style:Ue,role:"separator"}),jsx("div",{style:Ao,children:r("tableAdvanced.verticalAlignment")}),jsx("div",{style:{display:"flex",gap:4,padding:"4px 14px"},children:["top","center","bottom"].map(h=>{let b$1={top:"vertical_align_top",center:"vertical_align_center",bottom:"vertical_align_bottom"};return jsx("button",{type:"button",title:r({top:"tableAdvanced.top",center:"tableAdvanced.middle",bottom:"tableAdvanced.bottom"}[h]),style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:28,border:"1px solid var(--doc-border)",borderRadius:4,backgroundColor:"transparent",cursor:"pointer"},onMouseDown:C=>C.preventDefault(),onMouseEnter:C=>{C.currentTarget.style.backgroundColor="var(--doc-bg-hover)";},onMouseLeave:C=>{C.currentTarget.style.backgroundColor="transparent";},onClick:()=>u({type:"cellVerticalAlign",align:h}),children:jsx(b,{name:b$1[h],size:16})},h)})}),jsx("div",{style:Ue,role:"separator"}),jsx("div",{style:Ao,children:r("tableAdvanced.tableAlignment")}),jsx("div",{style:{display:"flex",gap:4,padding:"4px 14px"},children:["left","center","right"].map(h=>{let b$1={left:"format_align_left",center:"format_align_center",right:"format_align_right"},y=g===h;return jsx("button",{type:"button",title:r({left:"tableAdvanced.alignTableLeft",center:"tableAdvanced.alignTableCenter",right:"tableAdvanced.alignTableRight"}[h]),style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:28,border:"1px solid var(--doc-border)",borderRadius:4,backgroundColor:y?"var(--doc-primary-light)":"transparent",borderColor:y?"var(--doc-primary)":"var(--doc-border)",color:y?"var(--doc-primary)":"var(--doc-text)",cursor:"pointer"},onMouseDown:C=>C.preventDefault(),onClick:()=>u({type:"tableProperties",props:{justification:h}}),children:jsx(b,{name:b$1[h],size:16})},h)})}),jsx("div",{style:Ue,role:"separator"}),f("headerRow","table_rows",r("tableAdvanced.toggleHeaderRow"),{type:"toggleHeaderRow"}),f("distribute","view_column",r("tableAdvanced.distributeColumns"),{type:"distributeColumns"}),f("autoFit","fit_width",r("tableAdvanced.autoFit"),{type:"autoFitContents"}),f("noWrap","wrap_text",r("tableAdvanced.toggleNoWrap"),{type:"toggleNoWrap"}),jsx("div",{style:Ue,role:"separator"}),f("properties","settings",r("tableAdvanced.tableProperties"),{type:"openTableProperties"})]})]})}var Dn=20;function bt({options:e,activeValue:t,triggerIcon:o,tooltipContent:r,onSelect:n,disabled:s=false,ariaLabel:i,testId:c$1,showLabels:d=false}){let[a,p]=useState(false),m=useCallback(()=>p(false),[]),{containerRef:l,dropdownRef:g,dropdownStyle:u,handleMouseDown:f}=c({isOpen:a,onClose:m}),x=useCallback(b=>{s||n(b),p(false);},[s,n]),h=jsxs(V,{variant:"ghost",size:"icon-sm",className:M("text-slate-500 hover:text-slate-900 hover:bg-slate-100/80",a&&"bg-slate-100",s&&"opacity-30 cursor-not-allowed"),onMouseDown:f,onClick:()=>!s&&p(b=>!b),disabled:s,"aria-label":i??r,"aria-expanded":a,"aria-haspopup":"true","data-testid":c$1,children:[jsx(b,{name:o,size:Dn}),jsx(b,{name:"arrow_drop_down",size:14,className:"-ml-1"})]});return jsxs("div",{ref:l,style:{position:"relative",display:"inline-block"},children:[a?h:jsx(Q,{content:r,children:h}),a&&!s&&jsx("div",{ref:g,style:{...u,backgroundColor:"white",border:"1px solid var(--doc-border)",borderRadius:8,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.12)",padding:6},onMouseDown:b=>b.stopPropagation(),children:jsx("div",{style:{display:"flex",flexDirection:d?"column":"row",gap:d?1:2,minWidth:d?200:void 0},children:e.map(b$1=>{let y=t===b$1.value;return jsxs("button",{type:"button",title:b$1.label,"data-testid":c$1?`${c$1}-${b$1.value}`:void 0,style:{display:"flex",alignItems:"center",height:32,border:"1px solid transparent",borderRadius:4,backgroundColor:y?"var(--doc-primary-light)":"transparent",cursor:"pointer",color:y?"var(--doc-primary)":"var(--doc-text)",...d?{width:"100%",gap:10,padding:"0 10px",justifyContent:"flex-start",fontSize:13,textAlign:"left"}:{width:32,justifyContent:"center"}},onMouseDown:C=>C.preventDefault(),onMouseEnter:C=>{y||(C.currentTarget.style.backgroundColor="var(--doc-bg-hover)");},onMouseLeave:C=>{C.currentTarget.style.backgroundColor=y?"var(--doc-primary-light)":"transparent";},onClick:()=>x(b$1.value),children:[jsx(b,{name:b$1.iconName,size:18}),d&&jsx("span",{style:{flex:1},children:b$1.label})]},b$1.value)})})})]})}var Bn=[{value:"inline",labelKey:"imageWrap.inline",iconName:"wrap_text"},{value:"wrapRight",labelKey:"imageWrap.floatLeft",iconName:"format_image_left"},{value:"wrapLeft",labelKey:"imageWrap.floatRight",iconName:"format_image_right"},{value:"behind",labelKey:"imageWrap.behindText",iconName:"flip_to_back"},{value:"inFront",labelKey:"imageWrap.inFrontOfText",iconName:"flip_to_front"}];function _n(e){return e.displayMode==="float"&&e.cssFloat==="left"?"wrapRight":e.displayMode==="float"&&e.cssFloat==="right"?"wrapLeft":e.wrapType}function _o({imageContext:e,onChange:t,disabled:o=false}){let{t:r}=b$1(),n=Bn.map(c=>({...c,label:r(c.labelKey)})),s=_n(e),i=n.find(c=>c.value===s)||n[0];return jsx(bt,{options:n,activeValue:s,triggerIcon:i.iconName,tooltipContent:`Wrap: ${i.label}`,onSelect:t,disabled:o,testId:"toolbar-image-wrap",showLabels:true})}var On=[{value:"rotateCW",labelKey:"imageTransform.rotateClockwise",iconName:"rotate_right"},{value:"rotateCCW",labelKey:"imageTransform.rotateCounterClockwise",iconName:"rotate_left"},{value:"flipH",labelKey:"imageTransform.flipHorizontal",iconName:"swap_horiz"},{value:"flipV",labelKey:"imageTransform.flipVertical",iconName:"swap_vert"}];function Fo({onTransform:e,disabled:t=false}){let{t:o}=b$1(),r=On.map(n=>({...n,label:o(n.labelKey)}));return jsx(bt,{options:r,triggerIcon:"rotate_right",tooltipContent:o("imageTransform.tooltip"),onSelect:e,disabled:t,testId:"toolbar-image-transform"})}var Qe=createContext(null);function Oo(){let e=useContext(Qe);if(!e)throw new Error("useEditorToolbar must be used within an <EditorToolbar> component");return e}var le=18;function se({active:e=false,disabled:t=false,title:o,onClick:r,children:n,className:s,ariaLabel:i}){let c=i?.toLowerCase().replace(/\s+/g,"-")||o?.toLowerCase().replace(/\s+/g,"-").replace(/\([^)]*\)/g,"").trim(),d=p=>{p.preventDefault();},a=jsx(V,{variant:"ghost",size:"icon-sm",className:M("text-slate-500 hover:text-slate-900 hover:bg-slate-100/80",e&&"bg-slate-900 text-white hover:bg-slate-800 hover:text-white",t&&"opacity-30 cursor-not-allowed",s),onMouseDown:d,onClick:t?void 0:r,disabled:t,"aria-pressed":e,"aria-label":i||o,"data-testid":c?`toolbar-${c}`:void 0,children:n});return o?jsx(Q,{content:o,children:a}):a}function fe({label:e,children:t,className:o}){return jsx("div",{className:M("flex items-center gap-px px-1.5 border-r border-slate-200/50 last:border-r-0 first:pl-0",o),role:"group","aria-label":e,children:t})}function Ws(){return jsx("div",{className:"w-px h-6 bg-slate-200 mx-1.5",role:"separator"})}function Gn(e){let t=j__default.useContext(Qe);return t?{...t,...Un(e)}:e}function Un(e){let t={};for(let o of Object.keys(e))e[o]!==void 0&&(t[o]=e[o]);return t}function zo(e){let{t}=b$1(),o=Gn(e),{currentFormatting:r={},onFormat:n,onUndo:s,onRedo:i,canUndo:c=false,canRedo:d=false,disabled:a=false,className:p,style:m,enableShortcuts:l=true,editorRef:g,children:u,showFontPicker:f=true,fontFamilies:x,showFontSizePicker:h=true,showTextColorPicker:b$2=true,showHighlightColorPicker:y=true,showAlignmentButtons:C=true,showListButtons:I=true,showLineSpacingPicker:L=true,showStylePicker:ce=true,documentStyles:F,theme:Y,showZoomControl:de=true,zoom:ge,onZoomChange:G,onRefocusEditor:R,imageContext:k,onImageWrapType:_,onImageTransform:ue,onOpenImageProperties:he,tableContext:xe,onTableAction:ye,inline:te=false}=o,Ee=useRef(null),O=useCallback(A=>{!a&&n&&n(A);},[a,n]),qe=useCallback(()=>{!a&&c&&s&&s();},[a,c,s]),oe=useCallback(()=>{!a&&d&&i&&i();},[a,d,i]),ze=useCallback(A=>{!a&&n&&(n({type:"fontFamily",value:A}),requestAnimationFrame(()=>R?.()));},[a,n,R]),w=j__default.useMemo(()=>normalizeFontFamilies(x),[x]),W=useCallback(A=>{!a&&n&&(n({type:"fontSize",value:A}),requestAnimationFrame(()=>R?.()));},[a,n,R]),ve=useCallback(A=>{!a&&n&&(n({type:"textColor",value:A}),requestAnimationFrame(()=>R?.()));},[a,n,R]),St=useCallback(A=>{!a&&n&&(n({type:"highlightColor",value:typeof A=="string"?A:""}),requestAnimationFrame(()=>R?.()));},[a,n,R]),E=useCallback(A=>{!a&&n&&n({type:"alignment",value:A});},[a,n]),Ae=useCallback(()=>{!a&&n&&n("bulletList");},[a,n]),tt=useCallback(()=>{!a&&n&&n("numberedList");},[a,n]),Ne=useCallback(()=>{!a&&n&&n("indent");},[a,n]),pe=useCallback(()=>{!a&&n&&n("outdent");},[a,n]),J=useCallback(A=>{!a&&n&&(n({type:"lineSpacing",value:A}),requestAnimationFrame(()=>R?.()));},[a,n,R]),re=useCallback(A=>{!a&&n&&(n({type:"applyStyle",value:A}),requestAnimationFrame(()=>R?.()));},[a,n,R]),ne=useCallback(A=>{!a&&ye&&(ye(A),requestAnimationFrame(()=>R?.()));},[a,ye,R]);useEffect(()=>{if(!l)return;let A=B=>{let Ye=B.target,$t=g?.current,rr=Ee.current,nr=$t?.contains(Ye),ar=rr?.contains(Ye);if(!nr&&!ar)return;if((B.ctrlKey||B.metaKey)&&!B.altKey)switch(B.key.toLowerCase()){case "b":B.preventDefault(),O("bold");break;case "i":B.preventDefault(),O("italic");break;case "u":B.preventDefault(),O("underline");break;case "=":B.shiftKey?(B.preventDefault(),O("superscript")):(B.preventDefault(),O("subscript"));break;case "l":B.preventDefault(),E("left");break;case "e":B.preventDefault(),E("center");break;case "r":B.preventDefault(),E("right");break;case "j":B.preventDefault(),E("both");break;case "k":B.preventDefault(),O("insertLink");break}};return document.addEventListener("keydown",A),()=>{document.removeEventListener("keydown",A);}},[l,O,E,g]);let tr=useCallback(A=>{let B=A.target;B.tagName==="INPUT"||B.tagName==="TEXTAREA"||B.tagName==="SELECT"||B.tagName==="OPTION"||A.preventDefault();},[]),or=useCallback(A=>{let B=A.target,Ye=document.activeElement;B.tagName==="SELECT"||B.tagName==="OPTION"||Ye?.tagName==="SELECT"||requestAnimationFrame(()=>{R?.();});},[R]);return jsxs("div",{ref:Ee,className:M(!te&&"flex items-center px-2 py-1 bg-[#f1f5f9] rounded-full min-h-[36px] overflow-x-auto mx-2 mb-1",p),style:te?{display:"contents",...m}:m,role:te?void 0:"toolbar","aria-label":te?void 0:t("toolbar.ariaLabel"),"data-testid":te?void 0:"formatting-bar",onMouseDown:te?void 0:tr,onMouseUp:te?void 0:or,children:[jsxs(fe,{label:t("formattingBar.groups.history"),children:[jsx(se,{onClick:qe,disabled:a||!c,title:t("formattingBar.undoShortcut"),ariaLabel:t("formattingBar.undo"),children:jsx(b,{name:"undo",size:le})}),jsx(se,{onClick:oe,disabled:a||!d,title:t("formattingBar.redoShortcut"),ariaLabel:t("formattingBar.redo"),children:jsx(b,{name:"redo",size:le})})]}),de&&jsx(fe,{label:t("formattingBar.groups.zoom"),children:jsx(So,{value:ge,onChange:G,minZoom:.5,maxZoom:2,disabled:a,compact:true,showButtons:false})}),ce&&jsx(fe,{label:t("formattingBar.groups.styles"),children:jsx(Co,{value:r.styleId||"Normal",onChange:re,styles:F,theme:Y,disabled:a,width:120})}),(f||h)&&jsxs(fe,{label:t("formattingBar.groups.font"),children:[f&&jsx(lo,{value:r.fontFamily||"Arial",onChange:ze,fonts:w,disabled:a,width:60,placeholder:"Arial"}),h&&jsx(Jt,{value:r.fontSize!==void 0?halfPointsToPoints(r.fontSize):11,onChange:W,disabled:a,width:42,placeholder:"11"})]}),jsxs(fe,{label:t("formattingBar.groups.textFormatting"),children:[jsx(se,{onClick:()=>O("bold"),active:r.bold,disabled:a,title:t("formattingBar.boldShortcut"),ariaLabel:t("formattingBar.bold"),children:jsx(b,{name:"format_bold",size:le})}),jsx(se,{onClick:()=>O("italic"),active:r.italic,disabled:a,title:t("formattingBar.italicShortcut"),ariaLabel:t("formattingBar.italic"),children:jsx(b,{name:"format_italic",size:le})}),jsx(se,{onClick:()=>O("underline"),active:r.underline,disabled:a,title:t("formattingBar.underlineShortcut"),ariaLabel:t("formattingBar.underline"),children:jsx(b,{name:"format_underlined",size:le})}),jsx(se,{onClick:()=>O("strikethrough"),active:r.strike,disabled:a,title:t("formattingBar.strikethrough"),ariaLabel:t("formattingBar.strikethrough"),children:jsx(b,{name:"strikethrough_s",size:le})}),b$2&&jsx(_e,{mode:"text",value:r.color?.replace(/^#/,""),onChange:ve,theme:Y,disabled:a,title:t("formattingBar.fontColor")}),y&&jsx(_e,{mode:"highlight",value:r.highlight,onChange:St,theme:Y,disabled:a,title:t("formattingBar.highlightColor")}),jsx(se,{onClick:()=>O("insertLink"),disabled:a,title:t("formattingBar.insertLinkShortcut"),ariaLabel:t("formattingBar.insertLink"),children:jsx(b,{name:"link",size:le})})]}),jsxs(fe,{label:t("formattingBar.groups.script"),children:[jsx(se,{onClick:()=>O("superscript"),active:r.superscript,disabled:a,title:t("formattingBar.superscriptShortcut"),ariaLabel:t("formattingBar.superscript"),children:jsx(b,{name:"superscript",size:le})}),jsx(se,{onClick:()=>O("subscript"),active:r.subscript,disabled:a,title:t("formattingBar.subscriptShortcut"),ariaLabel:t("formattingBar.subscript"),children:jsx(b,{name:"subscript",size:le})})]}),C&&jsx(fe,{label:t("formattingBar.groups.alignment"),children:jsx(ho,{value:r.alignment||"left",onChange:E,disabled:a})}),(I||L)&&jsxs(fe,{label:t("formattingBar.groups.listFormatting"),children:[I&&jsx(to,{listState:r.listState||createDefaultListState(),onBulletList:Ae,onNumberedList:tt,onIndent:Ne,onOutdent:pe,disabled:a,showIndentButtons:true,compact:true,hasIndent:(r.indentLeft??0)>0}),L&&jsx(yo,{value:r.lineSpacing,onChange:J,disabled:a})]}),k&&_&&jsxs(fe,{label:t("formattingBar.groups.image"),children:[jsx(_o,{imageContext:k,onChange:_,disabled:a}),ue&&jsx(Fo,{onTransform:ue,disabled:a}),he&&jsx(se,{onClick:he,disabled:a,title:t("formattingBar.imagePropertiesShortcut"),ariaLabel:t("formattingBar.imageProperties"),children:jsx(b,{name:"tune",size:le})})]}),xe?.isInTable&&ye&&jsxs(fe,{label:t("formattingBar.groups.table"),children:[jsx(ko,{onAction:ne,disabled:a}),jsx(Po,{onAction:ne,disabled:a,theme:Y,value:resolveColorToHex(xe?.cellBorderColor,Y)}),jsx(Io,{onAction:ne,disabled:a}),jsx(Lo,{onAction:ne,disabled:a,theme:Y,value:xe?.cellBackgroundColor}),jsx(No,{onAction:ne,disabled:a,tableContext:xe})]}),jsx(se,{onClick:()=>O("clearFormatting"),disabled:a,title:t("formattingBar.clearFormatting"),ariaLabel:t("formattingBar.clearFormatting"),children:jsx(b,{name:"format_clear",size:le})}),u]})}function qn(e){return "type"in e&&e.type==="separator"}var Vo={display:"flex",alignItems:"center",gap:2,padding:"2px 8px",border:"none",background:"transparent",borderRadius:4,cursor:"pointer",fontSize:13,fontWeight:400,color:"var(--doc-text, #374151)",whiteSpace:"nowrap",height:28,lineHeight:"28px"},Yn={...Vo,background:"var(--doc-hover, #f3f4f6)"},$o={display:"flex",alignItems:"center",gap:8,padding:"6px 12px",border:"none",background:"transparent",cursor:"pointer",fontSize:13,color:"var(--doc-text, #374151)",width:"100%",textAlign:"left",whiteSpace:"nowrap"},Xn={...$o,opacity:.4,cursor:"default"},jn={height:1,backgroundColor:"var(--doc-border, #e5e7eb)",margin:"4px 0"},Jn={marginLeft:"auto",fontSize:12,color:"var(--doc-text-muted, #9ca3af)"},Qn={position:"absolute",left:"100%",top:-4,marginLeft:2,backgroundColor:"white",border:"1px solid var(--doc-border, #d1d5db)",borderRadius:6,boxShadow:"0 4px 12px rgba(0, 0, 0, 0.12)",padding:8,zIndex:1001};function et({label:e,items:t,disabled:o,showChevron:r=false}){let[n,s]=useState(false),[i,c]=useState(null),d=useRef(null),a=useRef(null),[p,m]=useState({top:0,left:0}),l=useCallback(()=>{s(false),c(null);},[]);useEffect(()=>{if(!n||!d.current)return;let u=d.current.getBoundingClientRect();m({top:u.bottom+2,left:u.left});},[n]),useEffect(()=>{if(!n)return;function u(h){let b=h.target;d.current&&!d.current.contains(b)&&a.current&&!a.current.contains(b)&&l();}function f(h){h.key==="Escape"&&l();}function x(){l();}return document.addEventListener("mousedown",u),document.addEventListener("keydown",f),window.addEventListener("scroll",x,true),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("keydown",f),window.removeEventListener("scroll",x,true);}},[n,l]);let g=u=>{u.disabled||u.submenuContent||u.onClick&&(u.onClick(),l());};return jsxs("div",{style:{position:"relative"},children:[jsxs("button",{ref:d,type:"button",onClick:()=>!o&&s(!n),onMouseDown:u=>u.preventDefault(),disabled:o,style:n?Yn:Vo,children:[e,r&&jsx(b,{name:"arrow_drop_down",size:16})]}),n&&jsx("div",{ref:a,style:{position:"fixed",top:p.top,left:p.left,backgroundColor:"white",border:"1px solid var(--doc-border, #d1d5db)",borderRadius:6,boxShadow:"0 4px 12px rgba(0, 0, 0, 0.12)",padding:"4px 0",zIndex:1e4,minWidth:200},onMouseDown:u=>u.preventDefault(),children:t.map((u,f)=>{if(qn(u))return jsx("div",{style:jn},`sep-${f}`);let x=u;if(x.customContent)return jsx("div",{onMouseDown:y=>y.preventDefault(),children:x.customContent},x.label);let h=!!x.submenuContent,b$1=i===x.label;return jsxs("div",{style:{position:"relative"},onMouseEnter:()=>h&&c(x.label),onMouseLeave:()=>h&&c(null),children:[jsxs("button",{type:"button",style:x.disabled?Xn:$o,onClick:()=>g(x),onMouseDown:y=>y.preventDefault(),onMouseOver:y=>{x.disabled||(y.currentTarget.style.backgroundColor="var(--doc-hover, #f3f4f6)");},onMouseOut:y=>{y.currentTarget.style.backgroundColor="transparent";},disabled:x.disabled,children:[x.icon&&jsx(b,{name:x.icon,size:18}),jsx("span",{children:x.label}),x.shortcut&&jsx("span",{style:Jn,children:x.shortcut}),h&&jsx("span",{style:{marginLeft:"auto"},children:jsx(b,{name:"keyboard_arrow_right",size:16})})]}),h&&b$1&&jsx("div",{style:Qn,onMouseDown:y=>y.preventDefault(),children:x.submenuContent(l)})]},x.label)})})]})}var Bt=18,ta=2,Uo={width:Bt,height:Bt,backgroundColor:"white",border:"1px solid var(--doc-border, #d1d5db)",borderRadius:2,transition:"background-color 0.1s, border-color 0.1s",cursor:"pointer"},oa={...Uo,backgroundColor:"var(--doc-primary, #3b82f6)",border:"1px solid var(--doc-primary, #3b82f6)"},ra={marginTop:6,fontSize:11,fontWeight:500,color:"var(--doc-text, #374151)",textAlign:"center"};function Zo({onInsert:e,gridRows:t=6,gridColumns:o=6}){let[r,n]=useState(0),[s,i]=useState(0),c=useCallback(()=>{r>0&&s>0&&e(r,s);},[r,s,e]),d=[];for(let p=1;p<=t;p++)for(let m=1;m<=o;m++){let l=p<=r&&m<=s;d.push(jsx("div",{style:l?oa:Uo,onMouseEnter:()=>{n(p),i(m);},onClick:c,role:"gridcell","aria-selected":l},`${p}-${m}`));}let a=r>0&&s>0?`${s} \xD7 ${r}`:"Select size";return jsxs("div",{children:[jsx("div",{style:{display:"grid",gap:ta,gridTemplateColumns:`repeat(${o}, ${Bt}px)`},onMouseLeave:()=>{n(0),i(0);},role:"grid","aria-label":"Table size selector",children:d}),jsx("div",{style:ra,children:a})]})}function la(){return jsxs("svg",{width:"32",height:"40",viewBox:"0 0 32 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M2 0C0.9 0 0 0.9 0 2V38C0 39.1 0.9 40 2 40H30C31.1 40 32 39.1 32 38V10L22 0H2Z",fill:"#cbd5e1"}),jsx("path",{d:"M22 0L32 10H24C22.9 10 22 9.1 22 8V0Z",fill:"#94a3b8"}),jsx("rect",{x:"7",y:"18",width:"18",height:"2",rx:"1",fill:"#fff"}),jsx("rect",{x:"7",y:"23",width:"18",height:"2",rx:"1",fill:"#fff"}),jsx("rect",{x:"7",y:"28",width:"12",height:"2",rx:"1",fill:"#fff"})]})}function Ft({children:e}){return jsx("div",{className:"flex items-center flex-shrink-0",children:e})}function sa(e){return e.replace(/\.docx$/i,"")}function Yo({value:e,onChange:t,placeholder:o,editable:r=true}){let{t:n}=b$1(),s=o??n("titleBar.untitled"),i=sa(e)??"";return r?jsx("input",{type:"text",value:i,onChange:c=>{let d=c.target.value;t?.(d.endsWith(".docx")?d:d+".docx");},placeholder:s,className:"text-base font-normal text-slate-800 bg-transparent border-0 outline-none px-2 py-0 rounded hover:bg-slate-50 focus:bg-white focus:ring-1 focus:ring-slate-300 min-w-[100px] max-w-[300px] truncate leading-tight","aria-label":n("titleBar.documentNameAriaLabel")}):jsx("span",{className:"text-base font-normal text-slate-800 px-2 py-0 min-w-[100px] max-w-[300px] truncate leading-tight",children:i||s})}function Ot({children:e}){return jsx("div",{className:"flex items-center gap-2 ml-auto flex-shrink-0",children:e})}function Kt(){let{t:e}=b$1(),t=Oo(),{disabled:o=false,onFormat:r,onPrint:n,onOpen:s,onSave:i,onPageSetup:c,onInsertImage:d,onInsertTable:a,showTableInsert:p=true,onInsertPageBreak:m,onInsertTOC:l,onRefocusEditor:g}=t,u=useCallback(b=>{!o&&r&&r(b);},[o,r]),f=useCallback((b,y)=>{!o&&a&&(a(b,y),requestAnimationFrame(()=>g?.()));},[o,a,g]),x=!!n||!!c,h=x||s||i;return jsxs("div",{className:"flex items-center",role:"menubar","aria-label":e("titleBar.menuBarAriaLabel"),children:[h&&jsx(et,{label:e("toolbar.file"),disabled:o,items:[...s?[{icon:"file_upload",label:e("toolbar.open"),shortcut:e("toolbar.openShortcut"),onClick:s}]:[],...i?[{icon:"file_download",label:e("toolbar.save"),shortcut:e("toolbar.saveShortcut"),onClick:i}]:[],...(s||i)&&x?[{type:"separator"}]:[],...n?[{icon:"print",label:e("toolbar.print"),shortcut:e("toolbar.printShortcut"),onClick:n}]:[],...c?[{icon:"settings",label:e("toolbar.pageSetup"),onClick:c}]:[]]}),jsx(et,{label:e("toolbar.format"),disabled:o,items:[{icon:"format_textdirection_l_to_r",label:e("toolbar.leftToRight"),onClick:()=>u("setLtr")},{icon:"format_textdirection_r_to_l",label:e("toolbar.rightToLeft"),onClick:()=>u("setRtl")}]}),jsx(et,{label:e("toolbar.insert"),disabled:o,items:[...d?[{icon:"image",label:e("toolbar.image"),onClick:d}]:[],...p&&a?[{icon:"grid_on",label:e("toolbar.table"),submenuContent:b=>jsx(Zo,{onInsert:(y,C)=>{f(y,C),b();}})}]:[],...d||p&&a?[{type:"separator"}]:[],{icon:"page_break",label:e("toolbar.pageBreak"),onClick:m,disabled:!m},{icon:"format_list_numbered",label:e("toolbar.tableOfContents"),onClick:l,disabled:!l}]}),jsx(et,{label:e("toolbar.help"),disabled:o,items:[{label:e("toolbar.reportIssue"),onClick:()=>openReportIssue()}]})]})}function Xo({children:e}){let t=null,o=null,r=[],n=[];Children.forEach(e,i=>{isValidElement(i)&&(i.type===Ft?t=i:i.type===Ot?o=i:i.type===Kt?n.push(i):r.push(i));});let s=useCallback(i=>{let c=i.target;c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.tagName==="SELECT"||c.tagName==="OPTION"||i.preventDefault();},[]);return jsxs("div",{className:"flex items-stretch bg-white pt-2 pb-1",onMouseDown:s,"data-testid":"title-bar",children:[jsx("div",{className:"flex items-center flex-shrink-0 pl-3 pr-1",children:t||jsx(la,{})}),jsxs("div",{className:"flex flex-col justify-center flex-1 min-w-0 py-1",children:[r.length>0&&jsx("div",{className:"flex items-center gap-2 px-1",children:r}),n.length>0&&jsx("div",{className:"flex items-center px-1",children:n})]}),o&&jsx("div",{className:"flex items-center flex-shrink-0 px-3",children:o})]})}function ca({children:e,className:t,style:o,...r}){return jsx(Qe.Provider,{value:r,children:jsx("div",{className:M("flex flex-col bg-white shadow-sm flex-shrink-0",t),style:o,"data-testid":"editor-toolbar",children:e})})}var Ze=ca;Ze.TitleBar=Xo;Ze.Logo=Ft;Ze.DocumentName=Yo;Ze.MenuBar=Kt;Ze.TitleBarRight=Ot;Ze.Toolbar=zo;var Qo=12240,yt=1440,vt=1440,Ct=567,Ht=22,pa="var(--doc-text-muted)",ma="var(--doc-text-subtle)",Jo="rgba(0, 0, 0, 0.02)",fa="#4285f4",ba="#3367d6",ga="#2a56c6",Ke=5;function ha(e,t){return t==="inch"?(e/vt).toFixed(2)+'"':(e/Ct).toFixed(1)+" cm"}function vc({sectionProps:e,zoom:t=1,editable:o=false,onLeftMarginChange:r,onRightMarginChange:n,onFirstLineIndentChange:s,showFirstLineIndent:i=false,firstLineIndent:c=0,hangingIndent:d=false,indentLeft:a=0,indentRight:p=0,onIndentLeftChange:m,onIndentRightChange:l,unit:g="inch",className:u="",style:f,tabStops:x,onTabStopRemove:h}){let{t:b}=b$1(),[y,C]=useState(null),[I,L]=useState(null),[ce,F]=useState(null),[Y,de]=useState(null),ge=useRef(null),G=e?.pageWidth??Qo,R=e?.marginLeft??yt,k=e?.marginRight??yt,_=G-R-k,ue=twipsToPixels(G)*t,he=twipsToPixels(R)*t,xe=twipsToPixels(k)*t,ye=twipsToPixels(a)*t,te=twipsToPixels(p)*t,Ee=d?-c:c,O=twipsToPixels(Ee)*t,qe=he+ye,oe=ue-xe-te,ze=he+ye+O,w=useCallback((E,Ae)=>{o&&(E.preventDefault(),E.stopPropagation(),C(Ae));},[o]),W=useCallback(E=>{if(!y||!ge.current)return;let Ae=ge.current.getBoundingClientRect(),tt=E.clientX-Ae.left;de(tt);let Ne=pixelsToTwips(tt/t);if(y==="leftMargin"){let pe=G-k-720,J=Math.round(Math.max(0,Math.min(Ne,pe)));F(J),r?.(J);}else if(y==="rightMargin"){let pe=G-Ne,J=G-R-720,re=Math.round(Math.max(0,Math.min(pe,J)));F(re),n?.(re);}else if(y==="firstLineIndent"){let pe=R+a,J=Ne-pe,re=_-a-p-720,ne=Math.round(Math.max(-a,Math.min(J,re)));F(ne),s?.(ne);}else if(y==="leftIndent"){let pe=Ne-R,J=_-p-720,re=Math.round(Math.max(0,Math.min(pe,J)));F(re),m?.(re);}else if(y==="rightIndent"){let J=G-k-Ne,re=_-a-720,ne=Math.round(Math.max(0,Math.min(J,re)));F(ne),l?.(ne);}},[y,t,G,R,k,_,a,p,r,n,s,m,l]),ve=useCallback(()=>{C(null),F(null),de(null);},[]);useEffect(()=>{if(y)return document.addEventListener("mousemove",W),document.addEventListener("mouseup",ve),()=>{document.removeEventListener("mousemove",W),document.removeEventListener("mouseup",ve);}},[y,W,ve]);let St=Sa(G,t,g);return jsxs("div",{ref:ge,className:`docx-horizontal-ruler ${u}`,style:{position:"relative",width:formatPx(ue),height:Ht,backgroundColor:"transparent",overflow:"visible",userSelect:"none",cursor:y?"ew-resize":"default",...f},role:"slider","aria-label":b("ruler.horizontal"),"aria-valuemin":0,"aria-valuemax":G,children:[jsx("div",{style:{position:"absolute",top:0,left:0,width:formatPx(he),height:Ht,backgroundColor:Jo,borderRight:"1px solid rgba(0,0,0,0.06)",cursor:o?"ew-resize":"default",zIndex:1},onMouseDown:o&&r?E=>w(E,"leftMargin"):void 0}),jsx("div",{style:{position:"absolute",top:0,right:0,width:formatPx(xe),height:Ht,backgroundColor:Jo,borderLeft:"1px solid rgba(0,0,0,0.06)",cursor:o?"ew-resize":"default",zIndex:1},onMouseDown:o&&n?E=>w(E,"rightMargin"):void 0}),jsx("div",{style:{position:"absolute",inset:0,pointerEvents:"none"},children:St.map((E,Ae)=>jsx(xa,{tick:E},Ae))}),i&&jsx(Wt,{direction:"down",positionPx:ze,editable:o,isDragging:y==="firstLineIndent",isHovered:I==="firstLineIndent",onMouseEnter:()=>L("firstLineIndent"),onMouseLeave:()=>L(null),onMouseDown:E=>w(E,"firstLineIndent"),label:b("ruler.firstLineIndent")}),o&&m&&jsx(Wt,{direction:"up",positionPx:qe,editable:o,isDragging:y==="leftIndent",isHovered:I==="leftIndent",onMouseEnter:()=>L("leftIndent"),onMouseLeave:()=>L(null),onMouseDown:E=>w(E,"leftIndent"),label:b("ruler.leftIndent")}),o&&l&&jsx(Wt,{direction:"down",positionPx:oe,editable:o,isDragging:y==="rightIndent",isHovered:I==="rightIndent",onMouseEnter:()=>L("rightIndent"),onMouseLeave:()=>L(null),onMouseDown:E=>w(E,"rightIndent"),label:b("ruler.rightIndent")}),x?.map(E=>jsx(Ca,{tabStop:E,positionPx:twipsToPixels(E.position)*t,onDoubleClick:()=>h?.(E.position)},E.position)),y&&ce!==null&&Y!==null&&jsx(ya,{value:ha(ce,g),positionPx:Y})]})}function xa({tick:e}){return jsxs(Fragment,{children:[jsx("div",{style:{position:"absolute",left:formatPx(e.position),bottom:0,width:1,height:e.height,backgroundColor:ma}}),e.label&&jsx("div",{style:{position:"absolute",left:formatPx(e.position),top:3,transform:"translateX(-50%)",fontSize:"9px",color:pa,fontFamily:"sans-serif",whiteSpace:"nowrap"},children:e.label})]})}function Wt({direction:e,positionPx:t,editable:o,isDragging:r,isHovered:n,onMouseEnter:s,onMouseLeave:i,onMouseDown:c,label:d}){let a=r?ga:n?ba:fa,p=Math.round(Ke*1.6),m={position:"absolute",left:formatPx(t-Ke),width:Ke*2,height:p+2,cursor:o?"ew-resize":"default",zIndex:r?10:4,...e==="down"?{top:0}:{bottom:0}},l=e==="down"?{position:"absolute",top:1,left:0,width:0,height:0,borderLeft:`${Ke}px solid transparent`,borderRight:`${Ke}px solid transparent`,borderTop:`${p}px solid ${a}`,transition:"border-top-color 0.1s"}:{position:"absolute",bottom:1,left:0,width:0,height:0,borderLeft:`${Ke}px solid transparent`,borderRight:`${Ke}px solid transparent`,borderBottom:`${p}px solid ${a}`,transition:"border-bottom-color 0.1s"};return jsx("div",{className:"docx-ruler-indent",style:m,onMouseEnter:s,onMouseLeave:i,onMouseDown:c,role:"slider","aria-label":d,"aria-orientation":"horizontal",tabIndex:o?0:-1,children:jsx("div",{style:l})})}function ya({value:e,positionPx:t}){return jsx("div",{style:{position:"absolute",left:formatPx(t),top:-22,transform:"translateX(-50%)",backgroundColor:"#333",color:"#fff",fontSize:"10px",fontFamily:"sans-serif",padding:"2px 6px",borderRadius:3,whiteSpace:"nowrap",pointerEvents:"none",zIndex:20},children:e})}var va={left:"L",center:"C",right:"R",decimal:"D",bar:"|"};function Ca({tabStop:e,positionPx:t,onDoubleClick:o}){return jsx("div",{style:{position:"absolute",left:formatPx(t-5),bottom:0,width:10,height:12,display:"flex",alignItems:"center",justifyContent:"center",fontSize:8,fontWeight:700,color:"#555",cursor:"pointer",userSelect:"none"},onDoubleClick:r=>{r.stopPropagation(),o();},title:`${e.alignment} tab at ${(e.position/1440).toFixed(2)}"`,children:va[e.alignment]||"L"})}function Sa(e,t,o){let r=[];if(o==="inch"){let n=vt/8,s=Math.ceil(e/n);for(let i=0;i<=s;i++){let c=i*n;if(c>e)break;let d=twipsToPixels(c)*t;i%8===0?r.push({position:d,height:10,label:i/8>0?String(i/8):void 0}):i%4===0?r.push({position:d,height:6}):i%2===0?r.push({position:d,height:4}):r.push({position:d,height:2});}}else {let n=Ct/10,s=Math.ceil(e/n);for(let i=0;i<=s;i++){let c=i*n;if(c>e)break;let d=twipsToPixels(c)*t;i%10===0?r.push({position:d,height:10,label:i/10>0?String(i/10):void 0}):i%5===0?r.push({position:d,height:6}):r.push({position:d,height:3});}}return r}function Cc(e,t,o,r){let n=pixelsToTwips(e/r);return t==="left"?Math.max(0,n):Math.max(0,pixelsToTwips(o/r)-n)}function Sc(e,t=1){let o=e?.pageWidth??Qo,r=e?.marginLeft??yt,n=e?.marginRight??yt,s=twipsToPixels(o)*t,i=twipsToPixels(r)*t,c=twipsToPixels(n)*t;return {width:s,leftMargin:i,rightMargin:c,contentWidth:s-i-c}}function wc(e,t){return t==="inch"?(e/vt).toFixed(2)+'"':(e/Ct).toFixed(1)+" cm"}function Tc(e,t){let o=parseFloat(e.replace(/[^\d.]/g,""));return isNaN(o)?null:Math.round(o*(t==="inch"?vt:Ct))}
2
- export{se as A,fe as B,Ws as C,zo as D,Ze as E,vc as F,Cc as G,Sc as H,wc as I,Tc as J,M as a,V as b,Jt as c,to as e,ro as h,di as i,ui as j,pi as k,mi as l,fi as m,bi as n,Q as o,lo as p,_e as q,ho as r,yo as s,Co as t,So as u,ko as v,Po as w,Io as x,Lo as y,No as z};
@@ -1 +0,0 @@
1
- import {d,g,h,m,e,l,j,k,i}from'./chunk-TN5C2ZYV.mjs';import {b}from'./chunk-BMBP5UFA.mjs';import {useRef,useCallback,useMemo,useState,useEffect}from'react';import {TextSelection}from'prosemirror-state';import {findBodyPmSpans}from'@eigenpal/docx-editor-core/layout-bridge';import {findVerticalScrollParent}from'@eigenpal/docx-editor-core/utils/findVerticalScrollParent';import {extractTrackedChanges}from'@eigenpal/docx-editor-core/prosemirror/utils/extractTrackedChanges';export{extractTrackedChanges as c}from'@eigenpal/docx-editor-core/prosemirror/utils/extractTrackedChanges';import {TableSelectionManager,getTableFromDocument,updateTableInDocument,deleteTableFromDocument}from'@eigenpal/docx-editor-core';export{TABLE_DATA_ATTRIBUTES as f}from'@eigenpal/docx-editor-core';var W=".layout-page-content .layout-line";function at(o){let a=findVerticalScrollParent(o);if(!a)return;let u=o.getBoundingClientRect(),m=a.getBoundingClientRect(),t=40;u.bottom>m.bottom-t?a.scrollTop+=u.bottom-m.bottom+t:u.top<m.top+t&&(a.scrollTop-=m.top-u.top+t);}function xt({pagesContainerRef:o}){let a=useRef(null),u=useRef(-1),m=useCallback(b=>{if(!o.current)return null;let i=findBodyPmSpans(o.current);for(let d of i){let l=Number(d.dataset.pmStart),r=Number(d.dataset.pmEnd);if(d.classList.contains("layout-run-tab")){if(b>=l&&b<r)return d.getBoundingClientRect().left;continue}if(b>=l&&b<=r&&d.firstChild?.nodeType===Node.TEXT_NODE){let n=d.firstChild,e=Math.min(b-l,n.length),s=d.ownerDocument;if(!s)continue;let c=s.createRange();return c.setStart(n,e),c.setEnd(n,e),c.getBoundingClientRect().left}}let f=o.current.querySelectorAll(".layout-empty-run");for(let d of Array.from(f)){let l=d.closest(".layout-paragraph");if(!l)continue;let r=Number(l.dataset.pmStart),n=Number(l.dataset.pmEnd);if(b>=r&&b<=n)return d.getBoundingClientRect().left}return null},[o]),t=useCallback(b=>{if(!o.current)return null;let i=o.current.querySelectorAll(W);for(let f of Array.from(i)){let d=f,l=d.querySelectorAll("span[data-pm-start][data-pm-end]");for(let r of Array.from(l)){let n=r,e=Number(n.dataset.pmStart),s=Number(n.dataset.pmEnd);if(b>=e&&b<=s)return d}}for(let f of Array.from(i)){let d=f,l=d.closest(".layout-paragraph");if(!l)continue;let r=Number(l.dataset.pmStart),n=Number(l.dataset.pmEnd);if(b>=r&&b<=n&&l.querySelector(".layout-line")===d)return d}return null},[o]),S=useCallback((b,i)=>{let f=b.querySelectorAll("span[data-pm-start][data-pm-end]");if(f.length===0){let n=b.closest(".layout-paragraph");return n?.dataset.pmStart?Number(n.dataset.pmStart)+1:null}for(let n of Array.from(f)){let e=n,s=e.getBoundingClientRect(),c=Number(e.dataset.pmStart),y=Number(e.dataset.pmEnd);if(e.classList.contains("layout-run-tab")){if(i>=s.left&&i<=s.right){let E=(s.left+s.right)/2;return i<E?c:y}continue}if(i>=s.left&&i<=s.right){let E=e.firstChild;if(!E||E.nodeType!==Node.TEXT_NODE)return c;let p=E,L=e.ownerDocument;if(!L)return c;let k=0,M=p.length;for(;k<M;){let w=Math.floor((k+M)/2),A=L.createRange();A.setStart(p,w),A.setEnd(p,w),i<A.getBoundingClientRect().left?M=w:k=w+1;}if(k>0&&k<=p.length){let w=L.createRange();w.setStart(p,k-1),w.setEnd(p,k-1);let A=w.getBoundingClientRect().left;w.setStart(p,Math.min(k,p.length)),w.setEnd(p,Math.min(k,p.length));let h=w.getBoundingClientRect().left;if(Math.abs(i-A)<Math.abs(i-h))return c+(k-1)}return c+Math.min(k,y-c)}}let d=null,l=1/0;for(let n of Array.from(f)){let e=n,s=e.getBoundingClientRect(),c=i<s.left?s.left-i:i-s.right;c<l&&(l=c,d=e);}if(!d)return null;let r=d.getBoundingClientRect();return i<r.left?Number(d.dataset.pmStart):Number(d.dataset.pmEnd)},[]),x=useCallback((b,i)=>{if(i.key!=="ArrowUp"&&i.key!=="ArrowDown")return (["ArrowLeft","ArrowRight","Home","End"].includes(i.key)||i.key.length===1&&!i.ctrlKey&&!i.metaKey)&&(a.current=null,u.current=-1),false;if(i.ctrlKey||i.metaKey)return a.current=null,u.current=-1,false;if(!o.current)return false;let f=Array.from(o.current.querySelectorAll(W));if(f.length===0)return false;let{from:d,anchor:l}=b.state.selection;if(a.current===null){let p=m(d);if(p===null)return false;a.current=p;}let r;if(u.current>=0&&u.current<f.length)r=u.current;else {let p=t(d);if(!p||(r=f.indexOf(p),r===-1))return false}let n=i.key==="ArrowUp"?r-1:r+1;if(n<0||n>=f.length)return u.current=-1,false;let e=f[n],s=S(e,a.current);if(s===null)return false;u.current=n;let{state:c,dispatch:y}=b,E=Math.max(0,Math.min(s,c.doc.content.size));try{let p=i.shiftKey?TextSelection.create(c.doc,l,E):TextSelection.create(c.doc,E);y(c.tr.setSelection(p));}catch{let p=c.doc.resolve(E),L=i.shiftKey?TextSelection.between(c.doc.resolve(l),p):TextSelection.near(p);y(c.tr.setSelection(L));}return at(e),true},[o,m,t,S]);return {stickyXRef:a,lastVisualLineIndexRef:u,getCaretClientX:m,findLineElementAtPosition:t,findPositionOnLineAtClientX:S,handlePMKeyDown:x}}var R=40,q=12;function wt({pagesContainerRef:o,onScrollExtendSelection:a}){let u=useRef(null),m=useRef({x:0,y:0}),t=useRef(false),S=useRef(null),x=useCallback(()=>{if(S.current)return S.current;let l=o.current;return l?(S.current=findVerticalScrollParent(l),S.current):null},[o]),b=useCallback(()=>{t.current=false,u.current!==null&&(cancelAnimationFrame(u.current),u.current=null);},[]),i=useCallback(()=>{if(!t.current)return;let l=x();if(!l)return;let r=l.getBoundingClientRect(),{x:n,y:e}=m.current,s=0;if(e<r.top+R){let c=Math.max(0,r.top+R-e);s=-Math.min(q,c/R*q);}else if(e>r.bottom-R){let c=Math.max(0,e-(r.bottom-R));s=Math.min(q,c/R*q);}s!==0&&(l.scrollTop+=s,a(n,e)),u.current=requestAnimationFrame(i);},[x,a]),f=useCallback(()=>{t.current||(t.current=true,u.current=requestAnimationFrame(i));},[i]);return {updateMousePosition:useCallback((l,r)=>{if(m.current={x:l,y:r},!t.current){let n=x();if(!n)return;let e=n.getBoundingClientRect();(r<e.top+R||r>e.bottom-R)&&f();}},[x,f]),stopAutoScroll:b}}function Lt(o){return useMemo(()=>extractTrackedChanges(o),[o])}function Nt({document:o,onChange:a,onSelectionChange:u}){let m$1=useMemo(()=>new TableSelectionManager,[]),[t,S]=useState({context:null,table:null,tableIndex:null,rowIndex:null,columnIndex:null}),x=useCallback((r,n,e)=>{if(!o)return;let s=getTableFromDocument(o,r);if(!s){m$1.clearSelection(),S({context:null,table:null,tableIndex:null,rowIndex:null,columnIndex:null});return}m$1.selectCell({tableIndex:r,rowIndex:n,columnIndex:e});let y=d(s,{tableIndex:r,rowIndex:n,columnIndex:e});S({context:y,table:s,tableIndex:r,rowIndex:n,columnIndex:e}),u?.(y);},[o,m$1,u]),b=useCallback(()=>{m$1.clearSelection(),S({context:null,table:null,tableIndex:null,rowIndex:null,columnIndex:null}),u?.(null);},[m$1,u]),i$1=useCallback(()=>!t.table||t.rowIndex===null||t.columnIndex===null?null:g(t.table,t.rowIndex,t.columnIndex),[t.columnIndex,t.rowIndex,t.table]),f=useCallback((r,n)=>{if(!o||!t.table||t.tableIndex===null||t.rowIndex===null||t.columnIndex===null)return;let e=h(t.table,t.rowIndex,t.columnIndex,r,n);if(e===t.table)return;let s=updateTableInDocument(o,t.tableIndex,e);a?.(s),s&&x(t.tableIndex,t.rowIndex,t.columnIndex);},[o,x,a,t.columnIndex,t.rowIndex,t.table,t.tableIndex]),d$1=useCallback(r=>{if(!o||!t.context||t.tableIndex===null||t.rowIndex===null||t.columnIndex===null)return;let n=t.table;if(!n)return;let e$1=null,s=null,c=t.rowIndex,y=t.columnIndex;switch(r){case "addRowAbove":e$1=i(n,t.rowIndex,"before"),c=t.rowIndex+1;break;case "addRowBelow":e$1=i(n,t.rowIndex,"after");break;case "addColumnLeft":e$1=k(n,t.columnIndex,"before"),y=t.columnIndex+1;break;case "addColumnRight":e$1=k(n,t.columnIndex,"after");break;case "deleteRow":n.rows.length>1&&(e$1=j(n,t.rowIndex),c>=e$1.rows.length&&(c=e$1.rows.length-1));break;case "deleteColumn":{if(e(n)>1){e$1=l(n,t.columnIndex);let p=e(e$1);y>=p&&(y=p-1);}break}case "mergeCells":t.context.selection.selectedCells&&(e$1=m(n,t.context.selection));break;case "splitCell":break;case "deleteTable":s=deleteTableFromDocument(o,t.tableIndex),b(),a?.(s);return}e$1&&(s=updateTableInDocument(o,t.tableIndex,e$1),a?.(s),s&&x(t.tableIndex,c,y));},[o,t,a,b,x]),l$1=useCallback((r,n,e)=>m$1.isCellSelected(r,n,e),[m$1,t]);return {state:t,handleCellClick:x,handleAction:d$1,getSplitCellConfig:i$1,applySplitCell:f,clearSelection:b,isCellSelected:l$1,tableContext:t.context}}function nt(o,a){return JSON.stringify(o)===JSON.stringify(a)}function rt(o,a={}){let{maxEntries:u=100,groupingInterval:m=500,enableKeyboardShortcuts:t=true,isEqual:S=nt,onUndo:x,onRedo:b,containerRef:i}=a,[f,d]=useState(o),[l,r]=useState([]),[n,e]=useState([]),s=useRef(0),c=useRef(false),y=useCallback((h,g)=>{if(S(f,h))return;if(c.current){d(h);return}let T=Date.now();T-s.current<m&&l.length>0?r(B=>{let D=[...B];return D[D.length-1]={state:f,timestamp:T,description:g||D[D.length-1].description},D}):r(B=>{let D={state:f,timestamp:T,description:g},O=[...B,D];return O.length>u?O.slice(O.length-u):O}),e([]),d(h),s.current=T;},[f,S,m,u,l.length]),E=useCallback(()=>{if(l.length===0)return;c.current=true;let h=l[l.length-1];return r(g=>g.slice(0,-1)),e(g=>[...g,{state:f,timestamp:Date.now()}]),d(h.state),setTimeout(()=>{c.current=false;},0),x?.(h.state),h.state},[l,f,x]),p=useCallback(()=>{if(n.length===0)return;c.current=true;let h=n[n.length-1];return e(g=>g.slice(0,-1)),r(g=>[...g,{state:f,timestamp:Date.now()}]),d(h.state),setTimeout(()=>{c.current=false;},0),b?.(h.state),h.state},[n,f,b]),L=useCallback(()=>{r([]),e([]);},[]),k=useCallback(h=>{d(h??o),r([]),e([]),s.current=0;},[o]),M=useCallback(()=>[...l],[l]),w=useCallback(()=>[...n],[n]),A=useCallback(h=>{d(g=>h(g)),r(g=>g.map(T=>({...T,state:h(T.state)}))),e(g=>g.map(T=>({...T,state:h(T.state)})));},[]);return useEffect(()=>{if(!t)return;let h=T=>{if((T.ctrlKey||T.metaKey)&&T.key==="z"&&!T.shiftKey){T.preventDefault(),E();return}if((T.ctrlKey||T.metaKey)&&T.key==="y"||(T.ctrlKey||T.metaKey)&&T.key==="z"&&T.shiftKey){T.preventDefault(),p();return}},g=i?.current||document;return g.addEventListener("keydown",h),()=>{g.removeEventListener("keydown",h);}},[t,E,p,i]),{state:f,canUndo:l.length>0,canRedo:n.length>0,undoCount:l.length,redoCount:n.length,push:y,undo:E,redo:p,clear:L,reset:k,getUndoStack:M,getRedoStack:w,transformAll:A}}function Ft(o,a={}){let u=rt(o,a);return useEffect(()=>{u.push(o);},[o]),u}function _t(o,a={}){let u=useCallback((m,t)=>!(m?.package?.document!==t?.package?.document&&JSON.stringify(m?.package?.document)!==JSON.stringify(t?.package?.document)||m?.package?.headers!==t?.package?.headers||m?.package?.footers!==t?.package?.footers),[]);return rt(o,{...a,isEqual:u})}var tt=class{constructor(a,u={}){b(this,"undoStack",[]);b(this,"redoStack",[]);b(this,"currentState");b(this,"maxEntries");b(this,"groupingInterval");b(this,"lastPushTime",0);b(this,"isEqual");this.currentState=a,this.maxEntries=u.maxEntries??100,this.groupingInterval=u.groupingInterval??500,this.isEqual=u.isEqual??nt;}get state(){return this.currentState}get canUndo(){return this.undoStack.length>0}get canRedo(){return this.redoStack.length>0}push(a,u){if(this.isEqual(this.currentState,a))return;let m=Date.now();m-this.lastPushTime<this.groupingInterval&&this.undoStack.length>0?this.undoStack[this.undoStack.length-1].timestamp=m:(this.undoStack.push({state:this.currentState,timestamp:m,description:u}),this.undoStack.length>this.maxEntries&&(this.undoStack=this.undoStack.slice(-this.maxEntries))),this.redoStack=[],this.currentState=a,this.lastPushTime=m;}undo(){if(this.undoStack.length===0)return;let a=this.undoStack.pop();return this.redoStack.push({state:this.currentState,timestamp:Date.now()}),this.currentState=a.state,a.state}redo(){if(this.redoStack.length===0)return;let a=this.redoStack.pop();return this.undoStack.push({state:this.currentState,timestamp:Date.now()}),this.currentState=a.state,a.state}clear(){this.undoStack=[],this.redoStack=[];}reset(a){this.currentState=a??this.currentState,this.undoStack=[],this.redoStack=[],this.lastPushTime=0;}};export{xt as a,wt as b,Lt as d,Nt as e,rt as g,Ft as h,_t as i,tt as j};