@tldraw/editor 3.13.0-canary.eb5f191f61ac → 3.13.0-canary.ee08fd8a3063

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 (146) hide show
  1. package/dist-cjs/index.d.ts +110 -100
  2. package/dist-cjs/index.js +7 -22
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/components/Shape.js +12 -8
  5. package/dist-cjs/lib/components/Shape.js.map +2 -2
  6. package/dist-cjs/lib/components/default-components/DefaultCanvas.js +31 -8
  7. package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
  8. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js +17 -11
  9. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js.map +2 -2
  10. package/dist-cjs/lib/editor/Editor.js +85 -24
  11. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  12. package/dist-cjs/lib/editor/managers/SnapManager/HandleSnaps.js.map +2 -2
  13. package/dist-cjs/lib/editor/managers/TextManager.js +10 -0
  14. package/dist-cjs/lib/editor/managers/TextManager.js.map +2 -2
  15. package/dist-cjs/lib/editor/shapes/ShapeUtil.js +1 -1
  16. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  17. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +0 -3
  18. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +2 -2
  19. package/dist-cjs/lib/editor/shapes/shared/getPerfectDashProps.js.map +2 -2
  20. package/dist-cjs/lib/exports/getSvgJsx.js +12 -3
  21. package/dist-cjs/lib/exports/getSvgJsx.js.map +2 -2
  22. package/dist-cjs/lib/hooks/useEditorComponents.js +1 -2
  23. package/dist-cjs/lib/hooks/useEditorComponents.js.map +2 -2
  24. package/dist-cjs/lib/primitives/Box.js +16 -0
  25. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  26. package/dist-cjs/lib/primitives/Mat.js +1 -1
  27. package/dist-cjs/lib/primitives/Mat.js.map +2 -2
  28. package/dist-cjs/lib/primitives/Vec.js +20 -0
  29. package/dist-cjs/lib/primitives/Vec.js.map +2 -2
  30. package/dist-cjs/lib/primitives/geometry/Arc2d.js +2 -2
  31. package/dist-cjs/lib/primitives/geometry/Arc2d.js.map +2 -2
  32. package/dist-cjs/lib/primitives/geometry/Circle2d.js +1 -1
  33. package/dist-cjs/lib/primitives/geometry/Circle2d.js.map +2 -2
  34. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js +1 -1
  35. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js.map +2 -2
  36. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js.map +2 -2
  37. package/dist-cjs/lib/primitives/geometry/Edge2d.js +1 -1
  38. package/dist-cjs/lib/primitives/geometry/Edge2d.js.map +2 -2
  39. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js.map +2 -2
  40. package/dist-cjs/lib/primitives/geometry/Geometry2d.js +91 -20
  41. package/dist-cjs/lib/primitives/geometry/Geometry2d.js.map +2 -2
  42. package/dist-cjs/lib/primitives/geometry/Group2d.js +55 -2
  43. package/dist-cjs/lib/primitives/geometry/Group2d.js.map +2 -2
  44. package/dist-cjs/lib/primitives/geometry/Point2d.js.map +2 -2
  45. package/dist-cjs/lib/primitives/geometry/Polyline2d.js.map +2 -2
  46. package/dist-cjs/lib/primitives/geometry/Stadium2d.js.map +2 -2
  47. package/dist-cjs/lib/utils/areShapesContentEqual.js +25 -0
  48. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +7 -0
  49. package/dist-cjs/lib/utils/debug-flags.js +5 -2
  50. package/dist-cjs/lib/utils/debug-flags.js.map +2 -2
  51. package/dist-cjs/lib/utils/nearestMultiple.js +34 -0
  52. package/dist-cjs/lib/utils/nearestMultiple.js.map +7 -0
  53. package/dist-cjs/version.js +3 -3
  54. package/dist-cjs/version.js.map +1 -1
  55. package/dist-esm/index.d.mts +110 -100
  56. package/dist-esm/index.mjs +9 -41
  57. package/dist-esm/index.mjs.map +2 -2
  58. package/dist-esm/lib/components/Shape.mjs +12 -8
  59. package/dist-esm/lib/components/Shape.mjs.map +2 -2
  60. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +31 -8
  61. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
  62. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs +17 -11
  63. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs.map +2 -2
  64. package/dist-esm/lib/editor/Editor.mjs +85 -24
  65. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  66. package/dist-esm/lib/editor/managers/SnapManager/HandleSnaps.mjs.map +2 -2
  67. package/dist-esm/lib/editor/managers/TextManager.mjs +10 -0
  68. package/dist-esm/lib/editor/managers/TextManager.mjs.map +2 -2
  69. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +1 -1
  70. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  71. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +0 -3
  72. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +2 -2
  73. package/dist-esm/lib/editor/shapes/shared/getPerfectDashProps.mjs.map +2 -2
  74. package/dist-esm/lib/exports/getSvgJsx.mjs +12 -3
  75. package/dist-esm/lib/exports/getSvgJsx.mjs.map +2 -2
  76. package/dist-esm/lib/hooks/useEditorComponents.mjs +1 -4
  77. package/dist-esm/lib/hooks/useEditorComponents.mjs.map +2 -2
  78. package/dist-esm/lib/primitives/Box.mjs +16 -0
  79. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  80. package/dist-esm/lib/primitives/Mat.mjs +1 -1
  81. package/dist-esm/lib/primitives/Mat.mjs.map +2 -2
  82. package/dist-esm/lib/primitives/Vec.mjs +20 -0
  83. package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
  84. package/dist-esm/lib/primitives/geometry/Arc2d.mjs +2 -2
  85. package/dist-esm/lib/primitives/geometry/Arc2d.mjs.map +2 -2
  86. package/dist-esm/lib/primitives/geometry/Circle2d.mjs +1 -1
  87. package/dist-esm/lib/primitives/geometry/Circle2d.mjs.map +2 -2
  88. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs +1 -1
  89. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs.map +2 -2
  90. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs.map +2 -2
  91. package/dist-esm/lib/primitives/geometry/Edge2d.mjs +1 -1
  92. package/dist-esm/lib/primitives/geometry/Edge2d.mjs.map +2 -2
  93. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs.map +2 -2
  94. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs +92 -21
  95. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs.map +2 -2
  96. package/dist-esm/lib/primitives/geometry/Group2d.mjs +55 -2
  97. package/dist-esm/lib/primitives/geometry/Group2d.mjs.map +2 -2
  98. package/dist-esm/lib/primitives/geometry/Point2d.mjs.map +2 -2
  99. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs.map +2 -2
  100. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs.map +2 -2
  101. package/dist-esm/lib/utils/areShapesContentEqual.mjs +5 -0
  102. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +7 -0
  103. package/dist-esm/lib/utils/debug-flags.mjs +5 -2
  104. package/dist-esm/lib/utils/debug-flags.mjs.map +2 -2
  105. package/dist-esm/lib/utils/nearestMultiple.mjs +14 -0
  106. package/dist-esm/lib/utils/nearestMultiple.mjs.map +7 -0
  107. package/dist-esm/version.mjs +3 -3
  108. package/dist-esm/version.mjs.map +1 -1
  109. package/editor.css +36 -4
  110. package/package.json +7 -7
  111. package/src/index.ts +16 -31
  112. package/src/lib/components/Shape.tsx +14 -10
  113. package/src/lib/components/default-components/DefaultCanvas.tsx +32 -8
  114. package/src/lib/components/default-components/DefaultShapeIndicator.tsx +17 -8
  115. package/src/lib/editor/Editor.test.ts +1 -1
  116. package/src/lib/editor/Editor.ts +96 -24
  117. package/src/lib/editor/managers/SnapManager/HandleSnaps.ts +0 -1
  118. package/src/lib/editor/managers/TextManager.ts +12 -0
  119. package/src/lib/editor/shapes/ShapeUtil.ts +23 -3
  120. package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +0 -4
  121. package/src/lib/editor/shapes/shared/getPerfectDashProps.ts +9 -9
  122. package/src/lib/exports/getSvgJsx.tsx +16 -7
  123. package/src/lib/hooks/useEditorComponents.tsx +2 -5
  124. package/src/lib/primitives/Box.ts +20 -0
  125. package/src/lib/primitives/Mat.ts +5 -4
  126. package/src/lib/primitives/Vec.ts +23 -0
  127. package/src/lib/primitives/geometry/Arc2d.ts +5 -5
  128. package/src/lib/primitives/geometry/Circle2d.ts +4 -4
  129. package/src/lib/primitives/geometry/CubicBezier2d.ts +4 -4
  130. package/src/lib/primitives/geometry/CubicSpline2d.ts +3 -3
  131. package/src/lib/primitives/geometry/Edge2d.ts +3 -3
  132. package/src/lib/primitives/geometry/Ellipse2d.ts +3 -3
  133. package/src/lib/primitives/geometry/Geometry2d.test.ts +42 -0
  134. package/src/lib/primitives/geometry/Geometry2d.ts +123 -35
  135. package/src/lib/primitives/geometry/Group2d.ts +70 -7
  136. package/src/lib/primitives/geometry/Point2d.ts +2 -2
  137. package/src/lib/primitives/geometry/Polyline2d.ts +3 -3
  138. package/src/lib/primitives/geometry/Stadium2d.ts +3 -3
  139. package/src/lib/test/currentToolIdMask.test.ts +1 -1
  140. package/src/lib/test/user.test.ts +1 -1
  141. package/src/lib/utils/areShapesContentEqual.ts +4 -0
  142. package/src/lib/utils/debug-flags.ts +7 -2
  143. package/src/lib/utils/nearestMultiple.ts +13 -0
  144. package/src/lib/utils/sync/LocalIndexedDb.test.ts +1 -1
  145. package/src/lib/utils/sync/TLLocalSyncClient.test.ts +1 -1
  146. package/src/version.ts +3 -3
