superdoc 2.29.0-next.9 → 2.30.0-next.4

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 (158) hide show
  1. package/README.md +127 -25
  2. package/dist/chunks/{FindReplaceSurface-BKVHzhQ4.es.js → FindReplaceSurface-BEnRLpD9.es.js} +1 -1
  3. package/dist/chunks/{FindReplaceSurface-BNDrJ6VS.cjs → FindReplaceSurface-DWXgWgg7.cjs} +1 -1
  4. package/dist/chunks/{PasswordPromptSurface-6mF6Azda.es.js → PasswordPromptSurface-DjV1JgjD.es.js} +1 -1
  5. package/dist/chunks/{PasswordPromptSurface-BNkaztaP.cjs → PasswordPromptSurface-VFPnQOML.cjs} +1 -1
  6. package/dist/chunks/{PdfViewer-aOWhUVI7.es.js → PdfViewer-C2r-K8zC.es.js} +4 -10
  7. package/dist/chunks/{PdfViewer-DmSkZehl.cjs → PdfViewer-DYTbPVUr.cjs} +4 -10
  8. package/dist/chunks/{_plugin-vue_export-helper-6MBoygIY.cjs → _plugin-vue_export-helper-BzM2_tVU.cjs} +40 -7
  9. package/dist/chunks/{_plugin-vue_export-helper-CsJQtMvr.es.js → _plugin-vue_export-helper-CmkaJDnr.es.js} +23 -8
  10. package/dist/chunks/{create-super-doc-ui-DN70aatf.cjs → create-super-doc-ui--kQBNTyt.cjs} +2424 -2302
  11. package/dist/chunks/{create-super-doc-ui-Bm5kmx0W.es.js → create-super-doc-ui-CbEDXtpm.es.js} +2350 -2228
  12. package/dist/collaboration-upgrade-engine.cjs +1 -1
  13. package/dist/collaboration-upgrade-engine.es.js +1 -1
  14. package/dist/document-api/src/changes/changes.d.ts +26 -0
  15. package/dist/document-api/src/changes/changes.types.d.ts +156 -0
  16. package/dist/document-api/src/contract/command-catalog.d.ts +1 -1
  17. package/dist/document-api/src/contract/operation-definitions.d.ts +51 -1
  18. package/dist/document-api/src/create/create.d.ts +0 -4
  19. package/dist/document-api/src/diff/diff.types.d.ts +6 -6
  20. package/dist/document-api/src/header-footers/header-footers.d.ts +1 -3
  21. package/dist/document-api/src/index.d.ts +6 -0
  22. package/dist/document-api/src/inline-semantics/token-sets.d.ts +0 -2
  23. package/dist/document-api/src/insert/insert.d.ts +0 -1
  24. package/dist/layout-engine/contracts/src/index.d.ts +3 -1
  25. package/dist/layout-engine/dom-contract/src/data-attrs.d.ts +4 -0
  26. package/dist/layout-engine/layout-bridge/src/coupled-footnote-pagination.d.ts +1 -0
  27. package/dist/layout-engine/layout-bridge/src/footnote-page-certificate.d.ts +1 -0
  28. package/dist/layout-engine/layout-bridge/src/footnote-page-planner.d.ts +5 -0
  29. package/dist/layout-engine/layout-bridge/src/incrementalLayout.d.ts +1 -0
  30. package/dist/layout-engine/layout-engine/src/footnote-page-flow.d.ts +3 -0
  31. package/dist/layout-engine/layout-engine/src/index.d.ts +7 -0
  32. package/dist/layout-engine/layout-engine/src/layout-paragraph.d.ts +5 -0
  33. package/dist/layout-engine/layout-engine/src/layout-table.d.ts +3 -1
  34. package/dist/layout-engine/layout-engine/src/layout-utils.d.ts +0 -4
  35. package/dist/layout-engine/layout-engine/src/paginator.d.ts +4 -0
  36. package/dist/layout-engine/painters/dom/src/paragraph/list-marker.d.ts +1 -1
  37. package/dist/layout-engine/painters/dom/src/paragraph/renderParagraphContent.d.ts +1 -1
  38. package/dist/layout-engine/painters/dom/src/styles.d.ts +0 -10
  39. package/dist/layout-engine/painters/dom/src/svg-utils.d.ts +1 -13
  40. package/dist/public/ui-react.cjs +1 -1
  41. package/dist/public/ui-react.es.js +1 -1
  42. package/dist/public/ui-vue.cjs +1 -1
  43. package/dist/public/ui-vue.es.js +1 -1
  44. package/dist/public/ui.cjs +1 -1
  45. package/dist/public/ui.es.js +1 -1
  46. package/dist/shared/common/Telemetry.d.ts +50 -0
  47. package/dist/shared/common/event-types.d.ts +13 -0
  48. package/dist/shared/font-system/src/bundled-face-names.d.ts +1 -0
  49. package/dist/shared/font-system/src/resolver.d.ts +1 -0
  50. package/dist/style.css +1 -1
  51. package/dist/style.layered.css +1 -1
  52. package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +17 -33
  53. package/dist/superdoc/src/components/CommentsLayer/collect-removed-comment-ids.d.ts +11 -1
  54. package/dist/superdoc/src/components/CommentsLayer/collect-tracked-change-thread.d.ts +25 -6
  55. package/dist/superdoc/src/components/CommentsLayer/comment-params.d.ts +84 -0
  56. package/dist/superdoc/src/components/CommentsLayer/comment-urls.d.ts +1 -1
  57. package/dist/superdoc/src/components/CommentsLayer/commentsList/super-comments-list.d.ts +23 -20
  58. package/dist/superdoc/src/components/CommentsLayer/helpers.d.ts +1 -4
  59. package/dist/superdoc/src/components/CommentsLayer/tracked-change-threading.d.ts +16 -1
  60. package/dist/superdoc/src/components/CommentsLayer/use-comment.d.ts +15 -95
  61. package/dist/superdoc/src/components/Whiteboard/WhiteboardLayer.vue.d.ts +4 -5
  62. package/dist/superdoc/src/components/Whiteboard/WhiteboardPage.vue.d.ts +3 -4
  63. package/dist/superdoc/src/components/Whiteboard/use-whiteboard.d.ts +30 -9
  64. package/dist/superdoc/src/components/Whiteboard/whiteboard-types.d.ts +2 -0
  65. package/dist/superdoc/src/components/surfaces/watermark-surface-runtime.d.ts +7 -7
  66. package/dist/superdoc/src/composables/use-comment-small-screen.d.ts +11 -7
  67. package/dist/superdoc/src/composables/use-compact-comment-popover.d.ts +44 -18
  68. package/dist/superdoc/src/composables/use-document.d.ts +51 -99
  69. package/dist/superdoc/src/composables/use-find-replace.d.ts +13 -3
  70. package/dist/superdoc/src/composables/use-password-prompt.d.ts +1 -1
  71. package/dist/superdoc/src/composables/use-viewport-fit.d.ts +62 -26
  72. package/dist/superdoc/src/core/SuperDoc.d.ts +15 -6
  73. package/dist/superdoc/src/core/collaboration/cdn-collaboration-comment-map.d.ts +1 -0
  74. package/dist/superdoc/src/core/collaboration/collaboration-comment-map.d.ts +2 -0
  75. package/dist/superdoc/src/core/collaboration/helpers.d.ts +1 -1
  76. package/dist/superdoc/src/core/document-open-telemetry.d.ts +1 -1
  77. package/dist/superdoc/src/core/editor-runtime/v2/v2-editor-runtime-adapter.d.ts +1 -0
  78. package/dist/superdoc/src/core/pdf/pdf-adapter.d.ts +6 -2
  79. package/dist/superdoc/src/core/types/index.d.ts +108 -43
  80. package/dist/superdoc/src/core/v2-integration/browser-peer-runtime.d.ts +5 -3
  81. package/dist/superdoc/src/core/v2-integration/cdn-engine-loader.d.ts +3 -13
  82. package/dist/superdoc/src/core/v2-integration/internal-vue-runtime.d.ts +64 -59
  83. package/dist/superdoc/src/helpers/deprecation.d.ts +12 -3
  84. package/dist/superdoc/src/helpers/object-guards.d.ts +2 -0
  85. package/dist/superdoc/src/helpers/v2-author-required-rejection.d.ts +8 -11
  86. package/dist/superdoc/src/helpers/v2-bulk-decision-event.d.ts +9 -7
  87. package/dist/superdoc/src/helpers/v2-keyboard-edit-rejection.d.ts +8 -7
  88. package/dist/superdoc/src/helpers/v2-mutation-exception.d.ts +12 -8
  89. package/dist/superdoc/src/helpers/v2-review-geometry-delivery.d.ts +22 -0
  90. package/dist/superdoc/src/helpers/v2-review-target.d.ts +11 -1
  91. package/dist/superdoc/src/helpers/v2-selection-sync.d.ts +40 -14
  92. package/dist/superdoc/src/helpers/v2-typing-mutation-event.d.ts +14 -5
  93. package/dist/superdoc/src/icons.d.ts +11 -19
  94. package/dist/superdoc/src/internal/diagnostics/translate-diagnostic.d.ts +6 -4
  95. package/dist/superdoc/src/internal/toolbar/built-in/PageNumberMenu.vue.d.ts +25 -15
  96. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarButton.vue.d.ts +1 -0
  97. package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +3 -1
  98. package/dist/superdoc/src/internal/toolbar/built-in/font-options.d.ts +15 -1
  99. package/dist/superdoc/src/internal/toolbar/built-in/font-typeahead.d.ts +37 -7
  100. package/dist/superdoc/src/internal/toolbar/built-in/general.d.ts +12 -1
  101. package/dist/superdoc/src/internal/toolbar/built-in/helpers.d.ts +9 -4
  102. package/dist/superdoc/src/internal/toolbar/built-in/list-style-buttons.d.ts +2 -2
  103. package/dist/superdoc/src/internal/toolbar/built-in/page-number-feedback.d.ts +4 -5
  104. package/dist/superdoc/src/internal/toolbar/built-in/scroll-helpers.d.ts +3 -4
  105. package/dist/superdoc/src/internal/toolbar/built-in/toolbarIcons.d.ts +78 -145
  106. package/dist/superdoc/src/internal/toolbar/built-in/url-safety.d.ts +11 -3
  107. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +4 -3
  108. package/dist/superdoc/src/internal/toolbar/image-upload.d.ts +29 -39
  109. package/dist/superdoc/src/public/content-control-ref.d.ts +12 -0
  110. package/dist/superdoc/src/public/index.d.cts +16 -0
  111. package/dist/superdoc/src/public/index.d.ts +3 -0
  112. package/dist/superdoc/src/public/ui/async-read-cache.d.ts +32 -0
  113. package/dist/superdoc/src/public/ui/block-commands.d.ts +39 -0
  114. package/dist/superdoc/src/public/ui/command-results.d.ts +39 -0
  115. package/dist/superdoc/src/public/ui/create-super-doc-ui.d.ts +1 -17
  116. package/dist/superdoc/src/public/ui/document-change-records.d.ts +7 -0
  117. package/dist/superdoc/src/public/ui/entity-rows.d.ts +14 -0
  118. package/dist/superdoc/src/public/ui/font-options.d.ts +7 -0
  119. package/dist/superdoc/src/public/ui/format-painter-helpers.d.ts +2 -8
  120. package/dist/superdoc/src/public/ui/format-painter-state.d.ts +33 -0
  121. package/dist/superdoc/src/public/ui/heavy-read-policy.d.ts +11 -0
  122. package/dist/superdoc/src/public/ui/host-events.d.ts +3 -0
  123. package/dist/superdoc/src/public/ui/inline-values.d.ts +79 -0
  124. package/dist/superdoc/src/public/ui/loose-record.d.ts +4 -0
  125. package/dist/superdoc/src/public/ui/selection-targets.d.ts +45 -0
  126. package/dist/superdoc/src/public/ui/shared-tracked-changes-catalog.d.ts +16 -0
  127. package/dist/superdoc/src/public/ui/tracked-change-ids.d.ts +51 -0
  128. package/dist/superdoc/src/public/ui/types.d.ts +12 -2
  129. package/dist/superdoc/src/public/ui/ui-bench-timing.d.ts +9 -0
  130. package/dist/superdoc/src/public/ui.d.cts +14 -0
  131. package/dist/superdoc/src/public/ui.d.ts +1 -1
  132. package/dist/superdoc/src/stores/comments-store.d.ts +23006 -542
  133. package/dist/superdoc/src/stores/helpers/comment-document-scope.d.ts +22 -0
  134. package/dist/superdoc/src/stores/helpers/comment-grouping.d.ts +1 -1
  135. package/dist/superdoc/src/stores/helpers/comment-identity.d.ts +10 -10
  136. package/dist/superdoc/src/stores/helpers/pending-selection-snapshot.d.ts +17 -0
  137. package/dist/superdoc/src/stores/helpers/review-presentation.d.ts +90 -0
  138. package/dist/superdoc/src/stores/helpers/tracked-change-compaction.d.ts +16 -0
  139. package/dist/superdoc/src/stores/helpers/tracked-change-decision.d.ts +45 -0
  140. package/dist/superdoc/src/stores/helpers/tracked-change-identity.d.ts +4 -2
  141. package/dist/superdoc/src/stores/helpers/tracked-change-row-values.d.ts +1 -8
  142. package/dist/superdoc/src/stores/helpers/tracked-change-thread-index.d.ts +1 -1
  143. package/dist/superdoc/src/stores/helpers/v2-review-adapters.d.ts +147 -0
  144. package/dist/superdoc/src/stores/superdoc-store.d.ts +12 -2895
  145. package/dist/superdoc.cjs +1019 -844
  146. package/dist/superdoc.es.js +931 -756
  147. package/dist/word-layout/src/marker-utils.d.ts +0 -5
  148. package/dist/word-layout/src/unit-conversions.d.ts +0 -1
  149. package/dist-cdn/style.layered.css +1 -1
  150. package/dist-cdn/superdoc.min.css +1 -1
  151. package/dist-cdn/superdoc.min.js +38 -42
  152. package/package.json +13 -3
  153. package/dist/document-api/src/diff/index.d.ts +0 -3
  154. package/dist/document-api/src/write/locator.d.ts +0 -24
  155. package/dist/layout-engine/painters/dom/src/features/feature-registry.d.ts +0 -41
  156. package/dist/superdoc/src/internal/toolbar/built-in/format-negation.d.ts +0 -5
  157. package/dist/superdoc/src/main.d.ts +0 -1
  158. package/dist/word-layout/src/tab-layout.d.ts +0 -193
