@tldraw/tldraw 4.2.2 → 4.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist-cjs/index.js CHANGED
@@ -19,7 +19,7 @@ var import_tldraw = require("tldraw");
19
19
  __reExport(index_exports, require("tldraw"), module.exports);
20
20
  (0, import_tldraw.registerTldrawLibraryVersion)(
21
21
  "@tldraw/tldraw",
22
- "4.2.2",
22
+ "4.2.3",
23
23
  "cjs"
24
24
  );
25
25
  //# sourceMappingURL=index.js.map
@@ -2,7 +2,7 @@ import { registerTldrawLibraryVersion } from "tldraw";
2
2
  export * from "tldraw";
3
3
  registerTldrawLibraryVersion(
4
4
  "@tldraw/tldraw",
5
- "4.2.2",
5
+ "4.2.3",
6
6
  "esm"
7
7
  );
8
8
  //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tldraw/tldraw",
3
3
  "description": "A tiny little drawing editor.",
4
- "version": "4.2.2",
4
+ "version": "4.2.3",
5
5
  "author": {
6
6
  "name": "tldraw Inc.",
7
7
  "email": "hello@tldraw.com"
@@ -48,19 +48,18 @@
48
48
  "src"
49
49
  ],
50
50
  "dependencies": {
51
- "tldraw": "4.2.2"
51
+ "tldraw": "4.2.3"
52
52
  },
53
53
  "peerDependencies": {
54
- "react": "^18.2.0 || ^19.2.1",
55
- "react-dom": "^18.2.0 || ^19.2.1"
54
+ "react": "^18.2.0 || ^19.0.0",
55
+ "react-dom": "^18.2.0 || ^19.0.0"
56
56
  },
57
57
  "devDependencies": {
58
- "@types/react": "^19.2.7",
59
- "@types/react-dom": "^19.2.3",
58
+ "@types/react": "^18.3.18",
60
59
  "chokidar-cli": "^3.0.0",
61
60
  "lazyrepo": "0.0.0-alpha.27",
62
- "react": "^19.2.1",
63
- "react-dom": "^19.2.1"
61
+ "react": "^18.3.1",
62
+ "react-dom": "^18.3.1"
64
63
  },
65
64
  "module": "dist-esm/index.mjs",
66
65
  "source": "src/index.ts",
package/tldraw.css CHANGED
@@ -611,6 +611,7 @@ input,
611
611
  pointer-events: all;
612
612
  white-space: pre-wrap;
613
613
  overflow-wrap: break-word;
614
+ text-shadow: var(--tl-text-outline);
614
615
  }
615
616
 
616
617
  .tl-text-wrapper[data-font='draw'] {
@@ -712,7 +713,7 @@ input,
712
713
  resize: none;
713
714
  border: none;
714
715
  user-select: none;
715
- contain: layout style paint;
716
+ contain: style paint;
716
717
  /* 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. */
717
718
  unicode-bidi: plaintext;
718
719
  -webkit-user-select: none;
@@ -773,6 +774,7 @@ input,
773
774
  justify-content: center;
774
775
  align-items: center;
775
776
  color: var(--tl-color-text);
777
+ text-shadow: var(--tl-text-outline);
776
778
  line-height: inherit;
777
779
  position: absolute;
778
780
  inset: 0px;
@@ -972,14 +974,6 @@ input,
972
974
  display: block;
973
975
  }
974
976
 
975
- .tl-text__outline {
976
- text-shadow: var(--tl-text-outline);
977
- }
978
-
979
- .tl-text__no-outline {
980
- text-shadow: none;
981
- }
982
-
983
977
  /* --------------------- Loading -------------------- */
984
978
 
985
979
  .tl-loading {
@@ -1144,12 +1138,14 @@ input,
1144
1138
  fill: none;
1145
1139
  }
1146
1140
 
1147
- .tl-container[data-coarse='true'] .tl-handle__bg:active {
1148
- fill: var(--tl-color-selection-fill);
1149
- }
1141
+ @media (pointer: coarse) {
1142
+ .tl-handle__bg:active {
1143
+ fill: var(--tl-color-selection-fill);
1144
+ }
1150
1145
 
1151
- .tl-container[data-coarse='true'] .tl-handle__create {
1152
- opacity: 1;
1146
+ .tl-handle__create {
1147
+ opacity: 1;
1148
+ }
1153
1149
  }
1154
1150
 
1155
1151
  .tl-rotate-corner:not(:hover),
@@ -1225,6 +1221,7 @@ input,
1225
1221
  align-items: center;
1226
1222
  text-align: center;
1227
1223
  color: var(--tl-color-text);
1224
+ text-shadow: var(--tl-text-outline);
1228
1225
  }
1229
1226
 
1230
1227
  .tl-shape[data-shape-type='arrow'] .tl-text-label__inner {
@@ -1453,6 +1450,7 @@ input,
1453
1450
  }