@@ -1,16 +1,12 @@
1
1
  /// <reference types="react" />
2
2
 
3
3
  import { Atom } from '@tldraw/state';
4
- import { atom } from '@tldraw/state';
5
4
  import { BoxModel } from '@tldraw/tlschema';
6
5
  import { ComponentType } from 'react';
7
6
  import { Computed } from '@tldraw/state';
8
- import { computed } from '@tldraw/state';
9
7
  import { Dispatch } from 'react';
10
8
  import { Editor as Editor_2 } from '@tiptap/core';
11
9
  import { EditorProviderProps } from '@tiptap/react';
12
- import { EffectScheduler } from '@tldraw/state';
13
- import { EMPTY_ARRAY } from '@tldraw/state';
14
10
  import EventEmitter from 'eventemitter3';
15
11
  import { ExoticComponent } from 'react';
16
12
  import { HistoryEntry } from '@tldraw/store';
@@ -23,7 +19,6 @@ import { NamedExoticComponent } from 'react';
23
19
  import { Node as Node_2 } from '@tiptap/pm/model';
24
20
  import { PerformanceTracker } from '@tldraw/utils';
25
21
  import { PointerEventHandler } from 'react';
26
- import { react } from '@tldraw/state';
27
22
  import { default as React_2 } from 'react';
28
23
  import * as React_3 from 'react';
29
24
  import { ReactElement } from 'react';
@@ -82,18 +77,8 @@ import { TLStoreSnapshot } from '@tldraw/tlschema';
82
77
  import { TLUnknownBinding } from '@tldraw/tlschema';
83
78
  import { TLUnknownShape } from '@tldraw/tlschema';
84
79
  import { TLVideoAsset } from '@tldraw/tlschema';
85
- import { track } from '@tldraw/state-react';
86
- import { transact } from '@tldraw/state';
87
- import { transaction } from '@tldraw/state';
88
80
  import { UnknownRecord } from '@tldraw/store';
89
- import { useAtom } from '@tldraw/state-react';
90
- import { useComputed } from '@tldraw/state-react';
91
- import { useQuickReactor } from '@tldraw/state-react';
92
- import { useReactor } from '@tldraw/state-react';
93
- import { useStateTracking } from '@tldraw/state-react';
94
- import { useValue } from '@tldraw/state-react';
95
81
  import { VecModel } from '@tldraw/tlschema';
