@tldraw/editor 5.2.0-canary.ce536abae8e2 → 5.2.0-canary.d28cf4347708

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 (78) hide show
  1. package/dist-cjs/index.d.ts +8 -13
  2. package/dist-cjs/index.js +1 -5
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/components/default-components/DefaultCanvas.js +1 -16
  5. package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
  6. package/dist-cjs/lib/editor/Editor.js +3 -1
  7. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  8. package/dist-cjs/lib/editor/managers/FontManager/FontManager.js +28 -4
  9. package/dist-cjs/lib/editor/managers/FontManager/FontManager.js.map +3 -3
  10. package/dist-cjs/lib/editor/types/event-types.js.map +2 -2
  11. package/dist-cjs/lib/globals/environment.js +6 -1
  12. package/dist-cjs/lib/globals/environment.js.map +2 -2
  13. package/dist-cjs/lib/hooks/EditorComponentsContext.js.map +2 -2
  14. package/dist-cjs/lib/hooks/useCanvasEvents.js +3 -1
  15. package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
  16. package/dist-cjs/lib/hooks/useEditorComponents.js +0 -1
  17. package/dist-cjs/lib/hooks/useEditorComponents.js.map +2 -2
  18. package/dist-cjs/lib/hooks/useScreenBounds.js +1 -0
  19. package/dist-cjs/lib/hooks/useScreenBounds.js.map +2 -2
  20. package/dist-cjs/lib/primitives/Vec.js +3 -2
  21. package/dist-cjs/lib/primitives/Vec.js.map +2 -2
  22. package/dist-cjs/lib/utils/pointer.js +5 -0
  23. package/dist-cjs/lib/utils/pointer.js.map +2 -2
  24. package/dist-cjs/version.js +3 -3
  25. package/dist-cjs/version.js.map +1 -1
  26. package/dist-esm/index.d.mts +8 -13
  27. package/dist-esm/index.mjs +1 -7
  28. package/dist-esm/index.mjs.map +2 -2
  29. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +1 -16
  30. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
  31. package/dist-esm/lib/editor/Editor.mjs +3 -1
  32. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  33. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs +28 -4
  34. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +3 -3
  35. package/dist-esm/lib/editor/types/event-types.mjs.map +2 -2
  36. package/dist-esm/lib/globals/environment.mjs +6 -1
  37. package/dist-esm/lib/globals/environment.mjs.map +2 -2
  38. package/dist-esm/lib/hooks/EditorComponentsContext.mjs.map +2 -2
  39. package/dist-esm/lib/hooks/useCanvasEvents.mjs +4 -2
  40. package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
  41. package/dist-esm/lib/hooks/useEditorComponents.mjs +0 -1
  42. package/dist-esm/lib/hooks/useEditorComponents.mjs.map +2 -2
  43. package/dist-esm/lib/hooks/useScreenBounds.mjs +1 -0
  44. package/dist-esm/lib/hooks/useScreenBounds.mjs.map +2 -2
  45. package/dist-esm/lib/primitives/Vec.mjs +3 -2
  46. package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
  47. package/dist-esm/lib/utils/pointer.mjs +5 -0
  48. package/dist-esm/lib/utils/pointer.mjs.map +2 -2
  49. package/dist-esm/version.mjs +3 -3
  50. package/dist-esm/version.mjs.map +1 -1
  51. package/editor.css +1 -0
  52. package/package.json +7 -7
  53. package/src/index.ts +0 -5
  54. package/src/lib/components/default-components/DefaultCanvas.tsx +1 -17
  55. package/src/lib/editor/Editor.test.ts +36 -0
  56. package/src/lib/editor/Editor.ts +14 -2
  57. package/src/lib/editor/managers/FontManager/FontManager.test.ts +24 -1
  58. package/src/lib/editor/managers/FontManager/FontManager.ts +46 -1
  59. package/src/lib/editor/types/event-types.ts +7 -0
  60. package/src/lib/globals/environment.ts +7 -0
  61. package/src/lib/hooks/EditorComponentsContext.tsx +0 -2
  62. package/src/lib/hooks/useCanvasEvents.ts +6 -1
  63. package/src/lib/hooks/useEditorComponents.tsx +0 -1
  64. package/src/lib/hooks/useScreenBounds.ts +3 -0
  65. package/src/lib/primitives/Vec.ts +5 -2
  66. package/src/lib/utils/pointer.test.ts +29 -1
  67. package/src/lib/utils/pointer.ts +24 -0
  68. package/src/version.ts +3 -3
  69. package/dist-cjs/lib/components/default-components/DefaultSelectionBackground.js +0 -49
  70. package/dist-cjs/lib/components/default-components/DefaultSelectionBackground.js.map +0 -7
  71. package/dist-cjs/lib/hooks/useTransform.js +0 -43
  72. package/dist-cjs/lib/hooks/useTransform.js.map +0 -7
  73. package/dist-esm/lib/components/default-components/DefaultSelectionBackground.mjs +0 -19
  74. package/dist-esm/lib/components/default-components/DefaultSelectionBackground.mjs.map +0 -7
  75. package/dist-esm/lib/hooks/useTransform.mjs +0 -23
  76. package/dist-esm/lib/hooks/useTransform.mjs.map +0 -7
  77. package/src/lib/components/default-components/DefaultSelectionBackground.tsx +0 -25
  78. package/src/lib/hooks/useTransform.ts +0 -30
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/lib/hooks/useTransform.ts"],
4
- "sourcesContent": ["import { useLayoutEffect } from 'react'\nimport { VecLike } from '../primitives/Vec'\n\n/** @public */\nexport function useTransform(\n\tref: React.RefObject<HTMLElement | SVGElement | null>,\n\tx?: number,\n\ty?: number,\n\tscale?: number,\n\trotate?: number,\n\tadditionalOffset?: VecLike\n) {\n\tuseLayoutEffect(() => {\n\t\tconst elm = ref.current\n\t\tif (!elm) return\n\t\tif (x === undefined) return\n\n\t\tlet trans = `translate(${x}px, ${y}px)`\n\t\tif (scale !== undefined) {\n\t\t\ttrans += ` scale(${scale})`\n\t\t}\n\t\tif (rotate !== undefined) {\n\t\t\ttrans += ` rotate(${rotate}rad)`\n\t\t}\n\t\tif (additionalOffset) {\n\t\t\ttrans += ` translate(${additionalOffset.x}px, ${additionalOffset.y}px)`\n\t\t}\n\t\telm.style.transform = trans\n\t})\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAgC;AAIzB,SAAS,aACf,KACA,GACA,GACA,OACA,QACA,kBACC;AACD,oCAAgB,MAAM;AACrB,UAAM,MAAM,IAAI;AAChB,QAAI,CAAC,IAAK;AACV,QAAI,MAAM,OAAW;AAErB,QAAI,QAAQ,aAAa,CAAC,OAAO,CAAC;AAClC,QAAI,UAAU,QAAW;AACxB,eAAS,UAAU,KAAK;AAAA,IACzB;AACA,QAAI,WAAW,QAAW;AACzB,eAAS,WAAW,MAAM;AAAA,IAC3B;AACA,QAAI,kBAAkB;AACrB,eAAS,cAAc,iBAAiB,CAAC,OAAO,iBAAiB,CAAC;AAAA,IACnE;AACA,QAAI,MAAM,YAAY;AAAA,EACvB,CAAC;AACF;",
6
- "names": []
7
- }
@@ -1,19 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import { useTransform } from "../../hooks/useTransform.mjs";
4
- import { toDomPrecision } from "../../primitives/utils.mjs";
5
- function DefaultSelectionBackground({ bounds, rotation }) {
6
- const rDiv = React.useRef(null);
7
- useTransform(rDiv, bounds.x, bounds.y, 1, rotation);
8
- React.useLayoutEffect(() => {
9
- const div = rDiv.current;
10
- if (!div) return;
11
- div.style.width = toDomPrecision(Math.max(1, bounds.width)) + "px";
12
- div.style.height = toDomPrecision(Math.max(1, bounds.height)) + "px";
13
- }, [bounds.width, bounds.height]);
14
- return /* @__PURE__ */ jsx("div", { ref: rDiv, className: "tl-selection__bg", draggable: false });
15
- }
16
- export {
17
- DefaultSelectionBackground
18
- };
19
- //# sourceMappingURL=DefaultSelectionBackground.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/lib/components/default-components/DefaultSelectionBackground.tsx"],
4
- "sourcesContent": ["import * as React from 'react'\nimport { useTransform } from '../../hooks/useTransform'\nimport { Box } from '../../primitives/Box'\nimport { toDomPrecision } from '../../primitives/utils'\n\n/** @public */\nexport interface TLSelectionBackgroundProps {\n\tbounds: Box\n\trotation: number\n}\n\n/** @public @react */\nexport function DefaultSelectionBackground({ bounds, rotation }: TLSelectionBackgroundProps) {\n\tconst rDiv = React.useRef<HTMLDivElement>(null)\n\tuseTransform(rDiv, bounds.x, bounds.y, 1, rotation)\n\n\tReact.useLayoutEffect(() => {\n\t\tconst div = rDiv.current\n\t\tif (!div) return\n\t\tdiv.style.width = toDomPrecision(Math.max(1, bounds.width)) + 'px'\n\t\tdiv.style.height = toDomPrecision(Math.max(1, bounds.height)) + 'px'\n\t}, [bounds.width, bounds.height])\n\n\treturn <div ref={rDiv} className=\"tl-selection__bg\" draggable={false} />\n}\n"],
5
- "mappings": "AAuBQ;AAvBR,YAAY,WAAW;AACvB,SAAS,oBAAoB;AAE7B,SAAS,sBAAsB;AASxB,SAAS,2BAA2B,EAAE,QAAQ,SAAS,GAA+B;AAC5F,QAAM,OAAO,MAAM,OAAuB,IAAI;AAC9C,eAAa,MAAM,OAAO,GAAG,OAAO,GAAG,GAAG,QAAQ;AAElD,QAAM,gBAAgB,MAAM;AAC3B,UAAM,MAAM,KAAK;AACjB,QAAI,CAAC,IAAK;AACV,QAAI,MAAM,QAAQ,eAAe,KAAK,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI;AAC9D,QAAI,MAAM,SAAS,eAAe,KAAK,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI;AAAA,EACjE,GAAG,CAAC,OAAO,OAAO,OAAO,MAAM,CAAC;AAEhC,SAAO,oBAAC,SAAI,KAAK,MAAM,WAAU,oBAAmB,WAAW,OAAO;AACvE;",
6
- "names": []
7
- }
@@ -1,23 +0,0 @@
1
- import { useLayoutEffect } from "react";
2
- function useTransform(ref, x, y, scale, rotate, additionalOffset) {
3
- useLayoutEffect(() => {
4
- const elm = ref.current;
5
- if (!elm) return;
6
- if (x === void 0) return;
7
- let trans = `translate(${x}px, ${y}px)`;
8
- if (scale !== void 0) {
9
- trans += ` scale(${scale})`;
10
- }
11
- if (rotate !== void 0) {
12
- trans += ` rotate(${rotate}rad)`;
13
- }
14
- if (additionalOffset) {
15
- trans += ` translate(${additionalOffset.x}px, ${additionalOffset.y}px)`;
16
- }
17
- elm.style.transform = trans;
18
- });
19
- }
20
- export {
21
- useTransform
22
- };
23
- //# sourceMappingURL=useTransform.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/lib/hooks/useTransform.ts"],
4
- "sourcesContent": ["import { useLayoutEffect } from 'react'\nimport { VecLike } from '../primitives/Vec'\n\n/** @public */\nexport function useTransform(\n\tref: React.RefObject<HTMLElement | SVGElement | null>,\n\tx?: number,\n\ty?: number,\n\tscale?: number,\n\trotate?: number,\n\tadditionalOffset?: VecLike\n) {\n\tuseLayoutEffect(() => {\n\t\tconst elm = ref.current\n\t\tif (!elm) return\n\t\tif (x === undefined) return\n\n\t\tlet trans = `translate(${x}px, ${y}px)`\n\t\tif (scale !== undefined) {\n\t\t\ttrans += ` scale(${scale})`\n\t\t}\n\t\tif (rotate !== undefined) {\n\t\t\ttrans += ` rotate(${rotate}rad)`\n\t\t}\n\t\tif (additionalOffset) {\n\t\t\ttrans += ` translate(${additionalOffset.x}px, ${additionalOffset.y}px)`\n\t\t}\n\t\telm.style.transform = trans\n\t})\n}\n"],
5
- "mappings": "AAAA,SAAS,uBAAuB;AAIzB,SAAS,aACf,KACA,GACA,GACA,OACA,QACA,kBACC;AACD,kBAAgB,MAAM;AACrB,UAAM,MAAM,IAAI;AAChB,QAAI,CAAC,IAAK;AACV,QAAI,MAAM,OAAW;AAErB,QAAI,QAAQ,aAAa,CAAC,OAAO,CAAC;AAClC,QAAI,UAAU,QAAW;AACxB,eAAS,UAAU,KAAK;AAAA,IACzB;AACA,QAAI,WAAW,QAAW;AACzB,eAAS,WAAW,MAAM;AAAA,IAC3B;AACA,QAAI,kBAAkB;AACrB,eAAS,cAAc,iBAAiB,CAAC,OAAO,iBAAiB,CAAC;AAAA,IACnE;AACA,QAAI,MAAM,YAAY;AAAA,EACvB,CAAC;AACF;",
6
- "names": []
7
- }
@@ -1,25 +0,0 @@
1
- import * as React from 'react'
2
- import { useTransform } from '../../hooks/useTransform'
3
- import { Box } from '../../primitives/Box'
4
- import { toDomPrecision } from '../../primitives/utils'
5
-
6
- /** @public */
7
- export interface TLSelectionBackgroundProps {
8
- bounds: Box
9
- rotation: number
10
- }
11
-
12
- /** @public @react */
13
- export function DefaultSelectionBackground({ bounds, rotation }: TLSelectionBackgroundProps) {
14
- const rDiv = React.useRef<HTMLDivElement>(null)
15
- useTransform(rDiv, bounds.x, bounds.y, 1, rotation)
16
-
17
- React.useLayoutEffect(() => {
18
- const div = rDiv.current
19
- if (!div) return
20
- div.style.width = toDomPrecision(Math.max(1, bounds.width)) + 'px'
21
- div.style.height = toDomPrecision(Math.max(1, bounds.height)) + 'px'
22
- }, [bounds.width, bounds.height])
23
-
24
- return <div ref={rDiv} className="tl-selection__bg" draggable={false} />
25
- }
@@ -1,30 +0,0 @@
1
- import { useLayoutEffect } from 'react'
2
- import { VecLike } from '../primitives/Vec'
3
-
4
- /** @public */
5
- export function useTransform(
6
- ref: React.RefObject<HTMLElement | SVGElement | null>,
7
- x?: number,
8
- y?: number,
9
- scale?: number,
10
- rotate?: number,
11
- additionalOffset?: VecLike
12
- ) {
13
- useLayoutEffect(() => {
14
- const elm = ref.current
15
- if (!elm) return
16
- if (x === undefined) return
17
-
18
- let trans = `translate(${x}px, ${y}px)`
19
- if (scale !== undefined) {
20
- trans += ` scale(${scale})`
21
- }
22
- if (rotate !== undefined) {
23
- trans += ` rotate(${rotate}rad)`
24
- }
25
- if (additionalOffset) {
26
- trans += ` translate(${additionalOffset.x}px, ${additionalOffset.y}px)`
27
- }
28
- elm.style.transform = trans
29
- })
30
- }