@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
@@ -82,6 +82,7 @@ var import_FocusManager = require("./managers/FocusManager/FocusManager");
82
82
  var import_FontManager = require("./managers/FontManager/FontManager");
83
83
  var import_HistoryManager = require("./managers/HistoryManager/HistoryManager");
84
84
  var import_InputsManager = require("./managers/InputsManager/InputsManager");
85
+ var import_PerformanceManager = require("./managers/PerformanceManager/PerformanceManager");
85
86
  var import_ScribbleManager = require("./managers/ScribbleManager/ScribbleManager");
86
87
  var import_SnapManager = require("./managers/SnapManager/SnapManager");
87
88
  var import_SpatialIndexManager = require("./managers/SpatialIndexManager/SpatialIndexManager");
@@ -155,6 +156,8 @@ class Editor extends import_eventemitter3.default {
155
156
  });
156
157
  this.fonts = new import_FontManager.FontManager(this, fontAssetUrls);
157
158
  this.inputs = new import_InputsManager.InputsManager(this);
159
+ this.performance = new import_PerformanceManager.PerformanceManager(this);
160
+ this.disposables.add(() => this.performance.dispose());
158
161
  class NewRoot extends import_RootState.RootState {
159
162
  static initial = initialState ?? "";
160
163
  }
@@ -648,6 +651,12 @@ class Editor extends import_eventemitter3.default {
648
651
  * @public
649
652
  */
650
653
  snaps;
654
+ /**
655
+ * A manager for performance measurement hooks.
656
+ *
657
+ * @public
658
+ */
659
+ performance;
651
660
  /**
652
661
  * A manager for the spatial index, tracking where shapes exist on the canvas.
653
662
  *
@@ -956,6 +965,7 @@ class Editor extends import_eventemitter3.default {
956
965
  this._flushEventsForTick(0);
957
966
  this.complete();
958
967
  this.history.undo();
968
+ this.performance._notifyUndoRedo("undo", this.history.getNumUndos(), this.history.getNumRedos());
959
969
  return this;
960
970
  }
961
971
  canUndo() {
@@ -978,6 +988,7 @@ class Editor extends import_eventemitter3.default {
978
988
  this._flushEventsForTick(0);
979
989
  this.complete();
980
990
  this.history.redo();
991
+ this.performance._notifyUndoRedo("redo", this.history.getNumUndos(), this.history.getNumRedos());
981
992
  return this;
982
993
  }
983
994
  canRedo() {
@@ -7884,6 +7895,7 @@ class Editor extends import_eventemitter3.default {
7884
7895
  ),
7885
7896
  { immediate: true }
7886
7897
  );
7898
+ this.performance._notifyCameraOperation("zooming");
7887
7899
  this.emit("event", info);
7888
7900
  return;
7889
7901
  }
@@ -7945,6 +7957,7 @@ class Editor extends import_eventemitter3.default {
7945
7957
  immediate: true
7946
7958
  });
7947
7959
  this.maybeTrackPerformance("Zooming");
7960
+ this.performance._notifyCameraOperation("zooming");
7948
7961
  this.root.handleEvent(info);
7949
7962
  this.emit("event", info);
7950
7963
  return;
@@ -7954,6 +7967,7 @@ class Editor extends import_eventemitter3.default {
7954
7967
  immediate: true
7955
7968
  });
7956
7969
  this.maybeTrackPerformance("Panning");
7970
+ this.performance._notifyCameraOperation("panning");
7957
7971
  this.root.handleEvent(info);
7958
7972
  this.emit("event", info);
7959
7973
  return;
@@ -8019,6 +8033,7 @@ class Editor extends import_eventemitter3.default {
8019
8033
  immediate: true
8020
8034
  });
8021
8035
  this.maybeTrackPerformance("Panning");
8036
+ this.performance._notifyCameraOperation("panning");
8022
8037
  return;
8023
8038
  }
8024
8039
  if (inputs.getIsPointing() && !inputs.getIsDragging() && import_Vec.Vec.Dist2(inputs.getOriginPagePoint(), inputs.getCurrentPagePoint()) * this.getZoomLevel() > (instanceState.isCoarsePointer ? this.options.coarseDragDistanceSquared : this.options.dragDistanceSquared) / cz) {