tldraw 3.16.0-canary.2b8b5023f0a5 → 3.16.0-canary.555a872cc1c7

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 (113) hide show
  1. package/dist-cjs/index.d.ts +43 -4
  2. package/dist-cjs/index.js +4 -1
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/canvas/TldrawScribble.js +1 -1
  5. package/dist-cjs/lib/canvas/TldrawScribble.js.map +2 -2
  6. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js +3 -3
  7. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js.map +1 -1
  8. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -1
  9. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
  10. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +4 -4
  11. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  12. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -1
  13. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +2 -2
  14. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +3 -3
  15. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +1 -1
  16. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +3 -3
  17. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
  18. package/dist-cjs/lib/ui/TldrawUi.js +14 -0
  19. package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
  20. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +10 -2
  21. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
  22. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +4 -4
  23. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
  24. package/dist-cjs/lib/ui/components/MobileStylePanel.js +4 -2
  25. package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
  26. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js +1 -1
  27. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js.map +2 -2
  28. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +66 -22
  29. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
  30. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +188 -78
  31. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
  32. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +15 -3
  33. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  34. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +127 -158
  35. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +2 -2
  36. package/dist-cjs/lib/ui/components/primitives/layout.js +30 -5
  37. package/dist-cjs/lib/ui/components/primitives/layout.js.map +2 -2
  38. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuContext.js.map +2 -2
  39. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +25 -12
  40. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
  41. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +0 -18
  42. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  43. package/dist-cjs/lib/ui/version.js +3 -3
  44. package/dist-cjs/lib/ui/version.js.map +1 -1
  45. package/dist-esm/index.d.mts +43 -4
  46. package/dist-esm/index.mjs +8 -2
  47. package/dist-esm/index.mjs.map +2 -2
  48. package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -1
  49. package/dist-esm/lib/canvas/TldrawScribble.mjs.map +2 -2
  50. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs +3 -3
  51. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs.map +1 -1
  52. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -1
  53. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
  54. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +4 -4
  55. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  56. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -1
  57. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +2 -2
  58. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +3 -3
  59. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +1 -1
  60. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +3 -3
  61. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
  62. package/dist-esm/lib/ui/TldrawUi.mjs +16 -2
  63. package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
  64. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +10 -2
  65. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
  66. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +4 -4
  67. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
  68. package/dist-esm/lib/ui/components/MobileStylePanel.mjs +4 -2
  69. package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
  70. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs +1 -1
  71. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs.map +2 -2
  72. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +56 -22
  73. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
  74. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +192 -80
  75. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
  76. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +16 -4
  77. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  78. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +136 -160
  79. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +2 -2
  80. package/dist-esm/lib/ui/components/primitives/layout.mjs +31 -6
  81. package/dist-esm/lib/ui/components/primitives/layout.mjs.map +2 -2
  82. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuContext.mjs.map +2 -2
  83. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +25 -12
  84. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
  85. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +0 -18
  86. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  87. package/dist-esm/lib/ui/version.mjs +3 -3
  88. package/dist-esm/lib/ui/version.mjs.map +1 -1
  89. package/package.json +3 -3
  90. package/src/index.ts +5 -0
  91. package/src/lib/canvas/TldrawScribble.tsx +1 -1
  92. package/src/lib/shapes/arrow/elbow/ElbowArrowDebug.tsx +3 -3
  93. package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -1
  94. package/src/lib/shapes/frame/FrameShapeUtil.tsx +12 -4
  95. package/src/lib/shapes/frame/components/FrameHeading.tsx +1 -1
  96. package/src/lib/shapes/image/ImageShapeUtil.tsx +3 -3
  97. package/src/lib/shapes/video/VideoShapeUtil.tsx +3 -3
  98. package/src/lib/ui/TldrawUi.tsx +17 -2
  99. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +13 -2
  100. package/src/lib/ui/components/Minimap/MinimapManager.ts +4 -4
  101. package/src/lib/ui/components/MobileStylePanel.tsx +4 -3
  102. package/src/lib/ui/components/Toolbar/DefaultImageToolbarContent.tsx +1 -1
  103. package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +55 -24
  104. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +208 -56
  105. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +22 -5
  106. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +145 -176
  107. package/src/lib/ui/components/primitives/layout.tsx +79 -5
  108. package/src/lib/ui/components/primitives/menus/TldrawUiMenuContext.tsx +0 -1
  109. package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +29 -16
  110. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +0 -16
  111. package/src/lib/ui/version.ts +3 -3
  112. package/src/lib/ui.css +342 -243
  113. package/tldraw.css +635 -533
package/src/lib/ui.css CHANGED
@@ -1,15 +1,15 @@
1
1
  /* @tldraw/ui */
2
2
 
3
3
  .tl-container {
4
- --layer-above: 1;
5
- --layer-focused-input: 10;
6
- --layer-menu-click-capture: 250;
7
- --layer-panels: 300;
8
- --layer-menus: 400;
9
- --layer-toasts: 650;
10
- --layer-cursor: 700;
11
- --layer-header-footer: 999;
12
- --layer-following-indicator: 1000;
4
+ --tl-layer-above: 1;
5
+ --tl-layer-focused-input: 10;
6
+ --tl-layer-menu-click-capture: 250;
7
+ --tl-layer-panels: 300;
8
+ --tl-layer-menus: 400;
9
+ --tl-layer-toasts: 650;
10
+ --tl-layer-cursor: 700;
11
+ --tl-layer-header-footer: 999;
12
+ --tl-layer-following-indicator: 1000;
13
13
  }
14
14
 
15
15
  /* Button */
@@ -33,23 +33,23 @@
33
33
  text-rendering: optimizeLegibility;
34
34
  font-size: 12px;
35
35
  gap: 0px;
36
- color: var(--color-text-1);
36
+ color: var(--tl-color-text-1);
37
37
  z-index: 0;
38
38
  }
39
39
 
40
40
  .tlui-button:disabled {
41
- color: var(--color-text-3);
41
+ color: var(--tl-color-text-3);
42
42
  text-shadow: none;
43
43
  cursor: default;
44
44
  }
45
45
 
46
46
  .tlui-button:disabled .tlui-kbd {
47
- color: var(--color-text-3);
47
+ color: var(--tl-color-text-3);
48
48
  }
49
49
 
50
50
  .tlui-button > * {
51
51
  position: relative;
52
- z-index: var(--layer-above);
52
+ z-index: var(--tl-layer-above);
53
53
  }
54
54
 
55
55
  .tlui-button__label {
@@ -65,7 +65,7 @@
65
65
  */
66
66
  .tl-container__focused:not(.tl-container__no-focus-ring) .tlui-button:focus-visible {
67
67
  border-radius: 10px;
68
- outline: 2px solid var(--color-focus);
68
+ outline: 2px solid var(--tl-color-focus);
69
69
  outline-offset: -5px;
70
70
  }
71
71
  .tl-container__focused:not(.tl-container__no-focus-ring) .tlui-button__tool:focus-visible {
@@ -73,7 +73,7 @@
73
73
  }
74
74
  .tlui-slider__container:has(.tlui-slider__thumb:focus-visible) {
75
75
  border-radius: 10px;
76
- outline: 2px solid var(--color-focus);
76
+ outline: 2px solid var(--tl-color-focus);
77
77
  outline-offset: -5px;
78
78
  }
79
79
 
@@ -82,8 +82,8 @@
82
82
  content: '';
83
83
  position: absolute;
84
84
  inset: 4px;
85
- border-radius: var(--radius-2);
86
- background: var(--color-muted-2);
85
+ border-radius: var(--tl-radius-2);
86
+ background: var(--tl-color-muted-2);
87
87
  opacity: 0;
88
88
  }
89
89
 
@@ -93,18 +93,18 @@
93
93
 
