From 7bf76b51c5275b31c4f6023c9e44b4cfb4dc8007 Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Fri, 17 Feb 2023 18:35:17 +0530 Subject: [PATCH] refactor: merge blocks-editor package with web (#2217) --- ...react-npm-7.32.0-60a40d5ae1-b81ce2623b.zip | Bin 235031 -> 0 bytes packages/blocks-editor/.eslintignore | 12 - packages/blocks-editor/.eslintrc.js | 18 - packages/blocks-editor/.gitignore | 1 - packages/blocks-editor/.prettierignore | 15 - packages/blocks-editor/.prettierrc.js | 7 - packages/blocks-editor/CHANGELOG.md | 374 ------------------ packages/blocks-editor/README.md | 1 - .../blocks-editor/blocks.webpack.config.js | 32 -- packages/blocks-editor/package.json | 28 -- packages/blocks-editor/src/index.ts | 4 - packages/blocks-editor/tailwind.config.js | 4 - packages/blocks-editor/tsconfig.json | 10 - packages/web/package.json | 1 - .../ChangeEditor/ChangeEditorMenu.tsx | 2 +- .../ChangeEditor/ChangeMultipleMenu.tsx | 2 +- .../Components/NoteView/NoteView.tsx | 4 +- .../NoteView/SuperEditor/SuperEditorNodes.ts | 4 - .../SelectedRevisionContent.tsx | 15 +- .../Components/SuperEditor}/BlocksEditor.tsx | 22 +- .../SuperEditor}/BlocksEditorComposer.tsx | 4 +- .../Components/SuperEditor}/Constants.ts | 0 .../SuperEditor}/Lexical/Hooks/useModal.tsx | 0 .../Lexical/Icons/chevron-down.svg | 0 .../Lexical/Icons/draggable-block-menu.svg | 0 .../Lexical/Icons/pencil-fill.svg | 0 .../SuperEditor}/Lexical/Icons/plus.svg | 0 .../SuperEditor}/Lexical/Nodes/AllNodes.ts | 10 +- .../Lexical/Nodes/TableComponent.tsx | 3 +- .../SuperEditor}/Lexical/Nodes/TableNode.tsx | 0 .../SuperEditor}/Lexical/Nodes/TweetNode.tsx | 0 .../Lexical/Nodes/YouTubeNode.tsx | 0 .../SuperEditor}/Lexical/Shared/canUseDOM.ts | 0 .../Lexical/Shared/environment.ts | 0 .../SuperEditor}/Lexical/Shared/invariant.ts | 0 .../Lexical/Theme/IconComponent.tsx | 0 .../SuperEditor}/Lexical/Theme/Theme.ts | 0 .../SuperEditor}/Lexical/Theme/base.scss | 0 .../SuperEditor}/Lexical/Theme/custom.scss | 2 +- .../SuperEditor}/Lexical/Theme/editor.scss | 0 .../SuperEditor}/Lexical/Theme/icons.scss | 0 .../SuperEditor}/Lexical/Theme/lexical.scss | 0 .../SuperEditor}/Lexical/Theme/links.scss | 0 .../SuperEditor}/Lexical/UI/Button.css | 0 .../SuperEditor}/Lexical/UI/Button.tsx | 0 .../SuperEditor}/Lexical/UI/Dialog.css | 0 .../SuperEditor}/Lexical/UI/Dialog.tsx | 0 .../SuperEditor}/Lexical/UI/Input.css | 0 .../SuperEditor}/Lexical/UI/LinkPreview.css | 0 .../SuperEditor}/Lexical/UI/LinkPreview.tsx | 0 .../SuperEditor}/Lexical/UI/Modal.css | 0 .../SuperEditor}/Lexical/UI/Modal.tsx | 0 .../SuperEditor}/Lexical/UI/TextInput.tsx | 0 .../Lexical/Utils/getDOMRangeRect.ts | 0 .../Lexical/Utils/getSelectedNode.ts | 0 .../SuperEditor}/Lexical/Utils/guard.ts | 0 .../Lexical/Utils/join-classes.ts | 0 .../SuperEditor}/Lexical/Utils/point.ts | 0 .../SuperEditor}/Lexical/Utils/rect.ts | 0 .../SuperEditor}/Lexical/Utils/sanitizeUrl.ts | 0 .../Lexical/Utils/setFloatingElemPosition.ts | 0 .../SuperEditor}/MarkdownTransformers.ts | 0 .../Plugins/AutoEmbedPlugin/index.tsx | 6 +- .../Plugins/AutoLinkPlugin/AutoLinkPlugin.tsx | 0 .../BlockPickerPlugin/BlockPickerMenuItem.tsx | 0 .../BlockPickerPlugin/BlockPickerOption.tsx | 0 .../BlockPickerPlugin/BlockPickerPlugin.tsx | 4 +- .../BlockPickerPlugin/Options/Alignment.tsx | 0 .../Options/BulletedList.tsx | 0 .../BlockPickerPlugin/Options/Checklist.tsx | 0 .../BlockPickerPlugin/Options/Code.tsx | 0 .../BlockPickerPlugin/Options/Collapsible.tsx | 0 .../BlockPickerPlugin/Options/DateTime.tsx | 0 .../BlockPickerPlugin/Options/Divider.tsx | 0 .../BlockPickerPlugin/Options/Embeds.tsx | 0 .../BlockPickerPlugin/Options/Headings.tsx | 0 .../Options/IndentOutdent.tsx | 0 .../Options/NumberedList.tsx | 0 .../BlockPickerPlugin/Options/Paragraph.tsx | 0 .../BlockPickerPlugin/Options/Password.tsx | 0 .../BlockPickerPlugin/Options/Quote.tsx | 0 .../BlockPickerPlugin/Options/Table.tsx | 0 .../SuperEditor/Plugins/Blocks/Alignment.tsx | 0 .../Plugins/Blocks/BulletedList.tsx | 0 .../SuperEditor/Plugins/Blocks/Checklist.tsx | 0 .../SuperEditor/Plugins/Blocks/Code.tsx | 0 .../Plugins/Blocks/Collapsible.tsx | 2 +- .../SuperEditor/Plugins/Blocks/DateTime.tsx | 0 .../SuperEditor/Plugins/Blocks/Divider.tsx | 0 .../SuperEditor/Plugins/Blocks/Embeds.tsx | 2 +- .../SuperEditor/Plugins/Blocks/Headings.tsx | 0 .../Plugins/Blocks/IndentOutdent.tsx | 0 .../Plugins/Blocks/NumberedList.tsx | 0 .../SuperEditor/Plugins/Blocks/Paragraph.tsx | 0 .../SuperEditor/Plugins/Blocks/Password.tsx | 0 .../SuperEditor/Plugins/Blocks/Quote.tsx | 0 .../SuperEditor/Plugins/Blocks/Table.tsx | 0 .../ChangeContentCallback.tsx | 0 .../SuperEditor/Plugins/ClassNames.ts | 0 .../Plugins/CodeHighlightPlugin/index.ts | 0 .../Plugins/CodeOptionsPlugin/CodeOptions.tsx | 0 .../Plugins/CollapsiblePlugin/Collapsible.css | 0 .../CollapsibleContainerNode.ts | 0 .../CollapsibleContentNode.ts | 0 .../CollapsiblePlugin/CollapsibleTitleNode.ts | 0 .../Plugins/CollapsiblePlugin/index.ts | 0 .../SuperEditor/Plugins/Commands.ts | 0 .../Plugins/DateTimePlugin/DateTimePlugin.tsx | 0 .../Plugins/DraggableBlockPlugin/index.scss | 0 .../Plugins/DraggableBlockPlugin/index.tsx | 6 +- .../Plugins/EncryptedFilePlugin/FilePlugin.ts | 0 .../Nodes/FileComponent.tsx | 0 .../EncryptedFilePlugin/Nodes/FileNode.tsx | 0 .../EncryptedFilePlugin/Nodes/FileUtils.tsx | 0 .../Nodes/SerializedFileNode.tsx | 0 .../Plugins/ExportPlugin/ExportPlugin.ts | 2 +- .../FloatingLinkEditorPlugin/index.tsx | 23 +- .../FloatingTextFormatToolbarPlugin/index.css | 0 .../FloatingTextFormatToolbarPlugin/index.tsx | 10 +- .../GetMarkdownPlugin/GetMarkdownPlugin.tsx | 2 +- .../Plugins/HorizontalRulePlugin/index.ts | 0 .../Plugins/ImportPlugin/ImportPlugin.tsx | 2 +- .../ItemBubblePlugin/ItemBubblePlugin.ts | 0 .../Nodes/BubbleComponent.tsx | 0 .../ItemBubblePlugin/Nodes/BubbleNode.tsx | 0 .../ItemBubblePlugin/Nodes/BubbleUtils.tsx | 0 .../Nodes/SerializedBubbleNode.tsx | 0 .../SuperEditor/Plugins/ItemNodeInterface.ts | 0 .../Plugins/ItemSelectionPlugin/ItemOption.ts | 0 .../ItemSelectionItemComponent.tsx | 0 .../ItemSelectionPlugin.tsx | 2 +- ...eTypeaheadAllowingSpacesAndPunctuation.tsx | 0 .../ListMaxIndentLevelPlugin/index.tsx | 0 .../MarkdownPreviewPlugin.tsx | 2 +- .../MobileToolbarPlugin.tsx | 8 +- .../NodeObserverPlugin/NodeObserverPlugin.tsx | 0 .../Plugins/PasswordPlugin/Generator.ts | 0 .../Plugins/PasswordPlugin/PasswordPlugin.tsx | 0 .../Plugins/ReadonlyPlugin/ReadonlyPlugin.tsx | 0 .../Plugins/SearchPlugin/Context.tsx | 0 .../Plugins/SearchPlugin/SearchDialog.tsx | 0 .../Plugins/SearchPlugin/SearchPlugin.tsx | 0 .../SuperEditor/Plugins/SearchPlugin/Types.ts | 0 .../createSearchHighlightElement.ts | 0 .../SearchPlugin/getAllTextNodesInElement.ts | 0 .../Plugins/TabIndentationPlugin.tsx | 0 .../SuperEditor}/Plugins/TablePlugin.tsx | 11 +- .../Plugins/TwitterPlugin/index.ts | 2 +- .../Plugins/YouTubePlugin/index.ts | 2 +- .../SuperEditor/SuperEditor.tsx | 14 +- .../SuperEditor/SuperNoteExporter.ts | 9 +- .../SuperEditor/SuperNoteImporter.tsx | 5 +- .../SuperEditor/SuperNoteMarkdownPreview.tsx | 9 +- .../Components/SuperEditor}/Utils.ts | 0 .../src/javascripts/Utils/NoteExportUtils.ts | 2 +- packages/web/src/stylesheets/index.css.scss | 7 +- packages/web/tailwind.config.js | 2 +- yarn.lock | 54 +-- 158 files changed, 95 insertions(+), 668 deletions(-) delete mode 100644 .yarn/cache/eslint-plugin-react-npm-7.32.0-60a40d5ae1-b81ce2623b.zip delete mode 100644 packages/blocks-editor/.eslintignore delete mode 100644 packages/blocks-editor/.eslintrc.js delete mode 100644 packages/blocks-editor/.gitignore delete mode 100644 packages/blocks-editor/.prettierignore delete mode 100644 packages/blocks-editor/.prettierrc.js delete mode 100644 packages/blocks-editor/CHANGELOG.md delete mode 100644 packages/blocks-editor/README.md delete mode 100644 packages/blocks-editor/blocks.webpack.config.js delete mode 100644 packages/blocks-editor/package.json delete mode 100644 packages/blocks-editor/src/index.ts delete mode 100644 packages/blocks-editor/tailwind.config.js delete mode 100644 packages/blocks-editor/tsconfig.json delete mode 100644 packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperEditorNodes.ts rename packages/{blocks-editor/src/Editor => web/src/javascripts/Components/SuperEditor}/BlocksEditor.tsx (82%) rename packages/{blocks-editor/src/Editor => web/src/javascripts/Components/SuperEditor}/BlocksEditorComposer.tsx (88%) rename packages/{blocks-editor/src/Editor => web/src/javascripts/Components/SuperEditor}/Constants.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Hooks/useModal.tsx (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Icons/chevron-down.svg (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Icons/draggable-block-menu.svg (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Icons/pencil-fill.svg (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Icons/plus.svg (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Nodes/AllNodes.ts (67%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Nodes/TableComponent.tsx (99%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Nodes/TableNode.tsx (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Nodes/TweetNode.tsx (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Nodes/YouTubeNode.tsx (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Shared/canUseDOM.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Shared/environment.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Shared/invariant.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Theme/IconComponent.tsx (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Theme/Theme.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Theme/base.scss (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Theme/custom.scss (68%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Theme/editor.scss (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Theme/icons.scss (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Theme/lexical.scss (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Theme/links.scss (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/UI/Button.css (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/UI/Button.tsx (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/UI/Dialog.css (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/UI/Dialog.tsx (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/UI/Input.css (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/UI/LinkPreview.css (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/UI/LinkPreview.tsx (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/UI/Modal.css (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/UI/Modal.tsx (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/UI/TextInput.tsx (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Utils/getDOMRangeRect.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Utils/getSelectedNode.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Utils/guard.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Utils/join-classes.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Utils/point.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Utils/rect.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Utils/sanitizeUrl.ts (100%) rename packages/{blocks-editor/src => web/src/javascripts/Components/SuperEditor}/Lexical/Utils/setFloatingElemPosition.ts (100%) rename packages/{blocks-editor/src/Editor => web/src/javascripts/Components/SuperEditor}/MarkdownTransformers.ts (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/AutoEmbedPlugin/index.tsx (97%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/AutoLinkPlugin/AutoLinkPlugin.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerMenuItem.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerOption.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerPlugin.tsx (96%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/Alignment.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/BulletedList.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/Checklist.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/Code.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/Collapsible.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/DateTime.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/Divider.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/Embeds.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/Headings.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/IndentOutdent.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/NumberedList.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/Paragraph.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/Password.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/Quote.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/BlockPickerPlugin/Options/Table.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/Alignment.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/BulletedList.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/Checklist.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/Code.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/Collapsible.tsx (78%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/DateTime.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/Divider.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/Embeds.tsx (84%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/Headings.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/IndentOutdent.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/NumberedList.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/Paragraph.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/Password.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/Quote.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Blocks/Table.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ChangeContentCallback/ChangeContentCallback.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ClassNames.ts (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/CodeHighlightPlugin/index.ts (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/CodeOptionsPlugin/CodeOptions.tsx (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/CollapsiblePlugin/Collapsible.css (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/CollapsiblePlugin/CollapsibleContainerNode.ts (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/CollapsiblePlugin/CollapsibleContentNode.ts (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/CollapsiblePlugin/CollapsibleTitleNode.ts (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/CollapsiblePlugin/index.ts (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/Commands.ts (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/DateTimePlugin/DateTimePlugin.tsx (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/DraggableBlockPlugin/index.scss (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/DraggableBlockPlugin/index.tsx (98%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/EncryptedFilePlugin/FilePlugin.ts (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileComponent.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileNode.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileUtils.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/SerializedFileNode.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ExportPlugin/ExportPlugin.ts (98%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/FloatingLinkEditorPlugin/index.tsx (90%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/FloatingTextFormatToolbarPlugin/index.css (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/FloatingTextFormatToolbarPlugin/index.tsx (97%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/GetMarkdownPlugin/GetMarkdownPlugin.tsx (91%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/HorizontalRulePlugin/index.ts (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ImportPlugin/ImportPlugin.tsx (95%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ItemBubblePlugin/ItemBubblePlugin.ts (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleComponent.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleNode.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleUtils.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ItemBubblePlugin/Nodes/SerializedBubbleNode.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ItemNodeInterface.ts (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ItemSelectionPlugin/ItemOption.ts (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionItemComponent.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionPlugin.tsx (97%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ItemSelectionPlugin/useTypeaheadAllowingSpacesAndPunctuation.tsx (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/ListMaxIndentLevelPlugin/index.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/MarkdownPreviewPlugin/MarkdownPreviewPlugin.tsx (92%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/MobileToolbarPlugin/MobileToolbarPlugin.tsx (95%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/NodeObserverPlugin/NodeObserverPlugin.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/PasswordPlugin/Generator.ts (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/PasswordPlugin/PasswordPlugin.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/ReadonlyPlugin/ReadonlyPlugin.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/SearchPlugin/Context.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/SearchPlugin/SearchDialog.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/SearchPlugin/SearchPlugin.tsx (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/SearchPlugin/Types.ts (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/SearchPlugin/createSearchHighlightElement.ts (100%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/Plugins/SearchPlugin/getAllTextNodesInElement.ts (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/TabIndentationPlugin.tsx (100%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/TablePlugin.tsx (95%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/TwitterPlugin/index.ts (93%) rename packages/{blocks-editor/src/Lexical => web/src/javascripts/Components/SuperEditor}/Plugins/YouTubePlugin/index.ts (93%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/SuperEditor.tsx (94%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/SuperNoteExporter.ts (76%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/SuperNoteImporter.tsx (95%) rename packages/web/src/javascripts/Components/{NoteView => }/SuperEditor/SuperNoteMarkdownPreview.tsx (83%) rename packages/{blocks-editor/src/Editor => web/src/javascripts/Components/SuperEditor}/Utils.ts (100%) diff --git a/.yarn/cache/eslint-plugin-react-npm-7.32.0-60a40d5ae1-b81ce2623b.zip b/.yarn/cache/eslint-plugin-react-npm-7.32.0-60a40d5ae1-b81ce2623b.zip deleted file mode 100644 index 729ade4262f61f24696d0aaa22144906284f5457..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235031 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

W7ODllBYtsDtc0xOd8Qw&>3HwU3?s2tWcy( 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 KH}!zOM)-eRc4gcE diff --git a/packages/blocks-editor/.eslintignore b/packages/blocks-editor/.eslintignore deleted file mode 100644 index 904b3531d..000000000 --- a/packages/blocks-editor/.eslintignore +++ /dev/null @@ -1,12 +0,0 @@ -# NOTE: In general this should be kept in sync with .eslintignore - -**/dist/** -**/config/** -**/build/** -**/npm/** -**/*.js.flow -**/*.d.ts -**/playwright*/** -**/vite.config.js -**/vite.prod.config.js -**/node_modules diff --git a/packages/blocks-editor/.eslintrc.js b/packages/blocks-editor/.eslintrc.js deleted file mode 100644 index ab45dd8b6..000000000 --- a/packages/blocks-editor/.eslintrc.js +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - root: true, - extends: ['../../common.eslintrc.js', 'plugin:react-hooks/recommended'], - parserOptions: { - project: './tsconfig.json', - tsconfigRootDir: __dirname, - }, - ignorePatterns: ['**/*.spec.ts', '__mocks__'], - plugins: ['@typescript-eslint', 'react', 'react-hooks', 'prettier'], - env: { - browser: true, - }, - globals: { - __WEB_VERSION__: true, - JSX: true, - __DEV__: true, - }, -}; diff --git a/packages/blocks-editor/.gitignore b/packages/blocks-editor/.gitignore deleted file mode 100644 index 53c37a166..000000000 --- a/packages/blocks-editor/.gitignore +++ /dev/null @@ -1 +0,0 @@ -dist \ No newline at end of file diff --git a/packages/blocks-editor/.prettierignore b/packages/blocks-editor/.prettierignore deleted file mode 100644 index dac34b8b6..000000000 --- a/packages/blocks-editor/.prettierignore +++ /dev/null @@ -1,15 +0,0 @@ -# NOTE: In general this should be kept in sync with .eslintignore - -packages/**/dist/*.js -packages/**/build/*.js -packages/**/npm/**/* -packages/**/config/*.js -packages/playwright -packages/playwright-core -packages/**/vite.config.js -packages/**/vite.prod.config.js -**/*.md -**/node_modules -flow-typed -.github/CODEOWNERS -.prettierignore diff --git a/packages/blocks-editor/.prettierrc.js b/packages/blocks-editor/.prettierrc.js deleted file mode 100644 index 19e7bc5b0..000000000 --- a/packages/blocks-editor/.prettierrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - singleQuote: true, - trailingComma: 'all', - printWidth: 120, - semi: false, - plugins: [require('prettier-plugin-tailwindcss')], -}; diff --git a/packages/blocks-editor/CHANGELOG.md b/packages/blocks-editor/CHANGELOG.md deleted file mode 100644 index 438102ba0..000000000 --- a/packages/blocks-editor/CHANGELOG.md +++ /dev/null @@ -1,374 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## [1.17.2](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.17.1...@standardnotes/blocks-editor@1.17.2) (2023-02-16) - -### Bug Fixes - -* Fixes issue where pasting in a new Super note would not save it ([91a8023](https://github.com/standardnotes/app/commit/91a8023fa480adbf9c1e99f2af922facf1fb8d9e)) - -## [1.17.1](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.17.0...@standardnotes/blocks-editor@1.17.1) (2023-02-13) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -# [1.17.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.11...@standardnotes/blocks-editor@1.17.0) (2023-02-10) - -### Features - -* Added markdown horizontal rule syntax to Super notes ([033e73b](https://github.com/standardnotes/app/commit/033e73b18938620a4865aabe9650afd2d663ed75)) - -## [1.16.11](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.10...@standardnotes/blocks-editor@1.16.11) (2023-02-10) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.16.10](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.9...@standardnotes/blocks-editor@1.16.10) (2023-02-09) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.16.9](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.8...@standardnotes/blocks-editor@1.16.9) (2023-02-09) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.16.8](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.7...@standardnotes/blocks-editor@1.16.8) (2023-02-09) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.16.7](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.6...@standardnotes/blocks-editor@1.16.7) (2023-02-07) - -### Bug Fixes - -* Fixed issue in Super notes where collapsible block title alignment would not persist ([461551f](https://github.com/standardnotes/app/commit/461551fdf7083c5b29b84de80233de049f16f44d)) - -## [1.16.6](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.5...@standardnotes/blocks-editor@1.16.6) (2023-02-03) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.16.5](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.4...@standardnotes/blocks-editor@1.16.5) (2023-02-02) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.16.4](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.3...@standardnotes/blocks-editor@1.16.4) (2023-02-01) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.16.3](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.2...@standardnotes/blocks-editor@1.16.3) (2023-02-01) - -### Bug Fixes - -* Fixed issue where converting to Super would result in empty note ([cf4e348](https://github.com/standardnotes/app/commit/cf4e34858fcb898199ed102194d2d068c7d1d2db)) - -## [1.16.2](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.1...@standardnotes/blocks-editor@1.16.2) (2023-02-01) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.16.1](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.16.0...@standardnotes/blocks-editor@1.16.1) (2023-02-01) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -# [1.16.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.15.0...@standardnotes/blocks-editor@1.16.0) (2023-02-01) - -### Features - -* Added above-keyboard toolbar to Super notes on mobile for formatting & selecting blocks ([#2189](https://github.com/standardnotes/app/issues/2189)) ([4a3f9f1](https://github.com/standardnotes/app/commit/4a3f9f12e7742e162f330b3c90810aa8ce110fc8)) - -# [1.15.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.14.1...@standardnotes/blocks-editor@1.15.0) (2023-01-31) - -### Features - -* Changed floating toolbar in Super to be always visible above keyboard on mobile ([#2188](https://github.com/standardnotes/app/issues/2188)) ([ba67f8b](https://github.com/standardnotes/app/commit/ba67f8b8ce664d79a4374b6d36003db8789e5de0)) - -## [1.14.1](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.14.0...@standardnotes/blocks-editor@1.14.1) (2023-01-25) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -# [1.14.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.13.0...@standardnotes/blocks-editor@1.14.0) (2023-01-25) - -### Features - -* Links in Super notes will get auto-linked when they're pasted or typed ([1b696fa](https://github.com/standardnotes/app/commit/1b696fa50440bf5ff6f0a3a92ba9c2a775e374d6)) - -# [1.13.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.12.4...@standardnotes/blocks-editor@1.13.0) (2023-01-12) - -### Features - -* Added search and replace to Super notes on web/desktop. Press Ctrl+F in a super note to toggle search. (skip e2e) ([#2128](https://github.com/standardnotes/app/issues/2128)) ([8104522](https://github.com/standardnotes/app/commit/8104522658b45c3a5e4d220318a1a3ca60ca4267)) - -## [1.12.4](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.12.3...@standardnotes/blocks-editor@1.12.4) (2023-01-11) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.12.3](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.12.2...@standardnotes/blocks-editor@1.12.3) (2023-01-11) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.12.2](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.12.1...@standardnotes/blocks-editor@1.12.2) (2022-12-29) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.12.1](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.12.0...@standardnotes/blocks-editor@1.12.1) (2022-12-26) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -# [1.12.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.11.3...@standardnotes/blocks-editor@1.12.0) (2022-12-26) - -### Features - -* Clicking the link option in Super notes will automatically add the selected text as the link ([326e1a4](https://github.com/standardnotes/app/commit/326e1a455bb510d795f357123f617618267848cc)) - -## [1.11.3](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.11.2...@standardnotes/blocks-editor@1.11.3) (2022-12-24) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.11.2](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.11.1...@standardnotes/blocks-editor@1.11.2) (2022-12-24) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.11.1](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.11.0...@standardnotes/blocks-editor@1.11.1) (2022-12-24) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -# [1.11.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.10.2...@standardnotes/blocks-editor@1.11.0) (2022-12-24) - -### Features - -* Persist collapsible block state in Super notes ([#2119](https://github.com/standardnotes/app/issues/2119)) ([577318e](https://github.com/standardnotes/app/commit/577318e208367dc52caf2d76fd87419eaead7ed4)) - -## [1.10.2](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.10.1...@standardnotes/blocks-editor@1.10.2) (2022-12-23) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.10.1](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.10.0...@standardnotes/blocks-editor@1.10.1) (2022-12-19) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -# [1.10.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.9.7...@standardnotes/blocks-editor@1.10.0) (2022-12-07) - -### Features - -* add ability to convert selection in Super to bulleted or numbered list ([be4cc4e](https://github.com/standardnotes/app/commit/be4cc4e605100e0a86de214e548e9ed10e2568aa)) - -## [1.9.7](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.9.6...@standardnotes/blocks-editor@1.9.7) (2022-12-07) - -### Bug Fixes - -* improve variance between Super header font sizes and weights ([8b10330](https://github.com/standardnotes/app/commit/8b103307cba41855713b8627cf5d66a6fef6ff52)) - -## [1.9.6](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.9.5...@standardnotes/blocks-editor@1.9.6) (2022-11-30) - -### Bug Fixes - -* Disable all-caps for H2/H3 headings in Super notes ([9b3f11d](https://github.com/standardnotes/app/commit/9b3f11d85b10914a03aab93803513766670c47fe)) -* Super note block drag-n-drop on mobile ([#2072](https://github.com/standardnotes/app/issues/2072)) ([349fd72](https://github.com/standardnotes/app/commit/349fd7204e209d56b720a3b0cc6b2bfc0fc50f47)) - -## [1.9.5](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.9.4...@standardnotes/blocks-editor@1.9.5) (2022-11-30) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.9.4](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.9.3...@standardnotes/blocks-editor@1.9.4) (2022-11-30) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.9.3](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.9.2...@standardnotes/blocks-editor@1.9.3) (2022-11-29) - -### Bug Fixes - -* Make super note styling consistent with plaintext notes ([#2068](https://github.com/standardnotes/app/issues/2068)) ([a417e5b](https://github.com/standardnotes/app/commit/a417e5ba8d3fc224b1527d0a9cfb0f25d197f9de)) - -## [1.9.2](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.9.1...@standardnotes/blocks-editor@1.9.2) (2022-11-28) - -### Bug Fixes - -* Only autofocus super notes when creating new note ([#2063](https://github.com/standardnotes/app/issues/2063)) ([96e8dfd](https://github.com/standardnotes/app/commit/96e8dfdd310fad88a360c4ac984b376b51a618d1)) - -## [1.9.1](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.9.0...@standardnotes/blocks-editor@1.9.1) (2022-11-28) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -# [1.9.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.8.0...@standardnotes/blocks-editor@1.9.0) (2022-11-23) - -### Features - -* dim checked list items in super editor ([#2046](https://github.com/standardnotes/app/issues/2046)) ([8a70915](https://github.com/standardnotes/app/commit/8a709158d6839b9eb1092923a14b0dcadb0da25b)) -* option to show markdown preview for super notes (skip e2e) ([#2048](https://github.com/standardnotes/app/issues/2048)) ([8579ff3](https://github.com/standardnotes/app/commit/8579ff39b1f81dbbcf22b4031ede183ab4287262)) - -# [1.8.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.7.0...@standardnotes/blocks-editor@1.8.0) (2022-11-23) - -### Features - -* use line height preference in super editor (skip e2e) ([#2045](https://github.com/standardnotes/app/issues/2045)) ([87cd31a](https://github.com/standardnotes/app/commit/87cd31ae5d630a528ce6d4895b2c144bf51808f0)) - -# [1.7.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.6.2...@standardnotes/blocks-editor@1.7.0) (2022-11-19) - -### Features - -* ability to drag super list items; secure password generation blocks ([#2039](https://github.com/standardnotes/app/issues/2039)) ([c39c72d](https://github.com/standardnotes/app/commit/c39c72da7a4fb85f4da9aa4e6f8e9f7ba4486a94)) - -## [1.6.2](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.6.1...@standardnotes/blocks-editor@1.6.2) (2022-11-19) - -### Bug Fixes - -* improved error reporting in super; improved draggable block icon padding ([24ff87c](https://github.com/standardnotes/app/commit/24ff87c30625432393ffedeada14478ebb625292)) - -## [1.6.1](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.6.0...@standardnotes/blocks-editor@1.6.1) (2022-11-18) - -### Bug Fixes - -* issue where converting empty plain note to super would result in error ([e58c563](https://github.com/standardnotes/app/commit/e58c5637951f928efcd8c8427f06d0b6c69b5e55)) - -# [1.6.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.5.3...@standardnotes/blocks-editor@1.6.0) (2022-11-18) - -### Features - -* **web:** enable block drag'n'drop in super editor ([#2029](https://github.com/standardnotes/app/issues/2029)) ([dab4f67](https://github.com/standardnotes/app/commit/dab4f678f04aee2c7dfbe7f416e7fc34e8d870cf)) - -## [1.5.3](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.5.2...@standardnotes/blocks-editor@1.5.3) (2022-11-17) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.5.2](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.5.1...@standardnotes/blocks-editor@1.5.2) (2022-11-16) - -### Bug Fixes - -* super editor package ([2a12eb6](https://github.com/standardnotes/app/commit/2a12eb60bb0cc10358c51b3608f6f432667e58b0)) - -## [1.5.1](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.5.0...@standardnotes/blocks-editor@1.5.1) (2022-11-16) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -# [1.5.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.4.1...@standardnotes/blocks-editor@1.5.0) (2022-11-16) - -### Features - -* **labs:** super editor ([#2001](https://github.com/standardnotes/app/issues/2001)) ([59f8547](https://github.com/standardnotes/app/commit/59f8547a8de1c804cb2f01ac734c83268977fa28)) - -## [1.4.1](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.4.0...@standardnotes/blocks-editor@1.4.1) (2022-11-11) - -### Bug Fixes - -* super improvements ([#1995](https://github.com/standardnotes/app/issues/1995)) ([da6f36f](https://github.com/standardnotes/app/commit/da6f36f34cdee324339d2c923d61191b373513f3)) - -# [1.4.0](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.3.11...@standardnotes/blocks-editor@1.4.0) (2022-11-11) - -### Features - -* **dev:** insert current date and time command in super note ([#1994](https://github.com/standardnotes/app/issues/1994)) ([e27ac31](https://github.com/standardnotes/app/commit/e27ac3126ee4fec9e81df8722b6326ba6f38fe5e)) - -## [1.3.11](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.3.10...@standardnotes/blocks-editor@1.3.11) (2022-11-10) - -### Bug Fixes - -* super note improvements ([#1991](https://github.com/standardnotes/app/issues/1991)) ([2dbc895](https://github.com/standardnotes/app/commit/2dbc89594ea2759c49bc318d5efd2b3a5ef3b22d)) - -## [1.3.10](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.3.9...@standardnotes/blocks-editor@1.3.10) (2022-11-09) - -### Bug Fixes - -* link color ([ac4882b](https://github.com/standardnotes/app/commit/ac4882b357162f8737ac32ea9f55884276cc3011)) - -### Reverts - -* Revert "refactor: include themes in components folder" ([3690104](https://github.com/standardnotes/app/commit/3690104934b444ca99eed86c1a41b22a3582811a)) - -## [1.3.9](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.3.8...@standardnotes/blocks-editor@1.3.9) (2022-11-09) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.3.8](https://github.com/standardnotes/app/compare/@standardnotes/blocks-editor@1.3.7...@standardnotes/blocks-editor@1.3.8) (2022-11-08) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## 1.3.7 (2022-11-07) - -**Note:** Version bump only for package @standardnotes/blocks-editor - -## [1.3.6](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.3.5...@standardnotes/toast@1.3.6) (2022-11-04) - -**Note:** Version bump only for package @standardnotes/toast - -## [1.3.5](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.3.4...@standardnotes/toast@1.3.5) (2022-08-11) - -### Bug Fixes - -* optimize toasts for mobile ([#1392](https://github.com/standardnotes/app/issues/1392)) ([40d9392](https://github.com/standardnotes/app/commit/40d9392599e871225abcabcddd51de6cc99a0fe9)) - -## [1.3.4](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.3.3...@standardnotes/toast@1.3.4) (2022-07-14) - -**Note:** Version bump only for package @standardnotes/toast - -## [1.3.3](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.3.2...@standardnotes/toast@1.3.3) (2022-07-13) - -**Note:** Version bump only for package @standardnotes/toast - -## [1.3.2](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.3.1...@standardnotes/toast@1.3.2) (2022-07-06) - -**Note:** Version bump only for package @standardnotes/toast - -## [1.3.1](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.3.0...@standardnotes/toast@1.3.1) (2022-06-28) - -**Note:** Version bump only for package @standardnotes/toast - -# [1.3.0](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.2.4...@standardnotes/toast@1.3.0) (2022-06-27) - -### Features - -* **web:** tailwind css ([#1147](https://github.com/standardnotes/app/issues/1147)) ([b80038f](https://github.com/standardnotes/app/commit/b80038f607d7411912fa99366abf559a44874ef3)) - -## [1.2.4](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.2.4-alpha.0...@standardnotes/toast@1.2.4) (2022-06-18) - -**Note:** Version bump only for package @standardnotes/toast - -## [1.2.4-alpha.0](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.2.3...@standardnotes/toast@1.2.4-alpha.0) (2022-06-18) - -**Note:** Version bump only for package @standardnotes/toast - -## 1.2.3 (2022-06-16) - -**Note:** Version bump only for package @standardnotes/toast - -## 1.2.2 (2022-06-16) - -**Note:** Version bump only for package @standardnotes/toast - -## [1.2.1](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.2.1-alpha.4...@standardnotes/toast@1.2.1) (2022-06-16) - -**Note:** Version bump only for package @standardnotes/toast - -## 1.2.1-alpha.4 (2022-06-16) - -**Note:** Version bump only for package @standardnotes/toast - -## 1.2.1-alpha.3 (2022-06-16) - -**Note:** Version bump only for package @standardnotes/toast - -## 1.2.1-alpha.2 (2022-06-15) - -**Note:** Version bump only for package @standardnotes/toast - -## [1.2.1-alpha.1](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.2.1-alpha.0...@standardnotes/toast@1.2.1-alpha.1) (2022-06-14) - -**Note:** Version bump only for package @standardnotes/toast - -## [1.2.1-alpha.0](https://github.com/standardnotes/app/compare/@standardnotes/toast@1.2.0...@standardnotes/toast@1.2.1-alpha.0) (2022-06-14) - -**Note:** Version bump only for package @standardnotes/toast - -# 1.2.0 (2022-06-10) - -### Features - -* mobile app package ([#1075](https://github.com/standardnotes/app/issues/1075)) ([8248a38](https://github.com/standardnotes/app/commit/8248a38280cb7c92da2b2e9c7db298f34ae8ffdf)) -* styles package ([#1074](https://github.com/standardnotes/app/issues/1074)) ([3100327](https://github.com/standardnotes/app/commit/31003276b73d3e89824bc002fe616fa055e918c4)) -* toast package ([#1073](https://github.com/standardnotes/app/issues/1073)) ([6d0b6e9](https://github.com/standardnotes/app/commit/6d0b6e9018b2a612b8df4827336883fe04033128)) -* **wip:** components monorepo ([#1082](https://github.com/standardnotes/app/issues/1082)) ([e3d6001](https://github.com/standardnotes/app/commit/e3d6001a178e11e619ca724b2b155b7c0405c023)) - -# 1.1.0 (2022-06-10) - -### Features - -* mobile app package ([#1075](https://github.com/standardnotes/app/issues/1075)) ([8248a38](https://github.com/standardnotes/app/commit/8248a38280cb7c92da2b2e9c7db298f34ae8ffdf)) -* styles package ([#1074](https://github.com/standardnotes/app/issues/1074)) ([3100327](https://github.com/standardnotes/app/commit/31003276b73d3e89824bc002fe616fa055e918c4)) -* toast package ([#1073](https://github.com/standardnotes/app/issues/1073)) ([6d0b6e9](https://github.com/standardnotes/app/commit/6d0b6e9018b2a612b8df4827336883fe04033128)) -* **wip:** components monorepo ([8c5e11c](https://github.com/standardnotes/app/commit/8c5e11c22b717ada7a6a9b3115fc4c9b757ec71c)) diff --git a/packages/blocks-editor/README.md b/packages/blocks-editor/README.md deleted file mode 100644 index 4015c1ce7..000000000 --- a/packages/blocks-editor/README.md +++ /dev/null @@ -1 +0,0 @@ -Based on https://github.com/facebook/lexical/tree/main/packages/lexical-playground \ No newline at end of file diff --git a/packages/blocks-editor/blocks.webpack.config.js b/packages/blocks-editor/blocks.webpack.config.js deleted file mode 100644 index f96895882..000000000 --- a/packages/blocks-editor/blocks.webpack.config.js +++ /dev/null @@ -1,32 +0,0 @@ -const path = require('path') -module.exports = () => { - return { - entry: './src/index.ts', - output: { - filename: './dist.js', - }, - mode: 'production', - resolve: { - extensions: ['.ts', '.tsx', '.js'], - }, - externals: { - "@standardnotes/icons": path.resolve(__dirname, "./node_modules/@standardnotes/icons") - }, - module: { - rules: [ - { - test: /\.(js|tsx?)$/, - use: [ - 'babel-loader', - { - loader: 'ts-loader', - options: { - transpileOnly: true, - }, - }, - ], - }, - ], - }, - } -} diff --git a/packages/blocks-editor/package.json b/packages/blocks-editor/package.json deleted file mode 100644 index 71bb7db7f..000000000 --- a/packages/blocks-editor/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "@standardnotes/blocks-editor", - "version": "1.17.2", - "private": true, - "main": "./src/index.ts", - "scripts": { - "tsc": "tsc -p tsconfig.json", - "format": "prettier --write src/", - "lint:fix": "eslint src/ --fix" - }, - "dependencies": { - "@lexical/react": "0.8.0", - "@standardnotes/icons": "workspace:*", - "@types/react": "^18.0.26", - "@types/react-dom": "^18.0.9", - "lexical": "0.8.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - }, - "devDependencies": { - "eslint": "*", - "eslint-plugin-react": "*", - "eslint-plugin-react-hooks": "*", - "prettier": "*", - "prettier-plugin-tailwindcss": "*", - "typescript": "*" - } -} diff --git a/packages/blocks-editor/src/index.ts b/packages/blocks-editor/src/index.ts deleted file mode 100644 index d525e9bd9..000000000 --- a/packages/blocks-editor/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './Editor/BlocksEditor' -export * from './Editor/BlocksEditorComposer' -export * from './Editor/Constants' -export * from './Editor/MarkdownTransformers' diff --git a/packages/blocks-editor/tailwind.config.js b/packages/blocks-editor/tailwind.config.js deleted file mode 100644 index 5bd6316f0..000000000 --- a/packages/blocks-editor/tailwind.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - presets: [require('../web/tailwind.config.js')], - // ... -} diff --git a/packages/blocks-editor/tsconfig.json b/packages/blocks-editor/tsconfig.json deleted file mode 100644 index a46fc991c..000000000 --- a/packages/blocks-editor/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../UILib.tsconfig.json", - "compilerOptions": { - "baseUrl": ".", - "rootDir": "src", - "outDir": "dist" - }, - "include": ["src", "../web/src/javascripts/Components/BlockEditor/EncryptedFileNode.tsx"], - "exclude": ["dist", "node_modules"] -} diff --git a/packages/web/package.json b/packages/web/package.json index 9be96cc86..398750faa 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -40,7 +40,6 @@ "@reach/visually-hidden": "^0.18.0", "@standardnotes/authenticator": "^2.3.9", "@standardnotes/autobiography-theme": "^1.2.7", - "@standardnotes/blocks-editor": "workspace:*", "@standardnotes/bold-editor": "^1.6.4", "@standardnotes/classic-code-editor": "^1.5.7", "@standardnotes/dynamic-theme": "^1.2.8", diff --git a/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorMenu.tsx b/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorMenu.tsx index 1e63741fe..9bc6e65ba 100644 --- a/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorMenu.tsx +++ b/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorMenu.tsx @@ -10,7 +10,7 @@ import { EditorMenuItem } from '@/Components/NotesOptions/EditorMenuItem' import { createEditorMenuGroups } from '../../Utils/createEditorMenuGroups' import { reloadFont } from '../NoteView/FontFunctions' import { PremiumFeatureIconClass, PremiumFeatureIconName } from '../Icon/PremiumFeatureIcon' -import { SuperNoteImporter } from '../NoteView/SuperEditor/SuperNoteImporter' +import { SuperNoteImporter } from '../SuperEditor/SuperNoteImporter' import MenuRadioButtonItem from '../Menu/MenuRadioButtonItem' import { Pill } from '../Preferences/PreferencesComponents/Content' import ModalOverlay from '../Modal/ModalOverlay' diff --git a/packages/web/src/javascripts/Components/ChangeEditor/ChangeMultipleMenu.tsx b/packages/web/src/javascripts/Components/ChangeEditor/ChangeMultipleMenu.tsx index 8cd238ebf..8607e88ef 100644 --- a/packages/web/src/javascripts/Components/ChangeEditor/ChangeMultipleMenu.tsx +++ b/packages/web/src/javascripts/Components/ChangeEditor/ChangeMultipleMenu.tsx @@ -10,7 +10,7 @@ import Menu from '../Menu/Menu' import MenuItem from '../Menu/MenuItem' import { EditorMenuGroup } from '../NotesOptions/EditorMenuGroup' import { EditorMenuItem } from '../NotesOptions/EditorMenuItem' -import { SuperNoteImporter } from '../NoteView/SuperEditor/SuperNoteImporter' +import { SuperNoteImporter } from '../SuperEditor/SuperNoteImporter' import { Pill } from '../Preferences/PreferencesComponents/Content' import ModalOverlay from '../Modal/ModalOverlay' diff --git a/packages/web/src/javascripts/Components/NoteView/NoteView.tsx b/packages/web/src/javascripts/Components/NoteView/NoteView.tsx index b5d594efa..8d86dceb3 100644 --- a/packages/web/src/javascripts/Components/NoteView/NoteView.tsx +++ b/packages/web/src/javascripts/Components/NoteView/NoteView.tsx @@ -27,7 +27,7 @@ import { } from '@standardnotes/snjs' import { confirmDialog, DELETE_NOTE_KEYBOARD_COMMAND, KeyboardKey } from '@standardnotes/ui-services' import { ChangeEventHandler, createRef, KeyboardEventHandler, RefObject } from 'react' -import { SuperEditor } from './SuperEditor/SuperEditor' +import { SuperEditor } from '../SuperEditor/SuperEditor' import IndicatorCircle from '../IndicatorCircle/IndicatorCircle' import LinkedItemBubblesContainer from '../LinkedItems/LinkedItemBubblesContainer' import LinkedItemsButton from '../LinkedItems/LinkedItemsButton' @@ -41,7 +41,7 @@ import { transactionForAssociateComponentWithCurrentNote, transactionForDisassociateComponentWithCurrentNote, } from './TransactionFunctions' -import { SuperEditorContentId } from '@standardnotes/blocks-editor' +import { SuperEditorContentId } from '../SuperEditor/Constants' import { NoteViewController } from './Controller/NoteViewController' import { PlainEditor, PlainEditorInterface } from './PlainEditor/PlainEditor' diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperEditorNodes.ts b/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperEditorNodes.ts deleted file mode 100644 index 03941724e..000000000 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperEditorNodes.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { FileNode } from './Plugins/EncryptedFilePlugin/Nodes/FileNode' -import { BubbleNode } from './Plugins/ItemBubblePlugin/Nodes/BubbleNode' - -export const SuperEditorNodes = [FileNode, BubbleNode] diff --git a/packages/web/src/javascripts/Components/RevisionHistoryModal/SelectedRevisionContent.tsx b/packages/web/src/javascripts/Components/RevisionHistoryModal/SelectedRevisionContent.tsx index 023d5d185..ded55e22b 100644 --- a/packages/web/src/javascripts/Components/RevisionHistoryModal/SelectedRevisionContent.tsx +++ b/packages/web/src/javascripts/Components/RevisionHistoryModal/SelectedRevisionContent.tsx @@ -6,9 +6,8 @@ import ComponentView from '@/Components/ComponentView/ComponentView' import { NotesController } from '@/Controllers/NotesController/NotesController' import { NoteHistoryController } from '@/Controllers/NoteHistory/NoteHistoryController' import { ErrorBoundary } from '@/Utils/ErrorBoundary' -import { BlocksEditorComposer, BlocksEditor } from '@standardnotes/blocks-editor' -import { FileNode } from '../NoteView/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileNode' -import { BubbleNode } from '../NoteView/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleNode' +import { BlocksEditor } from '../SuperEditor/BlocksEditor' +import { BlocksEditorComposer } from '../SuperEditor/BlocksEditorComposer' const ABSOLUTE_CENTER_CLASSNAME = 'absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2' @@ -64,15 +63,11 @@ const SelectedRevisionContent: FunctionComponent = ) : note?.noteType === NoteType.Super ? ( -

