superdoc 2.29.0-next.3 → 2.29.0-next.9

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 (128) hide show
  1. package/dist/chunks/{PdfViewer-boENOZdF.cjs → PdfViewer-DmSkZehl.cjs} +70 -99
  2. package/dist/chunks/{PdfViewer-D4lVeOJu.es.js → PdfViewer-aOWhUVI7.es.js} +67 -96
  3. package/dist/chunks/{constants-DpXuDx_g.cjs → constants-BeeNZoQp.cjs} +1 -1
  4. package/dist/chunks/{constants-B6VBlmKp.es.js → constants-BvNs_ybI.es.js} +1 -1
  5. package/dist/chunks/{create-super-doc-ui-BFt8agAI.es.js → create-super-doc-ui-Bm5kmx0W.es.js} +12 -29
  6. package/dist/chunks/{create-super-doc-ui-BAGOnYGM.cjs → create-super-doc-ui-DN70aatf.cjs} +17 -28
  7. package/dist/collaboration-upgrade-engine.cjs +1 -1
  8. package/dist/collaboration-upgrade-engine.es.js +1 -1
  9. package/dist/document-api/src/capabilities/html-markdown-support.d.ts +4 -6
  10. package/dist/document-api/src/comments/comments.d.ts +2 -0
  11. package/dist/document-api/src/contract/operation-definitions.d.ts +2 -2
  12. package/dist/document-api/src/contract/operation-registry.d.ts +10 -9
  13. package/dist/document-api/src/index.d.ts +8 -7
  14. package/dist/document-api/src/insert/insert.d.ts +2 -2
  15. package/dist/document-api/src/replace/replace.d.ts +3 -2
  16. package/dist/document-api/src/types/address.d.ts +3 -0
  17. package/dist/document-api/src/types/temporary-mutation.d.ts +5 -1
  18. package/dist/document-api/src/write/write.d.ts +12 -6
  19. package/dist/public/ui-react.cjs +1 -1
  20. package/dist/public/ui-react.es.js +1 -1
  21. package/dist/public/ui-vue.cjs +1 -1
  22. package/dist/public/ui-vue.es.js +1 -1
  23. package/dist/public/ui.cjs +1 -1
  24. package/dist/public/ui.es.js +1 -1
  25. package/dist/style.css +1 -1
  26. package/dist/style.layered.css +1 -1
  27. package/dist/superdoc/src/SuperDoc.vue.d.ts +132 -58
  28. package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +28 -13
  29. package/dist/superdoc/src/components/CommentsLayer/floating-comment-positioning.d.ts +24 -23
  30. package/dist/superdoc/src/components/CommentsLayer/tracked-change-threading.d.ts +0 -1
  31. package/dist/superdoc/src/components/CommentsLayer/use-comment.d.ts +28 -13
  32. package/dist/superdoc/src/components/PdfViewer/PdfViewer.vue.d.ts +132 -45
  33. package/dist/superdoc/src/components/PdfViewer/PdfViewerDocument.vue.d.ts +62 -16
  34. package/dist/superdoc/src/components/PdfViewer/PdfViewerPage.vue.d.ts +77 -17
  35. package/dist/superdoc/src/components/PdfViewer/pdf-viewer-types.d.ts +45 -0
  36. package/dist/superdoc/src/components/Whiteboard/WhiteboardLayer.vue.d.ts +81 -16
  37. package/dist/superdoc/src/components/Whiteboard/WhiteboardPage.vue.d.ts +49 -13
  38. package/dist/superdoc/src/components/Whiteboard/use-whiteboard.d.ts +30 -15
  39. package/dist/superdoc/src/components/Whiteboard/whiteboard-types.d.ts +11 -0
  40. package/dist/superdoc/src/components/surfaces/focusable-selector.d.ts +1 -5
  41. package/dist/superdoc/src/composables/find-shortcut-owner.d.ts +16 -9
  42. package/dist/superdoc/src/composables/replace-continuation.d.ts +11 -15
  43. package/dist/superdoc/src/composables/use-document.d.ts +1210 -30
  44. package/dist/superdoc/src/composables/use-field.d.ts +88 -25
  45. package/dist/superdoc/src/composables/use-password-prompt.d.ts +23 -24
  46. package/dist/superdoc/src/composables/useUiFontFamily.d.ts +3 -11
  47. package/dist/superdoc/src/core/SuperDoc.d.ts +1 -1
  48. package/dist/superdoc/src/core/collaboration/collaboration-comments.d.ts +9 -4
  49. package/dist/superdoc/src/core/collaboration/helpers.d.ts +20 -3
  50. package/dist/superdoc/src/core/collaboration/permissions.d.ts +15 -10
  51. package/dist/superdoc/src/core/collaboration/resolve-v2-collaboration-target.d.ts +4 -3
  52. package/dist/superdoc/src/core/collaboration/v2-awareness-bridge.d.ts +2 -1
  53. package/dist/superdoc/src/core/config/merge-comments-config.d.ts +1 -5
  54. package/dist/superdoc/src/core/config/merge-defined.d.ts +3 -8
  55. package/dist/superdoc/src/core/config/normalize-hyperlinks-config.d.ts +7 -12
  56. package/dist/superdoc/src/core/config/normalize-surfaces-config.d.ts +9 -12
  57. package/dist/superdoc/src/core/config/normalize-ui-config.d.ts +1 -12
  58. package/dist/superdoc/src/core/create-app.d.ts +13 -24
  59. package/dist/superdoc/src/core/editor-runtime/conformance/fake-v2-runtime.d.ts +2 -1
  60. package/dist/superdoc/src/core/editor-runtime/editor-runtime-registry.d.ts +2 -1
  61. package/dist/superdoc/src/core/editor-runtime/index.d.ts +1 -1
  62. package/dist/superdoc/src/core/editor-runtime/types.d.ts +2 -1
  63. package/dist/superdoc/src/core/editor-runtime/v2/v2-session-shortcut-routes.d.ts +1 -1
  64. package/dist/superdoc/src/core/helpers/export.d.ts +3 -2
  65. package/dist/superdoc/src/core/helpers/file.d.ts +8 -45
  66. package/dist/superdoc/src/core/helpers/normalize-track-changes-config.d.ts +6 -60
  67. package/dist/superdoc/src/core/pdf/helpers/constants.d.ts +2 -2
  68. package/dist/superdoc/src/core/pdf/helpers/floor.d.ts +1 -1
  69. package/dist/superdoc/src/core/pdf/helpers/range.d.ts +1 -1
  70. package/dist/superdoc/src/core/pdf/helpers/read-file.d.ts +1 -1
  71. package/dist/superdoc/src/core/pdf/pdf-adapter.d.ts +24 -61
  72. package/dist/superdoc/src/core/superdoc-ui-owner.d.ts +1 -1
  73. package/dist/superdoc/src/core/surface-manager.d.ts +21 -83
  74. package/dist/superdoc/src/core/types/index.d.ts +4 -19
  75. package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +10 -10
  76. package/dist/superdoc/src/core/whiteboard/Whiteboard.d.ts +22 -208
  77. package/dist/superdoc/src/core/whiteboard/WhiteboardPage.d.ts +163 -189
  78. package/dist/superdoc/src/core/whiteboard/helpers/createTextarea.d.ts +14 -1
  79. package/dist/superdoc/src/core/whiteboard/helpers/flattenPoints.d.ts +1 -1
  80. package/dist/superdoc/src/core/whiteboard/helpers/getRandomId.d.ts +1 -1
  81. package/dist/superdoc/src/helpers/comment-focus.d.ts +21 -4
  82. package/dist/superdoc/src/helpers/deprecation.d.ts +5 -11
  83. package/dist/superdoc/src/helpers/interaction-trace.d.ts +7 -24
  84. package/dist/superdoc/src/helpers/mark-raw-component.d.ts +1 -0
  85. package/dist/superdoc/src/helpers/object-guards.d.ts +1 -5
  86. package/dist/superdoc/src/helpers/selection-source.d.ts +1 -1
  87. package/dist/superdoc/src/helpers/use-selection.d.ts +35 -15
  88. package/dist/superdoc/src/internal/diagnostics/diagnostic-dedupe.d.ts +6 -15
  89. package/dist/superdoc/src/internal/toolbar/built-in/AIWriter.vue.d.ts +2 -2
  90. package/dist/superdoc/src/internal/toolbar/built-in/ButtonGroup.vue.d.ts +4 -24
  91. package/dist/superdoc/src/internal/toolbar/built-in/FontFamilyCombobox.vue.d.ts +34 -0
  92. package/dist/superdoc/src/internal/toolbar/built-in/FontSizeCombobox.vue.d.ts +34 -0
  93. package/dist/superdoc/src/internal/toolbar/built-in/LinkInput.vue.d.ts +1 -1
  94. package/dist/superdoc/src/internal/toolbar/built-in/Toolbar.vue.d.ts +9 -3
  95. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarComboBox.vue.d.ts +12 -14
  96. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarDropdown.vue.d.ts +1 -11
  97. package/dist/superdoc/src/internal/toolbar/built-in/color-dropdown-helpers.d.ts +9 -19
  98. package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +12 -45
  99. package/dist/superdoc/src/internal/toolbar/built-in/default-items.d.ts +34 -17
  100. package/dist/superdoc/src/internal/toolbar/built-in/toolbar-focus-helpers.d.ts +10 -2
  101. package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +61 -61
  102. package/dist/superdoc/src/internal/toolbar/built-in/use-toolbar-item.d.ts +110 -48
  103. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +7 -27
  104. package/dist/superdoc/src/internal/toolbar/compatibility-catalog.d.ts +4 -3
  105. package/dist/superdoc/src/internal/toolbar/toolbar-item-aliases.d.ts +1 -1
  106. package/dist/superdoc/src/public/browser-document-api.d.ts +5 -4
  107. package/dist/superdoc/src/public/index.d.cts +26 -0
  108. package/dist/superdoc/src/public/index.d.ts +13 -0
  109. package/dist/superdoc/src/public/ui/commands.d.ts +14 -13
  110. package/dist/superdoc/src/public/ui/create-super-doc-ui.d.ts +1 -1
  111. package/dist/superdoc/src/public/ui/entity-at.d.ts +2 -1
  112. package/dist/superdoc/src/public/ui/style-match-patch.d.ts +2 -2
  113. package/dist/superdoc/src/public/ui/types.d.ts +1 -1
  114. package/dist/superdoc/src/stores/comments-store.d.ts +225 -99
  115. package/dist/superdoc/src/stores/helpers/comment-grouping.d.ts +30 -0
  116. package/dist/superdoc/src/stores/helpers/comment-identity.d.ts +40 -0
  117. package/dist/superdoc/src/stores/helpers/floating-comment-instances.d.ts +48 -13
  118. package/dist/superdoc/src/stores/helpers/tracked-change-identity.d.ts +19 -0
  119. package/dist/superdoc/src/stores/helpers/tracked-change-row-values.d.ts +0 -4
  120. package/dist/superdoc/src/stores/helpers/tracked-change-thread-index.d.ts +21 -24
  121. package/dist/superdoc/src/stores/superdoc-store.d.ts +676 -298
  122. package/dist/superdoc.cjs +1325 -2262
  123. package/dist/superdoc.es.js +1321 -2259
  124. package/dist-cdn/style.layered.css +1 -1
  125. package/dist-cdn/superdoc.min.css +1 -1
  126. package/dist-cdn/superdoc.min.js +42 -42
  127. package/package.json +2 -2
  128. package/dist/superdoc/src/internal/toolbar/index.d.ts +0 -10