94
94
  .tlui-button[data-isactive='true']::after,
95
95
  .tlui-button[data-isactive='true']:not(:disabled, :focus-visible):active:after {
96
- background: var(--color-hint);
96
+ background: var(--tl-color-hint);
97
97
  opacity: 1;
98
98
  }
99
99
 
100
100
  .tlui-button[aria-expanded='true'][data-direction='left'] {
101
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
101
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
102
102
  opacity: 1;
103
103
  }
104
104
 
105
105
  @media (hover: hover) {
106
106
  .tlui-button[aria-expanded='true'][data-direction='left']:not(:hover)::after {
107
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
107
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
108
108
  opacity: 1;
109
109
  }
110
110
 
@@ -118,18 +118,18 @@
118
118
  }
119
119
 
120
120
  .tlui-button__icon + .tlui-button__label {
121
- margin-left: var(--space-2);
121
+ margin-left: var(--tl-space-2);
122
122
  }
123
123
 
124
124
  /* Low button */
125
125
 
126
126
  .tlui-button__low {
127
- border-radius: var(--radius-3);
128
- background-color: var(--color-low);
127
+ border-radius: var(--tl-radius-3);
128
+ background-color: var(--tl-color-low);
129
129
  }
130
130
 
131
131
  .tlui-button__low::after {
132
- background-color: var(--color-muted-2);
132
+ background-color: var(--tl-color-muted-2);
133
133
  opacity: 0;
134
134
  }
135
135
 
@@ -142,21 +142,21 @@
142
142
  /* Primary / danger buttons */
143
143
 
144
144
  .tlui-button__primary {
145
- color: var(--color-primary);
145
+ color: var(--tl-color-primary);
146
146
  }
147
147
 
148
148
  .tlui-button__danger {
149
- color: var(--color-danger);
149
+ color: var(--tl-color-danger);
150
150
  text-shadow: none;
151
151
  }
152
152
 
153
153
  @media (hover: hover) {
154
154
  .tlui-button__primary:not(:disabled, :focus-visible):hover {
155
- color: var(--color-primary);
155
+ color: var(--tl-color-primary);
156
156
  }
157
157
 
158
158
  .tlui-button__danger:not(:disabled, :focus-visible):hover {
159
- color: var(--color-danger);
159
+ color: var(--tl-color-danger);
160
160
  text-shadow: none;
161
161
  }
162
162
  }
@@ -173,7 +173,7 @@
173
173
 
174
174
  .tlui-button__menu::after {
175
175
  inset: 4px;
176
- border-radius: var(--radius-2);
176
+ border-radius: var(--tl-radius-2);
177
177
  }
178
178
 
179
179
  .tlui-button__menu > .tlui-icon + .tlui-button__label {
@@ -203,13 +203,21 @@
203
203
 
204
204
  .tlui-main-toolbar__lock-button {
205
205
  position: absolute;
206
- top: 4px;
207
- right: 0px;
208
206
  pointer-events: all;
209
207
  height: 40px;
210
208
  width: 40px;
209
+ border-radius: var(--tl-radius-2);
210
+ }
211
+
212
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__lock-button {
213
+ top: 4px;
214
+ right: 0px;
211
215
  min-width: 0px;
212
- border-radius: var(--radius-2);
216
+ }
217
+
218
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__lock-button {
219
+ bottom: 0px;
220
+ min-height: 0px;
213
221
  }
214
222
 
215
223
  .tlui-main-toolbar__lock-button::after {
@@ -232,24 +240,24 @@
232
240
  }
233
241
 
234
242
  .tlui-button__tool[aria-pressed='true'] {
235
- color: var(--color-selected-contrast);
243
+ color: var(--tl-color-selected-contrast);
236
244
  }
237
245
 
238
246
  .tlui-button__tool[aria-pressed='true']:not(:disabled, :focus-visible):active {
239
- color: var(--color-selected-contrast);
247
+ color: var(--tl-color-selected-contrast);
240
248
  }
241
249
 
242
250
  .tlui-button__tool[aria-pressed='true']:not(:disabled)::after {
243
- background: var(--color-selected);
251
+ background: var(--tl-color-selected);
244
252
  opacity: 1;
245
253
  }
246
254
 
247
- .tlui-layout__mobile .tlui-button__tool {
255
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-button__tool {
248
256
  height: 48px;
249
257
  width: 43px;
250
258
  }
251
259
 
252
- .tlui-layout__mobile .tlui-button__tool > .tlui-icon {
260
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-button__tool > .tlui-icon {
253
261
  height: 16px;
254
262
  width: 16px;
255
263
  }
@@ -266,6 +274,18 @@
266
274
  margin-right: -2px;
267
275
  }
268
276
 
277
+ /* Column layout */
278
+
279
+ .tlui-column {
280
+ display: flex;
281
+ flex-direction: column;
282
+ padding: 2px 0;
283
+ }
284
+ .tlui-column > * {
285
+ margin-top: -2px;
286
+ margin-bottom: -2px;
287
+ }
288
+
269
289
  /* Grid layout */
270
290
 
271
291
  .tlui-grid {
@@ -301,9 +321,9 @@
301
321
  pointer-events: none;
302
322
  user-select: none;
303
323
  contain: strict;
304
- z-index: var(--layer-panels);
324
+ z-index: var(--tl-layer-panels);
305
325
  transform: translate3d(0, 0, 0);
306
- --sab: env(safe-area-inset-bottom);
326
+ --tl-sab: env(safe-area-inset-bottom);
307
327
  font-weight: 500;
308
328
  line-height: 1.6;
309
329
  -webkit-font-smoothing: antialiased;
@@ -356,11 +376,11 @@
356
376
  justify-content: flex-start;
357
377
  align-items: flex-start;
358
378
  width: min-content;
359
- gap: var(--space-3);
360
- margin: var(--space-2) var(--space-3);
379
+ gap: var(--tl-space-3);
380
+ margin: var(--tl-space-2) var(--tl-space-3);
361
381
  white-space: nowrap;
362
382
  pointer-events: none;
363
- z-index: var(--layer-panels);
383
+ z-index: var(--tl-layer-panels);
364
384
  }
365
385
 
366
386
  /* ---------------------- Icon ---------------------- */
@@ -388,7 +408,7 @@
388
408
 
389
409
  .tlui-slider__container {
390
410
  width: 100%;
391
- padding: 0px var(--space-4);
411
+ padding: 0px var(--tl-space-4);
392
412
  }
393
413
 
394
414
  .tlui-slider {
@@ -414,7 +434,7 @@
414
434
  content: '';
415
435
  height: 3px;
416
436
  width: 100%;
417
- background-color: var(--color-muted-1);
437
+ background-color: var(--tl-color-muted-1);
418
438
  border-radius: 14px;
419
439
  }
420
440
 
@@ -423,7 +443,7 @@
423
443
  top: calc(50% - 2px);
424
444
  left: 0px;
425
445
  height: 3px;
426
- background-color: var(--color-selected);
446
+ background-color: var(--tl-color-selected);
427
447
  border-radius: 14px;
428
448
  }
429
449
 
@@ -435,16 +455,16 @@
435
455
  height: 18px;
436
456
  position: relative;
437
457
  top: -1px;
438
- background-color: var(--color-panel);
458
+ background-color: var(--tl-color-panel);
439
459
  border-radius: 999px;
440
- box-shadow: inset 0px 0px 0px 2px var(--color-text-1);
460
+ box-shadow: inset 0px 0px 0px 2px var(--tl-color-text-1);
441
461
  }
442
462
 
443
463
  .tlui-slider__thumb:active {
444
464
  cursor: grabbing;
445
465
  box-shadow:
446
- inset 0px 0px 0px 2px var(--color-text-1),
447
- var(--shadow-1);
466
+ inset 0px 0px 0px 2px var(--tl-color-text-1),
467
+ var(--tl-shadow-1);
448
468
  }
