@yoopta/editor 6.0.0-beta.2 → 6.0.0-beta.21

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 (53) hide show
  1. package/README.md +109 -173
  2. package/dist/components/Editor/render-blocks.d.ts +4 -2
  3. package/dist/components/Editor/render-blocks.d.ts.map +1 -1
  4. package/dist/components/Editor/render-editor.d.ts +3 -5
  5. package/dist/components/Editor/render-editor.d.ts.map +1 -1
  6. package/dist/components/Editor/selection.d.ts.map +1 -1
  7. package/dist/editor/blocks/focusBlock.d.ts.map +1 -1
  8. package/dist/editor/blocks/toggleBlock.d.ts.map +1 -1
  9. package/dist/editor/core/applyTransforms.d.ts.map +1 -1
  10. package/dist/editor/core/history.d.ts +2 -2
  11. package/dist/editor/core/history.d.ts.map +1 -1
  12. package/dist/editor/elements/create-element-structure.d.ts.map +1 -1
  13. package/dist/editor/elements/getElementRect.d.ts +28 -0
  14. package/dist/editor/elements/getElementRect.d.ts.map +1 -0
  15. package/dist/editor/elements/index.d.ts +4 -2
  16. package/dist/editor/elements/index.d.ts.map +1 -1
  17. package/dist/editor/index.d.ts +11 -2
  18. package/dist/editor/index.d.ts.map +1 -1
  19. package/dist/editor/paths/isBlockSelected.d.ts.map +1 -1
  20. package/dist/editor/selection/index.d.ts +4 -1
  21. package/dist/editor/selection/index.d.ts.map +1 -1
  22. package/dist/editor/selection/toDOMRange.d.ts +33 -0
  23. package/dist/editor/selection/toDOMRange.d.ts.map +1 -0
  24. package/dist/editor/types.d.ts +18 -5
  25. package/dist/editor/types.d.ts.map +1 -1
  26. package/dist/index.d.ts +5 -5
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -1
  29. package/dist/parsers/deserializeHTML.d.ts +9 -1
  30. package/dist/parsers/deserializeHTML.d.ts.map +1 -1
  31. package/dist/parsers/deserializeHTML.test.d.ts +2 -0
  32. package/dist/parsers/deserializeHTML.test.d.ts.map +1 -0
  33. package/dist/parsers/deserializeYooptaJSON.d.ts +16 -0
  34. package/dist/parsers/deserializeYooptaJSON.d.ts.map +1 -0
  35. package/dist/parsers/getHTML.d.ts.map +1 -1
  36. package/dist/parsers/getYooptaJSON.d.ts +20 -0
  37. package/dist/parsers/getYooptaJSON.d.ts.map +1 -0
  38. package/dist/plugins/hooks.d.ts.map +1 -1
  39. package/dist/plugins/slate-editor-component.d.ts.map +1 -1
  40. package/dist/utils/block-elements.d.ts.map +1 -1
  41. package/dist/utils/editor-builders.d.ts +0 -1
  42. package/dist/utils/editor-builders.d.ts.map +1 -1
  43. package/dist/utils/enter-action.d.ts.map +1 -1
  44. package/dist/utils/execute-backspace-action.d.ts.map +1 -1
  45. package/dist/utils/weakMaps.d.ts +2 -1
  46. package/dist/utils/weakMaps.d.ts.map +1 -1
  47. package/dist/yoopta-editor.d.ts +10 -12
  48. package/dist/yoopta-editor.d.ts.map +1 -1
  49. package/package.json +2 -2
  50. package/dist/components/SelectionBox/SelectionBox.d.ts +0 -19
  51. package/dist/components/SelectionBox/SelectionBox.d.ts.map +0 -1
  52. package/dist/components/SelectionBox/hooks.d.ts +0 -7
  53. package/dist/components/SelectionBox/hooks.d.ts.map +0 -1
@@ -1,3 +1,11 @@
1
1
  import type { YooEditor, YooptaBlockData } from '../editor/types';
