@stll/folio-vue 0.2.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 (109) hide show
  1. package/dist/ListButtons-B498PX1d.js +4256 -0
  2. package/dist/ListButtons-D-zMJ7rl.cjs +4 -0
  3. package/dist/PageSetupDialog-CGBaBVzo.cjs +15 -0
  4. package/dist/PageSetupDialog-DsjAfJy0.js +4873 -0
  5. package/dist/TablePropertiesDialog-A-1Pm1f9.cjs +1 -0
  6. package/dist/TablePropertiesDialog-PyXEJC_o.js +887 -0
  7. package/dist/components/DocxEditor/pagedEditorRef.d.ts +75 -0
  8. package/dist/components/DocxEditor/types.d.ts +528 -0
  9. package/dist/components/EditorToolbarContext.d.ts +9 -0
  10. package/dist/components/FormattingBar.types.d.ts +67 -0
  11. package/dist/components/Toolbar/presets.d.ts +25 -0
  12. package/dist/components/dialogs/index.d.ts +24 -0
  13. package/dist/components/imageContextMenuTypes.d.ts +30 -0
  14. package/dist/components/imageSelectionTypes.d.ts +13 -0
  15. package/dist/components/insertTableState.d.ts +9 -0
  16. package/dist/components/sidebar/cardStyles.d.ts +1 -0
  17. package/dist/components/sidebar/cardUtils.d.ts +1 -0
  18. package/dist/components/sidebar/resolveItemPositions.d.ts +22 -0
  19. package/dist/components/sidebar/sidebarUtils.d.ts +4 -0
  20. package/dist/components/tableStylePresets.d.ts +60 -0
  21. package/dist/components/toolbarUtils.d.ts +3 -0
  22. package/dist/components/ui/AlignmentButtons.types.d.ts +13 -0
  23. package/dist/components/ui/StylePicker.types.d.ts +16 -0
  24. package/dist/components/ui/ZoomControl.types.d.ts +21 -0
  25. package/dist/components/ui/fontPickerValue.d.ts +1 -0
  26. package/dist/components/ui/hyperlinkPopupTypes.d.ts +20 -0
  27. package/dist/composables/commentMarks.d.ts +32 -0
  28. package/dist/composables/imageOverlayRect.d.ts +44 -0
  29. package/dist/composables/index.d.ts +30 -0
  30. package/dist/composables/useAutoSave.d.ts +39 -0
  31. package/dist/composables/useClipboard.d.ts +21 -0
  32. package/dist/composables/useColorMode.d.ts +8 -0
  33. package/dist/composables/useCommentLifecycle.d.ts +39 -0
  34. package/dist/composables/useCommentManagement.d.ts +47 -0
  35. package/dist/composables/useCommentSidebarItems.d.ts +24 -0
  36. package/dist/composables/useContextMenus.d.ts +64 -0
  37. package/dist/composables/useControllableBoolean.d.ts +16 -0
  38. package/dist/composables/useDocumentLifecycle.d.ts +11 -0
  39. package/dist/composables/useDocxEditor.d.ts +123 -0
  40. package/dist/composables/useDocxEditorRefApi.d.ts +68 -0
  41. package/dist/composables/useDragAutoScroll.d.ts +11 -0
  42. package/dist/composables/useFileIO.d.ts +43 -0
  43. package/dist/composables/useFindReplace.d.ts +22 -0
  44. package/dist/composables/useFixedDropdown.d.ts +14 -0
  45. package/dist/composables/useFormattingActions.d.ts +21 -0
  46. package/dist/composables/useHistory.d.ts +9 -0
  47. package/dist/composables/useHostCallbacks.d.ts +24 -0
  48. package/dist/composables/useHyperlinkManagement.d.ts +40 -0
  49. package/dist/composables/useImageActions.d.ts +25 -0
  50. package/dist/composables/useKeyboardShortcuts.d.ts +25 -0
  51. package/dist/composables/useMenuActions.d.ts +36 -0
  52. package/dist/composables/useOutlineSidebar.d.ts +24 -0
  53. package/dist/composables/usePageSetupControls.d.ts +28 -0
  54. package/dist/composables/usePagesPointer.d.ts +87 -0
  55. package/dist/composables/useParagraphStyleOptions.d.ts +18 -0
  56. package/dist/composables/usePortalClass.d.ts +8 -0
  57. package/dist/composables/useSelectionHighlight.d.ts +19 -0
  58. package/dist/composables/useSelectionSync.d.ts +30 -0
  59. package/dist/composables/useTableResize.d.ts +7 -0
  60. package/dist/composables/useTableSelection.d.ts +10 -0
  61. package/dist/composables/useToolbarDropdowns.d.ts +15 -0
  62. package/dist/composables/useToolbarFontSize.d.ts +15 -0
  63. package/dist/composables/useTrackedChanges.d.ts +12 -0
  64. package/dist/composables/useVisualLineNavigation.d.ts +11 -0
  65. package/dist/composables/useWheelZoom.d.ts +10 -0
  66. package/dist/composables/useZoom.d.ts +16 -0
  67. package/dist/composables.cjs +61 -0
  68. package/dist/composables.js +378 -0
  69. package/dist/dialogs.cjs +1 -0
  70. package/dist/dialogs.js +3 -0
  71. package/dist/folio-vue.css +2 -0
  72. package/dist/i18n/index.d.ts +36 -0
  73. package/dist/i18n/messages.d.ts +1 -0
  74. package/dist/index.cjs +1 -0
  75. package/dist/index.d.ts +50 -0
  76. package/dist/index.js +4088 -0
  77. package/dist/messages.cjs +1 -0
  78. package/dist/messages.js +1 -0
  79. package/dist/renderAsync.d.ts +35 -0
  80. package/dist/styles/index.d.ts +12 -0
  81. package/dist/styles/zIndex.d.ts +18 -0
  82. package/dist/styles.cjs +1 -0
  83. package/dist/styles.js +5 -0
  84. package/dist/ui/folio-ui.d.ts +139 -0
  85. package/dist/ui.cjs +1 -0
  86. package/dist/ui.d.ts +67 -0
  87. package/dist/ui.js +446 -0
  88. package/dist/useZoom-BryUw3Cu.cjs +1 -0
  89. package/dist/useZoom-CIIRid8U.js +626 -0
  90. package/dist/utils/aiEditRange.d.ts +26 -0
  91. package/dist/utils/autoScroll.d.ts +22 -0
  92. package/dist/utils/cardStyles.d.ts +3 -0
  93. package/dist/utils/colorMode.d.ts +32 -0
  94. package/dist/utils/comments.d.ts +20 -0
  95. package/dist/utils/cssTypes.d.ts +7 -0
  96. package/dist/utils/domQueries.d.ts +39 -0
  97. package/dist/utils/fontOptions.d.ts +26 -0
  98. package/dist/utils/hostFonts.d.ts +25 -0
  99. package/dist/utils/imageClipboard.d.ts +9 -0
  100. package/dist/utils/index.d.ts +13 -0
  101. package/dist/utils/listState.d.ts +22 -0
  102. package/dist/utils/reportIssue.d.ts +18 -0
  103. package/dist/utils/selectionHighlight.d.ts +44 -0
  104. package/dist/utils/sidebarConstants.d.ts +8 -0
  105. package/dist/utils/stylePreview.d.ts +53 -0
  106. package/dist/utils/textSelection.d.ts +40 -0
  107. package/dist/zIndex-BY0qa8Au.js +12 -0
  108. package/dist/zIndex-dFsQbASx.cjs +1 -0
  109. package/package.json +99 -0