449
469
 
450
470
  /* ---------------------- Input --------------------- */
@@ -453,7 +473,7 @@
453
473
  background: none;
454
474
  margin: 0px;
455
475
  position: relative;
456
- z-index: var(--layer-above);
476
+ z-index: var(--tl-layer-above);
457
477
  height: 40px;
458
478
  max-height: 40px;
459
479
  display: flex;
@@ -462,8 +482,8 @@
462
482
  font-family: inherit;
463
483
  font-size: 12px;
464
484
  font-weight: inherit;
465
- color: var(--color-text-1);
466
- padding: var(--space-4);
485
+ color: var(--tl-color-text-1);
486
+ padding: var(--tl-space-4);
467
487
  padding-left: 0px;
468
488
  border: none;
469
489
  outline: none;
@@ -479,8 +499,8 @@
479
499
  height: 44px;
480
500
  display: flex;
481
501
  align-items: center;
482
- gap: var(--space-4);
483
- color: var(--color-text);
502
+ gap: var(--tl-space-4);
503
+ color: var(--tl-color-text);
484
504
  }
485
505
 
486
506
  .tlui-input__wrapper > .tlui-icon {
@@ -512,7 +532,7 @@
512
532
  grid-auto-columns: minmax(1em, auto);
513
533
  align-self: bottom;
514
534
  color: currentColor;
515
- margin-left: var(--space-4);
535
+ margin-left: var(--tl-space-4);
516
536
  }
517
537
 
518
538
  .tlui-kbd > span {
@@ -529,13 +549,13 @@
529
549
  }
530
550
 
531
551
  .tlui-kbd:not(:last-child) {
532
- margin-right: var(--space-2);
552
+ margin-right: var(--tl-space-2);
533
553
  }
534
554
 
535
555
  /* Focus Mode Button */
536
556
 
537
557
  .tlui-focus-button {
538
- z-index: var(--layer-panels);
558
+ z-index: var(--tl-layer-panels);
539
559
  pointer-events: all;
540
560
  }
541
561
 
@@ -546,16 +566,16 @@
546
566
  }
547
567
 
548
568
  .tlui-menu {
549
- z-index: var(--layer-menus);
569
+ z-index: var(--tl-layer-menus);
550
570
  height: fit-content;
551
571
  width: fit-content;
552
- border-radius: var(--radius-3);
572
+ border-radius: var(--tl-radius-3);
553
573
  pointer-events: all;
554
574
  touch-action: auto;
555
575
  overflow-y: auto;
556
576
  overscroll-behavior: none;
557
- background-color: var(--color-panel);
558
- box-shadow: var(--shadow-3);
577
+ background-color: var(--tl-color-panel);
578
+ box-shadow: var(--tl-shadow-3);
559
579
  }
560
580
 
561
581
  .tlui-menu::-webkit-scrollbar {
@@ -573,7 +593,7 @@
573
593
  }
574
594
 
575
595
  .tlui-menu__group {
576
- border-bottom: 1px solid var(--color-divider);
596
+ border-bottom: 1px solid var(--tl-color-divider);
577
597
  }
578
598
  .tlui-menu__group:nth-last-of-type(1) {
579
599
  border-bottom: none;
@@ -583,23 +603,23 @@
583
603
 
584
604
  .tlui-menu__submenu__trigger[data-state='open']::after {
585
605
  opacity: 1;
586
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
606
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
587
607
  }
588
608
 
589
609
  .tlui-menu__submenu__trigger[data-direction='left'][data-state='open']::after {
590
610
  opacity: 1;
591
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
611
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
592
612
  }
593
613
 
594
614
  @media (hover: hover) {
595
615
  .tlui-menu__submenu__trigger[data-state='open']:not(:hover)::after {
596
616
  opacity: 1;
597
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
617
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
598
618
  }
599
619
 
600
620
  .tlui-menu__submenu__trigger[data-direction='left'][data-state='open']:not(:hover)::after {
601
621
  opacity: 1;
602
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
622
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
603
623
  }
604
624
  }
605
625
 
@@ -624,7 +644,7 @@
624
644
  .tlui-menu-click-capture {
625
645
  position: fixed;
626
646
  inset: 0;
627
- z-index: var(--layer-menu-click-capture);
647
+ z-index: var(--tl-layer-menu-click-capture);
628
648
  }
629
649
 
630
650
  /* --------------------- Popover -------------------- */
@@ -640,10 +660,10 @@
640
660
  max-height: calc(var(--radix-popover-content-available-height) - 8px);
641
661
  margin: 0px;
642
662
  border: none;
643
- border-radius: var(--radius-3);
644
- background-color: var(--color-panel);
645
- box-shadow: var(--shadow-3);
646
- z-index: var(--layer-menus);
663
+ border-radius: var(--tl-radius-3);
664
+ background-color: var(--tl-color-panel);
665
+ box-shadow: var(--tl-shadow-3);
666
+ z-index: var(--tl-layer-menus);
647
667
  overflow: hidden;
648
668
  overflow-y: auto;
649
669
  touch-action: auto;
@@ -656,22 +676,22 @@
656
676
 
657
677
  .tlui-menu-zone {
658
678
  position: relative;
659
- z-index: var(--layer-panels);
679
+ z-index: var(--tl-layer-panels);
660
680
  width: fit-content;
661
- border-right: 2px solid var(--color-background);
662
- border-bottom: 2px solid var(--color-background);
663
- border-bottom-right-radius: var(--radius-4);
664
- background-color: var(--color-low);
681
+ border-right: 2px solid var(--tl-color-background);
682
+ border-bottom: 2px solid var(--tl-color-background);
683
+ border-bottom-right-radius: var(--tl-radius-4);
684
+ background-color: var(--tl-color-low);
665
685
  }
666
686
 
667
687
  .tlui-menu-zone *[data-state='open']::after {
668
- background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
688
+ background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
669
689
  opacity: 1;
670
690
  }
671
691
 
672
692
  @media (hover: hover) {
673
693
  .tlui-menu-zone *[data-state='open']:not(:hover)::after {
674
- background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
694
+ background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
675
695
  opacity: 1;
676
696
  }
677
697
  }
@@ -697,8 +717,8 @@
697
717
  align-items: center;
698
718
  width: 100%;
699
719
  height: 40px;
700
- padding-left: var(--space-4);
701
- border-bottom: 1px solid var(--color-divider);
720
+ padding-left: var(--tl-space-4);
721
+ border-bottom: 1px solid var(--tl-color-divider);
702
722
  }
703
723
 
704
724
  .tlui-page-menu__header > .tlui-button:nth-of-type(1) {
@@ -706,7 +726,7 @@
706
726
  }
707
727
 
708
728
  .tlui-page-menu__header__title {
709
- color: var(--color-text);
729
+ color: var(--tl-color-text);
710
730
  font-size: 12px;
711
731
  flex-grow: 2;
712
732
  }
@@ -791,7 +811,7 @@
791
811
  display: inline-flex;
792
812
  align-items: center;
793
813
  justify-content: center;
794
- color: var(--color-text);
814
+ color: var(--tl-color-text);
795
815
  }
796
816
 
797
817
  .tlui-page_menu__item__sortable {
@@ -804,7 +824,7 @@
804
824
  flex-direction: row;
805
825
  align-items: center;
806
826
  overflow: hidden;
807
- z-index: var(--layer-above);
827
+ z-index: var(--tl-layer-above);
808
828
  }
809
829
 
810
830
  .tlui-page_menu__item__sortable__title {
@@ -816,7 +836,7 @@
816
836
  }
817
837
 
