@tldraw/editor 3.16.0-canary.ca347c5375a5 → 3.16.0-canary.cb4562244982

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 (87) hide show
  1. package/dist-cjs/index.d.ts +80 -9
  2. package/dist-cjs/index.js +3 -1
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/TldrawEditor.js +3 -1
  5. package/dist-cjs/lib/TldrawEditor.js.map +2 -2
  6. package/dist-cjs/lib/components/MenuClickCapture.js +0 -5
  7. package/dist-cjs/lib/components/MenuClickCapture.js.map +2 -2
  8. package/dist-cjs/lib/components/default-components/DefaultCollaboratorHint.js +1 -1
  9. package/dist-cjs/lib/components/default-components/DefaultCollaboratorHint.js.map +1 -1
  10. package/dist-cjs/lib/components/default-components/DefaultScribble.js +1 -1
  11. package/dist-cjs/lib/components/default-components/DefaultScribble.js.map +2 -2
  12. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js +9 -1
  13. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js.map +2 -2
  14. package/dist-cjs/lib/config/TLUserPreferences.js +8 -2
  15. package/dist-cjs/lib/config/TLUserPreferences.js.map +2 -2
  16. package/dist-cjs/lib/editor/Editor.js +46 -24
  17. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  18. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js +8 -3
  19. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +2 -2
  20. package/dist-cjs/lib/editor/types/misc-types.js.map +1 -1
  21. package/dist-cjs/lib/exports/getSvgJsx.js +1 -2
  22. package/dist-cjs/lib/exports/getSvgJsx.js.map +2 -2
  23. package/dist-cjs/lib/hooks/useCanvasEvents.js +22 -20
  24. package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
  25. package/dist-cjs/lib/hooks/useStateAttribute.js +35 -0
  26. package/dist-cjs/lib/hooks/useStateAttribute.js.map +7 -0
  27. package/dist-cjs/lib/license/Watermark.js +6 -6
  28. package/dist-cjs/lib/license/Watermark.js.map +1 -1
  29. package/dist-cjs/lib/options.js +1 -0
  30. package/dist-cjs/lib/options.js.map +2 -2
  31. package/dist-cjs/lib/utils/EditorAtom.js +45 -0
  32. package/dist-cjs/lib/utils/EditorAtom.js.map +7 -0
  33. package/dist-cjs/version.js +3 -3
  34. package/dist-cjs/version.js.map +1 -1
  35. package/dist-esm/index.d.mts +80 -9
  36. package/dist-esm/index.mjs +3 -1
  37. package/dist-esm/index.mjs.map +2 -2
  38. package/dist-esm/lib/TldrawEditor.mjs +3 -1
  39. package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
  40. package/dist-esm/lib/components/MenuClickCapture.mjs +0 -5
  41. package/dist-esm/lib/components/MenuClickCapture.mjs.map +2 -2
  42. package/dist-esm/lib/components/default-components/DefaultCollaboratorHint.mjs +1 -1
  43. package/dist-esm/lib/components/default-components/DefaultCollaboratorHint.mjs.map +1 -1
  44. package/dist-esm/lib/components/default-components/DefaultScribble.mjs +1 -1
  45. package/dist-esm/lib/components/default-components/DefaultScribble.mjs.map +2 -2
  46. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs +9 -1
  47. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs.map +2 -2
  48. package/dist-esm/lib/config/TLUserPreferences.mjs +8 -2
  49. package/dist-esm/lib/config/TLUserPreferences.mjs.map +2 -2
  50. package/dist-esm/lib/editor/Editor.mjs +46 -24
  51. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  52. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs +8 -3
  53. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +2 -2
  54. package/dist-esm/lib/exports/getSvgJsx.mjs +2 -2
  55. package/dist-esm/lib/exports/getSvgJsx.mjs.map +2 -2
  56. package/dist-esm/lib/hooks/useCanvasEvents.mjs +23 -21
  57. package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
  58. package/dist-esm/lib/hooks/useStateAttribute.mjs +15 -0
  59. package/dist-esm/lib/hooks/useStateAttribute.mjs.map +7 -0
  60. package/dist-esm/lib/license/Watermark.mjs +6 -6
  61. package/dist-esm/lib/license/Watermark.mjs.map +1 -1
  62. package/dist-esm/lib/options.mjs +1 -0
  63. package/dist-esm/lib/options.mjs.map +2 -2
  64. package/dist-esm/lib/utils/EditorAtom.mjs +25 -0
  65. package/dist-esm/lib/utils/EditorAtom.mjs.map +7 -0
  66. package/dist-esm/version.mjs +3 -3
  67. package/dist-esm/version.mjs.map +1 -1
  68. package/editor.css +293 -288
  69. package/package.json +7 -7
  70. package/src/index.ts +2 -0
  71. package/src/lib/TldrawEditor.tsx +7 -5
  72. package/src/lib/components/MenuClickCapture.tsx +0 -8
  73. package/src/lib/components/default-components/DefaultCollaboratorHint.tsx +1 -1
  74. package/src/lib/components/default-components/DefaultScribble.tsx +1 -1
  75. package/src/lib/components/default-components/DefaultShapeIndicator.tsx +5 -1
  76. package/src/lib/config/TLUserPreferences.ts +7 -0
  77. package/src/lib/editor/Editor.ts +70 -47
  78. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +13 -0
  79. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.ts +5 -0
  80. package/src/lib/editor/types/misc-types.ts +54 -1
  81. package/src/lib/exports/getSvgJsx.tsx +2 -2
  82. package/src/lib/hooks/useCanvasEvents.ts +36 -32
  83. package/src/lib/hooks/useStateAttribute.ts +15 -0
  84. package/src/lib/license/Watermark.tsx +6 -6
  85. package/src/lib/options.ts +2 -0
  86. package/src/lib/utils/EditorAtom.ts +37 -0
  87. package/src/version.ts +3 -3
