@tldraw/editor 3.16.0-canary.efdec30fc411 → 3.16.0-canary.f20b7a478e22

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 (209) hide show
  1. package/dist-cjs/index.d.ts +113 -104
  2. package/dist-cjs/index.js +6 -6
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/TldrawEditor.js +7 -7
  5. package/dist-cjs/lib/TldrawEditor.js.map +2 -2
  6. package/dist-cjs/lib/components/Shape.js +7 -10
  7. package/dist-cjs/lib/components/Shape.js.map +2 -2
  8. package/dist-cjs/lib/components/default-components/DefaultCanvas.js +14 -23
  9. package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
  10. package/dist-cjs/lib/components/default-components/DefaultCollaboratorHint.js +1 -1
  11. package/dist-cjs/lib/components/default-components/DefaultCollaboratorHint.js.map +1 -1
  12. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js +1 -1
  13. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js.map +2 -2
  14. package/dist-cjs/lib/components/default-components/DefaultScribble.js +1 -1
  15. package/dist-cjs/lib/components/default-components/DefaultScribble.js.map +2 -2
  16. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js +9 -1
  17. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js.map +2 -2
  18. package/dist-cjs/lib/config/TLUserPreferences.js +1 -1
  19. package/dist-cjs/lib/config/TLUserPreferences.js.map +2 -2
  20. package/dist-cjs/lib/editor/Editor.js +50 -114
  21. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  22. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js +4 -0
  23. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js.map +2 -2
  24. package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js +4 -2
  25. package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js.map +2 -2
  26. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js +1 -1
  27. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +2 -2
  28. package/dist-cjs/lib/editor/shapes/ShapeUtil.js +23 -0
  29. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  30. package/dist-cjs/lib/editor/types/misc-types.js.map +1 -1
  31. package/dist-cjs/lib/exports/getSvgJsx.js +35 -16
  32. package/dist-cjs/lib/exports/getSvgJsx.js.map +2 -2
  33. package/dist-cjs/lib/hooks/useCanvasEvents.js +22 -17
  34. package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
  35. package/dist-cjs/lib/hooks/useDocumentEvents.js +5 -5
  36. package/dist-cjs/lib/hooks/useDocumentEvents.js.map +2 -2
  37. package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js +1 -2
  38. package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js.map +2 -2
  39. package/dist-cjs/lib/hooks/useGestureEvents.js +1 -1
  40. package/dist-cjs/lib/hooks/useGestureEvents.js.map +2 -2
  41. package/dist-cjs/lib/hooks/useHandleEvents.js +3 -3
  42. package/dist-cjs/lib/hooks/useHandleEvents.js.map +2 -2
  43. package/dist-cjs/lib/hooks/usePassThroughMouseOverEvents.js +4 -1
  44. package/dist-cjs/lib/hooks/usePassThroughMouseOverEvents.js.map +2 -2
  45. package/dist-cjs/lib/hooks/usePassThroughWheelEvents.js +4 -1
  46. package/dist-cjs/lib/hooks/usePassThroughWheelEvents.js.map +2 -2
  47. package/dist-cjs/lib/hooks/useSelectionEvents.js +4 -4
  48. package/dist-cjs/lib/hooks/useSelectionEvents.js.map +2 -2
  49. package/dist-cjs/lib/license/LicenseManager.js +143 -53
  50. package/dist-cjs/lib/license/LicenseManager.js.map +2 -2
  51. package/dist-cjs/lib/license/LicenseProvider.js +39 -1
  52. package/dist-cjs/lib/license/LicenseProvider.js.map +2 -2
  53. package/dist-cjs/lib/license/Watermark.js +73 -11
  54. package/dist-cjs/lib/license/Watermark.js.map +3 -3
  55. package/dist-cjs/lib/license/useLicenseManagerState.js.map +2 -2
  56. package/dist-cjs/lib/options.js +6 -0
  57. package/dist-cjs/lib/options.js.map +2 -2
  58. package/dist-cjs/lib/primitives/Box.js +3 -0
  59. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  60. package/dist-cjs/lib/primitives/Vec.js +0 -4
  61. package/dist-cjs/lib/primitives/Vec.js.map +2 -2
  62. package/dist-cjs/lib/primitives/geometry/Geometry2d.js +50 -20
  63. package/dist-cjs/lib/primitives/geometry/Geometry2d.js.map +2 -2
  64. package/dist-cjs/lib/primitives/geometry/Group2d.js +8 -1
  65. package/dist-cjs/lib/primitives/geometry/Group2d.js.map +2 -2
  66. package/dist-cjs/lib/utils/dom.js +12 -1
  67. package/dist-cjs/lib/utils/dom.js.map +2 -2
  68. package/dist-cjs/lib/utils/getPointerInfo.js +2 -2
  69. package/dist-cjs/lib/utils/getPointerInfo.js.map +2 -2
  70. package/dist-cjs/lib/utils/reparenting.js +2 -35
  71. package/dist-cjs/lib/utils/reparenting.js.map +3 -3
  72. package/dist-cjs/version.js +3 -3
  73. package/dist-cjs/version.js.map +1 -1
  74. package/dist-esm/index.d.mts +113 -104
  75. package/dist-esm/index.mjs +9 -7
  76. package/dist-esm/index.mjs.map +2 -2
  77. package/dist-esm/lib/TldrawEditor.mjs +8 -8
  78. package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
  79. package/dist-esm/lib/components/Shape.mjs +7 -10
  80. package/dist-esm/lib/components/Shape.mjs.map +2 -2
  81. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +15 -24
  82. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
  83. package/dist-esm/lib/components/default-components/DefaultCollaboratorHint.mjs +1 -1
  84. package/dist-esm/lib/components/default-components/DefaultCollaboratorHint.mjs.map +1 -1
  85. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs +1 -1
  86. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs.map +2 -2
  87. package/dist-esm/lib/components/default-components/DefaultScribble.mjs +1 -1
  88. package/dist-esm/lib/components/default-components/DefaultScribble.mjs.map +2 -2
  89. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs +9 -1
  90. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs.map +2 -2
  91. package/dist-esm/lib/config/TLUserPreferences.mjs +1 -1
  92. package/dist-esm/lib/config/TLUserPreferences.mjs.map +2 -2
  93. package/dist-esm/lib/editor/Editor.mjs +50 -114
  94. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  95. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs +4 -0
  96. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs.map +2 -2
  97. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs +4 -2
  98. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +2 -2
  99. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs +1 -1
  100. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +2 -2
  101. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +23 -0
  102. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  103. package/dist-esm/lib/exports/getSvgJsx.mjs +36 -16
  104. package/dist-esm/lib/exports/getSvgJsx.mjs.map +2 -2
  105. package/dist-esm/lib/hooks/useCanvasEvents.mjs +24 -18
  106. package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
  107. package/dist-esm/lib/hooks/useDocumentEvents.mjs +11 -6
  108. package/dist-esm/lib/hooks/useDocumentEvents.mjs.map +2 -2
  109. package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs +2 -3
  110. package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs.map +2 -2
  111. package/dist-esm/lib/hooks/useGestureEvents.mjs +2 -2
  112. package/dist-esm/lib/hooks/useGestureEvents.mjs.map +2 -2
  113. package/dist-esm/lib/hooks/useHandleEvents.mjs +9 -4
  114. package/dist-esm/lib/hooks/useHandleEvents.mjs.map +2 -2
  115. package/dist-esm/lib/hooks/usePassThroughMouseOverEvents.mjs +4 -1
  116. package/dist-esm/lib/hooks/usePassThroughMouseOverEvents.mjs.map +2 -2
  117. package/dist-esm/lib/hooks/usePassThroughWheelEvents.mjs +4 -1
  118. package/dist-esm/lib/hooks/usePassThroughWheelEvents.mjs.map +2 -2
  119. package/dist-esm/lib/hooks/useSelectionEvents.mjs +6 -5
  120. package/dist-esm/lib/hooks/useSelectionEvents.mjs.map +2 -2
  121. package/dist-esm/lib/license/LicenseManager.mjs +144 -54
  122. package/dist-esm/lib/license/LicenseManager.mjs.map +2 -2
  123. package/dist-esm/lib/license/LicenseProvider.mjs +39 -2
  124. package/dist-esm/lib/license/LicenseProvider.mjs.map +2 -2
  125. package/dist-esm/lib/license/Watermark.mjs +74 -12
  126. package/dist-esm/lib/license/Watermark.mjs.map +3 -3
  127. package/dist-esm/lib/license/useLicenseManagerState.mjs.map +2 -2
  128. package/dist-esm/lib/options.mjs +6 -0
  129. package/dist-esm/lib/options.mjs.map +2 -2
  130. package/dist-esm/lib/primitives/Box.mjs +4 -1
  131. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  132. package/dist-esm/lib/primitives/Vec.mjs +0 -4
  133. package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
  134. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs +53 -21
  135. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs.map +2 -2
  136. package/dist-esm/lib/primitives/geometry/Group2d.mjs +8 -1
  137. package/dist-esm/lib/primitives/geometry/Group2d.mjs.map +2 -2
  138. package/dist-esm/lib/utils/dom.mjs +12 -1
  139. package/dist-esm/lib/utils/dom.mjs.map +2 -2
  140. package/dist-esm/lib/utils/getPointerInfo.mjs +2 -2
  141. package/dist-esm/lib/utils/getPointerInfo.mjs.map +2 -2
  142. package/dist-esm/lib/utils/reparenting.mjs +3 -40
  143. package/dist-esm/lib/utils/reparenting.mjs.map +2 -2
  144. package/dist-esm/version.mjs +3 -3
  145. package/dist-esm/version.mjs.map +1 -1
  146. package/editor.css +308 -292
  147. package/package.json +14 -37
  148. package/src/index.ts +4 -9
  149. package/src/lib/TldrawEditor.tsx +9 -16
  150. package/src/lib/components/Shape.tsx +6 -12
  151. package/src/lib/components/default-components/DefaultCanvas.tsx +12 -23
  152. package/src/lib/components/default-components/DefaultCollaboratorHint.tsx +1 -1
  153. package/src/lib/components/default-components/DefaultErrorFallback.tsx +1 -1
  154. package/src/lib/components/default-components/DefaultScribble.tsx +1 -1
  155. package/src/lib/components/default-components/DefaultShapeIndicator.tsx +5 -1
  156. package/src/lib/config/TLUserPreferences.ts +1 -1
  157. package/src/lib/editor/Editor.test.ts +102 -11
  158. package/src/lib/editor/Editor.ts +65 -151
  159. package/src/lib/editor/derivations/notVisibleShapes.ts +6 -0
  160. package/src/lib/editor/managers/ClickManager/ClickManager.test.ts +15 -14
  161. package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.test.ts +16 -15
  162. package/src/lib/editor/managers/FocusManager/FocusManager.test.ts +49 -48
  163. package/src/lib/editor/managers/FocusManager/FocusManager.ts +6 -2
  164. package/src/lib/editor/managers/FontManager/FontManager.test.ts +24 -23
  165. package/src/lib/editor/managers/HistoryManager/HistoryManager.test.ts +7 -6
  166. package/src/lib/editor/managers/ScribbleManager/ScribbleManager.test.ts +12 -11
  167. package/src/lib/editor/managers/SnapManager/SnapManager.test.ts +57 -50
  168. package/src/lib/editor/managers/TextManager/TextManager.test.ts +51 -26
  169. package/src/lib/editor/managers/TickManager/TickManager.test.ts +14 -13
  170. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +21 -26
  171. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.ts +1 -1
  172. package/src/lib/editor/shapes/ShapeUtil.ts +46 -0
  173. package/src/lib/editor/types/misc-types.ts +0 -6
  174. package/src/lib/exports/getSvgJsx.test.ts +868 -0
  175. package/src/lib/exports/getSvgJsx.tsx +78 -21
  176. package/src/lib/hooks/useCanvasEvents.ts +23 -17
  177. package/src/lib/hooks/useDocumentEvents.ts +11 -6
  178. package/src/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.ts +2 -2
  179. package/src/lib/hooks/useGestureEvents.ts +2 -2
  180. package/src/lib/hooks/useHandleEvents.ts +9 -4
  181. package/src/lib/hooks/usePassThroughMouseOverEvents.ts +4 -1
  182. package/src/lib/hooks/usePassThroughWheelEvents.ts +6 -1
  183. package/src/lib/hooks/useSelectionEvents.ts +6 -5
  184. package/src/lib/license/LicenseManager.test.ts +724 -383
  185. package/src/lib/license/LicenseManager.ts +204 -58
  186. package/src/lib/license/LicenseProvider.tsx +74 -2
  187. package/src/lib/license/Watermark.test.tsx +2 -1
  188. package/src/lib/license/Watermark.tsx +79 -12
  189. package/src/lib/license/useLicenseManagerState.ts +2 -2
  190. package/src/lib/options.ts +6 -0
  191. package/src/lib/primitives/Box.test.ts +126 -0
  192. package/src/lib/primitives/Box.ts +10 -1
  193. package/src/lib/primitives/Vec.ts +0 -5
  194. package/src/lib/primitives/geometry/Geometry2d.test.ts +420 -0
  195. package/src/lib/primitives/geometry/Geometry2d.ts +78 -21
  196. package/src/lib/primitives/geometry/Group2d.ts +10 -1
  197. package/src/lib/test/InFrontOfTheCanvas.test.tsx +187 -0
  198. package/src/lib/utils/dom.test.ts +94 -0
  199. package/src/lib/utils/dom.ts +38 -1
  200. package/src/lib/utils/getPointerInfo.ts +2 -1
  201. package/src/lib/utils/reparenting.ts +3 -69
  202. package/src/lib/utils/sync/LocalIndexedDb.test.ts +2 -1
  203. package/src/lib/utils/sync/TLLocalSyncClient.test.ts +15 -15
  204. package/src/version.ts +3 -3
  205. package/dist-cjs/lib/utils/nearestMultiple.js +0 -34
  206. package/dist-cjs/lib/utils/nearestMultiple.js.map +0 -7
  207. package/dist-esm/lib/utils/nearestMultiple.mjs +0 -14
  208. package/dist-esm/lib/utils/nearestMultiple.mjs.map +0 -7
  209. package/src/lib/utils/nearestMultiple.ts +0 -13