818
838
  .tlui-page_menu__item__sortable:focus-visible {
819
- z-index: var(--layer-focused-input);
839
+ z-index: var(--tl-layer-focused-input);
820
840
  }
821
841
 
822
842
  .tlui-page_menu__item__sortable__handle {
@@ -825,7 +845,7 @@
825
845
  min-width: 0px;
826
846
  height: 40px;
827
847
  cursor: grab;
828
- color: var(--color-text-3);
848
+ color: var(--tl-color-text-3);
829
849
  flex-shrink: 0;
830
850
  margin-right: -9px;
831
851
  }
@@ -867,13 +887,13 @@
867
887
  }
868
888
 
869
889
  .tlui-page_menu__item__submenu > .tlui-button[data-state='open']::after {
870
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
890
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
871
891
  opacity: 1;
872
892
  }
873
893
 
874
894
  @media (hover: hover) {
875
895
  .tlui-page_menu__item__submenu > .tlui-button[data-state='open']:not(:hover)::after {
876
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
896
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
877
897
  opacity: 1;
878
898
  }
879
899
  }
@@ -909,7 +929,7 @@
909
929
  top: 48px;
910
930
  left: -9999px;
911
931
  padding: 8px 16px;
912
- z-index: var(--layer-toasts);
932
+ z-index: var(--tl-layer-toasts);
913
933
  }
914
934
 
