@contentful/field-editor-rich-text 1.0.1 → 2.0.0-next.1

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 (135) hide show
  1. package/README.md +1 -1
  2. package/dist/ContentfulEditorProvider.d.ts +8 -0
  3. package/dist/RichTextEditor.d.ts +19 -60
  4. package/dist/RichTextEditor.styles.d.ts +7 -0
  5. package/dist/SdkProvider.d.ts +7 -0
  6. package/dist/Toolbar/EmbedEntityWidget.d.ts +6 -0
  7. package/dist/Toolbar/StickyToolbarWrapper.d.ts +6 -11
  8. package/dist/Toolbar/index.d.ts +6 -20
  9. package/dist/TrackingProvider.d.ts +11 -0
  10. package/dist/constants/Schema.d.ts +93 -11
  11. package/dist/dialogs/openRichTextDialog.d.ts +2 -1
  12. package/dist/dialogs/renderRichTextDialog.d.ts +3 -1
  13. package/dist/field-editor-rich-text.cjs.development.js +4243 -5265
  14. package/dist/field-editor-rich-text.cjs.development.js.map +1 -1
  15. package/dist/field-editor-rich-text.cjs.production.min.js +1 -1
  16. package/dist/field-editor-rich-text.cjs.production.min.js.map +1 -1
  17. package/dist/field-editor-rich-text.esm.js +4275 -5297
  18. package/dist/field-editor-rich-text.esm.js.map +1 -1
  19. package/dist/helpers/deserializer.d.ts +3 -0
  20. package/dist/helpers/editor.d.ts +43 -0
  21. package/dist/helpers/environment.d.ts +1 -0
  22. package/dist/helpers/formatDateAndTime.d.ts +15 -0
  23. package/dist/helpers/getLinkedContentTypeIdsForNodeType.d.ts +26 -2
  24. package/dist/helpers/newEntitySelectorConfigFromRichTextField.d.ts +5 -1
  25. package/dist/helpers/sanitizeSlateDoc.d.ts +18 -0
  26. package/dist/helpers/truncate.d.ts +1 -0
  27. package/dist/helpers/validations.d.ts +10 -0
  28. package/dist/plugins/Bold/index.d.ts +12 -64
  29. package/dist/plugins/Code/index.d.ts +12 -64
  30. package/dist/plugins/DragAndDrop/index.d.ts +2 -0
  31. package/dist/plugins/EmbeddedEntity/index.d.ts +10 -0
  32. package/dist/plugins/EmbeddedEntityBlock/LinkedEntityBlock.d.ts +13 -0
  33. package/dist/plugins/EmbeddedEntityBlock/ToolbarIcon.d.ts +12 -10
  34. package/dist/plugins/EmbeddedEntityBlock/Util.d.ts +2 -23
  35. package/dist/plugins/EmbeddedEntityBlock/index.d.ts +11 -26
  36. package/dist/plugins/EmbeddedEntityInline/FetchingWrappedInlineEntryCard.d.ts +12 -0
  37. package/dist/plugins/EmbeddedEntityInline/Util.d.ts +16 -0
  38. package/dist/plugins/EmbeddedEntityInline/index.d.ts +12 -0
  39. package/dist/plugins/Heading/index.d.ts +20 -380
  40. package/dist/plugins/Hr/index.d.ts +13 -61
  41. package/dist/plugins/Hyperlink/EntryAssetTooltip.d.ts +10 -0
  42. package/dist/plugins/Hyperlink/HyperlinkModal.d.ts +17 -0
  43. package/dist/plugins/Hyperlink/index.d.ts +12 -9
  44. package/dist/plugins/InsertBeforeFirstVoidBlock/index.d.ts +2 -3
  45. package/dist/plugins/Italic/index.d.ts +12 -64
  46. package/dist/plugins/List/getListInsertFragment.d.ts +6 -0
  47. package/dist/plugins/List/index.d.ts +15 -114
  48. package/dist/plugins/NewLine/index.d.ts +2 -0
  49. package/dist/plugins/Paragraph/index.d.ts +7 -5
  50. package/dist/plugins/Paste/index.d.ts +2 -7
  51. package/dist/plugins/Paste/sanitizers/helpers.d.ts +7 -0
  52. package/dist/plugins/Paste/sanitizers/index.d.ts +3 -0
  53. package/dist/plugins/Paste/sanitizers/removeComments.d.ts +2 -0
  54. package/dist/plugins/Paste/sanitizers/sanitizeEntityBlocks.d.ts +6 -0
  55. package/dist/plugins/Paste/sanitizers/sanitizeTables.d.ts +2 -0
  56. package/dist/plugins/Quote/index.d.ts +13 -59
  57. package/dist/plugins/Table/TableActions.d.ts +5 -0
  58. package/dist/plugins/Table/actions/addColumn.d.ts +4 -0
  59. package/dist/plugins/Table/actions/addRow.d.ts +3 -0
  60. package/dist/plugins/Table/actions/index.d.ts +3 -0
  61. package/dist/plugins/Table/actions/setHeader.d.ts +2 -0
  62. package/dist/plugins/Table/helpers.d.ts +4 -0
  63. package/dist/plugins/Table/index.d.ts +189 -0
  64. package/dist/plugins/TrailingParagraph/index.d.ts +1 -0
  65. package/dist/plugins/Underline/index.d.ts +12 -0
  66. package/dist/plugins/shared/EntityStatusIcon.d.ts +8 -0
  67. package/dist/plugins/shared/FetchingWrappedAssetCard.d.ts +23 -0
  68. package/dist/plugins/shared/FetchingWrappedEntryCard.d.ts +13 -0
  69. package/dist/plugins/shared/ToolbarButton.d.ts +12 -0
  70. package/dist/types.d.ts +25 -0
  71. package/package.json +32 -29
  72. package/CHANGELOG.md +0 -414
  73. package/LICENSE +0 -21
  74. package/dist/RichTextEditor.spec.d.ts +0 -1
  75. package/dist/Toolbar/Toolbar.spec.d.ts +0 -1
  76. package/dist/helpers/browserSupport.d.ts +0 -1
  77. package/dist/plugins/CommandPalette/CommandMark.d.ts +0 -12
  78. package/dist/plugins/CommandPalette/CommandPalette.d.ts +0 -10
  79. package/dist/plugins/CommandPalette/CommandPaletteService.d.ts +0 -20
  80. package/dist/plugins/CommandPalette/CommandPanel/CommandPanelMenu.d.ts +0 -43
  81. package/dist/plugins/CommandPalette/CommandPanel/index.d.ts +0 -37
  82. package/dist/plugins/CommandPalette/Util.d.ts +0 -5
  83. package/dist/plugins/CommandPalette/index.d.ts +0 -7
  84. package/dist/plugins/EmbeddedEntityBlock/EmbeddedEntityBlock.d.ts +0 -20
  85. package/dist/plugins/EmbeddedEntityBlock/EmbeddedEntityBlock.styles.d.ts +0 -3
  86. package/dist/plugins/EmbeddedEntityBlock/FetchingWrappedAssetCard.d.ts +0 -15
  87. package/dist/plugins/EmbeddedEntityBlock/FetchingWrappedEntryCard.d.ts +0 -15
  88. package/dist/plugins/EmbeddedEntryInline/EmbeddedEntryInline.d.ts +0 -21
  89. package/dist/plugins/EmbeddedEntryInline/EmbeddedEntryInline.styles.d.ts +0 -4
  90. package/dist/plugins/EmbeddedEntryInline/FetchingWrappedInlineEntryCard.d.ts +0 -14
  91. package/dist/plugins/EmbeddedEntryInline/ToolbarIcon.d.ts +0 -11
  92. package/dist/plugins/EmbeddedEntryInline/Utils.d.ts +0 -4
  93. package/dist/plugins/EmbeddedEntryInline/index.d.ts +0 -12
  94. package/dist/plugins/EntryEmbedDropdown/index.d.ts +0 -14
  95. package/dist/plugins/Heading/HeadingDropdown.d.ts +0 -28
  96. package/dist/plugins/Heading/HeadingDropdownItem.d.ts +0 -57
  97. package/dist/plugins/Heading/Paragraph.d.ts +0 -58
  98. package/dist/plugins/Hyperlink/Hyperlink.d.ts +0 -13
  99. package/dist/plugins/Hyperlink/ToolbarIcon.d.ts +0 -7
  100. package/dist/plugins/Hyperlink/Util.d.ts +0 -43
  101. package/dist/plugins/Hyperlink/styles.d.ts +0 -12
  102. package/dist/plugins/Hyperlink/truncate.d.ts +0 -1
  103. package/dist/plugins/Hyperlink/useRequestStatus.d.ts +0 -6
  104. package/dist/plugins/InsertBeforeFirstVoidBlock/Util.d.ts +0 -14
  105. package/dist/plugins/List/EditListWrapper.d.ts +0 -2
  106. package/dist/plugins/List/ToolbarDecorator.d.ts +0 -62
  107. package/dist/plugins/NewLinePlugin/index.d.ts +0 -3
  108. package/dist/plugins/Paste/Paste.d.ts +0 -1
  109. package/dist/plugins/Paste/Paste.spec.d.ts +0 -1
  110. package/dist/plugins/Paste/index.spec.d.ts +0 -1
  111. package/dist/plugins/PasteHtml/PasteHtml.spec.d.ts +0 -1
  112. package/dist/plugins/PasteHtml/Serializer.d.ts +0 -1
  113. package/dist/plugins/PasteHtml/index.d.ts +0 -3
  114. package/dist/plugins/PasteText/PasteText.spec.d.ts +0 -1
  115. package/dist/plugins/PasteText/index.d.ts +0 -3
  116. package/dist/plugins/Quote/QuotePlugin.d.ts +0 -10
  117. package/dist/plugins/Quote/Util.d.ts +0 -2
  118. package/dist/plugins/Underlined/index.d.ts +0 -64
  119. package/dist/plugins/index.d.ts +0 -1
  120. package/dist/plugins/shared/BlockSelectDecorator.d.ts +0 -63
  121. package/dist/plugins/shared/BlockToggleDecorator.d.ts +0 -65
  122. package/dist/plugins/shared/MarkDecorator.d.ts +0 -12
  123. package/dist/plugins/shared/MarkPlugin.d.ts +0 -9
  124. package/dist/plugins/shared/MarkToggleDecorator.d.ts +0 -62
  125. package/dist/plugins/shared/NodeDecorator.d.ts +0 -15
  126. package/dist/plugins/shared/PasteTestHelpers.d.ts +0 -35
  127. package/dist/plugins/shared/PluginApi.d.ts +0 -31
  128. package/dist/plugins/shared/PropTypes.d.ts +0 -15
  129. package/dist/plugins/shared/ToolbarDropdownListItem.d.ts +0 -14
  130. package/dist/plugins/shared/ToolbarIcon.d.ts +0 -16
  131. package/dist/plugins/shared/Util.d.ts +0 -1
  132. package/dist/plugins/shared/UtilHave.d.ts +0 -24
  133. package/dist/setupTests.d.ts +0 -1
  134. package/dist/validations/index.d.ts +0 -9
  135. package/dist/validations/validations.spec.d.ts +0 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  npm install @contentful/field-editor-rich-text
