@tldraw/editor 3.15.0-canary.db14db4f5395 → 3.15.0-canary.fc319eb96b77

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 (77) hide show
  1. package/dist-cjs/index.d.ts +49 -41
  2. package/dist-cjs/index.js +18 -16
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/config/TLUserPreferences.js +7 -1
  5. package/dist-cjs/lib/config/TLUserPreferences.js.map +2 -2
  6. package/dist-cjs/lib/editor/Editor.js +20 -2
  7. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  8. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js +96 -101
  9. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js.map +2 -2
  10. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js +7 -2
  11. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +2 -2
  12. package/dist-cjs/lib/primitives/geometry/Arc2d.js +1 -1
  13. package/dist-cjs/lib/primitives/geometry/Arc2d.js.map +2 -2
  14. package/dist-cjs/lib/primitives/geometry/Circle2d.js +1 -1
  15. package/dist-cjs/lib/primitives/geometry/Circle2d.js.map +2 -2
  16. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js +3 -1
  17. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js.map +2 -2
  18. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js +1 -1
  19. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js.map +2 -2
  20. package/dist-cjs/lib/primitives/geometry/geometry-constants.js +2 -2
  21. package/dist-cjs/lib/primitives/geometry/geometry-constants.js.map +2 -2
  22. package/dist-cjs/lib/primitives/intersect.js +4 -4
  23. package/dist-cjs/lib/primitives/intersect.js.map +2 -2
  24. package/dist-cjs/lib/primitives/utils.js +4 -0
  25. package/dist-cjs/lib/primitives/utils.js.map +2 -2
  26. package/dist-cjs/lib/utils/sync/TLLocalSyncClient.js +0 -1
  27. package/dist-cjs/lib/utils/sync/TLLocalSyncClient.js.map +2 -2
  28. package/dist-cjs/version.js +3 -3
  29. package/dist-cjs/version.js.map +1 -1
  30. package/dist-esm/index.d.mts +49 -41
  31. package/dist-esm/index.mjs +43 -41
  32. package/dist-esm/index.mjs.map +2 -2
  33. package/dist-esm/lib/config/TLUserPreferences.mjs +7 -1
  34. package/dist-esm/lib/config/TLUserPreferences.mjs.map +2 -2
  35. package/dist-esm/lib/editor/Editor.mjs +20 -2
  36. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  37. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs +96 -101
  38. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +2 -2
  39. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs +7 -2
  40. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +2 -2
  41. package/dist-esm/lib/primitives/geometry/Arc2d.mjs +2 -2
  42. package/dist-esm/lib/primitives/geometry/Arc2d.mjs.map +2 -2
  43. package/dist-esm/lib/primitives/geometry/Circle2d.mjs +2 -2
  44. package/dist-esm/lib/primitives/geometry/Circle2d.mjs.map +2 -2
  45. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs +3 -1
  46. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs.map +2 -2
  47. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs +2 -2
  48. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs.map +2 -2
  49. package/dist-esm/lib/primitives/geometry/geometry-constants.mjs +2 -2
  50. package/dist-esm/lib/primitives/geometry/geometry-constants.mjs.map +2 -2
  51. package/dist-esm/lib/primitives/intersect.mjs +5 -5
  52. package/dist-esm/lib/primitives/intersect.mjs.map +2 -2
  53. package/dist-esm/lib/primitives/utils.mjs +4 -0
  54. package/dist-esm/lib/primitives/utils.mjs.map +2 -2
  55. package/dist-esm/lib/utils/sync/TLLocalSyncClient.mjs +0 -1
  56. package/dist-esm/lib/utils/sync/TLLocalSyncClient.mjs.map +2 -2
  57. package/dist-esm/version.mjs +3 -3
  58. package/dist-esm/version.mjs.map +1 -1
  59. package/package.json +7 -7
  60. package/src/index.ts +63 -62
  61. package/src/lib/config/TLUserPreferences.ts +7 -0
  62. package/src/lib/editor/Editor.test.ts +407 -0
  63. package/src/lib/editor/Editor.ts +29 -4
  64. package/src/lib/editor/managers/TextManager/TextManager.ts +108 -128
  65. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +21 -0
  66. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.ts +8 -0
  67. package/src/lib/license/LicenseManager.test.ts +1 -1
  68. package/src/lib/primitives/geometry/Arc2d.ts +2 -2
  69. package/src/lib/primitives/geometry/Circle2d.ts +2 -2
  70. package/src/lib/primitives/geometry/CubicBezier2d.ts +4 -1
  71. package/src/lib/primitives/geometry/Ellipse2d.ts +2 -2
  72. package/src/lib/primitives/geometry/geometry-constants.ts +2 -1
  73. package/src/lib/primitives/intersect.test.ts +946 -0
  74. package/src/lib/primitives/intersect.ts +12 -5
  75. package/src/lib/primitives/utils.ts +11 -0
  76. package/src/lib/utils/sync/TLLocalSyncClient.ts +0 -1
  77. package/src/version.ts +3 -3
@@ -1,5 +1,3 @@
1
- /// <reference types="react" />
2
-
3
1
  import { Atom } from '@tldraw/state';
4
2
  import { BoxModel } from '@tldraw/tlschema';
5
3
  import { ComponentType } from 'react';
@@ -19,8 +17,8 @@ import { NamedExoticComponent } from 'react';
19
17
  import { Node as Node_2 } from '@tiptap/pm/model';
20
18
  import { PerformanceTracker } from '@tldraw/utils';
21
19
  import { PointerEventHandler } from 'react';
22
- import { default as React_2 } from 'react';
23
- import * as React_3 from 'react';
20
+ import * as React_2 from 'react';
21
+ import { default as React_3 } from 'react';
24
22
  import { ReactElement } from 'react';
25
23
  import { ReactNode } from 'react';
26
24
  import { RecordProps } from '@tldraw/tlschema';
@@ -59,6 +57,7 @@ import { TLImageAsset } from '@tldraw/tlschema';
59
57
  import { TLInstance } from '@tldraw/tlschema';
60
58
  import { TLInstancePageState } from '@tldraw/tlschema';
61
59
  import { TLInstancePresence } from '@tldraw/tlschema';
60
+ import { TLOpacityType } from '@tldraw/tlschema';
62
61
  import { TLPage } from '@tldraw/tlschema';
63
62
  import { TLPageId } from '@tldraw/tlschema';
64
63
  import { TLParentId } from '@tldraw/tlschema';