915
935
  .tl-skip-to-main-content:focus {
@@ -921,11 +941,11 @@
921
941
  .tlui-offline-indicator {
922
942
  display: flex;
923
943
  flex-direction: row;
924
- gap: var(--space-3);
925
- color: var(--color-text);
926
- background-color: var(--color-low);
927
- border: 3px solid var(--color-background);
928
- padding: 0px var(--space-5);
944
+ gap: var(--tl-space-3);
945
+ color: var(--tl-color-text);
946
+ background-color: var(--tl-color-low);
947
+ border: 3px solid var(--tl-color-background);
948
+ padding: 0px var(--tl-space-5);
929
949
  height: 42px;
930
950
  align-items: center;
931
951
  justify-content: center;
@@ -940,10 +960,10 @@
940
960
  /* ------------------- Style panel ------------------ */
941
961
 
942
962
  .tlui-style-panel__wrapper {
943
- box-shadow: var(--shadow-2);
944
- border-radius: var(--radius-3);
963
+ box-shadow: var(--tl-shadow-2);
964
+ border-radius: var(--tl-radius-3);
945
965
  pointer-events: all;
946
- background-color: var(--color-panel);
966
+ background-color: var(--tl-color-panel);
947
967
  height: fit-content;
948
968
  max-height: 100%;
949
969
  margin: 8px;
@@ -952,7 +972,7 @@
952
972
  overscroll-behavior: none;
953
973
  overflow-y: auto;
954
974
  overflow-x: hidden;
955
- color: var(--color-text);
975
+ color: var(--tl-color-text);
956
976
  }
957
977
  /* if the style panel is the only child (ie no share menu), increase the margin */
958
978
  .tlui-style-panel__wrapper:only-child {
@@ -961,7 +981,7 @@
961
981
 
962
982
  .tlui-style-panel {
963
983
  position: relative;
964
- z-index: var(--layer-panels);
984
+ z-index: var(--tl-layer-panels);
965
985
  pointer-events: all;
966
986
  width: 148px;
967
987
  max-width: 148px;
@@ -969,7 +989,7 @@
969
989
 
970
990
  .tlui-style-panel[data-show-ui-labels='true'] .tlui-button[data-isactive='true'] {
971
991
  border-radius: 10px;
972
- outline: 2px solid var(--color-text);
992
+ outline: 2px solid var(--tl-color-text);
973
993
  outline-offset: -5px;
974
994
  }
975
995
 
@@ -988,7 +1008,7 @@
988
1008
  }
989
1009
 
990
1010
  .tlui-style-panel__section:nth-of-type(n + 2):not(:last-child) {
991
- border-bottom: 1px solid var(--color-divider);
1011
+ border-bottom: 1px solid var(--tl-color-divider);
992
1012
  }
993
1013
 
994
1014
  .tlui-style-panel__section:empty {
@@ -997,7 +1017,7 @@
997
1017
 
998
1018
  .tlui-style-panel__section__common:not(:only-child) {
999
1019
  margin-bottom: 7px;
1000
- border-bottom: 1px solid var(--color-divider);
1020
+ border-bottom: 1px solid var(--tl-color-divider);
1001
1021
  }
1002
1022
 
1003
1023
  .tlui-style-panel__dropdown-picker:only-child {
@@ -1008,8 +1028,8 @@
1008
1028
  display: flex;
1009
1029
  grid-template-columns: 1fr auto;
1010
1030
  align-items: center;
1011
- padding-left: var(--space-4);
1012
- color: var(--color-text-1);
1031
+ padding-left: var(--tl-space-4);
1032
+ color: var(--tl-color-text-1);
1013
1033
  font-size: 12px;
1014
1034
  }
1015
1035
 
@@ -1023,13 +1043,13 @@
1023
1043
 
1024
1044
  .tlui-style-panel .tlui-button[data-state='open']::after {
1025
1045
  opacity: 1;
1026
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1046
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1027
1047
  }
1028
1048
 
1029
1049
  @media (hover: hover) {
1030
1050
  .tlui-style-panel .tlui-button[data-state='open']:not(:hover)::after {
1031
1051
  opacity: 1;
1032
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1052
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1033
1053
  }
1034
1054
  }
1035
1055
 
@@ -1039,14 +1059,14 @@
1039
1059
  .tlui-style-panel__section__common .tlui-style-panel__subheading,
1040
1060
  .tlui-style-panel__subheading + .tlui-slider__container {
1041
1061
  margin: 0;
1042
- padding: var(--space-2) var(--space-3) 0px var(--space-4);
1062
+ padding: var(--tl-space-2) var(--tl-space-3) 0px var(--tl-space-4);
1043
1063
  font-size: 12px;
1044
1064
  font-weight: inherit;
1045
1065
  line-height: inherit;
1046
1066
  }
1047
1067
 
1048
1068
  .tlui-style-panel .tlui-style-panel__subheading:nth-of-type(1) {
1049
- padding-top: var(--space-3);
1069
+ padding-top: var(--tl-space-3);
1050
1070
  }
1051
1071
 
1052
1072
  .tlui-style-panel__subheading + .tlui-slider__container {
@@ -1057,11 +1077,11 @@
1057
1077
 
1058
1078
  .tlui-layout__bottom {
1059
1079
  grid-row: 2;
1080
+ width: 100%;
1060
1081
  }
1061
1082
 
1062
1083
  .tlui-layout__bottom__main {
1063
1084
  width: 100%;
1064
- position: relative;
1065
1085
  display: flex;
1066
1086
  align-items: flex-end;
1067
1087
  justify-content: center;
@@ -1073,11 +1093,10 @@
1073
1093
  display: flex;
1074
1094
  width: min-content;
1075
1095
  flex-direction: column;
1076
- z-index: var(--layer-panels);
1096
+ z-index: var(--tl-layer-panels);
1077
1097
  pointer-events: all;
1078
1098
  position: absolute;
1079
1099
  left: 0px;
1080
- bottom: 0px;
1081
1100
  }
1082
1101
 
1083
1102
  .tlui-navigation-panel::before {
@@ -1087,10 +1106,10 @@
1087
1106
  z-index: -1;
1088
1107
  inset: -2px -2px 0px 0px;
1089
1108
  border-radius: 0;
1090
- border-top: 2px solid var(--color-background);
1091
- border-right: 2px solid var(--color-background);
1092
- border-top-right-radius: var(--radius-4);
1093
- background-color: var(--color-low);
1109
+ border-top: 2px solid var(--tl-color-background);
1110
+ border-right: 2px solid var(--tl-color-background);
1111
+ border-top-right-radius: var(--tl-radius-4);
1112
+ background-color: var(--tl-color-low);
1094
1113
  }
1095
1114
 
1096
1115
  .tlui-navigation-panel[data-a11y='true']::before {
@@ -1104,7 +1123,7 @@
1104
1123
  height: 96px;
1105
1124
  min-height: 96px;
1106
1125
  overflow: hidden;
1107
- padding: var(--space-3);
1126
+ padding: var(--tl-space-3);
1108
1127
  padding-top: 0px;
1109
1128
  }
1110
1129
 
@@ -1124,7 +1143,23 @@
1124
1143
  align-items: center;
1125
1144
  justify-content: center;
1126
1145
  flex-grow: 2;
1127
- padding-bottom: calc(var(--space-3) + var(--sab));
1146
+ }
1147
+
1148
+ .tlui-main-toolbar--horizontal {
1149
+ padding-bottom: calc(var(--tl-space-3) + var(--tl-sab));
1150
+ max-width: 100%;
1151
+ }
1152
+
1153
+ .tlui-main-toolbar--vertical {
1154
+ position: absolute;
1155
+ left: 0;
1156
+ top: 90px; /* height of page menu + 'back to content' button */
1157
+ bottom: 140px; /* height of expanded mini-map */
1158
+ padding-left: calc(var(--tl-space-3) + var(--tl-sab));
1159
+ }
1160
+
1161
+ [data-breakpoints-below*='6'] .tlui-main-toolbar--vertical {
1162
+ bottom: 90px; /* collapsed mini-map, but same as top to keep things looking even */
1128
1163
  }
1129
1164
 
1130
1165
  /* Centered Content */
@@ -1132,73 +1167,141 @@
1132
1167
  position: relative;
1133
1168
  width: fit-content;
1134
1169
  display: flex;
1135
- gap: var(--space-3);
1136
- align-items: flex-end;
1170
+ gap: var(--tl-space-3);
1171
+ align-items: flex-start;
1137
1172
  }
1138
1173
 
1139
- .tlui-main-toolbar__left {
1174
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__inner {
1175
+ flex-direction: column;
1176
+ }
1177
+
1178
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__left {
1140
1179
  width: fit-content;
1141
1180
  }
1181
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__left {
1182
+ display: flex;
1183
+ height: fit-content;
1184
+ }
1142
1185
 
1143
1186
  /* Row of controls + lock button */
1144
1187
  .tlui-main-toolbar__extras {
1145
1188
  position: relative;
1146
- z-index: var(--layer-above);
1147
- width: 100%;
1189
+ z-index: var(--tl-layer-above);
1148
1190
  pointer-events: none;
1149
- top: 6px;
1150
- height: 48px;
1191
+ align-self: stretch;
1151
1192
  }
1152
1193
 
1153
1194
  .tlui-main-toolbar__extras:empty {
1154
1195
  display: none;
1155
1196
  }
1156
1197
 
1198
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__extras {
1199
+ height: 48px;
1200
+ top: 6px;
1201
+ }
1202
+
1203
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__extras {
1204
+ width: 48px;
1205
+ order: 1;
1206
+ }
1207
+
1157
1208
  .tlui-main-toolbar__extras__controls {
1158
- display: flex;
1159
1209
  position: relative;
1160
- flex-direction: row;
1161
- z-index: var(--layer-above);
1162
- background-color: var(--color-low);
1163
- border-top-left-radius: var(--radius-4);
1164
- border-top-right-radius: var(--radius-4);
1165
- border: 2px solid var(--color-background);
1210
+ z-index: var(--tl-layer-above);
1211
+ background-color: var(--tl-color-low);
1212
+ border: 2px solid var(--tl-color-background);
1213
+ pointer-events: all;
1214
+ }
1215
+
1216
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__extras__controls {
1217
+ border-top-left-radius: var(--tl-radius-4);
1218
+ border-top-right-radius: var(--tl-radius-4);
1166
1219
  margin-left: 8px;
1167
1220
  margin-right: 0px;
1168
- pointer-events: all;
1221
+ width: fit-content;
1222
+ }
1223
+
1224
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__extras__controls {
1225
+ border-top-right-radius: var(--tl-radius-4);
1226
+ border-bottom-right-radius: var(--tl-radius-4);
1227
+ margin-top: 8px;
1228
+ margin-left: -2px;
1229
+ margin-bottom: 0px;
1169
1230
  width: fit-content;
1170
1231
  }
1171
1232
 
1172
1233
  .tlui-main-toolbar__tools {
1173
- display: flex;
1174
- flex-direction: row;
1175
- align-items: center;
1176
- border-radius: var(--radius-4);
1177
- z-index: var(--layer-panels);
1234
+ border-radius: var(--tl-radius-4);
1235
+ z-index: var(--tl-layer-panels);
1178
1236
  pointer-events: all;
1179
1237
  position: relative;
1180
- background: var(--color-panel);
1181
- box-shadow: var(--shadow-2);
1238
+ background: var(--tl-color-panel);
1239
+ box-shadow: var(--tl-shadow-2);
1182
1240
  }
1183
1241
 
1184
- .tlui-main-toolbar__overflow {
1242
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__mobile-style-panel {
1243
+ align-self: flex-end;
1244
+ }
1245
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__mobile-style-panel {
1246
+ align-self: flex-start;
1247
+ }
1248
+
1249
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow {
1185
1250
  width: 40px;
1186
1251
  margin-left: 2px;
1187
1252
  }
1253
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__overflow {
1254
+ height: 40px;
1255
+ margin-top: 2px;
1256
+ }
1188
1257
 
1189
- .tlui-layout__mobile .tlui-main-toolbar__overflow {
1258
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow {
1190
1259
  width: 32px;
1191
1260
  padding: 0px;
1192
1261
  }
1193
1262
 
1194
- .tlui-main-toolbar *[data-state='open']::after {
1195
- background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1263
+ .tlui-main-toolbar--horizontal *[data-state='open']::after {
1264
+ background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1265
+ opacity: 1;
1266
+ }
1267
+ .tlui-main-toolbar--vertical *[data-state='open']::after {
1268
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1196
1269
  opacity: 1;
1197
1270
  }
1198
1271
 
1272
+ .tlui-main-toolbar__tools [data-toolbar-visible='false'],
1273
+ .tlui-main-toolbar__overflow-content [data-toolbar-visible='false'] {
1274
+ display: none;
1275
+ }
1276
+
1277
+ .tlui-main-toolbar__group:empty {
1278
+ display: none;
1279
+ }
1280
+ .tlui-row.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible='true'])) {
1281
+ border-right: 1px solid var(--color-divider);
1282
+ margin-right: 2px;
1283
+ }
1284
+ .tlui-column.tlui-main-toolbar__group:not(
1285
+ :nth-last-child(-n + 1 of [data-toolbar-visible='true'])
1286
+ ) {
1287
+ border-bottom: 1px solid var(--color-divider);
1288
+ margin-bottom: 2px;
1289
+ }
1290
+ .tlui-grid.tlui-main-toolbar__group {
1291
+ grid-column: 1 / span 4;
1292
+ }
1293
+ .tlui-grid.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible='true'])) {
1294
+ border-bottom: 1px solid var(--color-divider);
1295
+ margin-bottom: 2px;
1296
+ }
1297
+
1199
1298
  @media (hover: hover) {
1200
- .tlui-main-toolbar *[data-state='open']:not(:hover)::after {
1201
- background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1299
+ .tlui-main-toolbar--horizontal *[data-state='open']:not(:hover)::after {
1300
+ background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1301
+ opacity: 1;
1302
+ }
1303
+ .tlui-main-toolbar--vertical *[data-state='open']:not(:hover)::after {
1304
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1202
1305
  opacity: 1;
1203
1306
  }
1204
1307
  }
@@ -1209,44 +1312,40 @@
1209
1312
  font-size: 12px;
1210
1313
  padding: 2px 8px;
1211
1314
  border-radius: 4px;
1212
- background-color: var(--color-tooltip);
1315
+ background-color: var(--tl-color-tooltip);
1213
1316
  box-shadow: none;
1214
- color: var(--color-text-shadow);
1317
+ color: var(--tl-color-text-shadow);
1215
1318
  max-width: 400px;
1216
1319
  width: fit-content;
1217
1320
  text-align: center;
1218
- pointer-events: none;
1219
1321
  will-change: transform, opacity;
1220
1322
  z-index: 2;
1221
1323
  }
1222
1324
 
1223
1325
  .tlui-tooltip__arrow {
1224
- fill: var(--color-tooltip);
1326
+ fill: var(--tl-color-tooltip);
1225
1327
  will-change: opacity;
1226
1328
  }
1227
1329
 
1228
1330
  [data-radix-popper-content-wrapper]:has(.tlui-tooltip) {
1229
- z-index: var(--layer-toasts) !important;
1230
- }
1231
-
1232
- [data-radix-popper-content-wrapper]:has(.tlui-tooltip[data-should-animate='true']) {
1233
- transition: all 0.1s ease-out;
1331
+ z-index: var(--tl-layer-toasts) !important;
1332
+ pointer-events: none;
1234
1333
  }
1235
1334
 
1236
1335
  /* ------------------- Debug panel ------------------ */
1237
1336
 
1238
1337
  .tlui-debug-panel {
1239
- background-color: var(--color-low);
1338
+ background-color: var(--tl-color-low);
1240
1339
  width: 100%;
1241
1340
  display: grid;
1242
1341
  align-items: center;
1243
1342
  grid-template-columns: 1fr auto auto auto;
1244
1343
  justify-content: space-between;
1245
- padding-left: var(--space-4);
1246
- border-top: 1px solid var(--color-background);
1344
+ padding-left: var(--tl-space-4);
1345
+ border-top: 1px solid var(--tl-color-background);
1247
1346
  font-size: 12px;
1248
- color: var(--color-text-1);
1249
- z-index: var(--layer-panels);
1347
+ color: var(--tl-color-text-1);
1348
+ z-index: var(--tl-layer-panels);
1250
1349
  pointer-events: all;
1251
1350
  }
1252
1351
 
@@ -1262,7 +1361,7 @@
1262
1361
 
1263
1362
  .tlui-debug-panel__fps__slow {
1264
1363
  font-weight: bold;
1265
- color: var(--color-danger);
1364
+ color: var(--tl-color-danger);
1266
1365
  }
1267
1366
 
1268
1367
  .tlui-a11y-audit {
@@ -1272,7 +1371,7 @@
1272
1371
  .tlui-a11y-audit th,
1273
1372
  .tlui-a11y-audit td {
1274
1373
  padding: 8px;
1275
- border: 1px solid var(--color-low-border);
1374
+ border: 1px solid var(--tl-color-low-border);
1276
1375
  }
1277
1376
 
1278
1377
  /* --------------------- Toasts --------------------- */
@@ -1285,10 +1384,10 @@
1285
1384
  align-items: flex-end;
1286
1385
  justify-content: flex-end;
1287
1386
  flex-direction: column;
1288
- gap: var(--space-3);
1387
+ gap: var(--tl-space-3);
1289
1388
  pointer-events: none;
1290
- padding: 0px var(--space-3) 64px 0px;
1291
- z-index: var(--layer-toasts);
1389
+ padding: 0px var(--tl-space-3) 64px 0px;
1390
+ z-index: var(--tl-layer-toasts);
1292
1391
  }
1293
1392
 
1294
1393
  .tlui-toast__viewport > * {
@@ -1297,34 +1396,34 @@
1297
1396
 
1298
1397
  .tlui-toast__icon {
1299
1398
  padding-top: 11px;
1300
- padding-left: var(--space-4);
1301
- color: var(--color-text-1);
1399
+ padding-left: var(--tl-space-4);
1400
+ color: var(--tl-color-text-1);
1302
1401
  }
1303
1402
 
1304
1403
  .tlui-toast__container {
1305
1404
  min-width: 200px;
1306
1405
  display: flex;
1307
1406
  flex-direction: row;
1308
- background-color: var(--color-panel);
1309
- box-shadow: var(--shadow-2);
1310
- border-radius: var(--radius-3);
1407
+ background-color: var(--tl-color-panel);
1408
+ box-shadow: var(--tl-shadow-2);
1409
+ border-radius: var(--tl-radius-3);
1311
1410
  font-size: 12px;
1312
1411
  }
1313
1412
 
1314
1413
  .tlui-toast__container[data-severity='success'] .tlui-icon {
1315
- color: var(--color-success);
1414
+ color: var(--tl-color-success);
1316
1415
  }
1317
1416
 
1318
1417
  .tlui-toast__container[data-severity='info'] .tlui-icon {
1319
- color: var(--color-info);
1418
+ color: var(--tl-color-info);
1320
1419
  }
1321
1420
 
1322
1421
  .tlui-toast__container[data-severity='warning'] .tlui-icon {
1323
- color: var(--color-warning);
1422
+ color: var(--tl-color-warning);
1324
1423
  }
1325
1424
 
1326
1425
  .tlui-toast__container[data-severity='error'] .tlui-icon {
1327
- color: var(--color-danger);
1426
+ color: var(--tl-color-danger);
1328
1427
  }
1329
1428
 
1330
1429
  .tlui-toast__main {
@@ -1333,27 +1432,27 @@
1333
1432
  }
1334
1433
 
1335
1434
  .tlui-toast__content {
1336
- padding: var(--space-4);
1435
+ padding: var(--tl-space-4);
1337
1436
  display: flex;
1338
1437
  line-height: 1.4;
1339
1438
  flex-direction: column;
1340
- gap: var(--space-3);
1439
+ gap: var(--tl-space-3);
1341
1440
  }
1342
1441
 
1343
1442
  .tlui-toast__main[data-actions='true'] .tlui-toast__content {
1344
- padding-bottom: var(--space-2);
1443
+ padding-bottom: var(--tl-space-2);
1345
1444
  }
1346
1445
 
1347
1446
  .tlui-toast__title {
1348
1447
  font-weight: bold;
1349
- color: var(--color-text-1);
1448
+ color: var(--tl-color-text-1);
1350
1449
  /* this makes the default toast look better */
1351
1450
  line-height: 16px;
1352
1451
  }
1353
1452
 
1354
1453
  .tlui-toast__description {
1355
- color: var(--color-text-1);
1356
- padding: var(--space-3);
1454
+ color: var(--tl-color-text-1);
1455
+ padding: var(--tl-space-3);
1357
1456
  margin: 0px;
1358
1457
  padding: 0px;
1359
1458
  }
@@ -1405,14 +1504,14 @@
1405
1504
  left: 0px;
1406
1505
  width: 100%;
1407
1506
  height: 100%;
1408
- z-index: var(--layer-canvas-overlays);
1409
- background-color: var(--color-overlay);
1507
+ z-index: var(--tl-layer-canvas-overlays);
1508
+ background-color: var(--tl-color-overlay);
1410
1509
  pointer-events: all;
1411
1510
  animation: tl-fade-in 0.12s ease-out;
1412
1511
  display: grid;
1413
1512
  place-items: center;
1414
1513
  overflow-y: auto;
1415
- padding: 0px var(--space-3);
1514
+ padding: 0px var(--tl-space-3);
1416
1515
  }
1417
1516
 
1418
1517
  .tlui-dialog__content {
@@ -1420,9 +1519,9 @@
1420
1519
  flex-direction: column;
1421
1520
  position: relative;
1422
1521
  cursor: default;
1423
- background-color: var(--color-panel);
1424
- box-shadow: var(--shadow-3);
1425
- border-radius: var(--radius-3);
1522
+ background-color: var(--tl-color-panel);
1523
+ box-shadow: var(--tl-shadow-3);
1524
+ border-radius: var(--tl-radius-3);
1426
1525
  font-size: 12px;
1427
1526
  overflow: hidden;
1428
1527
  min-width: 300px;
@@ -1435,9 +1534,9 @@
1435
1534
  display: flex;
1436
1535
  align-items: center;
1437
1536
  flex: 0;
1438
- z-index: var(--layer-header-footer);
1439
- padding-left: var(--space-4);
1440
- color: var(--color-text);
1537
+ z-index: var(--tl-layer-header-footer);
1538
+ padding-left: var(--tl-space-4);
1539
+ color: var(--tl-color-text);
1441
1540
  height: 40px;
1442
1541
  }
1443
1542
 
@@ -1446,7 +1545,7 @@
1446
1545
  font-weight: inherit;
1447
1546
  font-size: 12px;
1448
1547
  margin: 0px;
1449
- color: var(--color-text-1);
1548
+ color: var(--tl-color-text-1);
1450
1549
  }
