@flozy/editor 3.8.7 → 3.8.8

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 (117) hide show
  1. package/dist/Editor/ChatEditor.js +55 -29
  2. package/dist/Editor/CommonEditor.js +109 -166
  3. package/dist/Editor/Editor.css +12 -8
  4. package/dist/Editor/Elements/AI/AIInput.js +5 -16
  5. package/dist/Editor/Elements/AI/PopoverAIInput.js +17 -31
  6. package/dist/Editor/Elements/AI/Styles.js +1 -2
  7. package/dist/Editor/Elements/Accordion/Accordion.js +1 -1
  8. package/dist/Editor/Elements/Accordion/AccordionSummary.js +20 -6
  9. package/dist/Editor/Elements/AppHeader/AppHeader.js +4 -26
  10. package/dist/Editor/Elements/Button/EditorButton.js +16 -28
  11. package/dist/Editor/Elements/Color Picker/ColorButtons.js +17 -60
  12. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  13. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  14. package/dist/Editor/Elements/Color Picker/Styles.js +1 -2
  15. package/dist/Editor/Elements/Emoji/EmojiPicker.js +4 -2
  16. package/dist/Editor/Elements/Form/Form.js +1 -1
  17. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +3 -12
  18. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +1 -2
  19. package/dist/Editor/Elements/Grid/Grid.js +3 -27
  20. package/dist/Editor/Elements/Grid/GridItem.js +1 -3
  21. package/dist/Editor/Elements/Link/Link.js +1 -6
  22. package/dist/Editor/Elements/Link/LinkButton.js +2 -4
  23. package/dist/Editor/Elements/Link/LinkPopup.js +3 -10
  24. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +8 -4
  25. package/dist/Editor/Elements/Signature/SignaturePopup.js +3 -14
  26. package/dist/Editor/Elements/Table/Styles.js +1 -23
  27. package/dist/Editor/Elements/Table/Table.js +1 -2
  28. package/dist/Editor/Elements/Table/TableCell.js +7 -69
  29. package/dist/Editor/Elements/TableContextMenu/TableContextMenu.js +0 -1
  30. package/dist/Editor/MiniEditor.js +1 -3
  31. package/dist/Editor/Toolbar/Basic/index.js +2 -4
  32. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +2 -26
  33. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  34. package/dist/Editor/Toolbar/FormatTools/TextSize.js +18 -29
  35. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +27 -5
  36. package/dist/Editor/Toolbar/Mini/Options/Options.js +0 -10
  37. package/dist/Editor/Toolbar/Mini/Styles.js +0 -7
  38. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +11 -4
  39. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +86 -213
  40. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
  41. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +13 -20
  42. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +7 -52
  43. package/dist/Editor/Toolbar/PopupTool/index.js +5 -6
  44. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  45. package/dist/Editor/assets/svg/AIIcons.js +1 -153
  46. package/dist/Editor/assets/svg/AddTemplateIcon.js +10 -13
  47. package/dist/Editor/assets/svg/TextIcon.js +5 -8
  48. package/dist/Editor/common/ColorPickerButton.js +9 -25
  49. package/dist/Editor/common/DnD/DragHandleButton.js +47 -56
  50. package/dist/Editor/common/Icon.js +3 -43
  51. package/dist/Editor/common/LinkSettings/NavComponents.js +2 -5
  52. package/dist/Editor/common/LinkSettings/index.js +2 -4
  53. package/dist/Editor/common/LinkSettings/navOptions.js +2 -7
  54. package/dist/Editor/common/LinkSettings/style.js +8 -11
  55. package/dist/Editor/common/MentionsPopup/MentionsListCard.js +6 -1
  56. package/dist/Editor/common/Section/index.js +7 -57
  57. package/dist/Editor/common/Section/styles.js +0 -11
  58. package/dist/Editor/common/Shorthands/elements.js +0 -54
  59. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  60. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +29 -33
  61. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +25 -31
  62. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +1 -1
  63. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +7 -31
  64. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
  65. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +14 -3
  66. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +4 -14
  67. package/dist/Editor/common/StyleBuilder/index.js +1 -1
  68. package/dist/Editor/common/iconslist.js +31 -0
  69. package/dist/Editor/helper/index.js +22 -0
  70. package/dist/Editor/helper/theme.js +4 -189
  71. package/dist/Editor/hooks/useMouseMove.js +1 -4
  72. package/dist/Editor/hooks/useWindowMessage.js +7 -10
  73. package/dist/Editor/plugins/withEmbeds.js +1 -1
  74. package/dist/Editor/plugins/withHTML.js +1 -1
  75. package/dist/Editor/plugins/withTable.js +1 -1
  76. package/dist/Editor/theme/ThemeList.js +173 -50
  77. package/dist/Editor/utils/SlateUtilityFunctions.js +27 -169
  78. package/dist/Editor/utils/button.js +17 -1
  79. package/dist/Editor/utils/draftToSlate.js +1 -1
  80. package/dist/Editor/utils/events.js +2 -54
  81. package/dist/Editor/utils/font.js +37 -40
  82. package/dist/Editor/utils/helper.js +2 -31
  83. package/dist/Editor/utils/table.js +43 -51
  84. package/package.json +2 -3
  85. package/dist/Editor/Elements/AI/VoiceToText/AudioWave.js +0 -73
  86. package/dist/Editor/Elements/AI/VoiceToText/index.js +0 -167
  87. package/dist/Editor/Elements/AI/VoiceToText/style.js +0 -40
  88. package/dist/Editor/Elements/Link/LinkPopupStyles.js +0 -28
  89. package/dist/Editor/Elements/Redo/RedoButton.js +0 -14
  90. package/dist/Editor/Elements/Undo/UndoButton.js +0 -14
  91. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  92. package/dist/Editor/assets/svg/RedoIcon.js +0 -27
  93. package/dist/Editor/assets/svg/SettingsIcon.js +0 -28
  94. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  95. package/dist/Editor/assets/svg/UndoIcon.js +0 -27
  96. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  97. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  98. package/dist/Editor/common/CustomDialog/index.js +0 -94
  99. package/dist/Editor/common/CustomDialog/style.js +0 -67
  100. package/dist/Editor/common/CustomSelect.js +0 -33
  101. package/dist/Editor/hooks/useEditorTheme.js +0 -139
  102. package/dist/Editor/theme/index.js +0 -144
  103. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  104. package/dist/Editor/themeSettings/buttons/index.js +0 -290
  105. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  106. package/dist/Editor/themeSettings/colorTheme/index.js +0 -290
  107. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  108. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -123
  109. package/dist/Editor/themeSettings/fonts/index.js +0 -213
  110. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  111. package/dist/Editor/themeSettings/icons.js +0 -60
  112. package/dist/Editor/themeSettings/index.js +0 -320
  113. package/dist/Editor/themeSettings/style.js +0 -152
  114. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  115. package/dist/Editor/themeSettingsAI/index.js +0 -356
  116. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -190
  117. package/dist/Editor/themeSettingsAI/style.js +0 -247
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flozy/editor",
3
- "version": "3.8.7",
3
+ "version": "3.8.8",
4
4
  "description": "An Editor for flozy app brain",
