@tldraw/editor 3.9.0-internal.7f0e15f4f7d9 → 3.10.0-canary.d4dfa96478a4

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 (138) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +1 -1
  3. package/dist-cjs/index.d.ts +41 -229
  4. package/dist-cjs/index.js +1 -9
  5. package/dist-cjs/index.js.map +2 -2
  6. package/dist-cjs/lib/TldrawEditor.js +6 -33
  7. package/dist-cjs/lib/TldrawEditor.js.map +2 -2
  8. package/dist-cjs/lib/components/LiveCollaborators.js +5 -0
  9. package/dist-cjs/lib/components/LiveCollaborators.js.map +2 -2
  10. package/dist-cjs/lib/components/Shape.js +0 -7
  11. package/dist-cjs/lib/components/Shape.js.map +2 -2
  12. package/dist-cjs/lib/components/default-components/DefaultBrush.js.map +2 -2
  13. package/dist-cjs/lib/components/default-components/DefaultCollaboratorHint.js.map +2 -2
  14. package/dist-cjs/lib/components/default-components/DefaultCursor.js.map +2 -2
  15. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js +1 -1
  16. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js.map +2 -2
  17. package/dist-cjs/lib/components/default-components/DefaultScribble.js.map +2 -2
  18. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js.map +2 -2
  19. package/dist-cjs/lib/editor/Editor.js +435 -308
  20. package/dist-cjs/lib/editor/Editor.js.map +3 -3
  21. package/dist-cjs/lib/editor/managers/TextManager.js +17 -23
  22. package/dist-cjs/lib/editor/managers/TextManager.js.map +2 -2
  23. package/dist-cjs/lib/editor/shapes/ShapeUtil.js +7 -13
  24. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  25. package/dist-cjs/lib/editor/types/emit-types.js.map +1 -1
  26. package/dist-cjs/lib/editor/types/external-content.js.map +1 -1
  27. package/dist-cjs/lib/exports/FontEmbedder.js +2 -7
  28. package/dist-cjs/lib/exports/FontEmbedder.js.map +2 -2
  29. package/dist-cjs/lib/exports/StyleEmbedder.js +1 -1
  30. package/dist-cjs/lib/exports/StyleEmbedder.js.map +2 -2
  31. package/dist-cjs/lib/exports/exportToSvg.js +2 -3
  32. package/dist-cjs/lib/exports/exportToSvg.js.map +2 -2
  33. package/dist-cjs/lib/exports/getSvgJsx.js +1 -18
  34. package/dist-cjs/lib/exports/getSvgJsx.js.map +2 -2
  35. package/dist-cjs/lib/exports/parseCss.js +0 -1
  36. package/dist-cjs/lib/exports/parseCss.js.map +2 -2
  37. package/dist-cjs/lib/hooks/useCanvasEvents.js +2 -2
  38. package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
  39. package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js +1 -1
  40. package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js.map +2 -2
  41. package/dist-cjs/lib/hooks/usePassThroughWheelEvents.js.map +2 -2
  42. package/dist-cjs/lib/options.js +1 -2
  43. package/dist-cjs/lib/options.js.map +2 -2
  44. package/dist-cjs/lib/utils/dom.js +1 -1
  45. package/dist-cjs/lib/utils/dom.js.map +2 -2
  46. package/dist-cjs/version.js +3 -3
  47. package/dist-cjs/version.js.map +1 -1
  48. package/dist-esm/index.d.mts +41 -229
  49. package/dist-esm/index.mjs +1 -13
  50. package/dist-esm/index.mjs.map +2 -2
  51. package/dist-esm/lib/TldrawEditor.mjs +7 -34
  52. package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
  53. package/dist-esm/lib/components/LiveCollaborators.mjs +5 -0
  54. package/dist-esm/lib/components/LiveCollaborators.mjs.map +2 -2
  55. package/dist-esm/lib/components/Shape.mjs +1 -8
  56. package/dist-esm/lib/components/Shape.mjs.map +2 -2
  57. package/dist-esm/lib/components/default-components/DefaultBrush.mjs.map +2 -2
  58. package/dist-esm/lib/components/default-components/DefaultCollaboratorHint.mjs.map +2 -2
  59. package/dist-esm/lib/components/default-components/DefaultCursor.mjs.map +2 -2
  60. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs +1 -1
  61. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs.map +2 -2
  62. package/dist-esm/lib/components/default-components/DefaultScribble.mjs.map +2 -2
  63. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs.map +2 -2
  64. package/dist-esm/lib/editor/Editor.mjs +432 -312
  65. package/dist-esm/lib/editor/Editor.mjs.map +3 -3
  66. package/dist-esm/lib/editor/managers/TextManager.mjs +17 -23
  67. package/dist-esm/lib/editor/managers/TextManager.mjs.map +2 -2
  68. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +7 -13
  69. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  70. package/dist-esm/lib/exports/FontEmbedder.mjs +2 -7
  71. package/dist-esm/lib/exports/FontEmbedder.mjs.map +2 -2
  72. package/dist-esm/lib/exports/StyleEmbedder.mjs +1 -1
  73. package/dist-esm/lib/exports/StyleEmbedder.mjs.map +2 -2
  74. package/dist-esm/lib/exports/exportToSvg.mjs +2 -3
  75. package/dist-esm/lib/exports/exportToSvg.mjs.map +2 -2
  76. package/dist-esm/lib/exports/getSvgJsx.mjs +2 -19
  77. package/dist-esm/lib/exports/getSvgJsx.mjs.map +2 -2
  78. package/dist-esm/lib/exports/parseCss.mjs +0 -1
  79. package/dist-esm/lib/exports/parseCss.mjs.map +2 -2
  80. package/dist-esm/lib/hooks/useCanvasEvents.mjs +2 -2
  81. package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
  82. package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs +1 -1
  83. package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs.map +2 -2
  84. package/dist-esm/lib/hooks/usePassThroughWheelEvents.mjs.map +2 -2
  85. package/dist-esm/lib/options.mjs +1 -2
  86. package/dist-esm/lib/options.mjs.map +2 -2
  87. package/dist-esm/lib/utils/dom.mjs +1 -1
  88. package/dist-esm/lib/utils/dom.mjs.map +2 -2
  89. package/dist-esm/version.mjs +3 -3
  90. package/dist-esm/version.mjs.map +1 -1
  91. package/editor.css +13 -127
  92. package/package.json +7 -10
  93. package/src/index.ts +2 -15
  94. package/src/lib/TldrawEditor.tsx +4 -52
  95. package/src/lib/components/LiveCollaborators.tsx +5 -0
  96. package/src/lib/components/Shape.tsx +1 -9
  97. package/src/lib/components/default-components/DefaultBrush.tsx +1 -0
  98. package/src/lib/components/default-components/DefaultCollaboratorHint.tsx +1 -0
  99. package/src/lib/components/default-components/DefaultCursor.tsx +1 -0
  100. package/src/lib/components/default-components/DefaultErrorFallback.tsx +5 -3
  101. package/src/lib/components/default-components/DefaultScribble.tsx +1 -0
  102. package/src/lib/components/default-components/DefaultShapeIndicator.tsx +1 -0
  103. package/src/lib/editor/Editor.ts +561 -362
  104. package/src/lib/editor/managers/TextManager.ts +17 -42
  105. package/src/lib/editor/shapes/ShapeUtil.ts +32 -18
  106. package/src/lib/editor/types/emit-types.ts +0 -1
  107. package/src/lib/editor/types/external-content.ts +0 -1
  108. package/src/lib/exports/FontEmbedder.ts +1 -13
  109. package/src/lib/exports/StyleEmbedder.ts +1 -1
  110. package/src/lib/exports/exportToSvg.tsx +3 -4
  111. package/src/lib/exports/getSvgJsx.tsx +3 -22
  112. package/src/lib/exports/parseCss.ts +0 -1
  113. package/src/lib/hooks/useCanvasEvents.ts +1 -2
  114. package/src/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.ts +0 -1
  115. package/src/lib/hooks/usePassThroughWheelEvents.ts +1 -0
  116. package/src/lib/options.ts +0 -7
  117. package/src/lib/utils/dom.ts +1 -1
  118. package/src/version.ts +3 -3
  119. package/dist-cjs/lib/editor/managers/FontManager.js +0 -167
  120. package/dist-cjs/lib/editor/managers/FontManager.js.map +0 -7
  121. package/dist-cjs/lib/hooks/usePassThroughMouseOverEvents.js +0 -48
  122. package/dist-cjs/lib/hooks/usePassThroughMouseOverEvents.js.map +0 -7
  123. package/dist-cjs/lib/hooks/useViewportHeight.js +0 -56
  124. package/dist-cjs/lib/hooks/useViewportHeight.js.map +0 -7
  125. package/dist-cjs/lib/utils/richText.js +0 -46
  126. package/dist-cjs/lib/utils/richText.js.map +0 -7
  127. package/dist-esm/lib/editor/managers/FontManager.mjs +0 -153
  128. package/dist-esm/lib/editor/managers/FontManager.mjs.map +0 -7
  129. package/dist-esm/lib/hooks/usePassThroughMouseOverEvents.mjs +0 -28
  130. package/dist-esm/lib/hooks/usePassThroughMouseOverEvents.mjs.map +0 -7
  131. package/dist-esm/lib/hooks/useViewportHeight.mjs +0 -36
  132. package/dist-esm/lib/hooks/useViewportHeight.mjs.map +0 -7
  133. package/dist-esm/lib/utils/richText.mjs +0 -26
  134. package/dist-esm/lib/utils/richText.mjs.map +0 -7
  135. package/src/lib/editor/managers/FontManager.ts +0 -252
  136. package/src/lib/hooks/usePassThroughMouseOverEvents.ts +0 -29
  137. package/src/lib/hooks/useViewportHeight.ts +0 -37
  138. package/src/lib/utils/richText.ts +0 -72
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tldraw/editor",
3
3
  "description": "A tiny little drawing app (editor).",
