@tldraw/editor 3.16.0-canary.146e95b93256 → 3.16.0-canary.2b8b5023f0a5

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 (42) hide show
  1. package/dist-cjs/index.d.ts +60 -9
  2. package/dist-cjs/index.js +1 -1
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/config/TLUserPreferences.js +8 -2
  5. package/dist-cjs/lib/config/TLUserPreferences.js.map +2 -2
  6. package/dist-cjs/lib/editor/Editor.js +36 -23
  7. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  8. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js +8 -3
  9. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +2 -2
  10. package/dist-cjs/lib/editor/types/misc-types.js.map +1 -1
  11. package/dist-cjs/lib/exports/getSvgJsx.js +1 -2
  12. package/dist-cjs/lib/exports/getSvgJsx.js.map +2 -2
  13. package/dist-cjs/lib/options.js +1 -0
  14. package/dist-cjs/lib/options.js.map +2 -2
  15. package/dist-cjs/version.js +3 -3
  16. package/dist-cjs/version.js.map +1 -1
  17. package/dist-esm/index.d.mts +60 -9
  18. package/dist-esm/index.mjs +1 -1
  19. package/dist-esm/index.mjs.map +2 -2
  20. package/dist-esm/lib/config/TLUserPreferences.mjs +8 -2
  21. package/dist-esm/lib/config/TLUserPreferences.mjs.map +2 -2
  22. package/dist-esm/lib/editor/Editor.mjs +36 -23
  23. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  24. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs +8 -3
  25. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +2 -2
  26. package/dist-esm/lib/exports/getSvgJsx.mjs +2 -2
  27. package/dist-esm/lib/exports/getSvgJsx.mjs.map +2 -2
  28. package/dist-esm/lib/options.mjs +1 -0
  29. package/dist-esm/lib/options.mjs.map +2 -2
  30. package/dist-esm/version.mjs +3 -3
  31. package/dist-esm/version.mjs.map +1 -1
  32. package/editor.css +2 -0
  33. package/package.json +7 -7
  34. package/src/index.ts +1 -0
  35. package/src/lib/config/TLUserPreferences.ts +7 -0
  36. package/src/lib/editor/Editor.ts +59 -46
  37. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +13 -0
  38. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.ts +5 -0
  39. package/src/lib/editor/types/misc-types.ts +54 -1
  40. package/src/lib/exports/getSvgJsx.tsx +2 -2
  41. package/src/lib/options.ts +2 -0
  42. package/src/version.ts +3 -3
@@ -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
+ }
@@ -4,6 +4,7 @@ import {
4
4
  TLGroupShape,
5
5
  TLShape,
6
6
  TLShapeId,
7
+ getColorValue,
7
8
  getDefaultColorTheme,
8
9
  } from '@tldraw/tlschema'
9
10
  import { hasOwnProperty, promiseWithResolve, uniqueId } from '@tldraw/utils'
@@ -373,8 +374,7 @@ function SvgExport({
373
374
  | { options: { showColors: boolean } }
374
375
  if (frameShapeUtil?.options.showColors) {
375
376
  const shape = editor.getShape(singleFrameShapeId)! as TLFrameShape
376
- const color = theme[shape.props.color]
377
- backgroundColor = color.frame.fill
377
+ backgroundColor = getColorValue(theme, shape.props.color, 'frameFill')
378
378
  } else {
379
379
  backgroundColor = theme.solid
380
380
  }
@@ -53,6 +53,7 @@ export interface TldrawOptions {
53
53
  readonly flattenImageBoundsPadding: number
54
54
  readonly laserDelayMs: number
55
55
  readonly maxExportDelayMs: number
56
+ readonly tooltipDelayMs: number
56
57
  /**
57
58
  * How long should previews created by {@link Editor.createTemporaryAssetPreview} last before
58
59
  * they expire? Defaults to 3 minutes.
@@ -124,6 +125,7 @@ export const defaultTldrawOptions = {
124
125
  flattenImageBoundsPadding: 16,
125
126
  laserDelayMs: 1200,
126
127
  maxExportDelayMs: 5000,
128
+ tooltipDelayMs: 700,
127
129
  temporaryAssetPreviewLifetimeMs: 180000,
128
130
  actionShortcutsLocation: 'swap',
129
131
  createTextOnCanvasDoubleClick: true,
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.16.0-canary.146e95b93256'
4
+ export const version = '3.16.0-canary.2b8b5023f0a5'
5
5
  export const publishDates = {
6
6
  major: '2024-09-13T14:36:29.063Z',
7
- minor: '2025-08-01T17:07:44.720Z',
8
- patch: '2025-08-01T17:07:44.720Z',
7
+ minor: '2025-08-08T20:24:09.515Z',
8
+ patch: '2025-08-08T20:24:09.515Z',
9
9
  }