@contentful/field-editor-rich-text 2.0.0-next.2 → 2.0.0-next.20

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 (145) hide show
  1. package/README.md +4 -0
  2. package/dist/ContentfulEditorProvider.d.ts +6 -5
  3. package/dist/RichTextEditor.d.ts +2 -3
  4. package/dist/Toolbar/{EmbedEntityWidget.d.ts → components/EmbedEntityWidget.d.ts} +0 -1
  5. package/dist/{plugins/EmbeddedEntity/index.d.ts → Toolbar/components/EmbeddedEntityDropdownButton.d.ts} +1 -2
  6. package/dist/Toolbar/{StickyToolbarWrapper.d.ts → components/StickyToolbarWrapper.d.ts} +0 -0
  7. package/dist/Toolbar/index.d.ts +0 -1
  8. package/dist/dialogs/renderRichTextDialog.d.ts +0 -1
  9. package/dist/field-editor-rich-text.cjs.development.js +5335 -4357
  10. package/dist/field-editor-rich-text.cjs.development.js.map +1 -1
  11. package/dist/field-editor-rich-text.cjs.production.min.js +1 -1
  12. package/dist/field-editor-rich-text.cjs.production.min.js.map +1 -1
  13. package/dist/field-editor-rich-text.esm.js +5450 -4472
  14. package/dist/field-editor-rich-text.esm.js.map +1 -1
  15. package/dist/helpers/editor.d.ts +22 -27
  16. package/dist/helpers/environment.d.ts +1 -0
  17. package/dist/helpers/extractNodes.d.ts +6 -0
  18. package/dist/helpers/transformers.d.ts +8 -0
  19. package/dist/helpers/validations.d.ts +1 -1
  20. package/dist/plugins/Break/createExitBreakPlugin.d.ts +2 -0
  21. package/dist/plugins/Break/createResetNodePlugin.d.ts +2 -0
  22. package/dist/plugins/Break/createSoftBreakPlugin.d.ts +2 -0
  23. package/dist/plugins/Break/index.d.ts +5 -0
  24. package/dist/plugins/DragAndDrop/index.d.ts +2 -2
  25. package/dist/plugins/EmbeddedEntityBlock/LinkedEntityBlock.d.ts +3 -2
  26. package/dist/plugins/EmbeddedEntityBlock/ToolbarIcon.d.ts +1 -3
  27. package/dist/plugins/EmbeddedEntityBlock/Util.d.ts +2 -1
  28. package/dist/plugins/EmbeddedEntityBlock/index.d.ts +3 -9
  29. package/dist/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.d.ts +1 -0
  30. package/dist/plugins/EmbeddedEntityInline/index.d.ts +3 -5
  31. package/dist/plugins/Heading/components/Heading.d.ts +11 -0
  32. package/dist/plugins/Heading/components/ToolbarHeadingButton.d.ts +4 -0
  33. package/dist/plugins/Heading/createHeadingPlugin.d.ts +2 -0
  34. package/dist/plugins/Heading/index.d.ts +2 -20
  35. package/dist/plugins/Hr/index.d.ts +3 -5
  36. package/dist/plugins/Hyperlink/EntryAssetTooltip.d.ts +0 -1
  37. package/dist/plugins/Hyperlink/HyperlinkModal.d.ts +4 -6
  38. package/dist/plugins/Hyperlink/index.d.ts +2 -6
  39. package/dist/plugins/Hyperlink/truncate.d.ts +1 -0
  40. package/dist/plugins/Hyperlink/utils.d.ts +3 -0
  41. package/dist/plugins/List/components/List.d.ts +3 -0
  42. package/dist/plugins/List/components/ListItem.d.ts +2 -0
  43. package/dist/plugins/List/components/ToolbarListButton.d.ts +4 -0
  44. package/dist/plugins/List/createListPlugin.d.ts +2 -0
  45. package/dist/plugins/List/index.d.ts +2 -15
  46. package/dist/plugins/List/insertListBreak.d.ts +2 -0
  47. package/dist/plugins/List/insertListFragment.d.ts +3 -0
  48. package/dist/plugins/List/transforms/deleteBackwardList.d.ts +2 -0
  49. package/dist/plugins/List/transforms/insertListItem.d.ts +5 -0
  50. package/dist/plugins/List/transforms/toggleList.d.ts +4 -0
  51. package/dist/plugins/List/transforms/unwrapList.d.ts +5 -0
  52. package/dist/plugins/List/utils.d.ts +15 -0
  53. package/dist/plugins/List/withList.d.ts +4 -0
  54. package/dist/plugins/Marks/Bold.d.ts +11 -0
  55. package/dist/plugins/Marks/Code.d.ts +11 -0
  56. package/dist/plugins/Marks/Italic.d.ts +11 -0
  57. package/dist/plugins/Marks/Underline.d.ts +11 -0
  58. package/dist/plugins/Marks/components/MarkToolbarButton.d.ts +13 -0
  59. package/dist/plugins/Marks/helpers.d.ts +4 -0
  60. package/dist/plugins/Marks/index.d.ts +2 -0
  61. package/dist/plugins/Normalizer/baseRules.d.ts +2 -0
  62. package/dist/plugins/Normalizer/createNormalizerPlugin.d.ts +2 -0
  63. package/dist/plugins/Normalizer/index.d.ts +2 -0
  64. package/dist/plugins/Normalizer/types.d.ts +40 -0
  65. package/dist/plugins/Normalizer/utils.d.ts +8 -0
  66. package/dist/plugins/Normalizer/withNormalizer.d.ts +2 -0
  67. package/dist/plugins/Paragraph/Paragraph.d.ts +2 -0
  68. package/dist/plugins/Paragraph/createParagraphPlugin.d.ts +2 -0
  69. package/dist/plugins/Paragraph/index.d.ts +1 -7
  70. package/dist/plugins/Paragraph/utils.d.ts +2 -0
  71. package/dist/plugins/PasteHTML/createPasteHTMLPlugin.d.ts +8 -0
  72. package/dist/plugins/PasteHTML/index.d.ts +1 -0
  73. package/dist/plugins/PasteHTML/utils/sanitizeHTML.d.ts +1 -0
  74. package/dist/plugins/PasteHTML/utils/sanitizeSheets.d.ts +4 -0
  75. package/dist/plugins/Quote/components/Quote.d.ts +2 -0
  76. package/dist/plugins/Quote/components/ToolbarQuoteButton.d.ts +4 -0
  77. package/dist/plugins/Quote/createQuotePlugin.d.ts +2 -0
  78. package/dist/plugins/Quote/index.d.ts +2 -13
  79. package/dist/plugins/Quote/shouldResetQuote.d.ts +8 -0
  80. package/dist/plugins/Quote/toggleQuote.d.ts +5 -0
  81. package/dist/plugins/Quote/withQuote.d.ts +3 -0
  82. package/dist/plugins/SelectOnBackspace/createSelectOnBackspacePlugin.d.ts +2 -0
  83. package/dist/plugins/SelectOnBackspace/index.d.ts +1 -0
  84. package/dist/plugins/Table/actions/addColumn.d.ts +4 -3
  85. package/dist/plugins/Table/actions/addRow.d.ts +3 -3
  86. package/dist/plugins/Table/actions/setHeader.d.ts +2 -2
  87. package/dist/plugins/Table/addTableTrackingEvents.d.ts +2 -0
  88. package/dist/plugins/Table/components/Cell.d.ts +2 -0
  89. package/dist/plugins/Table/components/HeaderCell.d.ts +2 -0
  90. package/dist/plugins/Table/components/Row.d.ts +2 -0
  91. package/dist/plugins/Table/components/Table.d.ts +2 -0
  92. package/dist/plugins/Table/components/TableActions.d.ts +4 -0
  93. package/dist/plugins/Table/components/ToolbarButton.d.ts +4 -0
  94. package/dist/plugins/Table/createTablePlugin.d.ts +2 -0
  95. package/dist/plugins/Table/helpers.d.ts +15 -5
  96. package/dist/plugins/Table/index.d.ts +2 -189
  97. package/dist/plugins/Text/createTextPlugin.d.ts +2 -0
  98. package/dist/plugins/Text/index.d.ts +1 -2
  99. package/dist/plugins/Tracking/createTrackingPlugin.d.ts +10 -0
  100. package/dist/plugins/Tracking/index.d.ts +1 -0
  101. package/dist/plugins/Tracking/utils.d.ts +2 -0
  102. package/dist/plugins/TrailingParagraph/index.d.ts +2 -1
  103. package/dist/plugins/Voids/createVoidsPlugin.d.ts +2 -0
  104. package/dist/plugins/Voids/index.d.ts +1 -0
  105. package/dist/plugins/Voids/transformVoid.d.ts +6 -0
  106. package/dist/plugins/index.d.ts +5 -179
  107. package/dist/plugins/links-tracking.d.ts +6 -0
  108. package/dist/plugins/shared/EntityStatusIcon.d.ts +0 -1
  109. package/dist/plugins/shared/FetchingWrappedAssetCard.d.ts +1 -1
  110. package/dist/plugins/shared/FetchingWrappedEntryCard.d.ts +3 -3
  111. package/dist/plugins/shared/ToolbarButton.d.ts +0 -1
  112. package/dist/test-utils/assertOutput.d.ts +7 -0
  113. package/dist/test-utils/createEditor.d.ts +10 -4
  114. package/dist/test-utils/index.d.ts +2 -0
  115. package/dist/test-utils/jsx.d.ts +2 -2
  116. package/dist/test-utils/mockPlugin.d.ts +2 -0
  117. package/dist/test-utils/randomId.d.ts +4 -0
  118. package/dist/test-utils/setEmptyDataAttribute.d.ts +6 -0
  119. package/dist/test-utils/validation.d.ts +1 -0
  120. package/dist/types.d.ts +34 -9
  121. package/dist/useNormalizedSlateValue.d.ts +7 -0
  122. package/dist/useOnValueChanged.d.ts +7 -0
  123. package/package.json +28 -17
  124. package/CHANGELOG.md +0 -410
  125. package/dist/TrackingProvider.d.ts +0 -11
  126. package/dist/helpers/deserializer.d.ts +0 -3
  127. package/dist/helpers/normalizers.d.ts +0 -15
  128. package/dist/helpers/sanitizeSlateDoc.d.ts +0 -18
  129. package/dist/helpers/truncate.d.ts +0 -1
  130. package/dist/plugins/Bold/index.d.ts +0 -12
  131. package/dist/plugins/Code/index.d.ts +0 -12
  132. package/dist/plugins/CommandPalette/CommandPanel/InViewport/InViewport.d.ts +0 -37
  133. package/dist/plugins/InsertBeforeFirstVoidBlock/index.d.ts +0 -2
  134. package/dist/plugins/Italic/index.d.ts +0 -12
  135. package/dist/plugins/List/getListInsertFragment.d.ts +0 -6
  136. package/dist/plugins/NewLine/index.d.ts +0 -2
  137. package/dist/plugins/Paste/index.d.ts +0 -2
  138. package/dist/plugins/Paste/sanitizers/helpers.d.ts +0 -7
  139. package/dist/plugins/Paste/sanitizers/index.d.ts +0 -3
  140. package/dist/plugins/Paste/sanitizers/removeComments.d.ts +0 -2
  141. package/dist/plugins/Paste/sanitizers/sanitizeEntityBlocks.d.ts +0 -6
  142. package/dist/plugins/Paste/sanitizers/sanitizeTables.d.ts +0 -2
  143. package/dist/plugins/Table/TableActions.d.ts +0 -5
  144. package/dist/plugins/Table/normalizers.d.ts +0 -2
  145. package/dist/plugins/Underline/index.d.ts +0 -12
