@payloadcms/richtext-lexical 0.1.0-beta.3 → 0.1.0-beta.4

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 (68) hide show
  1. package/README.md +28 -0
  2. package/dist/field/features/Blocks/afterReadPromise.d.ts.map +1 -1
  3. package/dist/field/features/Blocks/afterReadPromise.js +4 -3
  4. package/dist/field/features/Blocks/component/index.scss +5 -0
  5. package/dist/field/features/Link/afterReadPromise.d.ts.map +1 -1
  6. package/dist/field/features/Link/afterReadPromise.js +6 -5
  7. package/dist/field/features/Link/index.d.ts.map +1 -1
  8. package/dist/field/features/Link/index.js +1 -1
  9. package/dist/field/features/Link/nodes/LinkNode.d.ts +4 -2
  10. package/dist/field/features/Link/nodes/LinkNode.d.ts.map +1 -1
  11. package/dist/field/features/Link/nodes/LinkNode.js +1 -41
  12. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  13. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.js +14 -5
  14. package/dist/field/features/Relationship/afterReadPromise.js +6 -6
  15. package/dist/field/features/Relationship/drawer/index.d.ts.map +1 -1
  16. package/dist/field/features/Relationship/drawer/index.js +9 -7
  17. package/dist/field/features/Relationship/index.d.ts.map +1 -1
  18. package/dist/field/features/Relationship/index.js +1 -1
  19. package/dist/field/features/Relationship/nodes/RelationshipNode.d.ts +12 -12
  20. package/dist/field/features/Relationship/nodes/RelationshipNode.d.ts.map +1 -1
  21. package/dist/field/features/Relationship/nodes/RelationshipNode.js +25 -20
  22. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.d.ts +2 -2
  23. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.d.ts.map +1 -1
  24. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.js +2 -2
  25. package/dist/field/features/Relationship/plugins/index.d.ts +2 -2
  26. package/dist/field/features/Relationship/plugins/index.d.ts.map +1 -1
  27. package/dist/field/features/Relationship/plugins/index.js +1 -1
  28. package/dist/field/features/Upload/afterReadPromise.d.ts.map +1 -1
  29. package/dist/field/features/Upload/afterReadPromise.js +10 -9
  30. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -1
  31. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.js +6 -6
  32. package/dist/field/features/Upload/component/index.d.ts +2 -2
  33. package/dist/field/features/Upload/component/index.d.ts.map +1 -1
  34. package/dist/field/features/Upload/component/index.js +2 -2
  35. package/dist/field/features/Upload/drawer/index.d.ts.map +1 -1
  36. package/dist/field/features/Upload/drawer/index.js +4 -2
  37. package/dist/field/features/Upload/index.d.ts.map +1 -1
  38. package/dist/field/features/Upload/index.js +6 -2
  39. package/dist/field/features/Upload/nodes/UploadNode.d.ts +15 -12
  40. package/dist/field/features/Upload/nodes/UploadNode.d.ts.map +1 -1
  41. package/dist/field/features/Upload/nodes/UploadNode.js +19 -14
  42. package/dist/field/features/Upload/plugin/index.d.ts.map +1 -1
  43. package/dist/field/features/Upload/plugin/index.js +3 -2
  44. package/dist/field/features/Upload/validate.d.ts +4 -0
  45. package/dist/field/features/Upload/validate.d.ts.map +1 -0
  46. package/dist/field/features/Upload/validate.js +29 -0
  47. package/dist/field/features/types.d.ts +2 -1
  48. package/dist/field/features/types.d.ts.map +1 -1
  49. package/dist/field/lexical/config/default.d.ts +4 -0
  50. package/dist/field/lexical/config/default.d.ts.map +1 -1
  51. package/dist/field/lexical/config/default.js +33 -25
  52. package/dist/field/lexical/ui/ContentEditable.scss +5 -0
  53. package/dist/field/lexical/utils/cloneDeep.d.ts +1 -1
  54. package/dist/field/lexical/utils/cloneDeep.d.ts.map +1 -1
  55. package/dist/field/lexical/utils/cloneDeep.js +27 -9
  56. package/dist/index.d.ts +11 -5
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +24 -3
  59. package/dist/populate/recurseNestedFields.d.ts +2 -1
  60. package/dist/populate/recurseNestedFields.d.ts.map +1 -1
  61. package/dist/populate/recurseNestedFields.js +28 -25
  62. package/dist/populate/richTextRelationshipPromise.d.ts +2 -1
  63. package/dist/populate/richTextRelationshipPromise.d.ts.map +1 -1
  64. package/dist/populate/richTextRelationshipPromise.js +8 -5
  65. package/dist/validate/validateNodes.d.ts.map +1 -1
  66. package/dist/validate/validateNodes.js +1 -1
  67. package/package.json +3 -3
  68. package/src/index.ts +42 -11