package/editor.css CHANGED
@@ -5,57 +5,58 @@
5
5
  height: 100%;
6
6
  font-size: 12px;
7
7
  /* Spacing */
8
- --space-1: 2px;
9
- --space-2: 4px;
10
- --space-3: 8px;
11
- --space-4: 12px;
12
- --space-5: 16px;
13
- --space-6: 20px;
14
- --space-7: 28px;
15
- --space-8: 32px;
16
- --space-9: 64px;
17
- --space-10: 72px;
8
+ --tl-space-1: 2px;
9
+ --tl-space-2: 4px;
10
+ --tl-space-3: 8px;
11
+ --tl-space-4: 12px;
12
+ --tl-space-5: 16px;
13
+ --tl-space-6: 20px;
14
+ --tl-space-7: 28px;
15
+ --tl-space-8: 32px;
16
+ --tl-space-9: 64px;
17
+ --tl-space-10: 72px;
18
18
  /* Radius */
19
- --radius-0: 2px;
20
- --radius-1: 4px;
21
- --radius-2: 6px;
22
- --radius-3: 9px;
23
- --radius-4: 11px;
19
+ --tl-radius-0: 2px;
20
+ --tl-radius-1: 4px;
21
+ --tl-radius-2: 6px;
22
+ --tl-radius-3: 9px;
23
+ --tl-radius-4: 11px;
24
24
 
25
25
  /* Canvas z-index */
26
- --layer-canvas-hidden: -999999;
27
- --layer-canvas-background: 100;
28
- --layer-canvas-grid: 150;
29
- --layer-watermark: 200;
30
- --layer-canvas-shapes: 300;
31
- --layer-canvas-overlays: 500;
32
- --layer-canvas-blocker: 10000;
26
+ --tl-layer-canvas-hidden: -999999;
27
+ --tl-layer-canvas-background: 100;
28
+ --tl-layer-canvas-grid: 150;
29
+ --tl-layer-watermark: 200;
30
+ --tl-layer-canvas-shapes: 300;
31
+ --tl-layer-canvas-overlays: 500;
32
+ --tl-layer-canvas-in-front: 600;
33
+ --tl-layer-canvas-blocker: 10000;
33
34
 
34
35
  /* Canvas overlays z-index */
35
- --layer-overlays-collaborator-scribble: 10;
36
- --layer-overlays-collaborator-brush: 20;
37
- --layer-overlays-collaborator-shape-indicator: 30;
38
- --layer-overlays-user-scribble: 40;
39
- --layer-overlays-user-brush: 50;
40
- --layer-overlays-user-snapline: 90;
41
- --layer-overlays-selection-fg: 100;
36
+ --tl-layer-overlays-collaborator-scribble: 10;
37
+ --tl-layer-overlays-collaborator-brush: 20;
38
+ --tl-layer-overlays-collaborator-shape-indicator: 30;
39
+ --tl-layer-overlays-user-scribble: 40;
40
+ --tl-layer-overlays-user-brush: 50;
41
+ --tl-layer-overlays-user-snapline: 90;
42
+ --tl-layer-overlays-selection-fg: 100;
42
43
  /* User handles need to be above selection edges / corners, matters for sticky note clone handles */
43
- --layer-overlays-user-handles: 105;
44
- --layer-overlays-user-indicator-hint: 110;
45
- --layer-overlays-custom: 115;
46
- --layer-overlays-collaborator-cursor-hint: 120;
47
- --layer-overlays-collaborator-cursor: 130;
44
+ --tl-layer-overlays-user-handles: 105;
45
+ --tl-layer-overlays-user-indicator-hint: 110;
46
+ --tl-layer-overlays-custom: 115;
47
+ --tl-layer-overlays-collaborator-cursor-hint: 120;
48
+ --tl-layer-overlays-collaborator-cursor: 130;
48
49
 
49
50
  /* Text editor z-index */
50
- --layer-text-container: 1;
51
- --layer-text-content: 3;
52
- --layer-text-editor: 4;
51
+ --tl-layer-text-container: 1;
52
+ --tl-layer-text-content: 3;
53
+ --tl-layer-text-editor: 4;
53
54
 
54
55
  /* Error fallback z-index */
55
- --layer-error-overlay: 1;
56
- --layer-error-canvas: 2;
57
- --layer-error-canvas-after: 3;
58
- --layer-error-content: 4;
56
+ --tl-layer-error-overlay: 1;
57
+ --tl-layer-error-canvas: 2;
58
+ --tl-layer-error-canvas-after: 3;
59
+ --tl-layer-error-content: 4;
59
60
 
60
61
  /* Misc */
61
62
  --tl-zoom: 1;
