@docx-editor.dev/pro 2.9.2 → 2.11.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 (78) hide show
  1. package/README.md +1 -7
  2. package/dist/chunk-32RB7HPL.js +3 -0
  3. package/dist/chunk-4HGT2OVX.cjs +3 -0
  4. package/dist/chunk-6DEUT2RQ.js +1 -0
  5. package/dist/chunk-7QSJBMZV.js +3 -0
  6. package/dist/chunk-EMO6YTKO.cjs +1 -0
  7. package/dist/chunk-GDTCNTK7.cjs +1 -0
  8. package/dist/chunk-HJB77VBO.js +1 -0
  9. package/dist/chunk-LUUFBXJ5.cjs +1 -0
  10. package/dist/chunk-NQW54J56.js +1 -0
  11. package/dist/chunk-Q2VBO66F.js +1 -0
  12. package/dist/chunk-Q4YPX2DT.cjs +1 -0
  13. package/dist/chunk-QLZH2Q2C.cjs +1 -0
  14. package/dist/chunk-W3V54DWZ.js +1 -0
  15. package/dist/chunk-YJM6R76M.cjs +3 -0
  16. package/dist/collaboration/hocuspocus.cjs +1 -0
  17. package/dist/collaboration/hocuspocus.d.cts +58 -0
  18. package/dist/collaboration/hocuspocus.d.ts +58 -0
  19. package/dist/collaboration/hocuspocus.js +1 -0
  20. package/dist/collaboration/index.cjs +2 -0
  21. package/dist/collaboration/index.d.cts +22 -0
  22. package/dist/collaboration/index.d.ts +22 -0
  23. package/dist/collaboration/index.js +2 -0
  24. package/dist/collaboration/webrtc.cjs +2 -0
  25. package/dist/collaboration/webrtc.d.cts +86 -0
  26. package/dist/collaboration/webrtc.d.ts +86 -0
  27. package/dist/collaboration/webrtc.js +2 -0
  28. package/dist/collaboration-module-BgRxhW5b.d.cts +45 -0
  29. package/dist/collaboration-module-BgRxhW5b.d.ts +45 -0
  30. package/dist/{define-custom-node-Bk8kFO27.d.cts → define-custom-node-B_p2nr9T.d.cts} +2 -20
  31. package/dist/{define-custom-node-Bk8kFO27.d.ts → define-custom-node-BehI3jWX.d.ts} +2 -20
  32. package/dist/document-session-2B3QFWBQ.cjs +1 -0
  33. package/dist/document-session-6UET6BWT.js +1 -0
  34. package/dist/document-session-DVa53DAw.d.cts +94 -0
  35. package/dist/document-session-DiBuzWwA.d.ts +94 -0
  36. package/dist/document-session-RGNZHMWF.js +1 -0
  37. package/dist/document-session-TU7WVBRB.cjs +1 -0
  38. package/dist/hocuspocus-EUC4BGDD.js +1 -0
  39. package/dist/hocuspocus-YIKH6ENE.cjs +1 -0
  40. package/dist/index.cjs +1 -1
  41. package/dist/index.d.cts +4 -2
  42. package/dist/index.d.ts +4 -2
  43. package/dist/index.js +1 -1
  44. package/dist/react/hocuspocus.cjs +1 -0
  45. package/dist/react/hocuspocus.d.cts +104 -0
  46. package/dist/react/hocuspocus.d.ts +104 -0
  47. package/dist/react/hocuspocus.js +1 -0
  48. package/dist/react/index.cjs +2 -2
  49. package/dist/react/index.d.cts +320 -5
  50. package/dist/react/index.d.ts +320 -5
  51. package/dist/react/index.js +2 -2
  52. package/dist/react/webrtc.cjs +1 -0
  53. package/dist/react/webrtc.d.cts +98 -0
  54. package/dist/react/webrtc.d.ts +98 -0
  55. package/dist/react/webrtc.js +1 -0
  56. package/dist/room-id-BfudXOZz.d.cts +13 -0
  57. package/dist/room-id-BfudXOZz.d.ts +13 -0
  58. package/dist/session-BH7Qgyp6.d.cts +140 -0
  59. package/dist/session-BH7Qgyp6.d.ts +140 -0
  60. package/dist/session-okdqygLg.d.cts +82 -0
  61. package/dist/session-okdqygLg.d.ts +82 -0
  62. package/dist/vue/hocuspocus.cjs +1 -0
  63. package/dist/vue/hocuspocus.d.cts +105 -0
  64. package/dist/vue/hocuspocus.d.ts +105 -0
  65. package/dist/vue/hocuspocus.js +1 -0
  66. package/dist/vue/index.cjs +2 -2
  67. package/dist/vue/index.d.cts +437 -1
  68. package/dist/vue/index.d.ts +437 -1
  69. package/dist/vue/index.js +2 -2
  70. package/dist/vue/webrtc.cjs +1 -0
  71. package/dist/vue/webrtc.d.cts +99 -0
  72. package/dist/vue/webrtc.d.ts +99 -0
  73. package/dist/vue/webrtc.js +1 -0
  74. package/dist/webrtc-36GPPCW4.js +2 -0
  75. package/dist/webrtc-CDIFHCQY.cjs +2 -0
  76. package/package.json +62 -7
  77. package/dist/chunk-4LFF2FXG.cjs +0 -1
  78. package/dist/chunk-TH5PXU6L.js +0 -1
