@tldraw/editor 3.16.0-canary.8c74738e06fb → 3.16.0-canary.99cd20c3ee29

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 (123) hide show
  1. package/dist-cjs/index.d.ts +90 -9
  2. package/dist-cjs/index.js +1 -1
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/TldrawEditor.js +5 -1
  5. package/dist-cjs/lib/TldrawEditor.js.map +2 -2
  6. package/dist-cjs/lib/components/Shape.js +7 -10
  7. package/dist-cjs/lib/components/Shape.js.map +2 -2
  8. package/dist-cjs/lib/components/default-components/DefaultCanvas.js +4 -23
  9. package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
  10. package/dist-cjs/lib/components/default-components/DefaultCollaboratorHint.js +1 -1
  11. package/dist-cjs/lib/components/default-components/DefaultCollaboratorHint.js.map +1 -1
  12. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js +1 -1
  13. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js.map +2 -2
  14. package/dist-cjs/lib/components/default-components/DefaultScribble.js +1 -1
  15. package/dist-cjs/lib/components/default-components/DefaultScribble.js.map +2 -2
  16. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js +9 -1
  17. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js.map +2 -2
  18. package/dist-cjs/lib/config/TLUserPreferences.js +9 -3
  19. package/dist-cjs/lib/config/TLUserPreferences.js.map +2 -2
  20. package/dist-cjs/lib/editor/Editor.js +63 -24
  21. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  22. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js +9 -4
  23. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +2 -2
  24. package/dist-cjs/lib/editor/shapes/ShapeUtil.js +13 -0
  25. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  26. package/dist-cjs/lib/editor/types/misc-types.js.map +1 -1
  27. package/dist-cjs/lib/exports/getSvgJsx.js +35 -16
  28. package/dist-cjs/lib/exports/getSvgJsx.js.map +2 -2
  29. package/dist-cjs/lib/hooks/useCanvasEvents.js +7 -5
  30. package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
  31. package/dist-cjs/lib/hooks/usePassThroughWheelEvents.js +4 -1
  32. package/dist-cjs/lib/hooks/usePassThroughWheelEvents.js.map +2 -2
  33. package/dist-cjs/lib/license/Watermark.js +6 -6
  34. package/dist-cjs/lib/license/Watermark.js.map +1 -1
  35. package/dist-cjs/lib/options.js +7 -0
  36. package/dist-cjs/lib/options.js.map +2 -2
  37. package/dist-cjs/lib/primitives/Box.js +3 -0
  38. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  39. package/dist-cjs/version.js +3 -3
  40. package/dist-cjs/version.js.map +1 -1
  41. package/dist-esm/index.d.mts +90 -9
  42. package/dist-esm/index.mjs +1 -1
  43. package/dist-esm/index.mjs.map +2 -2
  44. package/dist-esm/lib/TldrawEditor.mjs +5 -1
  45. package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
  46. package/dist-esm/lib/components/Shape.mjs +7 -10
  47. package/dist-esm/lib/components/Shape.mjs.map +2 -2
  48. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +4 -23
  49. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
  50. package/dist-esm/lib/components/default-components/DefaultCollaboratorHint.mjs +1 -1
  51. package/dist-esm/lib/components/default-components/DefaultCollaboratorHint.mjs.map +1 -1
  52. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs +1 -1
  53. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs.map +2 -2
  54. package/dist-esm/lib/components/default-components/DefaultScribble.mjs +1 -1
  55. package/dist-esm/lib/components/default-components/DefaultScribble.mjs.map +2 -2
  56. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs +9 -1
  57. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs.map +2 -2
  58. package/dist-esm/lib/config/TLUserPreferences.mjs +9 -3
  59. package/dist-esm/lib/config/TLUserPreferences.mjs.map +2 -2
  60. package/dist-esm/lib/editor/Editor.mjs +63 -24
  61. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  62. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs +9 -4
  63. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +2 -2
  64. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +13 -0
  65. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  66. package/dist-esm/lib/exports/getSvgJsx.mjs +36 -16
  67. package/dist-esm/lib/exports/getSvgJsx.mjs.map +2 -2
  68. package/dist-esm/lib/hooks/useCanvasEvents.mjs +7 -5
  69. package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
  70. package/dist-esm/lib/hooks/usePassThroughWheelEvents.mjs +4 -1
  71. package/dist-esm/lib/hooks/usePassThroughWheelEvents.mjs.map +2 -2
  72. package/dist-esm/lib/license/Watermark.mjs +6 -6
  73. package/dist-esm/lib/license/Watermark.mjs.map +1 -1
  74. package/dist-esm/lib/options.mjs +7 -0
  75. package/dist-esm/lib/options.mjs.map +2 -2
  76. package/dist-esm/lib/primitives/Box.mjs +4 -1
  77. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  78. package/dist-esm/version.mjs +3 -3
  79. package/dist-esm/version.mjs.map +1 -1
  80. package/editor.css +301 -288
  81. package/package.json +14 -37
  82. package/src/index.ts +1 -0
  83. package/src/lib/TldrawEditor.tsx +6 -1
  84. package/src/lib/components/Shape.tsx +6 -12
  85. package/src/lib/components/default-components/DefaultCanvas.tsx +5 -22
  86. package/src/lib/components/default-components/DefaultCollaboratorHint.tsx +1 -1
  87. package/src/lib/components/default-components/DefaultErrorFallback.tsx +1 -1
  88. package/src/lib/components/default-components/DefaultScribble.tsx +1 -1
  89. package/src/lib/components/default-components/DefaultShapeIndicator.tsx +5 -1
  90. package/src/lib/config/TLUserPreferences.ts +8 -1
  91. package/src/lib/editor/Editor.test.ts +12 -11
  92. package/src/lib/editor/Editor.ts +88 -47
  93. package/src/lib/editor/managers/ClickManager/ClickManager.test.ts +15 -14
  94. package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.test.ts +16 -15
  95. package/src/lib/editor/managers/FocusManager/FocusManager.test.ts +49 -48
  96. package/src/lib/editor/managers/FontManager/FontManager.test.ts +24 -23
  97. package/src/lib/editor/managers/HistoryManager/HistoryManager.test.ts +7 -6
  98. package/src/lib/editor/managers/ScribbleManager/ScribbleManager.test.ts +12 -11
  99. package/src/lib/editor/managers/SnapManager/SnapManager.test.ts +57 -50
  100. package/src/lib/editor/managers/TextManager/TextManager.test.ts +51 -26
  101. package/src/lib/editor/managers/TickManager/TickManager.test.ts +14 -13
  102. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +34 -26
  103. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.ts +6 -1
  104. package/src/lib/editor/shapes/ShapeUtil.ts +14 -0
  105. package/src/lib/editor/types/misc-types.ts +54 -1
  106. package/src/lib/exports/getSvgJsx.test.ts +868 -0
  107. package/src/lib/exports/getSvgJsx.tsx +78 -21
  108. package/src/lib/hooks/useCanvasEvents.ts +6 -6
  109. package/src/lib/hooks/usePassThroughWheelEvents.ts +6 -1
  110. package/src/lib/license/LicenseManager.test.ts +3 -1
  111. package/src/lib/license/Watermark.test.tsx +2 -1
  112. package/src/lib/license/Watermark.tsx +6 -6
  113. package/src/lib/options.ts +8 -0
  114. package/src/lib/primitives/Box.test.ts +126 -0
  115. package/src/lib/primitives/Box.ts +10 -1
  116. package/src/lib/utils/sync/LocalIndexedDb.test.ts +2 -1
  117. package/src/lib/utils/sync/TLLocalSyncClient.test.ts +15 -15
  118. package/src/version.ts +3 -3
  119. package/dist-cjs/lib/utils/nearestMultiple.js +0 -34
  120. package/dist-cjs/lib/utils/nearestMultiple.js.map +0 -7
  121. package/dist-esm/lib/utils/nearestMultiple.mjs +0 -14
  122. package/dist-esm/lib/utils/nearestMultiple.mjs.map +0 -7
  123. package/src/lib/utils/nearestMultiple.ts +0 -13
