@squiz/formatted-text-editor 2.3.0 → 2.5.0

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 (202) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/demo/{App.tsx → diff/App.tsx} +3 -2
  3. package/demo/{AppContext.tsx → diff/AppContext.tsx} +1 -2
  4. package/demo/diff/index.html +14 -0
  5. package/demo/{main.tsx → diff/main.tsx} +1 -1
  6. package/demo/index.html +47 -2
  7. package/demo/portals/Accordion.tsx +50 -0
  8. package/demo/portals/App.tsx +150 -0
  9. package/demo/portals/index.html +13 -0
  10. package/demo/portals/index.scss +8 -0
  11. package/demo/portals/index.tsx +12 -0
  12. package/demo/portals/preview.html +91 -0
  13. package/demo/portals/preview.tsx +10 -0
  14. package/lib/Editor/Editor.d.ts +21 -0
  15. package/lib/Editor/Editor.js +76 -0
  16. package/lib/Editor/EditorContext.d.ts +10 -0
  17. package/lib/Editor/EditorContext.js +16 -0
  18. package/lib/EditorToolbar/FloatingToolbar.d.ts +2 -0
  19. package/lib/EditorToolbar/FloatingToolbar.js +76 -0
  20. package/lib/EditorToolbar/Toolbar.d.ts +8 -0
  21. package/lib/EditorToolbar/Toolbar.js +51 -0
  22. package/lib/EditorToolbar/Tools/Bold/BoldButton.d.ts +3 -0
  23. package/lib/EditorToolbar/Tools/Bold/BoldButton.js +23 -0
  24. package/lib/EditorToolbar/Tools/ClearFormatting/ClearFormattingButton.d.ts +3 -0
  25. package/lib/EditorToolbar/Tools/ClearFormatting/ClearFormattingButton.js +57 -0
  26. package/lib/EditorToolbar/Tools/ContentTools/ContentToolsDropdown.d.ts +3 -0
  27. package/lib/EditorToolbar/Tools/ContentTools/ContentToolsDropdown.js +104 -0
  28. package/lib/EditorToolbar/Tools/HorizontalLine/HorizontalLineButton.d.ts +3 -0
  29. package/lib/EditorToolbar/Tools/HorizontalLine/HorizontalLineButton.js +25 -0
  30. package/lib/EditorToolbar/Tools/Image/Form/ImageForm.d.ts +19 -0
  31. package/lib/EditorToolbar/Tools/Image/Form/ImageForm.js +183 -0
  32. package/lib/EditorToolbar/Tools/Image/ImageButton.d.ts +6 -0
  33. package/lib/EditorToolbar/Tools/Image/ImageButton.js +79 -0
  34. package/lib/EditorToolbar/Tools/Image/ImageModal.d.ts +9 -0
  35. package/lib/EditorToolbar/Tools/Image/ImageModal.js +26 -0
  36. package/lib/EditorToolbar/Tools/Italic/ItalicButton.d.ts +3 -0
  37. package/lib/EditorToolbar/Tools/Italic/ItalicButton.js +23 -0
  38. package/lib/EditorToolbar/Tools/Link/Form/LinkForm.d.ts +19 -0
  39. package/lib/EditorToolbar/Tools/Link/Form/LinkForm.js +63 -0
  40. package/lib/EditorToolbar/Tools/Link/LinkButton.d.ts +6 -0
  41. package/lib/EditorToolbar/Tools/Link/LinkButton.js +71 -0
  42. package/lib/EditorToolbar/Tools/Link/LinkModal.d.ts +9 -0
  43. package/lib/EditorToolbar/Tools/Link/LinkModal.js +27 -0
  44. package/lib/EditorToolbar/Tools/Link/RemoveLinkButton.d.ts +4 -0
  45. package/lib/EditorToolbar/Tools/Link/RemoveLinkButton.js +54 -0
  46. package/lib/EditorToolbar/Tools/Lists/ListButtons.d.ts +3 -0
  47. package/lib/EditorToolbar/Tools/Lists/ListButtons.js +14 -0
  48. package/lib/EditorToolbar/Tools/Lists/OrderedList/OrderedListButton.d.ts +3 -0
  49. package/lib/EditorToolbar/Tools/Lists/OrderedList/OrderedListButton.js +22 -0
  50. package/lib/EditorToolbar/Tools/Lists/UnorderedList/UnorderedListButton.d.ts +3 -0
  51. package/lib/EditorToolbar/Tools/Lists/UnorderedList/UnorderedListButton.js +22 -0
  52. package/lib/EditorToolbar/Tools/Redo/RedoButton.d.ts +3 -0
  53. package/lib/EditorToolbar/Tools/Redo/RedoButton.js +22 -0
  54. package/lib/EditorToolbar/Tools/Table/TableButton.d.ts +3 -0
  55. package/lib/EditorToolbar/Tools/Table/TableButton.js +20 -0
  56. package/lib/EditorToolbar/Tools/TextAlign/CenterAlign/CenterAlignButton.d.ts +3 -0
  57. package/lib/EditorToolbar/Tools/TextAlign/CenterAlign/CenterAlignButton.js +22 -0
  58. package/lib/EditorToolbar/Tools/TextAlign/JustifyAlign/JustifyAlignButton.d.ts +3 -0
  59. package/lib/EditorToolbar/Tools/TextAlign/JustifyAlign/JustifyAlignButton.js +22 -0
  60. package/lib/EditorToolbar/Tools/TextAlign/LeftAlign/LeftAlignButton.d.ts +3 -0
  61. package/lib/EditorToolbar/Tools/TextAlign/LeftAlign/LeftAlignButton.js +22 -0
  62. package/lib/EditorToolbar/Tools/TextAlign/RightAlign/RightAlignButton.d.ts +3 -0
  63. package/lib/EditorToolbar/Tools/TextAlign/RightAlign/RightAlignButton.js +22 -0
  64. package/lib/EditorToolbar/Tools/TextAlign/TextAlignButtons.d.ts +3 -0
  65. package/lib/EditorToolbar/Tools/TextAlign/TextAlignButtons.js +21 -0
  66. package/lib/EditorToolbar/Tools/TextType/CodeBlock/CodeBlockButton.d.ts +3 -0
  67. package/lib/EditorToolbar/Tools/TextType/CodeBlock/CodeBlockButton.js +22 -0
  68. package/lib/EditorToolbar/Tools/TextType/Heading/HeadingButton.d.ts +6 -0
  69. package/lib/EditorToolbar/Tools/TextType/Heading/HeadingButton.js +37 -0
  70. package/lib/EditorToolbar/Tools/TextType/Paragraph/ParagraphButton.d.ts +3 -0
  71. package/lib/EditorToolbar/Tools/TextType/Paragraph/ParagraphButton.js +21 -0
  72. package/lib/EditorToolbar/Tools/TextType/Preformatted/PreformattedButton.d.ts +3 -0
  73. package/lib/EditorToolbar/Tools/TextType/Preformatted/PreformattedButton.js +22 -0
  74. package/lib/EditorToolbar/Tools/TextType/TextTypeDropdown.d.ts +3 -0
  75. package/lib/EditorToolbar/Tools/TextType/TextTypeDropdown.js +46 -0
  76. package/lib/EditorToolbar/Tools/Underline/UnderlineButton.d.ts +3 -0
  77. package/lib/EditorToolbar/Tools/Underline/UnderlineButton.js +23 -0
  78. package/lib/EditorToolbar/Tools/Undo/UndoButton.d.ts +3 -0
  79. package/lib/EditorToolbar/Tools/Undo/UndoButton.js +22 -0
  80. package/lib/EditorToolbar/index.d.ts +2 -0
  81. package/lib/EditorToolbar/index.js +18 -0
  82. package/lib/Extensions/ClearFormattingExtension/ClearFormattingExtension.d.ts +5 -0
  83. package/lib/Extensions/ClearFormattingExtension/ClearFormattingExtension.js +63 -0
  84. package/lib/Extensions/CodeBlockExtension/CodeBlockExtension.d.ts +15 -0
  85. package/lib/Extensions/CodeBlockExtension/CodeBlockExtension.js +96 -0
  86. package/lib/Extensions/CommandsExtension/CommandsExtension.d.ts +20 -0
  87. package/lib/Extensions/CommandsExtension/CommandsExtension.js +52 -0
  88. package/lib/Extensions/Extensions.d.ts +18 -0
  89. package/lib/Extensions/Extensions.js +76 -0
  90. package/lib/Extensions/FetchUrlExtension/FetchUrlExtension.d.ts +12 -0
  91. package/lib/Extensions/FetchUrlExtension/FetchUrlExtension.js +69 -0
  92. package/lib/Extensions/ImageExtension/AssetImageExtension.d.ts +17 -0
  93. package/lib/Extensions/ImageExtension/AssetImageExtension.js +91 -0
  94. package/lib/Extensions/ImageExtension/DAMImageExtension.d.ts +17 -0
  95. package/lib/Extensions/ImageExtension/DAMImageExtension.js +97 -0
  96. package/lib/Extensions/ImageExtension/ImageExtension.d.ts +7 -0
  97. package/lib/Extensions/ImageExtension/ImageExtension.js +18 -0
  98. package/lib/Extensions/LinkExtension/AssetLinkExtension.d.ts +27 -0
  99. package/lib/Extensions/LinkExtension/AssetLinkExtension.js +101 -0
  100. package/lib/Extensions/LinkExtension/LinkExtension.d.ts +23 -0
  101. package/lib/Extensions/LinkExtension/LinkExtension.js +87 -0
  102. package/lib/Extensions/LinkExtension/common.d.ts +7 -0
  103. package/lib/Extensions/LinkExtension/common.js +14 -0
  104. package/lib/Extensions/PreformattedExtension/PreformattedExtension.d.ts +15 -0
  105. package/lib/Extensions/PreformattedExtension/PreformattedExtension.js +83 -0
  106. package/lib/Extensions/UnsuportedExtension/UnsupportedNodeExtension.d.ts +10 -0
  107. package/lib/Extensions/UnsuportedExtension/UnsupportedNodeExtension.js +76 -0
  108. package/lib/Icons/AiIcon.d.ts +2 -0
  109. package/lib/Icons/AiIcon.js +60 -0
  110. package/lib/hooks/index.d.ts +3 -0
  111. package/lib/hooks/index.js +19 -0
  112. package/lib/hooks/useExpandedSelection/useExpandedSelection.d.ts +23 -0
  113. package/lib/hooks/useExpandedSelection/useExpandedSelection.js +37 -0
  114. package/lib/hooks/useExtensionNames/useExtensionNames.d.ts +1 -0
  115. package/lib/hooks/useExtensionNames/useExtensionNames.js +16 -0
  116. package/lib/hooks/useFocus/useFocus.d.ts +6 -0
  117. package/lib/hooks/useFocus/useFocus.js +57 -0
  118. package/lib/index.css +5894 -0
  119. package/lib/index.d.ts +8 -0
  120. package/lib/index.js +16 -0
  121. package/lib/types.d.ts +7 -0
  122. package/lib/types.js +2 -0
  123. package/lib/ui/Button/Button.d.ts +12 -0
  124. package/lib/ui/Button/Button.js +13 -0
  125. package/lib/ui/CollapseBox/CollapseBox.d.ts +7 -0
  126. package/lib/ui/CollapseBox/CollapseBox.js +48 -0
  127. package/lib/ui/EditorInput/EditorInput.d.ts +3 -0
  128. package/lib/ui/EditorInput/EditorInput.js +49 -0
  129. package/lib/ui/EditorInput/EditorInput.props.d.ts +4 -0
  130. package/lib/ui/EditorInput/EditorInput.props.js +2 -0
  131. package/lib/ui/Fields/Checkbox/Checkbox.d.ts +9 -0
  132. package/lib/ui/Fields/Checkbox/Checkbox.js +47 -0
  133. package/lib/ui/Fields/Input/Input.d.ts +3 -0
  134. package/lib/ui/Fields/Input/Input.js +33 -0
  135. package/lib/ui/Fields/InputContainer/InputContainer.d.ts +9 -0
  136. package/lib/ui/Fields/InputContainer/InputContainer.js +16 -0
  137. package/lib/ui/Fields/MatrixAsset/MatrixAsset.d.ts +19 -0
  138. package/lib/ui/Fields/MatrixAsset/MatrixAsset.js +30 -0
  139. package/lib/ui/Fields/ResourceBrowserSelector/ResourceBrowserSelector.d.ts +28 -0
  140. package/lib/ui/Fields/ResourceBrowserSelector/ResourceBrowserSelector.js +88 -0
  141. package/lib/ui/Modal/FormModal.d.ts +5 -0
  142. package/lib/ui/Modal/FormModal.js +39 -0
  143. package/lib/ui/Modal/Modal.d.ts +11 -0
  144. package/lib/ui/Modal/Modal.js +79 -0
  145. package/lib/ui/Tabs/Tabs.d.ts +11 -0
  146. package/lib/ui/Tabs/Tabs.js +46 -0
  147. package/lib/ui/ToolbarDropdown/ToolbarDropdown.d.ts +7 -0
  148. package/lib/ui/ToolbarDropdown/ToolbarDropdown.js +48 -0
  149. package/lib/ui/ToolbarDropdownButton/ToolbarDropdownButton.d.ts +11 -0
  150. package/lib/ui/ToolbarDropdownButton/ToolbarDropdownButton.js +15 -0
  151. package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.d.ts +5 -0
  152. package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.js +23 -0
  153. package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.props.d.ts +3 -0
  154. package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.props.js +2 -0
  155. package/lib/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.d.ts +11 -0
  156. package/lib/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.js +235 -0
  157. package/lib/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.d.ts +9 -0
  158. package/lib/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.js +208 -0
  159. package/lib/utils/createToolbarPositioner.d.ts +18 -0
  160. package/lib/utils/createToolbarPositioner.js +96 -0
  161. package/lib/utils/getCursorRect.d.ts +2 -0
  162. package/lib/utils/getCursorRect.js +7 -0
  163. package/lib/utils/getMarkNamesByGroup.d.ts +2 -0
  164. package/lib/utils/getMarkNamesByGroup.js +9 -0
  165. package/lib/utils/getNodeNamesByGroup.d.ts +2 -0
  166. package/lib/utils/getNodeNamesByGroup.js +9 -0
  167. package/lib/utils/getShortcutSymbol.d.ts +1 -0
  168. package/lib/utils/getShortcutSymbol.js +8 -0
  169. package/lib/utils/undefinedIfEmpty.d.ts +1 -0
  170. package/lib/utils/undefinedIfEmpty.js +7 -0
  171. package/lib/utils/validation.d.ts +3 -0
  172. package/lib/utils/validation.js +16 -0
  173. package/package.json +1 -1
  174. package/src/Editor/Editor.spec.tsx +35 -10
  175. package/src/Editor/Editor.tsx +48 -44
  176. package/src/Editor/_editor.scss +4 -0
  177. package/src/EditorToolbar/Toolbar.tsx +8 -4
  178. package/src/EditorToolbar/Tools/Image/Form/ImageForm.tsx +0 -3
  179. package/src/EditorToolbar/Tools/TextType/CodeBlock/CodeBlockButton.tsx +3 -3
  180. package/src/EditorToolbar/_toolbar.scss +3 -2
  181. package/src/Extensions/CodeBlockExtension/CodeBlockExtension.props.ts +3 -0
  182. package/src/Extensions/CodeBlockExtension/CodeBlockExtension.spec.ts +59 -0
  183. package/src/Extensions/CodeBlockExtension/CodeBlockExtension.ts +82 -7
  184. package/src/Extensions/Extensions.ts +4 -4
  185. package/src/Extensions/PreformattedExtension/PreformattedExtension.ts +15 -3
  186. package/src/hooks/index.ts +3 -2
  187. package/src/hooks/useFocus/useFocus.spec.tsx +48 -0
  188. package/src/hooks/useFocus/useFocus.ts +71 -0
  189. package/src/ui/EditorInput/EditorInput.props.ts +5 -0
  190. package/src/ui/EditorInput/EditorInput.spec.tsx +38 -0
  191. package/src/ui/EditorInput/EditorInput.tsx +30 -0
  192. package/src/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.spec.ts +1 -3
  193. package/src/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.ts +0 -4
  194. package/src/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.spec.ts +1 -4
  195. package/src/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.ts +0 -5
  196. package/src/hooks/useFocus.ts +0 -61
  197. /package/demo/{index.scss → diff/index.scss} +0 -0
  198. /package/demo/{resources.json → diff/resources.json} +0 -0
  199. /package/demo/{sources.json → diff/sources.json} +0 -0
  200. /package/demo/{vite-env.d.ts → diff/vite-env.d.ts} +0 -0
  201. /package/src/hooks/{useExpandedSelection.ts → useExpandedSelection/useExpandedSelection.ts} +0 -0
  202. /package/src/hooks/{useExtensionNames.ts → useExtensionNames/useExtensionNames.ts} +0 -0
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const react_1 = __importStar(require("react"));
30
+ const react_2 = require("@remirror/react");
31
+ const ImageRounded_1 = __importDefault(require("@mui/icons-material/ImageRounded"));
32
+ const ImageModal_1 = __importDefault(require("./ImageModal"));
33
+ const Button_1 = __importDefault(require("../../../ui/Button/Button"));
34
+ const Extensions_1 = require("../../../Extensions/Extensions");
35
+ const getShortcutSymbol_1 = require("../../../utils/getShortcutSymbol");
36
+ const ImageButton = ({ inPopover = false }) => {
37
+ const [showModal, setShowModal] = (0, react_1.useState)(false);
38
+ const { insertImage, insertAssetImage, insertDAMImage } = (0, react_2.useCommands)();
39
+ const active = (0, react_2.useActive)();
40
+ const selection = (0, react_2.useCurrentSelection)();
41
+ // if the active selection is not an image, disable the button as it means it will be text
42
+ const disabled = (!selection.empty && !active.image() && !active.assetImage() && !active.DAMImage()) || active.codeBlock();
43
+ const handleClick = () => {
44
+ if (!showModal) {
45
+ setShowModal(true);
46
+ }
47
+ };
48
+ const insertImageFromData = (data) => {
49
+ const { imageType, image, resourceImage } = data;
50
+ if (imageType === Extensions_1.NodeName.Image) {
51
+ insertImage(image);
52
+ }
53
+ else if (imageType === Extensions_1.NodeName.DAMImage) {
54
+ insertDAMImage(resourceImage);
55
+ }
56
+ else {
57
+ insertAssetImage(resourceImage);
58
+ }
59
+ };
60
+ const handleSubmit = async (data) => {
61
+ insertImageFromData(data);
62
+ setShowModal(false);
63
+ };
64
+ const handleShortcut = (0, react_1.useCallback)(() => {
65
+ handleClick();
66
+ // Prevent other key handlers being run
67
+ return true;
68
+ }, []);
69
+ // when Ctrl+l is pressed show the modal, only registered in the toolbar button instance to avoid the key press
70
+ // being double handled.
71
+ if (!inPopover) {
72
+ // disable the shortcut if the button is disabled
73
+ (0, react_2.useKeymap)('Mod-l', disabled ? () => false : handleShortcut);
74
+ }
75
+ return (react_1.default.createElement(react_1.default.Fragment, null,
76
+ react_1.default.createElement(Button_1.default, { handleOnClick: handleClick, isActive: active.image() || active.assetImage() || active.DAMImage(), icon: react_1.default.createElement(ImageRounded_1.default, null), label: `Image (${(0, getShortcutSymbol_1.getShortcutSymbol)()}+L)`, isDisabled: disabled }),
77
+ showModal && react_1.default.createElement(ImageModal_1.default, { onCancel: () => setShowModal(false), onSubmit: handleSubmit })));
78
+ };
79
+ exports.default = ImageButton;
@@ -0,0 +1,9 @@
1
+ import { ImageFormData } from './Form/ImageForm';
2
+ import React from 'react';
3
+ import { SubmitHandler } from 'react-hook-form';
4
+ type ImageModalProps = {
5
+ onCancel: () => void;
6
+ onSubmit: SubmitHandler<ImageFormData>;
7
+ };
8
+ declare const ImageModal: ({ onCancel, onSubmit }: ImageModalProps) => React.JSX.Element;
9
+ export default ImageModal;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ImageForm_1 = __importDefault(require("./Form/ImageForm"));
7
+ const react_1 = __importDefault(require("react"));
8
+ const react_2 = require("@remirror/react");
9
+ const ImageRounded_1 = __importDefault(require("@mui/icons-material/ImageRounded"));
10
+ const FormModal_1 = __importDefault(require("../../../ui/Modal/FormModal"));
11
+ const Extensions_1 = require("../../../Extensions/Extensions");
12
+ const ImageModal = ({ onCancel, onSubmit }) => {
13
+ const selection = (0, react_2.useCurrentSelection)();
14
+ const currentImage = selection?.node;
15
+ const currentImageAttrs = { ...currentImage?.attrs };
16
+ const formData = {
17
+ imageType: currentImage?.type.name === Extensions_1.NodeName.Image ? Extensions_1.NodeName.Image : Extensions_1.NodeName.AssetImage,
18
+ image: currentImage?.type?.name === Extensions_1.NodeName.Image ? currentImageAttrs : {},
19
+ resourceImage: currentImage?.type?.name === Extensions_1.NodeName.DAMImage || currentImage?.type?.name === Extensions_1.NodeName.AssetImage
20
+ ? currentImageAttrs
21
+ : {},
22
+ };
23
+ return (react_1.default.createElement(FormModal_1.default, { title: "Image", icon: react_1.default.createElement(ImageRounded_1.default, null), onCancel: onCancel },
24
+ react_1.default.createElement(ImageForm_1.default, { data: formData, onSubmit: onSubmit })));
25
+ };
26
+ exports.default = ImageModal;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ItalicButton: () => React.JSX.Element;
3
+ export default ItalicButton;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_2 = require("@remirror/react");
8
+ const Button_1 = __importDefault(require("../../../ui/Button/Button"));
9
+ const FormatItalicRounded_1 = __importDefault(require("@mui/icons-material/FormatItalicRounded"));
10
+ const getShortcutSymbol_1 = require("../../../utils/getShortcutSymbol");
11
+ const ItalicButton = () => {
12
+ const { toggleItalic } = (0, react_2.useCommands)();
13
+ const chain = (0, react_2.useChainedCommands)();
14
+ const active = (0, react_2.useActive)();
15
+ const enabled = toggleItalic.enabled();
16
+ const handleSelect = () => {
17
+ if (toggleItalic.enabled()) {
18
+ chain.toggleItalic().focus().run();
19
+ }
20
+ };
21
+ return (react_1.default.createElement(Button_1.default, { handleOnClick: handleSelect, isDisabled: !enabled, isActive: active.italic(), icon: react_1.default.createElement(FormatItalicRounded_1.default, null), label: `Italic (${(0, getShortcutSymbol_1.getShortcutSymbol)()}+I)` }));
22
+ };
23
+ exports.default = ItalicButton;
@@ -0,0 +1,19 @@
1
+ import { ReactElement } from 'react';
2
+ import { SubmitHandler } from 'react-hook-form';
3
+ import { FromToProps } from 'remirror';
4
+ import { UpdateLinkProps } from '../../../../Extensions/LinkExtension/LinkExtension';
5
+ import { UpdateAssetLinkProps } from '../../../../Extensions/LinkExtension/AssetLinkExtension';
6
+ import { MarkName } from '../../../../Extensions/Extensions';
7
+ import { DeepPartial } from '../../../../types';
8
+ export type LinkFormData = {
9
+ linkType: MarkName;
10
+ text: string;
11
+ link: UpdateLinkProps['attrs'];
12
+ assetLink: UpdateAssetLinkProps['attrs'];
13
+ range: FromToProps;
14
+ };
15
+ export type FormProps = {
16
+ data?: DeepPartial<LinkFormData>;
17
+ onSubmit: SubmitHandler<LinkFormData>;
18
+ };
19
+ export declare const LinkForm: ({ data, onSubmit }: FormProps) => ReactElement;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LinkForm = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const clsx_1 = __importDefault(require("clsx"));
9
+ const react_hook_form_1 = require("react-hook-form");
10
+ const Input_1 = require("../../../../ui/Fields/Input/Input");
11
+ const Checkbox_1 = require("../../../../ui/Fields/Checkbox/Checkbox");
12
+ const common_1 = require("../../../../Extensions/LinkExtension/common");
13
+ const Extensions_1 = require("../../../../Extensions/Extensions");
14
+ const validation_1 = require("../../../../utils/validation");
15
+ const Tabs_1 = require("../../../../ui/Tabs/Tabs");
16
+ const MatrixAsset_1 = require("../../../../ui/Fields/MatrixAsset/MatrixAsset");
17
+ const linkTypeOptions = {
18
+ [Extensions_1.MarkName.AssetLink]: { label: 'From source' },
19
+ [Extensions_1.MarkName.Link]: { label: 'From URL' },
20
+ };
21
+ const LinkForm = ({ data, onSubmit }) => {
22
+ const { control, register, handleSubmit, setValue, watch, formState: { errors }, } = (0, react_hook_form_1.useForm)({
23
+ defaultValues: data,
24
+ });
25
+ const linkType = watch('linkType') || Extensions_1.MarkName.AssetLink;
26
+ return (react_1.default.createElement("form", { className: "squiz-fte-form", onSubmit: handleSubmit(onSubmit) },
27
+ react_1.default.createElement("div", { className: "squiz-fte-form-group mb-4" },
28
+ react_1.default.createElement(Tabs_1.Tabs, { value: linkType, options: linkTypeOptions, onChange: (value) => setValue('linkType', value) })),
29
+ linkType === Extensions_1.MarkName.Link && (react_1.default.createElement(react_1.default.Fragment, null,
30
+ react_1.default.createElement("div", { className: (0, clsx_1.default)('squiz-fte-form-group mb-2') },
31
+ react_1.default.createElement(Input_1.Input, { label: "URL", required: true, error: errors?.link?.href?.message, ...register('link.href', {
32
+ required: 'URL is required',
33
+ validate: {
34
+ noEmptySpaces: validation_1.noEmptySpacesValidation,
35
+ },
36
+ }) })),
37
+ react_1.default.createElement("div", { className: (0, clsx_1.default)('squiz-fte-form-group mb-2') },
38
+ react_1.default.createElement(Input_1.Input, { label: "Text", required: true, error: errors?.text?.message, ...register('text', {
39
+ required: 'Text is required',
40
+ validate: {
41
+ noEmptySpaces: validation_1.noEmptySpacesValidation,
42
+ },
43
+ }) })),
44
+ react_1.default.createElement("div", { className: (0, clsx_1.default)('squiz-fte-form-group mb-2') },
45
+ react_1.default.createElement(Input_1.Input, { label: "Title", error: errors?.link?.title?.message, ...register('link.title') })),
46
+ react_1.default.createElement("div", { className: (0, clsx_1.default)('squiz-fte-form-group mb-2') },
47
+ react_1.default.createElement(Checkbox_1.Checkbox, { label: "Open link in new window", onChange: (value) => setValue('link.target', value), defaultChecked: data?.link?.target === common_1.LinkTarget.Blank, unchecked: common_1.LinkTarget.Self, checked: common_1.LinkTarget.Blank })))),
48
+ linkType === Extensions_1.MarkName.AssetLink && (react_1.default.createElement(react_1.default.Fragment, null,
49
+ react_1.default.createElement("div", { className: (0, clsx_1.default)('squiz-fte-form-group mb-2') },
50
+ react_1.default.createElement(react_hook_form_1.Controller, { control: control, name: "assetLink", rules: {
51
+ validate: (0, validation_1.hasProperties)('An asset must be selected', ['matrixIdentifier', 'matrixAssetId']),
52
+ }, render: ({ field: { onChange, value }, fieldState: { error } }) => (react_1.default.createElement(MatrixAsset_1.MatrixAsset, { modalTitle: "Insert link", value: value, onChange: onChange, error: error?.message })) })),
53
+ react_1.default.createElement("div", { className: (0, clsx_1.default)('squiz-fte-form-group mb-2') },
54
+ react_1.default.createElement(Input_1.Input, { label: "Text", required: true, error: errors?.text?.message, ...register('text', {
55
+ required: 'Text is required',
56
+ validate: {
57
+ noEmptySpaces: validation_1.noEmptySpacesValidation,
58
+ },
59
+ }) })),
60
+ react_1.default.createElement("div", { className: (0, clsx_1.default)('squiz-fte-form-group mb-2') },
61
+ react_1.default.createElement(Checkbox_1.Checkbox, { label: "Open link in new window", onChange: (value) => setValue('assetLink.target', value), defaultChecked: data?.assetLink?.target === '_blank', unchecked: '_self', checked: '_blank' }))))));
62
+ };
63
+ exports.LinkForm = LinkForm;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export type LinkButtonProps = {
3
+ inPopover?: boolean;
4
+ };
5
+ declare const LinkButton: ({ inPopover }: LinkButtonProps) => React.JSX.Element;
6
+ export default LinkButton;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const react_1 = __importStar(require("react"));
30
+ const InsertLinkRounded_1 = __importDefault(require("@mui/icons-material/InsertLinkRounded"));
31
+ const LinkModal_1 = __importDefault(require("./LinkModal"));
32
+ const Button_1 = __importDefault(require("../../../ui/Button/Button"));
33
+ const react_2 = require("@remirror/react");
34
+ const Extensions_1 = require("../../../Extensions/Extensions");
35
+ const getShortcutSymbol_1 = require("../../../utils/getShortcutSymbol");
36
+ const LinkButton = ({ inPopover = false }) => {
37
+ const [showModal, setShowModal] = (0, react_1.useState)(false);
38
+ const { updateLink, updateAssetLink } = (0, react_2.useCommands)();
39
+ const active = (0, react_2.useActive)();
40
+ // If the image tool is active, disable the link tool as they shouldn't work at the same time
41
+ const disabled = active.image() || active.codeBlock();
42
+ const handleClick = () => {
43
+ if (!showModal) {
44
+ setShowModal(true);
45
+ }
46
+ };
47
+ const handleShortcut = (0, react_1.useCallback)(() => {
48
+ handleClick();
49
+ // Prevent other key handlers being run
50
+ return true;
51
+ }, []);
52
+ const handleSubmit = (data) => {
53
+ if (data.linkType === Extensions_1.MarkName.AssetLink) {
54
+ updateAssetLink({ text: data.text, attrs: data.assetLink, range: data.range });
55
+ }
56
+ else {
57
+ updateLink({ text: data.text, attrs: data.link, range: data.range });
58
+ }
59
+ setShowModal(false);
60
+ };
61
+ // when Ctrl+K is pressed show the modal, only registered in the toolbar button instance to avoid the key press
62
+ // being double handled.
63
+ if (!inPopover) {
64
+ // disable the shortcut if the button is disabled
65
+ (0, react_2.useKeymap)('Mod-k', disabled ? () => true : handleShortcut);
66
+ }
67
+ return (react_1.default.createElement(react_1.default.Fragment, null,
68
+ react_1.default.createElement(Button_1.default, { handleOnClick: handleClick, isActive: active.link() || active.assetLink(), icon: react_1.default.createElement(InsertLinkRounded_1.default, null), label: `Link (${(0, getShortcutSymbol_1.getShortcutSymbol)()}+K)`, isDisabled: disabled }),
69
+ showModal && react_1.default.createElement(LinkModal_1.default, { onCancel: () => setShowModal(false), onSubmit: handleSubmit })));
70
+ };
71
+ exports.default = LinkButton;
@@ -0,0 +1,9 @@
1
+ import { LinkFormData } from './Form/LinkForm';
2
+ import React from 'react';
3
+ import { SubmitHandler } from 'react-hook-form';
4
+ type LinkModalProps = {
5
+ onCancel: () => void;
6
+ onSubmit: SubmitHandler<LinkFormData>;
7
+ };
8
+ declare const LinkModal: ({ onCancel, onSubmit }: LinkModalProps) => React.JSX.Element;
9
+ export default LinkModal;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const LinkForm_1 = require("./Form/LinkForm");
7
+ const react_1 = __importDefault(require("react"));
8
+ const react_2 = require("@remirror/react");
9
+ const InsertLinkRounded_1 = __importDefault(require("@mui/icons-material/InsertLinkRounded"));
10
+ const FormModal_1 = __importDefault(require("../../../ui/Modal/FormModal"));
11
+ const hooks_1 = require("../../../hooks");
12
+ const Extensions_1 = require("../../../Extensions/Extensions");
13
+ const LinkModal = ({ onCancel, onSubmit }) => {
14
+ const { helpers, view: { state }, } = (0, react_2.useRemirrorContext)();
15
+ const { selection, marks } = (0, hooks_1.useExpandedSelection)([Extensions_1.MarkName.Link, Extensions_1.MarkName.AssetLink]);
16
+ const selectedText = helpers.getTextBetween(selection.from, selection.to, state.doc);
17
+ const data = {
18
+ linkType: marks[0]?.type?.name === Extensions_1.MarkName.Link ? Extensions_1.MarkName.Link : Extensions_1.MarkName.AssetLink,
19
+ text: selectedText,
20
+ link: { ...marks.find((mark) => mark.type.name === 'link')?.attrs },
21
+ assetLink: { ...marks.find((mark) => mark.type.name === Extensions_1.MarkName.AssetLink)?.attrs },
22
+ range: { from: selection.from, to: selection.to },
23
+ };
24
+ return (react_1.default.createElement(FormModal_1.default, { title: "Link", icon: react_1.default.createElement(InsertLinkRounded_1.default, null), onCancel: onCancel },
25
+ react_1.default.createElement(LinkForm_1.LinkForm, { data: data, onSubmit: onSubmit })));
26
+ };
27
+ exports.default = LinkModal;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { LinkButtonProps } from './LinkButton';
3
+ declare const RemoveLinkButton: ({ inPopover }: LinkButtonProps) => React.JSX.Element;
4
+ export default RemoveLinkButton;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const react_1 = __importStar(require("react"));
30
+ const react_2 = require("@remirror/react");
31
+ const Button_1 = __importDefault(require("../../../ui/Button/Button"));
32
+ const LinkOff_1 = __importDefault(require("@mui/icons-material/LinkOff"));
33
+ const getShortcutSymbol_1 = require("../../../utils/getShortcutSymbol");
34
+ const RemoveLinkButton = ({ inPopover = false }) => {
35
+ const chain = (0, react_2.useChainedCommands)();
36
+ const active = (0, react_2.useActive)();
37
+ const disabled = !active.link() && !active.assetLink();
38
+ const handleClick = () => {
39
+ chain.removeLink().removeAssetLink().focus().run();
40
+ };
41
+ const handleShortcut = (0, react_1.useCallback)(() => {
42
+ handleClick();
43
+ // Prevent other key handlers being run
44
+ return true;
45
+ }, []);
46
+ // when Shift+Ctrl+k is pressed show the modal, only registered in the toolbar button instance to avoid the key press
47
+ // being double handled.
48
+ if (!inPopover) {
49
+ // disable the shortcut if the button is disabled
50
+ (0, react_2.useKeymap)('Shift-Mod-k', disabled ? () => true : handleShortcut);
51
+ }
52
+ return (react_1.default.createElement(Button_1.default, { handleOnClick: handleClick, isActive: false, isDisabled: disabled, icon: react_1.default.createElement(LinkOff_1.default, null), label: `Remove link (Shift+${(0, getShortcutSymbol_1.getShortcutSymbol)()}+K)` }));
53
+ };
54
+ exports.default = RemoveLinkButton;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ListButtons: () => React.JSX.Element;
3
+ export default ListButtons;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const OrderedListButton_1 = __importDefault(require("./OrderedList/OrderedListButton"));
8
+ const UnorderedListButton_1 = __importDefault(require("./UnorderedList/UnorderedListButton"));
9
+ const react_components_1 = require("@remirror/react-components");
10
+ const ListButtons = () => (react_1.default.createElement(react_1.default.Fragment, null,
11
+ react_1.default.createElement(UnorderedListButton_1.default, null),
12
+ react_1.default.createElement(OrderedListButton_1.default, null),
13
+ react_1.default.createElement(react_components_1.VerticalDivider, null)));
14
+ exports.default = ListButtons;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const OrderedListButton: () => React.JSX.Element;
3
+ export default OrderedListButton;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_2 = require("@remirror/react");
8
+ const Button_1 = __importDefault(require("../../../../ui/Button/Button"));
9
+ const FormatListNumbered_1 = __importDefault(require("@mui/icons-material/FormatListNumbered"));
10
+ const OrderedListButton = () => {
11
+ const { toggleOrderedList } = (0, react_2.useCommands)();
12
+ const chain = (0, react_2.useChainedCommands)();
13
+ const active = (0, react_2.useActive)();
14
+ const enabled = toggleOrderedList.enabled();
15
+ const handleSelect = () => {
16
+ if (toggleOrderedList.enabled()) {
17
+ chain.toggleOrderedList().focus().run();
18
+ }
19
+ };
20
+ return (react_1.default.createElement(Button_1.default, { handleOnClick: handleSelect, isDisabled: !enabled, isActive: active.orderedList(), icon: react_1.default.createElement(FormatListNumbered_1.default, null), label: "Ordered list" }));
21
+ };
22
+ exports.default = OrderedListButton;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const UnorderedListButton: () => React.JSX.Element;
3
+ export default UnorderedListButton;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_2 = require("@remirror/react");
8
+ const Button_1 = __importDefault(require("../../../../ui/Button/Button"));
9
+ const FormatListBulletedRounded_1 = __importDefault(require("@mui/icons-material/FormatListBulletedRounded"));
10
+ const UnorderedListButton = () => {
11
+ const { toggleBulletList } = (0, react_2.useCommands)();
12
+ const chain = (0, react_2.useChainedCommands)();
13
+ const active = (0, react_2.useActive)();
14
+ const enabled = toggleBulletList.enabled();
15
+ const handleSelect = () => {
16
+ if (toggleBulletList.enabled()) {
17
+ chain.toggleBulletList().focus().run();
18
+ }
19
+ };
20
+ return (react_1.default.createElement(Button_1.default, { handleOnClick: handleSelect, isDisabled: !enabled, isActive: active.bulletList(), icon: react_1.default.createElement(FormatListBulletedRounded_1.default, null), label: "Unordered list" }));
21
+ };
22
+ exports.default = UnorderedListButton;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const RedoButton: () => React.JSX.Element;
3
+ export default RedoButton;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_2 = require("@remirror/react");
8
+ const Button_1 = __importDefault(require("../../../ui/Button/Button"));
9
+ const RedoRounded_1 = __importDefault(require("@mui/icons-material/RedoRounded"));
10
+ const getShortcutSymbol_1 = require("../../../utils/getShortcutSymbol");
11
+ const RedoButton = () => {
12
+ const { redo } = (0, react_2.useCommands)();
13
+ const { redoDepth } = (0, react_2.useHelpers)(true);
14
+ const handleSelect = () => {
15
+ if (redo.enabled()) {
16
+ redo();
17
+ }
18
+ };
19
+ const enabled = redoDepth() > 0;
20
+ return (react_1.default.createElement(Button_1.default, { handleOnClick: handleSelect, isDisabled: !enabled, isActive: false, icon: react_1.default.createElement(RedoRounded_1.default, null), label: `Redo (Shift+${(0, getShortcutSymbol_1.getShortcutSymbol)()}+Z)` }));
21
+ };
22
+ exports.default = RedoButton;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const TableButton: () => React.JSX.Element;
3
+ export default TableButton;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_2 = require("@remirror/react");
8
+ const Button_1 = __importDefault(require("../../../ui/Button/Button"));
9
+ const TableViewRounded_1 = __importDefault(require("@mui/icons-material/TableViewRounded"));
10
+ const TableButton = () => {
11
+ const { createTable } = (0, react_2.useCommands)();
12
+ const active = (0, react_2.useActive)();
13
+ const enabled = createTable.enabled();
14
+ const handleSelect = () => {
15
+ createTable({ rowsCount: 4, columnsCount: 3, withHeaderRow: false });
16
+ };
17
+ return (react_1.default.createElement(react_1.default.Fragment, null,
18
+ react_1.default.createElement(Button_1.default, { handleOnClick: handleSelect, isDisabled: !enabled, isActive: active.table(), icon: react_1.default.createElement(TableViewRounded_1.default, null), label: "Insert table" })));
19
+ };
20
+ exports.default = TableButton;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const CenterAlignButton: () => React.JSX.Element;
3
+ export default CenterAlignButton;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_2 = require("@remirror/react");
8
+ const Button_1 = __importDefault(require("../../../../ui/Button/Button"));
9
+ const FormatAlignCenter_1 = __importDefault(require("@mui/icons-material/FormatAlignCenter"));
10
+ const CenterAlignButton = () => {
11
+ const { centerAlign } = (0, react_2.useCommands)();
12
+ const chain = (0, react_2.useChainedCommands)();
13
+ const handleSelect = () => {
14
+ if (centerAlign.enabled()) {
15
+ chain.centerAlign().focus().run();
16
+ }
17
+ };
18
+ const active = centerAlign.active?.() || false;
19
+ const enabled = centerAlign.enabled();
20
+ return (react_1.default.createElement(Button_1.default, { handleOnClick: handleSelect, isDisabled: !enabled, isActive: active, icon: react_1.default.createElement(FormatAlignCenter_1.default, null), label: "Align center" }));
21
+ };
22
+ exports.default = CenterAlignButton;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const JustifyAlignButton: () => React.JSX.Element;
3
+ export default JustifyAlignButton;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_2 = require("@remirror/react");
8
+ const Button_1 = __importDefault(require("../../../../ui/Button/Button"));
9
+ const FormatAlignJustify_1 = __importDefault(require("@mui/icons-material/FormatAlignJustify"));
10
+ const JustifyAlignButton = () => {
11
+ const { justifyAlign } = (0, react_2.useCommands)();
12
+ const chain = (0, react_2.useChainedCommands)();
13
+ const handleSelect = () => {
14
+ if (justifyAlign.enabled()) {
15
+ chain.justifyAlign().focus().run();
16
+ }
17
+ };
18
+ const active = justifyAlign.active?.() || false;
19
+ const enabled = justifyAlign.enabled();
20
+ return (react_1.default.createElement(Button_1.default, { handleOnClick: handleSelect, isDisabled: !enabled, isActive: active, icon: react_1.default.createElement(FormatAlignJustify_1.default, null), label: "Justify" }));
21
+ };
22
+ exports.default = JustifyAlignButton;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const LeftAlignButton: () => React.JSX.Element;
3
+ export default LeftAlignButton;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_2 = require("@remirror/react");
8
+ const Button_1 = __importDefault(require("../../../../ui/Button/Button"));
9
+ const FormatAlignLeft_1 = __importDefault(require("@mui/icons-material/FormatAlignLeft"));
10
+ const LeftAlignButton = () => {
11
+ const { leftAlign } = (0, react_2.useCommands)();
12
+ const chain = (0, react_2.useChainedCommands)();
13
+ const handleSelect = () => {
14
+ if (leftAlign.enabled()) {
15
+ chain.leftAlign().focus().run();
16
+ }
17
+ };
18
+ const active = leftAlign.active?.() || false;
19
+ const enabled = leftAlign.enabled();
20
+ return (react_1.default.createElement(Button_1.default, { handleOnClick: handleSelect, isDisabled: !enabled, isActive: active, icon: react_1.default.createElement(FormatAlignLeft_1.default, null), label: "Align left" }));
21
+ };
22
+ exports.default = LeftAlignButton;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const RightAlignButton: () => React.JSX.Element;
3
+ export default RightAlignButton;