@@ -1,10 +1,16 @@
1
1
  import { EditorModule } from '@docx-editor.dev/core/editor';
2
+ import { EditorCollaborationSession, CollaborationStatus, CollaborationFailure, CollaborationParticipant, CollaborationIdentity, CollaborationRemoteSelection } from '@docx-editor.dev/core/collaboration';
3
+ export { CollaborationFailure, CollaborationFailureCode, CollaborationIdentity, CollaborationParticipant, CollaborationRemoteSelection, CollaborationRemoteSelectionAddress, CollaborationSelectionKind, CollaborationStatus, CollaborationStatusSnapshot } from '@docx-editor.dev/core/collaboration';
2
4
  import * as vue_jsx_runtime from 'vue/jsx-runtime';
3
5
  import * as vue from 'vue';
4
6
  import { ComputedRef, Ref, VNode, MaybeRefOrGetter as MaybeRefOrGetter$1, PropType } from 'vue';
5
7
  import { ReviewItemPlacement, ReviewActivationOptions, ReviewItemQuery, Editor } from '@docx-editor.dev/core/contracts/editor';
6
8
  export { ReviewActivationOptions } from '@docx-editor.dev/core/contracts/editor';
7
9
  import { MaybeRefOrGetter, ReviewAuthorInfo } from '@docx-editor.dev/vue';
10
+ import { C as CollaborationSession, a as CollaborationBootstrap } from '../session-okdqygLg.js';
11
+ export { b as CollaborationIdentityUpdate } from '../session-okdqygLg.js';
12
+ import * as Y from 'yjs';
13
+ import { Awareness } from 'y-protocols/awareness';
8
14
 
9
15
  /**
10
16
  * Licensing, v1: honor system.
@@ -46,6 +52,28 @@ interface ReviewModuleOptions extends ProLicenseOptions {
46
52
  /** Build the review module. Construction never validates the key and never touches the network. */
47
53
  declare function reviewModule(options?: ReviewModuleOptions): EditorModule;
48
54
 
55
+ /**
56
+ * The collaboration module: a replica as an `EditorModule` for
57
+ * `createDocxEditor({ modules })`.
58
+ *
59
+ * Registering it is the whole enablement story: the surface attaches the
60
+ * session, remote selections paint, and undo routes through the session.
61
+ * This file imports no Yjs, so the main Pro entry can re-export it without
62
+ * pulling a CRDT into a review-only bundle.
63
+ */
64
+
65
+ /**
66
+ * How {@link collaborationModule} is configured. The session is required;
67
+ * the licence key is optional and never validated.
68
+ *
69
+ * @public
70
+ */
71
+ interface CollaborationModuleOptions extends ProLicenseOptions {
72
+ readonly session: EditorCollaborationSession;
73
+ }
74
+ /** Build the collaboration module. Construction never validates the key and never touches the network. */
75
+ declare function collaborationModule(options: CollaborationModuleOptions): EditorModule;
76
+
49
77
  /** @public */
50
78
  type ReviewItemView = ReviewItemPlacement;
51
79
 
