@eigenpal/docx-editor-vue 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/LICENSE +204 -0
  2. package/README.md +60 -0
  3. package/dist/KeyboardShortcutsDialog-BtJB9UOD.js +2902 -0
  4. package/dist/KeyboardShortcutsDialog-D72k5DXR.cjs +1 -0
  5. package/dist/MenuBar-BrQW4COn.cjs +4 -0
  6. package/dist/MenuBar-D_Dvwb0F.js +3313 -0
  7. package/dist/RenderedDomContext-CHc18N_2.js +2 -0
  8. package/dist/TablePropertiesDialog-Ct5XChwd.cjs +1 -0
  9. package/dist/TablePropertiesDialog-cJx_xxxE.js +987 -0
  10. package/dist/_plugin-vue_export-helper-B52Kst-M.js +8 -0
  11. package/dist/_plugin-vue_export-helper-CX7YVcP6.cjs +1 -0
  12. package/dist/components/DocxEditor/types.d.ts +100 -0
  13. package/dist/components/EditorToolbarContext.d.ts +9 -0
  14. package/dist/components/Toolbar/presets.d.ts +42 -0
  15. package/dist/components/dialogs/index.d.ts +27 -0
  16. package/dist/components/imageContextMenuTypes.d.ts +30 -0
  17. package/dist/components/imageSelectionTypes.d.ts +14 -0
  18. package/dist/components/insertTableState.d.ts +9 -0
  19. package/dist/components/sidebar/cardStyles.d.ts +3 -0
  20. package/dist/components/sidebar/cardUtils.d.ts +1 -0
  21. package/dist/components/sidebar/resolveItemPositions.d.ts +4 -0
  22. package/dist/components/sidebar/sidebarUtils.d.ts +4 -0
  23. package/dist/components/tableStylePresets.d.ts +53 -0
  24. package/dist/components/toolbarUtils.d.ts +1 -0
  25. package/dist/components/ui/Icons.d.ts +1 -0
  26. package/dist/components/ui/hyperlinkPopupTypes.d.ts +20 -0
  27. package/dist/composables/index.d.ts +30 -0
  28. package/dist/composables/useAutoSave.d.ts +40 -0
  29. package/dist/composables/useClipboard.d.ts +22 -0
  30. package/dist/composables/useCommentLifecycle.d.ts +52 -0
  31. package/dist/composables/useCommentManagement.d.ts +41 -0
  32. package/dist/composables/useCommentSidebarItems.d.ts +24 -0
  33. package/dist/composables/useContextMenus.d.ts +39 -0
  34. package/dist/composables/useDocumentLifecycle.d.ts +11 -0
  35. package/dist/composables/useDocxEditor.d.ts +56 -0
  36. package/dist/composables/useDocxEditorRefApi.d.ts +49 -0
  37. package/dist/composables/useDragAutoScroll.d.ts +11 -0
  38. package/dist/composables/useFileIO.d.ts +30 -0
  39. package/dist/composables/useFindReplace.d.ts +34 -0
  40. package/dist/composables/useFixedDropdown.d.ts +14 -0
  41. package/dist/composables/useFormattingActions.d.ts +40 -0
  42. package/dist/composables/useHistory.d.ts +9 -0
  43. package/dist/composables/useHyperlinkManagement.d.ts +38 -0
  44. package/dist/composables/useImageActions.d.ts +30 -0
  45. package/dist/composables/useKeyboardShortcuts.d.ts +17 -0
  46. package/dist/composables/useMenuActions.d.ts +23 -0
  47. package/dist/composables/useOutlineSidebar.d.ts +17 -0
  48. package/dist/composables/usePageSetupControls.d.ts +22 -0
  49. package/dist/composables/usePagesPointer.d.ts +70 -0
  50. package/dist/composables/useSelectionHighlight.d.ts +19 -0
  51. package/dist/composables/useSelectionSync.d.ts +13 -0
  52. package/dist/composables/useTableResize.d.ts +7 -0
  53. package/dist/composables/useTableSelection.d.ts +10 -0
  54. package/dist/composables/useToolbarDropdowns.d.ts +14 -0
  55. package/dist/composables/useTrackedChanges.d.ts +12 -0
  56. package/dist/composables/useVisualLineNavigation.d.ts +11 -0
  57. package/dist/composables/useWheelZoom.d.ts +10 -0
  58. package/dist/composables/useZoom.d.ts +16 -0
  59. package/dist/composables.cjs +1 -0
  60. package/dist/composables.js +485 -0
  61. package/dist/dialogs.cjs +1 -0
  62. package/dist/dialogs.js +3 -0
  63. package/dist/docx-editor-vue.css +2 -0
  64. package/dist/i18n/LocaleContext.d.ts +1 -0
  65. package/dist/i18n/index.d.ts +26 -0
  66. package/dist/index.cjs +20 -0
  67. package/dist/index.d.ts +23 -0
  68. package/dist/index.js +3600 -0
  69. package/dist/lib/utils.d.ts +10 -0
  70. package/dist/plugin-api/RenderedDomContext.d.ts +1 -0
  71. package/dist/plugin-api/index.d.ts +18 -0
  72. package/dist/plugin-api/types.d.ts +28 -0
  73. package/dist/plugin-api.cjs +1 -0
  74. package/dist/plugin-api.js +62 -0
  75. package/dist/renderAsync.d.ts +31 -0
  76. package/dist/styles/index.d.ts +12 -0
  77. package/dist/styles/zIndex.d.ts +24 -0
  78. package/dist/styles.cjs +1 -0
  79. package/dist/styles.js +5 -0
  80. package/dist/ui.cjs +18 -0
  81. package/dist/ui.d.ts +79 -0
  82. package/dist/ui.js +963 -0
  83. package/dist/useTableResize-1oSe9Kjk.js +480 -0
  84. package/dist/useTableResize-lWdIgX9x.cjs +1 -0
  85. package/dist/utils/commentFactories.d.ts +7 -0
  86. package/dist/utils/domQueries.d.ts +28 -0
  87. package/dist/utils/imageClipboard.d.ts +9 -0
  88. package/dist/utils/paraTextHelpers.d.ts +29 -0
  89. package/dist/utils/refApiQueries.d.ts +46 -0
  90. package/dist/zIndex-CH0jZ7U7.cjs +1 -0
  91. package/dist/zIndex-CxELVe_L.js +12 -0
  92. package/package.json +119 -0