@@ -120,12 +121,15 @@
120
121
  --tl-font-serif: 'tldraw_serif', serif;
121
122
  --tl-font-mono: 'tldraw_mono', monospace;
122
123
  /* text outline */
123
- --a: calc(min(0.5, 1 / var(--tl-zoom)) * 2px);
124
- --b: calc(min(0.5, 1 / var(--tl-zoom)) * -2px);
124
+ --tl-text-outline-a: calc(min(0.5, 1 / var(--tl-zoom)) * 2px);
125
+ --tl-text-outline-b: calc(min(0.5, 1 / var(--tl-zoom)) * -2px);
125
126
  --tl-text-outline-reference:
126
- 0 var(--b) 0 var(--color-background), 0 var(--a) 0 var(--color-background),
127
- var(--b) var(--b) 0 var(--color-background), var(--a) var(--b) 0 var(--color-background),
128
- var(--a) var(--a) 0 var(--color-background), var(--b) var(--a) 0 var(--color-background);
127
+ 0 var(--tl-text-outline-b) 0 var(--tl-color-background),
128
+ 0 var(--tl-text-outline-a) 0 var(--tl-color-background),
129
+ var(--tl-text-outline-b) var(--tl-text-outline-b) 0 var(--tl-color-background),
130
+ var(--tl-text-outline-a) var(--tl-text-outline-b) 0 var(--tl-color-background),
131
+ var(--tl-text-outline-a) var(--tl-text-outline-a) 0 var(--tl-color-background),
132
+ var(--tl-text-outline-b) var(--tl-text-outline-a) 0 var(--tl-color-background);
129
133
  --tl-text-outline: var(--tl-text-outline-reference);
130
134
  /* own properties */
131
135
  position: relative;
@@ -133,118 +137,118 @@
133
137
  height: 100%;
134
138
  width: 100%;
135
139
  overflow: clip;
136
- color: var(--color-text);
140
+ color: var(--tl-color-text);
137
141
  }
138
142
 
139
143
  .tl-theme__light {
140
144
  /* 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%);
144
- --color-background: hsl(210, 20%, 98%);
145
- --color-brush-fill: hsl(0, 0%, 56%, 10.2%);
146
- --color-brush-stroke: hsl(0, 0%, 56%, 25.1%);
147
- --color-grid: hsl(0, 0%, 43%);
145
+ --tl-color-snap: hsl(0, 76%, 60%);
146
+ --tl-color-selection-fill: hsl(210, 100%, 56%, 24%);
147
+ --tl-color-selection-stroke: hsl(214, 84%, 56%);
148
+ --tl-color-background: hsl(210, 20%, 98%);
149
+ --tl-color-brush-fill: hsl(0, 0%, 56%, 10.2%);
150
+ --tl-color-brush-stroke: hsl(0, 0%, 56%, 25.1%);
151
+ --tl-color-grid: hsl(0, 0%, 43%);
148
152
  /* UI */
149
- --color-low: hsl(204, 16%, 94%);
150
- --color-low-border: hsl(204, 16%, 92%);
151
- --color-culled: hsl(204, 14%, 93%);
152
- --color-muted-none: hsl(0, 0%, 0%, 0%);
153
- --color-muted-0: hsl(0, 0%, 0%, 2%);
154
- --color-muted-1: hsl(0, 0%, 0%, 10%);
155
- --color-muted-2: hsl(0, 0%, 0%, 4.3%);
156
- --color-hint: hsl(0, 0%, 0%, 5.5%);
157
- --color-overlay: hsl(0, 0%, 0%, 20%);
158
- --color-divider: hsl(0, 0%, 91%);
159
- --color-panel: hsl(0, 0%, 99%);
160
- --color-panel-contrast: hsl(0, 0%, 100%);
161
- --color-panel-overlay: hsl(0, 0%, 100%, 82%);
162
- --color-panel-transparent: hsla(0, 0%, 99%, 0%);
163
- --color-selected: hsl(214, 84%, 56%);
164
- --color-selected-contrast: hsl(0, 0%, 100%);
165
- --color-focus: hsl(219, 65%, 50%);
166
- --color-tooltip: hsla(200, 14%, 4%, 1);
153
+ --tl-color-low: hsl(204, 16%, 94%);
154
+ --tl-color-low-border: hsl(204, 16%, 92%);
155
+ --tl-color-culled: hsl(204, 14%, 93%);
156
+ --tl-color-muted-none: hsl(0, 0%, 0%, 0%);
157
+ --tl-color-muted-0: hsl(0, 0%, 0%, 2%);
158
+ --tl-color-muted-1: hsl(0, 0%, 0%, 10%);
159
+ --tl-color-muted-2: hsl(0, 0%, 0%, 4.3%);
160
+ --tl-color-hint: hsl(0, 0%, 0%, 5.5%);
161
+ --tl-color-overlay: hsl(0, 0%, 0%, 20%);
162
+ --tl-color-divider: hsl(0, 0%, 91%);
163
+ --tl-color-panel: hsl(0, 0%, 99%);
164
+ --tl-color-panel-contrast: hsl(0, 0%, 100%);
165
+ --tl-color-panel-overlay: hsl(0, 0%, 100%, 82%);
166
+ --tl-color-panel-transparent: hsla(0, 0%, 99%, 0%);
167
+ --tl-color-selected: hsl(214, 84%, 56%);
168
+ --tl-color-selected-contrast: hsl(0, 0%, 100%);
169
+ --tl-color-focus: hsl(219, 65%, 50%);
170
+ --tl-color-tooltip: hsla(200, 14%, 4%, 1);
167
171
  /* Text */
168
- --color-text: hsl(0, 0%, 0%);
169
- --color-text-0: hsl(0, 0%, 11%);
170
- --color-text-1: hsl(0, 0%, 18%);
171
- --color-text-3: hsl(204, 4%, 45%);
172
- --color-text-shadow: hsl(0, 0%, 100%);
173
- --color-text-highlight: hsl(52, 100%, 50%);
174
- --color-text-highlight-p3: color(display-p3 0.972 0.8205 0.05);
172
+ --tl-color-text: hsl(0, 0%, 0%);
173
+ --tl-color-text-0: hsl(0, 0%, 11%);
174
+ --tl-color-text-1: hsl(0, 0%, 18%);
175
+ --tl-color-text-3: hsl(204, 4%, 45%);
176
+ --tl-color-text-shadow: hsl(0, 0%, 100%);
177
+ --tl-color-text-highlight: hsl(52, 100%, 50%);
178
+ --tl-color-text-highlight-p3: color(display-p3 0.972 0.8205 0.05);
175
179
  /* Named */
176
- --color-primary: hsl(214, 84%, 56%);
177
- --color-success: hsl(123, 46%, 34%);
178
- --color-info: hsl(201, 98%, 41%);
179
- --color-warning: hsl(27, 98%, 47%);
180
- --color-danger: hsl(0, 90%, 43%);
181
- --color-laser: hsl(0, 100%, 50%);
180
+ --tl-color-primary: hsl(214, 84%, 56%);
181
+ --tl-color-success: hsl(123, 46%, 34%);
182
+ --tl-color-info: hsl(201, 98%, 41%);
183
+ --tl-color-warning: hsl(27, 98%, 47%);
184
+ --tl-color-danger: hsl(0, 90%, 43%);
185
+ --tl-color-laser: hsl(0, 100%, 50%);
182
186
  /* Shadows */
183
- --shadow-1: 0px 1px 2px hsl(0, 0%, 0%, 25%), 0px 1px 3px hsl(0, 0%, 0%, 9%);
184
- --shadow-2:
187
+ --tl-shadow-1: 0px 1px 2px hsl(0, 0%, 0%, 25%), 0px 1px 3px hsl(0, 0%, 0%, 9%);
188
+ --tl-shadow-2:
185
189
  0px 0px 2px hsl(0, 0%, 0%, 16%), 0px 2px 3px hsl(0, 0%, 0%, 24%),
186
- 0px 2px 6px hsl(0, 0%, 0%, 0.1), inset 0px 0px 0px 1px var(--color-panel-contrast);
187
- --shadow-3:
190
+ 0px 2px 6px hsl(0, 0%, 0%, 0.1), inset 0px 0px 0px 1px var(--tl-color-panel-contrast);
191
+ --tl-shadow-3:
188
192
  0px 1px 2px hsl(0, 0%, 0%, 28%), 0px 2px 6px hsl(0, 0%, 0%, 14%),
189
- inset 0px 0px 0px 1px var(--color-panel-contrast);
190
- --shadow-4:
193
+ inset 0px 0px 0px 1px var(--tl-color-panel-contrast);
194
+ --tl-shadow-4:
191
195
  0px 0px 3px hsl(0, 0%, 0%, 19%), 0px 5px 4px hsl(0, 0%, 0%, 16%),
192
- 0px 2px 16px hsl(0, 0%, 0%, 6%), inset 0px 0px 0px 1px var(--color-panel-contrast);
196
+ 0px 2px 16px hsl(0, 0%, 0%, 6%), inset 0px 0px 0px 1px var(--tl-color-panel-contrast);
193
197
  }
194
198
 