@@ -746,6 +774,414 @@ declare const DocxEditorReview: {
746
774
  /** @public */
747
775
  type DocxEditorReviewNamespace = typeof DocxEditorReview;
748
776
 
777
+ /** Reactive collaboration status for Vue hosts. @public */
778
+ interface UseCollaborationStatusReturn {
779
+ readonly status: Readonly<Ref<CollaborationStatus | 'inactive'>>;
780
+ readonly reason: Readonly<Ref<CollaborationFailure | undefined>>;
781
+ readonly lastFailure: Readonly<Ref<CollaborationFailure | undefined>>;
782
+ /**
783
+ * Edits made now reach the room.
784
+ *
785
+ * False while joining, while the transport is down, and after a terminal failure. A host
786
+ * that shows nothing else should show this, because the alternative is a user typing into
787
+ * a replica nobody receives.
788
+ */
789
+ readonly live: ComputedRef<boolean>;
790
+ /**
791
+ * This replica no longer agrees with the room, and waiting will not fix it.
792
+ *
793
+ * `error` and `destroyed`. The replica refused an update and kept the copy it had, so it is
794
+ * now editing a document the others do not have. The way out is `rejoin`, not time — which
795
+ * is why this is separate from "not live" rather than folded into it.
796
+ */
797
+ readonly diverged: ComputedRef<boolean>;
798
+ /**
799
+ * An editor has attached its document port to this replica.
800
+ *
801
+ * False with a live session means the host did not remount the editor when the session
802
+ * appeared — pass `:key="session.sessionId"` — so `collaborationModule` never attached and
803
+ * nothing replicates, whatever `status` says.
804
+ */
805
+ readonly attached: Readonly<Ref<boolean>>;
806
+ }
807
+ /**
808
+ * Reactive status for the collaboration session, with `live` and `diverged` derived.
809
+ *
810
+ * Omit `session` and it reads the one the editor above holds. Pass it explicitly for a
811
+ * session this Root does not own.
812
+ *
813
+ * @public
814
+ */
815
+ declare function useCollaborationStatus(session?: MaybeRefOrGetter$1<CollaborationSession | null>): UseCollaborationStatusReturn;
816
+
817
+ /** Reactive participant roster for Vue hosts. @public */
818
+ interface UseCollaborationParticipantsReturn {
819
+ readonly participants: Readonly<Ref<readonly CollaborationParticipant[]>>;
820
+ }
821
+ /**
822
+ * Subscribe to the participant roster of the collaboration session.
823
+ *
824
+ * Omit `session` and it reads the one the editor above holds. The ref keeps its array
825
+ * reference until the roster actually changes, so unrelated awareness traffic does not
826
+ * retrigger watchers. No session yields a stable empty array.
827
+ *
828
+ * @public
829
+ */
830
+ declare function useCollaborationParticipants(session?: MaybeRefOrGetter$1<CollaborationSession | null>): UseCollaborationParticipantsReturn;
831
+
832
+ /** Values {@link useCollaborationSession} returns. @public */
833
+ interface UseCollaborationSessionReturn {
834
+ /** The live collaboration session of the editor above, or null. */
835
+ readonly session: ComputedRef<CollaborationSession | null>;
836
+ }
837
+ /**
838
+ * The live collaboration session of the editor above this component, or null.
839
+ *
840
+ * The editor already holds the session a `collaborationModule` contributed, so presence
841
+ * chrome reads it from here instead of being handed it: every part and composable in this
842
+ * package takes `session` as an OPTIONAL prop and falls back to this. A host with one Root
843
+ * and one room never passes it at all.
844
+ *
845
+ * Pass it explicitly when a component sits outside the Root that owns the room, or when one
846
+ * page renders two.
847
+ *
848
+ * @public
849
+ */
850
+ declare function useCollaborationSession(): UseCollaborationSessionReturn;
851
+
852
+ /**
853
+ * What this component needs from a room, which every collaboration composable already
854
+ * returns.
855
+ *
856
+ * Structural on purpose: `useHocuspocusCollaboration`, `useWebrtcCollaboration` and
857
+ * `useDocumentCollaboration` all satisfy it, and so does a host that owns its own resources.
858
+ *
859
+ * @public
860
+ */
861
+ interface CollaborationRootSource {
862
+ readonly document: Uint8Array | null;
863
+ readonly modules: readonly EditorModule[];
864
+ readonly session: CollaborationSession | null;
865
+ }
866
+ /**
867
+ * Props for {@link DocxEditorCollaborationRoot}.
868
+ *
869
+ * Everything `DocxEditorRoot` takes except the three this component owns, which arrive as
870
+ * fallthrough attributes.
871
+ *
872
+ * @public
873
+ */
874
+ interface DocxEditorCollaborationRootProps {
875
+ /** The room, straight from a collaboration composable. */
876
+ readonly collaboration: CollaborationRootSource;
877
+ /**
878
+ * Rendered before the room has a document — while connecting, or after a failure.
879
+ *
880
+ * This component does not decide what "connecting" looks like, so without the `fallback`
881
+ * slot nothing renders. Keep branching on the composable's `pending` and `error` for
882
+ * anything more specific.
883
+ */
884
+ readonly fallback?: VNode | VNode[];
885
+ }
886
+ /**
887
+ * A `DocxEditorRoot` wired to a collaboration room.
888
+ *
889
+ * ```html
890
+ * <DocxEditorCollaborationRoot :collaboration="collaboration">
891
+ * <DocxEditorToolbar />
892
+ * <DocxEditorViewport>
893
+ * <DocxEditorContent />
894
+ * <DocxEditorCollaboration.CaretLabels />
895
+ * </DocxEditorViewport>
896
+ * <template #fallback><p>Connecting…</p></template>
897
+ * </DocxEditorCollaborationRoot>
898
+ * ```
899
+ *
900
+ * The presence parts take no `session`: they read it from the editor this mounts.
901
+ *
902
+ * @public
903
+ */
904
+ declare const DocxEditorCollaborationRoot: vue.DefineComponent<vue.ExtractPropTypes<{
905
+ collaboration: {
906
+ type: PropType<CollaborationRootSource>;
907
+ required: true;
908
+ };
909
+ }>, () => VNode<vue.RendererNode, vue.RendererElement, {
910
+ [key: string]: any;
911
+ }> | VNode<vue.RendererNode, vue.RendererElement, {
912
+ [key: string]: any;
913
+ }>[] | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
914
+ collaboration: {
915
+ type: PropType<CollaborationRootSource>;
916
+ required: true;
917
+ };
918
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
919
+
920
+ /**
921
+ * Full-document collaboration over the canonical primitive journal.
922
+ *
923
+ * Local direction: the canonical store commits, emits ONE journal, and the journal is applied
924
+ * to shared state in one Yjs transaction. Remote direction: a shared-state change materializes
925
+ * one canonical package, which the port publishes as one revision. The two never chase each
926
+ * other, because a remote publication deliberately emits no journal.
927
+ */
928
+
929
+ /**
930
+ * Options for one full-document collaboration replica.
931
+ *
932
+ * The caller owns `ydoc`.
933
+ * @public
934
+ */
935
+ interface CreateDocumentCollaborationOptions {
936
+ readonly ydoc: Y.Doc;
937
+ readonly awareness: Awareness;
938
+ readonly documentId: string;
939
+ /** Unique attachment identity. Omit it to generate a new identity for this session. */
940
+ readonly sessionId?: string;
941
+ readonly identity: CollaborationIdentity;
942
+ readonly bootstrap: CollaborationBootstrap;
943
+ /**
944
+ * Admit local edits while the transport is `disconnected`.
945
+ *
946
+ * A journal applies to the local `Y.Doc` either way, so buffered offline edits merge on
947
+ * reconnect exactly as concurrent online edits do. Off by default: a host that shows no
948
+ * offline indicator would let users type into a document no peer receives yet. `error`
949
+ * stays terminal and `initializing` stays refused regardless of this option.
950
+ */
951
+ readonly offlineEditing?: boolean;
952
+ }
953
+
954
+ /**
955
+ * Arguments for {@link UseDocumentCollaborationReturn.connect}: the
956
+ * `createDocumentCollaboration` options. The consumer owns `ydoc`, `awareness`, and
957
+ * whatever provider replicates them.
958
+ *
959
+ * @public
960
+ */
961
+ type UseDocumentCollaborationConnectOptions = CreateDocumentCollaborationOptions;
962
+ /** Input for {@link useDocumentCollaboration}. @public */
963
+ interface UseDocumentCollaborationOptions {
964
+ /**
965
+ * Host modules. The composable adds `collaborationModule` when a room is ready.
966
+ * A host collaboration contribution is a configuration error and throws.
967
+ */
968
+ readonly modules?: readonly EditorModule[];
969
+ /**
970
+ * Connect this room when the composable starts. Omit it and call
971
+ * {@link UseDocumentCollaborationReturn.connect} after the host has a `ydoc` and a room.
972
+ */
973
+ readonly room?: UseDocumentCollaborationConnectOptions | null;
974
+ }
975
+ /** Values {@link useDocumentCollaboration} returns. @public */
976
+ interface UseDocumentCollaborationReturn {
977
+ readonly document: Readonly<Ref<Uint8Array | null>>;
978
+ readonly modules: Readonly<Ref<readonly EditorModule[]>>;
979
+ readonly session: Readonly<Ref<CollaborationSession | null>>;
980
+ readonly pending: Readonly<Ref<boolean>>;
981
+ readonly error: Readonly<Ref<CollaborationFailure | null>>;
982
+ /**
983
+ * Connect a room. RESOLVES with the failure, or null on success — it does not reject.
984
+ *
985
+ * A rejection carried nothing the resolved value does not, and it made the ordinary call
986
+ * site wrong by default: `onClick={() => connect(options)}` produced an unhandled rejection
987
+ * on every failed connect. `error` reports the same failure for renderers.
988
+ */
989
+ readonly connect: (options: UseDocumentCollaborationConnectOptions) => Promise<CollaborationFailure | null>;
990
+ /**
991
+ * Destroy the session and carry on editing locally.
992
+ *
993
+ * The current bytes live in the editor, not in this composable, so the argument is
994
+ * required: pass `await editor.save()` to keep what the room typed. The consumer still
995
+ * owns `ydoc` and its provider; the composable destroys only the session it created.
996
+ */
997
+ readonly leave: (nextDocument: Uint8Array) => void;
998
+ }
999
+ /**
1000
+ * Own a provider-agnostic collaboration session for a Vue host.
1001
+ *
1002
+ * The consumer creates the `ydoc`, the awareness, and whatever provider replicates them
1003
+ * (WebSocket, WebRTC, offline persistence); this composable owns only the document session
1004
+ * over them, with the same remount-safe lifecycle as `useWebrtcCollaboration`. It imports
1005
+ * no network provider.
1006
+ *
1007
+ * @public
1008
+ */
1009
+ declare function useDocumentCollaboration(options?: MaybeRefOrGetter$1<UseDocumentCollaborationOptions | null>): UseDocumentCollaborationReturn;
1010
+
1011
+ /**
1012
+ * What a custom remote-caret label renders with.
1013
+ *
1014
+ * The renderer mounts inside the adapter's provider tree, so every composable works in it —
1015
+ * `useDocxEditor`, `useEditorState`, the review composables. It has the opened document, not
1016
+ * only the collaborator.
1017
+ *
1018
+ * @public
1019
+ */
1020
+ interface CollaborationCaretLabelRenderProps {
1021
+ /** The remote selection this label marks, resolved into this replica's addresses. */
1022
+ readonly selection: CollaborationRemoteSelection;
1023
+ /** The session roster entry for the selection's actor, or null while presence catches up. */
1024
+ readonly participant: CollaborationParticipant | null;
1025
+ /**
1026
+ * The resolved accent: the published colour when the engine can paint it, otherwise the
1027
+ * review roster's colour for the name — the same resolution the painted label uses.
1028
+ */
1029
+ readonly color: string;
1030
+ /**
1031
+ * The image declared for this collaborator with `DocxEditorAuthorStyle`, or `undefined`.
1032
+ *
1033
+ * Presence carries no picture, so this is the host's own declaration, resolved by display
1034
+ * name — the same key a comment card resolves. Declare it once and it reaches the caret,
1035
+ * the avatar stack and the review card together.
1036
+ */
1037
+ readonly avatarUrl?: string;
1038
+ }
1039
+ /**
1040
+ * Props for {@link DocxEditorCollaboration}.CaretLabels.
1041
+ *
1042
+ * The rendered content lands in the engine's label layer, which is furniture: the layer is
1043
+ * `aria-hidden` and takes no pointer events. Assistive technology does not read a label,
1044
+ * and nothing inside one is clickable or focusable. Keep interactive or announced presence
1045
+ * UI in your own chrome, such as the avatar stack.
1046
+ *
1047
+ * @public
1048
+ */
1049
+ interface CollaborationCaretLabelsProps {
1050
+ /**
1051
+ * The session whose collaborators label the carets. Omit it and the part uses the one the
1052
+ * editor above holds; `null` renders nothing.
1053
+ */
1054
+ readonly session?: CollaborationSession | null;
1055
+ /**
1056
+ * Scoped slot: `#default="{ selection, participant, color }"`. Without it the label shows
1057
+ * the collaborator's name, matching the engine default.
1058
+ */
1059
+ readonly children?: (props: CollaborationCaretLabelRenderProps) => VNode | VNode[];
1060
+ }
1061
+ /** Render props for {@link DocxEditorCollaboration}.Avatars' per-participant override. @public */
1062
+ interface CollaborationAvatarRenderProps {
1063
+ readonly participant: CollaborationParticipant;
1064
+ /** The resolved accent — published colour, or the review roster's colour for the name. */
1065
+ readonly color: string;
1066
+ /** The first letter of up to two name words, uppercased. */
1067
+ readonly initials: string;
1068
+ /** The image declared for this participant with `DocxEditorAuthorStyle`, or `undefined`. */
1069
+ readonly avatarUrl?: string;
1070
+ }
1071
+ /** Props for {@link DocxEditorCollaboration}.Avatars. @public */
1072
+ interface CollaborationAvatarsProps {
1073
+ /**
1074
+ * The session whose participants the stack shows. Omit it and the part uses the one the
1075
+ * editor above holds; `null` renders nothing.
1076
+ */
1077
+ readonly session?: CollaborationSession | null;
1078
+ /** Avatars shown before the rest collapse into one "+N" chip. Omit to show everyone. */
1079
+ readonly max?: number;
1080
+ readonly className?: string;
1081
+ /** Scoped slot: `#default="{ participant, color, initials, avatarUrl }"` replaces the disc. */
1082
+ readonly children?: (props: CollaborationAvatarRenderProps) => VNode | VNode[];
1083
+ }
1084
+ /** Props for {@link DocxEditorCollaboration}.Avatar. @public */
1085
+ interface CollaborationAvatarProps {
1086
+ readonly participant: CollaborationParticipant;
1087
+ readonly className?: string;
1088
+ /** Default slot: replaces the initials inside the disc; the accent background stays. */
1089
+ readonly children?: VNode | VNode[];
1090
+ }
1091
+ /**
1092
+ * Presence chrome over a live collaboration session.
1093
+ *
1094
+ * Compose the parts inside `DocxEditorRoot` with the collaboration module registered:
1095
+ *
1096
+ * @example
1097
+ * ```html
1098
+ * <DocxEditorCollaboration.Avatars :session="session" :max="4" />
1099
+ * <DocxEditorCollaboration.CaretLabels :session="session" v-slot="{ selection, color }">
1100
+ * <MyLabel :name="selection.name" :color="color" />
1101
+ * </DocxEditorCollaboration.CaretLabels>
1102
+ * ```
1103
+ *
1104
+ * @public
1105
+ */
1106
+ declare const DocxEditorCollaboration: {
1107
+ /** Host-rendered remote-caret labels, with full adapter context inside each label. */
1108
+ CaretLabels: vue.DefineComponent<vue.ExtractPropTypes<{
1109
+ session: {
1110
+ type: PropType<CollaborationSession | null>;
1111
+ default: undefined;
1112
+ };
1113
+ }>, () => VNode<vue.RendererNode, vue.RendererElement, {
1114
+ [key: string]: any;
1115
+ }>[] | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1116
+ session: {
1117
+ type: PropType<CollaborationSession | null>;
1118
+ default: undefined;
1119
+ };
1120
+ }>> & Readonly<{}>, {
1121
+ session: CollaborationSession | null;
1122
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1123
+ /** The packaged avatar stack, coloured to match the review module's author colours. */
1124
+ Avatars: vue.DefineComponent<vue.ExtractPropTypes<{
1125
+ session: {
1126
+ type: PropType<CollaborationSession | null>;
1127
+ default: undefined;
1128
+ };
1129
+ max: {
1130
+ type: NumberConstructor;
1131
+ default: undefined;
1132
+ };
1133
+ className: {
1134
+ type: StringConstructor;
1135
+ default: undefined;
1136
+ };
1137
+ }>, () => VNode<vue.RendererNode, vue.RendererElement, {
1138
+ [key: string]: any;
1139
+ }> | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1140
+ session: {
1141
+ type: PropType<CollaborationSession | null>;
1142
+ default: undefined;
1143
+ };
1144
+ max: {
1145
+ type: NumberConstructor;
1146
+ default: undefined;
1147
+ };
1148
+ className: {
1149
+ type: StringConstructor;
1150
+ default: undefined;
1151
+ };
1152
+ }>> & Readonly<{}>, {
1153
+ session: CollaborationSession | null;
1154
+ className: string;
1155
+ max: number;
1156
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1157
+ /** One participant's avatar, for hosts arranging their own presence chrome. */
1158
+ Avatar: vue.DefineComponent<vue.ExtractPropTypes<{
1159
+ participant: {
1160
+ type: PropType<CollaborationParticipant>;
1161
+ required: true;
1162
+ };
1163
+ className: {
1164
+ type: StringConstructor;
1165
+ default: undefined;
1166
+ };
1167
+ }>, () => VNode<vue.RendererNode, vue.RendererElement, {
1168
+ [key: string]: any;
1169
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1170
+ participant: {
1171
+ type: PropType<CollaborationParticipant>;
1172
+ required: true;
1173
+ };
1174
+ className: {
1175
+ type: StringConstructor;
1176
+ default: undefined;
1177
+ };
1178
+ }>> & Readonly<{}>, {
1179
+ className: string;
1180
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1181
+ };
1182
+ /** @public */
1183
+ type DocxEditorCollaborationNamespace = typeof DocxEditorCollaboration;
1184
+
749
1185
  /**
750
1186
  * The Standard Schema interface, vendored.
751
1187
  *
@@ -1085,4 +1521,4 @@ declare function activatedCustomNodeOf(resolved: ResolvedCustomNodeActivation, e
1085
1521
  /** Resolves a painted pointer target to a registered custom-node definition. @public */
1086
1522
  declare function resolveCustomNodeActivation(target: EventTarget | null, nodes: readonly AnyCustomNodeDefinition[]): ResolvedCustomNodeActivation | null;
1087
1523
 
1088
- export { CustomNodeChrome, type CustomNodeChromeProps, CustomNodeContextMenu, type CustomNodeContextMenuProps, DocxEditorReview, type DocxEditorReviewNamespace, type ProLicenseOptions, type ResolvedCustomNodeActivation, type ReviewActionProps, type ReviewItemView, type ReviewMarkersProps, type ReviewModuleOptions, type ReviewPartProps, type ReviewProps, type UseReviewReturn, activatedCustomNodeOf, resolveCustomNodeActivation, reviewModule, useCustomNodeDefinitions, useReview, useReviewAuthor, useReviewItem, useReviewOf, useStackedReviewPositions };
1524
+ export { type CollaborationAvatarProps, type CollaborationAvatarRenderProps, type CollaborationAvatarsProps, CollaborationBootstrap, type CollaborationCaretLabelRenderProps, type CollaborationCaretLabelsProps, type CollaborationModuleOptions, type CollaborationRootSource, CollaborationSession, type CreateDocumentCollaborationOptions, CustomNodeChrome, type CustomNodeChromeProps, CustomNodeContextMenu, type CustomNodeContextMenuProps, DocxEditorCollaboration, type DocxEditorCollaborationNamespace, DocxEditorCollaborationRoot, type DocxEditorCollaborationRootProps, DocxEditorReview, type DocxEditorReviewNamespace, type ProLicenseOptions, type ResolvedCustomNodeActivation, type ReviewActionProps, type ReviewItemView, type ReviewMarkersProps, type ReviewModuleOptions, type ReviewPartProps, type ReviewProps, type UseCollaborationParticipantsReturn, type UseCollaborationSessionReturn, type UseCollaborationStatusReturn, type UseDocumentCollaborationConnectOptions, type UseDocumentCollaborationOptions, type UseDocumentCollaborationReturn, type UseReviewReturn, activatedCustomNodeOf, collaborationModule, resolveCustomNodeActivation, reviewModule, useCollaborationParticipants, useCollaborationSession, useCollaborationStatus, useCustomNodeDefinitions, useDocumentCollaboration, useReview, useReviewAuthor, useReviewItem, useReviewOf, useStackedReviewPositions };