@tldraw/editor 3.14.0-canary.fd2ad122b803 → 3.14.0-canary.ff61ab6deaa2

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 (206) hide show
  1. package/dist-cjs/index.d.ts +59 -63
  2. package/dist-cjs/index.js +10 -8
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/editor/Editor.js +21 -58
  5. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  6. package/dist-cjs/lib/editor/derivations/bindingsIndex.js +22 -22
  7. package/dist-cjs/lib/editor/derivations/bindingsIndex.js.map +2 -2
  8. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js +16 -20
  9. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js.map +3 -3
  10. package/dist-cjs/lib/editor/derivations/parentsToChildren.js +16 -16
  11. package/dist-cjs/lib/editor/derivations/parentsToChildren.js.map +2 -2
  12. package/dist-cjs/lib/editor/managers/{ClickManager.js → ClickManager/ClickManager.js} +1 -1
  13. package/dist-cjs/lib/editor/managers/ClickManager/ClickManager.js.map +7 -0
  14. package/dist-cjs/lib/editor/managers/{EdgeScrollManager.js → EdgeScrollManager/EdgeScrollManager.js} +2 -2
  15. package/dist-cjs/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.js.map +7 -0
  16. package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js.map +7 -0
  17. package/dist-cjs/lib/editor/managers/{FontManager.js → FontManager/FontManager.js} +5 -1
  18. package/dist-cjs/lib/editor/managers/FontManager/FontManager.js.map +7 -0
  19. package/dist-cjs/lib/editor/managers/{HistoryManager.js → HistoryManager/HistoryManager.js} +64 -6
  20. package/dist-cjs/lib/editor/managers/HistoryManager/HistoryManager.js.map +7 -0
  21. package/dist-cjs/lib/editor/managers/{ScribbleManager.js → ScribbleManager/ScribbleManager.js} +1 -1
  22. package/dist-cjs/lib/editor/managers/ScribbleManager/ScribbleManager.js.map +7 -0
  23. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js.map +7 -0
  24. package/dist-cjs/lib/editor/managers/{TickManager.js → TickManager/TickManager.js} +1 -1
  25. package/dist-cjs/lib/editor/managers/TickManager/TickManager.js.map +7 -0
  26. package/dist-cjs/lib/editor/managers/{UserPreferencesManager.js → UserPreferencesManager/UserPreferencesManager.js} +1 -1
  27. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +7 -0
  28. package/dist-cjs/lib/editor/shapes/ShapeUtil.js +8 -0
  29. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  30. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +6 -0
  31. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +2 -2
  32. package/dist-cjs/lib/exports/getSvgJsx.js.map +1 -1
  33. package/dist-cjs/lib/primitives/Box.js +39 -33
  34. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  35. package/dist-cjs/lib/primitives/Vec.js +13 -8
  36. package/dist-cjs/lib/primitives/Vec.js.map +2 -2
  37. package/dist-cjs/lib/primitives/geometry/Arc2d.js +41 -21
  38. package/dist-cjs/lib/primitives/geometry/Arc2d.js.map +2 -2
  39. package/dist-cjs/lib/primitives/geometry/Circle2d.js +11 -11
  40. package/dist-cjs/lib/primitives/geometry/Circle2d.js.map +2 -2
  41. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js +13 -16
  42. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js.map +2 -2
  43. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js +4 -4
  44. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js.map +2 -2
  45. package/dist-cjs/lib/primitives/geometry/Edge2d.js +14 -17
  46. package/dist-cjs/lib/primitives/geometry/Edge2d.js.map +2 -2
  47. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js +10 -10
  48. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js.map +2 -2
  49. package/dist-cjs/lib/primitives/geometry/Point2d.js +6 -6
  50. package/dist-cjs/lib/primitives/geometry/Point2d.js.map +2 -2
  51. package/dist-cjs/lib/primitives/geometry/Polygon2d.js +3 -0
  52. package/dist-cjs/lib/primitives/geometry/Polygon2d.js.map +2 -2
  53. package/dist-cjs/lib/primitives/geometry/Polyline2d.js +8 -5
  54. package/dist-cjs/lib/primitives/geometry/Polyline2d.js.map +2 -2
  55. package/dist-cjs/lib/primitives/geometry/Rectangle2d.js +22 -11
  56. package/dist-cjs/lib/primitives/geometry/Rectangle2d.js.map +2 -2
  57. package/dist-cjs/lib/primitives/geometry/Stadium2d.js +22 -22
  58. package/dist-cjs/lib/primitives/geometry/Stadium2d.js.map +2 -2
  59. package/dist-cjs/lib/utils/areShapesContentEqual.js +1 -1
  60. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +2 -2
  61. package/dist-cjs/lib/utils/reorderShapes.js +11 -10
  62. package/dist-cjs/lib/utils/reorderShapes.js.map +2 -2
  63. package/dist-cjs/lib/utils/richText.js.map +1 -1
  64. package/dist-cjs/version.js +3 -3
  65. package/dist-cjs/version.js.map +1 -1
  66. package/dist-esm/index.d.mts +59 -63
  67. package/dist-esm/index.mjs +14 -8
  68. package/dist-esm/index.mjs.map +2 -2
  69. package/dist-esm/lib/editor/Editor.mjs +21 -58
  70. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  71. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs +22 -22
  72. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs.map +2 -2
  73. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs +16 -20
  74. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs.map +3 -3
  75. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs +16 -16
  76. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs.map +2 -2
  77. package/dist-esm/lib/editor/managers/{ClickManager.mjs → ClickManager/ClickManager.mjs} +1 -1
  78. package/dist-esm/lib/editor/managers/ClickManager/ClickManager.mjs.map +7 -0
  79. package/dist-esm/lib/editor/managers/{EdgeScrollManager.mjs → EdgeScrollManager/EdgeScrollManager.mjs} +2 -2
  80. package/dist-esm/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs.map +7 -0
  81. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +7 -0
  82. package/dist-esm/lib/editor/managers/{FontManager.mjs → FontManager/FontManager.mjs} +5 -1
  83. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +7 -0
  84. package/dist-esm/lib/editor/managers/{HistoryManager.mjs → HistoryManager/HistoryManager.mjs} +60 -2
  85. package/dist-esm/lib/editor/managers/HistoryManager/HistoryManager.mjs.map +7 -0
  86. package/dist-esm/lib/editor/managers/{ScribbleManager.mjs → ScribbleManager/ScribbleManager.mjs} +1 -1
  87. package/dist-esm/lib/editor/managers/ScribbleManager/ScribbleManager.mjs.map +7 -0
  88. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +7 -0
  89. package/dist-esm/lib/editor/managers/{TickManager.mjs → TickManager/TickManager.mjs} +1 -1
  90. package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs.map +7 -0
  91. package/dist-esm/lib/editor/managers/{UserPreferencesManager.mjs → UserPreferencesManager/UserPreferencesManager.mjs} +1 -1
  92. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +7 -0
  93. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +8 -0
  94. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  95. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +6 -0
  96. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +2 -2
  97. package/dist-esm/lib/exports/getSvgJsx.mjs.map +1 -1
  98. package/dist-esm/lib/primitives/Box.mjs +39 -33
  99. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  100. package/dist-esm/lib/primitives/Vec.mjs +13 -8
  101. package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
  102. package/dist-esm/lib/primitives/geometry/Arc2d.mjs +41 -21
  103. package/dist-esm/lib/primitives/geometry/Arc2d.mjs.map +2 -2
  104. package/dist-esm/lib/primitives/geometry/Circle2d.mjs +11 -11
  105. package/dist-esm/lib/primitives/geometry/Circle2d.mjs.map +2 -2
  106. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs +13 -16
  107. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs.map +2 -2
  108. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs +4 -4
  109. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs.map +2 -2
  110. package/dist-esm/lib/primitives/geometry/Edge2d.mjs +14 -17
  111. package/dist-esm/lib/primitives/geometry/Edge2d.mjs.map +2 -2
  112. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs +11 -11
  113. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs.map +2 -2
  114. package/dist-esm/lib/primitives/geometry/Point2d.mjs +6 -6
  115. package/dist-esm/lib/primitives/geometry/Point2d.mjs.map +2 -2
  116. package/dist-esm/lib/primitives/geometry/Polygon2d.mjs +3 -0
  117. package/dist-esm/lib/primitives/geometry/Polygon2d.mjs.map +2 -2
  118. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs +8 -5
  119. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs.map +2 -2
  120. package/dist-esm/lib/primitives/geometry/Rectangle2d.mjs +22 -11
  121. package/dist-esm/lib/primitives/geometry/Rectangle2d.mjs.map +2 -2
  122. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs +22 -22
  123. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs.map +2 -2
  124. package/dist-esm/lib/utils/areShapesContentEqual.mjs +1 -1
  125. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +2 -2
  126. package/dist-esm/lib/utils/reorderShapes.mjs +11 -10
  127. package/dist-esm/lib/utils/reorderShapes.mjs.map +2 -2
  128. package/dist-esm/lib/utils/richText.mjs.map +1 -1
  129. package/dist-esm/version.mjs +3 -3
  130. package/dist-esm/version.mjs.map +1 -1
  131. package/package.json +7 -7
  132. package/src/index.ts +14 -7
  133. package/src/lib/editor/Editor.ts +24 -60
  134. package/src/lib/editor/derivations/bindingsIndex.ts +27 -26
  135. package/src/lib/editor/derivations/notVisibleShapes.ts +24 -25
  136. package/src/lib/editor/derivations/parentsToChildren.ts +28 -25
  137. package/src/lib/editor/managers/ClickManager/ClickManager.test.ts +442 -0
  138. package/src/lib/editor/managers/{ClickManager.ts → ClickManager/ClickManager.ts} +3 -3
  139. package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.test.ts +374 -0
  140. package/src/lib/editor/managers/{EdgeScrollManager.ts → EdgeScrollManager/EdgeScrollManager.ts} +3 -3
  141. package/src/lib/editor/managers/FocusManager/FocusManager.test.ts +455 -0
  142. package/src/lib/editor/managers/{FocusManager.ts → FocusManager/FocusManager.ts} +1 -1
  143. package/src/lib/editor/managers/FontManager/FontManager.test.ts +263 -0
  144. package/src/lib/editor/managers/{FontManager.ts → FontManager/FontManager.ts} +6 -2
  145. package/src/lib/editor/managers/{HistoryManager.test.ts → HistoryManager/HistoryManager.test.ts} +388 -1
  146. package/src/lib/editor/managers/{HistoryManager.ts → HistoryManager/HistoryManager.ts} +73 -2
  147. package/src/lib/editor/managers/ScribbleManager/ScribbleManager.test.ts +624 -0
  148. package/src/lib/editor/managers/{ScribbleManager.ts → ScribbleManager/ScribbleManager.ts} +2 -2
  149. package/src/lib/editor/managers/SnapManager/SnapManager.test.ts +485 -0
  150. package/src/lib/editor/managers/TextManager/TextManager.test.ts +411 -0
  151. package/src/lib/editor/managers/{TextManager.ts → TextManager/TextManager.ts} +1 -1
  152. package/src/lib/editor/managers/TickManager/TickManager.test.ts +314 -0
  153. package/src/lib/editor/managers/{TickManager.ts → TickManager/TickManager.ts} +2 -2
  154. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +591 -0
  155. package/src/lib/editor/managers/{UserPreferencesManager.ts → UserPreferencesManager/UserPreferencesManager.ts} +2 -2
  156. package/src/lib/editor/shapes/ShapeUtil.ts +10 -1
  157. package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +8 -0
  158. package/src/lib/exports/getSvgJsx.tsx +1 -1
  159. package/src/lib/primitives/Box.test.ts +588 -7
  160. package/src/lib/primitives/Box.ts +41 -33
  161. package/src/lib/primitives/Vec.test.ts +2 -2
  162. package/src/lib/primitives/Vec.ts +13 -8
  163. package/src/lib/primitives/geometry/Arc2d.ts +42 -23
  164. package/src/lib/primitives/geometry/Circle2d.ts +12 -12
  165. package/src/lib/primitives/geometry/CubicBezier2d.test.ts +5 -0
  166. package/src/lib/primitives/geometry/CubicBezier2d.ts +13 -17
  167. package/src/lib/primitives/geometry/CubicSpline2d.ts +5 -5
  168. package/src/lib/primitives/geometry/Edge2d.ts +14 -18
  169. package/src/lib/primitives/geometry/Ellipse2d.ts +12 -13
  170. package/src/lib/primitives/geometry/Point2d.ts +6 -6
  171. package/src/lib/primitives/geometry/Polygon2d.ts +4 -0
  172. package/src/lib/primitives/geometry/Polyline2d.ts +10 -7
  173. package/src/lib/primitives/geometry/Rectangle2d.ts +24 -11
  174. package/src/lib/primitives/geometry/Stadium2d.ts +22 -23
  175. package/src/lib/utils/areShapesContentEqual.ts +2 -1
  176. package/src/lib/utils/reorderShapes.ts +10 -13
  177. package/src/lib/utils/richText.ts +1 -1
  178. package/src/version.ts +3 -3
  179. package/dist-cjs/lib/editor/managers/ClickManager.js.map +0 -7
  180. package/dist-cjs/lib/editor/managers/EdgeScrollManager.js.map +0 -7
  181. package/dist-cjs/lib/editor/managers/FocusManager.js.map +0 -7
  182. package/dist-cjs/lib/editor/managers/FontManager.js.map +0 -7
  183. package/dist-cjs/lib/editor/managers/HistoryManager.js.map +0 -7
  184. package/dist-cjs/lib/editor/managers/ScribbleManager.js.map +0 -7
  185. package/dist-cjs/lib/editor/managers/Stack.js +0 -82
  186. package/dist-cjs/lib/editor/managers/Stack.js.map +0 -7
  187. package/dist-cjs/lib/editor/managers/TextManager.js.map +0 -7
  188. package/dist-cjs/lib/editor/managers/TickManager.js.map +0 -7
  189. package/dist-cjs/lib/editor/managers/UserPreferencesManager.js.map +0 -7
  190. package/dist-esm/lib/editor/managers/ClickManager.mjs.map +0 -7
  191. package/dist-esm/lib/editor/managers/EdgeScrollManager.mjs.map +0 -7
  192. package/dist-esm/lib/editor/managers/FocusManager.mjs.map +0 -7
  193. package/dist-esm/lib/editor/managers/FontManager.mjs.map +0 -7
  194. package/dist-esm/lib/editor/managers/HistoryManager.mjs.map +0 -7
  195. package/dist-esm/lib/editor/managers/ScribbleManager.mjs.map +0 -7
  196. package/dist-esm/lib/editor/managers/Stack.mjs +0 -62
  197. package/dist-esm/lib/editor/managers/Stack.mjs.map +0 -7
  198. package/dist-esm/lib/editor/managers/TextManager.mjs.map +0 -7
  199. package/dist-esm/lib/editor/managers/TickManager.mjs.map +0 -7
  200. package/dist-esm/lib/editor/managers/UserPreferencesManager.mjs.map +0 -7
  201. package/src/lib/editor/managers/ScribbleManager.test.ts +0 -32
  202. package/src/lib/editor/managers/Stack.ts +0 -71
  203. /package/dist-cjs/lib/editor/managers/{FocusManager.js → FocusManager/FocusManager.js} +0 -0
  204. /package/dist-cjs/lib/editor/managers/{TextManager.js → TextManager/TextManager.js} +0 -0
  205. /package/dist-esm/lib/editor/managers/{FocusManager.mjs → FocusManager/FocusManager.mjs} +0 -0
  206. /package/dist-esm/lib/editor/managers/{TextManager.mjs → TextManager/TextManager.mjs} +0 -0