@@ -716,8 +715,8 @@ export declare function createTLStore({ initialData, defaultName, id, assets, on
716
715
 
717
716
  /** @public */
718
717
  export declare function createTLUser(opts?: {
719
- setUserPreferences?: ((userPreferences: TLUserPreferences) => void) | undefined;
720
- userPreferences?: Signal<TLUserPreferences, unknown> | undefined;
718
+ setUserPreferences?: (userPreferences: TLUserPreferences) => void;
719
+ userPreferences?: Signal<TLUserPreferences>;
721
720
  }): TLUser;
722
721
 
723
722
  /** @public */
@@ -726,10 +725,12 @@ export declare class CubicBezier2d extends Polyline2d {
726
725
  private _b;
727
726
  private _c;
728
727
  private _d;
728
+ private _resolution;
729
729
  constructor(config: Omit<Geometry2dOptions, 'isClosed' | 'isFilled'> & {
730
730
  cp1: Vec;
731
731
  cp2: Vec;
732
732
  end: Vec;
733
+ resolution?: number;
733
734
  start: Vec;
734
735
  });
735
736
  getVertices(): Vec[];
@@ -848,7 +849,7 @@ export declare const defaultTldrawOptions: {
848
849
  readonly edgeScrollSpeed: 25;
849
850
  readonly enableToolbarKeyboardShortcuts: true;
850
851
  readonly exportProvider: ExoticComponent< {
851
- children?: ReactNode;
852
+ children?: ReactNode | undefined;
852
853
  }>;
853
854
  readonly flattenImageBoundsExpand: 64;
854
855
  readonly flattenImageBoundsPadding: 16;
@@ -888,6 +889,7 @@ export declare const defaultTldrawOptions: {
888
889
  /** @public */
889
890
  export declare const defaultUserPreferences: Readonly<{
890
891
  animationSpeed: 0 | 1;
892
+ areKeyboardShortcutsEnabled: true;
891
893
  color: "#02B1CC" | "#11B3A3" | "#39B178" | "#55B467" | "#7B66DC" | "#9D5BD2" | "#BD54C6" | "#E34BA9" | "#EC5E41" | "#F04F88" | "#F2555A" | "#FF802B";
892
894
  colorScheme: "light";
893
895
  edgeScrollSpeed: 1;
@@ -1018,8 +1020,8 @@ export declare class Editor extends EventEmitter<TLEventMap> {
1018
1020
  readonly timers: {
1019
1021
  dispose: () => void;
1020
1022
  requestAnimationFrame: (callback: FrameRequestCallback) => number;
1021
- setInterval: (handler: TimerHandler, timeout?: number | undefined, ...args: any[]) => number;
1022
- setTimeout: (handler: TimerHandler, timeout?: number | undefined, ...args: any[]) => number;
1023
+ setInterval: (handler: TimerHandler, timeout?: number, ...args: any[]) => number;
1024
+ setTimeout: (handler: TimerHandler, timeout?: number, ...args: any[]) => number;
1023
1025
  };
1024
1026
  /**
1025
1027
  * A manager for the user and their preferences.
@@ -1553,7 +1555,9 @@ export declare class Editor extends EventEmitter<TLEventMap> {
1553
1555
  */
1554
1556
  deselect(...shapes: TLShape[] | TLShapeId[]): this;
1555
1557
  /**
1556
- * Select all direct children of the current page.
1558
+ * Select all shapes. If the user has selected shapes that share a parent,
1559
+ * select all shapes within that parent. If the user has not selected any shapes,
1560
+ * or if the shapes shapes are only on select all shapes on the current page.
1557
1561
  *
1558
1562
  * @example
1559
1563
  * ```ts
@@ -2068,10 +2072,10 @@ export declare class Editor extends EventEmitter<TLEventMap> {
2068
2072
  */
2069
2073
  slideCamera(opts?: {
2070
2074
  direction: VecLike;
2071
- force?: boolean | undefined;
2072
- friction?: number | undefined;
2075
+ force?: boolean;
2076
+ friction?: number;
2073
2077
  speed: number;
2074
- speedThreshold?: number | undefined;
2078
+ speedThreshold?: number;
2075
2079
  }): this;
2076
2080
  /**
2077
2081
  * Animate the camera to a user's cursor position. This also briefly show the user's cursor if it's not currently visible.
@@ -2683,12 +2687,12 @@ export declare class Editor extends EventEmitter<TLEventMap> {
2683
2687
  */
2684
2688
  getShapeAtPoint(point: VecLike, opts?: {
2685
2689
  filter?(shape: TLShape): boolean;
2686
- hitFrameInside?: boolean | undefined;
2687
- hitInside?: boolean | undefined;
2688
- hitLabels?: boolean | undefined;
2689
- hitLocked?: boolean | undefined;
2690
- margin?: number | undefined;
2691
- renderingOnly?: boolean | undefined;
2690
+ hitFrameInside?: boolean;
2691
+ hitInside?: boolean;
2692
+ hitLabels?: boolean;
2693
+ hitLocked?: boolean;
2694
+ margin?: number;
2695
+ renderingOnly?: boolean;
2692
2696
  }): TLShape | undefined;
2693
2697
  /**
2694
2698
  * Get the shapes, if any, at a given page point.
@@ -2707,8 +2711,8 @@ export declare class Editor extends EventEmitter<TLEventMap> {
2707
2711
  * @public
2708
2712
  */
2709
2713
  getShapesAtPoint(point: VecLike, opts?: {
2710
- hitInside?: boolean | undefined;
2711
- margin?: number | undefined;
2714
+ hitInside?: boolean;
2715
+ margin?: number;
2712
2716
  }): TLShape[];
2713
2717
  /**
2714
2718
  * Test whether a point (in the current page space) will will a shape. This method takes into account masks,
@@ -2726,8 +2730,8 @@ export declare class Editor extends EventEmitter<TLEventMap> {
2726
2730
  * @public
2727
2731
  */
2728
2732
  isPointInShape(shape: TLShape | TLShapeId, point: VecLike, opts?: {
2729
- hitInside?: boolean | undefined;
2730
- margin?: number | undefined;
2733
+ hitInside?: boolean;
2734
+ margin?: number;
2731
2735
  }): boolean;
2732
2736
  /**
2733
2737
  * Convert a point in the current page space to a point in the local space of a shape. For example, if a
@@ -4013,7 +4017,7 @@ export declare class Editor extends EventEmitter<TLEventMap> {
4013
4017
  }
4014
4018
 
4015
4019
  /** @public */
4016
- export declare const EditorContext: React_2.Context<Editor | null>;
4020
+ export declare const EditorContext: React_3.Context<Editor | null>;
4017
4021
 
4018
4022
  /** @public @react */
4019
4023
  export declare function EditorProvider({ editor, children }: EditorProviderProps): JSX_2.Element;
@@ -4021,7 +4025,7 @@ export declare function EditorProvider({ editor, children }: EditorProviderProps
4021
4025
  /** @public */
4022
4026
  export declare interface EditorProviderProps {
4023
4027
  editor: Editor;
4024
- children: React_2.ReactNode;
4028
+ children: React_3.ReactNode;
4025
4029
  }
4026
4030
 
4027
4031
  /** @public */
@@ -4047,7 +4051,7 @@ export declare class Ellipse2d extends Geometry2d {
4047
4051
  }
4048
4052
 
4049
4053
  /** @public */
4050
- export declare class ErrorBoundary extends React_3.Component<React_3.PropsWithRef<React_3.PropsWithChildren<TLErrorBoundaryProps>>, {
4054
+ export declare class ErrorBoundary extends React_2.Component<React_2.PropsWithRef<React_2.PropsWithChildren<TLErrorBoundaryProps>>, {
4051
4055
  error: Error | null;
4052
4056
  }> {
4053
4057
  static getDerivedStateFromError(error: Error): {
@@ -4057,7 +4061,7 @@ export declare class ErrorBoundary extends React_3.Component<React_3.PropsWithRe
4057
4061
  error: null;
4058
4062
  };
4059
4063
  componentDidCatch(error: unknown): void;
4060
- render(): boolean | JSX_2.Element | Iterable<React_3.ReactNode> | null | number | string | undefined;
4064
+ render(): boolean | JSX_2.Element | Iterable<React_2.ReactNode> | null | number | string | undefined;
4061
4065
  }
4062
4066
 
4063
4067
  /** @public @react */
@@ -4318,6 +4322,8 @@ export declare function getSvgPathFromPoints(points: VecLike[], closed?: boolean
4318
4322
  /** @public */
4319
4323
  export declare function getUserPreferences(): TLUserPreferences;
4320
4324
 
4325
+ /* Excluded from this release type: getVerticesCountForArcLength */
4326
+
4321
4327
  /** @public */
4322
4328
  export declare class Group2d extends Geometry2d {
4323
4329
  children: Geometry2d[];
@@ -4461,7 +4467,7 @@ export declare class HistoryManager<R extends UnknownRecord> {
4461
4467
  export declare function HTMLContainer({ children, className, ...rest }: HTMLContainerProps): JSX_2.Element;
4462
4468
 
4463
4469
  /** @public */
4464
- export declare type HTMLContainerProps = React_3.HTMLAttributes<HTMLDivElement>;
4470
+ export declare type HTMLContainerProps = React_2.HTMLAttributes<HTMLDivElement>;
4465
4471
 
4466
4472
  /** @public */
4467
4473
  export declare const inlineBase64AssetStore: TLAssetStore;
@@ -4517,7 +4523,7 @@ export declare function intersectLineSegmentCircle(a1: VecLike, a2: VecLike, c:
4517
4523
  * @param b2 - The second segment's second point.
4518
4524
  * @public
4519
4525
  */
4520
- export declare function intersectLineSegmentLineSegment(a1: VecLike, a2: VecLike, b1: VecLike, b2: VecLike): null | Vec;
4526
+ export declare function intersectLineSegmentLineSegment(a1: VecLike, a2: VecLike, b1: VecLike, b2: VecLike, precision?: number): null | Vec;
4521
4527
 
4522
4528
  /**
4523
4529
  * Find the intersections between a line segment and a closed polygon.
@@ -4823,7 +4829,7 @@ export declare function precise(A: VecLike): string;
4823
4829
  * @param event - To prevent default on
4824
4830
  * @public
4825
4831
  */
4826
- export declare function preventDefault(event: Event | React_2.BaseSyntheticEvent): void;
4832
+ export declare function preventDefault(event: Event | React_3.BaseSyntheticEvent): void;
4827
4833
 
4828
4834
  /**
4829
4835
  * Convert radians to degrees.
@@ -4858,10 +4864,10 @@ export declare class ReadonlySharedStyleMap {
4858
4864
  getAsKnownValue<T>(prop: StyleProp<T>): T | undefined;
4859
4865
  get size(): number;
4860
4866
  equals(other: ReadonlySharedStyleMap): boolean;
4861
- keys(): IterableIterator<StyleProp<any>>;
4862
- values(): IterableIterator<SharedStyle<unknown>>;
4863
- entries(): IterableIterator<[StyleProp<any>, SharedStyle<unknown>]>;
4864
- [Symbol.iterator](): IterableIterator<[StyleProp<any>, SharedStyle<unknown>]>;
4867
+ keys(): MapIterator<StyleProp<any>>;
4868
+ values(): MapIterator<SharedStyle<unknown>>;
4869
+ entries(): MapIterator<[StyleProp<any>, SharedStyle<unknown>]>;
4870
+ [Symbol.iterator](): MapIterator<[StyleProp<any>, SharedStyle<unknown>]>;
4865
4871
  }
4866
4872
 
4867
4873
  /** @public */
@@ -4885,7 +4891,7 @@ export declare class Rectangle2d extends Polygon2d {
4885
4891
  export declare function refreshPage(): void;
4886
4892
 
4887
4893
  /** @public */
4888
- export declare function releasePointerCapture(element: Element, event: PointerEvent | React_2.PointerEvent<Element>): void;
4894
+ export declare function releasePointerCapture(element: Element, event: PointerEvent | React_3.PointerEvent<Element>): void;
4889
4895
 
4890
4896
  /** @public */
4891
4897
  export declare type RequiredKeys<T, K extends keyof T> = Required<Pick<T, K>> & Omit<T, K>;
@@ -5028,7 +5034,7 @@ export declare type SelectionEdge = 'bottom' | 'left' | 'right' | 'top';
5028
5034
  export declare type SelectionHandle = SelectionCorner | SelectionEdge;
5029
5035
 
5030
5036
  /** @public */
5031
- export declare function setPointerCapture(element: Element, event: PointerEvent | React_2.PointerEvent<Element>): void;
5037
+ export declare function setPointerCapture(element: Element, event: PointerEvent | React_3.PointerEvent<Element>): void;
5032
5038
 
5033
5039
  /** @public */
5034
5040
  export declare function setRuntimeOverrides(input: Partial<typeof runtime>): void;
@@ -5734,7 +5740,7 @@ export declare function suffixSafeId(id: SafeId, suffix: string): SafeId;
5734
5740
  export declare function SVGContainer({ children, className, ...rest }: SVGContainerProps): JSX_2.Element;
5735
5741
 
5736
5742
  /** @public */
5737
- export declare type SVGContainerProps = React_3.ComponentProps<'svg'>;
5743
+ export declare type SVGContainerProps = React_2.ComponentProps<'svg'>;
5738
5744
 
5739
5745
  /** @public */
5740
5746
  export declare interface SvgExportContext {
@@ -5795,10 +5801,9 @@ export declare const TAB_ID: string;
5795
5801
  export declare class TextManager {
5796
5802
  editor: Editor;
5797
5803
  private elm;
5798
- private defaultStyles;
5799
5804
  constructor(editor: Editor);
5805
+ private setElementStyles;
5800
5806
  dispose(): void;
5801
- private resetElmStyles;
5802
5807
  measureText(textToMeasure: string, opts: TLMeasureTextOpts): BoxModel & {
5803
5808
  scrollWidth: number;
5804
5809
  };
@@ -6142,7 +6147,7 @@ export declare interface TLDragShapesOverInfo {
6142
6147
  }
6143
6148
 
6144
6149
  /** @public @react */
6145
- export declare const TldrawEditor: React_2.NamedExoticComponent<TldrawEditorProps>;
6150
+ export declare const TldrawEditor: React_3.NamedExoticComponent<TldrawEditorProps>;
6146
6151
 
6147
6152
  /**
6148
6153
  * Base props for the {@link tldraw#Tldraw} and {@link TldrawEditor} components.
@@ -6546,7 +6551,7 @@ export declare const tlenv: {
6546
6551
 
6547
6552
  /** @public */
6548
6553
  export declare interface TLErrorBoundaryProps {
6549
- children: React_3.ReactNode;
6554
+ children: React_2.ReactNode;
6550
6555
  onError?: ((error: unknown) => void) | null;
6551
6556
  fallback: TLErrorFallbackComponent;
6552
6557
  }
@@ -7502,6 +7507,7 @@ export declare interface TLUserPreferences {
7502
7507
  color?: null | string;
7503
7508
  locale?: null | string;
7504
7509
  animationSpeed?: null | number;
7510
+ areKeyboardShortcutsEnabled?: boolean | null;
7505
7511
  edgeScrollSpeed?: null | number;
7506
7512
  colorScheme?: 'dark' | 'light' | 'system';
7507
7513
  isSnapMode?: boolean | null;
@@ -7670,6 +7676,7 @@ export declare class UserPreferencesManager {
7670
7676
  updateUserPreferences(userPreferences: Partial<TLUserPreferences>): void;
7671
7677
  getUserPreferences(): {
7672
7678
  animationSpeed: number;
7679
+ areKeyboardShortcutsEnabled: boolean;
7673
7680
  color: string;
7674
7681
  colorScheme: "dark" | "light" | "system" | undefined;
7675
7682
  id: string;
@@ -7686,6 +7693,7 @@ export declare class UserPreferencesManager {
7686
7693
  */
7687
7694
  getEdgeScrollSpeed(): number;
7688
7695
  getAnimationSpeed(): number;
7696
+ getAreKeyboardShortcutsEnabled(): boolean;
7689
7697
  getId(): string;
7690
7698
  getName(): string;
7691
7699
  getLocale(): string;
@@ -10,19 +10,6 @@ export * from "@tldraw/store";
10
10
  export * from "@tldraw/tlschema";
11
11
  export * from "@tldraw/utils";
12
12
  export * from "@tldraw/validate";
13
- import {
14
- ErrorScreen,
15
- LoadingScreen,
16
- TldrawEditor,
17
- useOnMount
18
- } from "./lib/TldrawEditor.mjs";
19
- import {
20
- ErrorBoundary,
21
- OptionalErrorBoundary
22
- } from "./lib/components/ErrorBoundary.mjs";
23
- import { HTMLContainer } from "./lib/components/HTMLContainer.mjs";
24
- import { MenuClickCapture } from "./lib/components/MenuClickCapture.mjs";
25
- import { SVGContainer } from "./lib/components/SVGContainer.mjs";
26
13
  import { DefaultBackground } from "./lib/components/default-components/DefaultBackground.mjs";
27
14
  import { DefaultBrush } from "./lib/components/default-components/DefaultBrush.mjs";
28
15
  import {
@@ -64,38 +51,45 @@ import {
64
51
  } from "./lib/components/default-components/DefaultSnapIndictor.mjs";
65
52
  import { DefaultSpinner } from "./lib/components/default-components/DefaultSpinner.mjs";
66
53
  import { DefaultSvgDefs } from "./lib/components/default-components/DefaultSvgDefs.mjs";
54
+ import {
55
+ ErrorBoundary,
56
+ OptionalErrorBoundary
57
+ } from "./lib/components/ErrorBoundary.mjs";
58
+ import { HTMLContainer } from "./lib/components/HTMLContainer.mjs";
59
+ import { MenuClickCapture } from "./lib/components/MenuClickCapture.mjs";
60
+ import { SVGContainer } from "./lib/components/SVGContainer.mjs";
61
+ import {
62
+ createTLSchemaFromUtils,
63
+ createTLStore,
64
+ inlineBase64AssetStore
65
+ } from "./lib/config/createTLStore.mjs";
66
+ import { createTLUser, useTldrawUser } from "./lib/config/createTLUser.mjs";
67
+ import { coreShapes } from "./lib/config/defaultShapes.mjs";
67
68
  import {
68
69
  getSnapshot,
69
70
  loadSnapshot
70
71
  } from "./lib/config/TLEditorSnapshot.mjs";
71
72
  import {
72
- TAB_ID,
73
73
  createSessionStateSnapshotSignal,
74
74
  extractSessionStateFromLegacySnapshot,
75
- loadSessionStateSnapshotIntoStore
75
+ loadSessionStateSnapshotIntoStore,
76
+ TAB_ID
76
77
  } from "./lib/config/TLSessionStateSnapshot.mjs";
77
78
  import {
78
- USER_COLORS,
79
79
  defaultUserPreferences,
80
80
  getFreshUserPreferences,
81
81
  getUserPreferences,
82
82
  setUserPreferences,
83
+ USER_COLORS,
83
84
  userTypeValidator
84
85
  } from "./lib/config/TLUserPreferences.mjs";
85
- import {
86
- createTLSchemaFromUtils,
87
- createTLStore,
88
- inlineBase64AssetStore
89
- } from "./lib/config/createTLStore.mjs";
90
- import { createTLUser, useTldrawUser } from "./lib/config/createTLUser.mjs";
91
- import { coreShapes } from "./lib/config/defaultShapes.mjs";
92
86
  import { DEFAULT_ANIMATION_OPTIONS, DEFAULT_CAMERA_OPTIONS, SIDES } from "./lib/constants.mjs";
93
- import {
94
- Editor
95
- } from "./lib/editor/Editor.mjs";
96
87
  import {
97
88
  BindingUtil
98
89
  } from "./lib/editor/bindings/BindingUtil.mjs";
90
+ import {
91
+ Editor
92
+ } from "./lib/editor/Editor.mjs";
99
93
  import { ClickManager } from "./lib/editor/managers/ClickManager/ClickManager.mjs";
100
94
  import { EdgeScrollManager } from "./lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs";
101
95
  import {
@@ -117,10 +111,10 @@ import {
117
111
  } from "./lib/editor/managers/TextManager/TextManager.mjs";
118
112
  import { UserPreferencesManager } from "./lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs";
119
113
  import { BaseBoxShapeUtil } from "./lib/editor/shapes/BaseBoxShapeUtil.mjs";
114
+ import { GroupShapeUtil } from "./lib/editor/shapes/group/GroupShapeUtil.mjs";
120
115
  import {
121
116
  ShapeUtil
122
117
  } from "./lib/editor/shapes/ShapeUtil.mjs";
123
- import { GroupShapeUtil } from "./lib/editor/shapes/group/GroupShapeUtil.mjs";
124
118
  import {
125
119
  getPerfectDashProps
126
120
  } from "./lib/editor/shapes/shared/getPerfectDashProps.mjs";
@@ -129,13 +123,13 @@ import { resizeScaled } from "./lib/editor/shapes/shared/resizeScaled.mjs";
129
123
  import { BaseBoxShapeTool } from "./lib/editor/tools/BaseBoxShapeTool/BaseBoxShapeTool.mjs";
130
124
  import { maybeSnapToGrid } from "./lib/editor/tools/BaseBoxShapeTool/children/Pointing.mjs";
131
125
  import { StateNode } from "./lib/editor/tools/StateNode.mjs";
126
+ import {
127
+ EVENT_NAME_MAP
128
+ } from "./lib/editor/types/event-types.mjs";
132
129
  import {
133
130
  useDelaySvgExport,
134
131
  useSvgExportContext
135
132
  } from "./lib/editor/types/SvgExportContext.mjs";
136
- import {
137
- EVENT_NAME_MAP
138
- } from "./lib/editor/types/event-types.mjs";
139
133
  import { getSvgAsImage } from "./lib/exports/getSvgAsImage.mjs";
140
134
  import { tlenv } from "./lib/globals/environment.mjs";
141
135
  import { tlmenus } from "./lib/globals/menus.mjs";
@@ -184,8 +178,6 @@ import {
184
178
  ROTATE_CORNER_TO_SELECTION_CORNER,
185
179
  rotateSelectionHandle
186
180
  } from "./lib/primitives/Box.mjs";
187
- import { Mat } from "./lib/primitives/Mat.mjs";
188
- import { Vec } from "./lib/primitives/Vec.mjs";
189
181
  import { EASINGS } from "./lib/primitives/easings.mjs";
190
182
  import { Arc2d } from "./lib/primitives/geometry/Arc2d.mjs";
191
183
  import { Circle2d } from "./lib/primitives/geometry/Circle2d.mjs";
@@ -193,6 +185,7 @@ import { CubicBezier2d } from "./lib/primitives/geometry/CubicBezier2d.mjs";
193
185
  import { CubicSpline2d } from "./lib/primitives/geometry/CubicSpline2d.mjs";
194
186
  import { Edge2d } from "./lib/primitives/geometry/Edge2d.mjs";
195
187
  import { Ellipse2d } from "./lib/primitives/geometry/Ellipse2d.mjs";
188
+ import { getVerticesCountForArcLength } from "./lib/primitives/geometry/geometry-constants.mjs";
196
189
  import {
197
190
  Geometry2d,
198
191
  Geometry2dFilters,
@@ -218,11 +211,8 @@ import {
218
211
  polygonIntersectsPolyline,
219
212
  polygonsIntersect
220
213
  } from "./lib/primitives/intersect.mjs";
214
+ import { Mat } from "./lib/primitives/Mat.mjs";
221
215
  import {
222
- HALF_PI,
223
- PI,
224
- PI2,
225
- SIN,
226
216
  angleDistance,
227
217
  approximately,
228
218
  areAnglesCompatible,
@@ -239,22 +229,29 @@ import {
239
229
  getPointOnCircle,
240
230
  getPointsOnArc,
241
231
  getPolygonVertices,
232
+ HALF_PI,
242
233
  isSafeFloat,
243
234
  perimeterOfEllipse,
235
+ PI,
236
+ PI2,
244
237
  pointInPolygon,
245
238
  precise,
246
239
  radiansToDegrees,
247
240
  rangeIntersection,
248
241
  shortAngleDist,
242
+ SIN,
249
243
  snapAngle,
250
244
  toDomPrecision,
251
245
  toFixed,
252
246
  toPrecision
253
247
  } from "./lib/primitives/utils.mjs";
248
+ import { Vec } from "./lib/primitives/Vec.mjs";
254
249
  import {
255
- ReadonlySharedStyleMap,
256
- SharedStyleMap
257
- } from "./lib/utils/SharedStylesMap.mjs";
250
+ ErrorScreen,
251
+ LoadingScreen,
252
+ TldrawEditor,
253
+ useOnMount
254
+ } from "./lib/TldrawEditor.mjs";
258
255
  import { dataUrlToFile, getDefaultCdnBaseUrl } from "./lib/utils/assets.mjs";
259
256
  import { clampToBrowserMaxCanvasSize } from "./lib/utils/browserCanvasMaxSize.mjs";
260
257
  import {
@@ -289,8 +286,12 @@ import {
289
286
  getRotationSnapshot
290
287
  } from "./lib/utils/rotation.mjs";
291
288
  import { runtime, setRuntimeOverrides } from "./lib/utils/runtime.mjs";
292
- import { LocalIndexedDb, Table } from "./lib/utils/sync/LocalIndexedDb.mjs";
289
+ import {
290
+ ReadonlySharedStyleMap,
291
+ SharedStyleMap
292
+ } from "./lib/utils/SharedStylesMap.mjs";
293
293
  import { hardReset } from "./lib/utils/sync/hardReset.mjs";
294
+ import { LocalIndexedDb, Table } from "./lib/utils/sync/LocalIndexedDb.mjs";
294
295
  import { uniq } from "./lib/utils/uniq.mjs";
295
296
  import { openWindow } from "./lib/utils/window-open.mjs";
296
297
  function debugEnableLicensing() {
@@ -298,7 +299,7 @@ function debugEnableLicensing() {
298
299
  }
299
300
  registerTldrawLibraryVersion(
300
301
  "@tldraw/editor",
301
- "3.15.0-canary.db14db4f5395",
302
+ "3.15.0-canary.fc319eb96b77",
302
303
  "esm"
303
304
  );
304
305
  export {
@@ -427,6 +428,7 @@ export {
427
428
  getSvgAsImage,
428
429
  getSvgPathFromPoints,
429
430
  getUserPreferences,
431
+ getVerticesCountForArcLength,
430
432
  hardReset,
431
433
  hardResetEditor,
432
434
  inlineBase64AssetStore,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "sourcesContent": ["import { registerTldrawLibraryVersion } from '@tldraw/utils'\nimport 'core-js/stable/array/at.js'\nimport 'core-js/stable/array/flat-map.js'\nimport 'core-js/stable/array/flat.js'\nimport 'core-js/stable/string/at.js'\nimport 'core-js/stable/string/replace-all.js'\n\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/state'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/state-react'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/store'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/tlschema'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/utils'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/validate'\n\nexport {\n\tErrorScreen,\n\tLoadingScreen,\n\tTldrawEditor,\n\tuseOnMount,\n\ttype LoadingScreenProps,\n\ttype TLOnMountHandler,\n\ttype TldrawEditorBaseProps,\n\ttype TldrawEditorProps,\n\ttype TldrawEditorStoreProps,\n\ttype TldrawEditorWithStoreProps,\n\ttype TldrawEditorWithoutStoreProps,\n} from './lib/TldrawEditor'\nexport {\n\tErrorBoundary,\n\tOptionalErrorBoundary,\n\ttype TLErrorBoundaryProps,\n} from './lib/components/ErrorBoundary'\nexport { HTMLContainer, type HTMLContainerProps } from './lib/components/HTMLContainer'\nexport { MenuClickCapture } from './lib/components/MenuClickCapture'\nexport { SVGContainer, type SVGContainerProps } from './lib/components/SVGContainer'\nexport { DefaultBackground } from './lib/components/default-components/DefaultBackground'\nexport { DefaultBrush, type TLBrushProps } from './lib/components/default-components/DefaultBrush'\nexport {\n\tDefaultCanvas,\n\ttype TLCanvasComponentProps,\n} from './lib/components/default-components/DefaultCanvas'\nexport {\n\tDefaultCollaboratorHint,\n\ttype TLCollaboratorHintProps,\n} from './lib/components/default-components/DefaultCollaboratorHint'\nexport {\n\tDefaultCursor,\n\ttype TLCursorProps,\n} from './lib/components/default-components/DefaultCursor'\nexport {\n\tDefaultErrorFallback,\n\ttype TLErrorFallbackComponent,\n} from './lib/components/default-components/DefaultErrorFallback'\nexport { DefaultGrid, type TLGridProps } from './lib/components/default-components/DefaultGrid'\nexport {\n\tDefaultHandle,\n\ttype TLHandleProps,\n} from './lib/components/default-components/DefaultHandle'\nexport {\n\tDefaultHandles,\n\ttype TLHandlesProps,\n} from './lib/components/default-components/DefaultHandles'\nexport {\n\tDefaultScribble,\n\ttype TLScribbleProps,\n} from './lib/components/default-components/DefaultScribble'\nexport {\n\tDefaultSelectionBackground,\n\ttype TLSelectionBackgroundProps,\n} from './lib/components/default-components/DefaultSelectionBackground'\nexport {\n\tDefaultSelectionForeground,\n\ttype TLSelectionForegroundProps,\n} from './lib/components/default-components/DefaultSelectionForeground'\nexport { type TLShapeErrorFallbackComponent } from './lib/components/default-components/DefaultShapeErrorFallback'\nexport {\n\tDefaultShapeIndicator,\n\ttype TLShapeIndicatorProps,\n} from './lib/components/default-components/DefaultShapeIndicator'\nexport { type TLShapeIndicatorErrorFallbackComponent } from './lib/components/default-components/DefaultShapeIndicatorErrorFallback'\nexport {\n\tDefaultShapeIndicators,\n\ttype TLShapeIndicatorsProps,\n} from './lib/components/default-components/DefaultShapeIndicators'\nexport {\n\tDefaultSnapIndicator,\n\ttype TLSnapIndicatorProps,\n} from './lib/components/default-components/DefaultSnapIndictor'\nexport { DefaultSpinner } from './lib/components/default-components/DefaultSpinner'\nexport { DefaultSvgDefs } from './lib/components/default-components/DefaultSvgDefs'\nexport {\n\tgetSnapshot,\n\tloadSnapshot,\n\ttype TLEditorSnapshot,\n\ttype TLLoadSnapshotOptions,\n} from './lib/config/TLEditorSnapshot'\nexport {\n\tTAB_ID,\n\tcreateSessionStateSnapshotSignal,\n\textractSessionStateFromLegacySnapshot,\n\tloadSessionStateSnapshotIntoStore,\n\ttype TLLoadSessionStateSnapshotOptions,\n\ttype TLSessionStateSnapshot,\n} from './lib/config/TLSessionStateSnapshot'\nexport {\n\tUSER_COLORS,\n\tdefaultUserPreferences,\n\tgetFreshUserPreferences,\n\tgetUserPreferences,\n\tsetUserPreferences,\n\tuserTypeValidator,\n\ttype TLUserPreferences,\n} from './lib/config/TLUserPreferences'\nexport {\n\tcreateTLSchemaFromUtils,\n\tcreateTLStore,\n\tinlineBase64AssetStore,\n\ttype TLStoreBaseOptions,\n\ttype TLStoreEventInfo,\n\ttype TLStoreOptions,\n\ttype TLStoreSchemaOptions,\n} from './lib/config/createTLStore'\nexport { createTLUser, useTldrawUser, type TLUser } from './lib/config/createTLUser'\nexport { type TLAnyBindingUtilConstructor } from './lib/config/defaultBindings'\nexport { coreShapes, type TLAnyShapeUtilConstructor } from './lib/config/defaultShapes'\nexport { DEFAULT_ANIMATION_OPTIONS, DEFAULT_CAMERA_OPTIONS, SIDES } from './lib/constants'\nexport {\n\tEditor,\n\ttype TLEditorOptions,\n\ttype TLEditorRunOptions,\n\ttype TLRenderingShape,\n\ttype TLResizeShapeOptions,\n} from './lib/editor/Editor'\nexport {\n\tBindingUtil,\n\ttype BindingOnChangeOptions,\n\ttype BindingOnCreateOptions,\n\ttype BindingOnDeleteOptions,\n\ttype BindingOnShapeChangeOptions,\n\ttype BindingOnShapeDeleteOptions,\n\ttype BindingOnShapeIsolateOptions,\n\ttype TLBindingUtilConstructor,\n} from './lib/editor/bindings/BindingUtil'\nexport { ClickManager, type TLClickState } from './lib/editor/managers/ClickManager/ClickManager'\nexport { EdgeScrollManager } from './lib/editor/managers/EdgeScrollManager/EdgeScrollManager'\nexport {\n\tFontManager,\n\ttype TLFontFace,\n\ttype TLFontFaceSource,\n} from './lib/editor/managers/FontManager/FontManager'\nexport { HistoryManager } from './lib/editor/managers/HistoryManager/HistoryManager'\nexport {\n\tScribbleManager,\n\ttype ScribbleItem,\n} from './lib/editor/managers/ScribbleManager/ScribbleManager'\nexport {\n\tBoundsSnaps,\n\ttype BoundsSnapGeometry,\n\ttype BoundsSnapPoint,\n} from './lib/editor/managers/SnapManager/BoundsSnaps'\nexport { HandleSnaps, type HandleSnapGeometry } from './lib/editor/managers/SnapManager/HandleSnaps'\nexport {\n\tSnapManager,\n\ttype GapsSnapIndicator,\n\ttype PointsSnapIndicator,\n\ttype SnapData,\n\ttype SnapIndicator,\n} from './lib/editor/managers/SnapManager/SnapManager'\nexport {\n\tTextManager,\n\ttype TLMeasureTextOpts,\n\ttype TLMeasureTextSpanOpts,\n} from './lib/editor/managers/TextManager/TextManager'\nexport { UserPreferencesManager } from './lib/editor/managers/UserPreferencesManager/UserPreferencesManager'\nexport { BaseBoxShapeUtil, type TLBaseBoxShape } from './lib/editor/shapes/BaseBoxShapeUtil'\nexport {\n\tShapeUtil,\n\ttype TLCropInfo,\n\ttype TLDragShapesInInfo,\n\ttype TLDragShapesOutInfo,\n\ttype TLDragShapesOverInfo,\n\ttype TLDropShapesOverInfo,\n\ttype TLGeometryOpts,\n\ttype TLHandleDragInfo,\n\ttype TLResizeInfo,\n\ttype TLResizeMode,\n\ttype TLShapeUtilCanBeLaidOutOpts,\n\ttype TLShapeUtilCanBindOpts,\n\ttype TLShapeUtilCanvasSvgDef,\n\ttype TLShapeUtilConstructor,\n} from './lib/editor/shapes/ShapeUtil'\nexport { GroupShapeUtil } from './lib/editor/shapes/group/GroupShapeUtil'\nexport {\n\tgetPerfectDashProps,\n\ttype PerfectDashTerminal,\n} from './lib/editor/shapes/shared/getPerfectDashProps'\nexport { resizeBox, type ResizeBoxOptions } from './lib/editor/shapes/shared/resizeBox'\nexport { resizeScaled } from './lib/editor/shapes/shared/resizeScaled'\nexport { BaseBoxShapeTool } from './lib/editor/tools/BaseBoxShapeTool/BaseBoxShapeTool'\nexport { maybeSnapToGrid } from './lib/editor/tools/BaseBoxShapeTool/children/Pointing'\nexport { StateNode, type TLStateNodeConstructor } from './lib/editor/tools/StateNode'\nexport {\n\tuseDelaySvgExport,\n\tuseSvgExportContext,\n\ttype SvgExportContext,\n\ttype SvgExportDef,\n} from './lib/editor/types/SvgExportContext'\nexport { type TLContent } from './lib/editor/types/clipboard-types'\nexport { type TLEventMap, type TLEventMapHandler } from './lib/editor/types/emit-types'\nexport {\n\tEVENT_NAME_MAP,\n\ttype TLBaseEventInfo,\n\ttype TLCLickEventName,\n\ttype TLCancelEvent,\n\ttype TLCancelEventInfo,\n\ttype TLClickEvent,\n\ttype TLClickEventInfo,\n\ttype TLCompleteEvent,\n\ttype TLCompleteEventInfo,\n\ttype TLEnterEventHandler,\n\ttype TLEventHandlers,\n\ttype TLEventInfo,\n\ttype TLEventName,\n\ttype TLExitEventHandler,\n\ttype TLInterruptEvent,\n\ttype TLInterruptEventInfo,\n\ttype TLKeyboardEvent,\n\ttype TLKeyboardEventInfo,\n\ttype TLKeyboardEventName,\n\ttype TLPinchEvent,\n\ttype TLPinchEventInfo,\n\ttype TLPinchEventName,\n\ttype TLPointerEvent,\n\ttype TLPointerEventInfo,\n\ttype TLPointerEventName,\n\ttype TLPointerEventTarget,\n\ttype TLTickEvent,\n\ttype TLTickEventInfo,\n\ttype TLWheelEvent,\n\ttype TLWheelEventInfo,\n\ttype UiEvent,\n\ttype UiEventType,\n} from './lib/editor/types/event-types'\nexport {\n\ttype TLBaseExternalContent,\n\ttype TLEmbedExternalContent,\n\ttype TLErrorExternalContentSource,\n\ttype TLExcalidrawExternalContent,\n\ttype TLExcalidrawExternalContentSource,\n\ttype TLExternalAsset,\n\ttype TLExternalContent,\n\ttype TLExternalContentSource,\n\ttype TLFileExternalAsset,\n\ttype TLFileReplaceExternalContent,\n\ttype TLFilesExternalContent,\n\ttype TLSvgTextExternalContent,\n\ttype TLTextExternalContent,\n\ttype TLTextExternalContentSource,\n\ttype TLTldrawExternalContent,\n\ttype TLTldrawExternalContentSource,\n\ttype TLUrlExternalAsset,\n\ttype TLUrlExternalContent,\n} from './lib/editor/types/external-content'\nexport {\n\ttype TLHistoryBatchOptions,\n\ttype TLHistoryDiff,\n\ttype TLHistoryEntry,\n\ttype TLHistoryMark,\n} from './lib/editor/types/history-types'\nexport {\n\ttype OptionalKeys,\n\ttype RequiredKeys,\n\ttype TLCameraConstraints,\n\ttype TLCameraMoveOptions,\n\ttype TLCameraOptions,\n\ttype TLExportType,\n\ttype TLImageExportOptions,\n\ttype TLSvgExportOptions,\n\ttype TLSvgOptions,\n} from './lib/editor/types/misc-types'\nexport {\n\ttype TLAdjacentDirection,\n\ttype TLResizeHandle,\n\ttype TLSelectionHandle,\n} from './lib/editor/types/selection-types'\nexport { getSvgAsImage } from './lib/exports/getSvgAsImage'\nexport { tlenv } from './lib/globals/environment'\nexport { tlmenus } from './lib/globals/menus'\nexport { tltime } from './lib/globals/time'\nexport {\n\tContainerProvider,\n\tuseContainer,\n\tuseContainerIfExists,\n\ttype ContainerProviderProps,\n} from './lib/hooks/useContainer'\nexport { getCursor } from './lib/hooks/useCursor'\nexport {\n\tEditorContext,\n\tEditorProvider,\n\tuseEditor,\n\tuseMaybeEditor,\n\ttype EditorProviderProps,\n} from './lib/hooks/useEditor'\nexport { useEditorComponents } from './lib/hooks/useEditorComponents'\nexport type { TLEditorComponents } from './lib/hooks/useEditorComponents'\nexport { useEvent, useReactiveEvent } from './lib/hooks/useEvent'\nexport { useGlobalMenuIsOpen } from './lib/hooks/useGlobalMenuIsOpen'\nexport { useShallowArrayIdentity, useShallowObjectIdentity } from './lib/hooks/useIdentity'\nexport { useIsCropping } from './lib/hooks/useIsCropping'\nexport { useIsDarkMode } from './lib/hooks/useIsDarkMode'\nexport { useIsEditing } from './lib/hooks/useIsEditing'\nexport { useLocalStore } from './lib/hooks/useLocalStore'\nexport { usePassThroughMouseOverEvents } from './lib/hooks/usePassThroughMouseOverEvents'\nexport { usePassThroughWheelEvents } from './lib/hooks/usePassThroughWheelEvents'\nexport { usePeerIds } from './lib/hooks/usePeerIds'\nexport { usePresence } from './lib/hooks/usePresence'\nexport { useRefState } from './lib/hooks/useRefState'\nexport {\n\tsanitizeId,\n\tsuffixSafeId,\n\tuseSharedSafeId,\n\tuseUniqueSafeId,\n\ttype SafeId,\n} from './lib/hooks/useSafeId'\nexport { useSelectionEvents } from './lib/hooks/useSelectionEvents'\nexport { useTLSchemaFromUtils, useTLStore } from './lib/hooks/useTLStore'\nexport { useTransform } from './lib/hooks/useTransform'\nexport { useViewportHeight } from './lib/hooks/useViewportHeight'\nexport {\n\tLicenseManager,\n\ttype InvalidLicenseKeyResult,\n\ttype InvalidLicenseReason,\n\ttype LicenseFromKeyResult,\n\ttype LicenseInfo,\n\ttype TestEnvironment,\n\ttype ValidLicenseKeyResult,\n} from './lib/license/LicenseManager'\nexport { defaultTldrawOptions, type TldrawOptions } from './lib/options'\nexport {\n\tBox,\n\tROTATE_CORNER_TO_SELECTION_CORNER,\n\trotateSelectionHandle,\n\ttype BoxLike,\n\ttype RotateCorner,\n\ttype SelectionCorner,\n\ttype SelectionEdge,\n\ttype SelectionHandle,\n} from './lib/primitives/Box'\nexport { Mat, type MatLike, type MatModel } from './lib/primitives/Mat'\nexport { Vec, type VecLike } from './lib/primitives/Vec'\nexport { EASINGS } from './lib/primitives/easings'\nexport { Arc2d } from './lib/primitives/geometry/Arc2d'\nexport { Circle2d } from './lib/primitives/geometry/Circle2d'\nexport { CubicBezier2d } from './lib/primitives/geometry/CubicBezier2d'\nexport { CubicSpline2d } from './lib/primitives/geometry/CubicSpline2d'\nexport { Edge2d } from './lib/primitives/geometry/Edge2d'\nexport { Ellipse2d } from './lib/primitives/geometry/Ellipse2d'\nexport {\n\tGeometry2d,\n\tGeometry2dFilters,\n\tTransformedGeometry2d,\n\ttype Geometry2dOptions,\n\ttype TransformedGeometry2dOptions,\n} from './lib/primitives/geometry/Geometry2d'\nexport { Group2d } from './lib/primitives/geometry/Group2d'\nexport { Point2d } from './lib/primitives/geometry/Point2d'\nexport { Polygon2d } from './lib/primitives/geometry/Polygon2d'\nexport { Polyline2d } from './lib/primitives/geometry/Polyline2d'\nexport { Rectangle2d } from './lib/primitives/geometry/Rectangle2d'\nexport { Stadium2d } from './lib/primitives/geometry/Stadium2d'\nexport {\n\tintersectCircleCircle,\n\tintersectCirclePolygon,\n\tintersectCirclePolyline,\n\tintersectLineSegmentCircle,\n\tintersectLineSegmentLineSegment,\n\tintersectLineSegmentPolygon,\n\tintersectLineSegmentPolyline,\n\tintersectPolygonBounds,\n\tintersectPolygonPolygon,\n\tlinesIntersect,\n\tpolygonIntersectsPolyline,\n\tpolygonsIntersect,\n} from './lib/primitives/intersect'\nexport {\n\tHALF_PI,\n\tPI,\n\tPI2,\n\tSIN,\n\tangleDistance,\n\tapproximately,\n\tareAnglesCompatible,\n\taverage,\n\tcanonicalizeRotation,\n\tcenterOfCircleFromThreePoints,\n\tclamp,\n\tclampRadians,\n\tclockwiseAngleDist,\n\tcounterClockwiseAngleDist,\n\tdegreesToRadians,\n\tgetArcMeasure,\n\tgetPointInArcT,\n\tgetPointOnCircle,\n\tgetPointsOnArc,\n\tgetPolygonVertices,\n\tisSafeFloat,\n\tperimeterOfEllipse,\n\tpointInPolygon,\n\tprecise,\n\tradiansToDegrees,\n\trangeIntersection,\n\tshortAngleDist,\n\tsnapAngle,\n\ttoDomPrecision,\n\ttoFixed,\n\ttoPrecision,\n} from './lib/primitives/utils'\nexport {\n\tReadonlySharedStyleMap,\n\tSharedStyleMap,\n\ttype SharedStyle,\n} from './lib/utils/SharedStylesMap'\nexport { dataUrlToFile, getDefaultCdnBaseUrl } from './lib/utils/assets'\nexport { clampToBrowserMaxCanvasSize, type CanvasMaxSize } from './lib/utils/browserCanvasMaxSize'\nexport {\n\tdebugFlags,\n\tfeatureFlags,\n\ttype DebugFlag,\n\ttype DebugFlagDef,\n\ttype DebugFlagDefaults,\n} from './lib/utils/debug-flags'\nexport {\n\tcreateDeepLinkString,\n\tparseDeepLinkString,\n\ttype TLDeepLink,\n\ttype TLDeepLinkOptions,\n} from './lib/utils/deepLinks'\nexport {\n\tactiveElementShouldCaptureKeys,\n\tloopToHtmlElement,\n\tpreventDefault,\n\treleasePointerCapture,\n\tsetPointerCapture,\n\tstopEventPropagation,\n} from './lib/utils/dom'\nexport { getIncrementedName } from './lib/utils/getIncrementedName'\nexport { getPointerInfo } from './lib/utils/getPointerInfo'\nexport { getSvgPathFromPoints } from './lib/utils/getSvgPathFromPoints'\nexport { hardResetEditor } from './lib/utils/hardResetEditor'\nexport { isAccelKey } from './lib/utils/keyboard'\nexport { normalizeWheel } from './lib/utils/normalizeWheel'\nexport { refreshPage } from './lib/utils/refreshPage'\nexport { getDroppedShapesToNewParents, kickoutOccludedShapes } from './lib/utils/reparenting'\nexport {\n\tgetFontsFromRichText,\n\ttype RichTextFontVisitor,\n\ttype RichTextFontVisitorState,\n\ttype TLTextOptions,\n\ttype TiptapEditor,\n\ttype TiptapNode,\n} from './lib/utils/richText'\nexport {\n\tapplyRotationToSnapshotShapes,\n\tgetRotationSnapshot,\n\ttype TLRotationSnapshot,\n} from './lib/utils/rotation'\nexport { runtime, setRuntimeOverrides } from './lib/utils/runtime'\nexport { LocalIndexedDb, Table, type StoreName } from './lib/utils/sync/LocalIndexedDb'\nexport { type TLStoreWithStatus } from './lib/utils/sync/StoreWithStatus'\nexport { hardReset } from './lib/utils/sync/hardReset'\nexport { uniq } from './lib/utils/uniq'\nexport { openWindow } from './lib/utils/window-open'\n\n/**\n * @deprecated Licensing is now enabled in the tldraw SDK.\n * @public */\nexport function debugEnableLicensing() {\n\t// noop\n\treturn\n}\n\nregisterTldrawLibraryVersion(\n\t(globalThis as any).TLDRAW_LIBRARY_NAME,\n\t(globalThis as any).TLDRAW_LIBRARY_VERSION,\n\t(globalThis as any).TLDRAW_LIBRARY_MODULES\n)\n"],
5
- "mappings": "AAAA,SAAS,oCAAoC;AAC7C,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAGP,cAAc;AAEd,cAAc;AAEd,cAAc;AAEd,cAAc;AAEd,cAAc;AAEd,cAAc;AAEd;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAQM;AACP;AAAA,EACC;AAAA,EACA;AAAA,OAEM;AACP,SAAS,qBAA8C;AACvD,SAAS,wBAAwB;AACjC,SAAS,oBAA4C;AACrD,SAAS,yBAAyB;AAClC,SAAS,oBAAuC;AAChD;AAAA,EACC;AAAA,OAEM;AACP;AAAA,EACC;AAAA,OAEM;AACP;AAAA,EACC;AAAA,OAEM;AACP;AAAA,EACC;AAAA,OAEM;AACP,SAAS,mBAAqC;AAC9C;AAAA,EACC;AAAA,OAEM;AACP;AAAA,EACC;AAAA,OAEM;AACP;AAAA,EACC;AAAA,OAEM;AACP;AAAA,EACC;AAAA,OAEM;AACP;AAAA,EACC;AAAA,OAEM;AAEP;AAAA,EACC;AAAA,OAEM;AAEP;AAAA,EACC;AAAA,OAEM;AACP;AAAA,EACC;AAAA,OAEM;AACP,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAC/B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OAKM;AACP,SAAS,cAAc,qBAAkC;AAEzD,SAAS,kBAAkD;AAC3D,SAAS,2BAA2B,wBAAwB,aAAa;AACzE;AAAA,EACC;AAAA,OAKM;AACP;AAAA,EACC;AAAA,OAQM;AACP,SAAS,oBAAuC;AAChD,SAAS,yBAAyB;AAClC;AAAA,EACC;AAAA,OAGM;AACP,SAAS,sBAAsB;AAC/B;AAAA,EACC;AAAA,OAEM;AACP;AAAA,EACC;AAAA,OAGM;AACP,SAAS,mBAA4C;AACrD;AAAA,EACC;AAAA,OAKM;AACP;AAAA,EACC;AAAA,OAGM;AACP,SAAS,8BAA8B;AACvC,SAAS,wBAA6C;AACtD;AAAA,EACC;AAAA,OAcM;AACP,SAAS,sBAAsB;AAC/B;AAAA,EACC;AAAA,OAEM;AACP,SAAS,iBAAwC;AACjD,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,iBAA8C;AACvD;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAGP;AAAA,EACC;AAAA,OAgCM;AA2CP,SAAS,qBAAqB;AAC9B,SAAS,aAAa;AACtB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OAEM;AACP,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEM;AACP,SAAS,2BAA2B;AAEpC,SAAS,UAAU,wBAAwB;AAC3C,SAAS,2BAA2B;AACpC,SAAS,yBAAyB,gCAAgC;AAClE,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,qCAAqC;AAC9C,SAAS,iCAAiC;AAC1C,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEM;AACP,SAAS,0BAA0B;AACnC,SAAS,sBAAsB,kBAAkB;AACjD,SAAS,oBAAoB;AAC7B,SAAS,yBAAyB;AAClC;AAAA,EACC;AAAA,OAOM;AACP,SAAS,4BAAgD;AACzD;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OAMM;AACP,SAAS,WAAwC;AACjD,SAAS,WAAyB;AAClC,SAAS,eAAe;AACxB,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AACvB,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OAGM;AACP,SAAS,eAAe;AACxB,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACC;AAAA,EACA;AAAA,OAEM;AACP,SAAS,eAAe,4BAA4B;AACpD,SAAS,mCAAuD;AAChE;AAAA,EACC;AAAA,EACA;AAAA,OAIM;AACP;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,4BAA4B;AACrC,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,8BAA8B,6BAA6B;AACpE;AAAA,EACC;AAAA,OAMM;AACP;AAAA,EACC;AAAA,EACA;AAAA,OAEM;AACP,SAAS,SAAS,2BAA2B;AAC7C,SAAS,gBAAgB,aAA6B;AAEtD,SAAS,iBAAiB;AAC1B,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAKpB,SAAS,uBAAuB;AAEtC;AACD;AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AACF;",
4
+ "sourcesContent": ["import { registerTldrawLibraryVersion } from '@tldraw/utils'\nimport 'core-js/stable/array/at.js'\nimport 'core-js/stable/array/flat-map.js'\nimport 'core-js/stable/array/flat.js'\nimport 'core-js/stable/string/at.js'\nimport 'core-js/stable/string/replace-all.js'\n\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/state'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/state-react'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/store'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/tlschema'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/utils'\n// eslint-disable-next-line local/no-export-star\nexport * from '@tldraw/validate'\n\nexport { DefaultBackground } from './lib/components/default-components/DefaultBackground'\nexport { DefaultBrush, type TLBrushProps } from './lib/components/default-components/DefaultBrush'\nexport {\n\tDefaultCanvas,\n\ttype TLCanvasComponentProps,\n} from './lib/components/default-components/DefaultCanvas'\nexport {\n\tDefaultCollaboratorHint,\n\ttype TLCollaboratorHintProps,\n} from './lib/components/default-components/DefaultCollaboratorHint'\nexport {\n\tDefaultCursor,\n\ttype TLCursorProps,\n} from './lib/components/default-components/DefaultCursor'\nexport {\n\tDefaultErrorFallback,\n\ttype TLErrorFallbackComponent,\n} from './lib/components/default-components/DefaultErrorFallback'\nexport { DefaultGrid, type TLGridProps } from './lib/components/default-components/DefaultGrid'\nexport {\n\tDefaultHandle,\n\ttype TLHandleProps,\n} from './lib/components/default-components/DefaultHandle'\nexport {\n\tDefaultHandles,\n\ttype TLHandlesProps,\n} from './lib/components/default-components/DefaultHandles'\nexport {\n\tDefaultScribble,\n\ttype TLScribbleProps,\n} from './lib/components/default-components/DefaultScribble'\nexport {\n\tDefaultSelectionBackground,\n\ttype TLSelectionBackgroundProps,\n} from './lib/components/default-components/DefaultSelectionBackground'\nexport {\n\tDefaultSelectionForeground,\n\ttype TLSelectionForegroundProps,\n} from './lib/components/default-components/DefaultSelectionForeground'\nexport { type TLShapeErrorFallbackComponent } from './lib/components/default-components/DefaultShapeErrorFallback'\nexport {\n\tDefaultShapeIndicator,\n\ttype TLShapeIndicatorProps,\n} from './lib/components/default-components/DefaultShapeIndicator'\nexport { type TLShapeIndicatorErrorFallbackComponent } from './lib/components/default-components/DefaultShapeIndicatorErrorFallback'\nexport {\n\tDefaultShapeIndicators,\n\ttype TLShapeIndicatorsProps,\n} from './lib/components/default-components/DefaultShapeIndicators'\nexport {\n\tDefaultSnapIndicator,\n\ttype TLSnapIndicatorProps,\n} from './lib/components/default-components/DefaultSnapIndictor'\nexport { DefaultSpinner } from './lib/components/default-components/DefaultSpinner'\nexport { DefaultSvgDefs } from './lib/components/default-components/DefaultSvgDefs'\nexport {\n\tErrorBoundary,\n\tOptionalErrorBoundary,\n\ttype TLErrorBoundaryProps,\n} from './lib/components/ErrorBoundary'\nexport { HTMLContainer, type HTMLContainerProps } from './lib/components/HTMLContainer'\nexport { MenuClickCapture } from './lib/components/MenuClickCapture'\nexport { SVGContainer, type SVGContainerProps } from './lib/components/SVGContainer'\nexport {\n\tcreateTLSchemaFromUtils,\n\tcreateTLStore,\n\tinlineBase64AssetStore,\n\ttype TLStoreBaseOptions,\n\ttype TLStoreEventInfo,\n\ttype TLStoreOptions,\n\ttype TLStoreSchemaOptions,\n} from './lib/config/createTLStore'\nexport { createTLUser, useTldrawUser, type TLUser } from './lib/config/createTLUser'\nexport { type TLAnyBindingUtilConstructor } from './lib/config/defaultBindings'\nexport { coreShapes, type TLAnyShapeUtilConstructor } from './lib/config/defaultShapes'\nexport {\n\tgetSnapshot,\n\tloadSnapshot,\n\ttype TLEditorSnapshot,\n\ttype TLLoadSnapshotOptions,\n} from './lib/config/TLEditorSnapshot'\nexport {\n\tcreateSessionStateSnapshotSignal,\n\textractSessionStateFromLegacySnapshot,\n\tloadSessionStateSnapshotIntoStore,\n\tTAB_ID,\n\ttype TLLoadSessionStateSnapshotOptions,\n\ttype TLSessionStateSnapshot,\n} from './lib/config/TLSessionStateSnapshot'\nexport {\n\tdefaultUserPreferences,\n\tgetFreshUserPreferences,\n\tgetUserPreferences,\n\tsetUserPreferences,\n\tUSER_COLORS,\n\tuserTypeValidator,\n\ttype TLUserPreferences,\n} from './lib/config/TLUserPreferences'\nexport { DEFAULT_ANIMATION_OPTIONS, DEFAULT_CAMERA_OPTIONS, SIDES } from './lib/constants'\nexport {\n\tBindingUtil,\n\ttype BindingOnChangeOptions,\n\ttype BindingOnCreateOptions,\n\ttype BindingOnDeleteOptions,\n\ttype BindingOnShapeChangeOptions,\n\ttype BindingOnShapeDeleteOptions,\n\ttype BindingOnShapeIsolateOptions,\n\ttype TLBindingUtilConstructor,\n} from './lib/editor/bindings/BindingUtil'\nexport {\n\tEditor,\n\ttype TLEditorOptions,\n\ttype TLEditorRunOptions,\n\ttype TLRenderingShape,\n\ttype TLResizeShapeOptions,\n} from './lib/editor/Editor'\nexport { ClickManager, type TLClickState } from './lib/editor/managers/ClickManager/ClickManager'\nexport { EdgeScrollManager } from './lib/editor/managers/EdgeScrollManager/EdgeScrollManager'\nexport {\n\tFontManager,\n\ttype TLFontFace,\n\ttype TLFontFaceSource,\n} from './lib/editor/managers/FontManager/FontManager'\nexport { HistoryManager } from './lib/editor/managers/HistoryManager/HistoryManager'\nexport {\n\tScribbleManager,\n\ttype ScribbleItem,\n} from './lib/editor/managers/ScribbleManager/ScribbleManager'\nexport {\n\tBoundsSnaps,\n\ttype BoundsSnapGeometry,\n\ttype BoundsSnapPoint,\n} from './lib/editor/managers/SnapManager/BoundsSnaps'\nexport { HandleSnaps, type HandleSnapGeometry } from './lib/editor/managers/SnapManager/HandleSnaps'\nexport {\n\tSnapManager,\n\ttype GapsSnapIndicator,\n\ttype PointsSnapIndicator,\n\ttype SnapData,\n\ttype SnapIndicator,\n} from './lib/editor/managers/SnapManager/SnapManager'\nexport {\n\tTextManager,\n\ttype TLMeasureTextOpts,\n\ttype TLMeasureTextSpanOpts,\n} from './lib/editor/managers/TextManager/TextManager'\nexport { UserPreferencesManager } from './lib/editor/managers/UserPreferencesManager/UserPreferencesManager'\nexport { BaseBoxShapeUtil, type TLBaseBoxShape } from './lib/editor/shapes/BaseBoxShapeUtil'\nexport { GroupShapeUtil } from './lib/editor/shapes/group/GroupShapeUtil'\nexport {\n\tShapeUtil,\n\ttype TLCropInfo,\n\ttype TLDragShapesInInfo,\n\ttype TLDragShapesOutInfo,\n\ttype TLDragShapesOverInfo,\n\ttype TLDropShapesOverInfo,\n\ttype TLGeometryOpts,\n\ttype TLHandleDragInfo,\n\ttype TLResizeInfo,\n\ttype TLResizeMode,\n\ttype TLShapeUtilCanBeLaidOutOpts,\n\ttype TLShapeUtilCanBindOpts,\n\ttype TLShapeUtilCanvasSvgDef,\n\ttype TLShapeUtilConstructor,\n} from './lib/editor/shapes/ShapeUtil'\nexport {\n\tgetPerfectDashProps,\n\ttype PerfectDashTerminal,\n} from './lib/editor/shapes/shared/getPerfectDashProps'\nexport { resizeBox, type ResizeBoxOptions } from './lib/editor/shapes/shared/resizeBox'\nexport { resizeScaled } from './lib/editor/shapes/shared/resizeScaled'\nexport { BaseBoxShapeTool } from './lib/editor/tools/BaseBoxShapeTool/BaseBoxShapeTool'\nexport { maybeSnapToGrid } from './lib/editor/tools/BaseBoxShapeTool/children/Pointing'\nexport { StateNode, type TLStateNodeConstructor } from './lib/editor/tools/StateNode'\nexport { type TLContent } from './lib/editor/types/clipboard-types'\nexport { type TLEventMap, type TLEventMapHandler } from './lib/editor/types/emit-types'\nexport {\n\tEVENT_NAME_MAP,\n\ttype TLBaseEventInfo,\n\ttype TLCancelEvent,\n\ttype TLCancelEventInfo,\n\ttype TLClickEvent,\n\ttype TLClickEventInfo,\n\ttype TLCLickEventName,\n\ttype TLCompleteEvent,\n\ttype TLCompleteEventInfo,\n\ttype TLEnterEventHandler,\n\ttype TLEventHandlers,\n\ttype TLEventInfo,\n\ttype TLEventName,\n\ttype TLExitEventHandler,\n\ttype TLInterruptEvent,\n\ttype TLInterruptEventInfo,\n\ttype TLKeyboardEvent,\n\ttype TLKeyboardEventInfo,\n\ttype TLKeyboardEventName,\n\ttype TLPinchEvent,\n\ttype TLPinchEventInfo,\n\ttype TLPinchEventName,\n\ttype TLPointerEvent,\n\ttype TLPointerEventInfo,\n\ttype TLPointerEventName,\n\ttype TLPointerEventTarget,\n\ttype TLTickEvent,\n\ttype TLTickEventInfo,\n\ttype TLWheelEvent,\n\ttype TLWheelEventInfo,\n\ttype UiEvent,\n\ttype UiEventType,\n} from './lib/editor/types/event-types'\nexport {\n\ttype TLBaseExternalContent,\n\ttype TLEmbedExternalContent,\n\ttype TLErrorExternalContentSource,\n\ttype TLExcalidrawExternalContent,\n\ttype TLExcalidrawExternalContentSource,\n\ttype TLExternalAsset,\n\ttype TLExternalContent,\n\ttype TLExternalContentSource,\n\ttype TLFileExternalAsset,\n\ttype TLFileReplaceExternalContent,\n\ttype TLFilesExternalContent,\n\ttype TLSvgTextExternalContent,\n\ttype TLTextExternalContent,\n\ttype TLTextExternalContentSource,\n\ttype TLTldrawExternalContent,\n\ttype TLTldrawExternalContentSource,\n\ttype TLUrlExternalAsset,\n\ttype TLUrlExternalContent,\n} from './lib/editor/types/external-content'\nexport {\n\ttype TLHistoryBatchOptions,\n\ttype TLHistoryDiff,\n\ttype TLHistoryEntry,\n\ttype TLHistoryMark,\n} from './lib/editor/types/history-types'\nexport {\n\ttype OptionalKeys,\n\ttype RequiredKeys,\n\ttype TLCameraConstraints,\n\ttype TLCameraMoveOptions,\n\ttype TLCameraOptions,\n\ttype TLExportType,\n\ttype TLImageExportOptions,\n\ttype TLSvgExportOptions,\n\ttype TLSvgOptions,\n} from './lib/editor/types/misc-types'\nexport {\n\ttype TLAdjacentDirection,\n\ttype TLResizeHandle,\n\ttype TLSelectionHandle,\n} from './lib/editor/types/selection-types'\nexport {\n\tuseDelaySvgExport,\n\tuseSvgExportContext,\n\ttype SvgExportContext,\n\ttype SvgExportDef,\n} from './lib/editor/types/SvgExportContext'\nexport { getSvgAsImage } from './lib/exports/getSvgAsImage'\nexport { tlenv } from './lib/globals/environment'\nexport { tlmenus } from './lib/globals/menus'\nexport { tltime } from './lib/globals/time'\nexport {\n\tContainerProvider,\n\tuseContainer,\n\tuseContainerIfExists,\n\ttype ContainerProviderProps,\n} from './lib/hooks/useContainer'\nexport { getCursor } from './lib/hooks/useCursor'\nexport {\n\tEditorContext,\n\tEditorProvider,\n\tuseEditor,\n\tuseMaybeEditor,\n\ttype EditorProviderProps,\n} from './lib/hooks/useEditor'\nexport { useEditorComponents } from './lib/hooks/useEditorComponents'\nexport type { TLEditorComponents } from './lib/hooks/useEditorComponents'\nexport { useEvent, useReactiveEvent } from './lib/hooks/useEvent'\nexport { useGlobalMenuIsOpen } from './lib/hooks/useGlobalMenuIsOpen'\nexport { useShallowArrayIdentity, useShallowObjectIdentity } from './lib/hooks/useIdentity'\nexport { useIsCropping } from './lib/hooks/useIsCropping'\nexport { useIsDarkMode } from './lib/hooks/useIsDarkMode'\nexport { useIsEditing } from './lib/hooks/useIsEditing'\nexport { useLocalStore } from './lib/hooks/useLocalStore'\nexport { usePassThroughMouseOverEvents } from './lib/hooks/usePassThroughMouseOverEvents'\nexport { usePassThroughWheelEvents } from './lib/hooks/usePassThroughWheelEvents'\nexport { usePeerIds } from './lib/hooks/usePeerIds'\nexport { usePresence } from './lib/hooks/usePresence'\nexport { useRefState } from './lib/hooks/useRefState'\nexport {\n\tsanitizeId,\n\tsuffixSafeId,\n\tuseSharedSafeId,\n\tuseUniqueSafeId,\n\ttype SafeId,\n} from './lib/hooks/useSafeId'\nexport { useSelectionEvents } from './lib/hooks/useSelectionEvents'\nexport { useTLSchemaFromUtils, useTLStore } from './lib/hooks/useTLStore'\nexport { useTransform } from './lib/hooks/useTransform'\nexport { useViewportHeight } from './lib/hooks/useViewportHeight'\nexport {\n\tLicenseManager,\n\ttype InvalidLicenseKeyResult,\n\ttype InvalidLicenseReason,\n\ttype LicenseFromKeyResult,\n\ttype LicenseInfo,\n\ttype TestEnvironment,\n\ttype ValidLicenseKeyResult,\n} from './lib/license/LicenseManager'\nexport { defaultTldrawOptions, type TldrawOptions } from './lib/options'\nexport {\n\tBox,\n\tROTATE_CORNER_TO_SELECTION_CORNER,\n\trotateSelectionHandle,\n\ttype BoxLike,\n\ttype RotateCorner,\n\ttype SelectionCorner,\n\ttype SelectionEdge,\n\ttype SelectionHandle,\n} from './lib/primitives/Box'\nexport { EASINGS } from './lib/primitives/easings'\nexport { Arc2d } from './lib/primitives/geometry/Arc2d'\nexport { Circle2d } from './lib/primitives/geometry/Circle2d'\nexport { CubicBezier2d } from './lib/primitives/geometry/CubicBezier2d'\nexport { CubicSpline2d } from './lib/primitives/geometry/CubicSpline2d'\nexport { Edge2d } from './lib/primitives/geometry/Edge2d'\nexport { Ellipse2d } from './lib/primitives/geometry/Ellipse2d'\nexport { getVerticesCountForArcLength } from './lib/primitives/geometry/geometry-constants'\nexport {\n\tGeometry2d,\n\tGeometry2dFilters,\n\tTransformedGeometry2d,\n\ttype Geometry2dOptions,\n\ttype TransformedGeometry2dOptions,\n} from './lib/primitives/geometry/Geometry2d'\nexport { Group2d } from './lib/primitives/geometry/Group2d'\nexport { Point2d } from './lib/primitives/geometry/Point2d'\nexport { Polygon2d } from './lib/primitives/geometry/Polygon2d'\nexport { Polyline2d } from './lib/primitives/geometry/Polyline2d'\nexport { Rectangle2d } from './lib/primitives/geometry/Rectangle2d'\nexport { Stadium2d } from './lib/primitives/geometry/Stadium2d'\nexport {\n\tintersectCircleCircle,\n\tintersectCirclePolygon,\n\tintersectCirclePolyline,\n\tintersectLineSegmentCircle,\n\tintersectLineSegmentLineSegment,\n\tintersectLineSegmentPolygon,\n\tintersectLineSegmentPolyline,\n\tintersectPolygonBounds,\n\tintersectPolygonPolygon,\n\tlinesIntersect,\n\tpolygonIntersectsPolyline,\n\tpolygonsIntersect,\n} from './lib/primitives/intersect'\nexport { Mat, type MatLike, type MatModel } from './lib/primitives/Mat'\nexport {\n\tangleDistance,\n\tapproximately,\n\tareAnglesCompatible,\n\taverage,\n\tcanonicalizeRotation,\n\tcenterOfCircleFromThreePoints,\n\tclamp,\n\tclampRadians,\n\tclockwiseAngleDist,\n\tcounterClockwiseAngleDist,\n\tdegreesToRadians,\n\tgetArcMeasure,\n\tgetPointInArcT,\n\tgetPointOnCircle,\n\tgetPointsOnArc,\n\tgetPolygonVertices,\n\tHALF_PI,\n\tisSafeFloat,\n\tperimeterOfEllipse,\n\tPI,\n\tPI2,\n\tpointInPolygon,\n\tprecise,\n\tradiansToDegrees,\n\trangeIntersection,\n\tshortAngleDist,\n\tSIN,\n\tsnapAngle,\n\ttoDomPrecision,\n\ttoFixed,\n\ttoPrecision,\n} from './lib/primitives/utils'\nexport { Vec, type VecLike } from './lib/primitives/Vec'\nexport {\n\tErrorScreen,\n\tLoadingScreen,\n\tTldrawEditor,\n\tuseOnMount,\n\ttype LoadingScreenProps,\n\ttype TldrawEditorBaseProps,\n\ttype TldrawEditorProps,\n\ttype TldrawEditorStoreProps,\n\ttype TldrawEditorWithoutStoreProps,\n\ttype TldrawEditorWithStoreProps,\n\ttype TLOnMountHandler,\n} from './lib/TldrawEditor'\nexport { dataUrlToFile, getDefaultCdnBaseUrl } from './lib/utils/assets'\nexport { clampToBrowserMaxCanvasSize, type CanvasMaxSize } from './lib/utils/browserCanvasMaxSize'\nexport {\n\tdebugFlags,\n\tfeatureFlags,\n\ttype DebugFlag,\n\ttype DebugFlagDef,\n\ttype DebugFlagDefaults,\n} from './lib/utils/debug-flags'\nexport {\n\tcreateDeepLinkString,\n\tparseDeepLinkString,\n\ttype TLDeepLink,\n\ttype TLDeepLinkOptions,\n} from './lib/utils/deepLinks'\nexport {\n\tactiveElementShouldCaptureKeys,\n\tloopToHtmlElement,\n\tpreventDefault,\n\treleasePointerCapture,\n\tsetPointerCapture,\n\tstopEventPropagation,\n} from './lib/utils/dom'\nexport { getIncrementedName } from './lib/utils/getIncrementedName'\nexport { getPointerInfo } from './lib/utils/getPointerInfo'\nexport { getSvgPathFromPoints } from './lib/utils/getSvgPathFromPoints'\nexport { hardResetEditor } from './lib/utils/hardResetEditor'\nexport { isAccelKey } from './lib/utils/keyboard'\nexport { normalizeWheel } from './lib/utils/normalizeWheel'\nexport { refreshPage } from './lib/utils/refreshPage'\nexport { getDroppedShapesToNewParents, kickoutOccludedShapes } from './lib/utils/reparenting'\nexport {\n\tgetFontsFromRichText,\n\ttype RichTextFontVisitor,\n\ttype RichTextFontVisitorState,\n\ttype TiptapEditor,\n\ttype TiptapNode,\n\ttype TLTextOptions,\n} from './lib/utils/richText'\nexport {\n\tapplyRotationToSnapshotShapes,\n\tgetRotationSnapshot,\n\ttype TLRotationSnapshot,\n} from './lib/utils/rotation'\nexport { runtime, setRuntimeOverrides } from './lib/utils/runtime'\nexport {\n\tReadonlySharedStyleMap,\n\tSharedStyleMap,\n\ttype SharedStyle,\n} from './lib/utils/SharedStylesMap'\nexport { hardReset } from './lib/utils/sync/hardReset'\nexport { LocalIndexedDb, Table, type StoreName } from './lib/utils/sync/LocalIndexedDb'\nexport { type TLStoreWithStatus } from './lib/utils/sync/StoreWithStatus'\nexport { uniq } from './lib/utils/uniq'\nexport { openWindow } from './lib/utils/window-open'\n\n/**\n * @deprecated Licensing is now enabled in the tldraw SDK.\n * @public */\nexport function debugEnableLicensing() {\n\t// noop\n\treturn\n}\n\nregisterTldrawLibraryVersion(\n\t(globalThis as any).TLDRAW_LIBRARY_NAME,\n\t(globalThis as any).TLDRAW_LIBRARY_VERSION,\n\t(globalThis as any).TLDRAW_LIBRARY_MODULES\n)\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -10,6 +10,7 @@ const userTypeValidator = T.object({
10
10
  // N.B. These are duplicated in TLdrawAppUser.
11
11
  locale: T.string.nullable().optional(),
12
12
  animationSpeed: T.number.nullable().optional(),
13
+ areKeyboardShortcutsEnabled: T.boolean.nullable().optional(),
13
14
  edgeScrollSpeed: T.number.nullable().optional(),
14
15
  colorScheme: T.literalEnum("light", "dark", "system").optional(),
15
16
  isSnapMode: T.boolean.nullable().optional(),
@@ -25,7 +26,8 @@ const Versions = {
25
26
  AddExcalidrawSelectMode: 5,
26
27
  AddDynamicSizeMode: 6,
27
28
  AllowSystemColorScheme: 7,
28
- AddPasteAtCursor: 8
29
+ AddPasteAtCursor: 8,
30
+ AddKeyboardShortcuts: 9
29
31
  };
30
32
  const CURRENT_VERSION = Math.max(...Object.values(Versions));
31
33
  function migrateSnapshot(data) {
@@ -57,6 +59,9 @@ function migrateSnapshot(data) {
57
59
  if (data.version < Versions.AddPasteAtCursor) {
58
60
  data.user.isPasteAtCursorMode = false;
59
61
  }
62
+ if (data.version < Versions.AddKeyboardShortcuts) {
63
+ data.user.areKeyboardShortcutsEnabled = true;
64
+ }
60
65
  data.version = CURRENT_VERSION;
61
66
  }
62
67
  const USER_COLORS = [
@@ -89,6 +94,7 @@ const defaultUserPreferences = Object.freeze({
89
94
  // N.B. These are duplicated in TLdrawAppUser.
90
95
  edgeScrollSpeed: 1,
91
96
  animationSpeed: userPrefersReducedMotion() ? 0 : 1,
97
+ areKeyboardShortcutsEnabled: true,
92
98
  isSnapMode: false,
93
99
  isWrapMode: false,
94
100
  isDynamicSizeMode: false,