- +
+ diff --git a/packages/blocks-editor/src/Editor/BlocksEditor.tsx b/packages/web/src/javascripts/Components/SuperEditor/BlocksEditor.tsx similarity index 82% rename from packages/blocks-editor/src/Editor/BlocksEditor.tsx rename to packages/web/src/javascripts/Components/SuperEditor/BlocksEditor.tsx index 783de5f47..f284a2778 100644 --- a/packages/blocks-editor/src/Editor/BlocksEditor.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/BlocksEditor.tsx @@ -12,16 +12,16 @@ import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin' import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin' import { ListPlugin } from '@lexical/react/LexicalListPlugin' import { EditorState, LexicalEditor } from 'lexical' -import HorizontalRulePlugin from '../Lexical/Plugins/HorizontalRulePlugin' -import TwitterPlugin from '../Lexical/Plugins/TwitterPlugin' -import YouTubePlugin from '../Lexical/Plugins/YouTubePlugin' -import AutoEmbedPlugin from '../Lexical/Plugins/AutoEmbedPlugin' -import CollapsiblePlugin from '../Lexical/Plugins/CollapsiblePlugin' -import DraggableBlockPlugin from '../Lexical/Plugins/DraggableBlockPlugin' -import CodeHighlightPlugin from '../Lexical/Plugins/CodeHighlightPlugin' -import FloatingTextFormatToolbarPlugin from '../Lexical/Plugins/FloatingTextFormatToolbarPlugin' -import FloatingLinkEditorPlugin from '../Lexical/Plugins/FloatingLinkEditorPlugin' -import { TabIndentationPlugin } from '../Lexical/Plugins/TabIndentationPlugin' +import HorizontalRulePlugin from './Plugins/HorizontalRulePlugin' +import TwitterPlugin from './Plugins/TwitterPlugin' +import YouTubePlugin from './Plugins/YouTubePlugin' +import AutoEmbedPlugin from './Plugins/AutoEmbedPlugin' +import CollapsiblePlugin from './Plugins/CollapsiblePlugin' +import DraggableBlockPlugin from './Plugins/DraggableBlockPlugin' +import CodeHighlightPlugin from './Plugins/CodeHighlightPlugin' +import FloatingTextFormatToolbarPlugin from './Plugins/FloatingTextFormatToolbarPlugin' +import FloatingLinkEditorPlugin from './Plugins/FloatingLinkEditorPlugin' +import { TabIndentationPlugin } from './Plugins/TabIndentationPlugin' import { handleEditorChange } from './Utils' import { SuperEditorContentId } from './Constants' import { classNames } from '@standardnotes/utils' @@ -106,7 +106,7 @@ export const BlocksEditor: FunctionComponent = ({ {!readonly && floatingAnchorElem && ( <> - + )} diff --git a/packages/blocks-editor/src/Editor/BlocksEditorComposer.tsx b/packages/web/src/javascripts/Components/SuperEditor/BlocksEditorComposer.tsx similarity index 88% rename from packages/blocks-editor/src/Editor/BlocksEditorComposer.tsx rename to packages/web/src/javascripts/Components/SuperEditor/BlocksEditorComposer.tsx index 22b75426a..ed0cec74a 100644 --- a/packages/blocks-editor/src/Editor/BlocksEditorComposer.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/BlocksEditorComposer.tsx @@ -1,7 +1,7 @@ import { FunctionComponent } from 'react' import { LexicalComposer } from '@lexical/react/LexicalComposer' -import BlocksEditorTheme from '../Lexical/Theme/Theme' -import { BlockEditorNodes } from '../Lexical/Nodes/AllNodes' +import BlocksEditorTheme from './Lexical/Theme/Theme' +import { BlockEditorNodes } from './Lexical/Nodes/AllNodes' import { Klass, LexicalNode } from 'lexical' type BlocksEditorComposerProps = { diff --git a/packages/blocks-editor/src/Editor/Constants.ts b/packages/web/src/javascripts/Components/SuperEditor/Constants.ts similarity index 100% rename from packages/blocks-editor/src/Editor/Constants.ts rename to packages/web/src/javascripts/Components/SuperEditor/Constants.ts diff --git a/packages/blocks-editor/src/Lexical/Hooks/useModal.tsx b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Hooks/useModal.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/Hooks/useModal.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Hooks/useModal.tsx diff --git a/packages/blocks-editor/src/Lexical/Icons/chevron-down.svg b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Icons/chevron-down.svg similarity index 100% rename from packages/blocks-editor/src/Lexical/Icons/chevron-down.svg rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Icons/chevron-down.svg diff --git a/packages/blocks-editor/src/Lexical/Icons/draggable-block-menu.svg b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Icons/draggable-block-menu.svg similarity index 100% rename from packages/blocks-editor/src/Lexical/Icons/draggable-block-menu.svg rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Icons/draggable-block-menu.svg diff --git a/packages/blocks-editor/src/Lexical/Icons/pencil-fill.svg b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Icons/pencil-fill.svg similarity index 100% rename from packages/blocks-editor/src/Lexical/Icons/pencil-fill.svg rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Icons/pencil-fill.svg diff --git a/packages/blocks-editor/src/Lexical/Icons/plus.svg b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Icons/plus.svg similarity index 100% rename from packages/blocks-editor/src/Lexical/Icons/plus.svg rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Icons/plus.svg diff --git a/packages/blocks-editor/src/Lexical/Nodes/AllNodes.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/AllNodes.ts similarity index 67% rename from packages/blocks-editor/src/Lexical/Nodes/AllNodes.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/AllNodes.ts index 5db562882..0724e4dfa 100644 --- a/packages/blocks-editor/src/Lexical/Nodes/AllNodes.ts +++ b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/AllNodes.ts @@ -9,9 +9,11 @@ import { HeadingNode, QuoteNode } from '@lexical/rich-text' import { TableCellNode, TableNode, TableRowNode } from '@lexical/table' import { TweetNode } from './TweetNode' import { YouTubeNode } from './YouTubeNode' -import { CollapsibleContainerNode } from '../Plugins/CollapsiblePlugin/CollapsibleContainerNode' -import { CollapsibleContentNode } from '../Plugins/CollapsiblePlugin/CollapsibleContentNode' -import { CollapsibleTitleNode } from '../Plugins/CollapsiblePlugin/CollapsibleTitleNode' +import { CollapsibleContainerNode } from '../../Plugins/CollapsiblePlugin/CollapsibleContainerNode' +import { CollapsibleContentNode } from '../../Plugins/CollapsiblePlugin/CollapsibleContentNode' +import { CollapsibleTitleNode } from '../../Plugins/CollapsiblePlugin/CollapsibleTitleNode' +import { FileNode } from '../../Plugins/EncryptedFilePlugin/Nodes/FileNode' +import { BubbleNode } from '../../Plugins/ItemBubblePlugin/Nodes/BubbleNode' export const BlockEditorNodes = [ AutoLinkNode, @@ -34,4 +36,6 @@ export const BlockEditorNodes = [ TableRowNode, TweetNode, YouTubeNode, + FileNode, + BubbleNode, ] diff --git a/packages/blocks-editor/src/Lexical/Nodes/TableComponent.tsx b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/TableComponent.tsx similarity index 99% rename from packages/blocks-editor/src/Lexical/Nodes/TableComponent.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/TableComponent.tsx index f8c8bf693..1c2901a6c 100644 --- a/packages/blocks-editor/src/Lexical/Nodes/TableComponent.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/TableComponent.tsx @@ -50,8 +50,7 @@ import { import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react' import { createPortal } from 'react-dom' import { IS_APPLE } from '../Shared/environment' - -import { CellContext } from '../Plugins/TablePlugin' +import { CellContext } from '../../Plugins/TablePlugin' import { $isTableNode, Cell, diff --git a/packages/blocks-editor/src/Lexical/Nodes/TableNode.tsx b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/TableNode.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/Nodes/TableNode.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/TableNode.tsx diff --git a/packages/blocks-editor/src/Lexical/Nodes/TweetNode.tsx b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/TweetNode.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/Nodes/TweetNode.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/TweetNode.tsx diff --git a/packages/blocks-editor/src/Lexical/Nodes/YouTubeNode.tsx b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/YouTubeNode.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/Nodes/YouTubeNode.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Nodes/YouTubeNode.tsx diff --git a/packages/blocks-editor/src/Lexical/Shared/canUseDOM.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Shared/canUseDOM.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Shared/canUseDOM.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Shared/canUseDOM.ts diff --git a/packages/blocks-editor/src/Lexical/Shared/environment.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Shared/environment.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Shared/environment.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Shared/environment.ts diff --git a/packages/blocks-editor/src/Lexical/Shared/invariant.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Shared/invariant.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Shared/invariant.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Shared/invariant.ts diff --git a/packages/blocks-editor/src/Lexical/Theme/IconComponent.tsx b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/IconComponent.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/Theme/IconComponent.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/IconComponent.tsx diff --git a/packages/blocks-editor/src/Lexical/Theme/Theme.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/Theme.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Theme/Theme.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/Theme.ts diff --git a/packages/blocks-editor/src/Lexical/Theme/base.scss b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/base.scss similarity index 100% rename from packages/blocks-editor/src/Lexical/Theme/base.scss rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/base.scss diff --git a/packages/blocks-editor/src/Lexical/Theme/custom.scss b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/custom.scss similarity index 68% rename from packages/blocks-editor/src/Lexical/Theme/custom.scss rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/custom.scss index 4520cf017..1757cc167 100644 --- a/packages/blocks-editor/src/Lexical/Theme/custom.scss +++ b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/custom.scss @@ -1,4 +1,4 @@ -@import '../Plugins//DraggableBlockPlugin/index.scss'; +@import '../../Plugins/DraggableBlockPlugin/index.scss'; #typeahead-menu { z-index: 10000; diff --git a/packages/blocks-editor/src/Lexical/Theme/editor.scss b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/editor.scss similarity index 100% rename from packages/blocks-editor/src/Lexical/Theme/editor.scss rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/editor.scss diff --git a/packages/blocks-editor/src/Lexical/Theme/icons.scss b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/icons.scss similarity index 100% rename from packages/blocks-editor/src/Lexical/Theme/icons.scss rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/icons.scss diff --git a/packages/blocks-editor/src/Lexical/Theme/lexical.scss b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/lexical.scss similarity index 100% rename from packages/blocks-editor/src/Lexical/Theme/lexical.scss rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/lexical.scss diff --git a/packages/blocks-editor/src/Lexical/Theme/links.scss b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/links.scss similarity index 100% rename from packages/blocks-editor/src/Lexical/Theme/links.scss rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Theme/links.scss diff --git a/packages/blocks-editor/src/Lexical/UI/Button.css b/packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Button.css similarity index 100% rename from packages/blocks-editor/src/Lexical/UI/Button.css rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Button.css diff --git a/packages/blocks-editor/src/Lexical/UI/Button.tsx b/packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Button.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/UI/Button.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Button.tsx diff --git a/packages/blocks-editor/src/Lexical/UI/Dialog.css b/packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Dialog.css similarity index 100% rename from packages/blocks-editor/src/Lexical/UI/Dialog.css rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Dialog.css diff --git a/packages/blocks-editor/src/Lexical/UI/Dialog.tsx b/packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Dialog.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/UI/Dialog.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Dialog.tsx diff --git a/packages/blocks-editor/src/Lexical/UI/Input.css b/packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Input.css similarity index 100% rename from packages/blocks-editor/src/Lexical/UI/Input.css rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Input.css diff --git a/packages/blocks-editor/src/Lexical/UI/LinkPreview.css b/packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/LinkPreview.css similarity index 100% rename from packages/blocks-editor/src/Lexical/UI/LinkPreview.css rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/LinkPreview.css diff --git a/packages/blocks-editor/src/Lexical/UI/LinkPreview.tsx b/packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/LinkPreview.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/UI/LinkPreview.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/LinkPreview.tsx diff --git a/packages/blocks-editor/src/Lexical/UI/Modal.css b/packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Modal.css similarity index 100% rename from packages/blocks-editor/src/Lexical/UI/Modal.css rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Modal.css diff --git a/packages/blocks-editor/src/Lexical/UI/Modal.tsx b/packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Modal.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/UI/Modal.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/Modal.tsx diff --git a/packages/blocks-editor/src/Lexical/UI/TextInput.tsx b/packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/TextInput.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/UI/TextInput.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/UI/TextInput.tsx diff --git a/packages/blocks-editor/src/Lexical/Utils/getDOMRangeRect.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/getDOMRangeRect.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Utils/getDOMRangeRect.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/getDOMRangeRect.ts diff --git a/packages/blocks-editor/src/Lexical/Utils/getSelectedNode.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/getSelectedNode.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Utils/getSelectedNode.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/getSelectedNode.ts diff --git a/packages/blocks-editor/src/Lexical/Utils/guard.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/guard.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Utils/guard.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/guard.ts diff --git a/packages/blocks-editor/src/Lexical/Utils/join-classes.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/join-classes.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Utils/join-classes.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/join-classes.ts diff --git a/packages/blocks-editor/src/Lexical/Utils/point.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/point.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Utils/point.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/point.ts diff --git a/packages/blocks-editor/src/Lexical/Utils/rect.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/rect.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Utils/rect.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/rect.ts diff --git a/packages/blocks-editor/src/Lexical/Utils/sanitizeUrl.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/sanitizeUrl.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Utils/sanitizeUrl.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/sanitizeUrl.ts diff --git a/packages/blocks-editor/src/Lexical/Utils/setFloatingElemPosition.ts b/packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/setFloatingElemPosition.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Utils/setFloatingElemPosition.ts rename to packages/web/src/javascripts/Components/SuperEditor/Lexical/Utils/setFloatingElemPosition.ts diff --git a/packages/blocks-editor/src/Editor/MarkdownTransformers.ts b/packages/web/src/javascripts/Components/SuperEditor/MarkdownTransformers.ts similarity index 100% rename from packages/blocks-editor/src/Editor/MarkdownTransformers.ts rename to packages/web/src/javascripts/Components/SuperEditor/MarkdownTransformers.ts diff --git a/packages/blocks-editor/src/Lexical/Plugins/AutoEmbedPlugin/index.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/AutoEmbedPlugin/index.tsx similarity index 97% rename from packages/blocks-editor/src/Lexical/Plugins/AutoEmbedPlugin/index.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/AutoEmbedPlugin/index.tsx index 02dacc808..c81c0447e 100644 --- a/packages/blocks-editor/src/Lexical/Plugins/AutoEmbedPlugin/index.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/AutoEmbedPlugin/index.tsx @@ -19,9 +19,9 @@ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext import { useState } from 'react' import * as ReactDOM from 'react-dom' -import useModal from '../../Hooks/useModal' -import Button from '../../UI/Button' -import { DialogActions } from '../../UI/Dialog' +import useModal from '../../Lexical/Hooks/useModal' +import Button from '../../Lexical/UI/Button' +import { DialogActions } from '../../Lexical/UI/Dialog' import { INSERT_TWEET_COMMAND } from '../TwitterPlugin' import { INSERT_YOUTUBE_COMMAND } from '../YouTubePlugin' diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/AutoLinkPlugin/AutoLinkPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/AutoLinkPlugin/AutoLinkPlugin.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/AutoLinkPlugin/AutoLinkPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/AutoLinkPlugin/AutoLinkPlugin.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerMenuItem.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerMenuItem.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerMenuItem.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerMenuItem.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerOption.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerOption.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerOption.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerOption.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerPlugin.tsx similarity index 96% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerPlugin.tsx index af102fcc7..c473f6b01 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerPlugin.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/BlockPickerPlugin.tsx @@ -2,8 +2,8 @@ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext import { LexicalTypeaheadMenuPlugin, useBasicTypeaheadTriggerMatch } from '@lexical/react/LexicalTypeaheadMenuPlugin' import { TextNode } from 'lexical' import { useCallback, useMemo, useState } from 'react' -import useModal from '@standardnotes/blocks-editor/src/Lexical/Hooks/useModal' -import { InsertTableDialog } from '@standardnotes/blocks-editor/src/Lexical/Plugins/TablePlugin' +import useModal from '../../Lexical/Hooks/useModal' +import { InsertTableDialog } from '../../Plugins/TablePlugin' import { BlockPickerOption } from './BlockPickerOption' import { BlockPickerMenuItem } from './BlockPickerMenuItem' import { GetNumberedListBlockOption } from './Options/NumberedList' diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Alignment.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Alignment.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Alignment.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Alignment.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/BulletedList.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/BulletedList.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/BulletedList.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/BulletedList.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Checklist.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Checklist.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Checklist.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Checklist.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Code.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Code.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Code.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Code.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Collapsible.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Collapsible.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Collapsible.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Collapsible.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/DateTime.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/DateTime.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/DateTime.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/DateTime.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Divider.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Divider.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Divider.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Divider.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Embeds.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Embeds.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Embeds.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Embeds.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Headings.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Headings.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Headings.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Headings.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/IndentOutdent.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/IndentOutdent.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/IndentOutdent.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/IndentOutdent.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/NumberedList.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/NumberedList.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/NumberedList.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/NumberedList.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Paragraph.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Paragraph.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Paragraph.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Paragraph.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Password.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Password.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Password.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Password.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Quote.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Quote.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Quote.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Quote.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Table.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Table.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/BlockPickerPlugin/Options/Table.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/BlockPickerPlugin/Options/Table.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Alignment.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Alignment.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Alignment.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Alignment.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/BulletedList.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/BulletedList.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/BulletedList.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/BulletedList.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Checklist.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Checklist.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Checklist.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Checklist.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Code.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Code.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Code.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Code.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Collapsible.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Collapsible.tsx similarity index 78% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Collapsible.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Collapsible.tsx index 8a65e3880..54170854d 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Collapsible.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Collapsible.tsx @@ -1,5 +1,5 @@ import { LexicalEditor } from 'lexical' -import { INSERT_COLLAPSIBLE_COMMAND } from '@standardnotes/blocks-editor/src/Lexical/Plugins/CollapsiblePlugin' +import { INSERT_COLLAPSIBLE_COMMAND } from '../../Plugins/CollapsiblePlugin' import { LexicalIconName } from '@/Components/Icon/LexicalIcons' export function GetCollapsibleBlock(editor: LexicalEditor) { diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/DateTime.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/DateTime.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/DateTime.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/DateTime.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Divider.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Divider.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Divider.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Divider.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Embeds.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Embeds.tsx similarity index 84% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Embeds.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Embeds.tsx index fff1d076b..308042ba0 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Embeds.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Embeds.tsx @@ -1,6 +1,6 @@ import { LexicalEditor } from 'lexical' import { INSERT_EMBED_COMMAND } from '@lexical/react/LexicalAutoEmbedPlugin' -import { EmbedConfigs } from '@standardnotes/blocks-editor/src/Lexical/Plugins/AutoEmbedPlugin' +import { EmbedConfigs } from '../AutoEmbedPlugin' import { LexicalIconName } from '@/Components/Icon/LexicalIcons' export function GetEmbedsBlocks(editor: LexicalEditor) { diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Headings.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Headings.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Headings.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Headings.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/IndentOutdent.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/IndentOutdent.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/IndentOutdent.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/IndentOutdent.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/NumberedList.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/NumberedList.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/NumberedList.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/NumberedList.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Paragraph.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Paragraph.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Paragraph.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Paragraph.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Password.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Password.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Password.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Password.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Quote.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Quote.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Quote.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Quote.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Table.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Table.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Blocks/Table.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Blocks/Table.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ChangeContentCallback/ChangeContentCallback.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ChangeContentCallback/ChangeContentCallback.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ChangeContentCallback/ChangeContentCallback.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ChangeContentCallback/ChangeContentCallback.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ClassNames.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ClassNames.ts similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ClassNames.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ClassNames.ts diff --git a/packages/blocks-editor/src/Lexical/Plugins/CodeHighlightPlugin/index.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/CodeHighlightPlugin/index.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Plugins/CodeHighlightPlugin/index.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/CodeHighlightPlugin/index.ts diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/CodeOptionsPlugin/CodeOptions.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/CodeOptionsPlugin/CodeOptions.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/CodeOptionsPlugin/CodeOptions.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/CodeOptionsPlugin/CodeOptions.tsx diff --git a/packages/blocks-editor/src/Lexical/Plugins/CollapsiblePlugin/Collapsible.css b/packages/web/src/javascripts/Components/SuperEditor/Plugins/CollapsiblePlugin/Collapsible.css similarity index 100% rename from packages/blocks-editor/src/Lexical/Plugins/CollapsiblePlugin/Collapsible.css rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/CollapsiblePlugin/Collapsible.css diff --git a/packages/blocks-editor/src/Lexical/Plugins/CollapsiblePlugin/CollapsibleContainerNode.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/CollapsiblePlugin/CollapsibleContainerNode.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Plugins/CollapsiblePlugin/CollapsibleContainerNode.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/CollapsiblePlugin/CollapsibleContainerNode.ts diff --git a/packages/blocks-editor/src/Lexical/Plugins/CollapsiblePlugin/CollapsibleContentNode.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/CollapsiblePlugin/CollapsibleContentNode.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Plugins/CollapsiblePlugin/CollapsibleContentNode.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/CollapsiblePlugin/CollapsibleContentNode.ts diff --git a/packages/blocks-editor/src/Lexical/Plugins/CollapsiblePlugin/CollapsibleTitleNode.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/CollapsiblePlugin/CollapsibleTitleNode.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Plugins/CollapsiblePlugin/CollapsibleTitleNode.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/CollapsiblePlugin/CollapsibleTitleNode.ts diff --git a/packages/blocks-editor/src/Lexical/Plugins/CollapsiblePlugin/index.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/CollapsiblePlugin/index.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Plugins/CollapsiblePlugin/index.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/CollapsiblePlugin/index.ts diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Commands.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/Commands.ts similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/Commands.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/Commands.ts diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/DateTimePlugin/DateTimePlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/DateTimePlugin/DateTimePlugin.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/DateTimePlugin/DateTimePlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/DateTimePlugin/DateTimePlugin.tsx diff --git a/packages/blocks-editor/src/Lexical/Plugins/DraggableBlockPlugin/index.scss b/packages/web/src/javascripts/Components/SuperEditor/Plugins/DraggableBlockPlugin/index.scss similarity index 100% rename from packages/blocks-editor/src/Lexical/Plugins/DraggableBlockPlugin/index.scss rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/DraggableBlockPlugin/index.scss diff --git a/packages/blocks-editor/src/Lexical/Plugins/DraggableBlockPlugin/index.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/DraggableBlockPlugin/index.tsx similarity index 98% rename from packages/blocks-editor/src/Lexical/Plugins/DraggableBlockPlugin/index.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/DraggableBlockPlugin/index.tsx index 9db71084b..473d9dfd0 100644 --- a/packages/blocks-editor/src/Lexical/Plugins/DraggableBlockPlugin/index.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/DraggableBlockPlugin/index.tsx @@ -24,9 +24,9 @@ import { DragEvent as ReactDragEvent, TouchEvent, useCallback, useEffect, useRef import { createPortal } from 'react-dom' import { BlockIcon } from '@standardnotes/icons' -import { isHTMLElement } from '../../Utils/guard' -import { Point } from '../../Utils/point' -import { ContainsPointReturn, Rect } from '../../Utils/rect' +import { isHTMLElement } from '../../Lexical/Utils/guard' +import { Point } from '../../Lexical/Utils/point' +import { ContainsPointReturn, Rect } from '../../Lexical/Utils/rect' const DRAGGABLE_BLOCK_MENU_LEFT_SPACE = -2 const TARGET_LINE_HALF_HEIGHT = 2 diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/EncryptedFilePlugin/FilePlugin.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/FilePlugin.ts similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/EncryptedFilePlugin/FilePlugin.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/FilePlugin.ts diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileComponent.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileComponent.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileComponent.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileComponent.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileNode.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileNode.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileNode.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileNode.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileUtils.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileUtils.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileUtils.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/FileUtils.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/SerializedFileNode.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/SerializedFileNode.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/SerializedFileNode.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/Nodes/SerializedFileNode.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ExportPlugin/ExportPlugin.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ExportPlugin/ExportPlugin.ts similarity index 98% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ExportPlugin/ExportPlugin.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ExportPlugin/ExportPlugin.ts index 5dccde5d1..485278955 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ExportPlugin/ExportPlugin.ts +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ExportPlugin/ExportPlugin.ts @@ -11,7 +11,7 @@ import { } from '@standardnotes/ui-services' import { useCallback, useEffect } from 'react' import { $convertToMarkdownString } from '@lexical/markdown' -import { MarkdownTransformers } from '@standardnotes/blocks-editor' +import { MarkdownTransformers } from '../../MarkdownTransformers' import { $generateHtmlFromNodes } from '@lexical/html' import { useCommandService } from '@/Components/CommandProvider' diff --git a/packages/blocks-editor/src/Lexical/Plugins/FloatingLinkEditorPlugin/index.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/FloatingLinkEditorPlugin/index.tsx similarity index 90% rename from packages/blocks-editor/src/Lexical/Plugins/FloatingLinkEditorPlugin/index.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/FloatingLinkEditorPlugin/index.tsx index 882422667..ffbb2db49 100644 --- a/packages/blocks-editor/src/Lexical/Plugins/FloatingLinkEditorPlugin/index.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/FloatingLinkEditorPlugin/index.tsx @@ -22,12 +22,13 @@ import { import { useCallback, useEffect, useRef, useState } from 'react' import { createPortal } from 'react-dom' -import LinkPreview from '../../UI/LinkPreview' -import { getSelectedNode } from '../../Utils/getSelectedNode' -import { sanitizeUrl } from '../../Utils/sanitizeUrl' -import { setFloatingElemPosition } from '../../Utils/setFloatingElemPosition' +import LinkPreview from '../../Lexical/UI/LinkPreview' +import { getSelectedNode } from '../../Lexical/Utils/getSelectedNode' +import { sanitizeUrl } from '../../Lexical/Utils/sanitizeUrl' +import { setFloatingElemPosition } from '../../Lexical/Utils/setFloatingElemPosition' import { LexicalPencilFill } from '@standardnotes/icons' -import { IconComponent } from '../../../Lexical/Theme/IconComponent' +import { IconComponent } from '../../Lexical/../Lexical/Theme/IconComponent' +import { getDOMRangeRect } from '../../Lexical/Utils/getDOMRangeRect' function FloatingLinkEditor({ editor, anchorElem }: { editor: LexicalEditor; anchorElem: HTMLElement }): JSX.Element { const editorRef = useRef(null) @@ -65,17 +66,7 @@ function FloatingLinkEditor({ editor, anchorElem }: { editor: LexicalEditor; anc rootElement !== null && rootElement.contains(nativeSelection.anchorNode) ) { - const domRange = nativeSelection.getRangeAt(0) - let rect - if (nativeSelection.anchorNode === rootElement) { - let inner = rootElement - while (inner.firstElementChild != null) { - inner = inner.firstElementChild as HTMLElement - } - rect = inner.getBoundingClientRect() - } else { - rect = domRange.getBoundingClientRect() - } + const rect = getDOMRangeRect(nativeSelection, rootElement) setFloatingElemPosition(rect, editorElem, anchorElem) setLastSelection(selection) diff --git a/packages/blocks-editor/src/Lexical/Plugins/FloatingTextFormatToolbarPlugin/index.css b/packages/web/src/javascripts/Components/SuperEditor/Plugins/FloatingTextFormatToolbarPlugin/index.css similarity index 100% rename from packages/blocks-editor/src/Lexical/Plugins/FloatingTextFormatToolbarPlugin/index.css rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/FloatingTextFormatToolbarPlugin/index.css diff --git a/packages/blocks-editor/src/Lexical/Plugins/FloatingTextFormatToolbarPlugin/index.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/FloatingTextFormatToolbarPlugin/index.tsx similarity index 97% rename from packages/blocks-editor/src/Lexical/Plugins/FloatingTextFormatToolbarPlugin/index.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/FloatingTextFormatToolbarPlugin/index.tsx index 68714eca6..19292e6dc 100644 --- a/packages/blocks-editor/src/Lexical/Plugins/FloatingTextFormatToolbarPlugin/index.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/FloatingTextFormatToolbarPlugin/index.tsx @@ -34,9 +34,9 @@ import { import { useCallback, useEffect, useRef, useState } from 'react' import { createPortal } from 'react-dom' -import { getDOMRangeRect } from '../../Utils/getDOMRangeRect' -import { getSelectedNode } from '../../Utils/getSelectedNode' -import { setFloatingElemPosition } from '../../Utils/setFloatingElemPosition' +import { getDOMRangeRect } from '../../Lexical/Utils/getDOMRangeRect' +import { getSelectedNode } from '../../Lexical/Utils/getSelectedNode' +import { setFloatingElemPosition } from '../../Lexical/Utils/setFloatingElemPosition' import { BoldIcon, ItalicIcon, @@ -49,8 +49,8 @@ import { ListBulleted, ListNumbered, } from '@standardnotes/icons' -import { IconComponent } from '../../Theme/IconComponent' -import { sanitizeUrl } from '../../Utils/sanitizeUrl' +import { IconComponent } from '../../Lexical/Theme/IconComponent' +import { sanitizeUrl } from '../../Lexical/Utils/sanitizeUrl' const blockTypeToBlockName = { bullet: 'Bulleted List', diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/GetMarkdownPlugin/GetMarkdownPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/GetMarkdownPlugin/GetMarkdownPlugin.tsx similarity index 91% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/GetMarkdownPlugin/GetMarkdownPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/GetMarkdownPlugin/GetMarkdownPlugin.tsx index afffe5ee7..151fd98a6 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/GetMarkdownPlugin/GetMarkdownPlugin.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/GetMarkdownPlugin/GetMarkdownPlugin.tsx @@ -1,6 +1,6 @@ import { forwardRef, useCallback, useImperativeHandle } from 'react' import { $convertToMarkdownString } from '@lexical/markdown' -import { MarkdownTransformers } from '@standardnotes/blocks-editor' +import { MarkdownTransformers } from '../../MarkdownTransformers' import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext' export type GetMarkdownPluginInterface = { diff --git a/packages/blocks-editor/src/Lexical/Plugins/HorizontalRulePlugin/index.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/HorizontalRulePlugin/index.ts similarity index 100% rename from packages/blocks-editor/src/Lexical/Plugins/HorizontalRulePlugin/index.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/HorizontalRulePlugin/index.ts diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ImportPlugin/ImportPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ImportPlugin/ImportPlugin.tsx similarity index 95% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ImportPlugin/ImportPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ImportPlugin/ImportPlugin.tsx index c3a2b393c..2cda229ef 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ImportPlugin/ImportPlugin.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ImportPlugin/ImportPlugin.tsx @@ -3,7 +3,7 @@ import { useEffect } from 'react' import { $convertFromMarkdownString, TRANSFORMERS } from '@lexical/markdown' import { $generateNodesFromDOM } from '@lexical/html' import { $createParagraphNode, $createRangeSelection } from 'lexical' -import { handleEditorChange } from '@standardnotes/blocks-editor/src/Editor/Utils' +import { handleEditorChange } from '../../Utils' import { SuperNotePreviewCharLimit } from '../../SuperEditor' /** Note that markdown conversion does not insert new lines. See: https://github.com/facebook/lexical/issues/2815 */ diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemBubblePlugin/ItemBubblePlugin.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemBubblePlugin/ItemBubblePlugin.ts similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemBubblePlugin/ItemBubblePlugin.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemBubblePlugin/ItemBubblePlugin.ts diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleComponent.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleComponent.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleComponent.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleComponent.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleNode.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleNode.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleNode.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleNode.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleUtils.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleUtils.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleUtils.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemBubblePlugin/Nodes/BubbleUtils.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemBubblePlugin/Nodes/SerializedBubbleNode.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemBubblePlugin/Nodes/SerializedBubbleNode.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemBubblePlugin/Nodes/SerializedBubbleNode.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemBubblePlugin/Nodes/SerializedBubbleNode.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemNodeInterface.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemNodeInterface.ts similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemNodeInterface.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemNodeInterface.ts diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemSelectionPlugin/ItemOption.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemSelectionPlugin/ItemOption.ts similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemSelectionPlugin/ItemOption.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemSelectionPlugin/ItemOption.ts diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionItemComponent.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionItemComponent.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionItemComponent.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionItemComponent.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionPlugin.tsx similarity index 97% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionPlugin.tsx index 0acf02cac..32501dc09 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionPlugin.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemSelectionPlugin/ItemSelectionPlugin.tsx @@ -9,7 +9,7 @@ import { ContentType, SNNote } from '@standardnotes/snjs' import { getLinkingSearchResults } from '@/Utils/Items/Search/getSearchResults' import Popover from '@/Components/Popover/Popover' import { INSERT_BUBBLE_COMMAND, INSERT_FILE_COMMAND } from '../Commands' -import { useLinkingController } from '../../../../../Controllers/LinkingControllerProvider' +import { useLinkingController } from '../../../../Controllers/LinkingControllerProvider' import { PopoverClassNames } from '../ClassNames' import { isMobileScreen } from '@/Utils' import { useTypeaheadAllowingSpacesAndPunctuation } from './useTypeaheadAllowingSpacesAndPunctuation' diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemSelectionPlugin/useTypeaheadAllowingSpacesAndPunctuation.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemSelectionPlugin/useTypeaheadAllowingSpacesAndPunctuation.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ItemSelectionPlugin/useTypeaheadAllowingSpacesAndPunctuation.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ItemSelectionPlugin/useTypeaheadAllowingSpacesAndPunctuation.tsx diff --git a/packages/blocks-editor/src/Lexical/Plugins/ListMaxIndentLevelPlugin/index.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ListMaxIndentLevelPlugin/index.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/Plugins/ListMaxIndentLevelPlugin/index.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ListMaxIndentLevelPlugin/index.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/MarkdownPreviewPlugin/MarkdownPreviewPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/MarkdownPreviewPlugin/MarkdownPreviewPlugin.tsx similarity index 92% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/MarkdownPreviewPlugin/MarkdownPreviewPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/MarkdownPreviewPlugin/MarkdownPreviewPlugin.tsx index c18a092c7..f96c90487 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/MarkdownPreviewPlugin/MarkdownPreviewPlugin.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/MarkdownPreviewPlugin/MarkdownPreviewPlugin.tsx @@ -3,7 +3,7 @@ import { useEffect } from 'react' import { $createCodeNode } from '@lexical/code' import { $createTextNode, $getRoot } from 'lexical' import { $convertToMarkdownString } from '@lexical/markdown' -import { MarkdownTransformers } from '@standardnotes/blocks-editor' +import { MarkdownTransformers } from '../../MarkdownTransformers' type Props = { onMarkdown: (markdown: string) => void diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/MobileToolbarPlugin/MobileToolbarPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/MobileToolbarPlugin/MobileToolbarPlugin.tsx similarity index 95% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/MobileToolbarPlugin/MobileToolbarPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/MobileToolbarPlugin/MobileToolbarPlugin.tsx index 7899932de..e13ad9d99 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/MobileToolbarPlugin/MobileToolbarPlugin.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/MobileToolbarPlugin/MobileToolbarPlugin.tsx @@ -1,9 +1,9 @@ import Icon from '@/Components/Icon/Icon' import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext' -import useModal from '@standardnotes/blocks-editor/src/Lexical/Hooks/useModal' -import { InsertTableDialog } from '@standardnotes/blocks-editor/src/Lexical/Plugins/TablePlugin' -import { getSelectedNode } from '@standardnotes/blocks-editor/src/Lexical/Utils/getSelectedNode' -import { sanitizeUrl } from '@standardnotes/blocks-editor/src/Lexical/Utils/sanitizeUrl' +import useModal from '../../Lexical/Hooks/useModal' +import { InsertTableDialog } from '../../Plugins/TablePlugin' +import { getSelectedNode } from '../../Lexical/Utils/getSelectedNode' +import { sanitizeUrl } from '../../Lexical/Utils/sanitizeUrl' import { $getSelection, $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical' import { $isLinkNode, TOGGLE_LINK_COMMAND } from '@lexical/link' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/NodeObserverPlugin/NodeObserverPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/NodeObserverPlugin/NodeObserverPlugin.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/NodeObserverPlugin/NodeObserverPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/NodeObserverPlugin/NodeObserverPlugin.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/PasswordPlugin/Generator.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/PasswordPlugin/Generator.ts similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/PasswordPlugin/Generator.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/PasswordPlugin/Generator.ts diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/PasswordPlugin/PasswordPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/PasswordPlugin/PasswordPlugin.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/PasswordPlugin/PasswordPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/PasswordPlugin/PasswordPlugin.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ReadonlyPlugin/ReadonlyPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ReadonlyPlugin/ReadonlyPlugin.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ReadonlyPlugin/ReadonlyPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/ReadonlyPlugin/ReadonlyPlugin.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/Context.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/Context.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/Context.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/Context.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/SearchDialog.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/SearchDialog.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/SearchDialog.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/SearchDialog.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/SearchPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/SearchPlugin.tsx similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/SearchPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/SearchPlugin.tsx diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/Types.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/Types.ts similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/Types.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/Types.ts diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/createSearchHighlightElement.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/createSearchHighlightElement.ts similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/createSearchHighlightElement.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/createSearchHighlightElement.ts diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/getAllTextNodesInElement.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/getAllTextNodesInElement.ts similarity index 100% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/SearchPlugin/getAllTextNodesInElement.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/SearchPlugin/getAllTextNodesInElement.ts diff --git a/packages/blocks-editor/src/Lexical/Plugins/TabIndentationPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/TabIndentationPlugin.tsx similarity index 100% rename from packages/blocks-editor/src/Lexical/Plugins/TabIndentationPlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/TabIndentationPlugin.tsx diff --git a/packages/blocks-editor/src/Lexical/Plugins/TablePlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/TablePlugin.tsx similarity index 95% rename from packages/blocks-editor/src/Lexical/Plugins/TablePlugin.tsx rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/TablePlugin.tsx index 179e6d568..c22dde2ce 100644 --- a/packages/blocks-editor/src/Lexical/Plugins/TablePlugin.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/TablePlugin.tsx @@ -25,12 +25,11 @@ import { } from 'lexical' import { createContext, useContext, useEffect, useMemo, useState } from 'react' import * as React from 'react' -import invariant from '../Shared/invariant' - -import { $createTableNodeWithDimensions, TableNode } from '../Nodes/TableNode' -import Button from '../UI/Button' -import { DialogActions } from '../UI/Dialog' -import TextInput from '../UI/TextInput' +import invariant from '../Lexical/Shared/invariant' +import { $createTableNodeWithDimensions, TableNode } from '../Lexical/Nodes/TableNode' +import Button from '../Lexical/UI/Button' +import { DialogActions } from '../Lexical/UI/Dialog' +import TextInput from '../Lexical/UI/TextInput' export type InsertTableCommandPayload = Readonly<{ columns: string diff --git a/packages/blocks-editor/src/Lexical/Plugins/TwitterPlugin/index.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/TwitterPlugin/index.ts similarity index 93% rename from packages/blocks-editor/src/Lexical/Plugins/TwitterPlugin/index.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/TwitterPlugin/index.ts index 40eb59af9..275c5ff46 100644 --- a/packages/blocks-editor/src/Lexical/Plugins/TwitterPlugin/index.ts +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/TwitterPlugin/index.ts @@ -11,7 +11,7 @@ import { $insertNodeToNearestRoot } from '@lexical/utils' import { COMMAND_PRIORITY_EDITOR, createCommand, LexicalCommand } from 'lexical' import { useEffect } from 'react' -import { $createTweetNode, TweetNode } from '../../Nodes/TweetNode' +import { $createTweetNode, TweetNode } from '../../Lexical/Nodes/TweetNode' export const INSERT_TWEET_COMMAND: LexicalCommand = createCommand('INSERT_TWEET_COMMAND') diff --git a/packages/blocks-editor/src/Lexical/Plugins/YouTubePlugin/index.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/YouTubePlugin/index.ts similarity index 93% rename from packages/blocks-editor/src/Lexical/Plugins/YouTubePlugin/index.ts rename to packages/web/src/javascripts/Components/SuperEditor/Plugins/YouTubePlugin/index.ts index 7c23b34a4..1bec5972d 100644 --- a/packages/blocks-editor/src/Lexical/Plugins/YouTubePlugin/index.ts +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/YouTubePlugin/index.ts @@ -11,7 +11,7 @@ import { $insertNodeToNearestRoot } from '@lexical/utils' import { COMMAND_PRIORITY_EDITOR, createCommand, LexicalCommand } from 'lexical' import { useEffect } from 'react' -import { $createYouTubeNode, YouTubeNode } from '../../Nodes/YouTubeNode' +import { $createYouTubeNode, YouTubeNode } from '../../Lexical/Nodes/YouTubeNode' export const INSERT_YOUTUBE_COMMAND: LexicalCommand = createCommand('INSERT_YOUTUBE_COMMAND') diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperEditor.tsx b/packages/web/src/javascripts/Components/SuperEditor/SuperEditor.tsx similarity index 94% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperEditor.tsx rename to packages/web/src/javascripts/Components/SuperEditor/SuperEditor.tsx index 24b50a2fe..01190bfb3 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperEditor.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/SuperEditor.tsx @@ -8,14 +8,15 @@ import { PrefKey, } from '@standardnotes/snjs' import { FunctionComponent, useCallback, useEffect, useRef, useState } from 'react' -import { BlocksEditor, BlocksEditorComposer } from '@standardnotes/blocks-editor' +import { BlocksEditor } from './BlocksEditor' +import { BlocksEditorComposer } from './BlocksEditorComposer' import { ItemSelectionPlugin } from './Plugins/ItemSelectionPlugin/ItemSelectionPlugin' import { FileNode } from './Plugins/EncryptedFilePlugin/Nodes/FileNode' import FilePlugin from './Plugins/EncryptedFilePlugin/FilePlugin' import BlockPickerMenuPlugin from './Plugins/BlockPickerPlugin/BlockPickerPlugin' import { ErrorBoundary } from '@/Utils/ErrorBoundary' import { LinkingController } from '@/Controllers/LinkingController' -import LinkingControllerProvider from '../../../Controllers/LinkingControllerProvider' +import LinkingControllerProvider from '../../Controllers/LinkingControllerProvider' import { BubbleNode } from './Plugins/ItemBubblePlugin/Nodes/BubbleNode' import ItemBubblePlugin from './Plugins/ItemBubblePlugin/ItemBubblePlugin' import { NodeObserverPlugin } from './Plugins/NodeObserverPlugin/NodeObserverPlugin' @@ -23,7 +24,7 @@ import { FilesController } from '@/Controllers/FilesController' import FilesControllerProvider from '@/Controllers/FilesControllerProvider' import DatetimePlugin from './Plugins/DateTimePlugin/DateTimePlugin' import AutoLinkPlugin from './Plugins/AutoLinkPlugin/AutoLinkPlugin' -import { NoteViewController } from '../Controller/NoteViewController' +import { NoteViewController } from '../NoteView/Controller/NoteViewController' import { ChangeContentCallbackPlugin, ChangeEditorFunction, @@ -42,7 +43,6 @@ import { SuperSearchContextProvider } from './Plugins/SearchPlugin/Context' import { SearchPlugin } from './Plugins/SearchPlugin/SearchPlugin' import ModalOverlay from '@/Components/Modal/ModalOverlay' import MobileToolbarPlugin from './Plugins/MobileToolbarPlugin/MobileToolbarPlugin' -import { SuperEditorNodes } from './SuperEditorNodes' import CodeOptionsPlugin from './Plugins/CodeOptionsPlugin/CodeOptions' export const SuperNotePreviewCharLimit = 160 @@ -170,11 +170,7 @@ export const SuperEditor: FunctionComponent = ({ - + { const headlessEditor = createHeadlessEditor({ @@ -13,7 +12,7 @@ export const exportSuperNote = (note: SNNote, format: 'txt' | 'md' | 'html' | 'j theme: BlocksEditorTheme, editable: false, onError: (error: Error) => console.error(error), - nodes: [...SuperEditorNodes, ...BlockEditorNodes], + nodes: [...BlockEditorNodes], }) headlessEditor.setEditorState(headlessEditor.parseEditorState(note.text)) diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperNoteImporter.tsx b/packages/web/src/javascripts/Components/SuperEditor/SuperNoteImporter.tsx similarity index 95% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperNoteImporter.tsx rename to packages/web/src/javascripts/Components/SuperEditor/SuperNoteImporter.tsx index f0c35eca5..9179a9d52 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperNoteImporter.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/SuperNoteImporter.tsx @@ -1,12 +1,13 @@ import { WebApplication } from '@/Application/Application' import { NoteType, SNNote } from '@standardnotes/snjs' import { FunctionComponent, useCallback, useEffect, useMemo, useState } from 'react' -import { BlocksEditor, BlocksEditorComposer } from '@standardnotes/blocks-editor' import { ErrorBoundary } from '@/Utils/ErrorBoundary' import ImportPlugin from './Plugins/ImportPlugin/ImportPlugin' -import { NoteViewController } from '../Controller/NoteViewController' +import { NoteViewController } from '../NoteView/Controller/NoteViewController' import { spaceSeparatedStrings } from '@standardnotes/utils' import Modal, { ModalAction } from '@/Components/Modal/Modal' +import { BlocksEditor } from './BlocksEditor' +import { BlocksEditorComposer } from './BlocksEditorComposer' const NotePreviewCharLimit = 160 diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperNoteMarkdownPreview.tsx b/packages/web/src/javascripts/Components/SuperEditor/SuperNoteMarkdownPreview.tsx similarity index 83% rename from packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperNoteMarkdownPreview.tsx rename to packages/web/src/javascripts/Components/SuperEditor/SuperNoteMarkdownPreview.tsx index 452d21312..86d591c2b 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperNoteMarkdownPreview.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/SuperNoteMarkdownPreview.tsx @@ -1,12 +1,11 @@ import { SNNote } from '@standardnotes/snjs' import { FunctionComponent, useCallback, useMemo, useState } from 'react' -import { BlocksEditor, BlocksEditorComposer } from '@standardnotes/blocks-editor' import { ErrorBoundary } from '@/Utils/ErrorBoundary' import MarkdownPreviewPlugin from './Plugins/MarkdownPreviewPlugin/MarkdownPreviewPlugin' -import { FileNode } from './Plugins/EncryptedFilePlugin/Nodes/FileNode' -import { BubbleNode } from './Plugins/ItemBubblePlugin/Nodes/BubbleNode' -import { copyTextToClipboard } from '../../../Utils/copyTextToClipboard' +import { copyTextToClipboard } from '../../Utils/copyTextToClipboard' import Modal, { ModalAction } from '@/Components/Modal/Modal' +import { BlocksEditor } from './BlocksEditor' +import { BlocksEditorComposer } from './BlocksEditorComposer' type Props = { note: SNNote @@ -45,7 +44,7 @@ export const SuperNoteMarkdownPreview: FunctionComponent = ({ note, close
- + { diff --git a/packages/web/src/stylesheets/index.css.scss b/packages/web/src/stylesheets/index.css.scss index cac8bf16f..29e1c191b 100644 --- a/packages/web/src/stylesheets/index.css.scss +++ b/packages/web/src/stylesheets/index.css.scss @@ -1,4 +1,4 @@ -$blocks-editor-icons-path: '../../../blocks-editor/src/Lexical/Icons'; +$blocks-editor-icons-path: '../javascripts/Components/SuperEditor/Lexical/Icons'; @import '../../../styles/src/Styles/_colors.scss'; @import '../../../styles/src/Styles/_panels.scss'; @@ -20,14 +20,15 @@ $blocks-editor-icons-path: '../../../blocks-editor/src/Lexical/Icons'; @import 'focused'; @import 'sn'; @import 'animation'; -@import '../../../blocks-editor/src/Lexical/Theme/lexical.scss'; +@import '../javascripts/Components/SuperEditor/Lexical/Theme/lexical.scss'; @tailwind base; @tailwind components; @tailwind utilities; @layer base { - ul, ol { + ul, + ol { list-style-type: revert; } } diff --git a/packages/web/tailwind.config.js b/packages/web/tailwind.config.js index 63e7f1843..37c927c9c 100644 --- a/packages/web/tailwind.config.js +++ b/packages/web/tailwind.config.js @@ -3,7 +3,7 @@ const plugin = require('tailwindcss/plugin') module.exports = { - content: ['./src/javascripts/**/*.tsx', '../toast/src/**/*.tsx', '../blocks-editor/src/**/*'], + content: ['./src/javascripts/**/*.tsx', '../toast/src/**/*.tsx'], theme: { extend: { spacing: { diff --git a/yarn.lock b/yarn.lock index ecb95844d..a9698a2a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4463,26 +4463,6 @@ __metadata: languageName: node linkType: hard -"@standardnotes/blocks-editor@workspace:*, @standardnotes/blocks-editor@workspace:packages/blocks-editor": - version: 0.0.0-use.local - resolution: "@standardnotes/blocks-editor@workspace:packages/blocks-editor" - dependencies: - "@lexical/react": 0.8.0 - "@standardnotes/icons": "workspace:*" - "@types/react": ^18.0.26 - "@types/react-dom": ^18.0.9 - eslint: "*" - eslint-plugin-react: "*" - eslint-plugin-react-hooks: "*" - lexical: 0.8.0 - prettier: "*" - prettier-plugin-tailwindcss: "*" - react: ^18.2.0 - react-dom: ^18.2.0 - typescript: "*" - languageName: unknown - linkType: soft - "@standardnotes/bold-editor@npm:^1.6.4": version: 1.6.4 resolution: "@standardnotes/bold-editor@npm:1.6.4" @@ -5273,7 +5253,6 @@ __metadata: "@simplewebauthn/browser": ^7.0.0 "@standardnotes/authenticator": ^2.3.9 "@standardnotes/autobiography-theme": ^1.2.7 - "@standardnotes/blocks-editor": "workspace:*" "@standardnotes/bold-editor": ^1.6.4 "@standardnotes/classic-code-editor": ^1.5.7 "@standardnotes/dynamic-theme": ^1.2.8 @@ -10969,7 +10948,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:*, eslint-plugin-react-hooks@npm:^4.6.0": +"eslint-plugin-react-hooks@npm:^4.6.0": version: 4.6.0 resolution: "eslint-plugin-react-hooks@npm:4.6.0" peerDependencies: @@ -10997,31 +10976,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react@npm:*": - version: 7.32.0 - resolution: "eslint-plugin-react@npm:7.32.0" - dependencies: - array-includes: ^3.1.6 - array.prototype.flatmap: ^1.3.1 - array.prototype.tosorted: ^1.1.1 - doctrine: ^2.1.0 - estraverse: ^5.3.0 - jsx-ast-utils: ^2.4.1 || ^3.0.0 - minimatch: ^3.1.2 - object.entries: ^1.1.6 - object.fromentries: ^2.0.6 - object.hasown: ^1.1.2 - object.values: ^1.1.6 - prop-types: ^15.8.1 - resolve: ^2.0.0-next.4 - semver: ^6.3.0 - string.prototype.matchall: ^4.0.8 - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: b81ce2623b50a936287d8e21997bd855094e643856c99b42a9f0c10e1c7b123e469c3d75f77df9eefb719fee2b47a763862f1cdca1e7cc26edc7cde2fb8cba87 - languageName: node - linkType: hard - "eslint-plugin-react@npm:^7.30.1": version: 7.31.10 resolution: "eslint-plugin-react@npm:7.31.10" @@ -18599,7 +18553,7 @@ __metadata: languageName: node linkType: hard -"prettier-plugin-tailwindcss@npm:*, prettier-plugin-tailwindcss@npm:^0.2.1": +"prettier-plugin-tailwindcss@npm:^0.2.1": version: 0.2.1 resolution: "prettier-plugin-tailwindcss@npm:0.2.1" peerDependencies: @@ -19830,7 +19784,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^2.0.0-next.3, resolve@npm:^2.0.0-next.4": +"resolve@npm:^2.0.0-next.3": version: 2.0.0-next.4 resolution: "resolve@npm:2.0.0-next.4" dependencies: @@ -19856,7 +19810,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^2.0.0-next.3#~builtin, resolve@patch:resolve@^2.0.0-next.4#~builtin": +"resolve@patch:resolve@^2.0.0-next.3#~builtin": version: 2.0.0-next.4 resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin::version=2.0.0-next.4&hash=07638b" dependencies: