@tldraw/editor 3.14.0-canary.6c9c0f761ef8 → 3.14.0-canary.6d58db7084e2

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 (75) hide show
  1. package/dist-cjs/index.d.ts +63 -42
  2. package/dist-cjs/index.js +1 -3
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/config/TLSessionStateSnapshot.js +1 -12
  5. package/dist-cjs/lib/config/TLSessionStateSnapshot.js.map +3 -3
  6. package/dist-cjs/lib/editor/Editor.js +39 -6
  7. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  8. package/dist-cjs/lib/editor/bindings/BindingUtil.js.map +2 -2
  9. package/dist-cjs/lib/editor/managers/FontManager/FontManager.js +1 -2
  10. package/dist-cjs/lib/editor/managers/FontManager/FontManager.js.map +2 -2
  11. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js +73 -42
  12. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js.map +2 -2
  13. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +1 -1
  14. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +1 -1
  15. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +1 -1
  16. package/dist-cjs/lib/editor/tools/StateNode.js +3 -3
  17. package/dist-cjs/lib/editor/tools/StateNode.js.map +2 -2
  18. package/dist-cjs/lib/editor/types/emit-types.js.map +1 -1
  19. package/dist-cjs/lib/editor/types/external-content.js.map +1 -1
  20. package/dist-cjs/lib/hooks/useCanvasEvents.js +1 -2
  21. package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
  22. package/dist-cjs/lib/primitives/Box.js +0 -6
  23. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  24. package/dist-cjs/lib/utils/areShapesContentEqual.js +1 -1
  25. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +2 -2
  26. package/dist-cjs/lib/utils/richText.js +7 -2
  27. package/dist-cjs/lib/utils/richText.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 +63 -42
  31. package/dist-esm/index.mjs +1 -3
  32. package/dist-esm/index.mjs.map +2 -2
  33. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs +1 -1
  34. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs.map +2 -2
  35. package/dist-esm/lib/editor/Editor.mjs +39 -6
  36. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  37. package/dist-esm/lib/editor/bindings/BindingUtil.mjs.map +2 -2
  38. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs +1 -2
  39. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +2 -2
  40. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs +73 -42
  41. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +2 -2
  42. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +1 -1
  43. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +1 -1
  44. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +1 -1
  45. package/dist-esm/lib/editor/tools/StateNode.mjs +3 -3
  46. package/dist-esm/lib/editor/tools/StateNode.mjs.map +2 -2
  47. package/dist-esm/lib/hooks/useCanvasEvents.mjs +1 -2
  48. package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
  49. package/dist-esm/lib/primitives/Box.mjs +0 -6
  50. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  51. package/dist-esm/lib/utils/areShapesContentEqual.mjs +1 -1
  52. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +2 -2
  53. package/dist-esm/lib/utils/richText.mjs +8 -3
  54. package/dist-esm/lib/utils/richText.mjs.map +2 -2
  55. package/dist-esm/version.mjs +3 -3
  56. package/dist-esm/version.mjs.map +1 -1
  57. package/editor.css +433 -482
  58. package/package.json +8 -9
  59. package/src/index.ts +2 -1
  60. package/src/lib/config/TLSessionStateSnapshot.ts +1 -1
  61. package/src/lib/editor/Editor.ts +38 -3
  62. package/src/lib/editor/bindings/BindingUtil.ts +6 -0
  63. package/src/lib/editor/managers/FontManager/FontManager.ts +1 -2
  64. package/src/lib/editor/managers/TextManager/TextManager.test.ts +1 -5
  65. package/src/lib/editor/managers/TextManager/TextManager.ts +118 -86
  66. package/src/lib/editor/shapes/ShapeUtil.ts +1 -0
  67. package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +1 -1
  68. package/src/lib/editor/tools/StateNode.ts +3 -3
  69. package/src/lib/editor/types/emit-types.ts +4 -0
  70. package/src/lib/editor/types/external-content.ts +11 -2
  71. package/src/lib/hooks/useCanvasEvents.ts +0 -1
  72. package/src/lib/primitives/Box.ts +0 -8
  73. package/src/lib/utils/areShapesContentEqual.ts +1 -2
  74. package/src/lib/utils/richText.ts +9 -3
  75. package/src/version.ts +3 -3
@@ -1,8 +1,8 @@
1
1
  import { getSchema, JSONContent, Editor as TTEditor } from '@tiptap/core'
2
- import { Node } from '@tiptap/pm/model'
2
+ import { Node, Schema } from '@tiptap/pm/model'
3
3
  import { EditorProviderProps } from '@tiptap/react'
4
4
  import { TLRichText } from '@tldraw/tlschema'
5
- import { assert } from '@tldraw/utils'
5
+ import { assert, WeakCache } from '@tldraw/utils'
6
6
  import { Editor } from '../editor/Editor'
7
7
  import { TLFontFace } from '../editor/managers/FontManager/FontManager'
8
8
 
@@ -39,6 +39,11 @@ export type RichTextFontVisitor = (
39
39
  addFont: (font: TLFontFace) => void
40
40
  ) => RichTextFontVisitorState
41
41
 
42
+ const schemaCache = new WeakCache<EditorProviderProps, Schema>()
43
+ export function getTipTapSchema(tipTapConfig: EditorProviderProps) {
44
+ return schemaCache.get(tipTapConfig, () => getSchema(tipTapConfig.extensions ?? []))
45
+ }
46
+
42
47
  /** @public */
43
48
  export function getFontsFromRichText(
44
49
  editor: Editor,
@@ -49,7 +54,8 @@ export function getFontsFromRichText(
49
54
  assert(tipTapConfig, 'textOptions.tipTapConfig must be set to use rich text')
50
55
  assert(addFontsFromNode, 'textOptions.addFontsFromNode must be set to use rich text')
51
56
 
52
- const schema = getSchema(tipTapConfig.extensions ?? [])
57
+ const schema = getTipTapSchema(tipTapConfig)
58
+
53
59
  const rootNode = Node.fromJSON(schema, richText as JSONContent)
54
60
 
55
61
  const fonts = new Set<TLFontFace>()
package/src/version.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  // This file is automatically generated by internal/scripts/refresh-assets.ts.
2
2
  // Do not edit manually. Or do, I'm a comment, not a cop.
3
3
 
4
- export const version = '3.14.0-canary.6c9c0f761ef8'
4
+ export const version = '3.14.0-canary.6d58db7084e2'
5
5
  export const publishDates = {
6
6
  major: '2024-09-13T14:36:29.063Z',
7
- minor: '2025-06-10T10:26:20.680Z',
8
- patch: '2025-06-10T10:26:20.680Z',
7
+ minor: '2025-06-24T11:25:37.563Z',
8
+ patch: '2025-06-24T11:25:37.563Z',
9
9
  }