@@ -1,59 +1,64 @@
1
- export function defineComponent(options: any, extraOptions: any): any;
2
- export function computed(...args: any[]): any;
3
- export function createApp(...args: any[]): any;
4
- export function createBlock(...args: any[]): any;
5
- export function createCommentVNode(...args: any[]): any;
6
- export function createElementBlock(...args: any[]): any;
7
- export function createElementVNode(...args: any[]): any;
8
- export function createStaticVNode(...args: any[]): any;
9
- export function createTextVNode(...args: any[]): any;
10
- export function createVNode(...args: any[]): any;
11
- export function defineAsyncComponent(...args: any[]): any;
12
- export function effectScope(...args: any[]): any;
13
- export function getCurrentInstance(...args: any[]): any;
14
- export function getCurrentScope(...args: any[]): any;
15
- export function guardReactiveProps(...args: any[]): any;
16
- export function h(...args: any[]): any;
17
- export function hasInjectionContext(...args: any[]): any;
18
- export function inject(...args: any[]): any;
19
- export function isReactive(...args: any[]): any;
20
- export function isRef(...args: any[]): any;
21
- export function markRaw(...args: any[]): any;
22
- export function mergeProps(...args: any[]): any;
23
- export function nextTick(...args: any[]): any;
24
- export function normalizeClass(...args: any[]): any;
25
- export function normalizeProps(...args: any[]): any;
26
- export function normalizeStyle(...args: any[]): any;
27
- export function onActivated(...args: any[]): any;
28
- export function onBeforeUnmount(...args: any[]): any;
29
- export function onDeactivated(...args: any[]): any;
30
- export function onMounted(...args: any[]): any;
31
- export function onScopeDispose(...args: any[]): any;
32
- export function openBlock(...args: any[]): any;
33
- export function provide(...args: any[]): any;
34
- export function reactive(...args: any[]): any;
35
- export function readonly(...args: any[]): any;
36
- export function ref(...args: any[]): any;
37
- export function renderList(...args: any[]): any;
38
- export function renderSlot(...args: any[]): any;
39
- export function resolveDirective(...args: any[]): any;
40
- export function resolveDynamicComponent(...args: any[]): any;
41
- export function shallowRef(...args: any[]): any;
42
- export function toDisplayString(...args: any[]): any;
43
- export function toRaw(...args: any[]): any;
44
- export function toRef(...args: any[]): any;
45
- export function toRefs(...args: any[]): any;
46
- export function unref(...args: any[]): any;
47
- export function useAttrs(...args: any[]): any;
48
- export function useSlots(...args: any[]): any;
49
- export function watch(...args: any[]): any;
50
- export function withCtx(...args: any[]): any;
51
- export function withDirectives(...args: any[]): any;
52
- export function withKeys(...args: any[]): any;
53
- export function withModifiers(...args: any[]): any;
54
- export function Transition(props: any, context: any): any;
55
- export const Fragment: unique symbol;
56
- export const Teleport: {};
57
- export const vModelCheckbox: {};
58
- export const vModelSelect: {};
59
- export const vModelText: {};
1
+ import type * as Vue from 'vue';
2
+ type VueRuntime = typeof Vue;
3
+ type TransitionProps = Parameters<VueRuntime['Transition']>[0];
4
+ type TransitionContext = Parameters<VueRuntime['Transition']>[1];
5
+ export declare function defineComponent(options: object, extraOptions?: object): object;
6
+ export declare const Transition: (props: TransitionProps, context: TransitionContext) => any;
7
+ export declare const Fragment: unique symbol;
8
+ export declare const Teleport: object;
9
+ export declare function computed(...args: Parameters<VueRuntime['computed']>): ReturnType<VueRuntime['computed']>;
10
+ export declare function createApp(...args: Parameters<VueRuntime['createApp']>): ReturnType<VueRuntime['createApp']>;
11
+ export declare function createBlock(...args: Parameters<VueRuntime['createBlock']>): ReturnType<VueRuntime['createBlock']>;
12
+ export declare function createCommentVNode(...args: Parameters<VueRuntime['createCommentVNode']>): ReturnType<VueRuntime['createCommentVNode']>;
13
+ export declare function createElementBlock(...args: Parameters<VueRuntime['createElementBlock']>): ReturnType<VueRuntime['createElementBlock']>;
14
+ export declare function createElementVNode(...args: Parameters<VueRuntime['createElementVNode']>): ReturnType<VueRuntime['createElementVNode']>;
15
+ export declare function createStaticVNode(...args: Parameters<VueRuntime['createStaticVNode']>): ReturnType<VueRuntime['createStaticVNode']>;
16
+ export declare function createTextVNode(...args: Parameters<VueRuntime['createTextVNode']>): ReturnType<VueRuntime['createTextVNode']>;
17
+ export declare function createVNode(...args: Parameters<VueRuntime['createVNode']>): ReturnType<VueRuntime['createVNode']>;
18
+ export declare function defineAsyncComponent(...args: Parameters<VueRuntime['defineAsyncComponent']>): ReturnType<VueRuntime['defineAsyncComponent']>;
19
+ export declare function effectScope(...args: Parameters<VueRuntime['effectScope']>): ReturnType<VueRuntime['effectScope']>;
20
+ export declare function getCurrentInstance(...args: Parameters<VueRuntime['getCurrentInstance']>): ReturnType<VueRuntime['getCurrentInstance']>;
21
+ export declare function getCurrentScope(...args: Parameters<VueRuntime['getCurrentScope']>): ReturnType<VueRuntime['getCurrentScope']>;
22
+ export declare function guardReactiveProps(...args: Parameters<VueRuntime['guardReactiveProps']>): ReturnType<VueRuntime['guardReactiveProps']>;
23
+ export declare function h(...args: Parameters<VueRuntime['h']>): ReturnType<VueRuntime['h']>;
24
+ export declare function hasInjectionContext(...args: Parameters<VueRuntime['hasInjectionContext']>): ReturnType<VueRuntime['hasInjectionContext']>;
25
+ export declare function inject(...args: Parameters<VueRuntime['inject']>): ReturnType<VueRuntime['inject']>;
26
+ export declare function isReactive(...args: Parameters<VueRuntime['isReactive']>): ReturnType<VueRuntime['isReactive']>;
27
+ export declare function isRef(...args: Parameters<VueRuntime['isRef']>): ReturnType<VueRuntime['isRef']>;
28
+ export declare function markRaw(...args: Parameters<VueRuntime['markRaw']>): ReturnType<VueRuntime['markRaw']>;
29
+ export declare function mergeProps(...args: Parameters<VueRuntime['mergeProps']>): ReturnType<VueRuntime['mergeProps']>;
30
+ export declare function nextTick(...args: Parameters<VueRuntime['nextTick']>): ReturnType<VueRuntime['nextTick']>;
31
+ export declare function normalizeClass(...args: Parameters<VueRuntime['normalizeClass']>): ReturnType<VueRuntime['normalizeClass']>;
32
+ export declare function normalizeProps(...args: Parameters<VueRuntime['normalizeProps']>): ReturnType<VueRuntime['normalizeProps']>;
33
+ export declare function normalizeStyle(...args: Parameters<VueRuntime['normalizeStyle']>): ReturnType<VueRuntime['normalizeStyle']>;
34
+ export declare function onActivated(...args: Parameters<VueRuntime['onActivated']>): ReturnType<VueRuntime['onActivated']>;
35
+ export declare function onBeforeUnmount(...args: Parameters<VueRuntime['onBeforeUnmount']>): ReturnType<VueRuntime['onBeforeUnmount']>;
36
+ export declare function onDeactivated(...args: Parameters<VueRuntime['onDeactivated']>): ReturnType<VueRuntime['onDeactivated']>;
37
+ export declare function onMounted(...args: Parameters<VueRuntime['onMounted']>): ReturnType<VueRuntime['onMounted']>;
38
+ export declare function onScopeDispose(...args: Parameters<VueRuntime['onScopeDispose']>): ReturnType<VueRuntime['onScopeDispose']>;
39
+ export declare function openBlock(...args: Parameters<VueRuntime['openBlock']>): ReturnType<VueRuntime['openBlock']>;
40
+ export declare function provide(...args: Parameters<VueRuntime['provide']>): ReturnType<VueRuntime['provide']>;
41
+ export declare function reactive(...args: Parameters<VueRuntime['reactive']>): ReturnType<VueRuntime['reactive']>;
42
+ export declare function readonly(...args: Parameters<VueRuntime['readonly']>): ReturnType<VueRuntime['readonly']>;
43
+ export declare function ref(...args: Parameters<VueRuntime['ref']>): ReturnType<VueRuntime['ref']>;
44
+ export declare function renderList(...args: Parameters<VueRuntime['renderList']>): ReturnType<VueRuntime['renderList']>;
45
+ export declare function renderSlot(...args: Parameters<VueRuntime['renderSlot']>): ReturnType<VueRuntime['renderSlot']>;
46
+ export declare function resolveDirective(...args: Parameters<VueRuntime['resolveDirective']>): ReturnType<VueRuntime['resolveDirective']>;
47
+ export declare function resolveDynamicComponent(...args: Parameters<VueRuntime['resolveDynamicComponent']>): ReturnType<VueRuntime['resolveDynamicComponent']>;
48
+ export declare function shallowRef(...args: Parameters<VueRuntime['shallowRef']>): ReturnType<VueRuntime['shallowRef']>;
49
+ export declare function toDisplayString(...args: Parameters<VueRuntime['toDisplayString']>): ReturnType<VueRuntime['toDisplayString']>;
50
+ export declare function toRaw(...args: Parameters<VueRuntime['toRaw']>): ReturnType<VueRuntime['toRaw']>;
51
+ export declare function toRef(...args: Parameters<VueRuntime['toRef']>): ReturnType<VueRuntime['toRef']>;
52
+ export declare function toRefs(...args: Parameters<VueRuntime['toRefs']>): ReturnType<VueRuntime['toRefs']>;
53
+ export declare function unref(...args: Parameters<VueRuntime['unref']>): ReturnType<VueRuntime['unref']>;
54
+ export declare function useAttrs(...args: Parameters<VueRuntime['useAttrs']>): ReturnType<VueRuntime['useAttrs']>;
55
+ export declare function useSlots(...args: Parameters<VueRuntime['useSlots']>): ReturnType<VueRuntime['useSlots']>;
56
+ export declare const vModelCheckbox: object;
57
+ export declare const vModelSelect: object;
58
+ export declare const vModelText: object;
59
+ export declare function watch(...args: Parameters<VueRuntime['watch']>): ReturnType<VueRuntime['watch']>;
60
+ export declare function withCtx(...args: Parameters<VueRuntime['withCtx']>): ReturnType<VueRuntime['withCtx']>;
61
+ export declare function withDirectives(...args: Parameters<VueRuntime['withDirectives']>): ReturnType<VueRuntime['withDirectives']>;
62
+ export declare function withKeys(...args: Parameters<VueRuntime['withKeys']>): ReturnType<VueRuntime['withKeys']>;
63
+ export declare function withModifiers(...args: Parameters<VueRuntime['withModifiers']>): ReturnType<VueRuntime['withModifiers']>;
64
+ export {};
@@ -1,4 +1,13 @@
1
- import { Editor } from '../core/types/index.js';
1
+ /**
2
+ * Deprecation utilities for steering consumers toward the Document API.
3
+ *
4
+ * ProseMirror will be removed in a future major version. These helpers emit
5
+ * one-time console warnings when deprecated properties are accessed on an
6
+ * editor instance handed to consumer callbacks (onEditorCreate, etc.).
7
+ *
8
+ * Internal code continues to use the raw Editor — only the consumer-facing
9
+ * boundary wraps the editor with a Proxy.
10
+ */
2
11
  /**
3
12
  * Log a console.warn once per key. Subsequent calls with the same key are no-ops.
4
13
  */
