@flozy/editor 1.0.8 → 1.1.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 (30) hide show
  1. package/dist/Editor/CollaborativeEditor.js +6 -4
  2. package/dist/Editor/CommonEditor.js +43 -31
  3. package/dist/Editor/Elements/CodeToText/CodeToText.js +44 -33
  4. package/dist/Editor/Elements/CodeToText/CodeToTextButton.js +13 -8
  5. package/dist/Editor/Elements/CodeToText/HtmlCode.js +13 -8
  6. package/dist/Editor/Elements/CodeToText/HtmlContextMenu.js +14 -8
  7. package/dist/Editor/Elements/Color Picker/ColorPicker.js +61 -53
  8. package/dist/Editor/Elements/Embed/Embed.js +62 -49
  9. package/dist/Editor/Elements/Embed/Image.js +30 -24
  10. package/dist/Editor/Elements/Embed/Video.js +45 -38
  11. package/dist/Editor/Elements/Equation/Equation.js +17 -10
  12. package/dist/Editor/Elements/Equation/EquationButton.js +37 -28
  13. package/dist/Editor/Elements/Grid/Grid.js +14 -9
  14. package/dist/Editor/Elements/Grid/GridButton.js +5 -3
  15. package/dist/Editor/Elements/Grid/GridItem.js +18 -13
  16. package/dist/Editor/Elements/ID/Id.js +30 -24
  17. package/dist/Editor/Elements/Link/Link.js +26 -19
  18. package/dist/Editor/Elements/Link/LinkButton.js +45 -35
  19. package/dist/Editor/Elements/Mentions/Mentions.js +6 -4
  20. package/dist/Editor/Elements/NewLine/NewLineButton.js +5 -3
  21. package/dist/Editor/Elements/Table/Table.js +10 -3
  22. package/dist/Editor/Elements/Table/TableSelector.js +41 -33
  23. package/dist/Editor/Elements/TableContextMenu/TableContextMenu.js +18 -13
  24. package/dist/Editor/RemoteCursorOverlay/Overlay.js +35 -31
  25. package/dist/Editor/Toolbar/Toolbar.js +90 -94
  26. package/dist/Editor/common/Button.js +7 -6
  27. package/dist/Editor/common/Icon.js +34 -33
  28. package/dist/Editor/common/MentionsPopup.js +20 -18
  29. package/dist/Editor/utils/SlateUtilityFunctions.js +132 -52
  30. package/package.json +4 -4
@@ -4,104 +4,105 @@ import { BsTypeH1, BsTypeH2, BsTypeH3, BsCameraVideoFill } from "react-icons/bs"
4
4
  import { FaSuperscript, FaSubscript } from "react-icons/fa";
5
5
  import { AiFillEdit, AiOutlineTable, AiOutlineInsertRowBelow, AiOutlineInsertRowRight, AiOutlineDelete, AiFillTag, AiOutlineUpload, AiOutlineArrowsAlt, AiOutlineInsertRowAbove, AiOutlineInsertRowLeft, AiFillHtml5 } from "react-icons/ai";
6
6
  import { SiLatex } from "react-icons/si";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
