From b5a294dc87110424090d7fd1635db65af6293d33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Pe=C3=B1a-Castellanos?= Date: Sun, 5 Oct 2025 17:19:48 -0500 Subject: [PATCH 1/4] Remove redundant logging from loro collaboration --- src/collab/loro/useCollaboration.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/collab/loro/useCollaboration.tsx b/src/collab/loro/useCollaboration.tsx index ad4df58..a95769f 100644 --- a/src/collab/loro/useCollaboration.tsx +++ b/src/collab/loro/useCollaboration.tsx @@ -75,10 +75,9 @@ export function useCollaboration( isReloadingDoc.current === false ) { initializeEditor(editor, initialEditorState); - + // Call the initialization callback after initializing the editor if (onInitialization) { - console.log('🎉 Editor initialized after sync, calling onInitialization callback'); onInitialization(true); } } From a3c6d321b5757d3be8be15ea08ef48a50f128565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Pe=C3=B1a-Castellanos?= Date: Sun, 5 Oct 2025 17:19:56 -0500 Subject: [PATCH 2/4] Export all node types from loro collab module for compatibility --- src/collab/loro/index.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/collab/loro/index.ts b/src/collab/loro/index.ts index 3bbf11a..46b9724 100644 --- a/src/collab/loro/index.ts +++ b/src/collab/loro/index.ts @@ -4,3 +4,27 @@ export * from './LexicalCollaborationPlugin'; export * from './State'; export * from './useCollaboration'; export * from './wsProvider'; + +// Export all node types for collaboration compatibility +export { AutocompleteNode } from '../../nodes/AutocompleteNode'; +export { CounterNode } from '../../nodes/CounterNode'; +export { DateTimeNode } from '../../nodes/DateTimeNode/DateTimeNode'; +export { EmojiNode } from '../../nodes/EmojiNode'; +export { EquationNode } from '../../nodes/EquationNode'; +export { ExcalidrawNode } from '../../nodes/ExcalidrawNode'; +export { FigmaNode } from '../../nodes/FigmaNode'; +export { ImageNode } from '../../nodes/ImageNode'; +export { InlineImageNode } from '../../nodes/InlineImageNode/InlineImageNode'; +export { KeywordNode } from '../../nodes/KeywordNode'; +export { LayoutContainerNode } from '../../nodes/LayoutContainerNode'; +export { LayoutItemNode } from '../../nodes/LayoutItemNode'; +export { MentionNode } from '../../nodes/MentionNode'; +export { PageBreakNode } from '../../nodes/PageBreakNode'; +export { PollNode } from '../../nodes/PollNode'; +export { SpecialTextNode } from '../../nodes/SpecialTextNode'; +export { StickyNode } from '../../nodes/StickyNode'; +export { TweetNode } from '../../nodes/TweetNode'; +export { YouTubeNode } from '../../nodes/YouTubeNode'; +export { CollapsibleContainerNode } from '../../plugins/CollapsiblePlugin/CollapsibleContainerNode'; +export { CollapsibleContentNode } from '../../plugins/CollapsiblePlugin/CollapsibleContentNode'; +export { CollapsibleTitleNode } from '../../plugins/CollapsiblePlugin/CollapsibleTitleNode'; From e55dd05c36b631d8c9ddab64006e9debeb95298e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Pe=C3=B1a-Castellanos?= Date: Fri, 24 Oct 2025 08:34:22 -0500 Subject: [PATCH 3/4] Fixing jupyter node rendering in collaboration --- src/collab/loro/nodes/NodeFactory.ts | 163 ++++++++++++++++++--------- 1 file changed, 110 insertions(+), 53 deletions(-) diff --git a/src/collab/loro/nodes/NodeFactory.ts b/src/collab/loro/nodes/NodeFactory.ts index 76d321f..c7563f3 100644 --- a/src/collab/loro/nodes/NodeFactory.ts +++ b/src/collab/loro/nodes/NodeFactory.ts @@ -27,7 +27,27 @@ export function createLexicalNodeFromLoro( if (!lexicalData) { lexicalData = treeNode?.data.get('lexical'); } - + + // DIAGNOSTIC LOGGING - Remove after fix confirmed + console.log('🏭 NodeFactory: TreeID data inspection', { + treeId, + source: { + hasNodeDataFromDiff: !!nodeDataFromDiff, + hasTreeNodeData: !!treeNode?.data, + hasLexicalData: !!lexicalData, + }, + lexicalData: { + type: lexicalData?.type, + __type: lexicalData?.__type, + allKeys: lexicalData ? Object.keys(lexicalData) : [], + }, + fallbacks: { + nodeDataElementType: nodeDataFromDiff?.elementType, + treeNodeElementType: treeNode?.data.get('elementType'), + treeNodeType: treeNode?.data.get('nodeType'), + }, + }); + let nodeType: string; let deserializedData: any = null; @@ -45,79 +65,116 @@ export function createLexicalNodeFromLoro( nodeType = fallbackType; } + // DIAGNOSTIC LOGGING - Remove after fix confirmed + console.log('🏭 NodeFactory: Node type resolution', { + treeId, + finalNodeType: nodeType, + hasDeserializedData: !!deserializedData, + }); + // Get the registered node class from the editor (following YJS pattern) const registeredNodes = binding.editor._nodes; - + const nodeInfo = registeredNodes.get(nodeType); - + + console.log('🏭 NodeFactory: Node registration check', { + treeId, + nodeType, + nodeRegistered: !!nodeInfo, + nodeClassName: nodeInfo?.klass?.name, + hasImportJSON: typeof nodeInfo?.klass?.importJSON === 'function', + }); + if (!nodeInfo) { + console.error('🏭 NodeFactory: FAILED - Node not registered', { + treeId, + attemptedType: nodeType, + registeredTypes: Array.from(binding.editor._nodes.keys()), + }); return null; } // Create new instance of the registered node class let lexicalNode: LexicalNode; - - // Special handling for HeadingNode which requires tag parameter in constructor - if (nodeType === 'heading') { - const tag = (deserializedData?.lexicalNode?.tag || - (lexicalData && typeof lexicalData === 'object' && lexicalData.tag) || - 'h1'); - - try { - // HeadingNode constructor signature: new HeadingNode(tag, key) - // We pass tag as first argument, let Lexical generate the key - lexicalNode = new nodeInfo.klass(tag); - } catch (error) { - console.warn(`🏭 NodeFactory: Failed to create HeadingNode:`, error); - return null; - } - } else { + + // PHASE 1: Try using importJSON if available (handles property setters properly) + // This is the most robust approach as it uses Lexical's own deserialization + if (deserializedData?.lexicalNode && typeof nodeInfo.klass.importJSON === 'function') { try { - lexicalNode = new nodeInfo.klass(); + console.log(`🏭 NodeFactory: Using importJSON for ${nodeType}`); + lexicalNode = nodeInfo.klass.importJSON(deserializedData.lexicalNode); + console.log(`🏭 NodeFactory: importJSON SUCCESS for ${nodeType}`, lexicalNode); } catch (error) { - console.warn(`🏭 NodeFactory: Failed to create ${nodeType} instance:`, error); - return null; + console.warn(`🏭 NodeFactory: importJSON FAILED for ${nodeType}:`, error); + // Will fall through to constructor approach below } } - - // Note: DO NOT set __parent manually - let Lexical integrate parent-child relationships - // through proper $ methods like append(), insertBefore(), etc. - - // Apply properties from the deserialized data if available - if (deserializedData?.lexicalNode) { - const nodeData = deserializedData.lexicalNode; - - // Apply all properties except system ones and tag (for HeadingNode) - Object.keys(nodeData).forEach(key => { - if (key !== '__parent' && key !== '__key') { + + // PHASE 2: Fallback to constructor approach if importJSON not available or failed + if (!lexicalNode) { + // Special handling for HeadingNode which requires tag parameter in constructor + if (nodeType === 'heading') { + const tag = (deserializedData?.lexicalNode?.tag || + (lexicalData && typeof lexicalData === 'object' && lexicalData.tag) || + 'h1'); + + try { + // HeadingNode constructor signature: new HeadingNode(tag, key) + // We pass tag as first argument, let Lexical generate the key + lexicalNode = new nodeInfo.klass(tag); + } catch (error) { + console.warn(`🏭 NodeFactory: Failed to create HeadingNode:`, error); + return null; + } + } else { + try { + lexicalNode = new nodeInfo.klass(); + } catch (error) { + console.warn(`🏭 NodeFactory: Failed to create ${nodeType} instance:`, error); + return null; + } + } + + // Note: DO NOT set __parent manually - let Lexical integrate parent-child relationships + // through proper $ methods like append(), insertBefore(), etc. + + // Apply properties from the deserialized data if available + // (Only when using constructor, not importJSON which handles this) + if (deserializedData?.lexicalNode) { + const nodeData = deserializedData.lexicalNode; + + // Apply all properties except system ones and tag (for HeadingNode) + Object.keys(nodeData).forEach(key => { + if (key !== '__parent' && key !== '__key' && key !== 'type') { + try { + if (key === 'tag' && nodeType === 'heading') { + // Tag is already set in HeadingNode constructor, skip + } else { + (lexicalNode as any)[key] = nodeData[key]; + } + } catch (error) { + console.warn(`Failed to set property ${key} on node:`, error); + } + } + }); + } else if (lexicalData && typeof lexicalData === 'object') { + // For direct object format (like heading data), apply properties directly + const applicableKeys = Object.keys(lexicalData).filter(key => + key !== '__parent' && key !== '__key' && key !== 'type' && key !== 'children' + ); + + applicableKeys.forEach(key => { try { if (key === 'tag' && nodeType === 'heading') { // Tag is already set in HeadingNode constructor, skip } else { - (lexicalNode as any)[key] = nodeData[key]; + (lexicalNode as any)[key] = lexicalData[key]; } } catch (error) { console.warn(`Failed to set property ${key} on node:`, error); } - } - }); - } else if (lexicalData && typeof lexicalData === 'object') { - // For direct object format (like heading data), apply properties directly - const applicableKeys = Object.keys(lexicalData).filter(key => - key !== '__parent' && key !== '__key' && key !== 'type' && key !== 'children' - ); - - applicableKeys.forEach(key => { - try { - if (key === 'tag' && nodeType === 'heading') { - // Tag is already set in HeadingNode constructor, skip - } else { - (lexicalNode as any)[key] = lexicalData[key]; - } - } catch (error) { - console.warn(`Failed to set property ${key} on node:`, error); - } - }); + }); + } } return lexicalNode; From 42117f2166506b526b04fcd66f74f77e727f0329 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 24 Oct 2025 13:37:14 +0000 Subject: [PATCH 4/4] Automatic application of license header --- __tests__/setup.ts | 5 +++++ __tests__/test_BigLoroDoc.ts | 5 +++++ __tests__/test_LexicalNodeData.ts | 5 +++++ __tests__/test_LoroDoc.ts | 5 +++++ dev/debug-offset.js | 5 +++++ dev/debug_loro_api.py | 3 +++ dev/debug_loro_map.py | 3 +++ dev/debug_mcp_comprehensive.py | 3 +++ dev/debug_tree.py | 3 +++ dev/debug_tree_structure.py | 3 +++ dev/debug_websocket_integration.py | 3 +++ esm/index.html | 5 +++++ esm/index.mjs | 5 +++++ esm/prepopulatedRichText.mjs | 5 +++++ esm/styles.css | 5 +++++ index.html | 5 +++++ lexical_loro/websocket/server.py | 3 +++ split/index.html | 5 +++++ src/App.tsx | 5 +++++ src/Editor.tsx | 5 +++++ src/Settings.tsx | 5 +++++ src/appSettings.ts | 5 +++++ src/collab/loro/Bindings.ts | 5 +++++ src/collab/loro/Debug.ts | 5 +++++ src/collab/loro/LexicalCollaborationContext.ts | 5 +++++ src/collab/loro/LexicalCollaborationPlugin.tsx | 5 +++++ src/collab/loro/State.ts | 5 +++++ src/collab/loro/components/LoroCollaborationUI.tsx | 5 +++++ src/collab/loro/components/LoroCollaborators.tsx | 5 +++++ src/collab/loro/components/index.ts | 5 +++++ src/collab/loro/index.ts | 5 +++++ src/collab/loro/integrators/BaseIntegrator.ts | 5 +++++ src/collab/loro/integrators/CounterIntegrator.ts | 5 +++++ src/collab/loro/integrators/ListIntegrator.ts | 5 +++++ src/collab/loro/integrators/MapIntegrator.ts | 5 +++++ src/collab/loro/integrators/TextIntegrator.ts | 5 +++++ src/collab/loro/integrators/TreeIntegrator.ts | 5 +++++ src/collab/loro/nodes/NodeFactory.ts | 5 +++++ src/collab/loro/nodes/NodesMapper.ts | 5 +++++ src/collab/loro/propagators/DecoratorNodePropagator.ts | 5 +++++ src/collab/loro/propagators/ElementNodePropagator.ts | 5 +++++ src/collab/loro/propagators/LineBreakNodePropagator.ts | 5 +++++ src/collab/loro/propagators/RootNodePropagator.ts | 5 +++++ src/collab/loro/propagators/TextNodePropagator.ts | 5 +++++ src/collab/loro/propagators/index.ts | 5 +++++ src/collab/loro/provider/websocket.ts | 5 +++++ src/collab/loro/servers/index.ts | 5 +++++ src/collab/loro/servers/ws/callback.ts | 5 +++++ src/collab/loro/servers/ws/server.ts | 5 +++++ src/collab/loro/servers/ws/utils.ts | 5 +++++ src/collab/loro/sync/SyncCursors.ts | 5 +++++ src/collab/loro/sync/SyncLexicalToLoro.ts | 5 +++++ src/collab/loro/sync/SyncLoroToLexical.ts | 5 +++++ src/collab/loro/types/LexicalNodeData.ts | 5 +++++ src/collab/loro/useCollaboration.tsx | 5 +++++ src/collab/loro/utils/InitialContent.ts | 5 +++++ src/collab/loro/utils/LexicalToLoro.ts | 5 +++++ src/collab/loro/utils/Utils.ts | 5 +++++ src/collab/loro/wsProvider.ts | 5 +++++ src/collab/utils/invariant.ts | 5 +++++ src/collab/utils/simpleDiffWithCursor.ts | 5 +++++ src/collab/yjs/Bindings.ts | 5 +++++ src/collab/yjs/Debug.ts | 5 +++++ src/collab/yjs/LexicalCollaborationContext.ts | 5 +++++ src/collab/yjs/LexicalCollaborationPlugin.tsx | 5 +++++ src/collab/yjs/State.ts | 5 +++++ src/collab/yjs/nodes/AnyCollabNode.ts | 5 +++++ src/collab/yjs/nodes/CollabDecoratorNode.ts | 5 +++++ src/collab/yjs/nodes/CollabElementNode.ts | 5 +++++ src/collab/yjs/nodes/CollabLineBreakNode.ts | 5 +++++ src/collab/yjs/nodes/CollabTextNode.ts | 5 +++++ src/collab/yjs/provider/websocket.ts | 5 +++++ src/collab/yjs/servers/index.ts | 5 +++++ src/collab/yjs/servers/ws/callback.ts | 5 +++++ src/collab/yjs/servers/ws/server.ts | 5 +++++ src/collab/yjs/servers/ws/utils.ts | 5 +++++ src/collab/yjs/sync/SyncCursors.ts | 5 +++++ src/collab/yjs/sync/SyncEditorStates.ts | 5 +++++ src/collab/yjs/useCollaboration.tsx | 5 +++++ src/collab/yjs/utils/Utils.ts | 5 +++++ src/collab/yjs/wsProvider.ts | 5 +++++ src/commenting/index.ts | 5 +++++ src/context/FlashMessageContext.tsx | 5 +++++ src/context/SettingsContext.tsx | 5 +++++ src/context/SharedHistoryContext.tsx | 5 +++++ src/context/ToolbarContext.tsx | 5 +++++ src/demo.tsx | 5 +++++ src/hooks/useFlashMessage.tsx | 5 +++++ src/hooks/useModal.tsx | 5 +++++ src/hooks/useReport.ts | 5 +++++ src/index.css | 5 +++++ src/index.ts | 5 +++++ src/nodes/AutocompleteNode.tsx | 5 +++++ src/nodes/CounterComponent.tsx | 5 +++++ src/nodes/CounterNode.tsx | 5 +++++ src/nodes/DateTimeNode/DateTimeComponent.tsx | 5 +++++ src/nodes/DateTimeNode/DateTimeNode.css | 5 +++++ src/nodes/DateTimeNode/DateTimeNode.tsx | 5 +++++ src/nodes/EmojiNode.tsx | 5 +++++ src/nodes/EquationComponent.tsx | 5 +++++ src/nodes/EquationNode.tsx | 5 +++++ src/nodes/ExcalidrawNode/ExcalidrawComponent.tsx | 5 +++++ src/nodes/ExcalidrawNode/ExcalidrawImage.tsx | 5 +++++ src/nodes/ExcalidrawNode/index.tsx | 5 +++++ src/nodes/FigmaNode.tsx | 5 +++++ src/nodes/ImageComponent.tsx | 5 +++++ src/nodes/ImageNode.css | 5 +++++ src/nodes/ImageNode.tsx | 5 +++++ src/nodes/InlineImageNode/InlineImageComponent.tsx | 5 +++++ src/nodes/InlineImageNode/InlineImageNode.css | 5 +++++ src/nodes/InlineImageNode/InlineImageNode.tsx | 5 +++++ src/nodes/KeywordNode.ts | 5 +++++ src/nodes/LayoutContainerNode.ts | 5 +++++ src/nodes/LayoutItemNode.ts | 5 +++++ src/nodes/MentionNode.ts | 5 +++++ src/nodes/PageBreakNode/index.css | 5 +++++ src/nodes/PageBreakNode/index.tsx | 5 +++++ src/nodes/PlaygroundNodes.ts | 5 +++++ src/nodes/PollComponent.tsx | 5 +++++ src/nodes/PollNode.css | 5 +++++ src/nodes/PollNode.tsx | 5 +++++ src/nodes/SpecialTextNode.tsx | 5 +++++ src/nodes/StickyComponent.tsx | 5 +++++ src/nodes/StickyNode.css | 5 +++++ src/nodes/StickyNode.tsx | 5 +++++ src/nodes/TweetNode.tsx | 5 +++++ src/nodes/YouTubeNode.tsx | 5 +++++ src/plugins/ActionsPlugin/index.tsx | 5 +++++ src/plugins/AutoEmbedPlugin/index.tsx | 5 +++++ src/plugins/AutoLinkPlugin/index.tsx | 5 +++++ src/plugins/AutocompletePlugin/index.tsx | 5 +++++ .../CodeActionMenuPlugin/components/CopyButton/index.tsx | 5 +++++ .../CodeActionMenuPlugin/components/PrettierButton/index.css | 5 +++++ .../CodeActionMenuPlugin/components/PrettierButton/index.tsx | 5 +++++ src/plugins/CodeActionMenuPlugin/index.css | 5 +++++ src/plugins/CodeActionMenuPlugin/index.tsx | 5 +++++ src/plugins/CodeActionMenuPlugin/utils.ts | 5 +++++ src/plugins/CodeHighlightPrismPlugin/index.ts | 5 +++++ src/plugins/CodeHighlightShikiPlugin/index.ts | 5 +++++ src/plugins/CollapsiblePlugin/Collapsible.css | 5 +++++ src/plugins/CollapsiblePlugin/CollapsibleContainerNode.ts | 5 +++++ src/plugins/CollapsiblePlugin/CollapsibleContentNode.ts | 5 +++++ src/plugins/CollapsiblePlugin/CollapsibleTitleNode.ts | 5 +++++ src/plugins/CollapsiblePlugin/CollapsibleUtils.ts | 5 +++++ src/plugins/CollapsiblePlugin/index.ts | 5 +++++ src/plugins/CommentPlugin/index.css | 5 +++++ src/plugins/CommentPlugin/index.tsx | 5 +++++ src/plugins/ComponentPickerPlugin/index.tsx | 5 +++++ src/plugins/ContextMenuPlugin/index.tsx | 5 +++++ src/plugins/CounterPlugin/index.ts | 5 +++++ src/plugins/DateTimePlugin/index.tsx | 5 +++++ src/plugins/DebugPlugin/index.tsx | 5 +++++ src/plugins/DocsPlugin/index.tsx | 5 +++++ src/plugins/DragDropPastePlugin/index.ts | 5 +++++ src/plugins/DraggableBlockPlugin/index.css | 5 +++++ src/plugins/DraggableBlockPlugin/index.tsx | 5 +++++ src/plugins/EmojiPickerPlugin/index.tsx | 5 +++++ src/plugins/EmojisPlugin/index.ts | 5 +++++ src/plugins/EquationsPlugin/index.tsx | 5 +++++ src/plugins/ExcalidrawPlugin/index.tsx | 5 +++++ src/plugins/FigmaPlugin/index.tsx | 5 +++++ src/plugins/FloatingLinkEditorPlugin/index.css | 5 +++++ src/plugins/FloatingLinkEditorPlugin/index.tsx | 5 +++++ src/plugins/FloatingTextFormatToolbarPlugin/index.css | 5 +++++ src/plugins/FloatingTextFormatToolbarPlugin/index.tsx | 5 +++++ src/plugins/ImagesPlugin/index.tsx | 5 +++++ src/plugins/InlineImagePlugin/index.tsx | 5 +++++ src/plugins/KeywordsPlugin/index.ts | 5 +++++ src/plugins/LayoutPlugin/InsertLayoutDialog.tsx | 5 +++++ src/plugins/LayoutPlugin/LayoutPlugin.tsx | 5 +++++ src/plugins/LinkPlugin/index.tsx | 5 +++++ src/plugins/MarkdownShortcutPlugin/index.tsx | 5 +++++ src/plugins/MarkdownTransformers/index.ts | 5 +++++ src/plugins/MaxLengthPlugin/index.tsx | 5 +++++ src/plugins/MentionsPlugin/index.tsx | 5 +++++ src/plugins/PageBreakPlugin/index.tsx | 5 +++++ src/plugins/PasteLogPlugin/index.tsx | 5 +++++ src/plugins/PollPlugin/index.tsx | 5 +++++ src/plugins/ShortcutsPlugin/index.tsx | 5 +++++ src/plugins/ShortcutsPlugin/shortcuts.ts | 5 +++++ src/plugins/SpecialTextPlugin/index.ts | 5 +++++ src/plugins/SpeechToTextPlugin/index.ts | 5 +++++ src/plugins/StickyPlugin/index.ts | 5 +++++ src/plugins/TabFocusPlugin/index.tsx | 5 +++++ src/plugins/TableActionMenuPlugin/index.tsx | 5 +++++ src/plugins/TableCellResizer/index.css | 5 +++++ src/plugins/TableCellResizer/index.tsx | 5 +++++ src/plugins/TableHoverActionsPlugin/index.tsx | 5 +++++ src/plugins/TableOfContentsPlugin/index.css | 5 +++++ src/plugins/TableOfContentsPlugin/index.tsx | 5 +++++ src/plugins/TablePlugin.tsx | 5 +++++ src/plugins/TestRecorderPlugin/index.tsx | 5 +++++ src/plugins/ToolbarPlugin/fontSize.css | 5 +++++ src/plugins/ToolbarPlugin/fontSize.tsx | 5 +++++ src/plugins/ToolbarPlugin/index.tsx | 5 +++++ src/plugins/ToolbarPlugin/utils.ts | 5 +++++ src/plugins/TreeViewPlugin/index.tsx | 5 +++++ src/plugins/TwitterPlugin/index.ts | 5 +++++ src/plugins/TypingPerfPlugin/index.ts | 5 +++++ src/plugins/YouTubePlugin/index.ts | 5 +++++ src/server/validation.ts | 5 +++++ src/setupEnv.ts | 5 +++++ src/themes/CommentEditorTheme.css | 5 +++++ src/themes/CommentEditorTheme.ts | 5 +++++ src/themes/PlaygroundEditorTheme.css | 5 +++++ src/themes/PlaygroundEditorTheme.ts | 5 +++++ src/themes/StickyEditorTheme.css | 5 +++++ src/themes/StickyEditorTheme.ts | 5 +++++ src/tyes.dt.ts | 5 +++++ src/ui/Button.css | 5 +++++ src/ui/Button.tsx | 5 +++++ src/ui/ColorPicker.css | 5 +++++ src/ui/ColorPicker.tsx | 5 +++++ src/ui/ContentEditable.css | 5 +++++ src/ui/ContentEditable.tsx | 5 +++++ src/ui/Dialog.css | 5 +++++ src/ui/Dialog.tsx | 5 +++++ src/ui/DropDown.tsx | 5 +++++ src/ui/DropdownColorPicker.tsx | 5 +++++ src/ui/EquationEditor.css | 5 +++++ src/ui/EquationEditor.tsx | 5 +++++ src/ui/ExcalidrawModal.css | 5 +++++ src/ui/ExcalidrawModal.tsx | 5 +++++ src/ui/FileInput.tsx | 5 +++++ src/ui/FlashMessage.css | 5 +++++ src/ui/FlashMessage.tsx | 5 +++++ src/ui/ImageResizer.tsx | 5 +++++ src/ui/Input.css | 5 +++++ src/ui/KatexEquationAlterer.css | 5 +++++ src/ui/KatexEquationAlterer.tsx | 5 +++++ src/ui/KatexRenderer.tsx | 5 +++++ src/ui/Modal.css | 5 +++++ src/ui/Modal.tsx | 5 +++++ src/ui/Select.css | 5 +++++ src/ui/Select.tsx | 5 +++++ src/ui/Switch.tsx | 5 +++++ src/ui/TextInput.tsx | 5 +++++ src/utils/docSerialization.ts | 5 +++++ src/utils/emoji-list.ts | 5 +++++ src/utils/getDOMRangeRect.ts | 5 +++++ src/utils/getSelectedNode.ts | 5 +++++ src/utils/getThemeSelector.ts | 5 +++++ src/utils/isMobileWidth.ts | 5 +++++ src/utils/joinClasses.ts | 5 +++++ src/utils/setFloatingElemPosition.ts | 5 +++++ src/utils/setFloatingElemPositionForLinkEditor.ts | 5 +++++ src/utils/swipe.ts | 5 +++++ src/utils/url.ts | 5 +++++ test-debug.html | 5 +++++ tests/__init__.py | 3 +++ tests/test_client_id_correlation.py | 3 +++ tests/test_direct_init.py | 3 +++ tests/test_lexical_converter.py | 3 +++ tests/test_mcp_server_integration.py | 3 +++ tests/test_persistence.py | 3 +++ tests/test_tree_api.py | 3 +++ tests/test_websocket_debug.py | 3 +++ vite.config.ts | 5 +++++ viteCopyEsm.ts | 5 +++++ viteCopyExcalidrawAssets.ts | 5 +++++ 260 files changed, 1270 insertions(+) diff --git a/__tests__/setup.ts b/__tests__/setup.ts index 88b5511..775e44b 100644 --- a/__tests__/setup.ts +++ b/__tests__/setup.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + // Jest setup for Lexical tests import 'jest-environment-jsdom'; diff --git a/__tests__/test_BigLoroDoc.ts b/__tests__/test_BigLoroDoc.ts index 68547c8..12eae0e 100644 --- a/__tests__/test_BigLoroDoc.ts +++ b/__tests__/test_BigLoroDoc.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { LoroDoc, LoroText } from 'loro-crdt'; import * as fs from 'fs'; import * as path from 'path'; diff --git a/__tests__/test_LexicalNodeData.ts b/__tests__/test_LexicalNodeData.ts index cb1d761..4ad62e3 100644 --- a/__tests__/test_LexicalNodeData.ts +++ b/__tests__/test_LexicalNodeData.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { $createTextNode, $createParagraphNode, $isTextNode, $isElementNode, createEditor, $getRoot } from 'lexical'; import { LexicalNodeData, LexicalNodeDataHelper } from '../src/collab/loro/types/LexicalNodeData'; diff --git a/__tests__/test_LoroDoc.ts b/__tests__/test_LoroDoc.ts index 8386b55..ed6461f 100644 --- a/__tests__/test_LoroDoc.ts +++ b/__tests__/test_LoroDoc.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { Delta, LoroDoc, LoroText } from 'loro-crdt'; describe('Loro Text', () => { diff --git a/dev/debug-offset.js b/dev/debug-offset.js index 7922dd2..c8797be 100644 --- a/dev/debug-offset.js +++ b/dev/debug-offset.js @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + // Quick debug script to understand offset calculation differences // Run this to see the difference between YJS XmlText and LoroText diff --git a/dev/debug_loro_api.py b/dev/debug_loro_api.py index 05cde5a..2de89bd 100644 --- a/dev/debug_loro_api.py +++ b/dev/debug_loro_api.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """ Debug Loro tree API to understand how to access children """ diff --git a/dev/debug_loro_map.py b/dev/debug_loro_map.py index 2dc4c3f..ef06a78 100644 --- a/dev/debug_loro_map.py +++ b/dev/debug_loro_map.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """ Debug script to understand LoroMap API """ diff --git a/dev/debug_mcp_comprehensive.py b/dev/debug_mcp_comprehensive.py index 5d312ff..4c490fb 100644 --- a/dev/debug_mcp_comprehensive.py +++ b/dev/debug_mcp_comprehensive.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """ Simple integration test to validate the text content fix. """ diff --git a/dev/debug_tree.py b/dev/debug_tree.py index 240e07f..de9e57d 100644 --- a/dev/debug_tree.py +++ b/dev/debug_tree.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """ Debug script to understand Loro tree container structure """ diff --git a/dev/debug_tree_structure.py b/dev/debug_tree_structure.py index 40ba577..06e5026 100644 --- a/dev/debug_tree_structure.py +++ b/dev/debug_tree_structure.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """ Debug script to understand Loro tree structure for children """ diff --git a/dev/debug_websocket_integration.py b/dev/debug_websocket_integration.py index 578fe0e..f76113d 100644 --- a/dev/debug_websocket_integration.py +++ b/dev/debug_websocket_integration.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """ Quick test to verify MCP server WebSocket integration fixes """ diff --git a/esm/index.html b/esm/index.html index 211ce77..06d3d7b 100644 --- a/esm/index.html +++ b/esm/index.html @@ -1,3 +1,8 @@ + + diff --git a/esm/index.mjs b/esm/index.mjs index 2f90a24..ced58d6 100644 --- a/esm/index.mjs +++ b/esm/index.mjs @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {registerDragonSupport} from '@lexical/dragon'; import {createEmptyHistoryState, registerHistory} from '@lexical/history'; import {HeadingNode, QuoteNode, registerRichText} from '@lexical/rich-text'; diff --git a/esm/prepopulatedRichText.mjs b/esm/prepopulatedRichText.mjs index 35b3e0e..100df03 100644 --- a/esm/prepopulatedRichText.mjs +++ b/esm/prepopulatedRichText.mjs @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/esm/styles.css b/esm/styles.css index 4d9a901..2b8dc59 100644 --- a/esm/styles.css +++ b/esm/styles.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + .editor-wrapper { border: 2px solid gray; } diff --git a/index.html b/index.html index 336f3c9..35e5566 100644 --- a/index.html +++ b/index.html @@ -1,3 +1,8 @@ + + diff --git a/lexical_loro/websocket/server.py b/lexical_loro/websocket/server.py index 321ede5..92bbc91 100644 --- a/lexical_loro/websocket/server.py +++ b/lexical_loro/websocket/server.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + import asyncio import json diff --git a/split/index.html b/split/index.html index d98f0a1..a7b4a0a 100644 --- a/split/index.html +++ b/split/index.html @@ -1,3 +1,8 @@ + + diff --git a/src/App.tsx b/src/App.tsx index f5fc575..5f40687 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {$createLinkNode} from '@lexical/link'; import {$createListItemNode, $createListNode} from '@lexical/list'; diff --git a/src/Editor.tsx b/src/Editor.tsx index 1e9d192..85e9428 100644 --- a/src/Editor.tsx +++ b/src/Editor.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {type JSX, useEffect, useState} from 'react'; import {AutoFocusPlugin} from '@lexical/react/LexicalAutoFocusPlugin'; import {CharacterLimitPlugin} from '@lexical/react/LexicalCharacterLimitPlugin'; diff --git a/src/Settings.tsx b/src/Settings.tsx index 613f6f8..768fe4e 100644 --- a/src/Settings.tsx +++ b/src/Settings.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {CAN_USE_BEFORE_INPUT} from '@lexical/utils'; diff --git a/src/appSettings.ts b/src/appSettings.ts index c474648..350c7df 100644 --- a/src/appSettings.ts +++ b/src/appSettings.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + const hostName = window.location.hostname; export const isDevPlayground: boolean = hostName !== 'playground.lexical.dev' && diff --git a/src/collab/loro/Bindings.ts b/src/collab/loro/Bindings.ts index 4739088..6e844b3 100644 --- a/src/collab/loro/Bindings.ts +++ b/src/collab/loro/Bindings.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalEditor} from 'lexical'; import {Klass, LexicalNode} from 'lexical'; import type {LoroDoc, LoroTree} from 'loro-crdt'; diff --git a/src/collab/loro/Debug.ts b/src/collab/loro/Debug.ts index 9417471..fde4601 100644 --- a/src/collab/loro/Debug.ts +++ b/src/collab/loro/Debug.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { Binding } from './Bindings'; /** diff --git a/src/collab/loro/LexicalCollaborationContext.ts b/src/collab/loro/LexicalCollaborationContext.ts index 54ae4ca..826114d 100644 --- a/src/collab/loro/LexicalCollaborationContext.ts +++ b/src/collab/loro/LexicalCollaborationContext.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {createContext, useContext} from 'react'; import type {LoroDoc} from 'loro-crdt'; diff --git a/src/collab/loro/LexicalCollaborationPlugin.tsx b/src/collab/loro/LexicalCollaborationPlugin.tsx index 18a1721..6534d5e 100644 --- a/src/collab/loro/LexicalCollaborationPlugin.tsx +++ b/src/collab/loro/LexicalCollaborationPlugin.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useEffect, useRef, useState} from 'react'; import {LexicalEditor} from 'lexical'; diff --git a/src/collab/loro/State.ts b/src/collab/loro/State.ts index 9f75527..befa011 100644 --- a/src/collab/loro/State.ts +++ b/src/collab/loro/State.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalCommand} from 'lexical'; import {createCommand} from 'lexical'; import type {LoroDoc, Cursor} from 'loro-crdt'; diff --git a/src/collab/loro/components/LoroCollaborationUI.tsx b/src/collab/loro/components/LoroCollaborationUI.tsx index 96f9b35..7963fc6 100644 --- a/src/collab/loro/components/LoroCollaborationUI.tsx +++ b/src/collab/loro/components/LoroCollaborationUI.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import React from 'react'; import type { Binding } from '../Bindings'; import { LoroCollaborators } from './LoroCollaborators'; diff --git a/src/collab/loro/components/LoroCollaborators.tsx b/src/collab/loro/components/LoroCollaborators.tsx index b7c4dc9..fe0e568 100644 --- a/src/collab/loro/components/LoroCollaborators.tsx +++ b/src/collab/loro/components/LoroCollaborators.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import React, { useState, useEffect } from 'react'; import type { Binding } from '../Bindings'; diff --git a/src/collab/loro/components/index.ts b/src/collab/loro/components/index.ts index 82cc16e..ba8c7eb 100644 --- a/src/collab/loro/components/index.ts +++ b/src/collab/loro/components/index.ts @@ -1,2 +1,7 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + export { LoroCollaborators, type LoroCollaboratorsProps } from './LoroCollaborators'; export { LoroCollaborationUI, type LoroCollaborationUIProps } from './LoroCollaborationUI'; \ No newline at end of file diff --git a/src/collab/loro/index.ts b/src/collab/loro/index.ts index 46b9724..04df744 100644 --- a/src/collab/loro/index.ts +++ b/src/collab/loro/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + export * from './Bindings'; export * from './LexicalCollaborationContext'; export * from './LexicalCollaborationPlugin'; diff --git a/src/collab/loro/integrators/BaseIntegrator.ts b/src/collab/loro/integrators/BaseIntegrator.ts index f1c64d9..6b47da3 100644 --- a/src/collab/loro/integrators/BaseIntegrator.ts +++ b/src/collab/loro/integrators/BaseIntegrator.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { Binding } from '../Bindings'; import { Provider } from '../State'; diff --git a/src/collab/loro/integrators/CounterIntegrator.ts b/src/collab/loro/integrators/CounterIntegrator.ts index 73683ee..b706f28 100644 --- a/src/collab/loro/integrators/CounterIntegrator.ts +++ b/src/collab/loro/integrators/CounterIntegrator.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { BaseIntegrator } from './BaseIntegrator'; import { Binding } from '../Bindings'; import { Provider } from '../State'; diff --git a/src/collab/loro/integrators/ListIntegrator.ts b/src/collab/loro/integrators/ListIntegrator.ts index 9b2e2ad..5cce92f 100644 --- a/src/collab/loro/integrators/ListIntegrator.ts +++ b/src/collab/loro/integrators/ListIntegrator.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { BaseIntegrator } from './BaseIntegrator'; import { Binding } from '../Bindings'; import { Provider } from '../State'; diff --git a/src/collab/loro/integrators/MapIntegrator.ts b/src/collab/loro/integrators/MapIntegrator.ts index 2bbaeb7..d5119c6 100644 --- a/src/collab/loro/integrators/MapIntegrator.ts +++ b/src/collab/loro/integrators/MapIntegrator.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { $getNodeByKey, $getRoot, RootNode, TextNode } from 'lexical'; import { BaseIntegrator } from './BaseIntegrator'; import { Binding } from '../Bindings'; diff --git a/src/collab/loro/integrators/TextIntegrator.ts b/src/collab/loro/integrators/TextIntegrator.ts index 069b217..2698bc0 100644 --- a/src/collab/loro/integrators/TextIntegrator.ts +++ b/src/collab/loro/integrators/TextIntegrator.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { BaseIntegrator } from './BaseIntegrator'; import { Binding } from '../Bindings'; import { Provider } from '../State'; diff --git a/src/collab/loro/integrators/TreeIntegrator.ts b/src/collab/loro/integrators/TreeIntegrator.ts index 75229b3..c3a0e09 100644 --- a/src/collab/loro/integrators/TreeIntegrator.ts +++ b/src/collab/loro/integrators/TreeIntegrator.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { $getRoot, $getNodeByKey, diff --git a/src/collab/loro/nodes/NodeFactory.ts b/src/collab/loro/nodes/NodeFactory.ts index c7563f3..aafbaa7 100644 --- a/src/collab/loro/nodes/NodeFactory.ts +++ b/src/collab/loro/nodes/NodeFactory.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { TreeID, LoroTree } from 'loro-crdt'; import { LexicalNode, NodeKey } from 'lexical'; import { Binding } from '../Bindings'; diff --git a/src/collab/loro/nodes/NodesMapper.ts b/src/collab/loro/nodes/NodesMapper.ts index b282ee5..1a67b75 100644 --- a/src/collab/loro/nodes/NodesMapper.ts +++ b/src/collab/loro/nodes/NodesMapper.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { LoroTree, LoroTreeNode, TreeID } from 'loro-crdt'; import { LexicalNode, NodeKey, EditorState } from 'lexical'; import { Binding } from '../Bindings'; diff --git a/src/collab/loro/propagators/DecoratorNodePropagator.ts b/src/collab/loro/propagators/DecoratorNodePropagator.ts index 217739b..ad5876a 100644 --- a/src/collab/loro/propagators/DecoratorNodePropagator.ts +++ b/src/collab/loro/propagators/DecoratorNodePropagator.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { TreeID, LoroTree } from 'loro-crdt'; import { DecoratorNode, diff --git a/src/collab/loro/propagators/ElementNodePropagator.ts b/src/collab/loro/propagators/ElementNodePropagator.ts index f43cd45..a156d69 100644 --- a/src/collab/loro/propagators/ElementNodePropagator.ts +++ b/src/collab/loro/propagators/ElementNodePropagator.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { TreeID, LoroTree } from 'loro-crdt'; import { $createParagraphNode, diff --git a/src/collab/loro/propagators/LineBreakNodePropagator.ts b/src/collab/loro/propagators/LineBreakNodePropagator.ts index c9005af..0deca5f 100644 --- a/src/collab/loro/propagators/LineBreakNodePropagator.ts +++ b/src/collab/loro/propagators/LineBreakNodePropagator.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { TreeID, LoroTree } from 'loro-crdt'; import { $createLineBreakNode, LineBreakNode, $isLineBreakNode, UpdateListenerPayload, NodeKey, ElementNode } from 'lexical'; import { getNodeMapper } from '../nodes/NodesMapper'; diff --git a/src/collab/loro/propagators/RootNodePropagator.ts b/src/collab/loro/propagators/RootNodePropagator.ts index 5228a55..6825dc3 100644 --- a/src/collab/loro/propagators/RootNodePropagator.ts +++ b/src/collab/loro/propagators/RootNodePropagator.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { TreeID, LoroTree } from 'loro-crdt'; import { UpdateListenerPayload, NodeKey, RootNode, $getRoot } from 'lexical'; import { getNodeMapper } from '../nodes/NodesMapper'; diff --git a/src/collab/loro/propagators/TextNodePropagator.ts b/src/collab/loro/propagators/TextNodePropagator.ts index 45e77cf..83f0acd 100644 --- a/src/collab/loro/propagators/TextNodePropagator.ts +++ b/src/collab/loro/propagators/TextNodePropagator.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { TreeID, LoroTree } from 'loro-crdt'; import { $createTextNode, diff --git a/src/collab/loro/propagators/index.ts b/src/collab/loro/propagators/index.ts index 785179e..4f92d2b 100644 --- a/src/collab/loro/propagators/index.ts +++ b/src/collab/loro/propagators/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Lexical Node Propagator for Loro Tree Collaboration * diff --git a/src/collab/loro/provider/websocket.ts b/src/collab/loro/provider/websocket.ts index 8a6c0d0..c9157d9 100644 --- a/src/collab/loro/provider/websocket.ts +++ b/src/collab/loro/provider/websocket.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { LoroDoc, EphemeralStore, EphemeralStoreEvent, VersionVector } from 'loro-crdt' import { ObservableV2 } from 'lib0/observable' import * as bc from 'lib0/broadcastchannel' diff --git a/src/collab/loro/servers/index.ts b/src/collab/loro/servers/index.ts index e69de29..358477a 100644 --- a/src/collab/loro/servers/index.ts +++ b/src/collab/loro/servers/index.ts @@ -0,0 +1,5 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + diff --git a/src/collab/loro/servers/ws/callback.ts b/src/collab/loro/servers/ws/callback.ts index d728c40..8559ddc 100644 --- a/src/collab/loro/servers/ws/callback.ts +++ b/src/collab/loro/servers/ws/callback.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import http from 'http' import * as number from 'lib0/number' diff --git a/src/collab/loro/servers/ws/server.ts b/src/collab/loro/servers/ws/server.ts index a3ebc55..1b2e937 100755 --- a/src/collab/loro/servers/ws/server.ts +++ b/src/collab/loro/servers/ws/server.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + #!/usr/bin/env node import { WebSocketServer } from 'ws' diff --git a/src/collab/loro/servers/ws/utils.ts b/src/collab/loro/servers/ws/utils.ts index 319294c..3a08a62 100644 --- a/src/collab/loro/servers/ws/utils.ts +++ b/src/collab/loro/servers/ws/utils.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {LoroDoc, EphemeralStore} from 'loro-crdt' import * as map from 'lib0/map' import * as eventloop from 'lib0/eventloop' diff --git a/src/collab/loro/sync/SyncCursors.ts b/src/collab/loro/sync/SyncCursors.ts index d2f9fdb..3a89d9c 100644 --- a/src/collab/loro/sync/SyncCursors.ts +++ b/src/collab/loro/sync/SyncCursors.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { BaseSelection, NodeKey, Point, RangeSelection } from 'lexical'; import { $getNodeByKey, diff --git a/src/collab/loro/sync/SyncLexicalToLoro.ts b/src/collab/loro/sync/SyncLexicalToLoro.ts index 8decaf4..42cdbc1 100644 --- a/src/collab/loro/sync/SyncLexicalToLoro.ts +++ b/src/collab/loro/sync/SyncLexicalToLoro.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { UpdateListenerPayload, RootNode, ElementNode, TextNode, LineBreakNode, DecoratorNode, $getSelection } from 'lexical'; import { Binding } from '../Bindings'; import { propagateRootNode } from '../propagators/RootNodePropagator'; diff --git a/src/collab/loro/sync/SyncLoroToLexical.ts b/src/collab/loro/sync/SyncLoroToLexical.ts index b21ed46..2d744de 100644 --- a/src/collab/loro/sync/SyncLoroToLexical.ts +++ b/src/collab/loro/sync/SyncLoroToLexical.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { LoroEventBatch } from 'loro-crdt'; import { $addUpdateTag, $createParagraphNode, $getRoot, $getSelection, $isRangeSelection, $setSelection, COLLABORATION_TAG, HISTORIC_TAG, SKIP_COLLAB_TAG, SKIP_SCROLL_INTO_VIEW_TAG } from 'lexical'; import { Binding } from '../Bindings'; diff --git a/src/collab/loro/types/LexicalNodeData.ts b/src/collab/loro/types/LexicalNodeData.ts index 93c29fd..685257a 100644 --- a/src/collab/loro/types/LexicalNodeData.ts +++ b/src/collab/loro/types/LexicalNodeData.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { LexicalNode } from 'lexical'; /** diff --git a/src/collab/loro/useCollaboration.tsx b/src/collab/loro/useCollaboration.tsx index a95769f..99b472f 100644 --- a/src/collab/loro/useCollaboration.tsx +++ b/src/collab/loro/useCollaboration.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import * as React from 'react'; import type {JSX} from 'react'; import {useCallback, useEffect, useMemo, useRef} from 'react'; diff --git a/src/collab/loro/utils/InitialContent.ts b/src/collab/loro/utils/InitialContent.ts index 4439cd0..88d82c2 100644 --- a/src/collab/loro/utils/InitialContent.ts +++ b/src/collab/loro/utils/InitialContent.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { LoroDoc } from 'loro-crdt'; import { lexicalToLoroTree } from './LexicalToLoro'; diff --git a/src/collab/loro/utils/LexicalToLoro.ts b/src/collab/loro/utils/LexicalToLoro.ts index 12d756b..f524405 100644 --- a/src/collab/loro/utils/LexicalToLoro.ts +++ b/src/collab/loro/utils/LexicalToLoro.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { Loro, LoroTree, LoroTreeNode, TreeID } from 'loro-crdt'; diff --git a/src/collab/loro/utils/Utils.ts b/src/collab/loro/utils/Utils.ts index 715d361..b96ac00 100644 --- a/src/collab/loro/utils/Utils.ts +++ b/src/collab/loro/utils/Utils.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { LoroDoc, TreeID } from 'loro-crdt'; import { $getNodeByKey, $getRoot, $getSelection, $isRangeSelection, $isTextNode, EditorState, ElementNode, LexicalNode, NodeKey, RangeSelection, TextNode } from 'lexical'; import simpleDiffWithCursor from '../../utils/simpleDiffWithCursor'; diff --git a/src/collab/loro/wsProvider.ts b/src/collab/loro/wsProvider.ts index 319c2a8..345656f 100644 --- a/src/collab/loro/wsProvider.ts +++ b/src/collab/loro/wsProvider.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {LoroDoc} from 'loro-crdt'; import {WebsocketProvider} from './provider/websocket'; import { Provider } from './State'; diff --git a/src/collab/utils/invariant.ts b/src/collab/utils/invariant.ts index 89ad6f6..51828db 100644 --- a/src/collab/utils/invariant.ts +++ b/src/collab/utils/invariant.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + // invariant(condition, message) will refine types based on "condition", and // if "condition" is false will throw an error. This function is special-cased // in flow itself, so we can't name it anything else. diff --git a/src/collab/utils/simpleDiffWithCursor.ts b/src/collab/utils/simpleDiffWithCursor.ts index f3490a0..19a27da 100644 --- a/src/collab/utils/simpleDiffWithCursor.ts +++ b/src/collab/utils/simpleDiffWithCursor.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + export default function simpleDiffWithCursor( a: string, b: string, diff --git a/src/collab/yjs/Bindings.ts b/src/collab/yjs/Bindings.ts index b575f9f..779bd49 100644 --- a/src/collab/yjs/Bindings.ts +++ b/src/collab/yjs/Bindings.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalEditor, NodeKey} from 'lexical'; import {Klass, LexicalNode} from 'lexical'; import type {Doc} from 'yjs'; diff --git a/src/collab/yjs/Debug.ts b/src/collab/yjs/Debug.ts index 22394da..de83660 100644 --- a/src/collab/yjs/Debug.ts +++ b/src/collab/yjs/Debug.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { Binding } from './Bindings'; /** diff --git a/src/collab/yjs/LexicalCollaborationContext.ts b/src/collab/yjs/LexicalCollaborationContext.ts index 0007193..450de70 100644 --- a/src/collab/yjs/LexicalCollaborationContext.ts +++ b/src/collab/yjs/LexicalCollaborationContext.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {createContext, useContext} from 'react'; import type {Doc} from 'yjs'; diff --git a/src/collab/yjs/LexicalCollaborationPlugin.tsx b/src/collab/yjs/LexicalCollaborationPlugin.tsx index 0415bf6..b5c0f01 100644 --- a/src/collab/yjs/LexicalCollaborationPlugin.tsx +++ b/src/collab/yjs/LexicalCollaborationPlugin.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useEffect, useRef, useState} from 'react'; import type {Doc} from 'yjs'; diff --git a/src/collab/yjs/State.ts b/src/collab/yjs/State.ts index 5414c97..471c1ac 100644 --- a/src/collab/yjs/State.ts +++ b/src/collab/yjs/State.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalCommand} from 'lexical'; import {createCommand} from 'lexical'; import type {Doc, RelativePosition, UndoManager, XmlText} from 'yjs'; diff --git a/src/collab/yjs/nodes/AnyCollabNode.ts b/src/collab/yjs/nodes/AnyCollabNode.ts index 8fbb311..054d9fe 100644 --- a/src/collab/yjs/nodes/AnyCollabNode.ts +++ b/src/collab/yjs/nodes/AnyCollabNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { CollabDecoratorNode } from "./CollabDecoratorNode"; import { CollabElementNode } from "./CollabElementNode"; import { CollabLineBreakNode } from "./CollabLineBreakNode"; diff --git a/src/collab/yjs/nodes/CollabDecoratorNode.ts b/src/collab/yjs/nodes/CollabDecoratorNode.ts index 0d394ea..0f71e9a 100644 --- a/src/collab/yjs/nodes/CollabDecoratorNode.ts +++ b/src/collab/yjs/nodes/CollabDecoratorNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {XmlElement} from 'yjs'; import type {DecoratorNode, NodeKey, NodeMap} from 'lexical'; import {$getNodeByKey, $isDecoratorNode} from 'lexical'; diff --git a/src/collab/yjs/nodes/CollabElementNode.ts b/src/collab/yjs/nodes/CollabElementNode.ts index fa2c80a..b769103 100644 --- a/src/collab/yjs/nodes/CollabElementNode.ts +++ b/src/collab/yjs/nodes/CollabElementNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {ElementNode, NodeKey, NodeMap} from 'lexical'; import type {AbstractType, Map as YMap, XmlElement, XmlText} from 'yjs'; import {$createChildrenArray} from '@lexical/offset'; diff --git a/src/collab/yjs/nodes/CollabLineBreakNode.ts b/src/collab/yjs/nodes/CollabLineBreakNode.ts index bfa8728..0c7adb9 100644 --- a/src/collab/yjs/nodes/CollabLineBreakNode.ts +++ b/src/collab/yjs/nodes/CollabLineBreakNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LineBreakNode, NodeKey} from 'lexical'; import {$getNodeByKey, $isLineBreakNode} from 'lexical'; import type {Map as YMap} from 'yjs'; diff --git a/src/collab/yjs/nodes/CollabTextNode.ts b/src/collab/yjs/nodes/CollabTextNode.ts index 2a54490..4c0db69 100644 --- a/src/collab/yjs/nodes/CollabTextNode.ts +++ b/src/collab/yjs/nodes/CollabTextNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {NodeKey, NodeMap, TextNode} from 'lexical'; import { $getNodeByKey, diff --git a/src/collab/yjs/provider/websocket.ts b/src/collab/yjs/provider/websocket.ts index 7f6acbd..748b7c7 100644 --- a/src/collab/yjs/provider/websocket.ts +++ b/src/collab/yjs/provider/websocket.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { ObservableV2 } from 'lib0/observable' import * as syncProtocol from 'y-protocols/sync' import * as authProtocol from 'y-protocols/auth' diff --git a/src/collab/yjs/servers/index.ts b/src/collab/yjs/servers/index.ts index e69de29..358477a 100644 --- a/src/collab/yjs/servers/index.ts +++ b/src/collab/yjs/servers/index.ts @@ -0,0 +1,5 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + diff --git a/src/collab/yjs/servers/ws/callback.ts b/src/collab/yjs/servers/ws/callback.ts index 1d1f5bd..647b87e 100644 --- a/src/collab/yjs/servers/ws/callback.ts +++ b/src/collab/yjs/servers/ws/callback.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import http from 'http' import * as number from 'lib0/number' diff --git a/src/collab/yjs/servers/ws/server.ts b/src/collab/yjs/servers/ws/server.ts index 65ec20b..b005f2e 100755 --- a/src/collab/yjs/servers/ws/server.ts +++ b/src/collab/yjs/servers/ws/server.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + #!/usr/bin/env node import { WebSocketServer } from 'ws' diff --git a/src/collab/yjs/servers/ws/utils.ts b/src/collab/yjs/servers/ws/utils.ts index b01385a..bbb39b4 100644 --- a/src/collab/yjs/servers/ws/utils.ts +++ b/src/collab/yjs/servers/ws/utils.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import * as Y from 'yjs' import * as syncProtocol from 'y-protocols/sync' import * as awarenessProtocol from 'y-protocols/awareness' diff --git a/src/collab/yjs/sync/SyncCursors.ts b/src/collab/yjs/sync/SyncCursors.ts index ecf0bbb..706e99d 100644 --- a/src/collab/yjs/sync/SyncCursors.ts +++ b/src/collab/yjs/sync/SyncCursors.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {BaseSelection, NodeKey, NodeMap, Point} from 'lexical'; import { $getNodeByKey, diff --git a/src/collab/yjs/sync/SyncEditorStates.ts b/src/collab/yjs/sync/SyncEditorStates.ts index 7c481fb..7ec0233 100644 --- a/src/collab/yjs/sync/SyncEditorStates.ts +++ b/src/collab/yjs/sync/SyncEditorStates.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {EditorState, NodeKey} from 'lexical'; import { $addUpdateTag, diff --git a/src/collab/yjs/useCollaboration.tsx b/src/collab/yjs/useCollaboration.tsx index 26fbf9a..7281594 100644 --- a/src/collab/yjs/useCollaboration.tsx +++ b/src/collab/yjs/useCollaboration.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import * as React from 'react'; import type {JSX} from 'react'; import {useCallback, useEffect, useMemo, useRef} from 'react'; diff --git a/src/collab/yjs/utils/Utils.ts b/src/collab/yjs/utils/Utils.ts index 4c0ff0f..10767af 100644 --- a/src/collab/yjs/utils/Utils.ts +++ b/src/collab/yjs/utils/Utils.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { $getNodeByKey, $getRoot, diff --git a/src/collab/yjs/wsProvider.ts b/src/collab/yjs/wsProvider.ts index a0843ac..eba0cc7 100644 --- a/src/collab/yjs/wsProvider.ts +++ b/src/collab/yjs/wsProvider.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {Doc} from 'yjs'; import {WebsocketProvider} from './provider/websocket'; import { Provider } from './State'; diff --git a/src/commenting/index.ts b/src/commenting/index.ts index 0139625..bbc3cd4 100644 --- a/src/commenting/index.ts +++ b/src/commenting/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalEditor} from 'lexical'; import {COMMAND_PRIORITY_LOW} from 'lexical'; diff --git a/src/context/FlashMessageContext.tsx b/src/context/FlashMessageContext.tsx index 886ff06..33f1614 100644 --- a/src/context/FlashMessageContext.tsx +++ b/src/context/FlashMessageContext.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import { diff --git a/src/context/SettingsContext.tsx b/src/context/SettingsContext.tsx index 2020457..a7cf4dc 100644 --- a/src/context/SettingsContext.tsx +++ b/src/context/SettingsContext.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {SettingName} from '../appSettings'; import type {JSX} from 'react'; diff --git a/src/context/SharedHistoryContext.tsx b/src/context/SharedHistoryContext.tsx index 584b15d..22541c5 100644 --- a/src/context/SharedHistoryContext.tsx +++ b/src/context/SharedHistoryContext.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {HistoryState} from '@lexical/react/LexicalHistoryPlugin'; import type {JSX} from 'react'; diff --git a/src/context/ToolbarContext.tsx b/src/context/ToolbarContext.tsx index 8bc54c8..6785609 100644 --- a/src/context/ToolbarContext.tsx +++ b/src/context/ToolbarContext.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {ElementFormatType} from 'lexical'; diff --git a/src/demo.tsx b/src/demo.tsx index c42c89b..677a62f 100644 --- a/src/demo.tsx +++ b/src/demo.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {createRoot} from 'react-dom/client'; // setupEnv must load before App because lexical computes CAN_USE_BEFORE_INPUT // at import time (disableBeforeInput is used to test legacy events) diff --git a/src/hooks/useFlashMessage.tsx b/src/hooks/useFlashMessage.tsx index 6bcbe1c..5923da1 100644 --- a/src/hooks/useFlashMessage.tsx +++ b/src/hooks/useFlashMessage.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { type ShowFlashMessage, useFlashMessageContext, diff --git a/src/hooks/useModal.tsx b/src/hooks/useModal.tsx index 788eb3c..5af9ba0 100644 --- a/src/hooks/useModal.tsx +++ b/src/hooks/useModal.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useCallback, useMemo, useState} from 'react'; diff --git a/src/hooks/useReport.ts b/src/hooks/useReport.ts index be2c082..4b4d531 100644 --- a/src/hooks/useReport.ts +++ b/src/hooks/useReport.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {useCallback, useEffect, useRef} from 'react'; const getElement = (): HTMLElement => { diff --git a/src/index.css b/src/index.css index 659c77f..5a2cb50 100644 --- a/src/index.css +++ b/src/index.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + @import 'https://fonts.googleapis.com/css?family=Reenie+Beanie'; body { diff --git a/src/index.ts b/src/index.ts index 195e5bc..4f7cfb4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1 +1,6 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + export * from './collab/loro'; diff --git a/src/nodes/AutocompleteNode.tsx b/src/nodes/AutocompleteNode.tsx index bc967ae..cf46109 100644 --- a/src/nodes/AutocompleteNode.tsx +++ b/src/nodes/AutocompleteNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { DOMExportOutput, EditorConfig, diff --git a/src/nodes/CounterComponent.tsx b/src/nodes/CounterComponent.tsx index afaf7f6..74e8a4b 100644 --- a/src/nodes/CounterComponent.tsx +++ b/src/nodes/CounterComponent.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {NodeKey} from 'lexical'; import type {JSX} from 'react'; diff --git a/src/nodes/CounterNode.tsx b/src/nodes/CounterNode.tsx index ca8839a..13e9269 100644 --- a/src/nodes/CounterNode.tsx +++ b/src/nodes/CounterNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalNode} from 'lexical'; import type {JSX} from 'react'; diff --git a/src/nodes/DateTimeNode/DateTimeComponent.tsx b/src/nodes/DateTimeNode/DateTimeComponent.tsx index c3c2c96..2bba706 100644 --- a/src/nodes/DateTimeNode/DateTimeComponent.tsx +++ b/src/nodes/DateTimeNode/DateTimeComponent.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import 'react-day-picker/style.css'; diff --git a/src/nodes/DateTimeNode/DateTimeNode.css b/src/nodes/DateTimeNode/DateTimeNode.css index 296a7a1..e40b8eb 100644 --- a/src/nodes/DateTimeNode/DateTimeNode.css +++ b/src/nodes/DateTimeNode/DateTimeNode.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/nodes/DateTimeNode/DateTimeNode.tsx b/src/nodes/DateTimeNode/DateTimeNode.tsx index 95f2909..25aa50f 100644 --- a/src/nodes/DateTimeNode/DateTimeNode.tsx +++ b/src/nodes/DateTimeNode/DateTimeNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import { diff --git a/src/nodes/EmojiNode.tsx b/src/nodes/EmojiNode.tsx index 9e1ccb6..5069492 100644 --- a/src/nodes/EmojiNode.tsx +++ b/src/nodes/EmojiNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { EditorConfig, LexicalNode, diff --git a/src/nodes/EquationComponent.tsx b/src/nodes/EquationComponent.tsx index 63cbc3c..090a9da 100644 --- a/src/nodes/EquationComponent.tsx +++ b/src/nodes/EquationComponent.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/nodes/EquationNode.tsx b/src/nodes/EquationNode.tsx index 999edd0..9a61f2f 100644 --- a/src/nodes/EquationNode.tsx +++ b/src/nodes/EquationNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { DOMConversionMap, DOMConversionOutput, diff --git a/src/nodes/ExcalidrawNode/ExcalidrawComponent.tsx b/src/nodes/ExcalidrawNode/ExcalidrawComponent.tsx index 264f565..ea27238 100644 --- a/src/nodes/ExcalidrawNode/ExcalidrawComponent.tsx +++ b/src/nodes/ExcalidrawNode/ExcalidrawComponent.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {ExcalidrawInitialElements} from '../../ui/ExcalidrawModal'; import type {AppState, BinaryFiles} from '@excalidraw/excalidraw/types'; import type {NodeKey} from 'lexical'; diff --git a/src/nodes/ExcalidrawNode/ExcalidrawImage.tsx b/src/nodes/ExcalidrawNode/ExcalidrawImage.tsx index 28ba470..2f6bc5c 100644 --- a/src/nodes/ExcalidrawNode/ExcalidrawImage.tsx +++ b/src/nodes/ExcalidrawNode/ExcalidrawImage.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { ExcalidrawElement, NonDeleted, diff --git a/src/nodes/ExcalidrawNode/index.tsx b/src/nodes/ExcalidrawNode/index.tsx index 7dc9863..2cf01fb 100644 --- a/src/nodes/ExcalidrawNode/index.tsx +++ b/src/nodes/ExcalidrawNode/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { DOMConversionMap, DOMConversionOutput, diff --git a/src/nodes/FigmaNode.tsx b/src/nodes/FigmaNode.tsx index 1b980ba..004d051 100644 --- a/src/nodes/FigmaNode.tsx +++ b/src/nodes/FigmaNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { EditorConfig, ElementFormatType, diff --git a/src/nodes/ImageComponent.tsx b/src/nodes/ImageComponent.tsx index 4d2c5ad..dc3f2af 100644 --- a/src/nodes/ImageComponent.tsx +++ b/src/nodes/ImageComponent.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { BaseSelection, LexicalCommand, diff --git a/src/nodes/ImageNode.css b/src/nodes/ImageNode.css index a9c1901..e907c90 100644 --- a/src/nodes/ImageNode.css +++ b/src/nodes/ImageNode.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/nodes/ImageNode.tsx b/src/nodes/ImageNode.tsx index 27b7d00..0c4e12e 100644 --- a/src/nodes/ImageNode.tsx +++ b/src/nodes/ImageNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { DOMConversionMap, DOMConversionOutput, diff --git a/src/nodes/InlineImageNode/InlineImageComponent.tsx b/src/nodes/InlineImageNode/InlineImageComponent.tsx index 7dcb796..62b27dd 100644 --- a/src/nodes/InlineImageNode/InlineImageComponent.tsx +++ b/src/nodes/InlineImageNode/InlineImageComponent.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/nodes/InlineImageNode/InlineImageNode.css b/src/nodes/InlineImageNode/InlineImageNode.css index 38ec6ca..3c17b5a 100644 --- a/src/nodes/InlineImageNode/InlineImageNode.css +++ b/src/nodes/InlineImageNode/InlineImageNode.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/nodes/InlineImageNode/InlineImageNode.tsx b/src/nodes/InlineImageNode/InlineImageNode.tsx index ca3a43a..b112dfd 100644 --- a/src/nodes/InlineImageNode/InlineImageNode.tsx +++ b/src/nodes/InlineImageNode/InlineImageNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { DOMConversionMap, DOMConversionOutput, diff --git a/src/nodes/KeywordNode.ts b/src/nodes/KeywordNode.ts index 2bda42b..4b00cb9 100644 --- a/src/nodes/KeywordNode.ts +++ b/src/nodes/KeywordNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {EditorConfig, LexicalNode, SerializedTextNode} from 'lexical'; import {$applyNodeReplacement, TextNode} from 'lexical'; diff --git a/src/nodes/LayoutContainerNode.ts b/src/nodes/LayoutContainerNode.ts index 3768fd0..0e84123 100644 --- a/src/nodes/LayoutContainerNode.ts +++ b/src/nodes/LayoutContainerNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { DOMConversionMap, DOMConversionOutput, diff --git a/src/nodes/LayoutItemNode.ts b/src/nodes/LayoutItemNode.ts index 6a0fd37..5c94707 100644 --- a/src/nodes/LayoutItemNode.ts +++ b/src/nodes/LayoutItemNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { DOMConversionMap, DOMConversionOutput, diff --git a/src/nodes/MentionNode.ts b/src/nodes/MentionNode.ts index 3a6adfc..4f993d5 100644 --- a/src/nodes/MentionNode.ts +++ b/src/nodes/MentionNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { $applyNodeReplacement, type DOMConversionMap, diff --git a/src/nodes/PageBreakNode/index.css b/src/nodes/PageBreakNode/index.css index 4967662..7d2dec1 100644 --- a/src/nodes/PageBreakNode/index.css +++ b/src/nodes/PageBreakNode/index.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /* @import url('assets/styles/variables.css'); */ [type='page-break'] { diff --git a/src/nodes/PageBreakNode/index.tsx b/src/nodes/PageBreakNode/index.tsx index 9f8840c..562c4c4 100644 --- a/src/nodes/PageBreakNode/index.tsx +++ b/src/nodes/PageBreakNode/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './index.css'; diff --git a/src/nodes/PlaygroundNodes.ts b/src/nodes/PlaygroundNodes.ts index b638cc9..81fac47 100644 --- a/src/nodes/PlaygroundNodes.ts +++ b/src/nodes/PlaygroundNodes.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {Klass, LexicalNode} from 'lexical'; import {CodeHighlightNode, CodeNode} from '@lexical/code'; diff --git a/src/nodes/PollComponent.tsx b/src/nodes/PollComponent.tsx index 7ef784d..fb60193 100644 --- a/src/nodes/PollComponent.tsx +++ b/src/nodes/PollComponent.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {Option, Options, PollNode} from './PollNode'; import type {JSX} from 'react'; diff --git a/src/nodes/PollNode.css b/src/nodes/PollNode.css index 2b41d80..060be85 100644 --- a/src/nodes/PollNode.css +++ b/src/nodes/PollNode.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/nodes/PollNode.tsx b/src/nodes/PollNode.tsx index 1e14be9..d0ba0f9 100644 --- a/src/nodes/PollNode.tsx +++ b/src/nodes/PollNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import { diff --git a/src/nodes/SpecialTextNode.tsx b/src/nodes/SpecialTextNode.tsx index 426a3e0..6a08941 100644 --- a/src/nodes/SpecialTextNode.tsx +++ b/src/nodes/SpecialTextNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {EditorConfig, LexicalNode, SerializedTextNode} from 'lexical'; import {addClassNamesToElement} from '@lexical/utils'; diff --git a/src/nodes/StickyComponent.tsx b/src/nodes/StickyComponent.tsx index a6d049f..6d93527 100644 --- a/src/nodes/StickyComponent.tsx +++ b/src/nodes/StickyComponent.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalEditor, NodeKey} from 'lexical'; import type {JSX} from 'react'; diff --git a/src/nodes/StickyNode.css b/src/nodes/StickyNode.css index 87fa6d8..25f8c37 100644 --- a/src/nodes/StickyNode.css +++ b/src/nodes/StickyNode.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/nodes/StickyNode.tsx b/src/nodes/StickyNode.tsx index eb55a23..739a8d5 100644 --- a/src/nodes/StickyNode.tsx +++ b/src/nodes/StickyNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { EditorConfig, LexicalEditor, diff --git a/src/nodes/TweetNode.tsx b/src/nodes/TweetNode.tsx index 23b4a5a..13d38c4 100644 --- a/src/nodes/TweetNode.tsx +++ b/src/nodes/TweetNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { DOMConversionMap, DOMConversionOutput, diff --git a/src/nodes/YouTubeNode.tsx b/src/nodes/YouTubeNode.tsx index 86a0526..c6d20fb 100644 --- a/src/nodes/YouTubeNode.tsx +++ b/src/nodes/YouTubeNode.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { DOMConversionMap, DOMConversionOutput, diff --git a/src/plugins/ActionsPlugin/index.tsx b/src/plugins/ActionsPlugin/index.tsx index 9448fda..29b6787 100644 --- a/src/plugins/ActionsPlugin/index.tsx +++ b/src/plugins/ActionsPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalEditor} from 'lexical'; import type {JSX} from 'react'; diff --git a/src/plugins/AutoEmbedPlugin/index.tsx b/src/plugins/AutoEmbedPlugin/index.tsx index 0b18314..a7ddc8e 100644 --- a/src/plugins/AutoEmbedPlugin/index.tsx +++ b/src/plugins/AutoEmbedPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalEditor} from 'lexical'; import type {JSX} from 'react'; diff --git a/src/plugins/AutoLinkPlugin/index.tsx b/src/plugins/AutoLinkPlugin/index.tsx index 7f4daf4..835279f 100644 --- a/src/plugins/AutoLinkPlugin/index.tsx +++ b/src/plugins/AutoLinkPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import { diff --git a/src/plugins/AutocompletePlugin/index.tsx b/src/plugins/AutocompletePlugin/index.tsx index 24f16fd..12a3307 100644 --- a/src/plugins/AutocompletePlugin/index.tsx +++ b/src/plugins/AutocompletePlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {BaseSelection, NodeKey, TextNode} from 'lexical'; import type {JSX} from 'react'; diff --git a/src/plugins/CodeActionMenuPlugin/components/CopyButton/index.tsx b/src/plugins/CodeActionMenuPlugin/components/CopyButton/index.tsx index c1e0b24..56626ad 100644 --- a/src/plugins/CodeActionMenuPlugin/components/CopyButton/index.tsx +++ b/src/plugins/CodeActionMenuPlugin/components/CopyButton/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/CodeActionMenuPlugin/components/PrettierButton/index.css b/src/plugins/CodeActionMenuPlugin/components/PrettierButton/index.css index 3a559d5..085d9c4 100644 --- a/src/plugins/CodeActionMenuPlugin/components/PrettierButton/index.css +++ b/src/plugins/CodeActionMenuPlugin/components/PrettierButton/index.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + .code-action-menu-container .prettier-wrapper { position: relative; } diff --git a/src/plugins/CodeActionMenuPlugin/components/PrettierButton/index.tsx b/src/plugins/CodeActionMenuPlugin/components/PrettierButton/index.tsx index 9f40dcd..e0fac44 100644 --- a/src/plugins/CodeActionMenuPlugin/components/PrettierButton/index.tsx +++ b/src/plugins/CodeActionMenuPlugin/components/PrettierButton/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/CodeActionMenuPlugin/index.css b/src/plugins/CodeActionMenuPlugin/index.css index 0000c11..8e6bff9 100644 --- a/src/plugins/CodeActionMenuPlugin/index.css +++ b/src/plugins/CodeActionMenuPlugin/index.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + .code-action-menu-container { height: 35.8px; font-size: 10px; diff --git a/src/plugins/CodeActionMenuPlugin/index.tsx b/src/plugins/CodeActionMenuPlugin/index.tsx index 82ea29a..2e369bf 100644 --- a/src/plugins/CodeActionMenuPlugin/index.tsx +++ b/src/plugins/CodeActionMenuPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './index.css'; diff --git a/src/plugins/CodeActionMenuPlugin/utils.ts b/src/plugins/CodeActionMenuPlugin/utils.ts index 2fccf4a..b0d8922 100644 --- a/src/plugins/CodeActionMenuPlugin/utils.ts +++ b/src/plugins/CodeActionMenuPlugin/utils.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/CodeHighlightPrismPlugin/index.ts b/src/plugins/CodeHighlightPrismPlugin/index.ts index e43eaad..a8eb707 100644 --- a/src/plugins/CodeHighlightPrismPlugin/index.ts +++ b/src/plugins/CodeHighlightPrismPlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {registerCodeHighlighting} from '@lexical/code'; diff --git a/src/plugins/CodeHighlightShikiPlugin/index.ts b/src/plugins/CodeHighlightShikiPlugin/index.ts index 23784a7..2429136 100644 --- a/src/plugins/CodeHighlightShikiPlugin/index.ts +++ b/src/plugins/CodeHighlightShikiPlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {registerCodeHighlighting} from '@lexical/code-shiki'; diff --git a/src/plugins/CollapsiblePlugin/Collapsible.css b/src/plugins/CollapsiblePlugin/Collapsible.css index 6212dbf..30d2a58 100644 --- a/src/plugins/CollapsiblePlugin/Collapsible.css +++ b/src/plugins/CollapsiblePlugin/Collapsible.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/CollapsiblePlugin/CollapsibleContainerNode.ts b/src/plugins/CollapsiblePlugin/CollapsibleContainerNode.ts index b44fa48..2771690 100644 --- a/src/plugins/CollapsiblePlugin/CollapsibleContainerNode.ts +++ b/src/plugins/CollapsiblePlugin/CollapsibleContainerNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {IS_CHROME} from '@lexical/utils'; import { $getSiblingCaret, diff --git a/src/plugins/CollapsiblePlugin/CollapsibleContentNode.ts b/src/plugins/CollapsiblePlugin/CollapsibleContentNode.ts index bd30ac8..83a64f9 100644 --- a/src/plugins/CollapsiblePlugin/CollapsibleContentNode.ts +++ b/src/plugins/CollapsiblePlugin/CollapsibleContentNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {IS_CHROME} from '@lexical/utils'; import { DOMConversionMap, diff --git a/src/plugins/CollapsiblePlugin/CollapsibleTitleNode.ts b/src/plugins/CollapsiblePlugin/CollapsibleTitleNode.ts index c84d835..3ce4673 100644 --- a/src/plugins/CollapsiblePlugin/CollapsibleTitleNode.ts +++ b/src/plugins/CollapsiblePlugin/CollapsibleTitleNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {IS_CHROME} from '@lexical/utils'; import { $createParagraphNode, diff --git a/src/plugins/CollapsiblePlugin/CollapsibleUtils.ts b/src/plugins/CollapsiblePlugin/CollapsibleUtils.ts index c5fa54a..2b89ef4 100644 --- a/src/plugins/CollapsiblePlugin/CollapsibleUtils.ts +++ b/src/plugins/CollapsiblePlugin/CollapsibleUtils.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + export function setDomHiddenUntilFound(dom: HTMLElement): void { // @ts-expect-error dom.hidden = 'until-found'; diff --git a/src/plugins/CollapsiblePlugin/index.ts b/src/plugins/CollapsiblePlugin/index.ts index 142f075..4aa6bd4 100644 --- a/src/plugins/CollapsiblePlugin/index.ts +++ b/src/plugins/CollapsiblePlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import './Collapsible.css'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/CommentPlugin/index.css b/src/plugins/CommentPlugin/index.css index b0cc725..6ded488 100644 --- a/src/plugins/CommentPlugin/index.css +++ b/src/plugins/CommentPlugin/index.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/CommentPlugin/index.tsx b/src/plugins/CommentPlugin/index.tsx index 74ffb09..d465bf6 100644 --- a/src/plugins/CommentPlugin/index.tsx +++ b/src/plugins/CommentPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { EditorState, LexicalCommand, diff --git a/src/plugins/ComponentPickerPlugin/index.tsx b/src/plugins/ComponentPickerPlugin/index.tsx index 86b0e89..8753ec3 100644 --- a/src/plugins/ComponentPickerPlugin/index.tsx +++ b/src/plugins/ComponentPickerPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {$createCodeNode} from '@lexical/code'; diff --git a/src/plugins/ContextMenuPlugin/index.tsx b/src/plugins/ContextMenuPlugin/index.tsx index 100410a..59854b4 100644 --- a/src/plugins/ContextMenuPlugin/index.tsx +++ b/src/plugins/ContextMenuPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {$isLinkNode, TOGGLE_LINK_COMMAND} from '@lexical/link'; diff --git a/src/plugins/CounterPlugin/index.ts b/src/plugins/CounterPlugin/index.ts index 54f0d45..d56d8ed 100644 --- a/src/plugins/CounterPlugin/index.ts +++ b/src/plugins/CounterPlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalCommand} from 'lexical'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/DateTimePlugin/index.tsx b/src/plugins/DateTimePlugin/index.tsx index 6ebde52..e358725 100644 --- a/src/plugins/DateTimePlugin/index.tsx +++ b/src/plugins/DateTimePlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/DebugPlugin/index.tsx b/src/plugins/DebugPlugin/index.tsx index df8e6ee..cc65efc 100644 --- a/src/plugins/DebugPlugin/index.tsx +++ b/src/plugins/DebugPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import { useState, useEffect } from 'react'; import { LexicalEditor, $getRoot, $createTextNode, $createParagraphNode } from 'lexical'; diff --git a/src/plugins/DocsPlugin/index.tsx b/src/plugins/DocsPlugin/index.tsx index f4bad30..442f482 100644 --- a/src/plugins/DocsPlugin/index.tsx +++ b/src/plugins/DocsPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import * as React from 'react'; diff --git a/src/plugins/DragDropPastePlugin/index.ts b/src/plugins/DragDropPastePlugin/index.ts index bfb1229..fe42dc0 100644 --- a/src/plugins/DragDropPastePlugin/index.ts +++ b/src/plugins/DragDropPastePlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; import {DRAG_DROP_PASTE} from '@lexical/rich-text'; import {isMimeType, mediaFileReader} from '@lexical/utils'; diff --git a/src/plugins/DraggableBlockPlugin/index.css b/src/plugins/DraggableBlockPlugin/index.css index 62f4f8b..e57d1f1 100644 --- a/src/plugins/DraggableBlockPlugin/index.css +++ b/src/plugins/DraggableBlockPlugin/index.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + .draggable-block-menu { border-radius: 4px; padding: 2px 1px; diff --git a/src/plugins/DraggableBlockPlugin/index.tsx b/src/plugins/DraggableBlockPlugin/index.tsx index 74930c9..c0eccd7 100644 --- a/src/plugins/DraggableBlockPlugin/index.tsx +++ b/src/plugins/DraggableBlockPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/EmojiPickerPlugin/index.tsx b/src/plugins/EmojiPickerPlugin/index.tsx index bb4feb2..21dd4d9 100644 --- a/src/plugins/EmojiPickerPlugin/index.tsx +++ b/src/plugins/EmojiPickerPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; import { LexicalTypeaheadMenuPlugin, diff --git a/src/plugins/EmojisPlugin/index.ts b/src/plugins/EmojisPlugin/index.ts index 74119e9..d681ca5 100644 --- a/src/plugins/EmojisPlugin/index.ts +++ b/src/plugins/EmojisPlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalEditor} from 'lexical'; import type {JSX} from 'react'; diff --git a/src/plugins/EquationsPlugin/index.tsx b/src/plugins/EquationsPlugin/index.tsx index d35797e..2cd3855 100644 --- a/src/plugins/EquationsPlugin/index.tsx +++ b/src/plugins/EquationsPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import 'katex/dist/katex.css'; diff --git a/src/plugins/ExcalidrawPlugin/index.tsx b/src/plugins/ExcalidrawPlugin/index.tsx index 363e67c..1bd948a 100644 --- a/src/plugins/ExcalidrawPlugin/index.tsx +++ b/src/plugins/ExcalidrawPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/FigmaPlugin/index.tsx b/src/plugins/FigmaPlugin/index.tsx index 2b85856..f354663 100644 --- a/src/plugins/FigmaPlugin/index.tsx +++ b/src/plugins/FigmaPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/FloatingLinkEditorPlugin/index.css b/src/plugins/FloatingLinkEditorPlugin/index.css index 8c56f98..397ef50 100644 --- a/src/plugins/FloatingLinkEditorPlugin/index.css +++ b/src/plugins/FloatingLinkEditorPlugin/index.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + .link-editor { display: flex; position: absolute; diff --git a/src/plugins/FloatingLinkEditorPlugin/index.tsx b/src/plugins/FloatingLinkEditorPlugin/index.tsx index 4bd3580..c9171d7 100644 --- a/src/plugins/FloatingLinkEditorPlugin/index.tsx +++ b/src/plugins/FloatingLinkEditorPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/FloatingTextFormatToolbarPlugin/index.css b/src/plugins/FloatingTextFormatToolbarPlugin/index.css index 7e722fc..39b2cd4 100644 --- a/src/plugins/FloatingTextFormatToolbarPlugin/index.css +++ b/src/plugins/FloatingTextFormatToolbarPlugin/index.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + .floating-text-format-popup { display: flex; background: #fff; diff --git a/src/plugins/FloatingTextFormatToolbarPlugin/index.tsx b/src/plugins/FloatingTextFormatToolbarPlugin/index.tsx index 2676a2b..f88605c 100644 --- a/src/plugins/FloatingTextFormatToolbarPlugin/index.tsx +++ b/src/plugins/FloatingTextFormatToolbarPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './index.css'; diff --git a/src/plugins/ImagesPlugin/index.tsx b/src/plugins/ImagesPlugin/index.tsx index 5a43b68..3e970e4 100644 --- a/src/plugins/ImagesPlugin/index.tsx +++ b/src/plugins/ImagesPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import { diff --git a/src/plugins/InlineImagePlugin/index.tsx b/src/plugins/InlineImagePlugin/index.tsx index 00ce93b..a51f267 100644 --- a/src/plugins/InlineImagePlugin/index.tsx +++ b/src/plugins/InlineImagePlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/KeywordsPlugin/index.ts b/src/plugins/KeywordsPlugin/index.ts index 922e5a6..797dfe8 100644 --- a/src/plugins/KeywordsPlugin/index.ts +++ b/src/plugins/KeywordsPlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {TextNode} from 'lexical'; import type {JSX} from 'react'; diff --git a/src/plugins/LayoutPlugin/InsertLayoutDialog.tsx b/src/plugins/LayoutPlugin/InsertLayoutDialog.tsx index 835b356..0cc264f 100644 --- a/src/plugins/LayoutPlugin/InsertLayoutDialog.tsx +++ b/src/plugins/LayoutPlugin/InsertLayoutDialog.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {LexicalEditor} from 'lexical'; diff --git a/src/plugins/LayoutPlugin/LayoutPlugin.tsx b/src/plugins/LayoutPlugin/LayoutPlugin.tsx index d26159f..3cf38fd 100644 --- a/src/plugins/LayoutPlugin/LayoutPlugin.tsx +++ b/src/plugins/LayoutPlugin/LayoutPlugin.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {ElementNode, LexicalCommand, LexicalNode, NodeKey} from 'lexical'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/LinkPlugin/index.tsx b/src/plugins/LinkPlugin/index.tsx index 8a0d262..4f7223a 100644 --- a/src/plugins/LinkPlugin/index.tsx +++ b/src/plugins/LinkPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {LinkPlugin as LexicalLinkPlugin} from '@lexical/react/LexicalLinkPlugin'; diff --git a/src/plugins/MarkdownShortcutPlugin/index.tsx b/src/plugins/MarkdownShortcutPlugin/index.tsx index 0d3aafd..25c7327 100644 --- a/src/plugins/MarkdownShortcutPlugin/index.tsx +++ b/src/plugins/MarkdownShortcutPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {MarkdownShortcutPlugin} from '@lexical/react/LexicalMarkdownShortcutPlugin'; diff --git a/src/plugins/MarkdownTransformers/index.ts b/src/plugins/MarkdownTransformers/index.ts index c560483..c016d67 100644 --- a/src/plugins/MarkdownTransformers/index.ts +++ b/src/plugins/MarkdownTransformers/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import { $convertFromMarkdownString, $convertToMarkdownString, diff --git a/src/plugins/MaxLengthPlugin/index.tsx b/src/plugins/MaxLengthPlugin/index.tsx index 1596e00..fa4c933 100644 --- a/src/plugins/MaxLengthPlugin/index.tsx +++ b/src/plugins/MaxLengthPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; import {$trimTextContentFromAnchor} from '@lexical/selection'; import {$restoreEditorState} from '@lexical/utils'; diff --git a/src/plugins/MentionsPlugin/index.tsx b/src/plugins/MentionsPlugin/index.tsx index 30035fa..01c7adc 100644 --- a/src/plugins/MentionsPlugin/index.tsx +++ b/src/plugins/MentionsPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/PageBreakPlugin/index.tsx b/src/plugins/PageBreakPlugin/index.tsx index 1f6a361..3595a70 100644 --- a/src/plugins/PageBreakPlugin/index.tsx +++ b/src/plugins/PageBreakPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/PasteLogPlugin/index.tsx b/src/plugins/PasteLogPlugin/index.tsx index aaf0f75..f800c77 100644 --- a/src/plugins/PasteLogPlugin/index.tsx +++ b/src/plugins/PasteLogPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/PollPlugin/index.tsx b/src/plugins/PollPlugin/index.tsx index 126cb5a..0a4183c 100644 --- a/src/plugins/PollPlugin/index.tsx +++ b/src/plugins/PollPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/ShortcutsPlugin/index.tsx b/src/plugins/ShortcutsPlugin/index.tsx index c08a67e..35cbb82 100644 --- a/src/plugins/ShortcutsPlugin/index.tsx +++ b/src/plugins/ShortcutsPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {TOGGLE_LINK_COMMAND} from '@lexical/link'; import {HeadingTagType} from '@lexical/rich-text'; import { diff --git a/src/plugins/ShortcutsPlugin/shortcuts.ts b/src/plugins/ShortcutsPlugin/shortcuts.ts index 64a25b2..6ea8b8a 100644 --- a/src/plugins/ShortcutsPlugin/shortcuts.ts +++ b/src/plugins/ShortcutsPlugin/shortcuts.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {IS_APPLE} from '@lexical/utils'; import {isModifierMatch} from 'lexical'; diff --git a/src/plugins/SpecialTextPlugin/index.ts b/src/plugins/SpecialTextPlugin/index.ts index 7ad21d6..11c1a02 100644 --- a/src/plugins/SpecialTextPlugin/index.ts +++ b/src/plugins/SpecialTextPlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/SpeechToTextPlugin/index.ts b/src/plugins/SpeechToTextPlugin/index.ts index 644cf2e..caeae4d 100644 --- a/src/plugins/SpeechToTextPlugin/index.ts +++ b/src/plugins/SpeechToTextPlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalCommand, LexicalEditor, RangeSelection} from 'lexical'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/StickyPlugin/index.ts b/src/plugins/StickyPlugin/index.ts index b0b3d70..ff2c305 100644 --- a/src/plugins/StickyPlugin/index.ts +++ b/src/plugins/StickyPlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/TabFocusPlugin/index.tsx b/src/plugins/TabFocusPlugin/index.tsx index 1fc7088..c011e0e 100644 --- a/src/plugins/TabFocusPlugin/index.tsx +++ b/src/plugins/TabFocusPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; import { $getSelection, diff --git a/src/plugins/TableActionMenuPlugin/index.tsx b/src/plugins/TableActionMenuPlugin/index.tsx index 0490e7e..afd7f7a 100644 --- a/src/plugins/TableActionMenuPlugin/index.tsx +++ b/src/plugins/TableActionMenuPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {ElementNode, LexicalEditor} from 'lexical'; import type {JSX} from 'react'; diff --git a/src/plugins/TableCellResizer/index.css b/src/plugins/TableCellResizer/index.css index bb6b674..f734a56 100644 --- a/src/plugins/TableCellResizer/index.css +++ b/src/plugins/TableCellResizer/index.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/TableCellResizer/index.tsx b/src/plugins/TableCellResizer/index.tsx index 7a2ce35..142b0b7 100644 --- a/src/plugins/TableCellResizer/index.tsx +++ b/src/plugins/TableCellResizer/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/TableHoverActionsPlugin/index.tsx b/src/plugins/TableHoverActionsPlugin/index.tsx index 68408cf..f645887 100644 --- a/src/plugins/TableHoverActionsPlugin/index.tsx +++ b/src/plugins/TableHoverActionsPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/TableOfContentsPlugin/index.css b/src/plugins/TableOfContentsPlugin/index.css index ecf6672..a91b172 100644 --- a/src/plugins/TableOfContentsPlugin/index.css +++ b/src/plugins/TableOfContentsPlugin/index.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + .table-of-contents .heading2 { margin-left: 10px; } diff --git a/src/plugins/TableOfContentsPlugin/index.tsx b/src/plugins/TableOfContentsPlugin/index.tsx index e8d3256..d7091ea 100644 --- a/src/plugins/TableOfContentsPlugin/index.tsx +++ b/src/plugins/TableOfContentsPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/TablePlugin.tsx b/src/plugins/TablePlugin.tsx index 311dde6..56b7293 100644 --- a/src/plugins/TablePlugin.tsx +++ b/src/plugins/TablePlugin.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/TestRecorderPlugin/index.tsx b/src/plugins/TestRecorderPlugin/index.tsx index d993745..f5fcb38 100644 --- a/src/plugins/TestRecorderPlugin/index.tsx +++ b/src/plugins/TestRecorderPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {BaseSelection, LexicalEditor} from 'lexical'; import type {JSX} from 'react'; diff --git a/src/plugins/ToolbarPlugin/fontSize.css b/src/plugins/ToolbarPlugin/fontSize.css index cd4c13a..22d5b4a 100644 --- a/src/plugins/ToolbarPlugin/fontSize.css +++ b/src/plugins/ToolbarPlugin/fontSize.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + .font-size-input { font-weight: bold; font-size: 14px; diff --git a/src/plugins/ToolbarPlugin/fontSize.tsx b/src/plugins/ToolbarPlugin/fontSize.tsx index d24fdde..c15b62a 100644 --- a/src/plugins/ToolbarPlugin/fontSize.tsx +++ b/src/plugins/ToolbarPlugin/fontSize.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import './fontSize.css'; import {LexicalEditor} from 'lexical'; diff --git a/src/plugins/ToolbarPlugin/index.tsx b/src/plugins/ToolbarPlugin/index.tsx index a35b51f..06f93c0 100644 --- a/src/plugins/ToolbarPlugin/index.tsx +++ b/src/plugins/ToolbarPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import { diff --git a/src/plugins/ToolbarPlugin/utils.ts b/src/plugins/ToolbarPlugin/utils.ts index 6c1501a..066c6f2 100644 --- a/src/plugins/ToolbarPlugin/utils.ts +++ b/src/plugins/ToolbarPlugin/utils.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/plugins/TreeViewPlugin/index.tsx b/src/plugins/TreeViewPlugin/index.tsx index 95f1992..f9a847f 100644 --- a/src/plugins/TreeViewPlugin/index.tsx +++ b/src/plugins/TreeViewPlugin/index.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/TwitterPlugin/index.ts b/src/plugins/TwitterPlugin/index.ts index be2ed5a..75ed9bf 100644 --- a/src/plugins/TwitterPlugin/index.ts +++ b/src/plugins/TwitterPlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/plugins/TypingPerfPlugin/index.ts b/src/plugins/TypingPerfPlugin/index.ts index 63a29f5..ed82207 100644 --- a/src/plugins/TypingPerfPlugin/index.ts +++ b/src/plugins/TypingPerfPlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useEffect} from 'react'; diff --git a/src/plugins/YouTubePlugin/index.ts b/src/plugins/YouTubePlugin/index.ts index 40565c2..87fb568 100644 --- a/src/plugins/YouTubePlugin/index.ts +++ b/src/plugins/YouTubePlugin/index.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; diff --git a/src/server/validation.ts b/src/server/validation.ts index 26e4c1e..44036c2 100644 --- a/src/server/validation.ts +++ b/src/server/validation.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {createHeadlessEditor} from '@lexical/headless'; import {$isMarkNode, $unwrapMarkNode} from '@lexical/mark'; import * as http from 'http'; diff --git a/src/setupEnv.ts b/src/setupEnv.ts index 250f4a4..9de6715 100644 --- a/src/setupEnv.ts +++ b/src/setupEnv.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {INITIAL_SETTINGS, Settings} from './appSettings'; // Export a function so this is not tree-shaken, diff --git a/src/themes/CommentEditorTheme.css b/src/themes/CommentEditorTheme.css index e50318c..214e795 100644 --- a/src/themes/CommentEditorTheme.css +++ b/src/themes/CommentEditorTheme.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/themes/CommentEditorTheme.ts b/src/themes/CommentEditorTheme.ts index 631e101..c9cea0e 100644 --- a/src/themes/CommentEditorTheme.ts +++ b/src/themes/CommentEditorTheme.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {EditorThemeClasses} from 'lexical'; import './CommentEditorTheme.css'; diff --git a/src/themes/PlaygroundEditorTheme.css b/src/themes/PlaygroundEditorTheme.css index cf3aa06..778865a 100644 --- a/src/themes/PlaygroundEditorTheme.css +++ b/src/themes/PlaygroundEditorTheme.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/themes/PlaygroundEditorTheme.ts b/src/themes/PlaygroundEditorTheme.ts index 7fe7ee5..f8ea231 100644 --- a/src/themes/PlaygroundEditorTheme.ts +++ b/src/themes/PlaygroundEditorTheme.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {EditorThemeClasses} from 'lexical'; import './PlaygroundEditorTheme.css'; diff --git a/src/themes/StickyEditorTheme.css b/src/themes/StickyEditorTheme.css index f563869..387c4e4 100644 --- a/src/themes/StickyEditorTheme.css +++ b/src/themes/StickyEditorTheme.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/themes/StickyEditorTheme.ts b/src/themes/StickyEditorTheme.ts index 584716c..6a27084 100644 --- a/src/themes/StickyEditorTheme.ts +++ b/src/themes/StickyEditorTheme.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {EditorThemeClasses} from 'lexical'; import './StickyEditorTheme.css'; diff --git a/src/tyes.dt.ts b/src/tyes.dt.ts index e6a2381..fc771fc 100644 --- a/src/tyes.dt.ts +++ b/src/tyes.dt.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + declare module '*.svg' { const content: string; export default content; diff --git a/src/ui/Button.css b/src/ui/Button.css index 946c4dc..188d778 100644 --- a/src/ui/Button.css +++ b/src/ui/Button.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/ui/Button.tsx b/src/ui/Button.tsx index 3efe84b..1159400 100644 --- a/src/ui/Button.tsx +++ b/src/ui/Button.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './Button.css'; diff --git a/src/ui/ColorPicker.css b/src/ui/ColorPicker.css index 088681c..91a2ad0 100644 --- a/src/ui/ColorPicker.css +++ b/src/ui/ColorPicker.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + .color-picker-wrapper { padding: 20px; } diff --git a/src/ui/ColorPicker.tsx b/src/ui/ColorPicker.tsx index fd54bed..f74a8da 100644 --- a/src/ui/ColorPicker.tsx +++ b/src/ui/ColorPicker.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './ColorPicker.css'; diff --git a/src/ui/ContentEditable.css b/src/ui/ContentEditable.css index 6c86e73..f8e0648 100644 --- a/src/ui/ContentEditable.css +++ b/src/ui/ContentEditable.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/ui/ContentEditable.tsx b/src/ui/ContentEditable.tsx index 8779ff3..370464e 100644 --- a/src/ui/ContentEditable.tsx +++ b/src/ui/ContentEditable.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './ContentEditable.css'; diff --git a/src/ui/Dialog.css b/src/ui/Dialog.css index 9474211..1d53b5c 100644 --- a/src/ui/Dialog.css +++ b/src/ui/Dialog.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + .DialogActions { display: flex; flex-direction: row; diff --git a/src/ui/Dialog.tsx b/src/ui/Dialog.tsx index cd2748e..27cd04f 100644 --- a/src/ui/Dialog.tsx +++ b/src/ui/Dialog.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './Dialog.css'; diff --git a/src/ui/DropDown.tsx b/src/ui/DropDown.tsx index 0232ad8..8739e1b 100644 --- a/src/ui/DropDown.tsx +++ b/src/ui/DropDown.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import {isDOMNode} from 'lexical'; diff --git a/src/ui/DropdownColorPicker.tsx b/src/ui/DropdownColorPicker.tsx index 5749f60..376ed88 100644 --- a/src/ui/DropdownColorPicker.tsx +++ b/src/ui/DropdownColorPicker.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import * as React from 'react'; import ColorPicker from './ColorPicker'; diff --git a/src/ui/EquationEditor.css b/src/ui/EquationEditor.css index 9f66abb..ac82f63 100644 --- a/src/ui/EquationEditor.css +++ b/src/ui/EquationEditor.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/ui/EquationEditor.tsx b/src/ui/EquationEditor.tsx index 135d843..c12af3b 100644 --- a/src/ui/EquationEditor.tsx +++ b/src/ui/EquationEditor.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX, Ref, RefObject} from 'react'; import './EquationEditor.css'; diff --git a/src/ui/ExcalidrawModal.css b/src/ui/ExcalidrawModal.css index 7438d60..72bbbdf 100644 --- a/src/ui/ExcalidrawModal.css +++ b/src/ui/ExcalidrawModal.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/ui/ExcalidrawModal.tsx b/src/ui/ExcalidrawModal.tsx index 2d8a28e..60d5ca0 100644 --- a/src/ui/ExcalidrawModal.tsx +++ b/src/ui/ExcalidrawModal.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type { AppState, BinaryFiles, diff --git a/src/ui/FileInput.tsx b/src/ui/FileInput.tsx index 82a7d35..74bad43 100644 --- a/src/ui/FileInput.tsx +++ b/src/ui/FileInput.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './Input.css'; diff --git a/src/ui/FlashMessage.css b/src/ui/FlashMessage.css index 265d67d..7427092 100644 --- a/src/ui/FlashMessage.css +++ b/src/ui/FlashMessage.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/ui/FlashMessage.tsx b/src/ui/FlashMessage.tsx index 9a77a45..ba4abcc 100644 --- a/src/ui/FlashMessage.tsx +++ b/src/ui/FlashMessage.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './FlashMessage.css'; diff --git a/src/ui/ImageResizer.tsx b/src/ui/ImageResizer.tsx index 1b34e26..adf7a20 100644 --- a/src/ui/ImageResizer.tsx +++ b/src/ui/ImageResizer.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {LexicalEditor} from 'lexical'; import type {JSX} from 'react'; diff --git a/src/ui/Input.css b/src/ui/Input.css index 60eb2f1..fd8beb9 100644 --- a/src/ui/Input.css +++ b/src/ui/Input.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/ui/KatexEquationAlterer.css b/src/ui/KatexEquationAlterer.css index 1f32c1c..8d12edc 100644 --- a/src/ui/KatexEquationAlterer.css +++ b/src/ui/KatexEquationAlterer.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/ui/KatexEquationAlterer.tsx b/src/ui/KatexEquationAlterer.tsx index 4a3f025..5ab2ff5 100644 --- a/src/ui/KatexEquationAlterer.tsx +++ b/src/ui/KatexEquationAlterer.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './KatexEquationAlterer.css'; diff --git a/src/ui/KatexRenderer.tsx b/src/ui/KatexRenderer.tsx index 93bc0b0..d54b7d4 100644 --- a/src/ui/KatexRenderer.tsx +++ b/src/ui/KatexRenderer.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import katex from 'katex'; diff --git a/src/ui/Modal.css b/src/ui/Modal.css index 908500b..0d1e8c4 100644 --- a/src/ui/Modal.css +++ b/src/ui/Modal.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/ui/Modal.tsx b/src/ui/Modal.tsx index cd54964..5dcfe6b 100644 --- a/src/ui/Modal.tsx +++ b/src/ui/Modal.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './Modal.css'; diff --git a/src/ui/Select.css b/src/ui/Select.css index 1e8888a..3288d5b 100644 --- a/src/ui/Select.css +++ b/src/ui/Select.css @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + select { appearance: none; -webkit-appearance: none; diff --git a/src/ui/Select.tsx b/src/ui/Select.tsx index 4ca006d..2abb67a 100644 --- a/src/ui/Select.tsx +++ b/src/ui/Select.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './Select.css'; diff --git a/src/ui/Switch.tsx b/src/ui/Switch.tsx index 1cafa5c..6378a72 100644 --- a/src/ui/Switch.tsx +++ b/src/ui/Switch.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import * as React from 'react'; diff --git a/src/ui/TextInput.tsx b/src/ui/TextInput.tsx index 0ebe81a..93c0de3 100644 --- a/src/ui/TextInput.tsx +++ b/src/ui/TextInput.tsx @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import type {JSX} from 'react'; import './Input.css'; diff --git a/src/utils/docSerialization.ts b/src/utils/docSerialization.ts index cff02cf..d21f08f 100644 --- a/src/utils/docSerialization.ts +++ b/src/utils/docSerialization.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {SerializedDocument} from '@lexical/file'; // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/src/utils/emoji-list.ts b/src/utils/emoji-list.ts index 5b7b573..b5a8bc2 100644 --- a/src/utils/emoji-list.ts +++ b/src/utils/emoji-list.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /* eslint-disable */ // This list was sourced from Github (MIT License) diff --git a/src/utils/getDOMRangeRect.ts b/src/utils/getDOMRangeRect.ts index 8b02ca3..710dc34 100644 --- a/src/utils/getDOMRangeRect.ts +++ b/src/utils/getDOMRangeRect.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/utils/getSelectedNode.ts b/src/utils/getSelectedNode.ts index b106e4c..4ff94d5 100644 --- a/src/utils/getSelectedNode.ts +++ b/src/utils/getSelectedNode.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/utils/getThemeSelector.ts b/src/utils/getThemeSelector.ts index 22aacf1..95ed444 100644 --- a/src/utils/getThemeSelector.ts +++ b/src/utils/getThemeSelector.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import {EditorThemeClasses} from 'lexical'; export function getThemeSelector( diff --git a/src/utils/isMobileWidth.ts b/src/utils/isMobileWidth.ts index ade1bab..092674d 100644 --- a/src/utils/isMobileWidth.ts +++ b/src/utils/isMobileWidth.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/utils/joinClasses.ts b/src/utils/joinClasses.ts index e4e9114..805aa24 100644 --- a/src/utils/joinClasses.ts +++ b/src/utils/joinClasses.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + export default function joinClasses( ...args: Array ) { diff --git a/src/utils/setFloatingElemPosition.ts b/src/utils/setFloatingElemPosition.ts index 4934e65..b8cff7e 100644 --- a/src/utils/setFloatingElemPosition.ts +++ b/src/utils/setFloatingElemPosition.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/utils/setFloatingElemPositionForLinkEditor.ts b/src/utils/setFloatingElemPositionForLinkEditor.ts index 8b45582..6b7f226 100644 --- a/src/utils/setFloatingElemPositionForLinkEditor.ts +++ b/src/utils/setFloatingElemPositionForLinkEditor.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/src/utils/swipe.ts b/src/utils/swipe.ts index 61d4854..6440654 100644 --- a/src/utils/swipe.ts +++ b/src/utils/swipe.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + type Force = [number, number]; type Listener = (force: Force, e: TouchEvent) => void; type ElementValues = { diff --git a/src/utils/url.ts b/src/utils/url.ts index f543e99..62cdbbb 100644 --- a/src/utils/url.ts +++ b/src/utils/url.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + const SUPPORTED_URL_PROTOCOLS = new Set([ 'http:', 'https:', diff --git a/test-debug.html b/test-debug.html index 4842aea..a4bb7c1 100644 --- a/test-debug.html +++ b/test-debug.html @@ -1,3 +1,8 @@ + + diff --git a/tests/__init__.py b/tests/__init__.py index 739954c..84f9fb2 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1 +1,4 @@ +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + # Tests package \ No newline at end of file diff --git a/tests/test_client_id_correlation.py b/tests/test_client_id_correlation.py index 3e28383..9d7cac7 100644 --- a/tests/test_client_id_correlation.py +++ b/tests/test_client_id_correlation.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """ Test script to verify client ID correlation between WebSocket connections and frontend client IDs """ diff --git a/tests/test_direct_init.py b/tests/test_direct_init.py index 47b61ba..88c8abe 100644 --- a/tests/test_direct_init.py +++ b/tests/test_direct_init.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """Direct test of the Loro document initialization to isolate the issue.""" import logging diff --git a/tests/test_lexical_converter.py b/tests/test_lexical_converter.py index 13e999c..5ec9aea 100644 --- a/tests/test_lexical_converter.py +++ b/tests/test_lexical_converter.py @@ -1,3 +1,6 @@ +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """ Unit tests for lexical_converter.py diff --git a/tests/test_mcp_server_integration.py b/tests/test_mcp_server_integration.py index 984212e..0df14de 100644 --- a/tests/test_mcp_server_integration.py +++ b/tests/test_mcp_server_integration.py @@ -1,3 +1,6 @@ +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """ Integration tests for MCP server document operations. diff --git a/tests/test_persistence.py b/tests/test_persistence.py index f7f8e39..dfb4d45 100644 --- a/tests/test_persistence.py +++ b/tests/test_persistence.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """ Test script for WebSocket server persistence functionality """ diff --git a/tests/test_tree_api.py b/tests/test_tree_api.py index a73f9d4..eee6e50 100644 --- a/tests/test_tree_api.py +++ b/tests/test_tree_api.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """Test the actual tree API to understand available methods.""" import logging diff --git a/tests/test_websocket_debug.py b/tests/test_websocket_debug.py index 52311ad..0b2be28 100644 --- a/tests/test_websocket_debug.py +++ b/tests/test_websocket_debug.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2023-2025 Datalayer, Inc. +# Distributed under the terms of the MIT License. + """Test the websocket server functionality to debug tree operations.""" import json diff --git a/vite.config.ts b/vite.config.ts index 6418e57..e28c56c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + import babel from '@rollup/plugin-babel'; import commonjs from '@rollup/plugin-commonjs'; import react from '@vitejs/plugin-react'; diff --git a/viteCopyEsm.ts b/viteCopyEsm.ts index 9dabd1b..139115e 100644 --- a/viteCopyEsm.ts +++ b/viteCopyEsm.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. * diff --git a/viteCopyExcalidrawAssets.ts b/viteCopyExcalidrawAssets.ts index ff2f1c3..c61e2a2 100644 --- a/viteCopyExcalidrawAssets.ts +++ b/viteCopyExcalidrawAssets.ts @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2023-2025 Datalayer, Inc. + * Distributed under the terms of the MIT License. + */ + /** * Copyright (c) Meta Platforms, Inc. and affiliates. *