@@ -12,9 +21,9 @@ export declare function warnOnce(key: string, message: string): void;
12
21
  *
13
22
  * @returns Proxied editor (or the original if null/already wrapped)
14
23
  */
15
- export declare function createDeprecatedEditorProxy<T extends Editor | null | undefined>(editor: T): T;
24
+ export declare function createDeprecatedEditorProxy<T extends object | null | undefined>(editor: T): T;
16
25
  /**
17
26
  * Unwrap a potentially proxied editor back to the raw Editor instance.
18
27
  * Safe to call on an already-raw editor — returns it unchanged.
19
28
  */
20
- export declare function unwrapEditor(editor: Editor | null | undefined): Editor | null | undefined;
29
+ export declare function unwrapEditor<T extends object>(editor: T | null | undefined): T | null | undefined;
@@ -1 +1,3 @@
1
1
  export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
2
+ export declare function isObjectRecord(value: unknown): value is Record<string, unknown>;
3
+ export declare function isThenable(value: unknown): value is PromiseLike<unknown>;
@@ -1,16 +1,13 @@
1
- /**
2
- * @param {any} event - a `v2-host-event` payload.
3
- * @returns {boolean} true when the rejection means the session needs an author.
4
- */
5
- export function isV2AuthorRequiredRejection(event: any): boolean;
6
- export function createV2AuthorRequiredNotificationGate(): {
7
- shouldNotify(scope: any, event: any): boolean;
8
- clear(scope: any): void;
9
- };
1
+ import { V2MutationRejectedEvent } from './v2-mutation-exception.js';
10
2
  /** Stable, non-terminal exception code surfaced to consumers. */
