@tldraw/editor 3.13.0-canary.e0266852447b → 3.13.0-canary.e25033d63b69

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 (134) hide show
  1. package/dist-cjs/index.d.ts +84 -97
  2. package/dist-cjs/index.js +7 -22
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/components/Shape.js +2 -1
  5. package/dist-cjs/lib/components/Shape.js.map +2 -2
  6. package/dist-cjs/lib/components/default-components/DefaultCanvas.js +9 -5
  7. package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
  8. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js +17 -11
  9. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js.map +2 -2
  10. package/dist-cjs/lib/editor/Editor.js +39 -14
  11. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  12. package/dist-cjs/lib/editor/managers/SnapManager/HandleSnaps.js.map +2 -2
  13. package/dist-cjs/lib/editor/managers/TextManager.js +10 -0
  14. package/dist-cjs/lib/editor/managers/TextManager.js.map +2 -2
  15. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  16. package/dist-cjs/lib/editor/shapes/shared/getPerfectDashProps.js.map +2 -2
  17. package/dist-cjs/lib/exports/getSvgJsx.js +12 -3
  18. package/dist-cjs/lib/exports/getSvgJsx.js.map +2 -2
  19. package/dist-cjs/lib/hooks/useEditorComponents.js +1 -2
  20. package/dist-cjs/lib/hooks/useEditorComponents.js.map +2 -2
  21. package/dist-cjs/lib/primitives/Box.js +16 -0
  22. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  23. package/dist-cjs/lib/primitives/Mat.js +1 -1
  24. package/dist-cjs/lib/primitives/Mat.js.map +2 -2
  25. package/dist-cjs/lib/primitives/Vec.js +20 -0
  26. package/dist-cjs/lib/primitives/Vec.js.map +2 -2
  27. package/dist-cjs/lib/primitives/geometry/Arc2d.js +2 -2
  28. package/dist-cjs/lib/primitives/geometry/Arc2d.js.map +2 -2
  29. package/dist-cjs/lib/primitives/geometry/Circle2d.js +1 -1
  30. package/dist-cjs/lib/primitives/geometry/Circle2d.js.map +2 -2
  31. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js +1 -1
  32. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js.map +2 -2
  33. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js.map +2 -2
  34. package/dist-cjs/lib/primitives/geometry/Edge2d.js +1 -1
  35. package/dist-cjs/lib/primitives/geometry/Edge2d.js.map +2 -2
  36. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js.map +2 -2
  37. package/dist-cjs/lib/primitives/geometry/Geometry2d.js +91 -20
  38. package/dist-cjs/lib/primitives/geometry/Geometry2d.js.map +2 -2
  39. package/dist-cjs/lib/primitives/geometry/Group2d.js +55 -2
  40. package/dist-cjs/lib/primitives/geometry/Group2d.js.map +2 -2
  41. package/dist-cjs/lib/primitives/geometry/Point2d.js.map +2 -2
  42. package/dist-cjs/lib/primitives/geometry/Polyline2d.js.map +2 -2
  43. package/dist-cjs/lib/primitives/geometry/Stadium2d.js.map +2 -2
  44. package/dist-cjs/lib/utils/areShapesContentEqual.js +25 -0
  45. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +7 -0
  46. package/dist-cjs/lib/utils/debug-flags.js +5 -2
  47. package/dist-cjs/lib/utils/debug-flags.js.map +2 -2
  48. package/dist-cjs/version.js +3 -3
  49. package/dist-cjs/version.js.map +1 -1
  50. package/dist-esm/index.d.mts +84 -97
  51. package/dist-esm/index.mjs +9 -41
  52. package/dist-esm/index.mjs.map +2 -2
  53. package/dist-esm/lib/components/Shape.mjs +2 -1
  54. package/dist-esm/lib/components/Shape.mjs.map +2 -2
  55. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +9 -5
  56. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
  57. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs +17 -11
  58. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs.map +2 -2
  59. package/dist-esm/lib/editor/Editor.mjs +39 -14
  60. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  61. package/dist-esm/lib/editor/managers/SnapManager/HandleSnaps.mjs.map +2 -2
  62. package/dist-esm/lib/editor/managers/TextManager.mjs +10 -0
  63. package/dist-esm/lib/editor/managers/TextManager.mjs.map +2 -2
  64. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  65. package/dist-esm/lib/editor/shapes/shared/getPerfectDashProps.mjs.map +2 -2
  66. package/dist-esm/lib/exports/getSvgJsx.mjs +12 -3
  67. package/dist-esm/lib/exports/getSvgJsx.mjs.map +2 -2
  68. package/dist-esm/lib/hooks/useEditorComponents.mjs +1 -4
  69. package/dist-esm/lib/hooks/useEditorComponents.mjs.map +2 -2
  70. package/dist-esm/lib/primitives/Box.mjs +16 -0
  71. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  72. package/dist-esm/lib/primitives/Mat.mjs +1 -1
  73. package/dist-esm/lib/primitives/Mat.mjs.map +2 -2
  74. package/dist-esm/lib/primitives/Vec.mjs +20 -0
  75. package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
  76. package/dist-esm/lib/primitives/geometry/Arc2d.mjs +2 -2
  77. package/dist-esm/lib/primitives/geometry/Arc2d.mjs.map +2 -2
  78. package/dist-esm/lib/primitives/geometry/Circle2d.mjs +1 -1
  79. package/dist-esm/lib/primitives/geometry/Circle2d.mjs.map +2 -2
  80. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs +1 -1
  81. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs.map +2 -2
  82. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs.map +2 -2
  83. package/dist-esm/lib/primitives/geometry/Edge2d.mjs +1 -1
  84. package/dist-esm/lib/primitives/geometry/Edge2d.mjs.map +2 -2
  85. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs.map +2 -2
  86. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs +92 -21
  87. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs.map +2 -2
  88. package/dist-esm/lib/primitives/geometry/Group2d.mjs +55 -2
  89. package/dist-esm/lib/primitives/geometry/Group2d.mjs.map +2 -2
  90. package/dist-esm/lib/primitives/geometry/Point2d.mjs.map +2 -2
  91. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs.map +2 -2
  92. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs.map +2 -2
  93. package/dist-esm/lib/utils/areShapesContentEqual.mjs +5 -0
  94. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +7 -0
  95. package/dist-esm/lib/utils/debug-flags.mjs +5 -2
  96. package/dist-esm/lib/utils/debug-flags.mjs.map +2 -2
  97. package/dist-esm/version.mjs +3 -3
  98. package/dist-esm/version.mjs.map +1 -1
  99. package/editor.css +31 -4
  100. package/package.json +7 -7
  101. package/src/index.ts +16 -31
  102. package/src/lib/components/Shape.tsx +2 -4
  103. package/src/lib/components/default-components/DefaultCanvas.tsx +9 -5
  104. package/src/lib/components/default-components/DefaultShapeIndicator.tsx +17 -8
  105. package/src/lib/editor/Editor.test.ts +1 -1
  106. package/src/lib/editor/Editor.ts +39 -14
  107. package/src/lib/editor/managers/SnapManager/HandleSnaps.ts +0 -1
  108. package/src/lib/editor/managers/TextManager.ts +12 -0
  109. package/src/lib/editor/shapes/ShapeUtil.ts +9 -1
  110. package/src/lib/editor/shapes/shared/getPerfectDashProps.ts +9 -9
  111. package/src/lib/exports/getSvgJsx.tsx +16 -7
  112. package/src/lib/hooks/useEditorComponents.tsx +2 -5
  113. package/src/lib/primitives/Box.ts +20 -0
  114. package/src/lib/primitives/Mat.ts +5 -4
  115. package/src/lib/primitives/Vec.ts +23 -0
  116. package/src/lib/primitives/geometry/Arc2d.ts +5 -5
  117. package/src/lib/primitives/geometry/Circle2d.ts +4 -4
  118. package/src/lib/primitives/geometry/CubicBezier2d.ts +4 -4
  119. package/src/lib/primitives/geometry/CubicSpline2d.ts +3 -3
  120. package/src/lib/primitives/geometry/Edge2d.ts +3 -3
  121. package/src/lib/primitives/geometry/Ellipse2d.ts +3 -3
  122. package/src/lib/primitives/geometry/Geometry2d.test.ts +42 -0
  123. package/src/lib/primitives/geometry/Geometry2d.ts +123 -35
  124. package/src/lib/primitives/geometry/Group2d.ts +70 -7
  125. package/src/lib/primitives/geometry/Point2d.ts +2 -2
  126. package/src/lib/primitives/geometry/Polyline2d.ts +3 -3
  127. package/src/lib/primitives/geometry/Stadium2d.ts +3 -3
  128. package/src/lib/test/currentToolIdMask.test.ts +1 -1
  129. package/src/lib/test/user.test.ts +1 -1
  130. package/src/lib/utils/areShapesContentEqual.ts +4 -0
  131. package/src/lib/utils/debug-flags.ts +7 -2
  132. package/src/lib/utils/sync/LocalIndexedDb.test.ts +1 -1
  133. package/src/lib/utils/sync/TLLocalSyncClient.test.ts +1 -1
  134. package/src/version.ts +3 -3
