pptx-react-viewer 3.20.0 → 3.21.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 (222) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/{AiChatPanel-NBKG2CWE.js → AiChatPanel-B3QM7MIC.js} +25 -25
  3. package/dist/AiChatPanel-B3QM7MIC.js.br +0 -0
  4. package/dist/AiChatPanel-B3QM7MIC.js.gz +0 -0
  5. package/dist/{AiChatPanel-OXCJVBUS.mjs → AiChatPanel-UD756KAU.mjs} +4 -4
  6. package/dist/AiChatPanel-UD756KAU.mjs.br +0 -0
  7. package/dist/AiChatPanel-UD756KAU.mjs.gz +0 -0
  8. package/dist/{Area3DChartScene-7QPDPVR6.js → Area3DChartScene-435BFPLY.js} +2 -2
  9. package/dist/{Area3DChartScene-7QPDPVR6.js.br → Area3DChartScene-435BFPLY.js.br} +0 -0
  10. package/dist/Area3DChartScene-435BFPLY.js.gz +0 -0
  11. package/dist/{Area3DChartScene-5M3LEY6M.mjs → Area3DChartScene-MQKUWVMS.mjs} +1 -1
  12. package/dist/Area3DChartScene-MQKUWVMS.mjs.br +0 -0
  13. package/dist/Area3DChartScene-MQKUWVMS.mjs.gz +0 -0
  14. package/dist/{Bar3DChartScene-NNSTLO4V.mjs → Bar3DChartScene-D4GMQGPN.mjs} +1 -1
  15. package/dist/Bar3DChartScene-D4GMQGPN.mjs.br +0 -0
  16. package/dist/Bar3DChartScene-D4GMQGPN.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-TAMPS6ZS.js → Bar3DChartScene-KEYLVYJA.js} +2 -2
  18. package/dist/Bar3DChartScene-KEYLVYJA.js.br +0 -0
  19. package/dist/Bar3DChartScene-KEYLVYJA.js.gz +0 -0
  20. package/dist/{Line3DChartScene-7S2DD45T.mjs → Line3DChartScene-B3AWFXE4.mjs} +1 -1
  21. package/dist/Line3DChartScene-B3AWFXE4.mjs.br +0 -0
  22. package/dist/Line3DChartScene-B3AWFXE4.mjs.gz +0 -0
  23. package/dist/{Line3DChartScene-T4SH37NU.js → Line3DChartScene-JYGXLE56.js} +2 -2
  24. package/dist/Line3DChartScene-JYGXLE56.js.br +0 -0
  25. package/dist/Line3DChartScene-JYGXLE56.js.gz +0 -0
  26. package/dist/{Model3DScene-CXRM7D3J.mjs → Model3DScene-4TG4YRVM.mjs} +1 -1
  27. package/dist/Model3DScene-4TG4YRVM.mjs.br +0 -0
  28. package/dist/Model3DScene-4TG4YRVM.mjs.gz +0 -0
  29. package/dist/{Model3DScene-IDRM7EZD.js → Model3DScene-JF5J6N6W.js} +2 -2
  30. package/dist/Model3DScene-JF5J6N6W.js.br +0 -0
  31. package/dist/Model3DScene-JF5J6N6W.js.gz +0 -0
  32. package/dist/{PieChart3DScene-VSCSEY2G.mjs → PieChart3DScene-4BQ6PR7P.mjs} +1 -1
  33. package/dist/PieChart3DScene-4BQ6PR7P.mjs.br +0 -0
  34. package/dist/PieChart3DScene-4BQ6PR7P.mjs.gz +0 -0
  35. package/dist/{PieChart3DScene-66Y5UP64.js → PieChart3DScene-CCQWSH3W.js} +2 -2
  36. package/dist/{PieChart3DScene-66Y5UP64.js.br → PieChart3DScene-CCQWSH3W.js.br} +0 -0
  37. package/dist/PieChart3DScene-CCQWSH3W.js.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-NSHDK657.mjs → SurfaceChart3DScene-FRQC5HBG.mjs} +1 -1
  39. package/dist/SurfaceChart3DScene-FRQC5HBG.mjs.br +0 -0
  40. package/dist/SurfaceChart3DScene-FRQC5HBG.mjs.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-6J4A6XUH.js → SurfaceChart3DScene-UVZPT6OD.js} +2 -2
  42. package/dist/{SurfaceChart3DScene-6J4A6XUH.js.br → SurfaceChart3DScene-UVZPT6OD.js.br} +0 -0
  43. package/dist/SurfaceChart3DScene-UVZPT6OD.js.gz +0 -0
  44. package/dist/{chunk-W3RBIIZW.js → chunk-BFPIMU6Q.js} +1227 -1032
  45. package/dist/chunk-BFPIMU6Q.js.br +0 -0
  46. package/dist/chunk-BFPIMU6Q.js.gz +0 -0
  47. package/dist/{chunk-5PDGHTRJ.mjs → chunk-BXMPXKV5.mjs} +453 -258
  48. package/dist/chunk-BXMPXKV5.mjs.br +0 -0
  49. package/dist/chunk-BXMPXKV5.mjs.gz +0 -0
  50. package/dist/{chunk-2IBDKMY2.mjs → chunk-EJMDD4VV.mjs} +115 -69
  51. package/dist/chunk-EJMDD4VV.mjs.br +0 -0
  52. package/dist/chunk-EJMDD4VV.mjs.gz +0 -0
  53. package/dist/{chunk-WRXXPCZ7.js → chunk-H7QPQ4OR.js} +5 -5
  54. package/dist/chunk-H7QPQ4OR.js.br +0 -0
  55. package/dist/chunk-H7QPQ4OR.js.gz +0 -0
  56. package/dist/{chunk-FE4L26FT.mjs → chunk-HZEOZUUH.mjs} +7 -3
  57. package/dist/chunk-HZEOZUUH.mjs.br +0 -0
  58. package/dist/chunk-HZEOZUUH.mjs.gz +0 -0
  59. package/dist/{chunk-I5LPYESF.js → chunk-M24DEOP6.js} +4 -0
  60. package/dist/chunk-M24DEOP6.js.br +0 -0
  61. package/dist/chunk-M24DEOP6.js.gz +0 -0
  62. package/dist/{chunk-7SFA4A2E.js → chunk-M6QJKPU2.js} +1160 -1114
  63. package/dist/chunk-M6QJKPU2.js.br +0 -0
  64. package/dist/chunk-M6QJKPU2.js.gz +0 -0
  65. package/dist/chunk-MRWGWKA2.mjs +1076 -0
  66. package/dist/chunk-MRWGWKA2.mjs.br +0 -0
  67. package/dist/chunk-MRWGWKA2.mjs.gz +0 -0
  68. package/dist/{chunk-AVTH627G.mjs → chunk-R664EPDC.mjs} +4 -0
  69. package/dist/chunk-R664EPDC.mjs.br +0 -0
  70. package/dist/chunk-R664EPDC.mjs.gz +0 -0
  71. package/dist/{chunk-DW66NEST.js → chunk-SUZIFHXI.js} +187 -183
  72. package/dist/chunk-SUZIFHXI.js.br +0 -0
  73. package/dist/chunk-SUZIFHXI.js.gz +0 -0
  74. package/dist/{chunk-NGWA6L3N.js → chunk-T6V342NP.js} +448 -114
  75. package/dist/chunk-T6V342NP.js.br +0 -0
  76. package/dist/{chunk-NGWA6L3N.js.gz → chunk-T6V342NP.js.gz} +0 -0
  77. package/dist/{chunk-N4FLKADC.mjs → chunk-TMTQJAGK.mjs} +445 -115
  78. package/dist/chunk-TMTQJAGK.mjs.br +0 -0
  79. package/dist/{chunk-N4FLKADC.mjs.gz → chunk-TMTQJAGK.mjs.gz} +0 -0
  80. package/dist/{chunk-AYH6XSE7.mjs → chunk-TOOKJUPG.mjs} +1 -1
  81. package/dist/chunk-TOOKJUPG.mjs.br +0 -0
  82. package/dist/chunk-TOOKJUPG.mjs.gz +0 -0
  83. package/dist/chunk-YQQXFRZT.js +1160 -0
  84. package/dist/chunk-YQQXFRZT.js.br +0 -0
  85. package/dist/chunk-YQQXFRZT.js.gz +0 -0
  86. package/dist/i18n/de.cjs +4 -0
  87. package/dist/i18n/de.cjs.br +0 -0
  88. package/dist/i18n/de.cjs.gz +0 -0
  89. package/dist/i18n/de.mjs +4 -0
  90. package/dist/i18n/de.mjs.br +0 -0
  91. package/dist/i18n/de.mjs.gz +0 -0
  92. package/dist/i18n/es.cjs +4 -0
  93. package/dist/i18n/es.cjs.br +0 -0
  94. package/dist/i18n/es.cjs.gz +0 -0
  95. package/dist/i18n/es.mjs +4 -0
  96. package/dist/i18n/es.mjs.br +0 -0
  97. package/dist/i18n/es.mjs.gz +0 -0
  98. package/dist/i18n/fr.cjs +4 -0
  99. package/dist/i18n/fr.cjs.br +0 -0
  100. package/dist/i18n/fr.cjs.gz +0 -0
  101. package/dist/i18n/fr.mjs +4 -0
  102. package/dist/i18n/fr.mjs.br +0 -0
  103. package/dist/i18n/fr.mjs.gz +0 -0
  104. package/dist/i18n/zh-CN.cjs +4 -0
  105. package/dist/i18n/zh-CN.cjs.br +0 -0
  106. package/dist/i18n/zh-CN.cjs.gz +0 -0
  107. package/dist/i18n/zh-CN.mjs +4 -0
  108. package/dist/i18n/zh-CN.mjs.br +0 -0
  109. package/dist/i18n/zh-CN.mjs.gz +0 -0
  110. package/dist/i18n.js +4 -4
  111. package/dist/i18n.js.br +0 -0
  112. package/dist/i18n.js.gz +0 -0
  113. package/dist/i18n.mjs +1 -1
  114. package/dist/i18n.mjs.br +0 -0
  115. package/dist/i18n.mjs.gz +0 -0
  116. package/dist/index.d.ts +60 -2
  117. package/dist/index.js +48 -48
  118. package/dist/index.js.br +0 -0
  119. package/dist/index.js.gz +0 -0
  120. package/dist/index.mjs +6 -6
  121. package/dist/index.mjs.br +0 -0
  122. package/dist/index.mjs.gz +0 -0
  123. package/dist/internals.d.ts +75 -43
  124. package/dist/internals.js +105 -105
  125. package/dist/internals.js.br +0 -0
  126. package/dist/internals.js.gz +0 -0
  127. package/dist/internals.mjs +4 -4
  128. package/dist/internals.mjs.br +0 -0
  129. package/dist/internals.mjs.gz +0 -0
  130. package/dist/viewer/index.d.ts +70 -6
  131. package/dist/viewer/index.js +27 -27
  132. package/dist/viewer/index.js.br +0 -0
  133. package/dist/viewer/index.js.gz +0 -0
  134. package/dist/viewer/index.mjs +6 -6
  135. package/dist/viewer/index.mjs.br +0 -0
  136. package/dist/viewer/index.mjs.gz +0 -0
  137. package/dist/{y-webrtc-TAJBJIKH.js → y-webrtc-6H3ROPRC.js} +1079 -128
  138. package/dist/y-webrtc-6H3ROPRC.js.br +0 -0
  139. package/dist/y-webrtc-6H3ROPRC.js.gz +0 -0
  140. package/dist/{y-webrtc-7DLWG3LJ.mjs → y-webrtc-XJDH2YTR.mjs} +984 -33
  141. package/dist/y-webrtc-XJDH2YTR.mjs.br +0 -0
  142. package/dist/y-webrtc-XJDH2YTR.mjs.gz +0 -0
  143. package/dist/{y-websocket-YRPS7AFF.js → y-websocket-6ISNPON7.js} +79 -80
  144. package/dist/y-websocket-6ISNPON7.js.br +0 -0
  145. package/dist/y-websocket-6ISNPON7.js.gz +0 -0
  146. package/dist/{y-websocket-HUEA7LH7.mjs → y-websocket-SJ3NCLBZ.mjs} +3 -4
  147. package/dist/y-websocket-SJ3NCLBZ.mjs.br +0 -0
  148. package/dist/y-websocket-SJ3NCLBZ.mjs.gz +0 -0
  149. package/package.json +7 -4
  150. package/dist/AiChatPanel-NBKG2CWE.js.br +0 -0
  151. package/dist/AiChatPanel-NBKG2CWE.js.gz +0 -0
  152. package/dist/AiChatPanel-OXCJVBUS.mjs.br +0 -0
  153. package/dist/AiChatPanel-OXCJVBUS.mjs.gz +0 -0
  154. package/dist/Area3DChartScene-5M3LEY6M.mjs.br +0 -0
  155. package/dist/Area3DChartScene-5M3LEY6M.mjs.gz +0 -0
  156. package/dist/Area3DChartScene-7QPDPVR6.js.gz +0 -0
  157. package/dist/Bar3DChartScene-NNSTLO4V.mjs.br +0 -0
  158. package/dist/Bar3DChartScene-NNSTLO4V.mjs.gz +0 -0
  159. package/dist/Bar3DChartScene-TAMPS6ZS.js.br +0 -0
  160. package/dist/Bar3DChartScene-TAMPS6ZS.js.gz +0 -0
  161. package/dist/Line3DChartScene-7S2DD45T.mjs.br +0 -0
  162. package/dist/Line3DChartScene-7S2DD45T.mjs.gz +0 -0
  163. package/dist/Line3DChartScene-T4SH37NU.js.br +0 -0
  164. package/dist/Line3DChartScene-T4SH37NU.js.gz +0 -0
  165. package/dist/Model3DScene-CXRM7D3J.mjs.br +0 -0
  166. package/dist/Model3DScene-CXRM7D3J.mjs.gz +0 -0
  167. package/dist/Model3DScene-IDRM7EZD.js.br +0 -0
  168. package/dist/Model3DScene-IDRM7EZD.js.gz +0 -0
  169. package/dist/PieChart3DScene-66Y5UP64.js.gz +0 -0
  170. package/dist/PieChart3DScene-VSCSEY2G.mjs.br +0 -0
  171. package/dist/PieChart3DScene-VSCSEY2G.mjs.gz +0 -0
  172. package/dist/SurfaceChart3DScene-6J4A6XUH.js.gz +0 -0
  173. package/dist/SurfaceChart3DScene-NSHDK657.mjs.br +0 -0
  174. package/dist/SurfaceChart3DScene-NSHDK657.mjs.gz +0 -0
  175. package/dist/chunk-2IBDKMY2.mjs.br +0 -0
  176. package/dist/chunk-2IBDKMY2.mjs.gz +0 -0
  177. package/dist/chunk-5PDGHTRJ.mjs.br +0 -0
  178. package/dist/chunk-5PDGHTRJ.mjs.gz +0 -0
  179. package/dist/chunk-7SFA4A2E.js.br +0 -0
  180. package/dist/chunk-7SFA4A2E.js.gz +0 -0
  181. package/dist/chunk-AVTH627G.mjs.br +0 -0
  182. package/dist/chunk-AVTH627G.mjs.gz +0 -0
  183. package/dist/chunk-AYH6XSE7.mjs.br +0 -0
  184. package/dist/chunk-AYH6XSE7.mjs.gz +0 -0
  185. package/dist/chunk-DW66NEST.js.br +0 -0
  186. package/dist/chunk-DW66NEST.js.gz +0 -0
  187. package/dist/chunk-DWIIYEOG.mjs +0 -9596
  188. package/dist/chunk-DWIIYEOG.mjs.br +0 -0
  189. package/dist/chunk-DWIIYEOG.mjs.gz +0 -0
  190. package/dist/chunk-FE4L26FT.mjs.br +0 -0
  191. package/dist/chunk-FE4L26FT.mjs.gz +0 -0
  192. package/dist/chunk-FXGO5KLU.mjs +0 -304
  193. package/dist/chunk-FXGO5KLU.mjs.br +0 -0
  194. package/dist/chunk-FXGO5KLU.mjs.gz +0 -0
  195. package/dist/chunk-I5LPYESF.js.br +0 -0
  196. package/dist/chunk-I5LPYESF.js.gz +0 -0
  197. package/dist/chunk-N4FLKADC.mjs.br +0 -0
  198. package/dist/chunk-NB7M4XBG.js +0 -318
  199. package/dist/chunk-NB7M4XBG.js.br +0 -0
  200. package/dist/chunk-NB7M4XBG.js.gz +0 -0
  201. package/dist/chunk-NGWA6L3N.js.br +0 -0
  202. package/dist/chunk-W3RBIIZW.js.br +0 -0
  203. package/dist/chunk-W3RBIIZW.js.gz +0 -0
  204. package/dist/chunk-WRXXPCZ7.js.br +0 -0
  205. package/dist/chunk-WRXXPCZ7.js.gz +0 -0
  206. package/dist/chunk-ZYQT7I5C.js +0 -9743
  207. package/dist/chunk-ZYQT7I5C.js.br +0 -0
  208. package/dist/chunk-ZYQT7I5C.js.gz +0 -0
  209. package/dist/y-webrtc-7DLWG3LJ.mjs.br +0 -0
  210. package/dist/y-webrtc-7DLWG3LJ.mjs.gz +0 -0
  211. package/dist/y-webrtc-TAJBJIKH.js.br +0 -0
  212. package/dist/y-webrtc-TAJBJIKH.js.gz +0 -0
  213. package/dist/y-websocket-HUEA7LH7.mjs.br +0 -0
  214. package/dist/y-websocket-HUEA7LH7.mjs.gz +0 -0
  215. package/dist/y-websocket-YRPS7AFF.js.br +0 -0
  216. package/dist/y-websocket-YRPS7AFF.js.gz +0 -0
  217. package/dist/yjs-4ED7E5CZ.mjs +0 -2
  218. package/dist/yjs-4ED7E5CZ.mjs.br +0 -0
  219. package/dist/yjs-4ED7E5CZ.mjs.gz +0 -0
  220. package/dist/yjs-OWUA3UHD.js +0 -419
  221. package/dist/yjs-OWUA3UHD.js.br +0 -0
  222. package/dist/yjs-OWUA3UHD.js.gz +0 -0