5
5
  "files": [
6
6
  "dist"
@@ -46,7 +46,6 @@
46
46
  "slate-react": "^0.98.3",
47
47
  "styled-components": "^5.3.11",
48
48
  "use-debounce": "^10.0.0",
49
- "wavesurfer.js": "^7.8.6",
50
49
  "web-vitals": "^2.1.4",
51
50
  "y-websocket": "^1.5.0",
52
51
  "yjs": "^13.6.8"
@@ -62,7 +61,7 @@
62
61
  "build": "NODE_OPTIONS='--max_old_space_size=4096' craco build",
63
62
  "test": "craco test --passWithNoTests",
64
63
  "eject": "react-scripts eject",
65
- "storybook": "storybook dev -p 6006",
64
+ "storybook": "NODE_OPTIONS='--max_old_space_size=4096' storybook dev -p 6006",
66
65
  "build-storybook": "NODE_OPTIONS='--max_old_space_size=4096' storybook build",
67
66
  "publish:npm": "rm -rf dist && mkdir dist && babel src/components -d dist --copy-files",
68
67
  "publish:local": "rm -rf /Users/agenciflow08/Documents/flozy/client/node_modules/@flozy/editor/dist && babel src/components -d /Users/agenciflow08/Documents/flozy/client/node_modules/@flozy/editor/dist --copy-files"
@@ -1,73 +0,0 @@
1
- import { Box } from "@mui/material";
2
- import { useEffect, useRef, useState } from "react";
3
- import WaveSurfer from "wavesurfer.js";
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- const SoundWave = props => {
6
- const {
7
- audioChunks = null
8
- } = props; // Initialize to null if not provided
9
- const waveContent = useRef(null);
10
- const wavesurfer = useRef(null);
11
- const [playOnce, setPlayOnce] = useState(false);
12
- useEffect(() => {
13
- if (waveContent.current) {
14
- if (wavesurfer.current) {
15
- wavesurfer.current.destroy();
16
- }
17
- wavesurfer.current = WaveSurfer.create({
18
- container: waveContent.current,
19
- waveColor: "#2563EB",
20
- progressColor: "#2563EB",
21
- cursorWidth: 0,
22
- // Disable the cursor
23
- barWidth: 2,
24
- barGap: 1,
25
- barRadius: 2,
26
- scrollParent: false,
27
- // Prevent scrolling
28
- height: waveContent.current.clientHeight // Set height to fit container
29
- });
30
-
31
- // Fit the waveform to the container width
32
- const resize = () => {
33
- if (wavesurfer.current) {
34
- const containerWidth = waveContent.current.clientWidth;
35
- const duration = wavesurfer.current.getDuration();
36
- if (duration > 0) {
37
- const newZoom = containerWidth / duration;
38
- wavesurfer.current.zoom(newZoom);
39
- }
40
- }
41
- };
42
- window.addEventListener("resize", resize);
43
- resize();
44
- return () => {
45
- window.removeEventListener("resize", resize);
46
- };
47
- }
48
- }, []);
49
- useEffect(() => {
50
- if (wavesurfer.current && audioChunks) {
51
- const audioBlob = new Blob(audioChunks, {
52
- type: "audio/webm"
53
- });
54
- const recordedUrl = URL.createObjectURL(audioBlob);
55
- wavesurfer.current.load(recordedUrl).then().catch(e => console.error("Error loading audio: ", e));
56
- if (!playOnce) {
57
- setPlayOnce(true);
58
- }
59
- } else if (wavesurfer.current && !audioChunks) {
60
- // Clear the waveform when audioChunks is null
61
- wavesurfer.current.empty();
62
- }
63
- }, [audioChunks, playOnce]);
64
- return /*#__PURE__*/_jsx(Box, {
65
- ref: waveContent,
66
- style: {
67
- width: "100%",
68
- height: "100%",
69
- overflow: "hidden"
70
- }
71
- });
72
- };
73
- export const AudioWave = SoundWave;
@@ -1,167 +0,0 @@
1
- import { useState, useEffect, useRef, cloneElement } from "react";
2
- import PropTypes from "prop-types";
3
- import STTStyles from "./style";
4
- import { Grid, IconButton, Box } from "@mui/material";
5
- import { AudioWave } from "./AudioWave";
6
- import { CloseGreyCircle, PauseRecordingIcon, TickBlueCircle } from "../../../assets/svg/AIIcons";
7
- import { MODES } from "../helper";
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- import { jsxs as _jsxs } from "react/jsx-runtime";
10
- function STT(props) {
11
- const {
12
- children,
13
- otherProps,
14
- onSend
15
- } = props;
16
- const {
17
- services
18
- } = otherProps;
19
- const classes = STTStyles();
20
- const [isRecording, setIsRecording] = useState(false);
21
- const [mediaRecorder, setMediaRecorder] = useState(null);
22
- const [audioChunks, setAudioChunks] = useState([]);
23
- const [chunkIndex, setChunkIndex] = useState(0);
24
- const audioChunksRef = useRef([]);
25
- const [transcription, setTranscription] = useState("");
26
- const [showPause, setShowPause] = useState(true);
27
- const [isAILoading, setAILoading] = useState(false);
28
- const setChunk = event => {
29
- if (event.data.size > 0) {
30
- setAudioChunks(prev => {
31
- const updatedChunks = [...prev, event.data];
32
- audioChunksRef.current = updatedChunks; // Update ref manually
33
- return updatedChunks;
34
- });
35
- }
36
- };
37
- const sendChunck = async (isLast = false) => {
38
- if (audioChunksRef.current.length > 0) {
39
- const audioBlob = new Blob(audioChunksRef.current, {
40
- type: "audio/webm"
41
- });
42
- const formData = new FormData();
43
- formData.append("audio", audioBlob, `audio_chunk_${chunkIndex}.wav`);
44
- formData.append("chunkIndex", chunkIndex); // Send chunk index to the backend
45
- if (isLast) {
46
- formData.append("isLastChunk", true); // Send chunk index to the backend
47
- } else {
48
- formData.append("isLastChunk", false);
49
- setChunkIndex(prevIndex => prevIndex + 1);
50
- }
51
- const result = await services("speechToText", {
52
- formData
53
- });
54
- setTranscription(result?.data);
55
- await sendChunck();
56
- }
57
- };
58
- const handleStopRecording = () => {
59
- sendChunck(true);
60
- setAudioChunks([]);
61
- };
62
- const startRecording = async () => {
63
- setTranscription("");
64
- const stream = await navigator.mediaDevices.getUserMedia({
65
- audio: true
66
- });
67
- const recorder = new MediaRecorder(stream);
68
- setMediaRecorder(recorder);
69
- recorder.ondataavailable = setChunk;
70
- recorder.onstop = handleStopRecording;
71
- recorder.start(100);
72
- setIsRecording(true);
73
- setTimeout(() => {
74
- sendChunck();
75
- }, 2000);
76
- };
77
- const stopRecording = () => {
78
- if (mediaRecorder) {
79
- mediaRecorder.stop();
80
-
81
- // Stop all tracks to release the microphone
82
- if (mediaRecorder.stream) {
83
- mediaRecorder.stream.getTracks().forEach(track => track.stop());
84
- }
85
- setChunkIndex(0);
86
- setShowPause(false);
87
- }
88
- };
89
- const sendToInfiniti = async () => {
90
- setAILoading(true);
91
- setIsRecording(false);
92
- const result = await services("infinityAI", {
93
- mode: MODES.default,
94
- query: transcription
95
- });
96
- const text = result?.data || "";
97
- onSend("speech_to_text", {
98
- text
99
- });
100
- stopRecording();
101
- setAILoading(false);
102
- };
103
- const closeRecording = () => {
104
- setAudioChunks([]);
105
- stopRecording();
106
- setIsRecording(false);
107
- setShowPause(true);
108
- setTranscription("");
109
- };
110
- useEffect(() => {
111
- audioChunksRef.current = audioChunks;
112
- }, [audioChunks]);
113
- return /*#__PURE__*/_jsx(Grid, {
114
- xs: 12,
115
- children: /*#__PURE__*/_jsx(Grid, {
116
- className: classes.SttContainer,
117
- children: !isRecording ? /*#__PURE__*/_jsx(Grid, {
118
- xs: 12,
119
- children: /*#__PURE__*/cloneElement(children, {
120
- startRecording,
121
- isAILoading
122
- })
123
- }) : /*#__PURE__*/_jsxs(Grid, {
124
- xs: 12,
125
- sx: classes.AudioVizualizerContainer,
126
- children: [transcription ? /*#__PURE__*/_jsx(Grid, {
127
- xs: 12,
128
- sx: classes.TranscriptionContainer,
129
- children: transcription
130
- }) : null, /*#__PURE__*/_jsxs(Grid, {
131
- xs: 12,
132
- sx: classes.AudioVizualizerContent,
133
- children: [/*#__PURE__*/_jsx(Box, {
134
- children: /*#__PURE__*/_jsx(IconButton, {
135
- onClick: closeRecording,
136
- children: /*#__PURE__*/_jsx(CloseGreyCircle, {})
137
- })
138
- }), /*#__PURE__*/_jsx(Box, {
139
- sx: classes.AudioVisualiser,
140
- children: /*#__PURE__*/_jsx(AudioWave, {
141
- audioChunks: audioChunks
142
- })
143
- }), /*#__PURE__*/_jsx(Box, {
144
- children: showPause ? /*#__PURE__*/_jsx(IconButton, {
145
- onClick: stopRecording,
146
- children: /*#__PURE__*/_jsx(PauseRecordingIcon, {})
147
- }) : /*#__PURE__*/_jsx(IconButton, {
148
- onClick: sendToInfiniti,
149
- disabled: !transcription,
150
- style: !transcription ? {
151
- opacity: 0.5
152
- } : {},
153
- children: /*#__PURE__*/_jsx(TickBlueCircle, {})
154
- })
155
- })]
156
- })]
157
- })
158
- })
159
- });
160
- }
161
- STT.defaultProps = {
162
- classes: {}
163
- };
164
- STT.propTypes = {
165
- classes: PropTypes.object
166
- };
167
- export const VoiceToText = STT;
@@ -1,40 +0,0 @@
1
- const styles = () => ({
2
- SttContainer: {
3
- display: "flex",
4
- width: "100%",
5
- padding: "12px",
6
- zIndex: 1
7
- },
8
- STTInput: {
9
- width: "100%",
10
- borderRadius: "8px",
11
- "&& .MuiOutlinedInput-root .MuiOutlinedInput-notchedOutline": {
12
- borderColor: "#2563EB"
13
- },
14
- "&& .MuiOutlinedInput-root": {
15
- background: "rgba(252, 250, 255, 1)"
16
- }
17
- },
18
- AudioVizualizerContainer: {
19
- width: "100%",
20
- display: "flex",
21
- background: "rgba(252, 250, 255, 1)",
22
- borderRadius: "8px",
23
- border: "1px solid #2563EB",
24
- alignItems: "center",
25
- flexWrap: "wrap"
26
- },
27
- AudioVizualizerContent: {
28
- display: "flex",
29
- height: "50px",
30
- width: "100%"
31
- },
32
- AudioVisualiser: {
33
- flexGrow: "1",
34
- height: "100%"
35
- },
36
- TranscriptionContainer: {
37
- padding: "12px"
38
- }
39
- });
40
- export default styles;
@@ -1,28 +0,0 @@
1
- const LinkPopupStyles = themeType => ({
2
- addLinkField: {
3
- "& .MuiOutlinedInput-input": {
4
- fontSize: "12px",
5
- fontWeight: 500,
6
- color: themeType === "dark" ? "#FFFFFF !important" : "#000000 !important"
7
- },
8
- "& .MuiFormHelperText-root": {
9
- color: themeType === "dark" ? "#FFFFFF !important" : "#000000 !important"
10
- },
11
- "& .MuiOutlinedInput-root": {
12
- boxShadow: "0px 4px 10px rgba(0, 0, 0, 0.16)",
13
- color: themeType === "dark" ? "#FFFFFF !important" : "#000000 !important",
14
- borderRadius: "7px",
15
- "& fieldset": {
16
- borderColor: "#D8DDE1"
17
- },
18
- "&:hover fieldset": {
19
- borderColor: "#64748B"
20
- },
21
- "&.Mui-focused fieldset": {
22
- borderColor: "#2563EB"
23
- },
24
- "& .MuiFormLabel-root": {}
25
- }
26
- }
27
- });
28
- export default LinkPopupStyles;
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- import { useSlateStatic } from "slate-react";
3
- import RedoIcon from "../../assets/svg/RedoIcon";
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- const RedoButton = () => {
6
- const editor = useSlateStatic();
7
- const onRedo = () => {
8
- editor?.redo();
9
- };
10
- return /*#__PURE__*/_jsx(RedoIcon, {
11
- onClick: onRedo
12
- });
13
- };
14
- export default RedoButton;
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- import { useSlateStatic } from "slate-react";
3
- import UndoIcon from "../../assets/svg/UndoIcon";
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- const UndoButton = () => {
6
- const editor = useSlateStatic();
7
- const onUndo = () => {
8
- editor?.undo();
9
- };
10
- return /*#__PURE__*/_jsx(UndoIcon, {
11
- onClick: onUndo
12
- });
13
- };
14
- export default UndoButton;