@tldraw/editor 3.13.0-canary.52e2314962c1 → 3.13.0-canary.62d76a25592d

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 (178) hide show
  1. package/dist-cjs/index.d.ts +114 -111
  2. package/dist-cjs/index.js +7 -22
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/TldrawEditor.js +2 -1
  5. package/dist-cjs/lib/TldrawEditor.js.map +2 -2
  6. package/dist-cjs/lib/components/Shape.js +12 -8
  7. package/dist-cjs/lib/components/Shape.js.map +2 -2
  8. package/dist-cjs/lib/components/default-components/DefaultCanvas.js +36 -7
  9. package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
  10. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js +14 -12
  11. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js.map +2 -2
  12. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js +17 -11
  13. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js.map +2 -2
  14. package/dist-cjs/lib/components/default-components/DefaultSpinner.js +1 -1
  15. package/dist-cjs/lib/components/default-components/DefaultSpinner.js.map +2 -2
  16. package/dist-cjs/lib/editor/Editor.js +65 -35
  17. package/dist-cjs/lib/editor/Editor.js.map +3 -3
  18. package/dist-cjs/lib/editor/managers/SnapManager/HandleSnaps.js.map +2 -2
  19. package/dist-cjs/lib/editor/managers/TextManager.js +10 -0
  20. package/dist-cjs/lib/editor/managers/TextManager.js.map +2 -2
  21. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  22. package/dist-cjs/lib/editor/shapes/shared/getPerfectDashProps.js.map +2 -2
  23. package/dist-cjs/lib/exports/getSvgJsx.js +12 -3
  24. package/dist-cjs/lib/exports/getSvgJsx.js.map +2 -2
  25. package/dist-cjs/lib/hooks/useDocumentEvents.js +3 -2
  26. package/dist-cjs/lib/hooks/useDocumentEvents.js.map +2 -2
  27. package/dist-cjs/lib/hooks/useEditorComponents.js +16 -16
  28. package/dist-cjs/lib/hooks/useEditorComponents.js.map +2 -2
  29. package/dist-cjs/lib/license/LicenseManager.js +8 -1
  30. package/dist-cjs/lib/license/LicenseManager.js.map +2 -2
  31. package/dist-cjs/lib/options.js.map +2 -2
  32. package/dist-cjs/lib/primitives/Box.js +16 -0
  33. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  34. package/dist-cjs/lib/primitives/Mat.js +1 -1
  35. package/dist-cjs/lib/primitives/Mat.js.map +2 -2
  36. package/dist-cjs/lib/primitives/Vec.js +20 -0
  37. package/dist-cjs/lib/primitives/Vec.js.map +2 -2
  38. package/dist-cjs/lib/primitives/geometry/Arc2d.js +2 -2
  39. package/dist-cjs/lib/primitives/geometry/Arc2d.js.map +2 -2
  40. package/dist-cjs/lib/primitives/geometry/Circle2d.js +1 -1
  41. package/dist-cjs/lib/primitives/geometry/Circle2d.js.map +2 -2
  42. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js +1 -1
  43. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js.map +2 -2
  44. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js.map +2 -2
  45. package/dist-cjs/lib/primitives/geometry/Edge2d.js +1 -1
  46. package/dist-cjs/lib/primitives/geometry/Edge2d.js.map +2 -2
  47. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js.map +2 -2
  48. package/dist-cjs/lib/primitives/geometry/Geometry2d.js +91 -20
  49. package/dist-cjs/lib/primitives/geometry/Geometry2d.js.map +2 -2
  50. package/dist-cjs/lib/primitives/geometry/Group2d.js +55 -2
  51. package/dist-cjs/lib/primitives/geometry/Group2d.js.map +2 -2
  52. package/dist-cjs/lib/primitives/geometry/Point2d.js.map +2 -2
  53. package/dist-cjs/lib/primitives/geometry/Polyline2d.js.map +2 -2
  54. package/dist-cjs/lib/primitives/geometry/Stadium2d.js.map +2 -2
  55. package/dist-cjs/lib/utils/areShapesContentEqual.js +25 -0
  56. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +7 -0
  57. package/dist-cjs/lib/utils/debug-flags.js +5 -2
  58. package/dist-cjs/lib/utils/debug-flags.js.map +2 -2
  59. package/dist-cjs/lib/utils/dom.js +3 -3
  60. package/dist-cjs/lib/utils/dom.js.map +2 -2
  61. package/dist-cjs/lib/utils/nearestMultiple.js +34 -0
  62. package/dist-cjs/lib/utils/nearestMultiple.js.map +7 -0
  63. package/dist-cjs/lib/utils/rotation.js +5 -5
  64. package/dist-cjs/lib/utils/rotation.js.map +2 -2
  65. package/dist-cjs/version.js +3 -3
  66. package/dist-cjs/version.js.map +1 -1
  67. package/dist-esm/index.d.mts +114 -111
  68. package/dist-esm/index.mjs +9 -41
  69. package/dist-esm/index.mjs.map +2 -2
  70. package/dist-esm/lib/TldrawEditor.mjs +2 -1
  71. package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
  72. package/dist-esm/lib/components/Shape.mjs +12 -8
  73. package/dist-esm/lib/components/Shape.mjs.map +2 -2
  74. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +36 -7
  75. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
  76. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs +14 -12
  77. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs.map +2 -2
  78. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs +17 -11
  79. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs.map +2 -2
  80. package/dist-esm/lib/components/default-components/DefaultSpinner.mjs +1 -1
  81. package/dist-esm/lib/components/default-components/DefaultSpinner.mjs.map +2 -2
  82. package/dist-esm/lib/editor/Editor.mjs +65 -35
  83. package/dist-esm/lib/editor/Editor.mjs.map +3 -3
  84. package/dist-esm/lib/editor/managers/SnapManager/HandleSnaps.mjs.map +2 -2
  85. package/dist-esm/lib/editor/managers/TextManager.mjs +10 -0
  86. package/dist-esm/lib/editor/managers/TextManager.mjs.map +2 -2
  87. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  88. package/dist-esm/lib/editor/shapes/shared/getPerfectDashProps.mjs.map +2 -2
  89. package/dist-esm/lib/exports/getSvgJsx.mjs +12 -3
  90. package/dist-esm/lib/exports/getSvgJsx.mjs.map +2 -2
  91. package/dist-esm/lib/hooks/useDocumentEvents.mjs +3 -2
  92. package/dist-esm/lib/hooks/useDocumentEvents.mjs.map +2 -2
  93. package/dist-esm/lib/hooks/useEditorComponents.mjs +16 -18
  94. package/dist-esm/lib/hooks/useEditorComponents.mjs.map +2 -2
  95. package/dist-esm/lib/license/LicenseManager.mjs +8 -1
  96. package/dist-esm/lib/license/LicenseManager.mjs.map +2 -2
  97. package/dist-esm/lib/options.mjs.map +2 -2
  98. package/dist-esm/lib/primitives/Box.mjs +16 -0
  99. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  100. package/dist-esm/lib/primitives/Mat.mjs +1 -1
  101. package/dist-esm/lib/primitives/Mat.mjs.map +2 -2
  102. package/dist-esm/lib/primitives/Vec.mjs +20 -0
  103. package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
  104. package/dist-esm/lib/primitives/geometry/Arc2d.mjs +2 -2
  105. package/dist-esm/lib/primitives/geometry/Arc2d.mjs.map +2 -2
  106. package/dist-esm/lib/primitives/geometry/Circle2d.mjs +1 -1
  107. package/dist-esm/lib/primitives/geometry/Circle2d.mjs.map +2 -2
  108. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs +1 -1
  109. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs.map +2 -2
  110. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs.map +2 -2
  111. package/dist-esm/lib/primitives/geometry/Edge2d.mjs +1 -1
  112. package/dist-esm/lib/primitives/geometry/Edge2d.mjs.map +2 -2
  113. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs.map +2 -2
  114. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs +92 -21
  115. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs.map +2 -2
  116. package/dist-esm/lib/primitives/geometry/Group2d.mjs +55 -2
  117. package/dist-esm/lib/primitives/geometry/Group2d.mjs.map +2 -2
  118. package/dist-esm/lib/primitives/geometry/Point2d.mjs.map +2 -2
  119. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs.map +2 -2
  120. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs.map +2 -2
  121. package/dist-esm/lib/utils/areShapesContentEqual.mjs +5 -0
  122. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +7 -0
  123. package/dist-esm/lib/utils/debug-flags.mjs +5 -2
  124. package/dist-esm/lib/utils/debug-flags.mjs.map +2 -2
  125. package/dist-esm/lib/utils/dom.mjs +3 -3
  126. package/dist-esm/lib/utils/dom.mjs.map +2 -2
  127. package/dist-esm/lib/utils/nearestMultiple.mjs +14 -0
  128. package/dist-esm/lib/utils/nearestMultiple.mjs.map +7 -0
  129. package/dist-esm/lib/utils/rotation.mjs +5 -5
  130. package/dist-esm/lib/utils/rotation.mjs.map +2 -2
  131. package/dist-esm/version.mjs +3 -3
  132. package/dist-esm/version.mjs.map +1 -1
  133. package/editor.css +42 -4
  134. package/package.json +7 -7
  135. package/src/index.ts +16 -31
  136. package/src/lib/TldrawEditor.tsx +6 -1
  137. package/src/lib/components/Shape.tsx +14 -10
  138. package/src/lib/components/default-components/DefaultCanvas.tsx +41 -7
  139. package/src/lib/components/default-components/DefaultErrorFallback.tsx +25 -14
  140. package/src/lib/components/default-components/DefaultShapeIndicator.tsx +17 -8
  141. package/src/lib/components/default-components/DefaultSpinner.tsx +1 -1
  142. package/src/lib/editor/Editor.test.ts +1 -1
  143. package/src/lib/editor/Editor.ts +62 -34
  144. package/src/lib/editor/managers/SnapManager/HandleSnaps.ts +0 -1
  145. package/src/lib/editor/managers/TextManager.ts +12 -0
  146. package/src/lib/editor/shapes/ShapeUtil.ts +22 -2
  147. package/src/lib/editor/shapes/shared/getPerfectDashProps.ts +9 -9
  148. package/src/lib/exports/getSvgJsx.tsx +16 -7
  149. package/src/lib/hooks/useDocumentEvents.ts +7 -2
  150. package/src/lib/hooks/useEditorComponents.tsx +33 -32
  151. package/src/lib/license/LicenseManager.test.ts +40 -0
  152. package/src/lib/license/LicenseManager.ts +13 -1
  153. package/src/lib/options.ts +4 -0
  154. package/src/lib/primitives/Box.ts +20 -0
  155. package/src/lib/primitives/Mat.ts +5 -4
  156. package/src/lib/primitives/Vec.ts +23 -0
  157. package/src/lib/primitives/geometry/Arc2d.ts +5 -5
  158. package/src/lib/primitives/geometry/Circle2d.ts +4 -4
  159. package/src/lib/primitives/geometry/CubicBezier2d.ts +4 -4
  160. package/src/lib/primitives/geometry/CubicSpline2d.ts +3 -3
  161. package/src/lib/primitives/geometry/Edge2d.ts +3 -3
  162. package/src/lib/primitives/geometry/Ellipse2d.ts +3 -3
  163. package/src/lib/primitives/geometry/Geometry2d.test.ts +42 -0
  164. package/src/lib/primitives/geometry/Geometry2d.ts +123 -35
  165. package/src/lib/primitives/geometry/Group2d.ts +70 -7
  166. package/src/lib/primitives/geometry/Point2d.ts +2 -2
  167. package/src/lib/primitives/geometry/Polyline2d.ts +3 -3
  168. package/src/lib/primitives/geometry/Stadium2d.ts +3 -3
  169. package/src/lib/test/currentToolIdMask.test.ts +1 -1
  170. package/src/lib/test/user.test.ts +1 -1
  171. package/src/lib/utils/areShapesContentEqual.ts +4 -0
  172. package/src/lib/utils/debug-flags.ts +7 -2
  173. package/src/lib/utils/dom.ts +4 -4
  174. package/src/lib/utils/nearestMultiple.ts +13 -0
  175. package/src/lib/utils/rotation.ts +8 -6
  176. package/src/lib/utils/sync/LocalIndexedDb.test.ts +1 -1
  177. package/src/lib/utils/sync/TLLocalSyncClient.test.ts +1 -1
  178. 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
 
