@flozy/editor 5.5.8 → 5.6.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 (199) hide show
  1. package/dist/Editor/ChatEditor.js +25 -34
  2. package/dist/Editor/CommonEditor.js +26 -13
  3. package/dist/Editor/Editor.css +106 -20
  4. package/dist/Editor/Elements/AI/AIInput.js +0 -1
  5. package/dist/Editor/Elements/AI/CustomSelect.js +17 -10
  6. package/dist/Editor/Elements/AI/PopoverAIInput.js +59 -53
  7. package/dist/Editor/Elements/AI/Styles.js +24 -6
  8. package/dist/Editor/Elements/Accordion/Accordion.js +8 -1
  9. package/dist/Editor/Elements/AppHeader/AppHeader.js +6 -6
  10. package/dist/Editor/Elements/Button/EditorButton.js +6 -1
  11. package/dist/Editor/Elements/Carousel/CarouselItem.js +11 -3
  12. package/dist/Editor/Elements/Color Picker/ColorButtons.js +7 -5
  13. package/dist/Editor/Elements/Color Picker/Styles.js +8 -3
  14. package/dist/Editor/Elements/Color Picker/defaultColors.js +2 -2
  15. package/dist/Editor/Elements/DataView/DataView.js +124 -0
  16. package/dist/Editor/Elements/DataView/DataViewButton.js +23 -0
  17. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +83 -0
  18. package/dist/Editor/Elements/DataView/Layouts/DataTypes/CheckType.js +33 -0
  19. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +180 -0
  20. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SimpleSelect.js +62 -0
  21. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +68 -0
  22. package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +35 -0
  23. package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +39 -0
  24. package/dist/Editor/Elements/DataView/Layouts/DataTypes/NumberType.js +30 -0
  25. package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +30 -0
  26. package/dist/Editor/Elements/DataView/Layouts/DataTypes/SelectType.js +35 -0
  27. package/dist/Editor/Elements/DataView/Layouts/DataTypes/TextType.js +36 -0
  28. package/dist/Editor/Elements/DataView/Layouts/DataTypes/index.js +17 -0
  29. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseField.js +29 -0
  30. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +38 -0
  31. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +86 -0
  32. package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +71 -0
  33. package/dist/Editor/Elements/DataView/Layouts/FilterSort/styles.js +138 -0
  34. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +213 -0
  35. package/dist/Editor/Elements/DataView/Layouts/Formula.js +29 -0
  36. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +113 -0
  37. package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +44 -0
  38. package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +146 -0
  39. package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +79 -0
  40. package/dist/Editor/Elements/DataView/Layouts/Options/ColumnsList.js +57 -0
  41. package/dist/Editor/Elements/DataView/Layouts/Options/Constants.js +101 -0
  42. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +174 -0
  43. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +241 -0
  44. package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +45 -0
  45. package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +32 -0
  46. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +110 -0
  47. package/dist/Editor/Elements/DataView/Layouts/Options/styles.js +217 -0
  48. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +131 -0
  49. package/dist/Editor/Elements/DataView/Layouts/TableView.js +253 -0
  50. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +85 -0
  51. package/dist/Editor/Elements/DataView/Layouts/colStyles.js +10 -0
  52. package/dist/Editor/Elements/DataView/Layouts/index.js +25 -0
  53. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +277 -0
  54. package/dist/Editor/Elements/DataView/Utils/globalSearch.js +15 -0
  55. package/dist/Editor/Elements/DataView/Utils/multiSortRows.js +88 -0
  56. package/dist/Editor/Elements/DataView/styles.js +169 -0
  57. package/dist/Editor/Elements/Divider/Divider.js +36 -20
  58. package/dist/Editor/Elements/Embed/Image.js +51 -16
  59. package/dist/Editor/Elements/Embed/Video.js +26 -3
  60. package/dist/Editor/Elements/Form/Form.js +38 -2
  61. package/dist/Editor/Elements/Form/FormElements/FormCheckbox.js +7 -1
  62. package/dist/Editor/Elements/Form/FormElements/FormDate.js +7 -1
  63. package/dist/Editor/Elements/Form/FormElements/FormEmail.js +7 -1
  64. package/dist/Editor/Elements/Form/FormElements/FormNumbers.js +7 -1
  65. package/dist/Editor/Elements/Form/FormElements/FormRadioButton.js +7 -1
  66. package/dist/Editor/Elements/Form/FormElements/FormText.js +7 -1
  67. package/dist/Editor/Elements/Form/FormElements/FormTextArea.js +6 -1
  68. package/dist/Editor/Elements/Form/FormPopup.js +12 -9
  69. package/dist/Editor/Elements/Form/Workflow/Styles.js +2 -0
  70. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +1 -1
  71. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +4 -2
  72. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +20 -1
  73. package/dist/Editor/Elements/FreeGrid/breakpointConstants.js +4 -4
  74. package/dist/Editor/Elements/FreeGrid/styles.js +1 -1
  75. package/dist/Editor/Elements/Grid/GridButton.js +2 -2
  76. package/dist/Editor/Elements/Grid/GridItem.js +47 -36
  77. package/dist/Editor/Elements/Grid/Styles.js +50 -0
  78. package/dist/Editor/Elements/Link/LinkButton.js +1 -1
  79. package/dist/Editor/Elements/Search/SearchButton.js +1 -0
  80. package/dist/Editor/Elements/Signature/Signature.css +1 -1
  81. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +2 -2
  82. package/dist/Editor/Elements/Signature/SignaturePopup.js +17 -52
  83. package/dist/Editor/Elements/SimpleText/index.js +3 -2
  84. package/dist/Editor/Elements/SimpleText/style.js +15 -0
  85. package/dist/Editor/Elements/Table/AddRowCol.js +77 -0
  86. package/dist/Editor/Elements/Table/DragButton.js +142 -0
  87. package/dist/Editor/Elements/Table/DragStyles.js +70 -0
  88. package/dist/Editor/Elements/Table/Draggable.js +25 -0
  89. package/dist/Editor/Elements/Table/Droppable.js +53 -0
  90. package/dist/Editor/Elements/Table/Styles.js +88 -78
  91. package/dist/Editor/Elements/Table/Table.js +263 -140
  92. package/dist/Editor/Elements/Table/TableCell.js +365 -111
  93. package/dist/Editor/Elements/Table/TablePopup.js +9 -3
  94. package/dist/Editor/Elements/Table/TableRow.js +10 -2
  95. package/dist/Editor/Elements/Table/TableTool.js +101 -0
  96. package/dist/Editor/Elements/Table/tableHelper.js +71 -0
  97. package/dist/Editor/Elements/TopBanner/TopBanner.js +2 -1
  98. package/dist/Editor/MiniEditor.js +21 -2
  99. package/dist/Editor/Styles/EditorStyles.js +13 -4
  100. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +10 -0
  101. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +7 -12
  102. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +26 -4
  103. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +3 -0
  104. package/dist/Editor/Toolbar/FormatTools/TextSize.js +5 -5
  105. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +8 -8
  106. package/dist/Editor/Toolbar/Mini/Styles.js +9 -1
  107. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/InfinityAITool.js +7 -3
  108. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +6 -4
  109. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +19 -15
  110. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +547 -58
  111. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +28 -16
  112. package/dist/Editor/Toolbar/PopupTool/index.js +3 -5
  113. package/dist/Editor/Toolbar/Toolbar.js +6 -0
  114. package/dist/Editor/Toolbar/toolbarGroups.js +4 -0
  115. package/dist/Editor/assets/svg/ArrowDownIcon.js +25 -0
  116. package/dist/Editor/assets/svg/ArrowUpIcon.js +25 -0
  117. package/dist/Editor/assets/svg/BrainIcon.js +2 -2
  118. package/dist/Editor/assets/svg/CalenderIconTick.js +64 -0
  119. package/dist/Editor/assets/svg/ChervDown.js +18 -0
  120. package/dist/Editor/assets/svg/ChervUp.js +18 -0
  121. package/dist/Editor/assets/svg/DataTableIcon.js +50 -0
  122. package/dist/Editor/assets/svg/DuplicateIcon.js +23 -0
  123. package/dist/Editor/assets/svg/EyeIcon.js +23 -0
  124. package/dist/Editor/assets/svg/EyeSlash.js +43 -0
  125. package/dist/Editor/assets/svg/HashtagIcon.js +33 -0
  126. package/dist/Editor/assets/svg/PlusIcon.js +23 -0
  127. package/dist/Editor/assets/svg/SelectRoundedIcon.js +24 -0
  128. package/dist/Editor/assets/svg/SettingsIcon.js +4 -4
  129. package/dist/Editor/assets/svg/SortByIcon.js +33 -0
  130. package/dist/Editor/assets/svg/TableIcons.js +220 -0
  131. package/dist/Editor/assets/svg/TickOutlined.js +23 -0
  132. package/dist/Editor/assets/svg/TrashCanIcon.js +38 -0
  133. package/dist/Editor/common/ColorPickerButton.js +85 -45
  134. package/dist/Editor/common/DnD/Draggable.js +2 -1
  135. package/dist/Editor/common/FontLoader/FontLoader.js +2 -2
  136. package/dist/Editor/common/Icon.js +54 -21
  137. package/dist/Editor/common/ImageSelector/Options/Upload.js +2 -1
  138. package/dist/Editor/common/ImageSelector/Styles.js +47 -6
  139. package/dist/Editor/common/ImageSelector/UploadStyles.js +18 -6
  140. package/dist/Editor/common/LinkSettings/NavComponents.js +2 -1
  141. package/dist/Editor/common/LinkSettings/index.js +2 -1
  142. package/dist/Editor/common/MentionsPopup/Styles.js +142 -8
  143. package/dist/Editor/common/MentionsPopup/index.js +1 -1
  144. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +107 -12
  145. package/dist/Editor/common/RnD/GuideLines/styles.js +3 -3
  146. package/dist/Editor/common/RnD/ShadowElement.js +1 -1
  147. package/dist/Editor/common/RnD/VirtualElement/index.js +5 -1
  148. package/dist/Editor/common/RnD/index.js +4 -3
  149. package/dist/Editor/common/Section/index.js +3 -3
  150. package/dist/Editor/common/Section/styles.js +5 -1
  151. package/dist/Editor/common/Select/index.js +20 -0
  152. package/dist/Editor/common/Select/styles.js +17 -0
  153. package/dist/Editor/common/Shorthands/elements.js +13 -1
  154. package/dist/Editor/common/StyleBuilder/fieldStyle.js +2 -1
  155. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +4 -3
  156. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +35 -7
  157. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -2
  158. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +2 -1
  159. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +1 -1
  160. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +2 -0
  161. package/dist/Editor/common/StyleBuilder/fieldTypes/radiusStyle.js +11 -11
  162. package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +22 -6
  163. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +21 -2
  164. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +20 -4
  165. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +12 -2
  166. package/dist/Editor/common/StyleBuilder/formStyle.js +268 -149
  167. package/dist/Editor/common/StyleBuilder/index.js +101 -20
  168. package/dist/Editor/common/StyleBuilder/tableStyle.js +69 -25
  169. package/dist/Editor/common/SwipeableDrawer/style.js +15 -4
  170. package/dist/Editor/common/ToolbarIcon.js +1 -1
  171. package/dist/Editor/common/Uploader.js +39 -37
  172. package/dist/Editor/common/iconListV2.js +598 -74
  173. package/dist/Editor/common/iconslist.js +25 -19
  174. package/dist/Editor/commonStyle.js +421 -15
  175. package/dist/Editor/helper/deserialize/index.js +31 -2
  176. package/dist/Editor/helper/enforceDateFormat.js +41 -0
  177. package/dist/Editor/helper/index.js +15 -2
  178. package/dist/Editor/helper/theme.js +15 -1
  179. package/dist/Editor/hooks/useBreakpoints.js +1 -1
  180. package/dist/Editor/hooks/useTable.js +210 -0
  181. package/dist/Editor/plugins/withCustomDeleteBackward.js +1 -1
  182. package/dist/Editor/plugins/withEmbeds.js +30 -26
  183. package/dist/Editor/plugins/withHTML.js +100 -12
  184. package/dist/Editor/plugins/withLayout.js +1 -0
  185. package/dist/Editor/utils/SlateUtilityFunctions.js +31 -11
  186. package/dist/Editor/utils/brains.js +1 -1
  187. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +75 -6
  188. package/dist/Editor/utils/customHooks/useResize.js +7 -4
  189. package/dist/Editor/utils/customHooks/useTableResize.js +6 -2
  190. package/dist/Editor/utils/dataView.js +43 -0
  191. package/dist/Editor/utils/embed.js +2 -1
  192. package/dist/Editor/utils/events.js +0 -1
  193. package/dist/Editor/utils/font.js +11 -4
  194. package/dist/Editor/utils/formfield.js +8 -4
  195. package/dist/Editor/utils/helper.js +100 -2
  196. package/dist/Editor/utils/insertNewLine.js +19 -1
  197. package/dist/Editor/utils/serializeToText.js +2 -0
  198. package/dist/Editor/utils/table.js +228 -24
  199. package/package.json +2 -2