1451
1550
 
1452
1551
  .tlui-dialog__header__close {
@@ -1454,16 +1553,16 @@
1454
1553
  }
1455
1554
 
1456
1555
  .tlui-dialog__body {
1457
- padding: var(--space-4) var(--space-4);
1556
+ padding: var(--tl-space-4) var(--tl-space-4);
1458
1557
  flex: 0 1;
1459
1558
  overflow-y: auto;
1460
1559
  overflow-x: hidden;
1461
- color: var(--color-text-1);
1560
+ color: var(--tl-color-text-1);
1462
1561
  user-select: all;
1463
1562
  -webkit-user-select: text;
1464
1563
  }
1465
1564
  .tlui-dialog__body a {
1466
- color: var(--color-selected);
1565
+ color: var(--tl-color-selected);
1467
1566
  }
1468
1567
 
1469
1568
  .tlui-dialog__body ul,
@@ -1471,13 +1570,13 @@
1471
1570
  padding-left: 16px;
1472
1571
  display: flex;
1473
1572
  flex-direction: column;
1474
- gap: var(--space-2);
1573
+ gap: var(--tl-space-2);
1475
1574
  }
1476
1575
 
1477
1576
  .tlui-dialog__footer {
1478
1577
  position: relative;
1479
1578
  min-height: 12px;
1480
- z-index: var(--layer-header-footer);
1579
+ z-index: var(--tl-layer-header-footer);
1481
1580
  }