195
199
  .tl-theme__dark {
196
200
  /* 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%);
200
- --color-background: hsl(240, 5%, 6.5%);
201
- --color-brush-fill: hsl(0, 0%, 71%, 5.1%);
202
- --color-brush-stroke: hsl(0, 0%, 71%, 25.1%);
203
- --color-grid: hsl(0, 0%, 40%);
201
+ --tl-color-snap: hsl(0, 76%, 60%);
202
+ --tl-color-selection-fill: hsl(209, 100%, 57%, 20%);
203
+ --tl-color-selection-stroke: hsl(214, 84%, 56%);
204
+ --tl-color-background: hsl(240, 5%, 6.5%);
205
+ --tl-color-brush-fill: hsl(0, 0%, 71%, 5.1%);
206
+ --tl-color-brush-stroke: hsl(0, 0%, 71%, 25.1%);
207
+ --tl-color-grid: hsl(0, 0%, 40%);
204
208
  /* UI */
205
- --color-low: hsl(260, 4.5%, 10.5%);
206
- --color-low-border: hsl(207, 10%, 10%);
207
- --color-culled: hsl(210, 11%, 19%);
208
- --color-muted-none: hsl(0, 0%, 100%, 0%);
209
- --color-muted-0: hsl(0, 0%, 100%, 2%);
210
- --color-muted-1: hsl(0, 0%, 100%, 10%);
211
- --color-muted-2: hsl(0, 0%, 100%, 5%);
212
- --color-hint: hsl(0, 0%, 100%, 7%);
213
- --color-overlay: hsl(0, 0%, 0%, 50%);
214
- --color-divider: hsl(240, 9%, 22%);
215
- --color-panel: hsl(235, 6.8%, 13.5%);
216
- --color-panel-contrast: hsl(245, 12%, 23%);
217
- --color-panel-overlay: hsl(210, 10%, 24%, 82%);
218
- --color-panel-transparent: hsla(235, 6.8%, 13.5%, 0%);
219
- --color-selected: hsl(217, 89%, 61%);
220
- --color-selected-contrast: hsl(0, 0%, 100%);
221
- --color-focus: hsl(217, 76%, 80%);
222
- --color-tooltip: hsla(0, 0%, 100%, 1);
209
+ --tl-color-low: hsl(260, 4.5%, 10.5%);
210
+ --tl-color-low-border: hsl(207, 10%, 10%);
211
+ --tl-color-culled: hsl(210, 11%, 19%);
212
+ --tl-color-muted-none: hsl(0, 0%, 100%, 0%);
213
+ --tl-color-muted-0: hsl(0, 0%, 100%, 2%);
214
+ --tl-color-muted-1: hsl(0, 0%, 100%, 10%);
215
+ --tl-color-muted-2: hsl(0, 0%, 100%, 5%);
216
+ --tl-color-hint: hsl(0, 0%, 100%, 7%);
217
+ --tl-color-overlay: hsl(0, 0%, 0%, 50%);
218
+ --tl-color-divider: hsl(240, 9%, 22%);
219
+ --tl-color-panel: hsl(235, 6.8%, 13.5%);
220
+ --tl-color-panel-contrast: hsl(245, 12%, 23%);
221
+ --tl-color-panel-overlay: hsl(210, 10%, 24%, 82%);
222
+ --tl-color-panel-transparent: hsla(235, 6.8%, 13.5%, 0%);
223
+ --tl-color-selected: hsl(217, 89%, 61%);
224
+ --tl-color-selected-contrast: hsl(0, 0%, 100%);
225
+ --tl-color-focus: hsl(217, 76%, 80%);
226
+ --tl-color-tooltip: hsla(0, 0%, 100%, 1);
223
227
  /* Text */
224
- --color-text: hsl(210, 17%, 98%);
225
- --color-text-0: hsl(0, 9%, 94%);
226
- --color-text-1: hsl(0, 0%, 85%);
227
- --color-text-3: hsl(204, 4%, 75%);
228
- --color-text-shadow: hsl(210, 13%, 18%);
229
- --color-text-highlight: hsl(52, 100%, 41%);
230
- --color-text-highlight-p3: color(display-p3 0.8078 0.6225 0.0312);
228
+ --tl-color-text: hsl(210, 17%, 98%);
229
+ --tl-color-text-0: hsl(0, 9%, 94%);
230
+ --tl-color-text-1: hsl(0, 0%, 85%);
231
+ --tl-color-text-3: hsl(204, 4%, 75%);
232
+ --tl-color-text-shadow: hsl(210, 13%, 18%);
233
+ --tl-color-text-highlight: hsl(52, 100%, 41%);
234
+ --tl-color-text-highlight-p3: color(display-p3 0.8078 0.6225 0.0312);
231
235
  /* Named */
232
- --color-primary: hsl(214, 84%, 56%);
233
- --color-success: hsl(123, 38%, 57%);
234
- --color-info: hsl(199, 92%, 56%);
235
- --color-warning: hsl(36, 100%, 57%);
236
- --color-danger: hsl(0, 82%, 66%);
237
- --color-laser: hsl(0, 100%, 50%);
236
+ --tl-color-primary: hsl(214, 84%, 56%);
237
+ --tl-color-success: hsl(123, 38%, 57%);
238
+ --tl-color-info: hsl(199, 92%, 56%);
239
+ --tl-color-warning: hsl(36, 100%, 57%);
240
+ --tl-color-danger: hsl(0, 82%, 66%);
241
+ --tl-color-laser: hsl(0, 100%, 50%);
238
242
  /* Shadows */
239
- --shadow-1:
243
+ --tl-shadow-1:
240
244
  0px 1px 2px hsl(0, 0%, 0%, 16.1%), 0px 1px 3px hsl(0, 0%, 0%, 22%),
241
- inset 0px 0px 0px 1px var(--color-panel-contrast);
242
- --shadow-2:
245
+ inset 0px 0px 0px 1px var(--tl-color-panel-contrast);
246
+ --tl-shadow-2:
243
247
  0px 1px 3px hsl(0, 0%, 0%, 66.6%), 0px 2px 6px hsl(0, 0%, 0%, 33%),
244
- inset 0px 0px 0px 1px var(--color-panel-contrast);
245
- --shadow-3:
248
+ inset 0px 0px 0px 1px var(--tl-color-panel-contrast);
249
+ --tl-shadow-3:
246
250
  0px 1px 3px hsl(0, 0%, 0%, 50%), 0px 2px 12px hsl(0, 0%, 0%, 50%),
247
- inset 0px 0px 0px 1px var(--color-panel-contrast);
251
+ inset 0px 0px 0px 1px var(--tl-color-panel-contrast);
248
252
  }
249
253
 
250
254
  .tl-counter-scaled {
@@ -270,7 +274,7 @@
270
274
  }
271
275
 
272
276
  .tl-container__focused {
273
- outline: 1px solid var(--color-low);
277
+ outline: 1px solid var(--tl-color-low);
274
278
  }
275
279
 
276
280
  input,
@@ -286,7 +290,7 @@ input,
286
290
  inset: 0px;
287
291
  height: 100%;
288
292
  width: 100%;
289
- color: var(--color-text);
293
+ color: var(--tl-color-text);
290
294
  cursor: var(--tl-cursor);
291
295
  overflow: clip;
292
296
  content-visibility: auto;
@@ -294,9 +298,16 @@ input,
294
298
  contain: strict;
295
299
  }
296
300
 
301
+ .tl-canvas__in-front {
302
+ position: absolute;
303
+ inset: 0;
304
+ pointer-events: none;
305
+ z-index: var(--tl-layer-canvas-in-front);
306
+ }
307
+
297
308
  .tl-shapes {
298
309
  position: relative;
299
- z-index: var(--layer-canvas-shapes);
310
+ z-index: var(--tl-layer-canvas-shapes);
300
311
  }
301
312
 
302
313
  .tl-overlays {
@@ -307,7 +318,7 @@ input,
307
318
  width: 100%;
308
319
  contain: strict;
309
320
  pointer-events: none;
310
- z-index: var(--layer-canvas-overlays);
321
+ z-index: var(--tl-layer-canvas-overlays);
311
322
  }
312
323
 
313
324
  .tl-overlays__item {
@@ -331,7 +342,7 @@ input,
331
342
  /* ------------------- Background ------------------- */
332
343
 
333
344
  .tl-background__wrapper {
334
- z-index: var(--layer-canvas-background);
345
+ z-index: var(--tl-layer-canvas-background);
335
346
  position: absolute;
336
347
  inset: 0px;
337
348
  height: 100%;
@@ -339,7 +350,7 @@ input,
339
350
  }
340
351
 
341
352
  .tl-background {
342
- background-color: var(--color-background);
353
+ background-color: var(--tl-color-background);
343
354
  width: 100%;
344
355
  height: 100%;
345
356
  }
@@ -353,12 +364,12 @@ input,
353
364
  height: 100%;
354
365
  touch-action: none;
355
366
  pointer-events: none;
356
- z-index: var(--layer-canvas-grid);
367
+ z-index: var(--tl-layer-canvas-grid);
357
368
  contain: strict;
358
369
  }
359
370
 
360
371
  .tl-grid-dot {
361
- fill: var(--color-grid);
372
+ fill: var(--tl-color-grid);
362
373
  }
363
374
 
364
375
  /* --------------------- Layers --------------------- */
@@ -376,54 +387,54 @@ input,
376
387
 
377
388
  /* back of the stack, behind user's stuff */
378
389
  .tl-collaborator__scribble {
379
- z-index: var(--layer-overlays-collaborator-scribble);
390
+ z-index: var(--tl-layer-overlays-collaborator-scribble);
380
391
  }
381
392
 
382
393
  .tl-collaborator__brush {
383
- z-index: var(--layer-overlays-collaborator-brush);
394
+ z-index: var(--tl-layer-overlays-collaborator-brush);
384
395
  }
