@tldraw/tldraw 5.3.0-next.75e2874c4b3f → 5.3.0-next.7654e7ac2a02

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.js CHANGED
@@ -19,7 +19,7 @@ var import_tldraw = require("tldraw");
19
19
  __reExport(index_exports, require("tldraw"), module.exports);
20
20
  (0, import_tldraw.registerTldrawLibraryVersion)(
21
21
  "@tldraw/tldraw",
22
- "5.3.0-next.75e2874c4b3f",
22
+ "5.3.0-next.7654e7ac2a02",
23
23
  "cjs"
24
24
  );
25
25
  //# sourceMappingURL=index.js.map
@@ -2,7 +2,7 @@ import { registerTldrawLibraryVersion } from "tldraw";
2
2
  export * from "tldraw";
3
3
  registerTldrawLibraryVersion(
4
4
  "@tldraw/tldraw",
5
- "5.3.0-next.75e2874c4b3f",
5
+ "5.3.0-next.7654e7ac2a02",
6
6
  "esm"
7
7
  );
8
8
  //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tldraw/tldraw",
3
3
  "description": "A tiny little drawing editor.",
4
- "version": "5.3.0-next.75e2874c4b3f",
4
+ "version": "5.3.0-next.7654e7ac2a02",
5
5
  "author": {
6
6
  "name": "tldraw Inc.",
7
7
  "email": "hello@tldraw.com"
@@ -47,7 +47,7 @@
47
47
  "src"
48
48
  ],
49
49
  "dependencies": {
50
- "tldraw": "5.3.0-next.75e2874c4b3f"
50
+ "tldraw": "5.3.0-next.7654e7ac2a02"
51
51
  },
52
52
  "peerDependencies": {
53
53
  "react": "^18.2.0 || ^19.2.1",
package/tldraw.css CHANGED
@@ -33,15 +33,20 @@
33
33
  * background, grid, shapes, overlays, and blocker are all children of .tl-canvas,
34
34
  * so their z-indices are relative to the canvas, not the container.
35
35
  *
36
- * watermark and canvas-in-front are siblings of .tl-canvas (outside it),
37
- * so they compete with the UI layer (.tlui-layout at z-index 300).
36
+ * collaborators, watermark, and canvas-in-front are siblings of .tl-canvas
37
+ * (outside it), so they compete with the UI layer (.tlui-layout at z-index 300).
38
38
  * canvas-in-front must be below the UI layer (300) to sit between
39
- * the canvas and the UI.
39
+ * the canvas and the UI; collaborator cursors sit above canvas content
40
+ * (and layers that anchor to it, like comment pins) but below the
41
+ * in-front content and the UI panels. The watermark (a licensing element)
42
+ * sits above that content so it can't be occluded, but still below the
43
+ * in-front content and the UI.
40
44
  */
41
45
  --tl-layer-canvas-hidden: -999999;
42
46
  --tl-layer-canvas-background: 100;
43
47
  --tl-layer-canvas-grid: 150;
44
- --tl-layer-watermark: 200;
48
+ --tl-layer-collaborators: 245;
49
+ --tl-layer-watermark: 248;
45
50
  --tl-layer-canvas-in-front: 250;
46
51
  --tl-layer-canvas-shapes: 300;
47
52
  --tl-layer-canvas-overlays: 500;
@@ -90,6 +95,10 @@
90
95
  url("data:image/svg+xml,<svg height='32' width='32' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg' style='color: black;'><defs><filter id='shadow' y='-40%' x='-40%' width='180px' height='180%' color-interpolation-filters='sRGB'><feDropShadow dx='1' dy='1' stdDeviation='1.2' flood-opacity='.5'/></filter></defs><g fill='none' transform='rotate(0 16 16)' filter='url(%23shadow)'><path d='m25 16h-6.01v-6h-2.98v6h-6.01v3h6.01v6h2.98v-6h6.01z' fill='white'/><path d='m23.9902 17.0103h-6v-6.01h-.98v6.01h-6v.98h6v6.01h.98v-6.01h6z' fill='%23231f1f'/></g></svg>")
91
96
  16 16,
92
97
  crosshair;
98
+ --tl-cursor-comment:
99
+ url("data:image/svg+xml,<svg height='32' width='32' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'><defs><filter id='shadow' y='-40%' x='-40%' width='180px' height='180%' color-interpolation-filters='sRGB'><feDropShadow dx='1' dy='1' stdDeviation='1.2' flood-opacity='.5'/></filter></defs><g filter='url(%23shadow)'><path d='M5 19.5 L5 11 A8 8 0 0 1 13 3 A8 8 0 0 1 21 11 A8 8 0 0 1 13 19 Z' fill='white' stroke='black' stroke-width='1' stroke-linejoin='round'/></g></svg>")
100
+ 5 19,
101
+ crosshair;
93
102
  --tl-cursor-move:
94
103
  url("data:image/svg+xml,<svg height='32' width='32' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg' style='color: black;'><defs><filter id='shadow' y='-40%' x='-40%' width='180px' height='180%' color-interpolation-filters='sRGB'><feDropShadow dx='1' dy='1' stdDeviation='1.2' flood-opacity='.5'/></filter></defs><g fill='none' transform='rotate(0 16 16)' filter='url(%23shadow)'><path d='m19 14h1v1h-1zm1 6h-1v-1h1zm-5-5h-1v-1h1zm0 5h-1v-1h1zm2-10.987-7.985 7.988 5.222 5.221 2.763 2.763 7.984-7.985z' fill='white'/><g fill='black'><path d='m23.5664 16.9971-2.557-2.809v1.829h-4.009-4.001v-1.829l-2.571 2.809 2.572 2.808-.001-1.808h4.001 4.009l-.001 1.808z'/><path d='m17.9873 17h.013v-4.001l1.807.001-2.807-2.571-2.809 2.57h1.809v4.001h.008v4.002l-1.828-.001 2.807 2.577 2.805-2.576h-1.805z'/></g></g></svg>")
95
104
  16 16,
@@ -290,6 +299,12 @@
290
299
  outline: 1px solid var(--tl-color-low);
291
300
  }