@@ -105,15 +105,15 @@ export declare function approximately(a: number, b: number, precision?: number):
105
105
 
106
106
  /** @public */
107
107
  export declare class Arc2d extends Geometry2d {
108
- _center: Vec;
109
- radius: number;
110
- start: Vec;
111
- end: Vec;
112
- largeArcFlag: number;
113
- sweepFlag: number;
114
- measure: number;
115
- angleStart: number;
116
- angleEnd: number;
108
+ private _center;
109
+ private _radius;
110
+ private _start;
111
+ private _end;
112
+ private _largeArcFlag;
113
+ private _sweepFlag;
114
+ private _measure;
115
+ private _angleStart;
116
+ private _angleEnd;
117
117
  constructor(config: Omit<Geometry2dOptions, 'isClosed' | 'isFilled'> & {
118
118
  center: Vec;
119
119
  end: Vec;
@@ -138,6 +138,9 @@ export declare class Arc2d extends Geometry2d {
138
138
  */
139
139
  export declare function areAnglesCompatible(a: number, b: number): boolean;
140
140
 
141
+ /** @public */
142
+ export declare const areShapesContentEqual: (a: TLShape, b: TLShape) => boolean;
143
+
141
144
  /** @public */
142
145
  export declare function average(A: VecLike, B: VecLike): string;
143
146
 
@@ -514,6 +517,8 @@ export declare class Box {
514
517
  };
515
518
  equals(other: Box | BoxModel): boolean;
516
519
  static Equals(a: Box | BoxModel, b: Box | BoxModel): boolean;
520
+ prettyMuchEquals(other: Box | BoxModel): boolean;
521
+ static PrettyMuchEquals(a: Box | BoxModel, b: Box | BoxModel): boolean;
517
522
  zeroFix(): this;
518
523
  static ZeroFix(other: Box | BoxModel): Box;
519
524
  }
@@ -551,10 +556,10 @@ export declare class Circle2d extends Geometry2d {
551
556
  x?: number;
552
557
  y?: number;
553
558
  };
554
- _center: Vec;
555
- radius: number;
556
- x: number;
557
- y: number;
559
+ private _center;
560
+ private _radius;
561
+ private _x;
562
+ private _y;
558
563
  constructor(config: Omit<Geometry2dOptions, 'isClosed'> & {
559
564
  isFilled: boolean;
560
565
  radius: number;
@@ -716,10 +721,10 @@ export declare function createTLUser(opts?: {
716
721
 
717
722
  /** @public */
718
723
  export declare class CubicBezier2d extends Polyline2d {
719
- a: Vec;
720
- b: Vec;
721
- c: Vec;
722
- d: Vec;
724
+ private _a;
725
+ private _b;
726
+ private _c;
727
+ private _d;
723
728
  constructor(config: Omit<Geometry2dOptions, 'isClosed' | 'isFilled'> & {
724
729
  cp1: Vec;
725
730
  cp2: Vec;
@@ -727,20 +732,19 @@ export declare class CubicBezier2d extends Polyline2d {
727
732
  start: Vec;
728
733
  });
729
734
  getVertices(): Vec[];
730
- midPoint(): Vec;
731
735
  nearestPoint(A: VecLike): Vec;
732
736
  getSvgPathData(first?: boolean): string;
733
737
  static GetAtT(segment: CubicBezier2d, t: number): Vec;
734
- getLength(filters?: Geometry2dFilters, precision?: number): number;
738
+ getLength(_filters?: Geometry2dFilters, precision?: number): number;
735
739
  }
736
740
 
737
741
  /** @public */
738
742
  export declare class CubicSpline2d extends Geometry2d {
739
- points: Vec[];
743
+ private _points;
740
744
  constructor(config: Omit<Geometry2dOptions, 'isClosed' | 'isFilled'> & {
741
745
  points: Vec[];
742
746
  });
743
- _segments?: CubicBezier2d[];
747
+ private _segments?;
744
748
  get segments(): CubicBezier2d[];
745
749
  getLength(): number;
746
750
  getVertices(): Vec[];
@@ -927,17 +931,16 @@ export declare const EASINGS: {
927
931
 
928
932
  /** @public */
929
933
  export declare class Edge2d extends Geometry2d {
930
- start: Vec;
931
- end: Vec;
932
- d: Vec;
933
- u: Vec;
934
- ul: number;
934
+ private _start;
935
+ private _end;
936
+ private _d;
937
+ private _u;
938
+ private _ul;
935
939
  constructor(config: {
936
940
  end: Vec;
937
941
  start: Vec;
938
942
  });
939
943
  getLength(): number;
940
- midPoint(): Vec;
941
944
  getVertices(): Vec[];
942
945
  nearestPoint(point: VecLike): Vec;
943
946
  getSvgPathData(first?: boolean): string;
@@ -2457,23 +2460,6 @@ export declare class Editor extends EventEmitter<TLEventMap> {
2457
2460
  * @public
2458
2461
  */
2459
2462
  getShapeGeometry<T extends Geometry2d>(shape: TLShape | TLShapeId, opts?: TLGeometryOpts): T;
2460
- private _shapePageGeometryCaches;
2461
- /**
2462
- * Get the geometry of a shape in page-space.
2463
- *
2464
- * @example
2465
- * ```ts
2466
- * editor.getShapePageGeometry(myShape)
2467
- * editor.getShapePageGeometry(myShapeId)
2468
- * editor.getShapePageGeometry(myShapeId, { context: "arrow" })
2469
- * ```
2470
- *
2471
- * @param shape - The shape (or shape id) to get the geometry for.
2472
- * @param opts - Additional options about the request for geometry. Passed to {@link ShapeUtil.getGeometry}.
2473
- *
2474
- * @public
2475
- */
2476
- getShapePageGeometry<T extends Geometry2d>(shape: TLShape | TLShapeId, opts?: TLGeometryOpts): T;
2477
2463
  /* Excluded from this release type: _getShapeHandlesCache */
2478
2464
  /**
2479
2465
  * Get the handles (if any) for a shape.
@@ -3996,13 +3982,13 @@ export declare class Ellipse2d extends Geometry2d {
3996
3982
  height: number;
3997
3983
  width: number;
3998
3984
  };
3999
- w: number;
4000
- h: number;
3985
+ private _w;
3986
+ private _h;
3987
+ private _edges?;
4001
3988
  constructor(config: Omit<Geometry2dOptions, 'isClosed'> & {
4002
3989
  height: number;
4003
3990
  width: number;
4004
3991
  });
4005
- _edges?: Edge2d[];
4006
3992
  get edges(): Edge2d[];
4007
3993
  getVertices(): any[];
4008
3994
  nearestPoint(A: VecLike): Vec;
@@ -4300,6 +4286,8 @@ export declare class GroupShapeUtil extends ShapeUtil<TLGroupShape> {
4300
4286
  static migrations: TLPropsMigrations;
4301
4287
  hideSelectionBoundsFg(): boolean;
4302
4288
  canBind(): boolean;
4289
+ canResize(): boolean;
4290
+ canResizeChildren(): boolean;
4303
4291
  getDefaultProps(): TLGroupShape['props'];
4304
4292
  getGeometry(shape: TLGroupShape): Geometry2d;
4305
4293
  component(shape: TLGroupShape): JSX_2.Element | null;
@@ -4685,7 +4673,7 @@ export declare const PI2: number;
4685
4673
 
4686
4674
  /** @public */
4687
4675
  export declare class Point2d extends Geometry2d {
4688
- point: Vec;
4676
+ private _point;
4689
4677
  constructor(config: Omit<Geometry2dOptions, 'isClosed' | 'isFilled'> & {
4690
4678
  margin: number;
4691
4679
  point: Vec;
@@ -4729,12 +4717,12 @@ export declare function polygonsIntersect(a: VecLike[], b: VecLike[]): boolean;
4729
4717
 
4730
4718
  /** @public */
4731
4719
  export declare class Polyline2d extends Geometry2d {
4732
- points: Vec[];
4720
+ private _points;
4721
+ private _segments?;
4733
4722
  constructor(config: Omit<Geometry2dOptions, 'isClosed' | 'isFilled'> & {
4734
4723
  points: Vec[];
4735
4724
  });
4736
- _segments?: Edge2d[];
4737
- get segments(): Edge2d[];
4725
+ protected get segments(): Edge2d[];
4738
4726
  getLength(): number;
4739
4727
  getVertices(): Vec[];
4740
4728
  nearestPoint(A: VecLike): Vec;
@@ -4800,10 +4788,10 @@ export declare class ReadonlySharedStyleMap {
4800
4788
 
4801
4789
  /** @public */
4802
4790
  export declare class Rectangle2d extends Polygon2d {
4803
- x: number;
4804
- y: number;
4805
- w: number;
4806
- h: number;
4791
+ private _x;
4792
+ private _y;
4793
+ private _w;
4794
+ private _h;
4807
4795
  constructor(config: Omit<Geometry2dOptions, 'isClosed'> & {
4808
4796
  height: number;
4809
4797
  width: number;
@@ -4812,6 +4800,7 @@ export declare class Rectangle2d extends Polygon2d {
4812
4800
  });
4813
4801
  getBounds(): Box;
4814
4802
  getSvgPathData(): string;
4803
+ private negativeZeroFix;
4815
4804
  }
4816
4805
 
4817
4806
  /** @public */
@@ -5097,6 +5086,12 @@ export declare abstract class ShapeUtil<Shape extends TLUnknownShape = TLUnknown
5097
5086
  * @public
5098
5087
  */
5099
5088
  canResize(_shape: Shape): boolean;
5089
+ /**
5090
+ * When the shape is resized, whether the shape's children should also be resized.
5091
+ *
5092
+ * @public
5093
+ */
5094
+ canResizeChildren(_shape: Shape): boolean;
5100
5095
  /**
5101
5096
  * Whether the shape can be edited in read-only mode.
5102
5097
  *
@@ -5540,12 +5535,12 @@ export declare class Stadium2d extends Geometry2d {
5540
5535
  height: number;
5541
5536
  width: number;
5542
5537
  };
5543
- w: number;
5544
- h: number;
5545
- a: Arc2d;
5546
- b: Edge2d;
5547
- c: Arc2d;
5548
- d: Edge2d;
5538
+ private _w;
5539
+ private _h;
5540
+ private _a;
5541
+ private _b;
5542
+ private _c;
5543
+ private _d;
5549
5544
  constructor(config: Omit<Geometry2dOptions, 'isClosed'> & {
5550
5545
  height: number;
5551
5546
  width: number;
@@ -7678,7 +7673,7 @@ export declare class Vec {
7678
7673
  len(): number;
7679
7674
  pry(V: VecLike): number;
7680
7675
  per(): this;
7681
- uni(): Vec;
7676
+ uni(): this;
7682
7677
  tan(V: VecLike): Vec;
7683
7678
  dist(V: VecLike): number;
7684
7679
  distanceToLineSegment(A: VecLike, B: VecLike): number;
@@ -7689,8 +7684,9 @@ export declare class Vec {
7689
7684
  lrp(B: VecLike, t: number): Vec;
7690
7685
  equals(B: VecLike): boolean;
7691
7686
  equalsXY(x: number, y: number): boolean;
7687
+ /** @deprecated use `uni` instead */
7692
7688
  norm(): this;
7693
- toFixed(): Vec;
7689
+ toFixed(): this;
7694
7690
  toString(): string;
7695
7691
  toJson(): VecModel;
7696
7692
  toArray(): number[];
package/dist-cjs/index.js CHANGED
@@ -103,6 +103,7 @@ __export(index_exports, {
103
103
  applyRotationToSnapshotShapes: () => import_rotation.applyRotationToSnapshotShapes,
104
104
  approximately: () => import_utils2.approximately,
105
105
  areAnglesCompatible: () => import_utils2.areAnglesCompatible,
106
+ areShapesContentEqual: () => import_areShapesContentEqual.areShapesContentEqual,
106
107
  average: () => import_utils2.average,
107
108
  canonicalizeRotation: () => import_utils2.canonicalizeRotation,
108
109
  centerOfCircleFromThreePoints: () => import_utils2.centerOfCircleFromThreePoints,
@@ -232,6 +233,7 @@ var import_flat_map = require("core-js/stable/array/flat-map.js");
232
233
  var import_flat = require("core-js/stable/array/flat.js");
233
234
  var import_at2 = require("core-js/stable/string/at.js");
234
235
  var import_replace_all = require("core-js/stable/string/replace-all.js");
236
+ var import_areShapesContentEqual = require("./lib/utils/areShapesContentEqual");
235
237
  __reExport(index_exports, require("@tldraw/state"), module.exports);
236
238
  __reExport(index_exports, require("@tldraw/state-react"), module.exports);
237
239
  __reExport(index_exports, require("@tldraw/store"), module.exports);
@@ -269,16 +271,16 @@ var import_defaultShapes = require("./lib/config/defaultShapes");
269
271
  var import_constants = require("./lib/constants");
270
272
  var import_Editor = require("./lib/editor/Editor");
271
273
  var import_BindingUtil = require("./lib/editor/bindings/BindingUtil");
272
- var import_ClickManager = require("./lib/editor/managers/ClickManager");
273
- var import_EdgeScrollManager = require("./lib/editor/managers/EdgeScrollManager");
274
- var import_FontManager = require("./lib/editor/managers/FontManager");
275
- var import_HistoryManager = require("./lib/editor/managers/HistoryManager");
276
- var import_ScribbleManager = require("./lib/editor/managers/ScribbleManager");
274
+ var import_ClickManager = require("./lib/editor/managers/ClickManager/ClickManager");
275
+ var import_EdgeScrollManager = require("./lib/editor/managers/EdgeScrollManager/EdgeScrollManager");
276
+ var import_FontManager = require("./lib/editor/managers/FontManager/FontManager");
277
+ var import_HistoryManager = require("./lib/editor/managers/HistoryManager/HistoryManager");
278
+ var import_ScribbleManager = require("./lib/editor/managers/ScribbleManager/ScribbleManager");
277
279
  var import_BoundsSnaps = require("./lib/editor/managers/SnapManager/BoundsSnaps");
278
280
  var import_HandleSnaps = require("./lib/editor/managers/SnapManager/HandleSnaps");
279
281
  var import_SnapManager = require("./lib/editor/managers/SnapManager/SnapManager");
280
- var import_TextManager = require("./lib/editor/managers/TextManager");
281
- var import_UserPreferencesManager = require("./lib/editor/managers/UserPreferencesManager");
282
+ var import_TextManager = require("./lib/editor/managers/TextManager/TextManager");
283
+ var import_UserPreferencesManager = require("./lib/editor/managers/UserPreferencesManager/UserPreferencesManager");
282
284
  var import_BaseBoxShapeUtil = require("./lib/editor/shapes/BaseBoxShapeUtil");
283
285
  var import_ShapeUtil = require("./lib/editor/shapes/ShapeUtil");
284
286
  var import_GroupShapeUtil = require("./lib/editor/shapes/group/GroupShapeUtil");
@@ -361,7 +363,7 @@ function debugEnableLicensing() {
361
363
  }
362
364
  (0, import_utils.registerTldrawLibraryVersion)(
363
365
  "@tldraw/editor",
364
- "3.14.0-canary.fd2ad122b803",
366
+ "3.14.0-canary.ff61ab6deaa2",
365
367
  "cjs"
366
368
  );
367
369
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "sourcesContent": ["import { registerTldrawLibraryVersion } from '@tldraw/utils'\nimport 'core-js/stable/array/at.js'\nimport 'core-js/stable/array/flat-map.js'\nimport 'core-js/stable/array/flat.js'\nimport 'core-js/stable/string/at.js'\nimport 'core-js/stable/string/replace-all.js'\n\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/state'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/state-react'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/store'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/tlschema'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/utils'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/validate'\n\nexport {\n\tErrorScreen,\n\tLoadingScreen,\n\tTldrawEditor,\n\tuseOnMount,\n\ttype LoadingScreenProps,\n\ttype TLOnMountHandler,\n\ttype TldrawEditorBaseProps,\n\ttype TldrawEditorProps,\n\ttype TldrawEditorStoreProps,\n\ttype TldrawEditorWithStoreProps,\n\ttype TldrawEditorWithoutStoreProps,\n} from './lib/TldrawEditor'\nexport {\n\tErrorBoundary,\n\tOptionalErrorBoundary,\n\ttype TLErrorBoundaryProps,\n} from './lib/components/ErrorBoundary'\nexport { HTMLContainer, type HTMLContainerProps } from './lib/components/HTMLContainer'\nexport { MenuClickCapture } from './lib/components/MenuClickCapture'\nexport { SVGContainer, type SVGContainerProps } from './lib/components/SVGContainer'\nexport { DefaultBackground } from './lib/components/default-components/DefaultBackground'\nexport { DefaultBrush, type TLBrushProps } from './lib/components/default-components/DefaultBrush'\nexport {\n\tDefaultCanvas,\n\ttype TLCanvasComponentProps,\n} from './lib/components/default-components/DefaultCanvas'\nexport {\n\tDefaultCollaboratorHint,\n\ttype TLCollaboratorHintProps,\n} from './lib/components/default-components/DefaultCollaboratorHint'\nexport {\n\tDefaultCursor,\n\ttype TLCursorProps,\n} from './lib/components/default-components/DefaultCursor'\nexport {\n\tDefaultErrorFallback,\n\ttype TLErrorFallbackComponent,\n} from './lib/components/default-components/DefaultErrorFallback'\nexport { DefaultGrid, type TLGridProps } from './lib/components/default-components/DefaultGrid'\nexport {\n\tDefaultHandle,\n\ttype TLHandleProps,\n} from './lib/components/default-components/DefaultHandle'\nexport {\n\tDefaultHandles,\n\ttype TLHandlesProps,\n} from './lib/components/default-components/DefaultHandles'\nexport {\n\tDefaultScribble,\n\ttype TLScribbleProps,\n} from './lib/components/default-components/DefaultScribble'\nexport {\n\tDefaultSelectionBackground,\n\ttype TLSelectionBackgroundProps,\n} from './lib/components/default-components/DefaultSelectionBackground'\nexport {\n\tDefaultSelectionForeground,\n\ttype TLSelectionForegroundProps,\n} from './lib/components/default-components/DefaultSelectionForeground'\nexport { type TLShapeErrorFallbackComponent } from './lib/components/default-components/DefaultShapeErrorFallback'\nexport {\n\tDefaultShapeIndicator,\n\ttype TLShapeIndicatorProps,\n} from './lib/components/default-components/DefaultShapeIndicator'\nexport { type TLShapeIndicatorErrorFallbackComponent } from './lib/components/default-components/DefaultShapeIndicatorErrorFallback'\nexport {\n\tDefaultShapeIndicators,\n\ttype TLShapeIndicatorsProps,\n} from './lib/components/default-components/DefaultShapeIndicators'\nexport {\n\tDefaultSnapIndicator,\n\ttype TLSnapIndicatorProps,\n} from './lib/components/default-components/DefaultSnapIndictor'\nexport { DefaultSpinner } from './lib/components/default-components/DefaultSpinner'\nexport { DefaultSvgDefs } from './lib/components/default-components/DefaultSvgDefs'\nexport {\n\tgetSnapshot,\n\tloadSnapshot,\n\ttype TLEditorSnapshot,\n\ttype TLLoadSnapshotOptions,\n} from './lib/config/TLEditorSnapshot'\nexport {\n\tTAB_ID,\n\tcreateSessionStateSnapshotSignal,\n\textractSessionStateFromLegacySnapshot,\n\tloadSessionStateSnapshotIntoStore,\n\ttype TLLoadSessionStateSnapshotOptions,\n\ttype TLSessionStateSnapshot,\n} from './lib/config/TLSessionStateSnapshot'\nexport {\n\tUSER_COLORS,\n\tdefaultUserPreferences,\n\tgetFreshUserPreferences,\n\tgetUserPreferences,\n\tsetUserPreferences,\n\tuserTypeValidator,\n\ttype TLUserPreferences,\n} from './lib/config/TLUserPreferences'\nexport {\n\tcreateTLSchemaFromUtils,\n\tcreateTLStore,\n\tinlineBase64AssetStore,\n\ttype TLStoreBaseOptions,\n\ttype TLStoreEventInfo,\n\ttype TLStoreOptions,\n\ttype TLStoreSchemaOptions,\n} from './lib/config/createTLStore'\nexport { createTLUser, useTldrawUser, type TLUser } from './lib/config/createTLUser'\nexport { type TLAnyBindingUtilConstructor } from './lib/config/defaultBindings'\nexport { coreShapes, type TLAnyShapeUtilConstructor } from './lib/config/defaultShapes'\nexport { DEFAULT_ANIMATION_OPTIONS, DEFAULT_CAMERA_OPTIONS, SIDES } from './lib/constants'\nexport {\n\tEditor,\n\ttype TLEditorOptions,\n\ttype TLEditorRunOptions,\n\ttype TLRenderingShape,\n\ttype TLResizeShapeOptions,\n} from './lib/editor/Editor'\nexport {\n\tBindingUtil,\n\ttype BindingOnChangeOptions,\n\ttype BindingOnCreateOptions,\n\ttype BindingOnDeleteOptions,\n\ttype BindingOnShapeChangeOptions,\n\ttype BindingOnShapeDeleteOptions,\n\ttype BindingOnShapeIsolateOptions,\n\ttype TLBindingUtilConstructor,\n} from './lib/editor/bindings/BindingUtil'\nexport { ClickManager, type TLClickState } from './lib/editor/managers/ClickManager'\nexport { EdgeScrollManager } from './lib/editor/managers/EdgeScrollManager'\nexport {\n\tFontManager,\n\ttype TLFontFace,\n\ttype TLFontFaceSource,\n} from './lib/editor/managers/FontManager'\nexport { HistoryManager } from './lib/editor/managers/HistoryManager'\nexport { ScribbleManager, type ScribbleItem } from './lib/editor/managers/ScribbleManager'\nexport {\n\tBoundsSnaps,\n\ttype BoundsSnapGeometry,\n\ttype BoundsSnapPoint,\n} from './lib/editor/managers/SnapManager/BoundsSnaps'\nexport { HandleSnaps, type HandleSnapGeometry } from './lib/editor/managers/SnapManager/HandleSnaps'\nexport {\n\tSnapManager,\n\ttype GapsSnapIndicator,\n\ttype PointsSnapIndicator,\n\ttype SnapData,\n\ttype SnapIndicator,\n} from './lib/editor/managers/SnapManager/SnapManager'\nexport { TextManager, type TLMeasureTextSpanOpts } from './lib/editor/managers/TextManager'\nexport { UserPreferencesManager } from './lib/editor/managers/UserPreferencesManager'\nexport { BaseBoxShapeUtil, type TLBaseBoxShape } from './lib/editor/shapes/BaseBoxShapeUtil'\nexport {\n\tShapeUtil,\n\ttype TLCropInfo,\n\ttype TLGeometryOpts,\n\ttype TLHandleDragInfo,\n\ttype TLResizeInfo,\n\ttype TLResizeMode,\n\ttype TLShapeUtilCanBeLaidOutOpts,\n\ttype TLShapeUtilCanBindOpts,\n\ttype TLShapeUtilCanvasSvgDef,\n\ttype TLShapeUtilConstructor,\n} from './lib/editor/shapes/ShapeUtil'\nexport { GroupShapeUtil } from './lib/editor/shapes/group/GroupShapeUtil'\nexport {\n\tgetPerfectDashProps,\n\ttype PerfectDashTerminal,\n} from './lib/editor/shapes/shared/getPerfectDashProps'\nexport { resizeBox, type ResizeBoxOptions } from './lib/editor/shapes/shared/resizeBox'\nexport { resizeScaled } from './lib/editor/shapes/shared/resizeScaled'\nexport { BaseBoxShapeTool } from './lib/editor/tools/BaseBoxShapeTool/BaseBoxShapeTool'\nexport { maybeSnapToGrid } from './lib/editor/tools/BaseBoxShapeTool/children/Pointing'\nexport { StateNode, type TLStateNodeConstructor } from './lib/editor/tools/StateNode'\nexport {\n\tuseDelaySvgExport,\n\tuseSvgExportContext,\n\ttype SvgExportContext,\n\ttype SvgExportDef,\n} from './lib/editor/types/SvgExportContext'\nexport { type TLContent } from './lib/editor/types/clipboard-types'\nexport { type TLEventMap, type TLEventMapHandler } from './lib/editor/types/emit-types'\nexport {\n\tEVENT_NAME_MAP,\n\ttype TLBaseEventInfo,\n\ttype TLCLickEventName,\n\ttype TLCancelEvent,\n\ttype TLCancelEventInfo,\n\ttype TLClickEvent,\n\ttype TLClickEventInfo,\n\ttype TLCompleteEvent,\n\ttype TLCompleteEventInfo,\n\ttype TLEnterEventHandler,\n\ttype TLEventHandlers,\n\ttype TLEventInfo,\n\ttype TLEventName,\n\ttype TLExitEventHandler,\n\ttype TLInterruptEvent,\n\ttype TLInterruptEventInfo,\n\ttype TLKeyboardEvent,\n\ttype TLKeyboardEventInfo,\n\ttype TLKeyboardEventName,\n\ttype TLPinchEvent,\n\ttype TLPinchEventInfo,\n\ttype TLPinchEventName,\n\ttype TLPointerEvent,\n\ttype TLPointerEventInfo,\n\ttype TLPointerEventName,\n\ttype TLPointerEventTarget,\n\ttype TLTickEvent,\n\ttype TLTickEventInfo,\n\ttype TLWheelEvent,\n\ttype TLWheelEventInfo,\n\ttype UiEvent,\n\ttype UiEventType,\n} from './lib/editor/types/event-types'\nexport {\n\ttype TLBaseExternalContent,\n\ttype TLEmbedExternalContent,\n\ttype TLErrorExternalContentSource,\n\ttype TLExcalidrawExternalContent,\n\ttype TLExcalidrawExternalContentSource,\n\ttype TLExternalAsset,\n\ttype TLExternalContent,\n\ttype TLExternalContentSource,\n\ttype TLFileExternalAsset,\n\ttype TLFilesExternalContent,\n\ttype TLSvgTextExternalContent,\n\ttype TLTextExternalContent,\n\ttype TLTextExternalContentSource,\n\ttype TLTldrawExternalContent,\n\ttype TLTldrawExternalContentSource,\n\ttype TLUrlExternalAsset,\n\ttype TLUrlExternalContent,\n} from './lib/editor/types/external-content'\nexport {\n\ttype TLHistoryBatchOptions,\n\ttype TLHistoryDiff,\n\ttype TLHistoryEntry,\n\ttype TLHistoryMark,\n} from './lib/editor/types/history-types'\nexport {\n\ttype OptionalKeys,\n\ttype RequiredKeys,\n\ttype TLCameraConstraints,\n\ttype TLCameraMoveOptions,\n\ttype TLCameraOptions,\n\ttype TLExportType,\n\ttype TLImageExportOptions,\n\ttype TLSvgExportOptions,\n\ttype TLSvgOptions,\n} from './lib/editor/types/misc-types'\nexport {\n\ttype TLAdjacentDirection,\n\ttype TLResizeHandle,\n\ttype TLSelectionHandle,\n} from './lib/editor/types/selection-types'\nexport { getSvgAsImage } from './lib/exports/getSvgAsImage'\nexport { tlenv } from './lib/globals/environment'\nexport { tlmenus } from './lib/globals/menus'\nexport { tltime } from './lib/globals/time'\nexport {\n\tContainerProvider,\n\tuseContainer,\n\tuseContainerIfExists,\n\ttype ContainerProviderProps,\n} from './lib/hooks/useContainer'\nexport { getCursor } from './lib/hooks/useCursor'\nexport { EditorContext, useEditor, useMaybeEditor } from './lib/hooks/useEditor'\nexport { useEditorComponents } from './lib/hooks/useEditorComponents'\nexport type { TLEditorComponents } from './lib/hooks/useEditorComponents'\nexport { useEvent, useReactiveEvent } from './lib/hooks/useEvent'\nexport { useGlobalMenuIsOpen } from './lib/hooks/useGlobalMenuIsOpen'\nexport { useShallowArrayIdentity, useShallowObjectIdentity } from './lib/hooks/useIdentity'\nexport { useIsCropping } from './lib/hooks/useIsCropping'\nexport { useIsDarkMode } from './lib/hooks/useIsDarkMode'\nexport { useIsEditing } from './lib/hooks/useIsEditing'\nexport { useLocalStore } from './lib/hooks/useLocalStore'\nexport { usePassThroughMouseOverEvents } from './lib/hooks/usePassThroughMouseOverEvents'\nexport { usePassThroughWheelEvents } from './lib/hooks/usePassThroughWheelEvents'\nexport { usePeerIds } from './lib/hooks/usePeerIds'\nexport { usePresence } from './lib/hooks/usePresence'\nexport { useRefState } from './lib/hooks/useRefState'\nexport {\n\tsanitizeId,\n\tsuffixSafeId,\n\tuseSharedSafeId,\n\tuseUniqueSafeId,\n\ttype SafeId,\n} from './lib/hooks/useSafeId'\nexport { useSelectionEvents } from './lib/hooks/useSelectionEvents'\nexport { useTLSchemaFromUtils, useTLStore } from './lib/hooks/useTLStore'\nexport { useTransform } from './lib/hooks/useTransform'\nexport { useViewportHeight } from './lib/hooks/useViewportHeight'\nexport {\n\tLicenseManager,\n\ttype InvalidLicenseKeyResult,\n\ttype InvalidLicenseReason,\n\ttype LicenseFromKeyResult,\n\ttype LicenseInfo,\n\ttype TestEnvironment,\n\ttype ValidLicenseKeyResult,\n} from './lib/license/LicenseManager'\nexport { defaultTldrawOptions, type TldrawOptions } from './lib/options'\nexport {\n\tBox,\n\tROTATE_CORNER_TO_SELECTION_CORNER,\n\trotateSelectionHandle,\n\ttype BoxLike,\n\ttype RotateCorner,\n\ttype SelectionCorner,\n\ttype SelectionEdge,\n\ttype SelectionHandle,\n} from './lib/primitives/Box'\nexport { Mat, type MatLike, type MatModel } from './lib/primitives/Mat'\nexport { Vec, type VecLike } from './lib/primitives/Vec'\nexport { EASINGS } from './lib/primitives/easings'\nexport { Arc2d } from './lib/primitives/geometry/Arc2d'\nexport { Circle2d } from './lib/primitives/geometry/Circle2d'\nexport { CubicBezier2d } from './lib/primitives/geometry/CubicBezier2d'\nexport { CubicSpline2d } from './lib/primitives/geometry/CubicSpline2d'\nexport { Edge2d } from './lib/primitives/geometry/Edge2d'\nexport { Ellipse2d } from './lib/primitives/geometry/Ellipse2d'\nexport {\n\tGeometry2d,\n\tGeometry2dFilters,\n\tTransformedGeometry2d,\n\ttype Geometry2dOptions,\n\ttype TransformedGeometry2dOptions,\n} from './lib/primitives/geometry/Geometry2d'\nexport { Group2d } from './lib/primitives/geometry/Group2d'\nexport { Point2d } from './lib/primitives/geometry/Point2d'\nexport { Polygon2d } from './lib/primitives/geometry/Polygon2d'\nexport { Polyline2d } from './lib/primitives/geometry/Polyline2d'\nexport { Rectangle2d } from './lib/primitives/geometry/Rectangle2d'\nexport { Stadium2d } from './lib/primitives/geometry/Stadium2d'\nexport {\n\tintersectCircleCircle,\n\tintersectCirclePolygon,\n\tintersectCirclePolyline,\n\tintersectLineSegmentCircle,\n\tintersectLineSegmentLineSegment,\n\tintersectLineSegmentPolygon,\n\tintersectLineSegmentPolyline,\n\tintersectPolygonBounds,\n\tintersectPolygonPolygon,\n\tlinesIntersect,\n\tpolygonIntersectsPolyline,\n\tpolygonsIntersect,\n} from './lib/primitives/intersect'\nexport {\n\tHALF_PI,\n\tPI,\n\tPI2,\n\tSIN,\n\tangleDistance,\n\tapproximately,\n\tareAnglesCompatible,\n\taverage,\n\tcanonicalizeRotation,\n\tcenterOfCircleFromThreePoints,\n\tclamp,\n\tclampRadians,\n\tclockwiseAngleDist,\n\tcounterClockwiseAngleDist,\n\tdegreesToRadians,\n\tgetArcMeasure,\n\tgetPointInArcT,\n\tgetPointOnCircle,\n\tgetPointsOnArc,\n\tgetPolygonVertices,\n\tisSafeFloat,\n\tperimeterOfEllipse,\n\tpointInPolygon,\n\tprecise,\n\tradiansToDegrees,\n\trangeIntersection,\n\tshortAngleDist,\n\tsnapAngle,\n\ttoDomPrecision,\n\ttoFixed,\n\ttoPrecision,\n} from './lib/primitives/utils'\nexport {\n\tReadonlySharedStyleMap,\n\tSharedStyleMap,\n\ttype SharedStyle,\n} from './lib/utils/SharedStylesMap'\nexport { dataUrlToFile, getDefaultCdnBaseUrl } from './lib/utils/assets'\nexport { clampToBrowserMaxCanvasSize, type CanvasMaxSize } from './lib/utils/browserCanvasMaxSize'\nexport {\n\tdebugFlags,\n\tfeatureFlags,\n\ttype DebugFlag,\n\ttype DebugFlagDef,\n\ttype DebugFlagDefaults,\n} from './lib/utils/debug-flags'\nexport {\n\tcreateDeepLinkString,\n\tparseDeepLinkString,\n\ttype TLDeepLink,\n\ttype TLDeepLinkOptions,\n} from './lib/utils/deepLinks'\nexport {\n\tactiveElementShouldCaptureKeys,\n\tloopToHtmlElement,\n\tpreventDefault,\n\treleasePointerCapture,\n\tsetPointerCapture,\n\tstopEventPropagation,\n} from './lib/utils/dom'\nexport { getIncrementedName } from './lib/utils/getIncrementedName'\nexport { getPointerInfo } from './lib/utils/getPointerInfo'\nexport { getSvgPathFromPoints } from './lib/utils/getSvgPathFromPoints'\nexport { hardResetEditor } from './lib/utils/hardResetEditor'\nexport { isAccelKey } from './lib/utils/keyboard'\nexport { normalizeWheel } from './lib/utils/normalizeWheel'\nexport { refreshPage } from './lib/utils/refreshPage'\nexport {\n\tgetFontsFromRichText,\n\ttype RichTextFontVisitor,\n\ttype RichTextFontVisitorState,\n\ttype TLTextOptions,\n\ttype TiptapEditor,\n\ttype TiptapNode,\n} from './lib/utils/richText'\nexport {\n\tapplyRotationToSnapshotShapes,\n\tgetRotationSnapshot,\n\ttype TLRotationSnapshot,\n} from './lib/utils/rotation'\nexport { runtime, setRuntimeOverrides } from './lib/utils/runtime'\nexport { LocalIndexedDb, Table, type StoreName } from './lib/utils/sync/LocalIndexedDb'\nexport { type TLStoreWithStatus } from './lib/utils/sync/StoreWithStatus'\nexport { hardReset } from './lib/utils/sync/hardReset'\nexport { uniq } from './lib/utils/uniq'\nexport { openWindow } from './lib/utils/window-open'\n\n/**\n * @deprecated Licensing is now enabled in the tldraw SDK.\n * @public */\nexport function debugEnableLicensing() {\n\t// noop\n\treturn\n}\n\nregisterTldrawLibraryVersion(\n\t(globalThis as any).TLDRAW_LIBRARY_NAME,\n\t(globalThis as any).TLDRAW_LIBRARY_VERSION,\n\t(globalThis as any).TLDRAW_LIBRARY_MODULES\n)\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { registerTldrawLibraryVersion } from '@tldraw/utils'\nimport 'core-js/stable/array/at.js'\nimport 'core-js/stable/array/flat-map.js'\nimport 'core-js/stable/array/flat.js'\nimport 'core-js/stable/string/at.js'\nimport 'core-js/stable/string/replace-all.js'\nexport { areShapesContentEqual } from './lib/utils/areShapesContentEqual'\n\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/state'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/state-react'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/store'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/tlschema'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/utils'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/validate'\n\nexport {\n\tErrorScreen,\n\tLoadingScreen,\n\tTldrawEditor,\n\tuseOnMount,\n\ttype LoadingScreenProps,\n\ttype TLOnMountHandler,\n\ttype TldrawEditorBaseProps,\n\ttype TldrawEditorProps,\n\ttype TldrawEditorStoreProps,\n\ttype TldrawEditorWithStoreProps,\n\ttype TldrawEditorWithoutStoreProps,\n} from './lib/TldrawEditor'\nexport {\n\tErrorBoundary,\n\tOptionalErrorBoundary,\n\ttype TLErrorBoundaryProps,\n} from './lib/components/ErrorBoundary'\nexport { HTMLContainer, type HTMLContainerProps } from './lib/components/HTMLContainer'\nexport { MenuClickCapture } from './lib/components/MenuClickCapture'\nexport { SVGContainer, type SVGContainerProps } from './lib/components/SVGContainer'\nexport { DefaultBackground } from './lib/components/default-components/DefaultBackground'\nexport { DefaultBrush, type TLBrushProps } from './lib/components/default-components/DefaultBrush'\nexport {\n\tDefaultCanvas,\n\ttype TLCanvasComponentProps,\n} from './lib/components/default-components/DefaultCanvas'\nexport {\n\tDefaultCollaboratorHint,\n\ttype TLCollaboratorHintProps,\n} from './lib/components/default-components/DefaultCollaboratorHint'\nexport {\n\tDefaultCursor,\n\ttype TLCursorProps,\n} from './lib/components/default-components/DefaultCursor'\nexport {\n\tDefaultErrorFallback,\n\ttype TLErrorFallbackComponent,\n} from './lib/components/default-components/DefaultErrorFallback'\nexport { DefaultGrid, type TLGridProps } from './lib/components/default-components/DefaultGrid'\nexport {\n\tDefaultHandle,\n\ttype TLHandleProps,\n} from './lib/components/default-components/DefaultHandle'\nexport {\n\tDefaultHandles,\n\ttype TLHandlesProps,\n} from './lib/components/default-components/DefaultHandles'\nexport {\n\tDefaultScribble,\n\ttype TLScribbleProps,\n} from './lib/components/default-components/DefaultScribble'\nexport {\n\tDefaultSelectionBackground,\n\ttype TLSelectionBackgroundProps,\n} from './lib/components/default-components/DefaultSelectionBackground'\nexport {\n\tDefaultSelectionForeground,\n\ttype TLSelectionForegroundProps,\n} from './lib/components/default-components/DefaultSelectionForeground'\nexport { type TLShapeErrorFallbackComponent } from './lib/components/default-components/DefaultShapeErrorFallback'\nexport {\n\tDefaultShapeIndicator,\n\ttype TLShapeIndicatorProps,\n} from './lib/components/default-components/DefaultShapeIndicator'\nexport { type TLShapeIndicatorErrorFallbackComponent } from './lib/components/default-components/DefaultShapeIndicatorErrorFallback'\nexport {\n\tDefaultShapeIndicators,\n\ttype TLShapeIndicatorsProps,\n} from './lib/components/default-components/DefaultShapeIndicators'\nexport {\n\tDefaultSnapIndicator,\n\ttype TLSnapIndicatorProps,\n} from './lib/components/default-components/DefaultSnapIndictor'\nexport { DefaultSpinner } from './lib/components/default-components/DefaultSpinner'\nexport { DefaultSvgDefs } from './lib/components/default-components/DefaultSvgDefs'\nexport {\n\tgetSnapshot,\n\tloadSnapshot,\n\ttype TLEditorSnapshot,\n\ttype TLLoadSnapshotOptions,\n} from './lib/config/TLEditorSnapshot'\nexport {\n\tTAB_ID,\n\tcreateSessionStateSnapshotSignal,\n\textractSessionStateFromLegacySnapshot,\n\tloadSessionStateSnapshotIntoStore,\n\ttype TLLoadSessionStateSnapshotOptions,\n\ttype TLSessionStateSnapshot,\n} from './lib/config/TLSessionStateSnapshot'\nexport {\n\tUSER_COLORS,\n\tdefaultUserPreferences,\n\tgetFreshUserPreferences,\n\tgetUserPreferences,\n\tsetUserPreferences,\n\tuserTypeValidator,\n\ttype TLUserPreferences,\n} from './lib/config/TLUserPreferences'\nexport {\n\tcreateTLSchemaFromUtils,\n\tcreateTLStore,\n\tinlineBase64AssetStore,\n\ttype TLStoreBaseOptions,\n\ttype TLStoreEventInfo,\n\ttype TLStoreOptions,\n\ttype TLStoreSchemaOptions,\n} from './lib/config/createTLStore'\nexport { createTLUser, useTldrawUser, type TLUser } from './lib/config/createTLUser'\nexport { type TLAnyBindingUtilConstructor } from './lib/config/defaultBindings'\nexport { coreShapes, type TLAnyShapeUtilConstructor } from './lib/config/defaultShapes'\nexport { DEFAULT_ANIMATION_OPTIONS, DEFAULT_CAMERA_OPTIONS, SIDES } from './lib/constants'\nexport {\n\tEditor,\n\ttype TLEditorOptions,\n\ttype TLEditorRunOptions,\n\ttype TLRenderingShape,\n\ttype TLResizeShapeOptions,\n} from './lib/editor/Editor'\nexport {\n\tBindingUtil,\n\ttype BindingOnChangeOptions,\n\ttype BindingOnCreateOptions,\n\ttype BindingOnDeleteOptions,\n\ttype BindingOnShapeChangeOptions,\n\ttype BindingOnShapeDeleteOptions,\n\ttype BindingOnShapeIsolateOptions,\n\ttype TLBindingUtilConstructor,\n} from './lib/editor/bindings/BindingUtil'\nexport { ClickManager, type TLClickState } from './lib/editor/managers/ClickManager/ClickManager'\nexport { EdgeScrollManager } from './lib/editor/managers/EdgeScrollManager/EdgeScrollManager'\nexport {\n\tFontManager,\n\ttype TLFontFace,\n\ttype TLFontFaceSource,\n} from './lib/editor/managers/FontManager/FontManager'\nexport { HistoryManager } from './lib/editor/managers/HistoryManager/HistoryManager'\nexport {\n\tScribbleManager,\n\ttype ScribbleItem,\n} from './lib/editor/managers/ScribbleManager/ScribbleManager'\nexport {\n\tBoundsSnaps,\n\ttype BoundsSnapGeometry,\n\ttype BoundsSnapPoint,\n} from './lib/editor/managers/SnapManager/BoundsSnaps'\nexport { HandleSnaps, type HandleSnapGeometry } from './lib/editor/managers/SnapManager/HandleSnaps'\nexport {\n\tSnapManager,\n\ttype GapsSnapIndicator,\n\ttype PointsSnapIndicator,\n\ttype SnapData,\n\ttype SnapIndicator,\n} from './lib/editor/managers/SnapManager/SnapManager'\nexport {\n\tTextManager,\n\ttype TLMeasureTextSpanOpts,\n} from './lib/editor/managers/TextManager/TextManager'\nexport { UserPreferencesManager } from './lib/editor/managers/UserPreferencesManager/UserPreferencesManager'\nexport { BaseBoxShapeUtil, type TLBaseBoxShape } from './lib/editor/shapes/BaseBoxShapeUtil'\nexport {\n\tShapeUtil,\n\ttype TLCropInfo,\n\ttype TLGeometryOpts,\n\ttype TLHandleDragInfo,\n\ttype TLResizeInfo,\n\ttype TLResizeMode,\n\ttype TLShapeUtilCanBeLaidOutOpts,\n\ttype TLShapeUtilCanBindOpts,\n\ttype TLShapeUtilCanvasSvgDef,\n\ttype TLShapeUtilConstructor,\n} from './lib/editor/shapes/ShapeUtil'\nexport { GroupShapeUtil } from './lib/editor/shapes/group/GroupShapeUtil'\nexport {\n\tgetPerfectDashProps,\n\ttype PerfectDashTerminal,\n} from './lib/editor/shapes/shared/getPerfectDashProps'\nexport { resizeBox, type ResizeBoxOptions } from './lib/editor/shapes/shared/resizeBox'\nexport { resizeScaled } from './lib/editor/shapes/shared/resizeScaled'\nexport { BaseBoxShapeTool } from './lib/editor/tools/BaseBoxShapeTool/BaseBoxShapeTool'\nexport { maybeSnapToGrid } from './lib/editor/tools/BaseBoxShapeTool/children/Pointing'\nexport { StateNode, type TLStateNodeConstructor } from './lib/editor/tools/StateNode'\nexport {\n\tuseDelaySvgExport,\n\tuseSvgExportContext,\n\ttype SvgExportContext,\n\ttype SvgExportDef,\n} from './lib/editor/types/SvgExportContext'\nexport { type TLContent } from './lib/editor/types/clipboard-types'\nexport { type TLEventMap, type TLEventMapHandler } from './lib/editor/types/emit-types'\nexport {\n\tEVENT_NAME_MAP,\n\ttype TLBaseEventInfo,\n\ttype TLCLickEventName,\n\ttype TLCancelEvent,\n\ttype TLCancelEventInfo,\n\ttype TLClickEvent,\n\ttype TLClickEventInfo,\n\ttype TLCompleteEvent,\n\ttype TLCompleteEventInfo,\n\ttype TLEnterEventHandler,\n\ttype TLEventHandlers,\n\ttype TLEventInfo,\n\ttype TLEventName,\n\ttype TLExitEventHandler,\n\ttype TLInterruptEvent,\n\ttype TLInterruptEventInfo,\n\ttype TLKeyboardEvent,\n\ttype TLKeyboardEventInfo,\n\ttype TLKeyboardEventName,\n\ttype TLPinchEvent,\n\ttype TLPinchEventInfo,\n\ttype TLPinchEventName,\n\ttype TLPointerEvent,\n\ttype TLPointerEventInfo,\n\ttype TLPointerEventName,\n\ttype TLPointerEventTarget,\n\ttype TLTickEvent,\n\ttype TLTickEventInfo,\n\ttype TLWheelEvent,\n\ttype TLWheelEventInfo,\n\ttype UiEvent,\n\ttype UiEventType,\n} from './lib/editor/types/event-types'\nexport {\n\ttype TLBaseExternalContent,\n\ttype TLEmbedExternalContent,\n\ttype TLErrorExternalContentSource,\n\ttype TLExcalidrawExternalContent,\n\ttype TLExcalidrawExternalContentSource,\n\ttype TLExternalAsset,\n\ttype TLExternalContent,\n\ttype TLExternalContentSource,\n\ttype TLFileExternalAsset,\n\ttype TLFilesExternalContent,\n\ttype TLSvgTextExternalContent,\n\ttype TLTextExternalContent,\n\ttype TLTextExternalContentSource,\n\ttype TLTldrawExternalContent,\n\ttype TLTldrawExternalContentSource,\n\ttype TLUrlExternalAsset,\n\ttype TLUrlExternalContent,\n} from './lib/editor/types/external-content'\nexport {\n\ttype TLHistoryBatchOptions,\n\ttype TLHistoryDiff,\n\ttype TLHistoryEntry,\n\ttype TLHistoryMark,\n} from './lib/editor/types/history-types'\nexport {\n\ttype OptionalKeys,\n\ttype RequiredKeys,\n\ttype TLCameraConstraints,\n\ttype TLCameraMoveOptions,\n\ttype TLCameraOptions,\n\ttype TLExportType,\n\ttype TLImageExportOptions,\n\ttype TLSvgExportOptions,\n\ttype TLSvgOptions,\n} from './lib/editor/types/misc-types'\nexport {\n\ttype TLAdjacentDirection,\n\ttype TLResizeHandle,\n\ttype TLSelectionHandle,\n} from './lib/editor/types/selection-types'\nexport { getSvgAsImage } from './lib/exports/getSvgAsImage'\nexport { tlenv } from './lib/globals/environment'\nexport { tlmenus } from './lib/globals/menus'\nexport { tltime } from './lib/globals/time'\nexport {\n\tContainerProvider,\n\tuseContainer,\n\tuseContainerIfExists,\n\ttype ContainerProviderProps,\n} from './lib/hooks/useContainer'\nexport { getCursor } from './lib/hooks/useCursor'\nexport { EditorContext, useEditor, useMaybeEditor } from './lib/hooks/useEditor'\nexport { useEditorComponents } from './lib/hooks/useEditorComponents'\nexport type { TLEditorComponents } from './lib/hooks/useEditorComponents'\nexport { useEvent, useReactiveEvent } from './lib/hooks/useEvent'\nexport { useGlobalMenuIsOpen } from './lib/hooks/useGlobalMenuIsOpen'\nexport { useShallowArrayIdentity, useShallowObjectIdentity } from './lib/hooks/useIdentity'\nexport { useIsCropping } from './lib/hooks/useIsCropping'\nexport { useIsDarkMode } from './lib/hooks/useIsDarkMode'\nexport { useIsEditing } from './lib/hooks/useIsEditing'\nexport { useLocalStore } from './lib/hooks/useLocalStore'\nexport { usePassThroughMouseOverEvents } from './lib/hooks/usePassThroughMouseOverEvents'\nexport { usePassThroughWheelEvents } from './lib/hooks/usePassThroughWheelEvents'\nexport { usePeerIds } from './lib/hooks/usePeerIds'\nexport { usePresence } from './lib/hooks/usePresence'\nexport { useRefState } from './lib/hooks/useRefState'\nexport {\n\tsanitizeId,\n\tsuffixSafeId,\n\tuseSharedSafeId,\n\tuseUniqueSafeId,\n\ttype SafeId,\n} from './lib/hooks/useSafeId'\nexport { useSelectionEvents } from './lib/hooks/useSelectionEvents'\nexport { useTLSchemaFromUtils, useTLStore } from './lib/hooks/useTLStore'\nexport { useTransform } from './lib/hooks/useTransform'\nexport { useViewportHeight } from './lib/hooks/useViewportHeight'\nexport {\n\tLicenseManager,\n\ttype InvalidLicenseKeyResult,\n\ttype InvalidLicenseReason,\n\ttype LicenseFromKeyResult,\n\ttype LicenseInfo,\n\ttype TestEnvironment,\n\ttype ValidLicenseKeyResult,\n} from './lib/license/LicenseManager'\nexport { defaultTldrawOptions, type TldrawOptions } from './lib/options'\nexport {\n\tBox,\n\tROTATE_CORNER_TO_SELECTION_CORNER,\n\trotateSelectionHandle,\n\ttype BoxLike,\n\ttype RotateCorner,\n\ttype SelectionCorner,\n\ttype SelectionEdge,\n\ttype SelectionHandle,\n} from './lib/primitives/Box'\nexport { Mat, type MatLike, type MatModel } from './lib/primitives/Mat'\nexport { Vec, type VecLike } from './lib/primitives/Vec'\nexport { EASINGS } from './lib/primitives/easings'\nexport { Arc2d } from './lib/primitives/geometry/Arc2d'\nexport { Circle2d } from './lib/primitives/geometry/Circle2d'\nexport { CubicBezier2d } from './lib/primitives/geometry/CubicBezier2d'\nexport { CubicSpline2d } from './lib/primitives/geometry/CubicSpline2d'\nexport { Edge2d } from './lib/primitives/geometry/Edge2d'\nexport { Ellipse2d } from './lib/primitives/geometry/Ellipse2d'\nexport {\n\tGeometry2d,\n\tGeometry2dFilters,\n\tTransformedGeometry2d,\n\ttype Geometry2dOptions,\n\ttype TransformedGeometry2dOptions,\n} from './lib/primitives/geometry/Geometry2d'\nexport { Group2d } from './lib/primitives/geometry/Group2d'\nexport { Point2d } from './lib/primitives/geometry/Point2d'\nexport { Polygon2d } from './lib/primitives/geometry/Polygon2d'\nexport { Polyline2d } from './lib/primitives/geometry/Polyline2d'\nexport { Rectangle2d } from './lib/primitives/geometry/Rectangle2d'\nexport { Stadium2d } from './lib/primitives/geometry/Stadium2d'\nexport {\n\tintersectCircleCircle,\n\tintersectCirclePolygon,\n\tintersectCirclePolyline,\n\tintersectLineSegmentCircle,\n\tintersectLineSegmentLineSegment,\n\tintersectLineSegmentPolygon,\n\tintersectLineSegmentPolyline,\n\tintersectPolygonBounds,\n\tintersectPolygonPolygon,\n\tlinesIntersect,\n\tpolygonIntersectsPolyline,\n\tpolygonsIntersect,\n} from './lib/primitives/intersect'\nexport {\n\tHALF_PI,\n\tPI,\n\tPI2,\n\tSIN,\n\tangleDistance,\n\tapproximately,\n\tareAnglesCompatible,\n\taverage,\n\tcanonicalizeRotation,\n\tcenterOfCircleFromThreePoints,\n\tclamp,\n\tclampRadians,\n\tclockwiseAngleDist,\n\tcounterClockwiseAngleDist,\n\tdegreesToRadians,\n\tgetArcMeasure,\n\tgetPointInArcT,\n\tgetPointOnCircle,\n\tgetPointsOnArc,\n\tgetPolygonVertices,\n\tisSafeFloat,\n\tperimeterOfEllipse,\n\tpointInPolygon,\n\tprecise,\n\tradiansToDegrees,\n\trangeIntersection,\n\tshortAngleDist,\n\tsnapAngle,\n\ttoDomPrecision,\n\ttoFixed,\n\ttoPrecision,\n} from './lib/primitives/utils'\nexport {\n\tReadonlySharedStyleMap,\n\tSharedStyleMap,\n\ttype SharedStyle,\n} from './lib/utils/SharedStylesMap'\nexport { dataUrlToFile, getDefaultCdnBaseUrl } from './lib/utils/assets'\nexport { clampToBrowserMaxCanvasSize, type CanvasMaxSize } from './lib/utils/browserCanvasMaxSize'\nexport {\n\tdebugFlags,\n\tfeatureFlags,\n\ttype DebugFlag,\n\ttype DebugFlagDef,\n\ttype DebugFlagDefaults,\n} from './lib/utils/debug-flags'\nexport {\n\tcreateDeepLinkString,\n\tparseDeepLinkString,\n\ttype TLDeepLink,\n\ttype TLDeepLinkOptions,\n} from './lib/utils/deepLinks'\nexport {\n\tactiveElementShouldCaptureKeys,\n\tloopToHtmlElement,\n\tpreventDefault,\n\treleasePointerCapture,\n\tsetPointerCapture,\n\tstopEventPropagation,\n} from './lib/utils/dom'\nexport { getIncrementedName } from './lib/utils/getIncrementedName'\nexport { getPointerInfo } from './lib/utils/getPointerInfo'\nexport { getSvgPathFromPoints } from './lib/utils/getSvgPathFromPoints'\nexport { hardResetEditor } from './lib/utils/hardResetEditor'\nexport { isAccelKey } from './lib/utils/keyboard'\nexport { normalizeWheel } from './lib/utils/normalizeWheel'\nexport { refreshPage } from './lib/utils/refreshPage'\nexport {\n\tgetFontsFromRichText,\n\ttype RichTextFontVisitor,\n\ttype RichTextFontVisitorState,\n\ttype TLTextOptions,\n\ttype TiptapEditor,\n\ttype TiptapNode,\n} from './lib/utils/richText'\nexport {\n\tapplyRotationToSnapshotShapes,\n\tgetRotationSnapshot,\n\ttype TLRotationSnapshot,\n} from './lib/utils/rotation'\nexport { runtime, setRuntimeOverrides } from './lib/utils/runtime'\nexport { LocalIndexedDb, Table, type StoreName } from './lib/utils/sync/LocalIndexedDb'\nexport { type TLStoreWithStatus } from './lib/utils/sync/StoreWithStatus'\nexport { hardReset } from './lib/utils/sync/hardReset'\nexport { uniq } from './lib/utils/uniq'\nexport { openWindow } from './lib/utils/window-open'\n\n/**\n * @deprecated Licensing is now enabled in the tldraw SDK.\n * @public */\nexport function debugEnableLicensing() {\n\t// noop\n\treturn\n}\n\nregisterTldrawLibraryVersion(\n\t(globalThis as any).TLDRAW_LIBRARY_NAME,\n\t(globalThis as any).TLDRAW_LIBRARY_VERSION,\n\t(globalThis as any).TLDRAW_LIBRARY_MODULES\n)\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_at", "import_utils"]
7
7
  }
@@ -112,16 +112,16 @@ var import_bindingsIndex = require("./derivations/bindingsIndex");
112
112
  var import_notVisibleShapes = require("./derivations/notVisibleShapes");
113
113
  var import_parentsToChildren = require("./derivations/parentsToChildren");
114
114
  var import_shapeIdsInCurrentPage = require("./derivations/shapeIdsInCurrentPage");
115
- var import_ClickManager = require("./managers/ClickManager");
116
- var import_EdgeScrollManager = require("./managers/EdgeScrollManager");
117
- var import_FocusManager = require("./managers/FocusManager");
118
- var import_FontManager = require("./managers/FontManager");
119
- var import_HistoryManager = require("./managers/HistoryManager");
120
- var import_ScribbleManager = require("./managers/ScribbleManager");
115
+ var import_ClickManager = require("./managers/ClickManager/ClickManager");
116
+ var import_EdgeScrollManager = require("./managers/EdgeScrollManager/EdgeScrollManager");
117
+ var import_FocusManager = require("./managers/FocusManager/FocusManager");
118
+ var import_FontManager = require("./managers/FontManager/FontManager");
119
+ var import_HistoryManager = require("./managers/HistoryManager/HistoryManager");
120
+ var import_ScribbleManager = require("./managers/ScribbleManager/ScribbleManager");
121
121
  var import_SnapManager = require("./managers/SnapManager/SnapManager");
122
- var import_TextManager = require("./managers/TextManager");
123
- var import_TickManager = require("./managers/TickManager");
124
- var import_UserPreferencesManager = require("./managers/UserPreferencesManager");
122
+ var import_TextManager = require("./managers/TextManager/TextManager");
123
+ var import_TickManager = require("./managers/TickManager/TickManager");
124
+ var import_UserPreferencesManager = require("./managers/UserPreferencesManager/UserPreferencesManager");
125
125
  var import_RootState = require("./tools/RootState");
126
126
  var __setMetaKeyTimeout_dec, __setCtrlKeyTimeout_dec, __setAltKeyTimeout_dec, __setShiftKeyTimeout_dec, _getIsReadonly_dec, _getIsFocused_dec, _getSharedOpacity_dec, _getSharedStyles_dec, __getSelectionSharedStyles_dec, __getBindingsIndexCache_dec, _getCurrentPageRenderingShapesSorted_dec, _getCurrentPageShapesSorted_dec, _getCurrentPageShapes_dec, _getCurrentPageBounds_dec, _getCulledShapes_dec, __notVisibleShapes_dec, __getShapeMaskedPageBoundsCache_dec, __getShapeMaskCache_dec, __getShapeClipPathCache_dec, __getShapePageBoundsCache_dec, __getShapePageTransformCache_dec, __getShapeHandlesCache_dec, __getAllAssetsQuery_dec, _getCurrentPageShapeIdsSorted_dec, _getCurrentPageId_dec, _getPages_dec, __getAllPagesQuery_dec, _getRenderingShapes_dec, _getCollaboratorsOnCurrentPage_dec, _getCollaborators_dec, __getCollaboratorsQuery_dec, _getViewportPageBounds_dec, _getViewportScreenCenter_dec, _getViewportScreenBounds_dec, _getZoomLevel_dec, _getCameraForFollowing_dec, _getViewportPageBoundsForFollowing_dec, _getCamera_dec, __unsafe_getCameraId_dec, _getErasingShapes_dec, _getErasingShapeIds_dec, _getHintingShape_dec, _getHintingShapeIds_dec, _getHoveredShape_dec, _getHoveredShapeId_dec, _getRichTextEditor_dec, _getEditingShape_dec, _getEditingShapeId_dec, _getFocusedGroup_dec, _getFocusedGroupId_dec, _getSelectionRotatedScreenBounds_dec, _getSelectionRotatedPageBounds_dec, _getSelectionRotation_dec, _getSelectionPageBounds_dec, _getOnlySelectedShape_dec, _getOnlySelectedShapeId_dec, _getCurrentPageShapesInReadingOrder_dec, _getSelectedShapes_dec, _getSelectedShapeIds_dec, __getCurrentPageStateId_dec, _getCurrentPageState_dec, __getPageStatesQuery_dec, _getPageStates_dec, _getIsMenuOpen_dec, _getOpenMenus_dec, _getInstanceState_dec, _getDocumentSettings_dec, _getCurrentToolId_dec, _getCurrentTool_dec, _getPath_dec, _getCanRedo_dec, _getCanUndo_dec, _getIsShapeHiddenCache_dec, _a, _init;
127
127
  class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_dec = [import_state.computed], _getCanUndo_dec = [import_state.computed], _getCanRedo_dec = [import_state.computed], _getPath_dec = [import_state.computed], _getCurrentTool_dec = [import_state.computed], _getCurrentToolId_dec = [import_state.computed], _getDocumentSettings_dec = [import_state.computed], _getInstanceState_dec = [import_state.computed], _getOpenMenus_dec = [import_state.computed], _getIsMenuOpen_dec = [import_state.computed], _getPageStates_dec = [import_state.computed], __getPageStatesQuery_dec = [import_state.computed], _getCurrentPageState_dec = [import_state.computed], __getCurrentPageStateId_dec = [import_state.computed], _getSelectedShapeIds_dec = [import_state.computed], _getSelectedShapes_dec = [import_state.computed], _getCurrentPageShapesInReadingOrder_dec = [import_state.computed], _getOnlySelectedShapeId_dec = [import_state.computed], _getOnlySelectedShape_dec = [import_state.computed], _getSelectionPageBounds_dec = [import_state.computed], _getSelectionRotation_dec = [import_state.computed], _getSelectionRotatedPageBounds_dec = [import_state.computed], _getSelectionRotatedScreenBounds_dec = [import_state.computed], _getFocusedGroupId_dec = [import_state.computed], _getFocusedGroup_dec = [import_state.computed], _getEditingShapeId_dec = [import_state.computed], _getEditingShape_dec = [import_state.computed], _getRichTextEditor_dec = [import_state.computed], _getHoveredShapeId_dec = [import_state.computed], _getHoveredShape_dec = [import_state.computed], _getHintingShapeIds_dec = [import_state.computed], _getHintingShape_dec = [import_state.computed], _getErasingShapeIds_dec = [import_state.computed], _getErasingShapes_dec = [import_state.computed], __unsafe_getCameraId_dec = [import_state.computed], _getCamera_dec = [import_state.computed], _getViewportPageBoundsForFollowing_dec = [import_state.computed], _getCameraForFollowing_dec = [import_state.computed], _getZoomLevel_dec = [import_state.computed], _getViewportScreenBounds_dec = [import_state.computed], _getViewportScreenCenter_dec = [import_state.computed], _getViewportPageBounds_dec = [import_state.computed], __getCollaboratorsQuery_dec = [import_state.computed], _getCollaborators_dec = [import_state.computed], _getCollaboratorsOnCurrentPage_dec = [import_state.computed], _getRenderingShapes_dec = [import_state.computed], __getAllPagesQuery_dec = [import_state.computed], _getPages_dec = [import_state.computed], _getCurrentPageId_dec = [import_state.computed], _getCurrentPageShapeIdsSorted_dec = [import_state.computed], __getAllAssetsQuery_dec = [import_state.computed], __getShapeHandlesCache_dec = [import_state.computed], __getShapePageTransformCache_dec = [import_state.computed], __getShapePageBoundsCache_dec = [import_state.computed], __getShapeClipPathCache_dec = [import_state.computed], __getShapeMaskCache_dec = [import_state.computed], __getShapeMaskedPageBoundsCache_dec = [import_state.computed], __notVisibleShapes_dec = [import_state.computed], _getCulledShapes_dec = [import_state.computed], _getCurrentPageBounds_dec = [import_state.computed], _getCurrentPageShapes_dec = [import_state.computed], _getCurrentPageShapesSorted_dec = [import_state.computed], _getCurrentPageRenderingShapesSorted_dec = [import_state.computed], __getBindingsIndexCache_dec = [import_state.computed], __getSelectionSharedStyles_dec = [import_state.computed], _getSharedStyles_dec = [(0, import_state.computed)({ isEqual: (a, b) => a.equals(b) })], _getSharedOpacity_dec = [import_state.computed], _getIsFocused_dec = [import_state.computed], _getIsReadonly_dec = [import_state.computed], __setShiftKeyTimeout_dec = [import_utils.bind], __setAltKeyTimeout_dec = [import_utils.bind], __setCtrlKeyTimeout_dec = [import_utils.bind], __setMetaKeyTimeout_dec = [import_utils.bind], _a) {
@@ -302,7 +302,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
302
302
  __publicField(this, "_currentPageShapeIds");
303
303
  /* --------------------- Shapes --------------------- */
304
304
  __publicField(this, "_shapeGeometryCaches", {});
305
- __publicField(this, "_shapePageGeometryCaches", {});
306
305
  // Parents and children
307
306
  /**
308
307
  * A cache of parents to children.
@@ -559,6 +558,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
559
558
  shape: {
560
559
  afterChange: (shapeBefore, shapeAfter) => {
561
560
  for (const binding of this.getBindingsInvolvingShape(shapeAfter)) {
561
+ if ((0, import_areShapesContentEqual.areShapesContentEqual)(shapeBefore, shapeAfter)) continue;
562
562
  invalidBindingTypes.add(binding.type);
563
563
  if (binding.fromId === shapeAfter.id) {
564
564
  this.getBindingUtil(binding).onAfterChangeFromShape?.({
@@ -2819,10 +2819,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
2819
2819
  }
2820
2820
  getViewportScreenCenter() {
2821
2821
  const viewportScreenBounds = this.getViewportScreenBounds();
2822
- return new import_Vec.Vec(
2823
- viewportScreenBounds.midX - viewportScreenBounds.minX,
2824
- viewportScreenBounds.midY - viewportScreenBounds.minY
2825
- );
2822
+ return new import_Vec.Vec(viewportScreenBounds.w / 2, viewportScreenBounds.h / 2);
2826
2823
  }
2827
2824
  getViewportPageBounds() {
2828
2825
  const { w, h } = this.getViewportScreenBounds();
@@ -3497,41 +3494,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3497
3494
  typeof shape === "string" ? shape : shape.id
3498
3495
  );
3499
3496
  }
3500
- /**
3501
- * Get the geometry of a shape in page-space.
3502
- *
3503
- * @example
3504
- * ```ts
3505
- * editor.getShapePageGeometry(myShape)
3506
- * editor.getShapePageGeometry(myShapeId)
3507
- * editor.getShapePageGeometry(myShapeId, { context: "arrow" })
3508
- * ```
3509
- *
3510
- * @param shape - The shape (or shape id) to get the geometry for.
3511
- * @param opts - Additional options about the request for geometry. Passed to {@link ShapeUtil.getGeometry}.
3512
- *
3513
- * @public
3514
- */
3515
- getShapePageGeometry(shape, opts) {
3516
- const context = opts?.context ?? "none";
3517
- if (!this._shapePageGeometryCaches[context]) {
3518
- this._shapePageGeometryCaches[context] = this.store.createComputedCache(
3519
- "bounds",
3520
- (shape2) => {
3521
- const geometry = this.getShapeGeometry(shape2.id, opts);
3522
- const pageTransform = this.getShapePageTransform(shape2.id);
3523
- return geometry.transform(pageTransform);
3524
- },
3525
- {
3526
- // we only depend directly on the shape id, and changing geometry/transform will update us anyway
3527
- areRecordsEqual: () => true
3528
- }
3529
- );
3530
- }
3531
- return this._shapePageGeometryCaches[context].get(
3532
- typeof shape === "string" ? shape : shape.id
3533
- );
3534
- }
3535
3497
  _getShapeHandlesCache() {
3536
3498
  return this.store.createComputedCache(
3537
3499
  "handles",
@@ -3625,7 +3587,10 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3625
3587
  }
3626
3588
  _getShapePageBoundsCache() {
3627
3589
  return this.store.createComputedCache("pageBoundsCache", (shape) => {
3628
- return this.getShapePageGeometry(shape).bounds;
3590
+ const pageTransform = this.getShapePageTransform(shape);
3591
+ if (!pageTransform) return void 0;
3592
+ const geometry = this.getShapeGeometry(shape);
3593
+ return import_Box.Box.FromPoints(pageTransform.applyToPoints(geometry.vertices));
3629
3594
  });
3630
3595
  }
3631
3596
  /**
@@ -3682,12 +3647,11 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3682
3647
  (shape2) => this.isShapeOfType(shape2, "frame")
3683
3648
  );
3684
3649
  if (frameAncestors.length === 0) return void 0;
3685
- const pageMask = frameAncestors.map(
3686
- (s) => (
3687
- // Apply the frame transform to the frame outline to get the frame outline in the current page space
3688
- this.getShapePageGeometry(s.id).vertices
3689
- )
3690
- ).reduce((acc, b) => {
3650
+ const pageMask = frameAncestors.map((s) => {
3651
+ const geometry = this.getShapeGeometry(s.id);
3652
+ const pageTransform = this.getShapePageTransform(s.id);
3653
+ return pageTransform.applyToPoints(geometry.vertices);
3654
+ }).reduce((acc, b) => {
3691
3655
  if (!(b && acc)) return void 0;
3692
3656
  const intersection = (0, import_intersect.intersectPolygonPolygon)(acc, b);
3693
3657
  if (intersection) {
@@ -4339,8 +4303,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
4339
4303
  * @public
4340
4304
  */
4341
4305
  visitDescendants(parent, visitor) {
4342
- const parentId = typeof parent === "string" ? parent : parent.id;
4343
- const children = this.getSortedChildIdsForParent(parentId);
4306
+ const children = this.getSortedChildIdsForParent(parent);
4344
4307
  for (const id of children) {
4345
4308
  if (visitor(id) === false) continue;
4346
4309
  this.visitDescendants(id, visitor);