385
396
 
386
397
  .tl-collaborator__shape-indicator {
387
- z-index: var(--layer-overlays-collaborator-shape-indicator);
398
+ z-index: var(--tl-layer-overlays-collaborator-shape-indicator);
388
399
  }
389
400
 
390
401
  .tl-user-scribble {
391
- z-index: var(--layer-overlays-user-scribble);
402
+ z-index: var(--tl-layer-overlays-user-scribble);
392
403
  }
393
404
 
394
405
  .tl-user-brush {
395
- z-index: var(--layer-overlays-user-brush);
406
+ z-index: var(--tl-layer-overlays-user-brush);
396
407
  }
397
408
 
398
409
  .tl-user-handles {
399
- z-index: var(--layer-overlays-user-handles);
410
+ z-index: var(--tl-layer-overlays-user-handles);
400
411
  }
401
412
 
402
413
  .tl-user-snapline {
403
- z-index: var(--layer-overlays-user-snapline);
414
+ z-index: var(--tl-layer-overlays-user-snapline);
404
415
  }
405
416
 
406
417
  .tl-selection__fg {
407
418
  pointer-events: none;
408
- z-index: var(--layer-overlays-selection-fg);
419
+ z-index: var(--tl-layer-overlays-selection-fg);
409
420
  }
410
421
 
411
422
  .tl-user-indicator__hint {
412
- z-index: var(--layer-overlays-user-indicator-hint);
423
+ z-index: var(--tl-layer-overlays-user-indicator-hint);
413
424
  stroke-width: calc(2.5px * var(--tl-scale));
414
425
  }
415
426
 
416
427
  .tl-custom-overlays {
417
- z-index: var(--layer-overlays-custom);
428
+ z-index: var(--tl-layer-overlays-custom);
418
429
  }
419
430
 
420
431
  /* behind collaborator cursor */
421
432
  .tl-collaborator__cursor-hint {
422
- z-index: var(--layer-overlays-collaborator-cursor-hint);
433
+ z-index: var(--tl-layer-overlays-collaborator-cursor-hint);
423
434
  }
424
435
 
425
436
  .tl-collaborator__cursor {
426
- z-index: var(--layer-overlays-collaborator-cursor);
437
+ z-index: var(--tl-layer-overlays-collaborator-cursor);
427
438
  }
428
439
 
429
440
  .tl-cursor {
@@ -444,32 +455,32 @@ input,
444
455
  .tl-selection__fg__outline {
445
456
  fill: none;
446
457
  pointer-events: none;
447
- stroke: var(--color-selection-stroke);
458
+ stroke: var(--tl-color-selection-stroke);
448
459
  stroke-width: calc(1.5px * var(--tl-scale));
449
460
  }
450
461
 
451
462
  .tl-corner-handle {
452
463
  pointer-events: none;
453
- stroke: var(--color-selection-stroke);
454
- fill: var(--color-background);
464
+ stroke: var(--tl-color-selection-stroke);
465
+ fill: var(--tl-color-background);
455
466
  stroke-width: calc(1.5px * var(--tl-scale));
456
467
  }
457
468
 
458
469
  .tl-text-handle {
459
470
  pointer-events: none;
460
- fill: var(--color-selection-stroke);
471
+ fill: var(--tl-color-selection-stroke);
461
472
  }
462
473
 
463
474
  .tl-corner-crop-handle {
464
475
  pointer-events: none;
465
476
  fill: none;
466
- stroke: var(--color-selection-stroke);
477
+ stroke: var(--tl-color-selection-stroke);
467
478
  }
468
479
 
469
480
  .tl-corner-crop-edge-handle {
470
481
  pointer-events: none;
471
482
  fill: none;
472
- stroke: var(--color-selection-stroke);
483
+ stroke: var(--tl-color-selection-stroke);
473
484
  }
474
485
 
475
486
  .tl-mobile-rotate__bg {
@@ -479,8 +490,8 @@ input,
479
490
 
480
491
  .tl-mobile-rotate__fg {
481
492
  pointer-events: none;
482
- stroke: var(--color-selection-stroke);
483
- fill: var(--color-background);
493
+ stroke: var(--tl-color-selection-stroke);
494
+ fill: var(--tl-color-background);
484
495
  stroke-width: calc(1.5px * var(--tl-scale));
485
496
  }
486
497
 
@@ -510,8 +521,8 @@ input,
510
521
  text-overflow: ellipsis;
511
522
  font-size: 12px;
512
523
  font-family: var(--font-body);
513
- border-radius: var(--radius-2);
514
- color: var(--color-selected-contrast);
524
+ border-radius: var(--tl-radius-2);
525
+ color: var(--tl-color-selected-contrast);
515
526
  }
516
527
 
517
528
  .tl-nametag-title {
@@ -529,7 +540,7 @@ input,
529
540
  font-size: 12px;
530
541
  font-family: var(--font-body);
531
542
  text-shadow: var(--tl-text-outline);
532
- color: var(--color-selected-contrast);
543
+ color: var(--tl-color-selected-contrast);
533
544
  }
534
545
 
535
546
  .tl-nametag-chat {
@@ -538,31 +549,31 @@ input,
538
549
  left: 13px;
539
550
  width: fit-content;
540
551
  height: fit-content;
541
- color: var(--color-selected-contrast);
552
+ color: var(--tl-color-selected-contrast);
542
553
  white-space: nowrap;
543
554
  position: absolute;
544
555
  padding: 3px 6px;
545
556
  font-size: 12px;
546
557
  font-family: var(--font-body);
547
558
  opacity: 1;
548
- border-radius: var(--radius-2);
559
+ border-radius: var(--tl-radius-2);
549
560
  }
550
561
 
551
562
  .tl-cursor-chat {
552
563
  position: absolute;
553
- color: var(--color-selected-contrast);
564
+ color: var(--tl-color-selected-contrast);
554
565
  white-space: nowrap;
555
566
  padding: 3px 6px;
556
567
  font-size: 12px;
557
568
  font-family: var(--font-body);
558
569
  pointer-events: none;
559
- z-index: var(--layer-cursor);
570
+ z-index: var(--tl-layer-cursor);
560
571
  margin-top: 16px;
561
572
  margin-left: 13px;
562
573
  opacity: 1;
563
574
  border: none;
564
575
  user-select: text;
565
- border-radius: var(--radius-2);
576
+ border-radius: var(--tl-radius-2);
566
577
  }
567
578
 
568
579
  .tl-cursor-chat .tl-cursor-chat__bubble {
@@ -570,13 +581,13 @@ input,
570
581
  }
571
582
 
572
583
  .tl-cursor-chat::selection {
573
- background: var(--color-selected);
574
- color: var(--color-selected-contrast);
584
+ background: var(--tl-color-selected);
585
+ color: var(--tl-color-selected-contrast);
575
586
  text-shadow: none;
576
587
  }
577
588
 
578
589
  .tl-cursor-chat::placeholder {
579
- color: var(--color-selected-contrast);
590
+ color: var(--tl-color-selected-contrast);
580
591
  opacity: 0.7;
581
592
  }
582
593
 
@@ -647,7 +658,7 @@ input,
647
658
  background: none;
648
659
  border-image: none;
649
660
  border: 0px;
650
- caret-color: var(--color-text);
661
+ caret-color: var(--tl-color-text);
651
662
  color: inherit;
652
663
  column-count: initial !important;
653
664
  display: inline-block;
@@ -678,11 +689,17 @@ input,
678
689
  }
679
690
 
680
691
  .tl-text-measure {
692
+ z-index: var(--tl-layer-canvas-hidden);
693
+ opacity: 0;
694
+ visibility: hidden;
695
+
696
+ /* pointer-events: all; */
697
+ /* opacity: 1; */
698
+ /* z-index: 99999; */
699
+
681
700
  position: absolute;
682
- z-index: var(--layer-canvas-hidden);
683
701
  top: 0px;
684
702
  left: 0px;
685
- opacity: 0;
686
703
  width: max-content;
687
704
  box-sizing: border-box;
688
705
  pointer-events: none;
@@ -693,7 +710,6 @@ input,
693
710
  border: none;
694
711
  user-select: none;
695
712
  contain: style paint;
696
- visibility: hidden;
697
713
  /* N.B. This property, while discouraged ("intended for Document Type Definition (DTD) designers") is necessary for ensuring correct mixed RTL/LTR behavior when exporting SVGs. */
698
714
  unicode-bidi: plaintext;
699
715
  -webkit-user-select: none;
@@ -742,8 +758,8 @@ input,
742
758
  }
743
759
 
744
760
  .tl-text-input::selection {
745
- background: var(--color-selected);
746
- color: var(--color-selected-contrast);
761
+ background: var(--tl-color-selected);
762
+ color: var(--tl-color-selected-contrast);
747
763
  text-shadow: none;
748
764
  }
749
765
 
@@ -753,7 +769,7 @@ input,
753
769
  display: flex;
754
770
  justify-content: center;
755
771
  align-items: center;
756
- color: var(--color-text);
772
+ color: var(--tl-color-text);
757
773
  text-shadow: var(--tl-text-outline);
758
774
  line-height: inherit;
759
775
  position: absolute;
@@ -797,7 +813,7 @@ input,
797
813
 
798
814
  .tl-text-wrapper .tl-text-content {
799
815
  pointer-events: all;
800
- z-index: var(--layer-text-content);
816
+ z-index: var(--tl-layer-text-content);
801
817
  }
