superdoc 2.29.0-next.3 → 2.29.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 (175) hide show
  1. package/dist/chunks/{FindReplaceSurface-BKVHzhQ4.es.js → FindReplaceSurface-B_5ggdWg.es.js} +1 -1
  2. package/dist/chunks/{FindReplaceSurface-BNDrJ6VS.cjs → FindReplaceSurface-fVHxPXtn.cjs} +1 -1
  3. package/dist/chunks/{PasswordPromptSurface-6mF6Azda.es.js → PasswordPromptSurface-CZqhDQQ1.es.js} +1 -1
  4. package/dist/chunks/{PasswordPromptSurface-BNkaztaP.cjs → PasswordPromptSurface-x8GNmMJT.cjs} +1 -1
  5. package/dist/chunks/{PdfViewer-D4lVeOJu.es.js → PdfViewer-CW09MNrB.es.js} +70 -105
  6. package/dist/chunks/{PdfViewer-boENOZdF.cjs → PdfViewer-CkrAHpC-.cjs} +74 -109
  7. package/dist/chunks/{_plugin-vue_export-helper-6MBoygIY.cjs → _plugin-vue_export-helper-BkbCxNeT.cjs} +31 -7
  8. package/dist/chunks/{_plugin-vue_export-helper-CsJQtMvr.es.js → _plugin-vue_export-helper-DRPRMkeA.es.js} +20 -8
  9. package/dist/chunks/{constants-DpXuDx_g.cjs → constants-BeeNZoQp.cjs} +1 -1
  10. package/dist/chunks/{constants-B6VBlmKp.es.js → constants-BvNs_ybI.es.js} +1 -1
  11. package/dist/chunks/{create-super-doc-ui-BFt8agAI.es.js → create-super-doc-ui-Dc8dQAMc.es.js} +89 -137
  12. package/dist/chunks/{create-super-doc-ui-BAGOnYGM.cjs → create-super-doc-ui-L60GhVAX.cjs} +211 -259
  13. package/dist/collaboration-upgrade-engine.cjs +1 -1
  14. package/dist/collaboration-upgrade-engine.es.js +1 -1
  15. package/dist/document-api/src/capabilities/html-markdown-support.d.ts +4 -6
  16. package/dist/document-api/src/comments/comments.d.ts +2 -0
  17. package/dist/document-api/src/contract/command-catalog.d.ts +1 -1
  18. package/dist/document-api/src/contract/operation-definitions.d.ts +2 -2
  19. package/dist/document-api/src/contract/operation-registry.d.ts +10 -9
  20. package/dist/document-api/src/index.d.ts +8 -7
  21. package/dist/document-api/src/insert/insert.d.ts +2 -2
  22. package/dist/document-api/src/replace/replace.d.ts +3 -2
  23. package/dist/document-api/src/types/address.d.ts +3 -0
  24. package/dist/document-api/src/types/temporary-mutation.d.ts +5 -1
  25. package/dist/document-api/src/write/write.d.ts +12 -6
  26. package/dist/public/ui-react.cjs +1 -1
  27. package/dist/public/ui-react.es.js +1 -1
  28. package/dist/public/ui-vue.cjs +1 -1
  29. package/dist/public/ui-vue.es.js +1 -1
  30. package/dist/public/ui.cjs +1 -1
  31. package/dist/public/ui.es.js +1 -1
  32. package/dist/style.css +1 -1
  33. package/dist/style.layered.css +1 -1
  34. package/dist/superdoc/src/SuperDoc.vue.d.ts +132 -58
  35. package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +28 -13
  36. package/dist/superdoc/src/components/CommentsLayer/collect-removed-comment-ids.d.ts +11 -1
  37. package/dist/superdoc/src/components/CommentsLayer/collect-tracked-change-thread.d.ts +19 -2
  38. package/dist/superdoc/src/components/CommentsLayer/comment-urls.d.ts +1 -1
  39. package/dist/superdoc/src/components/CommentsLayer/commentsList/super-comments-list.d.ts +23 -20
  40. package/dist/superdoc/src/components/CommentsLayer/floating-comment-positioning.d.ts +24 -23
  41. package/dist/superdoc/src/components/CommentsLayer/helpers.d.ts +1 -4
  42. package/dist/superdoc/src/components/CommentsLayer/tracked-change-threading.d.ts +16 -2
  43. package/dist/superdoc/src/components/CommentsLayer/use-comment.d.ts +28 -13
  44. package/dist/superdoc/src/components/PdfViewer/PdfViewer.vue.d.ts +132 -45
  45. package/dist/superdoc/src/components/PdfViewer/PdfViewerDocument.vue.d.ts +62 -16
  46. package/dist/superdoc/src/components/PdfViewer/PdfViewerPage.vue.d.ts +77 -17
  47. package/dist/superdoc/src/components/PdfViewer/pdf-viewer-types.d.ts +45 -0
  48. package/dist/superdoc/src/components/Whiteboard/WhiteboardLayer.vue.d.ts +80 -16
  49. package/dist/superdoc/src/components/Whiteboard/WhiteboardPage.vue.d.ts +48 -13
  50. package/dist/superdoc/src/components/Whiteboard/use-whiteboard.d.ts +30 -15
  51. package/dist/superdoc/src/components/Whiteboard/whiteboard-types.d.ts +13 -0
  52. package/dist/superdoc/src/components/surfaces/focusable-selector.d.ts +1 -5
  53. package/dist/superdoc/src/components/surfaces/watermark-surface-runtime.d.ts +7 -7
  54. package/dist/superdoc/src/composables/find-shortcut-owner.d.ts +16 -9
  55. package/dist/superdoc/src/composables/replace-continuation.d.ts +11 -15
  56. package/dist/superdoc/src/composables/use-comment-small-screen.d.ts +11 -7
  57. package/dist/superdoc/src/composables/use-compact-comment-popover.d.ts +44 -18
  58. package/dist/superdoc/src/composables/use-document.d.ts +1210 -30
  59. package/dist/superdoc/src/composables/use-field.d.ts +88 -25
  60. package/dist/superdoc/src/composables/use-find-replace.d.ts +13 -3
  61. package/dist/superdoc/src/composables/use-password-prompt.d.ts +23 -24
  62. package/dist/superdoc/src/composables/use-viewport-fit.d.ts +62 -26
  63. package/dist/superdoc/src/composables/useUiFontFamily.d.ts +3 -11
  64. package/dist/superdoc/src/core/SuperDoc.d.ts +4 -4
  65. package/dist/superdoc/src/core/collaboration/collaboration-comments.d.ts +9 -4
  66. package/dist/superdoc/src/core/collaboration/helpers.d.ts +20 -3
  67. package/dist/superdoc/src/core/collaboration/permissions.d.ts +15 -10
  68. package/dist/superdoc/src/core/collaboration/resolve-v2-collaboration-target.d.ts +4 -3
  69. package/dist/superdoc/src/core/collaboration/v2-awareness-bridge.d.ts +2 -1
  70. package/dist/superdoc/src/core/config/merge-comments-config.d.ts +1 -5
  71. package/dist/superdoc/src/core/config/merge-defined.d.ts +3 -8
  72. package/dist/superdoc/src/core/config/normalize-hyperlinks-config.d.ts +7 -12
  73. package/dist/superdoc/src/core/config/normalize-surfaces-config.d.ts +9 -12
  74. package/dist/superdoc/src/core/config/normalize-ui-config.d.ts +1 -12
  75. package/dist/superdoc/src/core/create-app.d.ts +13 -24
  76. package/dist/superdoc/src/core/editor-runtime/conformance/fake-v2-runtime.d.ts +2 -1
  77. package/dist/superdoc/src/core/editor-runtime/editor-runtime-registry.d.ts +2 -1
  78. package/dist/superdoc/src/core/editor-runtime/index.d.ts +1 -1
  79. package/dist/superdoc/src/core/editor-runtime/types.d.ts +2 -1
  80. package/dist/superdoc/src/core/editor-runtime/v2/v2-session-shortcut-routes.d.ts +1 -1
  81. package/dist/superdoc/src/core/helpers/export.d.ts +3 -2
  82. package/dist/superdoc/src/core/helpers/file.d.ts +8 -45
  83. package/dist/superdoc/src/core/helpers/normalize-track-changes-config.d.ts +6 -60
  84. package/dist/superdoc/src/core/pdf/helpers/constants.d.ts +2 -2
  85. package/dist/superdoc/src/core/pdf/helpers/floor.d.ts +1 -1
  86. package/dist/superdoc/src/core/pdf/helpers/range.d.ts +1 -1
  87. package/dist/superdoc/src/core/pdf/helpers/read-file.d.ts +1 -1
  88. package/dist/superdoc/src/core/pdf/pdf-adapter.d.ts +28 -61
  89. package/dist/superdoc/src/core/superdoc-ui-owner.d.ts +1 -1
  90. package/dist/superdoc/src/core/surface-manager.d.ts +21 -83
  91. package/dist/superdoc/src/core/types/index.d.ts +41 -23
  92. package/dist/superdoc/src/core/v2-integration/browser-peer-runtime.d.ts +5 -3
  93. package/dist/superdoc/src/core/v2-integration/cdn-engine-loader.d.ts +3 -13
  94. package/dist/superdoc/src/core/v2-integration/internal-vue-runtime.d.ts +64 -59
  95. package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +10 -10
  96. package/dist/superdoc/src/core/whiteboard/Whiteboard.d.ts +22 -208
  97. package/dist/superdoc/src/core/whiteboard/WhiteboardPage.d.ts +163 -189
  98. package/dist/superdoc/src/core/whiteboard/helpers/createTextarea.d.ts +14 -1
  99. package/dist/superdoc/src/core/whiteboard/helpers/flattenPoints.d.ts +1 -1
  100. package/dist/superdoc/src/core/whiteboard/helpers/getRandomId.d.ts +1 -1
  101. package/dist/superdoc/src/helpers/comment-focus.d.ts +21 -4
  102. package/dist/superdoc/src/helpers/deprecation.d.ts +5 -11
  103. package/dist/superdoc/src/helpers/interaction-trace.d.ts +7 -24
  104. package/dist/superdoc/src/helpers/mark-raw-component.d.ts +1 -0
  105. package/dist/superdoc/src/helpers/object-guards.d.ts +2 -5
  106. package/dist/superdoc/src/helpers/selection-source.d.ts +1 -1
  107. package/dist/superdoc/src/helpers/use-selection.d.ts +35 -15
  108. package/dist/superdoc/src/helpers/v2-author-required-rejection.d.ts +8 -11
  109. package/dist/superdoc/src/helpers/v2-bulk-decision-event.d.ts +9 -7
  110. package/dist/superdoc/src/helpers/v2-keyboard-edit-rejection.d.ts +8 -7
  111. package/dist/superdoc/src/helpers/v2-mutation-exception.d.ts +12 -8
  112. package/dist/superdoc/src/helpers/v2-review-target.d.ts +11 -1
  113. package/dist/superdoc/src/helpers/v2-selection-sync.d.ts +40 -14
  114. package/dist/superdoc/src/helpers/v2-typing-mutation-event.d.ts +14 -5
  115. package/dist/superdoc/src/icons.d.ts +11 -19
  116. package/dist/superdoc/src/internal/diagnostics/diagnostic-dedupe.d.ts +6 -15
  117. package/dist/superdoc/src/internal/diagnostics/translate-diagnostic.d.ts +6 -4
  118. package/dist/superdoc/src/internal/toolbar/built-in/AIWriter.vue.d.ts +2 -2
  119. package/dist/superdoc/src/internal/toolbar/built-in/ButtonGroup.vue.d.ts +4 -24
  120. package/dist/superdoc/src/internal/toolbar/built-in/FontFamilyCombobox.vue.d.ts +34 -0
  121. package/dist/superdoc/src/internal/toolbar/built-in/FontSizeCombobox.vue.d.ts +34 -0
  122. package/dist/superdoc/src/internal/toolbar/built-in/LinkInput.vue.d.ts +1 -1
  123. package/dist/superdoc/src/internal/toolbar/built-in/PageNumberMenu.vue.d.ts +25 -15
  124. package/dist/superdoc/src/internal/toolbar/built-in/Toolbar.vue.d.ts +9 -3
  125. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarComboBox.vue.d.ts +12 -14
  126. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarDropdown.vue.d.ts +1 -11
  127. package/dist/superdoc/src/internal/toolbar/built-in/color-dropdown-helpers.d.ts +9 -19
  128. package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +14 -45
  129. package/dist/superdoc/src/internal/toolbar/built-in/default-items.d.ts +34 -17
  130. package/dist/superdoc/src/internal/toolbar/built-in/font-options.d.ts +15 -1
  131. package/dist/superdoc/src/internal/toolbar/built-in/font-typeahead.d.ts +37 -7
  132. package/dist/superdoc/src/internal/toolbar/built-in/format-negation.d.ts +10 -4
  133. package/dist/superdoc/src/internal/toolbar/built-in/general.d.ts +12 -1
  134. package/dist/superdoc/src/internal/toolbar/built-in/helpers.d.ts +9 -4
  135. package/dist/superdoc/src/internal/toolbar/built-in/list-style-buttons.d.ts +2 -2
  136. package/dist/superdoc/src/internal/toolbar/built-in/page-number-feedback.d.ts +4 -5
  137. package/dist/superdoc/src/internal/toolbar/built-in/scroll-helpers.d.ts +3 -4
  138. package/dist/superdoc/src/internal/toolbar/built-in/toolbar-focus-helpers.d.ts +10 -2
  139. package/dist/superdoc/src/internal/toolbar/built-in/toolbarIcons.d.ts +78 -145
  140. package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +61 -61
  141. package/dist/superdoc/src/internal/toolbar/built-in/url-safety.d.ts +11 -3
  142. package/dist/superdoc/src/internal/toolbar/built-in/use-toolbar-item.d.ts +110 -48
  143. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +11 -30
  144. package/dist/superdoc/src/internal/toolbar/compatibility-catalog.d.ts +4 -3
  145. package/dist/superdoc/src/internal/toolbar/image-upload.d.ts +29 -39
  146. package/dist/superdoc/src/internal/toolbar/toolbar-item-aliases.d.ts +1 -1
  147. package/dist/superdoc/src/public/browser-document-api.d.ts +5 -4
  148. package/dist/superdoc/src/public/index.d.cts +26 -0
  149. package/dist/superdoc/src/public/index.d.ts +13 -0
  150. package/dist/superdoc/src/public/ui/commands.d.ts +14 -13
  151. package/dist/superdoc/src/public/ui/create-super-doc-ui.d.ts +1 -1
  152. package/dist/superdoc/src/public/ui/entity-at.d.ts +2 -1
  153. package/dist/superdoc/src/public/ui/format-painter-helpers.d.ts +2 -8
  154. package/dist/superdoc/src/public/ui/style-match-patch.d.ts +2 -2
  155. package/dist/superdoc/src/public/ui/types.d.ts +1 -1
  156. package/dist/superdoc/src/stores/comments-store.d.ts +231 -105
  157. package/dist/superdoc/src/stores/helpers/comment-document-scope.d.ts +22 -0
  158. package/dist/superdoc/src/stores/helpers/comment-grouping.d.ts +30 -0
  159. package/dist/superdoc/src/stores/helpers/comment-identity.d.ts +40 -0
  160. package/dist/superdoc/src/stores/helpers/floating-comment-instances.d.ts +48 -13
  161. package/dist/superdoc/src/stores/helpers/pending-selection-snapshot.d.ts +17 -0
  162. package/dist/superdoc/src/stores/helpers/tracked-change-compaction.d.ts +16 -0
  163. package/dist/superdoc/src/stores/helpers/tracked-change-decision.d.ts +45 -0
  164. package/dist/superdoc/src/stores/helpers/tracked-change-identity.d.ts +19 -0
  165. package/dist/superdoc/src/stores/helpers/tracked-change-row-values.d.ts +0 -4
  166. package/dist/superdoc/src/stores/helpers/tracked-change-thread-index.d.ts +21 -24
  167. package/dist/superdoc/src/stores/superdoc-store.d.ts +694 -316
  168. package/dist/superdoc.cjs +1804 -2782
  169. package/dist/superdoc.es.js +1720 -2699
  170. package/dist-cdn/style.layered.css +1 -1
  171. package/dist-cdn/superdoc.min.css +1 -1
  172. package/dist-cdn/superdoc.min.js +42 -42
  173. package/package.json +3 -2
  174. package/dist/superdoc/src/internal/toolbar/index.d.ts +0 -10
  175. package/dist/superdoc/src/main.d.ts +0 -1