1482
1581
 
1483
1582
  .tlui-dialog__footer__actions {
@@ -1497,15 +1596,15 @@
1497
1596
  .tlui-edit-link-dialog {
1498
1597
  display: flex;
1499
1598
  flex-direction: column;
1500
- gap: var(--space-4);
1501
- color: var(--color-text);
1599
+ gap: var(--tl-space-4);
1600
+ color: var(--tl-color-text);
1502
1601
  }
1503
1602
 
1504
1603
  .tlui-edit-link-dialog__input {
1505
- background-color: var(--color-muted-2);
1604
+ background-color: var(--tl-color-muted-2);
1506
1605
  flex-grow: 2;
1507
- border-radius: var(--radius-2);
1508
- padding: 0px var(--space-4);
1606
+ border-radius: var(--tl-radius-2);
1607
+ padding: 0px var(--tl-space-4);
1509
1608
  }
1510
1609
 
1511
1610
  /* Embed Dialog */
@@ -1513,15 +1612,15 @@
1513
1612
  .tlui-embed__spacer {
1514
1613
  flex-grow: 2;
1515
1614
  min-height: 0px;
1516
- margin-left: calc(-1 * var(--space-4));
1517
- margin-top: calc(-1 * var(--space-4));
1615
+ margin-left: calc(-1 * var(--tl-space-4));
1616
+ margin-top: calc(-1 * var(--tl-space-4));
1518
1617
  pointer-events: none;
1519
1618
  }
1520
1619
 
1521
1620
  .tlui-embed-dialog__list {
1522
1621
  display: flex;
1523
1622
  flex-direction: column;
1524
- padding: 0px var(--space-3) var(--space-4) var(--space-3);
1623
+ padding: 0px var(--tl-space-3) var(--tl-space-4) var(--tl-space-3);
1525
1624
  }
1526
1625
 
1527
1626
  .tlui-embed-dialog__item__image {
@@ -1533,49 +1632,49 @@
1533
1632
  background-size: contain;
1534
1633
  background-repeat: no-repeat;
1535
1634
  background-position: center center;
1536
- background-color: var(--color-selected-contrast);
1537
- border-radius: var(--radius-1);
1635
+ background-color: var(--tl-color-selected-contrast);
1636
+ border-radius: var(--tl-radius-1);
1538
1637
  }
1539
1638
 
1540
1639
  .tlui-embed-dialog__enter {
1541
1640
  display: flex;
1542
1641
  flex-direction: column;
1543
- gap: var(--space-4);
1544
- color: var(--color-text-1);
1642
+ gap: var(--tl-space-4);
1643
+ color: var(--tl-color-text-1);
1545
1644
  }
1546
1645
 
1547
1646
  .tlui-embed-dialog__input {
1548
- background-color: var(--color-muted-2);
1647
+ background-color: var(--tl-color-muted-2);
1549
1648
  flex-grow: 2;
1550
- border-radius: var(--radius-2);
1551
- padding: 0px var(--space-4);
1649
+ border-radius: var(--tl-radius-2);
1650
+ padding: 0px var(--tl-space-4);
1552
1651
  }
1553
1652
 
1554
1653
  .tlui-embed-dialog__warning {
1555
- color: var(--color-danger);
1654
+ color: var(--tl-color-danger);
1556
1655
  text-shadow: none;
1557
1656
  }
1558
1657
 
1559
1658
  .tlui-embed-dialog__instruction__link {
1560
1659
  display: flex;
1561
- gap: var(--space-1);
1562
- margin-top: var(--space-4);
1660
+ gap: var(--tl-space-1);
1661
+ margin-top: var(--tl-space-4);
1563
1662
  }
1564
1663
 
1565
1664
  .tlui-embed-dialog__enter a {
1566
- color: var(--color-text-1);
1665
+ color: var(--tl-color-text-1);
1567
1666
  }
1568
1667
 
1569
1668
  /* --------------- Keyboard shortcuts --------------- */
1570
1669
 
1571
1670
  .tlui-shortcuts-dialog__header {
1572
- border-bottom: 1px solid var(--color-divider);
1671
+ border-bottom: 1px solid var(--tl-color-divider);
1573
1672
  }
1574
1673
 
1575
1674
  .tlui-shortcuts-dialog__body {
1576
1675
  position: relative;
1577
1676
  columns: 3;
1578
- column-gap: var(--space-9);
1677
+ column-gap: var(--tl-space-9);
1579
1678
  pointer-events: all;
1580
1679
  touch-action: auto;
1581
1680
 
@@ -1593,14 +1692,14 @@
1593
1692
 
1594
1693
  .tlui-shortcuts-dialog__group {
1595
1694
  break-inside: avoid-column;
1596
- padding-bottom: var(--space-6);
1695
+ padding-bottom: var(--tl-space-6);
1597
1696
  }
1598
1697
 
1599
1698
  .tlui-shortcuts-dialog__group__title {
1600
1699
  font-size: inherit;
1601
1700
  font-weight: inherit;
1602
1701
  margin: 0px;
1603
- color: var(--color-text-3);
1702
+ color: var(--tl-color-text-3);
1604
1703
  height: 32px;
1605
1704
  display: flex;
1606
1705
  align-items: center;
@@ -1609,12 +1708,12 @@
1609
1708
  .tlui-shortcuts-dialog__group__content {
1610
1709
  display: flex;
1611
1710
  flex-direction: column;
1612
- color: var(--color-text-1);
1711
+ color: var(--tl-color-text-1);
1613
1712
  }
1614
1713
 
1615
1714
  .tlui-shortcuts-dialog__key-pair {
1616
1715
  display: flex;
1617
- gap: var(--space-4);
1716
+ gap: var(--tl-space-4);
1618
1717
  align-items: center;
1619
1718
  justify-content: space-between;
1620
1719
  height: 32px;
@@ -1641,12 +1740,12 @@
1641
1740
  height: 24px;
1642
1741
  background: linear-gradient(
1643
1742
  to bottom,
1644
- var(--color-panel-transparent) 0%,
1645
- var(--color-panel) 90%,
1646
- var(--color-panel) 100%
1743
+ var(--tl-color-panel-transparent) 0%,
1744
+ var(--tl-color-panel) 90%,
1745
+ var(--tl-color-panel) 100%
1647
1746
  );
1648
- border-bottom-left-radius: var(--radius-3);
1649
- border-bottom-right-radius: var(--radius-3);
1747
+ border-bottom-left-radius: var(--tl-radius-3);
1748
+ border-bottom-right-radius: var(--tl-radius-3);
1650
1749
  pointer-events: none;
1651
1750
  }
1652
1751
 
@@ -1661,10 +1760,10 @@
1661
1760
  .tlui-help-menu {
1662
1761
  pointer-events: all;
1663
1762
  position: absolute;
1664
- bottom: var(--space-2);
1665
- right: var(--space-2);
1666
- z-index: var(--layer-panels);
1667
- border: 2px solid var(--color-background);
1763
+ bottom: var(--tl-space-2);
1764
+ right: var(--tl-space-2);
1765
+ z-index: var(--tl-layer-panels);
1766
+ border: 2px solid var(--tl-color-background);
1668
1767
  border-radius: 100%;
1669
1768
  }
1670
1769
 
@@ -1675,7 +1774,7 @@
1675
1774
  display: flex;
1676
1775
  flex-direction: row;
1677
1776
  justify-content: flex-end;
1678
- z-index: var(--layer-panels);
1777
+ z-index: var(--tl-layer-panels);
1679
1778
  align-items: center;
1680
1779
  padding-top: 2px;
1681
1780
  padding-right: 4px;
@@ -1691,7 +1790,7 @@
1691
1790
  border: none;
1692
1791
  cursor: pointer;
1693
1792
  pointer-events: all;
1694
- border-radius: var(--radius-1);
1793
+ border-radius: var(--tl-radius-1);
1695
1794
  padding-right: 1px;
1696
1795
  height: 100%;
1697
1796
  }
@@ -1704,8 +1803,8 @@
1704
1803
  .tlui-people-menu__avatar {
1705
1804
  height: 24px;
1706
1805
  width: 24px;
1707
- border: 2px solid var(--color-background);
1708
- background-color: var(--color-low);
1806
+ border: 2px solid var(--tl-color-background);
1807
+ background-color: var(--tl-color-low);
1709
1808
  border-radius: 100%;
1710
1809
  display: flex;
1711
1810
  align-items: center;
@@ -1714,7 +1813,7 @@
1714
1813
  font-size: 10px;
1715
1814
  font-weight: bold;
1716
1815
  text-align: center;
1717
- color: var(--color-selected-contrast);
1816
+ color: var(--tl-color-selected-contrast);
1718
1817
  z-index: 2;
1719
1818
  }
1720
1819
 
@@ -1728,7 +1827,7 @@
1728
1827
 
1729
1828
  @media (hover: hover) {
1730
1829
  .tlui-people-menu__avatars-button:hover .tlui-people-menu__avatar {
1731
- border-color: var(--color-low);
1830
+ border-color: var(--tl-color-low);
1732
1831
  }
1733
1832
  }
1734
1833
 
@@ -1736,12 +1835,12 @@
1736
1835
  min-width: 0px;
1737
1836
  font-size: 11px;
1738
1837
  font-weight: 600;
1739
- color: var(--color-text-1);
1838
+ color: var(--tl-color-text-1);
1740
1839
  font-family: inherit;
1741
1840
  padding: 0px 4px;
1742
1841
  }
1743
1842
  .tlui-people-menu__more::after {
1744
- border-radius: var(--radius-2);
1843
+ border-radius: var(--tl-radius-2);
1745
1844
  inset: 0px;
1746
1845
  }
1747
1846
 
@@ -1770,7 +1869,7 @@
1770
1869
  }