@@ -1,23 +1,21 @@
1
- import { PlateEditor } from '@udecode/plate';
2
1
  import { Link } from '@contentful/field-editor-reference/dist/types';
3
- import { Editor, Path, Node, Location } from 'slate';
4
2
  import { BLOCKS, INLINES } from '@contentful/rich-text-types';
5
- import { CustomElement } from '../types';
3
+ import { EditorNodesOptions, PlateEditor, ToggleNodeTypeOptions } from '@udecode/plate-core';
4
+ import { Path, Node } from 'slate';
5
+ import { CustomElement, RichTextEditor } from '../types';
6
6
  export declare const LINK_TYPES: INLINES[];
7
- export declare function isBlockSelected(editor: any, type: string): boolean;
8
- export declare function isVoid(editor: any, element: any): boolean;
9
- export declare function hasSelectionText(editor: any): boolean;
7
+ export declare function isBlockSelected(editor: PlateEditor, type: string): boolean;
8
+ export declare function isRootLevel(path: Path): boolean;
10
9
  declare type NodeEntry = [CustomElement, Path];
11
10
  declare type NodeType = BLOCKS | INLINES;
12
- export declare function getNodeEntryFromSelection(editor: any, nodeTypeOrTypes: NodeType | NodeType[]): NodeEntry | [];
13
- export declare function isNodeTypeSelected(editor: any, nodeType: BLOCKS | INLINES): boolean;
14
- export declare function moveToTheNextLine(editor: any): void;
15
- export declare function moveToThePreviousLine(editor: any): void;
16
- export declare function toggleBlock(editor: any, type: string): void;
17
- export declare function getElementFromCurrentSelection(editor: any): (import("slate").BaseEditor | CustomElement<unknown> | import("slate").BaseText | Path)[];
18
- export declare function isList(editor: any): boolean;
11
+ export declare function getNodeEntryFromSelection(editor: RichTextEditor, nodeTypeOrTypes: NodeType | NodeType[]): NodeEntry | [];
12
+ export declare function isNodeTypeSelected(editor: RichTextEditor, nodeType: BLOCKS | INLINES): boolean;
13
+ export declare function moveToTheNextLine(editor: RichTextEditor): void;
14
+ export declare function moveToTheNextChar(editor: RichTextEditor): void;
15
+ export declare function insertEmptyParagraph(editor: RichTextEditor): void;
16
+ export declare function getElementFromCurrentSelection(editor: RichTextEditor): (import("slate").BaseEditor | CustomElement<unknown> | import("../types").CustomText | Path)[];
17
+ export declare function isList(editor?: RichTextEditor): boolean;
19
18
  export declare function getTableSize(table: CustomElement): Record<'numRows' | 'numColumns', number> | null;