802
818
 
803
819
  .tl-text-label__inner > .tl-text-content {
@@ -807,7 +823,7 @@ input,
807
823
  padding: inherit;
808
824
  height: fit-content;
809
825
  width: fit-content;
810
- border-radius: var(--radius-1);
826
+ border-radius: var(--tl-radius-1);
811
827
  max-width: 100%;
812
828
  }
813
829
 
@@ -820,7 +836,7 @@ input,
820
836
  }
821
837
 
822
838
  .tl-text-wrapper[data-isselected='true'] .tl-text-input {
823
- z-index: var(--layer-text-editor);
839
+ z-index: var(--tl-layer-text-editor);
824
840
  pointer-events: all;
825
841
  }
826
842
 
@@ -915,7 +931,7 @@ input,
915
931
  }
916
932
 
917
933
  .tl-rich-text a {
918
- color: var(--color-primary);
934
+ color: var(--tl-color-primary);
919
935
  text-decoration: underline;
920
936
  }
921
937
 
@@ -938,14 +954,14 @@ input,
938
954
  }
939
955
 
940
956
  .tl-theme__dark .tl-rich-text mark {
941
- background-color: var(--color-text-highlight);
957
+ background-color: var(--tl-color-text-highlight);
942
958
  color: currentColor;
943
959
  }
944
960
 
945
961
  @supports (color: color(display-p3 1 1 1)) {
946
962
  @media (color-gamut: p3) {
947
963
  .tl-container:not(.tl-theme__force-sRGB) .tl-rich-text mark {
948
- background-color: var(--color-text-highlight-p3);
964
+ background-color: var(--tl-color-text-highlight-p3);
949
965
  }
950
966
  }
951
967
  }
@@ -957,15 +973,15 @@ input,
957
973
  /* --------------------- Loading -------------------- */
958
974
 
959
975
  .tl-loading {
960
- background-color: var(--color-background);
961
- color: var(--color-text-1);
976
+ background-color: var(--tl-color-background);
977
+ color: var(--tl-color-text-1);
962
978
  height: 100%;
963
979
  width: 100%;
964
980
  display: flex;
965
981
  flex-direction: column;
966
982
  justify-content: center;
967
983
  align-items: center;
968
- gap: var(--space-2);
984
+ gap: var(--tl-space-2);
969
985
  font-size: 14px;
970
986
  font-weight: 500;
971
987
  opacity: 0;
@@ -973,7 +989,7 @@ input,
973
989
  animation-delay: 0.2s;
974
990
  position: absolute;
975
991
  inset: 0px;
976
- z-index: var(--layer-canvas-blocker);
992
+ z-index: var(--tl-layer-canvas-blocker);
977
993
  }
978
994
 
979
995
  @keyframes tl-fade-in {
@@ -1006,8 +1022,8 @@ input,
1006
1022
  }
1007
1023
 
1008
1024
  .tl-brush__default {
1009
- stroke: var(--color-brush-stroke);
1010
- fill: var(--color-brush-fill);
1025
+ stroke: var(--tl-color-brush-stroke);
1026
+ fill: var(--tl-color-brush-fill);
1011
1027
  }
1012
1028
 
1013
1029
  /* -------------------- Scribble -------------------- */
@@ -1022,13 +1038,13 @@ input,
1022
1038
  /* ---------------------- Snaps --------------------- */
1023
1039
 
1024
1040
  .tl-snap-indicator {
1025
- stroke: var(--color-snap);
1041
+ stroke: var(--tl-color-snap);
1026
1042
  stroke-width: calc(1px * var(--tl-scale));
1027
1043
  fill: none;
1028
1044
  }
1029
1045
 
1030
1046
  .tl-snap-point {
1031
- stroke: var(--color-snap);
1047
+ stroke: var(--tl-color-snap);
1032
1048
  stroke-width: calc(1px * var(--tl-scale));
1033
1049
  fill: none;
1034
1050
  }
@@ -1048,7 +1064,7 @@ input,
1048
1064
  justify-content: center;
1049
1065
  font-size: 12px;
1050
1066
  font-weight: 400;
1051
- color: var(--color-text-1);
1067
+ color: var(--tl-color-text-1);
1052
1068
  padding: 13px;
1053
1069
  cursor: var(--tl-cursor-pointer);
1054
1070
  border: none;
@@ -1066,13 +1082,13 @@ input,
1066
1082
  display: block;
1067
1083
  width: calc(100% - 12px);
1068
1084
  height: calc(100% - 12px);
1069
- border-radius: var(--radius-1);
1070
- background-color: var(--color-background);
1085
+ border-radius: var(--tl-radius-1);
1086
+ background-color: var(--tl-color-background);
1071
1087
  pointer-events: none;
1072
1088
  }
1073
1089
 
1074
1090
  .tl-hyperlink-button:focus-visible {
1075
- color: var(--color-selected);
1091
+ color: var(--tl-color-selected);
1076
1092
  }
1077
1093
 
1078
1094
  .tl-hyperlink__icon {
@@ -1099,8 +1115,8 @@ input,
1099
1115
  }
1100
1116
 
1101
1117
  .tl-handle__fg {
1102
- fill: var(--color-selected-contrast);
1103
- stroke: var(--color-selection-stroke);
1118
+ fill: var(--tl-color-selected-contrast);
1119
+ stroke: var(--tl-color-selection-stroke);
1104
1120
  stroke-width: calc(1.5px * var(--tl-scale));
1105
1121
  pointer-events: none;
1106
1122
  }
@@ -1110,7 +1126,7 @@ input,
1110
1126
  }
1111
1127
 
1112
1128
  .tl-handle__clone > .tl-handle__fg {
1113
- fill: var(--color-selection-stroke);
1129
+ fill: var(--tl-color-selection-stroke);
1114
1130
  stroke: none;
1115
1131
  }
1116
1132
 
@@ -1120,7 +1136,7 @@ input,
1120
1136
 
1121
1137
  @media (pointer: coarse) {
1122
1138
  .tl-handle__bg:active {
1123
- fill: var(--color-selection-fill);
1139
+ fill: var(--tl-color-selection-fill);
1124
1140
  }
1125
1141
 
1126
1142
  .tl-handle__create {
@@ -1176,13 +1192,13 @@ input,
1176
1192
  stroke-linejoin: round;
1177
1193
  /* content-visibility: auto; */
1178
1194
  transform-origin: top left;
1179
- color: var(--color-text-1);
1195
+ color: var(--tl-color-text-1);
1180
1196
  }
1181
1197
 
1182
1198
  /* -------------------- Group shape ------------------ */
1183
1199
 
1184
1200
  .tl-group {
1185
- stroke: var(--color-text);
1201
+ stroke: var(--tl-color-text);
1186
1202
  stroke-width: calc(1px * var(--tl-scale));
1187
1203
  opacity: 0.5;
1188
1204
  }
@@ -1200,12 +1216,12 @@ input,
1200
1216
  justify-content: center;
1201
1217
  align-items: center;
1202
1218
  text-align: center;
1203
- color: var(--color-text);
1219
+ color: var(--tl-color-text);
1204
1220
  text-shadow: var(--tl-text-outline);
1205
1221
  }
1206
1222
 
1207
1223
  .tl-shape[data-shape-type='arrow'] .tl-text-label__inner {
1208
- border-radius: var(--radius-1);
1224
+ border-radius: var(--tl-radius-1);
1209
1225
  box-sizing: content-box;
1210
1226
  height: max-content;
1211
1227
  width: max-content;
@@ -1216,22 +1232,22 @@ input,
1216
1232
  }
1217
1233
 
1218
1234
  .tl-arrow-hint {
1219
- stroke: var(--color-text-1);
1235
+ stroke: var(--tl-color-text-1);
1220
1236
  fill: none;
1221
1237
  stroke-linecap: round;
1222
1238
  overflow: visible;
1223
1239
  }
1224
1240
 
1225
1241
  .tl-arrow-hint-handle {
1226
- fill: var(--color-selected-contrast);
1227
- stroke: var(--color-selection-stroke);
1242
+ fill: var(--tl-color-selected-contrast);
1243
+ stroke: var(--tl-color-selection-stroke);
1228
1244
  stroke-width: calc(1.5px * var(--tl-scale));
1229
1245
  r: calc(4px * var(--tl-scale));
1230
1246
  }
1231
1247
 
1232
1248
  .tl-arrow-hint-snap {
1233
1249
  stroke: transparent;
1234
- fill: var(--color-selection-fill);
1250
+ fill: var(--tl-color-selection-fill);
1235
1251
  r: calc(12px * var(--tl-scale));
1236
1252
  }
1237
1253
 
@@ -1251,40 +1267,40 @@ input,
1251
1267
  width: 100%;
1252
1268
  height: 100%;
1253
1269
  position: relative;
1254
- border: 1px solid var(--color-panel-contrast);
1255
- background-color: var(--color-panel);
1256
- border-radius: var(--radius-2);
1270
+ border: 1px solid var(--tl-color-panel-contrast);
1271
+ background-color: var(--tl-color-panel);
1272
+ border-radius: var(--tl-radius-2);
1257
1273
  display: flex;
1258
1274
  flex-direction: column;
1259
1275
  overflow: hidden;
1260
1276
  }
1261
1277
 
1262
1278
  .tl-bookmark__container--safariExport {
1263
- border: 1px solid var(--color-divider);
1279
+ border: 1px solid var(--tl-color-divider);
1264
1280
  }
1265
1281
 