@@ -4,9 +4,9 @@ import Styles from "./Styles";
4
4
  import { Fade, Paper, Popper } from "@mui/material";
5
5
  import AIInput from "./AIInput";
6
6
  import { ReactEditor, useSlate } from "slate-react";
7
- import { Node, Transforms } from "slate";
7
+ import { Node, Range, Transforms } from "slate";
8
8
  import { MODES } from "./helper";
9
- import { getSelectedText } from "../../utils/helper";
9
+ import { getSelectedText, getSlateDom } from "../../utils/helper";
10
10
  import { VoiceToText } from "./VoiceToText";
11
11
  import deserialize from "../../helper/deserialize";
12
12
  import useEditorScroll from "../../hooks/useEditorScroll";
@@ -23,7 +23,7 @@ const scrollToAIInput = editor => {
23
23
  const slateWrapper = document.getElementById("slate-wrapper-scroll-container");
24
24
  let selectionRect;
25
25
  if (getSelectedText(editor)) {
26
- selectionRect = window.getSelection().getRangeAt(0).getBoundingClientRect();
26
+ selectionRect = ReactEditor.toDOMRange(editor, editor.selection)?.getBoundingClientRect();
27
27
  } else {
28
28
  selectionRect = ReactEditor.toDOMRange(editor, getNextLine(editor).at).getBoundingClientRect();
29
29
  }
@@ -62,7 +62,7 @@ const getNextLine = editor => {
62
62
  } = editor;
63
63
  const {
64
64
  focus
65
- } = selection;
65
+ } = selection || {};
66
66
  if (focus?.path?.length > 0) {
67
67
  const {
68
68
  text = ""
@@ -102,56 +102,47 @@ const getNextLine = editor => {
102
102
  return null;
103
103
  }
104
104
  };
105
+ const getNextLineDom = editor => {
106
+ let caret;
107
+ const sel = getNextLine(editor);
108
+ if (sel) {
109
+ const domElement = ReactEditor.toDOMRange(editor, sel.at);
110
+ const {
111
+ textContent,
112
+ parentElement
113
+ } = domElement?.commonAncestorContainer || {};
114
+ caret = textContent ? domElement : parentElement; // in mobile, if textContent in not available, it is pointing some <br> tag (getBoundingClientRect not working correctly for <br>), to avoid that, we are pointing the parent element as caret
115
+ }
116
+
117
+ return caret;
118
+ };
105
119
  const updateAnchorEl = (setAnchorEl, editor, openAI, selectedElement) => {
106
120
  try {
107
- if (!editor.selection) {
108
- return;
109
- }
110
- const selection = window.getSelection();
111
- if (openAI === "fromToolBar" && selection.anchorOffset !== selection.focusOffset) {
112
- // to fix some issue in Drag n Drop
113
- return;
114
- }
115
- if (selection.rangeCount) {
116
- let caret;
117
- if (getSelectedText(editor)) {
118
- // selected text as caret
119
- caret = selection.getRangeAt(0);
120
- } else {
121
- const sel = getNextLine(editor);
122
- if (sel) {
123
- const domElement = ReactEditor.toDOMRange(editor, sel.at);
124
- const {
125
- textContent,
126
- parentElement
127
- } = domElement?.commonAncestorContainer || {};
128
- caret = textContent ? domElement : parentElement; // in mobile, if textContent in not available, it is pointing some <br> tag (getBoundingClientRect not working correctly for <br>), to avoid that, we are pointing the parent element as caret
129
- }
130
- }
131
-
132
- const getBoundingClientRect = () => {
133
- const editorContainer = document.querySelector("#slate-wrapper-scroll-container")?.getBoundingClientRect();
134
- const caretPos = caret.getBoundingClientRect();
135
- const sectionEle = selectedElement?.anchorEl || document.querySelector(".ed-section-inner");
136
- const selectedSectionRect = sectionEle?.getBoundingClientRect();
137
- const isAIInputReachTop = caretPos.height + caretPos.y <= editorContainer.y;
138
- const yValue = isAIInputReachTop ? "-500" : caretPos.y; // -500 is to hide the AI input if the toolbar reached the top
121
+ const {
122
+ selection
123
+ } = editor || {};
124
+ const isHavingSelection = selection && !Range.isCollapsed(selection) && getSelectedText(editor).trim();
125
+ const caret = isHavingSelection ? getSlateDom(editor, editor.selection) : getNextLineDom(editor);
126
+ const caretPos = caret?.getBoundingClientRect() || {};
127
+ const editorContainer = document.querySelector("#slate-wrapper-scroll-container")?.getBoundingClientRect();
128
+ const sectionEle = selectedElement?.anchorEl || document.querySelector(".ed-section-inner");
129
+ const selectedSectionRect = sectionEle?.getBoundingClientRect() || {};
130
+ const isAIInputReachTop = caretPos.height + caretPos.y <= editorContainer.y;
131
+ const yValue = isAIInputReachTop ? "-500" : caretPos.y; // -500 is to hide the AI input if the toolbar reached the top
139
132
 
140
- return {
141
- y: yValue,
142
- height: caretPos.height,
143
- top: yValue,
144
- right: caretPos.right,
145
- bottom: caretPos.bottom,
146
- x: selectedSectionRect.x,
147
- left: selectedSectionRect.left,
148
- width: selectedSectionRect.width
149
- };
150
- };
151
- setAnchorEl({
152
- getBoundingClientRect
153
- });
154
- }
133
+ const rect = {
134
+ y: yValue,
135
+ height: caretPos.height,
136
+ top: yValue,
137
+ right: caretPos.right,
138
+ bottom: caretPos.bottom,
139
+ x: selectedSectionRect.x,
140
+ left: selectedSectionRect.left,
141
+ width: selectedSectionRect.width
142
+ };
143
+ setAnchorEl({
144
+ getBoundingClientRect: () => rect
145
+ });
155
146
  } catch (err) {
156
147
  console.log(err);
157
148
  }
@@ -180,7 +171,7 @@ function PopoverAIInput({
180
171
  const editor = useSlate();
181
172
  const updateAnchor = useCallback(() => {
182
173
  updateAnchorEl(setAnchorEl, editor, openAI, selectedEleRef.current);
183
- }, [setAnchorEl, editor, openAI, selectedEleRef.current]);
174
+ }, [editor?.selection, openAI, selectedEleRef.current]);
184
175
  useEditorScroll(editorWrapper, updateAnchor);
185
176
  const onClickOutside = () => {
186
177
  setAnchorEl(null);
@@ -293,9 +284,24 @@ function PopoverAIInput({
293
284
  const onInputChange = e => {
294
285
  setInputValue(e.target.value);
295
286
  };
287
+ useEffect(() => {
288
+ if (openAI && getSelectedText(editor).trim()) {
289
+ const customSelection = document.querySelectorAll(".slate-highlight");
290
+ const selectionBg = "rgba(35, 131, 226, 0.35)";
291
+ if (customSelection?.length) {
292
+ customSelection?.forEach(el => el.style.background = selectionBg);
293
+
294
+ // if ai is opened, remove the window selection class and open then slate selection, To resolve: focussing on the ai input removes window selection automatically
295
+ const selection = window.getSelection();
296
+ if (selection) {
297
+ selection.removeAllRanges(); // Clears the selection
298
+ }
299
+ }
300
+ }
301
+ }, [editor.selection, openAI]);
296
302
  return /*#__PURE__*/_jsxs("div", {
297
303
  children: [/*#__PURE__*/_jsx(Popper, {
298
- open: Boolean(openAI),
304
+ open: Boolean(openAI) && anchorEl,
299
305
  anchorEl: anchorEl,
300
306
  transition: true,
301
307
  placement: "bottom-start",
@@ -39,7 +39,13 @@ const Styles = theme => ({
39
39
  color: "#94A3B8",
40
40
  opacity: 1 /* Firefox */,
41
41
  fontFamily: '"Inter", sans-serif',
42
- fontWeight: 500
42
+ fontWeight: 500,
43
+ whiteSpace: "nowrap",
44
+ overflow: "hidden",
45
+ textOverflow: "ellipsis"
46
+ },
47
+ "&:placeholder-shown": {
48
+ height: "auto !important"
43
49
  },
44
50
  "&::-ms-input-placeholder": {
45
51
  /* Edge 12-18 */color: "#94A3B8",
@@ -115,7 +121,7 @@ const Styles = theme => ({
115
121
  overflow: "auto",
116
122
  // width: "240px",
117
123
  minWidth: "200px",
118
- border: "1px solid #E0E0E0",
124
+ border: `1px solid ${theme?.palette?.editor?.popUpBorderColor}`,
119
125
  padding: "6px"
120
126
  },
121
127
  optionWrapper: {
@@ -142,16 +148,28 @@ const Styles = theme => ({
142
148
  gap: "8px"
143
149
  },
144
150
  "&:hover": {
145
- background: `${theme?.palette?.containers?.bg3 || "#E9F3FE"}`
151
+ backgroundColor: `${theme?.palette?.editor?.menuOptionSelectedOption} !important`,
152
+ "& svg path": {
153
+ stroke: `${theme?.palette?.editor?.textColor} !important`
154
+ },
155
+ "& svg": {
156
+ color: `${theme?.palette?.editor?.textColor} !important`
157
+ }
158
+ },
159
+ "& svg path": {
160
+ stroke: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
161
+ },
162
+ "& svg": {
163
+ color: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
146
164
  },
147
165
  "&.active": {
148
166
  background: `${theme?.palette?.containers?.bg3 || "#E9F3FE"}`,
149
- color: "#2563EB",
167
+ color: theme?.palette?.editor?.menuOptionsSelectedTextColor,
150
168
  "& svg path": {
151
- stroke: "#2563EB"
169
+ stroke: theme?.palette?.editor?.menuOptionsSelectedTextColor
152
170
  },
153
171
  "& svg": {
154
- color: "#2563EB !important"
172
+ color: `${theme?.palette?.editor?.menuOptionsSelectedTextColor} !important`
155
173
  }
156
174
  }
157
175
  },
@@ -6,7 +6,8 @@ import { IconButton, Tooltip, Box } from "@mui/material";
6
6
  import DeleteIcon from "@mui/icons-material/Delete";
7
7
  import { GridSettingsIcon } from "../../common/iconslist";
8
8
  import Icon from "../../common/Icon";
9
- import { useEditorSelection } from "../../hooks/useMouseMove";
9
+ import { useEditorContext, useEditorSelection } from "../../hooks/useMouseMove";
10
+ import useCommonStyle from "../../commonStyle";
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
11
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
13
  const accordionBtnStyleKeys = {
@@ -78,6 +79,10 @@ const Accordion = props => {
78
79
  textColor,
79
80
  bgColor
80
81
  } = element;
82
+ const {
83
+ theme
84
+ } = useEditorContext();
85
+ const classes = useCommonStyle(theme);
81
86
  const onToggle = () => {
82
87
  setToggle(!toggle);
83
88
  };
@@ -97,6 +102,7 @@ const Accordion = props => {
97
102
  children: /*#__PURE__*/_jsx(IconButton, {
98
103
  size: "small",
99
104
  onClick: onSettings,
105
+ sx: classes.buttonMoreOption,
100
106
  children: /*#__PURE__*/_jsx(GridSettingsIcon, {})
101
107
  })
102
108
  }), /*#__PURE__*/_jsx(Tooltip, {
@@ -105,6 +111,7 @@ const Accordion = props => {
105
111
  children: /*#__PURE__*/_jsx(IconButton, {
106
112
  size: "small",
107
113
  onClick: onDelete,
114
+ sx: classes.buttonMoreOption2,
108
115
  children: /*#__PURE__*/_jsx(DeleteIcon, {})
109
116
  })
110
117
  })]
@@ -250,10 +250,10 @@ function AppHeader(props) {
250
250
  },
251
251
  sx: {
252
252
  mr: 2,
253
- [theme.breakpoints.up("sm")]: {
253
+ [theme?.breakpoints?.up("sm")]: {
254
254
  display: "none"
255
255
  },
256
- [theme.breakpoints.between("xs", "md")]: {
256
+ [theme?.breakpoints.between("xs", "md")]: {
257
257
  display: "block"
258
258
  }
259
259
  },
@@ -272,10 +272,10 @@ function AppHeader(props) {
272
272
  },
273
273
  sx: {
274
274
  flexGrow: 1,
275
- [theme.breakpoints.up("sm")]: {
275
+ [theme?.breakpoints?.up("sm")]: {
276
276
  display: "block"
277
277
  },
278
- [theme.breakpoints.between("xs", "md")]: {
278
+ [theme?.breakpoints?.between("xs", "md")]: {
279
279
  display: "none"
280
280
  },
281
281
  "& img": {
@@ -293,10 +293,10 @@ function AppHeader(props) {
293
293
  }) : null, appTitle]
294
294
  }), /*#__PURE__*/_jsxs(Box, {
295
295
  sx: {
296
- [theme.breakpoints.up("sm")]: {
296
+ [theme?.breakpoints?.up("sm")]: {
297
297
  display: "block"
298
298
  },
299
- [theme.breakpoints.between("xs", "md")]: {
299
+ [theme?.breakpoints?.between("xs", "md")]: {
300
300
  display: "none"
301
301
  }
302
302
  },
@@ -11,6 +11,7 @@ import { handleLinkType, windowVar } from "../../utils/helper";
11
11
  import LinkSettings from "../../common/LinkSettings";
12
12
  import Icon from "../../common/Icon";
13
13
  import { useEditorContext } from "../../hooks/useMouseMove";
14
+ import useCommonStyle from "../../commonStyle";
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
15
16
  import { Fragment as _Fragment } from "react/jsx-runtime";
16
17
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -36,6 +37,7 @@ const EditorButton = props => {
36
37
  const [edit, setEdit] = useState(false);
37
38
  const [openNav, setOpenNav] = useState(false);
38
39
  const [openMoreOptions, setOpenMoreOptions] = useState(false);
40
+ const classes = useCommonStyle(appTheme);
39
41
  const {
40
42
  label,
41
43
  bgColor,
@@ -136,6 +138,7 @@ const EditorButton = props => {
136
138
  arrow: true,
137
139
  children: /*#__PURE__*/_jsx(IconButton, {
138
140
  onClick: onMenuClick("edit"),
141
+ sx: classes.buttonMoreOption,
139
142
  children: /*#__PURE__*/_jsx(Icon, {
140
143
  icon: "pagesSettings"
141
144
  })
@@ -145,6 +148,7 @@ const EditorButton = props => {
145
148
  arrow: true,
146
149
  children: /*#__PURE__*/_jsx(IconButton, {
147
150
  onClick: onMenuClick("nav"),
151
+ sx: classes.buttonMoreOption,
148
152
  children: /*#__PURE__*/_jsx(Icon, {
149
153
  icon: "link"
150
154
  })
@@ -157,7 +161,8 @@ const EditorButton = props => {
157
161
  sx: {
158
162
  display: "inline-flex",
159
163
  color: "rgba(0, 0, 0, 0.54)",
160
- marginBottom: "0px !important"
164
+ marginBottom: "0px !important",
165
+ ...classes.buttonMoreOption3
161
166
  },
162
167
  ...btnProps,
163
168
  children: /*#__PURE__*/_jsx(Icon, {
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { Node, Transforms } from "slate";
3
3
  import { useSlateStatic, ReactEditor } from "slate-react";
4
- import { Tooltip, IconButton } from "@mui/material";
4
+ import { Tooltip, IconButton, Box } from "@mui/material";
5
5
  import DeleteIcon from "@mui/icons-material/Delete";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -37,7 +37,7 @@ const CarouselItem = props => {
37
37
  className: "element-toolbar hr",
38
38
  style: {
39
39
  top: "0px",
40
- right: "28px"
40
+ left: "0px"
41
41
  },
42
42
  contentEditable: false,
43
43
  children: /*#__PURE__*/_jsx(Tooltip, {
@@ -53,7 +53,7 @@ const CarouselItem = props => {
53
53
  return /*#__PURE__*/_jsx("div", {
54
54
  ...attributes,
55
55
  className: "carousel-item",
56
- children: /*#__PURE__*/_jsxs("div", {
56
+ children: /*#__PURE__*/_jsxs(Box, {
57
57
  className: "carousel-item-inner",
58
58
  style: {
59
59
  minHeight: "50px",
@@ -61,6 +61,14 @@ const CarouselItem = props => {
61
61
  justifyContent: "center",
62
62
  alignItems: "center"
63
63
  },
64
+ sx: {
65
+ "& .ico-grp-ss": {
66
+ position: "absolute",
67
+ top: "0px",
68
+ right: "0px",
69
+ display: "flex"
70
+ }
71
+ },
64
72
  children: [children, /*#__PURE__*/_jsx(Toolbar, {})]
65
73
  })
66
74
  });
@@ -1,6 +1,6 @@
1
1
  import React, { useState } from "react";
2
2
  import { Box, IconButton, Popover } from "@mui/material";
3
- import ArrowDropDownIcon from "@mui/icons-material/ArrowDropDown";
3
+ import KeyboardArrowDownRoundedIcon from "@mui/icons-material/KeyboardArrowDownRounded";
4
4
  import Button from "../../common/Button";
5
5
  import { colors } from "./defaultColors";
6
6
  import ColorPicker from "./colorPicker.svg";
@@ -46,7 +46,7 @@ const SingleColorButton = ({
46
46
  id: `in_${id}`,
47
47
  onClick: handleMore,
48
48
  className: "more-btn-cbs",
49
- children: /*#__PURE__*/_jsx(ArrowDropDownIcon, {})
49
+ children: /*#__PURE__*/_jsx(KeyboardArrowDownRoundedIcon, {})
50
50
  }) : null]
51
51
  }, `ci_bs_row_${index}}`);
52
52
  };
@@ -82,7 +82,7 @@ export const AllColors = props => {
82
82
  children: /*#__PURE__*/_jsx(Box, {
83
83
  className: "buttonsWrpr",
84
84
  style: {
85
- padding: "8px"
85
+ padding: "5px"
86
86
  },
87
87
  children: all.map((m, i) => {
88
88
  return /*#__PURE__*/_jsx(SingleColorButton, {
@@ -109,11 +109,13 @@ const ColorButtons = props => {
109
109
  forMiniTool,
110
110
  openColorTool,
111
111
  onClose,
112
- onColorPickerClick
112
+ onColorPickerClick,
113
+ defaultColors = []
113
114
  } = props;
114
115
  const [row1, ...restRows] = ColorChunks([]);
115
116
  const [anchorEl, setAnchorEl] = useState(null);
116
117
  const open = Boolean(anchorEl);
118
+ const firstRow = defaultColors?.length ? defaultColors : row1;
117
119
  const handleMore = e => {
118
120
  setAnchorEl(e.currentTarget);
119
121
  };
@@ -131,7 +133,7 @@ const ColorButtons = props => {
131
133
  sx: classes.colorButtons,
132
134
  children: [forMiniTool ? null : /*#__PURE__*/_jsx(Box, {
133
135
  className: "buttonsWrpr first",
134
- children: [row1].map((m, i) => {
136
+ children: [firstRow].map((m, i) => {
135
137
  return /*#__PURE__*/_jsx(SingleColorButton, {
136
138
  id: `p1_${id}`,
137
139
  crs: m,
@@ -9,13 +9,18 @@ const ColorPickerStyles = theme => ({
9
9
  width: "24px",
10
10
  height: "24px",
11
11
  marginRight: "8px",
12
- border: "1px solid #ccc"
12
+ border: "unset"
13
13
  }
14
14
  },
15
15
  colorPopper: {
16
16
  marginTop: "20px",
17
+ borderRadius: "7px !important",
17
18
  "& .MuiPaper-root": {
18
- backgroundColor: theme?.palette?.editor?.background,
19
+ backgroundColor: `${theme?.palette?.editor?.miniToolBarBackground} !important`,
20
+ background: `${theme?.palette?.editor?.miniToolBarBackground}`,
21
+ border: `1px solid ${theme?.palette?.editor?.miniToolBarBorder} !important`,
22
+ borderRadius: "7px !important",
23
+ padding: "0px 5px",
19
24
  '@media only screen and (max-width: 600px)': {
20
25
  marginTop: "-40px"
21
26
  }
@@ -54,7 +59,7 @@ const ColorPickerStyles = theme => ({
54
59
  width: "24px",
55
60
  height: "24px",
56
61
  margin: "0px 4px",
57
- border: "1px solid #ccc"
62
+ border: "unset"
58
63
  }
59
64
  },
60
65
  colorPickerIcon: {
@@ -1,4 +1,4 @@
1
- export const colors = ["#292D32", "#578CFF", "#A58CFF", "#46BBFF", "#FFC93A", "#33B24F", "#F06C83", "#64748B", "#82A9FE", "#C4B3FF", "#71CBFF", "#FFD055", "#61D57A", "#FA91A4", "#A2B0B9", "#A4C1FF", "#D7CBFF", "#9FDCFF", "#FFDC80", "#8AE59E", "#FCB0BE", "#E4ECF3", "#CDDCFF", "#E0D7FF", "#BEE7FF", "#FFE49E", "#B9F6C6", "#FDCAD3", "#FFFFFF", "#489FF8", "#FE7A00", "linear-gradient(327.62deg, #EBB9E0 13.53%, #9CEEE5 86.82%)", "linear-gradient(310.6deg, #7FA4F4 15.53%, #805EF5 83.64%)", "linear-gradient(95.19deg, #A831E7 4.17%, #F05339 88.89%)", "linear-gradient(90deg, #3F2AB7 12.5%, #0DC9B5 100%)", "#0F172A", "#2563EB", "#8360FD", "#19A9FC", "#FDB52A", "#0E8E2A", "#E1425E"
1
+ export const colors = ["#000000", "#578CFF", "#A58CFF", "#46BBFF", "#FFC93A", "#33B24F", "#F06C83", "#64748B", "#82A9FE", "#C4B3FF", "#71CBFF", "#FFD055", "#61D57A", "#FA91A4", "#A2B0B9", "#A4C1FF", "#D7CBFF", "#9FDCFF", "#FFDC80", "#8AE59E", "#FCB0BE", "#E4ECF3", "#CDDCFF", "#E0D7FF", "#BEE7FF", "#FFE49E", "#B9F6C6", "#FDCAD3", "#FFFFFF", "#489FF8", "#FE7A00", "linear-gradient(327.62deg, #EBB9E0 13.53%, #9CEEE5 86.82%)", "linear-gradient(310.6deg, #7FA4F4 15.53%, #805EF5 83.64%)", "linear-gradient(95.19deg, #A831E7 4.17%, #F05339 88.89%)", "linear-gradient(90deg, #3F2AB7 12.5%, #0DC9B5 100%)", "#0F172A", "#2563EB", "#8360FD", "#19A9FC", "#FDB52A", "#0E8E2A", "#E1425E"
2
2
  // "#E6E6E6",
3
- // "#BEBEBE"
3
+ // "#BEBEBE",
4
4
  ];
@@ -0,0 +1,124 @@
1
+ import React from "react";
2
+ import { Node, Path, Transforms } from "slate";
3
+ import { ReactEditor, useSlateStatic } from "slate-react";
4
+ import { Box, useTheme } from "@mui/material";
5
+ import { DataViewProvider } from "./Providers/DataViewProvider";
6
+ import useDataViewStyles from "./styles";
7
+ import LayoutView from "./Layouts";
8
+ import FilterView from "./Layouts/FilterView";
9
+ import { insertLineBreakAtEndOfPath } from "../../utils/helper";
10
+ import { useEditorContext } from "../../hooks/useMouseMove";
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ import { jsxs as _jsxs } from "react/jsx-runtime";
13
+ const DataView = props => {
14
+ const {
15
+ theme: appTheme
16
+ } = useEditorContext();
17
+ const theme = useTheme();
18
+ const editor = useSlateStatic();
19
+ const {
20
+ attributes,
21
+ children,
22
+ element,
23
+ customProps
24
+ } = props;
25
+ const {
26
+ CHARACTERS,
27
+ readOnly
28
+ } = customProps || {};
29
+ const {
30
+ properties,
31
+ layouts,
32
+ rows,
33
+ title
34
+ } = element;
35
+ const classes = useDataViewStyles(theme, appTheme);
36
+ const path = ReactEditor.findPath(editor, element);
37
+ const users = CHARACTERS?.map(m => {
38
+ const name = [m?.first_name || "", m?.last_name || ""]?.join(" ").trim();
39
+ return {
40
+ value: m?.email,
41
+ label: name || m?.username || m?.email,
42
+ avatar: m?.avatar || null
43
+ };
44
+ });
45
+ const onDuplicate = () => {
46
+ try {
47
+ const newPath = ReactEditor.findPath(editor, element);
48
+ const dataViewNode = Node.get(editor, newPath);
49
+ const cloneNode = JSON.parse(JSON.stringify(dataViewNode));
50
+ const toPath = Path.next(Path.parent(newPath));
51
+ Transforms.insertNodes(editor, [{
52
+ type: "paragraph",
53
+ children: [{
54
+ ...cloneNode
55
+ }]
56
+ }], {
57
+ at: toPath
58
+ });
59
+ } catch (err) {
60
+ console.log(err);
61
+ }
62
+ };
63
+ const onDelete = () => {
64
+ try {
65
+ const newPath = ReactEditor.findPath(editor, element);
66
+ Transforms.removeNodes(editor, {
67
+ at: newPath
68
+ });
69
+ } catch (err) {
70
+ console.log(err);
71
+ }
72
+ };
73
+ const onEnter = () => {
74
+ try {
75
+ const newPath = ReactEditor.findPath(editor, element);
76
+ const toPath = Path.previous(Path.parent(newPath));
77
+ insertLineBreakAtEndOfPath(editor, toPath);
78
+ } catch (err) {
79
+ console.log(err);
80
+ }
81
+ };
82
+ const onTitleChange = value => {
83
+ try {
84
+ Transforms.setNodes(editor, {
85
+ title: value
86
+ }, {
87
+ at: path
88
+ });
89
+ } catch (err) {
90
+ console.log(err);
91
+ }
92
+ };
93
+ return /*#__PURE__*/_jsx(Box, {
94
+ ...attributes,
95
+ className: "fe-dataview",
96
+ sx: classes.root,
97
+ contentEditable: false,
98
+ "data-title": title,
99
+ children: /*#__PURE__*/_jsxs(DataViewProvider, {
100
+ data: {
101
+ properties,
102
+ layouts,
103
+ rows
104
+ },
105
+ path: path,
106
+ editor: editor,
107
+ title: title,
108
+ users: users,
109
+ children: [/*#__PURE__*/_jsx(FilterView, {
110
+ classes: classes,
111
+ onEnter: onEnter,
112
+ onDelete: onDelete,
113
+ onDuplicate: onDuplicate,
114
+ readOnly: readOnly,
115
+ title: title,
116
+ onTitleChange: onTitleChange
117
+ }), /*#__PURE__*/_jsx(LayoutView, {
118
+ readOnly: readOnly,
119
+ children: children
120
+ })]
121
+ })
122
+ });
123
+ };
124
+ export default DataView;
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import ToolbarIcon from "../../common/ToolbarIcon";
3
+ import Icon from "../../common/Icon";
4
+ import { insertDataView } from "../../utils/dataView";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const DataViewButton = props => {
7
+ const {
8
+ editor,
9
+ icoBtnType
10
+ } = props;
11
+ const onClick = () => {
12
+ insertDataView(editor);
13
+ };
14
+ return /*#__PURE__*/_jsx(ToolbarIcon, {
15
+ title: "Dynamic Table",
16
+ onClick: onClick,
17
+ icon: /*#__PURE__*/_jsx(Icon, {
18
+ icon: "dataView"
19
+ }),
20
+ icoBtnType: icoBtnType
21
+ });
22
+ };
23
+ export default DataViewButton;