96
- import { whyAmIRunning } from '@tldraw/state';
97
82
 
98
83
  /* Excluded from this release type: activeElementShouldCaptureKeys */
99
84
 
@@ -136,8 +121,8 @@ export declare class Arc2d extends Geometry2d {
136
121
  start: Vec;
137
122
  sweepFlag: number;
138
123
  });
139
- nearestPoint(point: Vec): Vec;
140
- hitTestLineSegment(A: Vec, B: Vec): boolean;
124
+ nearestPoint(point: VecLike): Vec;
125
+ hitTestLineSegment(A: VecLike, B: VecLike): boolean;
141
126
  getVertices(): Vec[];
142
127
  getSvgPathData(first?: boolean): string;
143
128
  getLength(): number;
@@ -153,10 +138,6 @@ export declare class Arc2d extends Geometry2d {
153
138
  */
154
139
  export declare function areAnglesCompatible(a: number, b: number): boolean;
155
140
 
156
- export { Atom }
157
-
158
- export { atom }
159
-
160
141
  /** @public */
161
142
  export declare function average(A: VecLike, B: VecLike): string;
162
143
 
@@ -477,12 +458,16 @@ export declare class Box {
477
458
  set point(val: Vec);
478
459
  get minX(): number;
479
460
  set minX(n: number);
461
+ get left(): number;
480
462
  get midX(): number;
481
463
  get maxX(): number;
464
+ get right(): number;
482
465
  get minY(): number;
483
466
  set minY(n: number);
467
+ get top(): number;
484
468
  get midY(): number;
485
469
  get maxY(): number;
470
+ get bottom(): number;
486
471
  get width(): number;
487
472
  set width(n: number);
488
473
  get height(): number;
@@ -578,8 +563,8 @@ export declare class Circle2d extends Geometry2d {
578
563
  });
579
564
  getBounds(): Box;
580
565
  getVertices(): Vec[];
581
- nearestPoint(point: Vec): Vec;
582
- hitTestLineSegment(A: Vec, B: Vec, distance?: number): boolean;
566
+ nearestPoint(point: VecLike): Vec;
567
+ hitTestLineSegment(A: VecLike, B: VecLike, distance?: number): boolean;
583
568
  getSvgPathData(): string;
584
569
  }
585
570
 
