@tldraw/editor 3.13.0-canary.52e2314962c1 → 3.13.0-canary.9bb828b356ba
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.
- package/dist-cjs/index.d.ts +1 -0
- package/dist-cjs/index.js +1 -1
- package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js +6 -6
- package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js.map +2 -2
- package/dist-cjs/lib/editor/Editor.js +25 -20
- package/dist-cjs/lib/editor/Editor.js.map +3 -3
- package/dist-cjs/version.js +3 -3
- package/dist-cjs/version.js.map +1 -1
- package/dist-esm/index.d.mts +1 -0
- package/dist-esm/index.mjs +1 -1
- package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs +6 -6
- package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs.map +2 -2
- package/dist-esm/lib/editor/Editor.mjs +25 -20
- package/dist-esm/lib/editor/Editor.mjs.map +3 -3
- package/dist-esm/version.mjs +3 -3
- package/dist-esm/version.mjs.map +1 -1
- package/editor.css +6 -0
- package/package.json +7 -7
- package/src/lib/components/default-components/DefaultErrorFallback.tsx +10 -6
- package/src/lib/editor/Editor.ts +22 -19
- package/src/version.ts +3 -3
package/dist-esm/version.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const version = "3.13.0-canary.
|
|
1
|
+
const version = "3.13.0-canary.9bb828b356ba";
|
|
2
2
|
const publishDates = {
|
|
3
3
|
major: "2024-09-13T14:36:29.063Z",
|
|
4
|
-
minor: "2025-04-
|
|
5
|
-
patch: "2025-04-
|
|
4
|
+
minor: "2025-04-22T11:29:31.204Z",
|
|
5
|
+
patch: "2025-04-22T11:29:31.204Z"
|
|
6
6
|
};
|
|
7
7
|
export {
|
|
8
8
|
publishDates,
|
package/dist-esm/version.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/version.ts"],
|
|
4
|
-
"sourcesContent": ["// This file is automatically generated by internal/scripts/refresh-assets.ts.\n// Do not edit manually. Or do, I'm a comment, not a cop.\n\nexport const version = '3.13.0-canary.
|
|
4
|
+
"sourcesContent": ["// This file is automatically generated by internal/scripts/refresh-assets.ts.\n// Do not edit manually. Or do, I'm a comment, not a cop.\n\nexport const version = '3.13.0-canary.9bb828b356ba'\nexport const publishDates = {\n\tmajor: '2024-09-13T14:36:29.063Z',\n\tminor: '2025-04-22T11:29:31.204Z',\n\tpatch: '2025-04-22T11:29:31.204Z',\n}\n"],
|
|
5
5
|
"mappings": "AAGO,MAAM,UAAU;AAChB,MAAM,eAAe;AAAA,EAC3B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACR;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/editor.css
CHANGED
|
@@ -1710,6 +1710,12 @@ it from receiving any pointer events or affecting the cursor. */
|
|
|
1710
1710
|
background-color: var(--color-primary);
|
|
1711
1711
|
color: var(--color-selected-contrast);
|
|
1712
1712
|
}
|
|
1713
|
+
.tl-container__focused:not(.tl-container__no-focus-ring)
|
|
1714
|
+
.tlui-button.tl-error-boundary__refresh:focus-visible {
|
|
1715
|
+
border-radius: 8px;
|
|
1716
|
+
outline-offset: 0;
|
|
1717
|
+
}
|
|
1718
|
+
|
|
1713
1719
|
/* --------------------- Coarse --------------------- */
|
|
1714
1720
|
|
|
1715
1721
|
.tl-hidden {
|
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.13.0-canary.
|
|
4
|
+
"version": "3.13.0-canary.9bb828b356ba",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "tldraw Inc.",
|
|
7
7
|
"email": "hello@tldraw.com"
|
|
@@ -48,12 +48,12 @@
|
|
|
48
48
|
"@tiptap/core": "^2.9.1",
|
|
49
49
|
"@tiptap/pm": "^2.9.1",
|
|
50
50
|
"@tiptap/react": "^2.9.1",
|
|
51
|
-
"@tldraw/state": "3.13.0-canary.
|
|
52
|
-
"@tldraw/state-react": "3.13.0-canary.
|
|
53
|
-
"@tldraw/store": "3.13.0-canary.
|
|
54
|
-
"@tldraw/tlschema": "3.13.0-canary.
|
|
55
|
-
"@tldraw/utils": "3.13.0-canary.
|
|
56
|
-
"@tldraw/validate": "3.13.0-canary.
|
|
51
|
+
"@tldraw/state": "3.13.0-canary.9bb828b356ba",
|
|
52
|
+
"@tldraw/state-react": "3.13.0-canary.9bb828b356ba",
|
|
53
|
+
"@tldraw/store": "3.13.0-canary.9bb828b356ba",
|
|
54
|
+
"@tldraw/tlschema": "3.13.0-canary.9bb828b356ba",
|
|
55
|
+
"@tldraw/utils": "3.13.0-canary.9bb828b356ba",
|
|
56
|
+
"@tldraw/validate": "3.13.0-canary.9bb828b356ba",
|
|
57
57
|
"@types/core-js": "^2.5.8",
|
|
58
58
|
"@use-gesture/react": "^10.3.1",
|
|
59
59
|
"classnames": "^2.5.1",
|
|
@@ -157,8 +157,10 @@ My browser: ${navigator.userAgent}`
|
|
|
157
157
|
<h2>Are you sure?</h2>
|
|
158
158
|
<p>Resetting your data will delete your drawing and cannot be undone.</p>
|
|
159
159
|
<div className="tl-error-boundary__content__actions">
|
|
160
|
-
<button onClick={() => setShouldShowResetConfirmation(false)}>
|
|
161
|
-
|
|
160
|
+
<button className="tlui-button" onClick={() => setShouldShowResetConfirmation(false)}>
|
|
161
|
+
Cancel
|
|
162
|
+
</button>
|
|
163
|
+
<button className="tlui-button tl-error-boundary__reset" onClick={resetLocalState}>
|
|
162
164
|
Reset data
|
|
163
165
|
</button>
|
|
164
166
|
</div>
|
|
@@ -187,22 +189,24 @@ My browser: ${navigator.userAgent}`
|
|
|
187
189
|
<pre>
|
|
188
190
|
<code>{errorStack ?? errorMessage}</code>
|
|
189
191
|
</pre>
|
|
190
|
-
<button onClick={copyError}>
|
|
192
|
+
<button className="tlui-button" onClick={copyError}>
|
|
193
|
+
{didCopy ? 'Copied!' : 'Copy'}
|
|
194
|
+
</button>
|
|
191
195
|
</div>
|
|
192
196
|
</>
|
|
193
197
|
)}
|
|
194
198
|
<div className="tl-error-boundary__content__actions">
|
|
195
|
-
<button onClick={() => setShouldShowError(!shouldShowError)}>
|
|
199
|
+
<button className="tlui-button" onClick={() => setShouldShowError(!shouldShowError)}>
|
|
196
200
|
{shouldShowError ? 'Hide details' : 'Show details'}
|
|
197
201
|
</button>
|
|
198
202
|
<div className="tl-error-boundary__content__actions__group">
|
|
199
203
|
<button
|
|
200
|
-
className="tl-error-boundary__reset"
|
|
204
|
+
className="tlui-button tl-error-boundary__reset"
|
|
201
205
|
onClick={() => setShouldShowResetConfirmation(true)}
|
|
202
206
|
>
|
|
203
207
|
Reset data
|
|
204
208
|
</button>
|
|
205
|
-
<button className="tl-error-boundary__refresh" onClick={refresh}>
|
|
209
|
+
<button className="tlui-button tl-error-boundary__refresh" onClick={refresh}>
|
|
206
210
|
Refresh Page
|
|
207
211
|
</button>
|
|
208
212
|
</div>
|
package/src/lib/editor/Editor.ts
CHANGED
|
@@ -42,6 +42,7 @@ import {
|
|
|
42
42
|
TLImageAsset,
|
|
43
43
|
TLInstance,
|
|
44
44
|
TLInstancePageState,
|
|
45
|
+
TLInstancePresence,
|
|
45
46
|
TLNoteShape,
|
|
46
47
|
TLPOINTER_ID,
|
|
47
48
|
TLPage,
|
|
@@ -1704,8 +1705,7 @@ export class Editor extends EventEmitter<TLEventMap> {
|
|
|
1704
1705
|
* @readonly
|
|
1705
1706
|
*/
|
|
1706
1707
|
@computed getSelectedShapes(): TLShape[] {
|
|
1707
|
-
|
|
1708
|
-
return compact(selectedShapeIds.map((id) => this.store.get(id)))
|
|
1708
|
+
return compact(this.getSelectedShapeIds().map((id) => this.store.get(id)))
|
|
1709
1709
|
}
|
|
1710
1710
|
|
|
1711
1711
|
/**
|
|
@@ -2575,14 +2575,25 @@ export class Editor extends EventEmitter<TLEventMap> {
|
|
|
2575
2575
|
return baseCamera
|
|
2576
2576
|
}
|
|
2577
2577
|
|
|
2578
|
+
private _getFollowingPresence(targetUserId: string | null) {
|
|
2579
|
+
const visited = [this.user.getId()]
|
|
2580
|
+
const collaborators = this.getCollaborators()
|
|
2581
|
+
let leaderPresence = null as null | TLInstancePresence
|
|
2582
|
+
while (targetUserId && !visited.includes(targetUserId)) {
|
|
2583
|
+
leaderPresence = collaborators.find((c) => c.userId === targetUserId) ?? null
|
|
2584
|
+
targetUserId = leaderPresence?.followingUserId ?? null
|
|
2585
|
+
if (leaderPresence) {
|
|
2586
|
+
visited.push(leaderPresence.userId)
|
|
2587
|
+
}
|
|
2588
|
+
}
|
|
2589
|
+
return leaderPresence
|
|
2590
|
+
}
|
|
2591
|
+
|
|
2578
2592
|
@computed
|
|
2579
2593
|
private getViewportPageBoundsForFollowing(): null | Box {
|
|
2580
|
-
const
|
|
2581
|
-
if (!followingUserId) return null
|
|
2582
|
-
const leaderPresence = this.getCollaborators().find((c) => c.userId === followingUserId)
|
|
2583
|
-
if (!leaderPresence) return null
|
|
2594
|
+
const leaderPresence = this._getFollowingPresence(this.getInstanceState().followingUserId)
|
|
2584
2595
|
|
|
2585
|
-
if (!leaderPresence
|
|
2596
|
+
if (!leaderPresence?.camera || !leaderPresence?.screenBounds) return null
|
|
2586
2597
|
|
|
2587
2598
|
// Fit their viewport inside of our screen bounds
|
|
2588
2599
|
// 1. calculate their viewport in page space
|
|
@@ -3781,15 +3792,6 @@ export class Editor extends EventEmitter<TLEventMap> {
|
|
|
3781
3792
|
// if we were already following someone, stop following them
|
|
3782
3793
|
this.stopFollowingUser()
|
|
3783
3794
|
|
|
3784
|
-
const leaderPresences = this._getCollaboratorsQuery()
|
|
3785
|
-
.get()
|
|
3786
|
-
.filter((p) => p.userId === userId)
|
|
3787
|
-
|
|
3788
|
-
if (!leaderPresences.length) {
|
|
3789
|
-
console.warn('User not found')
|
|
3790
|
-
return this
|
|
3791
|
-
}
|
|
3792
|
-
|
|
3793
3795
|
const thisUserId = this.user.getId()
|
|
3794
3796
|
|
|
3795
3797
|
if (!thisUserId) {
|
|
@@ -3797,13 +3799,14 @@ export class Editor extends EventEmitter<TLEventMap> {
|
|
|
3797
3799
|
// allow to continue since it's probably fine most of the time.
|
|
3798
3800
|
}
|
|
3799
3801
|
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
+
const leaderPresence = this._getFollowingPresence(userId)
|
|
3803
|
+
|
|
3804
|
+
if (!leaderPresence) {
|
|
3802
3805
|
return this
|
|
3803
3806
|
}
|
|
3804
3807
|
|
|
3805
3808
|
const latestLeaderPresence = computed('latestLeaderPresence', () => {
|
|
3806
|
-
return this.
|
|
3809
|
+
return this._getFollowingPresence(userId)
|
|
3807
3810
|
})
|
|
3808
3811
|
|
|
3809
3812
|
transact(() => {
|
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.
|
|
4
|
+
export const version = '3.13.0-canary.9bb828b356ba'
|
|
5
5
|
export const publishDates = {
|
|
6
6
|
major: '2024-09-13T14:36:29.063Z',
|
|
7
|
-
minor: '2025-04-
|
|
8
|
-
patch: '2025-04-
|
|
7
|
+
minor: '2025-04-22T11:29:31.204Z',
|
|
8
|
+
patch: '2025-04-22T11:29:31.204Z',
|
|
9
9
|
}
|