@@ -0,0 +1,2 @@
1
+ .find-replace-dialog[data-v-def26526]{z-index:10000;background:var(--doc-surface);border:1px solid var(--doc-border-dark);box-shadow:0 4px 12px var(--doc-shadow);border-radius:8px;min-width:360px;font-size:13px;position:fixed;top:8px;right:16px}.find-replace-dialog__header[data-v-def26526]{border-bottom:1px solid var(--doc-border);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.find-replace-dialog__title[data-v-def26526]{color:var(--doc-text);font-weight:600}.find-replace-dialog__close[data-v-def26526]{cursor:pointer;color:var(--doc-text-muted);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-def26526]:hover{background:var(--doc-bg-hover)}.find-replace-dialog__body[data-v-def26526]{padding:8px 12px 12px}.find-replace-dialog__row[data-v-def26526]{align-items:center;gap:4px;margin-bottom:6px;display:flex}.find-replace-dialog__input[data-v-def26526]{border:1px solid var(--doc-border-dark);border-radius:4px;outline:none;flex:1;padding:5px 8px;font-size:13px}.find-replace-dialog__input[data-v-def26526]:focus{border-color:var(--doc-primary);box-shadow:0 0 0 2px var(--doc-focus-ring)}.find-replace-dialog__count[data-v-def26526]{color:var(--doc-text-muted);white-space:nowrap;text-align:center;min-width:60px;font-size:11px}.find-replace-dialog__options[data-v-def26526]{color:var(--doc-text-muted);align-items:center;gap:12px;margin-bottom:6px;font-size:12px;display:flex}.find-replace-dialog__options label[data-v-def26526]{cursor:pointer;align-items:center;gap:4px;display:flex}.find-replace-dialog__options input[type=checkbox][data-v-def26526]{margin:0}.find-replace-dialog__toggle[data-v-def26526]{border:1px solid var(--doc-border-dark);cursor:pointer;color:var(--doc-text-muted);background:0 0;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:11px}.find-replace-dialog__toggle.active[data-v-def26526]{background:var(--doc-accent-bg);border-color:var(--doc-accent);color:var(--doc-accent)}.find-replace-dialog__row button[data-v-def26526]{border:1px solid var(--doc-border-dark);background:var(--doc-surface);cursor:pointer;color:var(--doc-text-muted);border-radius:4px;padding:4px 8px;font-size:12px}.find-replace-dialog__row button[data-v-def26526]:hover{background:var(--doc-bg-hover)}.dialog-overlay[data-v-933171e9]{background:var(--doc-overlay);z-index:300;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog[data-v-933171e9]{background:var(--doc-surface);box-shadow:0 8px 30px var(--doc-shadow);border-radius:8px;min-width:400px;max-width:90vw}.dialog__header[data-v-933171e9]{border-bottom:1px solid var(--doc-border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dialog__title[data-v-933171e9]{color:var(--doc-text);font-size:14px;font-weight:600}.dialog__close[data-v-933171e9]{cursor:pointer;color:var(--doc-text-muted);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-933171e9]:hover{background:var(--doc-bg-hover)}.dialog__body[data-v-933171e9]{padding:16px}.dialog__actions[data-v-933171e9]{align-items:center;gap:8px;margin-top:16px;display:flex}.dialog__btn[data-v-933171e9]{border:1px solid var(--doc-border-dark);cursor:pointer;background:var(--doc-surface);border-radius:4px;padding:6px 16px;font-size:13px}.dialog__btn--primary[data-v-933171e9]{background:var(--doc-primary);color:var(--doc-on-primary);border-color:var(--doc-primary)}.dialog__btn--primary[data-v-933171e9]:hover{background:var(--doc-primary-hover)}.dialog__btn--primary[data-v-933171e9]:disabled{opacity:.5;cursor:not-allowed}.dialog__btn--danger[data-v-933171e9]{color:var(--doc-error);border-color:var(--doc-error-bg)}.dialog__btn--danger[data-v-933171e9]:hover{background:var(--doc-error-bg)}.link-tabs[data-v-933171e9]{border-bottom:1px solid var(--doc-border);margin-bottom:12px;display:flex}.link-tab[data-v-933171e9]{cursor:pointer;color:var(--doc-text-muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px;font-size:13px}.link-tab.active[data-v-933171e9]{color:var(--doc-primary);border-bottom-color:var(--doc-primary);font-weight:600}.field[data-v-933171e9]{margin-bottom:12px}.field__label[data-v-933171e9]{color:var(--doc-text-muted);margin-bottom:4px;font-size:12px;font-weight:500;display:block}.field__input[data-v-933171e9]{border:1px solid var(--doc-border-dark);box-sizing:border-box;border-radius:4px;outline:none;width:100%;padding:6px 10px;font-size:13px}.field__input[data-v-933171e9]:focus{border-color:var(--doc-primary);box-shadow:0 0 0 2px var(--doc-focus-ring)}.field__input--error[data-v-933171e9]{border-color:var(--doc-error)}.field__error[data-v-933171e9]{color:var(--doc-error);margin-top:4px;font-size:11px}.field__hint[data-v-933171e9]{color:var(--doc-text-muted);margin-top:4px;font-size:11px}.dialog-overlay[data-v-344c90fe]{background:var(--doc-overlay);z-index:300;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog[data-v-344c90fe]{background:var(--doc-surface);box-shadow:0 8px 30px var(--doc-shadow);border-radius:8px;min-width:400px;max-width:90vw}.dialog__header[data-v-344c90fe]{border-bottom:1px solid var(--doc-border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dialog__title[data-v-344c90fe]{color:var(--doc-text);font-size:14px;font-weight:600}.dialog__close[data-v-344c90fe]{cursor:pointer;color:var(--doc-text-muted);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-344c90fe]:hover{background:var(--doc-bg-hover)}.dialog__body[data-v-344c90fe]{padding:16px}.dialog__actions[data-v-344c90fe]{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.dialog__btn[data-v-344c90fe]{border:1px solid var(--doc-border-dark);cursor:pointer;background:var(--doc-surface);border-radius:4px;padding:6px 16px;font-size:13px}.dialog__btn--primary[data-v-344c90fe]{background:var(--doc-primary);color:var(--doc-on-primary);border-color:var(--doc-primary)}.dialog__btn--primary[data-v-344c90fe]:hover{background:var(--doc-primary-hover)}.field[data-v-344c90fe]{margin-bottom:14px}.field__label[data-v-344c90fe]{color:var(--doc-text-muted);margin-bottom:4px;font-size:12px;font-weight:500;display:block}.field__textarea[data-v-344c90fe]{border:1px solid var(--doc-border-dark);resize:vertical;box-sizing:border-box;border-radius:4px;outline:none;width:100%;padding:6px 10px;font-family:inherit;font-size:13px}.field__textarea[data-v-344c90fe]:focus{border-color:var(--doc-primary)}.field__select[data-v-344c90fe]{border:1px solid var(--doc-border-dark);background:var(--doc-surface);border-radius:4px;outline:none;width:100%;padding:6px 10px;font-size:13px}.field__select--small[data-v-344c90fe]{border:1px solid var(--doc-border-dark);background:var(--doc-surface);border-radius:4px;padding:4px 6px;font-size:12px}.field__input--small[data-v-344c90fe]{border:1px solid var(--doc-border-dark);border-radius:4px;width:60px;padding:4px 6px;font-size:12px}.field__color[data-v-344c90fe]{border:1px solid var(--doc-border-dark);cursor:pointer;border-radius:4px;width:32px;height:26px;padding:1px}.field-row[data-v-344c90fe]{color:var(--doc-text-muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.field__checkbox[data-v-344c90fe]{color:var(--doc-text-muted);cursor:pointer;align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.dialog-overlay[data-v-227ee4aa]{background:var(--doc-overlay);z-index:300;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog[data-v-227ee4aa]{background:var(--doc-surface);box-shadow:0 8px 30px var(--doc-shadow);border-radius:8px;max-width:90vw}.symbol-dialog[data-v-227ee4aa]{width:480px}.dialog__header[data-v-227ee4aa]{border-bottom:1px solid var(--doc-border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dialog__title[data-v-227ee4aa]{color:var(--doc-text);font-size:14px;font-weight:600}.dialog__close[data-v-227ee4aa]{cursor:pointer;color:var(--doc-text-muted);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-227ee4aa]:hover{background:var(--doc-bg-hover)}.dialog__body[data-v-227ee4aa]{padding:16px}.dialog__actions[data-v-227ee4aa]{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.dialog__btn[data-v-227ee4aa]{border:1px solid var(--doc-border-dark);cursor:pointer;background:var(--doc-surface);border-radius:4px;padding:6px 16px;font-size:13px}.dialog__btn--primary[data-v-227ee4aa]{background:var(--doc-primary);color:var(--doc-on-primary);border-color:var(--doc-primary)}.dialog__btn--primary[data-v-227ee4aa]:hover{background:var(--doc-primary)}.dialog__btn--primary[data-v-227ee4aa]:disabled{opacity:.5;cursor:not-allowed}.symbol-search[data-v-227ee4aa]{border:1px solid var(--doc-border-dark);box-sizing:border-box;border-radius:4px;outline:none;width:100%;margin-bottom:8px;padding:6px 10px;font-size:13px}.symbol-search[data-v-227ee4aa]:focus{border-color:var(--doc-primary)}.symbol-tabs[data-v-227ee4aa]{flex-wrap:wrap;gap:2px;margin-bottom:8px;display:flex}.symbol-tab[data-v-227ee4aa]{cursor:pointer;color:var(--doc-text-muted);background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:11px}.symbol-tab[data-v-227ee4aa]:hover{background:var(--doc-bg-hover)}.symbol-tab.active[data-v-227ee4aa]{background:var(--doc-accent-bg);color:var(--doc-accent);font-weight:600}.symbol-grid[data-v-227ee4aa]{border:1px solid var(--doc-border);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-227ee4aa]{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-227ee4aa]:hover{background:var(--doc-bg-hover);border-color:var(--doc-border-dark)}.symbol-cell.selected[data-v-227ee4aa]{background:var(--doc-primary-light);border-color:var(--doc-primary)}.symbol-cell--small[data-v-227ee4aa]{width:28px;height:28px;font-size:14px}.symbol-empty[data-v-227ee4aa]{text-align:center;color:var(--doc-text-subtle);grid-column:1/-1;padding:24px;font-size:13px}.symbol-preview[data-v-227ee4aa]{background:var(--doc-bg);border-radius:4px;align-items:center;gap:12px;margin-top:8px;padding:8px 12px;display:flex}.symbol-preview__char[data-v-227ee4aa]{font-size:28px}.symbol-preview__info[data-v-227ee4aa]{color:var(--doc-text-muted);font-family:monospace;font-size:12px}.symbol-recent[data-v-227ee4aa]{flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;display:flex}.symbol-recent__label[data-v-227ee4aa]{color:var(--doc-text-subtle);margin-right:4px;font-size:11px}.ps-overlay[data-v-72f7da99]{background:var(--doc-overlay);z-index:10000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ps-dialog[data-v-72f7da99]{background:var(--doc-surface);box-shadow:0 4px 20px var(--doc-shadow);border-radius:8px;width:100%;min-width:400px;max-width:480px;margin:20px}.ps-header[data-v-72f7da99]{border-bottom:1px solid var(--doc-border);color:var(--doc-text);padding:16px 20px 12px;font-size:16px;font-weight:600}.ps-body[data-v-72f7da99]{flex-direction:column;gap:14px;padding:16px 20px;display:flex}.ps-section-label[data-v-72f7da99]{color:var(--doc-text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.ps-section-label--spaced[data-v-72f7da99]{margin-top:4px}.ps-row[data-v-72f7da99]{align-items:center;gap:12px;display:flex}.ps-label[data-v-72f7da99]{width:80px;color:var(--doc-text-muted);flex-shrink:0;font-size:13px}.ps-input[data-v-72f7da99]{border:1px solid var(--doc-border-dark);background:var(--doc-surface);min-width:0;color:var(--doc-text);box-sizing:border-box;border-radius:4px;flex:1;padding:6px 8px;font-size:13px}.ps-input[data-v-72f7da99]:focus{border-color:var(--doc-primary);outline:none}.ps-unit[data-v-72f7da99]{color:var(--doc-text-muted);flex-shrink:0;width:16px;font-size:11px}.ps-footer[data-v-72f7da99]{border-top:1px solid var(--doc-border);justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.ps-btn[data-v-72f7da99]{border:1px solid var(--doc-border-dark);cursor:pointer;background:var(--doc-surface);color:var(--doc-text);border-radius:4px;padding:6px 16px;font-size:13px}.ps-btn[data-v-72f7da99]:hover{background:var(--doc-bg)}.ps-btn--primary[data-v-72f7da99]{background:var(--doc-primary);color:var(--doc-on-primary);border-color:var(--doc-primary)}.ps-btn--primary[data-v-72f7da99]:hover{background:var(--doc-primary)}.tsg__grid[data-v-73993927]{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px;padding:8px;display:grid}.tsg__item[data-v-73993927]{background:var(--doc-surface);cursor:pointer;border:2px solid #0000;border-radius:6px;flex-direction:column;align-items:center;gap:4px;padding:6px;display:flex}.tsg__item[data-v-73993927]:hover{border-color:var(--doc-border-dark)}.tsg__item--selected[data-v-73993927]{border-color:var(--doc-primary);background:var(--doc-primary-light)}.tsg__preview[data-v-73993927]{grid-template-rows:repeat(4,10px);grid-template-columns:repeat(3,20px);gap:0;display:grid}.tsg__cell[data-v-73993927]{box-sizing:border-box}.tsg__name[data-v-73993927]{color:var(--doc-text-muted);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-8cfd8776]{background:var(--doc-overlay);z-index:10000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fnpd-dialog[data-v-8cfd8776]{background:var(--doc-surface);box-shadow:0 4px 20px var(--doc-shadow);border-radius:8px;width:440px;max-width:90vw}.fnpd-dialog__header[data-v-8cfd8776]{border-bottom:1px solid var(--doc-border);color:var(--doc-text);padding:16px 20px 12px;font-size:16px;font-weight:600}.fnpd-dialog__body[data-v-8cfd8776]{flex-direction:column;gap:12px;max-height:60vh;padding:12px 20px;display:flex;overflow-y:auto}.fnpd-dialog__footer[data-v-8cfd8776]{border-top:1px solid var(--doc-border);justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.fnpd-fieldset[data-v-8cfd8776]{border:1px solid var(--doc-border);border-radius:6px;margin:0;padding:10px 12px}.fnpd-legend[data-v-8cfd8776]{color:var(--doc-text-muted);padding:0 4px;font-size:12px;font-weight:600}.fnpd-row[data-v-8cfd8776]{align-items:center;gap:8px;margin-bottom:6px;display:flex}.fnpd-row[data-v-8cfd8776]:last-child{margin-bottom:0}.fnpd-label[data-v-8cfd8776]{width:100px;color:var(--doc-text-muted);flex-shrink:0;font-size:13px}.fnpd-input[data-v-8cfd8776],.fnpd-select[data-v-8cfd8776]{border:1px solid var(--doc-border-dark);border-radius:4px;flex:1;padding:5px 8px;font-size:13px}.fnpd-btn[data-v-8cfd8776]{border:1px solid var(--doc-border-dark);cursor:pointer;background:var(--doc-surface);border-radius:4px;padding:6px 16px;font-size:13px}.fnpd-btn--primary[data-v-8cfd8776]{background:var(--doc-primary);color:var(--doc-on-primary);border-color:var(--doc-primary)}.ipd-overlay[data-v-1daec0f6]{background:var(--doc-overlay);z-index:10000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ipd-dialog[data-v-1daec0f6]{background:var(--doc-surface);box-shadow:0 4px 20px var(--doc-shadow);border-radius:8px;width:420px;max-width:90vw}.ipd-dialog__header[data-v-1daec0f6]{border-bottom:1px solid var(--doc-border);color:var(--doc-text);padding:16px 20px 12px;font-size:16px;font-weight:600}.ipd-dialog__body[data-v-1daec0f6]{flex-direction:column;gap:12px;max-height:60vh;padding:12px 20px;display:flex;overflow-y:auto}.ipd-dialog__footer[data-v-1daec0f6]{border-top:1px solid var(--doc-border);justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.ipd-fieldset[data-v-1daec0f6]{border:1px solid var(--doc-border);border-radius:6px;margin:0;padding:10px 12px}.ipd-legend[data-v-1daec0f6]{color:var(--doc-text-muted);padding:0 4px;font-size:12px;font-weight:600}.ipd-row[data-v-1daec0f6]{align-items:center;gap:8px;margin-bottom:6px;display:flex}.ipd-row[data-v-1daec0f6]:last-child{margin-bottom:0}.ipd-label[data-v-1daec0f6]{width:70px;color:var(--doc-text-muted);flex-shrink:0;font-size:13px}.ipd-input[data-v-1daec0f6],.ipd-select[data-v-1daec0f6]{border:1px solid var(--doc-border-dark);border-radius:4px;flex:1;padding:5px 8px;font-size:13px}.ipd-btn[data-v-1daec0f6]{border:1px solid var(--doc-border-dark);cursor:pointer;background:var(--doc-surface);border-radius:4px;padding:6px 16px;font-size:13px}.ipd-btn--primary[data-v-1daec0f6]{background:var(--doc-primary);color:var(--doc-on-primary);border-color:var(--doc-primary)}.dialog-overlay[data-v-3722a365]{background:var(--doc-overlay);z-index:10000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog[data-v-3722a365]{background:var(--doc-surface);box-shadow:0 4px 20px var(--doc-shadow);border-radius:8px;flex-direction:column;min-width:340px;max-width:90vw;max-height:90vh;display:flex}.dialog__header[data-v-3722a365]{border-bottom:1px solid var(--doc-border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dialog__title[data-v-3722a365]{color:var(--doc-text);font-size:14px;font-weight:600}.dialog__close[data-v-3722a365]{cursor:pointer;color:var(--doc-text-muted);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-3722a365]:hover{background:var(--doc-bg-hover)}.dialog__body[data-v-3722a365]{padding:16px;overflow-y:auto}.dialog__footer[data-v-3722a365]{border-top:1px solid var(--doc-border);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.dialog__btn[data-v-3722a365]{border:1px solid var(--doc-border-dark);cursor:pointer;background:var(--doc-surface);color:var(--doc-text);border-radius:4px;padding:6px 16px;font-size:13px}.dialog__btn[data-v-3722a365]:hover{background:var(--doc-bg)}.dialog__btn--primary[data-v-3722a365]{background:var(--doc-primary);color:var(--doc-on-primary);border-color:var(--doc-primary)}.dialog__btn--primary[data-v-3722a365]:hover{background:var(--doc-primary)}.dialog__btn[data-v-3722a365]:disabled{opacity:.5;cursor:not-allowed}.dialog__btn--primary[data-v-3722a365]:disabled:hover{background:var(--doc-primary)}.dialog__separator[data-v-3722a365]{color:var(--doc-text-subtle);align-items:center;margin:14px 0 12px;font-size:12px;display:flex}.dialog__separator[data-v-3722a365]:before,.dialog__separator[data-v-3722a365]:after{content:"";background:var(--doc-border);flex:1;height:1px}.dialog__separator span[data-v-3722a365]{padding:0 10px}.table-grid[data-v-3722a365]{border:1px solid var(--doc-border);border-radius:4px;flex-direction:column;gap:2px;padding:4px;display:inline-flex}.table-grid__row[data-v-3722a365]{gap:2px;display:flex}.table-grid__cell[data-v-3722a365]{border:1px solid var(--doc-border-dark);cursor:pointer;background:var(--doc-surface);border-radius:2px;width:20px;height:20px}.table-grid__cell.highlight[data-v-3722a365]{background:var(--doc-primary-light);border-color:var(--doc-primary-light)}.table-grid__label[data-v-3722a365]{text-align:center;color:var(--doc-text-muted);margin-top:6px;font-size:12px}.table-manual[data-v-3722a365]{align-items:center;gap:16px;font-size:13px;display:flex}.table-manual__field[data-v-3722a365]{align-items:center;gap:8px;display:flex}.table-manual__input[data-v-3722a365]{border:1px solid var(--doc-border-dark);text-align:center;border-radius:4px;width:60px;padding:4px 6px;font-size:13px}.table-manual__input--invalid[data-v-3722a365]{border-color:var(--doc-error)}.table-manual__hint[data-v-3722a365]{color:var(--doc-text-subtle);margin-top:6px;font-size:11px}.table-manual__hint--error[data-v-3722a365]{color:var(--doc-error)}.table-options[data-v-3722a365]{border:none;margin-top:16px;padding:0}.table-options legend[data-v-3722a365],.table-options__label[data-v-3722a365]{color:var(--doc-text-muted);margin-bottom:6px;padding:0;font-size:12px;font-weight:600}.table-options__radio[data-v-3722a365]{color:var(--doc-text);align-items:center;gap:6px;margin-bottom:4px;font-size:13px;display:flex}.tpd-overlay[data-v-34570300]{background:var(--doc-overlay);z-index:10000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tpd-dialog[data-v-34570300]{background:var(--doc-surface);box-shadow:0 4px 20px var(--doc-shadow);border-radius:8px;width:100%;min-width:360px;max-width:440px}.tpd-dialog__header[data-v-34570300]{border-bottom:1px solid var(--doc-border);color:var(--doc-text);padding:16px 20px 12px;font-size:16px;font-weight:600}.tpd-dialog__body[data-v-34570300]{flex-direction:column;gap:12px;padding:16px 20px;display:flex}.tpd-dialog__footer[data-v-34570300]{border-top:1px solid var(--doc-border);justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.tpd-row[data-v-34570300]{align-items:center;gap:12px;display:flex}.tpd-label[data-v-34570300]{width:80px;color:var(--doc-text-muted);font-size:13px}.tpd-input[data-v-34570300],.tpd-select[data-v-34570300]{border:1px solid var(--doc-border-dark);border-radius:4px;flex:1;padding:6px 8px;font-size:13px}.tpd-unit[data-v-34570300]{color:var(--doc-text-subtle);font-size:11px}.tpd-btn[data-v-34570300]{border:1px solid var(--doc-border-dark);cursor:pointer;background:var(--doc-surface);border-radius:4px;padding:6px 16px;font-size:13px}.tpd-btn--primary[data-v-34570300]{background:var(--doc-primary);color:var(--doc-on-primary);border-color:var(--doc-primary)}.docx-comment-margin-markers__btn[data-v-fa51d56d]{cursor:pointer;pointer-events:auto;width:24px;height:24px;color:var(--doc-text-muted);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:opacity .15s;display:flex;position:absolute;left:0}.docx-comment-margin-markers__btn[data-v-fa51d56d]:hover{opacity:.7}.doc-name[data-v-545e2786]{align-items:center;display:inline-flex}.doc-name__input[data-v-545e2786],.doc-name__text[data-v-545e2786]{color:var(--doc-text);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-545e2786]{height:24px;transition:background .12s,box-shadow .12s}.doc-name__input[data-v-545e2786]:hover{background:var(--doc-bg)}.doc-name__input[data-v-545e2786]:focus{background:var(--doc-surface);box-shadow:0 0 0 1px var(--doc-border-light)}.docx-popover[data-v-0f634953]{display:inline-flex;position:relative}.docx-popover__panel[data-v-0f634953]{z-index:10000;background:var(--doc-surface);border:1px solid var(--doc-border);box-shadow:0 4px 12px var(--doc-shadow);border-radius:6px;position:fixed}.docx-menu-dropdown__trigger[data-v-d89898cc]{cursor:pointer;color:var(--doc-text);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-d89898cc]:hover,.docx-menu-dropdown__trigger--open[data-v-d89898cc]{background:var(--doc-bg-hover)}.docx-menu-dropdown__menu[data-v-d89898cc]{min-width:200px;padding:4px 0}.docx-menu-dropdown__wrap[data-v-d89898cc]{position:relative}.docx-menu-dropdown__item[data-v-d89898cc]{cursor:pointer;color:var(--doc-text);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-d89898cc]:hover:not(.docx-menu-dropdown__item--disabled){background:var(--doc-bg-hover)}.docx-menu-dropdown__item--disabled[data-v-d89898cc]{opacity:.4;cursor:default}.docx-menu-dropdown__label[data-v-d89898cc]{flex:1}.docx-menu-dropdown__shortcut[data-v-d89898cc]{color:var(--doc-text-muted);margin-left:auto;font-size:12px}.docx-menu-dropdown__chevron[data-v-d89898cc]{color:var(--doc-text-subtle);margin-left:auto;display:inline-flex}.docx-menu-dropdown__submenu[data-v-d89898cc]{background:var(--doc-surface);border:1px solid var(--doc-border);box-shadow:0 4px 12px var(--doc-shadow);z-index:1;border-radius:6px;padding:8px;position:absolute;top:-4px;left:100%}.docx-menu-dropdown__separator[data-v-d89898cc]{background:var(--doc-border);height:1px;margin:4px 0}.docx-table-grid-inline__grid[data-v-62b10375]{gap:2px;display:grid}.docx-table-grid-inline__cell[data-v-62b10375]{background:var(--doc-surface);border:1px solid var(--doc-border);cursor:pointer;border-radius:2px;width:18px;height:18px;transition:background-color .1s,border-color .1s}.docx-table-grid-inline__cell--active[data-v-62b10375]{background:var(--doc-primary);border-color:var(--doc-primary)}.docx-table-grid-inline__label[data-v-62b10375]{color:var(--doc-text-muted);text-align:center;margin-top:6px;font-size:11px;font-weight:500}.menu-bar[data-v-19abfdee]{align-items:center;display:flex}.menu-bar__break-submenu[data-v-19abfdee]{flex-direction:column;min-width:220px;display:flex}.menu-bar__break-item[data-v-19abfdee]{cursor:pointer;color:var(--doc-text);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}.menu-bar__break-item[data-v-19abfdee]:hover{background:var(--doc-bg-hover)}.docx-icon-grid__btn[data-v-b64cef07]{height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:0;padding:0 4px;display:inline-flex}.docx-icon-grid__btn[data-v-b64cef07]:hover:not(:disabled){background:var(--doc-bg-hover);color:var(--doc-text)}.docx-icon-grid__btn--open[data-v-b64cef07]{background:var(--doc-bg-hover)}.docx-icon-grid__btn[data-v-b64cef07]:disabled{opacity:.3;cursor:not-allowed}.docx-icon-grid__panel[data-v-b64cef07]{border-radius:8px;gap:2px;padding:6px;display:flex}.docx-icon-grid__option[data-v-b64cef07]{width:32px;height:32px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.docx-icon-grid__option[data-v-b64cef07]:hover{background:var(--doc-bg-hover)}.docx-icon-grid__option--active[data-v-b64cef07]{background:var(--doc-primary-light);color:var(--doc-primary)}.editing-mode__trigger[data-v-91bf1860]{cursor:pointer;color:var(--doc-text);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-91bf1860]:hover,.editing-mode__trigger--open[data-v-91bf1860]{background:var(--doc-bg-hover)}.editing-mode__trigger--compact[data-v-91bf1860]{gap:0;padding:2px 4px}.editing-mode__label[data-v-91bf1860]{padding:0 2px}.editing-mode__panel[data-v-91bf1860]{min-width:220px;padding:4px 0}.editing-mode__option[data-v-91bf1860]{cursor:pointer;color:var(--doc-text);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-91bf1860]:hover{background:var(--doc-bg-hover)}.editing-mode__option-text[data-v-91bf1860]{flex-direction:column;align-items:flex-start;display:flex}.editing-mode__option-label[data-v-91bf1860]{font-weight:500}.editing-mode__option-desc[data-v-91bf1860]{color:var(--doc-text-muted);font-size:11px}.editing-mode__check[data-v-91bf1860]{color:var(--doc-primary);margin-left:auto}.review-controls[data-v-96540653]{flex-shrink:0;align-items:center;gap:2px;display:flex}.review-controls__toggle[data-v-96540653]{cursor:pointer;height:28px;color:var(--doc-text-muted);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:4px;padding:2px 8px 2px 6px;font-size:13px;font-weight:400;display:flex}.review-controls__toggle[data-v-96540653]:hover:not(:disabled){border-color:var(--doc-border);background:var(--doc-bg-hover);color:var(--doc-text)}.review-controls__toggle--on[data-v-96540653]{border-color:var(--doc-primary);background:var(--doc-bg-hover);color:var(--doc-text);box-shadow:0 0 0 1px var(--doc-primary)}.review-controls__toggle[data-v-96540653]:disabled{opacity:.35;cursor:default;color:var(--doc-text-subtle)}.review-controls__toggle-label[data-v-96540653]{padding:0 2px}.review-controls__display[data-v-96540653]{cursor:pointer;height:28px;color:var(--doc-text-muted);white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:2px 4px 2px 6px;font-size:13px;font-weight:400;display:flex}.review-controls__display[data-v-96540653]:hover,.review-controls__display--open[data-v-96540653]{background:var(--doc-bg-hover);color:var(--doc-text)}.review-controls__display-label[data-v-96540653]{padding:0 2px}.review-controls__panel[data-v-96540653]{min-width:180px;padding:4px 0}.review-controls__option[data-v-96540653]{cursor:pointer;color:var(--doc-text);text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 12px;font-size:13px;display:flex}.review-controls__option[data-v-96540653]:hover{background:var(--doc-bg-hover)}.review-controls__option-label[data-v-96540653]{flex:auto}.review-controls__check[data-v-96540653]{color:var(--doc-primary);margin-left:auto}.docx-color-picker[data-v-e0823d53]{display:inline-block;position:relative}.docx-color-picker__split[data-v-e0823d53]{align-items:stretch;gap:2px;height:32px;display:inline-flex}.docx-color-picker__split.is-disabled[data-v-e0823d53]{opacity:.38;cursor:default}.docx-color-picker__apply[data-v-e0823d53],.docx-color-picker__arrow[data-v-e0823d53],.docx-color-picker__button[data-v-e0823d53]{color:var(--doc-text-muted);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-e0823d53]{flex-direction:column;gap:0;width:28px;padding:2px 4px}.docx-color-picker__arrow[data-v-e0823d53]{width:18px}.docx-color-picker__button[data-v-e0823d53]{width:40px;height:32px;padding:2px 6px}.docx-color-picker__button-stack[data-v-e0823d53]{flex-direction:column;align-items:center;gap:0;display:flex}.docx-color-picker__apply[data-v-e0823d53]:hover:not(:disabled),.docx-color-picker__arrow[data-v-e0823d53]:hover:not(:disabled),.docx-color-picker__button[data-v-e0823d53]:hover:not(:disabled){background:var(--doc-bg-hover)}.docx-color-picker__arrow.is-open[data-v-e0823d53],.docx-color-picker__button.is-open[data-v-e0823d53]{background:var(--doc-primary-light);color:var(--doc-primary)}.docx-color-picker__apply[data-v-e0823d53]:disabled,.docx-color-picker__arrow[data-v-e0823d53]:disabled,.docx-color-picker__button[data-v-e0823d53]:disabled{cursor:default}.docx-color-picker__bar[data-v-e0823d53]{border-radius:1px;width:16px;height:4px;margin-top:-2px;display:block}.docx-color-picker__bar.is-light[data-v-e0823d53]{outline:1px solid var(--doc-border-input)}.docx-color-picker__panel[data-v-e0823d53]{z-index:10000;background:var(--doc-surface);border:1px solid var(--doc-border-dark);box-shadow:0 4px 16px var(--doc-shadow);border-radius:6px;width:auto;padding:10px;position:fixed}.docx-color-picker__auto[data-v-e0823d53]{border:1px solid var(--doc-border-dark);background:var(--doc-surface);width:100%;color:var(--doc-text);cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:5px 8px;font-size:12px;display:flex}.docx-color-picker__auto[data-v-e0823d53]:hover{background:var(--doc-bg-subtle)}.docx-color-picker__auto-icon[data-v-e0823d53]{border-radius:2px;width:16px;height:16px;display:inline-block}.docx-color-picker__auto-icon--auto[data-v-e0823d53]{background:#000}.docx-color-picker__auto-icon--none[data-v-e0823d53]{background:#fff;border:1px solid #ccc;position:relative}.docx-color-picker__auto-slash[data-v-e0823d53]{background:red;height:2px;position:absolute;top:50%;left:-1px;right:-1px;transform:rotate(-45deg)}.docx-color-picker__divider[data-v-e0823d53]{background:var(--doc-border);height:1px;margin:8px 0}.docx-color-picker__section-label[data-v-e0823d53]{color:var(--doc-text-muted);margin-bottom:4px;font-size:11px;font-weight:500}.docx-color-picker__grid[data-v-e0823d53]{grid-template-columns:repeat(10,18px);gap:2px;display:grid}.docx-color-picker__cell[data-v-e0823d53]{border:1px solid var(--doc-border-input);cursor:pointer;border-radius:2px;width:18px;height:18px;padding:0;transition:transform .1s,border-color .1s}.docx-color-picker__cell[data-v-e0823d53]:hover{border-color:var(--doc-text);z-index:1;transform:scale(1.15)}.docx-color-picker__cell.is-selected[data-v-e0823d53]{border-width:2px;border-color:var(--doc-primary);box-shadow:0 0 0 1px var(--doc-primary)}.docx-color-picker__custom[data-v-e0823d53]{align-items:center;gap:6px;display:flex}.docx-color-picker__hash[data-v-e0823d53]{color:var(--doc-text-muted);font-size:12px}.docx-color-picker__hex[data-v-e0823d53]{border:1px solid var(--doc-border-input);border-radius:3px;width:70px;height:24px;padding:2px 6px;font-size:12px}.docx-color-picker__apply-btn[data-v-e0823d53]{border:1px solid var(--doc-border-input);background:var(--doc-bg-subtle);cursor:pointer;border-radius:3px;height:24px;padding:0 10px;font-size:12px}.docx-color-picker__apply-btn[data-v-e0823d53]:disabled{opacity:.4;cursor:default}.basic-toolbar[data-v-e3cd76a8]{background:hsl(var(--muted));scrollbar-width:thin;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-e3cd76a8]::-webkit-scrollbar{height:4px}.basic-toolbar[data-v-e3cd76a8]::-webkit-scrollbar-thumb{background:var(--doc-shadow);border-radius:2px}.basic-toolbar button[data-v-e3cd76a8],.basic-toolbar input[data-v-e3cd76a8]{font-family:inherit}.basic-toolbar button[data-v-e3cd76a8]{cursor:pointer;min-width:28px;height:28px;color:hsl(var(--muted-foreground));white-space:nowrap;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:400;transition:background-color .15s,color .15s;display:inline-flex}.basic-toolbar button[data-v-e3cd76a8]:hover:not(:disabled){background:hsl(var(--muted));color:hsl(var(--foreground))}.basic-toolbar button[data-v-e3cd76a8]:active:not(:disabled){background:hsl(var(--muted))}.basic-toolbar button[data-v-e3cd76a8]:focus-visible{outline:2px solid var(--doc-primary);outline-offset:2px}.basic-toolbar button[data-v-e3cd76a8]:disabled{opacity:.3;cursor:not-allowed}.basic-toolbar button.active[data-v-e3cd76a8],.basic-toolbar button.active[data-v-e3cd76a8]:hover{background:hsl(var(--foreground));color:var(--doc-on-primary)}.ep-root.dark .basic-toolbar button.active[data-v-e3cd76a8],.ep-root.dark .basic-toolbar button.active[data-v-e3cd76a8]:hover{background:var(--doc-primary-light);color:var(--doc-primary)}.basic-toolbar button[data-v-e3cd76a8] svg{width:18px;height:18px}.align-strip[data-v-e3cd76a8]{gap:2px;padding:6px;display:flex}.basic-toolbar .align-strip__btn[data-v-e3cd76a8]{width:32px;height:32px;color:var(--doc-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;display:flex}.basic-toolbar .align-strip__btn[data-v-e3cd76a8]:hover:not(.active){background:var(--doc-bg-hover)}.basic-toolbar .align-strip__btn.active[data-v-e3cd76a8]{background:var(--doc-primary-light);color:var(--doc-primary)}.divider[data-v-e3cd76a8]{background:hsl(var(--border) / .5);flex-shrink:0;width:1px;height:20px;margin:0 6px}.basic-toolbar[data-v-e3cd76a8] .editing-mode__trigger{height:28px;color:var(--doc-text);background:0 0}.basic-toolbar[data-v-e3cd76a8] .editing-mode__trigger:hover,.basic-toolbar[data-v-e3cd76a8] .editing-mode__trigger--open{background:var(--doc-bg-hover);color:var(--doc-text)}.toolbar-dropdown[data-v-e3cd76a8]{align-items:center;display:flex;position:relative}.basic-toolbar .toolbar-dropdown__trigger[data-v-e3cd76a8]{cursor:pointer;height:28px;color:hsl(var(--foreground));white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:2px;padding:0 6px;font-size:14px;font-weight:400;display:flex}.chevron[data-v-e3cd76a8]{color:hsl(var(--muted-foreground));font-size:10px}.toolbar-dropdown__menu[data-v-e3cd76a8]{z-index:10000;background:var(--doc-surface);border:1px solid hsl(var(--border));box-shadow:var(--doc-shadow-lg);border-radius:8px;min-width:120px;max-height:320px;padding:4px 0;position:fixed;overflow-y:auto}.basic-toolbar .toolbar-dropdown__item[data-v-e3cd76a8]{cursor:pointer;text-align:left;width:100%;min-width:0;height:auto;color:hsl(var(--foreground));white-space:nowrap;background:0 0;border:none;padding:6px 12px;font-size:13px;line-height:1.3;display:block}.basic-toolbar .toolbar-dropdown__item[data-v-e3cd76a8]:hover{background:hsl(var(--muted))}.basic-toolbar .toolbar-dropdown__item.active[data-v-e3cd76a8]{background:hsl(var(--muted));color:hsl(var(--foreground));font-weight:500}.toolbar-dropdown__group-label[data-v-e3cd76a8]{color:hsl(var(--muted-foreground));padding:6px 8px;font-size:12px;font-weight:500}.style-trigger[data-v-e3cd76a8]{min-width:90px}.style-menu[data-v-e3cd76a8]{width:160px;max-height:400px}.basic-toolbar .style-menu .toolbar-dropdown__item[data-v-e3cd76a8]{padding:10px 12px;overflow:hidden}.style-menu .toolbar-dropdown__item span[data-v-e3cd76a8]{text-overflow:ellipsis;display:block;overflow:hidden}.font-trigger[data-v-e3cd76a8]{min-width:100px}.font-menu[data-v-e3cd76a8]{min-width:180px}.font-size-group[data-v-e3cd76a8]{align-items:center;gap:0;display:flex}.size-btn[data-v-e3cd76a8]{color:hsl(var(--muted-foreground));cursor:pointer;background:0 0;line-height:1;border:none!important;border-radius:4px!important;width:28px!important;min-width:28px!important;height:28px!important;padding:0!important;font-size:15px!important}.size-btn[data-v-e3cd76a8]:hover:not(:disabled){background:hsl(var(--muted) / .8);color:hsl(var(--foreground))}.size-btn[data-v-e3cd76a8]:disabled{opacity:.4;cursor:not-allowed}.size-trigger[data-v-e3cd76a8]{text-align:center;width:40px;height:28px;color:hsl(var(--foreground));border:1px solid hsl(var(--border));background:var(--doc-surface);border-radius:4px;outline:none;margin:0 2px;padding:0;font-size:14px;font-weight:400}.size-trigger[data-v-e3cd76a8]:focus{border-color:var(--doc-primary);box-shadow:0 0 0 1px var(--doc-primary)}.size-menu[data-v-e3cd76a8]{min-width:60px}.size-menu .toolbar-dropdown__item[data-v-e3cd76a8]{text-align:center}.zoom-group[data-v-e3cd76a8]{align-items:center;gap:0;display:flex}.zoom-trigger[data-v-e3cd76a8]{text-align:center;border:1px solid #0000;justify-content:center;font-size:13px;font-weight:400}.zoom-menu[data-v-e3cd76a8]{min-width:80px}.zoom-menu .toolbar-dropdown__item[data-v-e3cd76a8]{text-align:center}.docx-horizontal-ruler[data-v-845ef58d]{flex-shrink:0;display:block;position:relative}.docx-horizontal-ruler__ticks[data-v-845ef58d]{pointer-events:none;position:absolute;inset:0}.docx-horizontal-ruler__tick-line[data-v-845ef58d]{background-color:var(--doc-text-subtle);width:1px;position:absolute;bottom:0}.docx-horizontal-ruler__tick-label[data-v-845ef58d]{color:var(--doc-text-muted);white-space:nowrap;font-family:sans-serif;font-size:9px;position:absolute;top:3px;transform:translate(-50%)}.docx-horizontal-ruler__tab[data-v-845ef58d]{width:10px;height:12px;color:var(--doc-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:8px;font-weight:700;display:flex;position:absolute;bottom:0;transform:translate(-5px)}.docx-horizontal-ruler__tooltip[data-v-845ef58d]{background:var(--doc-text);color:var(--doc-on-primary);white-space:nowrap;pointer-events:none;z-index:20;border-radius:3px;padding:2px 6px;font-family:sans-serif;font-size:10px;position:absolute;top:-22px;transform:translate(-50%)}.ep-root.dark .docx-horizontal-ruler__tooltip[data-v-845ef58d]{background:var(--doc-bg-hover);color:var(--doc-text)}.docx-tbp__btn[data-v-47032801]{width:28px;height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.docx-tbp__btn[data-v-47032801]:hover:not(:disabled){background:var(--doc-bg-hover)}.docx-tbp__panel[data-v-47032801]{grid-template-columns:repeat(5,32px);gap:2px;padding:4px;display:grid}.docx-tbp__option[data-v-47032801]{width:32px;height:32px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.docx-tbp__option[data-v-47032801]:hover{background:var(--doc-bg-hover)}.docx-tbwidth__btn[data-v-f11ca0b1]{width:28px;height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.docx-tbwidth__btn[data-v-f11ca0b1]:hover:not(:disabled){background:var(--doc-bg-hover)}.docx-tbwidth__panel[data-v-f11ca0b1]{min-width:120px;padding:4px 0}.docx-tbwidth__option[data-v-f11ca0b1]{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-f11ca0b1]:hover{background:var(--doc-bg-hover)}.docx-tbwidth__preview[data-v-f11ca0b1]{border-top:1px solid var(--doc-text);flex-shrink:0;width:40px;display:inline-block}.docx-tbwidth__label[data-v-f11ca0b1]{color:var(--doc-text);font-size:13px}.docx-tmore__btn[data-v-d2fe4ec6]{width:28px;height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.docx-tmore__btn[data-v-d2fe4ec6]:hover:not(:disabled),.docx-tmore__btn--open[data-v-d2fe4ec6]{background:var(--doc-bg-hover)}.docx-tmore__panel[data-v-d2fe4ec6]{min-width:220px;max-height:70vh;padding:4px 0;overflow-y:auto}.docx-tmore__item[data-v-d2fe4ec6]{color:var(--doc-text-muted);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-d2fe4ec6]:hover:not(:disabled){background:var(--doc-bg-hover)}.docx-tmore__item[data-v-d2fe4ec6]:disabled{opacity:.4;cursor:not-allowed}.docx-tmore__item--danger[data-v-d2fe4ec6]:not(:disabled){color:var(--doc-error)}.docx-tmore__grow[data-v-d2fe4ec6]{flex:1}.docx-tmore__separator[data-v-d2fe4ec6]{background:var(--doc-border);height:1px;margin:4px 0}.docx-tmore__section-label[data-v-d2fe4ec6]{color:var(--doc-text-subtle);padding:6px 14px 2px;font-size:11px;font-weight:500}.docx-tmore__icon-row[data-v-d2fe4ec6]{gap:4px;padding:4px 14px;display:flex}.docx-tmore__icon-btn[data-v-d2fe4ec6]{border:1px solid var(--doc-border-dark);width:32px;height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;display:flex}.docx-tmore__icon-btn[data-v-d2fe4ec6]:hover{background:var(--doc-bg-hover)}.docx-tmore__icon-btn--active[data-v-d2fe4ec6]{background:var(--doc-primary-light);border-color:var(--doc-primary);color:var(--doc-primary)}.docx-tmore__sub[data-v-d2fe4ec6]{background:var(--doc-bg);border-top:1px solid var(--doc-border);border-bottom:1px solid var(--doc-border);padding:8px 14px}.docx-tmore__sub--list[data-v-d2fe4ec6]{padding:4px 0}.docx-tmore__sub-item[data-v-d2fe4ec6]{width:100%;color:var(--doc-text-muted);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;padding:6px 14px;font-size:13px;display:flex}.docx-tmore__sub-item[data-v-d2fe4ec6]:hover{background:var(--doc-bg-hover)}.docx-tmore__margin-grid[data-v-d2fe4ec6]{grid-template-columns:1fr 1fr;gap:6px;display:grid}.docx-tmore__field[data-v-d2fe4ec6],.docx-tmore__row-field[data-v-d2fe4ec6]{align-items:center;gap:4px;font-size:12px;display:flex}.docx-tmore__row-field[data-v-d2fe4ec6]{margin-bottom:6px}.docx-tmore__field-label[data-v-d2fe4ec6]{text-transform:capitalize;width:42px;color:var(--doc-text-muted)}.docx-tmore__input[data-v-d2fe4ec6],.docx-tmore__select[data-v-d2fe4ec6]{border:1px solid var(--doc-border-dark);border-radius:3px;flex:1;min-width:0;padding:2px 4px;font-size:12px}.docx-tmore__unit[data-v-d2fe4ec6]{color:var(--doc-text-subtle);font-size:10px}.docx-tmore__apply[data-v-d2fe4ec6]{border:1px solid var(--doc-primary);background:var(--doc-primary);width:100%;color:var(--doc-on-primary);cursor:pointer;border-radius:4px;margin-top:6px;padding:4px 12px;font-size:12px}.docx-tmore__apply[data-v-d2fe4ec6]:hover{background:var(--doc-primary-hover)}.divider[data-v-af7b47da]{background:var(--doc-border);flex-shrink:0;width:1px;height:20px;margin:0 6px}.docx-vertical-ruler[data-v-fc2715dd]{flex-shrink:0;display:block}.docx-vertical-ruler__ticks[data-v-fc2715dd]{pointer-events:none;position:absolute;inset:0}.docx-vertical-ruler__tick-line[data-v-fc2715dd]{background-color:var(--doc-text-subtle);height:1px;position:absolute;right:0}.docx-vertical-ruler__tick-label[data-v-fc2715dd]{color:var(--doc-text-muted);white-space:nowrap;font-family:sans-serif;font-size:9px;position:absolute;left:2px;transform:translateY(-50%)}.docx-vertical-ruler__marker[data-v-fc2715dd]{background:0 0}.reply-thread[data-v-05622ce1]{margin-top:8px}.reply-thread__more[data-v-05622ce1]{color:var(--doc-primary);border-top:1px solid var(--doc-border-light);padding:6px 0;font-size:12px;font-weight:500}.reply-thread__item[data-v-05622ce1]{border-top:1px solid var(--doc-border-light);padding-top:8px}.reply-thread__item--expanded[data-v-05622ce1]{margin-bottom:8px}.reply-thread__header[data-v-05622ce1]{align-items:flex-start;gap:10px;display:flex}.reply-thread__author-block[data-v-05622ce1]{flex:1;min-width:0}.reply-thread__author[data-v-05622ce1]{color:var(--doc-text);font-size:13px;font-weight:600}.reply-thread__date[data-v-05622ce1]{color:var(--doc-text-muted);font-size:11px}.reply-thread__body[data-v-05622ce1]{color:var(--doc-text);margin-top:4px;font-size:13px;line-height:20px}.reply-thread__body--clamp[data-v-05622ce1]{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.reply-input[data-v-2e135c9d]{margin-top:12px}.reply-input__field[data-v-2e135c9d]{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-2e135c9d]{border:1px solid var(--doc-border-light);color:var(--doc-text-subtle);cursor:text;background:var(--doc-surface)}.reply-input__field--active[data-v-2e135c9d]{border:1px solid var(--doc-primary);color:var(--doc-text);background:var(--doc-surface)}.reply-input__actions[data-v-2e135c9d]{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.reply-input__cancel[data-v-2e135c9d]{color:var(--doc-primary);cursor:pointer;background:0 0;border:none;padding:6px 16px;font-family:inherit;font-size:14px;font-weight:500}.reply-input__submit[data-v-2e135c9d]{background:var(--doc-bg-hover);color:var(--doc-text-subtle);cursor:default;border:none;border-radius:20px;padding:6px 16px;font-family:inherit;font-size:14px;font-weight:500}.reply-input__submit--active[data-v-2e135c9d]{background:var(--doc-primary);color:var(--doc-on-primary);cursor:pointer}.comment-card[data-v-e4e6cbdb]{background:var(--doc-card);cursor:pointer;box-shadow:var(--doc-card-shadow);border-radius:8px;margin-bottom:6px;padding:8px 10px;transition:box-shadow .15s,background-color .15s,padding .15s}.comment-card--expanded[data-v-e4e6cbdb]{background:var(--doc-surface);box-shadow:var(--doc-card-shadow-strong);padding:10px 12px}.comment-card__resolved[data-v-e4e6cbdb]{color:var(--doc-success);background:var(--doc-success-bg);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-e4e6cbdb]{align-items:flex-start;gap:10px;display:flex}.comment-card__author-block[data-v-e4e6cbdb]{flex:1;min-width:0}.comment-card__author[data-v-e4e6cbdb]{color:var(--doc-text);font-size:13px;font-weight:600}.comment-card__date[data-v-e4e6cbdb]{color:var(--doc-text-muted);font-size:11px}.comment-card__actions[data-v-e4e6cbdb]{gap:4px;margin-top:2px;display:flex;position:relative}.comment-card__icon-btn[data-v-e4e6cbdb]{cursor:pointer;color:var(--doc-text-muted);background:0 0;border:none;border-radius:50%;padding:4px;display:flex}.comment-card__icon-btn[data-v-e4e6cbdb]:hover{background:var(--doc-shadow-subtle)}.comment-card__menu[data-v-e4e6cbdb]{background:var(--doc-surface);box-shadow:0 2px 6px var(--doc-shadow-strong), 0 1px 2px var(--doc-shadow);z-index:100;border-radius:8px;min-width:120px;padding:4px 0;position:absolute;top:32px;right:0}.comment-card__menu-item[data-v-e4e6cbdb]{text-align:left;width:100%;color:var(--doc-text);cursor:pointer;background:0 0;border:none;padding:8px 16px;font-family:inherit;font-size:14px;display:block}.comment-card__menu-item[data-v-e4e6cbdb]:hover{background:var(--doc-bg-hover)}.comment-card__body[data-v-e4e6cbdb]{color:var(--doc-text);margin-top:6px;font-size:13px;line-height:20px}.resolved-comment-marker[data-v-a50692db]{cursor:pointer;color:var(--doc-text-muted);align-items:center;padding:2px;transition:opacity .15s;display:inline-flex}.resolved-comment-marker[data-v-a50692db]:hover{opacity:.7}.tc-card[data-v-885ea7b9]{background:var(--doc-card);cursor:pointer;box-shadow:var(--doc-card-shadow);border-radius:8px;margin-bottom:6px;padding:8px 10px;transition:box-shadow .15s,background-color .15s,padding .15s}.tc-card--expanded[data-v-885ea7b9]{background:var(--doc-surface);box-shadow:var(--doc-card-shadow-strong);padding:10px 12px}.tc-card__head[data-v-885ea7b9]{align-items:flex-start;gap:10px;display:flex}.tc-card__author-block[data-v-885ea7b9]{flex:1;min-width:0}.tc-card__author[data-v-885ea7b9]{color:var(--doc-text);font-size:13px;font-weight:600}.tc-card__date[data-v-885ea7b9]{color:var(--doc-text-muted);font-size:11px}.tc-card__actions[data-v-885ea7b9]{gap:4px;margin-top:2px;display:flex}.tc-card__icon-btn[data-v-885ea7b9]{cursor:pointer;color:var(--doc-text-muted);background:0 0;border:none;border-radius:50%;padding:4px;display:flex}.tc-card__icon-btn[data-v-885ea7b9]:hover{background:var(--doc-shadow-subtle)}.tc-card__body[data-v-885ea7b9]{color:var(--doc-text);margin-top:6px;font-size:13px;line-height:20px}.tc-card__deleted[data-v-885ea7b9]{color:var(--doc-error);font-weight:500}.tc-card__inserted[data-v-885ea7b9]{color:var(--doc-success);font-weight:500}.tc-card__changed[data-v-885ea7b9]{color:var(--doc-text-muted);font-weight:500}.add-comment-card[data-v-fa58f532]{background:var(--doc-surface);box-shadow:0 1px 3px var(--doc-shadow-strong), 0 4px 8px 3px var(--doc-shadow);z-index:50;border-radius:8px;margin-bottom:6px;padding:12px}.add-comment-card__field[data-v-fa58f532]{border:1px solid var(--doc-primary);resize:none;box-sizing:border-box;width:100%;min-height:40px;color:var(--doc-text);border-radius:20px;outline:none;padding:8px 16px;font-family:inherit;font-size:14px;line-height:20px}.add-comment-card__actions[data-v-fa58f532]{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.add-comment-card__cancel[data-v-fa58f532]{color:var(--doc-primary);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-fa58f532]{background:var(--doc-bg-hover);color:var(--doc-text-subtle);cursor:default;border:none;border-radius:20px;padding:6px 16px;font-family:inherit;font-size:14px;font-weight:500}.add-comment-card__submit--active[data-v-fa58f532]{background:var(--doc-primary);color:var(--doc-on-primary);cursor:pointer}.unified-sidebar[data-v-a073acda]{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-a073acda]{padding:0 8px;position:relative}.docx-style-picker[data-v-30d0e9b2]{border:1px solid var(--doc-border-dark);background:var(--doc-surface);cursor:pointer;border-radius:4px;min-width:100px;height:28px;padding:0 6px;font-size:13px}.docx-style-picker[data-v-30d0e9b2]:disabled{cursor:not-allowed;opacity:.5}.docx-align__btn[data-v-34a01365]{height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:0;padding:0 4px;display:inline-flex}.docx-align__btn[data-v-34a01365]:hover:not(:disabled){background:var(--doc-bg-hover);color:var(--doc-text)}.docx-align__btn--open[data-v-34a01365]{background:var(--doc-bg-hover)}.docx-align__btn[data-v-34a01365]:disabled{opacity:.3;cursor:not-allowed}.docx-align__panel[data-v-34a01365]{border-radius:8px;gap:2px;padding:6px;display:flex}.docx-align__option[data-v-34a01365]{width:32px;height:32px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.docx-align__option[data-v-34a01365]:hover{background:var(--doc-bg-hover)}.docx-align__option--active[data-v-34a01365]{background:var(--doc-primary-light);color:var(--doc-primary)}.docx-list-btns[data-v-c0ca80c9]{gap:1px;display:inline-flex}.docx-list-btns__btn[data-v-c0ca80c9]{width:28px;height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.docx-list-btns__btn[data-v-c0ca80c9]:hover:not(:disabled){background:var(--doc-bg-hover);color:var(--doc-text)}.docx-list-btns__btn--active[data-v-c0ca80c9]{background:var(--doc-text);color:var(--doc-on-primary)}.docx-list-btns__btn--active[data-v-c0ca80c9]:hover{background:var(--doc-text)}.ep-root.dark .docx-list-btns__btn--active[data-v-c0ca80c9],.ep-root.dark .docx-list-btns__btn--active[data-v-c0ca80c9]:hover{background:var(--doc-primary-light);color:var(--doc-primary)}.docx-list-btns__btn[data-v-c0ca80c9]:disabled{opacity:.3;cursor:not-allowed}.folio-anonymization-overlay[data-v-c7db88e1]{pointer-events:none;position:absolute;inset:0}.folio-anonymization-term[data-v-c7db88e1]{background-color:#0000;border-radius:2px;transition:background-color .15s,box-shadow .15s;box-shadow:inset 0 -2px #2563ebcc}.folio-anonymization-term[data-v-c7db88e1]:hover{background-color:#2563eb1f}.folio-anonymization-term[data-folio-anonymization-selected=true][data-v-c7db88e1]{background-color:#2563eb33;box-shadow:inset 0 -2px #2563ebe6,0 0 0 2px #2563eb59}.doc-outline[data-v-94e471af]{z-index:40;flex-direction:column;width:240px;font-family:Google Sans,Roboto,Arial,sans-serif;animation:.15s ease-out docOutlineIn-94e471af;display:flex;position:absolute;bottom:0}@keyframes docOutlineIn-94e471af{0%{transform:translate(-300px)}to{transform:translate(0)}}.doc-outline__header[data-v-94e471af]{align-items:center;gap:8px;padding:16px 16px 12px 0;display:flex}.doc-outline__back[data-v-94e471af]{cursor:pointer;color:var(--doc-text-muted);background:0 0;border:none;border-radius:50%;align-items:center;padding:4px;display:flex}.doc-outline__back[data-v-94e471af]:hover{background:var(--doc-shadow-subtle)}.doc-outline__title[data-v-94e471af]{color:var(--doc-text);letter-spacing:.01em;font-size:14px;font-weight:400}.doc-outline__body[data-v-94e471af]{flex:1;padding-left:4px;overflow-y:auto}.doc-outline__empty[data-v-94e471af]{color:var(--doc-text-subtle);padding:8px 16px;font-size:13px;line-height:20px}.doc-outline__item[data-v-94e471af]{text-align:left;cursor:pointer;width:100%;color:var(--doc-text-muted);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:4px;padding:6px 12px;font-size:13px;display:block;overflow:hidden}.doc-outline__item[data-v-94e471af]:hover{background:var(--doc-shadow-subtle)}.image-ctx-menu-backdrop[data-v-1bdca3c9]{z-index:399;position:fixed;inset:0}.image-ctx-menu[data-v-1bdca3c9]{background:var(--doc-surface);border:1px solid var(--doc-border-light);box-shadow:0 2px 10px var(--doc-shadow);border-radius:8px;outline:none;padding:4px 0;overflow:hidden}.image-ctx-menu__item[data-v-1bdca3c9]{cursor:pointer;width:100%;color:var(--doc-text);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-1bdca3c9]:hover{background:var(--doc-primary-light)}.image-ctx-menu__icon[data-v-1bdca3c9]{width:18px;color:var(--doc-text-muted);display:inline-flex}.image-ctx-menu__item--current .image-ctx-menu__icon[data-v-1bdca3c9]{color:var(--doc-primary)}.image-ctx-menu__label[data-v-1bdca3c9]{flex:1}.image-ctx-menu__current-dot[data-v-1bdca3c9]{color:var(--doc-primary);font-size:11px}.image-ctx-menu__divider[data-v-1bdca3c9]{background:var(--doc-border-light);height:1px;margin:4px 0}.image-ctx-menu__item--text[data-v-1bdca3c9]{padding-left:40px}.image-ctx-menu__shortcut[data-v-1bdca3c9]{color:var(--doc-text-muted);font-size:12px}.image-ctx-menu__item[data-v-1bdca3c9]:disabled{opacity:.4;cursor:not-allowed}.ctx-menu-backdrop[data-v-e71bb6e2]{z-index:399;position:fixed;inset:0}.ctx-menu[data-v-e71bb6e2]{background:var(--doc-surface);border:1px solid var(--doc-border-dark);box-shadow:0 4px 16px var(--doc-shadow);border-radius:6px;outline:none;min-width:220px;padding:4px 0}.ctx-menu__item[data-v-e71bb6e2]{cursor:pointer;width:100%;color:var(--doc-text);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;height:32px;padding:6px 14px;font-size:13px;display:flex}.ctx-menu__item[data-v-e71bb6e2]:hover:not(.ctx-menu__item--disabled):not(.ctx-menu__item--divider){background:var(--doc-bg-hover)}.ctx-menu__item--disabled[data-v-e71bb6e2]{color:var(--doc-text-subtle);cursor:default}.ctx-menu__item--divider[data-v-e71bb6e2]{background:var(--doc-border);cursor:default;pointer-events:none;height:1px;margin:4px 8px;padding:0}.ctx-menu__item--emphasis[data-v-e71bb6e2]{font-weight:600}.ctx-menu__icon[data-v-e71bb6e2]{align-items:center;margin-right:8px;display:inline-flex}.ctx-menu__label[data-v-e71bb6e2]{flex:1}.ctx-menu__shortcut[data-v-e71bb6e2]{color:var(--doc-text-subtle);margin-left:16px;font-size:11px}.image-overlay[data-v-f24116b0]{overflow:visible}.image-overlay__border[data-v-f24116b0]{border:2px solid var(--doc-primary);pointer-events:none;border-radius:2px;position:absolute;inset:-2px}.image-overlay__body[data-v-f24116b0]{pointer-events:auto;position:absolute;inset:0}.image-overlay__handle[data-v-f24116b0]{background:var(--doc-surface);border:1.5px solid var(--doc-primary);width:10px;height:10px;box-shadow:0 1px 2.5px var(--doc-shadow-strong);z-index:16;box-sizing:border-box;pointer-events:auto;border-radius:50%;position:absolute}.image-overlay__rotate-line[data-v-f24116b0]{border-left:1px solid var(--doc-primary);pointer-events:none;width:0;height:22px;position:absolute;top:-22px;left:50%}.image-overlay__rotate-handle[data-v-f24116b0]{background:var(--doc-surface);border:2px solid var(--doc-primary);width:14px;height:14px;box-shadow:0 1px 3px var(--doc-shadow-strong);cursor:grab;z-index:16;box-sizing:border-box;pointer-events:auto;border-radius:50%;position:absolute;top:-32px}.image-overlay__rotate-handle[data-v-f24116b0]:active{cursor:grabbing}.image-overlay__dim[data-v-f24116b0]{background:var(--doc-overlay);color:#fff;white-space:nowrap;pointer-events:none;border-radius:4px;padding:2px 8px;font-size:11px;position:absolute;bottom:-24px;left:50%;transform:translate(-50%)}.image-overlay__dim--rotate[data-v-f24116b0]{top:-52px;bottom:auto}.docx-editor-vue__page-indicator[data-v-21d010d4]{background-color:var(--doc-overlay);color:#fff;white-space:nowrap;pointer-events:none;z-index:1000;-webkit-user-select:none;user-select:none;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%)}.folio-template-directives-overlay[data-v-142d2ac6]{pointer-events:none;z-index:1;position:absolute;inset:0}.folio-template-directive[data-v-142d2ac6]{background:#0000ff6b;border-radius:3px;position:absolute}.folio-template-directive--clause[data-v-142d2ac6],.folio-template-directive--num[data-v-142d2ac6],.folio-template-directive--ref[data-v-142d2ac6]{background:#0000ff3d}.folio-template-directive--if[data-v-142d2ac6],.folio-template-directive--elseif[data-v-142d2ac6],.folio-template-directive--else[data-v-142d2ac6],.folio-template-directive--endif[data-v-142d2ac6]{background:color-mix(in srgb, var(--doc-tmpl-cond,#0d9488) 26%, transparent)}.folio-template-directive--each[data-v-142d2ac6],.folio-template-directive--endeach[data-v-142d2ac6]{background:color-mix(in srgb, var(--doc-tmpl-loop,#7c3aed) 26%, transparent)}.folio-template-directive--block[data-v-142d2ac6]{pointer-events:auto;transition:background-color .12s}.folio-template-directive--if.folio-template-directive--active[data-v-142d2ac6],.folio-template-directive--elseif.folio-template-directive--active[data-v-142d2ac6],.folio-template-directive--else.folio-template-directive--active[data-v-142d2ac6],.folio-template-directive--endif.folio-template-directive--active[data-v-142d2ac6]{background:color-mix(in srgb, var(--doc-tmpl-cond,#0d9488) 44%, transparent)}.folio-template-directive--each.folio-template-directive--active[data-v-142d2ac6],.folio-template-directive--endeach.folio-template-directive--active[data-v-142d2ac6]{background:color-mix(in srgb, var(--doc-tmpl-loop,#7c3aed) 44%, transparent)}.folio-template-band-rail[data-v-142d2ac6]{pointer-events:auto;border-radius:2px;transition:background-color .12s,box-shadow .12s;position:absolute}.folio-template-band-rail--each[data-v-142d2ac6]{background:color-mix(in srgb, var(--doc-tmpl-loop,#7c3aed) 22%, transparent)}.folio-template-band-rail--if[data-v-142d2ac6]{background:color-mix(in srgb, var(--doc-tmpl-cond,#0d9488) 22%, transparent)}.folio-template-band-rail--each.folio-template-band-rail--active[data-v-142d2ac6]{background:color-mix(in srgb, var(--doc-tmpl-loop,#7c3aed) 90%, transparent);box-shadow:0 0 0 .75px color-mix(in srgb, var(--doc-tmpl-loop,#7c3aed) 45%, transparent)}.folio-template-band-rail--if.folio-template-band-rail--active[data-v-142d2ac6]{background:color-mix(in srgb, var(--doc-tmpl-cond,#0d9488) 90%, transparent);box-shadow:0 0 0 .75px color-mix(in srgb, var(--doc-tmpl-cond,#0d9488) 45%, transparent)}.docx-hyperlink-popup[data-v-7f0cecdf]{z-index:10000;background:var(--doc-surface);border:1px solid var(--doc-border-light);box-shadow:0 1px 3px var(--doc-shadow), 0 4px 12px var(--doc-shadow-subtle);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}.docx-hyperlink-popup--edit[data-v-7f0cecdf]{flex-direction:column;align-items:stretch;width:320px;padding:12px}.docx-hyperlink-popup__icon[data-v-7f0cecdf]{width:20px;height:20px;color:var(--doc-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.docx-hyperlink-popup__url[data-v-7f0cecdf]{color:var(--doc-link);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-7f0cecdf]{background:var(--doc-border-light);flex-shrink:0;width:1px;height:20px}.docx-hyperlink-popup__btn[data-v-7f0cecdf]{cursor:pointer;width:28px;height:28px;color:var(--doc-text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.docx-hyperlink-popup__btn[data-v-7f0cecdf]:hover{background:var(--doc-bg-hover)}.docx-hyperlink-popup__edit-row[data-v-7f0cecdf]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.docx-hyperlink-popup__edit-row[data-v-7f0cecdf]:last-child{margin-bottom:0}.docx-hyperlink-popup__input[data-v-7f0cecdf]{border:1px solid var(--doc-border-light);border-radius:4px;outline:none;flex:1;padding:6px 8px;font-size:14px;line-height:20px}.docx-hyperlink-popup__input[data-v-7f0cecdf]:focus{border-color:var(--doc-primary)}.docx-hyperlink-popup__apply[data-v-7f0cecdf]{color:var(--doc-primary);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-7f0cecdf]:disabled{color:var(--doc-text-subtle);cursor:not-allowed}.docx-editor-vue[data-v-1c285fdf]{flex-direction:column;height:100%;min-height:0;display:flex}.docx-editor-vue__toolbar-shell[data-v-1c285fdf]{flex:none}.docx-editor-vue__hidden-pm[data-v-1c285fdf]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.docx-editor-vue__editor-scroll[data-v-1c285fdf]{flex:auto;min-height:0;overflow:auto}.docx-editor-vue__editor-area[data-v-1c285fdf]{flex-direction:column;align-items:center;display:flex;position:relative}.docx-editor-vue__pages-viewport[data-v-1c285fdf]{flex-direction:column;align-items:center;width:100%;display:flex;position:relative}.docx-editor-vue__decoration-origin[data-v-1c285fdf]{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.docx-editor-vue__table-insert-btn[data-v-1c285fdf]{z-index:6;border:1px solid var(--doc-primary,#1a73e8);background:var(--doc-surface,#fff);width:20px;height:20px;color:var(--doc-primary,#1a73e8);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:flex;position:absolute;transform:translate(-50%,-50%)}.docx-editor-vue__table-insert-btn[data-v-1c285fdf]:hover{background:var(--doc-primary,#1a73e8);color:var(--doc-on-primary,#fff)}.docx-editor-vue__add-comment-btn[data-v-1c285fdf]{z-index:50;border:1px solid var(--doc-border,#dadce0);background:var(--doc-page,#fff);width:28px;height:28px;color:var(--doc-text-muted,#5f6368);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;transform:translate(-50%,-50%)}.docx-editor-vue__add-comment-btn[data-v-1c285fdf]:hover{background:var(--doc-shadow-subtle,#f1f3f4);color:var(--doc-primary,#1a73e8)}.docx-editor-vue__error[data-v-1c285fdf]{color:var(--destructive,#b00020);padding:12px}.docx-editor-vue__loading[data-v-1c285fdf],.docx-editor-vue__placeholder[data-v-1c285fdf]{opacity:.7;padding:12px}.docx-editor-vue__ruler-h[data-v-1c285fdf]{z-index:20;background-color:hsl(var(--muted));flex-shrink:0;justify-content:center;padding-block:4px;padding-inline:20px;display:flex;position:sticky;top:0}.docx-editor-vue__ruler-v[data-v-1c285fdf]{z-index:20;position:absolute;top:0;left:0}.folio-root--no-markup .docx-insertion{color:inherit!important;background:0 0!important;text-decoration:none!important}.folio-root--no-markup .docx-deletion,.folio-root--original .docx-insertion{display:none!important}.folio-root--original .docx-deletion,.folio-root--simple-markup .docx-insertion{color:inherit!important;background:0 0!important;text-decoration:none!important}.folio-root--simple-markup .docx-deletion{display:none!important}.docx-formatting-bar[data-v-225f770f]{border-bottom:1px solid var(--doc-border);background:var(--doc-page);scrollbar-width:none;align-items:center;gap:1px;width:100%;height:48px;padding:0 16px;display:flex;overflow-x:auto}.docx-formatting-bar[data-v-225f770f]::-webkit-scrollbar{display:none}.docx-formatting-bar__group[data-v-225f770f]{align-items:center;gap:2px;display:inline-flex}.docx-formatting-bar__btn[data-v-225f770f]{min-width:32px;height:32px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .1s,color .1s;display:inline-flex}.docx-formatting-bar__btn[data-v-225f770f]:focus-visible{outline:2px solid var(--doc-primary);outline-offset:2px}.docx-formatting-bar__btn[data-v-225f770f]:hover:not(:disabled),.docx-formatting-bar__btn--active[data-v-225f770f],.docx-formatting-bar__btn--active[data-v-225f770f]:hover{background:var(--doc-primary-light);color:var(--doc-text)}.docx-formatting-bar__btn[data-v-225f770f]:disabled{cursor:not-allowed;opacity:.35}.docx-formatting-bar__divider[data-v-225f770f]{background:var(--doc-border);flex-shrink:0;width:1px;height:24px;margin:0 8px}.docx-zoom-control[data-v-4408d2e8]{font-variant-numeric:tabular-nums;width:70px;height:32px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;outline:none;padding:0 4px;font-size:14px}.docx-zoom-control--compact[data-v-4408d2e8]{width:55px;height:28px;font-size:12px}.docx-zoom-control[data-v-4408d2e8]:hover:not(:disabled){background:var(--doc-primary-light);color:var(--doc-text)}.docx-zoom-control[data-v-4408d2e8]:focus-visible{border-color:var(--doc-primary)}.docx-zoom-control[data-v-4408d2e8]:disabled{cursor:not-allowed;opacity:.4}.docx-editor-toolbar[data-v-f2023632]{background:var(--doc-surface);box-shadow:0 1px 2px var(--doc-shadow-subtle);flex-direction:column;flex-shrink:0;display:flex}.docx-editor-toolbar__title-row[data-v-f2023632]{align-items:stretch;padding:8px 0 4px;display:flex}.docx-editor-toolbar__title-left[data-v-f2023632]{flex-shrink:0;align-items:center;padding:0 4px 0 12px;display:flex}.docx-editor-toolbar__title-center[data-v-f2023632]{flex-direction:column;flex:1;justify-content:center;min-width:0;padding:4px 0;display:flex}.docx-editor-toolbar__title-right[data-v-f2023632]{flex-shrink:0;align-items:center;gap:8px;padding:0 12px;display:flex}.docx-title-bar[data-v-ae11d49f]{background:var(--doc-surface);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-ae11d49f]{flex-shrink:0;align-items:center;padding:0 4px 0 12px;display:flex}.docx-title-bar__center[data-v-ae11d49f]{flex-direction:column;flex:1;justify-content:center;min-width:0;padding:4px 0;display:flex}.docx-title-bar__right[data-v-ae11d49f]{flex-shrink:0;align-items:center;gap:8px;padding:0 12px;display:flex}.docx-font-picker[data-v-1a9a9f88]{border:1px solid var(--doc-border-dark);background:var(--doc-surface);cursor:pointer;border-radius:4px;min-width:100px;height:28px;padding:0 6px;font-size:13px}.docx-font-picker[data-v-1a9a9f88]:disabled{cursor:not-allowed;opacity:.5}.docx-font-size[data-v-4e8ada55]{align-items:center;gap:0;display:inline-flex}.docx-font-size__btn[data-v-4e8ada55]{border:1px solid var(--doc-border);background:var(--doc-surface);cursor:pointer;border-radius:3px;width:22px;height:22px;padding:0;font-size:14px;line-height:1}.docx-font-size__btn[data-v-4e8ada55]:hover:not(:disabled){background:var(--doc-bg-hover)}.docx-font-size__btn[data-v-4e8ada55]:disabled{cursor:not-allowed;opacity:.4}.docx-font-size__input[data-v-4e8ada55]{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-4e8ada55]:focus{border-color:var(--doc-primary)}.docx-line-spacing[data-v-fcda8ecc]{border:1px solid var(--doc-border-dark);background:var(--doc-surface);cursor:pointer;border-radius:4px;height:28px;padding:0 6px;font-size:13px}.docx-line-spacing[data-v-fcda8ecc]:disabled{cursor:not-allowed;opacity:.5}.docx-table-grid__btn[data-v-34f6875c]{width:28px;height:28px;color:var(--doc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.docx-table-grid__btn[data-v-34f6875c]:hover:not(:disabled){background:var(--doc-bg-hover);color:var(--doc-text)}.docx-table-grid__btn[data-v-34f6875c]:disabled{opacity:.3;cursor:not-allowed}.docx-table-grid__panel[data-v-34f6875c]{padding:8px}.docx-table-grid__label[data-v-34f6875c]{text-align:center;color:var(--doc-text-muted);margin-bottom:6px;font-size:12px}.docx-table-grid__grid[data-v-34f6875c]{gap:2px;display:grid}.docx-table-grid__cell[data-v-34f6875c]{border:1px solid var(--doc-border);background:var(--doc-surface);cursor:pointer;width:18px;height:18px;padding:0}.docx-table-grid__cell--active[data-v-34f6875c]{background:var(--doc-primary);border-color:var(--doc-primary)}.print-btn[data-v-3e413c06]{border:1px solid var(--doc-border-dark);background:var(--doc-surface);cursor:pointer;color:var(--doc-text-muted);border-radius:4px;align-items:center;gap:4px;padding:4px 12px;font-size:13px;display:flex}.print-btn[data-v-3e413c06]:hover:not(:disabled){background:var(--doc-bg-hover)}.print-btn[data-v-3e413c06]:disabled{opacity:.5;cursor:default}.print-btn__icon[data-v-3e413c06]{font-size:14px}
2
+ /*$vite$:1*/
@@ -0,0 +1,36 @@
1
+ import { App, MaybeRefOrGetter } from 'vue';
2
+ /** BCP-47 tag folio falls back to when a host supplies no locale. */
3
+ export declare const defaultLocale = "en";
4
+ export type FolioTranslator = ReturnType<typeof createFolioTranslator>;
5
+ /**
6
+ * Call signature folio's SFCs use: a namespaced `folio.*` key path plus
7
+ * optional ICU values, returning the localized string. The underlying
8
+ * `FolioTranslator` types its key parameter from the catalog literal, which the
9
+ * `createTranslator` overloads collapse to `never` for a widened message type;
10
+ * folio's components address keys as plain paths (matching `presets.ts`), so the
11
+ * public binding exposes this string-keyed signature.
12
+ */
13
+ export type TranslateFn = (key: string, values?: Record<string, unknown>) => string;
14
+ declare const createFolioTranslator: (locale: string) => import('use-intl/core')._Translator<import('@stll/folio-core/i18n/messages').FolioMessages, "folio">;
15
+ /**
16
+ * Provide folio's translator to descendant components. `locale` may be a ref,
17
+ * getter, or plain string; the translator recomputes when a reactive locale
18
+ * changes. Call inside a parent component `setup()` (e.g. the editor shell).
19
+ */
20
+ export declare const provideLocale: (locale?: MaybeRefOrGetter<string>) => void;
21
+ /**
22
+ * Access folio's translator. Returns `{ t }` where `t("key")` looks up the
23
+ * `folio` namespace of the active locale's catalog.
24
+ */
25
+ export declare const useTranslation: () => {
26
+ t: TranslateFn;
27
+ };
28
+ /**
29
+ * Vue plugin form: `app.use(i18nPlugin, "de")` provides the translator at the
30
+ * app root so every folio component resolves translations without a wrapping
31
+ * provider component.
32
+ */
33
+ export declare const i18nPlugin: {
34
+ install(app: App, locale?: MaybeRefOrGetter<string>): void;
35
+ };
36
+ export {};
@@ -0,0 +1 @@
1
+ export * from '@stll/folio-core/i18n/messages';
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./PageSetupDialog-CGBaBVzo.cjs"),t=require("./ListButtons-D-zMJ7rl.cjs"),n=require("./zIndex-dFsQbASx.cjs"),r=require("./useZoom-BryUw3Cu.cjs");let i=require("vue"),a=require("@stll/folio-core/prosemirror"),o=require("@stll/folio-core/prosemirror/plugins/selectionTracker"),s=require("@stll/folio-core/docx/compatibility"),c=require("@stll/folio-core/layout-bridge/engine/measuring"),l=require("@stll/folio-core/utils/fontLoader"),u=require("@stll/folio-core/paged-layout/sectionGeometry"),d=require("@stll/folio-core/paged-layout/rangeProjection"),f=require("@stll/folio-core/paged-layout/scrollNavigation"),p=require("@stll/folio-core/prosemirror/plugins/anonymizationDecorations"),m=require("prosemirror-state"),h=require("@stll/folio-core/utils/units"),g=require("@stll/folio-core/layout-painter/imageLayout"),_=require("@stll/folio-core/managers/EditorModeManager"),v=require("@stll/folio-core/layout-bridge/dom/clickToPositionDom"),y=require("@stll/folio-core/prosemirror/imageCommit"),b=require("@stll/folio-core/layout-bridge/dom/findBodyPmSpans"),x=require("@stll/folio-core/prosemirror/plugins/templateDirectives"),S=require("@stll/folio-core/prosemirror/commands/formatting"),ee=require("@stll/folio-core/prosemirror/extensions/nodes/TableExtension"),C=require("@stll/folio-core/prosemirror/commentIdAllocator"),w=require("@stll/folio-core/prosemirror/commentOps"),T=require("@stll/folio-core/prosemirror/queries"),E=require("@stll/folio-core/prosemirror/commands/comments"),D=require("@stll/folio-core/prosemirror/plugins/suggestionMode"),O=require("@stll/folio-core/prosemirror/plugins/templatePreviewValues"),k=require("@stll/folio-core/prosemirror/plugins/templateSlashMenu"),A=require("@stll/folio-core/ai-edits"),j=require("@stll/folio-core/layout-engine"),M=require("@stll/folio-core/paged-layout/paragraphFlash"),N=require("@stll/folio-core/prosemirror/commands/contentControls"),P=require("@stll/folio-core/prosemirror/commands/contentControlsBlockFill"),F=require("@stll/folio-core/ai-edits/snapshot"),I=require("@stll/folio-core/prosemirror/utils/findParagraphByParaId"),L=require("@stll/folio-core/types/block-id"),R=require("@stll/folio-core/prosemirror/commands/paragraph"),z=require("@stll/folio-core/docx"),te=require("@stll/folio-core/prosemirror/commands/pageBreak"),ne=require("@stll/folio-core/prosemirror/commands/sectionBreak"),re=require("@stll/folio-core/prosemirror/commands/hyperlink"),B=require("@stll/folio-core/layout-bridge/tableInsertHover"),ie=require("@stll/folio-core/prosemirror/cellDragSelection"),ae=require("@stll/folio-core/utils/createDocument"),oe=require("@stll/folio-core/docx/rezip"),se=require("@stll/folio-core/ai-suggestions/types"),ce=require("@stll/folio-core/ai-suggestions/apply"),V=require("@stll/folio-core/ai-suggestions/conflict"),le=require("@stll/folio-core/ai-suggestions/text-positions"),ue=require("@stll/folio-core/prosemirror/plugins/aiSuggestionDecorations"),de=require("@stll/folio-core/paged-layout/scrollToPmPosition"),H=require("@stll/folio-core/paged-layout/selectionViewportRect"),U=require("@stll/folio-core/prosemirror/plugins/aiCitationDecorations"),W=require("@stll/folio-core/prosemirror/plugins/autocompleteSuggestion"),G=require("@stll/folio-core/markdown");var fe=[`data-folio-anonymization-label`,`data-folio-anonymization-canonical`,`data-folio-anonymization-selected`,`title`],pe=(0,i.defineComponent)({__name:`AnonymizationRectsOverlay`,props:{getView:{type:Function},getPagesContainer:{type:Function},editorState:{},zoom:{},layout:{},blocks:{},measures:{},onTermClick:{type:Function},selectedCanonical:{},selectionSeq:{}},setup(e){let t=e,n=(0,i.ref)(null),r=(0,i.ref)([]),a=0,o=null;function s(){o!==null&&cancelAnimationFrame(o),o=requestAnimationFrame(()=>{o=null,c()})}async function c(){let e=++a,n=t.getView(),i=t.getPagesContainer(),o=t.editorState;if(!n||!i||!o){r.value=[];return}let s=(0,p.getAnonymizationMatches)(o);if(s.length===0){r.value=[];return}let c=await(0,d.projectRangesToRects)(s,{pagesContainer:i,zoom:t.zoom,layout:t.layout,blocks:t.blocks,measures:t.measures});if(e!==a)return;let l=t.zoom;r.value=c.map(({range:e,rects:t})=>({label:e.label,canonical:e.canonical,rects:t.map(e=>({left:e.x*l,top:e.y*l,width:e.width*l,height:e.height*l}))}))}(0,i.watch)(()=>[t.editorState,t.zoom,t.layout,t.blocks,t.measures],()=>s());let l=null;function u(){let e=n.value,r=t.selectedCanonical;if(!e||!r){l=null;return}let i=e.querySelectorAll(`[data-folio-anonymization-canonical="${CSS.escape(r)}"]`);if(i.length===0)return;let a=l?.canonical===r?(l.index+1)%i.length:0;l={canonical:r,index:a},i.item(a)?.scrollIntoView({block:`center`,behavior:(0,f.prefersReducedMotionBehavior)()})}(0,i.watch)(()=>[t.selectedCanonical,t.selectionSeq],()=>u(),{flush:`post`});function m(e){if(e.button!==0||!t.onTermClick)return;let r=n.value;if(!r)return;let i=r.querySelectorAll(`[data-folio-anonymization-canonical]`);for(let n=i.length-1;n>=0;--n){let r=i.item(n);if(!r)continue;let a=r.getBoundingClientRect();if(e.clientX>=a.left&&e.clientX<a.right&&e.clientY>=a.top&&e.clientY<a.bottom){let e=r.dataset.folioAnonymizationCanonical,n=r.dataset.folioAnonymizationLabel;e&&n&&t.onTermClick(e,n);return}}}return(0,i.onMounted)(()=>{document.addEventListener(`click`,m),s()}),(0,i.onBeforeUnmount)(()=>{document.removeEventListener(`click`,m),o!==null&&(cancelAnimationFrame(o),o=null)}),(t,a)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{ref_key:`rootRef`,ref:n,class:`folio-anonymization-overlay`,"data-folio-anonymization-overlay":``},[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value,t=>((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:`${t.label}:${t.canonical}`},[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(t.rects,(n,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`span`,{key:`${t.canonical}:${r}:${n.left}:${n.top}`,class:(0,i.normalizeClass)([`folio-anonymization-term`,`folio-anonymization-term--${(0,i.unref)(p.slugAnonymizationLabel)(t.label)}`]),"data-folio-anonymization-label":t.label,"data-folio-anonymization-canonical":t.canonical,"data-folio-anonymization-selected":t.canonical===e.selectedCanonical?`true`:void 0,title:`Anonymized: ${t.canonical}`,style:(0,i.normalizeStyle)({position:`absolute`,left:`${n.left}px`,top:`${n.top}px`,width:`${n.width}px`,height:`${n.height}px`})},null,14,fe))),128))],64))),128))],512))}}),me=e.u(pe,[[`__scopeId`,`data-v-c7db88e1`]]),he={class:`doc-outline__header`},ge={class:`doc-outline__body`},_e={key:0,class:`doc-outline__empty`},ve=[`onMousedown`],ye=(0,i.defineComponent)({__name:`DocumentOutline`,props:{isOpen:{type:Boolean},headings:{},leftOffset:{default:12},topPx:{default:24}},emits:[`close`,`navigate`],setup(e){let n=e,r=(0,i.computed)(()=>n.headings.length?Math.min(...n.headings.map(e=>e.level)):0);return(n,a)=>e.isOpen?((0,i.openBlock)(),(0,i.createElementBlock)(`nav`,{key:0,class:`doc-outline`,style:(0,i.normalizeStyle)({left:e.leftOffset+`px`,top:e.topPx+`px`}),role:`navigation`,"aria-label":`Document outline`,onMousedown:a[1]||=(0,i.withModifiers)(()=>{},[`stop`])},[(0,i.createElementVNode)(`div`,he,[(0,i.createElementVNode)(`button`,{class:`doc-outline__back`,title:`Close outline`,"aria-label":`Close outline`,onClick:a[0]||=e=>n.$emit(`close`)},[(0,i.createVNode)(t.I,{name:`arrow_back`,size:20})]),a[2]||=(0,i.createElementVNode)(`span`,{class:`doc-outline__title`},`Document Outline`,-1)]),(0,i.createElementVNode)(`div`,ge,[e.headings.length===0?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,_e,`No headings found`)):(0,i.createCommentVNode)(``,!0),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.headings,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`button`,{key:t,class:`doc-outline__item`,style:(0,i.normalizeStyle)({paddingLeft:8+(e.level-r.value)*16+`px`}),onMousedown:(0,i.withModifiers)(t=>n.$emit(`navigate`,e.pmPos),[`prevent`])},(0,i.toDisplayString)(e.text||`(untitled)`),45,ve))),128))])],36)):(0,i.createCommentVNode)(``,!0)}}),be=e.u(ye,[[`__scopeId`,`data-v-94e471af`]]),xe=(0,i.defineComponent)({__name:`DocxEditorDialogs`,props:{view:{},bookmarks:{},selectedImagePmPos:{},sectionProperties:{},showFindReplace:{type:Boolean},showHyperlink:{type:Boolean},showInsertSymbol:{type:Boolean},showImageProperties:{type:Boolean},showPageSetup:{type:Boolean}},emits:[`update:showFindReplace`,`update:showHyperlink`,`update:showInsertSymbol`,`update:showImageProperties`,`update:showPageSetup`,`insert-symbol`,`hyperlink-submit`,`hyperlink-remove`,`page-setup-apply`],setup(t,{emit:n}){let r=n;return(n,a)=>((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,null,[(0,i.createVNode)(e.a,{"is-open":t.showFindReplace,view:t.view,onClose:a[0]||=e=>r(`update:showFindReplace`,!1)},null,8,[`is-open`,`view`]),(0,i.createVNode)(e.i,{"is-open":t.showHyperlink,view:t.view,bookmarks:t.bookmarks,onClose:a[1]||=e=>r(`update:showHyperlink`,!1),onSubmit:a[2]||=e=>r(`hyperlink-submit`,e),onRemove:a[3]||=e=>r(`hyperlink-remove`)},null,8,[`is-open`,`view`,`bookmarks`]),(0,i.createVNode)(e.n,{"is-open":t.showInsertSymbol,onClose:a[4]||=e=>r(`update:showInsertSymbol`,!1),onInsert:a[5]||=e=>r(`insert-symbol`,e)},null,8,[`is-open`]),(0,i.createVNode)(e.r,{"is-open":t.showImageProperties,view:t.view,"pm-pos":t.selectedImagePmPos,onClose:a[6]||=e=>r(`update:showImageProperties`,!1)},null,8,[`is-open`,`view`,`pm-pos`]),(0,i.createVNode)(e.t,{"is-open":t.showPageSetup,"section-properties":t.sectionProperties,onClose:a[7]||=e=>r(`update:showPageSetup`,!1),onApply:a[8]||=e=>r(`page-setup-apply`,e)},null,8,[`is-open`,`section-properties`])],64))}}),Se={key:0,class:`docx-editor-vue__title-bar`},K={class:`docx-editor-vue__title-bar-left`},q={class:`docx-editor-vue__title-bar-center`},Ce={class:`docx-editor-vue__title-bar-right`},we=(0,i.defineComponent)({__name:`DocxEditorMenuBar`,props:{showMenuBar:{type:Boolean,default:!0},documentName:{default:``},documentNameEditable:{type:Boolean,default:!0},showFileOpen:{type:Boolean,default:!0},showHelpMenu:{type:Boolean,default:!0},showTableInsert:{type:Boolean,default:!0}},emits:[`rename`,`menu-action`,`insert-table`],setup(e,{emit:n}){let r=n;return(n,a)=>e.showMenuBar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Se,[(0,i.createElementVNode)(`div`,K,[(0,i.renderSlot)(n.$slots,`title-bar-left`)]),(0,i.createElementVNode)(`div`,q,[(0,i.createVNode)(t.P,{"model-value":e.documentName,editable:e.documentNameEditable,"onUpdate:modelValue":a[0]||=e=>r(`rename`,e)},null,8,[`model-value`,`editable`]),(0,i.createVNode)(t.A,{"show-file-open":e.showFileOpen,"show-help-menu":e.showHelpMenu,"show-table-insert":e.showTableInsert,onAction:a[1]||=e=>r(`menu-action`,e),onInsertTable:a[2]||=(e,t)=>r(`insert-table`,e,t)},null,8,[`show-file-open`,`show-help-menu`,`show-table-insert`])]),(0,i.createElementVNode)(`div`,Ce,[(0,i.renderSlot)(n.$slots,`title-bar-right`)])])):(0,i.createCommentVNode)(``,!0)}}),J=Symbol(`docx-portal-class`);function Te(e){(0,i.provide)(J,(0,i.computed)(()=>({"ep-root":!0,dark:!!(0,i.unref)(e)})))}function Ee(){return(0,i.inject)(J,(0,i.computed)(()=>({"ep-root":!0})))}var De=[`aria-label`],Y={class:`image-ctx-menu__icon`},Oe={class:`image-ctx-menu__label`},ke={key:1,class:`image-ctx-menu__divider`,role:`separator`},Ae=[`data-wrap-type`,`data-current`,`data-disabled`,`disabled`,`title`,`onClick`],je={class:`image-ctx-menu__icon`},Me={class:`image-ctx-menu__label`},Ne=[`aria-label`],Pe=[`disabled`,`onClick`],Fe={class:`image-ctx-menu__label`},Ie={key:0,class:`image-ctx-menu__shortcut`},Le={key:0,class:`image-ctx-menu__divider`,role:`separator`},Re=18,X=260,Z=10,ze=(0,i.defineComponent)({__name:`ImageContextMenu`,props:{state:{},textActions:{},canOpenProperties:{type:Boolean,default:!1}},emits:[`close`,`select`,`text-action`,`open-properties`],setup(n,{emit:r}){let a=n,o=r;function s(){o(`open-properties`),o(`close`)}let{t:c}=e.l(),l=Ee(),u=g.IMAGE_LAYOUT_OPTIONS,d=(0,i.computed)(()=>a.state?(0,g.deriveLayoutChoice)(a.state.currentWrapType,a.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,i.computed)(()=>{if(!a.state)return{};let e=g.IMAGE_LAYOUT_OPTIONS.length*36+16,t=a.state.position.x,n=a.state.position.y;return typeof window<`u`&&(t+X>window.innerWidth&&(t=window.innerWidth-X-Z),n+e>window.innerHeight&&(n=window.innerHeight-e-Z),t<Z&&(t=Z),n<Z&&(n=Z)),{position:`fixed`,left:`${t}px`,top:`${n}px`,minWidth:`${X}px`,zIndex:400}});function h(e){return a.state?(0,g.isImageLayoutOptionEnabled)(e,a.state.currentWrapType):!1}function _(e){h(e)&&(o(`select`,e.choice),o(`close`))}function v(e){e.disabled||(o(`text-action`,e.action),o(`close`))}function y(e){e.preventDefault(),o(`close`)}function b(e){e.key===`Escape`&&(e.preventDefault(),o(`close`))}return(e,r)=>((0,i.openBlock)(),(0,i.createBlock)(i.Teleport,{to:`body`},[n.state&&n.state.open?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,class:`image-ctx-menu-backdrop`,onMousedown:y,onContextmenu:r[0]||=(0,i.withModifiers)(t=>e.$emit(`close`),[`prevent`])},null,32)):(0,i.createCommentVNode)(``,!0),n.state&&n.state.open?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:1,class:(0,i.normalizeClass)([`image-ctx-menu`,(0,i.unref)(l)]),role:`menu`,"aria-label":(0,i.unref)(c)(`imageWrap.menu.ariaLabel`),"data-testid":`image-context-menu`,style:(0,i.normalizeStyle)(m.value),onContextmenu:r[4]||=(0,i.withModifiers)(()=>{},[`prevent`]),onKeydown:b},[n.canOpenProperties?((0,i.openBlock)(),(0,i.createElementBlock)(`button`,{key:0,type:`button`,role:`menuitem`,class:`image-ctx-menu__item`,"data-action":`open-properties`,onMousedown:r[1]||=(0,i.withModifiers)(()=>{},[`prevent`]),onClick:s},[(0,i.createElementVNode)(`span`,Y,[(0,i.createVNode)(t.I,{name:`settings`,size:Re})]),(0,i.createElementVNode)(`span`,Oe,(0,i.toDisplayString)((0,i.unref)(c)(`imageWrap.menu.imageProperties`)),1)],32)):(0,i.createCommentVNode)(``,!0),n.canOpenProperties?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ke)):(0,i.createCommentVNode)(``,!0),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)((0,i.unref)(u),e=>((0,i.openBlock)(),(0,i.createElementBlock)(`button`,{key:e.choice,type:`button`,role:`menuitem`,class:(0,i.normalizeClass)([`image-ctx-menu__item`,{"image-ctx-menu__item--current":e.choice===d.value}]),"data-wrap-type":e.choice,"data-current":e.choice===d.value?`true`:`false`,"data-disabled":h(e)?`false`:`true`,disabled:!h(e),title:(0,i.unref)(c)(`imageWrap.menuDesc.${e.i18nDescKey}`),onMousedown:r[2]||=(0,i.withModifiers)(()=>{},[`prevent`]),onClick:t=>_(e)},[(0,i.createElementVNode)(`span`,je,[(0,i.createVNode)(t.I,{name:p(e.iconHint),size:Re},null,8,[`name`])]),(0,i.createElementVNode)(`span`,Me,(0,i.toDisplayString)((0,i.unref)(c)(`imageWrap.menu.${e.i18nLabelKey}`)),1),e.choice===d.value?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,{key:0,class:`image-ctx-menu__current-dot`,"aria-label":(0,i.unref)(c)(`imageWrap.menu.ariaLabel`)},`●`,8,Ne)):(0,i.createCommentVNode)(``,!0)],42,Ae))),128)),n.textActions&&n.textActions.length>0?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:2},[r[5]||=(0,i.createElementVNode)(`div`,{class:`image-ctx-menu__divider`,role:`separator`},null,-1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(n.textActions,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:`${e.action}-${t}`},[(0,i.createElementVNode)(`button`,{type:`button`,role:`menuitem`,class:`image-ctx-menu__item image-ctx-menu__item--text`,disabled:e.disabled,onMousedown:r[3]||=(0,i.withModifiers)(()=>{},[`prevent`]),onClick:t=>v(e)},[(0,i.createElementVNode)(`span`,Fe,(0,i.toDisplayString)(e.label),1),e.shortcut?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,Ie,(0,i.toDisplayString)(e.shortcut),1)):(0,i.createCommentVNode)(``,!0)],40,Pe),e.dividerAfter?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Le)):(0,i.createCommentVNode)(``,!0)],64))),128))],64)):(0,i.createCommentVNode)(``,!0)],46,De)):(0,i.createCommentVNode)(``,!0)]))}}),Be=e.u(ze,[[`__scopeId`,`data-v-1bdca3c9`]]),Ve=[`disabled`,`onMousedown`],He={key:0,class:`ctx-menu__icon`},Ue={class:`ctx-menu__label`},We={key:1,class:`ctx-menu__shortcut`},Ge=220,Ke=32,qe=10,Je=(0,i.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},customItems:{}},emits:[`close`,`action`],setup(t,{emit:n}){let r=t,a=({node:e})=>e;a.props=[`node`];let o=n,{t:s}=e.l(),c=Ee(),l=(0,i.ref)(null),u=(0,i.computed)(()=>{let e=[],t=r.customItems??[];for(let[n,r]of t.entries())e.push({id:`custom-${r.id}`,label:r.label,action:`custom:${r.id}`,emphasis:!0,...r.icon===void 0?{}:{icon:r.icon}}),n===t.length-1&&e.push({id:`div-custom`,label:``,action:``,divider:!0});return e.push({id:`cut`,label:s(`cut`),action:`cut`,shortcut:s(`contextMenu.cutShortcut`),disabled:!r.hasSelection||!r.isEditable},{id:`copy`,label:s(`copy`),action:`copy`,shortcut:s(`contextMenu.copyShortcut`),disabled:!r.hasSelection},{id:`paste`,label:s(`paste`),action:`paste`,shortcut:s(`contextMenu.pasteShortcut`),disabled:!r.isEditable},{id:`pasteAsPlainText`,label:s(`pasteUnformatted`),action:`pasteAsPlainText`,shortcut:s(`contextMenu.pastePlainTextShortcut`),disabled:!r.isEditable},{id:`div1`,label:``,action:``,divider:!0},{id:`delete`,label:s(`delete`),action:`delete`,shortcut:s(`contextMenu.deleteShortcut`),disabled:!r.hasSelection||!r.isEditable},{id:`selectAll`,label:s(`selectAll`),action:`selectAll`,shortcut:s(`contextMenu.selectAllShortcut`)}),r.onImage&&r.isEditable&&e.push({id:`div-img`,label:``,action:``,divider:!0},{id:`replaceImage`,label:s(`imageOverlay.replaceImage`),action:`replaceImage`},{id:`imageProperties`,label:s(`imageWrap.menu.imageProperties`),action:`imageProperties`},{id:`deleteImage`,label:s(`imageOverlay.deleteImage`),action:`deleteImage`,shortcut:s(`contextMenu.deleteShortcut`)}),r.inTable&&r.isEditable&&e.push({id:`div2`,label:``,action:``,divider:!0},{id:`addRowAbove`,label:s(`insertRowAbove`),action:`addRowAbove`},{id:`addRowBelow`,label:s(`insertRowBelow`),action:`addRowBelow`},{id:`deleteRow`,label:s(`deleteRow`),action:`deleteRow`},{id:`div3`,label:``,action:``,divider:!0},{id:`addColLeft`,label:s(`insertColumnLeft`),action:`addColumnLeft`},{id:`addColRight`,label:s(`insertColumnRight`),action:`addColumnRight`},{id:`deleteCol`,label:s(`deleteColumn`),action:`deleteColumn`},{id:`div4`,label:``,action:``,divider:!0},{id:`mergeCells`,label:s(`table.mergeCells`),action:`mergeCells`,disabled:!r.canMergeCells},{id:`splitCell`,label:s(`table.splitCell`),action:`splitCell`,disabled:!r.canSplitCell},{id:`div5`,label:``,action:``,divider:!0},{id:`selectTable`,label:s(`table.selectTable`),action:`selectTable`},{id:`deleteTable`,label:s(`table.deleteTable`),action:`deleteTable`}),e}),d=(0,i.computed)(()=>{let e=r.position.x,t=r.position.y,n=u.value.filter(e=>!e.divider).length,i=u.value.filter(e=>e.divider).length,a=n*Ke+i*9;return typeof window<`u`&&(e+Ge+qe>window.innerWidth&&(e=window.innerWidth-Ge-qe),t+a+qe>window.innerHeight&&(t=window.innerHeight-a-qe)),{position:`fixed`,left:`${e}px`,top:`${t}px`,zIndex:400}});function f(e){e&&(o(`action`,e),o(`close`))}function p(e){e.key===`Escape`&&o(`close`)}return(0,i.watch)(()=>r.isOpen,e=>{e&&(0,i.nextTick)(()=>l.value?.focus())}),(e,n)=>((0,i.openBlock)(),(0,i.createBlock)(i.Teleport,{to:`body`},[t.isOpen?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,class:`ctx-menu-backdrop`,onMousedown:n[0]||=t=>e.$emit(`close`),onContextmenu:n[1]||=(0,i.withModifiers)(t=>e.$emit(`close`),[`prevent`])},null,32)):(0,i.createCommentVNode)(``,!0),t.isOpen?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:1,ref_key:`menuRef`,ref:l,class:(0,i.normalizeClass)([`ctx-menu`,(0,i.unref)(c)]),style:(0,i.normalizeStyle)(d.value),onContextmenu:n[2]||=(0,i.withModifiers)(()=>{},[`prevent`]),onKeydown:p},[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(u.value,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`button`,{key:e.id||t,class:(0,i.normalizeClass)([`ctx-menu__item`,{"ctx-menu__item--disabled":e.disabled,"ctx-menu__item--divider":e.divider,"ctx-menu__item--emphasis":e.emphasis}]),disabled:e.disabled,onMousedown:(0,i.withModifiers)(t=>f(e.action),[`prevent`])},[e.icon?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,He,[(0,i.createVNode)(a,{node:e.icon},null,8,[`node`])])):(0,i.createCommentVNode)(``,!0),(0,i.createElementVNode)(`span`,Ue,(0,i.toDisplayString)(e.label),1),e.shortcut?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,We,(0,i.toDisplayString)(e.shortcut),1)):(0,i.createCommentVNode)(``,!0)],42,Ve))),128))],38)):(0,i.createCommentVNode)(``,!0)]))}}),Ye=e.u(Je,[[`__scopeId`,`data-v-e71bb6e2`]]),Xe=(0,i.defineComponent)({__name:`DocxEditorOverlays`,props:{readOnly:{type:Boolean},contextMenu:{},imageContextMenu:{},imageContextMenuTextActions:{},canOpenImageProperties:{type:Boolean},customTextMenuItems:{}},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,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,null,[(0,i.createVNode)(Ye,{"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,"custom-items":e.customTextMenuItems,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`,`custom-items`]),(0,i.createVNode)(Be,{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))}});function Ze(e){let t=Math.max(0,e.parentOffsetWidth-e.parentClientWidth)/2,n=e.zoom||1;return{left:(e.imageRect.left-e.parentRect.left-t+e.scrollLeft)/n,top:(e.imageRect.top-e.parentRect.top+e.scrollTop)/n,width:e.imageRect.width/n,height:e.imageRect.height/n}}var Qe=[`data-handle`,`onMousedown`],$e=[`title`],et={key:0,class:`image-overlay__dim`},tt={key:1,class:`image-overlay__dim image-overlay__dim--rotate`},nt=4,Q=15,rt=250,$=700,it=(0,i.defineComponent)({__name:`ImageSelectionOverlay`,props:{imageInfo:{},zoom:{},view:{}},emits:[`deselect`,`interact-start`,`interact-end`,`context-menu`],setup(t,{emit:r}){let{t:a}=e.l(),o=t,s=r,c=(0,i.ref)(null),l=(0,i.ref)(!1),u=(0,i.ref)(!1),d=(0,i.ref)(!1),f=(0,i.ref)(0),p=(0,i.ref)(0),_=(0,i.ref)(0),x=(0,i.ref)(null),S=`se`,ee=0,C=0,w=0,T=0,E=null,D=null,O=null,k=null;function A(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 j(e){if(!e)return null;let t=e.attrs.transform;return typeof t==`string`?t:null}function M(){return c.value?.closest(`.docx-editor-vue__pages-viewport`)?.querySelector(`.docx-editor-vue__pages`)??null}function N(){let e=o.imageInfo;if(!e)return null;if(e.element.isConnected)return e.element;let t=M();if(!t)return null;let n=(0,b.findBodyPmAnchor)(t,e.pmPos);return n?(0,g.findImageElement)(n):null}function P(){let e=N();if(!e||!c.value){x.value=null;return}let t=c.value.offsetParent;if(!(t instanceof HTMLElement)){x.value=null;return}let n=t.getBoundingClientRect();x.value=Ze({imageRect:e.getBoundingClientRect(),parentRect:n,scrollLeft:t.scrollLeft,scrollTop:t.scrollTop,parentOffsetWidth:t.offsetWidth,parentClientWidth:t.clientWidth,zoom:o.zoom})}let F=null;function I(){F?.();let e=0,t=``,n=0,r=0,i=a=>{r===0&&(r=a);let o=a-r;P();let s=x.value,c=s?`${s.left}|${s.top}|${s.width}|${s.height}`:``;n=c===t?n+1:0,t=c,!(o>=rt&&n>=2)&&o<$&&(e=requestAnimationFrame(i))};e=requestAnimationFrame(i);let a=setTimeout(P,rt);F=()=>{cancelAnimationFrame(e),clearTimeout(a)}}(0,i.watch)(()=>o.imageInfo,(e,t,n)=>{if(!o.imageInfo){x.value=null;return}I(),n(()=>F?.())},{immediate:!0}),(0,i.watch)(()=>o.zoom,()=>{o.imageInfo&&I()}),(0,i.watch)(()=>o.imageInfo,(e,t,n)=>{if(!o.imageInfo)return;let r=()=>{D&&cancelAnimationFrame(D),D=requestAnimationFrame(P)},a=c.value?.closest(`.docx-editor-vue__pages-viewport`);a?.addEventListener(`scroll`,r,{passive:!0}),window.addEventListener(`resize`,r,{passive:!0});let s=null,l=!1;(0,i.nextTick)(()=>{if(l||!o.imageInfo)return;let e=M();e&&(s=new MutationObserver(()=>I()),s.observe(e,{attributes:!0,attributeFilter:[`style`]}))}),n(()=>{l=!0,a?.removeEventListener(`scroll`,r),window.removeEventListener(`resize`,r),s?.disconnect(),D&&cancelAnimationFrame(D)})},{immediate:!0});let L=(0,i.computed)(()=>l.value?f.value:x.value?.width||0),R=(0,i.computed)(()=>l.value?p.value:x.value?.height||0),z=(0,i.computed)(()=>{let e=x.value;if(!e)return{position:`absolute`,top:`0px`,left:`0px`,visibility:`hidden`,pointerEvents:`none`};let t=l.value?f.value:e.width,r=l.value?p.value:e.height,i=o.zoom||1;return{position:`absolute`,left:`${e.left*i}px`,top:`${e.top*i}px`,width:`${t}px`,height:`${r}px`,transform:i===1?void 0:`scale(${i})`,transformOrigin:`top left`,zIndex:n.t.imageOverlay,pointerEvents:`auto`}}),te=(0,i.computed)(()=>{let e=L.value,t=R.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`}}]});function ne(e,t){!o.imageInfo||!x.value||(S=t,ee=e.clientX,C=e.clientY,w=x.value.width,T=x.value.height,E={...x.value},f.value=Math.round(w),p.value=Math.round(T),l.value=!0,s(`interact-start`),document.addEventListener(`mousemove`,re),document.addEventListener(`mouseup`,B))}function re(e){let t=o.zoom,n=(e.clientX-ee)/t,r=(e.clientY-C)/t,i=!e.shiftKey,a=(0,y.calculateResizedImageDimensions)(S,n,r,w,T,i);f.value=Math.round(a.width),p.value=Math.round(a.height);let s=E;s&&(x.value={left:S.includes(`w`)?s.left+(s.width-a.width):s.left,top:S.includes(`n`)?s.top+(s.height-a.height):s.top,width:s.width,height:s.height})}function B(){document.removeEventListener(`mousemove`,re),document.removeEventListener(`mouseup`,B),l.value=!1,E=null,s(`interact-end`);let e=o.view,t=o.imageInfo;if(!e||!t){P();return}let n=(0,y.commitImageResize)(e,t.pmPos,f.value,p.value);n!==null&&me(n),(0,i.nextTick)(()=>P())}let ie=0,ae=0,oe=0,se=0,ce=null,V=null;function le(e){if(!e)return 0;let t=e.match(/rotate\((-?\d+(?:\.\d+)?)deg\)/)?.[1];return t?parseFloat(t):0}function ue(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 de(e,t){return Math.atan2(e-ie,-(t-ae))*180/Math.PI}function H(e){if(!o.imageInfo)return;let t=o.imageInfo.element.getBoundingClientRect();ie=t.left+t.width/2,ae=t.top+t.height/2,ce=j(A(o.view,o.imageInfo.pmPos)),se=le(ce),V=o.imageInfo.element.querySelector(`img`),oe=de(e.clientX,e.clientY),_.value=se,d.value=!0,s(`interact-start`),document.addEventListener(`mousemove`,U),document.addEventListener(`mouseup`,W)}function U(e){let t=de(e.clientX,e.clientY)-oe,n=se+t;e.shiftKey||(n=Math.round(n/Q)*Q),_.value=(n%360+360)%360,V&&(V.style.transform=ue(ce,_.value)||``)}function W(){document.removeEventListener(`mousemove`,U),document.removeEventListener(`mouseup`,W),d.value=!1,s(`interact-end`);let e=o.view,t=o.imageInfo;try{let n=e&&t?A(e,t.pmPos):null;e&&t&&n&&(e.dispatch(e.state.tr.setNodeMarkup(t.pmPos,void 0,{...n.attrs,transform:ue(j(n),_.value)})),me(t.pmPos))}catch{}finally{V&&(V.style.transform=``),V=null,ce=null}(0,i.nextTick)(()=>P())}let G=null;function fe(e){if(!o.imageInfo||!x.value)return;let t=e.clientX,n=e.clientY,r=x.value,i=!1,a=e=>{let a=e.clientX-t,c=e.clientY-n;if(!(!i&&Math.sqrt(a*a+c*c)<nt)){if(!i){i=!0,u.value=!0,s(`interact-start`),G=document.createElement(`div`),G.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;G.style.width=`${r.width*e}px`,G.style.height=`${r.height*e}px`,document.body.appendChild(G)}if(G){let t=o.zoom;G.style.left=`${e.clientX-r.width*t/2}px`,G.style.top=`${e.clientY-r.height*t/2}px`}}},c=e=>{document.removeEventListener(`mousemove`,a),document.removeEventListener(`mouseup`,c),O=null,k=null,G&&=(G.remove(),null),u.value=!1,i&&(s(`interact-end`),pe(e.clientX,e.clientY))};O=a,k=c,document.addEventListener(`mousemove`,a),document.addEventListener(`mouseup`,c)}function pe(e,t){let n=o.view,r=o.imageInfo;if(!n||!r)return;let a=A(n,r.pmPos);if(a){if((0,y.isFloatingImage)(a)){let i=(c.value?.closest(`.docx-editor-vue__pages-viewport`))?.querySelectorAll(`.layout-page`);if(!i||i.length===0)return;let a=null;for(let e of i){let n=e.getBoundingClientRect();if(t>=n.top&&t<=n.bottom){a=e.querySelector(`.layout-page-content`);break}}if(!a){let e=i.item(i.length-1);a=e?e.querySelector(`.layout-page-content`):null}if(!a)return;let s=a.getBoundingClientRect(),l=o.zoom,u=(0,h.pixelsToEmu)((e-s.left)/l),d=(0,h.pixelsToEmu)((t-s.top)/l),f=(0,y.commitImageFloatMove)(n,r.pmPos,u,d);f!==null&&me(f)}else{let i=M();if(!i)return;let a=(0,v.clickToPositionDom)(i,e,t,1);if(a==null||a<0)return;let o=(0,y.commitImageInlineMove)(n,r.pmPos,a);o!==null&&me(o)}(0,i.nextTick)(()=>P())}}function me(e){let t=o.view;if(t)try{let n=m.NodeSelection.create(t.state.doc,e);t.dispatch(t.state.tr.setSelection(n))}catch{}}return(0,i.onBeforeUnmount)(()=>{document.removeEventListener(`mousemove`,re),document.removeEventListener(`mouseup`,B),document.removeEventListener(`mousemove`,U),document.removeEventListener(`mouseup`,W),O&&document.removeEventListener(`mousemove`,O),k&&document.removeEventListener(`mouseup`,k),G&&=(G.remove(),null),D&&cancelAnimationFrame(D),F?.()}),(e,n)=>t.imageInfo?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,ref_key:`overlayRootRef`,ref:c,class:`image-overlay`,style:(0,i.normalizeStyle)(z.value),onMousedown:n[3]||=(0,i.withModifiers)(()=>{},[`stop`])},[n[4]||=(0,i.createElementVNode)(`div`,{class:`image-overlay__border`},null,-1),(0,i.createElementVNode)(`div`,{class:`image-overlay__body`,style:(0,i.normalizeStyle)({cursor:u.value?`grabbing`:`grab`}),onMousedown:n[0]||=(0,i.withModifiers)(e=>fe(e),[`prevent`,`stop`]),onContextmenu:n[1]||=(0,i.withModifiers)(t=>e.$emit(`context-menu`,t),[`prevent`,`stop`])},null,36),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(te.value,e=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:e.pos,class:`image-overlay__handle`,style:(0,i.normalizeStyle)(e.style),"data-handle":e.pos,onMousedown:(0,i.withModifiers)(t=>ne(t,e.pos),[`prevent`,`stop`])},null,44,Qe))),128)),n[5]||=(0,i.createElementVNode)(`div`,{class:`image-overlay__rotate-line`},null,-1),(0,i.createElementVNode)(`div`,{class:`image-overlay__rotate-handle`,style:(0,i.normalizeStyle)({left:`${L.value/2-7}px`}),title:(0,i.unref)(a)(`imageOverlay.rotate`),onMousedown:n[2]||=(0,i.withModifiers)(e=>H(e),[`prevent`,`stop`])},null,44,$e),l.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,et,(0,i.toDisplayString)(Math.round(f.value))+` × `+(0,i.toDisplayString)(Math.round(p.value)),1)):(0,i.createCommentVNode)(``,!0),d.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,tt,(0,i.toDisplayString)(Math.round(_.value))+`° `,1)):(0,i.createCommentVNode)(``,!0)],36)):(0,i.createCommentVNode)(``,!0)}}),at=e.u(it,[[`__scopeId`,`data-v-f24116b0`]]),ot=[`title`,`aria-label`],st=(0,i.defineComponent)({__name:`OutlineToggleButton`,props:{leftOffset:{},topPx:{default:24}},emits:[`toggle`],setup(n){let{t:r}=e.l();return(e,a)=>((0,i.openBlock)(),(0,i.createElementBlock)(`button`,{type:`button`,class:`docx-outline-toggle docx-editor-vue__outline-toggle`,style:(0,i.normalizeStyle)({left:n.leftOffset+`px`,top:n.topPx+`px`}),title:(0,i.unref)(r)(`editor.showDocumentOutline`),"aria-label":(0,i.unref)(r)(`editor.showDocumentOutline`),onClick:a[0]||=t=>e.$emit(`toggle`),onMousedown:a[1]||=(0,i.withModifiers)(()=>{},[`stop`])},[(0,i.createVNode)(t.I,{name:`format_list_bulleted`,size:20})],44,ot))}}),ct=(0,i.defineComponent)({__name:`PageIndicator`,props:{currentPage:{},totalPages:{},visible:{type:Boolean}},setup(t){let{t:n}=e.l();return(e,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{class:`docx-editor-vue__page-indicator`,style:(0,i.normalizeStyle)({opacity:+!!t.visible}),"aria-live":`polite`,role:`status`},(0,i.toDisplayString)((0,i.unref)(n)(`viewer.pageIndicator`,{current:t.currentPage,total:t.totalPages})),5))}}),lt=e.u(ct,[[`__scopeId`,`data-v-21d010d4`]]),ut=[`data-folio-block-id`],dt=[`data-folio-block-id`,`title`],ft=2.5,pt=5,mt=6,ht=2,gt=2,_t=(0,i.defineComponent)({__name:`TemplateDirectivesOverlay`,props:{getView:{type:Function},getPagesContainer:{type:Function},editorState:{},zoom:{},layout:{},blocks:{},measures:{}},setup(e){let t=e,n=new Set([`if`,`each`]),r=new Set([`endif`,`endeach`]),a=e=>e===`each`?`each`:`if`;function o(e){let t=e-mt-ft-ht;return t<=0?0:Math.floor(t/pt)}function s(e,t,n){let r=o(n),i=Math.min(Math.max(0,e),r);return t-mt-ft-(r-i)*pt}function c(e,t){if(t.length===0)return e.bottom-e.top>=gt?[e]:[];let n=[];for(let r of t){let t=Math.max(e.top,r.top),i=Math.min(e.bottom,r.bottom);i-t>=gt&&n.push({top:t,bottom:i})}return n}function l(e){let t=e.filter(e=>e.block&&(n.has(e.kind)||r.has(e.kind))).slice().sort((e,t)=>e.from-t.from),i=[],o=[];for(let e of t){if(n.has(e.kind)){o.push({range:e,depth:o.length});continue}let t=e.kind===`endif`?`if`:`each`,r,s=-1;for(let e=o.length-1;e>=0;--e){let n=o[e];if(n?.range.kind===t){r=n,s=e;break}}r&&(o.length=s,i.push({blockId:r.range.from,kind:a(r.range.kind),depth:r.depth,openerFrom:r.range.from,closerFrom:e.from,closerTo:e.to,openerExpr:r.range.expr}))}return i}function u(e,t){let n=e===`each`?`/each`:`/if`;return t?`${n} · ${t}`:n}function f(e,t){if(t===null)return null;let n=null,r=-1/0;for(let i of e)t>=i.openerFrom&&t<=i.closerTo&&i.openerFrom>r&&(r=i.openerFrom,n=i.blockId);return n}function p(e,t,n){let r=new Map(t.map(e=>[e.range.from,e])),i=[];for(let t of e){let e=r.get(t.openerFrom)?.rects[0],a=r.get(t.closerFrom)?.rects[0];if(!e||!a)continue;let o=c({top:e.y,bottom:a.y+a.height},n.pageBands);o.length!==0&&i.push({blockId:t.blockId,kind:t.kind,railX:s(t.depth,n.contentLeft,n.marginWidth),segments:o})}return i}let m=(0,i.ref)([]),h=(0,i.ref)([]),g=(0,i.ref)(null),_=(0,i.ref)(null),v=(0,i.ref)(null),y=0,b=null;function S(){b!==null&&cancelAnimationFrame(b),b=requestAnimationFrame(()=>{b=null,ee()})}async function ee(){let e=++y,n=t.getView(),r=t.getPagesContainer(),i=t.editorState;if(!n||!r||!i){m.value=[],h.value=[],g.value=null,_.value=null;return}let a=(0,x.getTemplateDirectives)(i);if(a.length===0){m.value=[],h.value=[],g.value=null,_.value=null;return}let o=(0,d.measureDirectiveGutter)(r,t.zoom),s=await(0,d.projectRangesToRects)(a,{pagesContainer:r,zoom:t.zoom,layout:t.layout,blocks:t.blocks,measures:t.measures});e===y&&(m.value=a,_.value=i.selection.head,g.value=o,h.value=s)}(0,i.watch)(()=>[t.editorState,t.zoom,t.layout,t.blocks,t.measures],()=>S());let C=(0,i.computed)(()=>l(m.value)),w=(0,i.computed)(()=>g.value?p(C.value,h.value,g.value):[]),T=(0,i.computed)(()=>{let e=new Map;for(let t of C.value)e.set(t.openerFrom,t.blockId),e.set(t.closerFrom,t.blockId);return e}),E=(0,i.computed)(()=>{let e=new Map;for(let t of C.value)e.set(t.closerFrom,u(t.kind,t.openerExpr));return e}),D=(0,i.computed)(()=>f(C.value,_.value));function O(e){return e===v.value||e===D.value}function k(e){return e.block&&(n.has(e.kind)||r.has(e.kind))}function A(e){return e.block?T.value.get(e.from):void 0}function j(e){return e.block?E.value.get(e.from):void 0}function M(e){let t=A(e),n=t!==void 0&&O(t);return[`folio-template-directive`,`folio-template-directive--${e.kind}`,{"folio-template-directive--block":k(e)},{"folio-template-directive--active":n}]}function N(e){if(!(e instanceof HTMLElement))return null;let t=e.dataset.folioBlockId;return t===void 0?null:Number(t)}function P(e){let t=N(e.target);t!==null&&(v.value=t)}function F(e){let t=N(e.target);if(t===null)return;let n=N(e.relatedTarget);n!==t&&v.value===t&&(v.value=n)}return(0,i.onMounted)(()=>S()),(0,i.onBeforeUnmount)(()=>{b!==null&&(cancelAnimationFrame(b),b=null)}),(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{class:`folio-template-directives-overlay`,"data-folio-template-directives-overlay":``,onPointerover:P,onPointerout:F},[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(w.value,t=>((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:`rail:${t.blockId}`},[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(t.segments,(n,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:`rail:${t.blockId}:${r}`,class:(0,i.normalizeClass)([`folio-template-band-rail`,`folio-template-band-rail--${t.kind}`,{"folio-template-band-rail--active":O(t.blockId)}]),"data-folio-block-id":t.blockId,style:(0,i.normalizeStyle)({position:`absolute`,left:`${t.railX*e.zoom}px`,top:`${n.top*e.zoom}px`,width:`${ft*e.zoom}px`,height:`${Math.max(0,n.bottom-n.top)*e.zoom}px`})},null,14,ut))),128))],64))),128)),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(h.value,(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:`d:${n}`},[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(t.rects,(r,a)=>((0,i.openBlock)(),(0,i.createElementBlock)(`span`,{key:`d:${n}:${a}`,class:(0,i.normalizeClass)(M(t.range)),"data-folio-block-id":A(t.range),title:j(t.range),style:(0,i.normalizeStyle)({position:`absolute`,left:`${(r.x-1)*e.zoom}px`,top:`${(r.y+1)*e.zoom}px`,width:`${(r.width+2)*e.zoom}px`,height:`${Math.max(0,r.height-2)*e.zoom}px`})},null,14,dt))),128))],64))),128))],32))}}),vt=e.u(_t,[[`__scopeId`,`data-v-142d2ac6`]]),yt=[`href`,`title`],bt=[`title`],xt=[`title`],St=[`title`],Ct={class:`docx-hyperlink-popup__edit-row`},wt=[`placeholder`,`onKeydown`],Tt={class:`docx-hyperlink-popup__edit-row`},Et=[`onKeydown`],Dt=[`disabled`],Ot=(0,i.defineComponent)({__name:`HyperlinkPopup`,props:{data:{},readOnly:{type:Boolean}},emits:[`navigate`,`copy`,`edit`,`remove`,`close`],setup(t,{emit:n}){let{t:r}=e.l(),a=t,o=n,s=(0,i.ref)(!1),c=(0,i.ref)(``),l=(0,i.ref)(``),u=(0,i.ref)(null),d=(0,i.computed)(()=>({left:(a.data?.position.left??0)+`px`,top:(a.data?.position.top??0)+`px`}));(0,i.watch)(()=>a.data?.href,()=>{s.value=!1});let f=null,p=null;function m(){p&&=(clearTimeout(p),null),f&&=(document.removeEventListener(`mousedown`,f),null)}(0,i.watch)(()=>a.data,e=>{m(),e&&(f=e=>{let t=u.value,n=e.target;t&&n instanceof Node&&!t.contains(n)&&o(`close`)},p=setTimeout(()=>{f&&document.addEventListener(`mousedown`,f)},0))},{immediate:!0}),(0,i.onBeforeUnmount)(m);function h(){a.data&&(c.value=a.data.displayText,l.value=a.data.href,s.value=!0)}function g(){l.value.trim()&&(o(`edit`,c.value,l.value),s.value=!1)}function _(){a.data&&(o(`copy`,a.data.href),typeof navigator<`u`&&navigator.clipboard&&navigator.clipboard.writeText(a.data.href).catch(()=>{}))}return(e,n)=>t.data?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,ref_key:`popupRef`,ref:u,class:(0,i.normalizeClass)([`docx-hyperlink-popup`,{"docx-hyperlink-popup--edit":s.value}]),style:(0,i.normalizeStyle)(d.value),onMousedown:n[6]||=(0,i.withModifiers)(()=>{},[`stop`])},[s.value?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createElementVNode)(`div`,Ct,[(0,i.withDirectives)((0,i.createElementVNode)(`input`,{class:`docx-hyperlink-popup__input`,placeholder:(0,i.unref)(r)(`displayText`),"onUpdate:modelValue":n[2]||=e=>c.value=e,onKeydown:[(0,i.withKeys)((0,i.withModifiers)(g,[`prevent`]),[`enter`]),n[3]||=(0,i.withKeys)(t=>e.$emit(`close`),[`esc`])]},null,40,wt),[[i.vModelText,c.value]])]),(0,i.createElementVNode)(`div`,Tt,[(0,i.withDirectives)((0,i.createElementVNode)(`input`,{class:`docx-hyperlink-popup__input`,placeholder:`https://...`,"onUpdate:modelValue":n[4]||=e=>l.value=e,onKeydown:[(0,i.withKeys)((0,i.withModifiers)(g,[`prevent`]),[`enter`]),n[5]||=(0,i.withKeys)(t=>e.$emit(`close`),[`esc`])]},null,40,Et),[[i.vModelText,l.value]]),(0,i.createElementVNode)(`button`,{class:`docx-hyperlink-popup__apply`,disabled:!l.value.trim(),onClick:(0,i.withModifiers)(g,[`prevent`])},(0,i.toDisplayString)((0,i.unref)(r)(`common.apply`)),9,Dt)])],64)):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:0},[n[10]||=(0,i.createStaticVNode)(`<span class="docx-hyperlink-popup__icon" aria-hidden data-v-7f0cecdf><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-7f0cecdf><circle cx="12" cy="12" r="10" data-v-7f0cecdf></circle><path d="M2 12h20" data-v-7f0cecdf></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-7f0cecdf></path></svg></span>`,1),(0,i.createElementVNode)(`a`,{class:`docx-hyperlink-popup__url`,href:t.data.href,title:t.data.href,onClick:n[0]||=(0,i.withModifiers)(n=>e.$emit(`navigate`,t.data.href),[`prevent`])},(0,i.toDisplayString)(t.data.href),9,yt),n[11]||=(0,i.createElementVNode)(`span`,{class:`docx-hyperlink-popup__sep`},null,-1),(0,i.createElementVNode)(`button`,{class:`docx-hyperlink-popup__btn`,title:(0,i.unref)(r)(`copyLink`),onClick:(0,i.withModifiers)(_,[`prevent`])},[...n[7]||=[(0,i.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,i.createElementVNode)(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`,ry:`2`}),(0,i.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,bt),t.readOnly?(0,i.createCommentVNode)(``,!0):((0,i.openBlock)(),(0,i.createElementBlock)(`button`,{key:0,class:`docx-hyperlink-popup__btn`,title:(0,i.unref)(r)(`editLink`),onClick:(0,i.withModifiers)(h,[`prevent`])},[...n[8]||=[(0,i.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,i.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,i.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,xt)),t.readOnly?(0,i.createCommentVNode)(``,!0):((0,i.openBlock)(),(0,i.createElementBlock)(`button`,{key:1,class:`docx-hyperlink-popup__btn`,title:(0,i.unref)(r)(`removeLink`),onClick:n[1]||=(0,i.withModifiers)(t=>e.$emit(`remove`),[`prevent`])},[...n[9]||=[(0,i.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-7f0cecdf><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-7f0cecdf></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-7f0cecdf></path><line x1="8" y1="2" x2="8" y2="5" data-v-7f0cecdf></line><line x1="2" y1="8" x2="5" y2="8" data-v-7f0cecdf></line><line x1="16" y1="19" x2="16" y2="22" data-v-7f0cecdf></line><line x1="19" y1="16" x2="22" y2="16" data-v-7f0cecdf></line></svg>`,1)]],8,St))],64))],38)):(0,i.createCommentVNode)(``,!0)}}),kt=e.u(Ot,[[`__scopeId`,`data-v-7f0cecdf`]]);function At(e,t){let n=Math.max(0,Math.min(t.from,e)),r=Math.max(n,Math.min(t.to,e));return n===r?null:{from:n,to:r}}function jt({docSize:e,capturedRange:t,currentRange:n,savedRange:r}){let i=t.from===t.to?n.from===n.to?r&&r.from!==r.to?r:null:n:t;return i?At(e,i):null}function Mt(e,t,n,r){let i=e.state.schema.marks.comment,a=At(e.state.doc.content.size,t);if(!i||!a)return!1;let o=e.state.tr;return r?.replacePending&&(o=o.removeMark(a.from,a.to,i.create({commentId:C.PENDING_COMMENT_ID}))),o=o.addMark(a.from,a.to,i.create({commentId:n})),r?.selectEnd&&(o=o.setSelection(m.Selection.near(o.doc.resolve(a.to),-1))),e.dispatch(o),!0}function Nt(e,t){let n=e.state.schema.marks.comment,r=At(e.state.doc.content.size,t);!n||!r||e.dispatch(e.state.tr.removeMark(r.from,r.to,n.create({commentId:C.PENDING_COMMENT_ID})))}var Pt=408,Ft=12;function It(e){let t=(0,i.ref)(!1),n=(0,i.ref)(null),r=(0,i.ref)(null),a=(0,i.ref)(null),o=(0,i.ref)(null);function s(t){let n=e.editorView.value,r=e.pagesContainer.value;if(!n||!r)return null;try{return n.coordsAtPos(t).top-r.getBoundingClientRect().top}catch{return null}}function c(){let n=e.editorView.value,i=e.pagesViewport.value;if(!n||!i||t.value||e.readOnly.value){r.value=null;return}let{from:a,to:s}=n.state.selection;if(a===s){r.value=null;return}o.value={from:a,to:s};let c;try{c=n.coordsAtPos(a)}catch{r.value=null;return}let l=i.getBoundingClientRect(),u=e.pagesContainer.value?.getBoundingClientRect(),d=u?u.right-l.left+Ft:l.width/2+Pt;r.value={top:c.top-l.top,left:Math.max(16,Math.min(d,l.width-16)),from:a,to:s}}function l(){let i=e.editorView.value;if(!i)return;let c=r.value,l=i.state.selection,u=jt({docSize:i.state.doc.content.size,capturedRange:c?{from:c.from,to:c.to}:{from:0,to:0},currentRange:{from:l.from,to:l.to},savedRange:o.value});if(!u){r.value=null;return}if(!Mt(i,u,C.PENDING_COMMENT_ID,{selectEnd:!0})){r.value=null,a.value=null;return}a.value=u,n.value=s(u.from)??c?.top??null,e.showSidebar.value=!0,t.value=!0,r.value=null}function u(){t.value=!1,a.value=null,n.value=null}function d(t){let n=e.editorView.value,r=a.value;if(!n||!r)return!1;let i=e.createComment(t);return Mt(n,r,i.id,{replacePending:!0})?(e.pushComment(i),e.reLayout(),e.setActiveSidebarItem(`comment-${i.id}`),u(),!0):!1}function f(){let t=e.editorView.value;t&&a.value&&Nt(t,a.value),u()}return{isAddingComment:t,addCommentYPosition:n,floatingCommentButton:r,updateFloatingButton:c,startAddComment:l,handleAddComment:d,handleCancelAddComment:f}}function Lt(e){let t=(0,C.createCommentIdAllocator)(),n=(0,i.ref)([]),r=(0,i.ref)(!1);function a(){r.value=!0}function o(){r.value=!1}let s=(0,i.computed)(()=>e.commentsProp()!==void 0),c=(0,i.computed)(()=>s.value?e.commentsProp()??[]:n.value);function l(t){s.value||(n.value=t),e.onCommentsChange(t)}function u(e){a(),l([...c.value,e])}function d(n,r){return(0,C.seedCommentAllocator)(t,c.value,e.editorView.value),(0,w.createComment)(t,n,e.author(),r)}function f(){if(o(),s.value)return;let n=e.getDocument()?.package.document.comments;(0,C.seedCommentAllocator)(t,n,e.editorView.value),l(n&&n.length>0?n:[])}function p(e,t){u(d(t,e))}function m(e){a(),l(c.value.map(t=>t.id===e?{...t,done:!0}:t))}function h(e){a(),l(c.value.map(t=>t.id===e?{...t,done:!1}:t))}function g(e){a(),l(c.value.filter(t=>t.id!==e&&t.parentId!==e))}function _(e,t){u(d(t,e))}function v(t,n){let r=e.editorView.value;if(!r)return;let i=(0,T.findChangeRange)(r,t);i&&(n?E.acceptChange:E.rejectChange)(i.from,i.to)(r.state,r.dispatch)}function y(e){v(e,!0)}function b(e){v(e,!1)}function x(t,n){let r=e.editorView.value;r&&(0,E.acceptChange)(t,n)(r.state,r.dispatch)}function S(t,n){let r=e.editorView.value;r&&(0,E.rejectChange)(t,n)(r.state,r.dispatch)}return{comments:c,commentsDirty:(0,i.computed)(()=>r.value),clearCommentsDirty:o,createComment:d,pushComment:u,setComments:l,seedFromDocument:f,handleReply:p,handleResolve:m,handleUnresolve:h,handleDelete:g,handleTrackedChangeReply:_,handleAcceptChangeById:y,handleRejectChangeById:b,handleAcceptChange:x,handleRejectChange:S}}function Rt(e,t,n){let r=(0,D.makeRevisionInfo)(e.state),i=e.state.schema.marks.insertion;if(!r||!i)return;let a=t.selection.from,o=a-n.nodeSize;o<0||t.addMark(o,a,i.create({revisionId:r.id,author:r.author,date:r.date}))}function zt(e,t){let n=e.state.doc.nodeAt(t);if(!n||n.type.name!==`image`)return;let r=n.attrs.src;if(typeof r!=`string`)return;let i=`<img src="${r}" data-pm-image="true" data-width="${String(n.attrs.width??``)}" data-height="${String(n.attrs.height??``)}" data-wrap-type="${String(n.attrs.wrapType??``)}" data-display-mode="${String(n.attrs.displayMode??``)}" data-rid="${String(n.attrs.rId??``)}" />`,a=new ClipboardItem({"text/html":new Blob([i],{type:`text/html`}),"text/plain":new Blob([`[image]`],{type:`text/plain`})});navigator.clipboard.write([a]).catch(()=>{let e=document.createElement(`textarea`);e.value=i,document.body.appendChild(e),e.select(),document.execCommand(`copy`),document.body.removeChild(e)})}function Bt(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{typeof r.result==`string`?t(r.result):n(Error(`Failed to read blob as data URL`))},r.onerror=()=>n(r.error??Error(`Failed to read blob`)),r.readAsDataURL(e)})}function Vt(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})}function Ht(e,t,n,r){let i=e.state.schema.nodes.image;if(!i)return;let a=i.create({src:t,width:n,height:r,rId:`rId_img_${Date.now()}`,wrapType:`inline`,displayMode:`inline`}),o=e.state.tr.replaceSelectionWith(a);Rt(e,o,a),e.dispatch(o)}async function Ut(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 Bt(await n.getType(t)),i=await Vt(r),a=i.width,o=i.height;a>612&&(o=Math.round(612/a*o),a=612),Ht(e,r,a,o);return}if(n.types.includes(`text/html`)){let t=await(await n.getType(`text/html`)).text(),r=/<img[^>]+src="(?<src>[^"]+)"[^>]*>/iu.exec(t)?.groups?.src;if(r){let n=/data-width="(?<w>\d+)"/u.exec(t)?.groups?.w,i=/data-height="(?<h>\d+)"/u.exec(t)?.groups?.h,a=n?Number(n):200,o=i?Number(i):200;Ht(e,r,a||200,o||200);return}}if(n.types.includes(`text/plain`)){let t=await(await n.getType(`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 Wt(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 Bt(i),o=await Vt(a),s=n.attrs.width,c=n.attrs.height,l=typeof s==`number`?s:o.width,u=typeof c==`number`?c:o.height,d=Math.min(l/o.width,u/o.height),f=Math.round(o.width*d),p=Math.round(o.height*d);try{let r=e.state.tr.setNodeMarkup(t,void 0,{...n.attrs,src:a,width:f,height:p,rId:`rId_img_${Date.now()}`});e.dispatch(r)}catch{}},r.click()}var Gt=new Set([`inline`,`square`,`tight`,`through`,`topAndBottom`,`behind`,`inFront`]);function Kt(e){return typeof e==`string`&&Gt.has(e)}function qt(e){return Kt(e)?e:`inline`}function Jt(e){return e===`left`||e===`right`||e===`none`?e:null}function Yt(t){let{t:n}=e.l(),r=(0,i.ref)({isOpen:!1,position:{x:0,y:0},hasSelection:!1,inTable:!1,onImage:!1,canMergeCells:!1,canSplitCell:!1}),a=(0,i.ref)(null),o=(0,i.ref)({from:0,to:0}),s=(0,i.computed)(()=>(t.customContextMenuItems?.()??[]).filter(e=>!e.requiresSelection||r.value.hasSelection)),c=(0,i.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 l(e,t){t(e.state,t=>e.dispatch(t),e)}function u(e,n,r,i,a){let o=i===`inline`?(0,g.captureInlinePositionEmu)(e,t.zoom.value):void 0;return{open:!0,position:r,pmPos:n,currentWrapType:i,currentCssFloat:a,...o!==void 0&&{inlinePositionEmu:o}}}function d(e){let n=t.editorView.value;if(!n)return;let i=(0,g.findImageElement)(e.target);if(i){let o=Number(i.dataset.pmStart);if(!Number.isNaN(o)){try{let e=m.NodeSelection.create(n.state.doc,o);n.dispatch(n.state.tr.setSelection(e))}catch{}t.selectedImage.value={element:i,pmPos:o,width:i.offsetWidth,height:i.offsetHeight},t.clearOverlay();let s=n.state.doc.nodeAt(o);if(s&&s.type.name===`image`){a.value=u(i,o,{x:e.clientX,y:e.clientY},qt(s.attrs.wrapType),Jt(s.attrs.cssFloat)),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,ee.getTableContext)(n.state),{empty:c,from:l,to:d}=n.state.selection;o.value={from:l,to:d},a.value&&=null,r.value={isOpen:!0,position:{x:e.clientX,y:e.clientY},hasSelection:!c,inTable:s.isInTable,onImage:!!i,canMergeCells:!!s.hasMultiCellSelection,canSplitCell:!!s.canSplitCell}}function f(e){let n=t.editorView.value,i=t.selectedImage.value;if(!n||!i)return;let o=n.state.doc.nodeAt(i.pmPos);!o||o.type.name!==`image`||(a.value=u(i.element,i.pmPos,{x:e.clientX,y:e.clientY},qt(o.attrs.wrapType),Jt(o.attrs.cssFloat)),r.value.isOpen=!1)}function p(e){let n=t.editorView.value,r=a.value;if(!n||!r)return;let i=r.inlinePositionEmu&&e!==`inline`?{initialPositionEmu:r.inlinePositionEmu}:void 0,o=t.getCommands().setImageWrapType;o&&(l(n,o(r.pmPos,e,i)),n.focus())}function h(e){let n=t.editorView.value;if(!n)return;let r=t.getCommands();if(e.startsWith(`custom:`)){let r=o.value,i=r.from===r.to?{from:n.state.selection.from,to:n.state.selection.to}:r;t.onCustomContextAction?.(e.slice(7),i),n.focus();return}switch(e){case`cut`:if(t.selectedImage.value){let e=t.selectedImage.value.pmPos;zt(n,e);let r=n.state.doc.nodeAt(e);r&&(n.dispatch(n.state.tr.delete(e,e+r.nodeSize)),t.selectedImage.value=null)}else n.focus(),document.execCommand(`cut`);break;case`copy`:t.selectedImage.value?zt(n,t.selectedImage.value.pmPos):(n.focus(),document.execCommand(`copy`));break;case`paste`:Ut(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=m.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&&Wt(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`:case`selectTable`:case`deleteTable`:{let t=r[e];t&&l(n,t());break}}n.focus()}return{contextMenu:r,imageContextMenu:a,imageContextMenuTextActions:c,customTextMenuItems:s,handleContextMenu:d,handleSelectedImageContextMenu:f,handleImageWrapSelect:p,handleContextMenuAction:h}}function Xt(e){async function t(t){e.sidebarAutoOpenedRef.value=!1,await e.loadDocumentBuffer(t)}function n(t){e.sidebarAutoOpenedRef.value=!1,e.loadDocument(t)}(0,i.watch)(e.documentBuffer,e=>{e&&t(e)}),(0,i.watch)(e.document,e=>{e&&n(e)}),(0,i.onMounted)(async()=>{await(0,i.nextTick)();let r=e.documentBuffer(),a=e.document();r?await t(r):a&&n(a)})}var Zt=({blockId:e,doc:t,snapshot:n})=>{let r=(0,L.getFolioParaIdFromBlockId)(e);if(r!==null){let e=(0,I.findParagraphByParaId)(t,r);if(e!==null)return{from:e.from,to:e.to}}let i=n??(0,F.createFolioAIEditSnapshot)(t),a=i.anchors[e]??Qt(e,i);return a?$t(t.content.size,a):null},Qt=(e,t)=>{let n=(0,L.getSequentialFolioBlockIdIndex)(e);if(n===null)return;let r=t.blocks.at(n-1);return r?t.anchors[r.id]:void 0};function $t(e,t){return{from:Math.min(Math.max(t.from,0),e),to:Math.min(Math.max(t.to,0),e)}}function en(e){function t(){e.onPrint?.(),window.print()}async function n(t){let n=await e.save(t);if(!n)return null;let r=await n.arrayBuffer();return e.clearCommentsDirty(),e.onSave?.(r),r}function r(t,n){let r=e.pagesRef.value;if(!r)return!1;let i=(0,M.findParagraphFragmentsByParaId)(r,t),a=i.at(0);return a?(a.scrollIntoView({block:`center`,behavior:`smooth`}),n?.highlight&&(0,M.flashParagraphElements)(i,n.highlight),!0):!1}function i(){return e.zoom.value}function a(){return e.layout.value?.pages.length??0}function o(){let t=e.layout.value,n=e.editorView.value;if(!t||!n)return 0;let r=(0,j.findPageIndexContainingPmPos)(t,n.state.selection.from);return r==null?0:r+1}function s(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`})}return{exposed:{getDocument:e.getDocument,hasPendingChanges:()=>e.editorView.value?e.isDirty.value||e.commentsDirty.value:!1,getEditorRef:()=>null,getEditor:()=>e.editor,save:n,setZoom:e.setZoom,getZoom:i,focus:e.focus,getCurrentPage:o,getTotalPages:a,scrollToPage:s,scrollToParaId:r,openPrintPreview:()=>t(),print:t,loadDocument:e.loadDocument,loadDocumentBuffer:e.loadDocumentBuffer,ensureEditorView:()=>e.editor.ensureView(),createAIEditSnapshot:()=>{let t=e.editorView.value;return t?(0,A.createFolioAIEditSnapshot)(t.state.doc):null},applyAIEditOperations:({snapshot:t,operations:n,mode:r=`tracked-changes`,author:i=e.author()})=>{let a=e.editorView.value;return a?(0,A.applyFolioAIEditOperations)({view:a,snapshot:t,operations:n,mode:r,author:i,createCommentId:e.createAIEditComment}):{applied:[],skipped:n.map(e=>({id:e.id,reason:`unsupportedBlock`}))}},acceptAIEditOperation:t=>{let n=e.editorView.value;return n?(0,E.acceptAIEditRevision)(t)(n.state,n.dispatch):!1},rejectAIEditOperation:t=>{let n=e.editorView.value;return n?(0,E.rejectAIEditRevision)(t)(n.state,n.dispatch):!1},undo:()=>e.editor.undo(),redo:()=>e.editor.redo(),scrollToAIEditOperation:t=>{let n=e.editorView.value;if(!n)return!1;let r=(0,E.findAIEditRevisionRange)(n.state,t);if(!r)return!1;let{from:i,to:a}=$t(n.state.doc.content.size,r),o=n.state.doc.resolve(i),s=n.state.doc.resolve(a);return n.dispatch(n.state.tr.setSelection(m.TextSelection.between(o,s))),requestAnimationFrame(()=>e.scrollVisiblePositionIntoView(i)),!0},scrollToBlock:(t,n)=>{let r=e.editorView.value;if(!r)return!1;let i=Zt({blockId:t,doc:r.state.doc,snapshot:n});if(i===null)return!1;let{from:a,to:o}=i,s=r.state.doc.resolve(a),c=r.state.doc.resolve(o);return r.dispatch(r.state.tr.setSelection(m.TextSelection.between(s,c))),requestAnimationFrame(()=>e.scrollVisiblePositionIntoView(a)),!0},getContentControls:(t={})=>{let n=e.editorView.value;return n?(0,N.findBlockSdtMatches)(n.state.doc,t).map(e=>({properties:(0,N.blockSdtAttrsToSdtProperties)(e.node),path:e.path,pmPos:e.pos})):[]},scrollToContentControl:t=>{let n=e.editorView.value;if(!n)return!1;let r=(0,N.findBlockSdtMatch)(n.state.doc,t);if(!r)return!1;let i=r.pos+1,a=n.state.doc.resolve(i);return n.dispatch(n.state.tr.setSelection(m.TextSelection.near(a))),requestAnimationFrame(()=>e.scrollVisiblePositionIntoView(i)),!0},setContentControlContent:(t,n,r={})=>{let i=e.editorView.value;if(!i)return!1;let a=typeof n==`string`?(0,N.setContentControlContentTr)(i.state,t,n,r):(0,P.setContentControlContentBlocksTr)(i.state,t,n,r);return a?(i.dispatch(a),!0):!1},setContentControlValue:(t,n,r={})=>{let i=e.editorView.value;if(!i)return!1;let a=(0,N.setContentControlValueTr)(i.state,t,n,r);return a?(i.dispatch(a),!0):!1},removeContentControl:(t,n={})=>{let r=e.editorView.value;if(!r)return!1;let i=(0,N.removeContentControlTr)(r.state,t,n);return i?(r.dispatch(i),!0):!1}}}}function tn(e){let t=()=>e.activeView?.value??e.editorView.value;function n(){let e=t();e&&((0,S.clearFormatting)(e.state,e.dispatch,e),e.focus())}function r(n){let r=t();if(!r)return;let i=e.getDocument(),o=i?.package?.styles;if(o){let e=(0,a.createStyleResolver)(o).resolveParagraphStyle(n),t={numbering:i?.package?.numbering?(0,z.getCachedNumberingMap)(i.package.numbering):null};e.paragraphFormatting&&(t.paragraphFormatting=e.paragraphFormatting),e.runFormatting&&(t.runFormatting=e.runFormatting),(0,R.applyStyle)(n,t)(r.state,e=>r.dispatch(e))}else (0,R.applyStyle)(n)(r.state,e=>r.dispatch(e));r.focus()}function i(){let t=e.editorView.value;t&&((0,te.insertPageBreak)(t.state,e=>t.dispatch(e),t),t.focus())}function o(){let t=e.editorView.value;t&&((0,ne.insertSectionBreakNextPage)(t.state,e=>t.dispatch(e),t),t.focus())}function s(){let t=e.editorView.value;t&&((0,ne.insertSectionBreakContinuous)(t.state,e=>t.dispatch(e),t),t.focus())}function c(e){let n=t();if(!n)return;let{from:r}=n.state.selection,i=n.state.tr.insertText(e,r);n.dispatch(i.scrollIntoView()),n.focus()}return{handleClearFormatting:n,handleApplyStyle:r,handleInsertPageBreak:i,handleInsertSectionBreakNextPage:o,handleInsertSectionBreakContinuous:s,handleInsertSymbol:c}}function nn(e){let t=(0,i.ref)(null);function n(e,t){t(e.state,t=>e.dispatch(t),e)}function r(t){let r=e.editorView.value;if(!r)return;let i=e.getCommands(),{empty:a}=r.state.selection,o=t.bookmark?`#${t.bookmark}`:t.url;if(o){if(a&&t.displayText){let e=i.insertHyperlink;e&&n(r,e(t.displayText,o,t.tooltip||void 0))}else{let e=i.setHyperlink;e&&n(r,e(o,t.tooltip||void 0))}r.focus()}}function a(){let t=e.editorView.value;if(!t)return;let r=e.getCommands().removeHyperlink;r&&n(t,r()),t.focus()}function o(e){window.open(e,`_blank`,`noopener,noreferrer`),t.value=null}function s(n,r){let i=e.editorView.value;i&&((0,re.editHyperlinkAtCursor)(i,{displayText:n,href:r}),t.value=null,i.focus())}function c(){let n=e.editorView.value;n&&((0,re.removeHyperlinkAtCursor)(n,{popupHref:t.value?.href}),t.value=null,n.focus())}return{hyperlinkPopupData:t,handleHyperlinkSubmit:r,handleHyperlinkRemove:a,handleHyperlinkPopupNavigate:o,handleHyperlinkPopupEdit:s,handleHyperlinkPopupRemove:c}}function rn(e){let t=(0,i.shallowRef)(null),n=(0,i.ref)(!1),r=(0,i.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);if(!i||i.type.name!==`image`)return null;let a=i.attrs.wrapType,o=i.attrs.displayMode,s=i.attrs.cssFloat;return{wrapType:typeof a==`string`?a:`inline`,displayMode:typeof o==`string`?o:`inline`,cssFloat:typeof s==`string`?s:null}});function a(e,t){t(e.state,t=>e.dispatch(t),e)}function o(n){let r=e.editorView.value,i=t.value;if(!r||!i)return;let o=(0,g.toolbarValueToLayoutTarget)(n);if(!o)return;let s=r.state.doc.nodeAt(i.pmPos)?.attrs.wrapType===`inline`&&o!==`inline`?{initialPositionEmu:(0,g.captureInlinePositionEmu)(i.element,e.zoom.value)}:void 0,c=e.getCommands().setImageWrapType;c&&(a(r,c(i.pmPos,o,s)),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=typeof o==`string`?o:``,c=/rotate\((?<deg>-?\d+(?:\.\d+)?)deg\)/u.exec(s)?.groups?.deg,l=c?Number.parseFloat(c):0,u=/scaleX\(-1\)/u.test(s),d=/scaleY\(-1\)/u.test(s);n===`rotateCW`?l=(l+90)%360:n===`rotateCCW`?l=(l-90+360)%360:n===`flipH`?u=!u:n===`flipV`&&(d=!d);let f=[];l!==0&&f.push(`rotate(${l}deg)`),u&&f.push(`scaleX(-1)`),d&&f.push(`scaleY(-1)`);let p=f.length>0?f.join(` `):null,m=r.state.tr.setNodeMarkup(i.pmPos,void 0,{...a.attrs,transform:p});r.dispatch(m.scrollIntoView()),r.focus()}return{selectedImage:t,imageInteracting:n,imageToolbarContext:r,handleToolbarImageWrap:o,handleImageTransform:s}}function an(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.onChange(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,R.setIndentLeft)(t)(n.state,n.dispatch)}function c(t){let n=e.editorView.value;n&&(0,R.setIndentRight)(t)(n.state,n.dispatch)}function l(t){let n=e.editorView.value;n&&(t<0?(0,R.setIndentFirstLine)(-t,!0)(n.state,n.dispatch):(0,R.setIndentFirstLine)(t,!1)(n.state,n.dispatch))}function u(t){let n=e.editorView.value;n&&(0,R.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}}var on=/[\p{L}\p{N}\p{M}_''-]/u,sn=/\s/;function cn(e){return!e||e.length===0?!1:on.test(e)}function ln(e){return!e||e.length===0?!1:sn.test(e)}function un(e,t){if(!e||e.length===0)return[0,0];t=Math.max(0,Math.min(t,e.length-1));let n=e[t];if(ln(n)){let n=t,r=t;for(;n>0&&ln(e[n-1]);)n--;for(;r<e.length&&ln(e[r]);)r++;return[n,r]}if(cn(n)){let n=t,r=t;for(;n>0&&cn(e[n-1]);)n--;for(;r<e.length&&cn(e[r]);)r++;return[n,r]}return[t,t+1]}function dn(e,t,n){let r=n?Array.from(e.querySelectorAll(`.layout-page-${n} span[data-pm-start][data-pm-end]`)):(0,b.findBodyPmSpans)(e);for(let e of r){let n=Number(e.dataset.pmStart),r=Number(e.dataset.pmEnd);if(!Number.isNaN(n)&&!Number.isNaN(r)&&t>=n&&t<=r)return e}return null}function fn(e,t,n){if(!e||!t)return;let r=(0,b.findBodyPmAnchor)(e,n);if(!r)for(let t of(0,b.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)return;let i=t.getBoundingClientRect(),a=r.getBoundingClientRect();t.scrollTo({top:a.top-i.top+t.scrollTop-48,behavior:`smooth`})}function pn(e,t,n,r){if(!e||!t)return null;let i=(0,v.clickToPositionDom)(e,n,r,1);return i===null||i<0?null:Math.min(i,t.state.doc.content.size)}function mn(e,t,n,r){if(!e)return;let i=dn(e,t,r);if(!i)return;let a=i.textContent??``,o=Number(i.dataset.pmStart)||0,[s,c]=un(a,t-o),l=o+s,u=o+c;l<u&&n(l,u)}function hn(e,t,n,r){if(!e)return;let i=dn(e,t,r);if(!i)return;let a=i.closest(`.layout-paragraph`);if(!a)return;let o=Number(a.dataset.pmStart),s=Number(a.dataset.pmEnd);!Number.isNaN(o)&&!Number.isNaN(s)&&o<s&&n(o,s)}var gn=500;function _n(e){let t=(0,i.ref)(null),n=null;function a(){n!==null&&(clearTimeout(n),n=null)}let o=(0,i.shallowRef)(null),s=0,c=null,l=0,u=!1,d=null,f=(0,ie.createCellDragTracker)(),p=r.i({pagesContainer:e.pagesRef,onScrollExtendSelection:(e,t)=>{if(!u||d===null)return;let n=v(e,t);n!==null&&n!==d&&b(d,n)}}),h=(0,i.ref)({currentPage:1,totalPages:1,visible:!1}),_=null;function v(t,n){return pn(e.pagesRef.value,e.editorView.value,t,n)}function y(){let t=o.value;if(t?.headerFooter&&e.getHfPmView){let n=e.getHfPmView(t.headerFooter);if(n)return n}return e.editorView.value}function b(e,t){let n=y();if(n)try{let r=n.state.doc.resolve(e),i=t===void 0?r:n.state.doc.resolve(t),a=m.TextSelection.between(r,i);n.dispatch(n.state.tr.setSelection(a))}catch{}}function x(t){fn(e.pagesRef.value,e.pagesViewportRef.value,t)}function S(t){mn(e.pagesRef.value,t,b,o.value?.position)}function ee(t){hn(e.pagesRef.value,t,b,o.value?.position)}function C(t){let n=e.editorView.value;if(!n)return;let r=null;if(n.state.doc.descendants((e,n)=>{if(r!==null)return!1;let i=e.attrs.bookmarks;if(Array.isArray(i)){let e=i;for(let i of e)if(typeof i==`object`&&i&&`name`in i&&i.name===t)return r=n,!1}return!0}),r!==null){x(r);try{b(Math.min(r+1,n.state.doc.content.size))}catch{b(r)}}}function w(r){if(e.readOnly.value||u)return;let i=e.pagesRef.value;if(!i)return;let s=e.pagesViewportRef.value;if(!s||!(r.target instanceof HTMLElement))return;let c=(0,B.detectTableInsertHover)({mouseX:r.clientX,mouseY:r.clientY,pagesContainer:i,target:r.target,hfEditMode:o.value?.position??null});if(!c){n===null&&(n=setTimeout(()=>{t.value=null,n=null},B.TABLE_INSERT_HIDE_DELAY_MS));return}let l=e.zoom.value||1,d=s.getBoundingClientRect();t.value={type:c.type,x:(c.clientX-d.left)/l,y:(c.clientY-d.top)/l,cellPmPos:c.cellPmPos},a()}function T(n){n.preventDefault(),n.stopPropagation();let r=t.value,i=e.editorView.value;if(!r||!i)return;let a=i.state.tr.setSelection(m.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 E(t){let n=t.target,r=n instanceof HTMLElement?n.closest(`a[href]`):null;if(!r)return;t.preventDefault();let i=r.getAttribute(`href`)??``;if(i.startsWith(`#`)){let e=i.slice(1);e&&C(e);return}let a=y();if(a&&a.state.selection.from!==a.state.selection.to)return;let o=e.pagesViewportRef.value;if(!o)return;let s=o.getBoundingClientRect(),c=r.getBoundingClientRect(),l=r.getAttribute(`title`);e.hyperlinkPopupData.value={href:i,displayText:r.textContent??``,position:{top:c.bottom-s.top+o.scrollTop+4,left:c.left-s.left+o.scrollLeft},...l?{tooltip:l}:{}}}function D(t){if(!(t.target instanceof HTMLElement))return;let n=t.target,r=n.closest(`.layout-page-header`),i=n.closest(`.layout-page-footer`),a=r??i;if(!a)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,f=(u?.find(e=>e.type==="default")??u?.find(e=>e.type===`first`)??null)?.rId??null,p=f?d?.get(f)??null:null;if(!p){if(!l)return;let t=`default`,n=`rId_new_${s}_${t}`,r={type:s,hdrFtrType:t,content:[{type:`paragraph`,content:[]}]},i=s===`header`?`headers`:`footers`,a=s===`header`?`headerReferences`:`footerReferences`,o=new Map(c.package[i]??[]);o.set(n,r);let u=c.package.relationships,d=new Set;for(let e of u?.values()??[])e.target&&d.add(e.target);let m=1;for(;d.has(`${s}${m}.xml`);)m++;let h=s===`header`?`http://schemas.openxmlformats.org/officeDocument/2006/relationships/header`:`http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer`,g=new Map(u);g.set(n,{id:n,type:h,target:`${s}${m}.xml`});let _={type:t,rId:n},v={...l,[a]:[...l[a]??[],_]},y=c.package.document,b=y?.sections?.map((e,t)=>t===0?{...e,properties:v}:e),x=y?.finalSectionProperties===l?v:y?.finalSectionProperties,S={...c,package:{...c.package,[i]:o,relationships:g,document:y&&{...y,...b!==void 0&&{sections:b},...x!==void 0&&{finalSectionProperties:x}}}};f=n,p=r,e.setDocument?.(S),e.syncHfPMs?.(),e.reLayout(),e.emit(`change`,S)}let m=e.pagesViewportRef.value;if(!m)return;let h=a.getBoundingClientRect(),g=m.getBoundingClientRect(),_=e.zoom.value||1;o.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 O(t){let n=e.getDocument(),r=o.value;if(!n?.package||!r)return;let i=r.position===`header`?n.package.headers:n.package.footers;if(!i||!r.rId)return;let a=i.get(r.rId);a&&(a.content=t),e.syncHfPMs?.(),e.reLayout(),e.emit(`change`,n)}function k(){let t=e.getDocument(),n=o.value;if(!t?.package||!n||!n.rId){o.value=null;return}let r=n.position===`header`?`headers`:`footers`,i=n.position===`header`?`headerReferences`:`footerReferences`,a=n.rId,s=new Map(t.package[r]??[]);s.delete(a);let c=e=>({...e,[i]:(e[i]??[]).filter(e=>e.rId!==a)}),l=e=>`sectionProperties`in e&&e.sectionProperties?{...e,sectionProperties:c(e.sectionProperties)}:e,u=t.package.document,d=u?.sections?.map(e=>({...e,properties:c(e.properties)})),f=u?.finalSectionProperties?c(u.finalSectionProperties):void 0,p={...t,package:{...t.package,[r]:s,document:u&&{...u,content:u.content.map(l),...d!==void 0&&{sections:d},...f!==void 0&&{finalSectionProperties:f}}}};o.value=null,e.setDocument?.(p),e.syncHfPMs?.(),e.reLayout(),e.emit(`change`,p)}function A(t){if(t.button!==0||e.imageInteracting.value)return;let n=e.editorView.value;if(!n)return;let r=t.target,i=r instanceof HTMLElement?r:null;o.value&&i&&(i.closest(`.layout-page-header`)||i.closest(`.layout-page-footer`)||i.closest(`.hf-editor`)||(o.value=null,n.focus()));let a=y()??n;if(!e.readOnly.value&&e.tableResize.tryStartResize(t,a))return;let p=(0,g.findImageElement)(r);if(p){t.preventDefault(),t.stopPropagation();let n=Number(p.dataset.pmStart);if(!Number.isNaN(n)){try{a.dispatch(a.state.tr.setSelection(m.NodeSelection.create(a.state.doc,n)))}catch{}e.selectedImage.value={element:p,pmPos:n,width:p.offsetWidth,height:p.offsetHeight},e.clearOverlay()}a.focus();return}e.selectedImage.value=null,t.preventDefault();let h=v(t.clientX,t.clientY);if(h===null){a.focus();return}let _=Date.now();if(_-s<gn&&c===h?l++:l=1,s=_,c=h,l===2)S(h);else if(l>=3)ee(h),l=0;else if(t.shiftKey){let{from:e}=a.state.selection;b(e,h)}else b(h),d=h,u=!0,f.begin((0,ie.findCellPosFromPmPos)(a,h));a.focus()}function j(e){if(!u||d===null)return;let t=v(e.clientX,e.clientY);if(t!==null){let n=y();if(n&&f.update(n,t,e.clientX)){p.updateMousePosition(e.clientX,e.clientY);return}t!==d&&b(d,t)}p.updateMousePosition(e.clientX,e.clientY)}function M(){u=!1,f.end(),p.stopAutoScroll()}function N(){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];if(!t)continue;let r=o+t.size.h;if(a<r){s=e+1;break}o=r+24,s=e+2}s=Math.min(s,i),h.value={currentPage:s,totalPages:i,visible:!0},_&&clearTimeout(_),_=setTimeout(()=>{h.value={...h.value,visible:!1}},600)}return(0,i.onMounted)(()=>{window.addEventListener(`mousemove`,j),window.addEventListener(`mouseup`,M),e.pagesViewportRef.value?.addEventListener(`scroll`,N,{passive:!0})}),(0,i.onBeforeUnmount)(()=>{a(),window.removeEventListener(`mousemove`,j),window.removeEventListener(`mouseup`,M),e.pagesViewportRef.value?.removeEventListener(`scroll`,N),_&&clearTimeout(_)}),{tableInsertButton:t,hfEdit:o,scrollPageInfo:h,resolvePos:v,setPmSelection:b,scrollVisiblePositionIntoView:x,navigateToBookmark:C,handlePagesMouseDown:A,handlePagesMouseMove:w,handlePagesClick:E,handlePagesDoubleClick:D,handleTableInsertClick:T,clearTableInsertTimer:a,handleHfSave:O,handleHfRemove:k}}function vn(e){return typeof e==`string`&&e.trim().length>0}function yn(e){return typeof e!=`object`||!e?!1:vn(Reflect.get(e,`family`))&&vn(Reflect.get(e,`src`))}function bn(e){if(!e)return[];let t=[];for(let n of e){if(!yn(n))continue;let e={display:`swap`};(typeof n.weight==`number`||typeof n.weight==`string`)&&(e.weight=String(n.weight)),t.push({family:n.family.trim(),source:`url(${JSON.stringify(n.src.trim())})`,descriptors:e})}return t}function xn(){return typeof document>`u`||!(`fonts`in document)?null:document.fonts}async function Sn(e,t,n,r){let i;try{i=new FontFace(t,n,r),e.add(i)}catch{return null}return await i.load().then(()=>!0,()=>!1)?i:(e.delete(i),null)}async function Cn(e){let t=xn();if(!t)return[];let n=bn(e);if(n.length===0)return[];let r=[];return await Promise.all(n.map(async({family:e,source:n,descriptors:i})=>{let a=await Sn(t,e,n,i);a&&r.push(a)})),r}function wn(e){let t=xn();if(t)for(let n of e)t.delete(n)}var Tn={class:`docx-editor-vue__toolbar-shell`},En={key:0,class:`docx-editor-vue__error`},Dn={key:1,class:`docx-editor-vue__loading`},On={key:2,class:`docx-editor-vue__placeholder`},kn={class:`docx-editor-vue__editor-area`},An={key:0,class:`docx-editor-vue__ruler-h`},jn={key:1,class:`docx-editor-vue__ruler-v`},Mn={class:`docx-editor-vue__editor-content-wrapper`,style:{position:`relative`,display:`flex`,flexDirection:`column`,minHeight:`100%`}},Nn={"data-testid":`selection-overlay`,class:`docx-editor-vue__decoration-origin`,"aria-hidden":`true`},Pn=[`aria-label`],Fn=(0,i.defineComponent)({__name:`DocxEditor`,props:{documentBuffer:{default:null},document:{default:null},documentKey:{},onSave:{},author:{default:`User`},onChange:{},onSelectionChange:{},onSelectionTextChange:{},onError:{},onFontsLoaded:{},fontFamilies:{},fonts:{},theme:{},showToolbar:{type:Boolean,default:!0},showZoomControl:{type:Boolean,default:!0},showReviewControls:{type:Boolean,default:!0},showHeaderFooterEditing:{type:Boolean},showMarginGuides:{type:Boolean},marginGuideColor:{},showRuler:{type:Boolean},rulerUnit:{},initialZoom:{default:1},enableWheelZoom:{type:Boolean},readOnly:{type:Boolean,default:!1},autoOpenReviewSidebar:{type:Boolean},components:{},toolbarExtra:{type:[Object,String,Number,Boolean,null,Array]},className:{default:``},style:{},placeholder:{type:[Object,String,Number,Boolean,null,Array]},loadingIndicator:{type:[Object,String,Number,Boolean,null,Array]},preserveDocumentWhileLoading:{type:Boolean},initialScrollTop:{},onScrollTopChange:{},showOutline:{type:Boolean,default:!1},showPrintButton:{type:Boolean},onPrint:{},onInsertImage:{},onInsertTable:{},showTableInsert:{type:Boolean,default:!0},onInsertPageBreak:{},onInsertTOC:{},onCopy:{},onCut:{},onPaste:{},mode:{default:`editing`},onModeChange:{},onReadonlyEditAttempt:{},comments:{},onCommentsChange:{},onCompatibilityChange:{},onEditorViewReady:{},collaboration:{},onAnonymizationMatchesChange:{},onAnonymizationTermClick:{},selectedAnonymizationCanonical:{},anonymizationSelectionSeq:{},showTemplateDirectives:{type:Boolean},onSlashMenuChange:{},onSlashMenuKeyAction:{},customContextMenuItems:{},onCustomContextAction:{},featureFlags:{},onSelectiveSaveTripwire:{}},emits:[`change`,`update:document`,`error`,`ready`,`rename`,`menu-action`,`mode-change`,`comments-change`],setup(n,{expose:d,emit:f}){let p=n,m=f;e.c(),t.S(p.components),Te((0,i.ref)(!1));let h=(0,i.ref)(p.mode),g=(0,i.computed)(()=>p.readOnly||h.value===`viewing`),v=(0,i.computed)(()=>p.showReviewControls),y=(0,i.computed)(()=>(0,_.isTrackChangesMode)(h.value)),b=(0,i.ref)(`all-markup`);function x(){Nt((0,_.toggledTrackChangesMode)(h.value))}function S(e){b.value=e}let ee=(0,i.computed)(()=>b.value===`all-markup`?``:`folio-root--${b.value}`),{t:C}=e.l(),w=({node:e})=>e;w.props=[`node`];let T=(0,i.computed)(()=>p.documentBuffer!=null||p.document!=null),E=(0,i.ref)(!1);(0,i.watch)(T,e=>{e||(E.value=!1)});let D=(0,i.ref)(null),O=(0,i.ref)(null),k=(0,i.ref)(null),A=(0,i.ref)(null),j=(0,i.computed)(()=>p.showRuler??!1),M=(0,i.ref)(0),N=(0,i.ref)(!1),P=(0,i.ref)(!1),F=(0,i.ref)(!1),I=(0,i.ref)(!1),L=(0,i.ref)(!1),R=(0,i.ref)(p.showOutline),z=(0,i.ref)(!1),te=(0,i.ref)(null),ne=(0,i.shallowRef)([]),re=(0,i.shallowRef)([]),{zoom:B,zoomPercent:ie,isMinZoom:ae,isMaxZoom:oe,setZoom:se,zoomIn:ce,zoomOut:V,handleWheel:le,ZOOM_PRESETS:ue}=r.t(p.initialZoom);function de(e){p.enableWheelZoom!==!1&&le(e)}let{editor:H,editorView:U,editorState:W,isReady:G,isDirty:fe,parseError:pe,layout:he,blocks:ge,measures:_e,loadBuffer:ve,loadDocument:ye,save:Se,getDocument:K,getCommands:q,focus:Ce,reLayout:J}=r.a({hiddenContainer:D,pagesContainer:O,readOnly:g,editorMode:h,author:()=>p.author,documentKey:()=>p.documentKey,externalPlugins:[],onAnonymizationMatchesChange:e=>p.onAnonymizationMatchesChange?.(e),showTemplateDirectives:()=>p.showTemplateDirectives,onSlashMenuChange:e=>p.onSlashMenuChange?.(e),onSlashMenuKeyAction:e=>p.onSlashMenuKeyAction?.(e)??!1,onChange:e=>{p.onChange?.(e),m(`change`,e),m(`update:document`,e)},onError:e=>{p.onError?.(e),m(`error`,e)},onSelectionUpdate:e=>{if(p.onSelectionChange?.((0,a.extractSelectionState)(e)),p.onSelectionTextChange){let{from:t,to:n}=e.selection,r=t===n?``:e.doc.textBetween(t,n,` `,` `);p.onSelectionTextChange({from:t,to:n,text:r})}},onEditorViewReady:e=>p.onEditorViewReady?.(e),onReadOnlyEditAttempt:()=>p.onReadonlyEditAttempt?.(),featureFlags:()=>p.featureFlags,onSelectiveSaveTripwire:p.onSelectiveSaveTripwire?e=>p.onSelectiveSaveTripwire?.(e):void 0}),Ee=(0,i.computed)(()=>!G.value&&T.value&&!(p.preserveDocumentWhileLoading===!0&&E.value));function De(){U.value&&((0,c.resetCanvasContext)(),(0,c.clearAllCaches)(),J())}(0,i.watch)(()=>p.fonts,(e,t,n)=>{if(!e||e.length===0)return;let r=!1,i=[];Cn(e).then(e=>{if(r){wn(e);return}i=e,e.length!==0&&De()}),n(()=>{r=!0,i.length!==0&&(wn(i),De())})},{immediate:!0});let{selectedImage:Y,imageInteracting:Oe,imageToolbarContext:ke,handleToolbarImageWrap:Ae,handleImageTransform:je}=rn({editorView:U,zoom:B,stateTick:M,getCommands:q}),{hyperlinkPopupData:Me,handleHyperlinkSubmit:Ne,handleHyperlinkRemove:Pe,handleHyperlinkPopupNavigate:Fe,handleHyperlinkPopupEdit:Ie,handleHyperlinkPopupRemove:Le}=nn({editorView:U,getCommands:q}),Re=r.r(),{tableInsertButton:X,scrollPageInfo:Z,resolvePos:ze,setPmSelection:Be,scrollVisiblePositionIntoView:Ve,handlePagesMouseDown:He,handlePagesMouseMove:Ue,handlePagesClick:We,handleTableInsertClick:Ge}=_n({editorView:U,pagesRef:O,pagesViewportRef:k,selectedImage:Y,imageInteracting:Oe,hyperlinkPopupData:Me,readOnly:g,zoom:B,layout:he,tableResize:{tryStartResize:Re.tryStartResize,isResizing:(0,i.computed)(()=>Re.isResizing())},getCommands:q,getDocument:K,reLayout:J,emit:()=>{},clearOverlay:()=>{}}),{contextMenu:Ke,imageContextMenu:qe,imageContextMenuTextActions:Je,customTextMenuItems:Ye,handleContextMenu:Ze,handleSelectedImageContextMenu:Qe,handleImageWrapSelect:$e,handleContextMenuAction:et}=Yt({editorView:U,selectedImage:Y,zoom:B,showImageProperties:I,getCommands:q,clearOverlay:()=>{},setPmSelection:Be,resolvePos:ze,customContextMenuItems:()=>g.value?void 0:p.customContextMenuItems,onCustomContextAction:(e,t)=>p.onCustomContextAction?.(e,t)}),tt=r.n(U,M),nt=(0,i.computed)(()=>tt.value.entries),Q=Lt({editorView:U,getDocument:K,author:()=>p.author,commentsProp:()=>p.comments,onCommentsChange:e=>{p.onCommentsChange?.(e),m(`comments-change`,e)},reLayout:J}),rt=Q.comments,$=It({editorView:U,pagesViewport:k,pagesContainer:O,readOnly:g,createComment:Q.createComment,pushComment:Q.pushComment,reLayout:J,showSidebar:z,setActiveSidebarItem:e=>{te.value=e}});function it(e){navigator.clipboard?.writeText(e),Me.value=null}let ot=(0,i.computed)(()=>{M.value;let e=K()?.package.document;return e?e.finalSectionProperties??e.sections?.[0]?.properties??null:null}),ct=(0,i.computed)(()=>{M.value;let e={};p.fontFamilies!==void 0&&(e.fontFamilies=p.fontFamilies);let t=K()?.package.styles?.styles;return t!==void 0&&(e.documentStyles=t),e}),ut=(0,i.computed)(()=>(0,u.twipsToPixels)(ot.value?.pageWidth??12240)*B.value),dt=(0,i.computed)(()=>{let e=new Set;for(let t of rt.value)t.done&&e.add(t.id);return e}),ft=(0,i.computed)(()=>({transform:B.value===1?void 0:`scale(${B.value})`,transformOrigin:`top center`,transition:`transform 0.2s ease`})),{handleApplyStyle:pt,handleInsertSymbol:mt,handleInsertSectionBreakNextPage:ht,handleInsertSectionBreakContinuous:gt}=tn({editorView:U,getDocument:K});function _t(){if(p.onInsertImage){p.onInsertImage();return}let e=U.value;if(!e)return;let t=document.createElement(`input`);t.type=`file`,t.accept=`image/*`,t.style.display=`none`,t.addEventListener(`change`,()=>{let n=t.files?.[0];n&&(0,a.insertImageFromFile)(e,n,()=>e.focus()),t.remove()}),document.body.appendChild(t),t.click()}function yt(e,t){if(p.onInsertTable){p.onInsertTable(e,t);return}let n=U.value;n&&((0,a.insertTableInView)(n,e,t),n.focus())}function bt(){if(p.onInsertPageBreak){p.onInsertPageBreak();return}let e=U.value;e&&((0,a.insertPageBreakInView)(e),e.focus())}function xt(){if(p.onInsertTOC){p.onInsertTOC();return}let e=U.value;e&&((0,a.insertTableOfContentsInView)(e),e.focus())}let{handlePageSetupApply:St,handleLeftMarginChange:Ct,handleRightMarginChange:wt,handleTopMarginChange:Tt,handleBottomMarginChange:Et,handleIndentLeftChange:Dt,handleIndentRightChange:Ot,handleFirstLineIndentChange:At,handleTabStopRemove:jt}=an({editorView:U,getDocument:K,readOnly:g,stateTick:M,reLayout:J,onChange:e=>{p.onChange?.(e),m(`change`,e),m(`update:document`,e)}}),Mt=(0,i.computed)(()=>{M.value;let e=U.value,t=e?(0,o.extractSelectionContext)(e.state).paragraphFormatting:{};return{indentLeft:t.indentLeft??0,indentRight:t.indentRight??0,firstLineIndent:t.indentFirstLine??0,hangingIndent:t.hangingIndent??!1,tabs:t.tabs??null}});function Nt(e){h.value!==e&&(h.value=e,p.onModeChange?.(e),m(`mode-change`,e))}function Pt(e){switch(e){case`find`:case`findReplace`:N.value=!0;break;case`insertSymbol`:F.value=!0;break;case`insertHyperlink`:P.value=!0;break;case`pageSetup`:L.value=!0;break;case`toggleOutline`:R.value=!R.value;break;case`toggleSidebar`:z.value=!z.value;break;case`insertImage`:_t();break;case`insertPageBreak`:bt();break;case`insertSectionBreakNextPage`:ht();break;case`insertSectionBreakContinuous`:gt();break;case`insertTOC`:xt();break;default:break}m(`menu-action`,e)}function Ft(e,t){yt(e,t)}let Rt=(0,i.ref)(!1);Xt({documentBuffer:()=>p.documentBuffer??null,document:()=>p.document??null,loadDocumentBuffer:ve,loadDocument:ye,sidebarAutoOpenedRef:Rt}),(0,i.watch)(()=>p.mode,e=>{e&&e!==h.value&&(h.value=e)}),(0,i.watch)(()=>p.showOutline,e=>{R.value=!!e});let zt=(0,i.ref)(!1);function Bt(e){let t=e.currentTarget;t instanceof HTMLElement&&p.onScrollTopChange?.(t.scrollTop)}function Vt(){if(p.initialScrollTop===void 0||zt.value)return;zt.value=!0;let e=p.initialScrollTop;requestAnimationFrame(()=>{A.value&&(A.value.scrollTop=e)})}(0,i.watch)(G,e=>{if(!e){zt.value=!1;return}E.value=!0,Q.seedFromDocument();let t=K();t&&p.onCompatibilityChange?.((0,s.inspectDocxCompatibility)(t)),p.autoOpenReviewSidebar!==!1&&!Rt.value&&(rt.value.length>0||nt.value.length>0)&&(Rt.value=!0,z.value=!0),Vt(),m(`ready`)}),(0,i.onMounted)(()=>{let e=H.on(`selectionChange`,()=>{M.value++,$.updateFloatingButton()}),t=H.on(`docChange`,()=>{M.value++}),n=H.on(`layoutComplete`,()=>{M.value++}),r=Re.install(),a=(0,l.onFontsLoaded)(()=>p.onFontsLoaded?.());(0,i.onBeforeUnmount)(()=>{e(),t(),n(),r(),a()})});let{exposed:Ht}=en({editor:H,editorView:U,isDirty:fe,commentsDirty:Q.commentsDirty,clearCommentsDirty:Q.clearCommentsDirty,layout:he,pagesRef:O,pagesViewportRef:k,zoom:B,scrollVisiblePositionIntoView:Ve,author:()=>p.author,createAIEditComment:e=>{let t=Q.createComment(e);return Q.pushComment(t),t.id},focus:Ce,getDocument:K,setZoom:se,save:Se,loadDocument:ye,loadDocumentBuffer:ve,onPrint:p.onPrint,onSave:p.onSave});return d(Ht),(e,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{class:(0,i.normalizeClass)([`docx-editor-vue ep-root paged-editor`,n.className,ee.value,{"paged-editor--readonly":g.value}]),style:(0,i.normalizeStyle)(n.style)},[(0,i.createElementVNode)(`div`,Tn,[(0,i.createVNode)(we,{"show-table-insert":p.showTableInsert!==!1,onRename:r[0]||=e=>m(`rename`,e),onMenuAction:Pt,onInsertTable:Ft},{"title-bar-left":(0,i.withCtx)(()=>[(0,i.renderSlot)(e.$slots,`title-bar-left`,{},void 0,!0)]),"title-bar-right":(0,i.withCtx)(()=>[(0,i.renderSlot)(e.$slots,`title-bar-right`,{},void 0,!0)]),_:3},8,[`show-table-insert`]),n.showToolbar?((0,i.openBlock)(),(0,i.createBlock)(t.b,(0,i.mergeProps)({key:0,view:(0,i.unref)(U),"get-commands":(0,i.unref)(q),"state-tick":M.value,"zoom-percent":(0,i.unref)(ie),"is-min-zoom":(0,i.unref)(ae),"is-max-zoom":(0,i.unref)(oe),"zoom-presets":(0,i.unref)(ue),"show-zoom-control":n.showZoomControl,"editor-mode":h.value,"show-review-controls":v.value,"track-changes-on":y.value,"display-mode":b.value,"read-only":g.value,"comments-sidebar-open":z.value,"image-context":(0,i.unref)(ke),theme:n.theme??null},ct.value,{onFindReplace:r[1]||=e=>N.value=!0,onInsertLink:r[2]||=e=>P.value=!0,onInsertSymbol:r[3]||=e=>F.value=!0,onInsertPageBreak:bt,onPageSetup:r[4]||=e=>L.value=!0,onToggleOutline:r[5]||=e=>R.value=!R.value,onApplyStyle:(0,i.unref)(pt),onZoomIn:(0,i.unref)(ce),onZoomOut:(0,i.unref)(V),onZoomSet:(0,i.unref)(se),onToggleSidebar:r[6]||=e=>z.value=!z.value,onModeChange:Nt,onToggleTrackChanges:x,"onUpdate:displayMode":S,onImageProperties:r[7]||=e=>I.value=!0,onImageWrapType:(0,i.unref)(Ae),onImageTransform:(0,i.unref)(je)}),(0,i.createSlots)({"table-context":(0,i.withCtx)(()=>[(0,i.createVNode)(t.p,{view:(0,i.unref)(U),"get-commands":(0,i.unref)(q),"state-tick":M.value,theme:n.theme??null},null,8,[`view`,`get-commands`,`state-tick`,`theme`])]),_:2},[e.$slots[`toolbar-extra`]||n.toolbarExtra?{name:`toolbar-extra`,fn:(0,i.withCtx)(()=>[(0,i.renderSlot)(e.$slots,`toolbar-extra`,{},()=>[n.toolbarExtra?((0,i.openBlock)(),(0,i.createBlock)(w,{key:0,node:n.toolbarExtra},null,8,[`node`])):(0,i.createCommentVNode)(``,!0)],!0)]),key:`0`}:void 0]),1040,[`view`,`get-commands`,`state-tick`,`zoom-percent`,`is-min-zoom`,`is-max-zoom`,`zoom-presets`,`show-zoom-control`,`editor-mode`,`show-review-controls`,`track-changes-on`,`display-mode`,`read-only`,`comments-sidebar-open`,`image-context`,`theme`,`onApplyStyle`,`onZoomIn`,`onZoomOut`,`onZoomSet`,`onImageWrapType`,`onImageTransform`])):(0,i.createCommentVNode)(``,!0)]),(0,i.createVNode)(xe,{"show-find-replace":N.value,"onUpdate:showFindReplace":r[8]||=e=>N.value=e,"show-hyperlink":P.value,"onUpdate:showHyperlink":r[9]||=e=>P.value=e,"show-insert-symbol":F.value,"onUpdate:showInsertSymbol":r[10]||=e=>F.value=e,"show-image-properties":I.value,"onUpdate:showImageProperties":r[11]||=e=>I.value=e,"show-page-setup":L.value,"onUpdate:showPageSetup":r[12]||=e=>L.value=e,view:(0,i.unref)(U),bookmarks:ne.value,"selected-image-pm-pos":(0,i.unref)(Y)?.pmPos??null,"section-properties":ot.value,onInsertSymbol:(0,i.unref)(mt),onHyperlinkSubmit:(0,i.unref)(Ne),onHyperlinkRemove:(0,i.unref)(Pe),onPageSetupApply:(0,i.unref)(St)},null,8,[`show-find-replace`,`show-hyperlink`,`show-insert-symbol`,`show-image-properties`,`show-page-setup`,`view`,`bookmarks`,`selected-image-pm-pos`,`section-properties`,`onInsertSymbol`,`onHyperlinkSubmit`,`onHyperlinkRemove`,`onPageSetupApply`]),(0,i.unref)(pe)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,En,(0,i.toDisplayString)((0,i.unref)(pe)),1)):Ee.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Dn,[(0,i.renderSlot)(e.$slots,`loading-indicator`,{},()=>[n.loadingIndicator?((0,i.openBlock)(),(0,i.createBlock)(w,{key:0,node:n.loadingIndicator},null,8,[`node`])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(C)(`loadingDocument`)),1)],64))],!0)])):!(0,i.unref)(G)&&!T.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,On,[(0,i.renderSlot)(e.$slots,`placeholder`,{},()=>[n.placeholder?((0,i.openBlock)(),(0,i.createBlock)(w,{key:0,node:n.placeholder},null,8,[`node`])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createTextVNode)(`No document loaded`)],64))],!0)])):(0,i.createCommentVNode)(``,!0),(0,i.createElementVNode)(`div`,{ref_key:`hiddenPmRef`,ref:D,class:`docx-editor-vue__hidden-pm paged-editor__hidden-pm`},null,512),(0,i.createElementVNode)(`div`,{ref_key:`editorScrollRef`,ref:A,class:`docx-editor-vue__editor-scroll`,onScroll:Bt},[(0,i.createElementVNode)(`div`,kn,[j.value&&!g.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,An,[(0,i.createVNode)(t.y,{"section-props":ot.value,zoom:(0,i.unref)(B),unit:n.rulerUnit??`inch`,editable:!g.value,"indent-left":Mt.value.indentLeft,"indent-right":Mt.value.indentRight,"first-line-indent":Mt.value.firstLineIndent,"hanging-indent":Mt.value.hangingIndent,"show-first-line-indent":!0,"tab-stops":Mt.value.tabs,onLeftMarginChange:(0,i.unref)(Ct),onRightMarginChange:(0,i.unref)(wt),onIndentLeftChange:(0,i.unref)(Dt),onIndentRightChange:(0,i.unref)(Ot),onFirstLineIndentChange:(0,i.unref)(At),onTabStopRemove:(0,i.unref)(jt)},null,8,[`section-props`,`zoom`,`unit`,`editable`,`indent-left`,`indent-right`,`first-line-indent`,`hanging-indent`,`tab-stops`,`onLeftMarginChange`,`onRightMarginChange`,`onIndentLeftChange`,`onIndentRightChange`,`onFirstLineIndentChange`,`onTabStopRemove`])])):(0,i.createCommentVNode)(``,!0),j.value&&!g.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,jn,[(0,i.createVNode)(t.f,{"section-props":ot.value,zoom:(0,i.unref)(B),unit:n.rulerUnit??`inch`,editable:!g.value,onTopMarginChange:(0,i.unref)(Tt),onBottomMarginChange:(0,i.unref)(Et)},null,8,[`section-props`,`zoom`,`unit`,`editable`,`onTopMarginChange`,`onBottomMarginChange`])])):(0,i.createCommentVNode)(``,!0),(0,i.createElementVNode)(`div`,{ref_key:`pagesViewportRef`,ref:k,class:`docx-editor-vue__pages-viewport`,onWheel:de,onMousedown:r[21]||=(...e)=>(0,i.unref)(He)&&(0,i.unref)(He)(...e),onMousemove:r[22]||=(...e)=>(0,i.unref)(Ue)&&(0,i.unref)(Ue)(...e),onClick:r[23]||=(...e)=>(0,i.unref)(We)&&(0,i.unref)(We)(...e),onContextmenu:r[24]||=(0,i.withModifiers)((...e)=>(0,i.unref)(Ze)&&(0,i.unref)(Ze)(...e),[`prevent`])},[(0,i.createElementVNode)(`div`,Mn,[(0,i.createElementVNode)(`div`,{ref_key:`pagesRef`,ref:O,class:`docx-editor-vue__pages paged-editor__pages`,style:(0,i.normalizeStyle)(ft.value)},null,4),(0,i.createElementVNode)(`div`,Nn,[(0,i.createVNode)(me,{"get-view":()=>(0,i.unref)(U),"get-pages-container":()=>O.value,"editor-state":(0,i.unref)(W),zoom:(0,i.unref)(B),layout:(0,i.unref)(he),blocks:(0,i.unref)(ge),measures:(0,i.unref)(_e),"on-term-click":p.onAnonymizationTermClick,"selected-canonical":p.selectedAnonymizationCanonical,"selection-seq":p.anonymizationSelectionSeq},null,8,[`get-view`,`get-pages-container`,`editor-state`,`zoom`,`layout`,`blocks`,`measures`,`on-term-click`,`selected-canonical`,`selection-seq`]),p.showTemplateDirectives?((0,i.openBlock)(),(0,i.createBlock)(vt,{key:0,"get-view":()=>(0,i.unref)(U),"get-pages-container":()=>O.value,"editor-state":(0,i.unref)(W),zoom:(0,i.unref)(B),layout:(0,i.unref)(he),blocks:(0,i.unref)(ge),measures:(0,i.unref)(_e)},null,8,[`get-view`,`get-pages-container`,`editor-state`,`zoom`,`layout`,`blocks`,`measures`])):(0,i.createCommentVNode)(``,!0)])]),(0,i.createVNode)(at,{"image-info":(0,i.unref)(Y),zoom:(0,i.unref)(B),view:(0,i.unref)(U),onDeselect:r[13]||=e=>Y.value=null,onInteractStart:r[14]||=e=>Oe.value=!0,onInteractEnd:r[15]||=e=>Oe.value=!1,onContextMenu:(0,i.unref)(Qe)},null,8,[`image-info`,`zoom`,`view`,`onContextMenu`]),(0,i.createVNode)(kt,{data:(0,i.unref)(Me),"read-only":g.value,onNavigate:(0,i.unref)(Fe),onCopy:it,onEdit:(0,i.unref)(Ie),onRemove:(0,i.unref)(Le),onClose:r[16]||=e=>Me.value=null},null,8,[`data`,`read-only`,`onNavigate`,`onEdit`,`onRemove`]),(0,i.unref)(X)?((0,i.openBlock)(),(0,i.createElementBlock)(`button`,{key:0,type:`button`,class:`docx-editor-vue__table-insert-btn`,style:(0,i.normalizeStyle)({left:(0,i.unref)(X).x+`px`,top:(0,i.unref)(X).y+`px`}),"aria-label":(0,i.unref)(X).type===`row`?`Insert row`:`Insert column`,onMousedown:r[17]||=(...e)=>(0,i.unref)(Ge)&&(0,i.unref)(Ge)(...e)},` + `,44,Pn)):(0,i.createCommentVNode)(``,!0),(0,i.createVNode)(t.F,{comments:(0,i.unref)(rt),"pages-container":O.value,zoom:(0,i.unref)(B),"page-width-px":ut.value,"sidebar-open":z.value,"resolved-comment-ids":dt.value,onMarkerClick:()=>{}},null,8,[`comments`,`pages-container`,`zoom`,`page-width-px`,`sidebar-open`,`resolved-comment-ids`]),(0,i.createVNode)(t.a,{"is-open":z.value,comments:(0,i.unref)(rt),"tracked-changes":nt.value,"show-resolved":!0,"is-adding-comment":(0,i.unref)($).isAddingComment.value,"add-comment-y-position":(0,i.unref)($).addCommentYPosition.value,"pages-container":O.value,"page-width-px":ut.value,zoom:(0,i.unref)(B),"active-item-id":te.value,onClose:r[18]||=e=>z.value=!1,"onUpdate:activeItemId":r[19]||=e=>te.value=e,onAddComment:(0,i.unref)($).handleAddComment,onCancelAddComment:(0,i.unref)($).handleCancelAddComment,onCommentReply:(0,i.unref)(Q).handleReply,onCommentResolve:(0,i.unref)(Q).handleResolve,onCommentUnresolve:(0,i.unref)(Q).handleUnresolve,onCommentDelete:(0,i.unref)(Q).handleDelete,onAcceptChange:(0,i.unref)(Q).handleAcceptChange,onRejectChange:(0,i.unref)(Q).handleRejectChange,onAcceptChangeById:(0,i.unref)(Q).handleAcceptChangeById,onRejectChangeById:(0,i.unref)(Q).handleRejectChangeById,onTrackedChangeReply:(0,i.unref)(Q).handleTrackedChangeReply},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`,`onAcceptChangeById`,`onRejectChangeById`,`onTrackedChangeReply`]),(0,i.unref)($).floatingCommentButton.value&&!g.value?((0,i.openBlock)(),(0,i.createElementBlock)(`button`,{key:1,type:`button`,class:`docx-editor-vue__add-comment-btn`,style:(0,i.normalizeStyle)({top:(0,i.unref)($).floatingCommentButton.value.top+`px`,left:(0,i.unref)($).floatingCommentButton.value.left+`px`}),"aria-label":`Add comment`,title:`Add comment`,onMousedown:r[20]||=(0,i.withModifiers)((...e)=>(0,i.unref)($).startAddComment&&(0,i.unref)($).startAddComment(...e),[`prevent`,`stop`])},[(0,i.createVNode)(t.I,{name:`add_comment`,size:18})],36)):(0,i.createCommentVNode)(``,!0)],544),R.value?(0,i.createCommentVNode)(``,!0):((0,i.openBlock)(),(0,i.createBlock)(st,{key:2,"left-offset":12,onToggle:r[25]||=e=>R.value=!0})),(0,i.unref)(Z).totalPages>1?((0,i.openBlock)(),(0,i.createBlock)(lt,{key:3,"current-page":(0,i.unref)(Z).currentPage,"total-pages":(0,i.unref)(Z).totalPages,visible:(0,i.unref)(Z).visible},null,8,[`current-page`,`total-pages`,`visible`])):(0,i.createCommentVNode)(``,!0),(0,i.createVNode)(be,{"is-open":R.value,headings:re.value,onClose:r[26]||=e=>R.value=!1,onNavigate:()=>{}},null,8,[`is-open`,`headings`])])],544),(0,i.createVNode)(Xe,{"read-only":g.value,"context-menu":(0,i.unref)(Ke),"image-context-menu":(0,i.unref)(qe),"image-context-menu-text-actions":(0,i.unref)(Je),"custom-text-menu-items":(0,i.unref)(Ye),"can-open-image-properties":(0,i.unref)(Y)!==null,onContextMenuAction:(0,i.unref)(et),onCloseContextMenu:r[27]||=e=>(0,i.unref)(Ke).isOpen=!1,onImageWrapSelect:(0,i.unref)($e),onCloseImageContextMenu:r[28]||=e=>qe.value=null,onOpenImageProperties:r[29]||=e=>I.value=!0},null,8,[`read-only`,`context-menu`,`image-context-menu`,`image-context-menu-text-actions`,`custom-text-menu-items`,`can-open-image-properties`,`onContextMenuAction`,`onImageWrapSelect`])],6))}}),In=e.u(Fn,[[`__scopeId`,`data-v-1c285fdf`]]),Ln=[`aria-label`],Rn=[`aria-label`],zn=[`disabled`,`title`,`aria-label`],Bn=[`disabled`,`title`,`aria-label`],Vn=[`aria-label`],Hn=[`disabled`,`title`,`aria-label`,`aria-pressed`],Un=[`disabled`,`title`,`aria-label`,`aria-pressed`],Wn=[`disabled`,`title`,`aria-label`,`aria-pressed`],Gn=(0,i.defineComponent)({__name:`FormattingBar`,props:{currentFormatting:{},disabled:{type:Boolean,default:!1},canUndo:{type:Boolean,default:!1},canRedo:{type:Boolean,default:!1},className:{},showStylePicker:{type:Boolean,default:!0},showTextColorPicker:{type:Boolean,default:!0},showAlignmentButtons:{type:Boolean,default:!0},showListButtons:{type:Boolean,default:!0},documentStyles:{},theme:{}},emits:[`format`,`undo`,`redo`],setup(n,{emit:r}){let{ColorPicker:a}=t.C(),o=n,s=r,{t:c}=e.l(),l=(0,i.computed)(()=>o.currentFormatting??{}),u=(0,i.computed)(()=>o.documentStyles?{styles:o.documentStyles}:{}),d=(0,i.computed)(()=>l.value.listState??t.n()),f=(0,i.computed)(()=>{let e=l.value.color;return e?e.replace(/^#/,``).toUpperCase():void 0}),p=(0,i.computed)(()=>{let e=d.value;return e.isInList&&e.level>0||(l.value.indentLeft??0)>0});function m(e){s(`format`,{type:`textColor`,value:e})}return(e,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{class:(0,i.normalizeClass)([`docx-formatting-bar`,n.className]),role:`toolbar`,"aria-label":(0,i.unref)(c)(`formattingToolbar`),"data-folio-toolbar":`true`},[(0,i.createElementVNode)(`span`,{class:`docx-formatting-bar__group`,role:`group`,"aria-label":(0,i.unref)(c)(`historyGroup`)},[(0,i.createElementVNode)(`button`,{type:`button`,class:`docx-formatting-bar__btn`,disabled:n.disabled||!n.canUndo,title:(0,i.unref)(c)(`undoShortcut`),"aria-label":(0,i.unref)(c)(`undo`),onMousedown:r[0]||=(0,i.withModifiers)(e=>s(`undo`),[`prevent`])},[(0,i.createVNode)(t.I,{name:`undo`,size:18})],40,zn),(0,i.createElementVNode)(`button`,{type:`button`,class:`docx-formatting-bar__btn`,disabled:n.disabled||!n.canRedo,title:(0,i.unref)(c)(`redoShortcut`),"aria-label":(0,i.unref)(c)(`redo`),onMousedown:r[1]||=(0,i.withModifiers)(e=>s(`redo`),[`prevent`])},[(0,i.createVNode)(t.I,{name:`redo`,size:18})],40,Bn)],8,Rn),r[13]||=(0,i.createElementVNode)(`span`,{class:`docx-formatting-bar__divider`,role:`separator`},null,-1),n.showStylePicker?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:0},[(0,i.createVNode)(t.i,(0,i.mergeProps)({value:l.value.styleId??`Normal`},u.value,{disabled:n.disabled,onChange:r[2]||=e=>s(`format`,{type:`applyStyle`,value:e})}),null,16,[`value`,`disabled`]),r[11]||=(0,i.createElementVNode)(`span`,{class:`docx-formatting-bar__divider`,role:`separator`},null,-1)],64)):(0,i.createCommentVNode)(``,!0),(0,i.createElementVNode)(`span`,{class:`docx-formatting-bar__group`,role:`group`,"aria-label":(0,i.unref)(c)(`textFormattingGroup`)},[(0,i.createElementVNode)(`button`,{type:`button`,class:(0,i.normalizeClass)([`docx-formatting-bar__btn`,{"docx-formatting-bar__btn--active":l.value.bold}]),disabled:n.disabled,title:(0,i.unref)(c)(`boldShortcut`),"aria-label":(0,i.unref)(c)(`bold`),"aria-pressed":!!l.value.bold,onMousedown:r[3]||=(0,i.withModifiers)(e=>s(`format`,`bold`),[`prevent`])},[(0,i.createVNode)(t.I,{name:`format_bold`,size:18})],42,Hn),(0,i.createElementVNode)(`button`,{type:`button`,class:(0,i.normalizeClass)([`docx-formatting-bar__btn`,{"docx-formatting-bar__btn--active":l.value.italic}]),disabled:n.disabled,title:(0,i.unref)(c)(`italicShortcut`),"aria-label":(0,i.unref)(c)(`italic`),"aria-pressed":!!l.value.italic,onMousedown:r[4]||=(0,i.withModifiers)(e=>s(`format`,`italic`),[`prevent`])},[(0,i.createVNode)(t.I,{name:`format_italic`,size:18})],42,Un),(0,i.createElementVNode)(`button`,{type:`button`,class:(0,i.normalizeClass)([`docx-formatting-bar__btn`,{"docx-formatting-bar__btn--active":l.value.underline}]),disabled:n.disabled,title:(0,i.unref)(c)(`underlineShortcut`),"aria-label":(0,i.unref)(c)(`underline`),"aria-pressed":!!l.value.underline,onMousedown:r[5]||=(0,i.withModifiers)(e=>s(`format`,`underline`),[`prevent`])},[(0,i.createVNode)(t.I,{name:`format_underlined`,size:18})],42,Wn)],8,Vn),n.showTextColorPicker?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[r[12]||=(0,i.createElementVNode)(`span`,{class:`docx-formatting-bar__divider`,role:`separator`},null,-1),(0,i.createVNode)((0,i.unref)(a),{mode:`text`,value:f.value,theme:n.theme??null,disabled:n.disabled,onChange:m},null,8,[`value`,`theme`,`disabled`])],64)):(0,i.createCommentVNode)(``,!0),r[14]||=(0,i.createElementVNode)(`span`,{class:`docx-formatting-bar__divider`,role:`separator`},null,-1),n.showAlignmentButtons?((0,i.openBlock)(),(0,i.createBlock)(t.r,{key:2,value:l.value.alignment??`left`,disabled:n.disabled,onChange:r[6]||=e=>s(`format`,{type:`alignment`,value:e})},null,8,[`value`,`disabled`])):(0,i.createCommentVNode)(``,!0),n.showListButtons?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:3,"list-state":d.value,disabled:n.disabled,"can-outdent":p.value,onBulletList:r[7]||=e=>s(`format`,`bulletList`),onNumberedList:r[8]||=e=>s(`format`,`numberedList`),onIndent:r[9]||=e=>s(`format`,`indent`),onOutdent:r[10]||=e=>s(`format`,`outdent`)},null,8,[`list-state`,`disabled`,`can-outdent`])):(0,i.createCommentVNode)(``,!0)],10,Ln))}}),Kn=e.u(Gn,[[`__scopeId`,`data-v-225f770f`]]),qn=[`value`,`disabled`],Jn=[`value`],Yn=[`value`],Xn=[{value:.5,label:`50%`},{value:.75,label:`75%`},{value:1,label:`100%`},{value:1.25,label:`125%`},{value:1.5,label:`150%`},{value:2,label:`200%`}],Zn=(0,i.defineComponent)({__name:`ZoomControl`,props:{value:{default:1},levels:{},disabled:{type:Boolean,default:!1},className:{},compact:{type:Boolean,default:!1}},emits:[`change`],setup(e,{emit:t}){let n=e,r=t,a=(0,i.computed)(()=>n.levels??Xn),o=(0,i.computed)(()=>a.value.find(e=>Math.abs(e.value-n.value)<.001)),s=(0,i.computed)(()=>o.value?o.value.label:`${Math.round(n.value*100)}%`),c=(0,i.computed)(()=>o.value?String(o.value.value):String(n.value));function l(e){if(!(e.target instanceof HTMLSelectElement))return;let t=Number.parseFloat(e.target.value);Number.isNaN(t)||r(`change`,t)}return(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`select`,{class:(0,i.normalizeClass)([`docx-zoom-control`,[{"docx-zoom-control--compact":e.compact},e.className]]),value:c.value,disabled:e.disabled,"aria-label":`Zoom level`,onChange:l},[o.value?(0,i.createCommentVNode)(``,!0):((0,i.openBlock)(),(0,i.createElementBlock)(`option`,{key:0,value:c.value},(0,i.toDisplayString)(s.value),9,Jn)),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(a.value,e=>((0,i.openBlock)(),(0,i.createElementBlock)(`option`,{key:e.value,value:String(e.value)},(0,i.toDisplayString)(e.label),9,Yn))),128))],42,qn))}}),Qn=e.u(Zn,[[`__scopeId`,`data-v-4408d2e8`]]),$n=(t,n,r={})=>{let{locale:a=`en`,...o}=r;return new Promise((r,s)=>{let c=(0,i.ref)(null),l=null,u=!1,d={save:async()=>{let e=await(c.value?.save()??Promise.resolve(null));return e?new Blob([e],{type:`application/vnd.openxmlformats-officedocument.wordprocessingml.document`}):null},getDocument:()=>c.value?.getDocument()??null,focus:()=>{c.value?.focus()},setZoom:e=>{c.value?.setZoom(e)},scrollToPosition:e=>{c.value?.getEditorRef()?.scrollToPosition(e)},scrollToPage:e=>{c.value?.scrollToPage(e)},destroy:()=>{u||(u=!0,s(Error(`Editor was destroyed before mounting completed.`))),l?.unmount(),l=null}};l=(0,i.createApp)({setup(){return()=>(0,i.h)(In,{...o,documentBuffer:t,ref:c,onReady:()=>{u||(u=!0,r(d))},onError:e=>{o.onError?.(e),u||(u=!0,l?.unmount(),l=null,s(e))}})}}),l.use(e.s,a),l.mount(n)})};Object.defineProperty(exports,"DEFAULT_AI_SUGGESTION_PRESETS",{enumerable:!0,get:function(){return se.DEFAULT_AI_SUGGESTION_PRESETS}}),Object.defineProperty(exports,"DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES",{enumerable:!0,get:function(){return W.DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES}}),exports.DocxEditor=In,exports.FolioUIProvider=t.x,exports.FormattingBar=Kn,exports.ZoomControl=Qn,Object.defineProperty(exports,"acceptAutocompleteSuggestion",{enumerable:!0,get:function(){return W.acceptAutocompleteSuggestion}}),Object.defineProperty(exports,"acceptAutocompleteWord",{enumerable:!0,get:function(){return W.acceptAutocompleteWord}}),Object.defineProperty(exports,"anonymizationDecorationsKey",{enumerable:!0,get:function(){return p.anonymizationDecorationsKey}}),Object.defineProperty(exports,"appendAutocompleteToken",{enumerable:!0,get:function(){return W.appendAutocompleteToken}}),Object.defineProperty(exports,"applyFolioAIEditOperations",{enumerable:!0,get:function(){return A.applyFolioAIEditOperations}}),Object.defineProperty(exports,"applySuggestions",{enumerable:!0,get:function(){return ce.applySuggestions}}),Object.defineProperty(exports,"autocompleteSuggestionKey",{enumerable:!0,get:function(){return W.autocompleteSuggestionKey}}),Object.defineProperty(exports,"autocompleteSuggestionPlugin",{enumerable:!0,get:function(){return W.autocompleteSuggestionPlugin}}),Object.defineProperty(exports,"buildPositionalText",{enumerable:!0,get:function(){return le.buildPositionalText}}),Object.defineProperty(exports,"clearAutocompleteSuggestion",{enumerable:!0,get:function(){return W.clearAutocompleteSuggestion}}),Object.defineProperty(exports,"clearTemplateSlashMenu",{enumerable:!0,get:function(){return k.clearTemplateSlashMenu}}),Object.defineProperty(exports,"consumeTemplateSlashQuery",{enumerable:!0,get:function(){return k.consumeTemplateSlashQuery}}),Object.defineProperty(exports,"createAICitationDecorationsPlugin",{enumerable:!0,get:function(){return U.createAICitationDecorationsPlugin}}),Object.defineProperty(exports,"createDocx",{enumerable:!0,get:function(){return oe.createDocx}}),Object.defineProperty(exports,"createEmptyDocument",{enumerable:!0,get:function(){return ae.createEmptyDocument}}),Object.defineProperty(exports,"createFolioAIEditSnapshot",{enumerable:!0,get:function(){return A.createFolioAIEditSnapshot}}),exports.defaultLocale=e.o,Object.defineProperty(exports,"deriveBlockId",{enumerable:!0,get:function(){return L.deriveBlockId}}),Object.defineProperty(exports,"diffWordSegments",{enumerable:!0,get:function(){return A.diffWordSegments}}),Object.defineProperty(exports,"finishAutocompleteSuggestion",{enumerable:!0,get:function(){return W.finishAutocompleteSuggestion}}),Object.defineProperty(exports,"fromMarkdown",{enumerable:!0,get:function(){return G.fromMarkdown}}),Object.defineProperty(exports,"getAnonymizationMatches",{enumerable:!0,get:function(){return p.getAnonymizationMatches}}),Object.defineProperty(exports,"getAutocompleteSuggestion",{enumerable:!0,get:function(){return W.getAutocompleteSuggestion}}),Object.defineProperty(exports,"getFolioCaretViewportRect",{enumerable:!0,get:function(){return H.getFolioCaretViewportRect}}),Object.defineProperty(exports,"getFolioParaIdFromBlockId",{enumerable:!0,get:function(){return L.getFolioParaIdFromBlockId}}),Object.defineProperty(exports,"getFolioSelectionViewportRect",{enumerable:!0,get:function(){return H.getFolioSelectionViewportRect}}),Object.defineProperty(exports,"getTemplateDirectives",{enumerable:!0,get:function(){return x.getTemplateDirectives}}),Object.defineProperty(exports,"getTemplateSlashMenu",{enumerable:!0,get:function(){return k.getTemplateSlashMenu}}),Object.defineProperty(exports,"hashFolioAIBlockText",{enumerable:!0,get:function(){return A.hashFolioAIBlockText}}),exports.i18nPlugin=e.s,Object.defineProperty(exports,"insertImageFromFile",{enumerable:!0,get:function(){return a.insertImageFromFile}}),Object.defineProperty(exports,"insertPageBreakInView",{enumerable:!0,get:function(){return a.insertPageBreakInView}}),Object.defineProperty(exports,"insertTableInView",{enumerable:!0,get:function(){return a.insertTableInView}}),Object.defineProperty(exports,"insertTableOfContentsInView",{enumerable:!0,get:function(){return a.insertTableOfContentsInView}}),Object.defineProperty(exports,"isFolioBlockId",{enumerable:!0,get:function(){return L.isFolioBlockId}}),Object.defineProperty(exports,"isSequentialFolioBlockId",{enumerable:!0,get:function(){return L.isSequentialFolioBlockId}}),Object.defineProperty(exports,"isSuggestionStale",{enumerable:!0,get:function(){return V.isSuggestionStale}}),Object.defineProperty(exports,"normalizeFolioAIBlockText",{enumerable:!0,get:function(){return A.normalizeFolioAIBlockText}}),exports.provideLocale=e.c,exports.renderAsync=$n,Object.defineProperty(exports,"resetTemplateSlashQuery",{enumerable:!0,get:function(){return k.resetTemplateSlashQuery}}),Object.defineProperty(exports,"resolveSuggestionAnchor",{enumerable:!0,get:function(){return V.resolveSuggestionAnchor}}),Object.defineProperty(exports,"scanDirectives",{enumerable:!0,get:function(){return x.scanDirectives}}),Object.defineProperty(exports,"scrollFolioPositionIntoView",{enumerable:!0,get:function(){return de.scrollFolioPositionIntoView}}),Object.defineProperty(exports,"setAICitationsMeta",{enumerable:!0,get:function(){return U.setAICitationsMeta}}),Object.defineProperty(exports,"setAISuggestionsMeta",{enumerable:!0,get:function(){return ue.setAISuggestionsMeta}}),Object.defineProperty(exports,"setActiveCitationMeta",{enumerable:!0,get:function(){return U.setActiveCitationMeta}}),Object.defineProperty(exports,"setAnonymizationTermsMeta",{enumerable:!0,get:function(){return p.setAnonymizationTermsMeta}}),Object.defineProperty(exports,"setFocusedSuggestionMeta",{enumerable:!0,get:function(){return ue.setFocusedSuggestionMeta}}),Object.defineProperty(exports,"setTemplatePreviewValues",{enumerable:!0,get:function(){return O.setTemplatePreviewValues}}),Object.defineProperty(exports,"shouldTriggerAutocomplete",{enumerable:!0,get:function(){return W.shouldTriggerAutocomplete}}),Object.defineProperty(exports,"startAutocompleteSuggestion",{enumerable:!0,get:function(){return W.startAutocompleteSuggestion}}),Object.defineProperty(exports,"templateSlashMenuKey",{enumerable:!0,get:function(){return k.templateSlashMenuKey}}),Object.defineProperty(exports,"toMarkdown",{enumerable:!0,get:function(){return G.toMarkdown}}),Object.defineProperty(exports,"toMarkdownResult",{enumerable:!0,get:function(){return G.toMarkdownResult}}),exports.useTranslation=e.l,exports.useWheelZoom=r.t;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * `@stll/folio-vue`
3
+ *
4
+ * Root entry for the Vue 3 editor. Mirrors the React adapter's public surface
5
+ * (`packages/react/src/index.ts`): every framework-neutral symbol re-exports the
6
+ * SAME `@stll/folio-core/*` binding React ships, and the framework-specific
7
+ * pieces (the editor component, `renderAsync`, i18n runtime) resolve to their Vue
8
+ * equivalents. A parity CI gate diffs this against the React index.
9
+ *
10
+ * Advanced surfaces stay public through explicit subpaths:
11
+ * `./ui`, `./composables`, `./dialogs`, `./plugin-api`, `./styles`, `./messages`.
12
+ *
13
+ * @packageDocumentation
14
+ * @public
15
+ */
16
+ export { default as DocxEditor } from './components/DocxEditor.vue';
17
+ export { default as FormattingBar } from './components/FormattingBar.vue';
18
+ export type { FormattingBarProps } from './components/FormattingBar.types';
19
+ export { default as ZoomControl } from './components/ui/ZoomControl.vue';
20
+ export type { ZoomControlProps, ZoomLevel } from './components/ui/ZoomControl.types';
21
+ export { renderAsync, type DocxEditorHandle, type EditorHandle, type RenderAsyncOptions, } from './renderAsync';
22
+ export type { DocxEditorCollaboration, DocxEditorProps, DocxEditorRef, EditorMode, } from './components/DocxEditor/types';
23
+ export type { ScrollToParaIdOptions } from '@stll/folio-core/paged-layout/paragraphFlash';
24
+ export type { FontOption } from './utils/fontOptions';
25
+ export type { FontDefinition } from './components/DocxEditor/types';
26
+ export { FolioUIProvider } from './ui/folio-ui';
27
+ export type { ColorPreset, FolioButtonProps, FolioUIComponents, OutlineItem, } from './ui/folio-ui';
28
+ export { defaultLocale, i18nPlugin, provideLocale, useTranslation } from './i18n';
29
+ export { useWheelZoom } from './composables/useWheelZoom';
30
+ export { insertImageFromFile, insertPageBreakInView, insertTableInView, insertTableOfContentsInView, } from '@stll/folio-core/prosemirror';
31
+ export { createEmptyDocument, type CreateEmptyDocumentOptions, } from '@stll/folio-core/utils/createDocument';
32
+ export { createDocx } from '@stll/folio-core/docx/rezip';
33
+ export type { Document } from '@stll/folio-core/types/document';
34
+ export type { DocxCompatibility } from '@stll/folio-core/docx/compatibility';
35
+ export { deriveBlockId, getFolioParaIdFromBlockId, isFolioBlockId, isSequentialFolioBlockId, type DeriveBlockIdInput, type FolioBlockId, } from '@stll/folio-core/types/block-id';
36
+ export { DEFAULT_AI_SUGGESTION_PRESETS, type AICitation, type AICitationSource, type AIChatMode, type AISuggestion, type AISuggestionApplyMode, type AISuggestionPreset, type AISuggestionSeverity, type AISuggestionStatus, type AIBarStatus, type AIGenerateInput, } from '@stll/folio-core/ai-suggestions/types';
37
+ export { applySuggestions, type ApplyResult } from '@stll/folio-core/ai-suggestions/apply';
38
+ export { applyFolioAIEditOperations, createFolioAIEditSnapshot, diffWordSegments, hashFolioAIBlockText, normalizeFolioAIBlockText, type WordDiffSegment, type FolioAIBlock, type FolioAIBlockAnchor, type FolioAIBlockKind, type FolioAIBlockPreviewRun, type FolioAIComment, type FolioAIEditAppliedOperation, type FolioAIEditApplyMode, type FolioAIEditApplyResult, type FolioAIEditOperation, type FolioAIEditReviewMeta, type FolioAIEditSeverity, type FolioAIEditSkipReason, type FolioAIEditSkippedOperation, type FolioAIEditSnapshot, type FolioAISignatureParty, } from '@stll/folio-core/ai-edits';
39
+ export { resolveSuggestionAnchor, isSuggestionStale, type ResolvedAnchor, } from '@stll/folio-core/ai-suggestions/conflict';
40
+ export { buildPositionalText, type PositionalText, } from '@stll/folio-core/ai-suggestions/text-positions';
41
+ export { setAISuggestionsMeta, setFocusedSuggestionMeta, } from '@stll/folio-core/prosemirror/plugins/aiSuggestionDecorations';
42
+ export { scrollFolioPositionIntoView } from '@stll/folio-core/paged-layout/scrollToPmPosition';
43
+ export { getFolioCaretViewportRect, getFolioSelectionViewportRect, } from '@stll/folio-core/paged-layout/selectionViewportRect';
44
+ export { createAICitationDecorationsPlugin, setAICitationsMeta, setActiveCitationMeta, type AICitationRange, } from '@stll/folio-core/prosemirror/plugins/aiCitationDecorations';
45
+ export { anonymizationDecorationsKey, getAnonymizationMatches, setAnonymizationTermsMeta, type AnonymizationMatch, type AnonymizationTerm, } from '@stll/folio-core/prosemirror/plugins/anonymizationDecorations';
46
+ export { getTemplateDirectives, scanDirectives, type DirectiveKind, type DirectiveRange, } from '@stll/folio-core/prosemirror/plugins/templateDirectives';
47
+ export { setTemplatePreviewValues, type TemplatePreviewSpan, type TemplatePreviewValue, type TemplatePreviewValues, } from '@stll/folio-core/prosemirror/plugins/templatePreviewValues';
48
+ export { clearTemplateSlashMenu, consumeTemplateSlashQuery, getTemplateSlashMenu, resetTemplateSlashQuery, templateSlashMenuKey, type TemplateSlashMenuKeyAction, type TemplateSlashMenuState, } from '@stll/folio-core/prosemirror/plugins/templateSlashMenu';
49
+ export { acceptAutocompleteSuggestion, acceptAutocompleteWord, appendAutocompleteToken, autocompleteSuggestionKey, autocompleteSuggestionPlugin, clearAutocompleteSuggestion, DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, finishAutocompleteSuggestion, getAutocompleteSuggestion, shouldTriggerAutocomplete, startAutocompleteSuggestion, type AcceptAutocompleteResult, type AutocompleteSuggestionPluginOptions, type AutocompleteSuggestionState, type AutocompleteSuggestionStatus, type AutocompleteTriggerCheck, type AutocompleteTriggerOptions, type AutocompleteTriggerSkipReason, } from '@stll/folio-core/prosemirror/plugins/autocompleteSuggestion';
50
+ export { fromMarkdown, toMarkdown, toMarkdownResult, type ImageMeta, type ImageRef, type MarkdownOptions, type MarkdownResult, } from '@stll/folio-core/markdown';