@@ -1,51 +1,20 @@
1
- /**
2
- * The single seam that composes the font dropdown options: it turns the active document's
3
- * {@link import('../../../../../shared/font-system/src/index.js').DocumentFontOption}s into toolbar font options and unions them
4
- * with the bundled defaults. The toolbar only asks for the result; it does not know how a font previews.
5
- *
6
- * - A consumer-provided `configFonts` list is returned UNCHANGED (custom toolbars own their list).
7
- * - With no document options, returns `undefined` so the caller keeps its fallback to {@link TOOLBAR_FONTS}.
8
- * - Otherwise: bundled defaults and document fonts are deduped by normalized logical family, then sorted
9
- * alphabetically by the visible font name. `label`/`key` stay the pure logical family (active-state
10
- * matching + the stored value), and the preview renders in `previewFamily`.
11
- *
12
- * @param {ReadonlyArray<import('../../../../../shared/font-system/src/index.js').DocumentFontOption>} documentOptions
13
- * @param {Array} [configFonts] - the consumer's `fonts` config, if any
14
- * @returns {Array|undefined}
15
- */
16
- export function composeToolbarFontOptions(documentOptions: ReadonlyArray<import('../../../../../shared/font-system/src/index.js').DocumentFontOption>, configFonts?: any[]): any[] | undefined;
17
- /**
18
- * Map the host-computed, activation-aware font-family options onto the toolbar option shape. PURE: it
19
- * receives the already-resolved list from `superdoc.fonts.getFontFamilyOptions()` (the host owns the
20
- * `@superdoc/font-system` computation this module must not import). Returns `undefined` for an empty
21
- * list so the caller keeps its {@link TOOLBAR_FONTS} fallback. `label` is the Word-facing logical
22
- * family (stored on the selection + used for active-state matching), `key` is a stable option key, and
23
- * the row preview renders in `previewFamily` (falling back to the label).
24
- *
25
- * @param {ReadonlyArray<import('../../../../../shared/font-system/src/index.js').FontFamilyOption>} options
26
- * @returns {Array|undefined}
27
- */
28
- export function mapFontFamilyOptionsToToolbar(options: ReadonlyArray<import('../../../../../shared/font-system/src/index.js').FontFamilyOption>): any[] | undefined;
29
- export const TOOLBAR_FONTS: {
1
+ import { DocumentFontOption, FontFamilyOption } from '../../../../../shared/font-system/src/index.js';
2
+ import { ToolbarFontOption } from '../../../core/types/index.js';
3
+ export declare const TOOLBAR_FONTS: ToolbarFontOption[];
4
+ type ToolbarDocumentFontOption = Pick<DocumentFontOption, 'logicalFamily' | 'previewFamily'>;
5
+ export declare function composeToolbarFontOptions(documentOptions: readonly ToolbarDocumentFontOption[] | null | undefined, configFonts?: readonly ToolbarFontOption[]): readonly ToolbarFontOption[] | undefined;
6
+ export declare function mapFontFamilyOptionsToToolbar(options: readonly FontFamilyOption[] | null | undefined): ToolbarFontOption[] | undefined;
7
+ export declare const TOOLBAR_FONT_SIZES: {
30
8
  label: string;
31
9
  key: string;
32
10
  props: {
33
- style: {
34
- fontFamily: string;
35
- };
36
11
  'data-item': string;
37
12
  };
38
13
  }[];
39
- export const TOOLBAR_FONT_SIZES: {
40
- label: string;
41
- key: string;
42
- props: {
43
- 'data-item': string;
44
- };
45
- }[];
46
- export namespace RESPONSIVE_BREAKPOINTS {
47
- let sm: number;
48
- let md: number;
49
- let lg: number;
50
- let xl: number;
51
- }
14
+ export declare const RESPONSIVE_BREAKPOINTS: {
15
+ sm: number;
16
+ md: number;
17
+ lg: number;
18
+ xl: number;
19
+ };
20
+ export {};
@@ -1,18 +1,35 @@
1
- /**
2
- * Set or clear the link item's `href` without disturbing the rest of its
3
- * attributes. The static configuration (`ariaLabel`, and anything added later)
4
- * lives in the same object as the transient href, so rebuilding that object
5
- * from the keys a caller knows about silently drops the others.
6
- *
7
- * Exported because the built-in toolbar's `updateToolbarState()` writes the
8
- * href on its own path, without going through this item's handlers. Both
9
- * callers share this one rule so the two cannot drift apart.
10
- */
11
- export function withLinkHref(attributes: any, href: any): any;
12
- export function makeDefaultItems({ superToolbar, toolbarIcons, toolbarTexts, toolbarFonts, hideButtons, availableWidth, role, isDev, configuredItemNames, configuredItemOrder, excludedItemNames, additionalItems, }?: {
13
- isDev?: boolean | undefined;
14
- additionalItems?: never[] | undefined;
15
- }): {
16
- defaultItems: any[];
17
- overflowItems: any[];
1
+ import { ToolbarItemAttributes } from './use-toolbar-item.js';
2
+ import { BuiltInToolbar, ToolbarItem } from '../built-in-toolbar.js';
3
+ type DefaultItemsToolbar = Pick<BuiltInToolbar, 'config' | 'ui' | 'superdoc' | 'activeEditor' | 'pendingSelectionCapture' | 'emitCommand' | 'isCommandEnabled' | 'getLinkedStyleOptions' | 'getActiveLinkedStyleId' | 'updateLinkedStyleToMatchSelection'>;
4
+ interface DefaultItemsInput {
5
+ superToolbar: DefaultItemsToolbar;
6
+ toolbarIcons: Readonly<Record<string, unknown>>;
7
+ toolbarTexts: Readonly<Record<string, unknown>>;
8
+ toolbarFonts?: readonly FontOption[] | null;
9
+ hideButtons: boolean;
10
+ availableWidth: number;
11
+ role: string;
12
+ isDev?: boolean;
13
+ configuredItemNames?: ReadonlySet<string> | null;
14
+ configuredItemOrder?: readonly string[] | null;
15
+ excludedItemNames?: ReadonlySet<string> | null;
16
+ additionalItems?: readonly ToolbarItem[];
17
+ }
18
+ type FontOption = {
19
+ label: string;
20
+ key: string;
21
+ value?: string;
22
+ props?: {
23
+ style?: {
24
+ fontFamily?: string;
25
+ [key: string]: unknown;
26
+ };
27
+ [key: string]: unknown;
28
+ };
18
29
  };
30
+ export declare function withLinkHref(attributes: ToolbarItemAttributes, href: unknown): ToolbarItemAttributes;
31
+ export declare const makeDefaultItems: ({ superToolbar, toolbarIcons: configuredIcons, toolbarTexts: configuredTexts, toolbarFonts, hideButtons, availableWidth, role, isDev, configuredItemNames, configuredItemOrder, excludedItemNames, additionalItems, }: DefaultItemsInput) => {
32
+ defaultItems: ToolbarItem[];
33
+ overflowItems: ToolbarItem[];
34
+ };
35
+ 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;
@@ -1,11 +1,41 @@
1
- export function findPrefixMatchIndex(query: string, labels: ReadonlyArray<string>): number;
2
- export function computeTypeahead(query: string, labels: ReadonlyArray<string>, { autocomplete }?: {
3
- autocomplete?: boolean;
4
- }): {
1
+ /**
2
+ * Pure typeahead/autocomplete helpers for the font comboboxes (family + size).
3
+ *
4
+ * Matching is case-insensitive prefix matching on the logical font labels.
5
+ * Space is a normal query character, so the query is never split on spaces;
6
+ * only the outer whitespace is ignored when comparing.
7
+ *
8
+ * These functions hold no Vue or DOM state so CI can unit-test them in isolation.
9
+ */
10
+ interface TypeaheadResult {
5
11
  matchIndex: number;
6
12
  display: string;
7
13
  selectionStart: number;
8
14
  selectionEnd: number;
9
- };
10
- export function normalizeCustomFontFamily(value: any): string;
11
- export function normalizeCustomFontSize(value: string): string;
15
+ }
16
+ /**
17
+ * Index of the first label that starts with `query` (case-insensitive).
18
+ * An empty/whitespace query never matches. Returns the matching index or -1.
19
+ */
20
+ export declare const findPrefixMatchIndex: (query: string, labels: ReadonlyArray<string>) => number;
21
+ /**
22
+ * Resolve what the input should display after a keystroke.
23
+ *
24
+ * When `autocomplete` is true and a prefix match exists that is longer than the
25
+ * typed query, the completion is shown with the suffix selected so the next
26
+ * keystroke replaces it. When false (deletion) or no match exists, the raw
27
+ * query is shown with the caret at its end. `query` is the user-typed portion.
28
+ */
29
+ export declare const computeTypeahead: (query: string, labels: ReadonlyArray<string>, { autocomplete }?: {
30
+ autocomplete?: boolean;
31
+ }) => TypeaheadResult;
32
+ export declare const normalizeCustomFontFamily: (value: unknown) => string;
33
+ /**
34
+ * Normalize a typed font size to a supported point-size string.
35
+ * Parses the numeric value (ignoring any unit suffix) keeping its sign, rounds to
36
+ * the nearest half point (DOCX/Word support half points such as 10.5), and clamps
37
+ * to the supported range. Returns '' when nothing usable was typed, including
38
+ * negative or sub-minimum values.
39
+ */
40
+ export declare const normalizeCustomFontSize: (value: unknown) => string;
41
+ export {};
@@ -1,5 +1,11 @@
1
- export function isOffValue(value: unknown): boolean;
2
- /** @type {Record<string, (attrs?: Record<string, unknown>) => boolean>} */
3
- export const negationChecks: Record<string, (attrs?: Record<string, unknown>) => boolean>;
4
- export function isNegatedMark(name: string, attrs?: Record<string, unknown>): boolean;
1
+ type MarkAttrs = Record<string, unknown>;
2
+ /**
3
+ * Normalize "off" values used by cascade-aware formatting marks.
4
+ */
5
+ export declare const isOffValue: (value: unknown) => boolean;
6
+ export declare const negationChecks: Record<string, (attrs?: MarkAttrs) => boolean>;
7
+ /**
8
+ * Determine whether a mark is currently negated (explicitly turning formatting off).
9
+ */
10
+ export declare const isNegatedMark: (name: string, attrs?: MarkAttrs) => boolean;
5
11
  export default isNegatedMark;
@@ -1 +1,12 @@
1
- export function findElementBySelector(selector: string | HTMLElement | null | undefined): HTMLElement | null;
1
+ /**
2
+ * Minimal DOM helpers for the built-in toolbar shell.
3
+ *
4
+ * The v1 toolbar's `helpers/general.js` also exported a converter-backed
5
+ * paragraph-font-family fallback; that path depended on private v1 editor
6
+ * internals (`@core/super-converter`) and is intentionally dropped on V2, where
7
+ * font-family active state comes from the shared command controller snapshot.
8
+ */
9
+ /**
10
+ * Resolve a toolbar mount target from a selector string or element id.
11
+ */
12
+ export declare const findElementBySelector: (selector: string | HTMLElement | null | undefined) => HTMLElement | null;
@@ -1,5 +1,10 @@
1
- export function sanitizeNumber(value: any, defaultNumber: any): any;
2
- export function throttle(func: any, wait: any, options: any): {
3
- (...callArgs: any[]): any;
4
- cancel(): void;
1
+ interface ThrottleOptions {
2
+ leading?: boolean;
3
+ trailing?: boolean;
4
+ }
5
+ type Throttled<Args extends unknown[], Result> = ((...args: Args) => Result | undefined) & {
6
+ cancel: () => void;
5
7
  };
8
+ declare const sanitizeNumber: (value: unknown, defaultNumber: number) => number;
9
+ declare const throttle: <Args extends unknown[], Result>(func: (...args: Args) => Result, wait: number, options?: ThrottleOptions) => Throttled<Args, Result>;
10
+ export { sanitizeNumber, throttle };
@@ -1,9 +1,9 @@
1
- export const bulletStyleButtons: {
1
+ export declare const bulletStyleButtons: {
2
2
  key: string;
3
3
  icon: string;
4
4
  ariaLabel: string;
5
5
  }[];
6
- export const numberedStyleButtons: {
6
+ export declare const numberedStyleButtons: {
7
7
  key: string;
8
8
  icon: string;
9
9
  ariaLabel: string;
@@ -1,10 +1,9 @@
1
+ import { HeaderFooterKind } from '../../../../../document-api/src/index.js';
1
2
  /**
2
3
  * Briefly highlight the painted header or footer regions that are on screen,
3
4
  * so the user sees where page numbers landed without the caret leaving the
4
5
  * body. Regions are read after the repaint that follows the mutation; nothing
5
- * happens when none is visible or the host is unavailable.
6
- *
7
- * @param {HTMLElement | null | undefined} host Document viewport host element.
8
- * @param {'header' | 'footer'} kind
6
+ * happens when none is visible or the host is unavailable. `host` is the
7
+ * document viewport host element.
9
8
  */
10
- export function flashPageNumberRegions(host: HTMLElement | null | undefined, kind: "header" | "footer"): Promise<void>;
9
+ export declare function flashPageNumberRegions(host: HTMLElement | null | undefined, kind: HeaderFooterKind): Promise<void>;
@@ -1,4 +1,3 @@
1
- export function scrollToElement(targetElement: any, options?: {
2
- behavior: string;
3
- block: string;
4
- }): void;
1
+ type ScrollOptions = Pick<ScrollIntoViewOptions, 'behavior' | 'block'>;
2
+ export declare function scrollToElement(targetElement: HTMLElement | null | undefined, options?: ScrollOptions): void;
3
+ export {};
@@ -1,2 +1,10 @@
1
- export function preventEditorFocusTransfer(event: any): void;
2
- export function refocusEditorSurface(superToolbar: any, preferredEditor?: null): void;
1
+ type FocusTarget = {
2
+ focus?: unknown;
3
+ };
4
+ type RefocusToolbar = {
5
+ superdoc?: FocusTarget | null;
6
+ activeEditor?: FocusTarget | null;
7
+ };
8
+ export declare const preventEditorFocusTransfer: (event: Pick<Event, "target" | "preventDefault">) => void;
9
+ export declare const refocusEditorSurface: (superToolbar: RefocusToolbar | null | undefined, preferredEditor?: FocusTarget | null) => void;
10
+ export {};
@@ -1,145 +1,78 @@
1
- import { default as rotateLeftIconSvg } from '../../../../../../shared/common/icons/rotate-left-solid.svg?raw';
2
- import { default as rotateRightIconSvg } from '../../../../../../shared/common/icons/rotate-right-solid.svg?raw';
3
- import { default as boldIconSvg } from '../../../../../../shared/common/icons/bold-solid.svg?raw';
4
- import { default as italicIconSvg } from '../../../../../../shared/common/icons/italic-solid.svg?raw';
5
- import { default as underlineIconSvg } from '../../../../../../shared/common/icons/underline-solid.svg?raw';
6
- import { default as fontIconSvg } from '../../../../../../shared/common/icons/font-solid.svg?raw';
7
- import { default as linkIconSvg } from '../../../../../../shared/common/icons/link-solid.svg?raw';
8
- import { default as imageIconSvg } from '../../../../../../shared/common/icons/image-solid.svg?raw';
9
- import { default as tocIconSvg } from '../../../../../../shared/common/icons/toc-solid.svg?raw';
10
- import { default as watermarkIconSvg } from '../../../../../../shared/common/icons/watermark.svg?raw';
11
- import { default as pageNumberIconSvg } from '../../../../../../shared/common/icons/page-number.svg?raw';
12
- import { default as alignLeftIconSvg } from '../../../../../../shared/common/icons/align-left-solid.svg?raw';
13
- import { default as alignRightIconSvg } from '../../../../../../shared/common/icons/align-right-solid.svg?raw';
14
- import { default as alignCenterIconSvg } from '../../../../../../shared/common/icons/align-center-solid.svg?raw';
15
- import { default as alignJustifyIconSvg } from '../../../../../../shared/common/icons/align-justify-solid.svg?raw';
16
- import { default as listIconSvg } from '../../../../../../shared/common/icons/list-solid.svg?raw';
17
- import { default as listCircleIconSvg } from '../../../../../../shared/common/icons/list-circle-solid.svg?raw';
18
- import { default as listSquareIconSvg } from '../../../../../../shared/common/icons/list-square-solid.svg?raw';
19
- import { default as listOlIconSvg } from '../../../../../../shared/common/icons/list-ol-solid.svg?raw';
20
- import { default as listDecimalIconSvg } from '../../../../../../shared/common/icons/list-decimal-solid.svg?raw';
21
- import { default as listDecimalParenIconSvg } from '../../../../../../shared/common/icons/list-decimal-paren-solid.svg?raw';
22
- import { default as listUpperRomanIconSvg } from '../../../../../../shared/common/icons/list-upper-roman-solid.svg?raw';
23
- import { default as listLowerRomanIconSvg } from '../../../../../../shared/common/icons/list-lower-roman-solid.svg?raw';
24
- import { default as listUpperAlphaIconSvg } from '../../../../../../shared/common/icons/list-upper-alpha-solid.svg?raw';
25
- import { default as listUpperAlphaParenIconSvg } from '../../../../../../shared/common/icons/list-upper-alpha-paren-solid.svg?raw';
26
- import { default as listLowerAlphaIconSvg } from '../../../../../../shared/common/icons/list-lower-alpha-solid.svg?raw';
27
- import { default as listLowerAlphaParenIconSvg } from '../../../../../../shared/common/icons/list-lower-alpha-paren-solid.svg?raw';
28
- import { default as outdentIconSvg } from '../../../../../../shared/common/icons/outdent-solid.svg?raw';
29
- import { default as indentIconSvg } from '../../../../../../shared/common/icons/indent-solid.svg?raw';
30
- import { default as paragraphLtrIconSvg } from '../../../../../../shared/common/icons/paragraph-ltr-solid.svg?raw';
31
- import { default as paragraphRtlIconSvg } from '../../../../../../shared/common/icons/paragraph-rtl-solid.svg?raw';
32
- import { default as fileHalfDashedIconSvg } from '../../../../../../shared/common/icons/file-half-dashed-solid.svg?raw';
33
- import { default as paintRollerIconSvg } from '../../../../../../shared/common/icons/paint-roller-solid.svg?raw';
34
- import { default as textSlashIconSvg } from '../../../../../../shared/common/icons/text-slash-solid.svg?raw';
35
- import { default as listCheckIconSvg } from '../../../../../../shared/common/icons/list-check-solid.svg?raw';
36
- import { default as fileIconSvg } from '../../../../../../shared/common/icons/file-solid.svg?raw';
37
- import { default as eyeIconSvg } from '../../../../../../shared/common/icons/eye-solid.svg?raw';
38
- import { default as calendarCheckIconSvg } from '../../../../../../shared/common/icons/calendar-check-solid.svg?raw';
39
- import { default as calendarXmarkIconSvg } from '../../../../../../shared/common/icons/calendar-xmark-solid.svg?raw';
40
- import { default as userEditIconSvg } from '../../../../../../shared/common/icons/user-edit-solid.svg?raw';
41
- import { default as commentIconSvg } from '../../../../../../shared/common/icons/comment-solid.svg?raw';
42
- import { default as circleIconSvg } from '../../../../../../shared/common/icons/circle-solid.svg?raw';
43
- import { default as checkIconSvg } from '../../../../../../shared/common/icons/check-solid.svg?raw';
44
- import { default as xmarkIconSvg } from '../../../../../../shared/common/icons/xmark-solid.svg?raw';
45
- import { default as upRightFromSquareIconSvg } from '../../../../../../shared/common/icons/up-right-from-square-solid.svg?raw';
46
- import { default as ellipsisVerticalIconSvg } from '../../../../../../shared/common/icons/ellipsis-vertical-solid.svg?raw';
47
- import { default as caretUpIconSvg } from '../../../../../../shared/common/icons/caret-up-solid.svg?raw';
48
- import { default as caretDownIconSvg } from '../../../../../../shared/common/icons/caret-down-solid.svg?raw';
49
- import { default as rulerSvg } from '../../../../../../shared/common/icons/ruler-solid.svg?raw';
50
- import { default as paintbrushSvg } from '../../../../../../shared/common/icons/paintbrush-solid.svg?raw';
51
- import { default as highlighterIcon } from '../../../../../../shared/common/icons/highlighter-icon.svg?raw';
52
- import { default as magicWandIcon } from '../../../../../../shared/common/icons/magic-wand-solid.svg?raw';
53
- import { default as tableIconSvg } from '../../../../../../shared/common/icons/table-solid.svg?raw';
54
- import { default as tableColumnsIconSvg } from '../../../../../../shared/common/icons/table-columns-solid.svg?raw';
55
- import { default as arrowsLeftRightIconSvg } from '../../../../../../shared/common/icons/arrows-left-right-solid.svg?raw';
56
- import { default as arrowsToDotIconSvg } from '../../../../../../shared/common/icons/arrows-to-dot-solid.svg?raw';
57
- import { default as plusIconSvg } from '../../../../../../shared/common/icons/plus-solid.svg?raw';
58
- import { default as trashIconSvg } from '../../../../../../shared/common/icons/trash-can-solid.svg?raw';
59
- import { default as borderNoneIconSvg } from '../../../../../../shared/common/icons/border-none-solid.svg?raw';
60
- import { default as wrenchIconSvg } from '../../../../../../shared/common/icons/wrench-solid.svg?raw';
61
- import { default as upDownIconSvg } from '../../../../../../shared/common/icons/up-down.svg?raw';
62
- import { default as magnifyingGlassSvg } from '../../../../../../shared/common/icons/magnifying-glass.svg?raw';
63
- import { default as scissorsIconSvg } from '../../../../../../shared/common/icons/scissors-solid.svg?raw';
64
- import { default as copyIconSvg } from '../../../../../../shared/common/icons/copy-solid.svg?raw';
65
- import { default as pasteIconSvg } from '../../../../../../shared/common/icons/paste-solid.svg?raw';
66
- import { default as strikethroughSvg } from '../../../../../../shared/common/icons/strikethrough.svg?raw';
67
- import { default as paragraphIconSvg } from '../../../../../../shared/common/icons/paragraph-solid.svg?raw';
68
- export namespace toolbarIcons {
69
- export { rotateLeftIconSvg as undo };
70
- export { rotateRightIconSvg as redo };
71
- export { boldIconSvg as bold };
72
- export { italicIconSvg as italic };
73
- export { underlineIconSvg as underline };
74
- export { fontIconSvg as color };
75
- export { linkIconSvg as link };
76
- export { imageIconSvg as image };
77
- export { tocIconSvg as tableOfContents };
78
- export { watermarkIconSvg as watermark };
79
- export { pageNumberIconSvg as pageNumber };
80
- export { alignLeftIconSvg as alignLeft };
81
- export { alignRightIconSvg as alignRight };
82
- export { alignCenterIconSvg as alignCenter };
83
- export { alignJustifyIconSvg as alignJustify };
84
- export { listIconSvg as bulletList };
85
- export { listIconSvg as bulletListDisc };
86
- export { listCircleIconSvg as bulletListCircle };
87
- export { listSquareIconSvg as bulletListSquare };
88
- export { listOlIconSvg as numberedList };
89
- export { listDecimalIconSvg as numberedListDecimal };
90
- export { listDecimalParenIconSvg as numberedListDecimalParen };
91
- export { listUpperRomanIconSvg as numberedListUpperRoman };
92
- export { listLowerRomanIconSvg as numberedListLowerRoman };
93
- export { listUpperAlphaIconSvg as numberedListUpperAlpha };
94
- export { listUpperAlphaParenIconSvg as numberedListUpperAlphaParen };
95
- export { listLowerAlphaIconSvg as numberedListLowerAlpha };
96
- export { listLowerAlphaParenIconSvg as numberedListLowerAlphaParen };
97
- export { outdentIconSvg as indentLeft };
98
- export { indentIconSvg as indentRight };
99
- export { paragraphLtrIconSvg as directionLtr };
100
- export { paragraphRtlIconSvg as directionRtl };
101
- export { fileHalfDashedIconSvg as pageBreak };
102
- export { paintRollerIconSvg as copyFormat };
103
- export { textSlashIconSvg as clearFormatting };
104
- export { listCheckIconSvg as trackChanges };
105
- export { fileIconSvg as trackChangesFinal };
106
- export { eyeIconSvg as trackChangesOriginal };
107
- export { calendarCheckIconSvg as trackChangesAccept };
108
- export { calendarXmarkIconSvg as trackChangesReject };
109
- export { userEditIconSvg as documentMode };
110
- export { userEditIconSvg as documentEditingMode };
111
- export { commentIconSvg as documentSuggestingMode };
112
- export { eyeIconSvg as documentViewingMode };
113
- export { circleIconSvg as colorOption };
114
- export { checkIconSvg as colorOptionCheck };
115
- export { linkIconSvg as linkInput };
116
- export { xmarkIconSvg as removeLink };
117
- export { upRightFromSquareIconSvg as openLink };
118
- export { ellipsisVerticalIconSvg as overflow };
119
- export { caretUpIconSvg as dropdownCaretUp };
120
- export { caretDownIconSvg as dropdownCaretDown };
121
- export { rulerSvg as ruler };
122
- export { paintbrushSvg as paintbrush };
123
- export { highlighterIcon as highlight };
124
- export { magicWandIcon as ai };
125
- export { tableIconSvg as table };
126
- export { tableColumnsIconSvg as tableActions };
127
- export { arrowsLeftRightIconSvg as splitCell };
128
- export { arrowsToDotIconSvg as mergeCells };
129
- export { plusIconSvg as addRowBefore };
130
- export { plusIconSvg as addRowAfter };
131
- export { plusIconSvg as addColumnBefore };
132
- export { plusIconSvg as addColumnAfter };
133
- export { trashIconSvg as deleteRow };
134
- export { trashIconSvg as deleteColumn };
135
- export { trashIconSvg as deleteTable };
136
- export { borderNoneIconSvg as deleteBorders };
137
- export { wrenchIconSvg as fixTables };
138
- export { upDownIconSvg as lineHeight };
139
- export { magnifyingGlassSvg as search };
140
- export { scissorsIconSvg as cut };
141
- export { copyIconSvg as copy };
142
- export { pasteIconSvg as paste };
143
- export { strikethroughSvg as strikethrough };
144
- export { paragraphIconSvg as formattingMarks };
145
- }
1
+ export declare const toolbarIcons: {
2
+ undo: string;
3
+ redo: string;
4
+ bold: string;
5
+ italic: string;
6
+ underline: string;
7
+ color: string;
8
+ link: string;
9
+ image: string;
10
+ tableOfContents: string;
11
+ watermark: string;
12
+ pageNumber: string;
13
+ alignLeft: string;
14
+ alignRight: string;
15
+ alignCenter: string;
16
+ alignJustify: string;
17
+ bulletList: string;
18
+ bulletListDisc: string;
19
+ bulletListCircle: string;
20
+ bulletListSquare: string;
21
+ numberedList: string;
22
+ numberedListDecimal: string;
23
+ numberedListDecimalParen: string;
24
+ numberedListUpperRoman: string;
25
+ numberedListLowerRoman: string;
26
+ numberedListUpperAlpha: string;
27
+ numberedListUpperAlphaParen: string;
28
+ numberedListLowerAlpha: string;
29
+ numberedListLowerAlphaParen: string;
30
+ indentLeft: string;
31
+ indentRight: string;
32
+ directionLtr: string;
33
+ directionRtl: string;
34
+ pageBreak: string;
35
+ copyFormat: string;
36
+ clearFormatting: string;
37
+ trackChanges: string;
38
+ trackChangesFinal: string;
39
+ trackChangesOriginal: string;
40
+ trackChangesAccept: string;
41
+ trackChangesReject: string;
42
+ documentMode: string;
43
+ documentEditingMode: string;
44
+ documentSuggestingMode: string;
45
+ documentViewingMode: string;
46
+ colorOption: string;
47
+ colorOptionCheck: string;
48
+ linkInput: string;
49
+ removeLink: string;
50
+ openLink: string;
51
+ overflow: string;
52
+ dropdownCaretUp: string;
53
+ dropdownCaretDown: string;
54
+ ruler: string;
55
+ paintbrush: string;
56
+ highlight: string;
57
+ ai: string;
58
+ table: string;
59
+ tableActions: string;
60
+ splitCell: string;
61
+ mergeCells: string;
62
+ addRowBefore: string;
63
+ addRowAfter: string;
64
+ addColumnBefore: string;
65
+ addColumnAfter: string;
66
+ deleteRow: string;
67
+ deleteColumn: string;
68
+ deleteTable: string;
69
+ deleteBorders: string;
70
+ fixTables: string;
71
+ lineHeight: string;
72
+ search: string;
73
+ cut: string;
74
+ copy: string;
75
+ paste: string;
76
+ strikethrough: string;
77
+ formattingMarks: string;
78
+ };