5
5
  ```
6
6
 
7
- This package contains a React `RichTextEditor` component that is used as default for `RichText` field type in the Contentful web application.
7
+ This package contains the updated rich text editor, currently in an **ALPHA** state (i.e., not suitable for production use and subject to breaking changes).
8
8
 
9
9
  This editor app is built on top of [Slate](https://github.com/ianstormtaylor/slate), a third party framework for building highly customizable rich text editing solutions.
10
10
 
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { FieldExtensionSDK } from '@contentful/app-sdk';
3
+ export declare function getContentfulEditorId(sdk: FieldExtensionSDK): string;
4
+ interface useContentfulEditorHookProps {
5
+ sdk: FieldExtensionSDK;
6
+ }
7
+ export declare const ContentfulEditorProvider: import("react").FC<useContentfulEditorHookProps>, useContentfulEditor: any;
8
+ export {};
@@ -1,61 +1,20 @@
1
- declare function RichTextEditor(props: any): JSX.Element;
2
- declare namespace RichTextEditor {
3
- export namespace defaultProps {
4
- export const isInitiallyDisabled: boolean;
5
- }
6
- }
1
+ /// <reference types="react" />
2
+ import * as Contentful from '@contentful/rich-text-types';
3
+ import { RichTextTrackingActionHandler } from './TrackingProvider';
4
+ import { FieldExtensionSDK } from '@contentful/app-sdk';
5
+ declare type ConnectedProps = {
6
+ sdk: FieldExtensionSDK;
7
+ onAction?: RichTextTrackingActionHandler;
8
+ minHeight?: string | number;
9
+ value?: object;
10
+ isDisabled?: boolean;
11
+ onChange?: (doc: Contentful.Document) => unknown;
12
+ isToolbarHidden?: boolean;
13
+ actionsDisabled?: boolean;
14
+ };
15
+ export declare const ConnectedRichTextEditor: (props: ConnectedProps) => JSX.Element;
16
+ declare type Props = ConnectedProps & {
17
+ isInitiallyDisabled: boolean;
18
+ };
19
+ declare const RichTextEditor: (props: Props) => JSX.Element;
7
20
  export default RichTextEditor;
8
- export class ConnectedRichTextEditor extends React.Component<any, any, any> {
9
- static propTypes: {
10
- minHeight: PropTypes.Requireable<string | number>;
11
- sdk: PropTypes.Validator<PropTypes.InferProps<{
12
- field: PropTypes.Validator<PropTypes.InferProps<{
13
- id: PropTypes.Validator<string>;
14
- locale: PropTypes.Validator<string>;
15
- }>>;
16
- access: PropTypes.Validator<PropTypes.InferProps<{
17
- can: PropTypes.Validator<(...args: any[]) => any>;
18
- }>>;
19
- parameters: PropTypes.Requireable<PropTypes.InferProps<{
20
- instance: PropTypes.Validator<PropTypes.InferProps<{
21
- getEntryUrl: PropTypes.Requireable<(...args: any[]) => any>;
22
- getAssetUrl: PropTypes.Requireable<(...args: any[]) => any>;
23
- }>>;
24
- }>>;
25
- }>>;
26
- value: PropTypes.Requireable<object>;
27
- isDisabled: PropTypes.Requireable<boolean>;
28
- onChange: PropTypes.Requireable<(...args: any[]) => any>;
29
- onAction: PropTypes.Requireable<(...args: any[]) => any>;
30
- isToolbarHidden: PropTypes.Requireable<boolean>;
31
- actionsDisabled: PropTypes.Requireable<boolean>;
32
- };
33
- static defaultProps: {
34
- value: import("@contentful/rich-text-types").Document;
35
- onChange: (...args: any[]) => void;
36
- onAction: (...args: any[]) => void;
37
- isDisabled: boolean;
38
- isToolbarHidden: boolean;
39
- actionsDisabled: boolean;
40
- };
41
- constructor(props: any);
42
- constructor(props: any, context: any);
43
- editor: React.RefObject<any>;
44
- richTextAPI: {
45
- sdk: {
46
- object: any;
47
- };
48
- logViewportAction: {
49
- function: any;
50
- };
51
- createActionLogger: {
52
- function: any;
53
- };
54
- };
55
- slatePlugins: any[];
56
- onChange: (editor: any) => void;
57
- callOnChange: import("lodash").DebouncedFunc<() => void>;
58
- handleKeyDown: (event: any, editor: any, next: any) => any;
59
- }
60
- import React from "react";
61
- import PropTypes from "prop-types";
@@ -0,0 +1,7 @@
1
+ export declare const styles: {
2
+ root: string;
3
+ editor: string;
4
+ hiddenToolbar: string;
5
+ enabled: string;
6
+ disabled: string;
7
+ };
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { FieldExtensionSDK } from '@contentful/app-sdk';
3
+ interface SdkProviderProps {
4
+ sdk: FieldExtensionSDK;
5
+ }
6
+ export declare const SdkProvider: React.FC<SdkProviderProps>, useSdkContext: any;
7
+ export {};
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export interface EmbedEntityWidgetProps {
3
+ isDisabled?: boolean;
4
+ canInsertBlocks?: boolean;
5
+ }
6
+ export declare const EmbedEntityWidget: ({ isDisabled, canInsertBlocks }: EmbedEntityWidgetProps) => JSX.Element;
@@ -1,12 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ declare type StickyToolbarProps = {
3
+ isDisabled?: boolean;
4
+ children: ReactNode;
5
+ };
6
+ declare const StickyToolbarWrapper: ({ isDisabled, children }: StickyToolbarProps) => JSX.Element;
1
7
  export default StickyToolbarWrapper;
2
- declare function StickyToolbarWrapper({ isDisabled, children }: {
3
- isDisabled: any;
4
- children: any;
5
- }): JSX.Element;
6
- declare namespace StickyToolbarWrapper {
7
- export namespace propTypes {
8
- export const isDisabled: PropTypes.Requireable<boolean>;
9
- export const children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
10
- }
11
- }
12
- import PropTypes from "prop-types";
@@ -1,20 +1,6 @@
1
- export default class Toolbar extends React.Component<any, any, any> {
2
- static propTypes: {
3
- richTextAPI: PropTypes.Validator<object>;
4
- isDisabled: PropTypes.Validator<boolean>;
5
- editor: PropTypes.Validator<object>;
6
- onChange: PropTypes.Validator<(...args: any[]) => any>;
7
- };
8
- constructor(props: any);
9
- constructor(props: any, context: any);
10
- hasMounted: boolean;
11
- isReadyToSetFocusProgrammatically: boolean;
12
- onChange: (...args: any[]) => void;
13
- handleEmbedDropdownOpen: () => void;
14
- handleEmbedDropdownClose: () => void;
15
- renderEmbeds: (props: any) => JSX.Element;
16
- openHeadingMenu: () => void;
17
- closeHeadingMenu: () => void;
18
- }
19
- import React from "react";
20
- import PropTypes from "prop-types";
1
+ /// <reference types="react" />
2
+ declare type ToolbarProps = {
3
+ isDisabled?: boolean;
4
+ };
5
+ declare const Toolbar: ({ isDisabled }: ToolbarProps) => JSX.Element;
6
+ export default Toolbar;
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ export declare type RichTextTrackingActionName = 'insertTable' | 'insertTableRow' | 'insertTableColumn' | 'removeTable' | 'removeTableRow' | 'removeTableColumn' | 'paste';
3
+ export declare type RichTextTrackingActionHandler = (name: RichTextTrackingActionName, data: Record<string, unknown>) => unknown;
4
+ interface TrackingProviderProps {
5
+ onAction: RichTextTrackingActionHandler;
6
+ }
7
+ export interface TrackingProvider {
8
+ onViewportAction: (actionName: RichTextTrackingActionName, data?: Record<string, unknown>) => ReturnType<TrackingProviderProps['onAction']>;
9
+ }
10
+ export declare const TrackingProvider: React.FC<TrackingProviderProps>, useTrackingContext: any;
11
+ export {};
@@ -1,29 +1,111 @@
1
- declare namespace _default {
2
- export namespace document {
3
- export const nodes: {
4
- types: import("@contentful/rich-text-types").TopLevelBlockEnum[];
1
+ import { BLOCKS, INLINES } from '@contentful/rich-text-types';
2
+ declare const _default: {
3
+ document: {
4
+ nodes: {
5
+ types: {
6
+ type: import("@contentful/rich-text-types").TopLevelBlockEnum;
7
+ }[];
5
8
  }[];
6
- }
7
- export const blocks: any;
8
- export const inlines: {
9
+ };
10
+ blocks: {
11
+ blockquote: {
12
+ nodes: {
13
+ match: {
14
+ type: BLOCKS;
15
+ }[][];
16
+ min: number;
17
+ }[];
18
+ normalize: (editor: any, error: any) => any;
19
+ };
20
+ paragraph: {
21
+ nodes: {
22
+ match: ({
23
+ type: INLINES;
24
+ } | {
25
+ object: string;
26
+ })[];
27
+ }[];
28
+ };
29
+ "heading-1": {
30
+ nodes: {
31
+ match: ({
32
+ type: INLINES;
33
+ } | {
34
+ object: string;
35
+ })[];
36
+ }[];
37
+ };
38
+ "heading-2": {
39
+ nodes: {
40
+ match: ({
41
+ type: INLINES;
42
+ } | {
43
+ object: string;
44
+ })[];
45
+ }[];
46
+ };
47
+ "heading-3": {
48
+ nodes: {
49
+ match: ({
50
+ type: INLINES;
51
+ } | {
52
+ object: string;
53
+ })[];
54
+ }[];
55
+ };
56
+ "heading-4": {
57
+ nodes: {
58
+ match: ({
59
+ type: INLINES;
60
+ } | {
61
+ object: string;
62
+ })[];
63
+ }[];
64
+ };
65
+ "heading-5": {
66
+ nodes: {
67
+ match: ({
68
+ type: INLINES;
69
+ } | {
70
+ object: string;
71
+ })[];
72
+ }[];
73
+ };
74
+ "heading-6": {
75
+ nodes: {
76
+ match: ({
77
+ type: INLINES;
78
+ } | {
79
+ object: string;
80
+ })[];
81
+ }[];
82
+ };
83
+ };
84
+ inlines: {
9
85
  hyperlink: {
10
86
  nodes: {
11
- objects: string[];
87
+ match: {
88
+ object: string;
89
+ }[];
12
90
  }[];
13
91
  };
14
92
  "entry-hyperlink": {
15
93
  nodes: {
16
- objects: string[];
94
+ match: {
95
+ object: string;
96
+ }[];
17
97
  }[];
18
98
  };
19
99
  "asset-hyperlink": {
20
100
  nodes: {
21
- objects: string[];
101
+ match: {
102
+ object: string;
103
+ }[];
22
104
  }[];
23
105
  };
24
106
  "embedded-entry-inline": {
25
107
  isVoid: boolean;
26
108
  };
27
109
  };
28
- }
110
+ };
29
111
  export default _default;
@@ -1 +1,2 @@
1
- export function openRichTextDialog(sdk: any): (options: any) => Promise<unknown>;
1
+ import { DialogExtensionSDK } from '@contentful/app-sdk';
2
+ export declare const openRichTextDialog: (sdk: DialogExtensionSDK) => (options: any) => Promise<unknown>;
@@ -1 +1,3 @@
1
- export function renderRichTextDialog(sdk: any): JSX.Element;
1
+ /// <reference types="react" />
2
+ import { DialogExtensionSDK } from '@contentful/app-sdk';
3
+ export declare const renderRichTextDialog: (sdk: DialogExtensionSDK) => JSX.Element;