tldraw 3.15.0-canary.d3401abd19b9 → 3.15.0-canary.db14db4f5395

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 (92) hide show
  1. package/dist-cjs/index.d.ts +84 -79
  2. package/dist-cjs/index.js +30 -31
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +5 -5
  5. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  6. package/dist-cjs/lib/shapes/shared/PathBuilder.js +3 -21
  7. package/dist-cjs/lib/shapes/shared/PathBuilder.js.map +2 -2
  8. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +11 -5
  9. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  10. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +1 -11
  11. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +2 -2
  12. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js +0 -1
  13. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js.map +2 -2
  14. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +1 -2
  15. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  16. package/dist-cjs/lib/ui/components/menu-items.js +0 -16
  17. package/dist-cjs/lib/ui/components/menu-items.js.map +2 -2
  18. package/dist-cjs/lib/ui/components/primitives/TldrawUiDialog.js +1 -1
  19. package/dist-cjs/lib/ui/components/primitives/TldrawUiDialog.js.map +2 -2
  20. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +2 -5
  21. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  22. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +0 -1
  23. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  24. package/dist-cjs/lib/ui/context/actions.js +1 -28
  25. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  26. package/dist-cjs/lib/ui/context/events.js.map +2 -2
  27. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +7 -24
  28. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +2 -2
  29. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js +2 -2
  30. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js.map +2 -2
  31. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  32. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +0 -4
  33. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  34. package/dist-cjs/lib/ui/version.js +3 -3
  35. package/dist-cjs/lib/ui/version.js.map +1 -1
  36. package/dist-esm/index.d.mts +84 -79
  37. package/dist-esm/index.mjs +132 -134
  38. package/dist-esm/index.mjs.map +2 -2
  39. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +5 -5
  40. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  41. package/dist-esm/lib/shapes/shared/PathBuilder.mjs +3 -22
  42. package/dist-esm/lib/shapes/shared/PathBuilder.mjs.map +2 -2
  43. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +11 -5
  44. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  45. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +1 -11
  46. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +2 -2
  47. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs +0 -2
  48. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs.map +2 -2
  49. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +1 -2
  50. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  51. package/dist-esm/lib/ui/components/menu-items.mjs +0 -16
  52. package/dist-esm/lib/ui/components/menu-items.mjs.map +2 -2
  53. package/dist-esm/lib/ui/components/primitives/TldrawUiDialog.mjs +1 -1
  54. package/dist-esm/lib/ui/components/primitives/TldrawUiDialog.mjs.map +2 -2
  55. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +2 -5
  56. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  57. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +0 -1
  58. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  59. package/dist-esm/lib/ui/context/actions.mjs +1 -28
  60. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  61. package/dist-esm/lib/ui/context/events.mjs.map +2 -2
  62. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +7 -24
  63. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +2 -2
  64. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs +2 -2
  65. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs.map +2 -2
  66. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +0 -4
  67. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  68. package/dist-esm/lib/ui/version.mjs +3 -3
  69. package/dist-esm/lib/ui/version.mjs.map +1 -1
  70. package/package.json +3 -3
  71. package/src/index.ts +158 -159
  72. package/src/lib/shapes/frame/FrameShapeUtil.tsx +7 -5
  73. package/src/lib/shapes/shared/PathBuilder.test.tsx +1 -1
  74. package/src/lib/shapes/shared/PathBuilder.tsx +1 -35
  75. package/src/lib/shapes/text/TextShapeUtil.tsx +12 -5
  76. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +0 -8
  77. package/src/lib/ui/components/MainMenu/DefaultMainMenuContent.tsx +0 -2
  78. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +0 -1
  79. package/src/lib/ui/components/menu-items.tsx +0 -17
  80. package/src/lib/ui/components/primitives/TldrawUiDialog.tsx +1 -1
  81. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +1 -5
  82. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +0 -4
  83. package/src/lib/ui/context/actions.tsx +1 -29
  84. package/src/lib/ui/context/events.tsx +0 -2
  85. package/src/lib/ui/hooks/useClipboardEvents.ts +10 -31
  86. package/src/lib/ui/hooks/useKeyboardShortcuts.ts +2 -3
  87. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +0 -4
  88. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +0 -4
  89. package/src/lib/ui/version.ts +3 -3
  90. package/src/test/Editor.test.tsx +1 -68
  91. package/src/test/commands/clipboard.test.ts +1 -1
  92. package/src/test/editor.test.ts +77 -0
@@ -22,10 +22,10 @@ __export(version_exports, {
22
22
  version: () => version
23
23
  });
24
24
  module.exports = __toCommonJS(version_exports);
25
- const version = "3.15.0-canary.d3401abd19b9";
25
+ const version = "3.15.0-canary.db14db4f5395";
26
26
  const publishDates = {
27
27
  major: "2024-09-13T14:36:29.063Z",
28
- minor: "2025-07-10T15:17:09.923Z",
29
- patch: "2025-07-10T15:17:09.923Z"
28
+ minor: "2025-07-03T15:24:41.419Z",
29
+ patch: "2025-07-03T15:24:41.419Z"
30
30
  };
31
31
  //# sourceMappingURL=version.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/lib/ui/version.ts"],
