@tldraw/editor 3.14.0-canary.783e99a41fc5 → 3.14.0-canary.89411f68f916

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 (97) hide show
  1. package/dist-cjs/index.d.ts +54 -46
  2. package/dist-cjs/index.js +1 -1
  3. package/dist-cjs/lib/editor/Editor.js +1 -2
  4. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  5. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js +16 -20
  6. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js.map +3 -3
  7. package/dist-cjs/lib/editor/managers/FocusManager.js +2 -0
  8. package/dist-cjs/lib/editor/managers/FocusManager.js.map +2 -2
  9. package/dist-cjs/lib/editor/shapes/ShapeUtil.js +8 -0
  10. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  11. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +6 -0
  12. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +2 -2
  13. package/dist-cjs/lib/primitives/Vec.js +13 -8
  14. package/dist-cjs/lib/primitives/Vec.js.map +2 -2
  15. package/dist-cjs/lib/primitives/geometry/Arc2d.js +41 -21
  16. package/dist-cjs/lib/primitives/geometry/Arc2d.js.map +2 -2
  17. package/dist-cjs/lib/primitives/geometry/Circle2d.js +11 -11
  18. package/dist-cjs/lib/primitives/geometry/Circle2d.js.map +2 -2
  19. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js +13 -16
  20. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js.map +2 -2
  21. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js +4 -4
  22. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js.map +2 -2
  23. package/dist-cjs/lib/primitives/geometry/Edge2d.js +14 -17
  24. package/dist-cjs/lib/primitives/geometry/Edge2d.js.map +2 -2
  25. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js +10 -10
  26. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js.map +2 -2
  27. package/dist-cjs/lib/primitives/geometry/Point2d.js +6 -6
  28. package/dist-cjs/lib/primitives/geometry/Point2d.js.map +2 -2
  29. package/dist-cjs/lib/primitives/geometry/Polygon2d.js +3 -0
  30. package/dist-cjs/lib/primitives/geometry/Polygon2d.js.map +2 -2
  31. package/dist-cjs/lib/primitives/geometry/Polyline2d.js +8 -5
  32. package/dist-cjs/lib/primitives/geometry/Polyline2d.js.map +2 -2
  33. package/dist-cjs/lib/primitives/geometry/Rectangle2d.js +22 -11
  34. package/dist-cjs/lib/primitives/geometry/Rectangle2d.js.map +2 -2
  35. package/dist-cjs/lib/primitives/geometry/Stadium2d.js +22 -22
  36. package/dist-cjs/lib/primitives/geometry/Stadium2d.js.map +2 -2
  37. package/dist-cjs/version.js +3 -3
  38. package/dist-cjs/version.js.map +1 -1
  39. package/dist-esm/index.d.mts +54 -46
  40. package/dist-esm/index.mjs +1 -1
  41. package/dist-esm/lib/editor/Editor.mjs +1 -2
  42. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  43. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs +16 -20
  44. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs.map +3 -3
  45. package/dist-esm/lib/editor/managers/FocusManager.mjs +2 -0
  46. package/dist-esm/lib/editor/managers/FocusManager.mjs.map +2 -2
  47. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +8 -0
  48. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  49. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +6 -0
  50. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +2 -2
  51. package/dist-esm/lib/primitives/Vec.mjs +13 -8
  52. package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
  53. package/dist-esm/lib/primitives/geometry/Arc2d.mjs +41 -21
  54. package/dist-esm/lib/primitives/geometry/Arc2d.mjs.map +2 -2
  55. package/dist-esm/lib/primitives/geometry/Circle2d.mjs +11 -11
  56. package/dist-esm/lib/primitives/geometry/Circle2d.mjs.map +2 -2
  57. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs +13 -16
  58. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs.map +2 -2
  59. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs +4 -4
  60. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs.map +2 -2
  61. package/dist-esm/lib/primitives/geometry/Edge2d.mjs +14 -17
  62. package/dist-esm/lib/primitives/geometry/Edge2d.mjs.map +2 -2
  63. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs +11 -11
  64. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs.map +2 -2
  65. package/dist-esm/lib/primitives/geometry/Point2d.mjs +6 -6
  66. package/dist-esm/lib/primitives/geometry/Point2d.mjs.map +2 -2
  67. package/dist-esm/lib/primitives/geometry/Polygon2d.mjs +3 -0
  68. package/dist-esm/lib/primitives/geometry/Polygon2d.mjs.map +2 -2
  69. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs +8 -5
  70. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs.map +2 -2
  71. package/dist-esm/lib/primitives/geometry/Rectangle2d.mjs +22 -11
  72. package/dist-esm/lib/primitives/geometry/Rectangle2d.mjs.map +2 -2
  73. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs +22 -22
  74. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs.map +2 -2
  75. package/dist-esm/version.mjs +3 -3
  76. package/dist-esm/version.mjs.map +1 -1
  77. package/package.json +7 -7
  78. package/src/lib/editor/Editor.ts +1 -2
  79. package/src/lib/editor/derivations/notVisibleShapes.ts +24 -25
  80. package/src/lib/editor/managers/FocusManager.ts +2 -0
  81. package/src/lib/editor/shapes/ShapeUtil.ts +9 -0
  82. package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +8 -0
  83. package/src/lib/primitives/Vec.test.ts +2 -2
  84. package/src/lib/primitives/Vec.ts +13 -8
  85. package/src/lib/primitives/geometry/Arc2d.ts +42 -23
  86. package/src/lib/primitives/geometry/Circle2d.ts +12 -12
  87. package/src/lib/primitives/geometry/CubicBezier2d.test.ts +5 -0
  88. package/src/lib/primitives/geometry/CubicBezier2d.ts +13 -17
  89. package/src/lib/primitives/geometry/CubicSpline2d.ts +5 -5
  90. package/src/lib/primitives/geometry/Edge2d.ts +14 -18
  91. package/src/lib/primitives/geometry/Ellipse2d.ts +12 -13
  92. package/src/lib/primitives/geometry/Point2d.ts +6 -6
  93. package/src/lib/primitives/geometry/Polygon2d.ts +4 -0
  94. package/src/lib/primitives/geometry/Polyline2d.ts +10 -7
  95. package/src/lib/primitives/geometry/Rectangle2d.ts +24 -11
  96. package/src/lib/primitives/geometry/Stadium2d.ts +22 -23
  97. package/src/version.ts +3 -3