@@ -1,4 +1,4 @@
1
- import { BoxModel } from '@tldraw/tlschema'
1
+ import { BoxModel, TLShape } from '@tldraw/tlschema'
2
2
  import { Box } from '../../primitives/Box'
3
3
  import { VecLike } from '../../primitives/Vec'
4
4
 
@@ -206,3 +206,56 @@ export interface TLUpdatePointerOptions {
206
206
  isPen?: boolean
207
207
  button?: number
208
208
  }
209
+
210
+ /**
211
+ * Options to {@link Editor.getShapeAtPoint}.
212
+ *
213
+ * @public
214
+ */
215
+ export interface TLGetShapeAtPointOptions {
216
+ /**
217
+ * The margin to apply to the shape.
218
+ * If a number, it will be applied to both the inside and outside of the shape.
219
+ * If an array, the first element will be applied to the inside of the shape, and the second element will be applied to the outside.
220
+ *
221
+ * @example
222
+ * ```ts
223
+ * // Get the shape at the center of the screen
224
+ * const shape = editor.getShapeAtProps({
225
+ * margin: 10,
226
+ * })
227
+ *
228
+ * // Get the shape at the center of the screen with a 10px inner margin and a 5px outer margin
229
+ * const shape = editor.getShapeAtProps({
230
+ * margin: [10, 5],
231
+ * })
232
+ * ```
233
+ */
234
+ margin?: number | [number, number]
235
+ /**
236
+ * Whether to register hits inside of shapes (beyond the margin), such as the inside of a solid shape.
237
+ */
238
+ hitInside?: boolean
239
+ /**
240
+ * Whether to register hits on locked shapes.
241
+ */
242
+ hitLocked?: boolean
243
+ /**
244
+ * Whether to register hits on labels.
245
+ */
246
+ hitLabels?: boolean
247
+ /**
248
+ * Whether to only return hits on shapes that are currently being rendered.
249
+ * todo: rename this to hitCulled or hitNotRendering
250
+ */
251
+ renderingOnly?: boolean
252
+ /**
253
+ * Whether to register hits on the inside of frame shapes.
254
+ * todo: rename this to hitInsideFrames
255
+ */
256
+ hitFrameInside?: boolean
257
+ /**
258
+ * A filter function to apply to the shapes.
259
+ */
260
+ filter?(shape: TLShape): boolean
261
+ }