11
- export const V2_AUTHOR_REQUIRED_CODE: "author-required";
3
+ export declare const V2_AUTHOR_REQUIRED_CODE = "author-required";
12
4
  /**
13
5
  * Content-safe, actionable message. Contains no document text, imported author,
14
6
  * email, path, or source key — only how to fix the configuration.
15
7
  */
16
- export const V2_AUTHOR_REQUIRED_MESSAGE: "This edit needs an author identity. Set `user.name` in your SuperDoc configuration and reopen the document to make tracked or revision-overlapping edits.";
8
+ export declare const V2_AUTHOR_REQUIRED_MESSAGE = "This edit needs an author identity. Set `user.name` in your SuperDoc configuration and reopen the document to make tracked or revision-overlapping edits.";
9
+ export declare function isV2AuthorRequiredRejection(event: unknown): event is V2MutationRejectedEvent;
10
+ export declare function createV2AuthorRequiredNotificationGate(): {
11
+ shouldNotify(scope: string | null | undefined, event: unknown): boolean;
12
+ clear(scope: string | null | undefined): void;
13
+ };
@@ -1,7 +1,9 @@
1
- export function toV2BulkDecisionEvent(documentId: any, fact: any): {
2
- documentId: string | null;
3
- decision: any;
4
- requestedCount: any;
5
- successfulCount: any;
6
- permissionDeniedCount: any;
7
- } | null;
1
+ import { SuperDocTrackedChangesBulkDecisionPayload } from '../core/types/index.js';
2
+ export type V2TrackedChangeBulkDecisionFact = {
3
+ schemaVersion: number;
4
+ decision: string;
5
+ requestedCount: number;
6
+ appliedCount: number;
7
+ deniedCount: number;
8
+ };
9
+ export declare function toV2BulkDecisionEvent(documentId: string | null | undefined, fact: V2TrackedChangeBulkDecisionFact | null | undefined): SuperDocTrackedChangesBulkDecisionPayload | null;
@@ -1,13 +1,14 @@
1
- export function isV2KeyboardEditRejection(event: any): boolean;
2
- export function createV2KeyboardEditRejectionException(documentId: any, event: any): {
1
+ import { V2MutationRejectedEvent } from './v2-mutation-exception.js';
2
+ export declare const V2_EDIT_REJECTED_CODE = "edit-rejected";
3
+ export declare const V2_EDIT_REJECTED_MESSAGE = "This edit couldn\u2019t be completed. Adjust the selection and try again.";
4
+ export declare function isV2KeyboardEditRejection(event: unknown): event is V2MutationRejectedEvent;
5
+ export declare function createV2KeyboardEditRejectionException(documentId: string | null | undefined, event?: unknown): {
3
6
  documentId?: string | undefined;
4
7
  error: Error;
5
8
  code: string;
6
9
  editor: null;
7
10
  };
8
- export function createV2KeyboardEditRejectionNotificationGate(): {
9
- shouldNotify(scope: any, event: any): boolean;
10
- clear(scope: any): void;
11
+ export declare function createV2KeyboardEditRejectionNotificationGate(): {
12
+ shouldNotify(scope: string | null | undefined, event: unknown): boolean;
13
+ clear(scope: string | null | undefined): void;
11
14
  };
12
- export const V2_EDIT_REJECTED_CODE: "edit-rejected";
13
- export const V2_EDIT_REJECTED_MESSAGE: "This edit couldn\u2019t be completed. Adjust the selection and try again.";
@@ -1,10 +1,14 @@
1
- export function createV2MutationRejectionCause(event: any): {
2
- editableCommandKind?: any;
3
- inputKind?: any;
4
- reason?: string | undefined;
5
- failureSource?: any;
1
+ export type V2MutationRejectedEvent = Record<string, unknown> & {
2
+ type: 'mutation:rejected';
6
3
  };
7
- export function createV2MutationRejectionNotificationGate(matches: any): {
8
- shouldNotify(scope: any, event: any): boolean;
9
- clear(scope: any): void;
4
+ export type V2MutationRejectionCause = {
5
+ failureSource?: string;
6
+ reason?: string;
7
+ inputKind?: string;
8
+ editableCommandKind?: string;
9
+ };
10
+ export declare function createV2MutationRejectionCause(event: unknown): V2MutationRejectionCause;
11
+ export declare function createV2MutationRejectionNotificationGate(matches: (event: unknown) => event is V2MutationRejectedEvent): {
12
+ shouldNotify(scope: string | null | undefined, event: unknown): boolean;
13
+ clear(scope: string | null | undefined): void;
10
14
  };
@@ -0,0 +1,22 @@
1
+ export interface ReviewGeometryDeliveryPayload extends Readonly<Record<string, unknown>> {
2
+ documentEpoch?: unknown;
3
+ paintEpoch?: unknown;
4
+ commitSequence?: unknown;
5
+ generation?: unknown;
6
+ pageIndices?: unknown;
7
+ zoomScale?: unknown;
8
+ reviewGeometry?: unknown;
9
+ }
10
+ type Render = {
11
+ mountContainer: HTMLElement | null;
12
+ documentId?: string | null;
13
+ epoch?: number | null;
14
+ };
15
+ export declare function createReviewGeometryDelivery<T extends Render>(deliver: (value: T, payload: ReviewGeometryDeliveryPayload) => void): {
16
+ notify: (documentId: string, payload: ReviewGeometryDeliveryPayload, current: T | null, ready?: boolean) => boolean;
17
+ observe: (current: T) => void;
18
+ flush(current: T): boolean;
19
+ replay(current: T): boolean;
20
+ reset(): void;
21
+ };
22
+ export {};
@@ -1,7 +1,17 @@
1
+ type V2ReviewTargetInput = {
2
+ entityId?: unknown;
3
+ entityType?: unknown;
4
+ };
5
+ type V2ReviewTargetComment = {
6
+ trackedChange?: unknown;
7
+ commentId?: unknown;
8
+ importedId?: unknown;
9
+ };
1
10
  /**
2
11
  * Resolve the comments-store identity for a document-origin v2 review target.
3
12
  * Painted review carriers can become interactive before the asynchronous row
4
13
  * hydration finishes. In that window the host's canonical entity id remains
5
14
  * the correct pending active identity; once hydrated, the row aliases win.
6
15
  */
7
- export function resolveV2ReviewTargetCommentId(target: any, getComment: any): any;
16
+ export declare function resolveV2ReviewTargetCommentId(target: V2ReviewTargetInput | null | undefined, getComment: ((id: string) => V2ReviewTargetComment | null | undefined) | null | undefined): string | null;
17
+ export {};
@@ -1,15 +1,41 @@
1
- export function isV2RangeSnapshot(snapshot: {
2
- anchor?: {
3
- blockId?: unknown;
4
- blockOffset?: unknown;
5
- };
6
- focus?: {
7
- blockId?: unknown;
8
- blockOffset?: unknown;
9
- };
10
- } | null | undefined): boolean;
11
- export function hasOutsideV2DomRangeSelection(selection: Selection | null | undefined, root: Node | null | undefined): boolean;
12
- export function shouldPreserveHostV2Selection(documentMode: string | null | undefined, hostSnapshot: unknown): boolean;
13
- export function shouldRetainV2FloatingSelection(hasHostRange: boolean, selectionPosition: {
1
+ type V2SelectionPoint = {
2
+ blockId?: unknown;
3
+ blockOffset?: unknown;
4
+ };
5
+ type V2RangeSnapshotInput = {
6
+ anchor?: V2SelectionPoint | null;
7
+ focus?: V2SelectionPoint | null;
8
+ };
9
+ /**
10
+ * A logical v2 selection snapshot represents a non-empty range when its anchor
11
+ * and focus point at different block positions. Mirrors the range check the v2
12
+ * shell uses when it emits `v2-selection-changed`.
13
+ */
14
+ export declare const isV2RangeSnapshot: (snapshot: V2RangeSnapshotInput | null | undefined) => boolean;
15
+ /**
16
+ * Detect a real browser text selection whose endpoints are outside the active
17
+ * v2 mount. Editable host selections can have no native DOM range, so an
18
+ * absent range must not count as an outside selection.
19
+ */
20
+ export declare const hasOutsideV2DomRangeSelection: (selection: Selection | null | undefined, root: Node | null | undefined) => boolean;
21
+ /**
22
+ * Decide whether the DOM-selection sync pass should keep the affordance driven
23
+ * by the v2 host's logical selection instead of clearing it.
24
+ *
25
+ * In editable modes the host owns pointer text selection, so native DOM ranges
26
+ * may be absent or stale. In that case the pointerup sync must defer to the
27
+ * host snapshot rather than clobber the selection the host just published.
28
+ * Only editable modes use the host snapshot. Viewing mode keeps native DOM
29
+ * selection, and unknown modes should not preserve stale host state.
30
+ */
31
+ export declare const shouldPreserveHostV2Selection: (documentMode: string | null | undefined, hostSnapshot: V2RangeSnapshotInput | null | undefined) => boolean;
32
+ /**
33
+ * A V2 paint can briefly have no DOM anchor while a selected control is being
34
+ * rebuilt. Keep an already-positioned comment affordance during that gap when
35
+ * the host still owns a range; otherwise the button unmounts and remounts on
36
+ * consecutive paint frames, making it blink and intercepting its own click.
37
+ */
38
+ export declare const shouldRetainV2FloatingSelection: (hasHostRange: boolean, selectionPosition: {
14
39
  source?: unknown;
15
- } | null | undefined): boolean;
40
+ } | null | undefined) => boolean;
41
+ export {};
@@ -1,5 +1,14 @@
1
- export function isV2EditableTextMutationEvent(event: {
2
- type?: string;
3
- origin?: string;
4
- editableCommandKind?: string;
5
- } | null | undefined): boolean;
1
+ /**
2
+ * True when a forwarded v2 host event is a committed editable-input mutation
3
+ * of the sustained-typing class, i.e. review-row hydration for it should be
4
+ * debounced rather than fired immediately.
5
+ *
6
+ * Events without a forwarded `editableCommandKind` (programmatic Document API
7
+ * mutations, history commits, unclassified structural commands) return false
8
+ * so they keep hydrating immediately.
9
+ */
10
+ export declare const isV2EditableTextMutationEvent: (event: {
11
+ type?: unknown;
12
+ origin?: unknown;
13
+ editableCommandKind?: unknown;
14
+ } | null | undefined) => boolean;
@@ -1,19 +1,11 @@
1
- import { default as commentIconSvg } from '../../../shared/common/icons/comment-solid.svg?raw';
2
- import { default as caretDownIconSvg } from '../../../shared/common/icons/caret-down-solid.svg?raw';
3
- import { default as userCheckIconSvg } from '../../../shared/common/icons/user-check-solid.svg?raw';
4
- import { default as usersIconSvg } from '../../../shared/common/icons/users-solid.svg?raw';
5
- import { default as checkIconSvg } from '../../../shared/common/icons/check-solid.svg?raw';
6
- import { default as xmarkIconSvg } from '../../../shared/common/icons/xmark-solid.svg?raw';
7
- import { default as ellipsisVerticalSvg } from '../../../shared/common/icons/ellipsis-vertical-solid.svg?raw';
8
- import { default as rotateLeftSvg } from '../../../shared/common/icons/rotate-left-solid.svg?raw';
9
- export namespace superdocIcons {
10
- export { commentIconSvg as comment };
11
- export { caretDownIconSvg as caretDown };
12
- export { userCheckIconSvg as internal };
13
- export { usersIconSvg as external };
14
- export { checkIconSvg as markDone };
15
- export { checkIconSvg as acceptChange };
16
- export { xmarkIconSvg as rejectChange };
17
- export { ellipsisVerticalSvg as overflow };
18
- export { rotateLeftSvg as reopen };
19
- }
1
+ export declare const superdocIcons: {
2
+ comment: string;
3
+ caretDown: string;
4
+ internal: string;
5
+ external: string;
6
+ markDone: string;
7
+ acceptChange: string;
8
+ rejectChange: string;
9
+ overflow: string;
10
+ reopen: string;
11
+ };
@@ -13,9 +13,9 @@ type RenderReadinessDiagnostic = {
13
13
  reason?: string;
14
14
  severity?: string;
15
15
  error?: {
16
- name?: string;
17
- message?: string;
18
- stack?: string;
16
+ name?: unknown;
17
+ message?: unknown;
18
+ stack?: unknown;
19
19
  };
20
20
  };
21
21
  /**
@@ -27,7 +27,9 @@ export declare function translateUnzipDiagnostic(record: DiagnosticRecord | null
27
27
  * Translates a `V2RenderReadinessDiagnostic`-shaped object (render stage)
28
28
  * into a public diagnostic payload, or `null` if out of scope.
29
29
  */
30
- export declare function translateRenderReadinessDiagnostic(diag: RenderReadinessDiagnostic | null | undefined, ctx?: DiagnosticTranslationContext): SuperDocExceptionDiagnosticPayload | null;
30
+ export declare function translateRenderReadinessDiagnostic(diag: RenderReadinessDiagnostic | null | undefined, ctx?: DiagnosticTranslationContext): (SuperDocExceptionDiagnosticPayload & {
31
+ error: Error;
32
+ }) | null;
31
33
  /**
32
34
  * Translates a boot/open failure into a public diagnostic payload, or
33
35
  * `null` if out of scope.
@@ -1,6 +1,16 @@
1
1
  import { PropType } from 'vue';
2
2
  import { HeaderFooterKind, HeaderFooterPageNumberAlignment, HeaderFooterPageNumbersInfo, SectionPageNumberingFormat } from '../../../../../document-api/src/index.js';
3
3
  import { CommandExecutionResult, CommandState } from '../../../public/ui/types.js';
4
+ type CommandReceipt = Exclude<CommandExecutionResult, boolean>;
5
+ type FailedCommandReceipt = Extract<CommandReceipt, {
6
+ success: false;
7
+ }>;
8
+ type PageNumberCommandResult = boolean | Pick<Extract<CommandReceipt, {
9
+ success: true;
10
+ }>, 'success'> | (Pick<FailedCommandReceipt, 'success'> & {
11
+ failure: Pick<FailedCommandReceipt['failure'], 'code' | 'details'>;
12
+ });
13
+ type PageNumberCommandState = Pick<CommandState, 'enabled'> & Partial<CommandState>;
4
14
  type PagePosition = 'top' | 'bottom';
5
15
  interface PageNumberChoice {
6
16
  position: PagePosition;
@@ -26,12 +36,12 @@ type PageNumberMenuOutcome = {
26
36
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
27
37
  /** Command state of `page-numbers-apply`, read when the popover opens. */
28
38
  pageNumbersState: {
29
- type: PropType<CommandState | null>;
39
+ type: PropType<PageNumberCommandState | null>;
30
40
  default: null;
31
41
  };
32
42
  /** Command state of `page-number-insert` (insert at the header/footer cursor). */
33
43
  atCursorState: {
34
- type: PropType<CommandState | null>;
44
+ type: PropType<PageNumberCommandState | null>;
35
45
  default: null;
36
46
  };
37
47
  /** Header/footer structure cannot be suggested, so numbering needs Editing. */
@@ -51,17 +61,17 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
51
61
  };
52
62
  /** Runs `page-numbers-apply` with `{ position, alignment?, showOnFirstPage?, format?, start? }`. */
53
63
  applyPageNumbers: {
54
- type: PropType<(choice: PageNumberChoice) => Promise<CommandExecutionResult>>;
64
+ type: PropType<(choice: PageNumberChoice) => Promise<PageNumberCommandResult>>;
55
65
  required: true;
56
66
  };
57
67
  /** Runs `page-numbers-remove`. */
58
68
  removePageNumbers: {
59
- type: PropType<() => Promise<CommandExecutionResult>>;
69
+ type: PropType<() => Promise<PageNumberCommandResult>>;
60
70
  required: true;
61
71
  };
62
72
  /** Runs `page-number-insert` at the header/footer cursor. */
63
73
  insertAtCursor: {
64
- type: PropType<() => Promise<CommandExecutionResult>>;
74
+ type: PropType<() => Promise<PageNumberCommandResult>>;
65
75
  required: true;
66
76
  };
67
77
  /** Closes the popover after a successful action. */
@@ -71,18 +81,18 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
71
81
  };
72
82
  /** Last choice made in this session, used when the section has no numbers yet. */
73
83
  initialChoice: {
74
- type: PropType<RememberedChoice | null>;
84
+ type: PropType<Partial<RememberedChoice> | null>;
75
85
  default: null;
76
86
  };
77
87
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
78
88
  /** Command state of `page-numbers-apply`, read when the popover opens. */
79
89
  pageNumbersState: {
80
- type: PropType<CommandState | null>;
90
+ type: PropType<PageNumberCommandState | null>;
81
91
  default: null;
82
92
  };
83
93
  /** Command state of `page-number-insert` (insert at the header/footer cursor). */
84
94
  atCursorState: {
85
- type: PropType<CommandState | null>;
95
+ type: PropType<PageNumberCommandState | null>;
86
96
  default: null;
87
97
  };
88
98
  /** Header/footer structure cannot be suggested, so numbering needs Editing. */
@@ -102,17 +112,17 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
102
112
  };
103
113
  /** Runs `page-numbers-apply` with `{ position, alignment?, showOnFirstPage?, format?, start? }`. */
104
114
  applyPageNumbers: {
105
- type: PropType<(choice: PageNumberChoice) => Promise<CommandExecutionResult>>;
115
+ type: PropType<(choice: PageNumberChoice) => Promise<PageNumberCommandResult>>;
106
116
  required: true;
107
117
  };
108
118
  /** Runs `page-numbers-remove`. */
109
119
  removePageNumbers: {
110
- type: PropType<() => Promise<CommandExecutionResult>>;
120
+ type: PropType<() => Promise<PageNumberCommandResult>>;
111
121
  required: true;
112
122
  };
113
123
  /** Runs `page-number-insert` at the header/footer cursor. */
114
124
  insertAtCursor: {
115
- type: PropType<() => Promise<CommandExecutionResult>>;
125
+ type: PropType<() => Promise<PageNumberCommandResult>>;
116
126
  required: true;
117
127
  };
118
128
  /** Closes the popover after a successful action. */
@@ -122,15 +132,15 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
122
132
  };