2
- export declare function deserializeHTML(editor: YooEditor, html: HTMLElement): YooptaBlockData<import("slate").Descendant>[];
2
+ /**
3
+ * Clears the cached plugins map for the editor.
4
+ * Call this when plugins are modified.
5
+ */
6
+ export declare function clearDeserializeCache(editor: YooEditor): void;
7
+ /**
8
+ * Deserializes HTML into Yoopta blocks.
9
+ */
10
+ export declare function deserializeHTML(editor: YooEditor, html: HTMLElement): YooptaBlockData[];
3
11
  //# sourceMappingURL=deserializeHTML.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deserializeHTML.d.ts","sourceRoot":"","sources":["../../src/parsers/deserializeHTML.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,SAAS,EAET,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAoMzB,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,iDAUnE"}
1
+ {"version":3,"file":"deserializeHTML.d.ts","sourceRoot":"","sources":["../../src/parsers/deserializeHTML.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,SAAS,EAET,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAoQzB;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,eAAe,EAAE,CAUvF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deserializeHTML.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deserializeHTML.test.d.ts","sourceRoot":"","sources":["../../src/parsers/deserializeHTML.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import type { YooEditor, YooptaBlockData } from '../editor/types';
2
+ /**
3
+ * Deserializes Yoopta JSON clipboard data back to blocks.
4
+ * This is the inverse of getYooptaJSON and preserves all block data exactly.
5
+ *
6
+ * @param editor - The Yoopta editor instance
7
+ * @param jsonString - The JSON string from clipboard
8
+ * @returns Array of YooptaBlockData ready to be inserted
9
+ */
10
+ export declare function deserializeYooptaJSON(editor: YooEditor, jsonString: string): YooptaBlockData[] | null;
11
+ /**
12
+ * Check if a string looks like Yoopta clipboard data.
13
+ * Quick validation before attempting full parse.
14
+ */
15
+ export declare function isYooptaClipboardData(data: string): boolean;
16
+ //# sourceMappingURL=deserializeYooptaJSON.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deserializeYooptaJSON.d.ts","sourceRoot":"","sources":["../../src/parsers/deserializeYooptaJSON.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA4GhF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,GACjB,eAAe,EAAE,GAAG,IAAI,CAwC1B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAS3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"getHTML.d.ts","sourceRoot":"","sources":["../../src/parsers/getHTML.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,SAAS,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA6CnF,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAgC9E"}
1
+ {"version":3,"file":"getHTML.d.ts","sourceRoot":"","sources":["../../src/parsers/getHTML.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,SAAS,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA8CnF,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAwC9E"}
@@ -0,0 +1,20 @@
1
+ import type { YooEditor, YooptaBlockData, YooptaContentValue } from '../editor/types';
2
+ export type YooptaClipboardData = {
3
+ version: number;
4
+ editorId: string;
5
+ blocks: YooptaBlockData[];
6
+ };
7
+ /**
8
+ * Serializes Yoopta content to JSON format for clipboard.
9
+ * This preserves all block data including complex props, marks, and metadata.
10
+ *
11
+ * @param editor - The Yoopta editor instance
12
+ * @param content - The content to serialize
13
+ * @returns JSON string with full block data
14
+ */
15
+ export declare function getYooptaJSON(editor: YooEditor, content: YooptaContentValue): string;
16
+ /**
17
+ * The data attribute name used to store JSON in HTML clipboard
18
+ */
19
+ export declare const YOOPTA_JSON_DATA_ATTR = "data-yoopta-json";
20
+ //# sourceMappingURL=getYooptaJSON.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getYooptaJSON.d.ts","sourceRoot":"","sources":["../../src/parsers/getYooptaJSON.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGtF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B,CAAC;AAIF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA4BpF;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/plugins/hooks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAA6B,MAAM,SAAS,CAAC;AAI1E,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAKlE,eAAO,MAAM,cAAc,OACrB,MAAM,UACF,SAAS,SACV,eAAe,YACZ,GAAG,kBACG,GAAG,sCA2JC,CAAC;AAEvB,eAAO,MAAM,gBAAgB,WACnB,eAAe,GAAG,SAAS,UAC3B,SAAS,SACV,eAAe,SACf,WAAW,wBA0DgB,CAAC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/plugins/hooks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAA6B,MAAM,SAAS,CAAC;AAI1E,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAyClE,eAAO,MAAM,cAAc,OACrB,MAAM,UACF,SAAS,SACV,eAAe,YACZ,GAAG,kBACG,GAAG,sCAiKmC,CAAC;AAEzD,eAAO,MAAM,gBAAgB,WACnB,eAAe,GAAG,SAAS,UAC3B,SAAS,SACV,eAAe,SACf,WAAW,wBAgEQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"slate-editor-component.d.ts","sourceRoot":"","sources":["../../src/plugins/slate-editor-component.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAqB,MAAM,EAAE,eAAe,EAA2B,MAAM,SAAS,CAAC;AAGnG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAK3C,KAAK,KAAK,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,QAAQ,IAAI,MAAM,CAC7E,WAAW,EACX,QAAQ,CACT,GAAG;IACF,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAoBF,QAAA,MAAM,oBAAoB,kNAyOzB,CAAC;AAuEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"slate-editor-component.d.ts","sourceRoot":"","sources":["../../src/plugins/slate-editor-component.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAqB,MAAM,EAAE,eAAe,EAA2B,MAAM,SAAS,CAAC;AAGnG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAS3C,KAAK,KAAK,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,QAAQ,IAAI,MAAM,CAC7E,WAAW,EACX,QAAQ,CACT,GAAG;IACF,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAoBF,QAAA,MAAM,oBAAoB,kNAgRzB,CAAC;AAkEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"block-elements.d.ts","sourceRoot":"","sources":["../../src/utils/block-elements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAmB,IAAI,EAAE,MAAM,OAAO,CAAC;AAM9C,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACpD,MAAM,GAAG,SAAS,CAQpB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACpD,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAO5C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,OAAO,CAGhG;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,CAAC,EAAE,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,0BAA+B,GACvC,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAuBrC;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,kBAAkB,CAAC,OAAO,CAAyB,GACzD,YAAY,CAAC,GAAG,CAAC,CAEnB;AAiCD,KAAK,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEzD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,0BAA0B,CAAC,EAAE,0BAA0B,GACtD,YAAY,CAyBd;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,EAC7B,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,GAAG,SAAS,CAM3D;AAED;;;GAGG;AACH;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,WAAW,GACjB,MAAM,EAAE,GAAG,IAAI,CAiDjB"}
1
+ {"version":3,"file":"block-elements.d.ts","sourceRoot":"","sources":["../../src/utils/block-elements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAmB,IAAI,EAAE,MAAM,OAAO,CAAC;AAO9C,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACpD,MAAM,GAAG,SAAS,CAQpB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACpD,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAO5C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,OAAO,CAGhG;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,CAAC,EAAE,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,0BAA+B,GACvC,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAuBrC;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,kBAAkB,CAAC,OAAO,CAAyB,GACzD,YAAY,CAAC,GAAG,CAAC,CAEnB;AAiCD,KAAK,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEzD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,0BAA0B,CAAC,EAAE,0BAA0B,GACtD,YAAY,CAkCd;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,EAC7B,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,GAAG,SAAS,CAM3D;AAED;;;GAGG;AACH;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,WAAW,GACjB,MAAM,EAAE,GAAG,IAAI,CAgDjB"}
@@ -4,5 +4,4 @@ import type { Plugin } from '../plugins/types';
4
4
  export declare function buildMarks(editor: any, marks: YooptaMark<any>[]): import("../editor/types").YooptaFormats;
5
5
  export declare function buildBlockSlateEditors(editor: YooEditor): {};
6
6
  export declare function buildPlugins(plugins: Plugin<Record<string, SlateElement>>[]): Record<string, Plugin<Record<string, SlateElement>>>;
7
- export declare function buildCommands(editor: YooEditor, plugins: Plugin<Record<string, SlateElement>>[]): Record<string, (...args: any[]) => any>;
8
7
  //# sourceMappingURL=editor-builders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-builders.d.ts","sourceRoot":"","sources":["../../src/utils/editor-builders.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,UAAU,CAAC,MAAM,KAAA,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,2CAgB1D;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,MAkBvD;AAID,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAyGtD;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,GAC9C,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAczC"}
1
+ {"version":3,"file":"editor-builders.d.ts","sourceRoot":"","sources":["../../src/utils/editor-builders.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,UAAU,CAAC,MAAM,KAAA,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,2CAgB1D;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,MAoBvD;AA0CD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CA6ItD"}
@@ -1 +1 @@
1
- {"version":3,"file":"enter-action.d.ts","sourceRoot":"","sources":["../../src/utils/enter-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAA8B,MAAM,OAAO,CAAC;AAM3D,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE/D,KAAK,WAAW,GACZ;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,GACzB;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,GACjC;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAC/B;IAAE,MAAM,EAAE,wBAAwB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAChD;IAAE,MAAM,EAAE,uBAAuB,CAAC;IAAC,YAAY,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,IAAI,CAAA;CAAE,GAC7E;IAAE,MAAM,EAAE,uBAAuB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AA0J1B;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAoG5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAsG9F"}
1
+ {"version":3,"file":"enter-action.d.ts","sourceRoot":"","sources":["../../src/utils/enter-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAA8B,MAAM,OAAO,CAAC;AAM3D,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE/D,KAAK,WAAW,GACZ;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,GACzB;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,GACjC;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAC/B;IAAE,MAAM,EAAE,wBAAwB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAChD;IAAE,MAAM,EAAE,uBAAuB,CAAC;IAAC,YAAY,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,IAAI,CAAA;CAAE,GAC7E;IAAE,MAAM,EAAE,uBAAuB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAgK1B;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAoG5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAsG9F"}
@@ -1 +1 @@
1
- {"version":3,"file":"execute-backspace-action.d.ts","sourceRoot":"","sources":["../../src/utils/execute-backspace-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAW,IAAI,EAAqB,MAAM,OAAO,CAAC;AAOjE,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE/D,KAAK,eAAe,GAChB;IAAE,MAAM,EAAE,yBAAyB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GACjD;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAC1B;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,IAAI,CAAA;CAAE,GAC3C;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,2BAA2B,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AA+M1B;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAmJpF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,eAAe,GACtB,IAAI,CAkDN"}
1
+ {"version":3,"file":"execute-backspace-action.d.ts","sourceRoot":"","sources":["../../src/utils/execute-backspace-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAW,IAAI,EAAqB,MAAM,OAAO,CAAC;AAOjE,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE/D,KAAK,eAAe,GAChB;IAAE,MAAM,EAAE,yBAAyB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GACjD;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAC1B;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,IAAI,CAAA;CAAE,GAC3C;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,2BAA2B,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAuO1B;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAyJpF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,eAAe,GACtB,IAAI,CAkDN"}
@@ -1,2 +1,3 @@
1
- export declare const IS_FOCUSED_EDITOR: WeakMap<import("../editor/types").BaseYooEditor, boolean>;
1
+ import type { YooEditor } from '../editor/types';
2
+ export declare const IS_FOCUSED_EDITOR: WeakMap<YooEditor, boolean>;
2
3
  //# sourceMappingURL=weakMaps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"weakMaps.d.ts","sourceRoot":"","sources":["../../src/utils/weakMaps.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,2DAAoC,CAAC"}
1
+ {"version":3,"file":"weakMaps.d.ts","sourceRoot":"","sources":["../../src/utils/weakMaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,eAAO,MAAM,iBAAiB,6BAAoC,CAAC"}
@@ -1,28 +1,26 @@
1
- import type { CSSProperties } from 'react';
1
+ import type { CSSProperties, ReactNode } from 'react';
2
2
  import type { YooptaOperation } from './editor/core/applyTransforms';
3
- import type { SlateElement, YooEditor, YooptaContentValue, YooptaPath } from './editor/types';
4
- import type { YooptaMark } from './marks';
5
- import type { YooptaPlugin } from './plugins';
3
+ import type { YooEditor, YooptaBlockData, YooptaContentValue, YooptaPath } from './editor/types';
6
4
  export type YooptaOnChangeOptions = {
7
5
  operations: YooptaOperation[];
8
6
  };
7
+ export type RenderBlockProps = {
8
+ block: YooptaBlockData;
9
+ children: ReactNode;
10
+ blockId: string;
11
+ };
9
12
  export type YooptaEditorProps = {
10
- id?: string;
11
13
  editor: YooEditor;
12
- plugins: readonly YooptaPlugin<Record<string, SlateElement>>[];
13
- marks?: YooptaMark<any>[];
14
- value?: YooptaContentValue;
15
14
  onChange?: (value: YooptaContentValue, options: YooptaOnChangeOptions) => void;
16
15
  onPathChange?: (path: YooptaPath) => void;
17
16
  autoFocus?: boolean;
18
17
  className?: string;
19
- selectionBoxRoot?: HTMLElement | React.MutableRefObject<HTMLElement | null> | false;
20
18
  children?: React.ReactNode;
21
19
  placeholder?: string;
22
- readOnly?: boolean;
23
- width?: number | string;
24
20
  style?: CSSProperties;
21
+ /** Custom render wrapper for each block. Useful for drag-and-drop integration. */
22
+ renderBlock?: (props: RenderBlockProps) => ReactNode;
25
23
  };
26
- declare const YooptaEditor: ({ id, editor, value, marks, plugins: pluginsFromProp, autoFocus, className, selectionBoxRoot, children, placeholder, readOnly, width, style, onChange, onPathChange, }: YooptaEditorProps) => import("react/jsx-runtime").JSX.Element;
24
+ declare const YooptaEditor: ({ editor, autoFocus, className, children, placeholder, style, onChange, onPathChange, renderBlock, }: YooptaEditorProps) => import("react/jsx-runtime").JSX.Element;
27
25
  export { YooptaEditor };
28
26
  //# sourceMappingURL=yoopta-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"yoopta-editor.d.ts","sourceRoot":"","sources":["../src/yoopta-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAW9C,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;IAC/D,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC/E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;IACpF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAOF,QAAA,MAAM,YAAY,2KAgBf,iBAAiB,4CAmFnB,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"yoopta-editor.d.ts","sourceRoot":"","sources":["../src/yoopta-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjG,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC/E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,kFAAkF;IAClF,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,SAAS,CAAC;CACtD,CAAC;AAQF,QAAA,MAAM,YAAY,yGAUf,iBAAiB,4CAiDnB,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yoopta/editor",
3
- "version": "6.0.0-beta.2",
3
+ "version": "6.0.0-beta.21",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
@@ -68,5 +68,5 @@
68
68
  "registry": "https://registry.npmjs.org",
69
69
  "access": "public"
70
70
  },
71
- "gitHead": "58d2c0e3b3b615017e0adb353b80dc493a571186"
71
+ "gitHead": "40cb3f48f45e4697bd4001e5575f10fa5b25eeb7"
72
72
  }
@@ -1,19 +0,0 @@
1
- /// <reference types="react" />
2
- import type { YooEditor } from '../../editor/types';
3
- export type RectangeSelectionProps = {
4
- editor: YooEditor;
5
- root?: HTMLElement | React.MutableRefObject<HTMLElement | null> | false;
6
- };
7
- export type RectangeSelectionState = {
8
- origin: [number, number];
9
- coords: [number, number];
10
- selection: boolean;
11
- };
12
- export type SelectionBoxProps = {
13
- origin: RectangeSelectionState['origin'];
14
- coords: RectangeSelectionState['coords'];
15
- isOpen: boolean;
16
- };
17
- declare const SelectionBox: ({ origin, coords, isOpen }: SelectionBoxProps) => import("react/jsx-runtime").JSX.Element | null;
18
- export { SelectionBox };
19
- //# sourceMappingURL=SelectionBox.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectionBox.d.ts","sourceRoot":"","sources":["../../../src/components/SelectionBox/SelectionBox.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,QAAA,MAAM,YAAY,+BAAgC,iBAAiB,mDAyBlE,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { RectangeSelectionProps, RectangeSelectionState } from './SelectionBox';
2
- type RectangeSelectionReturn = RectangeSelectionState & {
3
- onClose: () => void;
4
- };
5
- export declare const useRectangeSelectionBox: ({ editor, root, }: RectangeSelectionProps) => RectangeSelectionReturn;
6
- export {};
7
- //# sourceMappingURL=hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/SelectionBox/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAkCrF,KAAK,uBAAuB,GAAG,sBAAsB,GAAG;IACtD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAIF,eAAO,MAAM,uBAAuB,sBAGjC,sBAAsB,KAAG,uBAwG3B,CAAC"}