@@ -1,20 +1,66 @@
1
- declare const _default: import('vue').DefineComponent<{}, {
2
- $emit: (event: "page-rendered" | "page-error" | "selection-raw" | "bypass-selection" | "page-focus", ...args: any[]) => void;
3
- pages: unknown[];
4
- config: Record<string, any>;
1
+ import { PropType } from 'vue';
2
+ import { PdfViewerConfig, PdfViewerDocumentData, PdfViewerPageData } from './pdf-viewer-types.js';
3
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ config: {
5
+ type: PropType<PdfViewerConfig>;
6
+ required: true;
7
+ };
8
+ pdf: {
9
+ type: PropType<PdfViewerDocumentData | null>;
10
+ };
11
+ pages: {
12
+ type: PropType<PdfViewerPageData[]>;
13
+ required: true;
14
+ };
15
+ scale: {
16
+ type: NumberConstructor;
17
+ required: true;
18
+ };
19
+ hasTextLayer: {
20
+ type: BooleanConstructor;
21
+ default: boolean;
22
+ };
23
+ outputScale: {
24
+ type: NumberConstructor;
25
+ };
26
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
27
+ "page-rendered": (...args: any[]) => void;
28
+ "page-error": (...args: any[]) => void;
29
+ "selection-raw": (...args: any[]) => void;
30
+ "bypass-selection": (...args: any[]) => void;
31
+ "page-focus": (...args: any[]) => void;
32
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
33
+ config: {
34
+ type: PropType<PdfViewerConfig>;
35
+ required: true;
36
+ };
37
+ pdf: {
38
+ type: PropType<PdfViewerDocumentData | null>;
39
+ };
40
+ pages: {
41
+ type: PropType<PdfViewerPageData[]>;
42
+ required: true;
43
+ };
44
+ scale: {
45
+ type: NumberConstructor;
46
+ required: true;
47
+ };
48
+ hasTextLayer: {
49
+ type: BooleanConstructor;
50
+ default: boolean;
51
+ };
52
+ outputScale: {
53
+ type: NumberConstructor;
54
+ };
55
+ }>> & Readonly<{
56
+ "onPage-rendered"?: ((...args: any[]) => any) | undefined;
57
+ "onPage-error"?: ((...args: any[]) => any) | undefined;
58
+ "onSelection-raw"?: ((...args: any[]) => any) | undefined;
59
+ "onBypass-selection"?: ((...args: any[]) => any) | undefined;
60
+ "onPage-focus"?: ((...args: any[]) => any) | undefined;
61
+ }>, {
5
62
  hasTextLayer: boolean;
6
- scale?: number | undefined;
7
- pdf?: Record<string, any> | undefined;
8
- outputScale?: number | undefined;
9
- $props: {
10
- readonly pages?: unknown[] | undefined;
11
- readonly config?: Record<string, any> | undefined;
12
- readonly hasTextLayer?: boolean | undefined;
13
- readonly scale?: number | undefined;
14
- readonly pdf?: Record<string, any> | undefined;
15
- readonly outputScale?: number | undefined;
16
- };
17
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
63
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
18
64
  documentRef: HTMLDivElement;
19
65
  documentWrapper: HTMLDivElement;
20
66
  }, HTMLDivElement>;