package/dist/index.mjs.gz CHANGED
Binary file
@@ -11489,6 +11489,61 @@ interface TextStyleAnimationDescriptor {
11489
11489
  color?: string;
11490
11490
  }
11491
11491
 
11492
+ //#region src/render/collaboration-presence.d.ts
11493
+ /** Connection lifecycle states for the Yjs WebSocket provider. */
11494
+ type ConnectionStatus$1 = 'disconnected' | 'connecting' | 'connected' | 'error';
11495
+ //#endregion
11496
+ //#region src/render/collaboration-presence-publisher.d.ts
11497
+ /**
11498
+ * Structural interface for the lazily-imported Yjs awareness surface. Every
11499
+ * binding's live `y-protocols/awareness` `Awareness` instance satisfies this.
11500
+ */
11501
+ interface AwarenessLike {
11502
+ clientID?: number;
11503
+ setLocalStateField: (field: string, value: unknown) => void;
11504
+ getStates: () => Map<number, Record<string, unknown>>;
11505
+ on: (event: string, cb: () => void) => void;
11506
+ off?: (event: string, cb: () => void) => void;
11507
+ }
11508
+ //#endregion
11509
+ //#region src/render/collaboration-external-session.d.ts
11510
+ /** Connection state reported by the host, independent of the viewer lifetime. */
11511
+ interface ExternalCollaborationSnapshot {
11512
+ status: ConnectionStatus$1;
11513
+ /**
11514
+ * The host has loaded the authoritative document and permits local edits.
11515
+ * Keep true while offline to allow ordinary Yjs offline edits, or set false
11516
+ * to suspend writes until a fresh sync. The viewer never infers this from
11517
+ * `status` and never opens it after a timeout.
11518
+ */
11519
+ synced: boolean;
11520
+ }
11521
+ /** The public y-protocols Awareness surface needed by a borrowed session. */
11522
+ interface ExternalCollaborationAwareness extends AwarenessLike {
11523
+ clientID: number;
11524
+ getLocalState: () => Record<string, unknown> | null;
11525
+ setLocalState: (state: Record<string, unknown> | null) => void;
11526
+ off: (event: string, callback: () => void) => void;
11527
+ }
11528
+ /**
11529
+ * Host-owned Yjs resources. The host creates, connects and destroys them.
11530
+ * Keep this object and its resources stable for a session; report connection
11531
+ * changes through subscribe instead of replacing the collaboration config.
11532
+ */
11533
+ interface ExternalCollaborationSession {
11534
+ readonly doc: Doc;
11535
+ /** Awareness must belong to doc. One viewer publishes slide presence at a time. */
11536
+ readonly awareness: ExternalCollaborationAwareness;
11537
+ getSnapshot: () => ExternalCollaborationSnapshot;
11538
+ /** Subscribe to status or synced changes; return an unsubscribe function. */
11539
+ subscribe: (listener: () => void) => () => void;
11540
+ }
11541
+ /** Listener/publisher view, deliberately excluding host lifecycle methods. */
11542
+ interface BorrowedCollaborationAwareness extends AwarenessLike {
11543
+ clientID: number;
11544
+ off: (event: string, callback: () => void) => void;
11545
+ }
11546
+ //#endregion
11492
11547
  //#region src/render/element-update-batch.d.ts