@@ -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;
@@ -551,10 +551,10 @@ export declare class Circle2d extends Geometry2d {
551
551
  x?: number;
552
552
  y?: number;
553
553
  };
554
- _center: Vec;
555
- radius: number;
556
- x: number;
557
- y: number;
554
+ private _center;
555
+ private _radius;
556
+ private _x;
557
+ private _y;
558
558
  constructor(config: Omit<Geometry2dOptions, 'isClosed'> & {
559
559
  isFilled: boolean;
560
560
  radius: number;
@@ -716,10 +716,10 @@ export declare function createTLUser(opts?: {
716
716
 
717
717
  /** @public */
718
718
  export declare class CubicBezier2d extends Polyline2d {
719
- a: Vec;
720
- b: Vec;
721
- c: Vec;
722
- d: Vec;
719
+ private _a;
720
+ private _b;
721
+ private _c;
722
+ private _d;
723
723
  constructor(config: Omit<Geometry2dOptions, 'isClosed' | 'isFilled'> & {
724
724
  cp1: Vec;
725
725
  cp2: Vec;
@@ -727,20 +727,19 @@ export declare class CubicBezier2d extends Polyline2d {
727
727
  start: Vec;
728
728
  });
729
729
  getVertices(): Vec[];
730
- midPoint(): Vec;
731
730
  nearestPoint(A: VecLike): Vec;
732
731
  getSvgPathData(first?: boolean): string;
733
732
  static GetAtT(segment: CubicBezier2d, t: number): Vec;
734
- getLength(filters?: Geometry2dFilters, precision?: number): number;
733
+ getLength(_filters?: Geometry2dFilters, precision?: number): number;
735
734
  }
736
735
 
737
736
  /** @public */
738
737
  export declare class CubicSpline2d extends Geometry2d {
739
- points: Vec[];
738
+ private _points;
740
739
  constructor(config: Omit<Geometry2dOptions, 'isClosed' | 'isFilled'> & {
741
740
  points: Vec[];
742
741
  });
743
- _segments?: CubicBezier2d[];
742
+ private _segments?;
744
743
  get segments(): CubicBezier2d[];
745
744
  getLength(): number;
746
745
  getVertices(): Vec[];
@@ -927,17 +926,16 @@ export declare const EASINGS: {
927
926
 
928
927
  /** @public */
929
928
  export declare class Edge2d extends Geometry2d {
930
- start: Vec;
931
- end: Vec;
932
- d: Vec;
933
- u: Vec;
934
- ul: number;
929
+ private _start;
930
+ private _end;
931
+ private _d;
932
+ private _u;
933
+ private _ul;
935
934
  constructor(config: {
936
935
  end: Vec;
937
936
  start: Vec;
938
937
  });
939
938
  getLength(): number;
940
- midPoint(): Vec;
941
939
  getVertices(): Vec[];
942
940
  nearestPoint(point: VecLike): Vec;
943
941
  getSvgPathData(first?: boolean): string;
@@ -3996,13 +3994,13 @@ export declare class Ellipse2d extends Geometry2d {
3996
3994
  height: number;
3997
3995
  width: number;
3998
3996
  };
3999
- w: number;
4000
- h: number;
3997
+ private _w;
3998
+ private _h;
3999
+ private _edges?;
4001
4000
  constructor(config: Omit<Geometry2dOptions, 'isClosed'> & {
4002
4001
  height: number;
4003
4002
  width: number;
4004
4003
  });
4005
- _edges?: Edge2d[];
4006
4004
  get edges(): Edge2d[];
4007
4005
  getVertices(): any[];
4008
4006
  nearestPoint(A: VecLike): Vec;
@@ -4300,6 +4298,8 @@ export declare class GroupShapeUtil extends ShapeUtil<TLGroupShape> {
4300
4298
  static migrations: TLPropsMigrations;
4301
4299
  hideSelectionBoundsFg(): boolean;
4302
4300
  canBind(): boolean;
4301
+ canResize(): boolean;
4302
+ canResizeChildren(): boolean;
4303
4303
  getDefaultProps(): TLGroupShape['props'];
4304
4304
  getGeometry(shape: TLGroupShape): Geometry2d;
4305
4305
  component(shape: TLGroupShape): JSX_2.Element | null;
@@ -4685,7 +4685,7 @@ export declare const PI2: number;
4685
4685
 
4686
4686
  /** @public */
4687
4687
  export declare class Point2d extends Geometry2d {
4688
- point: Vec;
4688
+ private _point;
4689
4689
  constructor(config: Omit<Geometry2dOptions, 'isClosed' | 'isFilled'> & {
4690
4690
  margin: number;
4691
4691
  point: Vec;
@@ -4729,12 +4729,12 @@ export declare function polygonsIntersect(a: VecLike[], b: VecLike[]): boolean;
4729
4729
 
4730
4730
  /** @public */
4731
4731
  export declare class Polyline2d extends Geometry2d {
4732
- points: Vec[];
4732
+ private _points;
4733
+ private _segments?;
4733
4734
  constructor(config: Omit<Geometry2dOptions, 'isClosed' | 'isFilled'> & {
4734
4735
  points: Vec[];
4735
4736
  });
4736
- _segments?: Edge2d[];
4737
- get segments(): Edge2d[];
4737
+ protected get segments(): Edge2d[];
4738
4738
  getLength(): number;
4739
4739
  getVertices(): Vec[];
4740
4740
  nearestPoint(A: VecLike): Vec;
@@ -4800,10 +4800,10 @@ export declare class ReadonlySharedStyleMap {
4800
4800
 
4801
4801
  /** @public */
4802
4802
  export declare class Rectangle2d extends Polygon2d {
4803
- x: number;
4804
- y: number;
4805
- w: number;
4806
- h: number;
4803
+ private _x;
4804
+ private _y;
4805
+ private _w;
4806
+ private _h;
4807
4807
  constructor(config: Omit<Geometry2dOptions, 'isClosed'> & {
4808
4808
  height: number;
4809
4809
  width: number;
@@ -4812,6 +4812,7 @@ export declare class Rectangle2d extends Polygon2d {
4812
4812
  });
4813
4813
  getBounds(): Box;
4814
4814
  getSvgPathData(): string;
4815
+ private negativeZeroFix;
4815
4816
  }
4816
4817
 
4817
4818
  /** @public */
@@ -5097,6 +5098,12 @@ export declare abstract class ShapeUtil<Shape extends TLUnknownShape = TLUnknown
5097
5098
  * @public
5098
5099
  */
5099
5100
  canResize(_shape: Shape): boolean;
5101
+ /**
5102
+ * When the shape is resized, whether the shape's children should also be resized.
5103
+ *
5104
+ * @public
5105
+ */
5106
+ canResizeChildren(_shape: Shape): boolean;
5100
5107
  /**
5101
5108
  * Whether the shape can be edited in read-only mode.
5102
5109
  *
@@ -5540,12 +5547,12 @@ export declare class Stadium2d extends Geometry2d {
5540
5547
  height: number;
5541
5548
  width: number;
5542
5549
  };
5543
- w: number;
5544
- h: number;
5545
- a: Arc2d;
5546
- b: Edge2d;
5547
- c: Arc2d;
5548
- d: Edge2d;
5550
+ private _w;
5551
+ private _h;
5552
+ private _a;
5553
+ private _b;
5554
+ private _c;
5555
+ private _d;
5549
5556
  constructor(config: Omit<Geometry2dOptions, 'isClosed'> & {
5550
5557
  height: number;
5551
5558
  width: number;
@@ -7678,7 +7685,7 @@ export declare class Vec {
7678
7685
  len(): number;
7679
7686
  pry(V: VecLike): number;
7680
7687
  per(): this;
7681
- uni(): Vec;
7688
+ uni(): this;
7682
7689
  tan(V: VecLike): Vec;
7683
7690
  dist(V: VecLike): number;
7684
7691
  distanceToLineSegment(A: VecLike, B: VecLike): number;
@@ -7689,8 +7696,9 @@ export declare class Vec {
7689
7696
  lrp(B: VecLike, t: number): Vec;
7690
7697
  equals(B: VecLike): boolean;
7691
7698
  equalsXY(x: number, y: number): boolean;
7699
+ /** @deprecated use `uni` instead */
7692
7700
  norm(): this;
7693
- toFixed(): Vec;
7701
+ toFixed(): this;
7694
7702
  toString(): string;
7695
7703
  toJson(): VecModel;
7696
7704
  toArray(): number[];
package/dist-cjs/index.js CHANGED
@@ -361,7 +361,7 @@ function debugEnableLicensing() {
361
361
  }
362
362
  (0, import_utils.registerTldrawLibraryVersion)(
363
363
  "@tldraw/editor",
364
- "3.14.0-canary.783e99a41fc5",
364
+ "3.14.0-canary.89411f68f916",
365
365
  "cjs"
366
366
  );
367
367
  //# sourceMappingURL=index.js.map
@@ -4339,8 +4339,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
4339
4339
  * @public
4340
4340
  */
4341
4341
  visitDescendants(parent, visitor) {
4342
- const parentId = typeof parent === "string" ? parent : parent.id;
4343
- const children = this.getSortedChildIdsForParent(parentId);
4342
+ const children = this.getSortedChildIdsForParent(parent);
4344
4343
  for (const id of children) {
4345
4344
  if (visitor(id) === false) continue;
4346
4345
  this.visitDescendants(id, visitor);