@@ -1,22 +1,82 @@
1
- declare const _default: import('vue').DefineComponent<{}, {
2
- $emit: (event: "page-rendered" | "page-error" | "text-layer-rendered" | "text-layer-error" | "selection-raw" | "bypass-selection", ...args: any[]) => void;
3
- page: Record<string, any>;
4
- pages: unknown[];
5
- config: Record<string, any>;
6
- scale: number;
1
+ import { PropType } from 'vue';
2
+ import { PdfViewerConfig, PdfViewerPageData } from './pdf-viewer-types.js';
3
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ config: {
5
+ type: PropType<PdfViewerConfig>;
6
+ required: true;
7
+ };
8
+ page: {
9
+ type: PropType<PdfViewerPageData>;
10
+ required: true;
11
+ };
12
+ pages: {
13
+ type: PropType<PdfViewerPageData[]>;
14
+ required: true;
15
+ };
16
+ scale: {
17
+ type: NumberConstructor;
18
+ required: true;
19
+ };
20
+ hasTextLayer: {
21
+ type: BooleanConstructor;
22
+ default: boolean;
23
+ };
24
+ outputScale: {
25
+ type: NumberConstructor;
26
+ default: number;
27
+ };
28
+ documentEl: {
29
+ type: PropType<HTMLElement | null>;
30
+ default: null;
31
+ };
32
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
33
+ "page-rendered": (...args: any[]) => void;
34
+ "page-error": (...args: any[]) => void;
35
+ "text-layer-rendered": (...args: any[]) => void;
36
+ "text-layer-error": (...args: any[]) => void;
37
+ "selection-raw": (...args: any[]) => void;
38
+ "bypass-selection": (...args: any[]) => void;
39
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
40
+ config: {
41
+ type: PropType<PdfViewerConfig>;
42
+ required: true;
43
+ };
44
+ page: {
45
+ type: PropType<PdfViewerPageData>;
46
+ required: true;
47
+ };
48
+ pages: {
49
+ type: PropType<PdfViewerPageData[]>;
50
+ required: true;
51
+ };
52
+ scale: {
53
+ type: NumberConstructor;
54
+ required: true;
55
+ };
56
+ hasTextLayer: {
57
+ type: BooleanConstructor;
58
+ default: boolean;
59
+ };
60
+ outputScale: {
61
+ type: NumberConstructor;
62
+ default: number;
63
+ };
64
+ documentEl: {
65
+ type: PropType<HTMLElement | null>;
66
+ default: null;
67
+ };
68
+ }>> & Readonly<{
69
+ "onPage-rendered"?: ((...args: any[]) => any) | undefined;
70
+ "onPage-error"?: ((...args: any[]) => any) | undefined;
71
+ "onText-layer-rendered"?: ((...args: any[]) => any) | undefined;
72
+ "onText-layer-error"?: ((...args: any[]) => any) | undefined;
73
+ "onSelection-raw"?: ((...args: any[]) => any) | undefined;
74
+ "onBypass-selection"?: ((...args: any[]) => any) | undefined;
75
+ }>, {
7
76
  hasTextLayer: boolean;
8
77
  outputScale: number;
9
- documentEl: Record<string, any>;
10
- $props: {
11
- readonly page?: Record<string, any> | undefined;
12
- readonly pages?: unknown[] | undefined;
13
- readonly config?: Record<string, any> | undefined;
14
- readonly scale?: number | undefined;
15
- readonly hasTextLayer?: boolean | undefined;
16
- readonly outputScale?: number | undefined;
17
- readonly documentEl?: Record<string, any> | undefined;
18
- };
19
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
78
+ documentEl: HTMLElement | null;
79
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
20
80
  pageRef: HTMLDivElement;
21
81
  canvasRef: HTMLCanvasElement;
22
82
  textLayerRef: HTMLDivElement;
@@ -0,0 +1,45 @@
1
+ import { Raw } from 'vue';
2
+ import { PDFDocumentProxy, PDFPageProxy, TextLayer } from 'pdfjs-dist';
3
+ export type PdfViewerLib = {
4
+ TextLayer?: typeof TextLayer;
5
+ };
6
+ export type PdfViewerConfig = {
7
+ pdfLib?: PdfViewerLib;
8
+ workerSrc?: string;
9
+ setWorker?: boolean;
10
+ textLayer?: boolean;
11
+ outputScale?: number;
12
+ };
13
+ export type PdfViewerDocumentData = {
14
+ documentId: string;
15
+ pdfjsDocument: Raw<PDFDocumentProxy>;
16
+ };
17
+ export type PdfViewerPageData = {
18
+ documentId: string;
19
+ pageId: string;
20
+ pageNumber: number;
21
+ pageIsRendered: boolean;
22
+ pdfjsPage: Raw<PDFPageProxy>;
23
+ };
24
+ export type PdfPageRenderedPayload = {
25
+ page: PdfViewerPageData;
26
+ documentId: string;
27
+ pageIndex: number;
28
+ pageNumber: number;
29
+ width: number;
30
+ height: number;
31
+ originalWidth: number;
32
+ originalHeight: number;
33
+ };
34
+ export type PdfSelectionBounds = {
35
+ top: number;
36
+ left: number;
37
+ bottom: number;
38
+ right: number;
39
+ };
40
+ export type PdfSelectionRawPayload = {
41
+ selectionBounds: PdfSelectionBounds;
42
+ documentId: string;
43
+ page: number;
44
+ source: 'pdf';
45
+ };
@@ -1,19 +1,84 @@
1
- declare const _default: import('vue').DefineComponent<{}, {
1
+ import { PropType } from 'vue';
2
+ import { WhiteboardPage as WhiteboardPageModel } from '../../core/whiteboard/WhiteboardPage.js';
3
+ import { WhiteboardDropTarget, WhiteboardPageOffset, WhiteboardPageSize } from './whiteboard-types.js';
4
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
5
+ whiteboard: {
6
+ type: PropType<WhiteboardDropTarget>;
7
+ required: true;
8
+ };
9
+ pages: {
10
+ type: PropType<WhiteboardPageModel[]>;
11
+ default: () => never[];
12
+ };
13
+ pageSizes: {
14
+ type: PropType<Record<number, WhiteboardPageSize>>;
15
+ default: () => {};
16
+ };
17
+ pageOffsets: {
18
+ type: PropType<Record<number, WhiteboardPageOffset>>;
19
+ default: () => {};
20
+ };
21
+ enabled: {
22
+ type: BooleanConstructor;
23
+ default: boolean;
24
+ };
25
+ /**
26
+ * Pointer ownership flag, separate from `enabled` (which controls show + Konva
27
+ * interactivity). When the whiteboard surface overlays a PDF, the host passes
28
+ * `interactive` so a visible-but-inert whiteboard layer never swallows PDF text
29
+ * selection or PDF comment selection. Defaults to `enabled` to preserve the
30
+ * legacy single-flag behavior when a host does not provide an explicit value.
31
+ */
32
+ interactive: {
33
+ type: PropType<boolean | null>;
34
+ default: null;
35
+ };
36
+ opacity: {
37
+ type: NumberConstructor;
38
+ default: number;
39
+ };
40
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
41
+ whiteboard: {
42
+ type: PropType<WhiteboardDropTarget>;
43
+ required: true;
44
+ };
45
+ pages: {
46
+ type: PropType<WhiteboardPageModel[]>;
47
+ default: () => never[];
48
+ };
49
+ pageSizes: {
50
+ type: PropType<Record<number, WhiteboardPageSize>>;
51
+ default: () => {};
52
+ };
53
+ pageOffsets: {
54
+ type: PropType<Record<number, WhiteboardPageOffset>>;
55
+ default: () => {};
56
+ };
57
+ enabled: {
58
+ type: BooleanConstructor;
59
+ default: boolean;
60
+ };
61
+ /**
62
+ * Pointer ownership flag, separate from `enabled` (which controls show + Konva
63
+ * interactivity). When the whiteboard surface overlays a PDF, the host passes
64
+ * `interactive` so a visible-but-inert whiteboard layer never swallows PDF text
65
+ * selection or PDF comment selection. Defaults to `enabled` to preserve the
66
+ * legacy single-flag behavior when a host does not provide an explicit value.
67
+ */
68
+ interactive: {
69
+ type: PropType<boolean | null>;
70
+ default: null;
71
+ };
72
+ opacity: {
73
+ type: NumberConstructor;
74
+ default: number;
75
+ };
76
+ }>> & Readonly<{}>, {
2
77
  enabled: boolean;
3
78
  opacity: number;
4
- pages: unknown[];
5
- whiteboard: Record<string, any>;
6
- pageSizes: Record<string, any>;
7
- pageOffsets: Record<string, any>;
8
- interactive: boolean;
9
- $props: {
10
- readonly enabled?: boolean | undefined;
11
- readonly opacity?: number | undefined;
12
- readonly pages?: unknown[] | undefined;
13
- readonly whiteboard?: Record<string, any> | undefined;
14
- readonly pageSizes?: Record<string, any> | undefined;
15
- readonly pageOffsets?: Record<string, any> | undefined;
16
- readonly interactive?: boolean | undefined;
17
- };
18
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
79
+ pages: WhiteboardPageModel[];
80
+ pageSizes: Record<number, WhiteboardPageSize>;
81
+ pageOffsets: Record<number, WhiteboardPageOffset>;
82
+ interactive: boolean | null;
83
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
19
84
  export default _default;
@@ -1,17 +1,53 @@
1
- declare const _default: import('vue').DefineComponent<{}, {
1
+ import { PropType } from 'vue';
2
+ import { WhiteboardPage } from '../../core/whiteboard/WhiteboardPage.js';
3
+ import { WhiteboardDropTarget, WhiteboardPageOffset, WhiteboardPageSize } from './whiteboard-types.js';
4
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
5
+ whiteboard: {
6
+ type: PropType<WhiteboardDropTarget>;
7
+ required: true;
8
+ };
9
+ page: {
10
+ type: PropType<WhiteboardPage>;
11
+ required: true;
12
+ };
13
+ pageSize: {
14
+ type: PropType<WhiteboardPageSize | null>;
15
+ default: null;
16
+ };
17
+ pageOffset: {
18
+ type: PropType<WhiteboardPageOffset | null>;
19
+ default: null;
20
+ };
21
+ enabled: {
22
+ type: BooleanConstructor;
23
+ default: boolean;
24
+ };
25
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
26
+ whiteboard: {
27
+ type: PropType<WhiteboardDropTarget>;
28
+ required: true;
29
+ };
30
+ page: {
31
+ type: PropType<WhiteboardPage>;
32
+ required: true;
33
+ };
34
+ pageSize: {
35
+ type: PropType<WhiteboardPageSize | null>;
36
+ default: null;
37
+ };
38
+ pageOffset: {
39
+ type: PropType<WhiteboardPageOffset | null>;
40
+ default: null;
41
+ };
42
+ enabled: {
43
+ type: BooleanConstructor;
44
+ default: boolean;
45
+ };
46
+ }>> & Readonly<{}>, {
2
47
  enabled: boolean;
3
- page: Record<string, any>;
4
- whiteboard: Record<string, any>;
5
- pageSize: Record<string, any>;
6
- pageOffset: Record<string, any>;
7
- $props: {
8
- readonly enabled?: boolean | undefined;
9
- readonly page?: Record<string, any> | undefined;
10
- readonly whiteboard?: Record<string, any> | undefined;
11
- readonly pageSize?: Record<string, any> | undefined;
12
- readonly pageOffset?: Record<string, any> | undefined;
13
- };
14
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
48
+ pageSize: WhiteboardPageSize | null;
49
+ pageOffset: WhiteboardPageOffset | null;
50
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
15
51
  containerRef: HTMLDivElement;
16
52
  }, HTMLDivElement>;
17
53
  export default _default;
@@ -1,18 +1,33 @@
1
- export function useWhiteboard({ proxy, layers, documents, modules }: {
2
- proxy: any;
3
- layers: any;
4
- documents: any;
5
- modules: any;
6
- }): {
7
- whiteboard: any;
8
- whiteboardModuleConfig: import('vue').ComputedRef<any>;
9
- whiteboardPages: import('vue').ShallowRef<never[], never[]>;
10
- whiteboardPageSizes: {};
11
- whiteboardPageOffsets: {};
12
- whiteboardEnabled: import('vue').Ref<any, any>;
13
- whiteboardOpacity: import('vue').Ref<number, number>;
14
- whiteboardReady: import('vue').Ref<boolean, boolean>;
15
- handleWhiteboardPageReady: (payload: any) => void;
1
+ import { Ref } from 'vue';
2
+ import { SuperDoc } from '../../core/SuperDoc.js';
3
+ import { Document, Modules } from '../../core/types/index.js';
4
+ import { WhiteboardPageSize } from '../../core/whiteboard/Whiteboard.js';
5
+ import { WhiteboardPage } from '../../core/whiteboard/WhiteboardPage.js';
6
+ import { PdfPageRenderedPayload } from '../PdfViewer/pdf-viewer-types.js';
7
+ import { WhiteboardPageOffset } from './whiteboard-types.js';
8
+ type WhiteboardDocument = Pick<Document, 'id' | 'type'>;
9
+ type WhiteboardPageReadyPayload = Pick<PdfPageRenderedPayload, 'pageIndex' | 'width' | 'height' | 'originalWidth' | 'originalHeight'>;
10
+ export type UseWhiteboardOptions = {
11
+ proxy: {
12
+ $superdoc: Pick<SuperDoc, 'emit' | 'whiteboard'>;
13
+ };
14
+ layers: Ref<HTMLElement | null>;
15
+ documents: Ref<WhiteboardDocument[]>;
16
+ modules: Modules;
17
+ };
18
+ export declare const useWhiteboard: ({ proxy, layers, documents, modules }: UseWhiteboardOptions) => {
19
+ whiteboard: import('../../core/whiteboard/Whiteboard.js').Whiteboard | null;
20
+ whiteboardModuleConfig: import('vue').ComputedRef<{
21
+ enabled?: boolean;
22
+ } | null>;
23
+ whiteboardPages: import('vue').ShallowRef<WhiteboardPage[], WhiteboardPage[]>;
24
+ whiteboardPageSizes: Record<number, WhiteboardPageSize>;
25
+ whiteboardPageOffsets: Record<number, WhiteboardPageOffset>;
26
+ whiteboardEnabled: Ref<boolean, boolean>;
27
+ whiteboardOpacity: Ref<number, number>;
28
+ whiteboardReady: Ref<boolean, boolean>;
29
+ handleWhiteboardPageReady: (payload: WhiteboardPageReadyPayload | null | undefined) => void;
16
30
  updateWhiteboardPageSizes: () => void;
17
31
  updateWhiteboardPageOffsets: () => void;
18
32
  };
33
+ export {};
@@ -0,0 +1,11 @@
1
+ import { Whiteboard } from '../../core/whiteboard/Whiteboard.js';
2
+ export type WhiteboardPageSize = {
3
+ width: number;
4
+ height: number;
5
+ originalWidth?: number | null;
6
+ };
7
+ export type WhiteboardPageOffset = {
8
+ top: number;
9
+ left: number;
10
+ };
11
+ export type WhiteboardDropTarget = Pick<Whiteboard, 'getTool' | 'getType'>;
@@ -1,5 +1 @@
1
- /**
2
- * CSS selector matching all focusable elements within a surface shell.
3
- * Used by SurfaceDialog (focus trap, initial focus) and SurfaceFloating (initial focus).
4
- */
5
- export const FOCUSABLE_SELECTOR: string;
1
+ export declare const FOCUSABLE_SELECTOR: string;
@@ -1,32 +1,39 @@
1
+ /**
2
+ * Shared ownership registry for the ambient (no-focus) Cmd/Ctrl+F shortcut.
3
+ *
4
+ * Several SuperDoc instances can be mounted on one page, and each registers a
5
+ * document-level capture listener for the find shortcut. When focus is inside
6
+ * an instance that instance handles the shortcut, but when focus is on <body>
7
+ * (fresh page load, clicks on page chrome) every instance would otherwise
8
+ * consider itself eligible — and `stopPropagation()` cannot suppress sibling
9
+ * listeners already registered on the same node, so multiple find bars would
10
+ * open. This registry elects a single ambient owner: the most recently mounted
11
+ * or interacted-with instance.
12
+ */
1
13
  /**
2
14
  * Make `owner` the ambient find-shortcut owner. Call on mount and on user
3
15
  * interaction (pointerdown / focusin inside the instance) so "the SuperDoc the
4
16
  * user last touched" wins the ambient shortcut.
5
- * @param {unknown} owner
6
17
  */
7
- export function claimFindShortcut(owner: unknown): void;
18
+ export declare function claimFindShortcut(owner: unknown): void;
8
19
  /**
9
20
  * Clear ownership if `owner` currently holds it. Call on unmount.
10
- * @param {unknown} owner
11
21
  */
12
- export function releaseFindShortcut(owner: unknown): void;
22
+ export declare function releaseFindShortcut(owner: unknown): void;
13
23
  /**
14
24
  * Whether `owner` may handle the ambient (no-focus) find shortcut. With no
15
25
  * claimed owner any instance may handle it (single-instance pages), relying on
16
26
  * the `defaultPrevented` check in {@link shouldHandleFindShortcut} to keep the
17
27
  * shortcut single-fire.
18
- * @param {unknown} owner
19
28
  */
20
- export function ownsAmbientFindShortcut(owner: unknown): boolean;
29
+ export declare function ownsAmbientFindShortcut(owner: unknown): boolean;
21
30
  /**
22
31
  * Decide whether one SuperDoc instance's capture listener should handle a
23
32
  * find-shortcut keydown. `defaultPrevented` covers the cross-instance race
24
33
  * directly: the first instance to act marks the event, and sibling capture
25
34
  * listeners on the same node skip it.
26
- * @param {KeyboardEvent} event
27
- * @param {{ focusInside: boolean, owner: unknown }} context
28
35
  */
29
- export function shouldHandleFindShortcut(event: KeyboardEvent, { focusInside, owner }: {
36
+ export declare function shouldHandleFindShortcut(event: KeyboardEvent, { focusInside, owner }: {
30
37
  focusInside: boolean;
31
38
  owner: unknown;
32
39
  }): boolean;
@@ -8,30 +8,26 @@
8
8
  * longer looking at.
9
9
  *
10
10
  * A leaf module rather than a closure inside `useFindReplace`, following
11
- * `find-shortcut-owner.js`. The guard previously lived in two byte-identical
11
+ * `find-shortcut-owner.ts`. The guard previously lived in two byte-identical
12
12
  * inline closures, each of which needed a full composable driving a
13
13
  * worker-backed host caught mid-swap to reach one branch. Nothing could, so it
14
14
  * shipped with a comment admitting it was verified by inspection only. The
15
15
  * duplication was the tell: logic worth stating twice is worth naming once.
16
16
  */
17
+ type ReplaceSession = {
18
+ getSnapshot: () => unknown;
19
+ };
20
+ type ReplaceContinuationDeps<S extends ReplaceSession> = {
21
+ getCurrentSession: () => S | null;
22
+ applySlice: (snapshot: unknown) => void;
23
+ onSettled: () => void;
24
+ };
17
25
  /**
18
26
  * Build the continuation that publishes a settled replace back into the panel.
19
27
  *
20
28
  * The session handle itself is the identity. `onSettled` always runs, including
21
29
  * when the write is skipped: it clears the pending flag that gates the replace
22
30
  * controls, and leaving it set would disable them with nothing left to settle.
23
- *
24
- * @param {{ getSnapshot: () => unknown }} session The handle captured when the replace was issued.
25
- * @param {object} deps
26
- * @param {() => unknown} deps.getCurrentSession Reads the live session identity.
27
- * @param {(snapshot: unknown) => void} deps.applySlice Publishes a snapshot into the panel.
28
- * @param {() => void} deps.onSettled Runs whether or not the write was skipped.
29
- * @returns {() => void}
30
31
  */
31
- export function createReplaceContinuation(session: {
32
- getSnapshot: () => unknown;
33
- }, { getCurrentSession, applySlice, onSettled }: {
34
- getCurrentSession: () => unknown;
35
- applySlice: (snapshot: unknown) => void;
36
- onSettled: () => void;
37
- }): () => void;
32
+ export declare function createReplaceContinuation<S extends ReplaceSession>(session: S, { getCurrentSession, applySlice, onSettled }: ReplaceContinuationDeps<S>): () => void;
33
+ export {};