@roomful/vue 1.0.1 → 1.1.1

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.
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # @roomful/vue
2
2
 
3
- Vue 3 bindings for [Roomful](https://github.com/erayates/roomful) — a plugin and composables that integrate real-time collaboration with Vue's reactivity system.
3
+ Vue 3 bindings for [Roomful](https://github.com/erayates/roomful) — a plugin and composables that integrate real-time collaboration (presence, cursors, shared state, awareness, events, viewport sync, laser pointer, locks, comments, and history) with Vue's reactivity system.
4
4
 
5
- > **Stable — v1.0.** The API is stable and ready for production.
5
+ > **Stable — v1.5.** Realtime presence, cursors, and shared state, plus the collaboration primitives (`useViewport`, `useLocks`, `usePointer`, `useComments`, `useHistory`). The API is stable and ready for production.
6
6
 
7
7
  ## Install
8
8
 
@@ -31,7 +31,7 @@ const [count, setCount] = useSharedState('count', { initialValue: 0 });
31
31
  </script>
32
32
  ```
33
33
 
34
- Composables: `usePresence`, `useCursors`, `useSharedState`, `useAwareness`, `useEvent`, `useConnectionStatus` (plus the `v-roomful-cursors` directive). `RoomfulPlugin` also accepts `onConnect`, `onDisconnect`, and `onError` lifecycle callbacks.
34
+ Composables: `usePresence`, `useCursors`, `useSharedState`, `useAwareness`, `useEvent`, `useConnectionStatus` (plus the `v-roomful-cursors` directive). v1.5 collaboration primitives: `useViewport`, `useLocks` (plus `useLockState`), `usePointer`, `useComments`, `useHistory` — see the [reference docs](https://github.com/erayates/roomful/blob/main/docs/reference/adapters-vue.md). `RoomfulPlugin` also accepts `onConnect`, `onDisconnect`, and `onError` lifecycle callbacks.
35
35
 
36
36
  ## Documentation
37
37
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AwarenessEngine, AwarenessState, CursorData, CursorOptions, CursorPosition, Peer, PresenceData, PresenceEngine, RoomOptions, RoomStatus, StateOptions } from '@roomful/core';
1
+ import type { AwarenessEngine, AwarenessState, Comment, CommentAnchor, CommentsEngine, CommentsOptions, CommentThread, CursorData, CursorOptions, CursorPosition, HistoryEngine, HistoryOptions, LockAcquireOptions, LockEngine, LockState, Peer, PointerBeam, PointerEngine, PointerOptions, PresenceData, PresenceEngine, RoomOptions, RoomStatus, StateOptions, TimelineEntry, ViewportEngine, ViewportOptions, ViewportState } from '@roomful/core';
2
2
  import { RoomfulError } from '@roomful/core';
3
3
  import type { Directive, Plugin, ShallowRef } from 'vue';
4
4
  /**
@@ -87,6 +87,95 @@ export interface UseCursorsResult<TCursor extends CursorData = CursorData> {
87
87
  */
88
88
  unmount(): void;
89
89
  }
90
+ /**
91
+ * Describes the return value of `useViewport`.
92
+ */
93
+ export interface UseViewportResult {
94
+ /**
95
+ * Holds the mounted viewport host element.
96
+ */
97
+ ref: ShallowRef<HTMLElement | null>;
98
+ /**
99
+ * Exposes remote peer viewport states only.
100
+ */
101
+ states: ReadonlyRef<ViewportState[]>;
102
+ /**
103
+ * Mounts viewport tracking on a scrollable container.
104
+ *
105
+ * @param element - The element to observe.
106
+ * @returns Nothing.
107
+ */
108
+ mount(element: HTMLElement): void;
109
+ /**
110
+ * Unmounts viewport tracking.
111
+ *
112
+ * @returns Nothing.
113
+ */
114
+ unmount(): void;
115
+ /**
116
+ * Starts streaming the local viewport to all peers.
117
+ */
118
+ broadcast: ViewportEngine['broadcast'];
119
+ /**
120
+ * Stops streaming the local viewport.
121
+ */
122
+ stopBroadcast: ViewportEngine['stopBroadcast'];
123
+ /**
124
+ * Enters present mode, forcing peers to follow the local viewport.
125
+ */
126
+ present: ViewportEngine['present'];
127
+ /**
128
+ * Leaves present mode and releases following peers.
129
+ */
130
+ stopPresenting: ViewportEngine['stopPresenting'];
131
+ /**
132
+ * Follows a specific peer's viewport.
133
+ */
134
+ follow: ViewportEngine['follow'];
135
+ /**
136
+ * Stops following any peer and resumes independent scrolling.
137
+ */
138
+ unfollow: ViewportEngine['unfollow'];
139
+ }
140
+ /**
141
+ * Describes the return value of `usePointer`.
142
+ */
143
+ export interface UsePointerResult {
144
+ /**
145
+ * Holds the mounted pointer host element.
146
+ */
147
+ ref: ShallowRef<HTMLElement | null>;
148
+ /**
149
+ * Exposes remote peers' pointer beams only.
150
+ */
151
+ beams: ReadonlyRef<PointerBeam[]>;
152
+ /**
153
+ * Mounts pointer tracking on a container element.
154
+ *
155
+ * @param element - The element to observe.
156
+ * @returns Nothing.
157
+ */
158
+ mount(element: HTMLElement): void;
159
+ /**
160
+ * Unmounts pointer tracking.
161
+ *
162
+ * @returns Nothing.
163
+ */
164
+ unmount(): void;
165
+ /**
166
+ * Starts broadcasting the local pointer beam to all peers.
167
+ */
168
+ activate: PointerEngine['activate'];
169
+ /**
170
+ * Stops broadcasting the local pointer beam so peers drop it.
171
+ */
172
+ deactivate: PointerEngine['deactivate'];
173
+ /**
174
+ * Renders the built-in pointer overlay over a container, returning a cleanup
175
+ * function.
176
+ */
177
+ render: PointerEngine['render'];
178
+ }
90
179
  /**
91
180
  * Describes the return value of `useAwareness`.
92
181
  */
@@ -112,6 +201,126 @@ export interface UseAwarenessResult {
112
201
  */
113
202
  setTyping: AwarenessEngine['setTyping'];
114
203
  }
204
+ /**
205
+ * Describes the return value of `useLocks`.
206
+ */
207
+ export interface UseLocksResult {
208
+ /**
209
+ * Exposes the resolved state of every currently-held lock.
210
+ */
211
+ locks: ReadonlyRef<LockState[]>;
212
+ /**
213
+ * Claims exclusive ownership of a key, resolving whether the local peer holds
214
+ * it.
215
+ *
216
+ * @param key - The lock key to claim.
217
+ * @param options - Optional TTL and acquire-timeout configuration.
218
+ * @returns A promise resolving to whether the local peer holds the key.
219
+ */
220
+ acquire(key: string, options?: LockAcquireOptions): Promise<boolean>;
221
+ /**
222
+ * Releases a lock held by the local peer.
223
+ */
224
+ release: LockEngine['release'];
225
+ /**
226
+ * Releases every lock held by the local peer.
227
+ */
228
+ releaseAll: LockEngine['releaseAll'];
229
+ /**
230
+ * Reports whether a key is currently held by any peer.
231
+ */
232
+ isLocked: LockEngine['isLocked'];
233
+ /**
234
+ * Returns the peer currently holding a key, or `null`.
235
+ */
236
+ getHolder: LockEngine['getHolder'];
237
+ }
238
+ /**
239
+ * Describes the return value of `useComments`.
240
+ */
241
+ export interface UseCommentsResult {
242
+ /**
243
+ * Exposes the current comment threads, oldest first. Reactive: updates on any
244
+ * local or remote thread change.
245
+ */
246
+ threads: ReadonlyRef<CommentThread[]>;
247
+ /**
248
+ * Opens a new thread authored by the local peer at an anchor.
249
+ */
250
+ add: CommentsEngine['add'];
251
+ /**
252
+ * Appends a reply authored by the local peer to a thread.
253
+ *
254
+ * @param threadId - The thread to reply to.
255
+ * @param text - The reply body.
256
+ * @returns A promise resolving to the updated thread.
257
+ */
258
+ reply(threadId: string, text: string): Promise<CommentThread>;
259
+ /**
260
+ * Marks a thread resolved.
261
+ *
262
+ * @param threadId - The thread to resolve.
263
+ * @returns A promise resolving to the updated thread.
264
+ */
265
+ resolve(threadId: string): Promise<CommentThread>;
266
+ /**
267
+ * Reopens a resolved thread.
268
+ *
269
+ * @param threadId - The thread to reopen.
270
+ * @returns A promise resolving to the updated thread.
271
+ */
272
+ reopen(threadId: string): Promise<CommentThread>;
273
+ /**
274
+ * Returns the threads anchored to an element.
275
+ */
276
+ getByElement: CommentsEngine['getByElement'];
277
+ /**
278
+ * Returns the unresolved threads.
279
+ */
280
+ getOpen: CommentsEngine['getOpen'];
281
+ }
282
+ /**
283
+ * Describes the return value of `useHistory`.
284
+ */
285
+ export interface UseHistoryResult {
286
+ /**
287
+ * Exposes the shared timeline of every peer's entries, oldest first. Reactive:
288
+ * updates on any local or remote timeline change.
289
+ */
290
+ timeline: ReadonlyRef<TimelineEntry[]>;
291
+ /**
292
+ * Reports whether the local peer has a tracked transaction to undo. Reactive.
293
+ */
294
+ canUndo: ReadonlyRef<boolean>;
295
+ /**
296
+ * Reports whether the local peer has an undone transaction to redo. Reactive.
297
+ */
298
+ canRedo: ReadonlyRef<boolean>;
299
+ /**
300
+ * Records a timeline entry without wrapping a mutation.
301
+ */
302
+ capture: HistoryEngine['capture'];
303
+ /**
304
+ * Runs a function, capturing its shared-CRDT mutations as one undoable entry.
305
+ */
306
+ transaction: HistoryEngine['transaction'];
307
+ /**
308
+ * Undoes the local peer's most recent tracked transaction.
309
+ */
310
+ undo: HistoryEngine['undo'];
311
+ /**
312
+ * Redoes the local peer's most recently undone transaction.
313
+ */
314
+ redo: HistoryEngine['redo'];
315
+ }
316
+ /**
317
+ * Re-exports the collaborative comment types for adapter consumers.
318
+ */
319
+ export type { Comment, CommentAnchor, CommentsOptions, CommentThread };
320
+ /**
321
+ * Re-exports the collaborative history types for adapter consumers.
322
+ */
323
+ export type { HistoryEngine, HistoryOptions, TimelineEntry };
115
324
  /**
116
325
  * Mirrors React-style updater semantics for Vue shared state setters.
117
326
  *
@@ -153,6 +362,55 @@ export declare function usePresence<TPresence extends PresenceData = PresenceDat
153
362
  * @returns The cursor snapshot and mounting helpers.
154
363
  */
155
364
  export declare function useCursors<TCursor extends CursorData = CursorData, TPresence extends PresenceData = PresenceData>(options?: CursorOptions): UseCursorsResult<TCursor>;
365
+ /**
366
+ * Subscribes to viewport snapshots and returns mounting and control helpers.
367
+ *
368
+ * @typeParam TPresence - The room presence shape.
369
+ * @param options - Optional viewport tracking configuration.
370
+ * @returns The remote viewport states plus mounting and follow controls.
371
+ */
372
+ export declare function useViewport<TPresence extends PresenceData = PresenceData>(options?: ViewportOptions): UseViewportResult;
373
+ /**
374
+ * Subscribes to remote pointer beams and returns mounting and control helpers.
375
+ *
376
+ * @typeParam TPresence - The room presence shape.
377
+ * @param options - Optional pointer tracking configuration.
378
+ * @returns The remote beams plus a mounting ref and activate/deactivate/render controls.
379
+ */
380
+ export declare function usePointer<TPresence extends PresenceData = PresenceData>(options?: PointerOptions): UsePointerResult;
381
+ /**
382
+ * Subscribes to all lock states and returns the lock engine controls.
383
+ *
384
+ * @typeParam TPresence - The room presence shape.
385
+ * @returns The held lock states plus acquire/release controls.
386
+ */
387
+ export declare function useLocks<TPresence extends PresenceData = PresenceData>(): UseLocksResult;
388
+ /**
389
+ * Subscribes to collaborative comment threads and returns the thread mutators.
390
+ *
391
+ * @typeParam TPresence - The room presence shape.
392
+ * @param options - Optional storage backend configuration.
393
+ * @returns A readonly ref of threads plus add/reply/resolve/reopen and filter helpers.
394
+ */
395
+ export declare function useComments<TPresence extends PresenceData = PresenceData>(options?: CommentsOptions): UseCommentsResult;
396
+ /**
397
+ * Subscribes to the collaborative history engine: a reactive shared timeline
398
+ * plus reactive `canUndo`/`canRedo`, with capture/transaction/undo/redo controls.
399
+ *
400
+ * @typeParam TPresence - The room presence shape.
401
+ * @param options - Optional history configuration.
402
+ * @returns Readonly refs for the timeline and undo/redo availability plus controls.
403
+ */
404
+ export declare function useHistory<TPresence extends PresenceData = PresenceData>(options?: HistoryOptions): UseHistoryResult;
405
+ /**
406
+ * Subscribes to the resolved state of a single lock key (the lock-on-focus
407
+ * pattern: read `holder` to decide whether the local peer owns the key).
408
+ *
409
+ * @typeParam TPresence - The room presence shape.
410
+ * @param key - The lock key to observe.
411
+ * @returns A readonly ref holding the current lock state, or `null` when free.
412
+ */
413
+ export declare function useLockState<TPresence extends PresenceData = PresenceData>(key: string): ReadonlyRef<LockState | null>;
156
414
  /**
157
415
  * Binds a shared state value to Vue refs.
158
416
  *
@@ -192,5 +450,4 @@ declare module 'vue' {
192
450
  vRoomfulCursors: RoomfulCursorsDirective;
193
451
  }
194
452
  }
195
- export {};
196
453
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -198,6 +198,433 @@ export function useCursors(options) {
198
198
  },
199
199
  };
200
200
  }
201
+ /**
202
+ * Subscribes to viewport snapshots and returns mounting and control helpers.
203
+ *
204
+ * @typeParam TPresence - The room presence shape.
205
+ * @param options - Optional viewport tracking configuration.
206
+ * @returns The remote viewport states plus mounting and follow controls.
207
+ */
208
+ export function useViewport(options) {
209
+ const context = useRoomfulContext('useViewport');
210
+ const initialRoom = requireTypedRoom(context.room.value, 'useViewport');
211
+ const initialEngine = initialRoom.useViewport(options);
212
+ const cacheRef = {
213
+ current: null,
214
+ };
215
+ const ref = shallowRef(null);
216
+ const states = shallowRef(readViewportSnapshot(initialRoom, initialEngine, cacheRef));
217
+ const engineRef = shallowRef(initialEngine);
218
+ let mountedEngine = null;
219
+ let mountedElement = null;
220
+ const syncMountedViewportEngine = () => {
221
+ const element = ref.value;
222
+ const engine = engineRef.value;
223
+ if (element === null) {
224
+ if (mountedEngine !== null) {
225
+ mountedEngine.unmount();
226
+ mountedEngine = null;
227
+ mountedElement = null;
228
+ }
229
+ return;
230
+ }
231
+ if (mountedEngine === engine && mountedElement === element) {
232
+ return;
233
+ }
234
+ mountedEngine === null || mountedEngine === void 0 ? void 0 : mountedEngine.unmount();
235
+ engine.mount(element);
236
+ mountedEngine = engine;
237
+ mountedElement = element;
238
+ };
239
+ watch(ref, () => {
240
+ syncMountedViewportEngine();
241
+ }, {
242
+ flush: 'sync',
243
+ });
244
+ watch(context.room, (room, _previousRoom, onCleanup) => {
245
+ const typedRoom = requireTypedRoom(room, 'useViewport');
246
+ const engine = typedRoom.useViewport(options);
247
+ engineRef.value = engine;
248
+ const syncSnapshot = () => {
249
+ const nextSnapshot = readViewportSnapshot(typedRoom, engine, cacheRef);
250
+ if (states.value === nextSnapshot) {
251
+ return;
252
+ }
253
+ states.value = nextSnapshot;
254
+ };
255
+ syncMountedViewportEngine();
256
+ syncSnapshot();
257
+ const unsubscribe = engine.subscribe(() => {
258
+ syncSnapshot();
259
+ });
260
+ onCleanup(() => {
261
+ unsubscribe();
262
+ if (mountedEngine === engine) {
263
+ engine.unmount();
264
+ mountedEngine = null;
265
+ mountedElement = null;
266
+ }
267
+ });
268
+ }, {
269
+ immediate: true,
270
+ });
271
+ return {
272
+ ref,
273
+ states,
274
+ mount(element) {
275
+ ref.value = element;
276
+ syncMountedViewportEngine();
277
+ },
278
+ unmount() {
279
+ ref.value = null;
280
+ syncMountedViewportEngine();
281
+ },
282
+ broadcast() {
283
+ engineRef.value.broadcast();
284
+ },
285
+ stopBroadcast() {
286
+ engineRef.value.stopBroadcast();
287
+ },
288
+ present() {
289
+ engineRef.value.present();
290
+ },
291
+ stopPresenting() {
292
+ engineRef.value.stopPresenting();
293
+ },
294
+ follow(peerId) {
295
+ engineRef.value.follow(peerId);
296
+ },
297
+ unfollow() {
298
+ engineRef.value.unfollow();
299
+ },
300
+ };
301
+ }
302
+ /**
303
+ * Subscribes to remote pointer beams and returns mounting and control helpers.
304
+ *
305
+ * @typeParam TPresence - The room presence shape.
306
+ * @param options - Optional pointer tracking configuration.
307
+ * @returns The remote beams plus a mounting ref and activate/deactivate/render controls.
308
+ */
309
+ export function usePointer(options) {
310
+ const context = useRoomfulContext('usePointer');
311
+ const initialRoom = requireTypedRoom(context.room.value, 'usePointer');
312
+ const initialEngine = initialRoom.usePointer(options);
313
+ const cacheRef = {
314
+ current: null,
315
+ };
316
+ const ref = shallowRef(null);
317
+ const beams = shallowRef(readPointerSnapshot(initialRoom, initialEngine, cacheRef));
318
+ const engineRef = shallowRef(initialEngine);
319
+ let mountedEngine = null;
320
+ let mountedElement = null;
321
+ const syncMountedPointerEngine = () => {
322
+ const element = ref.value;
323
+ const engine = engineRef.value;
324
+ if (element === null) {
325
+ if (mountedEngine !== null) {
326
+ mountedEngine.unmount();
327
+ mountedEngine = null;
328
+ mountedElement = null;
329
+ }
330
+ return;
331
+ }
332
+ if (mountedEngine === engine && mountedElement === element) {
333
+ return;
334
+ }
335
+ mountedEngine === null || mountedEngine === void 0 ? void 0 : mountedEngine.unmount();
336
+ engine.mount(element);
337
+ mountedEngine = engine;
338
+ mountedElement = element;
339
+ };
340
+ watch(ref, () => {
341
+ syncMountedPointerEngine();
342
+ }, {
343
+ flush: 'sync',
344
+ });
345
+ watch(context.room, (room, _previousRoom, onCleanup) => {
346
+ const typedRoom = requireTypedRoom(room, 'usePointer');
347
+ const engine = typedRoom.usePointer(options);
348
+ engineRef.value = engine;
349
+ const syncSnapshot = () => {
350
+ const nextSnapshot = readPointerSnapshot(typedRoom, engine, cacheRef);
351
+ if (beams.value === nextSnapshot) {
352
+ return;
353
+ }
354
+ beams.value = nextSnapshot;
355
+ };
356
+ syncMountedPointerEngine();
357
+ syncSnapshot();
358
+ const unsubscribe = engine.subscribe(() => {
359
+ syncSnapshot();
360
+ });
361
+ onCleanup(() => {
362
+ unsubscribe();
363
+ if (mountedEngine === engine) {
364
+ engine.unmount();
365
+ mountedEngine = null;
366
+ mountedElement = null;
367
+ }
368
+ });
369
+ }, {
370
+ immediate: true,
371
+ });
372
+ return {
373
+ ref,
374
+ beams,
375
+ mount(element) {
376
+ ref.value = element;
377
+ syncMountedPointerEngine();
378
+ },
379
+ unmount() {
380
+ ref.value = null;
381
+ syncMountedPointerEngine();
382
+ },
383
+ activate() {
384
+ engineRef.value.activate();
385
+ },
386
+ deactivate() {
387
+ engineRef.value.deactivate();
388
+ },
389
+ render(renderOptions) {
390
+ return engineRef.value.render(renderOptions);
391
+ },
392
+ };
393
+ }
394
+ /**
395
+ * Subscribes to all lock states and returns the lock engine controls.
396
+ *
397
+ * @typeParam TPresence - The room presence shape.
398
+ * @returns The held lock states plus acquire/release controls.
399
+ */
400
+ export function useLocks() {
401
+ const context = useRoomfulContext('useLocks');
402
+ const initialRoom = requireTypedRoom(context.room.value, 'useLocks');
403
+ const initialEngine = initialRoom.useLocks();
404
+ const cacheRef = {
405
+ current: null,
406
+ };
407
+ const locks = shallowRef(readLocksSnapshot(initialRoom, initialEngine, cacheRef));
408
+ watch(context.room, (room, _previousRoom, onCleanup) => {
409
+ const typedRoom = requireTypedRoom(room, 'useLocks');
410
+ const engine = typedRoom.useLocks();
411
+ const syncSnapshot = () => {
412
+ const nextSnapshot = readLocksSnapshot(typedRoom, engine, cacheRef);
413
+ if (locks.value === nextSnapshot) {
414
+ return;
415
+ }
416
+ locks.value = nextSnapshot;
417
+ };
418
+ syncSnapshot();
419
+ const unsubscribe = engine.subscribeAll(() => {
420
+ syncSnapshot();
421
+ });
422
+ onCleanup(() => {
423
+ unsubscribe();
424
+ });
425
+ }, {
426
+ immediate: true,
427
+ });
428
+ return {
429
+ locks,
430
+ acquire(key, options) {
431
+ return requireTypedRoom(context.room.value, 'useLocks')
432
+ .useLocks()
433
+ .acquire(key, options);
434
+ },
435
+ release(key) {
436
+ requireTypedRoom(context.room.value, 'useLocks').useLocks().release(key);
437
+ },
438
+ releaseAll() {
439
+ requireTypedRoom(context.room.value, 'useLocks').useLocks().releaseAll();
440
+ },
441
+ isLocked(key) {
442
+ return requireTypedRoom(context.room.value, 'useLocks').useLocks().isLocked(key);
443
+ },
444
+ getHolder(key) {
445
+ return requireTypedRoom(context.room.value, 'useLocks').useLocks().getHolder(key);
446
+ },
447
+ };
448
+ }
449
+ /**
450
+ * Subscribes to collaborative comment threads and returns the thread mutators.
451
+ *
452
+ * @typeParam TPresence - The room presence shape.
453
+ * @param options - Optional storage backend configuration.
454
+ * @returns A readonly ref of threads plus add/reply/resolve/reopen and filter helpers.
455
+ */
456
+ export function useComments(options) {
457
+ const context = useRoomfulContext('useComments');
458
+ const initialRoom = requireTypedRoom(context.room.value, 'useComments');
459
+ const initialEngine = initialRoom.useComments(options);
460
+ const cacheRef = {
461
+ current: null,
462
+ };
463
+ const threads = shallowRef(readCommentsSnapshot(initialRoom, initialEngine, cacheRef));
464
+ watch(context.room, (room, _previousRoom, onCleanup) => {
465
+ const typedRoom = requireTypedRoom(room, 'useComments');
466
+ const engine = typedRoom.useComments(options);
467
+ const syncSnapshot = () => {
468
+ const nextSnapshot = readCommentsSnapshot(typedRoom, engine, cacheRef);
469
+ if (threads.value === nextSnapshot) {
470
+ return;
471
+ }
472
+ threads.value = nextSnapshot;
473
+ };
474
+ syncSnapshot();
475
+ const unsubscribe = engine.subscribe(() => {
476
+ syncSnapshot();
477
+ });
478
+ onCleanup(() => {
479
+ unsubscribe();
480
+ });
481
+ }, {
482
+ immediate: true,
483
+ });
484
+ return {
485
+ threads,
486
+ add(input) {
487
+ return requireTypedRoom(context.room.value, 'useComments')
488
+ .useComments(options)
489
+ .add(input);
490
+ },
491
+ reply(threadId, text) {
492
+ return requireTypedRoom(context.room.value, 'useComments')
493
+ .useComments(options)
494
+ .thread(threadId)
495
+ .reply(text);
496
+ },
497
+ resolve(threadId) {
498
+ return requireTypedRoom(context.room.value, 'useComments')
499
+ .useComments(options)
500
+ .thread(threadId)
501
+ .resolve();
502
+ },
503
+ reopen(threadId) {
504
+ return requireTypedRoom(context.room.value, 'useComments')
505
+ .useComments(options)
506
+ .thread(threadId)
507
+ .reopen();
508
+ },
509
+ getByElement(elementId) {
510
+ return requireTypedRoom(context.room.value, 'useComments')
511
+ .useComments(options)
512
+ .getByElement(elementId);
513
+ },
514
+ getOpen() {
515
+ return requireTypedRoom(context.room.value, 'useComments')
516
+ .useComments(options)
517
+ .getOpen();
518
+ },
519
+ };
520
+ }
521
+ /**
522
+ * Subscribes to the collaborative history engine: a reactive shared timeline
523
+ * plus reactive `canUndo`/`canRedo`, with capture/transaction/undo/redo controls.
524
+ *
525
+ * @typeParam TPresence - The room presence shape.
526
+ * @param options - Optional history configuration.
527
+ * @returns Readonly refs for the timeline and undo/redo availability plus controls.
528
+ */
529
+ export function useHistory(options) {
530
+ const context = useRoomfulContext('useHistory');
531
+ const initialRoom = requireTypedRoom(context.room.value, 'useHistory');
532
+ const initialEngine = initialRoom.useHistory(options);
533
+ const cacheRef = {
534
+ current: null,
535
+ };
536
+ const timeline = shallowRef(readHistorySnapshot(initialRoom, initialEngine, cacheRef));
537
+ const canUndo = shallowRef(initialEngine.canUndo());
538
+ const canRedo = shallowRef(initialEngine.canRedo());
539
+ watch(context.room, (room, _previousRoom, onCleanup) => {
540
+ const typedRoom = requireTypedRoom(room, 'useHistory');
541
+ const engine = typedRoom.useHistory(options);
542
+ const syncSnapshot = () => {
543
+ const nextSnapshot = readHistorySnapshot(typedRoom, engine, cacheRef);
544
+ if (timeline.value !== nextSnapshot) {
545
+ timeline.value = nextSnapshot;
546
+ }
547
+ const nextCanUndo = engine.canUndo();
548
+ if (canUndo.value !== nextCanUndo) {
549
+ canUndo.value = nextCanUndo;
550
+ }
551
+ const nextCanRedo = engine.canRedo();
552
+ if (canRedo.value !== nextCanRedo) {
553
+ canRedo.value = nextCanRedo;
554
+ }
555
+ };
556
+ syncSnapshot();
557
+ const unsubscribe = engine.subscribe(() => {
558
+ syncSnapshot();
559
+ });
560
+ onCleanup(() => {
561
+ unsubscribe();
562
+ });
563
+ }, {
564
+ immediate: true,
565
+ });
566
+ return {
567
+ timeline,
568
+ canUndo,
569
+ canRedo,
570
+ capture(action, payload) {
571
+ requireTypedRoom(context.room.value, 'useHistory')
572
+ .useHistory(options)
573
+ .capture(action, payload);
574
+ },
575
+ transaction(name, fn) {
576
+ requireTypedRoom(context.room.value, 'useHistory')
577
+ .useHistory(options)
578
+ .transaction(name, fn);
579
+ },
580
+ undo() {
581
+ return requireTypedRoom(context.room.value, 'useHistory')
582
+ .useHistory(options)
583
+ .undo();
584
+ },
585
+ redo() {
586
+ return requireTypedRoom(context.room.value, 'useHistory')
587
+ .useHistory(options)
588
+ .redo();
589
+ },
590
+ };
591
+ }
592
+ /**
593
+ * Subscribes to the resolved state of a single lock key (the lock-on-focus
594
+ * pattern: read `holder` to decide whether the local peer owns the key).
595
+ *
596
+ * @typeParam TPresence - The room presence shape.
597
+ * @param key - The lock key to observe.
598
+ * @returns A readonly ref holding the current lock state, or `null` when free.
599
+ */
600
+ export function useLockState(key) {
601
+ const context = useRoomfulContext('useLockState');
602
+ const initialRoom = requireTypedRoom(context.room.value, 'useLockState');
603
+ const cacheRef = {
604
+ current: null,
605
+ };
606
+ const state = shallowRef(readLockStateSnapshot(initialRoom, initialRoom.useLocks(), key, cacheRef));
607
+ watch(context.room, (room, _previousRoom, onCleanup) => {
608
+ const typedRoom = requireTypedRoom(room, 'useLockState');
609
+ const engine = typedRoom.useLocks();
610
+ const commit = (nextSnapshot) => {
611
+ if (state.value === nextSnapshot) {
612
+ return;
613
+ }
614
+ state.value = nextSnapshot;
615
+ };
616
+ commit(readLockStateSnapshot(typedRoom, engine, key, cacheRef));
617
+ const unsubscribe = engine.subscribe(key, (lockState) => {
618
+ commit(reconcileLockStateSnapshot(typedRoom, engine, key, lockState, cacheRef));
619
+ });
620
+ onCleanup(() => {
621
+ unsubscribe();
622
+ });
623
+ }, {
624
+ immediate: true,
625
+ });
626
+ return state;
627
+ }
201
628
  /**
202
629
  * Binds a shared state value to Vue refs.
203
630
  *
@@ -528,6 +955,247 @@ function readCursorSnapshot(room, cursors, cacheRef) {
528
955
  };
529
956
  return nextSnapshot;
530
957
  }
958
+ function areViewportArraysEqual(previous, next) {
959
+ if (previous === next) {
960
+ return true;
961
+ }
962
+ if (previous.length !== next.length) {
963
+ return false;
964
+ }
965
+ for (let index = 0; index < previous.length; index += 1) {
966
+ const previousEntry = previous[index];
967
+ const nextEntry = next[index];
968
+ if (!previousEntry || !nextEntry || !areStructuredValuesEqual(previousEntry, nextEntry)) {
969
+ return false;
970
+ }
971
+ }
972
+ return true;
973
+ }
974
+ function readViewportSnapshot(room, viewport, cacheRef) {
975
+ const nextSnapshot = viewport.getAll();
976
+ const previous = cacheRef.current;
977
+ if (previous !== null && previous.room === room && previous.engine === viewport) {
978
+ const previousSnapshot = previous.snapshot;
979
+ if (areViewportArraysEqual(previousSnapshot, nextSnapshot)) {
980
+ return previousSnapshot;
981
+ }
982
+ previous.snapshot = nextSnapshot.map((state, index) => {
983
+ const previousState = previousSnapshot[index];
984
+ if (previousState !== undefined && areStructuredValuesEqual(previousState, state)) {
985
+ return previousState;
986
+ }
987
+ return state;
988
+ });
989
+ return previous.snapshot;
990
+ }
991
+ cacheRef.current = {
992
+ room,
993
+ engine: viewport,
994
+ snapshot: nextSnapshot,
995
+ };
996
+ return nextSnapshot;
997
+ }
998
+ function arePointerArraysEqual(previous, next) {
999
+ if (previous === next) {
1000
+ return true;
1001
+ }
1002
+ if (previous.length !== next.length) {
1003
+ return false;
1004
+ }
1005
+ for (let index = 0; index < previous.length; index += 1) {
1006
+ const previousEntry = previous[index];
1007
+ const nextEntry = next[index];
1008
+ if (!previousEntry || !nextEntry || !areStructuredValuesEqual(previousEntry, nextEntry)) {
1009
+ return false;
1010
+ }
1011
+ }
1012
+ return true;
1013
+ }
1014
+ function readPointerSnapshot(room, pointer, cacheRef) {
1015
+ const nextSnapshot = pointer.getAll();
1016
+ const previous = cacheRef.current;
1017
+ if (previous !== null && previous.room === room && previous.engine === pointer) {
1018
+ const previousSnapshot = previous.snapshot;
1019
+ if (arePointerArraysEqual(previousSnapshot, nextSnapshot)) {
1020
+ return previousSnapshot;
1021
+ }
1022
+ previous.snapshot = nextSnapshot.map((beam, index) => {
1023
+ const previousBeam = previousSnapshot[index];
1024
+ if (previousBeam !== undefined && areStructuredValuesEqual(previousBeam, beam)) {
1025
+ return previousBeam;
1026
+ }
1027
+ return beam;
1028
+ });
1029
+ return previous.snapshot;
1030
+ }
1031
+ cacheRef.current = {
1032
+ room,
1033
+ engine: pointer,
1034
+ snapshot: nextSnapshot,
1035
+ };
1036
+ return nextSnapshot;
1037
+ }
1038
+ function areLockArraysEqual(previous, next) {
1039
+ if (previous === next) {
1040
+ return true;
1041
+ }
1042
+ if (previous.length !== next.length) {
1043
+ return false;
1044
+ }
1045
+ for (let index = 0; index < previous.length; index += 1) {
1046
+ const previousEntry = previous[index];
1047
+ const nextEntry = next[index];
1048
+ if (!previousEntry || !nextEntry || !areStructuredValuesEqual(previousEntry, nextEntry)) {
1049
+ return false;
1050
+ }
1051
+ }
1052
+ return true;
1053
+ }
1054
+ function readLocksSnapshot(room, locks, cacheRef) {
1055
+ const nextSnapshot = locks.getAll();
1056
+ const previous = cacheRef.current;
1057
+ if (previous !== null && previous.room === room && previous.engine === locks) {
1058
+ const previousSnapshot = previous.snapshot;
1059
+ if (areLockArraysEqual(previousSnapshot, nextSnapshot)) {
1060
+ return previousSnapshot;
1061
+ }
1062
+ previous.snapshot = nextSnapshot.map((state, index) => {
1063
+ const previousState = previousSnapshot[index];
1064
+ if (previousState !== undefined && areStructuredValuesEqual(previousState, state)) {
1065
+ return previousState;
1066
+ }
1067
+ return state;
1068
+ });
1069
+ return previous.snapshot;
1070
+ }
1071
+ cacheRef.current = {
1072
+ room,
1073
+ engine: locks,
1074
+ snapshot: nextSnapshot,
1075
+ };
1076
+ return nextSnapshot;
1077
+ }
1078
+ function areCommentThreadArraysEqual(previous, next) {
1079
+ if (previous === next) {
1080
+ return true;
1081
+ }
1082
+ if (previous.length !== next.length) {
1083
+ return false;
1084
+ }
1085
+ for (let index = 0; index < previous.length; index += 1) {
1086
+ const previousEntry = previous[index];
1087
+ const nextEntry = next[index];
1088
+ if (!previousEntry || !nextEntry || !areStructuredValuesEqual(previousEntry, nextEntry)) {
1089
+ return false;
1090
+ }
1091
+ }
1092
+ return true;
1093
+ }
1094
+ function readCommentsSnapshot(room, comments, cacheRef) {
1095
+ const nextSnapshot = comments.getAll();
1096
+ const previous = cacheRef.current;
1097
+ if (previous !== null && previous.room === room && previous.engine === comments) {
1098
+ const previousSnapshot = previous.snapshot;
1099
+ if (areCommentThreadArraysEqual(previousSnapshot, nextSnapshot)) {
1100
+ return previousSnapshot;
1101
+ }
1102
+ previous.snapshot = nextSnapshot.map((thread, index) => {
1103
+ const previousThread = previousSnapshot[index];
1104
+ if (previousThread !== undefined && areStructuredValuesEqual(previousThread, thread)) {
1105
+ return previousThread;
1106
+ }
1107
+ return thread;
1108
+ });
1109
+ return previous.snapshot;
1110
+ }
1111
+ cacheRef.current = {
1112
+ room,
1113
+ engine: comments,
1114
+ snapshot: nextSnapshot,
1115
+ };
1116
+ return nextSnapshot;
1117
+ }
1118
+ function areTimelineArraysEqual(previous, next) {
1119
+ if (previous === next) {
1120
+ return true;
1121
+ }
1122
+ if (previous.length !== next.length) {
1123
+ return false;
1124
+ }
1125
+ for (let index = 0; index < previous.length; index += 1) {
1126
+ const previousEntry = previous[index];
1127
+ const nextEntry = next[index];
1128
+ if (!previousEntry || !nextEntry || !areStructuredValuesEqual(previousEntry, nextEntry)) {
1129
+ return false;
1130
+ }
1131
+ }
1132
+ return true;
1133
+ }
1134
+ function readHistorySnapshot(room, history, cacheRef) {
1135
+ const nextSnapshot = history.timeline();
1136
+ const previous = cacheRef.current;
1137
+ if (previous !== null && previous.room === room && previous.engine === history) {
1138
+ const previousSnapshot = previous.snapshot;
1139
+ if (areTimelineArraysEqual(previousSnapshot, nextSnapshot)) {
1140
+ return previousSnapshot;
1141
+ }
1142
+ previous.snapshot = nextSnapshot.map((entry, index) => {
1143
+ const previousEntry = previousSnapshot[index];
1144
+ if (previousEntry !== undefined && areStructuredValuesEqual(previousEntry, entry)) {
1145
+ return previousEntry;
1146
+ }
1147
+ return entry;
1148
+ });
1149
+ return previous.snapshot;
1150
+ }
1151
+ cacheRef.current = {
1152
+ room,
1153
+ engine: history,
1154
+ snapshot: nextSnapshot,
1155
+ };
1156
+ return nextSnapshot;
1157
+ }
1158
+ function resolveSingleLockState(locks, key) {
1159
+ var _a;
1160
+ const holder = locks.getHolder(key);
1161
+ if (!holder) {
1162
+ return null;
1163
+ }
1164
+ return ((_a = locks.getAll().find((state) => {
1165
+ return state.key === key;
1166
+ })) !== null && _a !== void 0 ? _a : null);
1167
+ }
1168
+ function commitLockStateSnapshot(room, locks, key, nextState, cacheRef) {
1169
+ const previous = cacheRef.current;
1170
+ if (previous !== null &&
1171
+ previous.room === room &&
1172
+ previous.engine === locks &&
1173
+ previous.key === key) {
1174
+ const previousSnapshot = previous.snapshot;
1175
+ if (previousSnapshot === nextState ||
1176
+ (previousSnapshot !== null &&
1177
+ nextState !== null &&
1178
+ areStructuredValuesEqual(previousSnapshot, nextState))) {
1179
+ return previousSnapshot;
1180
+ }
1181
+ previous.snapshot = nextState;
1182
+ return nextState;
1183
+ }
1184
+ cacheRef.current = {
1185
+ room,
1186
+ engine: locks,
1187
+ key,
1188
+ snapshot: nextState,
1189
+ };
1190
+ return nextState;
1191
+ }
1192
+ function readLockStateSnapshot(room, locks, key, cacheRef) {
1193
+ return commitLockStateSnapshot(room, locks, key, resolveSingleLockState(locks, key), cacheRef);
1194
+ }
1195
+ function reconcileLockStateSnapshot(room, locks, key, state, cacheRef) {
1196
+ const nextState = state.holder === null ? null : state;
1197
+ return commitLockStateSnapshot(room, locks, key, nextState, cacheRef);
1198
+ }
531
1199
  function readAwarenessSnapshot(room, awareness, cacheRef) {
532
1200
  const nextOthers = awareness.getAll().filter((entry) => {
533
1201
  return entry.peerId !== room.peerId;
@@ -612,6 +1280,11 @@ function isRoom(value) {
612
1280
  hasFunction(value, 'useCursors') &&
613
1281
  hasFunction(value, 'useState') &&
614
1282
  hasFunction(value, 'useAwareness') &&
1283
+ hasFunction(value, 'useViewport') &&
1284
+ hasFunction(value, 'usePointer') &&
1285
+ hasFunction(value, 'useLocks') &&
1286
+ hasFunction(value, 'useComments') &&
1287
+ hasFunction(value, 'useHistory') &&
615
1288
  hasFunction(value, 'useEvents') &&
616
1289
  hasFunction(value, 'getYDoc') &&
617
1290
  hasFunction(value, 'getYProvider') &&
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,wBAAwB,EACxB,kCAAkC,EAClC,wBAAwB,EACxB,YAAY,EACZ,YAAY,GAEb,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC;AAmM7E,MAAM,mBAAmB,GAAuC,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAC/F,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAA0C,CAAC;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAA+C;IACvE,OAAO,CAAC,GAAG,EAAE,UAAU;QACrB,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,wEAAwE,EACxE,KAAK,CACN,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,OAAO,GAAyB;YACpC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;SACvB,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,GAAG,EAA4C,CAAC;QAE5E,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC1C,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,6BAA6B,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;QAE1F,MAAM,oBAAoB,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;;YACrD,MAAA,UAAU,CAAC,SAAS,0DAAI,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,MAAM,uBAAuB,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE;;YAClE,MAAA,UAAU,CAAC,YAAY,2DAAG,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;;YAClD,MAAA,UAAU,CAAC,OAAO,2DAAG,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,WAAW,GAAG,IAAI,CAAC;YAEnB,gBAAgB,EAAE,CAAC;YACnB,uBAAuB,EAAE,CAAC;YAC1B,oBAAoB,EAAE,CAAC;YAEvB,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7C,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;YACD,eAAe,CAAC,KAAK,EAAE,CAAC;YACxB,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEjC,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChC,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC;gBACH,OAAO,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;YAClC,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,WAAW;IAGzB,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAyD;QACrE,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,eAAe,GAAG,oBAAoB,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAE5C,KAAK,CACH,OAAO,CAAC,IAAI,EACZ,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,gBAAgB,CAAY,IAAI,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,GAAS,EAAE;YAC9B,MAAM,YAAY,GAAG,oBAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACzE,IACE,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,IAAI;gBAChC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM;gBACpC,GAAG,CAAC,KAAK,KAAK,YAAY,CAAC,GAAG,EAC9B,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC;YAC/B,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;YACnC,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC;QAC/B,CAAC,CAAC;QAEF,YAAY,EAAE,CAAC;QAEf,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE;YAC1C,YAAY,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACE,SAAS,EAAE,IAAI;KAChB,CACF,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,MAAM;QACN,GAAG;QACH,MAAM,CAAC,IAAI;YACT,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,CAAC,IAAI;YACV,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7F,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAGxB,OAAuB;IACvB,MAAM,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAClF,MAAM,aAAa,GAAG,WAAW,CAAC,UAAU,CAAU,OAAO,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAgE;QAC5E,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,GAAG,GAAG,UAAU,CAAqB,IAAI,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrF,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC5C,IAAI,aAAa,GAAiC,IAAI,CAAC;IACvD,IAAI,cAAc,GAAuB,IAAI,CAAC;IAE9C,MAAM,uBAAuB,GAAG,GAAS,EAAE;QACzC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;QAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;QAE/B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC3B,aAAa,CAAC,OAAO,EAAE,CAAC;gBACxB,aAAa,GAAG,IAAI,CAAC;gBACrB,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,aAAa,KAAK,MAAM,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,aAAa,GAAG,MAAM,CAAC;QACvB,cAAc,GAAG,OAAO,CAAC;IAC3B,CAAC,CAAC;IAEF,KAAK,CACH,GAAG,EACH,GAAG,EAAE;QACH,uBAAuB,EAAE,CAAC;IAC5B,CAAC,EACD;QACE,KAAK,EAAE,MAAM;KACd,CACF,CAAC;IAEF,KAAK,CACH,OAAO,CAAC,IAAI,EACZ,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,gBAAgB,CAAY,IAAI,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAU,OAAO,CAAC,CAAC;QACtD,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC;QAEzB,MAAM,YAAY,GAAG,GAAS,EAAE;YAC9B,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;QAC/B,CAAC,CAAC;QAEF,uBAAuB,EAAE,CAAC;QAC1B,YAAY,EAAE,CAAC;QAEf,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YACxC,YAAY,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,WAAW,EAAE,CAAC;YAEd,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,aAAa,GAAG,IAAI,CAAC;gBACrB,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACE,SAAS,EAAE,IAAI;KAChB,CACF,CAAC;IAEF,OAAO;QACL,GAAG;QACH,OAAO;QACP,KAAK,CAAC,OAAO;YACX,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;YACpB,uBAAuB,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO;YACL,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;YACjB,uBAAuB,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAW,EACX,OAAwB;IAExB,MAAM,OAAO,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACtF,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,QAAQ,GAA+D;QAC3E,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAE1C,KAAK,CACH,OAAO,CAAC,IAAI,EACZ,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,gBAAgB,CAAY,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACvD,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAEvB,MAAM,YAAY,GAAG,GAAS,EAAE;YAC9B,MAAM,YAAY,GAAG,uBAAuB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACzE,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC;QAC7B,CAAC,CAAC;QAEF,YAAY,EAAE,CAAC;QAEf,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;YACvC,YAAY,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACE,SAAS,EAAE,IAAI;KAChB,CACF,CAAC;IAEF,MAAM,QAAQ,GAAyB,CAAC,SAAS,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvF,IAAI,wBAAwB,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACpF,MAAM,QAAQ,GAA0D;QACtE,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CACvB,qBAAqB,CAAC,WAAW,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CACzE,CAAC;IAEF,KAAK,CACH,OAAO,CAAC,IAAI,EACZ,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,gBAAgB,CAAY,IAAI,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,GAAS,EAAE;YAC9B,MAAM,YAAY,GAAG,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC3E,IAAI,MAAM,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;QAC9B,CAAC,CAAC;QAEF,YAAY,EAAE,CAAC;QAEf,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;YAC3C,YAAY,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACE,SAAS,EAAE,IAAI;KAChB,CACF,CAAC;IAEF,OAAO;QACL,MAAM;QACN,GAAG,CAAC,KAAK;YACP,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5F,CAAC;QACD,QAAQ,CAAC,SAAS;YAChB,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC;iBAC5D,YAAY,EAAE;iBACd,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QACD,YAAY,CAAC,SAAS;YACpB,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC;iBAC5D,YAAY,EAAE;iBACd,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QACD,SAAS,CAAC,QAAQ;YAChB,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC;iBAC5D,YAAY,EAAE;iBACd,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB;IAGjC,MAAM,OAAO,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,UAAU,CAAa,WAAW,CAAC,MAAM,CAAC,CAAC;IAE1D,KAAK,CACH,OAAO,CAAC,IAAI,EACZ,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,gBAAgB,CAAY,IAAI,EAAE,qBAAqB,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,GAAS,EAAE;YAC5B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;QAClC,CAAC,CAAC;QAEF,MAAM,oBAAoB,GAAG,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,uBAAuB,GAAG,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACzE,MAAM,uBAAuB,GAAG,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACzE,MAAM,gBAAgB,GAAG,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE3D,UAAU,EAAE,CAAC;QAEb,SAAS,CAAC,GAAG,EAAE;YACb,gBAAgB,EAAE,CAAC;YACnB,uBAAuB,EAAE,CAAC;YAC1B,uBAAuB,EAAE,CAAC;YAC1B,oBAAoB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACE,SAAS,EAAE,IAAI;KAChB,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,OAA6C;IAE7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,UAAU,CAAsC,OAAO,CAAC,CAAC;IAE5E,KAAK,CACH,OAAO,CAAC,IAAI,EACZ,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,gBAAgB,CAAY,IAAI,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YACnE,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACE,SAAS,EAAE,IAAI;KAChB,CACF,CAAC;IAEF,OAAO,CAAC,OAAiB,EAAQ,EAAE;QACjC,gBAAgB,CAAY,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9F,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,cAAsB;IAC/C,IAAI,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,GAAG,cAAc,uEAAuE,EACxF,KAAK,CACN,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,GAAG,cAAc,8CAA8C,EAC/D,KAAK,CACN,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAc,EACd,cAAsB;IAEtB,IAAI,CAAC,MAAM,CAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,GAAG,cAAc,8CAA8C,EAC/D,KAAK,CACN,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAwC;IAExC,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,6BAA6B,CACpC,OAA6B,EAC7B,MAAqD;IAErD,OAAO;QACL,OAAO,CAAC,OAAO,EAAE,OAAO;YACtB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,OAAO;;YACtB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,MAAM,YAAY,GAAG,MAAA,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,mCAAI,IAAI,CAAC;YACjD,IACE,YAAY,KAAK,IAAI;gBACrB,YAAY,CAAC,IAAI,KAAK,IAAI;gBAC1B,qBAAqB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAC1D,CAAC;gBACD,OAAO;YACT,CAAC;YAED,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9C,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;QACD,SAAS,CAAC,OAAO;YACf,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,OAA6B,EAC7B,MAAqD,EACrD,OAAoB,EACpB,OAAkC;IAElC,MAAM,IAAI,GAAG,gBAAgB,CAAe,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE;QAClB,IAAI;QACJ,MAAM;QACN,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,SAAS,4BAA4B,CACnC,MAAqD,EACrD,OAAoB;;IAEpB,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,mCAAI,IAAI,CAAC;IAC1C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,eAAe,CACtB,IAAqB,EACrB,GAAW,EACX,OAAwB;;IAExB,MAAM,eAAe,GAAG,MAAA,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,IAAI,CAAC;IAE9D,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,kCAAkC,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1E,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEvC,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvF,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAqB,EACrB,QAAmC,EACnC,QAA8D;IAM9D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,OAAO,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;IAElC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC3C,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,aAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE1E,IAAI,UAAU,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;YAC/C,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;YAChD,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACxD,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;SAC7C,CAAC;QAEF,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAAC;QACjC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,QAAQ,GAAG;QACf,IAAI;QACJ,MAAM;QACN,GAAG;KACJ,CAAC;IAEF,QAAQ,CAAC,OAAO,GAAG;QACjB,IAAI;QACJ,MAAM,EAAE,QAAQ;QAChB,QAAQ;KACT,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAqB,EACrB,OAA8B,EAC9B,QAAqE;IAErE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;IAElC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC/E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC3C,IAAI,oBAAoB,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAE,CAAC;YACzD,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACvD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,gBAAgB,KAAK,SAAS,IAAI,uBAAuB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC1F,OAAO,gBAAgB,CAAC;YAC1B,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,OAAO,GAAG;QACjB,IAAI;QACJ,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,YAAY;KACvB,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAqB,EACrB,SAA0B,EAC1B,QAA+D;IAE/D,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACrD,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;IAElC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC3C,IAAI,uBAAuB,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1D,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAClD,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,aAAa,KAAK,SAAS,IAAI,wBAAwB,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClF,OAAO,aAAa,CAAC;YACvB,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,OAAO,GAAG;QACjB,IAAI;QACJ,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,UAAU;KACrB,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAAqB,EACrB,KAAqB,EACrB,QAAoE;IAEpE,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;IAElC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC7E,IAAI,wBAAwB,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;YAC9D,OAAO,QAAQ,CAAC,QAAQ,CAAC;QAC3B,CAAC;QAED,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAAC;QACjC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,QAAQ,CAAC,OAAO,GAAG;QACjB,IAAI;QACJ,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,YAAY;KACvB,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAmC,EACnC,IAA+B;IAE/B,OAAO,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,sBAAsB,CAAC,CAAqB,EAAE,CAAqB;IAC1E,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAC3C,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAI,KAA4B;IACrD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,QAAQ,CAAC;AACjF,CAAC;AAED,SAAS,MAAM,CACb,KAAc;IAEd,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,QAAQ;QAC5C,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,QAAQ;QAChD,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC;QAC7B,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;QAChC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC;QACjC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;QAChC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC;QAC9B,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC;QAClC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC;QAC/B,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC;QAC7B,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC;QAClC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;QACxB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,GAAW;IAC7C,OAAO,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,UAAU,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@roomful/vue",
3
- "version": "1.0.1",
3
+ "description": "Vue plugin and composables for Roomful — realtime presence, cursors, shared state, viewport, locking, pointer, comments, and history.",
4
+ "version": "1.1.1",
4
5
  "private": false,
5
6
  "type": "module",
6
7
  "main": "dist/index.js",
@@ -17,11 +18,11 @@
17
18
  "README.md"
18
19
  ],
19
20
  "engines": {
20
- "node": ">=18"
21
+ "node": ">=20"
21
22
  },
22
23
  "sideEffects": false,
23
24
  "dependencies": {
24
- "@roomful/core": "1.0.1"
25
+ "@roomful/core": "1.1.1"
25
26
  },
26
27
  "devDependencies": {
27
28
  "@vue/test-utils": "^2.4.6",