1266
1282
  .tl-bookmark__image_container {
1267
1283
  flex: 1 1 100%;
1268
1284
  overflow: hidden;
1269
- border-top-left-radius: var(--radius-1);
1270
- border-top-right-radius: var(--radius-1);
1285
+ border-top-left-radius: var(--tl-radius-1);
1286
+ border-top-right-radius: var(--tl-radius-1);
1271
1287
  width: 100%;
1272
1288
  height: 100%;
1273
1289
  display: flex;
1274
1290
  justify-content: flex-end;
1275
1291
  align-items: flex-start;
1276
- box-shadow: inset 0px 0px 0px 1px var(--color-divider);
1292
+ box-shadow: inset 0px 0px 0px 1px var(--tl-color-divider);
1277
1293
  }
1278
1294
 
1279
1295
  .tl-bookmark__image_container > .tl-hyperlink-button::after {
1280
- background-color: var(--color-panel);
1296
+ background-color: var(--tl-color-panel);
1281
1297
  }
1282
1298
 
1283
1299
  .tl-bookmark__placeholder {
1284
1300
  width: 100%;
1285
1301
  height: 100%;
1286
- background-color: var(--color-muted-2);
1287
- border-bottom: 1px solid var(--color-muted-2);
1302
+ background-color: var(--tl-color-muted-2);
1303
+ border-bottom: 1px solid var(--tl-color-muted-2);
1288
1304
  }
1289
1305
 
1290
1306
  .tl-bookmark__image {
@@ -1292,12 +1308,12 @@ input,
1292
1308
  height: 100%;
1293
1309
  object-fit: cover;
1294
1310
  object-position: center;
1295
- border-bottom: 1px solid var(--color-muted-2);
1311
+ border-bottom: 1px solid var(--tl-color-muted-2);
1296
1312
  }
1297
1313
 
1298
1314
  .tl-bookmark__copy_container {
1299
- background-color: var(--color-muted-0);
1300
- padding: var(--space-4);
1315
+ background-color: var(--tl-color-muted-0);
1316
+ padding: var(--tl-space-4);
1301
1317
  pointer-events: all;
1302
1318
  display: flex;
1303
1319
  flex-direction: column;
@@ -1317,7 +1333,7 @@ input,
1317
1333
  font-size: 16px;
1318
1334
  line-height: 1.6;
1319
1335
  font-weight: bold;
1320
- padding-bottom: var(--space-2);
1336
+ padding-bottom: var(--tl-space-2);
1321
1337
  overflow: hidden;
1322
1338
  max-height: calc((16px * 1.6) * 2);
1323
1339
  -webkit-box-orient: vertical;
@@ -1337,19 +1353,19 @@ input,
1337
1353
  line-clamp: 3;
1338
1354
  text-overflow: ellipsis;
1339
1355
  display: -webkit-box;
1340
- color: var(--color-text-2);
1341
- margin: var(--space-2) 0px;
1356
+ color: var(--tl-color-text-2);
1357
+ margin: var(--tl-space-2) 0px;
1342
1358
  }
1343
1359
 
1344
1360
  .tl-bookmark__heading + .tl-bookmark__link,
1345
1361
  .tl-bookmark__description + .tl-bookmark__link {
1346
- margin-top: var(--space-3);
1362
+ margin-top: var(--tl-space-3);
1347
1363
  }
1348
1364
  .tl-bookmark__link {
1349
1365
  font-size: 12px;
1350
1366
  pointer-events: all;
1351
1367
  display: flex;
1352
- color: var(--color-text-2);
1368
+ color: var(--tl-color-text-2);
1353
1369
  align-items: center;
1354
1370
  cursor: var(--tl-cursor-pointer);
1355
1371
  width: fit-content;
@@ -1391,7 +1407,7 @@ input,
1391
1407
  width: 100%;
1392
1408
  height: 100%;
1393
1409
  pointer-events: all;
1394
- /* background-color: var(--color-background); */
1410
+ /* background-color: var(--tl-color-background); */
1395
1411
 
1396
1412
  display: flex;
1397
1413
  justify-content: center;
@@ -1420,7 +1436,7 @@ input,
1420
1436
  height: 100%;
1421
1437
  pointer-events: all;
1422
1438
  opacity: 1;
1423
- z-index: var(--layer-text-container);
1439
+ z-index: var(--tl-layer-text-container);
1424
1440
  border-radius: 1px;
1425
1441
  }
1426
1442
 
@@ -1436,22 +1452,22 @@ input,
1436
1452
  }
1437
1453
 
1438
1454
  .tl-frame__creating {
1439
- stroke: var(--color-selected);
1455
+ stroke: var(--tl-color-selected);
1440
1456
  fill: none;
1441
1457
  }
1442
1458
 
1443
1459
  .tl-frame-heading {
1444
- --frame-padding-x: 6px;
1445
- --frame-height: 24px;
1446
- --frame-minimum-width: 32px;
1447
- --frame-offset-width: 16px;
1460
+ --tl-frame-padding-x: 6px;
1461
+ --tl-frame-height: 24px;
1462
+ --tl-frame-minimum-width: 32px;
1463
+ --tl-frame-offset-width: 16px;
1448
1464
  display: flex;
1449
1465
  align-items: center;
1450
1466
  position: absolute;
1451
1467
  transform-origin: 0% 100%;
1452
1468
  overflow: hidden;
1453
1469
  max-width: 100%;
1454
- min-width: var(--frame-minimum-width);
1470
+ min-width: var(--tl-frame-minimum-width);
1455
1471
  height: auto;
1456
1472
  font-size: 12px;
1457
1473
  padding-bottom: 4px;
@@ -1463,18 +1479,18 @@ input,
1463
1479
  /* scale from bottom left corner so we can pin it to the top left corner of the frame */
1464
1480
  transform-origin: 0% 100%;
1465
1481
  display: flex;
1466
- height: var(--frame-height);
1482
+ height: var(--tl-frame-height);
1467
1483
  width: 100%;
1468
1484
  align-items: center;
1469
- border-radius: var(--radius-1);
1485
+ border-radius: var(--tl-radius-1);
1470
1486
  }
1471
1487
 
1472
1488
  .tl-frame-label {
1473
1489
  pointer-events: all;
1474
1490
  overflow: hidden;
1475
1491
  text-overflow: ellipsis;
1476
- padding: 0px var(--frame-padding-x);
1477
- border-radius: var(--radius-1);
1492
+ padding: 0px var(--tl-frame-padding-x);
1493
+ border-radius: var(--tl-radius-1);
1478
1494
  position: relative;
1479
1495
  font-size: inherit;
1480
1496
  white-space: pre;
@@ -1484,12 +1500,12 @@ input,
1484
1500
  color: transparent;
1485
1501
  white-space: pre;
1486
1502
  width: auto;
1487
- min-width: var(--frame-minimum-width);
1503
+ min-width: var(--tl-frame-minimum-width);
1488
1504
  height: 100%;
1489
1505
  overflow: visible;
1490
- background-color: var(--color-panel);
1491
- border-color: var(--color-selected);
1492
- box-shadow: inset 0px 0px 0px 1.5px var(--color-selected);
1506
+ background-color: var(--tl-color-panel);
1507
+ border-color: var(--tl-color-selected);
1508
+ box-shadow: inset 0px 0px 0px 1.5px var(--tl-color-selected);
1493
1509
  }
1494
1510
 
1495
1511
  .tl-frame-name-input {
@@ -1497,7 +1513,7 @@ input,
1497
1513
  border: none;
1498
1514
  background: none;
1499
1515
  outline: none;
1500
- padding: 0px var(--frame-padding-x);
1516
+ padding: 0px var(--tl-frame-padding-x);
1501
1517
  inset: 0px;
1502
1518
  height: 100%;
1503
1519
  width: 100%;
@@ -1505,8 +1521,8 @@ input,
1505
1521
  font-family: inherit;
1506
1522
  font-weight: inherit;
1507
1523
  width: 100%;
1508
- color: var(--color-text-1);
1509
- border-radius: var(--radius-1);
1524
+ color: var(--tl-color-text-1);
1525
+ border-radius: var(--tl-radius-1);
1510
1526
  user-select: all;
1511
1527
  -webkit-user-select: text;
1512
1528
  white-space: pre;
@@ -1526,7 +1542,7 @@ input,
1526
1542
 
1527
1543
  .tl-embed {
1528
1544
  border: none;
1529
- border-radius: var(--radius-2);
1545
+ border-radius: var(--tl-radius-2);
1530
1546
  }
1531
1547
 
1532
1548
  /* -------------- Shape error boundary -------------- */
@@ -1534,11 +1550,11 @@ input,
1534
1550
  .tl-shape-error-boundary {
1535
1551
  width: 100%;
1536
1552
  height: 100%;
1537
- background-color: var(--color-muted-1);
1553
+ background-color: var(--tl-color-muted-1);
1538
1554
  border-width: calc(1px * var(--tl-scale));
1539
- border-color: var(--color-muted-1);
1555
+ border-color: var(--tl-color-muted-1);
1540
1556
  border-style: solid;
1541
- border-radius: calc(var(--radius-1) * var(--tl-scale));
1557
+ border-radius: calc(var(--tl-radius-1) * var(--tl-scale));
1542
1558
  display: flex;
1543
1559
  flex-direction: column;
1544
1560
  align-items: center;
@@ -1547,7 +1563,7 @@ input,
1547
1563
  position: relative;
1548
1564
  pointer-events: all;
1549
1565
  overflow: hidden;
1550
- padding: var(--space-2);
1566
+ padding: var(--tl-space-2);
1551
1567
  }
1552
1568
 
1553
1569
  .tl-shape-error-boundary::before {
@@ -1555,7 +1571,7 @@ input,
1555
1571
  content: 'Error';
1556
1572
  font-size: 12px;
1557
1573
  font-family: inherit;
1558
- color: var(--color-text-0);
1574
+ color: var(--tl-color-text-0);
1559
1575
  }
1560
1576
 
1561
1577
  /* ----------------- Error boundary ----------------- */
@@ -1566,9 +1582,9 @@ input,
1566
1582
  display: flex;
1567
1583
  align-items: center;
1568
1584
  justify-content: center;
1569
- padding: var(--space-4);
1570
- background-color: var(--color-background);
1571
- color: var(--color-text-1);
1585
+ padding: var(--tl-space-4);
1586
+ background-color: var(--tl-color-background);
1587
+ color: var(--tl-color-text-1);
1572
1588
  position: absolute;
1573
1589
  }
