@tldraw/editor 3.14.0-canary.7b5fb115ed17 → 3.14.0-canary.7be18509d9b9

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 (51) hide show
  1. package/dist-cjs/index.d.ts +6 -5
  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 +8 -5
  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/shapes/group/GroupShapeUtil.js +1 -1
  12. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +1 -1
  13. package/dist-cjs/lib/primitives/Box.js +0 -6
  14. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  15. package/dist-cjs/lib/utils/areShapesContentEqual.js +1 -1
  16. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +2 -2
  17. package/dist-cjs/lib/utils/richText.js +7 -2
  18. package/dist-cjs/lib/utils/richText.js.map +2 -2
  19. package/dist-cjs/version.js +3 -3
  20. package/dist-cjs/version.js.map +1 -1
  21. package/dist-esm/index.d.mts +6 -5
  22. package/dist-esm/index.mjs +1 -3
  23. package/dist-esm/index.mjs.map +2 -2
  24. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs +1 -1
  25. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs.map +2 -2
  26. package/dist-esm/lib/editor/Editor.mjs +8 -5
  27. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  28. package/dist-esm/lib/editor/bindings/BindingUtil.mjs.map +2 -2
  29. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs +1 -2
  30. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +2 -2
  31. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +1 -1
  32. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +1 -1
  33. package/dist-esm/lib/primitives/Box.mjs +0 -6
  34. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  35. package/dist-esm/lib/utils/areShapesContentEqual.mjs +1 -1
  36. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +2 -2
  37. package/dist-esm/lib/utils/richText.mjs +8 -3
  38. package/dist-esm/lib/utils/richText.mjs.map +2 -2
  39. package/dist-esm/version.mjs +3 -3
  40. package/dist-esm/version.mjs.map +1 -1
  41. package/package.json +8 -9
  42. package/src/index.ts +0 -1
  43. package/src/lib/config/TLSessionStateSnapshot.ts +1 -1
  44. package/src/lib/editor/Editor.ts +4 -2
  45. package/src/lib/editor/bindings/BindingUtil.ts +6 -0
  46. package/src/lib/editor/managers/FontManager/FontManager.ts +1 -2
  47. package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +1 -1
  48. package/src/lib/primitives/Box.ts +0 -8
  49. package/src/lib/utils/areShapesContentEqual.ts +1 -2
  50. package/src/lib/utils/richText.ts +9 -3
  51. 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.7b5fb115ed17'
4
+ export const version = '3.14.0-canary.7be18509d9b9'
5
5
  export const publishDates = {
6
6
  major: '2024-09-13T14:36:29.063Z',
7
- minor: '2025-06-10T07:39:27.416Z',
8
- patch: '2025-06-10T07:39:27.416Z',
7
+ minor: '2025-06-12T08:25:18.950Z',
8
+ patch: '2025-06-12T08:25:18.950Z',
9
9
  }