@tldraw/editor 4.6.0-next.e0f85e824397 → 4.6.0-next.e390fde97eab

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 (69) hide show
  1. package/dist-cjs/index.d.ts +297 -3
  2. package/dist-cjs/index.js +5 -1
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/components/MenuClickCapture.js +16 -1
  5. package/dist-cjs/lib/components/MenuClickCapture.js.map +2 -2
  6. package/dist-cjs/lib/editor/Editor.js +15 -0
  7. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  8. package/dist-cjs/lib/editor/managers/PerformanceManager/PerformanceApiAdapter.js +80 -0
  9. package/dist-cjs/lib/editor/managers/PerformanceManager/PerformanceApiAdapter.js.map +7 -0
  10. package/dist-cjs/lib/editor/managers/PerformanceManager/PerformanceManager.js +466 -0
  11. package/dist-cjs/lib/editor/managers/PerformanceManager/PerformanceManager.js.map +7 -0
  12. package/dist-cjs/lib/editor/managers/PerformanceManager/perf-types.js +17 -0
  13. package/dist-cjs/lib/editor/managers/PerformanceManager/perf-types.js.map +7 -0
  14. package/dist-cjs/lib/editor/shapes/ShapeUtil.js +2 -2
  15. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  16. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +1 -1
  17. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +2 -2
  18. package/dist-cjs/lib/editor/shapes/shared/getPerfectDashProps.js +6 -0
  19. package/dist-cjs/lib/editor/shapes/shared/getPerfectDashProps.js.map +2 -2
  20. package/dist-cjs/lib/editor/tools/StateNode.js +14 -17
  21. package/dist-cjs/lib/editor/tools/StateNode.js.map +2 -2
  22. package/dist-cjs/lib/utils/runtime.js +2 -1
  23. package/dist-cjs/lib/utils/runtime.js.map +2 -2
  24. package/dist-cjs/lib/utils/sync/hardReset.js +0 -8
  25. package/dist-cjs/lib/utils/sync/hardReset.js.map +2 -2
  26. package/dist-cjs/version.js +3 -3
  27. package/dist-cjs/version.js.map +1 -1
  28. package/dist-esm/index.d.mts +297 -3
  29. package/dist-esm/index.mjs +5 -1
  30. package/dist-esm/index.mjs.map +2 -2
  31. package/dist-esm/lib/components/MenuClickCapture.mjs +16 -1
  32. package/dist-esm/lib/components/MenuClickCapture.mjs.map +2 -2
  33. package/dist-esm/lib/editor/Editor.mjs +15 -0
  34. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  35. package/dist-esm/lib/editor/managers/PerformanceManager/PerformanceApiAdapter.mjs +60 -0
  36. package/dist-esm/lib/editor/managers/PerformanceManager/PerformanceApiAdapter.mjs.map +7 -0
  37. package/dist-esm/lib/editor/managers/PerformanceManager/PerformanceManager.mjs +438 -0
  38. package/dist-esm/lib/editor/managers/PerformanceManager/PerformanceManager.mjs.map +7 -0
  39. package/dist-esm/lib/editor/managers/PerformanceManager/perf-types.mjs +1 -0
  40. package/dist-esm/lib/editor/managers/PerformanceManager/perf-types.mjs.map +7 -0
  41. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +2 -2
  42. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  43. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +1 -1
  44. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +2 -2
  45. package/dist-esm/lib/editor/shapes/shared/getPerfectDashProps.mjs +6 -0
  46. package/dist-esm/lib/editor/shapes/shared/getPerfectDashProps.mjs.map +2 -2
  47. package/dist-esm/lib/editor/tools/StateNode.mjs +14 -17
  48. package/dist-esm/lib/editor/tools/StateNode.mjs.map +2 -2
  49. package/dist-esm/lib/utils/runtime.mjs +2 -1
  50. package/dist-esm/lib/utils/runtime.mjs.map +2 -2
  51. package/dist-esm/lib/utils/sync/hardReset.mjs +0 -8
  52. package/dist-esm/lib/utils/sync/hardReset.mjs.map +2 -2
  53. package/dist-esm/version.mjs +3 -3
  54. package/dist-esm/version.mjs.map +1 -1
  55. package/package.json +7 -7
  56. package/src/index.ts +15 -0
  57. package/src/lib/components/MenuClickCapture.tsx +20 -0
  58. package/src/lib/editor/Editor.ts +16 -0
  59. package/src/lib/editor/managers/PerformanceManager/PerformanceApiAdapter.ts +82 -0
  60. package/src/lib/editor/managers/PerformanceManager/PerformanceManager.test.ts +522 -0
  61. package/src/lib/editor/managers/PerformanceManager/PerformanceManager.ts +583 -0
  62. package/src/lib/editor/managers/PerformanceManager/perf-types.ts +196 -0
  63. package/src/lib/editor/shapes/ShapeUtil.ts +2 -2
  64. package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +1 -1
  65. package/src/lib/editor/shapes/shared/getPerfectDashProps.ts +7 -0
  66. package/src/lib/editor/tools/StateNode.ts +16 -18
  67. package/src/lib/utils/runtime.ts +3 -1
  68. package/src/lib/utils/sync/hardReset.ts +0 -8
  69. package/src/version.ts +3 -3