1454
1451
 
1455
1452
  .tl-note__container > .tl-text-label {
1453
+ text-shadow: none;
1456
1454
  color: currentColor;
1457
1455
  }
1458
1456
 
@@ -2317,10 +2315,12 @@ it from receiving any pointer events or affecting the cursor. */
2317
2315
  /* If mobile use 16px as font size */
2318
2316
  /* On iOS, font size under 16px in an input will make the page zoom into the input 🤦‍♂️ */
2319
2317
  /* https://css-tricks.com/16px-or-larger-text-prevents-ios-form-zoom/ */
2320
- @supports (-webkit-touch-callout: none) {
2321
- /* CSS specific to iOS devices */
2322
- .tlui-input {
2323
- font-size: 16px;
2318
+ @media (max-width: 600px) {
2319
+ @supports (-webkit-touch-callout: none) {
2320
+ /* CSS specific to iOS devices */
2321
+ .tlui-input {
2322
+ font-size: 16px;
2323
+ }
2324
2324
  }
2325
2325
  }
2326
2326
 
@@ -2412,31 +2412,25 @@ it from receiving any pointer events or affecting the cursor. */
2412
2412
 
2413
2413
  /* Submenu triggers */
2414
2414
 
2415
- .tlui-menu__submenu__trigger {
2416
- --gradient-angle: 90deg;
2417
- }
2418
-
2419
- .tlui-menu__submenu__trigger[data-direction='left'] {
2420
- --gradient-angle: 270deg;
2415
+ .tlui-menu__submenu__trigger[data-state='open']::after {
2416
+ opacity: 1;
2417
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
2421
2418
  }
2422
2419
 
2423
- .tlui-menu__submenu__trigger[data-state='open']::after {
2420
+ .tlui-menu__submenu__trigger[data-direction='left'][data-state='open']::after {
2424
2421
  opacity: 1;
2425
- background: linear-gradient(
2426
- var(--gradient-angle),
2427
- rgba(144, 144, 144, 0) 0%,
2428
- var(--tl-color-muted-2) 100%
2429
- );
2422
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
2430
2423
  }
2431
2424
 
2432
2425
  @media (hover: hover) {
2433
- .tlui-menu__submenu__trigger:is(:hover, [data-state='open'])::after {
2426
+ .tlui-menu__submenu__trigger[data-state='open']:not(:hover)::after {
2434
2427
  opacity: 1;
2435
- background: linear-gradient(
2436
- var(--gradient-angle),
2437
- rgba(144, 144, 144, 0) 0%,
2438
- var(--tl-color-muted-2) 100%
2439
- );
2428
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
2429
+ }
2430
+
2431
+ .tlui-menu__submenu__trigger[data-direction='left'][data-state='open']:not(:hover)::after {
2432
+ opacity: 1;
2433
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
2440
2434
  }
2441
2435
  }
2442
2436
 
@@ -2715,8 +2709,10 @@ it from receiving any pointer events or affecting the cursor. */
2715
2709
  }
2716
2710
  }
2717
2711
 
2718
- .tl-container[data-coarse='true'] .tlui-page_menu__item__submenu > .tlui-button {
2719
- opacity: 1;
2712
+ @media (any-pointer: coarse) {
2713
+ .tlui-page_menu__item__submenu > .tlui-button {
2714
+ opacity: 1;
2715
+ }
2720
2716
  }
2721
2717
 
2722
2718
  .tlui-button__icon {
@@ -2755,15 +2751,16 @@ it from receiving any pointer events or affecting the cursor. */
2755
2751
 
2756
2752
  .tlui-offline-indicator {
2757
2753
  display: flex;
2758
- color: var(--tl-color-background);
2759
- background-color: var(--tl-color-text);
2760
- border: none;
2761
- width: 32px;
2762
- height: 32px;
2754
+ flex-direction: row;
2755
+ gap: var(--tl-space-3);
2756
+ color: var(--tl-color-text);
2757
+ background-color: var(--tl-color-low);
2758
+ border: 3px solid var(--tl-color-background);
2759
+ padding: 0px var(--tl-space-5);
2760
+ height: 42px;
2763
2761
  align-items: center;
2764
2762
  justify-content: center;
2765
2763
  border-radius: 99px;
2766
- cursor: default;
2767
2764
  opacity: 0;
2768
2765
  animation: tl-fade-in;
2769
2766
  animation-duration: 0.12s;
@@ -3081,7 +3078,6 @@ tldraw? probably.
3081
3078
  position: relative;
3082
3079
  background: var(--tl-color-panel);
3083
3080
  box-shadow: var(--tl-shadow-2);
3084
- contain: layout style paint;
3085
3081
  }
3086
3082
 
3087
3083
  .tlui-main-toolbar--horizontal .tlui-main-toolbar__mobile-style-panel {