1771
1870
 
1772
1871
  .tlui-people-menu__section:not(:last-child) {
1773
- border-bottom: 1px solid var(--color-divider);
1872
+ border-bottom: 1px solid var(--tl-color-divider);
1774
1873
  }
1775
1874
 
1776
1875
  .tlui-people-menu__user {
@@ -1789,7 +1888,7 @@
1789
1888
  text-overflow: ellipsis;
1790
1889
  white-space: nowrap;
1791
1890
  font-size: 12px;
1792
- color: var(--color-text-1);
1891
+ color: var(--tl-color-text-1);
1793
1892
  max-width: 100%;
1794
1893
  flex-grow: 1;
1795
1894
  flex-shrink: 100;
@@ -1801,7 +1900,7 @@
1801
1900
  text-overflow: ellipsis;
1802
1901
  white-space: nowrap;
1803
1902
  font-size: 12px;
1804
- color: var(--color-text-3);
1903
+ color: var(--tl-color-text-3);
1805
1904
  flex-grow: 100;
1806
1905
  flex-shrink: 0;
1807
1906
  margin-left: 4px;
@@ -1892,7 +1991,7 @@
1892
1991
  inset: 0px;
1893
1992
  border-width: 2px;
1894
1993
  border-style: solid;
1895
- z-index: var(--layer-following-indicator);
1994
+ z-index: var(--tl-layer-following-indicator);
1896
1995
  pointer-events: none;
1897
1996
  }
1898
1997
 
@@ -1911,7 +2010,7 @@
1911
2010
  }
1912
2011
 
1913
2012
  .tlui-contextual-toolbar [data-isactive='true']::after {
1914
- background-color: var(--color-muted-2);
2013
+ background-color: var(--tl-color-muted-2);
1915
2014
  opacity: 1;
1916
2015
  }
1917
2016
 
@@ -1927,7 +2026,7 @@
1927
2026
 
1928
2027
  .tlui-contextual-toolbar[data-visible='true'] {
1929
2028
  opacity: 1;
1930
- z-index: var(--layer-menus);
2029
+ z-index: var(--tl-layer-menus);
1931
2030
  }
1932
2031
 
1933
2032
  .tlui-contextual-toolbar[data-interactive='true'],
@@ -1986,7 +2085,7 @@
1986
2085
 
1987
2086
  @keyframes tlui-slide-in {
1988
2087
  from {
1989
- transform: translateX(calc(100% + var(--space-3)));
2088
+ transform: translateX(calc(100% + var(--tl-space-3)));
1990
2089
  }
1991
2090
  to {
1992
2091
  transform: translateX(0px);
@@ -1998,6 +2097,6 @@
1998
2097
  transform: translateX(var(--radix-toast-swipe-end-x));
1999
2098
  }
2000
2099
  to {
2001
- transform: translateX(calc(100% + var(--space-3)));
2100
+ transform: translateX(calc(100% + var(--tl-space-3)));
2002
2101
  }
2003
2102
  }