canvu-react 0.3.27 → 0.3.29

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/dist/react.cjs CHANGED
@@ -3651,6 +3651,10 @@ var TOOLBAR_TOOLTIP_CSS = `
3651
3651
  opacity: 1;
3652
3652
  visibility: visible;
3653
3653
  }
3654
+ [data-slot="vector-canvas-toolbar"][data-position^="top-"] .vector-toolbar-tip {
3655
+ top: calc(100% + 8px);
3656
+ bottom: auto;
3657
+ }
3654
3658
  `;
3655
3659
  var OVERFLOW_MENU_CSS = `
3656
3660
  .vector-toolbar-overflow-panel {
@@ -3733,6 +3737,10 @@ var OVERFLOW_MENU_CSS = `
3733
3737
  opacity: 1;
3734
3738
  visibility: visible;
3735
3739
  }
3740
+ [data-slot="vector-canvas-toolbar"][data-position^="top-"] .vector-toolbar-overflow-tip {
3741
+ top: calc(100% + 8px);
3742
+ bottom: auto;
3743
+ }
3736
3744
  .vector-toolbar-overflow-cell > button {
3737
3745
  background: rgba(24,24,27,0.05);
3738
3746
  }
@@ -7470,7 +7478,14 @@ var VectorViewport = react.forwardRef(
7470
7478
  onPlacementPreviewChangeRef.current = onPlacementPreviewChange;
7471
7479
  const directRemoteStrokePreviewRef = react.useRef(false);
7472
7480
  const remoteStrokePreviewFrameRef = react.useRef(null);
7481
+ const remoteStrokePreviewClearTimerRef = react.useRef(null);
7473
7482
  const pendingRemoteStrokePreviewRef = react.useRef(null);
7483
+ const cancelPendingRemoteStrokePreviewClear = react.useCallback(() => {
7484
+ if (remoteStrokePreviewClearTimerRef.current != null) {
7485
+ clearTimeout(remoteStrokePreviewClearTimerRef.current);
7486
+ remoteStrokePreviewClearTimerRef.current = null;
7487
+ }
7488
+ }, []);
7474
7489
  const flushRemoteStrokePreviewWithStyle = react.useCallback(() => {
7475
7490
  remoteStrokePreviewFrameRef.current = null;
7476
7491
  const pending = pendingRemoteStrokePreviewRef.current;
@@ -7485,6 +7500,7 @@ var VectorViewport = react.forwardRef(
7485
7500
  const emitRemoteStrokePreview = react.useCallback(
7486
7501
  (tool, points) => {
7487
7502
  if (tool === "laser") return;
7503
+ cancelPendingRemoteStrokePreviewClear();
7488
7504
  directRemoteStrokePreviewRef.current = true;
7489
7505
  pendingRemoteStrokePreviewRef.current = { tool, points };
7490
7506
  if (remoteStrokePreviewFrameRef.current != null) return;
@@ -7492,17 +7508,22 @@ var VectorViewport = react.forwardRef(
7492
7508
  flushRemoteStrokePreviewWithStyle
7493
7509
  );
7494
7510
  },
7495
- [flushRemoteStrokePreviewWithStyle]
7511
+ [cancelPendingRemoteStrokePreviewClear, flushRemoteStrokePreviewWithStyle]
7496
7512
  );
7513
+ const REMOTE_STROKE_PREVIEW_HOLD_MS = 350;
7497
7514
  const emitRemoteStrokePreviewClear = react.useCallback(() => {
7498
7515
  if (remoteStrokePreviewFrameRef.current != null) {
7499
7516
  cancelAnimationFrame(remoteStrokePreviewFrameRef.current);
7500
7517
  remoteStrokePreviewFrameRef.current = null;
7501
7518
  }
7502
- pendingRemoteStrokePreviewRef.current = null;
7503
- directRemoteStrokePreviewRef.current = false;
7504
- onPlacementPreviewChangeRef.current?.(null);
7505
- }, []);
7519
+ cancelPendingRemoteStrokePreviewClear();
7520
+ remoteStrokePreviewClearTimerRef.current = window.setTimeout(() => {
7521
+ remoteStrokePreviewClearTimerRef.current = null;
7522
+ pendingRemoteStrokePreviewRef.current = null;
7523
+ directRemoteStrokePreviewRef.current = false;
7524
+ onPlacementPreviewChangeRef.current?.(null);
7525
+ }, REMOTE_STROKE_PREVIEW_HOLD_MS);
7526
+ }, [cancelPendingRemoteStrokePreviewClear]);
7506
7527
  const overlayCameraTickRef = react.useRef(false);
7507
7528
  overlayCameraTickRef.current = interactive || remotePresence != null && remotePresence.length > 0 || presenceOverlay != null;
7508
7529
  const pruneEraserTrail = react.useCallback(
@@ -7755,6 +7776,9 @@ var VectorViewport = react.forwardRef(
7755
7776
  if (remoteStrokePreviewFrameRef.current != null) {
7756
7777
  cancelAnimationFrame(remoteStrokePreviewFrameRef.current);
7757
7778
  }
7779
+ if (remoteStrokePreviewClearTimerRef.current != null) {
7780
+ clearTimeout(remoteStrokePreviewClearTimerRef.current);
7781
+ }
7758
7782
  };
7759
7783
  }, []);
7760
7784
  react.useEffect(() => {