@@ -1,5 +1,5 @@
1
1
  import { Box } from '../Box'
2
- import { Vec } from '../Vec'
2
+ import { Vec, VecLike } from '../Vec'
3
3
  import { PI } from '../utils'
4
4
  import { Arc2d } from './Arc2d'
5
5
  import { Edge2d } from './Edge2d'
@@ -65,7 +65,7 @@ export class Stadium2d extends Geometry2d {
65
65
  }
66
66
  }
67
67
 
68
- nearestPoint(A: Vec): Vec {
68
+ nearestPoint(A: VecLike): Vec {
69
69
  let nearest: Vec | undefined
70
70
  let dist = Infinity
71
71
  let _d: number
@@ -84,7 +84,7 @@ export class Stadium2d extends Geometry2d {
84
84
  return nearest
85
85
  }
86
86
 
87
- hitTestLineSegment(A: Vec, B: Vec): boolean {
87
+ hitTestLineSegment(A: VecLike, B: VecLike): boolean {
88
88
  const { a, b, c, d } = this
89
89
  return [a, b, c, d].some((edge) => edge.hitTestLineSegment(A, B))
90
90
  }
@@ -27,7 +27,7 @@ beforeEach(() => {
27
27
  shapeUtils: [],
28
28
  bindingUtils: [],
29
29
  tools: [A, B, C],
30
- store: createTLStore({ shapeUtils: [] }),
30
+ store: createTLStore({ shapeUtils: [], bindingUtils: [] }),
31
31
  getContainer: () => document.body,
32
32
  })
33
33
  })
@@ -8,7 +8,7 @@ beforeEach(() => {
8
8
  shapeUtils: [],
9
9
  bindingUtils: [],
10
10
  tools: [],
11
- store: createTLStore({ shapeUtils: [] }),
11
+ store: createTLStore({ shapeUtils: [], bindingUtils: [] }),
12
12
  getContainer: () => document.body,
13
13
  })
14
14
  })