@@ -41,4 +41,4 @@ async function validateNodes({ nodeValidations, nodes, payloadConfig, validation
41
41
  return true;
42
42
  }
43
43
 
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0ZS92YWxpZGF0ZU5vZGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXplZEVkaXRvclN0YXRlLCBTZXJpYWxpemVkTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgUmljaFRleHRGaWVsZCwgVmFsaWRhdGVPcHRpb25zIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBOb2RlVmFsaWRhdGlvbiB9IGZyb20gJy4uL2ZpZWxkL2ZlYXR1cmVzL3R5cGVzJ1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlTm9kZXMoe1xuICBub2RlVmFsaWRhdGlvbnMsXG4gIG5vZGVzLFxuICBwYXlsb2FkQ29uZmlnLFxuICB2YWxpZGF0aW9uOiB2YWxpZGF0aW9uRnJvbVByb3BzLFxufToge1xuICBub2RlVmFsaWRhdGlvbnM6IE1hcDxzdHJpbmcsIEFycmF5PE5vZGVWYWxpZGF0aW9uPj5cbiAgbm9kZXM6IFNlcmlhbGl6ZWRMZXhpY2FsTm9kZVtdXG4gIHBheWxvYWRDb25maWc6IFNhbml0aXplZENvbmZpZ1xuICB2YWxpZGF0aW9uOiB7XG4gICAgb3B0aW9uczogVmFsaWRhdGVPcHRpb25zPFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSwgdW5rbm93biwgUmljaFRleHRGaWVsZD5cbiAgICB2YWx1ZTogU2VyaWFsaXplZEVkaXRvclN0YXRlXG4gIH1cbn0pOiBQcm9taXNlPHN0cmluZyB8IHRydWU+IHtcbiAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgLy8gVmFsaWRhdGUgbm9kZVxuICAgIGlmIChcbiAgICAgIG5vZGVWYWxpZGF0aW9ucyAmJlxuICAgICAgdHlwZW9mIG5vZGVWYWxpZGF0aW9ucz8uaGFzID09PSAnZnVuY3Rpb24nICYmXG4gICAgICBub2RlVmFsaWRhdGlvbnM/Lmhhcyhub2RlLnR5cGUpXG4gICAgKSB7XG4gICAgICBjb25zdCB2YWxpZGF0aW9ucyA9IG5vZGVWYWxpZGF0aW9ucy5nZXQobm9kZS50eXBlKVxuICAgICAgZm9yIChjb25zdCB2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25zKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB2YWxpZGF0aW9uKHtcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIG5vZGVWYWxpZGF0aW9ucyxcbiAgICAgICAgICBwYXlsb2FkQ29uZmlnLFxuICAgICAgICAgIHZhbGlkYXRpb246IHZhbGlkYXRpb25Gcm9tUHJvcHMsXG4gICAgICAgIH0pXG4gICAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0ICE9PSB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBWYWxpZGF0ZSBub2RlJ3MgY2hpbGRyZW5cbiAgICBpZiAoJ2NoaWxkcmVuJyBpbiBub2RlICYmIG5vZGU/LmNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBjaGlsZHJlblZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZU5vZGVzKHtcbiAgICAgICAgbm9kZVZhbGlkYXRpb25zLFxuICAgICAgICBub2Rlczogbm9kZS5jaGlsZHJlbiBhcyBTZXJpYWxpemVkTGV4aWNhbE5vZGVbXSxcbiAgICAgICAgcGF5bG9hZENvbmZpZyxcbiAgICAgICAgdmFsaWRhdGlvbjogdmFsaWRhdGlvbkZyb21Qcm9wcyxcbiAgICAgIH0pXG4gICAgICBpZiAoY2hpbGRyZW5WYWxpZGF0aW9uUmVzdWx0ICE9PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlblZhbGlkYXRpb25SZXN1bHRcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuIl0sIm5hbWVzIjpbInZhbGlkYXRlTm9kZXMiLCJub2RlVmFsaWRhdGlvbnMiLCJub2RlcyIsInBheWxvYWRDb25maWciLCJ2YWxpZGF0aW9uIiwidmFsaWRhdGlvbkZyb21Qcm9wcyIsIm5vZGUiLCJoYXMiLCJ0eXBlIiwidmFsaWRhdGlvbnMiLCJnZXQiLCJ2YWxpZGF0aW9uUmVzdWx0IiwiY2hpbGRyZW4iLCJjaGlsZHJlblZhbGlkYXRpb25SZXN1bHQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBS3NCQTs7O2VBQUFBOzs7QUFBZixlQUFlQSxjQUFjLEVBQ2xDQyxlQUFlLEVBQ2ZDLEtBQUssRUFDTEMsYUFBYSxFQUNiQyxZQUFZQyxtQkFBbUIsRUFTaEM7SUFDQyxLQUFLLE1BQU1DLFFBQVFKLE1BQU87UUFDeEIsZ0JBQWdCO1FBQ2hCLElBQ0VELG1CQUNBLE9BQU9BLGlCQUFpQk0sUUFBUSxjQUNoQ04saUJBQWlCTSxJQUFJRCxLQUFLRSxJQUFJLEdBQzlCO1lBQ0EsTUFBTUMsY0FBY1IsZ0JBQWdCUyxHQUFHLENBQUNKLEtBQUtFLElBQUk7WUFDakQsS0FBSyxNQUFNSixjQUFjSyxZQUFhO2dCQUNwQyxNQUFNRSxtQkFBbUIsTUFBTVAsV0FBVztvQkFDeENFO29CQUNBTDtvQkFDQUU7b0JBQ0FDLFlBQVlDO2dCQUNkO2dCQUNBLElBQUlNLHFCQUFxQixNQUFNO29CQUM3QixPQUFPQTtnQkFDVDtZQUNGO1FBQ0Y7UUFDQSwyQkFBMkI7UUFDM0IsSUFBSSxjQUFjTCxRQUFRQSxNQUFNTSxVQUFVO1lBQ3hDLE1BQU1DLDJCQUEyQixNQUFNYixjQUFjO2dCQUNuREM7Z0JBQ0FDLE9BQU9JLEtBQUtNLFFBQVE7Z0JBQ3BCVDtnQkFDQUMsWUFBWUM7WUFDZDtZQUNBLElBQUlRLDZCQUE2QixNQUFNO2dCQUNyQyxPQUFPQTtZQUNUO1FBQ0Y7SUFDRjtJQUVBLE9BQU87QUFDVCJ9
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0ZS92YWxpZGF0ZU5vZGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXplZEVkaXRvclN0YXRlLCBTZXJpYWxpemVkTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgUmljaFRleHRGaWVsZCwgVmFsaWRhdGVPcHRpb25zIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBOb2RlVmFsaWRhdGlvbiB9IGZyb20gJy4uL2ZpZWxkL2ZlYXR1cmVzL3R5cGVzJ1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVOb2Rlcyh7XG4gIG5vZGVWYWxpZGF0aW9ucyxcbiAgbm9kZXMsXG4gIHBheWxvYWRDb25maWcsXG4gIHZhbGlkYXRpb246IHZhbGlkYXRpb25Gcm9tUHJvcHMsXG59OiB7XG4gIG5vZGVWYWxpZGF0aW9uczogTWFwPHN0cmluZywgQXJyYXk8Tm9kZVZhbGlkYXRpb24+PlxuICBub2RlczogU2VyaWFsaXplZExleGljYWxOb2RlW11cbiAgcGF5bG9hZENvbmZpZzogU2FuaXRpemVkQ29uZmlnXG4gIHZhbGlkYXRpb246IHtcbiAgICBvcHRpb25zOiBWYWxpZGF0ZU9wdGlvbnM8U2VyaWFsaXplZEVkaXRvclN0YXRlLCB1bmtub3duLCBSaWNoVGV4dEZpZWxkPlxuICAgIHZhbHVlOiBTZXJpYWxpemVkRWRpdG9yU3RhdGVcbiAgfVxufSk6IFByb21pc2U8c3RyaW5nIHwgdHJ1ZT4ge1xuICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAvLyBWYWxpZGF0ZSBub2RlXG4gICAgaWYgKFxuICAgICAgbm9kZVZhbGlkYXRpb25zICYmXG4gICAgICB0eXBlb2Ygbm9kZVZhbGlkYXRpb25zPy5oYXMgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIG5vZGVWYWxpZGF0aW9ucz8uaGFzKG5vZGUudHlwZSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25zID0gbm9kZVZhbGlkYXRpb25zLmdldChub2RlLnR5cGUpXG4gICAgICBmb3IgKGNvbnN0IHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvbnMpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHZhbGlkYXRpb24oe1xuICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgbm9kZVZhbGlkYXRpb25zLFxuICAgICAgICAgIHBheWxvYWRDb25maWcsXG4gICAgICAgICAgdmFsaWRhdGlvbjogdmFsaWRhdGlvbkZyb21Qcm9wcyxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgbm9kZSdzIGNoaWxkcmVuXG4gICAgaWYgKCdjaGlsZHJlbicgaW4gbm9kZSAmJiBub2RlPy5jaGlsZHJlbikge1xuICAgICAgY29uc3QgY2hpbGRyZW5WYWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdmFsaWRhdGVOb2Rlcyh7XG4gICAgICAgIG5vZGVWYWxpZGF0aW9ucyxcbiAgICAgICAgbm9kZXM6IG5vZGUuY2hpbGRyZW4gYXMgU2VyaWFsaXplZExleGljYWxOb2RlW10sXG4gICAgICAgIHBheWxvYWRDb25maWcsXG4gICAgICAgIHZhbGlkYXRpb246IHZhbGlkYXRpb25Gcm9tUHJvcHMsXG4gICAgICB9KVxuICAgICAgaWYgKGNoaWxkcmVuVmFsaWRhdGlvblJlc3VsdCAhPT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW5WYWxpZGF0aW9uUmVzdWx0XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cbiJdLCJuYW1lcyI6WyJ2YWxpZGF0ZU5vZGVzIiwibm9kZVZhbGlkYXRpb25zIiwibm9kZXMiLCJwYXlsb2FkQ29uZmlnIiwidmFsaWRhdGlvbiIsInZhbGlkYXRpb25Gcm9tUHJvcHMiLCJub2RlIiwiaGFzIiwidHlwZSIsInZhbGlkYXRpb25zIiwiZ2V0IiwidmFsaWRhdGlvblJlc3VsdCIsImNoaWxkcmVuIiwiY2hpbGRyZW5WYWxpZGF0aW9uUmVzdWx0Il0sIm1hcHBpbmdzIjoiOzs7OytCQU1zQkE7OztlQUFBQTs7O0FBQWYsZUFBZUEsY0FBYyxFQUNsQ0MsZUFBZSxFQUNmQyxLQUFLLEVBQ0xDLGFBQWEsRUFDYkMsWUFBWUMsbUJBQW1CLEVBU2hDO0lBQ0MsS0FBSyxNQUFNQyxRQUFRSixNQUFPO1FBQ3hCLGdCQUFnQjtRQUNoQixJQUNFRCxtQkFDQSxPQUFPQSxpQkFBaUJNLFFBQVEsY0FDaENOLGlCQUFpQk0sSUFBSUQsS0FBS0UsSUFBSSxHQUM5QjtZQUNBLE1BQU1DLGNBQWNSLGdCQUFnQlMsR0FBRyxDQUFDSixLQUFLRSxJQUFJO1lBQ2pELEtBQUssTUFBTUosY0FBY0ssWUFBYTtnQkFDcEMsTUFBTUUsbUJBQW1CLE1BQU1QLFdBQVc7b0JBQ3hDRTtvQkFDQUw7b0JBQ0FFO29CQUNBQyxZQUFZQztnQkFDZDtnQkFDQSxJQUFJTSxxQkFBcUIsTUFBTTtvQkFDN0IsT0FBT0E7Z0JBQ1Q7WUFDRjtRQUNGO1FBRUEsMkJBQTJCO1FBQzNCLElBQUksY0FBY0wsUUFBUUEsTUFBTU0sVUFBVTtZQUN4QyxNQUFNQywyQkFBMkIsTUFBTWIsY0FBYztnQkFDbkRDO2dCQUNBQyxPQUFPSSxLQUFLTSxRQUFRO2dCQUNwQlQ7Z0JBQ0FDLFlBQVlDO1lBQ2Q7WUFDQSxJQUFJUSw2QkFBNkIsTUFBTTtnQkFDckMsT0FBT0E7WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPO0FBQ1QifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/richtext-lexical",
3
- "version": "0.1.0-beta.3",
3
+ "version": "0.1.0-beta.4",
4
4
  "description": "The officially supported Lexical richtext adapter for Payload",
5
5
  "repository": "https://github.com/payloadcms/payload",
6
6
  "license": "MIT",
@@ -43,8 +43,8 @@
43
43
  "devDependencies": {
44
44
  "@types/node": "20.6.2",
45
45
  "@types/react": "18.2.15",
46
- "@payloadcms/eslint-config": "0.0.1",
47
- "payload": "2.0.0-beta.17"
46
+ "payload": "2.0.0-beta.29",
47
+ "@payloadcms/eslint-config": "0.0.1"
48
48
  },
49
49
  "exports": null,
50
50
  "publishConfig": {
package/src/index.ts CHANGED
@@ -1,27 +1,51 @@
1
+ import type { EditorConfig as LexicalEditorConfig } from 'lexical/LexicalEditor'
1
2
  import type { RichTextAdapter } from 'payload/types'
2
3
 
3
4
  import { withMergedProps } from 'payload/components/utilities'
4
5
 
6
+ import type { FeatureProvider } from './field/features/types'
5
7
  import type { EditorConfig, SanitizedEditorConfig } from './field/lexical/config/types'
6
8
  import type { AdapterProps } from './types'
7
9
 
8
10
  import { RichTextCell } from './cell'
9
11
  import { RichTextField } from './field'
10
- import { defaultEditorConfig, defaultSanitizedEditorConfig } from './field/lexical/config/default'
12
+ import {
13
+ defaultEditorFeatures,
14
+ defaultEditorLexicalConfig,
15
+ defaultSanitizedEditorConfig,
16
+ } from './field/lexical/config/default'
11
17
  import { sanitizeEditorConfig } from './field/lexical/config/sanitize'
12
18
  import { cloneDeep } from './field/lexical/utils/cloneDeep'
13
19
  import { richTextRelationshipPromise } from './populate/richTextRelationshipPromise'
14
20
  import { richTextValidateHOC } from './validate'
15
21
 
16
- export function lexicalEditor({
17
- userConfig,
18
- }: {
19
- userConfig?: (defaultEditorConfig: EditorConfig) => EditorConfig
20
- }): RichTextAdapter<AdapterProps> {
21
- const finalSanitizedEditorConfig: SanitizedEditorConfig =
22
- userConfig == null || typeof userConfig != 'function'
23
- ? cloneDeep(defaultSanitizedEditorConfig)
24
- : sanitizeEditorConfig(userConfig(cloneDeep(defaultEditorConfig)))
22
+ export type LexicalEditorProps = {
23
+ features?:
24
+ | (({ defaultFeatures }: { defaultFeatures: FeatureProvider[] }) => FeatureProvider[])
25
+ | FeatureProvider[]
26
+ lexical?: LexicalEditorConfig
27
+ }
28
+
29
+ export function lexicalEditor(props?: LexicalEditorProps): RichTextAdapter<AdapterProps> {
30
+ let finalSanitizedEditorConfig: SanitizedEditorConfig = null
31
+ if (!props || (!props.features && !props.lexical)) {
32
+ finalSanitizedEditorConfig = cloneDeep(defaultSanitizedEditorConfig)
33
+ } else {
34
+ let features: FeatureProvider[] =
35
+ props.features && typeof props.features === 'function'
36
+ ? props.features({ defaultFeatures: cloneDeep(defaultEditorFeatures) })
37
+ : (props.features as FeatureProvider[])
38
+ if (!features) {
39
+ features = cloneDeep(defaultEditorFeatures)
40
+ }
41
+
42
+ const lexical: LexicalEditorConfig = props.lexical || cloneDeep(defaultEditorLexicalConfig)
43
+
44
+ finalSanitizedEditorConfig = sanitizeEditorConfig({
45
+ features,
46
+ lexical,
47
+ })
48
+ }
25
49
 
26
50
  return {
27
51
  CellComponent: withMergedProps({
@@ -88,9 +112,11 @@ export { CheckListFeature } from './field/features/lists/CheckList'
88
112
  export { OrderedListFeature } from './field/features/lists/OrderedList'
89
113
  export { UnoderedListFeature } from './field/features/lists/UnorderedList'
90
114
  export type {
115
+ AfterReadPromise,
91
116
  Feature,
92
117
  FeatureProvider,
93
118
  FeatureProviderMap,
119
+ NodeValidation,
94
120
  ResolvedFeature,
95
121
  ResolvedFeatureMap,
96
122
  SanitizedFeatures,
@@ -100,7 +126,12 @@ export {
100
126
  EditorConfigProvider,
101
127
  useEditorConfigContext,
102
128
  } from './field/lexical/config/EditorConfigProvider'
103
- export { defaultEditorConfig, defaultSanitizedEditorConfig } from './field/lexical/config/default'
129
+ export {
130
+ defaultEditorConfig,
131
+ defaultEditorFeatures,
132
+ defaultEditorLexicalConfig,
133
+ defaultSanitizedEditorConfig,
134
+ } from './field/lexical/config/default'
104
135
  export { loadFeatures, sortFeaturesForOptimalLoading } from './field/lexical/config/loader'
105
136
  export { sanitizeEditorConfig, sanitizeFeatures } from './field/lexical/config/sanitize'
106
137
  // export SanitizedEditorConfig