123
133
  /** Last choice made in this session, used when the section has no numbers yet. */
124
134
  initialChoice: {
125
- type: PropType<RememberedChoice | null>;
135
+ type: PropType<Partial<RememberedChoice> | null>;
126
136
  default: null;
127
137
  };
128
138
  }>> & Readonly<{}>, {
129
139
  suggesting: boolean;
130
- pageNumbersState: CommandState | null;
131
- atCursorState: CommandState | null;
140
+ pageNumbersState: PageNumberCommandState | null;
141
+ atCursorState: PageNumberCommandState | null;
132
142
  inHeaderFooter: boolean;
133
143
  loadCurrent: () => Promise<HeaderFooterPageNumbersInfo | null>;
134
- initialChoice: RememberedChoice | null;
144
+ initialChoice: Partial<RememberedChoice> | null;
135
145
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
136
146
  export default _default;
@@ -16,6 +16,7 @@ interface ToolbarButtonItem {
16
16
  attributes: Ref<{
17
17
  className?: unknown;
18
18
  ariaLabel?: string;
19
+ ariaBusy?: boolean;
19
20
  }>;
20
21
  nestedOptions?: Ref<{
21
22
  label?: string;
@@ -1,7 +1,8 @@
1
1
  import { DocumentFontOption, FontFamilyOption } from '../../../../../shared/font-system/src/index.js';
2
2
  import { ToolbarFontOption } from '../../../core/types/index.js';
3
3
  export declare const TOOLBAR_FONTS: ToolbarFontOption[];
4
- export declare function composeToolbarFontOptions(documentOptions: readonly DocumentFontOption[] | null | undefined, configFonts?: readonly ToolbarFontOption[]): readonly ToolbarFontOption[] | undefined;
4
+ type ToolbarDocumentFontOption = Pick<DocumentFontOption, 'logicalFamily' | 'previewFamily'>;
5
+ export declare function composeToolbarFontOptions(documentOptions: readonly ToolbarDocumentFontOption[] | null | undefined, configFonts?: readonly ToolbarFontOption[]): readonly ToolbarFontOption[] | undefined;
5
6
  export declare function mapFontFamilyOptionsToToolbar(options: readonly FontFamilyOption[] | null | undefined): ToolbarFontOption[] | undefined;
6
7
  export declare const TOOLBAR_FONT_SIZES: {
7
8
  label: string;
@@ -16,3 +17,4 @@ export declare const RESPONSIVE_BREAKPOINTS: {
16
17
  lg: number;
17
18
  xl: number;
18
19
  };
20
+ export {};
@@ -1 +1,15 @@
1
- export function normalizeFontOption(option: any): any;
1
+ import { ToolbarFontOption } from '../../../core/types/index.js';
2
+ /**
3
+ * Normalize a font dropdown option so each row renders in its own typeface.
4
+ *
5
+ * Consumers can pass a minimal `{ label, key }` shape. The toolbar dropdown
6
+ * spreads `option.props` onto each rendered `<li>`, so without an inline
7
+ * `style.fontFamily` every row inherits the toolbar's UI font and the
8
+ * dropdown loses its visual font preview. This fills that in from
9
+ * `props.style.fontFamily` → `label` → `key` and keeps the existing
10
+ * `data-item` hook that e2e selectors rely on.
11
+ *
12
+ * Idempotent: if `props.style.fontFamily` and `data-item` are already set,
13
+ * the option is returned with those values preserved.
14
+ */
15
+ export declare const normalizeFontOption: <T extends ToolbarFontOption>(option: T) => T;