@flozy/editor 1.2.0 → 1.2.2
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.
- package/dist/Editor/CollaborativeEditor.js +30 -14
- package/dist/Editor/CommonEditor.js +26 -3
- package/dist/Editor/Editor.css +132 -16
- package/dist/Editor/Elements/Accordion/AccordionButton.js +2 -2
- package/dist/Editor/Elements/AppHeader/AppHeaderButton.js +2 -2
- package/dist/Editor/Elements/Button/ButtonToolIcon.js +2 -2
- package/dist/Editor/Elements/Carousel/CarouselButton.js +2 -2
- package/dist/Editor/Elements/ChipText/ChipTextButton.js +5 -1
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +26 -6
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +58 -44
- package/dist/Editor/Elements/DrawerMenu/DrawerMenu.js +6 -1
- package/dist/Editor/Elements/DrawerMenu/DrawerMenuButton.js +2 -2
- package/dist/Editor/Elements/Embed/Embed.js +72 -34
- package/dist/Editor/Elements/Grid/GridButton.js +2 -2
- package/dist/Editor/Elements/Link/LinkButton.js +87 -38
- package/dist/Editor/Elements/NewLine/NewLineButton.js +7 -1
- package/dist/Editor/Elements/PageSettings/PageSettings.js +13 -0
- package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +2 -2
- package/dist/Editor/Elements/Signature/Signature.css +75 -0
- package/dist/Editor/Elements/Signature/SignatureButton.js +2 -2
- package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +20 -3
- package/dist/Editor/Elements/Signature/SignaturePopup.js +203 -150
- package/dist/Editor/Elements/Table/TableSelector.js +112 -41
- package/dist/Editor/Toolbar/Toolbar.js +1 -1
- package/dist/Editor/Toolbar/styles.css +8 -2
- package/dist/Editor/common/ColorPickerButton.js +6 -2
- package/dist/Editor/common/EditorIcons.js +81 -0
- package/dist/Editor/common/Icon.js +40 -20
- package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +38 -19
- package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +27 -9
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +38 -20
- package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +14 -3
- package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +8 -4
- package/dist/Editor/common/StyleBuilder/index.js +68 -28
- package/dist/Editor/common/Uploader.js +29 -23
- package/dist/Editor/common/iconslist.js +883 -0
- package/dist/Editor/utils/SlateUtilityFunctions.js +5 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useMemo, useState } from "react";
|
|
1
|
+
import React, { useEffect, useMemo, useState, useRef } from "react";
|
|
2
2
|
import * as Y from "yjs";
|
|
3
3
|
import { HocuspocusProvider } from "@hocuspocus/provider";
|
|
4
4
|
import { Editor, Transforms } from "slate";
|
|
@@ -9,7 +9,9 @@ import withCommon from "./hooks/withCommon";
|
|
|
9
9
|
import withCollaborative from "./hooks/withCollaborative";
|
|
10
10
|
import CommonEditor from "./CommonEditor";
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
12
13
|
const CollaborativeEditor = props => {
|
|
14
|
+
const editorRef = useRef(null);
|
|
13
15
|
const {
|
|
14
16
|
id,
|
|
15
17
|
content,
|
|
@@ -91,7 +93,7 @@ const CollaborativeEditor = props => {
|
|
|
91
93
|
});
|
|
92
94
|
provider.on("authenticationFailed", () => {
|
|
93
95
|
setAuthenticated({
|
|
94
|
-
status:
|
|
96
|
+
status: "error",
|
|
95
97
|
scope: null
|
|
96
98
|
});
|
|
97
99
|
});
|
|
@@ -107,7 +109,18 @@ const CollaborativeEditor = props => {
|
|
|
107
109
|
setConnected(false);
|
|
108
110
|
setMessage("Seems your connection is lost... Reload the page to edit the document...");
|
|
109
111
|
});
|
|
110
|
-
|
|
112
|
+
|
|
113
|
+
// const getContent = () => {
|
|
114
|
+
// console.log(editorRef.current.getContent());
|
|
115
|
+
// };
|
|
116
|
+
|
|
117
|
+
// const insertFragments = () => {
|
|
118
|
+
// editorRef.current.insertFragments([
|
|
119
|
+
// { type: "paragraph", children: [{ text: "some fragements to inss" }] },
|
|
120
|
+
// ]);
|
|
121
|
+
// };
|
|
122
|
+
|
|
123
|
+
if (authenticated.status === "error") {
|
|
111
124
|
return /*#__PURE__*/_jsx("h1", {
|
|
112
125
|
"data-status": connected,
|
|
113
126
|
children: "Authentication Error"
|
|
@@ -118,17 +131,20 @@ const CollaborativeEditor = props => {
|
|
|
118
131
|
children: message || "Loading..."
|
|
119
132
|
});
|
|
120
133
|
}
|
|
121
|
-
return /*#__PURE__*/_jsx(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
134
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
135
|
+
children: /*#__PURE__*/_jsx(CommonEditor, {
|
|
136
|
+
ref: editorRef,
|
|
137
|
+
editor: editor,
|
|
138
|
+
id: id,
|
|
139
|
+
content: [],
|
|
140
|
+
onSave: onSave,
|
|
141
|
+
readOnly: authenticated.scope,
|
|
142
|
+
otherProps: {
|
|
143
|
+
token: user?.token,
|
|
144
|
+
API_HOST: apiHOST
|
|
145
|
+
},
|
|
146
|
+
...rest
|
|
147
|
+
})
|
|
132
148
|
});
|
|
133
149
|
};
|
|
134
150
|
export default CollaborativeEditor;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useRef, useCallback, useEffect, useMemo, useState } from "react";
|
|
1
|
+
import React, { useRef, useCallback, useEffect, useMemo, useState, forwardRef, useImperativeHandle } from "react";
|
|
2
2
|
import { createEditor } from "slate";
|
|
3
3
|
import { Slate, Editable } from "slate-react";
|
|
4
4
|
import html2canvas from "html2canvas";
|
|
@@ -31,7 +31,7 @@ const Leaf = ({
|
|
|
31
31
|
children: children
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
|
-
const CommonEditor = props => {
|
|
34
|
+
const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
35
35
|
const {
|
|
36
36
|
id,
|
|
37
37
|
content,
|
|
@@ -78,6 +78,28 @@ const CommonEditor = props => {
|
|
|
78
78
|
updateChanges(value);
|
|
79
79
|
}
|
|
80
80
|
}, [count]);
|
|
81
|
+
useImperativeHandle(ref, () => ({
|
|
82
|
+
async getThumbnail() {
|
|
83
|
+
try {
|
|
84
|
+
const c = await html2canvas(editorWrapper?.current);
|
|
85
|
+
if (c) {
|
|
86
|
+
return c.toDataURL();
|
|
87
|
+
}
|
|
88
|
+
} catch (err) {
|
|
89
|
+
console.log(err);
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
getEditor() {
|
|
94
|
+
return editor;
|
|
95
|
+
},
|
|
96
|
+
getContent() {
|
|
97
|
+
return value;
|
|
98
|
+
},
|
|
99
|
+
insertFragments(fragments) {
|
|
100
|
+
editor.insertNode(fragments);
|
|
101
|
+
}
|
|
102
|
+
}));
|
|
81
103
|
const [htmlAction, setHtmlAction] = useState({
|
|
82
104
|
showInput: false,
|
|
83
105
|
html: "",
|
|
@@ -211,6 +233,7 @@ const CommonEditor = props => {
|
|
|
211
233
|
}, id)
|
|
212
234
|
})
|
|
213
235
|
});
|
|
214
|
-
};
|
|
236
|
+
});
|
|
237
|
+
CommonEditor.displayName = "CommonEditor";
|
|
215
238
|
const CHARACTERS = ["Aayla Secura", "Adi Gallia"];
|
|
216
239
|
export default CommonEditor;
|
package/dist/Editor/Editor.css
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap');
|
|
2
|
+
|
|
3
|
+
* {
|
|
4
|
+
font-family: 'Inter', sans-serif;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.ml-1 {
|
|
8
|
+
margin-left: 10px;
|
|
9
|
+
}
|
|
10
|
+
.dflex {
|
|
11
|
+
display: flex;
|
|
12
|
+
}
|
|
13
|
+
.alignCenter {
|
|
14
|
+
align-items: center;
|
|
15
|
+
}
|
|
1
16
|
blockquote{
|
|
2
17
|
border-left: 2px solid #ddd;
|
|
3
18
|
margin-left: 0;
|
|
@@ -47,8 +62,9 @@ td{
|
|
|
47
62
|
bottom: 0;
|
|
48
63
|
margin: auto;
|
|
49
64
|
background-color: white;
|
|
50
|
-
padding:
|
|
51
|
-
border:
|
|
65
|
+
padding: 20px;
|
|
66
|
+
border-radius: 6px;
|
|
67
|
+
/* border: 1px solid lightgray; */
|
|
52
68
|
height: fit-content;
|
|
53
69
|
z-index: 1;
|
|
54
70
|
width: 300px;
|
|
@@ -85,7 +101,7 @@ html{
|
|
|
85
101
|
.grid-item-toolbar {
|
|
86
102
|
position: absolute;
|
|
87
103
|
right: 0;
|
|
88
|
-
top: -
|
|
104
|
+
top: -30px;
|
|
89
105
|
}
|
|
90
106
|
|
|
91
107
|
.element-toolbar {
|
|
@@ -98,9 +114,16 @@ html{
|
|
|
98
114
|
.grid-container-toolbar button,
|
|
99
115
|
.grid-item-toolbar button,
|
|
100
116
|
.element-toolbar button {
|
|
101
|
-
margin-right: 8px;
|
|
117
|
+
/* margin-right: 8px;
|
|
102
118
|
background-color: rgba(0, 0, 0, 0.8);
|
|
103
|
-
color: #FFF;
|
|
119
|
+
color: #FFF; */
|
|
120
|
+
margin-left: 8px;
|
|
121
|
+
background-color: rgb(255 255 255);
|
|
122
|
+
color: #64748b;
|
|
123
|
+
padding: 5px;
|
|
124
|
+
font-size: 12px;
|
|
125
|
+
border-radius: 4px;
|
|
126
|
+
border: 1px solid #64748b;
|
|
104
127
|
}
|
|
105
128
|
|
|
106
129
|
.grid-item {
|
|
@@ -164,22 +187,36 @@ html{
|
|
|
164
187
|
display: flex;
|
|
165
188
|
justify-content: space-around;
|
|
166
189
|
}
|
|
190
|
+
.signature-btn-grps svg {
|
|
191
|
+
height: 17px !important;
|
|
192
|
+
width: 17px !important;
|
|
193
|
+
}
|
|
167
194
|
|
|
168
|
-
.
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
195
|
+
.close-popupbtn {
|
|
196
|
+
background-color: #EDEDED !important;
|
|
197
|
+
border-radius: 4px !important;
|
|
198
|
+
width: 24px;
|
|
199
|
+
height: 24px;
|
|
172
200
|
}
|
|
173
201
|
|
|
174
|
-
.
|
|
175
|
-
|
|
176
|
-
|
|
202
|
+
.close-popupbtn svg {
|
|
203
|
+
width: 17px;
|
|
204
|
+
height: 17px;
|
|
177
205
|
}
|
|
178
206
|
|
|
207
|
+
.popupTitle {
|
|
208
|
+
font-size: 16px !important;
|
|
209
|
+
font-weight: 600 !important;
|
|
210
|
+
font-family: Inter, sans-serif;
|
|
211
|
+
text-transform: uppercase;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
179
216
|
.signature-tab-content {
|
|
180
217
|
display: flex;
|
|
181
|
-
margin: 12px
|
|
182
|
-
padding: 0px;
|
|
218
|
+
margin: 12px 0px;
|
|
219
|
+
padding: 0px 5px;
|
|
183
220
|
border: 0px solid #CCC;
|
|
184
221
|
min-height: 100px;
|
|
185
222
|
}
|
|
@@ -213,11 +250,24 @@ html{
|
|
|
213
250
|
|
|
214
251
|
.typesignature-fontfamily .MuiButtonBase-root {
|
|
215
252
|
opacity: 1;
|
|
216
|
-
border: 1px solid #
|
|
253
|
+
border: 1px solid #cccccc6b;
|
|
254
|
+
color: #0F172A;
|
|
255
|
+
box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.08);
|
|
217
256
|
}
|
|
218
257
|
.typesignature-fontfamily .MuiButtonBase-root.active {
|
|
219
258
|
border: 1px solid #0052CC;
|
|
220
259
|
}
|
|
260
|
+
.typesignature-input-wrapper .MuiInputAdornment-root .MuiButtonBase-root {
|
|
261
|
+
background-color: #E9EBF8 !important;
|
|
262
|
+
border-radius: 4px !important;
|
|
263
|
+
width: 24px;
|
|
264
|
+
height: 24px;
|
|
265
|
+
padding: 2px;
|
|
266
|
+
}
|
|
267
|
+
.typesignature-input-wrapper .MuiInputAdornment-root svg{
|
|
268
|
+
width: 100%;
|
|
269
|
+
height: 100%;
|
|
270
|
+
}
|
|
221
271
|
|
|
222
272
|
.signature-canvas{
|
|
223
273
|
height: 100%;
|
|
@@ -231,7 +281,7 @@ html{
|
|
|
231
281
|
align-items: center;
|
|
232
282
|
}
|
|
233
283
|
.react-datepicker__input-container input {
|
|
234
|
-
height:
|
|
284
|
+
height: 27px;
|
|
235
285
|
border: 1px solid #ccc;
|
|
236
286
|
border-radius: 5px;
|
|
237
287
|
width: 100%;
|
|
@@ -308,6 +358,41 @@ html{
|
|
|
308
358
|
display: inline-flex;
|
|
309
359
|
}
|
|
310
360
|
|
|
361
|
+
.MuiButton-root.primaryBtn {
|
|
362
|
+
background: #2563eb !important;
|
|
363
|
+
box-shadow: 0px 8px 24px rgba(30, 64, 175, 0.08);
|
|
364
|
+
border-radius: 8px !important;
|
|
365
|
+
height: 28px !important;
|
|
366
|
+
font-weight: 600 !important;
|
|
367
|
+
font-size: 12px !important;
|
|
368
|
+
color: #ffffff !important;
|
|
369
|
+
border: 1px solid #2563eb !important;
|
|
370
|
+
width: auto !important;
|
|
371
|
+
}
|
|
372
|
+
.MuiButton-root.secondaryBtn {
|
|
373
|
+
background: #ffffff;
|
|
374
|
+
border: 1px solid #2563eb !important;
|
|
375
|
+
box-shadow: 0px 8px 24px rgba(30, 64, 175, 0.08);
|
|
376
|
+
border-radius: 8px !important;
|
|
377
|
+
height: 28px !important;
|
|
378
|
+
font-weight: 600 !important;
|
|
379
|
+
font-size: 12px !important;
|
|
380
|
+
margin-right: 15px !important;
|
|
381
|
+
color: #2563EB;
|
|
382
|
+
width: auto !important;
|
|
383
|
+
}
|
|
384
|
+
.deleteBtn {
|
|
385
|
+
background: #ffffff;
|
|
386
|
+
border: 1px solid #d32f2f !important;
|
|
387
|
+
box-shadow: 0px 8px 24px rgba(30, 64, 175, 0.08);
|
|
388
|
+
border-radius: 8px !important;
|
|
389
|
+
height: 28px !important;
|
|
390
|
+
font-weight: 600 !important;
|
|
391
|
+
font-size: 12px !important;
|
|
392
|
+
margin-right: 15px !important;
|
|
393
|
+
color: #d32f2f;
|
|
394
|
+
width: auto !important;
|
|
395
|
+
}
|
|
311
396
|
@media (max-width: 480px) {
|
|
312
397
|
.toolbar {
|
|
313
398
|
display: flex;
|
|
@@ -322,3 +407,34 @@ html{
|
|
|
322
407
|
width: 100% !important;
|
|
323
408
|
}
|
|
324
409
|
}
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
.editorTabs {
|
|
413
|
+
height: 40px;
|
|
414
|
+
min-height: 40px;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
.editorTabs .MuiTab-root {
|
|
418
|
+
min-width: 80px;
|
|
419
|
+
min-height: 30px !important;
|
|
420
|
+
font-size: 14px;
|
|
421
|
+
/* max-width: 130px; */
|
|
422
|
+
/* padding: 6px 6px !important; */
|
|
423
|
+
color: #0F172A;
|
|
424
|
+
text-transform: capitalize;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
.editorTabs .MuiTabScrollButton-horizontal.Mui-disabled {
|
|
428
|
+
display: none;
|
|
429
|
+
}
|
|
430
|
+
.editorTabs .MuiTabs-scroller {
|
|
431
|
+
border-bottom: 1px solid #8080801c;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
.btnColorPicker .MuiOutlinedInput-input, .tablePopup .MuiOutlinedInput-input {
|
|
435
|
+
padding: 8.5px 14px;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
.toolbar svg {
|
|
439
|
+
/* fill: 'red' */
|
|
440
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { IconButton } from "@mui/material";
|
|
3
|
-
import ExpandCircleDownIcon from "@mui/icons-material/ExpandCircleDown";
|
|
4
3
|
import { insertAccordion } from "../../utils/accordion";
|
|
4
|
+
import { AccordionIcon } from "../../common/iconslist";
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
const AccordionButton = props => {
|
|
7
7
|
const {
|
|
@@ -16,7 +16,7 @@ const AccordionButton = props => {
|
|
|
16
16
|
style: {
|
|
17
17
|
marginLeft: "0px"
|
|
18
18
|
},
|
|
19
|
-
children: /*#__PURE__*/_jsx(
|
|
19
|
+
children: /*#__PURE__*/_jsx(AccordionIcon, {})
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
export default AccordionButton;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { IconButton } from "@mui/material";
|
|
3
|
-
import ViewDayIcon from "@mui/icons-material/ViewDay";
|
|
4
3
|
import { insertAppHeader } from "../../utils/insertAppHeader";
|
|
4
|
+
import { AppHeader } from "../../common/iconslist";
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
const AppHeaderButton = props => {
|
|
7
7
|
const {
|
|
@@ -13,7 +13,7 @@ const AppHeaderButton = props => {
|
|
|
13
13
|
return /*#__PURE__*/_jsx(IconButton, {
|
|
14
14
|
title: "App Header",
|
|
15
15
|
onClick: handleClick,
|
|
16
|
-
children: /*#__PURE__*/_jsx(
|
|
16
|
+
children: /*#__PURE__*/_jsx(AppHeader, {})
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
19
|
export default AppHeaderButton;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { IconButton } from "@mui/material";
|
|
3
|
-
import ViewStreamIcon from "@mui/icons-material/ViewStream";
|
|
4
3
|
import { insertButton } from "../../utils/button";
|
|
4
|
+
import { ButtonIcon } from "../../common/iconslist";
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
const ButtonToolIcon = props => {
|
|
7
7
|
const {
|
|
@@ -13,7 +13,7 @@ const ButtonToolIcon = props => {
|
|
|
13
13
|
return /*#__PURE__*/_jsx(IconButton, {
|
|
14
14
|
onClick: handleInsertButton,
|
|
15
15
|
title: "Button",
|
|
16
|
-
children: /*#__PURE__*/_jsx(
|
|
16
|
+
children: /*#__PURE__*/_jsx(ButtonIcon, {})
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
19
|
export default ButtonToolIcon;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { IconButton } from "@mui/material";
|
|
3
|
-
import ViewCarouselIcon from "@mui/icons-material/ViewCarousel";
|
|
4
3
|
import { insertCarousel } from "../../utils/carousel";
|
|
4
|
+
import { Carousal } from "../../common/iconslist";
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
const CarouselButton = props => {
|
|
7
7
|
const {
|
|
@@ -13,7 +13,7 @@ const CarouselButton = props => {
|
|
|
13
13
|
return /*#__PURE__*/_jsx(IconButton, {
|
|
14
14
|
title: "Carousel",
|
|
15
15
|
onClick: handleClick,
|
|
16
|
-
children: /*#__PURE__*/_jsx(
|
|
16
|
+
children: /*#__PURE__*/_jsx(Carousal, {})
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
19
|
export default CarouselButton;
|
|
@@ -51,7 +51,11 @@ const ChipTextButton = props => {
|
|
|
51
51
|
children: [/*#__PURE__*/_jsx(IconButton, {
|
|
52
52
|
title: "Chip Text",
|
|
53
53
|
onClick: handleClick,
|
|
54
|
-
children: /*#__PURE__*/_jsx(SmartButtonIcon, {
|
|
54
|
+
children: /*#__PURE__*/_jsx(SmartButtonIcon, {
|
|
55
|
+
sx: {
|
|
56
|
+
fill: '#64748B'
|
|
57
|
+
}
|
|
58
|
+
})
|
|
55
59
|
}), openSetttings !== false ? /*#__PURE__*/_jsx(ChipTextPopup, {
|
|
56
60
|
element: openSetttings?.element || {},
|
|
57
61
|
onSave: onSave,
|
|
@@ -3,17 +3,18 @@
|
|
|
3
3
|
display: grid;
|
|
4
4
|
grid-template-columns: auto auto auto auto auto auto auto;
|
|
5
5
|
align-items: center;
|
|
6
|
-
gap:
|
|
6
|
+
gap: 10px;
|
|
7
7
|
}
|
|
8
8
|
.clicked{
|
|
9
|
-
border: 1px solid lightgray;
|
|
9
|
+
/* border: 1px solid lightgray; */
|
|
10
10
|
border-bottom: none;
|
|
11
11
|
}
|
|
12
12
|
.option,.hexPreview{
|
|
13
|
-
width:
|
|
14
|
-
height:
|
|
13
|
+
width: 20px;
|
|
14
|
+
height: 20px;
|
|
15
|
+
border-radius: 20px;
|
|
15
16
|
background-color: #000000;
|
|
16
|
-
|
|
17
|
+
border: 1px solid #eee;
|
|
17
18
|
}
|
|
18
19
|
.color-picker form{
|
|
19
20
|
display: flex;
|
|
@@ -23,7 +24,7 @@
|
|
|
23
24
|
}
|
|
24
25
|
.color-picker input{
|
|
25
26
|
width: 65%;
|
|
26
|
-
height:
|
|
27
|
+
height: 30px;
|
|
27
28
|
border:1px solid lightgray;
|
|
28
29
|
border-radius: 5px;
|
|
29
30
|
padding-left:5px
|
|
@@ -36,3 +37,22 @@
|
|
|
36
37
|
.color-picker input:focus{
|
|
37
38
|
outline: none;
|
|
38
39
|
}
|
|
40
|
+
.color-picker-dialog .MuiPaper-root {
|
|
41
|
+
padding: 20px;
|
|
42
|
+
}
|
|
43
|
+
.color-picker-dialog .popup {
|
|
44
|
+
width: 100%;
|
|
45
|
+
max-width: fit-content;
|
|
46
|
+
}
|
|
47
|
+
.backdrop {
|
|
48
|
+
position: fixed;
|
|
49
|
+
right: 0;
|
|
50
|
+
bottom: 0;
|
|
51
|
+
top: 0;
|
|
52
|
+
left: 0;
|
|
53
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
54
|
+
z-index: 1;
|
|
55
|
+
}
|
|
56
|
+
.colorSaveBtn {
|
|
57
|
+
border-radius: 6px;
|
|
58
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useRef, useState } from "react";
|
|
2
|
-
import { MdFormatColorText, MdFormatColorFill
|
|
2
|
+
import { MdFormatColorText, MdFormatColorFill } from "react-icons/md";
|
|
3
3
|
import "./ColorPicker.css";
|
|
4
4
|
import { colors } from "./defaultColors";
|
|
5
5
|
import { addMarkData, activeMark } from "../../utils/SlateUtilityFunctions";
|
|
@@ -8,12 +8,19 @@ import usePopup from "../../utils/customHooks/usePopup";
|
|
|
8
8
|
import { ReactEditor } from "slate-react";
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
12
|
const logo = {
|
|
12
13
|
color: /*#__PURE__*/_jsx(MdFormatColorText, {
|
|
13
|
-
size:
|
|
14
|
+
size: 17,
|
|
15
|
+
style: {
|
|
16
|
+
fill: '#64748B'
|
|
17
|
+
}
|
|
14
18
|
}),
|
|
15
19
|
bgColor: /*#__PURE__*/_jsx(MdFormatColorFill, {
|
|
16
|
-
size:
|
|
20
|
+
size: 17,
|
|
21
|
+
style: {
|
|
22
|
+
fill: '#64748B'
|
|
23
|
+
}
|
|
17
24
|
})
|
|
18
25
|
};
|
|
19
26
|
const ColorPicker = ({
|
|
@@ -62,7 +69,7 @@ const ColorPicker = ({
|
|
|
62
69
|
setHexValue(newHex);
|
|
63
70
|
};
|
|
64
71
|
return /*#__PURE__*/_jsxs("div", {
|
|
65
|
-
className: "color-picker popup-wrapper1",
|
|
72
|
+
className: "color-picker popup-wrapper1 color-picker-dialog",
|
|
66
73
|
ref: colorPickerRef,
|
|
67
74
|
children: [/*#__PURE__*/_jsx("button", {
|
|
68
75
|
style: {
|
|
@@ -72,50 +79,57 @@ const ColorPicker = ({
|
|
|
72
79
|
className: showOptions ? "clicked" : "",
|
|
73
80
|
onClick: toggleOption,
|
|
74
81
|
children: logo[format]
|
|
75
|
-
}), showOptions && /*#__PURE__*/_jsxs(
|
|
76
|
-
className: "popup",
|
|
82
|
+
}), showOptions && /*#__PURE__*/_jsxs(_Fragment, {
|
|
77
83
|
children: [/*#__PURE__*/_jsx("div", {
|
|
78
|
-
className: "
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
style: {
|
|
85
|
-
background: color
|
|
86
|
-
}
|
|
87
|
-
}, index);
|
|
88
|
-
})
|
|
89
|
-
}), /*#__PURE__*/_jsx("p", {
|
|
90
|
-
style: {
|
|
91
|
-
textAlign: "center",
|
|
92
|
-
opacity: "0.7",
|
|
93
|
-
width: "100%"
|
|
94
|
-
},
|
|
95
|
-
children: "OR"
|
|
96
|
-
}), /*#__PURE__*/_jsxs("form", {
|
|
97
|
-
onSubmit: handleFormSubmit,
|
|
84
|
+
className: "backdrop",
|
|
85
|
+
onClick: () => {
|
|
86
|
+
setShowOptions(false);
|
|
87
|
+
}
|
|
88
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
89
|
+
className: "popup",
|
|
98
90
|
children: [/*#__PURE__*/_jsx("div", {
|
|
99
|
-
className: "
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}), /*#__PURE__*/_jsx("button", {
|
|
91
|
+
className: "color-options",
|
|
92
|
+
children: colors.map((color, index) => {
|
|
93
|
+
return /*#__PURE__*/_jsx("div", {
|
|
94
|
+
"data-value": color,
|
|
95
|
+
onClick: changeColor,
|
|
96
|
+
className: "option",
|
|
97
|
+
style: {
|
|
98
|
+
background: color
|
|
99
|
+
}
|
|
100
|
+
}, index);
|
|
101
|
+
})
|
|
102
|
+
}), /*#__PURE__*/_jsx("p", {
|
|
112
103
|
style: {
|
|
113
|
-
|
|
104
|
+
textAlign: "center",
|
|
105
|
+
opacity: "0.7",
|
|
106
|
+
width: "100%"
|
|
114
107
|
},
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
108
|
+
children: "or"
|
|
109
|
+
}), /*#__PURE__*/_jsxs("form", {
|
|
110
|
+
onSubmit: handleFormSubmit,
|
|
111
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
112
|
+
className: "hexPreview",
|
|
113
|
+
style: {
|
|
114
|
+
background: validHex ? hexValue : "#000000"
|
|
115
|
+
}
|
|
116
|
+
}), /*#__PURE__*/_jsx("input", {
|
|
117
|
+
type: "text",
|
|
118
|
+
placeholder: "#000000",
|
|
119
|
+
value: hexValue,
|
|
120
|
+
onChange: handleHexChange,
|
|
121
|
+
style: {
|
|
122
|
+
border: validHex === false ? "1px solid red" : "1px solid lightgray"
|
|
123
|
+
}
|
|
124
|
+
}), /*#__PURE__*/_jsx("button", {
|
|
125
|
+
className: "colorSaveBtn",
|
|
126
|
+
style: {
|
|
127
|
+
background: validHex ? "#2563EB" : "#64748B",
|
|
128
|
+
color: '#fff'
|
|
129
|
+
},
|
|
130
|
+
type: "submit",
|
|
131
|
+
children: "Save"
|
|
132
|
+
})]
|
|
119
133
|
})]
|
|
120
134
|
})]
|
|
121
135
|
})]
|
|
@@ -29,7 +29,11 @@ const DrawerMenu = props => {
|
|
|
29
29
|
contentEditable: false,
|
|
30
30
|
children: [/*#__PURE__*/_jsx(IconButton, {
|
|
31
31
|
onClick: handleClick,
|
|
32
|
-
children: /*#__PURE__*/_jsx(MenuIcon, {
|
|
32
|
+
children: /*#__PURE__*/_jsx(MenuIcon, {
|
|
33
|
+
sx: {
|
|
34
|
+
fill: '#64748B'
|
|
35
|
+
}
|
|
36
|
+
})
|
|
33
37
|
}), /*#__PURE__*/_jsx(Drawer, {
|
|
34
38
|
anchor: anchor || "left",
|
|
35
39
|
open: open,
|
|
@@ -56,6 +60,7 @@ const DrawerMenu = props => {
|
|
|
56
60
|
children: /*#__PURE__*/_jsx(Button, {
|
|
57
61
|
color: "error",
|
|
58
62
|
onClick: handleDelete,
|
|
63
|
+
className: "deleteBtn",
|
|
59
64
|
children: "Delete"
|
|
60
65
|
})
|
|
61
66
|
})]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { IconButton } from "@mui/material";
|
|
3
|
-
import ViewSidebarIcon from "@mui/icons-material/ViewSidebar";
|
|
4
3
|
import { insertDrawerMenu } from "../../utils/insertDrawerMenu";
|
|
4
|
+
import { DrawerMenu } from "../../common/iconslist";
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
const DrawerButton = props => {
|
|
7
7
|
const {
|
|
@@ -15,7 +15,7 @@ const DrawerButton = props => {
|
|
|
15
15
|
return /*#__PURE__*/_jsx(IconButton, {
|
|
16
16
|
title: "Drawer Menu",
|
|
17
17
|
onClick: handleClick,
|
|
18
|
-
children: /*#__PURE__*/_jsx(
|
|
18
|
+
children: /*#__PURE__*/_jsx(DrawerMenu, {})
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
export default DrawerButton;
|