7
8
  const iconList = {
8
- bold: /*#__PURE__*/React.createElement(MdFormatBold, {
9
+ bold: /*#__PURE__*/_jsx(MdFormatBold, {
9
10
  size: 20
10
11
  }),
11
- italic: /*#__PURE__*/React.createElement(MdFormatItalic, {
12
+ italic: /*#__PURE__*/_jsx(MdFormatItalic, {
12
13
  size: 20
13
14
  }),
14
- strikethrough: /*#__PURE__*/React.createElement(MdStrikethroughS, {
15
+ strikethrough: /*#__PURE__*/_jsx(MdStrikethroughS, {
15
16
  size: 20
16
17
  }),
17
- underline: /*#__PURE__*/React.createElement(MdFormatUnderlined, {
18
+ underline: /*#__PURE__*/_jsx(MdFormatUnderlined, {
18
19
  size: 20
19
20
  }),
20
- headingOne: /*#__PURE__*/React.createElement(BsTypeH1, {
21
+ headingOne: /*#__PURE__*/_jsx(BsTypeH1, {
21
22
  size: 20
22
23
  }),
23
- headingTwo: /*#__PURE__*/React.createElement(BsTypeH2, {
24
+ headingTwo: /*#__PURE__*/_jsx(BsTypeH2, {
24
25
  size: 20
25
26
  }),
26
- headingThree: /*#__PURE__*/React.createElement(BsTypeH3, {
27
+ headingThree: /*#__PURE__*/_jsx(BsTypeH3, {
27
28
  size: 20
28
29
  }),
29
- blockquote: /*#__PURE__*/React.createElement(MdFormatQuote, {
30
+ blockquote: /*#__PURE__*/_jsx(MdFormatQuote, {
30
31
  size: 20
31
32
  }),
32
- superscript: /*#__PURE__*/React.createElement(FaSuperscript, {
33
+ superscript: /*#__PURE__*/_jsx(FaSuperscript, {
33
34
  size: 15
34
35
  }),
35
- subscript: /*#__PURE__*/React.createElement(FaSubscript, {
36
+ subscript: /*#__PURE__*/_jsx(FaSubscript, {
36
37
  size: 15
37
38
  }),
38
- alignLeft: /*#__PURE__*/React.createElement(MdFormatAlignLeft, {
39
+ alignLeft: /*#__PURE__*/_jsx(MdFormatAlignLeft, {
39
40
  size: 20
40
41
  }),
41
- alignCenter: /*#__PURE__*/React.createElement(MdFormatAlignCenter, {
42
+ alignCenter: /*#__PURE__*/_jsx(MdFormatAlignCenter, {
42
43
  size: 20
43
44
  }),
44
- alignRight: /*#__PURE__*/React.createElement(MdFormatAlignRight, {
45
+ alignRight: /*#__PURE__*/_jsx(MdFormatAlignRight, {
45
46
  size: 20
46
47
  }),
47
- orderedList: /*#__PURE__*/React.createElement(MdFormatListNumbered, {
48
+ orderedList: /*#__PURE__*/_jsx(MdFormatListNumbered, {
48
49
  size: 20
49
50
  }),
50
- unorderedList: /*#__PURE__*/React.createElement(MdFormatListBulleted, {
51
+ unorderedList: /*#__PURE__*/_jsx(MdFormatListBulleted, {
51
52
  size: 20
52
53
  }),
53
- link: /*#__PURE__*/React.createElement(MdInsertLink, {
54
+ link: /*#__PURE__*/_jsx(MdInsertLink, {
54
55
  size: 20
55
56
  }),
56
- image: /*#__PURE__*/React.createElement(MdImage, {
57
+ image: /*#__PURE__*/_jsx(MdImage, {
57
58
  size: 20
58
59
  }),
59
- video: /*#__PURE__*/React.createElement(MdVideoLibrary, {
60
+ video: /*#__PURE__*/_jsx(MdVideoLibrary, {
60
61
  size: 20
61
62
  }),
62
- add: /*#__PURE__*/React.createElement(MdAdd, {
63
+ add: /*#__PURE__*/_jsx(MdAdd, {
63
64
  size: 20
64
65
  }),
65
- table: /*#__PURE__*/React.createElement(AiOutlineTable, {
66
+ table: /*#__PURE__*/_jsx(AiOutlineTable, {
66
67
  size: 20
67
68
  }),
68
- insertRowBelow: /*#__PURE__*/React.createElement(AiOutlineInsertRowBelow, {
69
+ insertRowBelow: /*#__PURE__*/_jsx(AiOutlineInsertRowBelow, {
69
70
  size: 25
70
71
  }),
71
- insertColumnRight: /*#__PURE__*/React.createElement(AiOutlineInsertRowRight, {
72
+ insertColumnRight: /*#__PURE__*/_jsx(AiOutlineInsertRowRight, {
72
73
  size: 25
73
74
  }),
74
- insertColumnLeft: /*#__PURE__*/React.createElement(AiOutlineInsertRowLeft, {
75
+ insertColumnLeft: /*#__PURE__*/_jsx(AiOutlineInsertRowLeft, {
75
76
  size: 25
76
77
  }),
77
- insertRowAbove: /*#__PURE__*/React.createElement(AiOutlineInsertRowAbove, {
78
+ insertRowAbove: /*#__PURE__*/_jsx(AiOutlineInsertRowAbove, {
78
79
  size: 25
79
80
  }),
80
- trashCan: /*#__PURE__*/React.createElement(AiOutlineDelete, {
81
+ trashCan: /*#__PURE__*/_jsx(AiOutlineDelete, {
81
82
  size: 25
82
83
  }),
83
- addId: /*#__PURE__*/React.createElement(AiFillTag, {
84
+ addId: /*#__PURE__*/_jsx(AiFillTag, {
84
85
  size: 20
85
86
  }),
86
- upload: /*#__PURE__*/React.createElement(AiOutlineUpload, {
87
+ upload: /*#__PURE__*/_jsx(AiOutlineUpload, {
87
88
  size: 20
88
89
  }),
89
- equation: /*#__PURE__*/React.createElement(SiLatex, {
90
+ equation: /*#__PURE__*/_jsx(SiLatex, {
90
91
  size: 20
91
92
  }),
92
- resize: /*#__PURE__*/React.createElement(AiOutlineArrowsAlt, {
93
+ resize: /*#__PURE__*/_jsx(AiOutlineArrowsAlt, {
93
94
  size: 20
94
95
  }),
95
- videoPlayer: /*#__PURE__*/React.createElement(BsCameraVideoFill, {
96
+ videoPlayer: /*#__PURE__*/_jsx(BsCameraVideoFill, {
96
97
  size: 20
97
98
  }),
98
- insertHtml: /*#__PURE__*/React.createElement(AiFillHtml5, {
99
+ insertHtml: /*#__PURE__*/_jsx(AiFillHtml5, {
99
100
  size: 20
100
101
  }),
101
- arrowRight: /*#__PURE__*/React.createElement(MdArrowForward, {
102
+ arrowRight: /*#__PURE__*/_jsx(MdArrowForward, {
102
103
  size: 35
103
104
  }),
104
- pen: /*#__PURE__*/React.createElement(AiFillEdit, {
105
+ pen: /*#__PURE__*/_jsx(AiFillEdit, {
105
106
  size: 20
106
107
  })
107
108
  };
@@ -2,6 +2,7 @@ import React, { useRef, useEffect } from "react";
2
2
  import { Transforms } from "slate";
3
3
  import { ReactEditor } from "slate-react";
4
4
  import { insertMention } from "../utils/mentions";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
5
6
  const MentionsPopup = props => {
6
7
  const {
7
8
  editor,
@@ -21,7 +22,7 @@ const MentionsPopup = props => {
21
22
  el.style.left = `${rect.left + window.scrollX}px`;
22
23
  }
23
24
  }, [chars.length, editor, index, target]);
24
- return target && chars.length > 0 ? /*#__PURE__*/React.createElement("div", {
25
+ return target && chars.length > 0 ? /*#__PURE__*/_jsx("div", {
25
26
  ref: ref,
26
27
  style: {
27
28
  top: "-9999px",
@@ -33,22 +34,23 @@ const MentionsPopup = props => {
33
34
  borderRadius: "4px",
34
35
  boxShadow: "0 1px 5px rgba(0,0,0,.2)"
35
36
  },
36
- "data-cy": "mentions-portal"
37
- }, chars.map((char, i) => /*#__PURE__*/React.createElement("div", {
38
- key: char,
39
- onClick: () => {
40
- Transforms.select(editor, target);
41
- insertMention(editor, char);
42
- setMentions({
43
- ...mentions,
44
- target: null
45
- });
46
- },
47
- style: {
48
- padding: "1px 3px",
49
- borderRadius: "3px",
50
- background: i === index ? "#B4D5FF" : "transparent"
51
- }
52
- }, char))) : null;
37
+ "data-cy": "mentions-portal",
38
+ children: chars.map((char, i) => /*#__PURE__*/_jsx("div", {
39
+ onClick: () => {
40
+ Transforms.select(editor, target);
41
+ insertMention(editor, char);
42
+ setMentions({
43
+ ...mentions,
44
+ target: null
45
+ });
46
+ },
47
+ style: {
48
+ padding: "1px 3px",
49
+ borderRadius: "3px",
50
+ background: i === index ? "#B4D5FF" : "transparent"
51
+ },
52
+ children: char
53
+ }, char))
54
+ }) : null;
53
55
  };
54
56
  export default MentionsPopup;
@@ -1,4 +1,3 @@
1
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
1
  import { Editor, Transforms, Element as SlateElement } from "slate";
3
2
  import Link from "../Elements/Link/Link";
4
3
  import Image from "../Elements/Embed/Image";
@@ -9,6 +8,7 @@ import Table from "../Elements/Table/Table";
9
8
  import Mentions from "../Elements/Mentions/Mentions";
10
9
  import Grid from "../Elements/Grid/Grid";
11
10
  import GridItem from "../Elements/Grid/GridItem";
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
12
  const alignment = ["alignLeft", "alignRight", "alignCenter"];
13
13
  const list_types = ["orderedList", "unorderedList"];
14
14
  export const sizeMap = {
@@ -93,59 +93,76 @@ export const activeMark = (editor, format) => {
93
93
  };
94
94
  export const getMarked = (leaf, children) => {
95
95
  if (leaf.bold) {
96
- children = /*#__PURE__*/React.createElement("strong", null, children);
96
+ children = /*#__PURE__*/_jsx("strong", {
97
+ children: children
98
+ });
97
99
  }
98
100
  if (leaf.code) {
99
- children = /*#__PURE__*/React.createElement("code", null, children);
101
+ children = /*#__PURE__*/_jsx("code", {
102
+ children: children
103
+ });
100
104
  }
101
105
  if (leaf.italic) {
102
- children = /*#__PURE__*/React.createElement("em", null, children);
106
+ children = /*#__PURE__*/_jsx("em", {
107
+ children: children
108
+ });
103
109
  }
104
110
  if (leaf.strikethrough) {
105
- children = /*#__PURE__*/React.createElement("span", {
111
+ children = /*#__PURE__*/_jsx("span", {
106
112
  style: {
107
113
  textDecoration: "line-through"
108
- }
109
- }, children);
114
+ },
115
+ children: children
116
+ });
110
117
  }
111
118
  if (leaf.underline) {
112
- children = /*#__PURE__*/React.createElement("u", null, children);
119
+ children = /*#__PURE__*/_jsx("u", {
120
+ children: children
121
+ });
113
122
  }
114
123
  if (leaf.superscript) {
115
- children = /*#__PURE__*/React.createElement("sup", null, children);
124
+ children = /*#__PURE__*/_jsx("sup", {
125
+ children: children
126
+ });
116
127
  }
117
128
  if (leaf.subscript) {
118
- children = /*#__PURE__*/React.createElement("sub", null, children);
129
+ children = /*#__PURE__*/_jsx("sub", {
130
+ children: children
131
+ });
119
132
  }
120
133
  if (leaf.color) {
121
- children = /*#__PURE__*/React.createElement("span", {
134
+ children = /*#__PURE__*/_jsx("span", {
122
135
  style: {
123
136
  color: leaf.color
124
- }
125
- }, children);
137
+ },
138
+ children: children
139
+ });
126
140
  }
127
141
  if (leaf.bgColor) {
128
- children = /*#__PURE__*/React.createElement("span", {
142
+ children = /*#__PURE__*/_jsx("span", {
129
143
  style: {
130
144
  backgroundColor: leaf.bgColor
131
- }
132
- }, children);
145
+ },
146
+ children: children
147
+ });
133
148
  }
134
149
  if (leaf.fontSize) {
135
150
  const size = sizeMap[leaf.fontSize];
136
- children = /*#__PURE__*/React.createElement("span", {
151
+ children = /*#__PURE__*/_jsx("span", {
137
152
  style: {
138
153
  fontSize: size
139
- }
140
- }, children);
154
+ },
155
+ children: children
156
+ });
141
157
  }
142
158
  if (leaf.fontFamily) {
143
159
  const family = fontFamilyMap[leaf.fontFamily];
144
- children = /*#__PURE__*/React.createElement("span", {
160
+ children = /*#__PURE__*/_jsx("span", {
145
161
  style: {
146
162
  fontFamily: family
147
- }
148
- }, children);
163
+ },
164
+ children: children
165
+ });
149
166
  }
150
167
  return children;
151
168
  };
@@ -157,68 +174,131 @@ export const getBlock = props => {
157
174
  const attributes = props.attributes ?? {};
158
175
  switch (element.type) {
159
176
  case "headingOne":
160
- return /*#__PURE__*/React.createElement("h1", _extends({}, attributes, element.attr), children);
177
+ return /*#__PURE__*/_jsx("h1", {
178
+ ...attributes,
179
+ ...element.attr,
180
+ children: children
181
+ });
161
182
  case "headingTwo":
162
- return /*#__PURE__*/React.createElement("h2", _extends({}, attributes, element.attr), children);
183
+ return /*#__PURE__*/_jsx("h2", {
184
+ ...attributes,
185
+ ...element.attr,
186
+ children: children
187
+ });
163
188
  case "headingThree":
164
- return /*#__PURE__*/React.createElement("h3", _extends({}, attributes, element.attr), children);
189
+ return /*#__PURE__*/_jsx("h3", {
190
+ ...attributes,
191
+ ...element.attr,
192
+ children: children
193
+ });
165
194
  case "blockquote":
166
- return /*#__PURE__*/React.createElement("blockquote", _extends({}, attributes, element.attr), children);
195
+ return /*#__PURE__*/_jsx("blockquote", {
196
+ ...attributes,
197
+ ...element.attr,
198
+ children: children
199
+ });
167
200
  case "alignLeft":
168
- return /*#__PURE__*/React.createElement("div", _extends({
201
+ return /*#__PURE__*/_jsx("div", {
169
202
  style: {
170
203
  listStylePosition: "inside"
171
- }
172
- }, attributes, element.attr), children);
204
+ },
205
+ ...attributes,
206
+ ...element.attr,
207
+ children: children
208
+ });
173
209
  case "alignCenter":
174
- return /*#__PURE__*/React.createElement("div", _extends({
210
+ return /*#__PURE__*/_jsx("div", {
175
211
  style: {
176
212
  display: "flex",
177
213
  alignItems: "center",
178
214
  listStylePosition: "inside",
179
215
  flexDirection: "column"
180
- }
181
- }, attributes, element.attr), children);
216
+ },
217
+ ...attributes,
218
+ ...element.attr,
219
+ children: children
220
+ });
182
221
  case "alignRight":
183
- return /*#__PURE__*/React.createElement("div", _extends({
222
+ return /*#__PURE__*/_jsx("div", {
184
223
  style: {
185
224
  display: "flex",
186
225
  alignItems: "flex-end",
187
226
  listStylePosition: "inside",
188
227
  flexDirection: "column"
189
- }
190
- }, attributes, element.attr), children);
228
+ },
229
+ ...attributes,
230
+ ...element.attr,
231
+ children: children
232
+ });
191
233
  case "list-item":
192
- return /*#__PURE__*/React.createElement("li", _extends({}, attributes, element.attr), children);
234
+ return /*#__PURE__*/_jsx("li", {
235
+ ...attributes,
236
+ ...element.attr,
237
+ children: children
238
+ });
193
239
  case "orderedList":
194
- return /*#__PURE__*/React.createElement("ol", _extends({
195
- type: "1"
196
- }, attributes), children);
240
+ return /*#__PURE__*/_jsx("ol", {
241
+ type: "1",
242
+ ...attributes,
243
+ children: children
244
+ });
197
245
  case "unorderedList":
198
- return /*#__PURE__*/React.createElement("ul", attributes, children);
246
+ return /*#__PURE__*/_jsx("ul", {
247
+ ...attributes,
248
+ children: children
249
+ });
199
250
  case "link":
200
- return /*#__PURE__*/React.createElement(Link, props);
251
+ return /*#__PURE__*/_jsx(Link, {
252
+ ...props
253
+ });
201
254
  case "table":
202
- return /*#__PURE__*/React.createElement(Table, props);
255
+ return /*#__PURE__*/_jsx(Table, {
256
+ ...props
257
+ });
203
258
  case "table-row":
204
- return /*#__PURE__*/React.createElement("tr", attributes, children);
259
+ return /*#__PURE__*/_jsx("tr", {
260
+ ...attributes,
261
+ children: children
262
+ });
205
263
  case "table-cell":
206
- return /*#__PURE__*/React.createElement("td", _extends({}, element.attr, attributes), children);
264
+ return /*#__PURE__*/_jsx("td", {
265
+ ...element.attr,
266
+ ...attributes,
267
+ children: children
268
+ });
207
269
  case "image":
208
- return /*#__PURE__*/React.createElement(Image, props);
270
+ return /*#__PURE__*/_jsx(Image, {
271
+ ...props
272
+ });
209
273
  case "video":
210
- return /*#__PURE__*/React.createElement(Video, props);
274
+ return /*#__PURE__*/_jsx(Video, {
275
+ ...props
276
+ });
211
277
  case "equation":
212
- return /*#__PURE__*/React.createElement(Equation, props);
278
+ return /*#__PURE__*/_jsx(Equation, {
279
+ ...props
280
+ });
213
281
  case "htmlCode":
214
- return /*#__PURE__*/React.createElement(HtmlCode, props);
282
+ return /*#__PURE__*/_jsx(HtmlCode, {
283
+ ...props
284
+ });
215
285
  case "mention":
216
- return /*#__PURE__*/React.createElement(Mentions, props);
286
+ return /*#__PURE__*/_jsx(Mentions, {
287
+ ...props
288
+ });
217
289
  case "grid":
218
- return /*#__PURE__*/React.createElement(Grid, props);
290
+ return /*#__PURE__*/_jsx(Grid, {
291
+ ...props
292
+ });
219
293
  case "grid-item":
220
- return /*#__PURE__*/React.createElement(GridItem, props);
294
+ return /*#__PURE__*/_jsx(GridItem, {
295
+ ...props
296
+ });
221
297
  default:
222
- return /*#__PURE__*/React.createElement("div", _extends({}, element.attr, attributes), children);
298
+ return /*#__PURE__*/_jsx("div", {
299
+ ...element.attr,
300
+ ...attributes,
301
+ children: children
302
+ });
223
303
  }
224
304
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flozy/editor",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "description": "An Editor for flozy app brain",
5
5
  "files": [
6
6
  "dist"
@@ -34,8 +34,8 @@
34
34
  "yjs": "^13.6.8"
35
35
  },
36
36
  "peerDependencies": {
37
- "react": "^18.2.0",
38
- "react-dom": "^18.2.0"
37
+ "react": ">=15.0.0",
38
+ "react-dom": ">=15.0.0"
39
39
  },
40
40
  "scripts": {
41
41
  "prepare": "husky install .husky",
@@ -115,7 +115,7 @@
115
115
  },
116
116
  "babel": {
117
117
  "presets": [
118
- "@babel/preset-react"
118
+ ["@babel/preset-react", {"runtime": "automatic"}]
119
119
  ]
120
120
  }
121
121
  }