@@ -656,8 +641,6 @@ export declare class ClickManager {
656
641
  */
657
642
  export declare function clockwiseAngleDist(a0: number, a1: number): number;
658
643
 
659
- export { computed }
660
-
661
644
  /**
662
645
  * @public
663
646
  * @react
@@ -745,10 +728,10 @@ export declare class CubicBezier2d extends Polyline2d {
745
728
  });
746
729
  getVertices(): Vec[];
747
730
  midPoint(): Vec;
748
- nearestPoint(A: Vec): Vec;
731
+ nearestPoint(A: VecLike): Vec;
749
732
  getSvgPathData(first?: boolean): string;
750
733
  static GetAtT(segment: CubicBezier2d, t: number): Vec;
751
- getLength(precision?: number): number;
734
+ getLength(filters?: Geometry2dFilters, precision?: number): number;
752
735
  }
753
736
 
754
737
  /** @public */
@@ -761,8 +744,8 @@ export declare class CubicSpline2d extends Geometry2d {
761
744
  get segments(): CubicBezier2d[];
762
745
  getLength(): number;
763
746
  getVertices(): Vec[];
764
- nearestPoint(A: Vec): Vec;
765
- hitTestLineSegment(A: Vec, B: Vec): boolean;
747
+ nearestPoint(A: VecLike): Vec;
748
+ hitTestLineSegment(A: VecLike, B: VecLike): boolean;
766
749
  getSvgPathData(): string;
767
750
  }
768
751
 
@@ -956,8 +939,8 @@ export declare class Edge2d extends Geometry2d {
956
939
  getLength(): number;
957
940
  midPoint(): Vec;
958
941
  getVertices(): Vec[];
959
- nearestPoint(point: Vec): Vec;
960
- hitTestLineSegment(A: Vec, B: Vec, distance?: number): boolean;
942
+ nearestPoint(point: VecLike): Vec;
943
+ hitTestLineSegment(A: VecLike, B: VecLike, distance?: number): boolean;
961
944
  getSvgPathData(first?: boolean): string;
962
945
  }
963
946
 
@@ -1577,6 +1560,16 @@ export declare class Editor extends EventEmitter<TLEventMap> {
1577
1560
  * @public
1578
1561
  */
1579
1562
  selectAll(): this;
1563
+ /**
1564
+ * Select the next shape in the reading order or in cardinal order.
1565
+ *
1566
+ * @example
1567
+ * ```ts
1568
+ * editor.selectAdjacentShape('next')
1569
+ * ```
1570
+ *
1571
+ * @public
1572
+ */
1580
1573
  selectAdjacentShape(direction: TLAdjacentDirection): void;
1581
1574
  /**
1582
1575
  * Generates a reading order for shapes based on rows grouping.
@@ -1585,12 +1578,16 @@ export declare class Editor extends EventEmitter<TLEventMap> {
1585
1578
  * @public
1586
1579
  */
1587
1580
  getCurrentPageShapesInReadingOrder(): TLShape[];
1581
+ private _getShapesInReadingOrder;
1588
1582
  /**
1589
1583
  * Find the nearest adjacent shape in a specific direction.
1590
1584
  *
1591
1585
  * @public
1592
1586
  */
1593
1587
  getNearestAdjacentShape(currentShapeId: TLShapeId, direction: 'down' | 'left' | 'right' | 'up'): TLShapeId;
1588
+ selectParentShape(): void;
1589
+ selectFirstChildShape(): void;
1590
+ private _selectShapesAndZoom;
1594
1591
  /**
1595
1592
  * Clear the selection.
1596
1593
  *
@@ -3994,8 +3991,6 @@ export declare class Editor extends EventEmitter<TLEventMap> {
3994
3991
  /** @public */
3995
3992
  export declare const EditorContext: React_2.Context<Editor | null>;
3996
3993
 
3997
- export { EffectScheduler }
3998
-
3999
3994
  /** @public */
4000
3995
  export declare class Ellipse2d extends Geometry2d {
4001
3996
  config: Omit<Geometry2dOptions, 'isClosed'> & {
@@ -4011,15 +4006,13 @@ export declare class Ellipse2d extends Geometry2d {
4011
4006
  _edges?: Edge2d[];
4012
4007
  get edges(): Edge2d[];
4013
4008
  getVertices(): any[];
4014
- nearestPoint(A: Vec): Vec;
4015
- hitTestLineSegment(A: Vec, B: Vec): boolean;
4009
+ nearestPoint(A: VecLike): Vec;
4010
+ hitTestLineSegment(A: VecLike, B: VecLike): boolean;
4016
4011
  getBounds(): Box;
4017
4012
  getLength(): number;
4018
4013
  getSvgPathData(first?: boolean): string;
4019
4014
  }
4020
4015
 
4021
- export { EMPTY_ARRAY }
4022
-
4023
4016
  /** @public */
4024
4017
  export declare class ErrorBoundary extends React_3.Component<React_3.PropsWithRef<React_3.PropsWithChildren<TLErrorBoundaryProps>>, {
4025
4018
  error: Error | null;
@@ -4087,18 +4080,27 @@ export declare abstract class Geometry2d {
4087
4080
  constructor(opts: Geometry2dOptions);
4088
4081
  isExcludedByFilter(filters?: Geometry2dFilters): boolean;
4089
4082
  abstract getVertices(filters: Geometry2dFilters): Vec[];
4090
- abstract nearestPoint(point: Vec, _filters?: Geometry2dFilters): Vec;
4091
- hitTestPoint(point: Vec, margin?: number, hitInside?: boolean, _filters?: Geometry2dFilters): boolean;
4092
- distanceToPoint(point: Vec, hitInside?: boolean, filters?: Geometry2dFilters): number;
4093
- distanceToLineSegment(A: Vec, B: Vec, filters?: Geometry2dFilters): number;
4094
- hitTestLineSegment(A: Vec, B: Vec, distance?: number, filters?: Geometry2dFilters): boolean;
4083
+ abstract nearestPoint(point: VecLike, _filters?: Geometry2dFilters): Vec;
4084
+ hitTestPoint(point: VecLike, margin?: number, hitInside?: boolean, _filters?: Geometry2dFilters): boolean;
4085
+ distanceToPoint(point: VecLike, hitInside?: boolean, filters?: Geometry2dFilters): number;
4086
+ distanceToLineSegment(A: VecLike, B: VecLike, filters?: Geometry2dFilters): number;
4087
+ hitTestLineSegment(A: VecLike, B: VecLike, distance?: number, filters?: Geometry2dFilters): boolean;
4095
4088
  intersectLineSegment(A: VecLike, B: VecLike, _filters?: Geometry2dFilters): VecLike[];
4096
4089
  intersectCircle(center: VecLike, radius: number, _filters?: Geometry2dFilters): VecLike[];
4097
4090
  intersectPolygon(polygon: VecLike[], _filters?: Geometry2dFilters): VecLike[];
4098
4091
  intersectPolyline(polyline: VecLike[], _filters?: Geometry2dFilters): VecLike[];
4092
+ /**
4093
+ * Find a point along the edge of the geometry that is a fraction `t` along the entire way round.
4094
+ */
4095
+ interpolateAlongEdge(t: number, _filters?: Geometry2dFilters): Vec;
4096
+ /**
4097
+ * Take `point`, find the closest point to it on the edge of the geometry, and return how far
4098
+ * along the edge it is as a fraction of the total length.
4099
+ */
4100
+ uninterpolateAlongEdge(point: VecLike, _filters?: Geometry2dFilters): number;
4099
4101
  /** @deprecated Iterate the vertices instead. */
4100
- nearestPointOnLineSegment(A: Vec, B: Vec): Vec;
4101
- isPointInBounds(point: Vec, margin?: number): boolean;
4102
+ nearestPointOnLineSegment(A: VecLike, B: VecLike): Vec;
4103
+ isPointInBounds(point: VecLike, margin?: number): boolean;
4102
4104
  transform(transform: MatModel, opts?: TransformedGeometry2dOptions): Geometry2d;
4103
4105
  private _vertices;
4104
4106
  get vertices(): Vec[];
@@ -4112,7 +4114,7 @@ export declare abstract class Geometry2d {
4112
4114
  toSimpleSvgPath(): string;
4113
4115
  private _length?;
4114
4116
  get length(): number;
4115
- getLength(): number;
4117
+ getLength(_filters?: Geometry2dFilters): number;
4116
4118
  abstract getSvgPathData(first: boolean): string;
4117
4119
  }
4118
4120
 
@@ -4180,15 +4182,15 @@ export declare function getFreshUserPreferences(): TLUserPreferences;
4180
4182
  export declare function getIncrementedName(name: string, others: string[]): string;
4181
4183
 
4182
4184
  /** @public */
4183
- export declare function getPerfectDashProps(totalLength: number, strokeWidth: number, opts?: Partial<{
4184
- closed: boolean;
4185
- end: 'none' | 'outset' | 'skip';
4186
- forceSolid: boolean;
4187
- lengthRatio: number;
4188
- snap: number;
4189
- start: 'none' | 'outset' | 'skip';
4190
- style: TLDefaultDashStyle;
4191
- }>): {
4185
+ export declare function getPerfectDashProps(totalLength: number, strokeWidth: number, opts?: {
4186
+ closed?: boolean;
4187
+ end?: 'none' | 'outset' | 'skip';
4188
+ forceSolid?: boolean;
4189
+ lengthRatio?: number;
4190
+ snap?: number;
4191
+ start?: 'none' | 'outset' | 'skip';
4192
+ style?: TLDefaultDashStyle;
4193
+ }): {
4192
4194
  strokeDasharray: string;
4193
4195
  strokeDashoffset: string;
4194
4196
  };
@@ -4275,18 +4277,20 @@ export declare class Group2d extends Geometry2d {
4275
4277
  children: Geometry2d[];
4276
4278
  });
4277
4279
  getVertices(filters: Geometry2dFilters): Vec[];
4278
- nearestPoint(point: Vec, filters?: Geometry2dFilters): Vec;
4279
- distanceToPoint(point: Vec, hitInside?: boolean, filters?: Geometry2dFilters): number;
4280
- hitTestPoint(point: Vec, margin: number, hitInside: boolean, filters?: Geometry2dFilters): boolean;
4281
- hitTestLineSegment(A: Vec, B: Vec, zoom: number, filters?: Geometry2dFilters): boolean;
4280
+ nearestPoint(point: VecLike, filters?: Geometry2dFilters): Vec;
4281
+ distanceToPoint(point: VecLike, hitInside?: boolean, filters?: Geometry2dFilters): number;
4282
+ hitTestPoint(point: VecLike, margin: number, hitInside: boolean, filters?: Geometry2dFilters): boolean;
4283
+ hitTestLineSegment(A: VecLike, B: VecLike, zoom: number, filters?: Geometry2dFilters): boolean;
4282
4284
  intersectLineSegment(A: VecLike, B: VecLike, filters?: Geometry2dFilters): VecLike[];
4283
4285
  intersectCircle(center: VecLike, radius: number, filters?: Geometry2dFilters): VecLike[];
4284
4286
  intersectPolygon(polygon: VecLike[], filters?: Geometry2dFilters): VecLike[];
4285
4287
  intersectPolyline(polyline: VecLike[], filters?: Geometry2dFilters): VecLike[];
4288
+ interpolateAlongEdge(t: number, filters?: Geometry2dFilters): Vec;
4289
+ uninterpolateAlongEdge(point: VecLike, filters?: Geometry2dFilters): number;
4286
4290
  transform(transform: Mat): Geometry2d;
4287
4291
  getArea(): number;
4288
4292
  toSimpleSvgPath(): string;
4289
- getLength(): number;
4293
+ getLength(filters?: Geometry2dFilters): number;
4290
4294
  getSvgPathData(): string;
4291
4295
  }
4292
4296
 
@@ -4295,7 +4299,6 @@ export declare class GroupShapeUtil extends ShapeUtil<TLGroupShape> {
4295
4299
  static type: "group";
4296
4300
  static props: RecordProps<TLGroupShape>;
4297
4301
  static migrations: TLPropsMigrations;
4298
- canTabTo(): boolean;
4299
4302
  hideSelectionBoundsFg(): boolean;
4300
4303
  canBind(): boolean;
4301
4304
  getDefaultProps(): TLGroupShape['props'];
@@ -4591,8 +4594,8 @@ export declare class Mat {
4591
4594
  static Identity(): Mat;
4592
4595
  static Translate(x: number, y: number): Mat;
4593
4596
  static Rotate(r: number, cx?: number, cy?: number): Mat;
4594
- static Scale(x: number, y: number): MatModel;
4595
- static Scale(x: number, y: number, cx: number, cy: number): MatModel;
4597
+ static Scale(x: number, y: number): Mat;
4598
+ static Scale(x: number, y: number, cx: number, cy: number): Mat;
4596
4599
  static Multiply(m1: MatModel, m2: MatModel): MatModel;
4597
4600
  static Inverse(m: MatModel): MatModel;
4598
4601
  static Absolute(m: MatLike): MatModel;
@@ -4687,7 +4690,7 @@ export declare class Point2d extends Geometry2d {
4687
4690
  });
4688
4691
  getVertices(): Vec[];
4689
4692
  nearestPoint(): Vec;
4690
- hitTestLineSegment(A: Vec, B: Vec, margin: number): boolean;
4693
+ hitTestLineSegment(A: VecLike, B: VecLike, margin: number): boolean;
4691
4694
  getSvgPathData(): string;
4692
4695
  }
4693
4696
 
@@ -4732,8 +4735,8 @@ export declare class Polyline2d extends Geometry2d {
4732
4735
  get segments(): Edge2d[];
4733
4736
  getLength(): number;
4734
4737
  getVertices(): Vec[];
4735
- nearestPoint(A: Vec): Vec;
4736
- hitTestLineSegment(A: Vec, B: Vec, distance?: number): boolean;
4738
+ nearestPoint(A: VecLike): Vec;
4739
+ hitTestLineSegment(A: VecLike, B: VecLike, distance?: number): boolean;
4737
4740
  getSvgPathData(): string;
4738
4741
  }
4739
4742
 
@@ -4774,8 +4777,6 @@ export declare function radiansToDegrees(r: number): number;
4774
4777
  */
4775
4778
  export declare function rangeIntersection(a0: number, a1: number, b0: number, b1: number): [number, number] | null;
4776
4779
 
4777
- export { react }
4778
-
4779
4780
  /**
4780
4781
  * A map of {@link @tldraw/tlschema#StyleProp | StyleProps} to their {@link SharedStyle} values. See
4781
4782
  * {@link Editor.getSharedStyles}.
@@ -5099,7 +5100,7 @@ export declare abstract class ShapeUtil<Shape extends TLUnknownShape = TLUnknown
5099
5100
  *
5100
5101
  * @public
5101
5102
  */
5102
- canEditInReadOnly(_shape: Shape): boolean;
5103
+ canEditInReadonly(_shape: Shape): boolean;
5103
5104
  /**
5104
5105
  * Whether the shape can be cropped.
5105
5106
  *
@@ -5419,10 +5420,20 @@ export declare abstract class ShapeUtil<Shape extends TLUnknownShape = TLUnknown
5419
5420
  * A callback called when a shape's edge is double clicked.
5420
5421
  *
5421
5422
  * @param shape - The shape.
5423
+ * @param info - Info about the edge.
5422
5424
  * @returns A change to apply to the shape, or void.
5423
5425
  * @public
5424
5426
  */
5425
- onDoubleClickEdge?(shape: Shape): TLShapePartial<Shape> | void;
5427
+ onDoubleClickEdge?(shape: Shape, info: TLClickEventInfo): TLShapePartial<Shape> | void;
5428
+ /**
5429
+ * A callback called when a shape's corner is double clicked.
5430
+ *
5431
+ * @param shape - The shape.
5432
+ * @param info - Info about the corner.
5433
+ * @returns A change to apply to the shape, or void.
5434
+ * @public
5435
+ */
5436
+ onDoubleClickCorner?(shape: Shape, info: TLClickEventInfo): TLShapePartial<Shape> | void;
5426
5437
  /**
5427
5438
  * A callback called when a shape is double clicked.
5428
5439
  *
@@ -5440,7 +5451,14 @@ export declare abstract class ShapeUtil<Shape extends TLUnknownShape = TLUnknown
5440
5451
  */
5441
5452
  onClick?(shape: Shape): TLShapePartial<Shape> | void;
5442
5453
  /**
5443
- * A callback called when a shape finishes being editing.
5454
+ * A callback called when a shape starts being edited.
5455
+ *
5456
+ * @param shape - The shape.
5457
+ * @public
5458
+ */
5459
+ onEditStart?(shape: Shape): void;
5460
+ /**
5461
+ * A callback called when a shape finishes being edited.
5444
5462
  *
5445
5463
  * @param shape - The shape.
5446
5464
  * @public
@@ -5479,8 +5497,6 @@ export declare function shortAngleDist(a0: number, a1: number): number;
5479
5497
  /** @public */
5480
5498
  export declare const SIDES: readonly ["top", "right", "bottom", "left"];
5481
5499
 
5482
- export { Signal }
5483
-
5484
5500
  /** @public */
5485
5501
  export declare const SIN: (x: number) => number;
5486
5502
 
@@ -5532,8 +5548,8 @@ export declare class Stadium2d extends Geometry2d {
5532
5548
  height: number;
5533
5549
  width: number;
5534
5550
  });
5535
- nearestPoint(A: Vec): Vec;
5536
- hitTestLineSegment(A: Vec, B: Vec): boolean;
5551
+ nearestPoint(A: VecLike): Vec;
5552
+ hitTestLineSegment(A: VecLike, B: VecLike): boolean;
5537
5553
  getVertices(): Vec[];
5538
5554
  getBounds(): Box;
5539
5555
  getLength(): number;
@@ -5737,6 +5753,7 @@ export declare class TextManager {
5737
5753
  fontWeight: string;
5738
5754
  lineHeight: number;
5739
5755
  minWidth?: null | number;
5756
+ otherStyles?: Record<string, string>;
5740
5757
  padding: string;
5741
5758
  }): BoxModel & {
5742
5759
  scrollWidth: number;
@@ -6775,6 +6792,7 @@ export declare interface TLMeasureTextSpanOpts {
6775
6792
  fontStyle: string;
6776
6793
  lineHeight: number;
6777
6794
  textAlign: TLDefaultHorizontalAlignStyle;
6795
+ otherStyles?: Record<string, string>;
6778
6796
  }
6779
6797
 
6780
6798
  /** @public */
@@ -7412,12 +7430,6 @@ export declare function toFixed(v: number): number;
7412
7430
  */
7413
7431
  export declare function toPrecision(n: number, precision?: number): number;
7414
7432
 
7415
- export { track }
7416
-
7417
- export { transact }
7418
-
7419
- export { transaction }
7420
-
7421
7433
  /** @public */
7422
7434
  export declare class TransformedGeometry2d extends Geometry2d {
7423
7435
  private readonly geometry;
@@ -7426,13 +7438,13 @@ export declare class TransformedGeometry2d extends Geometry2d {
7426
7438
  private readonly decomposed;
7427
7439
  constructor(geometry: Geometry2d, matrix: MatModel, opts?: TransformedGeometry2dOptions);
7428
7440
  getVertices(filters: Geometry2dFilters): Vec[];
7429
- nearestPoint(point: Vec, filters?: Geometry2dFilters): Vec;
7430
- hitTestPoint(point: Vec, margin?: number, hitInside?: boolean, filters?: Geometry2dFilters): boolean;
7431
- distanceToPoint(point: Vec, hitInside?: boolean, filters?: Geometry2dFilters): number;
7432
- distanceToLineSegment(A: Vec, B: Vec, filters?: Geometry2dFilters): number;
7433
- hitTestLineSegment(A: Vec, B: Vec, distance?: number, filters?: Geometry2dFilters): boolean;
7434
- intersectLineSegment(A: VecLike, B: VecLike, filters?: Geometry2dFilters): VecLike[];
7435
- intersectCircle(center: VecLike, radius: number, filters?: Geometry2dFilters): VecLike[];
7441
+ nearestPoint(point: VecLike, filters?: Geometry2dFilters): Vec;
7442
+ hitTestPoint(point: VecLike, margin?: number, hitInside?: boolean, filters?: Geometry2dFilters): boolean;
7443
+ distanceToPoint(point: VecLike, hitInside?: boolean, filters?: Geometry2dFilters): number;
7444
+ distanceToLineSegment(A: VecLike, B: VecLike, filters?: Geometry2dFilters): number;
7445
+ hitTestLineSegment(A: VecLike, B: VecLike, distance?: number, filters?: Geometry2dFilters): boolean;
7446
+ intersectLineSegment(A: VecLike, B: VecLike, filters?: Geometry2dFilters): Vec[];
7447
+ intersectCircle(center: VecLike, radius: number, filters?: Geometry2dFilters): Vec[];
7436
7448
  intersectPolygon(polygon: VecLike[], filters?: Geometry2dFilters): VecLike[];
7437
7449
  intersectPolyline(polyline: VecLike[], filters?: Geometry2dFilters): VecLike[];
7438
7450
  transform(transform: MatModel, opts?: TransformedGeometry2dOptions): Geometry2d;
@@ -7459,10 +7471,6 @@ export declare function uniq<T>(array: {
7459
7471
  readonly length: number;
7460
7472
  } | null | undefined): T[];
7461
7473
 
7462
- export { useAtom }
7463
-
7464
- export { useComputed }
7465
-
7466
7474
  /** @public */
7467
7475
  export declare function useContainer(): HTMLElement;
7468
7476
 
@@ -7532,12 +7540,9 @@ export declare function usePeerIds(): string[];
7532
7540
  */
7533
7541
  export declare function usePresence(userId: string): null | TLInstancePresence;
7534
7542
 
7535
- export { useQuickReactor }
7536
-
7537
7543
  /* Excluded from this release type: USER_COLORS */
7538
7544
 
7539
7545
  /* Excluded from this release type: useReactiveEvent */
7540
- export { useReactor }
7541
7546
 
7542
7547
  /* Excluded from this release type: useRefState */
7543
7548
 
@@ -7600,8 +7605,6 @@ export declare function useSelectionEvents(handle: TLSelectionHandle): {
7600
7605
  */
7601
7606
  export declare function useSharedSafeId(id: string): SafeId;
7602
7607
 
7603
- export { useStateTracking }
7604
-
7605
7608
  /**
7606
7609
  * Returns the current SVG export context. Returns null if the component isn't being rendered for an
7607
7610
  * SVG export.
@@ -7635,8 +7638,6 @@ export declare function useTransform(ref: React.RefObject<HTMLElement | SVGEleme
7635
7638
  */
7636
7639
  export declare function useUniqueSafeId(suffix?: string): SafeId;
7637
7640
 
7638
- export { useValue }
7639
-
7640
7641
  /** @public */
7641
7642
  export declare function useViewportHeight(): number;
7642
7643
 
@@ -7708,6 +7709,7 @@ export declare class Vec {
7708
7709
  static Per(A: VecLike): Vec;
7709
7710
  static Abs(A: VecLike): Vec;
7710
7711
  static Dist(A: VecLike, B: VecLike): number;
7712
+ static ManhattanDist(A: VecLike, B: VecLike): number;
7711
7713
  static DistMin(A: VecLike, B: VecLike, n: number): boolean;
7712
7714
  static Dist2(A: VecLike, B: VecLike): number;
7713
7715
  /**
@@ -7755,7 +7757,15 @@ export declare class Vec {
7755
7757
  static Cast(A: VecLike): Vec;
7756
7758
  static Slope(A: VecLike, B: VecLike): number;
7757
7759
  static IsNaN(A: VecLike): boolean;
7760
+ /**
7761
+ * Get the angle from position A to position B.
7762
+ */
7758
7763
  static Angle(A: VecLike, B: VecLike): number;
7764
+ /**
7765
+ * Get the angle between vector A and vector B. This will return the smallest angle between the
7766
+ * two vectors, between -π and π. The sign indicates direction of angle.
7767
+ */
7768
+ static AngleBetween(A: VecLike, B: VecLike): number;
7759
7769
  /**
7760
7770
  * Linearly interpolate between two points.
7761
7771
  * @param A - The first point.
@@ -7799,9 +7809,9 @@ export declare class Vec {
7799
7809
  /** @public */
7800
7810
  export declare type VecLike = Vec | VecModel;
7801
7811
 
7802
- export { whyAmIRunning }
7803
-
7804
7812
 
7813
+ export * from "@tldraw/state";
7814
+ export * from "@tldraw/state-react";
7805
7815
  export * from "@tldraw/store";
7806
7816
  export * from "@tldraw/tlschema";
7807
7817
  export * from "@tldraw/utils";
package/dist-cjs/index.js CHANGED
@@ -50,13 +50,11 @@ __export(index_exports, {
50
50
  DefaultSpinner: () => import_DefaultSpinner.DefaultSpinner,
51
51
  DefaultSvgDefs: () => import_DefaultSvgDefs.DefaultSvgDefs,
52
52
  EASINGS: () => import_easings.EASINGS,
53
- EMPTY_ARRAY: () => import_state.EMPTY_ARRAY,
54
53
  EVENT_NAME_MAP: () => import_event_types.EVENT_NAME_MAP,
55
54
  Edge2d: () => import_Edge2d.Edge2d,
56
55
  EdgeScrollManager: () => import_EdgeScrollManager.EdgeScrollManager,
57
56
  Editor: () => import_Editor.Editor,
58
57
  EditorContext: () => import_useEditor.EditorContext,
59
- EffectScheduler: () => import_state.EffectScheduler,
60
58
  Ellipse2d: () => import_Ellipse2d.Ellipse2d,
61
59
  ErrorBoundary: () => import_ErrorBoundary.ErrorBoundary,
62
60
  ErrorScreen: () => import_TldrawEditor.ErrorScreen,
@@ -105,7 +103,6 @@ __export(index_exports, {
105
103
  applyRotationToSnapshotShapes: () => import_rotation.applyRotationToSnapshotShapes,
106
104
  approximately: () => import_utils2.approximately,
107
105
  areAnglesCompatible: () => import_utils2.areAnglesCompatible,
108
- atom: () => import_state.atom,
109
106
  average: () => import_utils2.average,
110
107
  canonicalizeRotation: () => import_utils2.canonicalizeRotation,
111
108
  centerOfCircleFromThreePoints: () => import_utils2.centerOfCircleFromThreePoints,
@@ -113,7 +110,6 @@ __export(index_exports, {
113
110
  clampRadians: () => import_utils2.clampRadians,
114
111
  clampToBrowserMaxCanvasSize: () => import_browserCanvasMaxSize.clampToBrowserMaxCanvasSize,
115
112
  clockwiseAngleDist: () => import_utils2.clockwiseAngleDist,
116
- computed: () => import_state.computed,
117
113
  coreShapes: () => import_defaultShapes.coreShapes,
118
114
  counterClockwiseAngleDist: () => import_utils2.counterClockwiseAngleDist,
119
115
  createDeepLinkString: () => import_deepLinks.createDeepLinkString,
@@ -176,7 +172,6 @@ __export(index_exports, {
176
172
  preventDefault: () => import_dom.preventDefault,
177
173
  radiansToDegrees: () => import_utils2.radiansToDegrees,
178
174
  rangeIntersection: () => import_utils2.rangeIntersection,
179
- react: () => import_state.react,
180
175
  refreshPage: () => import_refreshPage.refreshPage,
181
176
  releasePointerCapture: () => import_dom.releasePointerCapture,
182
177
  resizeBox: () => import_resizeBox.resizeBox,
@@ -197,12 +192,7 @@ __export(index_exports, {
197
192
  toDomPrecision: () => import_utils2.toDomPrecision,
198
193
  toFixed: () => import_utils2.toFixed,
199
194
  toPrecision: () => import_utils2.toPrecision,
200
- track: () => import_state_react.track,
201
- transact: () => import_state.transact,
202
- transaction: () => import_state.transaction,
203
195
  uniq: () => import_uniq.uniq,
204
- useAtom: () => import_state_react.useAtom,
205
- useComputed: () => import_state_react.useComputed,
206
196
  useContainer: () => import_useContainer.useContainer,
207
197
  useContainerIfExists: () => import_useContainer.useContainerIfExists,
208
198
  useDelaySvgExport: () => import_SvgExportContext.useDelaySvgExport,
@@ -220,25 +210,20 @@ __export(index_exports, {
220
210
  usePassThroughWheelEvents: () => import_usePassThroughWheelEvents.usePassThroughWheelEvents,
221
211
  usePeerIds: () => import_usePeerIds.usePeerIds,
222
212
  usePresence: () => import_usePresence.usePresence,
223
- useQuickReactor: () => import_state_react.useQuickReactor,
224
213
  useReactiveEvent: () => import_useEvent.useReactiveEvent,
225
- useReactor: () => import_state_react.useReactor,
226
214
  useRefState: () => import_useRefState.useRefState,
227
215
  useSelectionEvents: () => import_useSelectionEvents.useSelectionEvents,
228
216
  useShallowArrayIdentity: () => import_useIdentity.useShallowArrayIdentity,
229
217
  useShallowObjectIdentity: () => import_useIdentity.useShallowObjectIdentity,
230
218
  useSharedSafeId: () => import_useSafeId.useSharedSafeId,
231
- useStateTracking: () => import_state_react.useStateTracking,
232
219
  useSvgExportContext: () => import_SvgExportContext.useSvgExportContext,
233
220
  useTLSchemaFromUtils: () => import_useTLStore.useTLSchemaFromUtils,
234
221
  useTLStore: () => import_useTLStore.useTLStore,
235
222
  useTldrawUser: () => import_createTLUser.useTldrawUser,
236
223
  useTransform: () => import_useTransform.useTransform,
237
224
  useUniqueSafeId: () => import_useSafeId.useUniqueSafeId,
238
- useValue: () => import_state_react.useValue,
239
225
  useViewportHeight: () => import_useViewportHeight.useViewportHeight,
240
- userTypeValidator: () => import_TLUserPreferences.userTypeValidator,
241
- whyAmIRunning: () => import_state.whyAmIRunning
226
+ userTypeValidator: () => import_TLUserPreferences.userTypeValidator
242
227
  });
243
228
  module.exports = __toCommonJS(index_exports);
244
229
  var import_utils = require("@tldraw/utils");
@@ -247,11 +232,8 @@ var import_flat_map = require("core-js/stable/array/flat-map.js");
247
232
  var import_flat = require("core-js/stable/array/flat.js");
248
233
  var import_at2 = require("core-js/stable/string/at.js");
249
234
  var import_replace_all = require("core-js/stable/string/replace-all.js");
250
- var import_state = require("@tldraw/state");
251
- var import_state_react = require("@tldraw/state-react");
252
- var import_resizeScaled = require("./lib/editor/shapes/shared/resizeScaled");
253
- var import_richText = require("./lib/utils/richText");
254
- var import_LocalIndexedDb = require("./lib/utils/sync/LocalIndexedDb");
235
+ __reExport(index_exports, require("@tldraw/state"), module.exports);
236
+ __reExport(index_exports, require("@tldraw/state-react"), module.exports);
255
237
  __reExport(index_exports, require("@tldraw/store"), module.exports);
256
238
  __reExport(index_exports, require("@tldraw/tlschema"), module.exports);
257
239
  __reExport(index_exports, require("@tldraw/utils"), module.exports);
@@ -302,6 +284,7 @@ var import_ShapeUtil = require("./lib/editor/shapes/ShapeUtil");
302
284
  var import_GroupShapeUtil = require("./lib/editor/shapes/group/GroupShapeUtil");
303
285
  var import_getPerfectDashProps = require("./lib/editor/shapes/shared/getPerfectDashProps");
304
286
  var import_resizeBox = require("./lib/editor/shapes/shared/resizeBox");
287
+ var import_resizeScaled = require("./lib/editor/shapes/shared/resizeScaled");
305
288
  var import_BaseBoxShapeTool = require("./lib/editor/tools/BaseBoxShapeTool/BaseBoxShapeTool");
306
289
  var import_Pointing = require("./lib/editor/tools/BaseBoxShapeTool/children/Pointing");
307
290
  var import_StateNode = require("./lib/editor/tools/StateNode");
@@ -366,8 +349,10 @@ var import_hardResetEditor = require("./lib/utils/hardResetEditor");
366
349
  var import_keyboard = require("./lib/utils/keyboard");
367
350
  var import_normalizeWheel = require("./lib/utils/normalizeWheel");
368
351
  var import_refreshPage = require("./lib/utils/refreshPage");
352
+ var import_richText = require("./lib/utils/richText");
369
353
  var import_rotation = require("./lib/utils/rotation");
370
354
  var import_runtime = require("./lib/utils/runtime");
355
+ var import_LocalIndexedDb = require("./lib/utils/sync/LocalIndexedDb");
371
356
  var import_hardReset = require("./lib/utils/sync/hardReset");
372
357
  var import_uniq = require("./lib/utils/uniq");
373
358
  var import_window_open = require("./lib/utils/window-open");
@@ -376,7 +361,7 @@ function debugEnableLicensing() {
376
361
  }
377
362
  (0, import_utils.registerTldrawLibraryVersion)(
378
363
  "@tldraw/editor",
379
- "3.13.0-canary.eb5f191f61ac",
364
+ "3.13.0-canary.ee08fd8a3063",
380
365
  "cjs"
381
366
  );
382
367
  //# sourceMappingURL=index.js.map