@tldraw/editor 3.15.0-canary.22a03ce9c171 → 3.15.0-canary.2fa0050cd4a6

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 (32) hide show
  1. package/dist-cjs/index.d.ts +5 -4
  2. package/dist-cjs/index.js +1 -1
  3. package/dist-cjs/lib/editor/Editor.js +20 -2
  4. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  5. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js +96 -101
  6. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js.map +2 -2
  7. package/dist-cjs/lib/primitives/intersect.js +4 -4
  8. package/dist-cjs/lib/primitives/intersect.js.map +2 -2
  9. package/dist-cjs/lib/primitives/utils.js +4 -0
  10. package/dist-cjs/lib/primitives/utils.js.map +2 -2
  11. package/dist-cjs/version.js +3 -3
  12. package/dist-cjs/version.js.map +1 -1
  13. package/dist-esm/index.d.mts +5 -4
  14. package/dist-esm/index.mjs +1 -1
  15. package/dist-esm/lib/editor/Editor.mjs +20 -2
  16. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  17. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs +96 -101
  18. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +2 -2
  19. package/dist-esm/lib/primitives/intersect.mjs +5 -5
  20. package/dist-esm/lib/primitives/intersect.mjs.map +2 -2
  21. package/dist-esm/lib/primitives/utils.mjs +4 -0
  22. package/dist-esm/lib/primitives/utils.mjs.map +2 -2
  23. package/dist-esm/version.mjs +3 -3
  24. package/dist-esm/version.mjs.map +1 -1
  25. package/package.json +7 -7
  26. package/src/lib/editor/Editor.test.ts +407 -0
  27. package/src/lib/editor/Editor.ts +29 -4
  28. package/src/lib/editor/managers/TextManager/TextManager.ts +108 -128
  29. package/src/lib/primitives/intersect.test.ts +57 -11
  30. package/src/lib/primitives/intersect.ts +12 -5
  31. package/src/lib/primitives/utils.ts +11 -0
  32. package/src/version.ts +3 -3
@@ -1553,7 +1553,9 @@ export declare class Editor extends EventEmitter<TLEventMap> {
1553
1553
  */
1554
1554
  deselect(...shapes: TLShape[] | TLShapeId[]): this;
1555
1555
  /**
1556
- * Select all direct children of the current page.
1556
+ * Select all shapes. If the user has selected shapes that share a parent,
1557
+ * select all shapes within that parent. If the user has not selected any shapes,
1558
+ * or if the shapes shapes are only on select all shapes on the current page.
1557
1559
  *
1558
1560
  * @example
1559
1561
  * ```ts
@@ -4517,7 +4519,7 @@ export declare function intersectLineSegmentCircle(a1: VecLike, a2: VecLike, c:
4517
4519
  * @param b2 - The second segment's second point.
4518
4520
  * @public
4519
4521
  */
4520
- export declare function intersectLineSegmentLineSegment(a1: VecLike, a2: VecLike, b1: VecLike, b2: VecLike): null | Vec;
4522
+ export declare function intersectLineSegmentLineSegment(a1: VecLike, a2: VecLike, b1: VecLike, b2: VecLike, precision?: number): null | Vec;
4521
4523
 
4522
4524
  /**
4523
4525
  * Find the intersections between a line segment and a closed polygon.
@@ -5795,10 +5797,9 @@ export declare const TAB_ID: string;
5795
5797
  export declare class TextManager {
5796
5798
  editor: Editor;
5797
5799
  private elm;
5798
- private defaultStyles;
5799
5800
  constructor(editor: Editor);
5801
+ private setElementStyles;
5800
5802
  dispose(): void;
5801
- private resetElmStyles;
5802
5803
  measureText(textToMeasure: string, opts: TLMeasureTextOpts): BoxModel & {
5803
5804
  scrollWidth: number;
5804
5805
  };
@@ -298,7 +298,7 @@ function debugEnableLicensing() {
298
298
  }
299
299
  registerTldrawLibraryVersion(
300
300
  "@tldraw/editor",
301
- "3.15.0-canary.22a03ce9c171",
301
+ "3.15.0-canary.2fa0050cd4a6",
302
302
  "esm"
303
303
  );
304
304
  export {
@@ -1466,7 +1466,9 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
1466
1466
  return this;
1467
1467
  }
1468
1468
  /**
1469
- * Select all direct children of the current page.
1469
+ * Select all shapes. If the user has selected shapes that share a parent,
1470
+ * select all shapes within that parent. If the user has not selected any shapes,
1471
+ * or if the shapes shapes are only on select all shapes on the current page.
1470
1472
  *
1471
1473
  * @example
1472
1474
  * ```ts
@@ -1476,7 +1478,23 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
1476
1478
  * @public
1477
1479
  */
1478
1480
  selectAll() {
1479
- const ids = this.getSortedChildIdsForParent(this.getCurrentPageId());
1481
+ let parentToSelectWithinId = null;
1482
+ const selectedShapeIds = this.getSelectedShapeIds();
1483
+ if (selectedShapeIds.length > 0) {
1484
+ for (const id of selectedShapeIds) {
1485
+ const shape = this.getShape(id);
1486
+ if (!shape) continue;
1487
+ if (parentToSelectWithinId === null) {
1488
+ parentToSelectWithinId = shape.parentId;
1489
+ } else if (parentToSelectWithinId !== shape.parentId) {
1490
+ return this;
1491
+ }
1492
+ }
1493
+ }
1494
+ if (!parentToSelectWithinId) {
1495
+ parentToSelectWithinId = this.getCurrentPageId();
1496
+ }
1497
+ const ids = this.getSortedChildIdsForParent(parentToSelectWithinId);
1480
1498
  if (ids.length <= 0) return this;
1481
1499
  this.setSelectedShapes(this._getUnlockedShapeIds(ids));
1482
1500
  return this;