1574
1590
 
@@ -1577,8 +1593,8 @@ input,
1577
1593
  inset: 0px;
1578
1594
  height: 100%;
1579
1595
  width: 100%;
1580
- z-index: var(--layer-error-overlay);
1581
- background-color: var(--color-overlay);
1596
+ z-index: var(--tl-layer-error-overlay);
1597
+ background-color: var(--tl-color-overlay);
1582
1598
  }
1583
1599
 
1584
1600
  .tl-error-boundary__content * {
@@ -1593,7 +1609,7 @@ input,
1593
1609
  inset: 0px;
1594
1610
  height: 100%;
1595
1611
  width: 100%;
1596
- z-index: var(--layer-error-canvas);
1612
+ z-index: var(--tl-layer-error-canvas);
1597
1613
  }
1598
1614
 
1599
1615
  /* some browsers seem to have some weird interactions between stacking contexts
@@ -1606,7 +1622,7 @@ it from receiving any pointer events or affecting the cursor. */
1606
1622
  inset: 0px;
1607
1623
  height: 100%;
1608
1624
  width: 100%;
1609
- z-index: var(--layer-error-canvas-after);
1625
+ z-index: var(--tl-layer-error-canvas-after);
1610
1626
  pointer-events: all;
1611
1627
  }
1612
1628
 
@@ -1616,16 +1632,16 @@ it from receiving any pointer events or affecting the cursor. */
1616
1632
  max-width: 100%;
1617
1633
  width: 400px;
1618
1634
  max-height: 100%;
1619
- background-color: var(--color-panel);
1635
+ background-color: var(--tl-color-panel);
1620
1636
  padding: 16px;
1621
1637
  border-radius: 16px;
1622
- box-shadow: var(--shadow-2);
1638
+ box-shadow: var(--tl-shadow-2);
1623
1639
  font-size: 14px;
1624
1640
  font-weight: 400;
1625
1641
  display: flex;
1626
1642
  flex-direction: column;
1627
1643
  overflow: auto;
1628
- z-index: var(--layer-error-content);
1644
+ z-index: var(--tl-layer-error-content);
1629
1645
  gap: 12px;
1630
1646
  }
1631
1647
 
@@ -1640,10 +1656,10 @@ it from receiving any pointer events or affecting the cursor. */
1640
1656
  }
1641
1657
 
1642
1658
  .tl-error-boundary__content h4 {
1643
- border: 1px solid var(--color-low-border);
1659
+ border: 1px solid var(--tl-color-low-border);
1644
1660
  margin: -6px 0 0 0;
1645
- padding: var(--space-5);
1646
- border-radius: var(--radius-2);
1661
+ padding: var(--tl-space-5);
1662
+ border-radius: var(--tl-radius-2);
1647
1663
  font-weight: normal;
1648
1664
  }
1649
1665
 
@@ -1653,10 +1669,10 @@ it from receiving any pointer events or affecting the cursor. */
1653
1669
  }
1654
1670
 
1655
1671
  .tl-error-boundary__content pre {
1656
- background-color: var(--color-muted-2);
1672
+ background-color: var(--tl-color-muted-2);
1657
1673
  margin-top: 0;
1658
- padding: var(--space-5);
1659
- border-radius: var(--radius-2);
1674
+ padding: var(--tl-space-5);
1675
+ border-radius: var(--tl-radius-2);
1660
1676
  overflow: auto;
1661
1677
  font-size: 12px;
1662
1678
  max-height: 320px;
@@ -1668,15 +1684,15 @@ it from receiving any pointer events or affecting the cursor. */
1668
1684
  font-family: inherit;
1669
1685
  font-size: 14px;
1670
1686
  font-weight: 500;
1671
- padding: var(--space-4);
1672
- border-radius: var(--radius-3);
1687
+ padding: var(--tl-space-4);
1688
+ border-radius: var(--tl-radius-3);
1673
1689
  cursor: var(--tl-cursor-pointer);
1674
1690
  color: inherit;
1675
1691
  background-color: transparent;
1676
1692
  }
1677
1693
 
1678
1694
  .tl-error-boundary__content a {
1679
- color: var(--color-selected);
1695
+ color: var(--tl-color-selected);
1680
1696
  font-weight: 500;
1681
1697
  text-decoration: none;
1682
1698
  }
@@ -1688,31 +1704,31 @@ it from receiving any pointer events or affecting the cursor. */
1688
1704
 
1689
1705
  .tl-error-boundary__content__error button {
1690
1706
  position: absolute;
1691
- top: var(--space-2);
1692
- right: var(--space-2);
1707
+ top: var(--tl-space-2);
1708
+ right: var(--tl-space-2);
1693
1709
  font-size: 12px;
1694
- padding: var(--space-2) var(--space-3);
1695
- background-color: var(--color-panel);
1696
- border-radius: var(--radius-1);
1710
+ padding: var(--tl-space-2) var(--tl-space-3);
1711
+ background-color: var(--tl-color-panel);
1712
+ border-radius: var(--tl-radius-1);
1697
1713
  }
1698
1714
 
1699
1715
  .tl-error-boundary__content__actions {
1700
1716
  display: flex;
1701
1717
  justify-content: space-between;
1702
- gap: var(--space-4);
1718
+ gap: var(--tl-space-4);
1703
1719
  margin: 0px;
1704
1720
  margin-left: -4px;
1705
1721
  }
1706
1722
  .tl-error-boundary__content__actions__group {
1707
1723
  display: flex;
1708
- gap: var(--space-4);
1724
+ gap: var(--tl-space-4);
1709
1725
  }
1710
1726
  .tl-error-boundary__content .tl-error-boundary__reset {
1711
- color: var(--color-danger);
1727
+ color: var(--tl-color-danger);
1712
1728
  }
1713
1729
  .tl-error-boundary__content .tl-error-boundary__refresh {
1714
- background-color: var(--color-primary);
1715
- color: var(--color-selected-contrast);
1730
+ background-color: var(--tl-color-primary);
1731
+ color: var(--tl-color-selected-contrast);
1716
1732
  }
1717
1733
  .tl-container__focused:not(.tl-container__no-focus-ring)
1718
1734
  .tlui-button.tl-error-boundary__refresh:focus-visible {
@@ -1724,7 +1740,7 @@ it from receiving any pointer events or affecting the cursor. */
1724
1740
 
1725
1741
  .tl-hit-test-blocker {
1726
1742
  position: absolute;
1727
- z-index: var(--layer-canvas-blocker);
1743
+ z-index: var(--tl-layer-canvas-blocker);
1728
1744
  inset: 0px;
1729
1745
  width: 100%;
1730
1746
  height: 100%;
@@ -1744,32 +1760,32 @@ it from receiving any pointer events or affecting the cursor. */
1744
1760
 
1745
1761
  .tl-handle__bg:hover {
1746
1762
  cursor: var(--tl-cursor-grab);
1747
- fill: var(--color-selection-fill);
1763
+ fill: var(--tl-color-selection-fill);
1748
1764
  }
1749
1765
 
1750
1766
  .tl-bookmark__link:hover {
1751
- color: var(--color-selected);
1767
+ color: var(--tl-color-selected);
1752
1768
  }
1753
1769
 
1754
1770
  .tl-hyperlink-button:hover {
1755
- color: var(--color-selected);
1771
+ color: var(--tl-color-selected);
1756
1772
  }
1757
1773
 
1758
1774
  .tl-error-boundary__content button:hover {
1759
- background-color: var(--color-low);
1775
+ background-color: var(--tl-color-low);
1760
1776
  }
1761
1777
  .tl-error-boundary__content a:hover {
1762
- color: var(--color-text-1);
1778
+ color: var(--tl-color-text-1);
1763
1779
  }
1764
1780
  .tl-error-boundary__content .tl-error-boundary__refresh:hover {
1765
- background-color: var(--color-primary);
1781
+ background-color: var(--tl-color-primary);
1766
1782
  opacity: 0.9;
1767
1783
  }
1768
1784
 
1769
1785
  /* These three rules help preserve clicking into specific points in text areas *while*
1770
1786
  * already in edit mode when jumping from shape to shape. */
1771
1787
  .tl-canvas[data-iseditinganything='true'] .tl-text-wrapper:hover .tl-text-input {
1772
- z-index: var(--layer-text-editor);
1788
+ z-index: var(--tl-layer-text-editor);
1773
1789
  pointer-events: all;
1774
1790
  }
1775
1791
  }