@sqren/docx-editor-react 1.7.0-fork.0 → 1.7.0-fork.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/KeyboardShortcutsDialog-B-h3NAat.d.mts +3 -3
- package/dist/KeyboardShortcutsDialog-B-h3NAat.d.ts +3 -3
- package/dist/WatermarkDialog-KRL7WMIS.mjs +1 -1
- package/dist/WatermarkDialog-XGLAH3TK.js +1 -1
- package/dist/chunk-4Y4JFAPY.mjs +1 -1
- package/dist/chunk-74OM4KEH.js +1 -1
- package/dist/chunk-7VWJSV3T.js +1 -1
- package/dist/chunk-BABMU5KA.mjs +1 -1
- package/dist/chunk-BZO4G5M6.js +1 -1
- package/dist/chunk-GNIO6SOS.js +1 -1
- package/dist/chunk-IVFYCMAM.mjs +1 -1
- package/dist/chunk-L4MDZW2J.js +1 -1
- package/dist/chunk-LNONBJQM.js +1 -1
- package/dist/chunk-OHNO4NRQ.mjs +1 -1
- package/dist/chunk-P5ZOUQIK.mjs +1 -1
- package/dist/chunk-P6METJHI.mjs +1 -1
- package/dist/chunk-WFGAQC2B.mjs +1 -1
- package/dist/chunk-WNWY6WX7.js +1 -1
- package/dist/chunk-YY52FSUR.js +1 -1
- package/dist/chunk-ZFZJRL2R.mjs +1 -1
- package/dist/dialogs.d.mts +7 -7
- package/dist/dialogs.d.ts +7 -7
- package/dist/hooks.d.mts +9 -9
- package/dist/hooks.d.ts +9 -9
- package/dist/hooks.js +1 -1
- package/dist/hooks.mjs +1 -1
- package/dist/index.d.mts +27 -27
- package/dist/index.d.ts +27 -27
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/plugin-api.d.mts +8 -8
- package/dist/plugin-api.d.ts +8 -8
- package/dist/plugin-api.js +1 -1
- package/dist/plugin-api.mjs +1 -1
- package/dist/styles.d.mts +2 -2
- package/dist/styles.d.ts +2 -2
- package/dist/types-D35gNE-_.d.mts +1 -1
- package/dist/types-D35gNE-_.d.ts +1 -1
- package/dist/ui.d.mts +12 -12
- package/dist/ui.d.ts +12 -12
- package/dist/ui.js +1 -1
- package/dist/ui.mjs +1 -1
- package/dist/useFindReplace-Bc2ubEeV.d.mts +2 -2
- package/dist/useFindReplace-Bc2ubEeV.d.ts +2 -2
- package/package.json +4 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React__default, { CSSProperties } from 'react';
|
|
2
|
-
import { FindOptions, FindResult, FindMatch } from '@
|
|
3
|
-
import { ParsedClipboardContent } from '@
|
|
4
|
-
import { TranslationKey } from '@
|
|
2
|
+
import { FindOptions, FindResult, FindMatch } from '@sqren/docx-editor-core/utils/findReplace';
|
|
3
|
+
import { ParsedClipboardContent } from '@sqren/docx-editor-core/utils';
|
|
4
|
+
import { TranslationKey } from '@sqren/docx-editor-i18n';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Find and Replace Dialog Component
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React__default, { CSSProperties } from 'react';
|
|
2
|
-
import { FindOptions, FindResult, FindMatch } from '@
|
|
3
|
-
import { ParsedClipboardContent } from '@
|
|
4
|
-
import { TranslationKey } from '@
|
|
2
|
+
import { FindOptions, FindResult, FindMatch } from '@sqren/docx-editor-core/utils/findReplace';
|
|
3
|
+
import { ParsedClipboardContent } from '@sqren/docx-editor-core/utils';
|
|
4
|
+
import { TranslationKey } from '@sqren/docx-editor-i18n';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Find and Replace Dialog Component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {b}from'./chunk-ZFZJRL2R.mjs';import'./chunk-BMBP5UFA.mjs';import {useState,useEffect,useCallback}from'react';import {DEFAULT_WATERMARK_PRESETS,pictureWatermarkDisplayEmu}from'@
|
|
1
|
+
import {b}from'./chunk-ZFZJRL2R.mjs';import'./chunk-BMBP5UFA.mjs';import {useState,useEffect,useCallback}from'react';import {DEFAULT_WATERMARK_PRESETS,pictureWatermarkDisplayEmu}from'@sqren/docx-editor-core/types/document';import {jsx,jsxs}from'react/jsx-runtime';var te=["Calibri","Arial","Times New Roman","Georgia","Verdana","Courier New"],ae={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"var(--doc-overlay)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4},oe={backgroundColor:"var(--doc-surface)",borderRadius:8,boxShadow:"0 4px 20px var(--doc-shadow)",minWidth:400,maxWidth:480,width:"100%",margin:20},ie={padding:"16px 20px 12px",borderBottom:"1px solid var(--doc-border)",fontSize:16,fontWeight:600,color:"var(--doc-text)"},ne={padding:"16px 20px",display:"flex",flexDirection:"column",gap:14},G={display:"flex",flexDirection:"column",gap:10},r={display:"flex",alignItems:"center",gap:12},N={display:"flex",alignItems:"center",gap:8},d={width:80,fontSize:13,color:"var(--doc-text-muted)"},s={display:"flex",alignItems:"center",gap:6,fontSize:13,color:"var(--doc-text)"},g={flex:1,padding:"6px 8px",border:"1px solid var(--doc-border)",borderRadius:4,fontSize:13},le={display:"flex",justifyContent:"flex-end",gap:8,padding:"12px 20px 16px",borderTop:"1px solid var(--doc-border)"},q={padding:"6px 16px",fontSize:13,border:"1px solid var(--doc-border)",borderRadius:4,cursor:"pointer"},re={...q,backgroundColor:"var(--doc-primary)",color:"var(--doc-on-primary)",borderColor:"var(--doc-primary)"},se={...q};function me({isOpen:k,onClose:u,onApply:y,current:i,presets:v=DEFAULT_WATERMARK_PRESETS}){let{t:o}=b(),[l,p]=useState("none"),[m,S]=useState(v[0]??"CONFIDENTIAL"),[C,A]=useState("Calibri"),[h,I]=useState(true),[w,F]=useState(54),[E,B]=useState("#C0C0C0"),[f,R]=useState("diagonal"),[P,M]=useState(true),[c,O]=useState(void 0),[U,z]=useState(void 0),[D,_]=useState(100),[L,H]=useState(true);useEffect(()=>{k&&(i?.kind==="text"?(p("text"),S(i.text),A(i.font||"Calibri"),I(i.fontSize===void 0),i.fontSize!==void 0&&F(i.fontSize),B(i.color||"#C0C0C0"),R(i.layout),M(i.semitransparent)):i?.kind==="picture"?(p("picture"),O(i.dataUrl),z(i.widthEmu!==void 0&&i.heightEmu!==void 0?{widthEmu:i.widthEmu,heightEmu:i.heightEmu}:void 0),_(Math.round((i.scale||1)*100)),H(i.washout)):p("none"));},[k,i]);let J=useCallback(t=>{let Y=t.target.files?.[0];if(!Y)return;let x=new FileReader;x.onload=()=>{let W=typeof x.result=="string"?x.result:void 0;if(O(W),z(void 0),!W)return;let b=new Image;b.onload=()=>z(pictureWatermarkDisplayEmu(b.naturalWidth,b.naturalHeight)),b.src=W;},x.readAsDataURL(Y);},[]),Q=useCallback(()=>{if(l==="none")y(null);else if(l==="text")y({kind:"text",text:m,font:C,color:E,semitransparent:P,layout:f,fontSize:h?void 0:w});else {if(!c)return;y({kind:"picture",dataUrl:c,scale:D/100,washout:L,...U??{}});}u();},[l,m,C,E,P,f,h,w,c,U,D,L,y,u]);if(!k)return null;let T=t=>t.stopPropagation(),X=t=>{t.key==="Escape"&&u();},K=l==="picture"&&!c;return jsx("div",{style:ae,onClick:u,onMouseDown:T,onKeyDown:X,children:jsxs("div",{style:oe,onClick:T,onMouseDown:T,role:"dialog","aria-label":o("dialogs.watermark.title"),children:[jsx("div",{style:ie,children:o("dialogs.watermark.title")}),jsxs("div",{style:ne,children:[jsxs("div",{style:N,children:[jsx("input",{type:"radio",id:"wm-none",checked:l==="none",onChange:()=>p("none")}),jsx("label",{htmlFor:"wm-none",style:s,children:o("dialogs.watermark.noWatermark")})]}),jsxs("div",{style:N,children:[jsx("input",{type:"radio",id:"wm-picture",checked:l==="picture",onChange:()=>p("picture")}),jsx("label",{htmlFor:"wm-picture",style:s,children:o("dialogs.watermark.picture")})]}),l==="picture"&&jsxs("div",{style:G,children:[jsx("div",{style:r,children:jsx("input",{type:"file",accept:"image/*",onChange:J})}),c&&jsx("div",{style:r,children:jsx("img",{src:c,alt:"",style:{maxHeight:"60px",maxWidth:"120px"}})}),jsxs("div",{style:r,children:[jsx("span",{style:d,children:o("dialogs.watermark.scale")}),jsx("input",{type:"number",min:10,max:500,value:D,onChange:t=>_(Number(t.target.value)),style:{...g,flex:"unset",width:80}}),jsx("span",{style:{fontSize:11,color:"var(--doc-text-muted)"},children:"%"})]}),jsxs("label",{style:s,children:[jsx("input",{type:"checkbox",checked:L,onChange:t=>H(t.target.checked)}),o("dialogs.watermark.washout")]})]}),jsxs("div",{style:N,children:[jsx("input",{type:"radio",id:"wm-text",checked:l==="text",onChange:()=>p("text")}),jsx("label",{htmlFor:"wm-text",style:s,children:o("dialogs.watermark.text")})]}),l==="text"&&jsxs("div",{style:G,children:[v.length>0&&jsxs("div",{style:r,children:[jsx("span",{style:d,children:o("dialogs.watermark.presetLabel")}),jsxs("select",{style:g,value:v.includes(m)?m:"",onChange:t=>t.target.value&&S(t.target.value),children:[jsx("option",{value:"",children:"\u2014"}),v.map(t=>jsx("option",{value:t,children:t},t))]})]}),jsxs("div",{style:r,children:[jsx("span",{style:d,children:o("dialogs.watermark.textLabel")}),jsx("input",{style:g,value:m,onChange:t=>S(t.target.value)})]}),jsxs("div",{style:r,children:[jsx("span",{style:d,children:o("dialogs.watermark.fontLabel")}),jsx("select",{style:g,value:C,onChange:t=>A(t.target.value),children:te.map(t=>jsx("option",{value:t,children:t},t))})]}),jsxs("div",{style:r,children:[jsx("span",{style:d,children:o("dialogs.watermark.sizeLabel")}),jsxs("label",{style:s,children:[jsx("input",{type:"checkbox",checked:h,onChange:t=>I(t.target.checked)}),o("dialogs.watermark.sizeAuto")]}),!h&&jsx("input",{type:"number",min:8,max:200,value:w,onChange:t=>F(Number(t.target.value)),style:{...g,flex:"unset",width:70}})]}),jsxs("div",{style:r,children:[jsx("span",{style:d,children:o("dialogs.watermark.colorLabel")}),jsx("input",{type:"color",value:E,onChange:t=>B(t.target.value)})]}),jsxs("div",{style:r,children:[jsx("span",{style:d,children:o("dialogs.watermark.layoutLabel")}),jsxs("label",{style:s,children:[jsx("input",{type:"radio",name:"wm-layout",checked:f==="diagonal",onChange:()=>R("diagonal")}),o("dialogs.watermark.diagonal")]}),jsxs("label",{style:s,children:[jsx("input",{type:"radio",name:"wm-layout",checked:f==="horizontal",onChange:()=>R("horizontal")}),o("dialogs.watermark.horizontal")]})]}),jsxs("label",{style:s,children:[jsx("input",{type:"checkbox",checked:P,onChange:t=>M(t.target.checked)}),o("dialogs.watermark.semitransparent")]})]})]}),jsxs("div",{style:le,children:[jsx("button",{style:se,onClick:u,children:o("dialogs.watermark.cancelButton")}),jsx("button",{style:{...re,...K?{opacity:.5,cursor:"not-allowed"}:{}},onClick:Q,disabled:K,children:o("dialogs.watermark.applyButton")})]})]})})}export{me as WatermarkDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var chunkGNIO6SOS_js=require('./chunk-GNIO6SOS.js');require('./chunk-BJ5RZW6Y.js');var react=require('react'),document=require('@
|
|
1
|
+
'use strict';var chunkGNIO6SOS_js=require('./chunk-GNIO6SOS.js');require('./chunk-BJ5RZW6Y.js');var react=require('react'),document=require('@sqren/docx-editor-core/types/document'),jsxRuntime=require('react/jsx-runtime');var te=["Calibri","Arial","Times New Roman","Georgia","Verdana","Courier New"],ae={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"var(--doc-overlay)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4},oe={backgroundColor:"var(--doc-surface)",borderRadius:8,boxShadow:"0 4px 20px var(--doc-shadow)",minWidth:400,maxWidth:480,width:"100%",margin:20},ie={padding:"16px 20px 12px",borderBottom:"1px solid var(--doc-border)",fontSize:16,fontWeight:600,color:"var(--doc-text)"},ne={padding:"16px 20px",display:"flex",flexDirection:"column",gap:14},G={display:"flex",flexDirection:"column",gap:10},r={display:"flex",alignItems:"center",gap:12},N={display:"flex",alignItems:"center",gap:8},d={width:80,fontSize:13,color:"var(--doc-text-muted)"},s={display:"flex",alignItems:"center",gap:6,fontSize:13,color:"var(--doc-text)"},g={flex:1,padding:"6px 8px",border:"1px solid var(--doc-border)",borderRadius:4,fontSize:13},le={display:"flex",justifyContent:"flex-end",gap:8,padding:"12px 20px 16px",borderTop:"1px solid var(--doc-border)"},q={padding:"6px 16px",fontSize:13,border:"1px solid var(--doc-border)",borderRadius:4,cursor:"pointer"},re={...q,backgroundColor:"var(--doc-primary)",color:"var(--doc-on-primary)",borderColor:"var(--doc-primary)"},se={...q};function me({isOpen:k,onClose:u,onApply:y,current:i,presets:v=document.DEFAULT_WATERMARK_PRESETS}){let{t:o}=chunkGNIO6SOS_js.b(),[l,p]=react.useState("none"),[m,S]=react.useState(v[0]??"CONFIDENTIAL"),[C,A]=react.useState("Calibri"),[h,I]=react.useState(true),[w,F]=react.useState(54),[E,B]=react.useState("#C0C0C0"),[f,R]=react.useState("diagonal"),[P,M]=react.useState(true),[c,O]=react.useState(void 0),[U,z]=react.useState(void 0),[D,_]=react.useState(100),[L,H]=react.useState(true);react.useEffect(()=>{k&&(i?.kind==="text"?(p("text"),S(i.text),A(i.font||"Calibri"),I(i.fontSize===void 0),i.fontSize!==void 0&&F(i.fontSize),B(i.color||"#C0C0C0"),R(i.layout),M(i.semitransparent)):i?.kind==="picture"?(p("picture"),O(i.dataUrl),z(i.widthEmu!==void 0&&i.heightEmu!==void 0?{widthEmu:i.widthEmu,heightEmu:i.heightEmu}:void 0),_(Math.round((i.scale||1)*100)),H(i.washout)):p("none"));},[k,i]);let J=react.useCallback(t=>{let Y=t.target.files?.[0];if(!Y)return;let x=new FileReader;x.onload=()=>{let W=typeof x.result=="string"?x.result:void 0;if(O(W),z(void 0),!W)return;let b=new Image;b.onload=()=>z(document.pictureWatermarkDisplayEmu(b.naturalWidth,b.naturalHeight)),b.src=W;},x.readAsDataURL(Y);},[]),Q=react.useCallback(()=>{if(l==="none")y(null);else if(l==="text")y({kind:"text",text:m,font:C,color:E,semitransparent:P,layout:f,fontSize:h?void 0:w});else {if(!c)return;y({kind:"picture",dataUrl:c,scale:D/100,washout:L,...U??{}});}u();},[l,m,C,E,P,f,h,w,c,U,D,L,y,u]);if(!k)return null;let T=t=>t.stopPropagation(),X=t=>{t.key==="Escape"&&u();},K=l==="picture"&&!c;return jsxRuntime.jsx("div",{style:ae,onClick:u,onMouseDown:T,onKeyDown:X,children:jsxRuntime.jsxs("div",{style:oe,onClick:T,onMouseDown:T,role:"dialog","aria-label":o("dialogs.watermark.title"),children:[jsxRuntime.jsx("div",{style:ie,children:o("dialogs.watermark.title")}),jsxRuntime.jsxs("div",{style:ne,children:[jsxRuntime.jsxs("div",{style:N,children:[jsxRuntime.jsx("input",{type:"radio",id:"wm-none",checked:l==="none",onChange:()=>p("none")}),jsxRuntime.jsx("label",{htmlFor:"wm-none",style:s,children:o("dialogs.watermark.noWatermark")})]}),jsxRuntime.jsxs("div",{style:N,children:[jsxRuntime.jsx("input",{type:"radio",id:"wm-picture",checked:l==="picture",onChange:()=>p("picture")}),jsxRuntime.jsx("label",{htmlFor:"wm-picture",style:s,children:o("dialogs.watermark.picture")})]}),l==="picture"&&jsxRuntime.jsxs("div",{style:G,children:[jsxRuntime.jsx("div",{style:r,children:jsxRuntime.jsx("input",{type:"file",accept:"image/*",onChange:J})}),c&&jsxRuntime.jsx("div",{style:r,children:jsxRuntime.jsx("img",{src:c,alt:"",style:{maxHeight:"60px",maxWidth:"120px"}})}),jsxRuntime.jsxs("div",{style:r,children:[jsxRuntime.jsx("span",{style:d,children:o("dialogs.watermark.scale")}),jsxRuntime.jsx("input",{type:"number",min:10,max:500,value:D,onChange:t=>_(Number(t.target.value)),style:{...g,flex:"unset",width:80}}),jsxRuntime.jsx("span",{style:{fontSize:11,color:"var(--doc-text-muted)"},children:"%"})]}),jsxRuntime.jsxs("label",{style:s,children:[jsxRuntime.jsx("input",{type:"checkbox",checked:L,onChange:t=>H(t.target.checked)}),o("dialogs.watermark.washout")]})]}),jsxRuntime.jsxs("div",{style:N,children:[jsxRuntime.jsx("input",{type:"radio",id:"wm-text",checked:l==="text",onChange:()=>p("text")}),jsxRuntime.jsx("label",{htmlFor:"wm-text",style:s,children:o("dialogs.watermark.text")})]}),l==="text"&&jsxRuntime.jsxs("div",{style:G,children:[v.length>0&&jsxRuntime.jsxs("div",{style:r,children:[jsxRuntime.jsx("span",{style:d,children:o("dialogs.watermark.presetLabel")}),jsxRuntime.jsxs("select",{style:g,value:v.includes(m)?m:"",onChange:t=>t.target.value&&S(t.target.value),children:[jsxRuntime.jsx("option",{value:"",children:"\u2014"}),v.map(t=>jsxRuntime.jsx("option",{value:t,children:t},t))]})]}),jsxRuntime.jsxs("div",{style:r,children:[jsxRuntime.jsx("span",{style:d,children:o("dialogs.watermark.textLabel")}),jsxRuntime.jsx("input",{style:g,value:m,onChange:t=>S(t.target.value)})]}),jsxRuntime.jsxs("div",{style:r,children:[jsxRuntime.jsx("span",{style:d,children:o("dialogs.watermark.fontLabel")}),jsxRuntime.jsx("select",{style:g,value:C,onChange:t=>A(t.target.value),children:te.map(t=>jsxRuntime.jsx("option",{value:t,children:t},t))})]}),jsxRuntime.jsxs("div",{style:r,children:[jsxRuntime.jsx("span",{style:d,children:o("dialogs.watermark.sizeLabel")}),jsxRuntime.jsxs("label",{style:s,children:[jsxRuntime.jsx("input",{type:"checkbox",checked:h,onChange:t=>I(t.target.checked)}),o("dialogs.watermark.sizeAuto")]}),!h&&jsxRuntime.jsx("input",{type:"number",min:8,max:200,value:w,onChange:t=>F(Number(t.target.value)),style:{...g,flex:"unset",width:70}})]}),jsxRuntime.jsxs("div",{style:r,children:[jsxRuntime.jsx("span",{style:d,children:o("dialogs.watermark.colorLabel")}),jsxRuntime.jsx("input",{type:"color",value:E,onChange:t=>B(t.target.value)})]}),jsxRuntime.jsxs("div",{style:r,children:[jsxRuntime.jsx("span",{style:d,children:o("dialogs.watermark.layoutLabel")}),jsxRuntime.jsxs("label",{style:s,children:[jsxRuntime.jsx("input",{type:"radio",name:"wm-layout",checked:f==="diagonal",onChange:()=>R("diagonal")}),o("dialogs.watermark.diagonal")]}),jsxRuntime.jsxs("label",{style:s,children:[jsxRuntime.jsx("input",{type:"radio",name:"wm-layout",checked:f==="horizontal",onChange:()=>R("horizontal")}),o("dialogs.watermark.horizontal")]})]}),jsxRuntime.jsxs("label",{style:s,children:[jsxRuntime.jsx("input",{type:"checkbox",checked:P,onChange:t=>M(t.target.checked)}),o("dialogs.watermark.semitransparent")]})]})]}),jsxRuntime.jsxs("div",{style:le,children:[jsxRuntime.jsx("button",{style:se,onClick:u,children:o("dialogs.watermark.cancelButton")}),jsxRuntime.jsx("button",{style:{...re,...K?{opacity:.5,cursor:"not-allowed"}:{}},onClick:Q,disabled:K,children:o("dialogs.watermark.applyButton")})]})]})})}exports.WatermarkDialog=me;
|
package/dist/chunk-4Y4JFAPY.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {b as b$1}from'./chunk-O6M2HAIZ.mjs';import {b}from'./chunk-ZFZJRL2R.mjs';import {useRef,useState,useEffect,useCallback,useMemo}from'react';import {readFromClipboard}from'@eigenpal/docx-editor-core/utils';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var v=[{id:"formatted",labelKey:"dialogs.pasteSpecial.keepFormatting",descriptionKey:"dialogs.pasteSpecial.keepFormattingDescription",shortcutKey:"dialogs.pasteSpecial.keepFormattingShortcut"},{id:"plainText",labelKey:"dialogs.pasteSpecial.plainText",descriptionKey:"dialogs.pasteSpecial.plainTextDescription",shortcutKey:"dialogs.pasteSpecial.plainTextShortcut"}],N=()=>jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M4 4h12v2H4V4zM4 8h8v2H4V8zM4 12h10v2H4v-2zM4 16h6v2H4v-2z",fill:"currentColor"}),jsx("path",{d:"M14 10l3 3-3 3v-2h-2v-2h2v-2z",fill:"currentColor",opacity:"0.6"})]}),_=()=>jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4 4h12v1H4V4zM4 7h12v1H4V7zM4 10h12v1H4v-1zM4 13h12v1H4v-1zM4 16h8v1H4v-1z",fill:"currentColor"})});function Y(e){switch(e){case "formatted":return jsx(N,{});case "plainText":return jsx(_,{});default:return null}}var j=({option:e,isSelected:t,onClick:l,onMouseEnter:y})=>jsxs("button",{type:"button",className:`docx-paste-special-option ${t?"docx-paste-special-option-selected":""}`,onClick:l,onMouseEnter:y,role:"menuitem","aria-selected":t,style:{display:"flex",alignItems:"center",gap:"12px",width:"100%",padding:"12px 16px",border:"none",background:t?"var(--doc-primary-light)":"transparent",cursor:"pointer",textAlign:"left",borderRadius:"4px",transition:"background-color 0.15s ease"},children:[jsx("span",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"4px",background:t?"var(--doc-primary)":"var(--doc-bg-hover)",color:t?"white":"var(--doc-text-muted)"},children:Y(e.id)}),jsxs("div",{style:{flex:1},children:[jsx("div",{style:{fontSize:"14px",fontWeight:500,color:"var(--doc-text)",marginBottom:"2px"},children:e.label}),jsx("div",{style:{fontSize:"12px",color:"var(--doc-text-muted)"},children:e.description})]}),jsx("span",{style:{fontSize:"11px",color:"var(--doc-text-subtle)",fontFamily:"monospace"},children:e.shortcut})]}),oe=({isOpen:e,onClose:t,onPaste:l,position:y,className:b$1=""})=>{let{t:o}=b(),m=useRef(null),[g,c]=useState(0),[i,S]=useState(null),[K,C]=useState(false),[s,r]=useState(null),a=v.map(d=>({id:d.id,label:o(d.labelKey),description:o(d.descriptionKey),shortcut:o(d.shortcutKey)}));useEffect(()=>{if(!e){S(null),r(null),c(0);return}(async()=>{C(true),r(null);try{let p=await readFromClipboard({cleanWordFormatting:!0});S(p),p||r(o("dialogs.pasteSpecial.noContent"));}catch{r(o("dialogs.pasteSpecial.clipboardError"));}finally{C(false);}})();},[e]),useEffect(()=>{if(!e)return;let d=p=>{m.current&&!m.current.contains(p.target)&&t();};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[e,t]),useEffect(()=>{if(!e)return;let d=p=>{switch(p.key){case "Escape":p.preventDefault(),t();break;case "ArrowDown":p.preventDefault(),c(f=>(f+1)%v.length);break;case "ArrowUp":p.preventDefault(),c(f=>(f-1+v.length)%v.length);break;case "Enter":p.preventDefault(),h(v[g].id);break}};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[e,g,t]);let h=useCallback(d=>{if(!i){r(o("dialogs.pasteSpecial.noContent"));return}l(i,d==="plainText"),t();},[i,l,t]),F=useCallback(()=>{let f=y?.x??(typeof window<"u"?window.innerWidth/2-160:100),w=y?.y??(typeof window<"u"?window.innerHeight/2-200/2:100);return typeof window<"u"&&(f+320>window.innerWidth&&(f=window.innerWidth-320-10),w+200>window.innerHeight&&(w=window.innerHeight-200-10),f<10&&(f=10),w<10&&(w=10)),{position:"fixed",top:w,left:f,width:320,background:"var(--doc-surface)",border:"1px solid var(--doc-border-light)",borderRadius:"8px",boxShadow:"0 4px 20px var(--doc-shadow)",zIndex:10001,overflow:"hidden"}},[y]);return e?jsxs("div",{ref:m,className:`docx-paste-special-dialog ${b$1}`,style:F(),role:"dialog","aria-label":o("dialogs.pasteSpecial.title"),children:[jsxs("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--doc-border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[jsx("span",{style:{fontSize:"14px",fontWeight:600,color:"var(--doc-text)"},children:o("dialogs.pasteSpecial.title")}),jsx("button",{type:"button",onClick:t,"aria-label":o("common.closeDialog"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"4px",color:"var(--doc-text-muted)"},children:jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),jsx("div",{style:{padding:"8px"},children:K?jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--doc-text-muted)",fontSize:"13px"},children:o("dialogs.pasteSpecial.readingClipboard")}):s?jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--doc-error)",fontSize:"13px"},children:s}):jsx("div",{role:"menu",children:a.map((d,p)=>jsx(j,{option:d,isSelected:p===g,onClick:()=>h(d.id),onMouseEnter:()=>c(p)},d.id))})}),i&&!K&&!s&&jsxs("div",{style:{padding:"8px 16px 12px",borderTop:"1px solid var(--doc-border)"},children:[jsx("div",{style:{fontSize:"11px",color:"var(--doc-text-muted)",marginBottom:"4px"},children:o("dialogs.pasteSpecial.preview")}),jsxs("div",{style:{fontSize:"12px",color:"var(--doc-text)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",padding:"6px 8px",background:"var(--doc-bg)",borderRadius:"4px"},children:['"',i.plainText.slice(0,50),i.plainText.length>50?"...":"",'"']})]})]}):null};function re(e={}){let{onPaste:t,enabled:l=true}=e,[y,b]=useState(false),o=useCallback(()=>{l&&b(true);},[l]),m=useCallback(()=>{b(false);},[]),g=useCallback(async()=>{if(!(!l||!t))try{let i=await readFromClipboard({cleanWordFormatting:!0});i&&t(i,!0);}catch(i){console.error("Failed to paste as plain text:",i);}},[l,t]),c=useCallback(i=>l&&(i.ctrlKey||i.metaKey)&&i.shiftKey&&i.key.toLowerCase()==="v"?(i.preventDefault(),o(),true):false,[l,o]);return {isOpen:y,openDialog:o,closeDialog:m,handleKeyDown:c,pasteAsPlainText:g}}function ie(e){return v.find(t=>t.id===e)}function se(){return [...v]}function ae(){return "formatted"}function ne(e){return (e.ctrlKey||e.metaKey)&&e.shiftKey&&e.key.toLowerCase()==="v"}var I={editing:"dialogs.keyboardShortcuts.categories.editing",formatting:"dialogs.keyboardShortcuts.categories.formatting",navigation:"dialogs.keyboardShortcuts.categories.navigation",clipboard:"dialogs.keyboardShortcuts.categories.clipboard",selection:"dialogs.keyboardShortcuts.categories.selection",view:"dialogs.keyboardShortcuts.categories.view",file:"dialogs.keyboardShortcuts.categories.file",other:"dialogs.keyboardShortcuts.categories.other"},M=["file","editing","clipboard","formatting","selection","navigation","view","other"],P=[{id:"save",name:"Save",nameKey:"dialogs.keyboardShortcuts.shortcuts.save",description:"Save document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.saveDescription",keys:"Ctrl+S",category:"file",common:true},{id:"print",name:"Print",nameKey:"dialogs.keyboardShortcuts.shortcuts.print",description:"Print document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.printDescription",keys:"Ctrl+P",category:"file"},{id:"undo",name:"Undo",nameKey:"dialogs.keyboardShortcuts.shortcuts.undo",description:"Undo last action",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.undoDescription",keys:"Ctrl+Z",category:"editing",common:true},{id:"redo",name:"Redo",nameKey:"dialogs.keyboardShortcuts.shortcuts.redo",description:"Redo last action",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.redoDescription",keys:"Ctrl+Y",altKeys:"Ctrl+Shift+Z",category:"editing",common:true},{id:"delete",name:"Delete",nameKey:"dialogs.keyboardShortcuts.shortcuts.delete",description:"Delete selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.deleteDescription",keys:"Del",altKeys:"Backspace",category:"editing"},{id:"find",name:"Find",nameKey:"dialogs.keyboardShortcuts.shortcuts.find",description:"Find text in document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.findDescription",keys:"Ctrl+F",category:"editing",common:true},{id:"replace",name:"Find & Replace",nameKey:"dialogs.keyboardShortcuts.shortcuts.findReplace",description:"Find and replace text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.findReplaceDescription",keys:"Ctrl+H",category:"editing"},{id:"cut",name:"Cut",nameKey:"dialogs.keyboardShortcuts.shortcuts.cut",description:"Cut selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.cutDescription",keys:"Ctrl+X",category:"clipboard",common:true},{id:"copy",name:"Copy",nameKey:"dialogs.keyboardShortcuts.shortcuts.copy",description:"Copy selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.copyDescription",keys:"Ctrl+C",category:"clipboard",common:true},{id:"paste",name:"Paste",nameKey:"dialogs.keyboardShortcuts.shortcuts.paste",description:"Paste from clipboard",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pasteDescription",keys:"Ctrl+V",category:"clipboard",common:true},{id:"paste-plain",name:"Paste as Plain Text",nameKey:"dialogs.keyboardShortcuts.shortcuts.pastePlainText",description:"Paste without formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pastePlainTextDescription",keys:"Ctrl+Shift+V",category:"clipboard"},{id:"bold",name:"Bold",nameKey:"dialogs.keyboardShortcuts.shortcuts.bold",description:"Toggle bold formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.boldDescription",keys:"Ctrl+B",category:"formatting",common:true},{id:"italic",name:"Italic",nameKey:"dialogs.keyboardShortcuts.shortcuts.italic",description:"Toggle italic formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.italicDescription",keys:"Ctrl+I",category:"formatting",common:true},{id:"underline",name:"Underline",nameKey:"dialogs.keyboardShortcuts.shortcuts.underline",description:"Toggle underline formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.underlineDescription",keys:"Ctrl+U",category:"formatting",common:true},{id:"strikethrough",name:"Strikethrough",nameKey:"dialogs.keyboardShortcuts.shortcuts.strikethrough",description:"Toggle strikethrough",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.strikethroughDescription",keys:"Ctrl+Shift+X",category:"formatting"},{id:"subscript",name:"Subscript",nameKey:"dialogs.keyboardShortcuts.shortcuts.subscript",description:"Toggle subscript",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.subscriptDescription",keys:"Ctrl+=",category:"formatting"},{id:"superscript",name:"Superscript",nameKey:"dialogs.keyboardShortcuts.shortcuts.superscript",description:"Toggle superscript",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.superscriptDescription",keys:"Ctrl+Shift+=",category:"formatting"},{id:"align-left",name:"Align Left",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignLeft",description:"Left align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignLeftDescription",keys:"Ctrl+L",category:"formatting"},{id:"align-center",name:"Align Center",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignCenter",description:"Center align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignCenterDescription",keys:"Ctrl+E",category:"formatting"},{id:"align-right",name:"Align Right",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignRight",description:"Right align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignRightDescription",keys:"Ctrl+R",category:"formatting"},{id:"align-justify",name:"Justify",nameKey:"dialogs.keyboardShortcuts.shortcuts.justify",description:"Justify paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.justifyDescription",keys:"Ctrl+J",category:"formatting"},{id:"indent",name:"Increase Indent",nameKey:"dialogs.keyboardShortcuts.shortcuts.increaseIndent",description:"Increase paragraph indent",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.increaseIndentDescription",keys:"Tab",category:"formatting"},{id:"outdent",name:"Decrease Indent",nameKey:"dialogs.keyboardShortcuts.shortcuts.decreaseIndent",description:"Decrease paragraph indent",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.decreaseIndentDescription",keys:"Shift+Tab",category:"formatting"},{id:"select-all",name:"Select All",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectAll",description:"Select all content",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectAllDescription",keys:"Ctrl+A",category:"selection",common:true},{id:"select-word",name:"Select Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectWord",description:"Select current word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectWordDescription",keys:"Double-click",category:"selection"},{id:"select-paragraph",name:"Select Paragraph",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectParagraph",description:"Select current paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectParagraphDescription",keys:"Triple-click",category:"selection"},{id:"extend-selection-word",name:"Extend Selection by Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionByWord",description:"Extend selection to next/previous word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionByWordDescription",keys:"Ctrl+Shift+Arrow",category:"selection"},{id:"extend-selection-line",name:"Extend Selection to Line Edge",nameKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionToLineEdge",description:"Extend selection to line start/end",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionToLineEdgeDescription",keys:"Shift+Home/End",category:"selection"},{id:"move-word",name:"Move by Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveByWord",description:"Move cursor to next/previous word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveByWordDescription",keys:"Ctrl+Arrow",category:"navigation"},{id:"move-line-start",name:"Move to Line Start",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineStart",description:"Move cursor to start of line",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineStartDescription",keys:"Home",category:"navigation"},{id:"move-line-end",name:"Move to Line End",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineEnd",description:"Move cursor to end of line",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineEndDescription",keys:"End",category:"navigation"},{id:"move-doc-start",name:"Move to Document Start",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentStart",description:"Move cursor to start of document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentStartDescription",keys:"Ctrl+Home",category:"navigation"},{id:"move-doc-end",name:"Move to Document End",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentEnd",description:"Move cursor to end of document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentEndDescription",keys:"Ctrl+End",category:"navigation"},{id:"page-up",name:"Page Up",nameKey:"dialogs.keyboardShortcuts.shortcuts.pageUp",description:"Scroll up one page",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pageUpDescription",keys:"Page Up",category:"navigation"},{id:"page-down",name:"Page Down",nameKey:"dialogs.keyboardShortcuts.shortcuts.pageDown",description:"Scroll down one page",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pageDownDescription",keys:"Page Down",category:"navigation"},{id:"zoom-in",name:"Zoom In",nameKey:"dialogs.keyboardShortcuts.shortcuts.zoomIn",description:"Increase zoom level",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.zoomInDescription",keys:"Ctrl++",altKeys:"Ctrl+Scroll Up",category:"view"},{id:"zoom-out",name:"Zoom Out",nameKey:"dialogs.keyboardShortcuts.shortcuts.zoomOut",description:"Decrease zoom level",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.zoomOutDescription",keys:"Ctrl+-",altKeys:"Ctrl+Scroll Down",category:"view"},{id:"zoom-reset",name:"Reset Zoom",nameKey:"dialogs.keyboardShortcuts.shortcuts.resetZoom",description:"Reset zoom to 100%",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.resetZoomDescription",keys:"Ctrl+0",category:"view"},{id:"shortcuts",name:"Keyboard Shortcuts",nameKey:"dialogs.keyboardShortcuts.shortcuts.keyboardShortcuts",description:"Show this help dialog",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.keyboardShortcutsDescription",keys:"Ctrl+/",altKeys:"F1",category:"view"}];function Z(){return [...P]}function V(e){return P.filter(t=>t.category===e)}function G(){return P.filter(e=>e.common)}function J(e){return I[e]}function $(){return [...M]}var be=({isOpen:e,onClose:t,customShortcuts:l=[],showSearch:y=true,className:b$2=""})=>{let{t:o}=b(),m=useRef(null),g=useRef(null),[c,i]=useState(""),S=useMemo(()=>{let s=[...P];for(let r of l){let a=s.findIndex(h=>h.id===r.id);a>=0?s[a]=r:s.push(r);}return s},[l]),K=useMemo(()=>{if(!c.trim())return S;let s=c.toLowerCase();return S.filter(r=>{let a=r.nameKey?o(r.nameKey):r.name,h=r.descriptionKey?o(r.descriptionKey):r.description;return a.toLowerCase().includes(s)||h.toLowerCase().includes(s)||r.keys.toLowerCase().includes(s)||r.altKeys&&r.altKeys.toLowerCase().includes(s)})},[S,c,o]),C=useMemo(()=>{let s=new Map;for(let a of K){let h=s.get(a.category)||[];h.push(a),s.set(a.category,h);}let r=[];for(let a of M){let h=s.get(a);h&&h.length>0&&r.push({category:a,shortcuts:h});}return r},[K]);return useEffect(()=>{e&&y&&g.current&&setTimeout(()=>g.current?.focus(),0);},[e,y]),useEffect(()=>{e||i("");},[e]),useEffect(()=>{if(!e)return;let s=r=>{m.current&&!m.current.contains(r.target)&&t();};return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[e,t]),useEffect(()=>{if(!e)return;let s=r=>{r.key==="Escape"&&t();};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[e,t]),e?jsx("div",{className:"docx-shortcuts-overlay",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"var(--doc-overlay)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:10001},children:jsxs("div",{ref:m,className:`docx-shortcuts-dialog ${b$2}`,style:{width:"600px",maxWidth:"90vw",maxHeight:"80vh",backgroundColor:"var(--doc-surface)",borderRadius:"12px",boxShadow:"0 4px 24px var(--doc-shadow)",display:"flex",flexDirection:"column",overflow:"hidden"},role:"dialog","aria-label":o("dialogs.keyboardShortcuts.ariaLabel"),children:[jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid var(--doc-border)"},children:[jsx("h2",{style:{margin:0,fontSize:"18px",fontWeight:600,color:"var(--doc-text)"},children:o("dialogs.keyboardShortcuts.ariaLabel")}),jsx("button",{type:"button",onClick:t,"aria-label":o("common.closeDialog"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"50%",color:"var(--doc-text-muted)"},children:jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:jsx("path",{d:"M5 5l10 10M15 5L5 15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),y&&jsx("div",{style:{padding:"12px 20px",borderBottom:"1px solid var(--doc-border)"},children:jsx("input",{ref:g,type:"text",value:c,onChange:s=>i(s.target.value),placeholder:o("dialogs.keyboardShortcuts.searchPlaceholder"),style:{width:"100%",padding:"10px 12px",fontSize:"14px",border:"1px solid var(--doc-border-light)",borderRadius:"6px",outline:"none"}})}),jsx("div",{style:{flex:1,overflowY:"auto",padding:"16px 20px"},children:C.length===0?jsx("div",{style:{textAlign:"center",padding:"32px",color:"var(--doc-text-muted)"},children:o("dialogs.keyboardShortcuts.noResults",{query:c})}):C.map(({category:s,shortcuts:r})=>jsxs("div",{style:{marginBottom:"24px"},children:[jsx("h3",{style:{margin:"0 0 12px 0",fontSize:"13px",fontWeight:600,color:"var(--doc-primary)",textTransform:"uppercase",letterSpacing:"0.5px"},children:o(I[s])}),jsx("div",{children:r.map(a=>jsx(b$1,{shortcut:a,translatedName:a.nameKey?o(a.nameKey):a.name,translatedDescription:a.descriptionKey?o(a.descriptionKey):a.description},a.id))})]},s))}),jsx("div",{style:{padding:"12px 20px",borderTop:"1px solid var(--doc-border)",backgroundColor:"var(--doc-bg)",fontSize:"12px",color:"var(--doc-text-muted)",textAlign:"center"},children:(()=>{let r=o("dialogs.keyboardShortcuts.pressEscToClose",{key:"Esc"}).split("Esc");return jsxs(Fragment,{children:[r[0],jsx("kbd",{style:{padding:"2px 6px",backgroundColor:"var(--doc-surface)",borderRadius:"4px",border:"1px solid var(--doc-border-light)"},children:"Esc"}),r[1]]})})()})]})}):null};function fe(e={}){let{enabled:t=true,openShortcut:l="Ctrl+/"}=e,[y,b]=useState(false),o=useCallback(()=>{t&&b(true);},[t]),m=useCallback(()=>{b(false);},[]),g=useCallback(()=>{b(i=>!i);},[]),c=useCallback(i=>{if(!t)return;if((i.ctrlKey||i.metaKey)&&(i.key==="/"||i.key==="?")){i.preventDefault(),g();return}if(i.key==="F1"){i.preventDefault(),o();return}},[t,g,o]);return useEffect(()=>{if(t)return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[t,c]),{isOpen:y,open:o,close:m,toggle:g,handleKeyDown:c}}
|
|
1
|
+
import {b as b$1}from'./chunk-O6M2HAIZ.mjs';import {b}from'./chunk-ZFZJRL2R.mjs';import {useRef,useState,useEffect,useCallback,useMemo}from'react';import {readFromClipboard}from'@sqren/docx-editor-core/utils';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var v=[{id:"formatted",labelKey:"dialogs.pasteSpecial.keepFormatting",descriptionKey:"dialogs.pasteSpecial.keepFormattingDescription",shortcutKey:"dialogs.pasteSpecial.keepFormattingShortcut"},{id:"plainText",labelKey:"dialogs.pasteSpecial.plainText",descriptionKey:"dialogs.pasteSpecial.plainTextDescription",shortcutKey:"dialogs.pasteSpecial.plainTextShortcut"}],N=()=>jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M4 4h12v2H4V4zM4 8h8v2H4V8zM4 12h10v2H4v-2zM4 16h6v2H4v-2z",fill:"currentColor"}),jsx("path",{d:"M14 10l3 3-3 3v-2h-2v-2h2v-2z",fill:"currentColor",opacity:"0.6"})]}),_=()=>jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4 4h12v1H4V4zM4 7h12v1H4V7zM4 10h12v1H4v-1zM4 13h12v1H4v-1zM4 16h8v1H4v-1z",fill:"currentColor"})});function Y(e){switch(e){case "formatted":return jsx(N,{});case "plainText":return jsx(_,{});default:return null}}var j=({option:e,isSelected:t,onClick:l,onMouseEnter:y})=>jsxs("button",{type:"button",className:`docx-paste-special-option ${t?"docx-paste-special-option-selected":""}`,onClick:l,onMouseEnter:y,role:"menuitem","aria-selected":t,style:{display:"flex",alignItems:"center",gap:"12px",width:"100%",padding:"12px 16px",border:"none",background:t?"var(--doc-primary-light)":"transparent",cursor:"pointer",textAlign:"left",borderRadius:"4px",transition:"background-color 0.15s ease"},children:[jsx("span",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"4px",background:t?"var(--doc-primary)":"var(--doc-bg-hover)",color:t?"white":"var(--doc-text-muted)"},children:Y(e.id)}),jsxs("div",{style:{flex:1},children:[jsx("div",{style:{fontSize:"14px",fontWeight:500,color:"var(--doc-text)",marginBottom:"2px"},children:e.label}),jsx("div",{style:{fontSize:"12px",color:"var(--doc-text-muted)"},children:e.description})]}),jsx("span",{style:{fontSize:"11px",color:"var(--doc-text-subtle)",fontFamily:"monospace"},children:e.shortcut})]}),oe=({isOpen:e,onClose:t,onPaste:l,position:y,className:b$1=""})=>{let{t:o}=b(),m=useRef(null),[g,c]=useState(0),[i,S]=useState(null),[K,C]=useState(false),[s,r]=useState(null),a=v.map(d=>({id:d.id,label:o(d.labelKey),description:o(d.descriptionKey),shortcut:o(d.shortcutKey)}));useEffect(()=>{if(!e){S(null),r(null),c(0);return}(async()=>{C(true),r(null);try{let p=await readFromClipboard({cleanWordFormatting:!0});S(p),p||r(o("dialogs.pasteSpecial.noContent"));}catch{r(o("dialogs.pasteSpecial.clipboardError"));}finally{C(false);}})();},[e]),useEffect(()=>{if(!e)return;let d=p=>{m.current&&!m.current.contains(p.target)&&t();};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[e,t]),useEffect(()=>{if(!e)return;let d=p=>{switch(p.key){case "Escape":p.preventDefault(),t();break;case "ArrowDown":p.preventDefault(),c(f=>(f+1)%v.length);break;case "ArrowUp":p.preventDefault(),c(f=>(f-1+v.length)%v.length);break;case "Enter":p.preventDefault(),h(v[g].id);break}};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[e,g,t]);let h=useCallback(d=>{if(!i){r(o("dialogs.pasteSpecial.noContent"));return}l(i,d==="plainText"),t();},[i,l,t]),F=useCallback(()=>{let f=y?.x??(typeof window<"u"?window.innerWidth/2-160:100),w=y?.y??(typeof window<"u"?window.innerHeight/2-200/2:100);return typeof window<"u"&&(f+320>window.innerWidth&&(f=window.innerWidth-320-10),w+200>window.innerHeight&&(w=window.innerHeight-200-10),f<10&&(f=10),w<10&&(w=10)),{position:"fixed",top:w,left:f,width:320,background:"var(--doc-surface)",border:"1px solid var(--doc-border-light)",borderRadius:"8px",boxShadow:"0 4px 20px var(--doc-shadow)",zIndex:10001,overflow:"hidden"}},[y]);return e?jsxs("div",{ref:m,className:`docx-paste-special-dialog ${b$1}`,style:F(),role:"dialog","aria-label":o("dialogs.pasteSpecial.title"),children:[jsxs("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--doc-border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[jsx("span",{style:{fontSize:"14px",fontWeight:600,color:"var(--doc-text)"},children:o("dialogs.pasteSpecial.title")}),jsx("button",{type:"button",onClick:t,"aria-label":o("common.closeDialog"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"4px",color:"var(--doc-text-muted)"},children:jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),jsx("div",{style:{padding:"8px"},children:K?jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--doc-text-muted)",fontSize:"13px"},children:o("dialogs.pasteSpecial.readingClipboard")}):s?jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--doc-error)",fontSize:"13px"},children:s}):jsx("div",{role:"menu",children:a.map((d,p)=>jsx(j,{option:d,isSelected:p===g,onClick:()=>h(d.id),onMouseEnter:()=>c(p)},d.id))})}),i&&!K&&!s&&jsxs("div",{style:{padding:"8px 16px 12px",borderTop:"1px solid var(--doc-border)"},children:[jsx("div",{style:{fontSize:"11px",color:"var(--doc-text-muted)",marginBottom:"4px"},children:o("dialogs.pasteSpecial.preview")}),jsxs("div",{style:{fontSize:"12px",color:"var(--doc-text)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",padding:"6px 8px",background:"var(--doc-bg)",borderRadius:"4px"},children:['"',i.plainText.slice(0,50),i.plainText.length>50?"...":"",'"']})]})]}):null};function re(e={}){let{onPaste:t,enabled:l=true}=e,[y,b]=useState(false),o=useCallback(()=>{l&&b(true);},[l]),m=useCallback(()=>{b(false);},[]),g=useCallback(async()=>{if(!(!l||!t))try{let i=await readFromClipboard({cleanWordFormatting:!0});i&&t(i,!0);}catch(i){console.error("Failed to paste as plain text:",i);}},[l,t]),c=useCallback(i=>l&&(i.ctrlKey||i.metaKey)&&i.shiftKey&&i.key.toLowerCase()==="v"?(i.preventDefault(),o(),true):false,[l,o]);return {isOpen:y,openDialog:o,closeDialog:m,handleKeyDown:c,pasteAsPlainText:g}}function ie(e){return v.find(t=>t.id===e)}function se(){return [...v]}function ae(){return "formatted"}function ne(e){return (e.ctrlKey||e.metaKey)&&e.shiftKey&&e.key.toLowerCase()==="v"}var I={editing:"dialogs.keyboardShortcuts.categories.editing",formatting:"dialogs.keyboardShortcuts.categories.formatting",navigation:"dialogs.keyboardShortcuts.categories.navigation",clipboard:"dialogs.keyboardShortcuts.categories.clipboard",selection:"dialogs.keyboardShortcuts.categories.selection",view:"dialogs.keyboardShortcuts.categories.view",file:"dialogs.keyboardShortcuts.categories.file",other:"dialogs.keyboardShortcuts.categories.other"},M=["file","editing","clipboard","formatting","selection","navigation","view","other"],P=[{id:"save",name:"Save",nameKey:"dialogs.keyboardShortcuts.shortcuts.save",description:"Save document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.saveDescription",keys:"Ctrl+S",category:"file",common:true},{id:"print",name:"Print",nameKey:"dialogs.keyboardShortcuts.shortcuts.print",description:"Print document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.printDescription",keys:"Ctrl+P",category:"file"},{id:"undo",name:"Undo",nameKey:"dialogs.keyboardShortcuts.shortcuts.undo",description:"Undo last action",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.undoDescription",keys:"Ctrl+Z",category:"editing",common:true},{id:"redo",name:"Redo",nameKey:"dialogs.keyboardShortcuts.shortcuts.redo",description:"Redo last action",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.redoDescription",keys:"Ctrl+Y",altKeys:"Ctrl+Shift+Z",category:"editing",common:true},{id:"delete",name:"Delete",nameKey:"dialogs.keyboardShortcuts.shortcuts.delete",description:"Delete selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.deleteDescription",keys:"Del",altKeys:"Backspace",category:"editing"},{id:"find",name:"Find",nameKey:"dialogs.keyboardShortcuts.shortcuts.find",description:"Find text in document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.findDescription",keys:"Ctrl+F",category:"editing",common:true},{id:"replace",name:"Find & Replace",nameKey:"dialogs.keyboardShortcuts.shortcuts.findReplace",description:"Find and replace text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.findReplaceDescription",keys:"Ctrl+H",category:"editing"},{id:"cut",name:"Cut",nameKey:"dialogs.keyboardShortcuts.shortcuts.cut",description:"Cut selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.cutDescription",keys:"Ctrl+X",category:"clipboard",common:true},{id:"copy",name:"Copy",nameKey:"dialogs.keyboardShortcuts.shortcuts.copy",description:"Copy selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.copyDescription",keys:"Ctrl+C",category:"clipboard",common:true},{id:"paste",name:"Paste",nameKey:"dialogs.keyboardShortcuts.shortcuts.paste",description:"Paste from clipboard",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pasteDescription",keys:"Ctrl+V",category:"clipboard",common:true},{id:"paste-plain",name:"Paste as Plain Text",nameKey:"dialogs.keyboardShortcuts.shortcuts.pastePlainText",description:"Paste without formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pastePlainTextDescription",keys:"Ctrl+Shift+V",category:"clipboard"},{id:"bold",name:"Bold",nameKey:"dialogs.keyboardShortcuts.shortcuts.bold",description:"Toggle bold formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.boldDescription",keys:"Ctrl+B",category:"formatting",common:true},{id:"italic",name:"Italic",nameKey:"dialogs.keyboardShortcuts.shortcuts.italic",description:"Toggle italic formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.italicDescription",keys:"Ctrl+I",category:"formatting",common:true},{id:"underline",name:"Underline",nameKey:"dialogs.keyboardShortcuts.shortcuts.underline",description:"Toggle underline formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.underlineDescription",keys:"Ctrl+U",category:"formatting",common:true},{id:"strikethrough",name:"Strikethrough",nameKey:"dialogs.keyboardShortcuts.shortcuts.strikethrough",description:"Toggle strikethrough",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.strikethroughDescription",keys:"Ctrl+Shift+X",category:"formatting"},{id:"subscript",name:"Subscript",nameKey:"dialogs.keyboardShortcuts.shortcuts.subscript",description:"Toggle subscript",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.subscriptDescription",keys:"Ctrl+=",category:"formatting"},{id:"superscript",name:"Superscript",nameKey:"dialogs.keyboardShortcuts.shortcuts.superscript",description:"Toggle superscript",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.superscriptDescription",keys:"Ctrl+Shift+=",category:"formatting"},{id:"align-left",name:"Align Left",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignLeft",description:"Left align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignLeftDescription",keys:"Ctrl+L",category:"formatting"},{id:"align-center",name:"Align Center",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignCenter",description:"Center align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignCenterDescription",keys:"Ctrl+E",category:"formatting"},{id:"align-right",name:"Align Right",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignRight",description:"Right align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignRightDescription",keys:"Ctrl+R",category:"formatting"},{id:"align-justify",name:"Justify",nameKey:"dialogs.keyboardShortcuts.shortcuts.justify",description:"Justify paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.justifyDescription",keys:"Ctrl+J",category:"formatting"},{id:"indent",name:"Increase Indent",nameKey:"dialogs.keyboardShortcuts.shortcuts.increaseIndent",description:"Increase paragraph indent",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.increaseIndentDescription",keys:"Tab",category:"formatting"},{id:"outdent",name:"Decrease Indent",nameKey:"dialogs.keyboardShortcuts.shortcuts.decreaseIndent",description:"Decrease paragraph indent",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.decreaseIndentDescription",keys:"Shift+Tab",category:"formatting"},{id:"select-all",name:"Select All",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectAll",description:"Select all content",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectAllDescription",keys:"Ctrl+A",category:"selection",common:true},{id:"select-word",name:"Select Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectWord",description:"Select current word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectWordDescription",keys:"Double-click",category:"selection"},{id:"select-paragraph",name:"Select Paragraph",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectParagraph",description:"Select current paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectParagraphDescription",keys:"Triple-click",category:"selection"},{id:"extend-selection-word",name:"Extend Selection by Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionByWord",description:"Extend selection to next/previous word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionByWordDescription",keys:"Ctrl+Shift+Arrow",category:"selection"},{id:"extend-selection-line",name:"Extend Selection to Line Edge",nameKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionToLineEdge",description:"Extend selection to line start/end",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionToLineEdgeDescription",keys:"Shift+Home/End",category:"selection"},{id:"move-word",name:"Move by Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveByWord",description:"Move cursor to next/previous word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveByWordDescription",keys:"Ctrl+Arrow",category:"navigation"},{id:"move-line-start",name:"Move to Line Start",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineStart",description:"Move cursor to start of line",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineStartDescription",keys:"Home",category:"navigation"},{id:"move-line-end",name:"Move to Line End",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineEnd",description:"Move cursor to end of line",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineEndDescription",keys:"End",category:"navigation"},{id:"move-doc-start",name:"Move to Document Start",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentStart",description:"Move cursor to start of document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentStartDescription",keys:"Ctrl+Home",category:"navigation"},{id:"move-doc-end",name:"Move to Document End",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentEnd",description:"Move cursor to end of document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentEndDescription",keys:"Ctrl+End",category:"navigation"},{id:"page-up",name:"Page Up",nameKey:"dialogs.keyboardShortcuts.shortcuts.pageUp",description:"Scroll up one page",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pageUpDescription",keys:"Page Up",category:"navigation"},{id:"page-down",name:"Page Down",nameKey:"dialogs.keyboardShortcuts.shortcuts.pageDown",description:"Scroll down one page",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pageDownDescription",keys:"Page Down",category:"navigation"},{id:"zoom-in",name:"Zoom In",nameKey:"dialogs.keyboardShortcuts.shortcuts.zoomIn",description:"Increase zoom level",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.zoomInDescription",keys:"Ctrl++",altKeys:"Ctrl+Scroll Up",category:"view"},{id:"zoom-out",name:"Zoom Out",nameKey:"dialogs.keyboardShortcuts.shortcuts.zoomOut",description:"Decrease zoom level",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.zoomOutDescription",keys:"Ctrl+-",altKeys:"Ctrl+Scroll Down",category:"view"},{id:"zoom-reset",name:"Reset Zoom",nameKey:"dialogs.keyboardShortcuts.shortcuts.resetZoom",description:"Reset zoom to 100%",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.resetZoomDescription",keys:"Ctrl+0",category:"view"},{id:"shortcuts",name:"Keyboard Shortcuts",nameKey:"dialogs.keyboardShortcuts.shortcuts.keyboardShortcuts",description:"Show this help dialog",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.keyboardShortcutsDescription",keys:"Ctrl+/",altKeys:"F1",category:"view"}];function Z(){return [...P]}function V(e){return P.filter(t=>t.category===e)}function G(){return P.filter(e=>e.common)}function J(e){return I[e]}function $(){return [...M]}var be=({isOpen:e,onClose:t,customShortcuts:l=[],showSearch:y=true,className:b$2=""})=>{let{t:o}=b(),m=useRef(null),g=useRef(null),[c,i]=useState(""),S=useMemo(()=>{let s=[...P];for(let r of l){let a=s.findIndex(h=>h.id===r.id);a>=0?s[a]=r:s.push(r);}return s},[l]),K=useMemo(()=>{if(!c.trim())return S;let s=c.toLowerCase();return S.filter(r=>{let a=r.nameKey?o(r.nameKey):r.name,h=r.descriptionKey?o(r.descriptionKey):r.description;return a.toLowerCase().includes(s)||h.toLowerCase().includes(s)||r.keys.toLowerCase().includes(s)||r.altKeys&&r.altKeys.toLowerCase().includes(s)})},[S,c,o]),C=useMemo(()=>{let s=new Map;for(let a of K){let h=s.get(a.category)||[];h.push(a),s.set(a.category,h);}let r=[];for(let a of M){let h=s.get(a);h&&h.length>0&&r.push({category:a,shortcuts:h});}return r},[K]);return useEffect(()=>{e&&y&&g.current&&setTimeout(()=>g.current?.focus(),0);},[e,y]),useEffect(()=>{e||i("");},[e]),useEffect(()=>{if(!e)return;let s=r=>{m.current&&!m.current.contains(r.target)&&t();};return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[e,t]),useEffect(()=>{if(!e)return;let s=r=>{r.key==="Escape"&&t();};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[e,t]),e?jsx("div",{className:"docx-shortcuts-overlay",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"var(--doc-overlay)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:10001},children:jsxs("div",{ref:m,className:`docx-shortcuts-dialog ${b$2}`,style:{width:"600px",maxWidth:"90vw",maxHeight:"80vh",backgroundColor:"var(--doc-surface)",borderRadius:"12px",boxShadow:"0 4px 24px var(--doc-shadow)",display:"flex",flexDirection:"column",overflow:"hidden"},role:"dialog","aria-label":o("dialogs.keyboardShortcuts.ariaLabel"),children:[jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid var(--doc-border)"},children:[jsx("h2",{style:{margin:0,fontSize:"18px",fontWeight:600,color:"var(--doc-text)"},children:o("dialogs.keyboardShortcuts.ariaLabel")}),jsx("button",{type:"button",onClick:t,"aria-label":o("common.closeDialog"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"50%",color:"var(--doc-text-muted)"},children:jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:jsx("path",{d:"M5 5l10 10M15 5L5 15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),y&&jsx("div",{style:{padding:"12px 20px",borderBottom:"1px solid var(--doc-border)"},children:jsx("input",{ref:g,type:"text",value:c,onChange:s=>i(s.target.value),placeholder:o("dialogs.keyboardShortcuts.searchPlaceholder"),style:{width:"100%",padding:"10px 12px",fontSize:"14px",border:"1px solid var(--doc-border-light)",borderRadius:"6px",outline:"none"}})}),jsx("div",{style:{flex:1,overflowY:"auto",padding:"16px 20px"},children:C.length===0?jsx("div",{style:{textAlign:"center",padding:"32px",color:"var(--doc-text-muted)"},children:o("dialogs.keyboardShortcuts.noResults",{query:c})}):C.map(({category:s,shortcuts:r})=>jsxs("div",{style:{marginBottom:"24px"},children:[jsx("h3",{style:{margin:"0 0 12px 0",fontSize:"13px",fontWeight:600,color:"var(--doc-primary)",textTransform:"uppercase",letterSpacing:"0.5px"},children:o(I[s])}),jsx("div",{children:r.map(a=>jsx(b$1,{shortcut:a,translatedName:a.nameKey?o(a.nameKey):a.name,translatedDescription:a.descriptionKey?o(a.descriptionKey):a.description},a.id))})]},s))}),jsx("div",{style:{padding:"12px 20px",borderTop:"1px solid var(--doc-border)",backgroundColor:"var(--doc-bg)",fontSize:"12px",color:"var(--doc-text-muted)",textAlign:"center"},children:(()=>{let r=o("dialogs.keyboardShortcuts.pressEscToClose",{key:"Esc"}).split("Esc");return jsxs(Fragment,{children:[r[0],jsx("kbd",{style:{padding:"2px 6px",backgroundColor:"var(--doc-surface)",borderRadius:"4px",border:"1px solid var(--doc-border-light)"},children:"Esc"}),r[1]]})})()})]})}):null};function fe(e={}){let{enabled:t=true,openShortcut:l="Ctrl+/"}=e,[y,b]=useState(false),o=useCallback(()=>{t&&b(true);},[t]),m=useCallback(()=>{b(false);},[]),g=useCallback(()=>{b(i=>!i);},[]),c=useCallback(i=>{if(!t)return;if((i.ctrlKey||i.metaKey)&&(i.key==="/"||i.key==="?")){i.preventDefault(),g();return}if(i.key==="F1"){i.preventDefault(),o();return}},[t,g,o]);return useEffect(()=>{if(t)return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[t,c]),{isOpen:y,open:o,close:m,toggle:g,handleKeyDown:c}}
|
|
2
2
|
export{oe as a,re as b,ie as c,se as d,ae as e,ne as f,Z as g,V as h,G as i,J as j,$ as k,be as l,fe as m};
|
package/dist/chunk-74OM4KEH.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var chunkPSBO3UDN_js=require('./chunk-PSBO3UDN.js'),chunkGNIO6SOS_js=require('./chunk-GNIO6SOS.js'),react=require('react'),utils=require('@eigenpal/docx-editor-core/utils'),jsxRuntime=require('react/jsx-runtime');var v=[{id:"formatted",labelKey:"dialogs.pasteSpecial.keepFormatting",descriptionKey:"dialogs.pasteSpecial.keepFormattingDescription",shortcutKey:"dialogs.pasteSpecial.keepFormattingShortcut"},{id:"plainText",labelKey:"dialogs.pasteSpecial.plainText",descriptionKey:"dialogs.pasteSpecial.plainTextDescription",shortcutKey:"dialogs.pasteSpecial.plainTextShortcut"}],N=()=>jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M4 4h12v2H4V4zM4 8h8v2H4V8zM4 12h10v2H4v-2zM4 16h6v2H4v-2z",fill:"currentColor"}),jsxRuntime.jsx("path",{d:"M14 10l3 3-3 3v-2h-2v-2h2v-2z",fill:"currentColor",opacity:"0.6"})]}),_=()=>jsxRuntime.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M4 4h12v1H4V4zM4 7h12v1H4V7zM4 10h12v1H4v-1zM4 13h12v1H4v-1zM4 16h8v1H4v-1z",fill:"currentColor"})});function Y(e){switch(e){case "formatted":return jsxRuntime.jsx(N,{});case "plainText":return jsxRuntime.jsx(_,{});default:return null}}var j=({option:e,isSelected:t,onClick:l,onMouseEnter:y})=>jsxRuntime.jsxs("button",{type:"button",className:`docx-paste-special-option ${t?"docx-paste-special-option-selected":""}`,onClick:l,onMouseEnter:y,role:"menuitem","aria-selected":t,style:{display:"flex",alignItems:"center",gap:"12px",width:"100%",padding:"12px 16px",border:"none",background:t?"var(--doc-primary-light)":"transparent",cursor:"pointer",textAlign:"left",borderRadius:"4px",transition:"background-color 0.15s ease"},children:[jsxRuntime.jsx("span",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"4px",background:t?"var(--doc-primary)":"var(--doc-bg-hover)",color:t?"white":"var(--doc-text-muted)"},children:Y(e.id)}),jsxRuntime.jsxs("div",{style:{flex:1},children:[jsxRuntime.jsx("div",{style:{fontSize:"14px",fontWeight:500,color:"var(--doc-text)",marginBottom:"2px"},children:e.label}),jsxRuntime.jsx("div",{style:{fontSize:"12px",color:"var(--doc-text-muted)"},children:e.description})]}),jsxRuntime.jsx("span",{style:{fontSize:"11px",color:"var(--doc-text-subtle)",fontFamily:"monospace"},children:e.shortcut})]}),oe=({isOpen:e,onClose:t,onPaste:l,position:y,className:b=""})=>{let{t:o}=chunkGNIO6SOS_js.b(),m=react.useRef(null),[g,c]=react.useState(0),[i,S]=react.useState(null),[K,C]=react.useState(false),[s,r]=react.useState(null),a=v.map(d=>({id:d.id,label:o(d.labelKey),description:o(d.descriptionKey),shortcut:o(d.shortcutKey)}));react.useEffect(()=>{if(!e){S(null),r(null),c(0);return}(async()=>{C(true),r(null);try{let p=await utils.readFromClipboard({cleanWordFormatting:!0});S(p),p||r(o("dialogs.pasteSpecial.noContent"));}catch{r(o("dialogs.pasteSpecial.clipboardError"));}finally{C(false);}})();},[e]),react.useEffect(()=>{if(!e)return;let d=p=>{m.current&&!m.current.contains(p.target)&&t();};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[e,t]),react.useEffect(()=>{if(!e)return;let d=p=>{switch(p.key){case "Escape":p.preventDefault(),t();break;case "ArrowDown":p.preventDefault(),c(f=>(f+1)%v.length);break;case "ArrowUp":p.preventDefault(),c(f=>(f-1+v.length)%v.length);break;case "Enter":p.preventDefault(),h(v[g].id);break}};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[e,g,t]);let h=react.useCallback(d=>{if(!i){r(o("dialogs.pasteSpecial.noContent"));return}l(i,d==="plainText"),t();},[i,l,t]),F=react.useCallback(()=>{let f=y?.x??(typeof window<"u"?window.innerWidth/2-160:100),w=y?.y??(typeof window<"u"?window.innerHeight/2-200/2:100);return typeof window<"u"&&(f+320>window.innerWidth&&(f=window.innerWidth-320-10),w+200>window.innerHeight&&(w=window.innerHeight-200-10),f<10&&(f=10),w<10&&(w=10)),{position:"fixed",top:w,left:f,width:320,background:"var(--doc-surface)",border:"1px solid var(--doc-border-light)",borderRadius:"8px",boxShadow:"0 4px 20px var(--doc-shadow)",zIndex:10001,overflow:"hidden"}},[y]);return e?jsxRuntime.jsxs("div",{ref:m,className:`docx-paste-special-dialog ${b}`,style:F(),role:"dialog","aria-label":o("dialogs.pasteSpecial.title"),children:[jsxRuntime.jsxs("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--doc-border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[jsxRuntime.jsx("span",{style:{fontSize:"14px",fontWeight:600,color:"var(--doc-text)"},children:o("dialogs.pasteSpecial.title")}),jsxRuntime.jsx("button",{type:"button",onClick:t,"aria-label":o("common.closeDialog"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"4px",color:"var(--doc-text-muted)"},children:jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),jsxRuntime.jsx("div",{style:{padding:"8px"},children:K?jsxRuntime.jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--doc-text-muted)",fontSize:"13px"},children:o("dialogs.pasteSpecial.readingClipboard")}):s?jsxRuntime.jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--doc-error)",fontSize:"13px"},children:s}):jsxRuntime.jsx("div",{role:"menu",children:a.map((d,p)=>jsxRuntime.jsx(j,{option:d,isSelected:p===g,onClick:()=>h(d.id),onMouseEnter:()=>c(p)},d.id))})}),i&&!K&&!s&&jsxRuntime.jsxs("div",{style:{padding:"8px 16px 12px",borderTop:"1px solid var(--doc-border)"},children:[jsxRuntime.jsx("div",{style:{fontSize:"11px",color:"var(--doc-text-muted)",marginBottom:"4px"},children:o("dialogs.pasteSpecial.preview")}),jsxRuntime.jsxs("div",{style:{fontSize:"12px",color:"var(--doc-text)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",padding:"6px 8px",background:"var(--doc-bg)",borderRadius:"4px"},children:['"',i.plainText.slice(0,50),i.plainText.length>50?"...":"",'"']})]})]}):null};function re(e={}){let{onPaste:t,enabled:l=true}=e,[y,b]=react.useState(false),o=react.useCallback(()=>{l&&b(true);},[l]),m=react.useCallback(()=>{b(false);},[]),g=react.useCallback(async()=>{if(!(!l||!t))try{let i=await utils.readFromClipboard({cleanWordFormatting:!0});i&&t(i,!0);}catch(i){console.error("Failed to paste as plain text:",i);}},[l,t]),c=react.useCallback(i=>l&&(i.ctrlKey||i.metaKey)&&i.shiftKey&&i.key.toLowerCase()==="v"?(i.preventDefault(),o(),true):false,[l,o]);return {isOpen:y,openDialog:o,closeDialog:m,handleKeyDown:c,pasteAsPlainText:g}}function ie(e){return v.find(t=>t.id===e)}function se(){return [...v]}function ae(){return "formatted"}function ne(e){return (e.ctrlKey||e.metaKey)&&e.shiftKey&&e.key.toLowerCase()==="v"}var I={editing:"dialogs.keyboardShortcuts.categories.editing",formatting:"dialogs.keyboardShortcuts.categories.formatting",navigation:"dialogs.keyboardShortcuts.categories.navigation",clipboard:"dialogs.keyboardShortcuts.categories.clipboard",selection:"dialogs.keyboardShortcuts.categories.selection",view:"dialogs.keyboardShortcuts.categories.view",file:"dialogs.keyboardShortcuts.categories.file",other:"dialogs.keyboardShortcuts.categories.other"},M=["file","editing","clipboard","formatting","selection","navigation","view","other"],P=[{id:"save",name:"Save",nameKey:"dialogs.keyboardShortcuts.shortcuts.save",description:"Save document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.saveDescription",keys:"Ctrl+S",category:"file",common:true},{id:"print",name:"Print",nameKey:"dialogs.keyboardShortcuts.shortcuts.print",description:"Print document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.printDescription",keys:"Ctrl+P",category:"file"},{id:"undo",name:"Undo",nameKey:"dialogs.keyboardShortcuts.shortcuts.undo",description:"Undo last action",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.undoDescription",keys:"Ctrl+Z",category:"editing",common:true},{id:"redo",name:"Redo",nameKey:"dialogs.keyboardShortcuts.shortcuts.redo",description:"Redo last action",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.redoDescription",keys:"Ctrl+Y",altKeys:"Ctrl+Shift+Z",category:"editing",common:true},{id:"delete",name:"Delete",nameKey:"dialogs.keyboardShortcuts.shortcuts.delete",description:"Delete selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.deleteDescription",keys:"Del",altKeys:"Backspace",category:"editing"},{id:"find",name:"Find",nameKey:"dialogs.keyboardShortcuts.shortcuts.find",description:"Find text in document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.findDescription",keys:"Ctrl+F",category:"editing",common:true},{id:"replace",name:"Find & Replace",nameKey:"dialogs.keyboardShortcuts.shortcuts.findReplace",description:"Find and replace text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.findReplaceDescription",keys:"Ctrl+H",category:"editing"},{id:"cut",name:"Cut",nameKey:"dialogs.keyboardShortcuts.shortcuts.cut",description:"Cut selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.cutDescription",keys:"Ctrl+X",category:"clipboard",common:true},{id:"copy",name:"Copy",nameKey:"dialogs.keyboardShortcuts.shortcuts.copy",description:"Copy selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.copyDescription",keys:"Ctrl+C",category:"clipboard",common:true},{id:"paste",name:"Paste",nameKey:"dialogs.keyboardShortcuts.shortcuts.paste",description:"Paste from clipboard",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pasteDescription",keys:"Ctrl+V",category:"clipboard",common:true},{id:"paste-plain",name:"Paste as Plain Text",nameKey:"dialogs.keyboardShortcuts.shortcuts.pastePlainText",description:"Paste without formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pastePlainTextDescription",keys:"Ctrl+Shift+V",category:"clipboard"},{id:"bold",name:"Bold",nameKey:"dialogs.keyboardShortcuts.shortcuts.bold",description:"Toggle bold formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.boldDescription",keys:"Ctrl+B",category:"formatting",common:true},{id:"italic",name:"Italic",nameKey:"dialogs.keyboardShortcuts.shortcuts.italic",description:"Toggle italic formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.italicDescription",keys:"Ctrl+I",category:"formatting",common:true},{id:"underline",name:"Underline",nameKey:"dialogs.keyboardShortcuts.shortcuts.underline",description:"Toggle underline formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.underlineDescription",keys:"Ctrl+U",category:"formatting",common:true},{id:"strikethrough",name:"Strikethrough",nameKey:"dialogs.keyboardShortcuts.shortcuts.strikethrough",description:"Toggle strikethrough",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.strikethroughDescription",keys:"Ctrl+Shift+X",category:"formatting"},{id:"subscript",name:"Subscript",nameKey:"dialogs.keyboardShortcuts.shortcuts.subscript",description:"Toggle subscript",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.subscriptDescription",keys:"Ctrl+=",category:"formatting"},{id:"superscript",name:"Superscript",nameKey:"dialogs.keyboardShortcuts.shortcuts.superscript",description:"Toggle superscript",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.superscriptDescription",keys:"Ctrl+Shift+=",category:"formatting"},{id:"align-left",name:"Align Left",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignLeft",description:"Left align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignLeftDescription",keys:"Ctrl+L",category:"formatting"},{id:"align-center",name:"Align Center",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignCenter",description:"Center align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignCenterDescription",keys:"Ctrl+E",category:"formatting"},{id:"align-right",name:"Align Right",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignRight",description:"Right align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignRightDescription",keys:"Ctrl+R",category:"formatting"},{id:"align-justify",name:"Justify",nameKey:"dialogs.keyboardShortcuts.shortcuts.justify",description:"Justify paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.justifyDescription",keys:"Ctrl+J",category:"formatting"},{id:"indent",name:"Increase Indent",nameKey:"dialogs.keyboardShortcuts.shortcuts.increaseIndent",description:"Increase paragraph indent",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.increaseIndentDescription",keys:"Tab",category:"formatting"},{id:"outdent",name:"Decrease Indent",nameKey:"dialogs.keyboardShortcuts.shortcuts.decreaseIndent",description:"Decrease paragraph indent",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.decreaseIndentDescription",keys:"Shift+Tab",category:"formatting"},{id:"select-all",name:"Select All",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectAll",description:"Select all content",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectAllDescription",keys:"Ctrl+A",category:"selection",common:true},{id:"select-word",name:"Select Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectWord",description:"Select current word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectWordDescription",keys:"Double-click",category:"selection"},{id:"select-paragraph",name:"Select Paragraph",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectParagraph",description:"Select current paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectParagraphDescription",keys:"Triple-click",category:"selection"},{id:"extend-selection-word",name:"Extend Selection by Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionByWord",description:"Extend selection to next/previous word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionByWordDescription",keys:"Ctrl+Shift+Arrow",category:"selection"},{id:"extend-selection-line",name:"Extend Selection to Line Edge",nameKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionToLineEdge",description:"Extend selection to line start/end",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionToLineEdgeDescription",keys:"Shift+Home/End",category:"selection"},{id:"move-word",name:"Move by Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveByWord",description:"Move cursor to next/previous word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveByWordDescription",keys:"Ctrl+Arrow",category:"navigation"},{id:"move-line-start",name:"Move to Line Start",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineStart",description:"Move cursor to start of line",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineStartDescription",keys:"Home",category:"navigation"},{id:"move-line-end",name:"Move to Line End",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineEnd",description:"Move cursor to end of line",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineEndDescription",keys:"End",category:"navigation"},{id:"move-doc-start",name:"Move to Document Start",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentStart",description:"Move cursor to start of document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentStartDescription",keys:"Ctrl+Home",category:"navigation"},{id:"move-doc-end",name:"Move to Document End",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentEnd",description:"Move cursor to end of document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentEndDescription",keys:"Ctrl+End",category:"navigation"},{id:"page-up",name:"Page Up",nameKey:"dialogs.keyboardShortcuts.shortcuts.pageUp",description:"Scroll up one page",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pageUpDescription",keys:"Page Up",category:"navigation"},{id:"page-down",name:"Page Down",nameKey:"dialogs.keyboardShortcuts.shortcuts.pageDown",description:"Scroll down one page",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pageDownDescription",keys:"Page Down",category:"navigation"},{id:"zoom-in",name:"Zoom In",nameKey:"dialogs.keyboardShortcuts.shortcuts.zoomIn",description:"Increase zoom level",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.zoomInDescription",keys:"Ctrl++",altKeys:"Ctrl+Scroll Up",category:"view"},{id:"zoom-out",name:"Zoom Out",nameKey:"dialogs.keyboardShortcuts.shortcuts.zoomOut",description:"Decrease zoom level",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.zoomOutDescription",keys:"Ctrl+-",altKeys:"Ctrl+Scroll Down",category:"view"},{id:"zoom-reset",name:"Reset Zoom",nameKey:"dialogs.keyboardShortcuts.shortcuts.resetZoom",description:"Reset zoom to 100%",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.resetZoomDescription",keys:"Ctrl+0",category:"view"},{id:"shortcuts",name:"Keyboard Shortcuts",nameKey:"dialogs.keyboardShortcuts.shortcuts.keyboardShortcuts",description:"Show this help dialog",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.keyboardShortcutsDescription",keys:"Ctrl+/",altKeys:"F1",category:"view"}];function Z(){return [...P]}function V(e){return P.filter(t=>t.category===e)}function G(){return P.filter(e=>e.common)}function J(e){return I[e]}function $(){return [...M]}var be=({isOpen:e,onClose:t,customShortcuts:l=[],showSearch:y=true,className:b=""})=>{let{t:o}=chunkGNIO6SOS_js.b(),m=react.useRef(null),g=react.useRef(null),[c,i]=react.useState(""),S=react.useMemo(()=>{let s=[...P];for(let r of l){let a=s.findIndex(h=>h.id===r.id);a>=0?s[a]=r:s.push(r);}return s},[l]),K=react.useMemo(()=>{if(!c.trim())return S;let s=c.toLowerCase();return S.filter(r=>{let a=r.nameKey?o(r.nameKey):r.name,h=r.descriptionKey?o(r.descriptionKey):r.description;return a.toLowerCase().includes(s)||h.toLowerCase().includes(s)||r.keys.toLowerCase().includes(s)||r.altKeys&&r.altKeys.toLowerCase().includes(s)})},[S,c,o]),C=react.useMemo(()=>{let s=new Map;for(let a of K){let h=s.get(a.category)||[];h.push(a),s.set(a.category,h);}let r=[];for(let a of M){let h=s.get(a);h&&h.length>0&&r.push({category:a,shortcuts:h});}return r},[K]);return react.useEffect(()=>{e&&y&&g.current&&setTimeout(()=>g.current?.focus(),0);},[e,y]),react.useEffect(()=>{e||i("");},[e]),react.useEffect(()=>{if(!e)return;let s=r=>{m.current&&!m.current.contains(r.target)&&t();};return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[e,t]),react.useEffect(()=>{if(!e)return;let s=r=>{r.key==="Escape"&&t();};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[e,t]),e?jsxRuntime.jsx("div",{className:"docx-shortcuts-overlay",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"var(--doc-overlay)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:10001},children:jsxRuntime.jsxs("div",{ref:m,className:`docx-shortcuts-dialog ${b}`,style:{width:"600px",maxWidth:"90vw",maxHeight:"80vh",backgroundColor:"var(--doc-surface)",borderRadius:"12px",boxShadow:"0 4px 24px var(--doc-shadow)",display:"flex",flexDirection:"column",overflow:"hidden"},role:"dialog","aria-label":o("dialogs.keyboardShortcuts.ariaLabel"),children:[jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid var(--doc-border)"},children:[jsxRuntime.jsx("h2",{style:{margin:0,fontSize:"18px",fontWeight:600,color:"var(--doc-text)"},children:o("dialogs.keyboardShortcuts.ariaLabel")}),jsxRuntime.jsx("button",{type:"button",onClick:t,"aria-label":o("common.closeDialog"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"50%",color:"var(--doc-text-muted)"},children:jsxRuntime.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:jsxRuntime.jsx("path",{d:"M5 5l10 10M15 5L5 15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),y&&jsxRuntime.jsx("div",{style:{padding:"12px 20px",borderBottom:"1px solid var(--doc-border)"},children:jsxRuntime.jsx("input",{ref:g,type:"text",value:c,onChange:s=>i(s.target.value),placeholder:o("dialogs.keyboardShortcuts.searchPlaceholder"),style:{width:"100%",padding:"10px 12px",fontSize:"14px",border:"1px solid var(--doc-border-light)",borderRadius:"6px",outline:"none"}})}),jsxRuntime.jsx("div",{style:{flex:1,overflowY:"auto",padding:"16px 20px"},children:C.length===0?jsxRuntime.jsx("div",{style:{textAlign:"center",padding:"32px",color:"var(--doc-text-muted)"},children:o("dialogs.keyboardShortcuts.noResults",{query:c})}):C.map(({category:s,shortcuts:r})=>jsxRuntime.jsxs("div",{style:{marginBottom:"24px"},children:[jsxRuntime.jsx("h3",{style:{margin:"0 0 12px 0",fontSize:"13px",fontWeight:600,color:"var(--doc-primary)",textTransform:"uppercase",letterSpacing:"0.5px"},children:o(I[s])}),jsxRuntime.jsx("div",{children:r.map(a=>jsxRuntime.jsx(chunkPSBO3UDN_js.b,{shortcut:a,translatedName:a.nameKey?o(a.nameKey):a.name,translatedDescription:a.descriptionKey?o(a.descriptionKey):a.description},a.id))})]},s))}),jsxRuntime.jsx("div",{style:{padding:"12px 20px",borderTop:"1px solid var(--doc-border)",backgroundColor:"var(--doc-bg)",fontSize:"12px",color:"var(--doc-text-muted)",textAlign:"center"},children:(()=>{let r=o("dialogs.keyboardShortcuts.pressEscToClose",{key:"Esc"}).split("Esc");return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[r[0],jsxRuntime.jsx("kbd",{style:{padding:"2px 6px",backgroundColor:"var(--doc-surface)",borderRadius:"4px",border:"1px solid var(--doc-border-light)"},children:"Esc"}),r[1]]})})()})]})}):null};function fe(e={}){let{enabled:t=true,openShortcut:l="Ctrl+/"}=e,[y,b]=react.useState(false),o=react.useCallback(()=>{t&&b(true);},[t]),m=react.useCallback(()=>{b(false);},[]),g=react.useCallback(()=>{b(i=>!i);},[]),c=react.useCallback(i=>{if(!t)return;if((i.ctrlKey||i.metaKey)&&(i.key==="/"||i.key==="?")){i.preventDefault(),g();return}if(i.key==="F1"){i.preventDefault(),o();return}},[t,g,o]);return react.useEffect(()=>{if(t)return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[t,c]),{isOpen:y,open:o,close:m,toggle:g,handleKeyDown:c}}
|
|
1
|
+
'use strict';var chunkPSBO3UDN_js=require('./chunk-PSBO3UDN.js'),chunkGNIO6SOS_js=require('./chunk-GNIO6SOS.js'),react=require('react'),utils=require('@sqren/docx-editor-core/utils'),jsxRuntime=require('react/jsx-runtime');var v=[{id:"formatted",labelKey:"dialogs.pasteSpecial.keepFormatting",descriptionKey:"dialogs.pasteSpecial.keepFormattingDescription",shortcutKey:"dialogs.pasteSpecial.keepFormattingShortcut"},{id:"plainText",labelKey:"dialogs.pasteSpecial.plainText",descriptionKey:"dialogs.pasteSpecial.plainTextDescription",shortcutKey:"dialogs.pasteSpecial.plainTextShortcut"}],N=()=>jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M4 4h12v2H4V4zM4 8h8v2H4V8zM4 12h10v2H4v-2zM4 16h6v2H4v-2z",fill:"currentColor"}),jsxRuntime.jsx("path",{d:"M14 10l3 3-3 3v-2h-2v-2h2v-2z",fill:"currentColor",opacity:"0.6"})]}),_=()=>jsxRuntime.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M4 4h12v1H4V4zM4 7h12v1H4V7zM4 10h12v1H4v-1zM4 13h12v1H4v-1zM4 16h8v1H4v-1z",fill:"currentColor"})});function Y(e){switch(e){case "formatted":return jsxRuntime.jsx(N,{});case "plainText":return jsxRuntime.jsx(_,{});default:return null}}var j=({option:e,isSelected:t,onClick:l,onMouseEnter:y})=>jsxRuntime.jsxs("button",{type:"button",className:`docx-paste-special-option ${t?"docx-paste-special-option-selected":""}`,onClick:l,onMouseEnter:y,role:"menuitem","aria-selected":t,style:{display:"flex",alignItems:"center",gap:"12px",width:"100%",padding:"12px 16px",border:"none",background:t?"var(--doc-primary-light)":"transparent",cursor:"pointer",textAlign:"left",borderRadius:"4px",transition:"background-color 0.15s ease"},children:[jsxRuntime.jsx("span",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"4px",background:t?"var(--doc-primary)":"var(--doc-bg-hover)",color:t?"white":"var(--doc-text-muted)"},children:Y(e.id)}),jsxRuntime.jsxs("div",{style:{flex:1},children:[jsxRuntime.jsx("div",{style:{fontSize:"14px",fontWeight:500,color:"var(--doc-text)",marginBottom:"2px"},children:e.label}),jsxRuntime.jsx("div",{style:{fontSize:"12px",color:"var(--doc-text-muted)"},children:e.description})]}),jsxRuntime.jsx("span",{style:{fontSize:"11px",color:"var(--doc-text-subtle)",fontFamily:"monospace"},children:e.shortcut})]}),oe=({isOpen:e,onClose:t,onPaste:l,position:y,className:b=""})=>{let{t:o}=chunkGNIO6SOS_js.b(),m=react.useRef(null),[g,c]=react.useState(0),[i,S]=react.useState(null),[K,C]=react.useState(false),[s,r]=react.useState(null),a=v.map(d=>({id:d.id,label:o(d.labelKey),description:o(d.descriptionKey),shortcut:o(d.shortcutKey)}));react.useEffect(()=>{if(!e){S(null),r(null),c(0);return}(async()=>{C(true),r(null);try{let p=await utils.readFromClipboard({cleanWordFormatting:!0});S(p),p||r(o("dialogs.pasteSpecial.noContent"));}catch{r(o("dialogs.pasteSpecial.clipboardError"));}finally{C(false);}})();},[e]),react.useEffect(()=>{if(!e)return;let d=p=>{m.current&&!m.current.contains(p.target)&&t();};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[e,t]),react.useEffect(()=>{if(!e)return;let d=p=>{switch(p.key){case "Escape":p.preventDefault(),t();break;case "ArrowDown":p.preventDefault(),c(f=>(f+1)%v.length);break;case "ArrowUp":p.preventDefault(),c(f=>(f-1+v.length)%v.length);break;case "Enter":p.preventDefault(),h(v[g].id);break}};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[e,g,t]);let h=react.useCallback(d=>{if(!i){r(o("dialogs.pasteSpecial.noContent"));return}l(i,d==="plainText"),t();},[i,l,t]),F=react.useCallback(()=>{let f=y?.x??(typeof window<"u"?window.innerWidth/2-160:100),w=y?.y??(typeof window<"u"?window.innerHeight/2-200/2:100);return typeof window<"u"&&(f+320>window.innerWidth&&(f=window.innerWidth-320-10),w+200>window.innerHeight&&(w=window.innerHeight-200-10),f<10&&(f=10),w<10&&(w=10)),{position:"fixed",top:w,left:f,width:320,background:"var(--doc-surface)",border:"1px solid var(--doc-border-light)",borderRadius:"8px",boxShadow:"0 4px 20px var(--doc-shadow)",zIndex:10001,overflow:"hidden"}},[y]);return e?jsxRuntime.jsxs("div",{ref:m,className:`docx-paste-special-dialog ${b}`,style:F(),role:"dialog","aria-label":o("dialogs.pasteSpecial.title"),children:[jsxRuntime.jsxs("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--doc-border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[jsxRuntime.jsx("span",{style:{fontSize:"14px",fontWeight:600,color:"var(--doc-text)"},children:o("dialogs.pasteSpecial.title")}),jsxRuntime.jsx("button",{type:"button",onClick:t,"aria-label":o("common.closeDialog"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"4px",color:"var(--doc-text-muted)"},children:jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),jsxRuntime.jsx("div",{style:{padding:"8px"},children:K?jsxRuntime.jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--doc-text-muted)",fontSize:"13px"},children:o("dialogs.pasteSpecial.readingClipboard")}):s?jsxRuntime.jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--doc-error)",fontSize:"13px"},children:s}):jsxRuntime.jsx("div",{role:"menu",children:a.map((d,p)=>jsxRuntime.jsx(j,{option:d,isSelected:p===g,onClick:()=>h(d.id),onMouseEnter:()=>c(p)},d.id))})}),i&&!K&&!s&&jsxRuntime.jsxs("div",{style:{padding:"8px 16px 12px",borderTop:"1px solid var(--doc-border)"},children:[jsxRuntime.jsx("div",{style:{fontSize:"11px",color:"var(--doc-text-muted)",marginBottom:"4px"},children:o("dialogs.pasteSpecial.preview")}),jsxRuntime.jsxs("div",{style:{fontSize:"12px",color:"var(--doc-text)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",padding:"6px 8px",background:"var(--doc-bg)",borderRadius:"4px"},children:['"',i.plainText.slice(0,50),i.plainText.length>50?"...":"",'"']})]})]}):null};function re(e={}){let{onPaste:t,enabled:l=true}=e,[y,b]=react.useState(false),o=react.useCallback(()=>{l&&b(true);},[l]),m=react.useCallback(()=>{b(false);},[]),g=react.useCallback(async()=>{if(!(!l||!t))try{let i=await utils.readFromClipboard({cleanWordFormatting:!0});i&&t(i,!0);}catch(i){console.error("Failed to paste as plain text:",i);}},[l,t]),c=react.useCallback(i=>l&&(i.ctrlKey||i.metaKey)&&i.shiftKey&&i.key.toLowerCase()==="v"?(i.preventDefault(),o(),true):false,[l,o]);return {isOpen:y,openDialog:o,closeDialog:m,handleKeyDown:c,pasteAsPlainText:g}}function ie(e){return v.find(t=>t.id===e)}function se(){return [...v]}function ae(){return "formatted"}function ne(e){return (e.ctrlKey||e.metaKey)&&e.shiftKey&&e.key.toLowerCase()==="v"}var I={editing:"dialogs.keyboardShortcuts.categories.editing",formatting:"dialogs.keyboardShortcuts.categories.formatting",navigation:"dialogs.keyboardShortcuts.categories.navigation",clipboard:"dialogs.keyboardShortcuts.categories.clipboard",selection:"dialogs.keyboardShortcuts.categories.selection",view:"dialogs.keyboardShortcuts.categories.view",file:"dialogs.keyboardShortcuts.categories.file",other:"dialogs.keyboardShortcuts.categories.other"},M=["file","editing","clipboard","formatting","selection","navigation","view","other"],P=[{id:"save",name:"Save",nameKey:"dialogs.keyboardShortcuts.shortcuts.save",description:"Save document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.saveDescription",keys:"Ctrl+S",category:"file",common:true},{id:"print",name:"Print",nameKey:"dialogs.keyboardShortcuts.shortcuts.print",description:"Print document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.printDescription",keys:"Ctrl+P",category:"file"},{id:"undo",name:"Undo",nameKey:"dialogs.keyboardShortcuts.shortcuts.undo",description:"Undo last action",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.undoDescription",keys:"Ctrl+Z",category:"editing",common:true},{id:"redo",name:"Redo",nameKey:"dialogs.keyboardShortcuts.shortcuts.redo",description:"Redo last action",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.redoDescription",keys:"Ctrl+Y",altKeys:"Ctrl+Shift+Z",category:"editing",common:true},{id:"delete",name:"Delete",nameKey:"dialogs.keyboardShortcuts.shortcuts.delete",description:"Delete selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.deleteDescription",keys:"Del",altKeys:"Backspace",category:"editing"},{id:"find",name:"Find",nameKey:"dialogs.keyboardShortcuts.shortcuts.find",description:"Find text in document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.findDescription",keys:"Ctrl+F",category:"editing",common:true},{id:"replace",name:"Find & Replace",nameKey:"dialogs.keyboardShortcuts.shortcuts.findReplace",description:"Find and replace text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.findReplaceDescription",keys:"Ctrl+H",category:"editing"},{id:"cut",name:"Cut",nameKey:"dialogs.keyboardShortcuts.shortcuts.cut",description:"Cut selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.cutDescription",keys:"Ctrl+X",category:"clipboard",common:true},{id:"copy",name:"Copy",nameKey:"dialogs.keyboardShortcuts.shortcuts.copy",description:"Copy selected text",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.copyDescription",keys:"Ctrl+C",category:"clipboard",common:true},{id:"paste",name:"Paste",nameKey:"dialogs.keyboardShortcuts.shortcuts.paste",description:"Paste from clipboard",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pasteDescription",keys:"Ctrl+V",category:"clipboard",common:true},{id:"paste-plain",name:"Paste as Plain Text",nameKey:"dialogs.keyboardShortcuts.shortcuts.pastePlainText",description:"Paste without formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pastePlainTextDescription",keys:"Ctrl+Shift+V",category:"clipboard"},{id:"bold",name:"Bold",nameKey:"dialogs.keyboardShortcuts.shortcuts.bold",description:"Toggle bold formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.boldDescription",keys:"Ctrl+B",category:"formatting",common:true},{id:"italic",name:"Italic",nameKey:"dialogs.keyboardShortcuts.shortcuts.italic",description:"Toggle italic formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.italicDescription",keys:"Ctrl+I",category:"formatting",common:true},{id:"underline",name:"Underline",nameKey:"dialogs.keyboardShortcuts.shortcuts.underline",description:"Toggle underline formatting",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.underlineDescription",keys:"Ctrl+U",category:"formatting",common:true},{id:"strikethrough",name:"Strikethrough",nameKey:"dialogs.keyboardShortcuts.shortcuts.strikethrough",description:"Toggle strikethrough",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.strikethroughDescription",keys:"Ctrl+Shift+X",category:"formatting"},{id:"subscript",name:"Subscript",nameKey:"dialogs.keyboardShortcuts.shortcuts.subscript",description:"Toggle subscript",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.subscriptDescription",keys:"Ctrl+=",category:"formatting"},{id:"superscript",name:"Superscript",nameKey:"dialogs.keyboardShortcuts.shortcuts.superscript",description:"Toggle superscript",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.superscriptDescription",keys:"Ctrl+Shift+=",category:"formatting"},{id:"align-left",name:"Align Left",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignLeft",description:"Left align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignLeftDescription",keys:"Ctrl+L",category:"formatting"},{id:"align-center",name:"Align Center",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignCenter",description:"Center align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignCenterDescription",keys:"Ctrl+E",category:"formatting"},{id:"align-right",name:"Align Right",nameKey:"dialogs.keyboardShortcuts.shortcuts.alignRight",description:"Right align paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.alignRightDescription",keys:"Ctrl+R",category:"formatting"},{id:"align-justify",name:"Justify",nameKey:"dialogs.keyboardShortcuts.shortcuts.justify",description:"Justify paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.justifyDescription",keys:"Ctrl+J",category:"formatting"},{id:"indent",name:"Increase Indent",nameKey:"dialogs.keyboardShortcuts.shortcuts.increaseIndent",description:"Increase paragraph indent",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.increaseIndentDescription",keys:"Tab",category:"formatting"},{id:"outdent",name:"Decrease Indent",nameKey:"dialogs.keyboardShortcuts.shortcuts.decreaseIndent",description:"Decrease paragraph indent",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.decreaseIndentDescription",keys:"Shift+Tab",category:"formatting"},{id:"select-all",name:"Select All",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectAll",description:"Select all content",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectAllDescription",keys:"Ctrl+A",category:"selection",common:true},{id:"select-word",name:"Select Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectWord",description:"Select current word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectWordDescription",keys:"Double-click",category:"selection"},{id:"select-paragraph",name:"Select Paragraph",nameKey:"dialogs.keyboardShortcuts.shortcuts.selectParagraph",description:"Select current paragraph",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.selectParagraphDescription",keys:"Triple-click",category:"selection"},{id:"extend-selection-word",name:"Extend Selection by Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionByWord",description:"Extend selection to next/previous word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionByWordDescription",keys:"Ctrl+Shift+Arrow",category:"selection"},{id:"extend-selection-line",name:"Extend Selection to Line Edge",nameKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionToLineEdge",description:"Extend selection to line start/end",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.extendSelectionToLineEdgeDescription",keys:"Shift+Home/End",category:"selection"},{id:"move-word",name:"Move by Word",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveByWord",description:"Move cursor to next/previous word",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveByWordDescription",keys:"Ctrl+Arrow",category:"navigation"},{id:"move-line-start",name:"Move to Line Start",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineStart",description:"Move cursor to start of line",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineStartDescription",keys:"Home",category:"navigation"},{id:"move-line-end",name:"Move to Line End",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineEnd",description:"Move cursor to end of line",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToLineEndDescription",keys:"End",category:"navigation"},{id:"move-doc-start",name:"Move to Document Start",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentStart",description:"Move cursor to start of document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentStartDescription",keys:"Ctrl+Home",category:"navigation"},{id:"move-doc-end",name:"Move to Document End",nameKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentEnd",description:"Move cursor to end of document",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.moveToDocumentEndDescription",keys:"Ctrl+End",category:"navigation"},{id:"page-up",name:"Page Up",nameKey:"dialogs.keyboardShortcuts.shortcuts.pageUp",description:"Scroll up one page",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pageUpDescription",keys:"Page Up",category:"navigation"},{id:"page-down",name:"Page Down",nameKey:"dialogs.keyboardShortcuts.shortcuts.pageDown",description:"Scroll down one page",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.pageDownDescription",keys:"Page Down",category:"navigation"},{id:"zoom-in",name:"Zoom In",nameKey:"dialogs.keyboardShortcuts.shortcuts.zoomIn",description:"Increase zoom level",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.zoomInDescription",keys:"Ctrl++",altKeys:"Ctrl+Scroll Up",category:"view"},{id:"zoom-out",name:"Zoom Out",nameKey:"dialogs.keyboardShortcuts.shortcuts.zoomOut",description:"Decrease zoom level",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.zoomOutDescription",keys:"Ctrl+-",altKeys:"Ctrl+Scroll Down",category:"view"},{id:"zoom-reset",name:"Reset Zoom",nameKey:"dialogs.keyboardShortcuts.shortcuts.resetZoom",description:"Reset zoom to 100%",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.resetZoomDescription",keys:"Ctrl+0",category:"view"},{id:"shortcuts",name:"Keyboard Shortcuts",nameKey:"dialogs.keyboardShortcuts.shortcuts.keyboardShortcuts",description:"Show this help dialog",descriptionKey:"dialogs.keyboardShortcuts.shortcuts.keyboardShortcutsDescription",keys:"Ctrl+/",altKeys:"F1",category:"view"}];function Z(){return [...P]}function V(e){return P.filter(t=>t.category===e)}function G(){return P.filter(e=>e.common)}function J(e){return I[e]}function $(){return [...M]}var be=({isOpen:e,onClose:t,customShortcuts:l=[],showSearch:y=true,className:b=""})=>{let{t:o}=chunkGNIO6SOS_js.b(),m=react.useRef(null),g=react.useRef(null),[c,i]=react.useState(""),S=react.useMemo(()=>{let s=[...P];for(let r of l){let a=s.findIndex(h=>h.id===r.id);a>=0?s[a]=r:s.push(r);}return s},[l]),K=react.useMemo(()=>{if(!c.trim())return S;let s=c.toLowerCase();return S.filter(r=>{let a=r.nameKey?o(r.nameKey):r.name,h=r.descriptionKey?o(r.descriptionKey):r.description;return a.toLowerCase().includes(s)||h.toLowerCase().includes(s)||r.keys.toLowerCase().includes(s)||r.altKeys&&r.altKeys.toLowerCase().includes(s)})},[S,c,o]),C=react.useMemo(()=>{let s=new Map;for(let a of K){let h=s.get(a.category)||[];h.push(a),s.set(a.category,h);}let r=[];for(let a of M){let h=s.get(a);h&&h.length>0&&r.push({category:a,shortcuts:h});}return r},[K]);return react.useEffect(()=>{e&&y&&g.current&&setTimeout(()=>g.current?.focus(),0);},[e,y]),react.useEffect(()=>{e||i("");},[e]),react.useEffect(()=>{if(!e)return;let s=r=>{m.current&&!m.current.contains(r.target)&&t();};return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[e,t]),react.useEffect(()=>{if(!e)return;let s=r=>{r.key==="Escape"&&t();};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[e,t]),e?jsxRuntime.jsx("div",{className:"docx-shortcuts-overlay",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"var(--doc-overlay)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:10001},children:jsxRuntime.jsxs("div",{ref:m,className:`docx-shortcuts-dialog ${b}`,style:{width:"600px",maxWidth:"90vw",maxHeight:"80vh",backgroundColor:"var(--doc-surface)",borderRadius:"12px",boxShadow:"0 4px 24px var(--doc-shadow)",display:"flex",flexDirection:"column",overflow:"hidden"},role:"dialog","aria-label":o("dialogs.keyboardShortcuts.ariaLabel"),children:[jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid var(--doc-border)"},children:[jsxRuntime.jsx("h2",{style:{margin:0,fontSize:"18px",fontWeight:600,color:"var(--doc-text)"},children:o("dialogs.keyboardShortcuts.ariaLabel")}),jsxRuntime.jsx("button",{type:"button",onClick:t,"aria-label":o("common.closeDialog"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",border:"none",background:"transparent",cursor:"pointer",borderRadius:"50%",color:"var(--doc-text-muted)"},children:jsxRuntime.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:jsxRuntime.jsx("path",{d:"M5 5l10 10M15 5L5 15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),y&&jsxRuntime.jsx("div",{style:{padding:"12px 20px",borderBottom:"1px solid var(--doc-border)"},children:jsxRuntime.jsx("input",{ref:g,type:"text",value:c,onChange:s=>i(s.target.value),placeholder:o("dialogs.keyboardShortcuts.searchPlaceholder"),style:{width:"100%",padding:"10px 12px",fontSize:"14px",border:"1px solid var(--doc-border-light)",borderRadius:"6px",outline:"none"}})}),jsxRuntime.jsx("div",{style:{flex:1,overflowY:"auto",padding:"16px 20px"},children:C.length===0?jsxRuntime.jsx("div",{style:{textAlign:"center",padding:"32px",color:"var(--doc-text-muted)"},children:o("dialogs.keyboardShortcuts.noResults",{query:c})}):C.map(({category:s,shortcuts:r})=>jsxRuntime.jsxs("div",{style:{marginBottom:"24px"},children:[jsxRuntime.jsx("h3",{style:{margin:"0 0 12px 0",fontSize:"13px",fontWeight:600,color:"var(--doc-primary)",textTransform:"uppercase",letterSpacing:"0.5px"},children:o(I[s])}),jsxRuntime.jsx("div",{children:r.map(a=>jsxRuntime.jsx(chunkPSBO3UDN_js.b,{shortcut:a,translatedName:a.nameKey?o(a.nameKey):a.name,translatedDescription:a.descriptionKey?o(a.descriptionKey):a.description},a.id))})]},s))}),jsxRuntime.jsx("div",{style:{padding:"12px 20px",borderTop:"1px solid var(--doc-border)",backgroundColor:"var(--doc-bg)",fontSize:"12px",color:"var(--doc-text-muted)",textAlign:"center"},children:(()=>{let r=o("dialogs.keyboardShortcuts.pressEscToClose",{key:"Esc"}).split("Esc");return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[r[0],jsxRuntime.jsx("kbd",{style:{padding:"2px 6px",backgroundColor:"var(--doc-surface)",borderRadius:"4px",border:"1px solid var(--doc-border-light)"},children:"Esc"}),r[1]]})})()})]})}):null};function fe(e={}){let{enabled:t=true,openShortcut:l="Ctrl+/"}=e,[y,b]=react.useState(false),o=react.useCallback(()=>{t&&b(true);},[t]),m=react.useCallback(()=>{b(false);},[]),g=react.useCallback(()=>{b(i=>!i);},[]),c=react.useCallback(i=>{if(!t)return;if((i.ctrlKey||i.metaKey)&&(i.key==="/"||i.key==="?")){i.preventDefault(),g();return}if(i.key==="F1"){i.preventDefault(),o();return}},[t,g,o]);return react.useEffect(()=>{if(t)return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[t,c]),{isOpen:y,open:o,close:m,toggle:g,handleKeyDown:c}}
|
|
2
2
|
exports.a=oe;exports.b=re;exports.c=ie;exports.d=se;exports.e=ae;exports.f=ne;exports.g=Z;exports.h=V;exports.i=G;exports.j=J;exports.k=$;exports.l=be;exports.m=fe;
|