@@ -1844,6 +1827,7 @@ export declare class Editor extends EventEmitter<TLEventMap> {
1844
1827
  * @public
1845
1828
  */
1846
1829
  getCamera(): TLCamera;
1830
+ private _getFollowingPresence;
1847
1831
  private getViewportPageBoundsForFollowing;
1848
1832
  private getCameraForFollowing;
1849
1833
  /**
@@ -3993,8 +3977,6 @@ export declare class Editor extends EventEmitter<TLEventMap> {
3993
3977
  /** @public */
3994
3978
  export declare const EditorContext: React_2.Context<Editor | null>;
3995
3979
 
3996
- export { EffectScheduler }
3997
-
3998
3980
  /** @public */
3999
3981
  export declare class Ellipse2d extends Geometry2d {
4000
3982
  config: Omit<Geometry2dOptions, 'isClosed'> & {
@@ -4010,15 +3992,13 @@ export declare class Ellipse2d extends Geometry2d {
4010
3992
  _edges?: Edge2d[];
4011
3993
  get edges(): Edge2d[];
4012
3994
  getVertices(): any[];
4013
- nearestPoint(A: Vec): Vec;
4014
- hitTestLineSegment(A: Vec, B: Vec): boolean;
3995
+ nearestPoint(A: VecLike): Vec;
3996
+ hitTestLineSegment(A: VecLike, B: VecLike): boolean;
4015
3997
  getBounds(): Box;
4016
3998
  getLength(): number;
4017
3999
  getSvgPathData(first?: boolean): string;
4018
4000
  }
4019
4001
 
4020
- export { EMPTY_ARRAY }
4021
-
4022
4002
  /** @public */
4023
4003
  export declare class ErrorBoundary extends React_3.Component<React_3.PropsWithRef<React_3.PropsWithChildren<TLErrorBoundaryProps>>, {
4024
4004
  error: Error | null;
@@ -4086,18 +4066,27 @@ export declare abstract class Geometry2d {
4086
4066
  constructor(opts: Geometry2dOptions);
4087
4067
  isExcludedByFilter(filters?: Geometry2dFilters): boolean;
4088
4068
  abstract getVertices(filters: Geometry2dFilters): Vec[];
4089
- abstract nearestPoint(point: Vec, _filters?: Geometry2dFilters): Vec;
4090
- hitTestPoint(point: Vec, margin?: number, hitInside?: boolean, _filters?: Geometry2dFilters): boolean;
4091
- distanceToPoint(point: Vec, hitInside?: boolean, filters?: Geometry2dFilters): number;
4092
- distanceToLineSegment(A: Vec, B: Vec, filters?: Geometry2dFilters): number;
4093
- hitTestLineSegment(A: Vec, B: Vec, distance?: number, filters?: Geometry2dFilters): boolean;
4069
+ abstract nearestPoint(point: VecLike, _filters?: Geometry2dFilters): Vec;
4070
+ hitTestPoint(point: VecLike, margin?: number, hitInside?: boolean, _filters?: Geometry2dFilters): boolean;
4071
+ distanceToPoint(point: VecLike, hitInside?: boolean, filters?: Geometry2dFilters): number;
4072
+ distanceToLineSegment(A: VecLike, B: VecLike, filters?: Geometry2dFilters): number;
4073
+ hitTestLineSegment(A: VecLike, B: VecLike, distance?: number, filters?: Geometry2dFilters): boolean;
4094
4074
  intersectLineSegment(A: VecLike, B: VecLike, _filters?: Geometry2dFilters): VecLike[];
4095
4075
  intersectCircle(center: VecLike, radius: number, _filters?: Geometry2dFilters): VecLike[];
4096
4076
  intersectPolygon(polygon: VecLike[], _filters?: Geometry2dFilters): VecLike[];
4097
4077
  intersectPolyline(polyline: VecLike[], _filters?: Geometry2dFilters): VecLike[];
4078
+ /**
4079
+ * Find a point along the edge of the geometry that is a fraction `t` along the entire way round.
4080
+ */
4081
+ interpolateAlongEdge(t: number, _filters?: Geometry2dFilters): Vec;
4082
+ /**
4083
+ * Take `point`, find the closest point to it on the edge of the geometry, and return how far
4084
+ * along the edge it is as a fraction of the total length.
4085
+ */
4086
+ uninterpolateAlongEdge(point: VecLike, _filters?: Geometry2dFilters): number;
4098
4087
  /** @deprecated Iterate the vertices instead. */
4099
- nearestPointOnLineSegment(A: Vec, B: Vec): Vec;
4100
- isPointInBounds(point: Vec, margin?: number): boolean;
4088
+ nearestPointOnLineSegment(A: VecLike, B: VecLike): Vec;
4089
+ isPointInBounds(point: VecLike, margin?: number): boolean;
4101
4090
  transform(transform: MatModel, opts?: TransformedGeometry2dOptions): Geometry2d;
4102
4091
  private _vertices;
4103
4092
  get vertices(): Vec[];
@@ -4111,7 +4100,7 @@ export declare abstract class Geometry2d {
4111
4100
  toSimpleSvgPath(): string;
4112
4101
  private _length?;
4113
4102
  get length(): number;
4114
- getLength(): number;
4103
+ getLength(_filters?: Geometry2dFilters): number;
4115
4104
  abstract getSvgPathData(first: boolean): string;
4116
4105
  }
4117
4106
 
@@ -4179,15 +4168,15 @@ export declare function getFreshUserPreferences(): TLUserPreferences;
4179
4168
  export declare function getIncrementedName(name: string, others: string[]): string;
4180
4169
 
4181
4170
  /** @public */
4182
- export declare function getPerfectDashProps(totalLength: number, strokeWidth: number, opts?: Partial<{
4183
- closed: boolean;
4184
- end: 'none' | 'outset' | 'skip';
4185
- forceSolid: boolean;
4186
- lengthRatio: number;
4187
- snap: number;
4188
- start: 'none' | 'outset' | 'skip';
4189
- style: TLDefaultDashStyle;
4190
- }>): {
4171
+ export declare function getPerfectDashProps(totalLength: number, strokeWidth: number, opts?: {
4172
+ closed?: boolean;
4173
+ end?: 'none' | 'outset' | 'skip';
4174
+ forceSolid?: boolean;
4175
+ lengthRatio?: number;
4176
+ snap?: number;
4177
+ start?: 'none' | 'outset' | 'skip';
4178
+ style?: TLDefaultDashStyle;
4179
+ }): {
4191
4180
  strokeDasharray: string;
4192
4181
  strokeDashoffset: string;
4193
4182
  };
@@ -4274,18 +4263,20 @@ export declare class Group2d extends Geometry2d {
4274
4263
  children: Geometry2d[];
4275
4264
  });
4276
4265
  getVertices(filters: Geometry2dFilters): Vec[];
4277
- nearestPoint(point: Vec, filters?: Geometry2dFilters): Vec;
4278
- distanceToPoint(point: Vec, hitInside?: boolean, filters?: Geometry2dFilters): number;
4279
- hitTestPoint(point: Vec, margin: number, hitInside: boolean, filters?: Geometry2dFilters): boolean;
4280
- hitTestLineSegment(A: Vec, B: Vec, zoom: number, filters?: Geometry2dFilters): boolean;
4266
+ nearestPoint(point: VecLike, filters?: Geometry2dFilters): Vec;
4267
+ distanceToPoint(point: VecLike, hitInside?: boolean, filters?: Geometry2dFilters): number;
4268
+ hitTestPoint(point: VecLike, margin: number, hitInside: boolean, filters?: Geometry2dFilters): boolean;
4269
+ hitTestLineSegment(A: VecLike, B: VecLike, zoom: number, filters?: Geometry2dFilters): boolean;
4281
4270
  intersectLineSegment(A: VecLike, B: VecLike, filters?: Geometry2dFilters): VecLike[];
4282
4271
  intersectCircle(center: VecLike, radius: number, filters?: Geometry2dFilters): VecLike[];
4283
4272
  intersectPolygon(polygon: VecLike[], filters?: Geometry2dFilters): VecLike[];
4284
4273
  intersectPolyline(polyline: VecLike[], filters?: Geometry2dFilters): VecLike[];
4274
+ interpolateAlongEdge(t: number, filters?: Geometry2dFilters): Vec;
4275
+ uninterpolateAlongEdge(point: VecLike, filters?: Geometry2dFilters): number;
4285
4276
  transform(transform: Mat): Geometry2d;
4286
4277
  getArea(): number;
4287
4278
  toSimpleSvgPath(): string;
4288
- getLength(): number;
4279
+ getLength(filters?: Geometry2dFilters): number;
4289
4280
  getSvgPathData(): string;
4290
4281
  }
4291
4282
 
@@ -4590,8 +4581,8 @@ export declare class Mat {
4590
4581
  static Identity(): Mat;
4591
4582
  static Translate(x: number, y: number): Mat;
4592
4583
  static Rotate(r: number, cx?: number, cy?: number): Mat;
4593
- static Scale(x: number, y: number): MatModel;
4594
- static Scale(x: number, y: number, cx: number, cy: number): MatModel;
4584
+ static Scale(x: number, y: number): Mat;
4585
+ static Scale(x: number, y: number, cx: number, cy: number): Mat;
4595
4586
  static Multiply(m1: MatModel, m2: MatModel): MatModel;
4596
4587
  static Inverse(m: MatModel): MatModel;
4597
4588
  static Absolute(m: MatLike): MatModel;
@@ -4686,7 +4677,7 @@ export declare class Point2d extends Geometry2d {
4686
4677
  });
4687
4678
  getVertices(): Vec[];
4688
4679
  nearestPoint(): Vec;
4689
- hitTestLineSegment(A: Vec, B: Vec, margin: number): boolean;
4680
+ hitTestLineSegment(A: VecLike, B: VecLike, margin: number): boolean;
4690
4681
  getSvgPathData(): string;
4691
4682
  }
4692
4683
 
@@ -4731,8 +4722,8 @@ export declare class Polyline2d extends Geometry2d {
4731
4722
  get segments(): Edge2d[];
4732
4723
  getLength(): number;
4733
4724
  getVertices(): Vec[];
4734
- nearestPoint(A: Vec): Vec;
4735
- hitTestLineSegment(A: Vec, B: Vec, distance?: number): boolean;
4725
+ nearestPoint(A: VecLike): Vec;
4726
+ hitTestLineSegment(A: VecLike, B: VecLike, distance?: number): boolean;
4736
4727
  getSvgPathData(): string;
4737
4728
  }
4738
4729
 
@@ -4773,8 +4764,6 @@ export declare function radiansToDegrees(r: number): number;
4773
4764
  */
4774
4765
  export declare function rangeIntersection(a0: number, a1: number, b0: number, b1: number): [number, number] | null;
4775
4766
 
4776
- export { react }
4777
-
4778
4767
  /**
4779
4768
  * A map of {@link @tldraw/tlschema#StyleProp | StyleProps} to their {@link SharedStyle} values. See
4780
4769
  * {@link Editor.getSharedStyles}.
@@ -5418,10 +5407,20 @@ export declare abstract class ShapeUtil<Shape extends TLUnknownShape = TLUnknown
5418
5407
  * A callback called when a shape's edge is double clicked.
5419
5408
  *
5420
5409
  * @param shape - The shape.
5410
+ * @param info - Info about the edge.
5411
+ * @returns A change to apply to the shape, or void.
5412
+ * @public
5413
+ */
5414
+ onDoubleClickEdge?(shape: Shape, info: TLClickEventInfo): TLShapePartial<Shape> | void;
5415
+ /**
5416
+ * A callback called when a shape's corner is double clicked.
5417
+ *
5418
+ * @param shape - The shape.
5419
+ * @param info - Info about the corner.
5421
5420
  * @returns A change to apply to the shape, or void.
5422
5421
  * @public
5423
5422
  */
5424
- onDoubleClickEdge?(shape: Shape): TLShapePartial<Shape> | void;
5423
+ onDoubleClickCorner?(shape: Shape, info: TLClickEventInfo): TLShapePartial<Shape> | void;
5425
5424
  /**
5426
5425
  * A callback called when a shape is double clicked.
5427
5426
  *
@@ -5439,7 +5438,14 @@ export declare abstract class ShapeUtil<Shape extends TLUnknownShape = TLUnknown
5439
5438
  */
5440
5439
  onClick?(shape: Shape): TLShapePartial<Shape> | void;
5441
5440
  /**
5442
- * A callback called when a shape finishes being editing.
5441
+ * A callback called when a shape starts being edited.
5442
+ *
5443
+ * @param shape - The shape.
5444
+ * @public
5445
+ */
5446
+ onEditStart?(shape: Shape): void;
5447
+ /**
5448
+ * A callback called when a shape finishes being edited.
5443
5449
  *
5444
5450
  * @param shape - The shape.
5445
5451
  * @public
@@ -5478,8 +5484,6 @@ export declare function shortAngleDist(a0: number, a1: number): number;
5478
5484
  /** @public */
5479
5485
  export declare const SIDES: readonly ["top", "right", "bottom", "left"];
5480
5486
 
5481
- export { Signal }
5482
-
5483
5487
  /** @public */
5484
5488
  export declare const SIN: (x: number) => number;
5485
5489
 
@@ -5531,8 +5535,8 @@ export declare class Stadium2d extends Geometry2d {
5531
5535
  height: number;
5532
5536
  width: number;
5533
5537
  });
5534
- nearestPoint(A: Vec): Vec;
5535
- hitTestLineSegment(A: Vec, B: Vec): boolean;
5538
+ nearestPoint(A: VecLike): Vec;
5539
+ hitTestLineSegment(A: VecLike, B: VecLike): boolean;
5536
5540
  getVertices(): Vec[];
5537
5541
  getBounds(): Box;
5538
5542
  getLength(): number;
@@ -5736,6 +5740,7 @@ export declare class TextManager {
5736
5740
  fontWeight: string;
5737
5741
  lineHeight: number;
5738
5742
  minWidth?: null | number;
5743
+ otherStyles?: Record<string, string>;
5739
5744
  padding: string;
5740
5745
  }): BoxModel & {
5741
5746
  scrollWidth: number;
@@ -6293,34 +6298,39 @@ export declare interface TldrawOptions {
6293
6298
  * nonce to use in the editor's styles.
6294
6299
  */
6295
6300
  readonly nonce: string | undefined;
6301
+ /**
6302
+ * Branding name of the app, currently only used for adding aria-label for the application.
6303
+ */
6304
+ readonly branding?: string;
6296
6305
  }
6297
6306
 
6298
6307
  /** @public */
6299
6308
  export declare interface TLEditorComponents {
6300
6309
  Background?: ComponentType | null;
6301
- SvgDefs?: ComponentType | null;
6302
6310
  Brush?: ComponentType<TLBrushProps> | null;
6303
- ZoomBrush?: ComponentType<TLBrushProps> | null;
6304
- ShapeIndicators?: ComponentType | null;
6305
- ShapeIndicator?: ComponentType<TLShapeIndicatorProps> | null;
6306
- Cursor?: ComponentType<TLCursorProps> | null;
6307
6311
  Canvas?: ComponentType<TLCanvasComponentProps> | null;
6308
6312
  CollaboratorBrush?: ComponentType<TLBrushProps> | null;
6309
6313
  CollaboratorCursor?: ComponentType<TLCursorProps> | null;
6310
6314
  CollaboratorHint?: ComponentType<TLCollaboratorHintProps> | null;
6315
+ CollaboratorScribble?: ComponentType<TLScribbleProps> | null;
6311
6316
  CollaboratorShapeIndicator?: ComponentType<TLShapeIndicatorProps> | null;
6317
+ Cursor?: ComponentType<TLCursorProps> | null;
6312
6318
  Grid?: ComponentType<TLGridProps> | null;
6313
- Scribble?: ComponentType<TLScribbleProps> | null;
6314
- CollaboratorScribble?: ComponentType<TLScribbleProps> | null;
6315
- SnapIndicator?: ComponentType<TLSnapIndicatorProps> | null;
6316
- Handles?: ComponentType<TLHandlesProps> | null;
6317
6319
  Handle?: ComponentType<TLHandleProps> | null;
6318
- Spinner?: ComponentType | null;
6319
- SelectionForeground?: ComponentType<TLSelectionForegroundProps> | null;
6320
- SelectionBackground?: ComponentType<TLSelectionBackgroundProps> | null;
6321
- OnTheCanvas?: ComponentType | null;
6320
+ Handles?: ComponentType<TLHandlesProps> | null;
6322
6321
  InFrontOfTheCanvas?: ComponentType | null;
6323
6322
  LoadingScreen?: ComponentType | null;
6323
+ OnTheCanvas?: ComponentType | null;
6324
+ Overlays?: ComponentType | null;
6325
+ Scribble?: ComponentType<TLScribbleProps> | null;
6326
+ SelectionBackground?: ComponentType<TLSelectionBackgroundProps> | null;
6327
+ SelectionForeground?: ComponentType<TLSelectionForegroundProps> | null;
6328
+ ShapeIndicator?: ComponentType<TLShapeIndicatorProps> | null;
6329
+ ShapeIndicators?: ComponentType | null;
6330
+ SnapIndicator?: ComponentType<TLSnapIndicatorProps> | null;
6331
+ Spinner?: ComponentType | null;
6332
+ SvgDefs?: ComponentType | null;
6333
+ ZoomBrush?: ComponentType<TLBrushProps> | null;
6324
6334
  ErrorFallback?: TLErrorFallbackComponent;
6325
6335
  ShapeErrorFallback?: TLShapeErrorFallbackComponent;
6326
6336
  ShapeIndicatorErrorFallback?: TLShapeIndicatorErrorFallbackComponent;
@@ -6769,6 +6779,7 @@ export declare interface TLMeasureTextSpanOpts {
6769
6779
  fontStyle: string;
6770
6780
  lineHeight: number;
6771
6781
  textAlign: TLDefaultHorizontalAlignStyle;
6782
+ otherStyles?: Record<string, string>;
6772
6783
  }
6773
6784
 
6774
6785
  /** @public */
@@ -7406,12 +7417,6 @@ export declare function toFixed(v: number): number;
7406
7417
  */
7407
7418
  export declare function toPrecision(n: number, precision?: number): number;
7408
7419
 
7409
- export { track }
7410
-
7411
- export { transact }
7412
-
7413
- export { transaction }
7414
-
7415
7420
  /** @public */
7416
7421
  export declare class TransformedGeometry2d extends Geometry2d {
7417
7422
  private readonly geometry;
@@ -7420,13 +7425,13 @@ export declare class TransformedGeometry2d extends Geometry2d {
7420
7425
  private readonly decomposed;
7421
7426
  constructor(geometry: Geometry2d, matrix: MatModel, opts?: TransformedGeometry2dOptions);
7422
7427
  getVertices(filters: Geometry2dFilters): Vec[];
7423
- nearestPoint(point: Vec, filters?: Geometry2dFilters): Vec;
7424
- hitTestPoint(point: Vec, margin?: number, hitInside?: boolean, filters?: Geometry2dFilters): boolean;
7425
- distanceToPoint(point: Vec, hitInside?: boolean, filters?: Geometry2dFilters): number;
7426
- distanceToLineSegment(A: Vec, B: Vec, filters?: Geometry2dFilters): number;
7427
- hitTestLineSegment(A: Vec, B: Vec, distance?: number, filters?: Geometry2dFilters): boolean;
7428
- intersectLineSegment(A: VecLike, B: VecLike, filters?: Geometry2dFilters): VecLike[];
7429
- intersectCircle(center: VecLike, radius: number, filters?: Geometry2dFilters): VecLike[];
7428
+ nearestPoint(point: VecLike, filters?: Geometry2dFilters): Vec;
7429
+ hitTestPoint(point: VecLike, margin?: number, hitInside?: boolean, filters?: Geometry2dFilters): boolean;
7430
+ distanceToPoint(point: VecLike, hitInside?: boolean, filters?: Geometry2dFilters): number;
7431
+ distanceToLineSegment(A: VecLike, B: VecLike, filters?: Geometry2dFilters): number;
7432
+ hitTestLineSegment(A: VecLike, B: VecLike, distance?: number, filters?: Geometry2dFilters): boolean;
7433
+ intersectLineSegment(A: VecLike, B: VecLike, filters?: Geometry2dFilters): Vec[];
7434
+ intersectCircle(center: VecLike, radius: number, filters?: Geometry2dFilters): Vec[];
7430
7435
  intersectPolygon(polygon: VecLike[], filters?: Geometry2dFilters): VecLike[];
7431
7436
  intersectPolyline(polyline: VecLike[], filters?: Geometry2dFilters): VecLike[];
7432
7437
  transform(transform: MatModel, opts?: TransformedGeometry2dOptions): Geometry2d;
@@ -7453,10 +7458,6 @@ export declare function uniq<T>(array: {
7453
7458
  readonly length: number;
7454
7459
  } | null | undefined): T[];
7455
7460
 
7456
- export { useAtom }
7457
-
7458
- export { useComputed }
7459
-
7460
7461
  /** @public */
7461
7462
  export declare function useContainer(): HTMLElement;
7462
7463
 
@@ -7526,12 +7527,9 @@ export declare function usePeerIds(): string[];
7526
7527
  */
7527
7528
  export declare function usePresence(userId: string): null | TLInstancePresence;
7528
7529
 
7529
- export { useQuickReactor }
7530
-
7531
7530
  /* Excluded from this release type: USER_COLORS */
7532
7531
 
7533
7532
  /* Excluded from this release type: useReactiveEvent */
7534
- export { useReactor }
7535
7533
 
7536
7534
  /* Excluded from this release type: useRefState */
7537
7535
 
@@ -7594,8 +7592,6 @@ export declare function useSelectionEvents(handle: TLSelectionHandle): {
7594
7592
  */
7595
7593
  export declare function useSharedSafeId(id: string): SafeId;
7596
7594
 
7597
- export { useStateTracking }
7598
-
7599
7595
  /**
7600
7596
  * Returns the current SVG export context. Returns null if the component isn't being rendered for an
7601
7597
  * SVG export.
@@ -7629,8 +7625,6 @@ export declare function useTransform(ref: React.RefObject<HTMLElement | SVGEleme
7629
7625
  */
7630
7626
  export declare function useUniqueSafeId(suffix?: string): SafeId;
7631
7627
 
7632
- export { useValue }
7633
-
7634
7628
  /** @public */
7635
7629
  export declare function useViewportHeight(): number;
7636
7630
 
@@ -7702,6 +7696,7 @@ export declare class Vec {
7702
7696
  static Per(A: VecLike): Vec;
7703
7697
  static Abs(A: VecLike): Vec;
7704
7698
  static Dist(A: VecLike, B: VecLike): number;
7699
+ static ManhattanDist(A: VecLike, B: VecLike): number;
7705
7700
  static DistMin(A: VecLike, B: VecLike, n: number): boolean;
7706
7701
  static Dist2(A: VecLike, B: VecLike): number;
7707
7702
  /**
@@ -7749,7 +7744,15 @@ export declare class Vec {
7749
7744
  static Cast(A: VecLike): Vec;
7750
7745
  static Slope(A: VecLike, B: VecLike): number;
7751
7746
  static IsNaN(A: VecLike): boolean;
7747
+ /**
7748
+ * Get the angle from position A to position B.
7749
+ */
7752
7750
  static Angle(A: VecLike, B: VecLike): number;
7751
+ /**
7752
+ * Get the angle between vector A and vector B. This will return the smallest angle between the
7753
+ * two vectors, between -π and π. The sign indicates direction of angle.
7754
+ */
7755
+ static AngleBetween(A: VecLike, B: VecLike): number;
7753
7756
  /**
7754
7757
  * Linearly interpolate between two points.
7755
7758
  * @param A - The first point.
@@ -7793,9 +7796,9 @@ export declare class Vec {
7793
7796
  /** @public */
7794
7797
  export declare type VecLike = Vec | VecModel;
7795
7798
 
7796
- export { whyAmIRunning }
7797
-
7798
7799
 
7800
+ export * from "@tldraw/state";
7801
+ export * from "@tldraw/state-react";
7799
7802
  export * from "@tldraw/store";
7800
7803
  export * from "@tldraw/tlschema";
7801
7804
  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.52e2314962c1",
364
+ "3.13.0-canary.62d76a25592d",
380
365
  "cjs"
381
366
  );
382
367
  //# sourceMappingURL=index.js.map