11493
11548
  /** A shallow property patch for a top-level element on an ordinary slide. */
11494
11549
  interface ElementUpdate {
@@ -11637,11 +11692,18 @@ interface CollaborationConfig {
11637
11692
  roomId: string;
11638
11693
  /**
11639
11694
  * WebSocket server URL for the Yjs provider (e.g. "wss://collab.example.com").
11640
- * Ignored (may be empty) when `transport` is `'webrtc'`.
11695
+ * Ignored (may be empty) for `externalSession` or when `transport` is `'webrtc'`.
11641
11696
  */
11642
11697
  serverUrl: string;
11643
11698
  /** Transport to use. Defaults to `'websocket'`. */
11644
11699
  transport?: CollaborationTransport;
11700
+ /**
11701
+ * Use the host's document, awareness and transport instead of creating a
11702
+ * provider. Transport, serverUrl, signaling and authToken are ignored. The
11703
+ * viewer only detaches its listeners and presence on stop; it never destroys
11704
+ * these resources. Keep this object stable and report readiness via subscribe.
11705
+ */
11706
+ externalSession?: ExternalCollaborationSession;
11645
11707
  /**
11646
11708
  * WebRTC signaling server URLs (only used when `transport` is `'webrtc'`).
11647
11709
  * Defaults to y-webrtc's built-in public signaling list. Same-browser tabs
@@ -12192,7 +12254,9 @@ interface LiveTextSource {
12192
12254
  }
12193
12255
  interface CollaborationLivePatcher {
12194
12256
  /** Attach a live doc (or `null` to go dormant). Pending patches are dropped. */
12195
- configure: (doc: YDocLike | null, factories: YjsFactories | null) => void;
12257
+ configure: (doc: YDocLike | null, factories: YjsFactories | null,
12258
+ /** Publish synchronously when the host may revoke write readiness at any time. */
12259
+ immediate?: boolean) => void;
12196
12260
  /** True when a doc + factories are attached, i.e. patches will be written. */
12197
12261
  isActive: () => boolean;
12198
12262
  /** Queue interim geometry for an element. */
@@ -15379,12 +15443,14 @@ interface UseYjsProviderResult {
15379
15443
  *
15380
15444
  * The Yjs packages are dynamically imported so they are fully
15381
15445
  * tree-shaken when collaboration is not enabled.
15446
+ * This low-level hook owns built-in transports only. Use useCollaborativeState
15447
+ * (or the full/headless viewer) to attach a host-owned external session.
15382
15448
  */
15383
- declare function useYjsProvider({ config }: UseYjsProviderInput): UseYjsProviderResult;
15449
+ declare function useYjsProvider({ config: inputConfig }: UseYjsProviderInput): UseYjsProviderResult;
15384
15450
  //#endregion
15385
15451
  //#region src/viewer/hooks/collaboration/usePresenceTracking.d.ts
15386
15452
  interface UsePresenceTrackingInput {
15387
- awareness: Awareness | null;
15453
+ awareness: Awareness | BorrowedCollaborationAwareness | null;
15388
15454
  localClientId: number | null;
15389
15455
  userName: string;
15390
15456
  userColor: string;
@@ -15443,56 +15509,22 @@ declare function useCollaborativeHistory({ localClientId: _localClientId, handle
15443
15509
  //#endregion
15444
15510
  //#region src/viewer/hooks/collaboration/useYjsDocumentSync.d.ts
15445
15511
  interface UseYjsDocumentSyncInput {
15446
- /** The Yjs document (from useYjsProvider). null when not collaborating. */
15447
15512
  doc: Doc | null;
15448
- /** Current slides state. */
15449
15513
  slides: PptxSlide[];
15450
- /** Separated master/layout (template) elements, merged back on write-back. */
15451
15514
  templateElementsBySlideId: Record<string, PptxElement[]>;
15452
- /** React state setter for slides. */
15453
15515
  setSlides: React.Dispatch<React.SetStateAction<PptxSlide[]>>;
15454
- /** Whether collaboration is active (status === 'connected'). */
15455
15516
  isConnected: boolean;
15456
- /**
15457
- * Whether the provider completed its initial document sync. Local -> doc
15458
- * writes are gated on this so a late joiner never seeds its bootstrap deck
15459
- * into a room whose real content has not arrived yet. Defaults to true for
15460
- * callers that manage sync readiness themselves.
15461
- */
15462
15517
  isSynced?: boolean;
15463
- /** Collaboration config (for role and write-back). */
15464
- config?: Pick<CollaborationConfig, 'role' | 'onWriteBack' | 'writeBackDebounceMs'>;
15465
- /**
15466
- * Return the source PPTX bytes for write-back serialization. Only called
15467
- * when role === 'owner' and onWriteBack is set.
15468
- */
15518
+ config?: Pick<CollaborationConfig, 'role' | 'onWriteBack' | 'writeBackDebounceMs' | 'externalSession' | 'sessionIntent'>;
15469
15519
  getSourceBytes?: () => Uint8Array | null;
15470
- /**
15471
- * Session-level save options (view properties, table styles, tags, deck
15472
- * properties, ...), built the same way as the Save/Export path
15473
- * (`buildDeckSaveOptions` in `pptx-viewer-shared`). Without this the
15474
- * write-back reloaded the source bytes and called `handler.save(slides)`
15475
- * with NO options, so an owner's write-back file dropped every
15476
- * session-level edit that lives outside `slides`.
15477
- */
15478
15520
  getSaveOptions?: () => PptxHandlerSaveOptions;
15479
- /**
15480
- * Monotonic counter bumped each time the content-load pipeline finishes
15481
- * applying a parsed deck to viewer state. A local load that lands while the
15482
- * shared doc already holds slides (a late joiner's bootstrap deck parsing
15483
- * after the room state arrived) would silently clobber the synced slides;
15484
- * each bump re-adopts the doc's slides when the room has content.
15485
- */
15486
15521
  loadVersion?: number;
15487
- /**
15488
- * Why the last content load ran. Only a `bootstrap` deck (the host's
15489
- * `content`) yields to a room that already holds slides; a file the user
15490
- * opened mid-session is what they asked for and is published instead
15491
- * (`shouldRoomSlidesReplaceLoad`).
15492
- */
15493
15522
  loadOrigin?: CollabLoadOrigin;
15523
+ /** External readiness owns this channel together with full-deck writes. */
15524
+ livePatcher?: CollaborationLivePatcher;
15525
+ onReadOnlyChange?: (readOnly: boolean) => void;
15494
15526
  }
15495
- declare function useYjsDocumentSync({ doc, slides, templateElementsBySlideId, setSlides, isConnected, isSynced, config, getSourceBytes, getSaveOptions, loadVersion, loadOrigin }: UseYjsDocumentSyncInput): void;
15527
+ declare function useYjsDocumentSync(input: UseYjsDocumentSyncInput): void;
15496
15528
  //#endregion
15497
15529
  //#region src/viewer/hooks/collaboration/useBroadcastFollower.d.ts
15498
15530
  interface UseBroadcastFollowerInput {