20
- export declare function isFirstChild(path: Path): boolean;
21
19
  interface InsertLinkOptions {
22
20
  text: string;
23
21
  type: INLINES.HYPERLINK | INLINES.ENTRY_HYPERLINK | INLINES.ASSET_HYPERLINK;
@@ -26,23 +24,20 @@ interface InsertLinkOptions {
26
24
  path?: Path;
27
25
  }
28
26
  export declare function insertLink(editor: any, options: InsertLinkOptions): void;
29
- export declare function isLinkActive(editor: any): boolean;
27
+ export declare function isLinkActive(editor?: RichTextEditor): boolean;
30
28
  export declare function unwrapLink(editor: any): void;
31
29
  export declare function wrapLink(editor: any, { text, url, target, type, path }: InsertLinkOptions): void;
32
- export declare function getAncestorPathFromSelection(editor: PlateEditor): Path | undefined;
33
- export declare function shouldUnwrapBlockquote(editor: PlateEditor, type: BLOCKS): boolean;
34
- export declare function unwrapFromRoot(editor: PlateEditor): void;
35
- export declare const isAtEndOfTextSelection: (editor: PlateEditor) => boolean;
36
- export declare function currentSelectionStartsTableCell(editor: PlateEditor): boolean;
30
+ export declare function getAncestorPathFromSelection(editor: RichTextEditor): Path | undefined;
31
+ export declare const isAtEndOfTextSelection: (editor: RichTextEditor) => boolean;
32
+ export declare function currentSelectionStartsTableCell(editor: RichTextEditor): boolean;
37
33
  /**
38
34
  * This traversal strategy is unfortunately necessary because Slate doesn't
39
35
  * expose something like Node.next(editor).
40
36
  */
41
- export declare function getNextNode(editor: PlateEditor): CustomElement | null;
42
- export declare function currentSelectionPrecedesTableCell(editor: PlateEditor): boolean;
43
- export declare const replaceNode: (editor: Editor, path: Location, replacement: Node | Node[]) => void;
44
- /**
45
- * It filters out all paragraphs and headings from a path and convert them into paragraphs.
46
- */
47
- export declare function extractParagraphsAt(editor: PlateEditor, path: Path): CustomElement[];
37
+ export declare function getNextNode(editor: RichTextEditor): CustomElement | null;
38
+ export declare function currentSelectionPrecedesTableCell(editor: RichTextEditor): boolean;
39
+ export declare const INLINE_TYPES: string[];
40
+ export declare const isInlineOrText: (node: Node) => boolean;
41
+ export declare const focus: (editor: RichTextEditor) => void;
42
+ export declare function toggleElement(editor: RichTextEditor, options: ToggleNodeTypeOptions, editorOptions?: Omit<EditorNodesOptions, 'match'>): void;
48
43
  export {};
@@ -1 +1,2 @@
1
1
  export declare const HAS_BEFORE_INPUT_SUPPORT: boolean;
2
+ export declare const IS_SAFARI: boolean;
@@ -0,0 +1,6 @@
1
+ import { Path } from 'slate';
2
+ import { CustomElement, RichTextEditor } from '../types';
3
+ /**
4
+ * It filters out all paragraphs and headings from a path and convert them into paragraphs.
5
+ */
6
+ export declare function extractParagraphs(editor: RichTextEditor, path: Path): CustomElement[];
@@ -0,0 +1,8 @@
1
+ import { BLOCKS, INLINES } from '@contentful/rich-text-types';
2
+ import { NodeEntry } from 'slate';
3
+ import { RichTextEditor } from '../types';
4
+ export declare const transformRemove: (editor: RichTextEditor, [, path]: NodeEntry<import("slate").Node>) => void;
5
+ export declare const transformParagraphs: (editor: RichTextEditor, entry: NodeEntry<import("slate").Node>) => void;
6
+ export declare const transformUnwrap: (editor: RichTextEditor, [, path]: NodeEntry<import("slate").Node>) => void;
7
+ export declare const transformWrapIn: (type: BLOCKS | INLINES) => (editor: RichTextEditor, [, path]: NodeEntry<import("slate").Node>) => void;
8
+ export declare const transformLift: (editor: RichTextEditor, [, path]: NodeEntry<import("slate").Node>) => void;
@@ -1,5 +1,5 @@
1
- import { BLOCKS, INLINES } from '@contentful/rich-text-types';
2
1
  import { FieldExtensionSDK } from '@contentful/app-sdk';
2
+ import { BLOCKS, INLINES } from '@contentful/rich-text-types';
3
3
  export declare const VALIDATIONS: {
4
4
  ENABLED_MARKS: string;
5
5
  ENABLED_NODE_TYPES: string;
@@ -0,0 +1,2 @@
1
+ import { RichTextPlugin } from '../../types';
2
+ export declare const createExitBreakPlugin: () => RichTextPlugin;
@@ -0,0 +1,2 @@
1
+ import { RichTextPlugin } from '../../types';
2
+ export declare const createResetNodePlugin: () => RichTextPlugin;
@@ -0,0 +1,2 @@
1
+ import { RichTextPlugin } from '../../types';
2
+ export declare const createSoftBreakPlugin: () => RichTextPlugin;
@@ -0,0 +1,5 @@
1
+ export type { SoftBreakRule, ExitBreakRule } from '@udecode/plate-break';
2
+ export type { ResetNodePluginRule } from '@udecode/plate-reset-node';
3
+ export * from './createSoftBreakPlugin';
4
+ export * from './createExitBreakPlugin';
5
+ export * from './createResetNodePlugin';
@@ -1,2 +1,2 @@
1
- import { PlatePlugin } from '@udecode/plate';
2
- export declare function createDragAndDropPlugin(): PlatePlugin;
1
+ import { RichTextPlugin } from '../../types';
2
+ export declare function createDragAndDropPlugin(): RichTextPlugin;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { CustomRenderElementProps } from '../../types';
3
2
  declare type LinkedEntityBlockProps = CustomRenderElementProps<{
4
3
  target: {
@@ -8,6 +7,8 @@ declare type LinkedEntityBlockProps = CustomRenderElementProps<{
8
7
  type: 'Link';
9
8
  };
10
9
  };
11
- }>;
10
+ }> & {
11
+ onEntityFetchComplete: VoidFunction;
12
+ };
12
13
  export declare function LinkedEntityBlock(props: LinkedEntityBlockProps): JSX.Element;
13
14
  export {};
@@ -1,13 +1,11 @@
1
- /// <reference types="react" />
2
1
  export declare const styles: {
3
2
  icon: string;
4
3
  };
5
4
  interface EmbeddedEntityBlockToolbarIconProps {
6
5
  isButton?: boolean;
7
6
  isDisabled: boolean;
8
- logAction?: () => void;
9
7
  nodeType: string;
10
8
  onClose: () => void;
11
9
  }
12
- export declare function EmbeddedEntityBlockToolbarIcon({ isButton, isDisabled, logAction, nodeType, onClose, }: EmbeddedEntityBlockToolbarIconProps): JSX.Element;
10
+ export declare function EmbeddedEntityBlockToolbarIcon({ isButton, isDisabled, nodeType, onClose, }: EmbeddedEntityBlockToolbarIconProps): JSX.Element;
13
11
  export {};
@@ -1,2 +1,3 @@
1
- export declare function selectEntityAndInsert(nodeType: any, sdk: any, editor: any, logAction: any): Promise<void>;
1
+ import { TrackingPluginActions } from '../../plugins/Tracking';
2
+ export declare function selectEntityAndInsert(nodeType: any, sdk: any, editor: any, logAction: TrackingPluginActions['onToolbarAction'] | TrackingPluginActions['onShortcutAction']): Promise<void>;
2
3
  export declare function insertBlock(editor: any, nodeType: any, entity: any): void;
@@ -1,11 +1,5 @@
1
- import { KeyboardEvent } from 'react';
2
- import { BLOCKS } from '@contentful/rich-text-types';
3
- import { PlatePlugin, PlateEditor } from '@udecode/plate';
4
- import { CustomSlatePluginOptions } from 'types';
5
1
  import { FieldExtensionSDK } from '@contentful/app-sdk';
2
+ import { RichTextPlugin } from '../../types';
6
3
  export { EmbeddedEntityBlockToolbarIcon as ToolbarIcon } from './ToolbarIcon';
7
- export declare const createEmbeddedEntryBlockPlugin: (sdk: FieldExtensionSDK) => PlatePlugin;
8
- export declare const createEmbeddedAssetBlockPlugin: (sdk: FieldExtensionSDK) => PlatePlugin;
9
- export declare const withEmbeddedEntryBlockOptions: CustomSlatePluginOptions;
10
- export declare const withEmbeddedAssetBlockOptions: CustomSlatePluginOptions;
11
- export declare function getWithEmbeddedEntityEvents(nodeType: BLOCKS.EMBEDDED_ENTRY | BLOCKS.EMBEDDED_ASSET, sdk: FieldExtensionSDK): (editor: PlateEditor) => (event: KeyboardEvent) => void;
4
+ export declare const createEmbeddedEntryBlockPlugin: (sdk: FieldExtensionSDK) => RichTextPlugin;
5
+ export declare const createEmbeddedAssetBlockPlugin: (sdk: FieldExtensionSDK) => RichTextPlugin;
@@ -7,6 +7,7 @@ interface FetchingWrappedInlineEntryCardProps {
7
7
  isDisabled: boolean;
8
8
  onEdit: (event: React.MouseEvent<Element, MouseEvent>) => void;
9
9
  onRemove: (event: React.MouseEvent<Element, MouseEvent>) => void;
10
+ onEntityFetchComplete?: VoidFunction;
10
11
  }
11
12
  export declare function FetchingWrappedInlineEntryCard(props: FetchingWrappedInlineEntryCardProps): JSX.Element;
12
13
  export {};
@@ -1,12 +1,10 @@
1
- /// <reference types="react" />
2
- import { PlatePlugin } from '@udecode/plate';
3
- import { CustomSlatePluginOptions } from '../../types';
1
+ import { FieldExtensionSDK } from '@contentful/app-sdk';
2
+ import { RichTextPlugin } from '../../types';
4
3
  interface ToolbarEmbeddedEntityInlineButtonProps {
5
4
  onClose: () => void;
6
5
  isDisabled: boolean;
7
6
  isButton?: boolean;
8
7
  }
9
8
  export declare function ToolbarEmbeddedEntityInlineButton(props: ToolbarEmbeddedEntityInlineButtonProps): JSX.Element;
10
- export declare function createEmbeddedEntityInlinePlugin(sdk: any): PlatePlugin;
11
- export declare const withEmbeddedEntityInlineOptions: CustomSlatePluginOptions;
9
+ export declare function createEmbeddedEntityInlinePlugin(sdk: FieldExtensionSDK): RichTextPlugin;
12
10
  export {};
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import { BLOCKS } from '@contentful/rich-text-types';
3
+ import * as Slate from 'slate-react';
4
+ export declare const HeadingComponents: {
5
+ "heading-1": React.MemoExoticComponent<(props: Slate.RenderElementProps) => JSX.Element>;
6
+ "heading-2": React.MemoExoticComponent<(props: Slate.RenderElementProps) => JSX.Element>;
7
+ "heading-3": React.MemoExoticComponent<(props: Slate.RenderElementProps) => JSX.Element>;
8
+ "heading-4": React.MemoExoticComponent<(props: Slate.RenderElementProps) => JSX.Element>;
9
+ "heading-5": React.MemoExoticComponent<(props: Slate.RenderElementProps) => JSX.Element>;
10
+ "heading-6": React.MemoExoticComponent<(props: Slate.RenderElementProps) => JSX.Element>;
11
+ };
@@ -0,0 +1,4 @@
1
+ export interface ToolbarHeadingButtonProps {
2
+ isDisabled?: boolean;
3
+ }
4
+ export declare function ToolbarHeadingButton(props: ToolbarHeadingButtonProps): JSX.Element | null;
@@ -0,0 +1,2 @@
1
+ import { RichTextPlugin } from '../../types';
2
+ export declare const createHeadingPlugin: () => RichTextPlugin;
@@ -1,20 +1,2 @@
1
- import * as React from 'react';
2
- import * as Slate from 'slate-react';
3
- import { BLOCKS } from '@contentful/rich-text-types';
4
- import { PlatePlugin, PlateEditor } from '@udecode/plate';
5
- import { CustomSlatePluginOptions } from '../../types';
6
- export declare function withHeadingEvents(editor: PlateEditor): (event: React.KeyboardEvent) => void;
7
- interface ToolbarHeadingButtonProps {
8
- isDisabled?: boolean;
9
- }
10
- export declare function ToolbarHeadingButton(props: ToolbarHeadingButtonProps): JSX.Element | null;
11
- export declare function createHeading(Tag: any, block: BLOCKS): (props: Slate.RenderElementProps) => JSX.Element;
12
- export declare const H1: (props: Slate.RenderElementProps) => JSX.Element;
13
- export declare const H2: (props: Slate.RenderElementProps) => JSX.Element;
14
- export declare const H3: (props: Slate.RenderElementProps) => JSX.Element;
15
- export declare const H4: (props: Slate.RenderElementProps) => JSX.Element;
16
- export declare const H5: (props: Slate.RenderElementProps) => JSX.Element;
17
- export declare const H6: (props: Slate.RenderElementProps) => JSX.Element;
18
- export declare function createHeadingPlugin(): PlatePlugin;
19
- export declare const withHeadingOptions: CustomSlatePluginOptions;
20
- export {};
1
+ export * from './components/ToolbarHeadingButton';
2
+ export * from './createHeadingPlugin';
@@ -1,13 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import * as Slate from 'slate-react';
3
- import { PlatePlugin, PlateEditor } from '@udecode/plate';
4
- import { CustomSlatePluginOptions } from '../../types';
3
+ import { RichTextEditor, RichTextPlugin } from '../../types';
5
4
  interface ToolbarHrButtonProps {
6
5
  isDisabled?: boolean;
7
6
  }
8
- export declare function withHrEvents(editor: PlateEditor): (event: React.KeyboardEvent) => void;
7
+ export declare function withHrEvents(editor: RichTextEditor): (event: React.KeyboardEvent) => void;
9
8
  export declare function ToolbarHrButton(props: ToolbarHrButtonProps): JSX.Element | null;
10
9
  export declare function Hr(props: Slate.RenderLeafProps): JSX.Element;
11
- export declare function createHrPlugin(): PlatePlugin;
12
- export declare const withHrOptions: CustomSlatePluginOptions;
10
+ export declare const createHrPlugin: () => RichTextPlugin;
13
11
  export {};
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ContentEntityType as EntityType } from '@contentful/field-editor-reference/dist/types';
3
2
  import { FieldExtensionSDK } from '@contentful/field-editor-shared';