@@ -86,15 +86,15 @@ To remove the watermark, please purchase a license at tldraw.dev.
86
86
 
87
87
  .${className} {
88
88
  position: absolute;
89
- bottom: var(--space-2);
90
- right: var(--space-2);
89
+ bottom: var(--tl-space-2);
90
+ right: var(--tl-space-2);
91
91
  width: 96px;
92
92
  height: 32px;
93
93
  display: flex;
94
94
  align-items: center;
95
95
  justify-content: center;
96
- z-index: var(--layer-watermark) !important;
97
- background-color: color-mix(in srgb, var(--color-background) 62%, transparent);
96
+ z-index: var(--tl-layer-watermark) !important;
97
+ background-color: color-mix(in srgb, var(--tl-color-background) 62%, transparent);
98
98
  opacity: 1;
99
99
  border-radius: 5px;
100
100
  pointer-events: all;
@@ -108,7 +108,7 @@ To remove the watermark, please purchase a license at tldraw.dev.
108
108
  height: 32px;
109
109
  pointer-events: all;
110
110
  cursor: inherit;
111
- color: var(--color-text);
111
+ color: var(--tl-color-text);
112
112
  opacity: .38;
113
113
  border: 0;
114
114
  padding: 0;
@@ -137,7 +137,7 @@ To remove the watermark, please purchase a license at tldraw.dev.
137
137
  }
138
138
 
139
139
  .${className}:hover {
140
- background-color: var(--color-background);
140
+ background-color: var(--tl-color-background);
141
141
  transition: background-color 0.2s ease-in-out;
142
142
  transition-delay: 0.32s;
143
143
  }
@@ -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,
@@ -0,0 +1,37 @@
1
+ import { atom, Atom } from '@tldraw/state'
2
+ import { WeakCache } from '@tldraw/utils'
3
+ import { Editor } from '../editor/Editor'
4
+
5
+ /**
6
+ * An Atom that is scoped to the lifetime of an Editor.
7
+ *
8
+ * This is useful for storing UI state for tldraw applications. Keeping state scoped to an editor
9
+ * instead of stored in a global atom can prevent issues with state being shared between editors
10
+ * when navigating between pages, or when multiple editor instances are used on the same page.
11
+ *
12
+ * @public
13
+ */
14
+ export class EditorAtom<T> {
15
+ private states = new WeakCache<Editor, Atom<T>>()
16
+
17
+ constructor(
18
+ private name: string,
19
+ private getInitialState: (editor: Editor) => T
20
+ ) {}
21
+
22
+ getAtom(editor: Editor): Atom<T> {
23
+ return this.states.get(editor, () => atom(this.name, this.getInitialState(editor)))
24
+ }
25
+
26
+ get(editor: Editor): T {
27
+ return this.getAtom(editor).get()
28
+ }
29
+
30
+ update(editor: Editor, update: (state: T) => T): T {
31
+ return this.getAtom(editor).update(update)
32
+ }
33
+
34
+ set(editor: Editor, state: T): T {
35
+ return this.getAtom(editor).set(state)
36
+ }
37
+ }
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.ca347c5375a5'
4
+ export const version = '3.16.0-canary.cb4562244982'
5
5
  export const publishDates = {
6
6
  major: '2024-09-13T14:36:29.063Z',
7
- minor: '2025-07-30T14:49:37.329Z',
8
- patch: '2025-07-30T14:49:37.329Z',
7
+ minor: '2025-08-14T17:21:17.140Z',
8
+ patch: '2025-08-14T17:21:17.140Z',
9
9
  }