292
301
 
302
+ /* The host for <EditorPortal>, last among the container's children. It's a position in the DOM
303
+ rather than a box: `display: contents` keeps what it holds positioned against the container. */
304
+ .tl-portal-host {
305
+ display: contents;
306
+ }
307
+
293
308
  input,
294
309
  *[contenteditable],
295
310
  *[contenteditable] * {
@@ -376,6 +391,30 @@ input,
376
391
  contain: layout style size;
377
392
  }
378
393
 
394
+ /* The collaborator cursor layer: a sibling of .tl-canvas, above all canvas content, below the
395
+ in-front layer (250) and the UI panels (300). Display-only — pointer events pass through. */
396
+ .tl-collaborators {
397
+ position: absolute;
398
+ inset: 0px;
399
+ z-index: var(--tl-layer-collaborators);
400
+ pointer-events: none;
401
+ overflow: clip;
402
+ contain: layout style size;
403
+ }
404
+
405
+ .tl-collaborators__item {
406
+ position: absolute;
407
+ top: 0px;
408
+ left: 0px;
409
+ overflow: visible;
410
+ pointer-events: none;
411
+ transform-origin: top left;
412
+ }
413
+
414
+ .tl-cursor {
415
+ overflow: visible;
416
+ }
417
+
379
418
  /* --------------- Overlay Stack --------------- */
380
419
 
381
420
  /* -------------- Selection foreground -------------- */
@@ -2352,6 +2391,16 @@ it from receiving any pointer events or affecting the cursor. */
2352
2391
  -ms-overflow-style: none;
2353
2392
  }
2354
2393
 
2394
+ .tlui-hover-card__content {
2395
+ position: relative;
2396
+ margin: 0px;
2397
+ border: none;
2398
+ border-radius: var(--tl-radius-3);
2399
+ background-color: var(--tl-color-panel);
2400
+ box-shadow: var(--tl-shadow-3);
2401
+ z-index: var(--tl-layer-menus);
2402
+ }
2403
+
2355
2404
  /* -------------------- Menu Zone ------------------- */
2356
2405
 
2357
2406
  .tlui-menu-zone {
@@ -2822,6 +2871,7 @@ tldraw? probably.
2822
2871
  .tlui-layout__bottom {
2823
2872
  grid-row: 2;
2824
2873
  width: 100%;
2874
+ min-width: 0px;
2825
2875
  }
2826
2876
 
2827
2877
  .tlui-layout__bottom__main {