4
- "sourcesContent": ["// This file is automatically generated by internal/scripts/refresh-assets.ts.\n// Do not edit manually. Or do, I'm a comment, not a cop.\n\nexport const version = '3.15.0-canary.d3401abd19b9'\nexport const publishDates = {\n\tmajor: '2024-09-13T14:36:29.063Z',\n\tminor: '2025-07-10T15:17:09.923Z',\n\tpatch: '2025-07-10T15:17:09.923Z',\n}\n"],
4
+ "sourcesContent": ["// This file is automatically generated by internal/scripts/refresh-assets.ts.\n// Do not edit manually. Or do, I'm a comment, not a cop.\n\nexport const version = '3.15.0-canary.db14db4f5395'\nexport const publishDates = {\n\tmajor: '2024-09-13T14:36:29.063Z',\n\tminor: '2025-07-03T15:24:41.419Z',\n\tpatch: '2025-07-03T15:24:41.419Z',\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,UAAU;AAChB,MAAM,eAAe;AAAA,EAC3B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACR;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,5 @@
1
+ /// <reference types="react" />
2
+
1
3
  import { Atom } from '@tldraw/editor';
2
4
  import { BaseBoxShapeTool } from '@tldraw/editor';
3
5
  import { BaseBoxShapeUtil } from '@tldraw/editor';
@@ -8,6 +10,7 @@ import { BindingOnShapeIsolateOptions } from '@tldraw/editor';
8
10
  import { BindingUtil } from '@tldraw/editor';
9
11
  import { Box } from '@tldraw/editor';
10
12
  import { Circle2d } from '@tldraw/editor';
13
+ import { ClipboardEvent as ClipboardEvent_2 } from 'react';
11
14
  import { ComponentType } from 'react';
12
15
  import { CSSProperties } from 'react';
13
16
  import { Editor } from '@tldraw/editor';
@@ -27,6 +30,7 @@ import { MigrationSequence } from '@tldraw/editor';
27
30
  import { NamedExoticComponent } from 'react';
28
31
  import { Node as Node_2 } from '@tiptap/pm/model';
29
32
  import { PerfectDashTerminal } from '@tldraw/editor';
33
+ import { PointerEvent as PointerEvent_2 } from 'react';
30
34
  import { Polygon2d } from '@tldraw/editor';
31
35
  import { Polyline2d } from '@tldraw/editor';
32
36
  import * as React_2 from 'react';
@@ -64,15 +68,12 @@ import { TLBookmarkShapeProps } from '@tldraw/editor';
64
68
  import { TLClickEventInfo } from '@tldraw/editor';
65
69
  import { TLContent } from '@tldraw/editor';
66
70
  import { TLCropInfo } from '@tldraw/editor';
67
- import { TLDefaultColorStyle } from '@tldraw/editor';
68
71
  import { TLDefaultColorTheme } from '@tldraw/editor';
69
72
  import { TLDefaultColorThemeColor } from '@tldraw/editor';
70
- import { TLDefaultDashStyle } from '@tldraw/editor';
71
73
  import { TLDefaultFillStyle } from '@tldraw/editor';
72
74
  import { TLDefaultFontStyle } from '@tldraw/editor';
73
75
  import { TLDefaultHorizontalAlignStyle } from '@tldraw/editor';
74
76
  import { TLDefaultSizeStyle } from '@tldraw/editor';
75
- import { TLDefaultTextAlignStyle } from '@tldraw/editor';
76
77
  import { TLDefaultVerticalAlignStyle } from '@tldraw/editor';
77
78
  import { TLDragShapesOutInfo } from '@tldraw/editor';
78
79
  import { TLDragShapesOverInfo } from '@tldraw/editor';
@@ -92,7 +93,6 @@ import { TLFrameShape } from '@tldraw/editor';
92
93
  import { TLFrameShapeProps } from '@tldraw/editor';
93
94
  import { TLGeometryOpts } from '@tldraw/editor';
94
95
  import { TLGeoShape } from '@tldraw/editor';
95
- import { TLGeoShapeGeoStyle } from '@tldraw/editor';
96
96
  import { TLGeoShapeProps } from '@tldraw/editor';
97
97
  import { TLHandle } from '@tldraw/editor';
98
98
  import { TLHandleDragInfo } from '@tldraw/editor';
@@ -106,10 +106,8 @@ import { TLImageShapeProps } from '@tldraw/editor';
106
106
  import { TLKeyboardEventInfo } from '@tldraw/editor';
107
107
  import { TLLineShape } from '@tldraw/editor';
108
108
  import { TLLineShapePoint } from '@tldraw/editor';
109
- import { TLLineShapeSplineStyle } from '@tldraw/editor';
110
109
  import { TLNoteShape } from '@tldraw/editor';
111
110
  import { TLNoteShapeProps } from '@tldraw/editor';
112
- import { TLOpacityType } from '@tldraw/editor';
113
111
  import { TLPageId } from '@tldraw/editor';
114
112
  import { TLParentId } from '@tldraw/editor';
115
113
  import { TLPointerEventInfo } from '@tldraw/editor';
@@ -405,7 +403,7 @@ export declare class BookmarkShapeUtil extends BaseBoxShapeUtil<TLBookmarkShape>
405
403
  index: IndexKey;
406
404
  isLocked: boolean;
407
405
  meta: JsonObject;
408
- opacity: TLOpacityType;
406
+ opacity: number;
409
407
  parentId: TLParentId;
410
408
  props: {
411
409
  assetId: null | TLAssetId;
@@ -424,7 +422,7 @@ export declare class BookmarkShapeUtil extends BaseBoxShapeUtil<TLBookmarkShape>
424
422
  index: IndexKey;
425
423
  isLocked: boolean;
426
424
  meta: JsonObject;
427
- opacity: TLOpacityType;
425
+ opacity: number;
428
426
  parentId: TLParentId;
429
427
  props: {
430
428
  assetId: null | TLAssetId;
@@ -1066,8 +1064,8 @@ export declare function DistributeMenuItems(): JSX_2.Element;
1066
1064
  * @public
1067
1065
  */
1068
1066
  export declare function downsizeImage(blob: Blob, width: number, height: number, opts?: {
1069
- quality?: number;
1070
- type?: string;
1067
+ quality?: number | undefined;
1068
+ type?: string | undefined;
1071
1069
  }): Promise<Blob>;
1072
1070
 
1073
1071
  /** @public */
@@ -1636,23 +1634,26 @@ export declare class GeoShapeUtil extends BaseBoxShapeUtil<TLGeoShape> {
1636
1634
  index: IndexKey;
1637
1635
  isLocked: boolean;
1638
1636
  meta: JsonObject;
1639
- opacity: TLOpacityType;
1637
+ opacity: number;
1640
1638
  parentId: TLParentId;
1641
1639
  props: {
1642
- align: TLDefaultHorizontalAlignStyle;
1643
- color: TLDefaultColorStyle;
1644
- dash: TLDefaultDashStyle;
1645
- fill: TLDefaultFillStyle;
1646
- font: TLDefaultFontStyle;
1647
- geo: TLGeoShapeGeoStyle;
1640
+ align: "end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start";
1641
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
1642
+ dash: "dashed" | "dotted" | "draw" | "solid";
1643
+ fill: "fill" | "none" | "pattern" | "semi" | "solid";
1644
+ font: "draw" | "mono" | "sans" | "serif";
1645
+ geo: "arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "check-box" | "cloud" | "diamond" | "ellipse" | "heart" | "hexagon" | "octagon" | "oval" | "pentagon" | "rectangle" | "rhombus-2" | "rhombus" | "star" | "trapezoid" | "triangle" | "x-box";
1648
1646
  growY: number;
1649
1647
  h: number;
1650
- labelColor: TLDefaultColorStyle;
1651
- richText: TLRichText;
1648
+ labelColor: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
1649
+ richText: {
1650
+ content: unknown[];
1651
+ type: string;
1652
+ };
1652
1653
  scale: number;
1653
- size: TLDefaultSizeStyle;
1654
+ size: "l" | "m" | "s" | "xl";
1654
1655
  url: string;
1655
- verticalAlign: TLDefaultVerticalAlignStyle;
1656
+ verticalAlign: "end" | "middle" | "start";
1656
1657
  w: number;
1657
1658
  };
1658
1659
  rotation: number;
@@ -1666,23 +1667,26 @@ export declare class GeoShapeUtil extends BaseBoxShapeUtil<TLGeoShape> {
1666
1667
  index: IndexKey;
1667
1668
  isLocked: boolean;
1668
1669
  meta: JsonObject;
1669
- opacity: TLOpacityType;
1670
+ opacity: number;
1670
1671
  parentId: TLParentId;
1671
1672
  props: {
1672
- align: TLDefaultHorizontalAlignStyle;
1673
- color: TLDefaultColorStyle;
1674
- dash: TLDefaultDashStyle;
1675
- fill: TLDefaultFillStyle;
1676
- font: TLDefaultFontStyle;
1677
- geo: TLGeoShapeGeoStyle;
1673
+ align: "end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start";
1674
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
1675
+ dash: "dashed" | "dotted" | "draw" | "solid";
1676
+ fill: "fill" | "none" | "pattern" | "semi" | "solid";
1677
+ font: "draw" | "mono" | "sans" | "serif";
1678
+ geo: "arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "check-box" | "cloud" | "diamond" | "ellipse" | "heart" | "hexagon" | "octagon" | "oval" | "pentagon" | "rectangle" | "rhombus-2" | "rhombus" | "star" | "trapezoid" | "triangle" | "x-box";
1678
1679
  growY: number;
1679
1680
  h: number;
1680
- labelColor: TLDefaultColorStyle;
1681
- richText: TLRichText;
1681
+ labelColor: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
1682
+ richText: {
1683
+ content: unknown[];
1684
+ type: string;
1685
+ };
1682
1686
  scale: number;
1683
- size: TLDefaultSizeStyle;
1687
+ size: "l" | "m" | "s" | "xl";
1684
1688
  url: string;
1685
- verticalAlign: TLDefaultVerticalAlignStyle;
1689
+ verticalAlign: "end" | "middle" | "start";
1686
1690
  w: number;
1687
1691
  };
1688
1692
  rotation: number;
@@ -1696,7 +1700,7 @@ export declare class GeoShapeUtil extends BaseBoxShapeUtil<TLGeoShape> {
1696
1700
  index: IndexKey;
1697
1701
  isLocked: boolean;
1698
1702
  meta: JsonObject;
1699
- opacity: TLOpacityType;
1703
+ opacity: number;
1700
1704
  parentId: TLParentId;
1701
1705
  props: {
1702
1706
  geo: "check-box";
@@ -1711,7 +1715,7 @@ export declare class GeoShapeUtil extends BaseBoxShapeUtil<TLGeoShape> {
1711
1715
  index: IndexKey;
1712
1716
  isLocked: boolean;
1713
1717
  meta: JsonObject;
1714
- opacity: TLOpacityType;
1718
+ opacity: number;
1715
1719
  parentId: TLParentId;
1716
1720
  props: {
1717
1721
  geo: "rectangle";
@@ -1929,11 +1933,11 @@ export declare class LineShapeUtil extends ShapeUtil<TLLineShape> {
1929
1933
  index: IndexKey;
1930
1934
  isLocked: boolean;
1931
1935
  meta: JsonObject;
1932
- opacity: TLOpacityType;
1936
+ opacity: number;
1933
1937
  parentId: TLParentId;
1934
1938
  props: {
1935
- color: TLDefaultColorStyle;
1936
- dash: TLDefaultDashStyle;
1939
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
1940
+ dash: "dashed" | "dotted" | "draw" | "solid";
1937
1941
  points: {
1938
1942
  [x: string]: {
1939
1943
  id: string;
@@ -1943,8 +1947,8 @@ export declare class LineShapeUtil extends ShapeUtil<TLLineShape> {
1943
1947
  } | TLLineShapePoint;
1944
1948
  };
1945
1949
  scale: number;
1946
- size: TLDefaultSizeStyle;
1947
- spline: TLLineShapeSplineStyle;
1950
+ size: "l" | "m" | "s" | "xl";
1951
+ spline: "cubic" | "line";
1948
1952
  };
1949
1953
  rotation: number;
1950
1954
  type: "line";
@@ -2022,20 +2026,23 @@ export declare class NoteShapeUtil extends ShapeUtil<TLNoteShape> {
2022
2026
  index: IndexKey;
2023
2027
  isLocked: boolean;
2024
2028
  meta: JsonObject;
2025
- opacity: TLOpacityType;
2029
+ opacity: number;
2026
2030
  parentId: TLParentId;
2027
2031
  props: {
2028
- align: TLDefaultHorizontalAlignStyle;
2029
- color: TLDefaultColorStyle;
2030
- font: TLDefaultFontStyle;
2032
+ align: "end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start";
2033
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
2034
+ font: "draw" | "mono" | "sans" | "serif";
2031
2035
  fontSizeAdjustment: number;
2032
2036
  growY: number;
2033
- labelColor: TLDefaultColorStyle;
2034
- richText: TLRichText;
2037
+ labelColor: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
2038
+ richText: {
2039
+ content: unknown[];
2040
+ type: string;
2041
+ };
2035
2042
  scale: number;
2036
- size: TLDefaultSizeStyle;
2043
+ size: "l" | "m" | "s" | "xl";
2037
2044
  url: string;
2038
- verticalAlign: TLDefaultVerticalAlignStyle;
2045
+ verticalAlign: "end" | "middle" | "start";
2039
2046
  };
2040
2047
  rotation: number;
2041
2048
  type: "note";
@@ -2048,20 +2055,23 @@ export declare class NoteShapeUtil extends ShapeUtil<TLNoteShape> {
2048
2055
  index: IndexKey;
2049
2056
  isLocked: boolean;
2050
2057
  meta: JsonObject;
2051
- opacity: TLOpacityType;
2058
+ opacity: number;
2052
2059
  parentId: TLParentId;
2053
2060
  props: {
2054
- align: TLDefaultHorizontalAlignStyle;
2055
- color: TLDefaultColorStyle;
2056
- font: TLDefaultFontStyle;
2061
+ align: "end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start";
2062
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
2063
+ font: "draw" | "mono" | "sans" | "serif";
2057
2064
  fontSizeAdjustment: number;
2058
2065
  growY: number;
2059
- labelColor: TLDefaultColorStyle;
2060
- richText: TLRichText;
2066
+ labelColor: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
2067
+ richText: {
2068
+ content: unknown[];
2069
+ type: string;
2070
+ };
2061
2071
  scale: number;
2062
- size: TLDefaultSizeStyle;
2072
+ size: "l" | "m" | "s" | "xl";
2063
2073
  url: string;
2064
- verticalAlign: TLDefaultVerticalAlignStyle;
2074
+ verticalAlign: "end" | "middle" | "start";
2065
2075
  };
2066
2076
  rotation: number;
2067
2077
  type: "note";
@@ -2146,7 +2156,6 @@ export declare class PathBuilder {
2146
2156
  circularArcTo(radius: number, largeArcFlag: boolean, sweepFlag: boolean, x2: number, y2: number, opts?: PathBuilderCommandOpts): this;
2147
2157
  arcTo(rx: number, ry: number, largeArcFlag: boolean, sweepFlag: boolean, xAxisRotationRadians: number, x2: number, y2: number, opts?: PathBuilderCommandOpts): this;
2148
2158
  cubicBezierTo(x: number, y: number, cp1X: number, cp1Y: number, cp2X: number, cp2Y: number, opts?: PathBuilderCommandOpts): this;
2149
- private cubicBezierToWithResolution;
2150
2159
  close(): this;
2151
2160
  toD(opts?: PathBuilderToDOpts): string;
2152
2161
  toSvg(opts: PathBuilderOpts): JSX_2.Element;
@@ -2585,16 +2594,19 @@ export declare class TextShapeUtil extends ShapeUtil<TLTextShape> {
2585
2594
  index: IndexKey;
2586
2595
  isLocked: boolean;
2587
2596
  meta: JsonObject;
2588
- opacity: TLOpacityType;
2597
+ opacity: number;
2589
2598
  parentId: TLParentId;
2590
2599
  props: {
2591
2600
  autoSize: boolean;
2592
- color: TLDefaultColorStyle;
2593
- font: TLDefaultFontStyle;
2594
- richText: TLRichText;
2601
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
2602
+ font: "draw" | "mono" | "sans" | "serif";
2603
+ richText: {
2604
+ content: unknown[];
2605
+ type: string;
2606
+ };
2595
2607
  scale: number;
2596
- size: TLDefaultSizeStyle;
2597
- textAlign: TLDefaultTextAlignStyle;
2608
+ size: "l" | "m" | "s" | "xl";
2609
+ textAlign: "end" | "middle" | "start";
2598
2610
  w: number;
2599
2611
  };
2600
2612
  rotation: number;
@@ -3130,7 +3142,6 @@ export declare interface TLUiActionItem<TransationKey extends string = string, I
3130
3142
  } | TransationKey;
3131
3143
  readonlyOk?: boolean;
3132
3144
  checkbox?: boolean;
3133
- isRequiredA11yAction?: boolean;
3134
3145
  onSelect(source: TLUiEventSource): Promise<void> | void;
3135
3146
  }
3136
3147
 
@@ -3517,7 +3528,6 @@ export declare interface TLUiEventMap {
3517
3528
  'toggle-paste-at-cursor': null;
3518
3529
  'toggle-lock': null;
3519
3530
  'toggle-reduce-motion': null;
3520
- 'toggle-keyboard-shortcuts': null;
3521
3531
  'toggle-edge-scrolling': null;
3522
3532
  'color-scheme': {
3523
3533
  value: string;
@@ -3542,7 +3552,6 @@ export declare interface TLUiEventMap {
3542
3552
  'copy-link': null;
3543
3553
  'image-replace': null;
3544
3554
  'video-replace': null;
3545
- 'open-kbd-shortcuts': null;
3546
3555
  'rich-text': {
3547
3556
  operation: 'bold' | 'bulletList' | 'heading' | 'link-edit' | 'link-remove' | 'link-visit' | 'link' | 'strike';
3548
3557
  };
@@ -3794,7 +3803,6 @@ export declare interface TLUiSliderProps {
3794
3803
  onValueChange(value: number): void;
3795
3804
  onHistoryMark(id: string): void;
3796
3805
  'data-testid'?: string;
3797
- ariaValueModifier?: number;
3798
3806
  }
3799
3807
 
3800
3808
  /** @public */
@@ -3922,7 +3930,7 @@ export declare interface TLUiTranslation {
3922
3930
  export declare type TLUiTranslationContextType = TLUiTranslation;
3923
3931
 
3924
3932
  /** @public */
3925
- export declare type TLUiTranslationKey = 'a11y.adjust-shape-styles' | 'a11y.enlarge-shape' | 'a11y.enter-leave-container' | 'a11y.move-shape-faster' | 'a11y.move-shape' | 'a11y.multiple-shapes' | 'a11y.open-context-menu' | 'a11y.open-keyboard-shortcuts' | 'a11y.pan-camera' | 'a11y.repeat-shape' | 'a11y.select-shape-direction' | 'a11y.select-shape' | 'a11y.shape-image' | 'a11y.shape-index' | 'a11y.shape-video' | 'a11y.shrink-shape' | 'a11y.skip-to-main-content' | 'a11y.status' | 'action.align-bottom' | 'action.align-center-horizontal.short' | 'action.align-center-horizontal' | 'action.align-center-vertical.short' | 'action.align-center-vertical' | 'action.align-left' | 'action.align-right' | 'action.align-top' | 'action.back-to-content' | 'action.bring-forward' | 'action.bring-to-front' | 'action.convert-to-bookmark' | 'action.convert-to-embed' | 'action.copy-as-png.short' | 'action.copy-as-png' | 'action.copy-as-svg.short' | 'action.copy-as-svg' | 'action.copy' | 'action.cut' | 'action.delete' | 'action.distribute-horizontal.short' | 'action.distribute-horizontal' | 'action.distribute-vertical.short' | 'action.distribute-vertical' | 'action.download-original' | 'action.duplicate' | 'action.edit-link' | 'action.exit-pen-mode' | 'action.export-all-as-png.short' | 'action.export-all-as-png' | 'action.export-all-as-svg.short' | 'action.export-all-as-svg' | 'action.export-as-png.short' | 'action.export-as-png' | 'action.export-as-svg.short' | 'action.export-as-svg' | 'action.fit-frame-to-content' | 'action.flatten-to-image' | 'action.flip-horizontal.short' | 'action.flip-horizontal' | 'action.flip-vertical.short' | 'action.flip-vertical' | 'action.fork-project-on-tldraw' | 'action.fork-project' | 'action.group' | 'action.insert-embed' | 'action.insert-media' | 'action.leave-shared-project' | 'action.new-project' | 'action.new-shared-project' | 'action.open-cursor-chat' | 'action.open-embed-link' | 'action.open-file' | 'action.open-kbd-shortcuts' | 'action.pack' | 'action.paste-error-description' | 'action.paste-error-title' | 'action.paste' | 'action.print' | 'action.redo' | 'action.remove-frame' | 'action.rename' | 'action.rotate-ccw' | 'action.rotate-cw' | 'action.save-copy' | 'action.select-all' | 'action.select-none' | 'action.send-backward' | 'action.send-to-back' | 'action.share-project' | 'action.stack-horizontal.short' | 'action.stack-horizontal' | 'action.stack-vertical.short' | 'action.stack-vertical' | 'action.stop-following' | 'action.stretch-horizontal.short' | 'action.stretch-horizontal' | 'action.stretch-vertical.short' | 'action.stretch-vertical' | 'action.toggle-auto-size' | 'action.toggle-dark-mode.menu' | 'action.toggle-dark-mode' | 'action.toggle-debug-mode.menu' | 'action.toggle-debug-mode' | 'action.toggle-dynamic-size-mode.menu' | 'action.toggle-dynamic-size-mode' | 'action.toggle-edge-scrolling.menu' | 'action.toggle-edge-scrolling' | 'action.toggle-focus-mode.menu' | 'action.toggle-focus-mode' | 'action.toggle-grid.menu' | 'action.toggle-grid' | 'action.toggle-keyboard-shortcuts.menu' | 'action.toggle-keyboard-shortcuts' | 'action.toggle-lock' | 'action.toggle-paste-at-cursor.menu' | 'action.toggle-paste-at-cursor' | 'action.toggle-reduce-motion.menu' | 'action.toggle-reduce-motion' | 'action.toggle-snap-mode.menu' | 'action.toggle-snap-mode' | 'action.toggle-tool-lock.menu' | 'action.toggle-tool-lock' | 'action.toggle-transparent.context-menu' | 'action.toggle-transparent.menu' | 'action.toggle-transparent' | 'action.toggle-wrap-mode.menu' | 'action.toggle-wrap-mode' | 'action.undo' | 'action.ungroup' | 'action.unlock-all' | 'action.zoom-in' | 'action.zoom-out' | 'action.zoom-to-100' | 'action.zoom-to-fit' | 'action.zoom-to-selection' | 'actions-menu.title' | 'align-style.end' | 'align-style.justify' | 'align-style.middle' | 'align-style.start' | 'app.loading' | 'arrow-kind-style.arc' | 'arrow-kind-style.elbow' | 'arrowheadEnd-style.arrow' | 'arrowheadEnd-style.bar' | 'arrowheadEnd-style.diamond' | 'arrowheadEnd-style.dot' | 'arrowheadEnd-style.inverted' | 'arrowheadEnd-style.none' | 'arrowheadEnd-style.pipe' | 'arrowheadEnd-style.square' | 'arrowheadEnd-style.triangle' | 'arrowheadStart-style.arrow' | 'arrowheadStart-style.bar' | 'arrowheadStart-style.diamond' | 'arrowheadStart-style.dot' | 'arrowheadStart-style.inverted' | 'arrowheadStart-style.none' | 'arrowheadStart-style.pipe' | 'arrowheadStart-style.square' | 'arrowheadStart-style.triangle' | 'assets.files.amount-too-many' | 'assets.files.size-too-big' | 'assets.files.type-not-allowed' | 'assets.files.upload-failed' | 'assets.url.failed' | 'color-style.black' | 'color-style.blue' | 'color-style.green' | 'color-style.grey' | 'color-style.light-blue' | 'color-style.light-green' | 'color-style.light-red' | 'color-style.light-violet' | 'color-style.orange' | 'color-style.red' | 'color-style.violet' | 'color-style.white' | 'color-style.yellow' | 'context-menu.arrange' | 'context-menu.copy-as' | 'context-menu.edit' | 'context-menu.export-all-as' | 'context-menu.export-as' | 'context-menu.move-to-page' | 'context-menu.reorder' | 'context-menu.title' | 'context.pages.new-page' | 'cursor-chat.type-to-chat' | 'dash-style.dashed' | 'dash-style.dotted' | 'dash-style.draw' | 'dash-style.solid' | 'document-name-menu.copy-link' | 'document.default-name' | 'edit-link-dialog.cancel' | 'edit-link-dialog.clear' | 'edit-link-dialog.detail' | 'edit-link-dialog.external-link' | 'edit-link-dialog.invalid-url' | 'edit-link-dialog.save' | 'edit-link-dialog.title' | 'edit-link-dialog.url' | 'embed-dialog.back' | 'embed-dialog.cancel' | 'embed-dialog.create' | 'embed-dialog.instruction' | 'embed-dialog.invalid-url' | 'embed-dialog.title' | 'embed-dialog.url' | 'file-system.confirm-clear.cancel' | 'file-system.confirm-clear.continue' | 'file-system.confirm-clear.description' | 'file-system.confirm-clear.dont-show-again' | 'file-system.confirm-clear.title' | 'file-system.confirm-open.cancel' | 'file-system.confirm-open.description' | 'file-system.confirm-open.dont-show-again' | 'file-system.confirm-open.open' | 'file-system.confirm-open.title' | 'file-system.file-open-error.file-format-version-too-new' | 'file-system.file-open-error.generic-corrupted-file' | 'file-system.file-open-error.not-a-tldraw-file' | 'file-system.file-open-error.title' | 'file-system.shared-document-file-open-error.description' | 'file-system.shared-document-file-open-error.title' | 'fill-style.fill' | 'fill-style.none' | 'fill-style.pattern' | 'fill-style.semi' | 'fill-style.solid' | 'focus-mode.toggle-focus-mode' | 'font-style.draw' | 'font-style.mono' | 'font-style.sans' | 'font-style.serif' | 'geo-style.arrow-down' | 'geo-style.arrow-left' | 'geo-style.arrow-right' | 'geo-style.arrow-up' | 'geo-style.check-box' | 'geo-style.cloud' | 'geo-style.diamond' | 'geo-style.ellipse' | 'geo-style.heart' | 'geo-style.hexagon' | 'geo-style.octagon' | 'geo-style.oval' | 'geo-style.pentagon' | 'geo-style.rectangle' | 'geo-style.rhombus' | 'geo-style.star' | 'geo-style.trapezoid' | 'geo-style.triangle' | 'geo-style.x-box' | 'handle.crop.bottom-left' | 'handle.crop.bottom-right' | 'handle.crop.bottom' | 'handle.crop.left' | 'handle.crop.right' | 'handle.crop.top-left' | 'handle.crop.top-right' | 'handle.crop.top' | 'handle.resize-bottom-left' | 'handle.resize-bottom-right' | 'handle.resize-bottom' | 'handle.resize-left' | 'handle.resize-right' | 'handle.resize-top-left' | 'handle.resize-top-right' | 'handle.resize-top' | 'handle.rotate.bottom_left_rotate' | 'handle.rotate.bottom_right_rotate' | 'handle.rotate.mobile_rotate' | 'handle.rotate.top_left_rotate' | 'handle.rotate.top_right_rotate' | 'help-menu.about' | 'help-menu.discord' | 'help-menu.github' | 'help-menu.import-tldr-file' | 'help-menu.keyboard-shortcuts' | 'help-menu.privacy' | 'help-menu.terms' | 'help-menu.title' | 'help-menu.twitter' | 'menu.copy-as' | 'menu.edit' | 'menu.export-as' | 'menu.file' | 'menu.language' | 'menu.preferences' | 'menu.theme' | 'menu.title' | 'menu.view' | 'navigation-zone.minimap' | 'navigation-zone.title' | 'navigation-zone.toggle-minimap' | 'navigation-zone.zoom' | 'opacity-style.0.1' | 'opacity-style.0.25' | 'opacity-style.0.5' | 'opacity-style.0.75' | 'opacity-style.1' | 'page-menu.create-new-page' | 'page-menu.edit-done' | 'page-menu.edit-start' | 'page-menu.go-to-page' | 'page-menu.max-page-count-reached' | 'page-menu.new-page-initial-name' | 'page-menu.submenu.delete' | 'page-menu.submenu.duplicate-page' | 'page-menu.submenu.move-down' | 'page-menu.submenu.move-up' | 'page-menu.submenu.rename' | 'page-menu.submenu.title' | 'page-menu.title' | 'people-menu.anonymous-user' | 'people-menu.avatar-color' | 'people-menu.change-color' | 'people-menu.change-name' | 'people-menu.follow' | 'people-menu.following' | 'people-menu.invite' | 'people-menu.leading' | 'people-menu.title' | 'people-menu.user' | 'share-menu.copied' | 'share-menu.copy-link-note' | 'share-menu.copy-link' | 'share-menu.copy-readonly-link-note' | 'share-menu.copy-readonly-link' | 'share-menu.create-snapshot-link' | 'share-menu.creating-project' | 'share-menu.fork-note' | 'share-menu.offline-note' | 'share-menu.project-too-large' | 'share-menu.save-note' | 'share-menu.share-project' | 'share-menu.snapshot-link-note' | 'share-menu.title' | 'share-menu.upload-failed' | 'sharing.confirm-leave.cancel' | 'sharing.confirm-leave.description' | 'sharing.confirm-leave.dont-show-again' | 'sharing.confirm-leave.leave' | 'sharing.confirm-leave.title' | 'shortcuts-dialog.a11y' | 'shortcuts-dialog.collaboration' | 'shortcuts-dialog.edit' | 'shortcuts-dialog.file' | 'shortcuts-dialog.preferences' | 'shortcuts-dialog.text-formatting' | 'shortcuts-dialog.title' | 'shortcuts-dialog.tools' | 'shortcuts-dialog.transform' | 'shortcuts-dialog.view' | 'size-style.l' | 'size-style.m' | 'size-style.s' | 'size-style.xl' | 'spline-style.cubic' | 'spline-style.line' | 'status.offline' | 'style-panel.align' | 'style-panel.arrow-kind' | 'style-panel.arrowhead-end' | 'style-panel.arrowhead-start' | 'style-panel.arrowheads' | 'style-panel.color' | 'style-panel.dash' | 'style-panel.fill' | 'style-panel.font' | 'style-panel.geo' | 'style-panel.label-align' | 'style-panel.mixed' | 'style-panel.opacity' | 'style-panel.position' | 'style-panel.size' | 'style-panel.spline' | 'style-panel.title' | 'style-panel.vertical-align' | 'theme.dark' | 'theme.light' | 'theme.system' | 'toast.close' | 'toast.error.copy-fail.desc' | 'toast.error.copy-fail.title' | 'toast.error.export-fail.desc' | 'toast.error.export-fail.title' | 'toast.error' | 'toast.info' | 'toast.success' | 'toast.warning' | 'tool-panel.more' | 'tool-panel.title' | 'tool.arrow-down' | 'tool.arrow-left' | 'tool.arrow-right' | 'tool.arrow-up' | 'tool.arrow' | 'tool.aspect-ratio.circle' | 'tool.aspect-ratio.landscape' | 'tool.aspect-ratio.original' | 'tool.aspect-ratio.portrait' | 'tool.aspect-ratio.square' | 'tool.aspect-ratio.wide' | 'tool.aspect-ratio' | 'tool.bookmark' | 'tool.check-box' | 'tool.cloud' | 'tool.diamond' | 'tool.draw' | 'tool.ellipse' | 'tool.embed' | 'tool.eraser' | 'tool.flip-horz' | 'tool.flip-vert' | 'tool.frame' | 'tool.hand' | 'tool.heart' | 'tool.hexagon' | 'tool.highlight' | 'tool.image-crop' | 'tool.image-toolbar-title' | 'tool.image-zoom' | 'tool.laser' | 'tool.line' | 'tool.media-alt-text-confirm' | 'tool.media-alt-text-desc' | 'tool.media-alt-text' | 'tool.media' | 'tool.note' | 'tool.octagon' | 'tool.oval' | 'tool.pentagon' | 'tool.pointer-down' | 'tool.rectangle' | 'tool.replace-media' | 'tool.rhombus' | 'tool.rich-text-bold' | 'tool.rich-text-bulletList' | 'tool.rich-text-code' | 'tool.rich-text-header' | 'tool.rich-text-highlight' | 'tool.rich-text-italic' | 'tool.rich-text-link-remove' | 'tool.rich-text-link-visit' | 'tool.rich-text-link' | 'tool.rich-text-orderedList' | 'tool.rich-text-strikethrough' | 'tool.rich-text-toolbar-title' | 'tool.rotate-cw' | 'tool.select' | 'tool.star' | 'tool.text' | 'tool.trapezoid' | 'tool.triangle' | 'tool.x-box' | 'ui.checked' | 'ui.close' | 'ui.unchecked' | 'verticalAlign-style.end' | 'verticalAlign-style.middle' | 'verticalAlign-style.start' | 'vscode.file-open.backup-failed' | 'vscode.file-open.backup-saved' | 'vscode.file-open.backup' | 'vscode.file-open.desc' | 'vscode.file-open.dont-show-again' | 'vscode.file-open.open';
3933
+ export declare type TLUiTranslationKey = 'a11y.adjust-shape-styles' | 'a11y.enlarge-shape' | 'a11y.enter-leave-container' | 'a11y.move-shape-faster' | 'a11y.move-shape' | 'a11y.multiple-shapes' | 'a11y.open-context-menu' | 'a11y.pan-camera' | 'a11y.repeat-shape' | 'a11y.select-shape-direction' | 'a11y.select-shape' | 'a11y.shape-image' | 'a11y.shape-index' | 'a11y.shape-video' | 'a11y.shrink-shape' | 'a11y.skip-to-main-content' | 'a11y.status' | 'action.align-bottom' | 'action.align-center-horizontal.short' | 'action.align-center-horizontal' | 'action.align-center-vertical.short' | 'action.align-center-vertical' | 'action.align-left' | 'action.align-right' | 'action.align-top' | 'action.back-to-content' | 'action.bring-forward' | 'action.bring-to-front' | 'action.convert-to-bookmark' | 'action.convert-to-embed' | 'action.copy-as-png.short' | 'action.copy-as-png' | 'action.copy-as-svg.short' | 'action.copy-as-svg' | 'action.copy' | 'action.cut' | 'action.delete' | 'action.distribute-horizontal.short' | 'action.distribute-horizontal' | 'action.distribute-vertical.short' | 'action.distribute-vertical' | 'action.download-original' | 'action.duplicate' | 'action.edit-link' | 'action.exit-pen-mode' | 'action.export-all-as-png.short' | 'action.export-all-as-png' | 'action.export-all-as-svg.short' | 'action.export-all-as-svg' | 'action.export-as-png.short' | 'action.export-as-png' | 'action.export-as-svg.short' | 'action.export-as-svg' | 'action.fit-frame-to-content' | 'action.flatten-to-image' | 'action.flip-horizontal.short' | 'action.flip-horizontal' | 'action.flip-vertical.short' | 'action.flip-vertical' | 'action.fork-project-on-tldraw' | 'action.fork-project' | 'action.group' | 'action.insert-embed' | 'action.insert-media' | 'action.leave-shared-project' | 'action.new-project' | 'action.new-shared-project' | 'action.open-cursor-chat' | 'action.open-embed-link' | 'action.open-file' | 'action.pack' | 'action.paste-error-description' | 'action.paste-error-title' | 'action.paste' | 'action.print' | 'action.redo' | 'action.remove-frame' | 'action.rename' | 'action.rotate-ccw' | 'action.rotate-cw' | 'action.save-copy' | 'action.select-all' | 'action.select-none' | 'action.send-backward' | 'action.send-to-back' | 'action.share-project' | 'action.stack-horizontal.short' | 'action.stack-horizontal' | 'action.stack-vertical.short' | 'action.stack-vertical' | 'action.stop-following' | 'action.stretch-horizontal.short' | 'action.stretch-horizontal' | 'action.stretch-vertical.short' | 'action.stretch-vertical' | 'action.toggle-auto-size' | 'action.toggle-dark-mode.menu' | 'action.toggle-dark-mode' | 'action.toggle-debug-mode.menu' | 'action.toggle-debug-mode' | 'action.toggle-dynamic-size-mode.menu' | 'action.toggle-dynamic-size-mode' | 'action.toggle-edge-scrolling.menu' | 'action.toggle-edge-scrolling' | 'action.toggle-focus-mode.menu' | 'action.toggle-focus-mode' | 'action.toggle-grid.menu' | 'action.toggle-grid' | 'action.toggle-lock' | 'action.toggle-paste-at-cursor.menu' | 'action.toggle-paste-at-cursor' | 'action.toggle-reduce-motion.menu' | 'action.toggle-reduce-motion' | 'action.toggle-snap-mode.menu' | 'action.toggle-snap-mode' | 'action.toggle-tool-lock.menu' | 'action.toggle-tool-lock' | 'action.toggle-transparent.context-menu' | 'action.toggle-transparent.menu' | 'action.toggle-transparent' | 'action.toggle-wrap-mode.menu' | 'action.toggle-wrap-mode' | 'action.undo' | 'action.ungroup' | 'action.unlock-all' | 'action.zoom-in' | 'action.zoom-out' | 'action.zoom-to-100' | 'action.zoom-to-fit' | 'action.zoom-to-selection' | 'actions-menu.title' | 'align-style.end' | 'align-style.justify' | 'align-style.middle' | 'align-style.start' | 'app.loading' | 'arrow-kind-style.arc' | 'arrow-kind-style.elbow' | 'arrowheadEnd-style.arrow' | 'arrowheadEnd-style.bar' | 'arrowheadEnd-style.diamond' | 'arrowheadEnd-style.dot' | 'arrowheadEnd-style.inverted' | 'arrowheadEnd-style.none' | 'arrowheadEnd-style.pipe' | 'arrowheadEnd-style.square' | 'arrowheadEnd-style.triangle' | 'arrowheadStart-style.arrow' | 'arrowheadStart-style.bar' | 'arrowheadStart-style.diamond' | 'arrowheadStart-style.dot' | 'arrowheadStart-style.inverted' | 'arrowheadStart-style.none' | 'arrowheadStart-style.pipe' | 'arrowheadStart-style.square' | 'arrowheadStart-style.triangle' | 'assets.files.amount-too-many' | 'assets.files.size-too-big' | 'assets.files.type-not-allowed' | 'assets.files.upload-failed' | 'assets.url.failed' | 'color-style.black' | 'color-style.blue' | 'color-style.green' | 'color-style.grey' | 'color-style.light-blue' | 'color-style.light-green' | 'color-style.light-red' | 'color-style.light-violet' | 'color-style.orange' | 'color-style.red' | 'color-style.violet' | 'color-style.white' | 'color-style.yellow' | 'context-menu.arrange' | 'context-menu.copy-as' | 'context-menu.edit' | 'context-menu.export-all-as' | 'context-menu.export-as' | 'context-menu.move-to-page' | 'context-menu.reorder' | 'context-menu.title' | 'context.pages.new-page' | 'cursor-chat.type-to-chat' | 'dash-style.dashed' | 'dash-style.dotted' | 'dash-style.draw' | 'dash-style.solid' | 'document-name-menu.copy-link' | 'document.default-name' | 'edit-link-dialog.cancel' | 'edit-link-dialog.clear' | 'edit-link-dialog.detail' | 'edit-link-dialog.external-link' | 'edit-link-dialog.invalid-url' | 'edit-link-dialog.save' | 'edit-link-dialog.title' | 'edit-link-dialog.url' | 'embed-dialog.back' | 'embed-dialog.cancel' | 'embed-dialog.create' | 'embed-dialog.instruction' | 'embed-dialog.invalid-url' | 'embed-dialog.title' | 'embed-dialog.url' | 'file-system.confirm-clear.cancel' | 'file-system.confirm-clear.continue' | 'file-system.confirm-clear.description' | 'file-system.confirm-clear.dont-show-again' | 'file-system.confirm-clear.title' | 'file-system.confirm-open.cancel' | 'file-system.confirm-open.description' | 'file-system.confirm-open.dont-show-again' | 'file-system.confirm-open.open' | 'file-system.confirm-open.title' | 'file-system.file-open-error.file-format-version-too-new' | 'file-system.file-open-error.generic-corrupted-file' | 'file-system.file-open-error.not-a-tldraw-file' | 'file-system.file-open-error.title' | 'file-system.shared-document-file-open-error.description' | 'file-system.shared-document-file-open-error.title' | 'fill-style.fill' | 'fill-style.none' | 'fill-style.pattern' | 'fill-style.semi' | 'fill-style.solid' | 'focus-mode.toggle-focus-mode' | 'font-style.draw' | 'font-style.mono' | 'font-style.sans' | 'font-style.serif' | 'geo-style.arrow-down' | 'geo-style.arrow-left' | 'geo-style.arrow-right' | 'geo-style.arrow-up' | 'geo-style.check-box' | 'geo-style.cloud' | 'geo-style.diamond' | 'geo-style.ellipse' | 'geo-style.heart' | 'geo-style.hexagon' | 'geo-style.octagon' | 'geo-style.oval' | 'geo-style.pentagon' | 'geo-style.rectangle' | 'geo-style.rhombus' | 'geo-style.star' | 'geo-style.trapezoid' | 'geo-style.triangle' | 'geo-style.x-box' | 'handle.crop.bottom-left' | 'handle.crop.bottom-right' | 'handle.crop.bottom' | 'handle.crop.left' | 'handle.crop.right' | 'handle.crop.top-left' | 'handle.crop.top-right' | 'handle.crop.top' | 'handle.resize-bottom-left' | 'handle.resize-bottom-right' | 'handle.resize-bottom' | 'handle.resize-left' | 'handle.resize-right' | 'handle.resize-top-left' | 'handle.resize-top-right' | 'handle.resize-top' | 'handle.rotate.bottom_left_rotate' | 'handle.rotate.bottom_right_rotate' | 'handle.rotate.mobile_rotate' | 'handle.rotate.top_left_rotate' | 'handle.rotate.top_right_rotate' | 'help-menu.about' | 'help-menu.discord' | 'help-menu.github' | 'help-menu.import-tldr-file' | 'help-menu.keyboard-shortcuts' | 'help-menu.privacy' | 'help-menu.terms' | 'help-menu.title' | 'help-menu.twitter' | 'menu.copy-as' | 'menu.edit' | 'menu.export-as' | 'menu.file' | 'menu.language' | 'menu.preferences' | 'menu.theme' | 'menu.title' | 'menu.view' | 'navigation-zone.minimap' | 'navigation-zone.title' | 'navigation-zone.toggle-minimap' | 'navigation-zone.zoom' | 'opacity-style.0.1' | 'opacity-style.0.25' | 'opacity-style.0.5' | 'opacity-style.0.75' | 'opacity-style.1' | 'page-menu.create-new-page' | 'page-menu.edit-done' | 'page-menu.edit-start' | 'page-menu.go-to-page' | 'page-menu.max-page-count-reached' | 'page-menu.new-page-initial-name' | 'page-menu.submenu.delete' | 'page-menu.submenu.duplicate-page' | 'page-menu.submenu.move-down' | 'page-menu.submenu.move-up' | 'page-menu.submenu.rename' | 'page-menu.submenu.title' | 'page-menu.title' | 'people-menu.anonymous-user' | 'people-menu.avatar-color' | 'people-menu.change-color' | 'people-menu.change-name' | 'people-menu.follow' | 'people-menu.following' | 'people-menu.invite' | 'people-menu.leading' | 'people-menu.title' | 'people-menu.user' | 'share-menu.copied' | 'share-menu.copy-link-note' | 'share-menu.copy-link' | 'share-menu.copy-readonly-link-note' | 'share-menu.copy-readonly-link' | 'share-menu.create-snapshot-link' | 'share-menu.creating-project' | 'share-menu.fork-note' | 'share-menu.offline-note' | 'share-menu.project-too-large' | 'share-menu.save-note' | 'share-menu.share-project' | 'share-menu.snapshot-link-note' | 'share-menu.title' | 'share-menu.upload-failed' | 'sharing.confirm-leave.cancel' | 'sharing.confirm-leave.description' | 'sharing.confirm-leave.dont-show-again' | 'sharing.confirm-leave.leave' | 'sharing.confirm-leave.title' | 'shortcuts-dialog.a11y' | 'shortcuts-dialog.collaboration' | 'shortcuts-dialog.edit' | 'shortcuts-dialog.file' | 'shortcuts-dialog.preferences' | 'shortcuts-dialog.text-formatting' | 'shortcuts-dialog.title' | 'shortcuts-dialog.tools' | 'shortcuts-dialog.transform' | 'shortcuts-dialog.view' | 'size-style.l' | 'size-style.m' | 'size-style.s' | 'size-style.xl' | 'spline-style.cubic' | 'spline-style.line' | 'status.offline' | 'style-panel.align' | 'style-panel.arrow-kind' | 'style-panel.arrowhead-end' | 'style-panel.arrowhead-start' | 'style-panel.arrowheads' | 'style-panel.color' | 'style-panel.dash' | 'style-panel.fill' | 'style-panel.font' | 'style-panel.geo' | 'style-panel.label-align' | 'style-panel.mixed' | 'style-panel.opacity' | 'style-panel.position' | 'style-panel.size' | 'style-panel.spline' | 'style-panel.title' | 'style-panel.vertical-align' | 'theme.dark' | 'theme.light' | 'theme.system' | 'toast.close' | 'toast.error.copy-fail.desc' | 'toast.error.copy-fail.title' | 'toast.error.export-fail.desc' | 'toast.error.export-fail.title' | 'toast.error' | 'toast.info' | 'toast.success' | 'toast.warning' | 'tool-panel.more' | 'tool-panel.title' | 'tool.arrow-down' | 'tool.arrow-left' | 'tool.arrow-right' | 'tool.arrow-up' | 'tool.arrow' | 'tool.aspect-ratio.circle' | 'tool.aspect-ratio.landscape' | 'tool.aspect-ratio.original' | 'tool.aspect-ratio.portrait' | 'tool.aspect-ratio.square' | 'tool.aspect-ratio.wide' | 'tool.aspect-ratio' | 'tool.bookmark' | 'tool.check-box' | 'tool.cloud' | 'tool.diamond' | 'tool.draw' | 'tool.ellipse' | 'tool.embed' | 'tool.eraser' | 'tool.flip-horz' | 'tool.flip-vert' | 'tool.frame' | 'tool.hand' | 'tool.heart' | 'tool.hexagon' | 'tool.highlight' | 'tool.image-crop' | 'tool.image-toolbar-title' | 'tool.image-zoom' | 'tool.laser' | 'tool.line' | 'tool.media-alt-text-confirm' | 'tool.media-alt-text-desc' | 'tool.media-alt-text' | 'tool.media' | 'tool.note' | 'tool.octagon' | 'tool.oval' | 'tool.pentagon' | 'tool.pointer-down' | 'tool.rectangle' | 'tool.replace-media' | 'tool.rhombus' | 'tool.rich-text-bold' | 'tool.rich-text-bulletList' | 'tool.rich-text-code' | 'tool.rich-text-header' | 'tool.rich-text-highlight' | 'tool.rich-text-italic' | 'tool.rich-text-link-remove' | 'tool.rich-text-link-visit' | 'tool.rich-text-link' | 'tool.rich-text-orderedList' | 'tool.rich-text-strikethrough' | 'tool.rich-text-toolbar-title' | 'tool.rotate-cw' | 'tool.select' | 'tool.star' | 'tool.text' | 'tool.trapezoid' | 'tool.triangle' | 'tool.x-box' | 'ui.checked' | 'ui.close' | 'ui.unchecked' | 'verticalAlign-style.end' | 'verticalAlign-style.middle' | 'verticalAlign-style.start' | 'vscode.file-open.backup-failed' | 'vscode.file-open.backup-saved' | 'vscode.file-open.backup' | 'vscode.file-open.desc' | 'vscode.file-open.dont-show-again' | 'vscode.file-open.open';
3926
3934
 
3927
3935
  /** @public */
3928
3936
  export declare interface TLUiTranslationProviderProps {
@@ -4034,9 +4042,6 @@ export declare function ToggleFocusModeItem(): JSX_2.Element;
4034
4042
  /** @public @react */
4035
4043
  export declare function ToggleGridItem(): JSX_2.Element;
4036
4044
 
4037
- /** @public @react */
4038
- export declare function ToggleKeyboardShortcutsItem(): JSX_2.Element;
4039
-
4040
4045
  /** @public @react */
4041
4046
  export declare function ToggleLockMenuItem(): JSX_2.Element | null;
4042
4047
 
@@ -4144,10 +4149,10 @@ export declare function useDefaultColorTheme(): {
4144
4149
  /** @public */
4145
4150
  export declare function useDefaultHelpers(): {
4146
4151
  addDialog: (dialog: Omit<TLUiDialog, "id"> & {
4147
- id?: string;
4152
+ id?: string | undefined;
4148
4153
  }) => string;
4149
4154
  addToast: (toast: Omit<TLUiToast, "id"> & {
4150
- id?: string;
4155
+ id?: string | undefined;
4151
4156
  }) => string;
4152
4157
  clearDialogs: () => void;
4153
4158
  clearToasts: () => void;
@@ -4158,11 +4163,11 @@ export declare function useDefaultHelpers(): {
4158
4163
  getEmbedDefinition: (url: string) => TLEmbedResult;
4159
4164
  insertMedia: () => Promise<void>;
4160
4165
  isMobile: boolean;
4161
- msg: (id?: Exclude<string, TLUiTranslationKey> | string) => string;
4162
- paste: (data: ClipboardItem[] | DataTransfer, source: TLUiEventSource, point?: VecLike) => Promise<void>;
4166
+ msg: (id?: string | undefined) => string;
4167
+ paste: (data: ClipboardItem[] | DataTransfer, source: TLUiEventSource, point?: VecLike | undefined) => Promise<void>;
4163
4168
  printSelectionOrPages: () => Promise<void>;
4164
4169
  removeDialog: (id: string) => string;
4165
- removeToast: (id: TLUiToast["id"]) => string;
4170
+ removeToast: (id: string) => string;
4166
4171
  replaceImage: () => Promise<void>;
4167
4172
  replaceVideo: () => Promise<void>;
4168
4173
  };
@@ -4178,7 +4183,7 @@ export declare function useEditablePlainText(shapeId: TLShapeId, type: string, t
4178
4183
  }) => void;
4179
4184
  handleDoubleClick: (e: any) => any;
4180
4185
  handleFocus: () => void;
4181
- handleInputPointerDown: (e: React_3.PointerEvent) => void;
4186
+ handleInputPointerDown: (e: React_3.PointerEvent<Element>) => void;
4182
4187
  handleKeyDown: (e: KeyboardEvent) => void;
4183
4188
  handlePaste: (e: ClipboardEvent | React_3.ClipboardEvent<HTMLTextAreaElement>) => void;
4184
4189
  isEditing: boolean;
@@ -4195,9 +4200,9 @@ export declare function useEditableRichText(shapeId: TLShapeId, type: string, ri
4195
4200
  }) => void;
4196
4201
  handleDoubleClick: (e: any) => any;
4197
4202
  handleFocus: () => void;
4198
- handleInputPointerDown: (e: React.PointerEvent) => void;
4203
+ handleInputPointerDown: (e: PointerEvent_2<Element>) => void;
4199
4204
  handleKeyDown: (e: KeyboardEvent) => void;
4200
- handlePaste: (e: ClipboardEvent | React.ClipboardEvent<HTMLTextAreaElement>) => void;
4205
+ handlePaste: (e: ClipboardEvent | ClipboardEvent_2<HTMLTextAreaElement>) => void;
4201
4206
  isEditing: boolean;
4202
4207
  isEmpty: boolean | undefined;
4203
4208
  isReadyForEditing: boolean;
@@ -4356,7 +4361,7 @@ export declare class ZoomTool extends StateNode {
4356
4361
  static children(): TLStateNodeConstructor[];
4357
4362
  static isLockable: boolean;
4358
4363
  info: TLPointerEventInfo & {
4359
- onInteractionEnd?: string;
4364
+ onInteractionEnd?: string | undefined;
4360
4365
  };
4361
4366
  onEnter(info: TLPointerEventInfo & {
4362
4367
  onInteractionEnd: string;