@@ -0,0 +1,4 @@
1
+ import { TLShape } from '@tldraw/tlschema'
2
+
3
+ export const areShapesContentEqual = (a: TLShape, b: TLShape) =>
4
+ a.props === b.props && a.meta === b.meta
@@ -54,6 +54,7 @@ export const debugFlags = {
54
54
  hideShapes: createDebugValue('hideShapes', { defaults: { all: false } }),
55
55
  editOnType: createDebugValue('editOnType', { defaults: { all: false } }),
56
56
  a11y: createDebugValue('a11y', { defaults: { all: false } }),
57
+ debugElbowArrows: createDebugValue('debugElbowArrows', { defaults: { all: false } }),
57
58
  } as const
58
59
 
59
60
  declare global {
@@ -149,7 +150,9 @@ function createDebugValueBase<T>(def: DebugFlagDef<T>): DebugFlag<T> {
149
150
  })
150
151
  }
151
152
 
152
- return Object.assign(valueAtom, def)
153
+ return Object.assign(valueAtom, def, {
154
+ reset: () => valueAtom.set(defaultValue),
155
+ })
153
156
  }
154
157
 
155
158
  function getStoredInitialValue(name: string) {
@@ -206,4 +209,6 @@ export interface DebugFlagDef<T> {
206
209
  }
207
210
 
208
211
  /** @internal */
209
- export type DebugFlag<T> = DebugFlagDef<T> & Atom<T>
212
+ export interface DebugFlag<T> extends DebugFlagDef<T>, Atom<T> {
213
+ reset(): void
214
+ }
@@ -3,7 +3,7 @@ import { openDB } from 'idb'
3
3
  import { hardReset } from './hardReset'
4
4
  import { getAllIndexDbNames, LocalIndexedDb } from './LocalIndexedDb'
5
5
 
6
- const schema = createTLSchema({ shapes: {} })
6
+ const schema = createTLSchema({ shapes: {}, bindings: {} })
7
7
  describe('LocalIndexedDb', () => {
8
8
  beforeEach(() => {
9
9
  jest.useRealTimers()
@@ -19,7 +19,7 @@ class BroadcastChannelMock {
19
19
  }
20
20
 
21
21
  function testClient(channel = new BroadcastChannelMock('test')) {
22
- const store = createTLStore({ shapeUtils: [] })
22
+ const store = createTLStore({ shapeUtils: [], bindingUtils: [] })
23
23
  const onLoad = jest.fn(() => {
24
24
  return
25
25
  })
package/src/version.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  // This file is automatically generated by internal/scripts/refresh-assets.ts.
2
2
  // Do not edit manually. Or do, I'm a comment, not a cop.
3
3
 
4
- export const version = '3.13.0-canary.e0266852447b'
4
+ export const version = '3.13.0-canary.e25033d63b69'
5
5
  export const publishDates = {
6
6
  major: '2024-09-13T14:36:29.063Z',
7
- minor: '2025-05-02T09:47:57.604Z',
8
- patch: '2025-05-02T09:47:57.604Z',
7
+ minor: '2025-05-12T08:07:21.124Z',
8
+ patch: '2025-05-12T08:07:21.124Z',
9
9
  }