4
- "version": "3.9.0-internal.7f0e15f4f7d9",
4
+ "version": "3.10.0-canary.d4dfa96478a4",
5
5
  "author": {
6
6
  "name": "tldraw Inc.",
7
7
  "email": "hello@tldraw.com"
@@ -45,15 +45,12 @@
45
45
  "lint": "yarn run -T tsx ../../internal/scripts/lint.ts"
46
46
  },
47
47
  "dependencies": {
48
- "@tiptap/core": "^2.9.1",
49
- "@tiptap/pm": "^2.9.1",
50
- "@tiptap/react": "^2.9.1",
51
- "@tldraw/state": "3.9.0-internal.7f0e15f4f7d9",
52
- "@tldraw/state-react": "3.9.0-internal.7f0e15f4f7d9",
53
- "@tldraw/store": "3.9.0-internal.7f0e15f4f7d9",
54
- "@tldraw/tlschema": "3.9.0-internal.7f0e15f4f7d9",
55
- "@tldraw/utils": "3.9.0-internal.7f0e15f4f7d9",
56
- "@tldraw/validate": "3.9.0-internal.7f0e15f4f7d9",
48
+ "@tldraw/state": "3.10.0-canary.d4dfa96478a4",
49
+ "@tldraw/state-react": "3.10.0-canary.d4dfa96478a4",
50
+ "@tldraw/store": "3.10.0-canary.d4dfa96478a4",
51
+ "@tldraw/tlschema": "3.10.0-canary.d4dfa96478a4",
52
+ "@tldraw/utils": "3.10.0-canary.d4dfa96478a4",
53
+ "@tldraw/validate": "3.10.0-canary.d4dfa96478a4",
57
54
  "@types/core-js": "^2.5.8",
58
55
  "@use-gesture/react": "^10.3.1",
59
56
  "classnames": "^2.5.1",
package/src/index.ts CHANGED
@@ -26,14 +26,6 @@ export {
26
26
  useValue,
27
27
  } from '@tldraw/state-react'
28
28
  export { resizeScaled } from './lib/editor/shapes/shared/resizeScaled'
29
- export {
30
- getFontsFromRichText,
31
- type RichTextFontVisitor,
32
- type RichTextFontVisitorState,
33
- type TLTextOptions,
34
- type TiptapEditor,
35
- type TiptapNode,
36
- } from './lib/utils/richText'
37
29
  export { LocalIndexedDb, Table, type StoreName } from './lib/utils/sync/LocalIndexedDb'
38
30
  // eslint-disable-next-line local/no-export-star
39
31
  export * from '@tldraw/store'
@@ -171,11 +163,6 @@ export {
171
163
  } from './lib/editor/bindings/BindingUtil'
172
164
  export { ClickManager, type TLClickState } from './lib/editor/managers/ClickManager'
173
165
  export { EdgeScrollManager } from './lib/editor/managers/EdgeScrollManager'
174
- export {
175
- FontManager,
176
- type TLFontFace,
177
- type TLFontFaceSource,
178
- } from './lib/editor/managers/FontManager'
179
166
  export { HistoryManager } from './lib/editor/managers/HistoryManager'
180
167
  export { ScribbleManager, type ScribbleItem } from './lib/editor/managers/ScribbleManager'
181
168
  export {
@@ -197,9 +184,11 @@ export { BaseBoxShapeUtil, type TLBaseBoxShape } from './lib/editor/shapes/BaseB
197
184
  export {
198
185
  ShapeUtil,
199
186
  type TLCropInfo,
187
+ type TLGeometryOpts,
200
188
  type TLHandleDragInfo,
201
189
  type TLResizeInfo,
202
190
  type TLResizeMode,
191
+ type TLShapeUtilCanBeLaidOutOpts,
203
192
  type TLShapeUtilCanBindOpts,
204
193
  type TLShapeUtilCanvasSvgDef,
205
194
  type TLShapeUtilConstructor,
@@ -310,7 +299,6 @@ export { useIsCropping } from './lib/hooks/useIsCropping'
310
299
  export { useIsDarkMode } from './lib/hooks/useIsDarkMode'
311
300
  export { useIsEditing } from './lib/hooks/useIsEditing'
312
301
  export { useLocalStore } from './lib/hooks/useLocalStore'
313
- export { usePassThroughMouseOverEvents } from './lib/hooks/usePassThroughMouseOverEvents'
314
302
  export { usePassThroughWheelEvents } from './lib/hooks/usePassThroughWheelEvents'
315
303
  export { usePeerIds } from './lib/hooks/usePeerIds'
316
304
  export { usePresence } from './lib/hooks/usePresence'
@@ -325,7 +313,6 @@ export {
325
313
  export { useSelectionEvents } from './lib/hooks/useSelectionEvents'
326
314
  export { useTLSchemaFromUtils, useTLStore } from './lib/hooks/useTLStore'
327
315
  export { useTransform } from './lib/hooks/useTransform'
328
- export { useViewportHeight } from './lib/hooks/useViewportHeight'
329
316
  export {
330
317
  LicenseManager,
331
318
  type InvalidLicenseKeyResult,
@@ -14,6 +14,7 @@ import React, {
14
14
  } from 'react'
15
15
 
16
16
  import classNames from 'classnames'
17
+ import { TLDeepLinkOptions } from '..'
17
18
  import { version } from '../version'
18
19
  import { OptionalErrorBoundary } from './components/ErrorBoundary'
19
20
  import { DefaultErrorFallback } from './components/default-components/DefaultErrorFallback'
@@ -43,9 +44,7 @@ import { useZoomCss } from './hooks/useZoomCss'
43
44
  import { LicenseProvider } from './license/LicenseProvider'
44
45
  import { Watermark } from './license/Watermark'
45
46
  import { TldrawOptions } from './options'
46
- import { TLDeepLinkOptions } from './utils/deepLinks'
47
47
  import { stopEventPropagation } from './utils/dom'
48
- import { TLTextOptions } from './utils/richText'
49
48
  import { TLStoreWithStatus } from './utils/sync/StoreWithStatus'
50
49
 
51
50
  /**
@@ -168,11 +167,6 @@ export interface TldrawEditorBaseProps {
168
167
  */
169
168
  cameraOptions?: Partial<TLCameraOptions>
170
169
 
171
- /**
172
- * Text options for the editor.
173
- */
174
- textOptions?: TLTextOptions
175
-
176
170
  /**
177
171
  * Options for the editor.
178
172
  */
@@ -196,11 +190,6 @@ export interface TldrawEditorBaseProps {
196
190
  * remain in the store and participate in all other operations.
197
191
  */
198
192
  isShapeHidden?(shape: TLShape, editor: Editor): boolean
199
-
200
- /**
201
- * The URLs for the fonts to use in the editor.
202
- */
203
- assetUrls?: { fonts?: { [key: string]: string | undefined } }
204
193
  }
205
194
 
206
195
  /**
@@ -383,12 +372,10 @@ function TldrawEditorWithReadyStore({
383
372
  autoFocus = true,
384
373
  inferDarkMode,
385
374
  cameraOptions,
386
- textOptions,
387
375
  options,
388
376
  licenseKey,
389
377
  deepLinks: _deepLinks,
390
378
  isShapeHidden,
391
- assetUrls,
392
379
  }: Required<
393
380
  TldrawEditorProps & {
394
381
  store: TLStore
@@ -443,11 +430,9 @@ function TldrawEditorWithReadyStore({
443
430
  autoFocus,
444
431
  inferDarkMode,
445
432
  cameraOptions,
446
- textOptions,
447
433
  options,
448
434
  licenseKey,
449
435
  isShapeHidden,
450
- fontAssetUrls: assetUrls?.fonts,
451
436
  })
452
437
 
453
438
  editor.updateViewportScreenBounds(canvasRef.current ?? container)
@@ -482,8 +467,6 @@ function TldrawEditorWithReadyStore({
482
467
  setEditor,
483
468
  licenseKey,
484
469
  isShapeHidden,
485
- textOptions,
486
- assetUrls,
487
470
  ]
488
471
  )
489
472
 
@@ -549,41 +532,10 @@ function TldrawEditorWithReadyStore({
549
532
  [editor, autoFocus]
550
533
  )
551
534
 
552
- const [_fontLoadingState, setFontLoadingState] = useState<{
553
- editor: Editor
554
- isLoaded: boolean
555
- } | null>(null)
556
- let fontLoadingState = _fontLoadingState
557
- if (editor !== fontLoadingState?.editor) {
558
- const newFontLoadingState = editor ? { editor, isLoaded: false } : null
559
- if (fontLoadingState !== newFontLoadingState) setFontLoadingState(newFontLoadingState)
560
- fontLoadingState = newFontLoadingState
561
- }
562
- useEffect(() => {
563
- if (!editor) return
564
- let isCancelled = false
535
+ const { Canvas } = useEditorComponents()
565
536
 
566
- editor.fonts
567
- .loadRequiredFontsForCurrentPage(editor.options.maxFontsToLoadBeforeRender)
568
- .finally(() => {
569
- if (isCancelled) return
570
- setFontLoadingState({ editor, isLoaded: true })
571
- })
572
-
573
- return () => {
574
- isCancelled = true
575
- }
576
- }, [editor])
577
-
578
- const { Canvas, LoadingScreen } = useEditorComponents()
579
-
580
- if (!editor || !fontLoadingState?.isLoaded) {
581
- return (
582
- <>
583
- {LoadingScreen && <LoadingScreen />}
584
- <div className="tl-canvas" ref={canvasRef} />
585
- </>
586
- )
537
+ if (!editor) {
538
+ return <div className="tl-canvas" ref={canvasRef} />
587
539
  }
588
540
 
589
541
  return (
@@ -92,6 +92,7 @@ const Collaborator = track(function Collaborator({
92
92
  <CollaboratorBrush
93
93
  className="tl-collaborator__brush"
94
94
  key={userId + '_brush'}
95
+ userId={userId}
95
96
  brush={brush}
96
97
  color={color}
97
98
  opacity={0.1}
@@ -101,6 +102,7 @@ const Collaborator = track(function Collaborator({
101
102
  <CollaboratorCursor
102
103
  className="tl-collaborator__cursor"
103
104
  key={userId + '_cursor'}
105
+ userId={userId}
104
106
  point={cursor}
105
107
  color={color}
106
108
  zoom={zoomLevel}
@@ -111,6 +113,7 @@ const Collaborator = track(function Collaborator({
111
113
  <CollaboratorHint
112
114
  className="tl-collaborator__cursor-hint"
113
115
  key={userId + '_cursor_hint'}
116
+ userId={userId}
114
117
  point={cursor}
115
118
  color={color}
116
119
  zoom={zoomLevel}
@@ -123,6 +126,7 @@ const Collaborator = track(function Collaborator({
123
126
  <CollaboratorScribble
124
127
  key={userId + '_scribble_' + scribble.id}
125
128
  className="tl-collaborator__scribble"
129
+ userId={userId}
126
130
  scribble={scribble}
127
131
  color={color}
128
132
  zoom={zoomLevel}
@@ -138,6 +142,7 @@ const Collaborator = track(function Collaborator({
138
142
  <CollaboratorShapeIndicator
139
143
  className="tl-collaborator__shape-indicator"
140
144
  key={userId + '_' + shapeId}
145
+ userId={userId}
141
146
  shapeId={shapeId}
142
147
  color={color}
143
148
  opacity={0.5}
@@ -1,7 +1,6 @@
1
- import { react } from '@tldraw/state'
2
1
  import { useQuickReactor, useStateTracking } from '@tldraw/state-react'
3
2
  import { TLShape, TLShapeId } from '@tldraw/tlschema'
4
- import { memo, useCallback, useEffect, useRef } from 'react'
3
+ import { memo, useCallback, useRef } from 'react'
5
4
  import { ShapeUtil } from '../editor/shapes/ShapeUtil'
6
5
  import { useEditor } from '../hooks/useEditor'
7
6
  import { useEditorComponents } from '../hooks/useEditorComponents'
@@ -42,13 +41,6 @@ export const Shape = memo(function Shape({
42
41
  const containerRef = useRef<HTMLDivElement>(null)
43
42
  const bgContainerRef = useRef<HTMLDivElement>(null)
44
43
 
45
- useEffect(() => {
46
- return react('load fonts', () => {
47
- const fonts = editor.fonts.getShapeFontFaces(shape)
48
- editor.fonts.requestFonts(fonts)
49
- })
50
- }, [editor, shape])
51
-
52
44
  const memoizedStuffRef = useRef({
53
45
  transform: '',
54
46
  clipPath: 'none',
@@ -5,6 +5,7 @@ import { toDomPrecision } from '../../primitives/utils'
5
5
 
6
6
  /** @public */
7
7
  export interface TLBrushProps {
8
+ userId?: string
8
9
  brush: BoxModel
9
10
  color?: string
10
11
  opacity?: number
@@ -9,6 +9,7 @@ import { clamp } from '../../primitives/utils'
9
9
 
10
10
  /** @public */
11
11
  export interface TLCollaboratorHintProps {
12
+ userId: string
12
13
  className?: string
13
14
  point: VecModel
14
15
  viewport: Box
@@ -6,6 +6,7 @@ import { useTransform } from '../../hooks/useTransform'
6
6
 
7
7
  /** @public */
8
8
  export interface TLCursorProps {
9
+ userId: string
9
10
  className?: string
10
11
  point: VecModel | null
11
12
  zoom: number
@@ -170,9 +170,11 @@ My browser: ${navigator.userAgent}`
170
170
  <p>
171
171
  If you keep seeing this screen, you can create a{' '}
172
172
  <a href={url.toString()}>GitHub issue</a> or ask for help on{' '}
173
- <a href="https://discord.gg/Cq6cPsTfNy">Discord</a>. If you are still stuck, you can
174
- reset the tldraw data on your machine. This may erase the project you were working on,
175
- so try to get help first.
173
+ <a href="https://discord.tldraw.com/?utm_source=sdk&utm_medium=organic&utm_campaign=error-screen">
174
+ Discord
175
+ </a>
176
+ . If you are still stuck, you can reset the tldraw data on your machine. This may
177
+ erase the project you were working on, so try to get help first.
176
178
  </p>
177
179
  {shouldShowError && (
178
180
  <>
@@ -4,6 +4,7 @@ import { getSvgPathFromPoints } from '../../utils/getSvgPathFromPoints'
4
4
 
5
5
  /** @public */
6
6
  export interface TLScribbleProps {
7
+ userId?: string
7
8
  scribble: TLScribble
8
9
  zoom: number
9
10
  color?: string
@@ -38,6 +38,7 @@ const InnerIndicator = ({ editor, id }: { editor: Editor; id: TLShapeId }) => {
38
38
 
39
39
  /** @public */
40
40
  export interface TLShapeIndicatorProps {
41
+ userId?: string
41
42
  shapeId: TLShapeId
42
43
  color?: string | undefined
43
44
  opacity?: number