@tldraw/editor 3.14.0-canary.46346bfd1aa4 → 3.14.0-canary.468bf700c42b
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 +1 -1
- package/dist-cjs/version.js +3 -3
- package/dist-cjs/version.js.map +1 -1
- package/dist-esm/index.mjs +1 -1
- package/dist-esm/version.mjs +3 -3
- package/dist-esm/version.mjs.map +1 -1
- package/editor.css +434 -521
- package/package.json +7 -7
- package/src/version.ts +3 -3
package/dist-cjs/index.js
CHANGED
package/dist-cjs/version.js
CHANGED
|
@@ -22,10 +22,10 @@ __export(version_exports, {
|
|
|
22
22
|
version: () => version
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(version_exports);
|
|
25
|
-
const version = "3.14.0-canary.
|
|
25
|
+
const version = "3.14.0-canary.468bf700c42b";
|
|
26
26
|
const publishDates = {
|
|
27
27
|
major: "2024-09-13T14:36:29.063Z",
|
|
28
|
-
minor: "2025-06-
|
|
29
|
-
patch: "2025-06-
|
|
28
|
+
minor: "2025-06-14T19:09:41.007Z",
|
|
29
|
+
patch: "2025-06-14T19:09:41.007Z"
|
|
30
30
|
};
|
|
31
31
|
//# sourceMappingURL=version.js.map
|
package/dist-cjs/version.js.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.14.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.14.0-canary.468bf700c42b'\nexport const publishDates = {\n\tmajor: '2024-09-13T14:36:29.063Z',\n\tminor: '2025-06-14T19:09:41.007Z',\n\tpatch: '2025-06-14T19:09:41.007Z',\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,UAAU;AAChB,MAAM,eAAe;AAAA,EAC3B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACR;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist-esm/index.mjs
CHANGED
package/dist-esm/version.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const version = "3.14.0-canary.
|
|
1
|
+
const version = "3.14.0-canary.468bf700c42b";
|
|
2
2
|
const publishDates = {
|
|
3
3
|
major: "2024-09-13T14:36:29.063Z",
|
|
4
|
-
minor: "2025-06-
|
|
5
|
-
patch: "2025-06-
|
|
4
|
+
minor: "2025-06-14T19:09:41.007Z",
|
|
5
|
+
patch: "2025-06-14T19:09:41.007Z"
|
|
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.14.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.14.0-canary.468bf700c42b'\nexport const publishDates = {\n\tmajor: '2024-09-13T14:36:29.063Z',\n\tminor: '2025-06-14T19:09:41.007Z',\n\tpatch: '2025-06-14T19:09:41.007Z',\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
|
@@ -37,8 +37,6 @@
|
|
|
37
37
|
--layer-overlays-collaborator-shape-indicator: 30;
|
|
38
38
|
--layer-overlays-user-scribble: 40;
|
|
39
39
|
--layer-overlays-user-brush: 50;
|
|
40
|
-
--layer-overlays-user-indicator-selected: 60;
|
|
41
|
-
--layer-overlays-user-indicator-hovered: 70;
|
|
42
40
|
--layer-overlays-user-snapline: 90;
|
|
43
41
|
--layer-overlays-selection-fg: 100;
|
|
44
42
|
/* User handles need to be above selection edges / corners, matters for sticky note clone handles */
|
|
@@ -139,11 +137,15 @@
|
|
|
139
137
|
}
|
|
140
138
|
|
|
141
139
|
.tl-theme__light {
|
|
142
|
-
|
|
140
|
+
/* Canvas */
|
|
141
|
+
--color-snap: hsl(0, 76%, 60%);
|
|
142
|
+
--color-selection-fill: hsl(210, 100%, 56%, 24%);
|
|
143
|
+
--color-selection-stroke: hsl(214, 84%, 56%);
|
|
143
144
|
--color-background: hsl(210, 20%, 98%);
|
|
144
145
|
--color-brush-fill: hsl(0, 0%, 56%, 10.2%);
|
|
145
146
|
--color-brush-stroke: hsl(0, 0%, 56%, 25.1%);
|
|
146
147
|
--color-grid: hsl(0, 0%, 43%);
|
|
148
|
+
/* UI */
|
|
147
149
|
--color-low: hsl(204, 16%, 94%);
|
|
148
150
|
--color-low-border: hsl(204, 16%, 92%);
|
|
149
151
|
--color-culled: hsl(204, 14%, 93%);
|
|
@@ -154,28 +156,28 @@
|
|
|
154
156
|
--color-hint: hsl(0, 0%, 0%, 5.5%);
|
|
155
157
|
--color-overlay: hsl(0, 0%, 0%, 20%);
|
|
156
158
|
--color-divider: hsl(0, 0%, 91%);
|
|
159
|
+
--color-panel: hsl(0, 0%, 99%);
|
|
157
160
|
--color-panel-contrast: hsl(0, 0%, 100%);
|
|
158
161
|
--color-panel-overlay: hsl(0, 0%, 100%, 82%);
|
|
159
|
-
--color-panel: hsl(0, 0%, 99%);
|
|
160
162
|
--color-panel-transparent: hsla(0, 0%, 99%, 0%);
|
|
161
|
-
--color-focus: hsl(219, 65%, 50%);
|
|
162
163
|
--color-selected: hsl(214, 84%, 56%);
|
|
163
164
|
--color-selected-contrast: hsl(0, 0%, 100%);
|
|
164
|
-
--color-
|
|
165
|
-
|
|
165
|
+
--color-focus: hsl(219, 65%, 50%);
|
|
166
|
+
/* Text */
|
|
167
|
+
--color-text: hsl(0, 0%, 0%);
|
|
166
168
|
--color-text-0: hsl(0, 0%, 11%);
|
|
167
169
|
--color-text-1: hsl(0, 0%, 18%);
|
|
168
170
|
--color-text-3: hsl(220, 2%, 65%);
|
|
169
171
|
--color-text-shadow: hsl(0, 0%, 100%);
|
|
170
172
|
--color-text-highlight: hsl(52, 100%, 50%);
|
|
171
173
|
--color-text-highlight-p3: color(display-p3 0.972 0.8205 0.05);
|
|
174
|
+
/* Named */
|
|
172
175
|
--color-primary: hsl(214, 84%, 56%);
|
|
173
176
|
--color-success: hsl(123, 46%, 34%);
|
|
174
177
|
--color-info: hsl(201, 98%, 41%);
|
|
175
178
|
--color-warning: hsl(27, 98%, 47%);
|
|
176
179
|
--color-error: hsl(0, 65%, 51%);
|
|
177
180
|
--color-warn: hsl(0, 90%, 43%);
|
|
178
|
-
--color-text: hsl(0, 0%, 0%);
|
|
179
181
|
--color-laser: hsl(0, 100%, 50%);
|
|
180
182
|
/* Shadows */
|
|
181
183
|
--shadow-1: 0px 1px 2px hsl(0, 0%, 0%, 25%), 0px 1px 3px hsl(0, 0%, 0%, 9%);
|
|
@@ -191,11 +193,15 @@
|
|
|
191
193
|
}
|
|
192
194
|
|
|
193
195
|
.tl-theme__dark {
|
|
194
|
-
|
|
196
|
+
/* Canvas */
|
|
197
|
+
--color-snap: hsl(0, 76%, 60%);
|
|
198
|
+
--color-selection-fill: hsl(209, 100%, 57%, 20%);
|
|
199
|
+
--color-selection-stroke: hsl(214, 84%, 56%);
|
|
195
200
|
--color-background: hsl(240, 5%, 6.5%);
|
|
196
201
|
--color-brush-fill: hsl(0, 0%, 71%, 5.1%);
|
|
197
202
|
--color-brush-stroke: hsl(0, 0%, 71%, 25.1%);
|
|
198
203
|
--color-grid: hsl(0, 0%, 40%);
|
|
204
|
+
/* UI */
|
|
199
205
|
--color-low: hsl(260, 4.5%, 10.5%);
|
|
200
206
|
--color-low-border: hsl(207, 10%, 10%);
|
|
201
207
|
--color-culled: hsl(210, 11%, 19%);
|
|
@@ -206,28 +212,28 @@
|
|
|
206
212
|
--color-hint: hsl(0, 0%, 100%, 7%);
|
|
207
213
|
--color-overlay: hsl(0, 0%, 0%, 50%);
|
|
208
214
|
--color-divider: hsl(240, 9%, 22%);
|
|
209
|
-
--color-panel-contrast: hsl(245, 12%, 23%);
|
|
210
215
|
--color-panel: hsl(235, 6.8%, 13.5%);
|
|
216
|
+
--color-panel-contrast: hsl(245, 12%, 23%);
|
|
211
217
|
--color-panel-overlay: hsl(210, 10%, 24%, 82%);
|
|
212
218
|
--color-panel-transparent: hsla(235, 6.8%, 13.5%, 0%);
|
|
213
|
-
--color-focus: hsl(217, 76%, 80%);
|
|
214
219
|
--color-selected: hsl(217, 89%, 61%);
|
|
215
220
|
--color-selected-contrast: hsl(0, 0%, 100%);
|
|
216
|
-
--color-
|
|
217
|
-
|
|
221
|
+
--color-focus: hsl(217, 76%, 80%);
|
|
222
|
+
/* Text */
|
|
223
|
+
--color-text: hsl(210, 17%, 98%);
|
|
218
224
|
--color-text-0: hsl(0, 9%, 94%);
|
|
219
225
|
--color-text-1: hsl(0, 0%, 85%);
|
|
220
226
|
--color-text-3: hsl(210, 6%, 45%);
|
|
221
227
|
--color-text-shadow: hsl(210, 13%, 18%);
|
|
222
228
|
--color-text-highlight: hsl(52, 100%, 41%);
|
|
223
229
|
--color-text-highlight-p3: color(display-p3 0.8078 0.6225 0.0312);
|
|
230
|
+
/* Named */
|
|
224
231
|
--color-primary: hsl(214, 84%, 56%);
|
|
225
232
|
--color-success: hsl(123, 38%, 57%);
|
|
226
233
|
--color-info: hsl(199, 92%, 56%);
|
|
227
234
|
--color-warning: hsl(36, 100%, 57%);
|
|
228
235
|
--color-error: hsl(4, 90%, 58%);
|
|
229
236
|
--color-warn: hsl(0, 81%, 66%);
|
|
230
|
-
--color-text: hsl(210, 17%, 98%);
|
|
231
237
|
--color-laser: hsl(0, 100%, 50%);
|
|
232
238
|
/* Shadows */
|
|
233
239
|
--shadow-1:
|
|
@@ -241,13 +247,6 @@
|
|
|
241
247
|
inset 0px 0px 0px 1px var(--color-panel-contrast);
|
|
242
248
|
}
|
|
243
249
|
|
|
244
|
-
.tl-counter-scaled {
|
|
245
|
-
transform: scale(var(--tl-scale));
|
|
246
|
-
transform-origin: top left;
|
|
247
|
-
width: calc(100% * var(--tl-zoom));
|
|
248
|
-
height: calc(100% * var(--tl-zoom));
|
|
249
|
-
}
|
|
250
|
-
|
|
251
250
|
.tl-container,
|
|
252
251
|
.tl-container * {
|
|
253
252
|
-webkit-touch-callout: none;
|
|
@@ -273,9 +272,7 @@ input,
|
|
|
273
272
|
user-select: text;
|
|
274
273
|
}
|
|
275
274
|
|
|
276
|
-
/*
|
|
277
|
-
/* Canvas */
|
|
278
|
-
/* -------------------------------------------------- */
|
|
275
|
+
/* --------------------- Canvas --------------------- */
|
|
279
276
|
|
|
280
277
|
.tl-canvas {
|
|
281
278
|
position: absolute;
|
|
@@ -368,64 +365,6 @@ input,
|
|
|
368
365
|
contain: layout style size;
|
|
369
366
|
}
|
|
370
367
|
|
|
371
|
-
/* ---------------------- Brush --------------------- */
|
|
372
|
-
|
|
373
|
-
.tl-brush {
|
|
374
|
-
stroke-width: calc(var(--tl-scale) * 1px);
|
|
375
|
-
contain: size layout;
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
.tl-brush__default {
|
|
379
|
-
stroke: var(--color-brush-stroke);
|
|
380
|
-
fill: var(--color-brush-fill);
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
/* -------------------- Scribble -------------------- */
|
|
384
|
-
|
|
385
|
-
.tl-scribble {
|
|
386
|
-
stroke-linejoin: round;
|
|
387
|
-
stroke-linecap: round;
|
|
388
|
-
pointer-events: none;
|
|
389
|
-
contain: size layout;
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
/* ---------------------- Shape --------------------- */
|
|
393
|
-
|
|
394
|
-
.tl-shape {
|
|
395
|
-
position: absolute;
|
|
396
|
-
pointer-events: none;
|
|
397
|
-
overflow: visible;
|
|
398
|
-
transform-origin: top left;
|
|
399
|
-
contain: size layout;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
/* ---------------- Shape Containers ---------------- */
|
|
403
|
-
|
|
404
|
-
.tl-svg-container {
|
|
405
|
-
position: absolute;
|
|
406
|
-
inset: 0px;
|
|
407
|
-
height: 100%;
|
|
408
|
-
width: 100%;
|
|
409
|
-
pointer-events: none;
|
|
410
|
-
stroke-linecap: round;
|
|
411
|
-
stroke-linejoin: round;
|
|
412
|
-
transform-origin: top left;
|
|
413
|
-
overflow: visible;
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
.tl-html-container {
|
|
417
|
-
position: absolute;
|
|
418
|
-
inset: 0px;
|
|
419
|
-
height: 100%;
|
|
420
|
-
width: 100%;
|
|
421
|
-
pointer-events: none;
|
|
422
|
-
stroke-linecap: round;
|
|
423
|
-
stroke-linejoin: round;
|
|
424
|
-
/* content-visibility: auto; */
|
|
425
|
-
transform-origin: top left;
|
|
426
|
-
color: inherit;
|
|
427
|
-
}
|
|
428
|
-
|
|
429
368
|
/* --------------- Overlay Stack --------------- */
|
|
430
369
|
|
|
431
370
|
/* back of the stack, behind user's stuff */
|
|
@@ -449,14 +388,6 @@ input,
|
|
|
449
388
|
z-index: var(--layer-overlays-user-brush);
|
|
450
389
|
}
|
|
451
390
|
|
|
452
|
-
.tl-user-indicator__selected {
|
|
453
|
-
z-index: var(--layer-overlays-user-indicator-selected);
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
.tl-user-indicator__hovered {
|
|
457
|
-
z-index: var(--layer-overlays-user-indicator-hovered);
|
|
458
|
-
}
|
|
459
|
-
|
|
460
391
|
.tl-user-handles {
|
|
461
392
|
z-index: var(--layer-overlays-user-handles);
|
|
462
393
|
}
|
|
@@ -492,16 +423,7 @@ input,
|
|
|
492
423
|
overflow: visible;
|
|
493
424
|
}
|
|
494
425
|
|
|
495
|
-
/*
|
|
496
|
-
|
|
497
|
-
.tl-shape-indicator {
|
|
498
|
-
transform-origin: top left;
|
|
499
|
-
fill: none;
|
|
500
|
-
stroke-width: calc(1.5px * var(--tl-scale));
|
|
501
|
-
contain: size layout;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
/* ------------------ SelectionBox ------------------ */
|
|
426
|
+
/* -------------- Selection foreground -------------- */
|
|
505
427
|
|
|
506
428
|
.tl-selection__bg {
|
|
507
429
|
position: absolute;
|
|
@@ -560,132 +482,12 @@ input,
|
|
|
560
482
|
stroke: transparent;
|
|
561
483
|
}
|
|
562
484
|
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
.tl-handle {
|
|
566
|
-
pointer-events: all;
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
.tl-handle__bg {
|
|
570
|
-
fill: transparent;
|
|
571
|
-
stroke: transparent;
|
|
572
|
-
pointer-events: all;
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
.tl-handle__fg {
|
|
576
|
-
fill: var(--color-selected-contrast);
|
|
577
|
-
stroke: var(--color-selection-stroke);
|
|
578
|
-
stroke-width: calc(1.5px * var(--tl-scale));
|
|
579
|
-
pointer-events: none;
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
.tl-handle__create {
|
|
485
|
+
.tl-hidden {
|
|
583
486
|
opacity: 0;
|
|
487
|
+
pointer-events: none;
|
|
584
488
|
}
|
|
585
489
|
|
|
586
|
-
|
|
587
|
-
fill: var(--color-selection-stroke);
|
|
588
|
-
stroke: none;
|
|
589
|
-
}
|
|
590
|
-
|
|
591
|
-
.tl-handle__bg:active {
|
|
592
|
-
fill: none;
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
@media (pointer: coarse) {
|
|
596
|
-
.tl-handle__bg:active {
|
|
597
|
-
fill: var(--color-selection-fill);
|
|
598
|
-
}
|
|
599
|
-
|
|
600
|
-
.tl-handle__create {
|
|
601
|
-
opacity: 1;
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
|
|
605
|
-
.tl-rotate-corner:not(:hover),
|
|
606
|
-
.tl-resize-handle:not(:hover) {
|
|
607
|
-
cursor: none;
|
|
608
|
-
}
|
|
609
|
-
|
|
610
|
-
/* --------------------- Arrow Hints -------------------- */
|
|
611
|
-
|
|
612
|
-
.tl-arrow-hint-handle {
|
|
613
|
-
fill: var(--color-selected-contrast);
|
|
614
|
-
stroke: var(--color-selection-stroke);
|
|
615
|
-
stroke-width: calc(1.5px * var(--tl-scale));
|
|
616
|
-
r: calc(4px * var(--tl-scale));
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
.tl-arrow-hint-snap {
|
|
620
|
-
stroke: transparent;
|
|
621
|
-
fill: var(--color-selection-fill);
|
|
622
|
-
r: calc(12px * var(--tl-scale));
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
.tl-arrow-hint-snap__none,
|
|
626
|
-
.tl-arrow-hint-snap__center,
|
|
627
|
-
.tl-arrow-hint-snap__axis {
|
|
628
|
-
display: none;
|
|
629
|
-
}
|
|
630
|
-
|
|
631
|
-
.tl-arrow-hint-snap__edge {
|
|
632
|
-
r: calc(8px * var(--tl-scale));
|
|
633
|
-
}
|
|
634
|
-
|
|
635
|
-
/* ------------------ Bounds Detail ----------------- */
|
|
636
|
-
|
|
637
|
-
.tl-image,
|
|
638
|
-
.tl-video {
|
|
639
|
-
object-fit: cover;
|
|
640
|
-
background-size: cover;
|
|
641
|
-
width: 100%;
|
|
642
|
-
height: 100%;
|
|
643
|
-
}
|
|
644
|
-
|
|
645
|
-
.tl-video.tl-video-is-fullscreen {
|
|
646
|
-
object-fit: contain;
|
|
647
|
-
background-size: contain;
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
.tl-video-container,
|
|
651
|
-
.tl-image-container,
|
|
652
|
-
.tl-embed-container {
|
|
653
|
-
width: 100%;
|
|
654
|
-
height: 100%;
|
|
655
|
-
pointer-events: all;
|
|
656
|
-
/* background-color: var(--color-background); */
|
|
657
|
-
|
|
658
|
-
display: flex;
|
|
659
|
-
justify-content: center;
|
|
660
|
-
align-items: center;
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
.tl-image-container {
|
|
664
|
-
position: relative;
|
|
665
|
-
overflow: hidden;
|
|
666
|
-
}
|
|
667
|
-
.tl-image {
|
|
668
|
-
position: absolute;
|
|
669
|
-
inset: 0;
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
.tl-image__tg {
|
|
673
|
-
--scale: calc(min(2, var(--tl-scale)));
|
|
674
|
-
position: absolute;
|
|
675
|
-
top: calc(var(--scale) * 8px);
|
|
676
|
-
right: calc(var(--scale) * 8px);
|
|
677
|
-
font-size: 10px;
|
|
678
|
-
transform-origin: top right;
|
|
679
|
-
background-color: var(--color-background);
|
|
680
|
-
padding: 2px 4px;
|
|
681
|
-
border-radius: var(--radius-1);
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
/* --------------------- Nametag -------------------- */
|
|
685
|
-
|
|
686
|
-
.tl-collaborator-cursor {
|
|
687
|
-
position: absolute;
|
|
688
|
-
}
|
|
490
|
+
/* -------------- Nametag / cursor chat ------------- */
|
|
689
491
|
|
|
690
492
|
.tl-nametag {
|
|
691
493
|
position: absolute;
|
|
@@ -766,44 +568,13 @@ input,
|
|
|
766
568
|
text-shadow: none;
|
|
767
569
|
}
|
|
768
570
|
|
|
769
|
-
.tl-cursor-chat-fade {
|
|
770
|
-
/* Setting to zero causes it to immediately disappear */
|
|
771
|
-
/* Setting to near-zero causes it to fade out gradually */
|
|
772
|
-
opacity: 0.0001;
|
|
773
|
-
transition: opacity 5s ease-in-out;
|
|
774
|
-
}
|
|
775
|
-
|
|
776
571
|
.tl-cursor-chat::placeholder {
|
|
777
572
|
color: var(--color-selected-contrast);
|
|
778
573
|
opacity: 0.7;
|
|
779
574
|
}
|
|
780
575
|
|
|
781
|
-
/* --------------------- Spinner -------------------- */
|
|
782
|
-
@keyframes spinner {
|
|
783
|
-
to {
|
|
784
|
-
transform: rotate(360deg);
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
|
-
|
|
788
576
|
/* ---------------------- Text ---------------------- */
|
|
789
577
|
|
|
790
|
-
.tl-text-shape-label {
|
|
791
|
-
position: relative;
|
|
792
|
-
font-weight: normal;
|
|
793
|
-
min-width: 1px;
|
|
794
|
-
padding: 0px;
|
|
795
|
-
margin: 0px;
|
|
796
|
-
border: none;
|
|
797
|
-
width: fit-content;
|
|
798
|
-
height: fit-content;
|
|
799
|
-
font-variant: normal;
|
|
800
|
-
font-style: normal;
|
|
801
|
-
pointer-events: all;
|
|
802
|
-
white-space: pre-wrap;
|
|
803
|
-
overflow-wrap: break-word;
|
|
804
|
-
text-shadow: var(--tl-text-outline);
|
|
805
|
-
}
|
|
806
|
-
|
|
807
578
|
.tl-text-wrapper[data-font='draw'] {
|
|
808
579
|
font-family: var(--tl-font-draw);
|
|
809
580
|
}
|
|
@@ -943,42 +714,108 @@ input,
|
|
|
943
714
|
overflow: hidden;
|
|
944
715
|
}
|
|
945
716
|
|
|
946
|
-
.tl-text-wrapper[data-isediting='false'] .tl-text-input,
|
|
947
|
-
.tl-arrow-label[data-isediting='false'] .tl-text-input {
|
|
948
|
-
opacity: 0;
|
|
949
|
-
cursor: var(--tl-cursor-default);
|
|
950
|
-
}
|
|
951
|
-
|
|
952
|
-
.tl-rich-text[data-is-ready-for-editing='true'],
|
|
953
|
-
.tl-text-wrapper[data-is-ready-for-editing='true'] .tl-text-input {
|
|
954
|
-
cursor: var(--tl-cursor-text);
|
|
955
|
-
}
|
|
956
|
-
|
|
957
717
|
.tl-text-input::selection {
|
|
958
718
|
background: var(--color-selected);
|
|
959
719
|
color: var(--color-selected-contrast);
|
|
960
720
|
text-shadow: none;
|
|
961
721
|
}
|
|
962
722
|
|
|
963
|
-
|
|
964
|
-
word-wrap: break-word;
|
|
965
|
-
overflow-wrap: break-word;
|
|
966
|
-
white-space: pre-wrap;
|
|
967
|
-
|
|
968
|
-
/**
|
|
969
|
-
* Note: ProseMirror disables this in https://github.com/ProseMirror/prosemirror-view/commit/6b3b2205e2f3029cb8e8e86c55a190a22491df31
|
|
970
|
-
* However, that was from 8 years ago and the browser caret issue
|
|
971
|
-
* it mentions seems to be fixed. So, we're re-enabling it.
|
|
972
|
-
* We'll tell ProseMirror maybe to get rid of this on their end.
|
|
973
|
-
*
|
|
974
|
-
*/
|
|
975
|
-
-webkit-font-variant-ligatures: inherit;
|
|
976
|
-
font-variant-ligatures: inherit;
|
|
977
|
-
font-feature-settings: inherit;
|
|
723
|
+
/* Text label */
|
|
978
724
|
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
725
|
+
.tl-text-label {
|
|
726
|
+
display: flex;
|
|
727
|
+
justify-content: center;
|
|
728
|
+
align-items: center;
|
|
729
|
+
color: var(--color-text);
|
|
730
|
+
text-shadow: var(--tl-text-outline);
|
|
731
|
+
line-height: inherit;
|
|
732
|
+
position: absolute;
|
|
733
|
+
inset: 0px;
|
|
734
|
+
height: 100%;
|
|
735
|
+
width: 100%;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
.tl-text-label[data-hastext='false'][data-isediting='false'] > .tl-text-label__inner {
|
|
739
|
+
width: 40px;
|
|
740
|
+
height: 40px;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
.tl-text-label[data-hastext='true'][data-isediting='false'] .tl-text-content {
|
|
744
|
+
pointer-events: all;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
.tl-text-label__inner > .tl-text-input.tl-rich-text {
|
|
748
|
+
display: none;
|
|
749
|
+
position: static;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
.tl-text-wrapper[data-isediting='false'] .tl-text-input,
|
|
753
|
+
.tl-arrow-label[data-isediting='false'] .tl-text-input {
|
|
754
|
+
opacity: 0;
|
|
755
|
+
cursor: var(--tl-cursor-default);
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
.tl-rich-text[data-is-ready-for-editing='true'],
|
|
759
|
+
.tl-text-wrapper[data-is-ready-for-editing='true'] .tl-text-input {
|
|
760
|
+
cursor: var(--tl-cursor-text);
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
.tl-text-label[data-textwrap='true'] > .tl-text-label__inner {
|
|
764
|
+
max-width: 100%;
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
.tl-text-label[data-isediting='true'] {
|
|
768
|
+
background-color: transparent;
|
|
769
|
+
min-height: auto;
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
.tl-text-wrapper .tl-text-content {
|
|
773
|
+
pointer-events: all;
|
|
774
|
+
z-index: var(--layer-text-content);
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
.tl-text-wrapper[data-isselected='true'] .tl-text-input {
|
|
778
|
+
z-index: var(--layer-text-editor);
|
|
779
|
+
pointer-events: all;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
/* This part of the rule helps preserve the occlusion rules for the shapes so we
|
|
783
|
+
* don't click on shapes that are behind other shapes.
|
|
784
|
+
* One extra nuance is we don't use this behavior for:
|
|
785
|
+
* - arrows which have weird geometry and just gets in the way.
|
|
786
|
+
* - draw/line shapes, because it feels restrictive to have them be 'in the way' of clicking on a textfield
|
|
787
|
+
* - shapes that are not filled
|
|
788
|
+
*/
|
|
789
|
+
.tl-canvas:is([data-iseditinganything='true'], [data-isselectinganything='true'])
|
|
790
|
+
.tl-shape:not(
|
|
791
|
+
[data-shape-type='arrow'],
|
|
792
|
+
[data-shape-type='draw'],
|
|
793
|
+
[data-shape-type='line'],
|
|
794
|
+
[data-shape-type='highlight'],
|
|
795
|
+
[data-shape-is-filled='false']
|
|
796
|
+
) {
|
|
797
|
+
pointer-events: all;
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
.tl-rich-text .ProseMirror {
|
|
801
|
+
word-wrap: break-word;
|
|
802
|
+
overflow-wrap: break-word;
|
|
803
|
+
white-space: pre-wrap;
|
|
804
|
+
|
|
805
|
+
/**
|
|
806
|
+
* Note: ProseMirror disables this in https://github.com/ProseMirror/prosemirror-view/commit/6b3b2205e2f3029cb8e8e86c55a190a22491df31
|
|
807
|
+
* However, that was from 8 years ago and the browser caret issue
|
|
808
|
+
* it mentions seems to be fixed. So, we're re-enabling it.
|
|
809
|
+
* We'll tell ProseMirror maybe to get rid of this on their end.
|
|
810
|
+
*
|
|
811
|
+
*/
|
|
812
|
+
-webkit-font-variant-ligatures: inherit;
|
|
813
|
+
font-variant-ligatures: inherit;
|
|
814
|
+
font-feature-settings: inherit;
|
|
815
|
+
|
|
816
|
+
/**
|
|
817
|
+
* N.B. This following CSS Rule comes standard with the tiptap editor.
|
|
818
|
+
* Combined with the above rule that it supersedes, it allows for
|
|
982
819
|
* the auto-linking to work in text. Say, when typing example.com
|
|
983
820
|
* this helps it automatically turn that bit of text into a link.
|
|
984
821
|
*
|
|
@@ -1068,38 +905,307 @@ input,
|
|
|
1068
905
|
}
|
|
1069
906
|
}
|
|
1070
907
|
|
|
1071
|
-
.tl-text-
|
|
1072
|
-
display:
|
|
1073
|
-
position: static;
|
|
908
|
+
.tl-text-wrapper[data-isediting='true'] .tl-rich-text {
|
|
909
|
+
display: block;
|
|
1074
910
|
}
|
|
1075
911
|
|
|
1076
|
-
|
|
912
|
+
/* --------------------- Loading -------------------- */
|
|
913
|
+
|
|
914
|
+
.tl-loading {
|
|
915
|
+
background-color: var(--color-background);
|
|
916
|
+
color: var(--color-text-1);
|
|
917
|
+
height: 100%;
|
|
918
|
+
width: 100%;
|
|
919
|
+
display: flex;
|
|
920
|
+
flex-direction: column;
|
|
921
|
+
justify-content: center;
|
|
922
|
+
align-items: center;
|
|
923
|
+
gap: var(--space-2);
|
|
924
|
+
font-size: 14px;
|
|
925
|
+
font-weight: 500;
|
|
926
|
+
opacity: 0;
|
|
927
|
+
animation: fade-in 0.2s ease-in-out forwards;
|
|
928
|
+
animation-delay: 0.2s;
|
|
929
|
+
position: absolute;
|
|
930
|
+
inset: 0px;
|
|
931
|
+
z-index: var(--layer-canvas-blocker);
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
@keyframes fade-in {
|
|
935
|
+
0% {
|
|
936
|
+
opacity: 0;
|
|
937
|
+
}
|
|
938
|
+
100% {
|
|
939
|
+
opacity: 1;
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
/* ---------------------- Brush --------------------- */
|
|
944
|
+
|
|
945
|
+
.tl-brush {
|
|
946
|
+
stroke-width: calc(var(--tl-scale) * 1px);
|
|
947
|
+
contain: size layout;
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
.tl-brush__default {
|
|
951
|
+
stroke: var(--color-brush-stroke);
|
|
952
|
+
fill: var(--color-brush-fill);
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
/* -------------------- Scribble -------------------- */
|
|
956
|
+
|
|
957
|
+
.tl-scribble {
|
|
958
|
+
stroke-linejoin: round;
|
|
959
|
+
stroke-linecap: round;
|
|
960
|
+
pointer-events: none;
|
|
961
|
+
contain: size layout;
|
|
962
|
+
}
|
|
963
|
+
|
|
964
|
+
/* ---------------------- Snaps --------------------- */
|
|
965
|
+
|
|
966
|
+
.tl-snap-indicator {
|
|
967
|
+
stroke: var(--color-snap);
|
|
968
|
+
stroke-width: calc(1px * var(--tl-scale));
|
|
969
|
+
fill: none;
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
.tl-snap-point {
|
|
973
|
+
stroke: var(--color-snap);
|
|
974
|
+
stroke-width: calc(1px * var(--tl-scale));
|
|
975
|
+
fill: none;
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
/* ---------------- Hyperlink Button ---------------- */
|
|
979
|
+
|
|
980
|
+
.tl-hyperlink-button {
|
|
981
|
+
background: none;
|
|
982
|
+
margin: 0px;
|
|
983
|
+
position: absolute;
|
|
984
|
+
top: 0px;
|
|
985
|
+
right: 0px;
|
|
986
|
+
height: 44px;
|
|
987
|
+
width: 44px;
|
|
988
|
+
display: flex;
|
|
989
|
+
align-items: center;
|
|
990
|
+
justify-content: center;
|
|
991
|
+
font-size: 12px;
|
|
992
|
+
font-weight: 400;
|
|
993
|
+
color: var(--color-text-1);
|
|
994
|
+
padding: 13px;
|
|
995
|
+
cursor: var(--tl-cursor-pointer);
|
|
996
|
+
border: none;
|
|
997
|
+
outline: none;
|
|
998
|
+
pointer-events: all;
|
|
999
|
+
z-index: 1;
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
.tl-hyperlink-button::after {
|
|
1003
|
+
content: '';
|
|
1004
|
+
z-index: -1;
|
|
1005
|
+
position: absolute;
|
|
1006
|
+
right: 6px;
|
|
1007
|
+
bottom: 6px;
|
|
1077
1008
|
display: block;
|
|
1009
|
+
width: calc(100% - 12px);
|
|
1010
|
+
height: calc(100% - 12px);
|
|
1011
|
+
border-radius: var(--radius-1);
|
|
1012
|
+
background-color: var(--color-background);
|
|
1013
|
+
pointer-events: none;
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
.tl-hyperlink-button:focus-visible {
|
|
1017
|
+
color: var(--color-selected);
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
.tl-hyperlink__icon {
|
|
1021
|
+
width: 16px;
|
|
1022
|
+
height: 16px;
|
|
1023
|
+
background-color: currentColor;
|
|
1024
|
+
pointer-events: none;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
.tl-hyperlink-button__hidden {
|
|
1028
|
+
display: none;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
/* --------------------- Handles -------------------- */
|
|
1032
|
+
|
|
1033
|
+
.tl-handle {
|
|
1034
|
+
pointer-events: all;
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1037
|
+
.tl-handle__bg {
|
|
1038
|
+
fill: transparent;
|
|
1039
|
+
stroke: transparent;
|
|
1040
|
+
pointer-events: all;
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
.tl-handle__fg {
|
|
1044
|
+
fill: var(--color-selected-contrast);
|
|
1045
|
+
stroke: var(--color-selection-stroke);
|
|
1046
|
+
stroke-width: calc(1.5px * var(--tl-scale));
|
|
1047
|
+
pointer-events: none;
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
.tl-handle__create {
|
|
1051
|
+
opacity: 0;
|
|
1052
|
+
}
|
|
1053
|
+
|
|
1054
|
+
.tl-handle__clone > .tl-handle__fg {
|
|
1055
|
+
fill: var(--color-selection-stroke);
|
|
1056
|
+
stroke: none;
|
|
1057
|
+
}
|
|
1058
|
+
|
|
1059
|
+
.tl-handle__bg:active {
|
|
1060
|
+
fill: none;
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1063
|
+
@media (pointer: coarse) {
|
|
1064
|
+
.tl-handle__bg:active {
|
|
1065
|
+
fill: var(--color-selection-fill);
|
|
1066
|
+
}
|
|
1067
|
+
|
|
1068
|
+
.tl-handle__create {
|
|
1069
|
+
opacity: 1;
|
|
1070
|
+
}
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
.tl-rotate-corner:not(:hover),
|
|
1074
|
+
.tl-resize-handle:not(:hover) {
|
|
1075
|
+
cursor: none;
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
/* ----------------- Shape indicator ---------------- */
|
|
1079
|
+
|
|
1080
|
+
.tl-shape-indicator {
|
|
1081
|
+
transform-origin: top left;
|
|
1082
|
+
fill: none;
|
|
1083
|
+
stroke-width: calc(1.5px * var(--tl-scale));
|
|
1084
|
+
contain: size layout;
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
/* ---------------------- Shape --------------------- */
|
|
1088
|
+
|
|
1089
|
+
.tl-shape {
|
|
1090
|
+
position: absolute;
|
|
1091
|
+
pointer-events: none;
|
|
1092
|
+
overflow: visible;
|
|
1093
|
+
transform-origin: top left;
|
|
1094
|
+
contain: size layout;
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
/* ---------------- Shape Containers ---------------- */
|
|
1098
|
+
|
|
1099
|
+
.tl-svg-container {
|
|
1100
|
+
position: absolute;
|
|
1101
|
+
inset: 0px;
|
|
1102
|
+
height: 100%;
|
|
1103
|
+
width: 100%;
|
|
1104
|
+
pointer-events: none;
|
|
1105
|
+
stroke-linecap: round;
|
|
1106
|
+
stroke-linejoin: round;
|
|
1107
|
+
transform-origin: top left;
|
|
1108
|
+
overflow: visible;
|
|
1109
|
+
}
|
|
1110
|
+
|
|
1111
|
+
.tl-html-container {
|
|
1112
|
+
position: absolute;
|
|
1113
|
+
inset: 0px;
|
|
1114
|
+
height: 100%;
|
|
1115
|
+
width: 100%;
|
|
1116
|
+
pointer-events: none;
|
|
1117
|
+
stroke-linecap: round;
|
|
1118
|
+
stroke-linejoin: round;
|
|
1119
|
+
/* content-visibility: auto; */
|
|
1120
|
+
transform-origin: top left;
|
|
1121
|
+
color: inherit;
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
/* -------------------- Group shape ------------------ */
|
|
1125
|
+
|
|
1126
|
+
.tl-group {
|
|
1127
|
+
stroke: var(--color-text);
|
|
1128
|
+
stroke-width: calc(1px * var(--tl-scale));
|
|
1129
|
+
opacity: 0.5;
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1132
|
+
/* --------------------- Arrow shape -------------------- */
|
|
1133
|
+
|
|
1134
|
+
.tl-arrow-label {
|
|
1135
|
+
position: absolute;
|
|
1136
|
+
top: -1px;
|
|
1137
|
+
left: -1px;
|
|
1138
|
+
width: 2px;
|
|
1139
|
+
height: 2px;
|
|
1140
|
+
padding: 0px;
|
|
1141
|
+
display: flex;
|
|
1142
|
+
justify-content: center;
|
|
1143
|
+
align-items: center;
|
|
1144
|
+
text-align: center;
|
|
1145
|
+
color: var(--color-text);
|
|
1146
|
+
text-shadow: var(--tl-text-outline);
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
.tl-arrow-label[data-isediting='true'] p {
|
|
1150
|
+
opacity: 0;
|
|
1151
|
+
}
|
|
1152
|
+
|
|
1153
|
+
.tl-arrow-label__inner {
|
|
1154
|
+
border-radius: var(--radius-1);
|
|
1155
|
+
box-sizing: content-box;
|
|
1156
|
+
position: relative;
|
|
1157
|
+
height: max-content;
|
|
1158
|
+
width: max-content;
|
|
1159
|
+
pointer-events: none;
|
|
1160
|
+
display: flex;
|
|
1161
|
+
justify-content: center;
|
|
1162
|
+
align-items: center;
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
.tl-arrow-label .tl-arrow {
|
|
1166
|
+
position: relative;
|
|
1167
|
+
height: max-content;
|
|
1168
|
+
padding: inherit;
|
|
1169
|
+
overflow: visible;
|
|
1170
|
+
}
|
|
1171
|
+
|
|
1172
|
+
.tl-arrow-label textarea {
|
|
1173
|
+
padding: inherit;
|
|
1174
|
+
/* Don't allow textarea to be zero width */
|
|
1175
|
+
min-width: 4px;
|
|
1078
1176
|
}
|
|
1079
1177
|
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
.tl-snap-indicator {
|
|
1083
|
-
stroke: var(--color-accent);
|
|
1084
|
-
stroke-width: calc(1px * var(--tl-scale));
|
|
1178
|
+
.tl-arrow-hint {
|
|
1179
|
+
stroke: var(--color-text-1);
|
|
1085
1180
|
fill: none;
|
|
1181
|
+
stroke-linecap: round;
|
|
1182
|
+
overflow: visible;
|
|
1086
1183
|
}
|
|
1087
1184
|
|
|
1088
|
-
.tl-
|
|
1089
|
-
|
|
1090
|
-
stroke
|
|
1091
|
-
|
|
1185
|
+
.tl-arrow-hint-handle {
|
|
1186
|
+
fill: var(--color-selected-contrast);
|
|
1187
|
+
stroke: var(--color-selection-stroke);
|
|
1188
|
+
stroke-width: calc(1.5px * var(--tl-scale));
|
|
1189
|
+
r: calc(4px * var(--tl-scale));
|
|
1092
1190
|
}
|
|
1093
1191
|
|
|
1094
|
-
|
|
1192
|
+
.tl-arrow-hint-snap {
|
|
1193
|
+
stroke: transparent;
|
|
1194
|
+
fill: var(--color-selection-fill);
|
|
1195
|
+
r: calc(12px * var(--tl-scale));
|
|
1196
|
+
}
|
|
1095
1197
|
|
|
1096
|
-
.tl-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1198
|
+
.tl-arrow-hint-snap__none,
|
|
1199
|
+
.tl-arrow-hint-snap__center,
|
|
1200
|
+
.tl-arrow-hint-snap__axis {
|
|
1201
|
+
display: none;
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
.tl-arrow-hint-snap__edge {
|
|
1205
|
+
r: calc(8px * var(--tl-scale));
|
|
1100
1206
|
}
|
|
1101
1207
|
|
|
1102
|
-
/* ------------------- Bookmark
|
|
1208
|
+
/* ------------------- Bookmark shape ------------------- */
|
|
1103
1209
|
|
|
1104
1210
|
.tl-bookmark__container {
|
|
1105
1211
|
width: 100%;
|
|
@@ -1228,193 +1334,45 @@ input,
|
|
|
1228
1334
|
flex-shrink: 0;
|
|
1229
1335
|
}
|
|
1230
1336
|
|
|
1231
|
-
/*
|
|
1232
|
-
|
|
1233
|
-
.tl-hyperlink-button {
|
|
1234
|
-
background: none;
|
|
1235
|
-
margin: 0px;
|
|
1236
|
-
position: absolute;
|
|
1237
|
-
top: 0px;
|
|
1238
|
-
right: 0px;
|
|
1239
|
-
height: 44px;
|
|
1240
|
-
width: 44px;
|
|
1241
|
-
display: flex;
|
|
1242
|
-
align-items: center;
|
|
1243
|
-
justify-content: center;
|
|
1244
|
-
font-size: 12px;
|
|
1245
|
-
font-weight: 400;
|
|
1246
|
-
color: var(--color-text-1);
|
|
1247
|
-
padding: 13px;
|
|
1248
|
-
cursor: var(--tl-cursor-pointer);
|
|
1249
|
-
border: none;
|
|
1250
|
-
outline: none;
|
|
1251
|
-
pointer-events: all;
|
|
1252
|
-
z-index: 1;
|
|
1253
|
-
}
|
|
1254
|
-
|
|
1255
|
-
.tl-hyperlink-button::after {
|
|
1256
|
-
content: '';
|
|
1257
|
-
z-index: -1;
|
|
1258
|
-
position: absolute;
|
|
1259
|
-
right: 6px;
|
|
1260
|
-
bottom: 6px;
|
|
1261
|
-
display: block;
|
|
1262
|
-
width: calc(100% - 12px);
|
|
1263
|
-
height: calc(100% - 12px);
|
|
1264
|
-
border-radius: var(--radius-1);
|
|
1265
|
-
background-color: var(--color-background);
|
|
1266
|
-
pointer-events: none;
|
|
1267
|
-
}
|
|
1268
|
-
|
|
1269
|
-
.tl-hyperlink-button:focus-visible {
|
|
1270
|
-
color: var(--color-selected);
|
|
1271
|
-
}
|
|
1272
|
-
|
|
1273
|
-
.tl-hyperlink__icon {
|
|
1274
|
-
width: 16px;
|
|
1275
|
-
height: 16px;
|
|
1276
|
-
background-color: currentColor;
|
|
1277
|
-
pointer-events: none;
|
|
1278
|
-
}
|
|
1279
|
-
|
|
1280
|
-
.tl-hyperlink-button__hidden {
|
|
1281
|
-
display: none;
|
|
1282
|
-
}
|
|
1283
|
-
|
|
1284
|
-
/* ---------------- Geo shape ---------------- */
|
|
1337
|
+
/* -------------- Image and video shape ------------- */
|
|
1285
1338
|
|
|
1286
|
-
.tl-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
color: var(--color-text);
|
|
1291
|
-
text-shadow: var(--tl-text-outline);
|
|
1292
|
-
line-height: inherit;
|
|
1293
|
-
position: absolute;
|
|
1294
|
-
inset: 0px;
|
|
1295
|
-
height: 100%;
|
|
1339
|
+
.tl-image,
|
|
1340
|
+
.tl-video {
|
|
1341
|
+
object-fit: cover;
|
|
1342
|
+
background-size: cover;
|
|
1296
1343
|
width: 100%;
|
|
1297
|
-
}
|
|
1298
|
-
|
|
1299
|
-
.tl-text-label[data-hastext='false'][data-isediting='false'] > .tl-text-label__inner {
|
|
1300
|
-
width: 40px;
|
|
1301
|
-
height: 40px;
|
|
1302
|
-
}
|
|
1303
|
-
|
|
1304
|
-
.tl-text-label[data-hastext='true'][data-isediting='false'] .tl-text-content {
|
|
1305
|
-
pointer-events: all;
|
|
1306
|
-
}
|
|
1307
|
-
|
|
1308
|
-
.tl-text-wrapper .tl-text-content {
|
|
1309
|
-
pointer-events: all;
|
|
1310
|
-
z-index: var(--layer-text-content);
|
|
1311
|
-
}
|
|
1312
|
-
|
|
1313
|
-
.tl-text-label__inner > .tl-text-content {
|
|
1314
|
-
position: relative;
|
|
1315
|
-
top: 0px;
|
|
1316
|
-
left: 0px;
|
|
1317
|
-
padding: inherit;
|
|
1318
|
-
height: fit-content;
|
|
1319
|
-
width: fit-content;
|
|
1320
|
-
border-radius: var(--radius-1);
|
|
1321
|
-
max-width: 100%;
|
|
1322
|
-
}
|
|
1323
|
-
|
|
1324
|
-
.tl-text-label__inner > .tl-text-input {
|
|
1325
|
-
position: absolute;
|
|
1326
|
-
inset: 0px;
|
|
1327
1344
|
height: 100%;
|
|
1328
|
-
width: 100%;
|
|
1329
|
-
padding: inherit;
|
|
1330
|
-
}
|
|
1331
|
-
|
|
1332
|
-
.tl-text-wrapper[data-isselected='true'] .tl-text-input {
|
|
1333
|
-
z-index: var(--layer-text-editor);
|
|
1334
|
-
pointer-events: all;
|
|
1335
1345
|
}
|
|
1336
1346
|
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
* - shapes that are not filled
|
|
1343
|
-
*/
|
|
1344
|
-
.tl-canvas:is([data-iseditinganything='true'], [data-isselectinganything='true'])
|
|
1345
|
-
.tl-shape:not(
|
|
1346
|
-
[data-shape-type='arrow'],
|
|
1347
|
-
[data-shape-type='draw'],
|
|
1348
|
-
[data-shape-type='line'],
|
|
1349
|
-
[data-shape-type='highlight'],
|
|
1350
|
-
[data-shape-is-filled='false']
|
|
1351
|
-
) {
|
|
1347
|
+
.tl-video-container,
|
|
1348
|
+
.tl-image-container,
|
|
1349
|
+
.tl-embed-container {
|
|
1350
|
+
width: 100%;
|
|
1351
|
+
height: 100%;
|
|
1352
1352
|
pointer-events: all;
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
.tl-text-label[data-textwrap='true'] > .tl-text-label__inner {
|
|
1356
|
-
max-width: 100%;
|
|
1357
|
-
}
|
|
1358
|
-
|
|
1359
|
-
.tl-text-label[data-isediting='true'] {
|
|
1360
|
-
background-color: transparent;
|
|
1361
|
-
min-height: auto;
|
|
1362
|
-
}
|
|
1363
|
-
|
|
1364
|
-
.tl-arrow-hint {
|
|
1365
|
-
stroke: var(--color-text-1);
|
|
1366
|
-
fill: none;
|
|
1367
|
-
stroke-linecap: round;
|
|
1368
|
-
overflow: visible;
|
|
1369
|
-
}
|
|
1370
|
-
|
|
1371
|
-
/* ------------------- Arrow Shape ------------------ */
|
|
1353
|
+
/* background-color: var(--color-background); */
|
|
1372
1354
|
|
|
1373
|
-
.tl-arrow-label {
|
|
1374
|
-
position: absolute;
|
|
1375
|
-
top: -1px;
|
|
1376
|
-
left: -1px;
|
|
1377
|
-
width: 2px;
|
|
1378
|
-
height: 2px;
|
|
1379
|
-
padding: 0px;
|
|
1380
1355
|
display: flex;
|
|
1381
1356
|
justify-content: center;
|
|
1382
1357
|
align-items: center;
|
|
1383
|
-
text-align: center;
|
|
1384
|
-
color: var(--color-text);
|
|
1385
|
-
text-shadow: var(--tl-text-outline);
|
|
1386
1358
|
}
|
|
1387
1359
|
|
|
1388
|
-
.tl-
|
|
1389
|
-
opacity: 0;
|
|
1390
|
-
}
|
|
1391
|
-
|
|
1392
|
-
.tl-arrow-label__inner {
|
|
1393
|
-
border-radius: var(--radius-1);
|
|
1394
|
-
box-sizing: content-box;
|
|
1360
|
+
.tl-image-container {
|
|
1395
1361
|
position: relative;
|
|
1396
|
-
|
|
1397
|
-
width: max-content;
|
|
1398
|
-
pointer-events: none;
|
|
1399
|
-
display: flex;
|
|
1400
|
-
justify-content: center;
|
|
1401
|
-
align-items: center;
|
|
1362
|
+
overflow: hidden;
|
|
1402
1363
|
}
|
|
1403
1364
|
|
|
1404
|
-
.tl-
|
|
1405
|
-
position:
|
|
1406
|
-
|
|
1407
|
-
padding: inherit;
|
|
1408
|
-
overflow: visible;
|
|
1365
|
+
.tl-image {
|
|
1366
|
+
position: absolute;
|
|
1367
|
+
inset: 0;
|
|
1409
1368
|
}
|
|
1410
1369
|
|
|
1411
|
-
.tl-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
min-width: 4px;
|
|
1370
|
+
.tl-video.tl-video-is-fullscreen {
|
|
1371
|
+
object-fit: contain;
|
|
1372
|
+
background-size: contain;
|
|
1415
1373
|
}
|
|
1416
1374
|
|
|
1417
|
-
/* --------------------
|
|
1375
|
+
/* -------------------- Note shape ------------------- */
|
|
1418
1376
|
|
|
1419
1377
|
.tl-note__container {
|
|
1420
1378
|
position: relative;
|
|
@@ -1431,38 +1389,7 @@ input,
|
|
|
1431
1389
|
color: currentColor;
|
|
1432
1390
|
}
|
|
1433
1391
|
|
|
1434
|
-
/*
|
|
1435
|
-
|
|
1436
|
-
.tl-loading {
|
|
1437
|
-
background-color: var(--color-background);
|
|
1438
|
-
color: var(--color-text-1);
|
|
1439
|
-
height: 100%;
|
|
1440
|
-
width: 100%;
|
|
1441
|
-
display: flex;
|
|
1442
|
-
flex-direction: column;
|
|
1443
|
-
justify-content: center;
|
|
1444
|
-
align-items: center;
|
|
1445
|
-
gap: var(--space-2);
|
|
1446
|
-
font-size: 14px;
|
|
1447
|
-
font-weight: 500;
|
|
1448
|
-
opacity: 0;
|
|
1449
|
-
animation: fade-in 0.2s ease-in-out forwards;
|
|
1450
|
-
animation-delay: 0.2s;
|
|
1451
|
-
position: absolute;
|
|
1452
|
-
inset: 0px;
|
|
1453
|
-
z-index: var(--layer-canvas-blocker);
|
|
1454
|
-
}
|
|
1455
|
-
|
|
1456
|
-
@keyframes fade-in {
|
|
1457
|
-
0% {
|
|
1458
|
-
opacity: 0;
|
|
1459
|
-
}
|
|
1460
|
-
100% {
|
|
1461
|
-
opacity: 1;
|
|
1462
|
-
}
|
|
1463
|
-
}
|
|
1464
|
-
|
|
1465
|
-
/* -------------------- FrameShape ------------------- */
|
|
1392
|
+
/* ------------------- Frame shape ------------------- */
|
|
1466
1393
|
|
|
1467
1394
|
.tl-frame__body {
|
|
1468
1395
|
stroke-width: calc(1px * var(--tl-scale));
|
|
@@ -1555,14 +1482,14 @@ input,
|
|
|
1555
1482
|
}
|
|
1556
1483
|
}
|
|
1557
1484
|
|
|
1558
|
-
/*
|
|
1485
|
+
/* ------------------- Embed Shape ------------------ */
|
|
1559
1486
|
|
|
1560
1487
|
.tl-embed {
|
|
1561
1488
|
border: none;
|
|
1562
1489
|
border-radius: var(--radius-2);
|
|
1563
1490
|
}
|
|
1564
1491
|
|
|
1565
|
-
/* -------------- Shape
|
|
1492
|
+
/* -------------- Shape error boundary -------------- */
|
|
1566
1493
|
|
|
1567
1494
|
.tl-shape-error-boundary {
|
|
1568
1495
|
width: 100%;
|
|
@@ -1591,7 +1518,7 @@ input,
|
|
|
1591
1518
|
color: var(--color-text-0);
|
|
1592
1519
|
}
|
|
1593
1520
|
|
|
1594
|
-
/* ----------------- Error
|
|
1521
|
+
/* ----------------- Error boundary ----------------- */
|
|
1595
1522
|
|
|
1596
1523
|
.tl-error-boundary {
|
|
1597
1524
|
width: 100%;
|
|
@@ -1753,22 +1680,6 @@ it from receiving any pointer events or affecting the cursor. */
|
|
|
1753
1680
|
outline-offset: 0;
|
|
1754
1681
|
}
|
|
1755
1682
|
|
|
1756
|
-
/* --------------------- Coarse --------------------- */
|
|
1757
|
-
|
|
1758
|
-
.tl-hidden {
|
|
1759
|
-
opacity: 0;
|
|
1760
|
-
pointer-events: none;
|
|
1761
|
-
}
|
|
1762
|
-
|
|
1763
|
-
.debug__ui-logger {
|
|
1764
|
-
position: absolute;
|
|
1765
|
-
top: 62px;
|
|
1766
|
-
left: 16px;
|
|
1767
|
-
color: #555;
|
|
1768
|
-
font-size: 12px;
|
|
1769
|
-
font-family: monospace;
|
|
1770
|
-
}
|
|
1771
|
-
|
|
1772
1683
|
/* ---------------- Hit test blocker ---------------- */
|
|
1773
1684
|
|
|
1774
1685
|
.tl-hit-test-blocker {
|
|
@@ -1784,6 +1695,8 @@ it from receiving any pointer events or affecting the cursor. */
|
|
|
1784
1695
|
display: none;
|
|
1785
1696
|
}
|
|
1786
1697
|
|
|
1698
|
+
/* --------------------- Hovers --------------------- */
|
|
1699
|
+
|
|
1787
1700
|
@media (hover: hover) {
|
|
1788
1701
|
.tl-handle__create:hover {
|
|
1789
1702
|
opacity: 1;
|
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.14.0-canary.
|
|
4
|
+
"version": "3.14.0-canary.468bf700c42b",
|
|
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.14.0-canary.
|
|
52
|
-
"@tldraw/state-react": "3.14.0-canary.
|
|
53
|
-
"@tldraw/store": "3.14.0-canary.
|
|
54
|
-
"@tldraw/tlschema": "3.14.0-canary.
|
|
55
|
-
"@tldraw/utils": "3.14.0-canary.
|
|
56
|
-
"@tldraw/validate": "3.14.0-canary.
|
|
51
|
+
"@tldraw/state": "3.14.0-canary.468bf700c42b",
|
|
52
|
+
"@tldraw/state-react": "3.14.0-canary.468bf700c42b",
|
|
53
|
+
"@tldraw/store": "3.14.0-canary.468bf700c42b",
|
|
54
|
+
"@tldraw/tlschema": "3.14.0-canary.468bf700c42b",
|
|
55
|
+
"@tldraw/utils": "3.14.0-canary.468bf700c42b",
|
|
56
|
+
"@tldraw/validate": "3.14.0-canary.468bf700c42b",
|
|
57
57
|
"@types/core-js": "^2.5.8",
|
|
58
58
|
"@use-gesture/react": "^10.3.1",
|
|
59
59
|
"classnames": "^2.5.1",
|
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.14.0-canary.
|
|
4
|
+
export const version = '3.14.0-canary.468bf700c42b'
|
|
5
5
|
export const publishDates = {
|
|
6
6
|
major: '2024-09-13T14:36:29.063Z',
|
|
7
|
-
minor: '2025-06-
|
|
8
|
-
patch: '2025-06-
|
|
7
|
+
minor: '2025-06-14T19:09:41.007Z',
|
|
8
|
+
patch: '2025-06-14T19:09:41.007Z',
|
|
9
9
|
}
|