4
3
  interface EntryAssetTooltipProps {
@@ -1,9 +1,7 @@
1
- /// <reference types="react" />
2
- import { FieldExtensionSDK } from '@contentful/field-editor-shared';
3
- import { PlateEditor } from '@udecode/plate';
4
- import { ReactEditor } from 'slate-react';
5
- import { HistoryEditor } from 'slate-history';
6
1
  import { Link } from '@contentful/field-editor-reference/dist/types';
2
+ import { FieldExtensionSDK } from '@contentful/field-editor-shared';
3
+ import { TrackingPluginActions } from '../../plugins/Tracking';
4
+ import { RichTextEditor } from '../../types';
7
5
  interface HyperlinkModalProps {
8
6
  linkText?: string;
9
7
  linkType?: string;
@@ -13,5 +11,5 @@ interface HyperlinkModalProps {
13
11
  sdk: FieldExtensionSDK;
14
12
  }
15
13
  export declare function HyperlinkModal(props: HyperlinkModalProps): JSX.Element;
16
- export declare function addOrEditLink(editor: ReactEditor & HistoryEditor & PlateEditor, sdk: FieldExtensionSDK): Promise<void>;
14
+ export declare function addOrEditLink(editor: RichTextEditor, sdk: FieldExtensionSDK, logAction: TrackingPluginActions['onToolbarAction'] | TrackingPluginActions['onShortcutAction'] | TrackingPluginActions['onViewportAction']): Promise<void>;
17
15
  export {};
@@ -1,12 +1,8 @@
1
- import * as React from 'react';
2
- import { PlatePlugin } from '@udecode/plate';
3
1
  import { FieldExtensionSDK } from '@contentful/app-sdk';
4
- import { CustomSlatePluginOptions } from '../../types';
5
- export declare function createHyperlinkPlugin(sdk: FieldExtensionSDK): PlatePlugin;
6
- export declare function buildHyperlinkEventHandler(sdk: any): (editor: any) => (event: React.KeyboardEvent) => void;
2
+ import { RichTextPlugin } from '../../types';
7
3
  interface ToolbarHyperlinkButtonProps {
8
4
  isDisabled: boolean | undefined;
9
5
  }
10
6
  export declare function ToolbarHyperlinkButton(props: ToolbarHyperlinkButtonProps): JSX.Element | null;
11
- export declare const withHyperlinkOptions: CustomSlatePluginOptions;
7
+ export declare const createHyperlinkPlugin: (sdk: FieldExtensionSDK) => RichTextPlugin;
12
8
  export {};
@@ -0,0 +1 @@
1
+ export declare function truncate(str: string, length: number): string;
@@ -0,0 +1,3 @@
1
+ import { NodeEntry, Node } from 'slate';
2
+ import { RichTextEditor } from '../../types';
3
+ export declare const hasText: (editor: RichTextEditor, entry: NodeEntry<Node>) => boolean;
@@ -0,0 +1,3 @@
1
+ import * as Slate from 'slate-react';
2
+ export declare const ListUL: (props: Slate.RenderElementProps) => JSX.Element;
3
+ export declare const ListOL: (props: Slate.RenderElementProps) => JSX.Element;
@@ -0,0 +1,2 @@
1
+ import * as Slate from 'slate-react';
2
+ export declare function ListItem(props: Slate.RenderElementProps): JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface ToolbarListButtonProps {
2
+ isDisabled?: boolean;
3
+ }
4
+ export declare function ToolbarListButton(props: ToolbarListButtonProps): JSX.Element | null;
@@ -0,0 +1,2 @@
1
+ import { RichTextPlugin } from '../../types';
2
+ export declare const createListPlugin: () => RichTextPlugin;
@@ -1,15 +1,2 @@
1
- /// <reference types="react" />
2
- import * as Slate from 'slate-react';
3
- import { BLOCKS } from '@contentful/rich-text-types';
4
- import { CustomSlatePluginOptions } from '../../types';
5
- interface ToolbarListButtonProps {
6
- isDisabled?: boolean;
7
- }
8
- export declare function ToolbarListButton(props: ToolbarListButtonProps): JSX.Element | null;
9
- export declare function createList(Tag: any, block: BLOCKS): (props: Slate.RenderElementProps) => JSX.Element;
10
- export declare const UL: (props: Slate.RenderElementProps) => JSX.Element;
11
- export declare const OL: (props: Slate.RenderElementProps) => JSX.Element;
12
- export declare const LI: (props: Slate.RenderElementProps) => JSX.Element;
13
- export declare const withListOptions: CustomSlatePluginOptions;
14
- export declare const createListPlugin: () => import("@udecode/plate").PlatePlugin<{}>;
15
- export {};
1
+ export * from './createListPlugin';
2
+ export * from './components/ToolbarListButton';
@@ -0,0 +1,2 @@
1
+ import { RichTextEditor } from '../../types';
2
+ export declare const insertListBreak: (editor: RichTextEditor) => () => void;
@@ -0,0 +1,3 @@
1
+ import { TDescendant } from '@udecode/plate-core';
2
+ import { RichTextEditor } from '../../types';
3
+ export declare const insertListFragment: (editor: RichTextEditor) => (fragment: TDescendant[]) => void;
@@ -0,0 +1,2 @@
1
+ import { RichTextEditor } from '../../../types';
2
+ export declare const deleteBackwardList: (editor: RichTextEditor, unit: 'character' | 'word' | 'line' | 'block') => boolean;
@@ -0,0 +1,5 @@
1
+ import { RichTextEditor } from '../../../types';
2
+ /**
3
+ * Insert list item if selection is in li>p.
4
+ */
5
+ export declare const insertListItem: (editor: RichTextEditor) => boolean;
@@ -0,0 +1,4 @@
1
+ import { PlateEditor } from '@udecode/plate-core';
2
+ export declare const toggleList: (editor: PlateEditor, { type }: {
3
+ type: string;
4
+ }) => void;
@@ -0,0 +1,5 @@
1
+ import { PlateEditor } from '@udecode/plate-core';
2
+ import { Path } from 'slate';
3
+ export declare const unwrapList: (editor: PlateEditor, { at }?: {
4
+ at?: Path | undefined;
5
+ }) => void;
@@ -0,0 +1,15 @@
1
+ import { BLOCKS } from '@contentful/rich-text-types';
2
+ import { NodeEntry, Node } from 'slate';
3
+ import { CustomElement, RichTextEditor } from '../../types';
4
+ export declare const hasListAsDirectParent: (editor: RichTextEditor, [, path]: NodeEntry<Node>) => boolean;
5
+ /**
6
+ * Places orphaned list items in a list. If there's a list somewhere
7
+ * in the node's ancestors, defaults to that list type, else places
8
+ * the list item in an unordered list.
9
+ */
10
+ export declare const normalizeOrphanedListItem: (editor: RichTextEditor, [, path]: NodeEntry<Node>) => void;
11
+ export declare const isNonEmptyListItem: (editor: RichTextEditor, [, path]: NodeEntry<Node>) => boolean;
12
+ export declare const firstNodeIsNotList: (_editor: RichTextEditor, [node]: NodeEntry<CustomElement<unknown>>) => boolean;
13
+ export declare const insertParagraphAsChild: (editor: RichTextEditor, [, path]: NodeEntry<Node>) => void;
14
+ export declare const replaceNodeWithListItems: (editor: any, entry: any) => void;
15
+ export declare const isListTypeActive: (editor: RichTextEditor, type: BLOCKS) => boolean;
@@ -0,0 +1,4 @@
1
+ import { WithOverride } from '@udecode/plate-core';
2
+ import { ListPlugin } from '@udecode/plate-list';
3
+ import { RichTextEditor } from '../../types';
4
+ export declare const withList: WithOverride<RichTextEditor, ListPlugin>;
@@ -0,0 +1,11 @@
1
+ import { MARKS } from '@contentful/rich-text-types';
2
+ import * as Slate from 'slate-react';
3
+ import { RichTextPlugin } from '../../types';
4
+ export declare const ToolbarBoldButton: {
5
+ ({ isDisabled }: {
6
+ isDisabled?: boolean | undefined;
7
+ }): JSX.Element | null;
8
+ displayName: MARKS;
9
+ };
10
+ export declare function Bold(props: Slate.RenderLeafProps): JSX.Element;
11
+ export declare const createBoldPlugin: () => RichTextPlugin;
@@ -0,0 +1,11 @@
1
+ import { MARKS } from '@contentful/rich-text-types';
2
+ import * as Slate from 'slate-react';
3
+ import { RichTextPlugin } from '../../types';
4
+ export declare const ToolbarCodeButton: {
5
+ ({ isDisabled }: {
6
+ isDisabled?: boolean | undefined;
7
+ }): JSX.Element | null;
8
+ displayName: MARKS;
9
+ };
10
+ export declare function Code(props: Slate.RenderLeafProps): JSX.Element;
11
+ export declare const createCodePlugin: () => RichTextPlugin;
@@ -0,0 +1,11 @@
1
+ import { MARKS } from '@contentful/rich-text-types';
2
+ import * as Slate from 'slate-react';
3
+ import { RichTextPlugin } from '../../types';
4
+ export declare const ToolbarItalicButton: {
5
+ ({ isDisabled }: {
6
+ isDisabled?: boolean | undefined;
7
+ }): JSX.Element | null;
8
+ displayName: MARKS;
9
+ };
10
+ export declare function Italic(props: Slate.RenderLeafProps): JSX.Element;
11
+ export declare const createItalicPlugin: () => RichTextPlugin;
@@ -0,0 +1,11 @@
1
+ import { MARKS } from '@contentful/rich-text-types';
2
+ import * as Slate from 'slate-react';
3
+ import { RichTextPlugin } from '../../types';
4
+ export declare const ToolbarUnderlineButton: {
5
+ ({ isDisabled }: {
6
+ isDisabled?: boolean | undefined;
7
+ }): JSX.Element | null;
8
+ displayName: MARKS;
9
+ };
10
+ export declare function Underline(props: Slate.RenderLeafProps): JSX.Element;
11
+ export declare const createUnderlinePlugin: () => RichTextPlugin;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import { MARKS } from '@contentful/rich-text-types';
3
+ export interface MarkOptions {
4
+ mark: MARKS;
5
+ title: string;
6
+ icon: React.ReactElement;
7
+ }
8
+ export declare const createMarkToolbarButton: ({ mark, title, icon }: MarkOptions) => {
9
+ ({ isDisabled }: {
10
+ isDisabled?: boolean | undefined;
11
+ }): JSX.Element | null;
12
+ displayName: MARKS;
13
+ };
@@ -0,0 +1,4 @@
1
+ import { MARKS } from '@contentful/rich-text-types';
2
+ import { HotkeyPlugin, KeyboardHandler } from '@udecode/plate-core';
3
+ import { RichTextEditor } from '../../types';
4
+ export declare const buildMarkEventHandler: (type: MARKS) => KeyboardHandler<RichTextEditor, HotkeyPlugin>;
@@ -0,0 +1,2 @@
1
+ import { RichTextPlugin } from '../../types';
2
+ export declare const createMarksPlugin: () => RichTextPlugin;
@@ -0,0 +1,2 @@
1
+ import { NormalizerRule } from './types';
2
+ export declare const baseRules: Required<NormalizerRule>[];
@@ -0,0 +1,2 @@
1
+ import { RichTextPlugin } from '../../types';
2
+ export declare const createNormalizerPlugin: () => RichTextPlugin;
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './createNormalizerPlugin';
@@ -0,0 +1,40 @@
1
+ import { NodeMatch } from '@udecode/plate-core';
2
+ import { NodeEntry } from 'slate';
3
+ import { RichTextEditor } from '../../types';
4
+ export declare type NodeTransformer = (editor: RichTextEditor, entry: NodeEntry) => void;
5
+ export declare type NodeValidator = (editor: RichTextEditor, entry: NodeEntry) => boolean;
6
+ declare type BaseRule = {
7
+ /**
8
+ * A helper to return a Node to which valid* rules are applied
9
+ * against.
10
+ *
11
+ * By default it returns only Elements of type `plugin.type`.
12
+ */
13
+ match?: NodeMatch;
14
+ /**
15
+ * A helper to normalize invalid Node(s). By default it removes
16
+ * invalid nodes.
17
+ *
18
+ * Transformations are automatically wrapped in a
19
+ * `Editor.withoutNormalization()` call to avoid unnecessary
20
+ * normalization cycles.
21
+ */
22
+ transform?: NodeTransformer | Record<string | 'default', NodeTransformer>;
23
+ };
24
+ export declare type ValidNodeRule = BaseRule & {
25
+ /**
26
+ * Checks if matching Node(s) are valid.
27
+ */
28
+ validNode: NodeValidator;
29
+ };
30
+ export declare type ValidChildrenRule = BaseRule & {
31
+ /**
32
+ * Checks if matching Node's children are valid.
33
+ *
34
+ * The value can be an array of strings as a shorthand to indicate
35
+ * valid children types.
36
+ */
37
+ validChildren: NodeValidator | string[];
38
+ };
39
+ export declare type NormalizerRule = ValidNodeRule | ValidChildrenRule;
40
+ export {};
@@ -0,0 +1,8 @@
1
+ import { NodeEntry, Node } from 'slate';
2
+ import { RichTextEditor } from 'types';
3
+ import { NodeValidator, NodeTransformer } from './types';
4
+ export declare class NormalizerError extends Error {
5
+ }
6
+ export declare const createValidatorFromTypes: (types: string[]) => NodeValidator;
7
+ export declare const getChildren: (editor: RichTextEditor, [node, path]: NodeEntry<Node>) => NodeEntry[];
8
+ export declare const createTransformerFromObject: (transforms: Record<string, NodeTransformer>) => NodeTransformer;
@@ -0,0 +1,2 @@
1
+ import { RichTextEditor } from '../../types';
2
+ export declare const withNormalizer: (editor: RichTextEditor) => RichTextEditor;
@@ -0,0 +1,2 @@
1
+ import { RenderElementProps } from 'slate-react';
2
+ export declare function Paragraph(props: RenderElementProps): JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { RichTextPlugin } from '../../types';
2
+ export declare const createParagraphPlugin: () => RichTextPlugin;
@@ -1,7 +1 @@
1
- /// <reference types="react" />
2
- import { PlatePlugin } from '@udecode/plate';
3
- import { RenderElementProps } from 'slate-react';
4
- import { CustomSlatePluginOptions } from '../../types';
5
- export declare function Paragraph(props: RenderElementProps): JSX.Element;
6
- export declare function createParagraphPlugin(): PlatePlugin;
7
- export declare const withParagraphOptions: CustomSlatePluginOptions;
1
+ export * from './createParagraphPlugin';
@@ -0,0 +1,2 @@
1
+ export declare function isEmbedElement(element: HTMLElement): boolean;
2
+ export declare function isEmptyElement(element: HTMLElement): boolean;
@@ -0,0 +1,8 @@
1
+ import { RichTextPlugin } from '../../types';
2
+ export declare const getSlateFragmentAttribute: (dataTransfer: DataTransfer) => string | void;
3
+ /**
4
+ * Get the x-slate-fragment attribute that exist in text/html data
5
+ * and append it to the DataTransfer object
6
+ */
7
+ export declare const ensureXSlateFragment: (dataTransfer: DataTransfer) => DataTransfer;
8
+ export declare const createPasteHTMLPlugin: () => RichTextPlugin;
@@ -0,0 +1 @@
1
+ export * from './createPasteHTMLPlugin';
@@ -0,0 +1 @@
1
+ export declare const sanitizeHTML: (html: string) => string;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Remove empty spreadsheets columns/rows for performance reasons.
3
+ */
4
+ export declare const sanitizeSheets: (doc: Document) => Document;