@@ -116,6 +116,7 @@ import { FocusManager } from "./managers/FocusManager/FocusManager.mjs";
116
116
  import { FontManager } from "./managers/FontManager/FontManager.mjs";
117
117
  import { HistoryManager } from "./managers/HistoryManager/HistoryManager.mjs";
118
118
  import { InputsManager } from "./managers/InputsManager/InputsManager.mjs";
119
+ import { PerformanceManager } from "./managers/PerformanceManager/PerformanceManager.mjs";
119
120
  import { ScribbleManager } from "./managers/ScribbleManager/ScribbleManager.mjs";
120
121
  import { SnapManager } from "./managers/SnapManager/SnapManager.mjs";
121
122
  import { SpatialIndexManager } from "./managers/SpatialIndexManager/SpatialIndexManager.mjs";
@@ -189,6 +190,8 @@ class Editor extends EventEmitter {
189
190
  });
190
191
  this.fonts = new FontManager(this, fontAssetUrls);
191
192
  this.inputs = new InputsManager(this);
193
+ this.performance = new PerformanceManager(this);
194
+ this.disposables.add(() => this.performance.dispose());
192
195
  class NewRoot extends RootState {
193
196
  static initial = initialState ?? "";
194
197
  }
@@ -682,6 +685,12 @@ class Editor extends EventEmitter {
682
685
  * @public
683
686
  */
684
687
  snaps;
688
+ /**
689
+ * A manager for performance measurement hooks.
690
+ *
691
+ * @public
692
+ */
693
+ performance;
685
694
  /**
686
695
  * A manager for the spatial index, tracking where shapes exist on the canvas.
687
696
  *
@@ -990,6 +999,7 @@ class Editor extends EventEmitter {
990
999
  this._flushEventsForTick(0);
991
1000
  this.complete();
992
1001
  this.history.undo();
1002
+ this.performance._notifyUndoRedo("undo", this.history.getNumUndos(), this.history.getNumRedos());
993
1003
  return this;
994
1004
  }
995
1005
  canUndo() {
@@ -1012,6 +1022,7 @@ class Editor extends EventEmitter {
1012
1022
  this._flushEventsForTick(0);
1013
1023
  this.complete();
1014
1024
  this.history.redo();
1025
+ this.performance._notifyUndoRedo("redo", this.history.getNumUndos(), this.history.getNumRedos());
1015
1026
  return this;
1016
1027
  }
1017
1028
  canRedo() {
@@ -7918,6 +7929,7 @@ class Editor extends EventEmitter {
7918
7929
  ),
7919
7930
  { immediate: true }
7920
7931
  );
7932
+ this.performance._notifyCameraOperation("zooming");
7921
7933
  this.emit("event", info);
7922
7934
  return;
7923
7935
  }
@@ -7979,6 +7991,7 @@ class Editor extends EventEmitter {
7979
7991
  immediate: true
7980
7992
  });
7981
7993
  this.maybeTrackPerformance("Zooming");
7994
+ this.performance._notifyCameraOperation("zooming");
7982
7995
  this.root.handleEvent(info);
7983
7996
  this.emit("event", info);
7984
7997
  return;
@@ -7988,6 +8001,7 @@ class Editor extends EventEmitter {
7988
8001
  immediate: true
7989
8002
  });
7990
8003
  this.maybeTrackPerformance("Panning");
8004
+ this.performance._notifyCameraOperation("panning");
7991
8005
  this.root.handleEvent(info);
7992
8006
  this.emit("event", info);
7993
8007
  return;
@@ -8053,6 +8067,7 @@ class Editor extends EventEmitter {
8053
8067
  immediate: true
8054
8068
  });
8055
8069
  this.maybeTrackPerformance("Panning");
8070
+ this.performance._notifyCameraOperation("panning");
8056
8071
  return;
8057
8072
  }
8058
8073
  if (inputs.getIsPointing() && !inputs.getIsDragging() && Vec.Dist2(inputs.getOriginPagePoint(), inputs.getCurrentPagePoint()) * this.getZoomLevel() > (instanceState.isCoarsePointer ? this.options.coarseDragDistanceSquared : this.options.dragDistanceSquared) / cz) {