@@ -0,0 +1,2 @@
1
+ .paged-editor__pages [data-comment-id]{cursor:pointer;background-color:#ffd4001f;border-bottom:1px solid #ffd40080;transition:background-color .15s}.paged-editor__pages [data-comment-id]:hover{background-color:#ffd40040}.ep-root{--background:0 0% 100%;--foreground:222.2 84% 4.9%;--card:0 0% 100%;--card-foreground:222.2 84% 4.9%;--popover:0 0% 100%;--popover-foreground:222.2 84% 4.9%;--primary:221.2 83.2% 53.3%;--primary-foreground:210 40% 98%;--secondary:210 40% 96.1%;--secondary-foreground:222.2 47.4% 11.2%;--muted:210 40% 96.1%;--muted-foreground:215.4 16.3% 46.9%;--accent:210 40% 96.1%;--accent-foreground:222.2 47.4% 11.2%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--ring:221.2 83.2% 53.3%;--radius:.5rem;--doc-bg:#f8f9fa;--doc-primary:#1a73e8;--doc-primary-hover:#1557b0;--doc-primary-light:#e8f0fe;--doc-text:#202124;--doc-text-muted:#5f6368;--doc-text-subtle:#9aa0a6;--doc-text-placeholder:#999;--doc-border:#e0e0e0;--doc-border-light:#dadce0;--doc-border-dark:#d0d0d0;--doc-border-input:#ccc;--doc-bg-subtle:#f5f5f5;--doc-bg-hover:#f1f3f4;--doc-bg-input:#f8f9fa;--doc-error:#c5221f;--doc-error-bg:#fce8e6;--doc-success:#34a853;--doc-success-bg:#e8f5e9;--doc-warning:#f9a825;--doc-warning-bg:#fff8e1;--doc-link:#0563c1}[contenteditable=true]{caret-color:#000;caret-shape:bar;outline:none}.docx-run-editable[contenteditable=true]{caret-color:#000;min-height:1em;display:inline}.docx-paragraph-empty [contenteditable=true]{min-width:1px;min-height:1em;display:inline-block}.docx-paragraph-editable{cursor:text}.docx-run-editable[contenteditable=true]:focus,.docx-paragraph-editable:focus-within{outline:none}.docx-run-editable::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-editable ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}[contenteditable=true]::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}[contenteditable=true] ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-editable::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-editable ::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run ::selection{color:inherit!important;background-color:#1a73e84d!important}[contenteditable=true]::selection{color:inherit!important;background-color:#1a73e84d!important}[contenteditable=true] ::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-editable::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-editable ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}[contenteditable=true]::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}[contenteditable=true] ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph-editable::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph-editable ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph ::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph-editable::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph-editable ::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph-editable::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-paragraph-editable ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-hyperlink::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-hyperlink ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-hyperlink::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-hyperlink ::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-hyperlink::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-hyperlink ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-highlighted::-moz-selection{color:inherit!important;background-color:#1a73e880!important}.docx-run-highlighted ::-moz-selection{color:inherit!important;background-color:#1a73e880!important}.docx-run-highlighted::selection{color:inherit!important;background-color:#1a73e880!important}.docx-run-highlighted ::selection{color:inherit!important;background-color:#1a73e880!important}.docx-run-highlighted::-moz-selection{color:inherit!important;background-color:#1a73e880!important}.docx-run-highlighted ::-moz-selection{color:inherit!important;background-color:#1a73e880!important}.docx-run-dark-bg::-moz-selection{color:inherit!important;background-color:#64b5f680!important}.docx-run-dark-bg ::-moz-selection{color:inherit!important;background-color:#64b5f680!important}.docx-run-dark-bg::selection{color:inherit!important;background-color:#64b5f680!important}.docx-run-dark-bg ::selection{color:inherit!important;background-color:#64b5f680!important}.docx-run-dark-bg::-moz-selection{color:inherit!important;background-color:#64b5f680!important}.docx-run-dark-bg ::-moz-selection{color:inherit!important;background-color:#64b5f680!important}.docx-run-bold::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-bold ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-bold::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-bold ::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-bold::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-bold ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-italic::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-italic ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-italic::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-italic ::selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-italic::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-run-italic ::-moz-selection{color:inherit!important;background-color:#1a73e84d!important}.docx-find-highlight{border-radius:2px;background-color:#ffeb3b80!important}.docx-find-highlight-current{border-radius:2px;outline:2px solid #ff9800cc;background-color:#ff980099!important}.docx-ai-selection-preview{background-color:#9c27b033;border-bottom:2px dashed #9c27b099}.docx-selection-overlay-container{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.docx-selection-overlay-rect{pointer-events:none;-webkit-user-select:none;user-select:none;background-color:#4285f440;position:absolute}.docx-run-highlighted[contenteditable=true]{caret-color:#333}.docx-run-dark-bg[contenteditable=true]{caret-color:#fff}.docx-editor{cursor:default}.docx-editor-page{cursor:text}.docx-list-marker,.docx-bookmark-start,.docx-bookmark-end,.docx-field,.docx-drawing-placeholder,.docx-shape-placeholder{cursor:default;-webkit-user-select:none;user-select:none}.docx-run-has-variable [contenteditable=false]{cursor:default;-webkit-user-select:all;user-select:all}.layout-table-cell-selected{outline-offset:-2px;outline:2px solid #4285f499;position:relative}.layout-table-cell-selected:after{content:"";pointer-events:none;background-color:#4285f426;position:absolute;inset:0}.layout-table-resize-handle{background-color:#0000;transition:background-color .15s}.layout-table-resize-handle:hover,.layout-table-resize-handle.dragging{background-color:#4285f499}.layout-table-row-resize-handle,.layout-table-edge-handle-bottom{background-color:#0000;transition:background-color .15s}.layout-table-row-resize-handle:hover,.layout-table-row-resize-handle.dragging,.layout-table-edge-handle-bottom:hover,.layout-table-edge-handle-bottom.dragging{background-color:#4285f499}.layout-table-edge-handle-right{background-color:#0000;transition:background-color .15s}.layout-table-edge-handle-right:hover,.layout-table-edge-handle-right.dragging{background-color:#4285f499}.paged-editor--readonly .layout-table-resize-handle,.paged-editor--readonly .layout-table-row-resize-handle,.paged-editor--readonly .layout-table-edge-handle-bottom,.paged-editor--readonly .layout-table-edge-handle-right{display:none!important}.paged-editor--readonly .layout-page-header,.paged-editor--readonly .layout-page-footer{cursor:default;pointer-events:none}.paged-editor--readonly .layout-page-content{cursor:default}.docx-outline-heading-btn:hover{background-color:#f1f3f4}.layout-page-content{cursor:text}.layout-page-header,.layout-page-footer{cursor:pointer;transition:background-color .15s}.layout-page-header:hover,.layout-page-footer:hover{background-color:#2563eb0f}.layout-page-header:empty:hover:after{content:"Double-click to add header";text-align:center;color:#9ca3af;padding:4px 0;font-size:11px;display:block}.layout-page-footer:empty:hover:after{content:"Double-click to add footer";text-align:center;color:#9ca3af;padding:4px 0;font-size:11px;display:block}.hf-editor-pm .ProseMirror{outline:none;min-height:40px;padding:4px}.hf-editor-pm .ProseMirror:focus{outline:none}.hf-editor-pm .ProseMirror p{white-space:pre-wrap;word-wrap:break-word;min-height:1em;margin:0;padding:0;line-height:normal;display:block}.paged-editor--hf-editing .layout-page-content{opacity:.4;pointer-events:none;transition:opacity .15s}.paged-editor--editing-header .layout-page-header{border-bottom:1px dotted #4285f4}.paged-editor--editing-footer .layout-page-footer{border-top:1px dotted #4285f4}.paged-editor--editing-header .layout-page-header>*,.paged-editor--editing-footer .layout-page-footer>*{visibility:hidden}.paged-editor--hf-editing .layout-page-header:hover,.paged-editor--hf-editing .layout-page-footer:hover{background-color:#0000}.docx-section-break{position:relative}.docx-section-break:after{content:"Section Break (" attr(data-section-break) ")";text-align:center;color:var(--doc-text-muted,#9ca3af);border-top:1px dashed var(--doc-border,#d1d5db);pointer-events:none;margin-top:4px;padding-top:2px;font-size:9px;display:block}.ep-hyperlink-popup__icon-btn:hover{background:#f1f3f4}.paged-editor__decoration-overlay{pointer-events:none;z-index:11;position:absolute;inset:0}.ProseMirror-yjs-cursor{word-break:normal;pointer-events:none;border-left:1px solid;border-right:1px solid;margin-left:-1px;margin-right:-1px;position:relative}.ProseMirror-yjs-cursor>div{color:#fff;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;border-radius:3px 3px 3px 0;padding:2px 4px;font-size:11px;font-weight:600;line-height:1;position:absolute;top:-1.05em;left:-1px}.find-replace-dialog[data-v-0c72041a]{z-index:10000;background:#fff;border:1px solid #d1d5db;border-radius:8px;min-width:360px;font-size:13px;position:fixed;top:8px;right:16px;box-shadow:0 4px 12px #00000026}.find-replace-dialog__header[data-v-0c72041a]{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.find-replace-dialog__title[data-v-0c72041a]{color:#1f2937;font-weight:600}.find-replace-dialog__close[data-v-0c72041a]{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex}.find-replace-dialog__close[data-v-0c72041a]:hover{background:#f3f4f6}.find-replace-dialog__body[data-v-0c72041a]{padding:8px 12px 12px}.find-replace-dialog__row[data-v-0c72041a]{align-items:center;gap:4px;margin-bottom:6px;display:flex}.find-replace-dialog__input[data-v-0c72041a]{border:1px solid #d1d5db;border-radius:4px;outline:none;flex:1;padding:5px 8px;font-size:13px}.find-replace-dialog__input[data-v-0c72041a]:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.find-replace-dialog__count[data-v-0c72041a]{color:#6b7280;white-space:nowrap;text-align:center;min-width:60px;font-size:11px}.find-replace-dialog__options[data-v-0c72041a]{color:#4b5563;align-items:center;gap:12px;margin-bottom:6px;font-size:12px;display:flex}.find-replace-dialog__options label[data-v-0c72041a]{cursor:pointer;align-items:center;gap:4px;display:flex}.find-replace-dialog__options input[type=checkbox][data-v-0c72041a]{margin:0}.find-replace-dialog__toggle[data-v-0c72041a]{cursor:pointer;color:#4b5563;background:0 0;border:1px solid #d1d5db;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:11px}.find-replace-dialog__toggle.active[data-v-0c72041a]{color:#3730a3;background:#e0e7ff;border-color:#818cf8}.find-replace-dialog__row button[data-v-0c72041a]{cursor:pointer;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:4px 8px;font-size:12px}.find-replace-dialog__row button[data-v-0c72041a]:hover{background:#f3f4f6}.dialog-overlay[data-v-8ea71e65]{z-index:300;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog[data-v-8ea71e65]{background:#fff;border-radius:8px;min-width:400px;max-width:90vw;box-shadow:0 8px 30px #0003}.dialog__header[data-v-8ea71e65]{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dialog__title[data-v-8ea71e65]{color:#1f2937;font-size:14px;font-weight:600}.dialog__close[data-v-8ea71e65]{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex}.dialog__close[data-v-8ea71e65]:hover{background:#f3f4f6}.dialog__body[data-v-8ea71e65]{padding:16px}.dialog__actions[data-v-8ea71e65]{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.dialog__btn[data-v-8ea71e65]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 16px;font-size:13px}.dialog__btn--primary[data-v-8ea71e65]{color:#fff;background:#3b82f6;border-color:#3b82f6}.dialog__btn--primary[data-v-8ea71e65]:hover{background:#2563eb}.drop-zone[data-v-8ea71e65]{text-align:center;cursor:pointer;border:2px dashed #d1d5db;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;min-height:120px;padding:24px;transition:border-color .2s;display:flex}.drop-zone[data-v-8ea71e65]:hover,.drop-zone--active[data-v-8ea71e65]{background:#eff6ff;border-color:#3b82f6}.drop-zone__icon[data-v-8ea71e65]{color:#9ca3af;justify-content:center;align-items:center;margin-bottom:8px;display:flex}.drop-zone__text[data-v-8ea71e65]{color:#374151;font-size:13px}.drop-zone__hint[data-v-8ea71e65]{color:#9ca3af;margin-top:4px;font-size:11px}.drop-zone__preview[data-v-8ea71e65]{border-radius:4px;max-width:100%;max-height:200px}.drop-zone__error[data-v-8ea71e65]{color:#dc2626;margin-top:8px;font-size:12px}.image-controls[data-v-8ea71e65]{align-items:center;gap:12px;margin-top:12px;font-size:13px;display:flex}.dim-input[data-v-8ea71e65]{border:1px solid #d1d5db;border-radius:4px;width:70px;padding:4px 6px;font-size:13px}.alt-input[data-v-8ea71e65]{border:1px solid #d1d5db;border-radius:4px;width:100%;margin-top:4px;padding:4px 8px;font-size:13px}.lock-label[data-v-8ea71e65]{white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.dialog-overlay[data-v-4dc1170f]{z-index:300;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog[data-v-4dc1170f]{background:#fff;border-radius:8px;min-width:400px;max-width:90vw;box-shadow:0 8px 30px #0003}.dialog__header[data-v-4dc1170f]{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dialog__title[data-v-4dc1170f]{color:#1f2937;font-size:14px;font-weight:600}.dialog__close[data-v-4dc1170f]{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex}.dialog__close[data-v-4dc1170f]:hover{background:#f3f4f6}.dialog__body[data-v-4dc1170f]{padding:16px}.dialog__actions[data-v-4dc1170f]{align-items:center;gap:8px;margin-top:16px;display:flex}.dialog__btn[data-v-4dc1170f]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 16px;font-size:13px}.dialog__btn--primary[data-v-4dc1170f]{color:#fff;background:#3b82f6;border-color:#3b82f6}.dialog__btn--primary[data-v-4dc1170f]:hover{background:#2563eb}.dialog__btn--primary[data-v-4dc1170f]:disabled{opacity:.5;cursor:not-allowed}.dialog__btn--danger[data-v-4dc1170f]{color:#dc2626;border-color:#fca5a5}.dialog__btn--danger[data-v-4dc1170f]:hover{background:#fef2f2}.link-tabs[data-v-4dc1170f]{border-bottom:1px solid #e5e7eb;margin-bottom:12px;display:flex}.link-tab[data-v-4dc1170f]{cursor:pointer;color:#6b7280;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px;font-size:13px}.link-tab.active[data-v-4dc1170f]{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}.field[data-v-4dc1170f]{margin-bottom:12px}.field__label[data-v-4dc1170f]{color:#374151;margin-bottom:4px;font-size:12px;font-weight:500;display:block}.field__input[data-v-4dc1170f]{box-sizing:border-box;border:1px solid #d1d5db;border-radius:4px;outline:none;width:100%;padding:6px 10px;font-size:13px}.field__input[data-v-4dc1170f]:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.field__input--error[data-v-4dc1170f]{border-color:#dc2626}.field__error[data-v-4dc1170f]{color:#dc2626;margin-top:4px;font-size:11px}.field__hint[data-v-4dc1170f]{color:#6b7280;margin-top:4px;font-size:11px}.dialog-overlay[data-v-c5817b27]{z-index:300;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog[data-v-c5817b27]{background:#fff;border-radius:8px;max-width:90vw;box-shadow:0 8px 30px #0003}.symbol-dialog[data-v-c5817b27]{width:480px}.dialog__header[data-v-c5817b27]{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dialog__title[data-v-c5817b27]{color:#1f2937;font-size:14px;font-weight:600}.dialog__close[data-v-c5817b27]{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex}.dialog__close[data-v-c5817b27]:hover{background:#f3f4f6}.dialog__body[data-v-c5817b27]{padding:16px}.dialog__actions[data-v-c5817b27]{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.dialog__btn[data-v-c5817b27]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 16px;font-size:13px}.dialog__btn--primary[data-v-c5817b27]{color:#fff;background:#3b82f6;border-color:#3b82f6}.dialog__btn--primary[data-v-c5817b27]:hover{background:#2563eb}.dialog__btn--primary[data-v-c5817b27]:disabled{opacity:.5;cursor:not-allowed}.symbol-search[data-v-c5817b27]{box-sizing:border-box;border:1px solid #d1d5db;border-radius:4px;outline:none;width:100%;margin-bottom:8px;padding:6px 10px;font-size:13px}.symbol-search[data-v-c5817b27]:focus{border-color:#3b82f6}.symbol-tabs[data-v-c5817b27]{flex-wrap:wrap;gap:2px;margin-bottom:8px;display:flex}.symbol-tab[data-v-c5817b27]{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:11px}.symbol-tab[data-v-c5817b27]:hover{background:#f3f4f6}.symbol-tab.active[data-v-c5817b27]{color:#3730a3;background:#e0e7ff;font-weight:600}.symbol-grid[data-v-c5817b27]{border:1px solid #e5e7eb;border-radius:4px;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:2px;max-height:240px;padding:4px;display:grid;overflow-y:auto}.symbol-cell[data-v-c5817b27]{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.symbol-cell[data-v-c5817b27]:hover{background:#f3f4f6;border-color:#d1d5db}.symbol-cell.selected[data-v-c5817b27]{background:#dbeafe;border-color:#3b82f6}.symbol-cell--small[data-v-c5817b27]{width:28px;height:28px;font-size:14px}.symbol-empty[data-v-c5817b27]{text-align:center;color:#9ca3af;grid-column:1/-1;padding:24px;font-size:13px}.symbol-preview[data-v-c5817b27]{background:#f9fafb;border-radius:4px;align-items:center;gap:12px;margin-top:8px;padding:8px 12px;display:flex}.symbol-preview__char[data-v-c5817b27]{font-size:28px}.symbol-preview__info[data-v-c5817b27]{color:#6b7280;font-family:monospace;font-size:12px}.symbol-recent[data-v-c5817b27]{flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;display:flex}.symbol-recent__label[data-v-c5817b27]{color:#9ca3af;margin-right:4px;font-size:11px}.dialog-overlay[data-v-2bc21138]{z-index:300;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog[data-v-2bc21138]{background:#fff;border-radius:8px;min-width:400px;max-width:90vw;box-shadow:0 8px 30px #0003}.dialog__header[data-v-2bc21138]{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dialog__title[data-v-2bc21138]{color:#1f2937;font-size:14px;font-weight:600}.dialog__close[data-v-2bc21138]{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex}.dialog__close[data-v-2bc21138]:hover{background:#f3f4f6}.dialog__body[data-v-2bc21138]{padding:16px}.dialog__actions[data-v-2bc21138]{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.dialog__btn[data-v-2bc21138]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 16px;font-size:13px}.dialog__btn--primary[data-v-2bc21138]{color:#fff;background:#3b82f6;border-color:#3b82f6}.dialog__btn--primary[data-v-2bc21138]:hover{background:#2563eb}.field[data-v-2bc21138]{margin-bottom:14px}.field__label[data-v-2bc21138]{color:#374151;margin-bottom:4px;font-size:12px;font-weight:500;display:block}.field__textarea[data-v-2bc21138]{resize:vertical;box-sizing:border-box;border:1px solid #d1d5db;border-radius:4px;outline:none;width:100%;padding:6px 10px;font-family:inherit;font-size:13px}.field__textarea[data-v-2bc21138]:focus{border-color:#3b82f6}.field__select[data-v-2bc21138]{background:#fff;border:1px solid #d1d5db;border-radius:4px;outline:none;width:100%;padding:6px 10px;font-size:13px}.field__select--small[data-v-2bc21138]{background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:4px 6px;font-size:12px}.field__input--small[data-v-2bc21138]{border:1px solid #d1d5db;border-radius:4px;width:60px;padding:4px 6px;font-size:12px}.field__color[data-v-2bc21138]{cursor:pointer;border:1px solid #d1d5db;border-radius:4px;width:32px;height:26px;padding:1px}.field-row[data-v-2bc21138]{color:#4b5563;flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.field__checkbox[data-v-2bc21138]{color:#4b5563;cursor:pointer;align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.ps-overlay[data-v-bd508fe8]{z-index:10000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ps-dialog[data-v-bd508fe8]{background:#fff;border-radius:8px;width:100%;min-width:400px;max-width:480px;margin:20px;box-shadow:0 4px 20px #00000026}.ps-header[data-v-bd508fe8]{color:#1f2937;border-bottom:1px solid #e5e7eb;padding:16px 20px 12px;font-size:16px;font-weight:600}.ps-body[data-v-bd508fe8]{flex-direction:column;gap:14px;padding:16px 20px;display:flex}.ps-section-label[data-v-bd508fe8]{color:#6b7280;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.ps-section-label--spaced[data-v-bd508fe8]{margin-top:4px}.ps-row[data-v-bd508fe8]{align-items:center;gap:12px;display:flex}.ps-label[data-v-bd508fe8]{color:#6b7280;flex-shrink:0;width:80px;font-size:13px}.ps-input[data-v-bd508fe8]{color:#1f2937;box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:4px;flex:1;min-width:0;padding:6px 8px;font-size:13px}.ps-input[data-v-bd508fe8]:focus{border-color:#3b82f6;outline:none}.ps-unit[data-v-bd508fe8]{color:#6b7280;flex-shrink:0;width:16px;font-size:11px}.ps-footer[data-v-bd508fe8]{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.ps-btn[data-v-bd508fe8]{cursor:pointer;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 16px;font-size:13px}.ps-btn[data-v-bd508fe8]:hover{background:#f9fafb}.ps-btn--primary[data-v-bd508fe8]{color:#fff;background:#3b82f6;border-color:#3b82f6}.ps-btn--primary[data-v-bd508fe8]:hover{background:#2563eb}.kbd-overlay[data-v-77199050]{z-index:300;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.kbd-dialog[data-v-77199050]{background:#fff;border-radius:8px;flex-direction:column;width:520px;max-width:90vw;max-height:80vh;display:flex;box-shadow:0 8px 30px #0003}.kbd-dialog__header[data-v-77199050]{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.kbd-dialog__title[data-v-77199050]{color:#1f2937;font-size:14px;font-weight:600}.kbd-dialog__close[data-v-77199050]{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex}.kbd-dialog__close[data-v-77199050]:hover{background:#f3f4f6}.kbd-dialog__search[data-v-77199050]{border-bottom:1px solid #e5e7eb;padding:8px 16px}.kbd-dialog__search-input[data-v-77199050]{border:1px solid #d1d5db;border-radius:4px;outline:none;width:100%;padding:6px 10px;font-size:13px}.kbd-dialog__search-input[data-v-77199050]:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.kbd-dialog__body[data-v-77199050]{flex:1;padding:8px 0;overflow-y:auto}.kbd-dialog__empty[data-v-77199050]{text-align:center;color:#9ca3af;padding:24px 16px;font-size:13px}.kbd-dialog__footer[data-v-77199050]{text-align:center;color:#9ca3af;border-top:1px solid #e5e7eb;padding:8px 16px;font-size:12px}.kbd-category[data-v-77199050]{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;padding:8px 16px 4px;font-size:11px;font-weight:600}.kbd-item[data-v-77199050]{justify-content:space-between;align-items:center;padding:5px 16px;display:flex}.kbd-item[data-v-77199050]:hover{background:#f9fafb}.kbd-item__info[data-v-77199050]{flex-direction:column;gap:1px;min-width:0;display:flex}.kbd-item__name[data-v-77199050]{color:#1f2937;font-size:13px;font-weight:500}.kbd-item__desc[data-v-77199050]{color:#9ca3af;font-size:11px}.kbd-item__keys[data-v-77199050]{flex-shrink:0;align-items:center;gap:4px;display:flex}.kbd-or[data-v-77199050]{color:#9ca3af;font-size:11px}.kbd-badge[data-v-77199050]{color:#374151;white-space:nowrap;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:inline-block}.kbd-badge--small[data-v-77199050]{padding:1px 4px;font-size:10px}.tsg__grid[data-v-23526a60]{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px;padding:8px;display:grid}.tsg__item[data-v-23526a60]{cursor:pointer;background:#fff;border:2px solid #0000;border-radius:6px;flex-direction:column;align-items:center;gap:4px;padding:6px;display:flex}.tsg__item[data-v-23526a60]:hover{border-color:#d1d5db}.tsg__item--selected[data-v-23526a60]{background:#eff6ff;border-color:#3b82f6}.tsg__preview[data-v-23526a60]{grid-template-rows:repeat(4,10px);grid-template-columns:repeat(3,20px);gap:0;display:grid}.tsg__cell[data-v-23526a60]{box-sizing:border-box}.tsg__name[data-v-23526a60]{color:#6b7280;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:72px;font-size:9px;line-height:1.2;overflow:hidden}.fnpd-overlay[data-v-844ceb5d]{z-index:10000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fnpd-dialog[data-v-844ceb5d]{background:#fff;border-radius:8px;width:440px;max-width:90vw;box-shadow:0 4px 20px #00000026}.fnpd-dialog__header[data-v-844ceb5d]{color:#1f2937;border-bottom:1px solid #e5e7eb;padding:16px 20px 12px;font-size:16px;font-weight:600}.fnpd-dialog__body[data-v-844ceb5d]{flex-direction:column;gap:12px;max-height:60vh;padding:12px 20px;display:flex;overflow-y:auto}.fnpd-dialog__footer[data-v-844ceb5d]{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.fnpd-fieldset[data-v-844ceb5d]{border:1px solid #e5e7eb;border-radius:6px;margin:0;padding:10px 12px}.fnpd-legend[data-v-844ceb5d]{color:#4b5563;padding:0 4px;font-size:12px;font-weight:600}.fnpd-row[data-v-844ceb5d]{align-items:center;gap:8px;margin-bottom:6px;display:flex}.fnpd-row[data-v-844ceb5d]:last-child{margin-bottom:0}.fnpd-label[data-v-844ceb5d]{color:#6b7280;flex-shrink:0;width:100px;font-size:13px}.fnpd-input[data-v-844ceb5d],.fnpd-select[data-v-844ceb5d]{border:1px solid #d1d5db;border-radius:4px;flex:1;padding:5px 8px;font-size:13px}.fnpd-btn[data-v-844ceb5d]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 16px;font-size:13px}.fnpd-btn--primary[data-v-844ceb5d]{color:#fff;background:#1a73e8;border-color:#1a73e8}.ipd-overlay[data-v-e4b95370]{z-index:10000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ipd-dialog[data-v-e4b95370]{background:#fff;border-radius:8px;width:420px;max-width:90vw;box-shadow:0 4px 20px #00000026}.ipd-dialog__header[data-v-e4b95370]{color:#1f2937;border-bottom:1px solid #e5e7eb;padding:16px 20px 12px;font-size:16px;font-weight:600}.ipd-dialog__body[data-v-e4b95370]{flex-direction:column;gap:12px;max-height:60vh;padding:12px 20px;display:flex;overflow-y:auto}.ipd-dialog__footer[data-v-e4b95370]{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.ipd-fieldset[data-v-e4b95370]{border:1px solid #e5e7eb;border-radius:6px;margin:0;padding:10px 12px}.ipd-legend[data-v-e4b95370]{color:#4b5563;padding:0 4px;font-size:12px;font-weight:600}.ipd-row[data-v-e4b95370]{align-items:center;gap:8px;margin-bottom:6px;display:flex}.ipd-row[data-v-e4b95370]:last-child{margin-bottom:0}.ipd-label[data-v-e4b95370]{color:#6b7280;flex-shrink:0;width:70px;font-size:13px}.ipd-input[data-v-e4b95370],.ipd-select[data-v-e4b95370]{border:1px solid #d1d5db;border-radius:4px;flex:1;padding:5px 8px;font-size:13px}.ipd-btn[data-v-e4b95370]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 16px;font-size:13px}.ipd-btn--primary[data-v-e4b95370]{color:#fff;background:#1a73e8;border-color:#1a73e8}.dialog-overlay[data-v-c5d6a186]{z-index:10000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog[data-v-c5d6a186]{background:#fff;border-radius:8px;flex-direction:column;min-width:340px;max-width:90vw;max-height:90vh;display:flex;box-shadow:0 4px 20px #0003}.dialog__header[data-v-c5d6a186]{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dialog__title[data-v-c5d6a186]{color:#1f2937;font-size:14px;font-weight:600}.dialog__close[data-v-c5d6a186]{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex}.dialog__close[data-v-c5d6a186]:hover{background:#f3f4f6}.dialog__body[data-v-c5d6a186]{padding:16px;overflow-y:auto}.dialog__footer[data-v-c5d6a186]{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.dialog__btn[data-v-c5d6a186]{cursor:pointer;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 16px;font-size:13px}.dialog__btn[data-v-c5d6a186]:hover{background:#f9fafb}.dialog__btn--primary[data-v-c5d6a186]{color:#fff;background:#3b82f6;border-color:#3b82f6}.dialog__btn--primary[data-v-c5d6a186]:hover{background:#2563eb}.dialog__btn[data-v-c5d6a186]:disabled{opacity:.5;cursor:not-allowed}.dialog__btn--primary[data-v-c5d6a186]:disabled:hover{background:#3b82f6}.dialog__separator[data-v-c5d6a186]{color:#9ca3af;align-items:center;margin:14px 0 12px;font-size:12px;display:flex}.dialog__separator[data-v-c5d6a186]:before,.dialog__separator[data-v-c5d6a186]:after{content:"";background:#e5e7eb;flex:1;height:1px}.dialog__separator span[data-v-c5d6a186]{padding:0 10px}.table-grid[data-v-c5d6a186]{border:1px solid #e5e7eb;border-radius:4px;flex-direction:column;gap:2px;padding:4px;display:inline-flex}.table-grid__row[data-v-c5d6a186]{gap:2px;display:flex}.table-grid__cell[data-v-c5d6a186]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:2px;width:20px;height:20px}.table-grid__cell.highlight[data-v-c5d6a186]{background:#dbeafe;border-color:#93c5fd}.table-grid__label[data-v-c5d6a186]{text-align:center;color:#6b7280;margin-top:6px;font-size:12px}.table-manual[data-v-c5d6a186]{align-items:center;gap:16px;font-size:13px;display:flex}.table-manual__field[data-v-c5d6a186]{align-items:center;gap:8px;display:flex}.table-manual__input[data-v-c5d6a186]{text-align:center;border:1px solid #d1d5db;border-radius:4px;width:60px;padding:4px 6px;font-size:13px}.table-manual__input--invalid[data-v-c5d6a186]{border-color:#ef4444}.table-manual__hint[data-v-c5d6a186]{color:#9ca3af;margin-top:6px;font-size:11px}.table-manual__hint--error[data-v-c5d6a186]{color:#ef4444}.table-options[data-v-c5d6a186]{border:none;margin-top:16px;padding:0}.table-options legend[data-v-c5d6a186],.table-options__label[data-v-c5d6a186]{color:#374151;margin-bottom:6px;padding:0;font-size:12px;font-weight:600}.table-options__radio[data-v-c5d6a186]{color:#1f2937;align-items:center;gap:6px;margin-bottom:4px;font-size:13px;display:flex}.psd-overlay[data-v-f9acd08d]{z-index:10000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.psd-dialog[data-v-f9acd08d]{background:#fff;border-radius:8px;width:380px;max-width:90vw;box-shadow:0 4px 20px #00000026}.psd-dialog__header[data-v-f9acd08d]{color:#1f2937;border-bottom:1px solid #e5e7eb;padding:16px 20px 12px;font-size:16px;font-weight:600}.psd-dialog__body[data-v-f9acd08d]{padding:16px 20px}.psd-dialog__footer[data-v-f9acd08d]{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.psd-preview[data-v-f9acd08d]{background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;margin-bottom:12px;padding:8px 10px}.psd-preview__label[data-v-f9acd08d]{color:#9ca3af;margin-bottom:4px;font-size:11px;display:block}.psd-preview__text[data-v-f9acd08d]{color:#374151;word-break:break-all;font-family:ui-monospace,monospace;font-size:12px}.psd-options[data-v-f9acd08d]{flex-direction:column;gap:6px;display:flex}.psd-option[data-v-f9acd08d]{cursor:pointer;border:2px solid #e5e7eb;border-radius:6px;align-items:flex-start;gap:10px;padding:10px 12px;transition:border-color .15s;display:flex}.psd-option[data-v-f9acd08d]:hover{border-color:#d1d5db}.psd-option--selected[data-v-f9acd08d]{background:#eff6ff;border-color:#3b82f6}.psd-option input[data-v-f9acd08d]{margin-top:2px}.psd-option__info[data-v-f9acd08d]{flex-direction:column;display:flex}.psd-option__name[data-v-f9acd08d]{color:#1f2937;font-size:13px;font-weight:500}.psd-option__desc[data-v-f9acd08d]{color:#9ca3af;font-size:11px}.psd-btn[data-v-f9acd08d]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 16px;font-size:13px}.psd-btn--primary[data-v-f9acd08d]{color:#fff;background:#1a73e8;border-color:#1a73e8}.docx-split-cell[data-v-84657fc7]{z-index:10000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.docx-split-cell__dialog[data-v-84657fc7]{background:#fff;border-radius:8px;width:100%;min-width:360px;max-width:440px;margin:20px;box-shadow:0 4px 20px #00000026}.docx-split-cell__header[data-v-84657fc7]{border-bottom:1px solid #e5e7eb;padding:16px 20px 12px;font-size:16px;font-weight:600}.docx-split-cell__body[data-v-84657fc7]{flex-direction:column;gap:12px;padding:16px 20px;display:flex}.docx-split-cell__row[data-v-84657fc7]{align-items:center;gap:12px;display:flex}.docx-split-cell__label[data-v-84657fc7]{color:#1f2937;width:160px;font-size:13px}.docx-split-cell__input[data-v-84657fc7]{border:1px solid #d1d5db;border-radius:4px;flex:1;height:32px;padding:0 8px;font-size:13px}.docx-split-cell__footer[data-v-84657fc7]{justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.docx-split-cell__cancel[data-v-84657fc7],.docx-split-cell__apply[data-v-84657fc7]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 16px;font-size:14px}.docx-split-cell__apply[data-v-84657fc7]{color:#fff;background:#1a73e8;border-color:#1a73e8}.docx-split-cell__apply[data-v-84657fc7]:disabled{color:#80868b;cursor:not-allowed;background:#f1f3f4;border-color:#f1f3f4}.tpd-overlay[data-v-2dbea6ed]{z-index:10000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tpd-dialog[data-v-2dbea6ed]{background:#fff;border-radius:8px;width:100%;min-width:360px;max-width:440px;box-shadow:0 4px 20px #00000026}.tpd-dialog__header[data-v-2dbea6ed]{color:#1f2937;border-bottom:1px solid #e5e7eb;padding:16px 20px 12px;font-size:16px;font-weight:600}.tpd-dialog__body[data-v-2dbea6ed]{flex-direction:column;gap:12px;padding:16px 20px;display:flex}.tpd-dialog__footer[data-v-2dbea6ed]{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.tpd-row[data-v-2dbea6ed]{align-items:center;gap:12px;display:flex}.tpd-label[data-v-2dbea6ed]{color:#6b7280;width:80px;font-size:13px}.tpd-input[data-v-2dbea6ed],.tpd-select[data-v-2dbea6ed]{border:1px solid #d1d5db;border-radius:4px;flex:1;padding:6px 8px;font-size:13px}.tpd-unit[data-v-2dbea6ed]{color:#9ca3af;font-size:11px}.tpd-btn[data-v-2dbea6ed]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 16px;font-size:13px}.tpd-btn--primary[data-v-2dbea6ed]{color:#fff;background:#1a73e8;border-color:#1a73e8}.docx-color-picker[data-v-2cbf59ab]{display:inline-block;position:relative}.docx-color-picker__split[data-v-2cbf59ab]{align-items:stretch;gap:2px;height:32px;display:inline-flex}.docx-color-picker__split.is-disabled[data-v-2cbf59ab]{opacity:.38;cursor:default}.docx-color-picker__apply[data-v-2cbf59ab],.docx-color-picker__arrow[data-v-2cbf59ab],.docx-color-picker__button[data-v-2cbf59ab]{color:var(--doc-text-muted,#5f6368);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:background-color .1s;display:inline-flex}.docx-color-picker__apply[data-v-2cbf59ab]{flex-direction:column;gap:0;width:28px;padding:2px 4px}.docx-color-picker__arrow[data-v-2cbf59ab]{width:18px}.docx-color-picker__button[data-v-2cbf59ab]{width:40px;height:32px;padding:2px 6px}.docx-color-picker__button-stack[data-v-2cbf59ab]{flex-direction:column;align-items:center;gap:0;display:flex}.docx-color-picker__apply[data-v-2cbf59ab]:hover:not(:disabled),.docx-color-picker__arrow[data-v-2cbf59ab]:hover:not(:disabled),.docx-color-picker__button[data-v-2cbf59ab]:hover:not(:disabled){background:var(--doc-bg-hover,#f1f3f4)}.docx-color-picker__arrow.is-open[data-v-2cbf59ab],.docx-color-picker__button.is-open[data-v-2cbf59ab]{background:var(--doc-primary-light,#e8f0fe);color:var(--doc-primary,#1a73e8)}.docx-color-picker__apply[data-v-2cbf59ab]:disabled,.docx-color-picker__arrow[data-v-2cbf59ab]:disabled,.docx-color-picker__button[data-v-2cbf59ab]:disabled{cursor:default}.docx-color-picker__bar[data-v-2cbf59ab]{border-radius:1px;width:16px;height:4px;margin-top:-2px;display:block}.docx-color-picker__bar.is-light[data-v-2cbf59ab]{outline:1px solid #bbb}.docx-color-picker__panel[data-v-2cbf59ab]{z-index:10000;background:#fff;border:1px solid #d0d0d0;border-radius:6px;width:auto;padding:10px;position:fixed;box-shadow:0 4px 16px #00000026}.docx-color-picker__auto[data-v-2cbf59ab]{color:#333;cursor:pointer;background:#fff;border:1px solid #d0d0d0;border-radius:4px;align-items:center;gap:8px;width:100%;padding:5px 8px;font-size:12px;display:flex}.docx-color-picker__auto[data-v-2cbf59ab]:hover{background:#f5f5f5}.docx-color-picker__auto-icon[data-v-2cbf59ab]{border-radius:2px;width:16px;height:16px;display:inline-block}.docx-color-picker__auto-icon--auto[data-v-2cbf59ab]{background:#000}.docx-color-picker__auto-icon--none[data-v-2cbf59ab]{background:#fff;border:1px solid #ccc;position:relative}.docx-color-picker__auto-slash[data-v-2cbf59ab]{background:red;height:2px;position:absolute;top:50%;left:-1px;right:-1px;transform:rotate(-45deg)}.docx-color-picker__divider[data-v-2cbf59ab]{background:#e0e0e0;height:1px;margin:8px 0}.docx-color-picker__section-label[data-v-2cbf59ab]{color:#666;margin-bottom:4px;font-size:11px;font-weight:500}.docx-color-picker__grid[data-v-2cbf59ab]{grid-template-columns:repeat(10,18px);gap:2px;display:grid}.docx-color-picker__cell[data-v-2cbf59ab]{cursor:pointer;border:1px solid silver;border-radius:2px;width:18px;height:18px;padding:0;transition:transform .1s,border-color .1s}.docx-color-picker__cell[data-v-2cbf59ab]:hover{z-index:1;border-color:#333;transform:scale(1.15)}.docx-color-picker__cell.is-selected[data-v-2cbf59ab]{border-width:2px;border-color:#06c;box-shadow:0 0 0 1px #06c}.docx-color-picker__custom[data-v-2cbf59ab]{align-items:center;gap:6px;display:flex}.docx-color-picker__hash[data-v-2cbf59ab]{color:#666;font-size:12px}.docx-color-picker__hex[data-v-2cbf59ab]{border:1px solid #ccc;border-radius:3px;width:70px;height:24px;padding:2px 6px;font-size:12px}.docx-color-picker__apply-btn[data-v-2cbf59ab]{cursor:pointer;background:#f5f5f5;border:1px solid #ccc;border-radius:3px;height:24px;padding:0 10px;font-size:12px}.docx-color-picker__apply-btn[data-v-2cbf59ab]:disabled{opacity:.4;cursor:default}.docx-popover[data-v-20a24bb6]{display:inline-flex;position:relative}.docx-popover__panel[data-v-20a24bb6]{z-index:10000;background:#fff;border:1px solid #d1d5db;border-radius:6px;position:fixed;box-shadow:0 4px 16px #0000001f}.editing-mode__trigger[data-v-5d5c5f86]{cursor:pointer;color:#374151;white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;height:28px;padding:2px 6px 2px 4px;font-size:13px;font-weight:400;display:flex}.editing-mode__trigger[data-v-5d5c5f86]:hover,.editing-mode__trigger--open[data-v-5d5c5f86]{background:#f3f4f6}.editing-mode__trigger--compact[data-v-5d5c5f86]{gap:0;padding:2px 4px}.editing-mode__label[data-v-5d5c5f86]{padding:0 2px}.editing-mode__panel[data-v-5d5c5f86]{min-width:220px;padding:4px 0}.editing-mode__option[data-v-5d5c5f86]{cursor:pointer;color:#374151;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 12px;font-size:13px;display:flex}.editing-mode__option[data-v-5d5c5f86]:hover{background:#f3f4f6}.editing-mode__option-text[data-v-5d5c5f86]{flex-direction:column;align-items:flex-start;display:flex}.editing-mode__option-label[data-v-5d5c5f86]{font-weight:500}.editing-mode__option-desc[data-v-5d5c5f86]{color:#9ca3af;font-size:11px}.editing-mode__check[data-v-5d5c5f86]{color:#1a73e8;margin-left:auto}.docx-icon-grid__btn[data-v-435b9662]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:0;height:28px;padding:0 4px;display:inline-flex}.docx-icon-grid__btn[data-v-435b9662]:hover:not(:disabled){color:#0f172a;background:#f1f5f9cc}.docx-icon-grid__btn--open[data-v-435b9662]{background:#f1f5f9}.docx-icon-grid__btn[data-v-435b9662]:disabled{opacity:.3;cursor:not-allowed}.docx-icon-grid__panel[data-v-435b9662]{border-radius:8px;gap:2px;padding:6px;display:flex}.docx-icon-grid__option[data-v-435b9662]{color:#5f6368;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.docx-icon-grid__option[data-v-435b9662]:hover{background:#f3f4f6}.docx-icon-grid__option--active[data-v-435b9662]{color:#1a73e8;background:#1a73e81f}.basic-toolbar[data-v-25c08b74]{scrollbar-width:thin;background:#f1f5f9;border-radius:9999px;flex-wrap:nowrap;align-items:center;gap:1px;min-height:36px;margin:0 8px 4px;padding:4px 8px;display:flex;overflow-x:auto}.basic-toolbar[data-v-25c08b74]::-webkit-scrollbar{height:4px}.basic-toolbar[data-v-25c08b74]::-webkit-scrollbar-thumb{background:#0f172a26;border-radius:2px}.basic-toolbar button[data-v-25c08b74]{cursor:pointer;color:#64748b;white-space:nowrap;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:28px;height:28px;padding:0;font-size:14px;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.basic-toolbar button[data-v-25c08b74]:hover:not(:disabled){color:#0f172a;background:#f1f5f9cc}.basic-toolbar button[data-v-25c08b74]:active:not(:disabled){background:#e2e8f0cc}.basic-toolbar button[data-v-25c08b74]:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.basic-toolbar button[data-v-25c08b74]:disabled{opacity:.3;cursor:not-allowed}.basic-toolbar button.active[data-v-25c08b74]{color:#fff;background:#0f172a}.basic-toolbar button.active[data-v-25c08b74]:hover{color:#fff;background:#1e293b}.basic-toolbar button[data-v-25c08b74] svg{width:18px;height:18px}.dropdown-item--icon[data-v-25c08b74]{align-items:center;gap:10px;min-height:30px;justify-content:flex-start!important;padding:6px 12px!important;font-weight:400!important;display:flex!important}.dropdown-item--icon[data-v-25c08b74] svg{color:#5f6368;flex-shrink:0}.divider[data-v-25c08b74]{background:#e2e8f080;flex-shrink:0;width:1px;height:20px;margin:0 6px}.basic-toolbar[data-v-25c08b74] .editing-mode__trigger{color:#475569;background:0 0;height:28px}.basic-toolbar[data-v-25c08b74] .editing-mode__trigger:hover,.basic-toolbar[data-v-25c08b74] .editing-mode__trigger--open{color:#0f172a;background:#0f172a0f}.toolbar-dropdown[data-v-25c08b74]{align-items:center;display:flex;position:relative}.toolbar-dropdown__trigger[data-v-25c08b74]{cursor:pointer;color:#334155;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:2px;height:28px;padding:0 6px;font-size:12px;display:flex}.toolbar-dropdown__trigger[data-v-25c08b74]:hover{background:#f1f5f9;border-color:#e2e8f0}.chevron[data-v-25c08b74]{color:#94a3b8;font-size:10px}.toolbar-dropdown__menu[data-v-25c08b74]{z-index:10000;background:#fff;border:1px solid #d1d5db;border-radius:6px;min-width:120px;max-height:320px;padding:4px 0;position:fixed;overflow-y:auto;box-shadow:0 4px 12px #0000001f}.toolbar-dropdown__item[data-v-25c08b74]{cursor:pointer;text-align:left;color:#1f2937;white-space:nowrap;background:0 0;border:none;width:100%;padding:6px 12px;font-size:13px;display:block}.toolbar-dropdown__item[data-v-25c08b74]:hover{background:#f3f4f6}.toolbar-dropdown__item.active[data-v-25c08b74]{color:#3730a3;background:#e0e7ff}.toolbar-dropdown__group-label[data-v-25c08b74]{color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;padding:4px 12px 2px;font-size:10px;font-weight:600}.style-trigger[data-v-25c08b74]{min-width:90px}.style-menu[data-v-25c08b74]{min-width:160px}.font-trigger[data-v-25c08b74]{min-width:100px}.font-menu[data-v-25c08b74]{min-width:180px}.font-size-group[data-v-25c08b74]{align-items:center;gap:0;display:flex}.size-btn[data-v-25c08b74]{line-height:1;border:1px solid #e2e8f0!important;border-radius:3px!important;width:22px!important;min-width:22px!important;height:22px!important;padding:0!important;font-size:14px!important}.size-trigger[data-v-25c08b74]{text-align:center;border:1px solid #0000;justify-content:center;width:36px;font-size:13px;font-weight:600}.size-menu[data-v-25c08b74]{min-width:60px}.size-menu .toolbar-dropdown__item[data-v-25c08b74]{text-align:center}.zoom-group[data-v-25c08b74]{align-items:center;gap:0;display:flex}.zoom-trigger[data-v-25c08b74]{text-align:center;border:1px solid #0000;justify-content:center;width:48px;font-size:12px;font-weight:600}.zoom-menu[data-v-25c08b74]{min-width:80px}.zoom-menu .toolbar-dropdown__item[data-v-25c08b74]{text-align:center}.docx-tbp__btn[data-v-51d7b6e0]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.docx-tbp__btn[data-v-51d7b6e0]:hover:not(:disabled){background:#f1f5f9cc}.docx-tbp__panel[data-v-51d7b6e0]{grid-template-columns:repeat(5,32px);gap:2px;padding:4px;display:grid}.docx-tbp__option[data-v-51d7b6e0]{color:#5f6368;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.docx-tbp__option[data-v-51d7b6e0]:hover{background:#f3f4f6}.docx-tbwidth__btn[data-v-c134095d]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.docx-tbwidth__btn[data-v-c134095d]:hover:not(:disabled){background:#f1f5f9cc}.docx-tbwidth__panel[data-v-c134095d]{min-width:120px;padding:4px 0}.docx-tbwidth__option[data-v-c134095d]{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:6px 12px;display:flex}.docx-tbwidth__option[data-v-c134095d]:hover{background:#f3f4f6}.docx-tbwidth__preview[data-v-c134095d]{border-top:1px solid #1f2937;flex-shrink:0;width:40px;display:inline-block}.docx-tbwidth__label[data-v-c134095d]{color:#1f2937;font-size:13px}.docx-tmore__btn[data-v-dbab3895]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.docx-tmore__btn[data-v-dbab3895]:hover:not(:disabled){background:#f1f5f9cc}.docx-tmore__btn--open[data-v-dbab3895]{background:#f1f5f9}.docx-tmore__panel[data-v-dbab3895]{min-width:220px;max-height:70vh;padding:4px 0;overflow-y:auto}.docx-tmore__item[data-v-dbab3895]{color:#374151;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:7px 14px;font-size:13px;display:flex}.docx-tmore__item[data-v-dbab3895]:hover:not(:disabled){background:#f3f4f6}.docx-tmore__item[data-v-dbab3895]:disabled{opacity:.4;cursor:not-allowed}.docx-tmore__item--danger[data-v-dbab3895]:not(:disabled){color:#dc2626}.docx-tmore__grow[data-v-dbab3895]{flex:1}.docx-tmore__separator[data-v-dbab3895]{background:#e5e7eb;height:1px;margin:4px 0}.docx-tmore__section-label[data-v-dbab3895]{color:#9ca3af;padding:6px 14px 2px;font-size:11px;font-weight:500}.docx-tmore__icon-row[data-v-dbab3895]{gap:4px;padding:4px 14px;display:flex}.docx-tmore__icon-btn[data-v-dbab3895]{color:#374151;cursor:pointer;background:0 0;border:1px solid #d1d5db;border-radius:4px;justify-content:center;align-items:center;width:32px;height:28px;display:flex}.docx-tmore__icon-btn[data-v-dbab3895]:hover{background:#f3f4f6}.docx-tmore__icon-btn--active[data-v-dbab3895]{color:#2563eb;background:#eff6ff;border-color:#2563eb}.docx-tmore__sub[data-v-dbab3895]{background:#f9fafb;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:8px 14px}.docx-tmore__sub--list[data-v-dbab3895]{padding:4px 0}.docx-tmore__sub-item[data-v-dbab3895]{color:#374151;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;width:100%;padding:6px 14px;font-size:13px;display:flex}.docx-tmore__sub-item[data-v-dbab3895]:hover{background:#f3f4f6}.docx-tmore__margin-grid[data-v-dbab3895]{grid-template-columns:1fr 1fr;gap:6px;display:grid}.docx-tmore__field[data-v-dbab3895],.docx-tmore__row-field[data-v-dbab3895]{align-items:center;gap:4px;font-size:12px;display:flex}.docx-tmore__row-field[data-v-dbab3895]{margin-bottom:6px}.docx-tmore__field-label[data-v-dbab3895]{text-transform:capitalize;color:#6b7280;width:42px}.docx-tmore__input[data-v-dbab3895],.docx-tmore__select[data-v-dbab3895]{border:1px solid #d1d5db;border-radius:3px;flex:1;min-width:0;padding:2px 4px;font-size:12px}.docx-tmore__unit[data-v-dbab3895]{color:#9ca3af;font-size:10px}.docx-tmore__apply[data-v-dbab3895]{color:#fff;cursor:pointer;background:#2563eb;border:1px solid #2563eb;border-radius:4px;width:100%;margin-top:6px;padding:4px 12px;font-size:12px}.docx-tmore__apply[data-v-dbab3895]:hover{background:#1d4ed8}.divider[data-v-56725acf]{background:#e2e8f080;flex-shrink:0;width:1px;height:20px;margin:0 6px}.reply-thread[data-v-fc8a461d]{margin-top:8px}.reply-thread__more[data-v-fc8a461d]{color:#1a73e8;border-top:1px solid #e8eaed;padding:6px 0;font-size:12px;font-weight:500}.reply-thread__item[data-v-fc8a461d]{border-top:1px solid #e8eaed;padding-top:8px}.reply-thread__item--expanded[data-v-fc8a461d]{margin-bottom:8px}.reply-thread__header[data-v-fc8a461d]{align-items:flex-start;gap:10px;display:flex}.reply-thread__author-block[data-v-fc8a461d]{flex:1;min-width:0}.reply-thread__author[data-v-fc8a461d]{color:#202124;font-size:13px;font-weight:600}.reply-thread__date[data-v-fc8a461d]{color:#5f6368;font-size:11px}.reply-thread__body[data-v-fc8a461d]{color:#202124;margin-top:4px;font-size:13px;line-height:20px}.reply-thread__body--clamp[data-v-fc8a461d]{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.reply-input[data-v-aa3d5b08]{margin-top:12px}.reply-input__field[data-v-aa3d5b08]{box-sizing:border-box;border-radius:20px;outline:none;width:100%;padding:8px 16px;font-family:inherit;font-size:14px}.reply-input__field--inactive[data-v-aa3d5b08]{color:#80868b;cursor:text;background:#fff;border:1px solid #dadce0}.reply-input__field--active[data-v-aa3d5b08]{color:#202124;background:#fff;border:1px solid #1a73e8}.reply-input__actions[data-v-aa3d5b08]{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.reply-input__cancel[data-v-aa3d5b08]{color:#1a73e8;cursor:pointer;background:0 0;border:none;padding:6px 16px;font-family:inherit;font-size:14px;font-weight:500}.reply-input__submit[data-v-aa3d5b08]{color:#80868b;cursor:default;background:#f1f3f4;border:none;border-radius:20px;padding:6px 16px;font-family:inherit;font-size:14px;font-weight:500}.reply-input__submit--active[data-v-aa3d5b08]{color:#fff;cursor:pointer;background:#1a73e8}.comment-card[data-v-b9e94a26]{cursor:pointer;background:#f8fbff;border-radius:8px;margin-bottom:6px;padding:8px 10px;transition:box-shadow .15s,background-color .15s,padding .15s;box-shadow:0 1px 3px #3c404333,0 2px 6px #3c404314}.comment-card--expanded[data-v-b9e94a26]{background:#fff;padding:10px 12px;box-shadow:0 1px 3px #3c40434d,0 4px 8px 3px #3c404326}.comment-card__resolved[data-v-b9e94a26]{color:#188038;background:#e6f4ea;border-radius:10px;align-items:center;gap:4px;margin-bottom:8px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.comment-card__head[data-v-b9e94a26]{align-items:flex-start;gap:10px;display:flex}.comment-card__author-block[data-v-b9e94a26]{flex:1;min-width:0}.comment-card__author[data-v-b9e94a26]{color:#202124;font-size:13px;font-weight:600}.comment-card__date[data-v-b9e94a26]{color:#5f6368;font-size:11px}.comment-card__actions[data-v-b9e94a26]{gap:4px;margin-top:2px;display:flex;position:relative}.comment-card__icon-btn[data-v-b9e94a26]{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;padding:4px;display:flex}.comment-card__icon-btn[data-v-b9e94a26]:hover{background:#3c404314}.comment-card__menu[data-v-b9e94a26]{z-index:100;background:#fff;border-radius:8px;min-width:120px;padding:4px 0;position:absolute;top:32px;right:0;box-shadow:0 2px 6px #3c40434d,0 1px 2px #3c404326}.comment-card__menu-item[data-v-b9e94a26]{text-align:left;color:#202124;cursor:pointer;background:0 0;border:none;width:100%;padding:8px 16px;font-family:inherit;font-size:14px;display:block}.comment-card__menu-item[data-v-b9e94a26]:hover{background:#f1f3f4}.comment-card__body[data-v-b9e94a26]{color:#202124;margin-top:6px;font-size:13px;line-height:20px}.resolved-comment-marker[data-v-c3b210c1]{cursor:pointer;color:#5f6368;align-items:center;padding:2px;transition:opacity .15s;display:inline-flex}.resolved-comment-marker[data-v-c3b210c1]:hover{opacity:.7}.tc-card[data-v-297b1eb8]{cursor:pointer;background:#f8fbff;border-radius:8px;margin-bottom:6px;padding:8px 10px;transition:box-shadow .15s,background-color .15s,padding .15s;box-shadow:0 1px 3px #3c404333,0 2px 6px #3c404314}.tc-card--expanded[data-v-297b1eb8]{background:#fff;padding:10px 12px;box-shadow:0 1px 3px #3c40434d,0 4px 8px 3px #3c404326}.tc-card__head[data-v-297b1eb8]{align-items:flex-start;gap:10px;display:flex}.tc-card__author-block[data-v-297b1eb8]{flex:1;min-width:0}.tc-card__author[data-v-297b1eb8]{color:#202124;font-size:13px;font-weight:600}.tc-card__date[data-v-297b1eb8]{color:#5f6368;font-size:11px}.tc-card__actions[data-v-297b1eb8]{gap:4px;margin-top:2px;display:flex}.tc-card__icon-btn[data-v-297b1eb8]{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;padding:4px;display:flex}.tc-card__icon-btn[data-v-297b1eb8]:hover{background:#3c404314}.tc-card__body[data-v-297b1eb8]{color:#202124;margin-top:6px;font-size:13px;line-height:20px}.tc-card__deleted[data-v-297b1eb8]{color:#c5221f;font-weight:500}.tc-card__inserted[data-v-297b1eb8]{color:#137333;font-weight:500}.add-comment-card[data-v-cc70979b]{z-index:50;background:#fff;border-radius:8px;margin-bottom:6px;padding:12px;box-shadow:0 1px 3px #3c40434d,0 4px 8px 3px #3c404326}.add-comment-card__field[data-v-cc70979b]{resize:none;box-sizing:border-box;color:#202124;border:1px solid #1a73e8;border-radius:20px;outline:none;width:100%;min-height:40px;padding:8px 16px;font-family:inherit;font-size:14px;line-height:20px}.add-comment-card__actions[data-v-cc70979b]{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.add-comment-card__cancel[data-v-cc70979b]{color:#1a73e8;cursor:pointer;background:0 0;border:none;padding:6px 16px;font-family:inherit;font-size:14px;font-weight:500}.add-comment-card__submit[data-v-cc70979b]{color:#80868b;cursor:default;background:#f1f3f4;border:none;border-radius:20px;padding:6px 16px;font-family:inherit;font-size:14px;font-weight:500}.add-comment-card__submit--active[data-v-cc70979b]{color:#fff;cursor:pointer;background:#1a73e8}.unified-sidebar[data-v-7996a167]{pointer-events:auto;z-index:5;background:0 0;font-family:Google Sans,Roboto,Arial,sans-serif;transition:opacity .15s}.unified-sidebar__inner[data-v-7996a167]{padding:0 8px;position:relative}.unified-sidebar__addcomment[data-v-7996a167]{margin-bottom:8px;position:relative}.docx-comment-margin-markers__btn[data-v-a20c82d9]{cursor:pointer;pointer-events:auto;color:#5f6368;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-family:inherit;transition:opacity .15s;display:flex;position:absolute;left:0}.docx-comment-margin-markers__btn[data-v-a20c82d9]:hover{opacity:.7}.docx-horizontal-ruler[data-v-a27ea349]{flex-shrink:0;display:block;position:relative}.docx-horizontal-ruler__ticks[data-v-a27ea349]{pointer-events:none;position:absolute;inset:0}.docx-horizontal-ruler__tick-line[data-v-a27ea349]{background-color:var(--doc-text-subtle,#9aa0a6);width:1px;position:absolute;bottom:0}.docx-horizontal-ruler__tick-label[data-v-a27ea349]{color:var(--doc-text-muted,#5f6368);white-space:nowrap;font-family:sans-serif;font-size:9px;position:absolute;top:3px;transform:translate(-50%)}.docx-horizontal-ruler__tab[data-v-a27ea349]{color:#555;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:10px;height:12px;font-size:8px;font-weight:700;display:flex;position:absolute;bottom:0;transform:translate(-5px)}.docx-horizontal-ruler__tooltip[data-v-a27ea349]{color:#fff;white-space:nowrap;pointer-events:none;z-index:20;background:#333;border-radius:3px;padding:2px 6px;font-family:sans-serif;font-size:10px;position:absolute;top:-22px;transform:translate(-50%)}.docx-vertical-ruler[data-v-6e1bbe22]{flex-shrink:0;display:block}.docx-vertical-ruler__ticks[data-v-6e1bbe22]{pointer-events:none;position:absolute;inset:0}.docx-vertical-ruler__tick-line[data-v-6e1bbe22]{background-color:var(--doc-text-subtle,#9aa0a6);height:1px;position:absolute;right:0}.docx-vertical-ruler__tick-label[data-v-6e1bbe22]{color:var(--doc-text-muted,#5f6368);white-space:nowrap;font-family:sans-serif;font-size:9px;position:absolute;left:2px;transform:translateY(-50%)}.docx-vertical-ruler__marker[data-v-6e1bbe22]{background:0 0}.doc-name[data-v-d78ee2fa]{align-items:center;display:inline-flex}.doc-name__input[data-v-d78ee2fa],.doc-name__text[data-v-d78ee2fa]{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-radius:4px;outline:none;min-width:100px;max-width:300px;padding:0 8px;font-size:16px;font-weight:400;line-height:1.25;overflow:hidden}.doc-name__input[data-v-d78ee2fa]{height:24px;transition:background .12s,box-shadow .12s}.doc-name__input[data-v-d78ee2fa]:hover{background:#f8fafc}.doc-name__input[data-v-d78ee2fa]:focus{background:#fff;box-shadow:0 0 0 1px #cbd5e1}.docx-menu-dropdown__trigger[data-v-65cffcb2]{cursor:pointer;color:#374151;white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:2px;height:28px;padding:2px 8px;font-size:13px;font-weight:400;display:flex}.docx-menu-dropdown__trigger[data-v-65cffcb2]:hover,.docx-menu-dropdown__trigger--open[data-v-65cffcb2]{background:#f3f4f6}.docx-menu-dropdown__menu[data-v-65cffcb2]{min-width:200px;padding:4px 0}.docx-menu-dropdown__wrap[data-v-65cffcb2]{position:relative}.docx-menu-dropdown__item[data-v-65cffcb2]{cursor:pointer;color:#374151;text-align:left;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:6px 12px;font-size:13px;display:flex}.docx-menu-dropdown__item[data-v-65cffcb2]:hover:not(.docx-menu-dropdown__item--disabled){background:#f3f4f6}.docx-menu-dropdown__item--disabled[data-v-65cffcb2]{opacity:.4;cursor:default}.docx-menu-dropdown__label[data-v-65cffcb2]{flex:1}.docx-menu-dropdown__shortcut[data-v-65cffcb2]{color:#9ca3af;margin-left:auto;font-family:monospace;font-size:11px}.docx-menu-dropdown__chevron[data-v-65cffcb2]{color:#9ca3af;margin-left:auto;display:inline-flex}.docx-menu-dropdown__submenu[data-v-65cffcb2]{z-index:1;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:8px;position:absolute;top:-4px;left:100%;box-shadow:0 4px 12px #0000001f}.docx-menu-dropdown__separator[data-v-65cffcb2]{background:#e5e7eb;height:1px;margin:4px 0}.docx-table-grid-inline__grid[data-v-ecd8fc63]{gap:2px;display:grid}.docx-table-grid-inline__cell[data-v-ecd8fc63]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:2px;width:18px;height:18px;transition:background-color .1s,border-color .1s}.docx-table-grid-inline__cell--active[data-v-ecd8fc63]{background:#3b82f6;border-color:#3b82f6}.docx-table-grid-inline__label[data-v-ecd8fc63]{color:#374151;text-align:center;margin-top:6px;font-size:11px;font-weight:500}.menu-bar[data-v-31c47d54]{align-items:center;display:flex}.image-overlay[data-v-a6f20ec2]{overflow:visible}.image-overlay__border[data-v-a6f20ec2]{pointer-events:none;border:2px solid #2563eb;border-radius:2px;position:absolute;inset:-2px}.image-overlay__body[data-v-a6f20ec2]{pointer-events:auto;position:absolute;inset:0}.image-overlay__handle[data-v-a6f20ec2]{z-index:16;box-sizing:border-box;pointer-events:auto;background:#2563eb;border:1px solid #fff;border-radius:2px;width:10px;height:10px;position:absolute;box-shadow:0 1px 3px #0000004d}.image-overlay__rotate-line[data-v-a6f20ec2]{pointer-events:none;border-left:1px solid #2563eb;width:0;height:22px;position:absolute;top:-22px;left:50%}.image-overlay__rotate-handle[data-v-a6f20ec2]{cursor:grab;z-index:16;box-sizing:border-box;pointer-events:auto;background:#fff;border:2px solid #2563eb;border-radius:50%;width:14px;height:14px;position:absolute;top:-32px;box-shadow:0 1px 3px #0000004d}.image-overlay__rotate-handle[data-v-a6f20ec2]:active{cursor:grabbing}.image-overlay__dim[data-v-a6f20ec2]{color:#fff;white-space:nowrap;pointer-events:none;background:#000000bf;border-radius:4px;padding:2px 8px;font-size:11px;position:absolute;bottom:-24px;left:50%;transform:translate(-50%)}.image-overlay__dim--rotate[data-v-a6f20ec2]{top:-52px;bottom:auto}.doc-outline[data-v-cb2cdc39]{z-index:40;flex-direction:column;width:240px;font-family:Google Sans,Roboto,Arial,sans-serif;animation:.15s ease-out docOutlineIn-cb2cdc39;display:flex;position:absolute;top:24px;bottom:0;left:30px}@keyframes docOutlineIn-cb2cdc39{0%{transform:translate(-280px)}to{transform:translate(0)}}.doc-outline__header[data-v-cb2cdc39]{align-items:center;gap:8px;padding:16px 16px 12px;display:flex}.doc-outline__back[data-v-cb2cdc39]{cursor:pointer;color:#444746;background:0 0;border:none;border-radius:50%;align-items:center;padding:4px;display:flex}.doc-outline__back[data-v-cb2cdc39]:hover{background:#3c404314}.doc-outline__title[data-v-cb2cdc39]{color:#1f1f1f;letter-spacing:.01em;font-size:14px;font-weight:400}.doc-outline__body[data-v-cb2cdc39]{flex:1;padding-left:20px;overflow-y:auto}.doc-outline__empty[data-v-cb2cdc39]{color:#80868b;padding:8px 16px;font-size:13px;line-height:20px}.doc-outline__item[data-v-cb2cdc39]{text-align:left;cursor:pointer;color:#374151;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:4px;width:100%;padding:6px 12px;font-size:13px;display:block;overflow:hidden}.doc-outline__item[data-v-cb2cdc39]:hover{background:#3c404314}.docx-editor-vue__page-indicator[data-v-d117bf6e]{color:#fff;white-space:nowrap;pointer-events:none;z-index:1000;-webkit-user-select:none;user-select:none;background-color:#000000b3;border-radius:4px;padding:6px 12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:12px;font-weight:500;transition:opacity .3s;position:absolute;top:50%;right:24px;transform:translateY(-50%)}.hf-editor[data-v-343434c4]{background:#fff;border:2px solid #4285f4;border-radius:4px;box-shadow:0 4px 16px #00000026}.hf-editor__toolbar[data-v-343434c4]{background:#f0f4ff;border-bottom:1px solid #d0daf0;justify-content:space-between;align-items:center;padding:4px 8px;display:flex}.hf-editor__label[data-v-343434c4]{color:#1a73e8;text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}.hf-editor__actions[data-v-343434c4]{gap:4px;display:flex}.hf-editor__btn[data-v-343434c4]{cursor:pointer;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:3px;padding:3px 10px;font-size:12px}.hf-editor__btn[data-v-343434c4]:hover{background:#f3f4f6}.hf-editor__btn--primary[data-v-343434c4]{color:#fff;background:#1a73e8;border-color:#1a73e8}.hf-editor__btn--primary[data-v-343434c4]:hover{background:#1557b0}.hf-editor__content[data-v-343434c4]{outline:none;min-height:40px;padding:8px 12px}.hf-editor__content[data-v-343434c4] .ProseMirror{outline:none;min-height:30px}.ctx-menu-backdrop[data-v-741c4f71]{z-index:399;position:fixed;inset:0}.ctx-menu[data-v-741c4f71]{background:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;min-width:220px;padding:4px 0;box-shadow:0 4px 16px #00000024}.ctx-menu__item[data-v-741c4f71]{cursor:pointer;color:#1f2937;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;height:32px;padding:6px 14px;font-size:13px;display:flex}.ctx-menu__item[data-v-741c4f71]:hover:not(.ctx-menu__item--disabled):not(.ctx-menu__item--divider){background:#f3f4f6}.ctx-menu__item--disabled[data-v-741c4f71]{color:#9ca3af;cursor:default}.ctx-menu__item--divider[data-v-741c4f71]{cursor:default;pointer-events:none;background:#e5e7eb;height:1px;margin:4px 8px;padding:0}.ctx-menu__label[data-v-741c4f71]{flex:1}.ctx-menu__shortcut[data-v-741c4f71]{color:#9ca3af;margin-left:16px;font-size:11px}.image-ctx-menu-backdrop[data-v-5c21ca8c]{z-index:399;position:fixed;inset:0}.image-ctx-menu[data-v-5c21ca8c]{border:1px solid var(--doc-border-light,#e0e0e0);background:#fff;border-radius:8px;outline:none;padding:4px 0;overflow:hidden;box-shadow:0 2px 10px #00000026}.image-ctx-menu__item[data-v-5c21ca8c]{cursor:pointer;width:100%;color:var(--doc-text,#222);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.image-ctx-menu__item[data-v-5c21ca8c]:hover{background:var(--doc-primary-light,#eef4ff)}.image-ctx-menu__icon[data-v-5c21ca8c]{width:18px;color:var(--doc-text-muted,#666);display:inline-flex}.image-ctx-menu__item--current .image-ctx-menu__icon[data-v-5c21ca8c]{color:var(--doc-primary,#2563eb)}.image-ctx-menu__label[data-v-5c21ca8c]{flex:1}.image-ctx-menu__current-dot[data-v-5c21ca8c]{color:var(--doc-primary,#2563eb);font-size:11px}.image-ctx-menu__divider[data-v-5c21ca8c]{background:var(--doc-border-light,#e0e0e0);height:1px;margin:4px 0}.image-ctx-menu__item--text[data-v-5c21ca8c]{padding-left:40px}.image-ctx-menu__shortcut[data-v-5c21ca8c]{color:var(--doc-text-muted,#6b7280);font-size:12px}.image-ctx-menu__item[data-v-5c21ca8c]:disabled{opacity:.4;cursor:not-allowed}.docx-hyperlink-popup[data-v-9d23bb12]{z-index:10000;background:#fff;border:1px solid #dadce0;border-radius:8px;align-items:center;gap:8px;max-width:400px;padding:8px 12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;display:flex;position:absolute;box-shadow:0 1px 3px #0000001f,0 4px 12px #00000014}.docx-hyperlink-popup--edit[data-v-9d23bb12]{flex-direction:column;align-items:stretch;width:320px;padding:12px}.docx-hyperlink-popup__icon[data-v-9d23bb12]{color:#5f6368;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.docx-hyperlink-popup__url[data-v-9d23bb12]{color:#1a73e8;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;max-width:220px;font-size:14px;line-height:20px;text-decoration:none;overflow:hidden}.docx-hyperlink-popup__sep[data-v-9d23bb12]{background:#dadce0;flex-shrink:0;width:1px;height:20px}.docx-hyperlink-popup__btn[data-v-9d23bb12]{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:flex}.docx-hyperlink-popup__btn[data-v-9d23bb12]:hover{background:#f1f3f4}.docx-hyperlink-popup__edit-row[data-v-9d23bb12]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.docx-hyperlink-popup__edit-row[data-v-9d23bb12]:last-child{margin-bottom:0}.docx-hyperlink-popup__input[data-v-9d23bb12]{border:1px solid #dadce0;border-radius:4px;outline:none;flex:1;padding:6px 8px;font-size:14px;line-height:20px}.docx-hyperlink-popup__input[data-v-9d23bb12]:focus{border-color:#1a73e8}.docx-hyperlink-popup__apply[data-v-9d23bb12]{color:#1a73e8;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:6px 12px;font-size:14px;font-weight:600}.docx-hyperlink-popup__apply[data-v-9d23bb12]:disabled{color:#80868b;cursor:not-allowed}.docx-editor-vue{flex-direction:column;height:100%;display:flex;overflow:hidden}.docx-editor-vue__hidden-pm{opacity:0;z-index:-1;pointer-events:none;-webkit-user-select:none;user-select:none;overflow-anchor:none;position:fixed;top:0;left:-9999px}.docx-editor-vue{width:100%}.docx-editor-vue__toolbar-shell{background:#fff;flex-direction:column;flex-shrink:0;display:flex;box-shadow:0 1px 2px #0000000d}.docx-editor-vue__title-bar{background:#fff;align-items:stretch;width:100%;padding:8px 0 4px;font-family:Google Sans Text,system-ui,-apple-system,sans-serif;display:flex}.docx-editor-vue__title-bar-left{flex-shrink:0;align-items:center;padding:0 4px 0 12px;display:flex}.docx-editor-vue__title-bar-right{flex-shrink:0;align-items:center;gap:8px;padding:0 12px;display:flex}.docx-editor-vue__title-bar-center{flex-direction:column;flex:1;justify-content:center;min-width:0;padding:4px 0;display:flex}.docx-editor-vue__title-bar-center>*{padding:0 4px}.docx-editor-vue__title-bar-center .basic-toolbar{width:auto}.docx-editor-vue__editor-scroll{background:var(--doc-bg,#f8f9fa);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.docx-editor-vue__ruler-row{z-index:9;background:var(--doc-bg,#f8f9fa);flex-shrink:0;justify-content:center;padding:4px 20px;display:flex;position:sticky;top:0}.docx-editor-vue__editor-area{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.docx-editor-vue__outline-toggle{z-index:50;color:#444746;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:background-color .15s;display:flex;position:absolute;top:24px;left:48px}.docx-editor-vue__outline-toggle:hover{background:#3c404314}.docx-editor-vue__vertical-ruler{z-index:30;pointer-events:auto;position:absolute;top:48px;left:0}.docx-editor-vue__pages-viewport{scrollbar-gutter:stable both-edges;background:var(--doc-bg,#f8f9fa);cursor:text;flex:1;padding-bottom:24px;position:relative;overflow-y:auto}.docx-editor-vue__pages{position:relative}.docx-editor-vue__floating-comment{z-index:50;color:#1a73e8;cursor:pointer;background:#fff;border:1px solid #1a73e84d;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:background-color .15s,box-shadow .15s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 3px #3c404333}.docx-editor-vue__floating-comment:hover{background:#1a73e814;box-shadow:0 1px 4px #1a73e84d}.docx-editor-vue__table-insert-btn{color:#5f6368;cursor:pointer;z-index:200;background:#f8f9fa;border:1px solid #dadce0;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:flex;position:absolute}.docx-editor-vue__table-insert-btn:hover{background:#e8eaed}.docx-editor-vue__loading{color:#64748b;justify-content:center;align-items:center;padding:2rem;font-size:14px;display:flex}.docx-editor-vue__error{color:#dc2626;background:#fef2f2;border-bottom:1px solid #fecaca;padding:1rem;font-size:13px}.plugin-host[data-v-97fa42f4]{width:100%;height:100%;display:flex;position:relative;overflow:visible}.plugin-host--bottom[data-v-97fa42f4]{flex-direction:column}.plugin-host__editor[data-v-97fa42f4]{flex:1;min-width:0;min-height:0}.plugin-host__panel[data-v-97fa42f4]{background:#fff;border-left:1px solid #e5e7eb;flex-shrink:0}.plugin-host--left .plugin-host__panel[data-v-97fa42f4]{border-left:none;border-right:1px solid #e5e7eb;order:-1}.plugin-host--bottom .plugin-host__panel[data-v-97fa42f4]{border-top:1px solid #e5e7eb;border-left:none}.docx-editor-toolbar[data-v-7d626a51]{background:#fff;flex-direction:column;flex-shrink:0;display:flex;box-shadow:0 1px 2px #0000000a}.docx-editor-toolbar__title-row[data-v-7d626a51]{align-items:stretch;padding:8px 0 4px;display:flex}.docx-editor-toolbar__title-left[data-v-7d626a51]{flex-shrink:0;align-items:center;padding:0 4px 0 12px;display:flex}.docx-editor-toolbar__title-center[data-v-7d626a51]{flex-direction:column;flex:1;justify-content:center;min-width:0;padding:4px 0;display:flex}.docx-editor-toolbar__title-right[data-v-7d626a51]{flex-shrink:0;align-items:center;gap:8px;padding:0 12px;display:flex}.docx-title-bar[data-v-53d684ff]{background:#fff;align-items:stretch;width:100%;padding:8px 0 4px;font-family:Google Sans Text,system-ui,sans-serif;display:flex}.docx-title-bar__left[data-v-53d684ff]{flex-shrink:0;align-items:center;padding:0 4px 0 12px;display:flex}.docx-title-bar__center[data-v-53d684ff]{flex-direction:column;flex:1;justify-content:center;min-width:0;padding:4px 0;display:flex}.docx-title-bar__right[data-v-53d684ff]{flex-shrink:0;align-items:center;gap:8px;padding:0 12px;display:flex}.responsive-toolbar[data-v-30fbba34]{align-items:center;min-height:40px;display:flex;overflow:hidden}.responsive-toolbar__items[data-v-30fbba34]{flex:1;align-items:center;gap:2px;display:flex;overflow:hidden}.responsive-toolbar__overflow[data-v-30fbba34]{flex-shrink:0;position:relative}.responsive-toolbar__overflow-btn[data-v-30fbba34]{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.responsive-toolbar__overflow-btn[data-v-30fbba34]:hover{background:#f1f5f9}.responsive-toolbar__overflow-menu[data-v-30fbba34]{z-index:200;background:#fff;border:1px solid #d1d5db;border-radius:6px;flex-wrap:wrap;gap:2px;min-width:200px;max-width:400px;padding:8px;display:flex;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #0000001f}.docx-font-picker[data-v-e9575b1d]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;min-width:100px;height:28px;padding:0 6px;font-size:13px}.docx-font-picker[data-v-e9575b1d]:disabled{cursor:not-allowed;opacity:.5}.docx-font-size[data-v-966fd914]{align-items:center;gap:0;display:inline-flex}.docx-font-size__btn[data-v-966fd914]{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:3px;width:22px;height:22px;padding:0;font-size:14px;line-height:1}.docx-font-size__btn[data-v-966fd914]:hover:not(:disabled){background:#f1f5f9}.docx-font-size__btn[data-v-966fd914]:disabled{cursor:not-allowed;opacity:.4}.docx-font-size__input[data-v-966fd914]{text-align:center;border:1px solid #0000;border-radius:3px;outline:none;width:36px;height:22px;margin:0 2px;font-size:13px;font-weight:600}.docx-font-size__input[data-v-966fd914]:focus{border-color:#1a73e8}.docx-line-spacing[data-v-fa103426]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;height:28px;padding:0 6px;font-size:13px}.docx-line-spacing[data-v-fa103426]:disabled{cursor:not-allowed;opacity:.5}.docx-style-picker[data-v-e8ec7466]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;min-width:100px;height:28px;padding:0 6px;font-size:13px}.docx-style-picker[data-v-e8ec7466]:disabled{cursor:not-allowed;opacity:.5}.docx-align__btn[data-v-f2eb4f74]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:0;height:28px;padding:0 4px;display:inline-flex}.docx-align__btn[data-v-f2eb4f74]:hover:not(:disabled){color:#0f172a;background:#f1f5f9cc}.docx-align__btn--open[data-v-f2eb4f74]{background:#f1f5f9}.docx-align__btn[data-v-f2eb4f74]:disabled{opacity:.3;cursor:not-allowed}.docx-align__panel[data-v-f2eb4f74]{border-radius:8px;gap:2px;padding:6px;display:flex}.docx-align__option[data-v-f2eb4f74]{color:#5f6368;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.docx-align__option[data-v-f2eb4f74]:hover{background:#f3f4f6}.docx-align__option--active[data-v-f2eb4f74]{color:#1a73e8;background:#1a73e81f}.docx-list-btns[data-v-6e11903a]{gap:1px;display:inline-flex}.docx-list-btns__btn[data-v-6e11903a]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.docx-list-btns__btn[data-v-6e11903a]:hover:not(:disabled){color:#0f172a;background:#f1f5f9cc}.docx-list-btns__btn--active[data-v-6e11903a]{color:#fff;background:#0f172a}.docx-list-btns__btn--active[data-v-6e11903a]:hover{background:#1e293b}.docx-list-btns__btn[data-v-6e11903a]:disabled{opacity:.3;cursor:not-allowed}.docx-zoom-control[data-v-b68bd14b]{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;min-width:70px;height:32px;padding:0 6px;font-size:14px}.docx-zoom-control--compact[data-v-b68bd14b]{min-width:55px;height:28px;font-size:12px}.docx-zoom-control[data-v-b68bd14b]:disabled{cursor:not-allowed;opacity:.5}.docx-tooltip__trigger[data-v-ad4cfb4e]{display:inline-flex}.docx-tooltip[data-v-ad4cfb4e]{z-index:50;color:#fff;pointer-events:none;background:#0f172a;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:500;position:fixed;box-shadow:0 4px 6px -1px #0000001a}.docx-loading[data-v-2bd78a2f]{color:#5f6368;align-items:center;gap:8px;font-size:13px;display:inline-flex}.docx-loading--overlay[data-v-2bd78a2f]{z-index:9999;background:#fffc;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.docx-loading__spinner[data-v-2bd78a2f]{border:2px solid #e5e7eb;border-top-color:#1a73e8;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite docx-loading-spin-2bd78a2f}.docx-loading--small .docx-loading__spinner[data-v-2bd78a2f]{border-width:2px;width:14px;height:14px}.docx-loading--large .docx-loading__spinner[data-v-2bd78a2f]{border-width:3px;width:32px;height:32px}.docx-loading__bar[data-v-2bd78a2f]{background:#e5e7eb;border-radius:2px;width:100%;height:4px;overflow:hidden}.docx-loading__bar-fill[data-v-2bd78a2f]{background:#1a73e8;width:100%;height:100%;transition:width .2s;animation:1.5s linear infinite docx-loading-bar-2bd78a2f}.docx-loading--progress .docx-loading__bar-fill[data-v-2bd78a2f]{animation:none}@keyframes docx-loading-spin-2bd78a2f{to{transform:rotate(360deg)}}@keyframes docx-loading-bar-2bd78a2f{0%{transform:translate(-100%)}to{transform:translate(100%)}}.docx-table-grid__btn[data-v-235ac5f8]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.docx-table-grid__btn[data-v-235ac5f8]:hover:not(:disabled){color:#0f172a;background:#f1f5f9cc}.docx-table-grid__btn[data-v-235ac5f8]:disabled{opacity:.3;cursor:not-allowed}.docx-table-grid__panel[data-v-235ac5f8]{padding:8px}.docx-table-grid__label[data-v-235ac5f8]{text-align:center;color:#5f6368;margin-bottom:6px;font-size:12px}.docx-table-grid__grid[data-v-235ac5f8]{gap:2px;display:grid}.docx-table-grid__cell[data-v-235ac5f8]{cursor:pointer;background:#fff;border:1px solid #d1d5db;width:18px;height:18px;padding:0}.docx-table-grid__cell--active[data-v-235ac5f8]{background:#1a73e8;border-color:#1a73e8}.docx-table-insert[data-v-c5bf5e60]{gap:1px;display:inline-flex}.docx-table-insert__btn[data-v-c5bf5e60]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.docx-table-insert__btn[data-v-c5bf5e60]:hover:not(:disabled){color:#0f172a;background:#f1f5f9cc}.docx-table-insert__btn[data-v-c5bf5e60]:disabled{opacity:.3;cursor:not-allowed}.docx-table-merge[data-v-ec895571]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.docx-table-merge[data-v-ec895571]:hover:not(:disabled){color:#0f172a;background:#f1f5f9cc}.docx-table-merge[data-v-ec895571]:disabled{opacity:.3;cursor:not-allowed}.print-btn[data-v-aa063c92]{cursor:pointer;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:4px;align-items:center;gap:4px;padding:4px 12px;font-size:13px;display:flex}.print-btn[data-v-aa063c92]:hover:not(:disabled){background:#f3f4f6}.print-btn[data-v-aa063c92]:disabled{opacity:.5;cursor:default}.print-btn__icon[data-v-aa063c92]{font-size:14px}.unsaved-indicator[data-v-bf5add7c]{align-items:center;display:inline-flex}.unsaved-indicator__dot[data-v-bf5add7c]{background:#f59e0b;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse-bf5add7c}@keyframes pulse-bf5add7c{0%,to{opacity:1}50%{opacity:.5}}.unsaved-indicator__badge[data-v-bf5add7c]{color:#fff;background:#f59e0b;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:600;display:inline-flex}.unsaved-indicator__text[data-v-bf5add7c]{color:#f59e0b;font-size:12px;font-weight:500}
2
+ /*$vite$:1*/
@@ -0,0 +1 @@
1
+ export { provideLocale, createTranslator, useTranslation, i18nPlugin, defaultLocale, } from './index';
@@ -0,0 +1,26 @@
1
+ import { App, MaybeRef } from 'vue';
2
+ import { en, TFunction, Translations } from '@eigenpal/docx-editor-i18n';
3
+ /**
4
+ * Provide locale strings to descendant components. Call in a parent's
5
+ * `setup()`:
6
+ *
7
+ * provideLocale(myTranslations);
8
+ */
9
+ export declare function provideLocale(i18n?: MaybeRef<Translations | undefined>): void;
10
+ export declare function createTranslator(i18n?: MaybeRef<Translations | undefined>): {
11
+ t: TFunction;
12
+ };
13
+ /**
14
+ * `useTranslation` composable — returns `t(key, vars?)`. Inject-based,
15
+ * so a `provideLocale(...)` call must sit above it in the component tree.
16
+ */
17
+ export declare function useTranslation(): {
18
+ t: TFunction;
19
+ };
20
+ /**
21
+ * Vue plugin for i18n. Install via `app.use(i18nPlugin, translations)`.
22
+ */
23
+ export declare const i18nPlugin: {
24
+ install(app: App, i18n?: Translations): void;
25
+ };
26
+ export { en as defaultLocale };
package/dist/index.cjs ADDED
@@ -0,0 +1,20 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./KeyboardShortcutsDialog-D72k5DXR.cjs`),t=require(`./MenuBar-BrQW4COn.cjs`),n=require(`./_plugin-vue_export-helper-CX7YVcP6.cjs`),r=require(`./zIndex-CH0jZ7U7.cjs`),i=require(`./useTableResize-lWdIgX9x.cjs`);let a=require(`vue`),o=require(`@eigenpal/docx-editor-core/prosemirror/commands/formatting`),s=require(`@eigenpal/docx-editor-core/utils`),c=require(`@eigenpal/docx-editor-core/prosemirror/extensions/nodes/TableExtension`),l=require(`prosemirror-state`),u=require(`@eigenpal/docx-editor-core/layout-bridge/clickToPositionDom`),d=require(`@eigenpal/docx-editor-core/layout-painter`),f=require(`prosemirror-view`),p=require(`@eigenpal/docx-editor-core/prosemirror/schema`),m=require(`@eigenpal/docx-editor-core/prosemirror/conversion`);require(`prosemirror-view/style/prosemirror.css`);let h=require(`@eigenpal/docx-editor-core/utils/units`),g=require(`@eigenpal/docx-editor-core/layout-bridge`),_=require(`@eigenpal/docx-editor-core/layout-engine`),v=require(`@eigenpal/docx-editor-core/prosemirror/commands/paragraph`),y=require(`@eigenpal/docx-editor-core/prosemirror/styles`),b=require(`@eigenpal/docx-editor-core/prosemirror/commands/pageBreak`),x=require(`@eigenpal/docx-editor-core/utils/highlightColors`),S=require(`@eigenpal/docx-editor-core/utils/headingCollector`),C=require(`@eigenpal/docx-editor-core/prosemirror/commands`),w=require(`@eigenpal/docx-editor-core/prosemirror/utils/extractTrackedChanges`),T=require(`@eigenpal/docx-editor-core/layout-bridge/tableInsertHover`),E=require(`@eigenpal/docx-editor-core/utils/reportIssue`),D=require(`@eigenpal/docx-editor-core/prosemirror`),O=require(`@eigenpal/docx-editor-core/plugin-api/RenderedDomContext`);function k(e,t){if(!t.trim())return null;let n=null;return e.descendants((e,r)=>n?!1:e.isTextblock&&e.attrs?.paraId===t?(n={from:r,to:r+e.nodeSize},!1):!0),n}function A(e){let t=[];return e.descendants(e=>!e.isText||!e.text?!0:e.marks.some(e=>e.type.name===`insertion`)?!1:(t.push(e.text),!0)),t.join(``)}function j(e,t,n){if(t>=n)return``;let r=[];return e.nodesBetween(t,n,(e,i)=>{if(!e.isText||!e.text||e.marks.some(e=>e.type.name===`insertion`))return;let a=Math.max(t,i),o=Math.min(n,i+e.text.length);a<o&&r.push(e.text.slice(a-i,o-i))}),r.join(``)}function M(e,t,n,r){if(!r)return null;let i=``,a=[];e.nodesBetween(t,n,(e,t)=>{!e.isText||!e.text||e.marks.some(e=>e.type.name===`insertion`)||(a.push({pos:t,len:e.text.length}),i+=e.text)});let o=i.indexOf(r);if(o===-1||i.indexOf(r,o+1)!==-1)return null;let s=0,c=t,l=t;for(let e of a){let t=s+e.len;if(s<=o&&o<t&&(c=e.pos+(o-s)),s<=o+r.length&&o+r.length<=t){l=e.pos+(o+r.length-s);break}s=t}return{from:c,to:l}}function N(e,t,n){if(!e||!t)return[];let r=n?.caseSensitive??!1,i=n?.limit??20,a=r?t:t.toLowerCase(),o=[];return e.state.doc.descendants(e=>{if(o.length>=i)return!1;if(!e.isTextblock)return!0;let n=e.attrs?.paraId;if(!n)return!1;let s=A(e),c=r?s:s.toLowerCase(),l=c.indexOf(a);return l===-1||c.indexOf(a,l+1)!==-1||o.push({paraId:n,match:s.slice(l,l+t.length),before:s.slice(Math.max(0,l-40),l),after:s.slice(l+t.length,l+t.length+40)}),!1}),o}function ee(e){if(!e)return null;let{selection:t,doc:n}=e.state,r=t.$from,i=r.depth;for(;i>0&&!r.node(i).isTextblock;)i--;let a=i>0?r.node(i):null;if(!a)return null;let o=a.attrs?.paraId??null,s=r.start(i),c=s+a.content.size,l=j(n,s,t.from),u=j(n,t.from,t.to),d=j(n,t.to,c);return{paraId:o,selectedText:u,paragraphText:l+u+d,before:l,after:d}}function P(e,t,n){if(!t||!e)return null;let r=t.pages[n-1];if(!r)return null;let i=new Set,a=[];for(let t of r.fragments){if(t.kind!==`paragraph`)continue;let n=t.pmStart;if(n==null)continue;let r=e.state.doc.nodeAt(n);if(!r||!r.isTextblock)continue;let o=r.attrs?.paraId;!o||i.has(o)||(i.add(o),a.push({paraId:o,text:A(r),styleId:r.attrs?.styleId??void 0}))}return{pageNumber:n,text:a.map(e=>`[${e.paraId}] ${e.text}`).join(`
2
+ `),paragraphs:a}}var te=(0,a.defineComponent)({__name:`DecorationLayer`,props:{getView:{type:Function},getPagesContainer:{type:Function},zoom:{},transactionVersion:{},syncCoordinator:{}},setup(e){let t=e,n=(0,a.ref)(null),r=(0,a.ref)(0),i=null,o=null;function s(){i!==null&&cancelAnimationFrame(i),i=requestAnimationFrame(()=>{i=null;let e=t.getView(),r=t.getPagesContainer(),a=n.value;!e||!r||!a||t.syncCoordinator.isSafeToRender()&&c(e,r,a,t.zoom)})}(0,a.onMounted)(()=>{o=t.syncCoordinator.onRender(()=>{r.value++}),s()}),(0,a.onBeforeUnmount)(()=>{i!==null&&(cancelAnimationFrame(i),i=null),o?.()}),(0,a.watch)(()=>[t.zoom,t.transactionVersion,r.value],()=>s());function c(e,t,n,r){let i=l(e.state);if(i.length===0){n.firstChild&&n.replaceChildren();return}let a=(0,O.createRenderedDomContext)(t,r),o=a.getContainerOffset(),s=document.createDocumentFragment();for(let{decoration:t,from:n,to:r}of i){if(n===r){let r=u(t,e);if(!r)continue;let i=a.getCoordinatesForPosition(n);if(!i)continue;let c=document.createElement(`div`);c.style.cssText=`position:absolute;left:${i.x+o.x}px;top:${i.y+o.y}px;height:${i.height}px;`,c.appendChild(r),s.appendChild(c);continue}let i=d(t);if(!i)continue;let c=a.getRectsForRange(n,r);for(let e of c){let t=document.createElement(`div`);for(let[e,n]of Object.entries(i))e!==`nodeName`&&t.setAttribute(e,n);let n=`position:absolute;left:${e.x+o.x}px;top:${e.y+o.y}px;width:${e.width}px;height:${e.height}px;`;t.style.cssText=n+(i.style??``),s.appendChild(t)}}n.replaceChildren(s)}function l(e){let t=[];for(let n of e.plugins){let r=n.props.decorations;if(!r)continue;let i=r.call(n,e);i&&i.forEachSet(e=>{e.find().forEach(e=>{e.spec?.noOverlay||t.push({decoration:e,from:e.from,to:e.to})})})}return t}function u(e,t){let n=e.type;if(!n)return null;let r=n.toDOM;return typeof r==`function`?r(t,()=>e.from):r instanceof HTMLElement?r.cloneNode(!0):null}function d(e){return e.type?.attrs??null}return(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{ref_key:`overlayRef`,ref:n,class:`paged-editor__decoration-overlay`,"aria-hidden":`true`},null,512))}}),ne=[`data-handle`,`onMousedown`],F=[`title`],re={key:0,class:`image-overlay__dim`},ie={key:1,class:`image-overlay__dim image-overlay__dim--rotate`},ae=4,oe=15,se=(0,a.defineComponent)({__name:`ImageSelectionOverlay`,props:{imageInfo:{},zoom:{},view:{}},emits:[`deselect`,`interact-start`,`interact-end`,`context-menu`],setup(t,{emit:n}){let{t:i}=e.d(),o=t,c=n,f=(0,a.ref)(null),p=(0,a.ref)(!1),m=(0,a.ref)(!1),h=(0,a.ref)(!1),g=(0,a.ref)(0),_=(0,a.ref)(0),v=(0,a.ref)(0),y=(0,a.ref)(null),b=`se`,x=0,S=0,C=0,w=0,T=null,E=null,D=null,O=null;function k(e,t){if(!e)return null;try{let n=e.state.doc.nodeAt(t);return n&&n.type.name===`image`?n:null}catch{return null}}function A(){let e=o.imageInfo;if(!e)return null;if(e.element.isConnected)return e.element;let t=f.value?.closest(`.docx-editor-vue__pages-viewport`)?.querySelector(`.docx-editor-vue__pages`);if(!t)return null;for(let n of t.querySelectorAll(`[data-pm-start="${e.pmPos}"]`)){let e=(0,d.findImageElement)(n);if(e)return e}return null}function j(){let e=A();if(!e||!f.value){y.value=null;return}let t=f.value.offsetParent;if(!t){y.value=null;return}let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),i=o.zoom;y.value={left:(r.left-n.left)/i,top:(r.top-n.top)/i,width:r.width/i,height:r.height/i}}(0,a.watch)(()=>o.imageInfo,async()=>{await(0,a.nextTick)(),j()},{immediate:!0}),(0,a.watch)(()=>o.imageInfo,(e,t,n)=>{if(!o.imageInfo)return;let r=()=>{E&&cancelAnimationFrame(E),E=requestAnimationFrame(j)},i=f.value?.closest(`.docx-editor-vue__pages-viewport`)?.parentElement;i?.addEventListener(`scroll`,r,{passive:!0}),window.addEventListener(`resize`,r,{passive:!0}),n(()=>{i?.removeEventListener(`scroll`,r),window.removeEventListener(`resize`,r),E&&cancelAnimationFrame(E)})},{immediate:!0});let M=(0,a.computed)(()=>p.value?g.value:y.value?.width||0),N=(0,a.computed)(()=>p.value?_.value:y.value?.height||0),ee=(0,a.computed)(()=>{let e=y.value;if(!e)return{position:`absolute`,top:`0px`,left:`0px`,visibility:`hidden`,pointerEvents:`none`};let t=p.value?g.value:e.width,n=p.value?_.value:e.height;return{position:`absolute`,left:`${e.left}px`,top:`${e.top}px`,width:`${t}px`,height:`${n}px`,zIndex:r.t.imageOverlay,pointerEvents:`auto`}}),P=(0,a.computed)(()=>{let e=M.value,t=N.value,n=`${e/2-5}px`,r=`${t/2-5}px`,i=`${e-5}px`,a=`${t-5}px`,o=`-5px`;return[{pos:`nw`,style:{left:o,top:o,cursor:`nwse-resize`}},{pos:`n`,style:{left:n,top:o,cursor:`ns-resize`}},{pos:`ne`,style:{left:i,top:o,cursor:`nesw-resize`}},{pos:`e`,style:{left:i,top:r,cursor:`ew-resize`}},{pos:`se`,style:{left:i,top:a,cursor:`nwse-resize`}},{pos:`s`,style:{left:n,top:a,cursor:`ns-resize`}},{pos:`sw`,style:{left:o,top:a,cursor:`nesw-resize`}},{pos:`w`,style:{left:o,top:r,cursor:`ew-resize`}}]}),te=e=>e.length===2;function se(e,t,n,r,i,a){let o=e.includes(`w`)?-1:+!!e.includes(`e`),s=e.includes(`n`)?-1:+!!e.includes(`s`),c=r+t*o,l=i+n*s;if(te(e)&&a){let e=Math.max(c/r,l/i);c=r*e,l=i*e}return{width:o===0?r:Math.max(20,Math.min(2e3,c)),height:s===0?i:Math.max(20,Math.min(2e3,l))}}function ce(e,t){!o.imageInfo||!y.value||(b=t,x=e.clientX,S=e.clientY,C=y.value.width,w=y.value.height,T={...y.value},g.value=Math.round(C),_.value=Math.round(w),p.value=!0,c(`interact-start`),document.addEventListener(`mousemove`,I),document.addEventListener(`mouseup`,L))}function I(e){let t=o.zoom,n=(e.clientX-x)/t,r=(e.clientY-S)/t,i=!e.shiftKey,a=se(b,n,r,C,w,i);g.value=Math.round(a.width),_.value=Math.round(a.height);let s=T;s&&(y.value={left:b.includes(`w`)?s.left+(s.width-a.width):s.left,top:b.includes(`n`)?s.top+(s.height-a.height):s.top,width:s.width,height:s.height})}function L(){document.removeEventListener(`mousemove`,I),document.removeEventListener(`mouseup`,L),p.value=!1,T=null,c(`interact-end`);let e=o.view,t=o.imageInfo;if(!e||!t){j();return}let n=k(e,t.pmPos);if(n)try{e.dispatch(e.state.tr.setNodeMarkup(t.pmPos,void 0,{...n.attrs,width:g.value,height:_.value}))}catch{}(0,a.nextTick)(()=>j())}let le=0,ue=0,de=0,fe=0,R=null,z=null;function pe(e){if(!e)return 0;let t=e.match(/rotate\((-?\d+(?:\.\d+)?)deg\)/);return t?parseFloat(t[1]):0}function B(e,t){let n=/scaleX\(-1\)/.test(e||``),r=/scaleY\(-1\)/.test(e||``),i=[],a=(t%360+360)%360;return a!==0&&i.push(`rotate(${a}deg)`),n&&i.push(`scaleX(-1)`),r&&i.push(`scaleY(-1)`),i.length>0?i.join(` `):null}function V(e,t){return Math.atan2(e-le,-(t-ue))*180/Math.PI}function me(e){if(!o.imageInfo)return;let t=o.imageInfo.element.getBoundingClientRect();le=t.left+t.width/2,ue=t.top+t.height/2;let n=k(o.view,o.imageInfo.pmPos);R=n&&n.attrs.transform||null,fe=pe(R),z=o.imageInfo.element.querySelector(`img`),de=V(e.clientX,e.clientY),v.value=fe,h.value=!0,c(`interact-start`),document.addEventListener(`mousemove`,he),document.addEventListener(`mouseup`,H)}function he(e){let t=V(e.clientX,e.clientY)-de,n=fe+t;e.shiftKey||(n=Math.round(n/oe)*oe),v.value=(n%360+360)%360,z&&(z.style.transform=B(R,v.value)||``)}function H(){document.removeEventListener(`mousemove`,he),document.removeEventListener(`mouseup`,H),h.value=!1,c(`interact-end`);let e=o.view,t=o.imageInfo;try{let n=e&&t?k(e,t.pmPos):null;e&&t&&n&&e.dispatch(e.state.tr.setNodeMarkup(t.pmPos,void 0,{...n.attrs,transform:B(n.attrs.transform,v.value)}))}catch{}finally{z&&(z.style.transform=``),z=null,R=null}(0,a.nextTick)(()=>j())}let U=null;function ge(e){if(!o.imageInfo||!y.value)return;let t=e.clientX,n=e.clientY,r=y.value,i=!1,a=e=>{let a=e.clientX-t,s=e.clientY-n;if(!(!i&&Math.sqrt(a*a+s*s)<ae)){if(!i){i=!0,m.value=!0,c(`interact-start`),U=document.createElement(`div`),U.style.cssText=`position: fixed; pointer-events: none; z-index: 10000; opacity: 0.5; border: 2px dashed #2563eb; border-radius: 4px; background: rgba(37, 99, 235, 0.1);`;let e=o.zoom;U.style.width=`${r.width*e}px`,U.style.height=`${r.height*e}px`,document.body.appendChild(U)}if(U){let t=o.zoom;U.style.left=`${e.clientX-r.width*t/2}px`,U.style.top=`${e.clientY-r.height*t/2}px`}}},s=e=>{document.removeEventListener(`mousemove`,a),document.removeEventListener(`mouseup`,s),D=null,O=null,U&&=(U.remove(),null),m.value=!1,i&&(c(`interact-end`),_e(e.clientX,e.clientY))};D=a,O=s,document.addEventListener(`mousemove`,a),document.addEventListener(`mouseup`,s)}function _e(e,t){let n=o.view,r=o.imageInfo;if(!n||!r)return;let i=k(n,r.pmPos);if(!i)return;let c=i.attrs.wrapType,l=i.attrs.displayMode===`float`||(c?[`square`,`tight`,`through`].includes(c):!1);try{if(l){let a=(f.value?.closest(`.docx-editor-vue__pages-viewport`))?.querySelectorAll(`.layout-page`);if(!a||a.length===0)return;let c=null;for(let e of a){let n=e.getBoundingClientRect();if(t>=n.top&&t<=n.bottom){c=e.querySelector(`.layout-page-content`);break}}if(c||=a[a.length-1].querySelector(`.layout-page-content`),!c)return;let l=c.getBoundingClientRect(),u=o.zoom,d=(e-l.left)/u,p=(t-l.top)/u,m={horizontal:{posOffset:(0,s.pixelsToEmu)(d),relativeTo:`margin`},vertical:{posOffset:(0,s.pixelsToEmu)(p),relativeTo:`margin`}},h=n.state.tr.setNodeMarkup(r.pmPos,void 0,{...i.attrs,position:m});n.dispatch(h),ve(r.pmPos)}else{let a=f.value?.closest(`.docx-editor-vue__pages-viewport`)?.querySelector(`.docx-editor-vue__pages`);if(!a)return;let o=(0,u.clickToPositionDom)(a,e,t,1);if(o==null||o<0||o===r.pmPos||o===r.pmPos+1)return;let s=n.state.tr,c=i.nodeSize;if(o<=r.pmPos)s=s.delete(r.pmPos,r.pmPos+c),s=s.insert(o,i),n.dispatch(s),ve(o);else{s=s.delete(r.pmPos,r.pmPos+c);let e=Math.min(o-c,s.doc.content.size);s=s.insert(e,i),n.dispatch(s),ve(Math.min(e,n.state.doc.content.size-1))}}}catch{}(0,a.nextTick)(()=>j())}function ve(e){let t=o.view;if(t)try{let n=l.NodeSelection.create(t.state.doc,e);t.dispatch(t.state.tr.setSelection(n))}catch{}}return(0,a.onBeforeUnmount)(()=>{document.removeEventListener(`mousemove`,I),document.removeEventListener(`mouseup`,L),document.removeEventListener(`mousemove`,he),document.removeEventListener(`mouseup`,H),D&&document.removeEventListener(`mousemove`,D),O&&document.removeEventListener(`mouseup`,O),U&&=(U.remove(),null),E&&cancelAnimationFrame(E)}),(e,n)=>t.imageInfo?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,ref_key:`overlayRootRef`,ref:f,class:`image-overlay`,style:(0,a.normalizeStyle)(ee.value),onMousedown:n[3]||=(0,a.withModifiers)(()=>{},[`stop`])},[n[4]||=(0,a.createElementVNode)(`div`,{class:`image-overlay__border`},null,-1),(0,a.createElementVNode)(`div`,{class:`image-overlay__body`,style:(0,a.normalizeStyle)({cursor:m.value?`grabbing`:`grab`}),onMousedown:n[0]||=(0,a.withModifiers)(e=>ge(e),[`prevent`,`stop`]),onContextmenu:n[1]||=(0,a.withModifiers)(t=>e.$emit(`context-menu`,t),[`prevent`,`stop`])},null,36),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(P.value,e=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:e.pos,class:`image-overlay__handle`,style:(0,a.normalizeStyle)(e.style),"data-handle":e.pos,onMousedown:(0,a.withModifiers)(t=>ce(t,e.pos),[`prevent`,`stop`])},null,44,ne))),128)),n[5]||=(0,a.createElementVNode)(`div`,{class:`image-overlay__rotate-line`},null,-1),(0,a.createElementVNode)(`div`,{class:`image-overlay__rotate-handle`,style:(0,a.normalizeStyle)({left:`${M.value/2-7}px`}),title:(0,a.unref)(i)(`imageOverlay.rotate`),onMousedown:n[2]||=(0,a.withModifiers)(e=>me(e),[`prevent`,`stop`])},null,44,F),p.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,re,(0,a.toDisplayString)(Math.round(g.value))+` × `+(0,a.toDisplayString)(Math.round(_.value)),1)):(0,a.createCommentVNode)(``,!0),h.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,ie,(0,a.toDisplayString)(Math.round(v.value))+`° `,1)):(0,a.createCommentVNode)(``,!0)],36)):(0,a.createCommentVNode)(``,!0)}}),ce=n.t(se,[[`__scopeId`,`data-v-a6f20ec2`]]),I={class:`doc-outline__header`},L={class:`doc-outline__body`},le={key:0,class:`doc-outline__empty`},ue=[`onMousedown`],de=(0,a.defineComponent)({__name:`DocumentOutline`,props:{isOpen:{type:Boolean},headings:{}},emits:[`close`,`navigate`],setup(t){return(n,r)=>t.isOpen?((0,a.openBlock)(),(0,a.createElementBlock)(`nav`,{key:0,class:`doc-outline`,role:`navigation`,"aria-label":`Document outline`,onMousedown:r[1]||=(0,a.withModifiers)(()=>{},[`stop`])},[(0,a.createElementVNode)(`div`,I,[(0,a.createElementVNode)(`button`,{class:`doc-outline__back`,title:`Close outline`,"aria-label":`Close outline`,onClick:r[0]||=e=>n.$emit(`close`)},[(0,a.createVNode)(e.p,{name:`arrow_back`,size:20})]),r[2]||=(0,a.createElementVNode)(`span`,{class:`doc-outline__title`},`Document Outline`,-1)]),(0,a.createElementVNode)(`div`,L,[t.headings.length===0?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,le,` No headings found `)):(0,a.createCommentVNode)(``,!0),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(t.headings,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:t,class:`doc-outline__item`,style:(0,a.normalizeStyle)({paddingLeft:12+(e.level-1)*16+`px`}),onMousedown:(0,a.withModifiers)(t=>n.$emit(`navigate`,e.pmPos),[`prevent`])},(0,a.toDisplayString)(e.text||`(untitled)`),45,ue))),128))])],32)):(0,a.createCommentVNode)(``,!0)}}),fe=n.t(de,[[`__scopeId`,`data-v-cb2cdc39`]]),R=(0,a.defineComponent)({__name:`PageIndicator`,props:{currentPage:{},totalPages:{},visible:{type:Boolean}},setup(t){let{t:n}=e.d();return(e,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:`docx-editor-vue__page-indicator`,style:(0,a.normalizeStyle)({opacity:+!!t.visible}),"aria-live":`polite`,role:`status`},(0,a.toDisplayString)((0,a.unref)(n)(`viewer.pageIndicator`,{current:t.currentPage,total:t.totalPages})),5))}}),z=n.t(R,[[`__scopeId`,`data-v-d117bf6e`]]),pe={class:`hf-editor__toolbar`},B={class:`hf-editor__label`},V={class:`hf-editor__actions`},me=(0,a.defineComponent)({__name:`InlineHeaderFooterEditor`,props:{isOpen:{type:Boolean},position:{},headerFooter:{},styles:{},theme:{},targetRect:{}},emits:[`save`,`close`,`remove`],setup(e,{emit:t}){let n=e,r=t,i=(0,a.ref)(null),o=null,s=(0,a.ref)({});function c(){let e=n.targetRect;e&&(s.value={position:`absolute`,top:`${e.top}px`,left:`${e.left}px`,width:`${e.width}px`,minHeight:`${Math.max(e.height,60)}px`,zIndex:`100`})}(0,a.watch)(()=>n.isOpen,async e=>{e?(c(),await(0,a.nextTick)(),u()):d()}),(0,a.watch)(()=>n.targetRect,()=>{n.isOpen&&c()},{deep:!0});function u(){let e=i.value;if(!e||o)return;let t=p.singletonManager,r=(0,m.headerFooterToProseDoc)(n.headerFooter?.content??[],{styles:n.styles??void 0,theme:n.theme??null});o=new f.EditorView(e,{state:l.EditorState.create({doc:r,schema:t.getSchema(),plugins:t.getPlugins()??[]}),editable:()=>!0}),o.focus()}function d(){o&&=(o.destroy(),null)}function h(){o&&(r(`save`,(0,m.proseDocToBlocks)(o.state.doc)),r(`close`))}return(0,a.onBeforeUnmount)(()=>{d()}),(t,n)=>e.isOpen?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,class:`hf-editor`,style:(0,a.normalizeStyle)(s.value),onMousedown:n[2]||=(0,a.withModifiers)(()=>{},[`stop`]),onContextmenu:n[3]||=(0,a.withModifiers)(()=>{},[`stop`])},[(0,a.createElementVNode)(`div`,pe,[(0,a.createElementVNode)(`span`,B,(0,a.toDisplayString)(e.position===`header`?`Header`:`Footer`),1),(0,a.createElementVNode)(`div`,V,[(0,a.createElementVNode)(`button`,{class:`hf-editor__btn`,title:`Remove`,onMousedown:n[0]||=(0,a.withModifiers)(e=>t.$emit(`remove`),[`prevent`])},` Remove `,32),(0,a.createElementVNode)(`button`,{class:`hf-editor__btn hf-editor__btn--primary`,title:`Save`,onMousedown:(0,a.withModifiers)(h,[`prevent`])},` Save `,32),(0,a.createElementVNode)(`button`,{class:`hf-editor__btn`,title:`Cancel`,onMousedown:n[1]||=(0,a.withModifiers)(e=>t.$emit(`close`),[`prevent`])},` Cancel `,32)])]),(0,a.createElementVNode)(`div`,{ref_key:`editorRef`,ref:i,class:`hf-editor__content`},null,512)],36)):(0,a.createCommentVNode)(``,!0)}}),he=n.t(me,[[`__scopeId`,`data-v-343434c4`]]),H={key:0,class:`docx-editor-vue__title-bar`},U={class:`docx-editor-vue__title-bar-left`},ge={class:`docx-editor-vue__title-bar-center`},_e={class:`docx-editor-vue__title-bar-right`},ve=(0,a.defineComponent)({__name:`DocxEditorMenuBar`,props:{showMenuBar:{type:Boolean},documentName:{},documentNameEditable:{type:Boolean,default:!0},renderLogo:{},renderTitleBarRight:{}},emits:[`rename`,`menu-action`,`insert-table`],setup(e,{emit:n}){let r=n;return(n,i)=>e.showMenuBar?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,H,[(0,a.createElementVNode)(`div`,U,[e.renderLogo?((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.renderLogo),{key:0})):(0,a.createCommentVNode)(``,!0),(0,a.renderSlot)(n.$slots,`title-bar-left`)]),(0,a.createElementVNode)(`div`,ge,[(0,a.createVNode)(t.i,{"model-value":e.documentName,editable:e.documentNameEditable,"onUpdate:modelValue":i[0]||=e=>r(`rename`,e)},null,8,[`model-value`,`editable`]),(0,a.createVNode)(t.t,{onAction:i[1]||=e=>r(`menu-action`,e),onInsertTable:i[2]||=(e,t)=>r(`insert-table`,e,t)})]),(0,a.createElementVNode)(`div`,_e,[(0,a.renderSlot)(n.$slots,`title-bar-right`),e.renderTitleBarRight?((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.renderTitleBarRight),{key:0})):(0,a.createCommentVNode)(``,!0)])])):(0,a.createCommentVNode)(``,!0)}}),ye=(0,a.defineComponent)({__name:`DocxEditorDialogs`,props:{view:{},bookmarks:{},selectedImagePmPos:{},sectionProperties:{},showFindReplace:{type:Boolean},showInsertImage:{type:Boolean},showHyperlink:{type:Boolean},showInsertSymbol:{type:Boolean},showImageProperties:{type:Boolean},showPageSetup:{type:Boolean},showKeyboardShortcuts:{type:Boolean}},emits:[`update:showFindReplace`,`update:showInsertImage`,`update:showHyperlink`,`update:showInsertSymbol`,`update:showImageProperties`,`update:showPageSetup`,`update:showKeyboardShortcuts`,`insert-image`,`insert-symbol`,`hyperlink-submit`,`hyperlink-remove`,`page-setup-apply`],setup(t,{emit:n}){let r=n;return(n,i)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,null,[(0,a.createVNode)(e.s,{"is-open":t.showFindReplace,view:t.view,onClose:i[0]||=e=>r(`update:showFindReplace`,!1)},null,8,[`is-open`,`view`]),(0,a.createVNode)(e.o,{"is-open":t.showInsertImage,onClose:i[1]||=e=>r(`update:showInsertImage`,!1),onInsert:i[2]||=e=>r(`insert-image`,e)},null,8,[`is-open`]),(0,a.createVNode)(e.a,{"is-open":t.showHyperlink,view:t.view,bookmarks:t.bookmarks,onClose:i[3]||=e=>r(`update:showHyperlink`,!1),onSubmit:i[4]||=e=>r(`hyperlink-submit`,e),onRemove:i[5]||=e=>r(`hyperlink-remove`)},null,8,[`is-open`,`view`,`bookmarks`]),(0,a.createVNode)(e.i,{"is-open":t.showInsertSymbol,onClose:i[6]||=e=>r(`update:showInsertSymbol`,!1),onInsert:i[7]||=e=>r(`insert-symbol`,e)},null,8,[`is-open`]),(0,a.createVNode)(e.r,{"is-open":t.showImageProperties,view:t.view,"pm-pos":t.selectedImagePmPos,onClose:i[8]||=e=>r(`update:showImageProperties`,!1)},null,8,[`is-open`,`view`,`pm-pos`]),(0,a.createVNode)(e.n,{"is-open":t.showPageSetup,"section-properties":t.sectionProperties,onClose:i[9]||=e=>r(`update:showPageSetup`,!1),onApply:i[10]||=e=>r(`page-setup-apply`,e)},null,8,[`is-open`,`section-properties`]),(0,a.createVNode)(e.t,{"is-open":t.showKeyboardShortcuts,onClose:i[11]||=e=>r(`update:showKeyboardShortcuts`,!1)},null,8,[`is-open`])],64))}}),W=[`disabled`,`onMousedown`],G={class:`ctx-menu__label`},be={key:0,class:`ctx-menu__shortcut`},K=220,xe=32,q=10,Se=(0,a.defineComponent)({__name:`TextContextMenu`,props:{isOpen:{type:Boolean},position:{},hasSelection:{type:Boolean},isEditable:{type:Boolean},inTable:{type:Boolean},onImage:{type:Boolean},canMergeCells:{type:Boolean},canSplitCell:{type:Boolean}},emits:[`close`,`action`],setup(e,{emit:t}){let n=e,r=t,i=(0,a.ref)(null),o=(0,a.computed)(()=>{let e=[{id:`cut`,label:`Cut`,action:`cut`,shortcut:`Ctrl+X`,disabled:!n.hasSelection||!n.isEditable},{id:`copy`,label:`Copy`,action:`copy`,shortcut:`Ctrl+C`,disabled:!n.hasSelection},{id:`paste`,label:`Paste`,action:`paste`,shortcut:`Ctrl+V`,disabled:!n.isEditable},{id:`pasteAsPlainText`,label:`Paste as Plain Text`,action:`pasteAsPlainText`,shortcut:`Ctrl+Shift+V`,disabled:!n.isEditable},{id:`div1`,label:``,action:``,divider:!0},{id:`delete`,label:`Delete`,action:`delete`,shortcut:`Del`,disabled:!n.hasSelection||!n.isEditable},{id:`selectAll`,label:`Select All`,action:`selectAll`,shortcut:`Ctrl+A`}];return n.onImage&&n.isEditable&&e.push({id:`div-img`,label:``,action:``,divider:!0},{id:`replaceImage`,label:`Replace image…`,action:`replaceImage`},{id:`imageProperties`,label:`Image properties…`,action:`imageProperties`},{id:`deleteImage`,label:`Delete image`,action:`deleteImage`,shortcut:`Del`}),n.inTable&&n.isEditable&&e.push({id:`div2`,label:``,action:``,divider:!0},{id:`addRowAbove`,label:`Insert row above`,action:`addRowAbove`},{id:`addRowBelow`,label:`Insert row below`,action:`addRowBelow`},{id:`deleteRow`,label:`Delete row`,action:`deleteRow`},{id:`div3`,label:``,action:``,divider:!0},{id:`addColLeft`,label:`Insert column left`,action:`addColumnLeft`},{id:`addColRight`,label:`Insert column right`,action:`addColumnRight`},{id:`deleteCol`,label:`Delete column`,action:`deleteColumn`},{id:`div4`,label:``,action:``,divider:!0},{id:`mergeCells`,label:`Merge cells`,action:`mergeCells`,disabled:!n.canMergeCells},{id:`splitCell`,label:`Split cell`,action:`splitCell`,disabled:!n.canSplitCell}),e}),s=(0,a.computed)(()=>{let e=n.position.x,t=n.position.y,r=o.value.filter(e=>!e.divider).length,i=o.value.filter(e=>e.divider).length,a=r*xe+i*9;return typeof window<`u`&&(e+K+q>window.innerWidth&&(e=window.innerWidth-K-q),t+a+q>window.innerHeight&&(t=window.innerHeight-a-q)),{position:`fixed`,left:`${e}px`,top:`${t}px`,zIndex:400}});function c(e){e&&(r(`action`,e),r(`close`))}function l(e){e.key===`Escape`&&r(`close`)}return(0,a.watch)(()=>n.isOpen,e=>{e&&(0,a.nextTick)(()=>i.value?.focus())}),(t,n)=>((0,a.openBlock)(),(0,a.createBlock)(a.Teleport,{to:`body`},[e.isOpen?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,class:`ctx-menu-backdrop`,onMousedown:n[0]||=e=>t.$emit(`close`),onContextmenu:n[1]||=(0,a.withModifiers)(e=>t.$emit(`close`),[`prevent`])},null,32)):(0,a.createCommentVNode)(``,!0),e.isOpen?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:1,ref_key:`menuRef`,ref:i,class:`ctx-menu`,style:(0,a.normalizeStyle)(s.value),onContextmenu:n[2]||=(0,a.withModifiers)(()=>{},[`prevent`]),onKeydown:l},[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(o.value,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:e.id||t,class:(0,a.normalizeClass)([`ctx-menu__item`,{"ctx-menu__item--disabled":e.disabled,"ctx-menu__item--divider":e.divider}]),disabled:e.disabled,onMousedown:(0,a.withModifiers)(t=>c(e.action),[`prevent`])},[(0,a.createElementVNode)(`span`,G,(0,a.toDisplayString)(e.label),1),e.shortcut?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,be,(0,a.toDisplayString)(e.shortcut),1)):(0,a.createCommentVNode)(``,!0)],42,W))),128))],36)):(0,a.createCommentVNode)(``,!0)]))}}),Ce=n.t(Se,[[`__scopeId`,`data-v-741c4f71`]]),we=[`aria-label`],Te={class:`image-ctx-menu__icon`},Ee={class:`image-ctx-menu__label`},De={key:1,class:`image-ctx-menu__divider`,role:`separator`},Oe=[`data-wrap-type`,`data-current`,`data-disabled`,`disabled`,`title`,`onClick`],ke={class:`image-ctx-menu__icon`},Ae={class:`image-ctx-menu__label`},je=[`aria-label`],Me=[`disabled`,`onClick`],Ne={class:`image-ctx-menu__label`},Pe={key:0,class:`image-ctx-menu__shortcut`},Fe={key:0,class:`image-ctx-menu__divider`,role:`separator`},Ie=18,Le=260,J=10,Re=(0,a.defineComponent)({__name:`ImageContextMenu`,props:{state:{},textActions:{},canOpenProperties:{type:Boolean,default:!1}},emits:[`close`,`select`,`text-action`,`open-properties`],setup(t,{emit:n}){let r=t,i=n;function o(){i(`open-properties`),i(`close`)}let{t:s}=e.d(),c=(0,a.ref)(null),l=d.IMAGE_LAYOUT_OPTIONS,u=(0,a.computed)(()=>r.state?(0,d.deriveLayoutChoice)(r.state.currentWrapType,r.state.currentCssFloat??null):null),f={inline:`wrap_text`,squareLeft:`format_image_left`,squareRight:`format_image_right`,behind:`flip_to_back`,inFront:`flip_to_front`};function p(e){return f[e]}let m=(0,a.computed)(()=>{if(!r.state)return{};let e=d.IMAGE_LAYOUT_OPTIONS.length*36+16,t=r.state.position.x,n=r.state.position.y;return typeof window<`u`&&(t+Le>window.innerWidth&&(t=window.innerWidth-Le-J),n+e>window.innerHeight&&(n=window.innerHeight-e-J),t<J&&(t=J),n<J&&(n=J)),{position:`fixed`,left:`${t}px`,top:`${n}px`,minWidth:`${Le}px`,zIndex:400}});function h(e){return r.state?(0,d.isImageLayoutOptionEnabled)(e,r.state.currentWrapType):!1}function g(e){h(e)&&(i(`select`,e.choice),i(`close`))}function _(e){e.disabled||(i(`text-action`,e.action),i(`close`))}function v(e){e.preventDefault(),i(`close`)}function y(e){e.key===`Escape`&&(e.preventDefault(),i(`close`))}return(n,r)=>((0,a.openBlock)(),(0,a.createBlock)(a.Teleport,{to:`body`},[t.state&&t.state.open?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,class:`image-ctx-menu-backdrop`,onMousedown:v,onContextmenu:r[0]||=(0,a.withModifiers)(e=>n.$emit(`close`),[`prevent`])},null,32)):(0,a.createCommentVNode)(``,!0),t.state&&t.state.open?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:1,ref_key:`menuRef`,ref:c,class:`image-ctx-menu`,role:`menu`,"aria-label":(0,a.unref)(s)(`imageWrap.menu.ariaLabel`),"data-testid":`image-context-menu`,style:(0,a.normalizeStyle)(m.value),onContextmenu:r[4]||=(0,a.withModifiers)(()=>{},[`prevent`]),onKeydown:y},[t.canOpenProperties?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:0,type:`button`,role:`menuitem`,class:`image-ctx-menu__item`,"data-action":`open-properties`,onMousedown:r[1]||=(0,a.withModifiers)(()=>{},[`prevent`]),onClick:o},[(0,a.createElementVNode)(`span`,Te,[(0,a.createVNode)(e.p,{name:`settings`,size:Ie})]),(0,a.createElementVNode)(`span`,Ee,(0,a.toDisplayString)((0,a.unref)(s)(`imageWrap.menu.imageProperties`)),1)],32)):(0,a.createCommentVNode)(``,!0),t.canOpenProperties?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,De)):(0,a.createCommentVNode)(``,!0),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)((0,a.unref)(l),t=>((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:t.choice,type:`button`,role:`menuitem`,class:(0,a.normalizeClass)([`image-ctx-menu__item`,{"image-ctx-menu__item--current":t.choice===u.value}]),"data-wrap-type":t.choice,"data-current":t.choice===u.value?`true`:`false`,"data-disabled":h(t)?`false`:`true`,disabled:!h(t),title:(0,a.unref)(s)(`imageWrap.menuDesc.${t.i18nDescKey}`),onMousedown:r[2]||=(0,a.withModifiers)(()=>{},[`prevent`]),onClick:e=>g(t)},[(0,a.createElementVNode)(`span`,ke,[(0,a.createVNode)(e.p,{name:p(t.iconHint),size:Ie},null,8,[`name`])]),(0,a.createElementVNode)(`span`,Ae,(0,a.toDisplayString)((0,a.unref)(s)(`imageWrap.menu.${t.i18nLabelKey}`)),1),t.choice===u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,{key:0,class:`image-ctx-menu__current-dot`,"aria-label":(0,a.unref)(s)(`imageWrap.menu.ariaLabel`)},`●`,8,je)):(0,a.createCommentVNode)(``,!0)],42,Oe))),128)),t.textActions&&t.textActions.length>0?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:2},[r[5]||=(0,a.createElementVNode)(`div`,{class:`image-ctx-menu__divider`,role:`separator`},null,-1),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(t.textActions,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:`${e.action}-${t}`},[(0,a.createElementVNode)(`button`,{type:`button`,role:`menuitem`,class:`image-ctx-menu__item image-ctx-menu__item--text`,disabled:e.disabled,onMousedown:r[3]||=(0,a.withModifiers)(()=>{},[`prevent`]),onClick:t=>_(e)},[(0,a.createElementVNode)(`span`,Ne,(0,a.toDisplayString)(e.label),1),e.shortcut?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,Pe,(0,a.toDisplayString)(e.shortcut),1)):(0,a.createCommentVNode)(``,!0)],40,Me),e.dividerAfter?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Fe)):(0,a.createCommentVNode)(``,!0)],64))),128))],64)):(0,a.createCommentVNode)(``,!0)],44,we)):(0,a.createCommentVNode)(``,!0)]))}}),ze=n.t(Re,[[`__scopeId`,`data-v-5c21ca8c`]]),Be=(0,a.defineComponent)({__name:`DocxEditorOverlays`,props:{readOnly:{type:Boolean},contextMenu:{},imageContextMenu:{},imageContextMenuTextActions:{},canOpenImageProperties:{type:Boolean}},emits:[`context-menu-action`,`close-context-menu`,`image-wrap-select`,`close-image-context-menu`,`open-image-properties`],setup(e,{emit:t}){let n=t;return(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,null,[(0,a.createVNode)(Ce,{"is-open":e.contextMenu.isOpen,position:e.contextMenu.position,"has-selection":e.contextMenu.hasSelection,"is-editable":!e.readOnly,"in-table":e.contextMenu.inTable,"on-image":e.contextMenu.onImage,"can-merge-cells":e.contextMenu.canMergeCells,"can-split-cell":e.contextMenu.canSplitCell,onAction:r[0]||=e=>n(`context-menu-action`,e),onClose:r[1]||=e=>n(`close-context-menu`)},null,8,[`is-open`,`position`,`has-selection`,`is-editable`,`in-table`,`on-image`,`can-merge-cells`,`can-split-cell`]),(0,a.createVNode)(ze,{state:e.imageContextMenu,"text-actions":e.imageContextMenuTextActions,"can-open-properties":e.canOpenImageProperties,onClose:r[2]||=e=>n(`close-image-context-menu`),onSelect:r[3]||=e=>n(`image-wrap-select`,e),onTextAction:r[4]||=e=>n(`context-menu-action`,e),onOpenProperties:r[5]||=e=>n(`open-image-properties`)},null,8,[`state`,`text-actions`,`can-open-properties`])],64))}}),Ve=[`href`,`title`],He=[`title`],Y=[`title`],Ue=[`title`],We={class:`docx-hyperlink-popup__edit-row`},Ge=[`placeholder`,`onKeydown`],Ke={class:`docx-hyperlink-popup__edit-row`},qe=[`onKeydown`],Je=[`disabled`],Ye=(0,a.defineComponent)({__name:`HyperlinkPopup`,props:{data:{},readOnly:{type:Boolean}},emits:[`navigate`,`copy`,`edit`,`remove`,`close`],setup(t,{emit:n}){let{t:r}=e.d(),i=t,o=n,s=(0,a.ref)(!1),c=(0,a.ref)(``),l=(0,a.ref)(``),u=(0,a.ref)(null),d=(0,a.computed)(()=>({left:(i.data?.position.left??0)+`px`,top:(i.data?.position.top??0)+`px`}));(0,a.watch)(()=>i.data?.href,()=>{s.value=!1});let f=null,p=null;function m(){p&&=(clearTimeout(p),null),f&&=(document.removeEventListener(`mousedown`,f),null)}(0,a.watch)(()=>i.data,e=>{m(),e&&(f=e=>{let t=u.value;t&&!t.contains(e.target)&&o(`close`)},p=setTimeout(()=>{f&&document.addEventListener(`mousedown`,f)},0))},{immediate:!0}),(0,a.onBeforeUnmount)(m);function h(){i.data&&(c.value=i.data.displayText,l.value=i.data.href,s.value=!0)}function g(){l.value.trim()&&(o(`edit`,c.value,l.value),s.value=!1)}function _(){i.data&&(o(`copy`,i.data.href),typeof navigator<`u`&&navigator.clipboard&&navigator.clipboard.writeText(i.data.href).catch(()=>{}))}return(e,n)=>t.data?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,ref_key:`popupRef`,ref:u,class:(0,a.normalizeClass)([`docx-hyperlink-popup`,{"docx-hyperlink-popup--edit":s.value}]),style:(0,a.normalizeStyle)(d.value),onMousedown:n[6]||=(0,a.withModifiers)(()=>{},[`stop`])},[s.value?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createElementVNode)(`div`,We,[(0,a.withDirectives)((0,a.createElementVNode)(`input`,{class:`docx-hyperlink-popup__input`,placeholder:(0,a.unref)(r)(`hyperlinkPopup.displayTextPlaceholder`),"onUpdate:modelValue":n[2]||=e=>c.value=e,onKeydown:[(0,a.withKeys)((0,a.withModifiers)(g,[`prevent`]),[`enter`]),n[3]||=(0,a.withKeys)(t=>e.$emit(`close`),[`esc`])]},null,40,Ge),[[a.vModelText,c.value]])]),(0,a.createElementVNode)(`div`,Ke,[(0,a.withDirectives)((0,a.createElementVNode)(`input`,{class:`docx-hyperlink-popup__input`,placeholder:`https://...`,"onUpdate:modelValue":n[4]||=e=>l.value=e,onKeydown:[(0,a.withKeys)((0,a.withModifiers)(g,[`prevent`]),[`enter`]),n[5]||=(0,a.withKeys)(t=>e.$emit(`close`),[`esc`])]},null,40,qe),[[a.vModelText,l.value]]),(0,a.createElementVNode)(`button`,{class:`docx-hyperlink-popup__apply`,disabled:!l.value.trim(),onClick:(0,a.withModifiers)(g,[`prevent`])},(0,a.toDisplayString)((0,a.unref)(r)(`common.apply`)),9,Je)])],64)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[n[10]||=(0,a.createStaticVNode)(`<span class="docx-hyperlink-popup__icon" aria-hidden data-v-9d23bb12><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-9d23bb12><circle cx="12" cy="12" r="10" data-v-9d23bb12></circle><path d="M2 12h20" data-v-9d23bb12></path><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" data-v-9d23bb12></path></svg></span>`,1),(0,a.createElementVNode)(`a`,{class:`docx-hyperlink-popup__url`,href:t.data.href,title:t.data.href,onClick:n[0]||=(0,a.withModifiers)(n=>e.$emit(`navigate`,t.data.href),[`prevent`])},(0,a.toDisplayString)(t.data.href),9,Ve),n[11]||=(0,a.createElementVNode)(`span`,{class:`docx-hyperlink-popup__sep`},null,-1),(0,a.createElementVNode)(`button`,{class:`docx-hyperlink-popup__btn`,title:(0,a.unref)(r)(`hyperlinkPopup.copyLink`),onClick:(0,a.withModifiers)(_,[`prevent`])},[...n[7]||=[(0,a.createElementVNode)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[(0,a.createElementVNode)(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`,ry:`2`}),(0,a.createElementVNode)(`path`,{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`})],-1)]],8,He),t.readOnly?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:0,class:`docx-hyperlink-popup__btn`,title:(0,a.unref)(r)(`hyperlinkPopup.editLink`),onClick:(0,a.withModifiers)(h,[`prevent`])},[...n[8]||=[(0,a.createElementVNode)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[(0,a.createElementVNode)(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}),(0,a.createElementVNode)(`path`,{d:`M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z`})],-1)]],8,Y)),t.readOnly?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:1,class:`docx-hyperlink-popup__btn`,title:(0,a.unref)(r)(`hyperlinkPopup.removeLink`),onClick:n[1]||=(0,a.withModifiers)(t=>e.$emit(`remove`),[`prevent`])},[...n[9]||=[(0,a.createStaticVNode)(`<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-9d23bb12><path d="M18.84 12.25l1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71" data-v-9d23bb12></path><path d="M5.17 11.75l-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71" data-v-9d23bb12></path><line x1="8" y1="2" x2="8" y2="5" data-v-9d23bb12></line><line x1="2" y1="8" x2="5" y2="8" data-v-9d23bb12></line><line x1="16" y1="19" x2="16" y2="22" data-v-9d23bb12></line><line x1="19" y1="16" x2="22" y2="16" data-v-9d23bb12></line></svg>`,1)]],8,Ue))],64))],38)):(0,a.createCommentVNode)(``,!0)}}),Xe=n.t(Ye,[[`__scopeId`,`data-v-9d23bb12`]]);function Ze(e){let t=(0,a.ref)(null);async function n(){await e.nextTick(),e.extractCommentsAndChanges(),e.emit(`ready`)}async function r(t){try{let r=await(0,s.readDocxFileFromInput)(t);if(!r)return;await e.loadBuffer(r.buffer),e.emit(`update:document`,e.getDocument()),e.emit(`rename`,r.name),await n()}catch(t){e.emit(`error`,t instanceof Error?t:Error(`Failed to open document`))}}function i(t){e.onDocumentNameChange?.(t),e.emit(`rename`,t)}async function o(){let t=await e.saveBlob();if(!t)return;let n=(e.documentName()??``).trim()||`document`,r=URL.createObjectURL(t),i=window.document.createElement(`a`);i.href=r,i.download=`${n.replace(/\.docx$/i,``)}.docx`,i.click(),setTimeout(()=>URL.revokeObjectURL(r),0)}async function c(t){await e.loadBuffer(t),e.emit(`update:document`,e.getDocument()),await n()}function l(t){e.loadParsedDocument(t),e.emit(`update:document`,t),n()}async function u(){let t=await e.saveBlob();return t?t.arrayBuffer():null}return{docxInputRef:t,handleDocxFileChange:r,handleDocumentNameChange:i,downloadCurrentDocument:o,emitReadyAfterSidebarStateRefresh:n,loadDocumentBuffer:c,loadDocument:l,save:u}}function Qe(e){let t=(0,a.ref)(null);function n(t){let n=e.editorView.value;if(!n)return;let r=e.getCommands(),{empty:i}=n.state.selection,a=t.bookmark?`#${t.bookmark}`:t.url;if(a){if(i&&t.displayText){let e=r.insertHyperlink;e&&e(t.displayText,a,t.tooltip||void 0)(n.state,e=>n.dispatch(e),n)}else{let e=r.setHyperlink;e&&e(a,t.tooltip||void 0)(n.state,e=>n.dispatch(e),n)}n.focus()}}function r(){let t=e.editorView.value;if(!t)return;let n=e.getCommands().removeHyperlink;n&&n()(t.state,e=>t.dispatch(e),t),t.focus()}function i(e){window.open(e,`_blank`,`noopener,noreferrer`),t.value=null}function s(n,r){let i=e.editorView.value;if(!i)return;let a=(0,o.findHyperlinkRangeAt)(i.state);if(!a){t.value=null;return}let s=i.state.schema.marks.hyperlink,{$from:c}=i.state.selection,l=s.create({href:r,tooltip:a.mark.attrs.tooltip}),u=c.marks().filter(e=>e.type!==s),d=i.state.schema.text(n,[...u,l]),f=i.state.tr.replaceWith(a.start,a.end,d);i.dispatch(f.scrollIntoView()),t.value=null,i.focus()}function c(){let n=e.editorView.value;if(!n)return;let r=(0,o.findHyperlinkRangeAt)(n.state,t.value?.href);if(!r){t.value=null;return}let i=n.state.schema.marks.hyperlink,a=n.state.tr.removeMark(r.start,r.end,i);n.dispatch(a.scrollIntoView()),t.value=null,n.focus()}return{hyperlinkPopupData:t,handleHyperlinkSubmit:n,handleHyperlinkRemove:r,handleHyperlinkPopupNavigate:i,handleHyperlinkPopupEdit:s,handleHyperlinkPopupRemove:c}}function $e(e){function t(){let t=e.editorView.value;t&&((0,o.clearFormatting)(t.state,t.dispatch,t),t.focus())}function n(t){let n=e.editorView.value;if(!n)return;let r=e.getDocument()?.package?.styles;if(r){let e=(0,y.createStyleResolver)(r).resolveParagraphStyle(t);(0,v.applyStyle)(t,{paragraphFormatting:e.paragraphFormatting,runFormatting:e.runFormatting})(n.state,e=>n.dispatch(e))}else (0,v.applyStyle)(t)(n.state,e=>n.dispatch(e));n.focus()}function r(){let t=e.editorView.value;t&&((0,b.insertPageBreak)(t.state,e=>t.dispatch(e),t),t.focus())}function i(t){let n=e.editorView.value;if(!n)return;let{from:r}=n.state.selection,i=n.state.tr.insertText(t,r);n.dispatch(i.scrollIntoView()),n.focus()}function a(t){let n=e.editorView.value;if(!n)return!1;let r=k(n.state.doc,t.paraId);if(!r)return!1;let i=r.from+1,a=r.to-1;if(t.search){let e=M(n.state.doc,r.from,r.to,t.search);if(!e)return!1;i=e.from,a=e.to}if(i>=a)return!0;let{schema:o}=n.state,s=t.marks,c=n.state.tr;if(s.bold!==void 0&&o.marks.bold&&(c=s.bold?c.addMark(i,a,o.marks.bold.create()):c.removeMark(i,a,o.marks.bold)),s.italic!==void 0&&o.marks.italic&&(c=s.italic?c.addMark(i,a,o.marks.italic.create()):c.removeMark(i,a,o.marks.italic)),s.underline!==void 0&&o.marks.underline)if(s.underline){let e=typeof s.underline==`object`?s.underline.style:void 0;c=c.addMark(i,a,o.marks.underline.create({style:e??`single`}))}else c=c.removeMark(i,a,o.marks.underline);return s.strike!==void 0&&o.marks.strike&&(c=s.strike?c.addMark(i,a,o.marks.strike.create()):c.removeMark(i,a,o.marks.strike)),s.color!==void 0&&o.marks.textColor&&(c=s.color&&(s.color.rgb||s.color.themeColor)?c.addMark(i,a,o.marks.textColor.create({rgb:s.color.rgb??null,themeColor:s.color.themeColor??null})):c.removeMark(i,a,o.marks.textColor)),s.highlight!==void 0&&o.marks.highlight&&(c=s.highlight?c.addMark(i,a,o.marks.highlight.create({color:(0,x.mapHexToHighlightName)(s.highlight)||s.highlight})):c.removeMark(i,a,o.marks.highlight)),s.fontSize!==void 0&&o.marks.fontSize&&(c=s.fontSize>0?c.addMark(i,a,o.marks.fontSize.create({size:(0,h.pointsToHalfPoints)(s.fontSize)})):c.removeMark(i,a,o.marks.fontSize)),s.fontFamily!==void 0&&o.marks.fontFamily&&(c=s.fontFamily&&(s.fontFamily.ascii||s.fontFamily.hAnsi)?c.addMark(i,a,o.marks.fontFamily.create({ascii:s.fontFamily.ascii??null,hAnsi:s.fontFamily.hAnsi??s.fontFamily.ascii??null})):c.removeMark(i,a,o.marks.fontFamily)),n.dispatch(c),!0}function s(t){let n=e.editorView.value;if(!n)return!1;let r=k(n.state.doc,t.paraId);if(!r)return!1;let i=e.getDocument(),a=i?.package?.styles?(0,y.createStyleResolver)(i.package.styles):null;if(a&&!a.hasParagraphStyle(t.styleId))return!1;let o=n.state.doc.resolve(r.from+1),s=n.state.doc.resolve(r.to-1),c=n.state.apply(n.state.tr.setSelection(l.TextSelection.between(o,s))),u=a?(()=>{let e=a.resolveParagraphStyle(t.styleId);return(0,v.applyStyle)(t.styleId,{paragraphFormatting:e.paragraphFormatting,runFormatting:e.runFormatting})})():(0,v.applyStyle)(t.styleId),d=!1;return u(c,e=>{d=!0,e.setSelection(n.state.selection.map(e.doc,e.mapping)),n.dispatch(e)}),d}return{handleClearFormatting:t,handleApplyStyle:n,handleInsertPageBreak:r,handleInsertSymbol:i,applyFormatting:a,setParagraphStyle:s}}function et(e){function t(t){let n=e.getDocument();if(!n?.package?.document)return;let r=n.package.document.finalSectionProperties??{};n.package.document.finalSectionProperties={...r,...t},e.stateTick.value++,e.reLayout(),e.emit(`change`,n)}function n(n,r){e.readOnly.value||t({[n]:r})}function r(e){n(`marginLeft`,e)}function i(e){n(`marginRight`,e)}function a(e){n(`marginTop`,e)}function o(e){n(`marginBottom`,e)}function s(t){let n=e.editorView.value;n&&(0,v.setIndentLeft)(t)(n.state,n.dispatch)}function c(t){let n=e.editorView.value;n&&(0,v.setIndentRight)(t)(n.state,n.dispatch)}function l(t){let n=e.editorView.value;n&&(t<0?(0,v.setIndentFirstLine)(-t,!0)(n.state,n.dispatch):(0,v.setIndentFirstLine)(t,!1)(n.state,n.dispatch))}function u(t){let n=e.editorView.value;n&&(0,v.removeTabStop)(t)(n.state,n.dispatch)}return{handlePageSetupApply:t,handleLeftMarginChange:r,handleRightMarginChange:i,handleTopMarginChange:a,handleBottomMarginChange:o,handleIndentLeftChange:s,handleIndentRightChange:c,handleFirstLineIndentChange:l,handleTabStopRemove:u}}function tt(e){function t(){if(!e.showOutline.value){let t=e.editorView.value;t&&(e.outlineHeadings.value=(0,S.collectHeadings)(t.state.doc))}e.showOutline.value=!e.showOutline.value}function n(t){let n=e.editorView.value;if(!n)return;let r=n.state.doc.resolve(Math.min(t+1,n.state.doc.content.size)),i=l.TextSelection.near(r);n.dispatch(n.state.tr.setSelection(i).scrollIntoView()),n.focus()}function r(){e.showSidebar.value||e.extractCommentsAndChanges(),e.showSidebar.value=!e.showSidebar.value}function i(t){let n=t.target;n&&(n.closest(`.paged-editor__pages`)||n.closest(`.unified-sidebar`)||n.closest(`.docx-comment-margin-markers`)||(e.activeSidebarItem.value=null))}return{handleToggleOutline:t,handleOutlineNavigate:n,handleToggleSidebar:r,handleEditorScrollMouseDown:i}}function nt(e){function t(t){if(t.key===`F1`){t.preventDefault(),e.showKeyboardShortcuts.value=!0;return}e.handleZoomKeyDown(t),(t.ctrlKey||t.metaKey)&&(e.disableFindReplaceShortcuts?.()&&(t.key===`f`||t.key===`h`)||(t.key===`f`||t.key===`h`?(t.preventDefault(),e.showFindReplace.value=!0):t.key===`k`?(t.preventDefault(),e.showHyperlink.value=!0):t.key===`/`&&(t.preventDefault(),e.showKeyboardShortcuts.value=!e.showKeyboardShortcuts.value)))}return(0,a.onMounted)(()=>window.addEventListener(`keydown`,t)),(0,a.onBeforeUnmount)(()=>window.removeEventListener(`keydown`,t)),{handleKeyDown:t}}function rt(e,t,n,r){return{id:e.reduce((e,t)=>Math.max(e,t.id),0)+1,author:n,date:new Date().toISOString(),content:[{type:`paragraph`,properties:{},content:[{type:`run`,properties:{},content:[{type:`text`,text:t}]}]}],...r==null?{}:{parentId:r}}}function it(e){function t(t,n,r){return rt(e.getDocument()?.package?.document?.comments??[],t,n,r)}function n(n){let r=e.getDocument(),i=e.editorView.value;if(!r?.package?.document||!i)return null;r.package.document.comments||(r.package.document.comments=[]);let a=i.state.schema.marks.comment;if(!a)return null;let o=k(i.state.doc,n.paraId);if(!o)return null;let s=o.from+1,c=o.to-1;if(n.search){let e=M(i.state.doc,o.from,o.to,n.search);if(!e)return null;s=e.from,c=e.to}if(s>=c)return null;let l=t(n.text,n.author);return r.package.document.comments.push(l),e.comments.value=[...r.package.document.comments],i.dispatch(i.state.tr.addMark(s,c,a.create({commentId:l.id}))),e.showSidebar.value=!0,e.emit(`change`,r),e.contentChangeSubscribers.forEach(e=>e(r)),l.id}function r(n,r,i){let a=e.getDocument();if(!a?.package?.document?.comments||!a.package.document.comments.some(e=>e.id===n))return null;let o=t(r,i,n);return a.package.document.comments.push(o),e.comments.value=[...a.package.document.comments],e.emit(`change`,a),e.contentChangeSubscribers.forEach(e=>e(a)),o.id}function i(t){let n=e.getDocument();if(!n?.package?.document?.comments)return;let r=n.package.document.comments.find(e=>e.id===t);r&&(r.done=!0,e.comments.value=[...n.package.document.comments],e.emit(`change`,n),e.contentChangeSubscribers.forEach(e=>e(n)))}function a(t){let n=e.editorView.value;if(!n)return!1;let{schema:r}=n.state;if(!r.marks.deletion||!r.marks.insertion)return!1;let i=k(n.state.doc,t.paraId);if(!i)return!1;let a=t.search===``,o=t.replaceWith===``;if(a&&o)return!1;let s,c;if(a)s=i.to-1,c=i.to-1;else{let e=M(n.state.doc,i.from,i.to,t.search);if(!e)return!1;s=e.from,c=e.to}let l=!1;if(s<c&&n.state.doc.nodesBetween(s,c,e=>{for(let t of e.marks)if(t.type===r.marks.insertion||t.type===r.marks.deletion)return l=!0,!1;return!0}),l)return!1;let u=Math.max(0,...e.trackedChanges.value.map(e=>e.revisionId))+1,d=new Date().toISOString(),f=r.marks.deletion.create({revisionId:u,author:t.author,date:d}),p=r.marks.insertion.create({revisionId:u,author:t.author,date:d}),m=n.state.tr;return a||(m=m.addMark(s,c,f)),o||(m=m.insert(c,r.text(t.replaceWith,[p]))),n.dispatch(m),e.extractCommentsAndChanges(),e.showSidebar.value=!0,!0}function o(e,t){r(e,t,`User`)}function s(t){let n=e.getDocument();if(!n?.package?.document?.comments)return;let r=n.package.document.comments.find(e=>e.id===t);r&&(r.done=!1),e.comments.value=[...n.package.document.comments],e.emit(`change`,n)}function c(t){let n=e.getDocument();n?.package?.document?.comments&&(n.package.document.comments=n.package.document.comments.filter(e=>e.id!==t&&e.parentId!==t),e.comments.value=[...n.package.document.comments],e.emit(`change`,n))}function l(t,n){let r=e.editorView.value;r&&((0,C.acceptChange)(t,n)(r.state,r.dispatch),e.extractCommentsAndChanges(),r.focus())}function u(t,n){let r=e.editorView.value;r&&((0,C.rejectChange)(t,n)(r.state,r.dispatch),e.extractCommentsAndChanges(),r.focus())}function d(n,r){let i=e.getDocument(),a=e.editorView.value;if(!i?.package?.document||!a)return;i.package.document.comments||(i.package.document.comments=[]);let o=a.state.schema.marks.comment;if(!o)return;let s=null,c=a.state.schema.marks.insertion,l=a.state.schema.marks.deletion;if(a.state.doc.descendants((e,t)=>{if(s!==null)return!1;for(let r of e.marks)if((r.type===c||r.type===l)&&r.attrs.revisionId===n)return s=t,!1;return!0}),s===null)return;let u=t(r,`User`);i.package.document.comments.push(u),e.comments.value=[...i.package.document.comments];let d=s,f=Math.min(d+1,a.state.doc.content.size);a.dispatch(a.state.tr.addMark(d,f,o.create({commentId:u.id}))),e.emit(`change`,i)}return{addComment:n,replyToComment:r,resolveComment:i,proposeChange:a,handleCommentReply:o,handleCommentUnresolve:s,handleCommentDelete:c,handleAcceptChange:l,handleRejectChange:u,handleTrackedChangeReply:d}}function at(e,t){let n=(0,g.findBodyPmSpans)(e);for(let e of n){let n=Number(e.dataset.pmStart),r=Number(e.dataset.pmEnd);if(!isNaN(n)&&!isNaN(r)&&t>=n&&t<=r)return e}return null}function ot(e,t,n){if(!e||!t)return;let r=null;for(let t of(0,g.findBodyPmSpans)(e)){let e=Number(t.dataset.pmStart),i=Number(t.dataset.pmEnd);if(Number.isFinite(e)&&Number.isFinite(i)&&n>=e&&n<=i){r=t;break}}if(r||=e.querySelector(`[data-pm-start="${n}"]`),!r)return;let i=t.getBoundingClientRect(),a=r.getBoundingClientRect();t.scrollTo({top:a.top-i.top+t.scrollTop-48,behavior:`smooth`})}function st(e,t,n,r){if(!e||!t)return null;let i=(0,g.clickToPositionDom)(e,n,r,1);return i===null||i<0?null:Math.min(i,t.state.doc.content.size)}function ct(e,t,n){if(!e)return;let r=at(e,t);if(!r)return;let i=r.textContent||``,a=Number(r.dataset.pmStart)||0,[o,c]=(0,s.findWordBoundaries)(i,t-a),l=a+o,u=a+c;l<u&&n(l,u)}function lt(e,t,n){if(!e)return;let r=at(e,t);if(!r)return;let i=r.closest(`.layout-paragraph`);if(!i)return;let a=Number(i.dataset.pmStart),o=Number(i.dataset.pmEnd);!isNaN(a)&&!isNaN(o)&&a<o&&n(a,o)}function ut(e){let t=(0,a.ref)(null),n=(0,a.ref)(null),r=(0,a.ref)(null),i=(0,a.ref)(!1);function o(){let t=e.getDocument(),n=e.editorView.value;!t||!n||(e.comments.value=[...t.package?.document?.comments??[]],e.trackedChanges.value=(0,w.extractTrackedChanges)(n.state).entries,!i.value&&(e.comments.value.length>0||e.trackedChanges.value.length>0)&&(e.showSidebar.value=!0,i.value=!0))}function s(){e.stateTick.value;let n=e.editorView.value;if(!n||e.isAddingComment.value||e.readOnly.value){t.value=null;return}let{from:r,to:i}=n.state.selection;if(r===i){t.value=null;return}let a=e.pagesRef.value,o=e.pagesViewportRef.value;if(!a||!o){t.value=null;return}let s=o.getBoundingClientRect(),c=at(a,r);if(!c){t.value=null;return}let l=c.getBoundingClientRect().top-s.top+o.scrollTop,u=a.querySelector(`.layout-page`);if(!u){t.value=null;return}t.value={top:l,left:u.getBoundingClientRect().right-s.left+8}}function c(){e.stateTick.value;let t=e.editorView.value;if(!t)return;let n=t.state.selection.$from,r=[...t.state.storedMarks??[],...n.nodeAfter?.marks??[],...n.nodeBefore?.marks??[],...n.marks()],i=null;for(let t of r){if(t.type.name===`comment`&&t.attrs.commentId!=null){let n=t.attrs.commentId;if(n===-1||e.resolvedCommentIds.value.has(n))continue;i=`comment-${n}`;break}if((t.type.name===`insertion`||t.type.name===`deletion`)&&t.attrs.revisionId!=null){let n=String(t.attrs.revisionId),r=e.trackedChanges.value.findIndex(e=>String(e.revisionId)===n||String(e.insertionRevisionId??``)===n);if(r>=0){i=`tc-${e.trackedChanges.value[r].revisionId}-${r}`;break}}}i&&(e.showSidebar.value=!0),e.activeSidebarItem.value=i}function l(){let i=e.editorView.value;if(!i)return;let{from:a,to:o}=i.state.selection;if(a===o)return;n.value={from:a,to:o},r.value=t.value?.top??null;let s=i.state.schema.marks.comment;if(s){let e=i.state.tr.addMark(a,o,s.create({commentId:-1}));i.dispatch(e)}e.showSidebar.value=!0,e.isAddingComment.value=!0,t.value=null}function u(t){let i=e.getDocument(),a=e.editorView.value;if(!i?.package)return;i.package.document.comments||(i.package.document.comments=[]);let o=rt(i.package.document.comments,t,`User`);i.package.document.comments.push(o),e.comments.value=[...i.package.document.comments];let s=n.value;if(a&&s&&s.from!==s.to){let e=a.state.schema.marks.comment;if(e){let t=a.state.tr.removeMark(s.from,s.to,e);t=t.addMark(s.from,s.to,e.create({commentId:o.id})),a.dispatch(t)}}n.value=null,r.value=null,e.isAddingComment.value=!1,e.emit(`change`,i)}function d(){let t=e.editorView.value,i=n.value;if(t&&i&&i.from!==i.to){let e=t.state.schema.marks.comment;e&&t.dispatch(t.state.tr.removeMark(i.from,i.to,e))}n.value=null,r.value=null,e.isAddingComment.value=!1}function f(t){e.showSidebar.value=!0}(0,a.watch)([e.stateTick,e.isAddingComment,e.zoom],()=>s()),(0,a.watch)(e.stateTick,()=>c());let p=null;return(0,a.onMounted)(()=>{p=new ResizeObserver(()=>s()),e.pagesRef.value&&p.observe(e.pagesRef.value),window.addEventListener(`resize`,s)}),(0,a.onBeforeUnmount)(()=>{p?.disconnect(),window.removeEventListener(`resize`,s)}),{floatingCommentBtn:t,pendingCommentRange:n,addCommentYPosition:r,sidebarAutoOpenedRef:i,extractCommentsAndChanges:o,handleAddComment:u,handleCancelAddComment:d,handleStartAddComment:l,handleMarkerClick:f,recomputeFloatingCommentBtn:s,recomputeActiveSidebarItem:c}}function dt(e){let t=(0,a.shallowRef)(null),n=(0,a.ref)(!1),r=(0,a.computed)(()=>{e.stateTick.value;let n=e.editorView.value,r=t.value;if(!n||!r)return null;let i=n.state.doc.nodeAt(r.pmPos);return!i||i.type.name!==`image`?null:{wrapType:i.attrs.wrapType??`inline`,displayMode:i.attrs.displayMode??`inline`,cssFloat:i.attrs.cssFloat??null}});function i(t){let n=e.editorView.value;if(!n)return;let r=n.state.schema.nodes.image;if(!r)return;let i=r.create({src:t.src,alt:t.alt,width:t.width,height:t.height}),{from:a}=n.state.selection,o=n.state.tr.insert(a,i);n.dispatch(o.scrollIntoView()),n.focus()}function o(n){let r=e.editorView.value,i=t.value;if(!r||!i)return;let a=(0,d.toolbarValueToLayoutTarget)(n);if(!a)return;let o=r.state.doc.nodeAt(i.pmPos),s=e.getCommands(),c=o?.attrs.wrapType===`inline`&&a!==`inline`?{initialPositionEmu:(0,d.captureInlinePositionEmu)(i.element,e.zoom.value)}:void 0,l=s.setImageWrapType?.(i.pmPos,a,c);l&&(l(r.state,e=>r.dispatch(e),r),r.focus())}function s(n){let r=e.editorView.value,i=t.value;if(!r||!i)return;let a=r.state.doc.nodeAt(i.pmPos);if(!a||a.type.name!==`image`)return;let o=a.attrs.transform||``,s=o.match(/rotate\((-?\d+(?:\.\d+)?)deg\)/),c=s?parseFloat(s[1]):0,l=/scaleX\(-1\)/.test(o),u=/scaleY\(-1\)/.test(o);n===`rotateCW`?c=(c+90)%360:n===`rotateCCW`?c=(c-90+360)%360:n===`flipH`?l=!l:n===`flipV`&&(u=!u);let d=[];c!==0&&d.push(`rotate(${c}deg)`),l&&d.push(`scaleX(-1)`),u&&d.push(`scaleY(-1)`);let f=d.length>0?d.join(` `):null,p=r.state.tr.setNodeMarkup(i.pmPos,void 0,{...a.attrs,transform:f});r.dispatch(p.scrollIntoView()),r.focus()}return{selectedImage:t,imageInteracting:n,imageToolbarContext:r,handleInsertImage:i,handleToolbarImageWrap:o,handleImageTransform:s}}function ft(e,t){return e.getBlob(t)}function pt(e,t){let n=e.state.doc.nodeAt(t);if(!n||n.type.name!==`image`)return;let r=`<img src="${n.attrs.src}" data-pm-image="true" data-width="${n.attrs.width??``}" data-height="${n.attrs.height??``}" data-wrap-type="${n.attrs.wrapType??``}" data-display-mode="${n.attrs.displayMode??``}" data-rid="${n.attrs.rId??``}" />`,i=new ClipboardItem({"text/html":new Blob([r],{type:`text/html`}),"text/plain":new Blob([`[image]`],{type:`text/plain`})});navigator.clipboard.write([i]).catch(()=>{let e=document.createElement(`textarea`);e.value=r,document.body.appendChild(e),e.select(),document.execCommand(`copy`),document.body.removeChild(e)})}function mt(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})}function ht(e){return new Promise(t=>{let n=new Image;n.onload=()=>t({width:n.naturalWidth,height:n.naturalHeight}),n.onerror=()=>t({width:200,height:200}),n.src=e})}async function gt(e){try{let t=await navigator.clipboard.read();for(let n of t){let t=n.types.find(e=>e.startsWith(`image/`));if(t){let r=await mt(await ft(n,t)),i=await ht(r),a=i.width,o=i.height;a>612&&(o=Math.round(612/a*o),a=612);let s=e.state.schema.nodes.image.create({src:r,width:a,height:o,rId:`rId_img_${Date.now()}`,wrapType:`inline`,displayMode:`inline`});e.dispatch(e.state.tr.replaceSelectionWith(s));return}if(n.types.includes(`text/html`)){let t=await(await ft(n,`text/html`)).text(),r=t.match(/<img[^>]+src="([^"]+)"[^>]*>/i);if(r&&r[1]){let n=r[1],i=t.match(/data-width="(\d+)"/),a=t.match(/data-height="(\d+)"/),o=i?Number(i[1]):200,s=a?Number(a[1]):200,c=e.state.schema.nodes.image.create({src:n,width:o||200,height:s||200,rId:`rId_img_${Date.now()}`,wrapType:`inline`,displayMode:`inline`});e.dispatch(e.state.tr.replaceSelectionWith(c));return}}if(n.types.includes(`text/plain`)){let t=await(await ft(n,`text/plain`)).text();if(t&&t!==`[image]`){let{from:n}=e.state.selection;e.dispatch(e.state.tr.insertText(t,n))}return}}}catch{let t=await navigator.clipboard?.readText();if(t){let{from:n}=e.state.selection;e.dispatch(e.state.tr.insertText(t,n))}}}function _t(e,t){let n=e.state.doc.nodeAt(t);if(!n||n.type.name!==`image`)return;let r=document.createElement(`input`);r.type=`file`,r.accept=`image/*`,r.onchange=async()=>{let i=r.files?.[0];if(!i)return;let a=await mt(i),o=await ht(a),s=n.attrs.width||o.width,c=n.attrs.height||o.height,l=Math.min(s/o.width,c/o.height),u=Math.round(o.width*l),d=Math.round(o.height*l);try{let r=e.state.tr.setNodeMarkup(t,void 0,{...n.attrs,src:a,width:u,height:d,rId:`rId_img_${Date.now()}`});e.dispatch(r)}catch{}},r.click()}function vt(t){let{t:n}=e.d(),r=(0,a.ref)({isOpen:!1,position:{x:0,y:0},hasSelection:!1,inTable:!1,onImage:!1,canMergeCells:!1,canSplitCell:!1}),i=(0,a.ref)(null),o=(0,a.computed)(()=>[{action:`cut`,label:n(`contextMenu.cut`),shortcut:n(`contextMenu.cutShortcut`)},{action:`copy`,label:n(`contextMenu.copy`),shortcut:n(`contextMenu.copyShortcut`)},{action:`paste`,label:n(`contextMenu.paste`),shortcut:n(`contextMenu.pasteShortcut`),dividerAfter:!0},{action:`delete`,label:n(`contextMenu.delete`),shortcut:n(`contextMenu.deleteShortcut`)}]);function s(e){let n=t.editorView.value;if(!n)return;let a=e.target,o=(0,d.findImageElement)(a);if(o){let a=Number(o.dataset.pmStart);if(!isNaN(a)){try{let e=l.NodeSelection.create(n.state.doc,a);n.dispatch(n.state.tr.setSelection(e))}catch{}t.selectedImage.value={element:o,pmPos:a,width:o.offsetWidth,height:o.offsetHeight},t.clearOverlay();let s=n.state.doc.nodeAt(a);if(s&&s.type.name===`image`){let n=s.attrs.wrapType??`inline`,c=s.attrs.cssFloat;i.value={open:!0,position:{x:e.clientX,y:e.clientY},pmPos:a,currentWrapType:n,currentCssFloat:c??null,inlinePositionEmu:n===`inline`?(0,d.captureInlinePositionEmu)(o,t.zoom.value):void 0},r.value.isOpen=!1;return}}}{let{from:r,to:i}=n.state.selection,a=t.resolvePos(e.clientX,e.clientY);if(a!==null&&(a<r||a>i))try{t.setPmSelection(a)}catch{}}let s=(0,c.getTableContext)(n.state),{empty:u}=n.state.selection;i.value&&=null,r.value={isOpen:!0,position:{x:e.clientX,y:e.clientY},hasSelection:!u,inTable:s.isInTable,onImage:!!o,canMergeCells:!!s.hasMultiCellSelection,canSplitCell:!!s.canSplitCell}}function u(e){let n=t.editorView.value,a=t.selectedImage.value;if(!n||!a)return;let o=n.state.doc.nodeAt(a.pmPos);if(!o||o.type.name!==`image`)return;let s=o.attrs.wrapType??`inline`,c=o.attrs.cssFloat;i.value={open:!0,position:{x:e.clientX,y:e.clientY},pmPos:a.pmPos,currentWrapType:s,currentCssFloat:c??null,inlinePositionEmu:s===`inline`?(0,d.captureInlinePositionEmu)(a.element,t.zoom.value):void 0},r.value.isOpen=!1}function f(e){let n=t.editorView.value,r=i.value;if(!n||!r)return;let a=t.getCommands(),o=r.inlinePositionEmu&&e!==`inline`?{initialPositionEmu:r.inlinePositionEmu}:void 0,s=a.setImageWrapType?.(r.pmPos,e,o);s&&(s(n.state,e=>n.dispatch(e),n),n.focus())}function p(e){let n=t.editorView.value;if(!n)return;let r=t.getCommands();switch(e){case`cut`:if(t.selectedImage.value){pt(n,t.selectedImage.value.pmPos);let e=t.selectedImage.value.pmPos,r=n.state.doc.nodeAt(e);r&&(n.dispatch(n.state.tr.delete(e,e+r.nodeSize)),t.selectedImage.value=null)}else document.execCommand(`cut`);break;case`copy`:t.selectedImage.value?pt(n,t.selectedImage.value.pmPos):document.execCommand(`copy`);break;case`paste`:gt(n);break;case`pasteAsPlainText`:navigator.clipboard.readText().then(e=>{e&&n.dispatch(n.state.tr.insertText(e).scrollIntoView())}).catch(()=>{});break;case`delete`:{let{from:e,to:t}=n.state.selection;e!==t&&n.dispatch(n.state.tr.delete(e,t));break}case`selectAll`:{let e=l.TextSelection.create(n.state.doc,0,n.state.doc.content.size);n.dispatch(n.state.tr.setSelection(e));break}case`imageProperties`:t.selectedImage.value&&(t.showImageProperties.value=!0);break;case`replaceImage`:t.selectedImage.value&&_t(n,t.selectedImage.value.pmPos);break;case`deleteImage`:if(t.selectedImage.value){let e=t.selectedImage.value.pmPos,r=n.state.doc.nodeAt(e);r&&(n.dispatch(n.state.tr.delete(e,e+r.nodeSize)),t.selectedImage.value=null)}break;case`addRowAbove`:case`addRowBelow`:case`deleteRow`:case`addColumnLeft`:case`addColumnRight`:case`deleteColumn`:case`mergeCells`:case`splitCell`:{let t=r[e];t&&t()(n.state,e=>n.dispatch(e),n);break}}n.focus()}return{contextMenu:r,imageContextMenu:i,imageContextMenuTextActions:o,handleContextMenu:s,handleSelectedImageContextMenu:u,handleImageWrapSelect:f,handleContextMenuAction:p}}var yt=500;function bt(e){let t=(0,a.ref)(null),n=null;function r(){n!==null&&(clearTimeout(n),n=null)}let i=(0,a.ref)(null),o=0,s=null,c=0,u=!1,f=null,p=(0,a.ref)({currentPage:1,totalPages:1,visible:!1}),m=null;function h(t,n){return st(e.pagesRef.value,e.editorView.value,t,n)}function g(t,n){let r=e.editorView.value;if(!r)return;let i=r.state.doc.resolve(t),a=n===void 0?i:r.state.doc.resolve(n),o=l.TextSelection.between(i,a);r.dispatch(r.state.tr.setSelection(o))}function _(t){ot(e.pagesRef.value,e.pagesViewportRef.value,t)}function v(t){ct(e.pagesRef.value,t,g)}function y(t){lt(e.pagesRef.value,t,g)}function b(t){let n=e.editorView.value;if(!n)return;let r=null;if(n.state.doc.descendants((e,n)=>r===null?(e.attrs?.bookmarks)?.some(e=>e.name===t)?(r=n,!1):!0:!1),r!==null){_(r);try{g(Math.min(r+1,n.state.doc.content.size))}catch{g(r)}}}function x(a){if(e.readOnly.value||u)return;let o=e.pagesRef.value;if(!o)return;let s=e.pagesViewportRef.value;if(!s)return;let c=(0,T.detectTableInsertHover)({mouseX:a.clientX,mouseY:a.clientY,pagesContainer:o,target:a.target,hfEditMode:i.value?.position??null});if(!c){n===null&&(n=setTimeout(()=>{t.value=null,n=null},T.TABLE_INSERT_HIDE_DELAY_MS));return}let l=s.getBoundingClientRect();t.value={type:c.type,x:c.clientX-l.left,y:c.clientY-l.top,cellPmPos:c.cellPmPos},r()}function S(n){n.preventDefault(),n.stopPropagation();let r=t.value,i=e.editorView.value;if(!r||!i)return;let a=i.state.tr.setSelection(l.TextSelection.create(i.state.doc,r.cellPmPos+1));i.dispatch(a);let o=e.getCommands(),s=r.type===`row`?o.addRowBelow?.():o.addColumnRight?.();s&&(s(i.state,e=>i.dispatch(e),i),t.value=null,i.focus())}function C(t){let n=t.target?.closest(`a[href]`);if(!n)return;t.preventDefault();let r=n.getAttribute(`href`)||``;if(!r)return;if(r.startsWith(`#`)){let e=r.slice(1);e&&b(e);return}let i=e.editorView.value;if(i&&i.state.selection.from!==i.state.selection.to)return;let a=e.pagesViewportRef.value;if(!a)return;let o=a.getBoundingClientRect(),s=n.getBoundingClientRect();e.hyperlinkPopupData.value={href:r,displayText:n.textContent||``,tooltip:n.getAttribute(`title`)||void 0,position:{top:s.bottom-o.top+a.scrollTop+4,left:s.left-o.left+a.scrollLeft}}}function w(t){let n=t.target,r=n.closest(`.layout-page-header`),a=n.closest(`.layout-page-footer`),o=r??a;if(!o)return;let s=r?`header`:`footer`,c=e.getDocument();if(!c?.package)return;let l=c.package.document?.sections?.[0]?.properties??c.package.document?.finalSectionProperties??null,u=s===`header`?l?.headerReferences:l?.footerReferences,d=s===`header`?c.package.headers:c.package.footers;if(!u||!d)return;let f=(u.find(e=>e.type===`default`)??u.find(e=>e.type===`first`))?.rId??null,p=f?d.get(f)??null:null,m=e.pagesViewportRef.value;if(!m)return;let h=o.getBoundingClientRect(),g=m.getBoundingClientRect(),_=e.zoom.value||1;i.value={position:s,rId:f,headerFooter:p,targetRect:{top:(h.top-g.top+m.scrollTop)/_,left:(h.left-g.left+m.scrollLeft)/_,width:h.width/_,height:h.height/_}}}function E(t){let n=e.getDocument(),r=i.value;if(!n?.package||!r)return;let a=r.position===`header`?n.package.headers:n.package.footers;if(!a||!r.rId)return;let o=a.get(r.rId);o&&(o.content=t),e.reLayout(),e.emit(`change`,n)}function D(){let t=e.getDocument(),n=i.value;if(!t?.package||!n||!n.rId)return;let r=(n.position===`header`?t.package.headers:t.package.footers)?.get(n.rId);r&&(r.content=[]),i.value=null,e.reLayout(),e.emit(`change`,t)}function O(t){if(t.button!==0||e.imageInteracting.value)return;let n=e.editorView.value;if(!n||!e.readOnly.value&&e.tableResize.tryStartResize(t,n))return;let r=t.target,i=(0,d.findImageElement)(r);if(i){t.preventDefault(),t.stopPropagation();let r=Number(i.dataset.pmStart);if(!isNaN(r)){try{let e=l.NodeSelection.create(n.state.doc,r);n.dispatch(n.state.tr.setSelection(e))}catch{}e.selectedImage.value={element:i,pmPos:r,width:i.offsetWidth,height:i.offsetHeight},e.clearOverlay()}n.focus();return}e.selectedImage.value=null,t.preventDefault();let a=h(t.clientX,t.clientY);if(a===null){n.focus();return}let p=Date.now();if(p-o<yt&&s===a?c++:c=1,o=p,s=a,c===2)v(a);else if(c>=3)y(a),c=0;else{if(t.shiftKey){let{from:e}=n.state.selection;g(e,a)}else g(a);f=a,u=!0}n.focus()}function k(e){if(!u||f===null)return;let t=h(e.clientX,e.clientY);t!==null&&t!==f&&g(f,t)}function A(){u=!1}function j(){let t=e.pagesViewportRef.value,n=e.layout.value;if(!t||!n||n.pages.length===0)return;let r=t.scrollTop,i=n.pages.length,a=r+t.clientHeight/2,o=24,s=1;for(let e=0;e<n.pages.length;e++){let t=n.pages[e].size.h,r=o+t;if(a<r){s=e+1;break}o=r+24,s=e+2}s=Math.min(s,i),p.value={currentPage:s,totalPages:i,visible:!0},m&&clearTimeout(m),m=setTimeout(()=>{p.value={...p.value,visible:!1}},600)}return(0,a.onMounted)(()=>{window.addEventListener(`mousemove`,k),window.addEventListener(`mouseup`,A),e.pagesViewportRef.value?.addEventListener(`scroll`,j,{passive:!0})}),(0,a.onBeforeUnmount)(()=>{r(),window.removeEventListener(`mousemove`,k),window.removeEventListener(`mouseup`,A),e.pagesViewportRef.value?.removeEventListener(`scroll`,j),m&&clearTimeout(m)}),{tableInsertButton:t,hfEdit:i,scrollPageInfo:p,resolvePos:h,setPmSelection:g,scrollVisiblePositionIntoView:_,navigateToBookmark:b,handlePagesMouseDown:O,handlePagesMouseMove:x,handlePagesClick:C,handlePagesDoubleClick:w,handleTableInsertClick:S,clearTableInsertTimer:r,handleHfSave:E,handleHfRemove:D}}function xt(e){let t=null,n=null;function i(){let r=e.pagesRef.value;r&&(r.querySelectorAll(`.vue-sel-rect, .vue-caret`).forEach(e=>e.remove()),t!==null&&(clearInterval(t),t=null),n=null)}function o(){let a=e.pagesRef.value,o=e.editorView.value;if(!a||!o)return;i();let s=o.state.selection;if(s instanceof l.NodeSelection&&s.node.type.name===`image`){let t=null;for(let e of a.querySelectorAll(`[data-pm-start="${s.from}"]`)){let n=(0,d.findImageElement)(e);if(n){t=n;break}}if(t){let n=e.selectedImage.value;(!n||n.element!==t||n.pmPos!==s.from||n.width!==t.offsetWidth||n.height!==t.offsetHeight)&&(e.selectedImage.value={element:t,pmPos:s.from,width:t.offsetWidth,height:t.offsetHeight});return}}if(e.selectedImage.value)return;let{from:c,to:f,empty:p}=o.state.selection,m=a.scrollTop,h=a.scrollLeft;if(p){let e=(0,u.getCaretPositionFromDom)(a,c,a.getBoundingClientRect());if(e){let i=document.createElement(`div`);i.className=`vue-caret`,i.style.cssText=`
3
+ position: absolute;
4
+ left: ${e.x+h}px;
5
+ top: ${e.y+m}px;
6
+ width: 2px;
7
+ height: ${e.height}px;
8
+ background: #000;
9
+ pointer-events: none;
10
+ z-index: ${r.t.selectionOverlay};
11
+ `,a.appendChild(i),n=i;let o=!0;t=setInterval(()=>{o=!o,n&&(n.style.opacity=o?`1`:`0`)},530)}return}let g=(0,u.getSelectionRectsFromDom)(a,c,f,a.getBoundingClientRect());for(let e of g){let t=document.createElement(`div`);t.className=`vue-sel-rect`,t.style.cssText=`
12
+ position: absolute;
13
+ left: ${e.x+h}px;
14
+ top: ${e.y+m}px;
15
+ width: ${e.width}px;
16
+ height: ${e.height}px;
17
+ background: rgba(66, 133, 244, 0.3);
18
+ pointer-events: none;
19
+ z-index: ${r.t.selectionOverlay};
20
+ `,a.appendChild(t)}}return(0,a.onBeforeUnmount)(()=>{i()}),{clearOverlay:i,updateSelectionOverlay:o}}function St(e){function t(t){let n=e.editorView.value;if(!n)return;let r=e.getCommands()[t];r&&(r()(n.state,e=>n.dispatch(e),n),n.focus())}function n(t,n){let r=e.editorView.value;if(!r)return;let i=e.getCommands().insertTable;i&&(i(t,n)(r.state,e=>r.dispatch(e),r),r.focus())}function r(n){switch(n){case`open`:e.docxInputRef.value?.click(),e.emit(`menu-action`,`open`);break;case`save`:e.emit(`menu-action`,`save`),e.downloadCurrentDocument();break;case`pageSetup`:e.showPageSetup.value=!0;break;case`clearFormatting`:e.handleClearFormatting();break;case`insertImage`:e.showInsertImage.value=!0;break;case`insertLink`:e.showHyperlink.value=!0;break;case`insertSymbol`:e.showInsertSymbol.value=!0;break;case`insertPageBreak`:e.handleInsertPageBreak();break;case`insertTOC`:t(`generateTOC`);break;case`outline`:e.handleToggleOutline();break;case`sidebar`:e.handleToggleSidebar();break;case`shortcuts`:e.showKeyboardShortcuts.value=!0;break;case`reportIssue`:(0,E.openReportIssue)();break;case`dirLTR`:t(`setLtr`);break;case`dirRTL`:t(`setRtl`);break}}return{handleMenuAction:r,handleMenuTableInsert:n,execSimpleCommand:t}}function Ct(e){async function t(t){e.sidebarAutoOpenedRef.value=!1,await e.loadDocumentBuffer(t)}function n(t){e.sidebarAutoOpenedRef.value=!1,e.loadDocument(t)}(0,a.watch)(e.documentBuffer,e=>{e&&t(e)}),(0,a.watch)(e.document,e=>{e&&n(e)}),(0,a.onMounted)(async()=>{await(0,a.nextTick)();let r=e.documentBuffer(),i=e.document();r?await t(r):i&&n(i)})}function wt(e){function t(){e.onPrint?.(),window.print()}function n(){t()}function r(){return e.zoom.value}function i(t){if(!Number.isInteger(t)||t<1)return;let n=e.pagesViewportRef.value,r=e.pagesRef.value?.querySelector(`[data-page-number="${t}"]`);if(!n||!r)return;let i=n.getBoundingClientRect(),a=r.getBoundingClientRect();n.scrollTo({top:a.top-i.top+n.scrollTop-24,behavior:`smooth`})}function a(t){Number.isFinite(t)&&e.scrollVisiblePositionIntoView(t)}function o(){return e.editorView.value?{getDocument:e.getDocument,getView:()=>e.editorView.value,getState:()=>e.editorView.value?.state??null}:null}function s(){return e.layout.value?.pages.length??0}function c(){let t=e.layout.value,n=e.editorView.value;if(!t||!n)return 0;let r=(0,_.findPageIndexContainingPmPos)(t,n.state.selection.from);return r==null?0:r+1}function l(t){let n=e.editorView.value;if(!n)return!1;let r=k(n.state.doc,t);return r?(e.scrollVisiblePositionIntoView(r.from+1),!0):!1}function u(t,n){return N(e.editorView.value,t,n)}function d(){return ee(e.editorView.value)}function f(){return e.comments.value}function p(t){return P(e.editorView.value,e.layout.value,t)}function m(t){return e.contentChangeSubscribers.add(t),()=>e.contentChangeSubscribers.delete(t)}function h(t){return e.selectionChangeSubscribers.add(t),()=>e.selectionChangeSubscribers.delete(t)}return{exposed:{getAgent:()=>null,save:e.save,setZoom:e.setZoom,getZoom:r,focus:e.focus,scrollToPage:i,scrollToPosition:a,openPrintPreview:n,print:t,loadDocument:e.loadDocument,loadDocumentBuffer:e.loadDocumentBuffer,destroy:e.destroy,getDocument:e.getDocument,getEditorRef:o,addComment:e.addComment,replyToComment:e.replyToComment,resolveComment:e.resolveComment,proposeChange:e.proposeChange,scrollToParaId:l,findInDocument:u,getSelectionInfo:d,getComments:f,applyFormatting:e.applyFormatting,setParagraphStyle:e.setParagraphStyle,getPageContent:p,getTotalPages:s,getCurrentPage:c,onContentChange:m,onSelectionChange:h}}}var Tt={class:`docx-editor-vue__toolbar-shell`},Et={key:0,class:`docx-editor-vue__error`},Dt={key:1,class:`docx-editor-vue__loading`},Ot={class:`docx-editor-vue__editor-area`},kt={key:0,class:`docx-editor-vue__vertical-ruler`},At=[`title`],jt=[`title`,`aria-label`],X=(0,a.defineComponent)({__name:`DocxEditor`,props:{documentBuffer:{default:null},document:{default:null},showToolbar:{type:Boolean,default:!0},showMenuBar:{type:Boolean,default:!0},showRuler:{type:Boolean,default:!0},documentName:{default:``},readOnly:{type:Boolean,default:!1},mode:{default:`editing`},onModeChange:{},i18n:{default:void 0},theme:{default:null},externalPlugins:{default:()=>[]},showZoomControl:{type:Boolean,default:!0},initialZoom:{default:1},toolbarExtra:{type:Function,default:void 0},className:{default:``},style:{type:[Boolean,null,String,Object,Array],default:void 0},showOutline:{type:Boolean,default:!1},showOutlineButton:{type:Boolean,default:!0},fontFamilies:{default:void 0},onPrint:{type:Function,default:void 0},disableFindReplaceShortcuts:{type:Boolean,default:!1},renderLogo:{type:Function,default:void 0},onDocumentNameChange:{type:Function,default:void 0},documentNameEditable:{type:Boolean,default:!0},renderTitleBarRight:{type:Function,default:void 0}},emits:[`change`,`update:document`,`error`,`ready`,`rename`,`menu-action`,`mode-change`],setup(n,{expose:r,emit:o}){let c=n,l=o,u=(0,a.ref)(c.mode),d=(0,a.computed)(()=>c.readOnly||u.value===`viewing`);e.u((0,a.computed)(()=>c.i18n));let{t:f}=e.c((0,a.computed)(()=>c.i18n)),p=(0,a.ref)(null),m=(0,a.ref)(null),g=(0,a.ref)(null),_=(0,a.ref)(0),v=new Set,y=new Set,b=new D.LayoutSelectionGate,x=(0,a.ref)(!1),S=(0,a.ref)(!1),C=(0,a.ref)(!1),w=(0,a.ref)(!1),T=(0,a.ref)(!1),E=(0,a.ref)(!1),O=(0,a.ref)(c.showOutline),k=(0,a.ref)(!1),A=(0,a.ref)(!1),j=(0,a.ref)(!1),M=(0,a.ref)(null),N=(0,a.shallowRef)([]),P=(0,a.shallowRef)([]),ne=(0,a.shallowRef)([]),{zoom:F,zoomPercent:re,isMinZoom:ie,isMaxZoom:ae,setZoom:oe,zoomIn:se,zoomOut:I,handleWheel:L,handleKeyDown:le,installShortcuts:ue,ZOOM_PRESETS:de}=i.n(c.initialZoom);ue();let{editorView:R,isReady:pe,parseError:B,layout:V,loadBuffer:me,loadDocument:H,save:U,focus:ge,destroy:_e,getDocument:W,getCommands:G,reLayout:be}=i.r({hiddenContainer:p,pagesContainer:m,readOnly:d,externalPlugins:c.externalPlugins,syncCoordinator:b,onChange:e=>{l(`change`,e),l(`update:document`,e),v.forEach(t=>t(e))},onError:e=>l(`error`,e),onSelectionUpdate:()=>{_.value++,wn();let e=ee(R.value);y.forEach(t=>t(e))}}),K=(0,a.computed)(()=>{_.value;let e=W();if(!e?.package?.document)return null;let t=e.package.document;return t.finalSectionProperties??t.sections?.[0]?.properties??null}),xe=(0,a.computed)(()=>(_.value,W()?.package?.theme??c.theme??null)),q=(0,a.computed)(()=>{let e=[];return A.value&&e.push(`translateX(-${s.SIDEBAR_DOCUMENT_SHIFT}px)`),F.value!==1&&e.push(`scale(${F.value})`),{transform:e.length>0?e.join(` `):void 0,transformOrigin:`top center`,transition:`transform 0.2s ease`}}),Se=(0,a.computed)(()=>({paddingLeft:`20px`,paddingRight:20+(A.value?s.SIDEBAR_DOCUMENT_SHIFT*2:0)+`px`,transition:`padding 0.2s ease`})),Ce=(0,a.computed)(()=>{let e=K.value;return(0,h.twipsToPixels)(e?.pageWidth??12240)*F.value}),we=(0,a.computed)(()=>{let e=new Set;for(let t of N.value)t.parentId==null&&t.done&&e.add(t.id);return e}),Te=(0,a.computed)(()=>{_.value;let e=R.value;if(!e)return[];let t=new Set,n=[];return e.state.doc.descendants(e=>{let r=e.attrs?.bookmarks;if(!r)return!0;for(let e of r){let r=e.name;!r||r.startsWith(`_`)||t.has(r)||(t.add(r),n.push({name:r,label:r}))}return!0}),n.sort((e,t)=>e.name.localeCompare(t.name))}),{floatingCommentBtn:Ee,pendingCommentRange:De,addCommentYPosition:Oe,sidebarAutoOpenedRef:ke,extractCommentsAndChanges:Ae,handleAddComment:je,handleCancelAddComment:Me,handleStartAddComment:Ne,handleMarkerClick:Pe}=ut({editorView:R,getDocument:W,comments:N,trackedChanges:P,resolvedCommentIds:we,activeSidebarItem:M,showSidebar:A,isAddingComment:j,readOnly:d,zoom:F,stateTick:_,pagesRef:m,pagesViewportRef:g,emit:l}),{docxInputRef:Fe,handleDocxFileChange:Ie,handleDocumentNameChange:Le,downloadCurrentDocument:J,emitReadyAfterSidebarStateRefresh:Re,loadDocumentBuffer:ze,loadDocument:Ve,save:He}=Ze({loadBuffer:me,loadParsedDocument:H,getDocument:W,saveBlob:U,extractCommentsAndChanges:Ae,emit:l,documentName:()=>c.documentName,onDocumentNameChange:c.onDocumentNameChange,nextTick:a.nextTick}),{hyperlinkPopupData:Y,handleHyperlinkSubmit:Ue,handleHyperlinkRemove:We,handleHyperlinkPopupNavigate:Ge,handleHyperlinkPopupEdit:Ke,handleHyperlinkPopupRemove:qe}=Qe({editorView:R,getCommands:G}),{handleClearFormatting:Je,handleApplyStyle:Ye,handleInsertPageBreak:rt,handleInsertSymbol:at,applyFormatting:ot,setParagraphStyle:st}=$e({editorView:R,getDocument:W}),{handlePageSetupApply:ct,handleLeftMarginChange:lt,handleRightMarginChange:ft,handleTopMarginChange:pt,handleBottomMarginChange:mt,handleIndentLeftChange:ht,handleIndentRightChange:gt,handleFirstLineIndentChange:_t,handleTabStopRemove:yt}=et({editorView:R,getDocument:W,readOnly:d,stateTick:_,reLayout:be,emit:l}),{handleToggleOutline:X,handleOutlineNavigate:Mt,handleToggleSidebar:Nt,handleEditorScrollMouseDown:Pt}=tt({editorView:R,showOutline:O,showSidebar:A,outlineHeadings:ne,activeSidebarItem:M,extractCommentsAndChanges:Ae});nt({showKeyboardShortcuts:k,showFindReplace:x,showHyperlink:C,handleZoomKeyDown:le,disableFindReplaceShortcuts:()=>c.disableFindReplaceShortcuts});let{addComment:Ft,replyToComment:It,resolveComment:Lt,proposeChange:Rt,handleCommentReply:zt,handleCommentUnresolve:Bt,handleCommentDelete:Vt,handleAcceptChange:Ht,handleRejectChange:Ut,handleTrackedChangeReply:Wt}=it({editorView:R,getDocument:W,comments:N,trackedChanges:P,showSidebar:A,isAddingComment:j,pendingCommentRange:De,contentChangeSubscribers:v,extractCommentsAndChanges:Ae,emit:l}),{selectedImage:Z,imageInteracting:Gt,imageToolbarContext:Kt,handleInsertImage:qt,handleToolbarImageWrap:Jt,handleImageTransform:Yt}=dt({editorView:R,zoom:F,stateTick:_,getCommands:G}),Xt=i.t(),Zt=null,{tableInsertButton:Q,hfEdit:$,scrollPageInfo:Qt,resolvePos:$t,setPmSelection:en,scrollVisiblePositionIntoView:tn,handlePagesMouseDown:nn,handlePagesMouseMove:rn,handlePagesClick:an,handlePagesDoubleClick:on,handleTableInsertClick:sn,clearTableInsertTimer:cn,handleHfSave:ln,handleHfRemove:un}=bt({editorView:R,pagesRef:m,pagesViewportRef:g,selectedImage:Z,imageInteracting:Gt,hyperlinkPopupData:Y,readOnly:d,zoom:F,layout:V,tableResize:Xt,getCommands:G,getDocument:W,reLayout:be,emit:l,clearOverlay:Cn}),{contextMenu:dn,imageContextMenu:fn,imageContextMenuTextActions:pn,handleContextMenu:mn,handleSelectedImageContextMenu:hn,handleImageWrapSelect:gn,handleContextMenuAction:_n}=vt({editorView:R,selectedImage:Z,zoom:F,showImageProperties:T,getCommands:G,clearOverlay:Cn,setPmSelection:en,resolvePos:$t}),{handleMenuAction:vn,handleMenuTableInsert:yn}=St({editorView:R,getCommands:G,docxInputRef:Fe,showPageSetup:E,showInsertImage:S,showHyperlink:C,showInsertSymbol:w,showKeyboardShortcuts:k,handleClearFormatting:Je,handleInsertPageBreak:rt,handleToggleOutline:X,handleToggleSidebar:Nt,downloadCurrentDocument:J,emit:l});Ct({documentBuffer:()=>c.documentBuffer,document:()=>c.document,loadDocumentBuffer:ze,loadDocument:Ve,sidebarAutoOpenedRef:ke});let bn=()=>R.value,xn=()=>m.value;(0,a.watch)(()=>c.mode,e=>{e&&e!==u.value&&(u.value=e)}),(0,a.watch)(()=>c.showOutline,e=>{O.value=!!e});function Sn(e){u.value!==e&&(u.value=e,l(`mode-change`,e))}(0,a.onMounted)(()=>{Zt=Xt.install()}),(0,a.onBeforeUnmount)(()=>{Zt?.()});function Cn(){Tn.clearOverlay()}function wn(){Tn.updateSelectionOverlay()}let Tn=xt({editorView:R,pagesRef:m,selectedImage:Z});(0,a.onBeforeUnmount)(()=>{Cn()});let{exposed:En}=wt({editorView:R,layout:V,pagesRef:m,pagesViewportRef:g,zoom:F,comments:N,focus:ge,destroy:_e,getDocument:W,setZoom:oe,save:He,loadDocument:Ve,loadDocumentBuffer:ze,addComment:Ft,replyToComment:It,resolveComment:Lt,proposeChange:Rt,applyFormatting:ot,setParagraphStyle:st,scrollVisiblePositionIntoView:tn,contentChangeSubscribers:v,selectionChangeSubscribers:y,onPrint:c.onPrint});return r(En),(r,i)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`docx-editor-vue ep-root paged-editor`,n.className,{"paged-editor--readonly":d.value,"paged-editor--hf-editing":(0,a.unref)($)!==null,"paged-editor--editing-header":(0,a.unref)($)?.position===`header`,"paged-editor--editing-footer":(0,a.unref)($)?.position===`footer`}]),style:(0,a.normalizeStyle)(n.style)},[(0,a.createElementVNode)(`div`,Tt,[(0,a.createVNode)(ve,{"show-menu-bar":n.showMenuBar,"document-name":n.documentName,"document-name-editable":n.documentNameEditable,"render-logo":n.renderLogo,"render-title-bar-right":n.renderTitleBarRight,onRename:(0,a.unref)(Le),onMenuAction:(0,a.unref)(vn),onInsertTable:(0,a.unref)(yn)},{"title-bar-left":(0,a.withCtx)(()=>[(0,a.renderSlot)(r.$slots,`title-bar-left`)]),"title-bar-right":(0,a.withCtx)(()=>[(0,a.renderSlot)(r.$slots,`title-bar-right`)]),_:3},8,[`show-menu-bar`,`document-name`,`document-name-editable`,`render-logo`,`render-title-bar-right`,`onRename`,`onMenuAction`,`onInsertTable`]),n.showToolbar?((0,a.openBlock)(),(0,a.createBlock)(t.x,{key:0,view:(0,a.unref)(R),"get-commands":(0,a.unref)(G),"state-tick":_.value,"zoom-percent":(0,a.unref)(re),"is-min-zoom":(0,a.unref)(ie),"is-max-zoom":(0,a.unref)(ae),"zoom-presets":(0,a.unref)(de),"show-zoom-control":n.showZoomControl,"editor-mode":u.value,"comments-sidebar-open":A.value,"image-context":(0,a.unref)(Kt),theme:xe.value,"font-families":n.fontFamilies,onInsertLink:i[0]||=e=>C.value=!0,onApplyStyle:(0,a.unref)(Ye),onZoomIn:(0,a.unref)(se),onZoomOut:(0,a.unref)(I),onZoomSet:(0,a.unref)(oe),onToggleSidebar:(0,a.unref)(Nt),onModeChange:Sn,onImageWrapType:(0,a.unref)(Jt),onImageProperties:i[1]||=e=>T.value=!0,onImageTransform:(0,a.unref)(Yt)},(0,a.createSlots)({"table-context":(0,a.withCtx)(()=>[(0,a.createVNode)(t.h,{view:(0,a.unref)(R),"get-commands":(0,a.unref)(G),"state-tick":_.value,theme:xe.value},null,8,[`view`,`get-commands`,`state-tick`,`theme`])]),_:2},[n.toolbarExtra?{name:`toolbar-extra`,fn:(0,a.withCtx)(()=>[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.toolbarExtra)))]),key:`0`}:{name:`toolbar-extra`,fn:(0,a.withCtx)(()=>[(0,a.renderSlot)(r.$slots,`toolbar-extra`)]),key:`1`}]),1032,[`view`,`get-commands`,`state-tick`,`zoom-percent`,`is-min-zoom`,`is-max-zoom`,`zoom-presets`,`show-zoom-control`,`editor-mode`,`comments-sidebar-open`,`image-context`,`theme`,`font-families`,`onApplyStyle`,`onZoomIn`,`onZoomOut`,`onZoomSet`,`onToggleSidebar`,`onImageWrapType`,`onImageTransform`])):(0,a.createCommentVNode)(``,!0)]),(0,a.createVNode)(ye,{"show-find-replace":x.value,"onUpdate:showFindReplace":i[2]||=e=>x.value=e,"show-insert-image":S.value,"onUpdate:showInsertImage":i[3]||=e=>S.value=e,"show-hyperlink":C.value,"onUpdate:showHyperlink":i[4]||=e=>C.value=e,"show-insert-symbol":w.value,"onUpdate:showInsertSymbol":i[5]||=e=>w.value=e,"show-image-properties":T.value,"onUpdate:showImageProperties":i[6]||=e=>T.value=e,"show-page-setup":E.value,"onUpdate:showPageSetup":i[7]||=e=>E.value=e,"show-keyboard-shortcuts":k.value,"onUpdate:showKeyboardShortcuts":i[8]||=e=>k.value=e,view:(0,a.unref)(R),bookmarks:Te.value,"selected-image-pm-pos":(0,a.unref)(Z)?.pmPos??null,"section-properties":K.value,onInsertImage:(0,a.unref)(qt),onInsertSymbol:(0,a.unref)(at),onHyperlinkSubmit:(0,a.unref)(Ue),onHyperlinkRemove:(0,a.unref)(We),onPageSetupApply:(0,a.unref)(ct)},null,8,[`show-find-replace`,`show-insert-image`,`show-hyperlink`,`show-insert-symbol`,`show-image-properties`,`show-page-setup`,`show-keyboard-shortcuts`,`view`,`bookmarks`,`selected-image-pm-pos`,`section-properties`,`onInsertImage`,`onInsertSymbol`,`onHyperlinkSubmit`,`onHyperlinkRemove`,`onPageSetupApply`]),(0,a.unref)(B)?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Et,(0,a.toDisplayString)((0,a.unref)(B)),1)):(0,a.createCommentVNode)(``,!0),!(0,a.unref)(pe)&&!(0,a.unref)(B)?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Dt,`Loading...`)):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`div`,{ref_key:`hiddenPmRef`,ref:p,class:`docx-editor-vue__hidden-pm paged-editor__hidden-pm`},null,512),(0,a.createElementVNode)(`div`,{class:`docx-editor-vue__editor-scroll`,onMousedown:i[31]||=(...e)=>(0,a.unref)(Pt)&&(0,a.unref)(Pt)(...e)},[n.showRuler&&K.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,class:`docx-editor-vue__ruler-row`,style:(0,a.normalizeStyle)(Se.value)},[(0,a.createVNode)(t.o,{"section-props":K.value,zoom:(0,a.unref)(F),editable:!d.value,onLeftMarginChange:(0,a.unref)(lt),onRightMarginChange:(0,a.unref)(ft),onIndentLeftChange:(0,a.unref)(ht),onIndentRightChange:(0,a.unref)(gt),onFirstLineIndentChange:(0,a.unref)(_t),onTabStopRemove:(0,a.unref)(yt)},null,8,[`section-props`,`zoom`,`editable`,`onLeftMarginChange`,`onRightMarginChange`,`onIndentLeftChange`,`onIndentRightChange`,`onFirstLineIndentChange`,`onTabStopRemove`])],4)):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`div`,Ot,[(0,a.createElementVNode)(`div`,{ref_key:`pagesViewportRef`,ref:g,class:`docx-editor-vue__pages-viewport`,onMousedown:i[22]||=(...e)=>(0,a.unref)(nn)&&(0,a.unref)(nn)(...e),onMousemove:i[23]||=(...e)=>(0,a.unref)(rn)&&(0,a.unref)(rn)(...e),onClick:i[24]||=(...e)=>(0,a.unref)(an)&&(0,a.unref)(an)(...e),onDblclick:i[25]||=(...e)=>(0,a.unref)(on)&&(0,a.unref)(on)(...e),onContextmenu:i[26]||=(0,a.withModifiers)((...e)=>(0,a.unref)(mn)&&(0,a.unref)(mn)(...e),[`prevent`]),onWheel:i[27]||=(...e)=>(0,a.unref)(L)&&(0,a.unref)(L)(...e)},[n.showRuler&&K.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,kt,[(0,a.createVNode)(t.a,{"section-props":K.value,zoom:(0,a.unref)(F),editable:!d.value,onTopMarginChange:(0,a.unref)(pt),onBottomMarginChange:(0,a.unref)(mt)},null,8,[`section-props`,`zoom`,`editable`,`onTopMarginChange`,`onBottomMarginChange`])])):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`div`,{ref_key:`pagesRef`,ref:m,class:`docx-editor-vue__pages paged-editor__pages`,style:(0,a.normalizeStyle)(q.value)},null,4),(0,a.createVNode)(he,{"is-open":(0,a.unref)($)!==null,position:(0,a.unref)($)?.position??`header`,"header-footer":(0,a.unref)($)?.headerFooter??null,styles:(0,a.unref)(W)()?.package?.styles??null,theme:(0,a.unref)(W)()?.package?.theme??null,"target-rect":(0,a.unref)($)?.targetRect??null,onSave:(0,a.unref)(ln),onClose:i[9]||=e=>$.value=null,onRemove:(0,a.unref)(un)},null,8,[`is-open`,`position`,`header-footer`,`styles`,`theme`,`target-rect`,`onSave`,`onRemove`]),(0,a.createVNode)(ce,{"image-info":(0,a.unref)(Z),zoom:(0,a.unref)(F),view:(0,a.unref)(R),onOpenProperties:i[10]||=e=>T.value=!0,onDeselect:i[11]||=e=>Z.value=null,onInteractStart:i[12]||=e=>Gt.value=!0,onInteractEnd:i[13]||=e=>Gt.value=!1,onContextMenu:(0,a.unref)(hn)},null,8,[`image-info`,`zoom`,`view`,`onContextMenu`]),(0,a.createVNode)(te,{"get-view":bn,"get-pages-container":xn,zoom:(0,a.unref)(F),"transaction-version":_.value,"sync-coordinator":(0,a.unref)(b)},null,8,[`zoom`,`transaction-version`,`sync-coordinator`]),(0,a.unref)(Ee)&&!j.value&&!d.value?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:1,type:`button`,class:`docx-editor-vue__floating-comment`,style:(0,a.normalizeStyle)({top:(0,a.unref)(Ee).top+`px`,left:(0,a.unref)(Ee).left+`px`}),title:(0,a.unref)(f)(`comments.addComment`),onMousedown:i[14]||=(0,a.withModifiers)((...e)=>(0,a.unref)(Ne)&&(0,a.unref)(Ne)(...e),[`prevent`,`stop`])},[(0,a.createVNode)(e.p,{name:`add_comment`,size:16})],44,At)):(0,a.createCommentVNode)(``,!0),(0,a.unref)(Q)&&!d.value?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:2,type:`button`,class:`docx-editor-vue__table-insert-btn`,style:(0,a.normalizeStyle)({left:(0,a.unref)(Q).x+`px`,top:(0,a.unref)(Q).y+`px`}),title:(0,a.unref)(Q).type===`row`?`Insert row below`:`Insert column to the right`,"aria-label":(0,a.unref)(Q).type===`row`?`Insert row below`:`Insert column to the right`,onMousedown:i[15]||=(...e)=>(0,a.unref)(sn)&&(0,a.unref)(sn)(...e),onMouseenter:i[16]||=(...e)=>(0,a.unref)(cn)&&(0,a.unref)(cn)(...e),onMouseleave:i[17]||=e=>Q.value=null},[...i[36]||=[(0,a.createElementVNode)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`none`},[(0,a.createElementVNode)(`path`,{d:`M6 1v10M1 6h10`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`})],-1)]],44,jt)):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)(t.s,{comments:N.value,"pages-container":m.value,zoom:(0,a.unref)(F),"page-width-px":Ce.value,"sidebar-open":A.value,"resolved-comment-ids":we.value,onMarkerClick:(0,a.unref)(Pe)},null,8,[`comments`,`pages-container`,`zoom`,`page-width-px`,`sidebar-open`,`resolved-comment-ids`,`onMarkerClick`]),(0,a.createVNode)(t.c,{"is-open":A.value,comments:N.value,"tracked-changes":P.value,"is-adding-comment":j.value,"add-comment-y-position":(0,a.unref)(Oe),"show-resolved":!0,"pages-container":m.value,"page-width-px":Ce.value,zoom:(0,a.unref)(F),"active-item-id":M.value,onClose:i[18]||=e=>A.value=!1,onAddComment:(0,a.unref)(je),onCancelAddComment:(0,a.unref)(Me),onCommentReply:(0,a.unref)(zt),onCommentResolve:(0,a.unref)(Lt),onCommentUnresolve:(0,a.unref)(Bt),onCommentDelete:(0,a.unref)(Vt),onAcceptChange:(0,a.unref)(Ht),onRejectChange:(0,a.unref)(Ut),onTrackedChangeReply:(0,a.unref)(Wt),"onUpdate:activeItemId":i[19]||=e=>M.value=e},null,8,[`is-open`,`comments`,`tracked-changes`,`is-adding-comment`,`add-comment-y-position`,`pages-container`,`page-width-px`,`zoom`,`active-item-id`,`onAddComment`,`onCancelAddComment`,`onCommentReply`,`onCommentResolve`,`onCommentUnresolve`,`onCommentDelete`,`onAcceptChange`,`onRejectChange`,`onTrackedChangeReply`]),(0,a.createVNode)(Xe,{data:(0,a.unref)(Y),"read-only":d.value,onNavigate:(0,a.unref)(Ge),onCopy:i[20]||=e=>Y.value=null,onEdit:(0,a.unref)(Ke),onRemove:(0,a.unref)(qe),onClose:i[21]||=e=>Y.value=null},null,8,[`data`,`read-only`,`onNavigate`,`onEdit`,`onRemove`])],544),!O.value&&n.showOutlineButton?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:0,type:`button`,class:`docx-editor-vue__outline-toggle`,title:`Show document outline`,onClick:i[28]||=(...e)=>(0,a.unref)(X)&&(0,a.unref)(X)(...e),onMousedown:i[29]||=(0,a.withModifiers)(()=>{},[`stop`])},[(0,a.createVNode)(e.p,{name:`format_list_bulleted`,size:20})],32)):(0,a.createCommentVNode)(``,!0),(0,a.unref)(Qt).totalPages>1?((0,a.openBlock)(),(0,a.createBlock)(z,{key:1,"current-page":(0,a.unref)(Qt).currentPage,"total-pages":(0,a.unref)(Qt).totalPages,visible:(0,a.unref)(Qt).visible},null,8,[`current-page`,`total-pages`,`visible`])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)(fe,{"is-open":O.value,headings:ne.value,onClose:i[30]||=e=>O.value=!1,onNavigate:(0,a.unref)(Mt)},null,8,[`is-open`,`headings`,`onNavigate`])])],32),(0,a.createElementVNode)(`input`,{ref_key:`docxInputRef`,ref:Fe,type:`file`,accept:`.docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document`,style:{display:`none`},onChange:i[32]||=(...e)=>(0,a.unref)(Ie)&&(0,a.unref)(Ie)(...e)},null,544),(0,a.createVNode)(Be,{"read-only":d.value,"context-menu":(0,a.unref)(dn),"image-context-menu":(0,a.unref)(fn),"image-context-menu-text-actions":(0,a.unref)(pn),"can-open-image-properties":!!(0,a.unref)(Z),onContextMenuAction:(0,a.unref)(_n),onCloseContextMenu:i[33]||=e=>(0,a.unref)(dn).isOpen=!1,onImageWrapSelect:(0,a.unref)(gn),onCloseImageContextMenu:i[34]||=e=>fn.value=null,onOpenImageProperties:i[35]||=e=>T.value=!0},null,8,[`read-only`,`context-menu`,`image-context-menu`,`image-context-menu-text-actions`,`can-open-image-properties`,`onContextMenuAction`,`onImageWrapSelect`])],6))}});async function Mt(e,t,n={}){let r=e instanceof ArrayBuffer?e:await(0,s.toArrayBuffer)(e),i=null,o=null,c=!1,l={save:async()=>{let e=await(i?.save()??Promise.resolve(null));return e?new Blob([e],{type:`application/vnd.openxmlformats-officedocument.wordprocessingml.document`}):null},getDocument:()=>i?.getDocument()??null,focus:()=>{i?.focus()},setZoom:e=>{i?.setZoom(e)},scrollToParaId:e=>i?.scrollToParaId(e)??!1,scrollToPosition:e=>{i?.scrollToPosition(e)},destroy:()=>{i?.destroy(),o?.unmount(),o=null}};return new Promise((e,s)=>{o=(0,a.createApp)({setup(){return()=>(0,a.h)(X,{...n,documentBuffer:r,showToolbar:n.showToolbar??!0,readOnly:n.readOnly??!1,ref:e=>{i=e??null},onReady:()=>{n.onReady?.(),c||(c=!0,e(l))},onError:e=>{n.onError?.(e),c||(c=!0,s(e))},onChange:n.onChange,onRename:n.onRename,onMenuAction:n.onMenuAction,onModeChange:n.onModeChange})}}),o.mount(t)})}var Nt=`0.0.2`;exports.DocxEditor=X,exports.VERSION=Nt,exports.defaultLocale=e.f,exports.i18nPlugin=e.l,exports.provideLocale=e.u,exports.renderAsync=Mt,exports.useTranslation=e.d;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @eigenpal/docx-editor-vue
3
+ *
4
+ * Curated root entry for the documented Vue 3 editor API. Advanced surfaces
5
+ * stay public through explicit subpaths:
6
+ * - `@eigenpal/docx-editor-vue/ui`
7
+ * - `@eigenpal/docx-editor-vue/dialogs`
8
+ * - `@eigenpal/docx-editor-vue/composables`
9
+ * - `@eigenpal/docx-editor-vue/plugin-api`
10
+ *
11
+ * Framework-agnostic document utilities live in `@eigenpal/docx-editor-core`.
12
+ * Agent/MCP surfaces live in `@eigenpal/docx-editor-agents`.
13
+ *
14
+ * @packageDocumentation
15
+ * @public
16
+ */
17
+ export declare const VERSION = "0.0.2";
18
+ export { default as DocxEditor } from './components/DocxEditor.vue';
19
+ export type { DocxEditorProps, EditorMode } from './components/DocxEditor/types';
20
+ export { useTranslation, provideLocale, i18nPlugin, defaultLocale } from './i18n';
21
+ export { renderAsync } from './renderAsync';
22
+ export type { DocxEditorHandle, RenderAsyncOptions } from './renderAsync';
23
+ export type { DocxEditorRef } from './components/DocxEditor/types';