@ekz/lexical-react 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@ekz/lexicalExtensionComponent.dev.js +53 -0
- package/@ekz/lexicalExtensionComponent.dev.mjs +51 -0
- package/@ekz/lexicalExtensionComponent.js +11 -0
- package/@ekz/lexicalExtensionComponent.mjs +12 -0
- package/@ekz/lexicalExtensionComponent.node.mjs +10 -0
- package/@ekz/lexicalExtensionComponent.prod.js +9 -0
- package/@ekz/lexicalExtensionComponent.prod.mjs +9 -0
- package/@ekz/lexicalReactExtension.dev.js +187 -0
- package/@ekz/lexicalReactExtension.dev.mjs +184 -0
- package/@ekz/lexicalReactExtension.js +11 -0
- package/@ekz/lexicalReactExtension.mjs +13 -0
- package/@ekz/lexicalReactExtension.node.mjs +11 -0
- package/@ekz/lexicalReactExtension.prod.js +9 -0
- package/@ekz/lexicalReactExtension.prod.mjs +9 -0
- package/@ekz/lexicalReactPluginHostExtension.dev.js +189 -0
- package/@ekz/lexicalReactPluginHostExtension.dev.mjs +181 -0
- package/@ekz/lexicalReactPluginHostExtension.js +11 -0
- package/@ekz/lexicalReactPluginHostExtension.mjs +18 -0
- package/@ekz/lexicalReactPluginHostExtension.node.mjs +16 -0
- package/@ekz/lexicalReactPluginHostExtension.prod.js +9 -0
- package/@ekz/lexicalReactPluginHostExtension.prod.mjs +9 -0
- package/@ekz/lexicalReactProviderExtension.dev.js +33 -0
- package/@ekz/lexicalReactProviderExtension.dev.mjs +31 -0
- package/@ekz/lexicalReactProviderExtension.js +11 -0
- package/@ekz/lexicalReactProviderExtension.mjs +12 -0
- package/@ekz/lexicalReactProviderExtension.node.mjs +10 -0
- package/@ekz/lexicalReactProviderExtension.prod.js +9 -0
- package/@ekz/lexicalReactProviderExtension.prod.mjs +9 -0
- package/@ekz/lexicalTreeViewExtension.dev.js +57 -0
- package/@ekz/lexicalTreeViewExtension.dev.mjs +54 -0
- package/@ekz/lexicalTreeViewExtension.js +11 -0
- package/@ekz/lexicalTreeViewExtension.mjs +13 -0
- package/@ekz/lexicalTreeViewExtension.node.mjs +11 -0
- package/@ekz/lexicalTreeViewExtension.prod.js +9 -0
- package/@ekz/lexicalTreeViewExtension.prod.mjs +9 -0
- package/ExtensionComponent.d.ts +42 -0
- package/LICENSE +21 -0
- package/LexicalAutoEmbedPlugin.d.ts +39 -0
- package/LexicalAutoEmbedPlugin.dev.js +146 -0
- package/LexicalAutoEmbedPlugin.dev.mjs +141 -0
- package/LexicalAutoEmbedPlugin.js +11 -0
- package/LexicalAutoEmbedPlugin.js.flow +64 -0
- package/LexicalAutoEmbedPlugin.mjs +15 -0
- package/LexicalAutoEmbedPlugin.node.mjs +13 -0
- package/LexicalAutoEmbedPlugin.prod.js +9 -0
- package/LexicalAutoEmbedPlugin.prod.mjs +9 -0
- package/LexicalAutoFocusPlugin.d.ts +12 -0
- package/LexicalAutoFocusPlugin.dev.js +47 -0
- package/LexicalAutoFocusPlugin.dev.mjs +45 -0
- package/LexicalAutoFocusPlugin.js +11 -0
- package/LexicalAutoFocusPlugin.js.flow +14 -0
- package/LexicalAutoFocusPlugin.mjs +12 -0
- package/LexicalAutoFocusPlugin.node.mjs +10 -0
- package/LexicalAutoFocusPlugin.prod.js +9 -0
- package/LexicalAutoFocusPlugin.prod.mjs +9 -0
- package/LexicalAutoLinkPlugin.d.ts +14 -0
- package/LexicalAutoLinkPlugin.dev.js +54 -0
- package/LexicalAutoLinkPlugin.dev.mjs +52 -0
- package/LexicalAutoLinkPlugin.js +11 -0
- package/LexicalAutoLinkPlugin.js.flow +18 -0
- package/LexicalAutoLinkPlugin.mjs +13 -0
- package/LexicalAutoLinkPlugin.node.mjs +11 -0
- package/LexicalAutoLinkPlugin.prod.js +9 -0
- package/LexicalAutoLinkPlugin.prod.mjs +9 -0
- package/LexicalBlockWithAlignableContents.d.ts +21 -0
- package/LexicalBlockWithAlignableContents.dev.js +81 -0
- package/LexicalBlockWithAlignableContents.dev.mjs +79 -0
- package/LexicalBlockWithAlignableContents.js +11 -0
- package/LexicalBlockWithAlignableContents.js.flow +28 -0
- package/LexicalBlockWithAlignableContents.mjs +12 -0
- package/LexicalBlockWithAlignableContents.node.mjs +10 -0
- package/LexicalBlockWithAlignableContents.prod.js +9 -0
- package/LexicalBlockWithAlignableContents.prod.mjs +9 -0
- package/LexicalCharacterLimitPlugin.d.ts +15 -0
- package/LexicalCharacterLimitPlugin.dev.js +292 -0
- package/LexicalCharacterLimitPlugin.dev.mjs +290 -0
- package/LexicalCharacterLimitPlugin.js +11 -0
- package/LexicalCharacterLimitPlugin.js.flow +12 -0
- package/LexicalCharacterLimitPlugin.mjs +12 -0
- package/LexicalCharacterLimitPlugin.node.mjs +10 -0
- package/LexicalCharacterLimitPlugin.prod.js +9 -0
- package/LexicalCharacterLimitPlugin.prod.mjs +9 -0
- package/LexicalCheckListPlugin.d.ts +8 -0
- package/LexicalCheckListPlugin.dev.js +31 -0
- package/LexicalCheckListPlugin.dev.mjs +29 -0
- package/LexicalCheckListPlugin.js +11 -0
- package/LexicalCheckListPlugin.js.flow +10 -0
- package/LexicalCheckListPlugin.mjs +12 -0
- package/LexicalCheckListPlugin.node.mjs +10 -0
- package/LexicalCheckListPlugin.prod.js +9 -0
- package/LexicalCheckListPlugin.prod.mjs +9 -0
- package/LexicalClearEditorPlugin.d.ts +13 -0
- package/LexicalClearEditorPlugin.dev.js +55 -0
- package/LexicalClearEditorPlugin.dev.mjs +53 -0
- package/LexicalClearEditorPlugin.js +11 -0
- package/LexicalClearEditorPlugin.js.flow +14 -0
- package/LexicalClearEditorPlugin.mjs +12 -0
- package/LexicalClearEditorPlugin.node.mjs +10 -0
- package/LexicalClearEditorPlugin.prod.js +9 -0
- package/LexicalClearEditorPlugin.prod.mjs +9 -0
- package/LexicalClickableLinkPlugin.d.ts +11 -0
- package/LexicalClickableLinkPlugin.dev.js +38 -0
- package/LexicalClickableLinkPlugin.dev.mjs +36 -0
- package/LexicalClickableLinkPlugin.js +11 -0
- package/LexicalClickableLinkPlugin.js.flow +12 -0
- package/LexicalClickableLinkPlugin.mjs +12 -0
- package/LexicalClickableLinkPlugin.node.mjs +10 -0
- package/LexicalClickableLinkPlugin.prod.js +9 -0
- package/LexicalClickableLinkPlugin.prod.mjs +9 -0
- package/LexicalCollaborationContext.d.ts +19 -0
- package/LexicalCollaborationContext.dev.js +69 -0
- package/LexicalCollaborationContext.dev.mjs +65 -0
- package/LexicalCollaborationContext.js +11 -0
- package/LexicalCollaborationContext.js.flow +22 -0
- package/LexicalCollaborationContext.mjs +14 -0
- package/LexicalCollaborationContext.node.mjs +12 -0
- package/LexicalCollaborationContext.prod.js +9 -0
- package/LexicalCollaborationContext.prod.mjs +9 -0
- package/LexicalCollaborationPlugin.d.ts +39 -0
- package/LexicalCollaborationPlugin.dev.js +584 -0
- package/LexicalCollaborationPlugin.dev.mjs +569 -0
- package/LexicalCollaborationPlugin.js +11 -0
- package/LexicalCollaborationPlugin.js.flow +50 -0
- package/LexicalCollaborationPlugin.mjs +13 -0
- package/LexicalCollaborationPlugin.node.mjs +11 -0
- package/LexicalCollaborationPlugin.prod.js +9 -0
- package/LexicalCollaborationPlugin.prod.mjs +9 -0
- package/LexicalComposer.d.ts +25 -0
- package/LexicalComposer.dev.js +134 -0
- package/LexicalComposer.dev.mjs +132 -0
- package/LexicalComposer.js +11 -0
- package/LexicalComposer.js.flow +40 -0
- package/LexicalComposer.mjs +12 -0
- package/LexicalComposer.node.mjs +10 -0
- package/LexicalComposer.prod.js +9 -0
- package/LexicalComposer.prod.mjs +9 -0
- package/LexicalComposerContext.d.ts +18 -0
- package/LexicalComposerContext.dev.js +55 -0
- package/LexicalComposerContext.dev.mjs +51 -0
- package/LexicalComposerContext.js +11 -0
- package/LexicalComposerContext.js.flow +27 -0
- package/LexicalComposerContext.mjs +14 -0
- package/LexicalComposerContext.node.mjs +12 -0
- package/LexicalComposerContext.prod.js +9 -0
- package/LexicalComposerContext.prod.mjs +9 -0
- package/LexicalContentEditable.d.ts +26 -0
- package/LexicalContentEditable.dev.js +242 -0
- package/LexicalContentEditable.dev.mjs +239 -0
- package/LexicalContentEditable.js +11 -0
- package/LexicalContentEditable.js.flow +80 -0
- package/LexicalContentEditable.mjs +13 -0
- package/LexicalContentEditable.node.mjs +11 -0
- package/LexicalContentEditable.prod.js +9 -0
- package/LexicalContentEditable.prod.mjs +9 -0
- package/LexicalContextMenuPlugin.d.ts +36 -0
- package/LexicalContextMenuPlugin.dev.js +524 -0
- package/LexicalContextMenuPlugin.dev.mjs +509 -0
- package/LexicalContextMenuPlugin.js +11 -0
- package/LexicalContextMenuPlugin.js.flow +13 -0
- package/LexicalContextMenuPlugin.mjs +13 -0
- package/LexicalContextMenuPlugin.node.mjs +11 -0
- package/LexicalContextMenuPlugin.prod.js +9 -0
- package/LexicalContextMenuPlugin.prod.mjs +9 -0
- package/LexicalDecoratorBlockNode.d.ts +25 -0
- package/LexicalDecoratorBlockNode.dev.js +59 -0
- package/LexicalDecoratorBlockNode.dev.mjs +56 -0
- package/LexicalDecoratorBlockNode.js +11 -0
- package/LexicalDecoratorBlockNode.js.flow +35 -0
- package/LexicalDecoratorBlockNode.mjs +13 -0
- package/LexicalDecoratorBlockNode.node.mjs +11 -0
- package/LexicalDecoratorBlockNode.prod.js +9 -0
- package/LexicalDecoratorBlockNode.prod.mjs +9 -0
- package/LexicalDraggableBlockPlugin.d.ts +18 -0
- package/LexicalDraggableBlockPlugin.dev.js +655 -0
- package/LexicalDraggableBlockPlugin.dev.mjs +653 -0
- package/LexicalDraggableBlockPlugin.js +11 -0
- package/LexicalDraggableBlockPlugin.js.flow +24 -0
- package/LexicalDraggableBlockPlugin.mjs +12 -0
- package/LexicalDraggableBlockPlugin.node.mjs +10 -0
- package/LexicalDraggableBlockPlugin.prod.js +9 -0
- package/LexicalDraggableBlockPlugin.prod.mjs +9 -0
- package/LexicalEditorRefPlugin.d.ts +20 -0
- package/LexicalEditorRefPlugin.dev.js +58 -0
- package/LexicalEditorRefPlugin.dev.mjs +43 -0
- package/LexicalEditorRefPlugin.js +11 -0
- package/LexicalEditorRefPlugin.js.flow +19 -0
- package/LexicalEditorRefPlugin.mjs +12 -0
- package/LexicalEditorRefPlugin.node.mjs +10 -0
- package/LexicalEditorRefPlugin.prod.js +9 -0
- package/LexicalEditorRefPlugin.prod.mjs +9 -0
- package/LexicalErrorBoundary.d.ts +13 -0
- package/LexicalErrorBoundary.dev.js +40 -0
- package/LexicalErrorBoundary.dev.mjs +38 -0
- package/LexicalErrorBoundary.js +11 -0
- package/LexicalErrorBoundary.js.flow +17 -0
- package/LexicalErrorBoundary.mjs +12 -0
- package/LexicalErrorBoundary.node.mjs +10 -0
- package/LexicalErrorBoundary.prod.js +9 -0
- package/LexicalErrorBoundary.prod.mjs +9 -0
- package/LexicalExtensionComponent.js.flow +12 -0
- package/LexicalExtensionComposer.d.ts +69 -0
- package/LexicalExtensionComposer.dev.js +105 -0
- package/LexicalExtensionComposer.dev.mjs +103 -0
- package/LexicalExtensionComposer.js +11 -0
- package/LexicalExtensionComposer.js.flow +20 -0
- package/LexicalExtensionComposer.mjs +12 -0
- package/LexicalExtensionComposer.node.mjs +10 -0
- package/LexicalExtensionComposer.prod.js +9 -0
- package/LexicalExtensionComposer.prod.mjs +9 -0
- package/LexicalHashtagPlugin.d.ts +9 -0
- package/LexicalHashtagPlugin.dev.js +34 -0
- package/LexicalHashtagPlugin.dev.mjs +32 -0
- package/LexicalHashtagPlugin.js +11 -0
- package/LexicalHashtagPlugin.js.flow +10 -0
- package/LexicalHashtagPlugin.mjs +12 -0
- package/LexicalHashtagPlugin.node.mjs +10 -0
- package/LexicalHashtagPlugin.prod.js +9 -0
- package/LexicalHashtagPlugin.prod.mjs +9 -0
- package/LexicalHistoryPlugin.d.ts +14 -0
- package/LexicalHistoryPlugin.dev.js +48 -0
- package/LexicalHistoryPlugin.dev.mjs +46 -0
- package/LexicalHistoryPlugin.js +11 -0
- package/LexicalHistoryPlugin.js.flow +28 -0
- package/LexicalHistoryPlugin.mjs +13 -0
- package/LexicalHistoryPlugin.node.mjs +11 -0
- package/LexicalHistoryPlugin.prod.js +9 -0
- package/LexicalHistoryPlugin.prod.mjs +9 -0
- package/LexicalHorizontalRuleNode.d.ts +25 -0
- package/LexicalHorizontalRuleNode.dev.js +102 -0
- package/LexicalHorizontalRuleNode.dev.mjs +98 -0
- package/LexicalHorizontalRuleNode.js +11 -0
- package/LexicalHorizontalRuleNode.js.flow +27 -0
- package/LexicalHorizontalRuleNode.mjs +15 -0
- package/LexicalHorizontalRuleNode.node.mjs +13 -0
- package/LexicalHorizontalRuleNode.prod.js +9 -0
- package/LexicalHorizontalRuleNode.prod.mjs +9 -0
- package/LexicalHorizontalRulePlugin.d.ts +8 -0
- package/LexicalHorizontalRulePlugin.dev.js +44 -0
- package/LexicalHorizontalRulePlugin.dev.mjs +42 -0
- package/LexicalHorizontalRulePlugin.js +11 -0
- package/LexicalHorizontalRulePlugin.js.flow +12 -0
- package/LexicalHorizontalRulePlugin.mjs +12 -0
- package/LexicalHorizontalRulePlugin.node.mjs +10 -0
- package/LexicalHorizontalRulePlugin.prod.js +9 -0
- package/LexicalHorizontalRulePlugin.prod.mjs +9 -0
- package/LexicalLinkPlugin.d.ts +14 -0
- package/LexicalLinkPlugin.dev.js +43 -0
- package/LexicalLinkPlugin.dev.mjs +41 -0
- package/LexicalLinkPlugin.js +11 -0
- package/LexicalLinkPlugin.js.flow +21 -0
- package/LexicalLinkPlugin.mjs +12 -0
- package/LexicalLinkPlugin.node.mjs +10 -0
- package/LexicalLinkPlugin.prod.js +9 -0
- package/LexicalLinkPlugin.prod.mjs +9 -0
- package/LexicalListPlugin.d.ts +20 -0
- package/LexicalListPlugin.dev.js +55 -0
- package/LexicalListPlugin.dev.mjs +53 -0
- package/LexicalListPlugin.js +11 -0
- package/LexicalListPlugin.js.flow +15 -0
- package/LexicalListPlugin.mjs +12 -0
- package/LexicalListPlugin.node.mjs +10 -0
- package/LexicalListPlugin.prod.js +9 -0
- package/LexicalListPlugin.prod.mjs +9 -0
- package/LexicalMarkdownShortcutPlugin.d.ts +12 -0
- package/LexicalMarkdownShortcutPlugin.dev.js +55 -0
- package/LexicalMarkdownShortcutPlugin.dev.mjs +52 -0
- package/LexicalMarkdownShortcutPlugin.js +11 -0
- package/LexicalMarkdownShortcutPlugin.js.flow +16 -0
- package/LexicalMarkdownShortcutPlugin.mjs +13 -0
- package/LexicalMarkdownShortcutPlugin.node.mjs +11 -0
- package/LexicalMarkdownShortcutPlugin.prod.js +9 -0
- package/LexicalMarkdownShortcutPlugin.prod.mjs +9 -0
- package/LexicalNestedComposer.d.ts +57 -0
- package/LexicalNestedComposer.dev.js +161 -0
- package/LexicalNestedComposer.dev.mjs +159 -0
- package/LexicalNestedComposer.js +11 -0
- package/LexicalNestedComposer.js.flow +26 -0
- package/LexicalNestedComposer.mjs +12 -0
- package/LexicalNestedComposer.node.mjs +10 -0
- package/LexicalNestedComposer.prod.js +9 -0
- package/LexicalNestedComposer.prod.mjs +9 -0
- package/LexicalNodeContextMenuPlugin.d.ts +46 -0
- package/LexicalNodeContextMenuPlugin.dev.js +257 -0
- package/LexicalNodeContextMenuPlugin.dev.mjs +253 -0
- package/LexicalNodeContextMenuPlugin.js +11 -0
- package/LexicalNodeContextMenuPlugin.js.flow +12 -0
- package/LexicalNodeContextMenuPlugin.mjs +14 -0
- package/LexicalNodeContextMenuPlugin.node.mjs +12 -0
- package/LexicalNodeContextMenuPlugin.prod.js +9 -0
- package/LexicalNodeContextMenuPlugin.prod.mjs +9 -0
- package/LexicalNodeEventPlugin.d.ts +13 -0
- package/LexicalNodeEventPlugin.dev.js +61 -0
- package/LexicalNodeEventPlugin.dev.mjs +59 -0
- package/LexicalNodeEventPlugin.js +11 -0
- package/LexicalNodeEventPlugin.js.flow +20 -0
- package/LexicalNodeEventPlugin.mjs +12 -0
- package/LexicalNodeEventPlugin.node.mjs +10 -0
- package/LexicalNodeEventPlugin.prod.js +9 -0
- package/LexicalNodeEventPlugin.prod.mjs +9 -0
- package/LexicalNodeMenuPlugin.d.ts +24 -0
- package/LexicalNodeMenuPlugin.dev.js +527 -0
- package/LexicalNodeMenuPlugin.dev.mjs +524 -0
- package/LexicalNodeMenuPlugin.js +11 -0
- package/LexicalNodeMenuPlugin.js.flow +64 -0
- package/LexicalNodeMenuPlugin.mjs +13 -0
- package/LexicalNodeMenuPlugin.node.mjs +11 -0
- package/LexicalNodeMenuPlugin.prod.js +9 -0
- package/LexicalNodeMenuPlugin.prod.mjs +9 -0
- package/LexicalOnChangePlugin.d.ts +13 -0
- package/LexicalOnChangePlugin.dev.js +72 -0
- package/LexicalOnChangePlugin.dev.mjs +70 -0
- package/LexicalOnChangePlugin.js +11 -0
- package/LexicalOnChangePlugin.js.flow +16 -0
- package/LexicalOnChangePlugin.mjs +12 -0
- package/LexicalOnChangePlugin.node.mjs +10 -0
- package/LexicalOnChangePlugin.prod.js +9 -0
- package/LexicalOnChangePlugin.prod.mjs +9 -0
- package/LexicalPlainTextPlugin.d.ts +14 -0
- package/LexicalPlainTextPlugin.dev.js +235 -0
- package/LexicalPlainTextPlugin.dev.mjs +233 -0
- package/LexicalPlainTextPlugin.js +11 -0
- package/LexicalPlainTextPlugin.js.flow +29 -0
- package/LexicalPlainTextPlugin.mjs +12 -0
- package/LexicalPlainTextPlugin.node.mjs +10 -0
- package/LexicalPlainTextPlugin.prod.js +9 -0
- package/LexicalPlainTextPlugin.prod.mjs +9 -0
- package/LexicalReactExtension.js.flow +68 -0
- package/LexicalReactPluginHostExtension.js.flow +84 -0
- package/LexicalReactProviderExtension.js.flow +12 -0
- package/LexicalRichTextPlugin.d.ts +14 -0
- package/LexicalRichTextPlugin.dev.js +235 -0
- package/LexicalRichTextPlugin.dev.mjs +233 -0
- package/LexicalRichTextPlugin.js +11 -0
- package/LexicalRichTextPlugin.js.flow +29 -0
- package/LexicalRichTextPlugin.mjs +12 -0
- package/LexicalRichTextPlugin.node.mjs +10 -0
- package/LexicalRichTextPlugin.prod.js +9 -0
- package/LexicalRichTextPlugin.prod.mjs +9 -0
- package/LexicalSelectionAlwaysOnDisplay.d.ts +12 -0
- package/LexicalSelectionAlwaysOnDisplay.dev.js +33 -0
- package/LexicalSelectionAlwaysOnDisplay.dev.mjs +31 -0
- package/LexicalSelectionAlwaysOnDisplay.js +11 -0
- package/LexicalSelectionAlwaysOnDisplay.js.flow +15 -0
- package/LexicalSelectionAlwaysOnDisplay.mjs +12 -0
- package/LexicalSelectionAlwaysOnDisplay.node.mjs +10 -0
- package/LexicalSelectionAlwaysOnDisplay.prod.js +9 -0
- package/LexicalSelectionAlwaysOnDisplay.prod.mjs +9 -0
- package/LexicalTabIndentationPlugin.d.ts +17 -0
- package/LexicalTabIndentationPlugin.dev.js +40 -0
- package/LexicalTabIndentationPlugin.dev.mjs +38 -0
- package/LexicalTabIndentationPlugin.js +11 -0
- package/LexicalTabIndentationPlugin.js.flow +21 -0
- package/LexicalTabIndentationPlugin.mjs +13 -0
- package/LexicalTabIndentationPlugin.node.mjs +11 -0
- package/LexicalTabIndentationPlugin.prod.js +9 -0
- package/LexicalTabIndentationPlugin.prod.mjs +9 -0
- package/LexicalTableOfContentsPlugin.d.ts +20 -0
- package/LexicalTableOfContentsPlugin.dev.js +209 -0
- package/LexicalTableOfContentsPlugin.dev.mjs +207 -0
- package/LexicalTableOfContentsPlugin.js +11 -0
- package/LexicalTableOfContentsPlugin.js.flow +18 -0
- package/LexicalTableOfContentsPlugin.mjs +12 -0
- package/LexicalTableOfContentsPlugin.node.mjs +10 -0
- package/LexicalTableOfContentsPlugin.prod.js +9 -0
- package/LexicalTableOfContentsPlugin.prod.mjs +9 -0
- package/LexicalTablePlugin.d.ts +46 -0
- package/LexicalTablePlugin.dev.js +81 -0
- package/LexicalTablePlugin.dev.mjs +79 -0
- package/LexicalTablePlugin.js +11 -0
- package/LexicalTablePlugin.js.flow +15 -0
- package/LexicalTablePlugin.mjs +12 -0
- package/LexicalTablePlugin.node.mjs +10 -0
- package/LexicalTablePlugin.prod.js +9 -0
- package/LexicalTablePlugin.prod.mjs +9 -0
- package/LexicalTreeView.d.ts +37 -0
- package/LexicalTreeView.dev.js +105 -0
- package/LexicalTreeView.dev.mjs +91 -0
- package/LexicalTreeView.js +11 -0
- package/LexicalTreeView.js.flow +21 -0
- package/LexicalTreeView.mjs +12 -0
- package/LexicalTreeView.node.mjs +10 -0
- package/LexicalTreeView.prod.js +9 -0
- package/LexicalTreeView.prod.mjs +9 -0
- package/LexicalTreeViewExtension.js.flow +12 -0
- package/LexicalTypeaheadMenuPlugin.d.ts +40 -0
- package/LexicalTypeaheadMenuPlugin.dev.js +654 -0
- package/LexicalTypeaheadMenuPlugin.dev.mjs +646 -0
- package/LexicalTypeaheadMenuPlugin.js +11 -0
- package/LexicalTypeaheadMenuPlugin.js.flow +83 -0
- package/LexicalTypeaheadMenuPlugin.mjs +18 -0
- package/LexicalTypeaheadMenuPlugin.node.mjs +16 -0
- package/LexicalTypeaheadMenuPlugin.prod.js +9 -0
- package/LexicalTypeaheadMenuPlugin.prod.mjs +9 -0
- package/README.md +90 -0
- package/ReactExtension.d.ts +41 -0
- package/ReactPluginHostExtension.d.ts +56 -0
- package/ReactProviderExtension.d.ts +9 -0
- package/TreeViewExtension.d.ts +18 -0
- package/package.json +1549 -0
- package/shared/LegacyDecorators.d.ts +23 -0
- package/shared/LexicalContentEditableElement.d.ts +43 -0
- package/shared/LexicalMenu.d.ts +52 -0
- package/shared/buildEditorComponent.d.ts +11 -0
- package/shared/mergeRefs.d.ts +9 -0
- package/shared/point.d.ts +21 -0
- package/shared/rect.d.ts +45 -0
- package/shared/types.d.ts +89 -0
- package/shared/useCanShowPlaceholder.d.ts +9 -0
- package/shared/useCharacterLimit.d.ts +16 -0
- package/shared/useDecorators.d.ts +17 -0
- package/shared/useHistory.d.ts +10 -0
- package/shared/useList.d.ts +9 -0
- package/shared/usePlainTextSetup.d.ts +9 -0
- package/shared/useReactDecorators.d.ts +12 -0
- package/shared/useRichTextSetup.d.ts +9 -0
- package/shared/useYjsCollaboration.d.ts +25 -0
- package/useExtensionComponent.d.ts +10 -0
- package/useLexicalEditable.d.ts +16 -0
- package/useLexicalEditable.dev.js +102 -0
- package/useLexicalEditable.dev.mjs +100 -0
- package/useLexicalEditable.js +11 -0
- package/useLexicalEditable.js.flow +12 -0
- package/useLexicalEditable.mjs +12 -0
- package/useLexicalEditable.node.mjs +10 -0
- package/useLexicalEditable.prod.js +9 -0
- package/useLexicalEditable.prod.mjs +9 -0
- package/useLexicalExtensionComponent.dev.js +37 -0
- package/useLexicalExtensionComponent.dev.mjs +34 -0
- package/useLexicalExtensionComponent.js +11 -0
- package/useLexicalExtensionComponent.js.flow +12 -0
- package/useLexicalExtensionComponent.mjs +13 -0
- package/useLexicalExtensionComponent.node.mjs +11 -0
- package/useLexicalExtensionComponent.prod.js +9 -0
- package/useLexicalExtensionComponent.prod.mjs +9 -0
- package/useLexicalIsTextContentEmpty.d.ts +9 -0
- package/useLexicalIsTextContentEmpty.dev.js +60 -0
- package/useLexicalIsTextContentEmpty.dev.mjs +58 -0
- package/useLexicalIsTextContentEmpty.js +11 -0
- package/useLexicalIsTextContentEmpty.js.flow +15 -0
- package/useLexicalIsTextContentEmpty.mjs +12 -0
- package/useLexicalIsTextContentEmpty.node.mjs +10 -0
- package/useLexicalIsTextContentEmpty.prod.js +9 -0
- package/useLexicalIsTextContentEmpty.prod.mjs +9 -0
- package/useLexicalNodeSelection.d.ts +24 -0
- package/useLexicalNodeSelection.dev.js +102 -0
- package/useLexicalNodeSelection.dev.mjs +100 -0
- package/useLexicalNodeSelection.js +11 -0
- package/useLexicalNodeSelection.js.flow +14 -0
- package/useLexicalNodeSelection.mjs +12 -0
- package/useLexicalNodeSelection.node.mjs +10 -0
- package/useLexicalNodeSelection.prod.js +9 -0
- package/useLexicalNodeSelection.prod.mjs +9 -0
- package/useLexicalSubscription.d.ts +17 -0
- package/useLexicalSubscription.dev.js +73 -0
- package/useLexicalSubscription.dev.mjs +71 -0
- package/useLexicalSubscription.js +11 -0
- package/useLexicalSubscription.js.flow +19 -0
- package/useLexicalSubscription.mjs +12 -0
- package/useLexicalSubscription.node.mjs +10 -0
- package/useLexicalSubscription.prod.js +9 -0
- package/useLexicalSubscription.prod.mjs +9 -0
- package/useLexicalTextEntity.d.ts +10 -0
- package/useLexicalTextEntity.dev.js +31 -0
- package/useLexicalTextEntity.dev.mjs +29 -0
- package/useLexicalTextEntity.js +11 -0
- package/useLexicalTextEntity.js.flow +18 -0
- package/useLexicalTextEntity.mjs +12 -0
- package/useLexicalTextEntity.node.mjs +10 -0
- package/useLexicalTextEntity.prod.js +9 -0
- package/useLexicalTextEntity.prod.mjs +9 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { CollaborationContext } from '@ekz/lexical-react/LexicalCollaborationContext';
|
|
10
|
+
import { LexicalComposerContext, createLexicalComposerContext } from '@ekz/lexical-react/LexicalComposerContext';
|
|
11
|
+
import { getTransformSetFromKlass, createSharedNodeState, getRegisteredNode } from '@ekz/lexical';
|
|
12
|
+
import { useRef, useContext, useMemo, useEffect } from 'react';
|
|
13
|
+
import { jsx } from 'react/jsx-runtime';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
17
|
+
*
|
|
18
|
+
* This source code is licensed under the MIT license found in the
|
|
19
|
+
* LICENSE file in the root directory of this source tree.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
// Do not require this module directly! Use normal `invariant` calls.
|
|
24
|
+
|
|
25
|
+
function formatDevErrorMessage(message) {
|
|
26
|
+
throw new Error(message);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
31
|
+
*
|
|
32
|
+
* This source code is licensed under the MIT license found in the
|
|
33
|
+
* LICENSE file in the root directory of this source tree.
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
/*@__INLINE__*/
|
|
38
|
+
function warnOnlyOnce(message) {
|
|
39
|
+
{
|
|
40
|
+
let run = false;
|
|
41
|
+
return () => {
|
|
42
|
+
if (!run) {
|
|
43
|
+
console.warn(message);
|
|
44
|
+
}
|
|
45
|
+
run = true;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const initialNodesWarning = warnOnlyOnce(`LexicalNestedComposer initialNodes is deprecated and will be removed in v0.32.0, it has never worked correctly.\nYou can configure your editor's nodes with createEditor({nodes: [], parentEditor: $getEditor()})`);
|
|
51
|
+
const explicitNamespaceWarning = warnOnlyOnce(`LexicalNestedComposer initialEditor should explicitly initialize its namespace when the node configuration differs from the parentEditor. For backwards compatibility, the namespace will be initialized from parentEditor until v0.32.0, but this has always had incorrect copy/paste behavior when the configuration differed.\nYou can configure your editor's namespace with createEditor({namespace: 'nested-editor-namespace', nodes: [], parentEditor: $getEditor()}).`);
|
|
52
|
+
function LexicalNestedComposer({
|
|
53
|
+
initialEditor,
|
|
54
|
+
children,
|
|
55
|
+
initialNodes,
|
|
56
|
+
initialTheme,
|
|
57
|
+
skipCollabChecks,
|
|
58
|
+
skipEditableListener
|
|
59
|
+
}) {
|
|
60
|
+
const wasCollabPreviouslyReadyRef = useRef(false);
|
|
61
|
+
const parentContext = useContext(LexicalComposerContext);
|
|
62
|
+
if (parentContext == null) {
|
|
63
|
+
{
|
|
64
|
+
formatDevErrorMessage(`Unexpected parent context null on a nested composer`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const [parentEditor, {
|
|
68
|
+
getTheme: getParentTheme
|
|
69
|
+
}] = parentContext;
|
|
70
|
+
const composerContext = useMemo(() => {
|
|
71
|
+
const composerTheme = initialTheme || getParentTheme() || undefined;
|
|
72
|
+
const context = createLexicalComposerContext(parentContext, composerTheme);
|
|
73
|
+
if (composerTheme !== undefined) {
|
|
74
|
+
initialEditor._config.theme = composerTheme;
|
|
75
|
+
}
|
|
76
|
+
initialEditor._parentEditor = initialEditor._parentEditor || parentEditor;
|
|
77
|
+
const createEditorArgs = initialEditor._createEditorArgs;
|
|
78
|
+
const explicitNamespace = createEditorArgs && createEditorArgs.namespace;
|
|
79
|
+
if (!initialNodes) {
|
|
80
|
+
if (!(createEditorArgs && createEditorArgs.nodes)) {
|
|
81
|
+
const parentNodes = initialEditor._nodes = new Map(parentEditor._nodes);
|
|
82
|
+
if (!explicitNamespace) {
|
|
83
|
+
// This is the only safe situation to inherit the parent's namespace
|
|
84
|
+
initialEditor._config.namespace = parentEditor._config.namespace;
|
|
85
|
+
}
|
|
86
|
+
for (const [type, entry] of parentNodes) {
|
|
87
|
+
initialEditor._nodes.set(type, {
|
|
88
|
+
exportDOM: entry.exportDOM,
|
|
89
|
+
klass: entry.klass,
|
|
90
|
+
replace: entry.replace,
|
|
91
|
+
replaceWithKlass: entry.replaceWithKlass,
|
|
92
|
+
sharedNodeState: createSharedNodeState(entry.klass),
|
|
93
|
+
transforms: getTransformSetFromKlass(entry.klass)
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
} else if (!explicitNamespace) {
|
|
97
|
+
explicitNamespaceWarning();
|
|
98
|
+
initialEditor._config.namespace = parentEditor._config.namespace;
|
|
99
|
+
}
|
|
100
|
+
} else {
|
|
101
|
+
initialNodesWarning();
|
|
102
|
+
if (!explicitNamespace) {
|
|
103
|
+
explicitNamespaceWarning();
|
|
104
|
+
initialEditor._config.namespace = parentEditor._config.namespace;
|
|
105
|
+
}
|
|
106
|
+
for (let klass of initialNodes) {
|
|
107
|
+
let replace = null;
|
|
108
|
+
let replaceWithKlass = null;
|
|
109
|
+
if (typeof klass !== 'function') {
|
|
110
|
+
const options = klass;
|
|
111
|
+
klass = options.replace;
|
|
112
|
+
replace = options.with;
|
|
113
|
+
replaceWithKlass = options.withKlass || null;
|
|
114
|
+
}
|
|
115
|
+
const registeredKlass = getRegisteredNode(initialEditor, klass.getType());
|
|
116
|
+
initialEditor._nodes.set(klass.getType(), {
|
|
117
|
+
exportDOM: registeredKlass ? registeredKlass.exportDOM : undefined,
|
|
118
|
+
klass,
|
|
119
|
+
replace,
|
|
120
|
+
replaceWithKlass,
|
|
121
|
+
sharedNodeState: createSharedNodeState(klass),
|
|
122
|
+
transforms: getTransformSetFromKlass(klass)
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return [initialEditor, context];
|
|
127
|
+
},
|
|
128
|
+
// We only do this for init
|
|
129
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
130
|
+
[]);
|
|
131
|
+
|
|
132
|
+
// If collaboration is enabled, make sure we don't render the children until the collaboration subdocument is ready.
|
|
133
|
+
const collabContext = useContext(CollaborationContext);
|
|
134
|
+
const {
|
|
135
|
+
isCollabActive,
|
|
136
|
+
yjsDocMap
|
|
137
|
+
} = collabContext ?? {};
|
|
138
|
+
const isCollabReady = skipCollabChecks || wasCollabPreviouslyReadyRef.current || yjsDocMap && yjsDocMap.has(initialEditor.getKey());
|
|
139
|
+
useEffect(() => {
|
|
140
|
+
if (isCollabReady) {
|
|
141
|
+
wasCollabPreviouslyReadyRef.current = true;
|
|
142
|
+
}
|
|
143
|
+
}, [isCollabReady]);
|
|
144
|
+
|
|
145
|
+
// Update `isEditable` state of nested editor in response to the same change on parent editor.
|
|
146
|
+
useEffect(() => {
|
|
147
|
+
if (!skipEditableListener) {
|
|
148
|
+
const editableListener = editable => initialEditor.setEditable(editable);
|
|
149
|
+
editableListener(parentEditor.isEditable());
|
|
150
|
+
return parentEditor.registerEditableListener(editableListener);
|
|
151
|
+
}
|
|
152
|
+
}, [initialEditor, parentEditor, skipEditableListener]);
|
|
153
|
+
return /*#__PURE__*/jsx(LexicalComposerContext.Provider, {
|
|
154
|
+
value: composerContext,
|
|
155
|
+
children: !isCollabActive || isCollabReady ? children : null
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export { LexicalNestedComposer };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
'use strict'
|
|
10
|
+
const LexicalNestedComposer = process.env.NODE_ENV !== 'production' ? require('./LexicalNestedComposer.dev.js') : require('./LexicalNestedComposer.prod.js');
|
|
11
|
+
module.exports = LexicalNestedComposer;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type {
|
|
11
|
+
LexicalEditor,
|
|
12
|
+
EditorThemeClasses,
|
|
13
|
+
LexicalNode,
|
|
14
|
+
LexicalNodeReplacement,
|
|
15
|
+
} from '@ekz/lexical';
|
|
16
|
+
|
|
17
|
+
export type LexicalNestedComposerProps = {
|
|
18
|
+
children?: React.Node;
|
|
19
|
+
initialEditor: LexicalEditor;
|
|
20
|
+
initialTheme?: EditorThemeClasses;
|
|
21
|
+
initialNodes?: $ReadOnlyArray<Class<LexicalNode> | LexicalNodeReplacement>;
|
|
22
|
+
skipCollabChecks?: void | true;
|
|
23
|
+
skipEditableListener?: void | true;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
declare export function LexicalNestedComposer(props: LexicalNestedComposerProps): React.Node;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import * as modDev from './LexicalNestedComposer.dev.mjs';
|
|
10
|
+
import * as modProd from './LexicalNestedComposer.prod.mjs';
|
|
11
|
+
const mod = process.env.NODE_ENV !== 'production' ? modDev : modProd;
|
|
12
|
+
export const LexicalNestedComposer = mod.LexicalNestedComposer;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const mod = await (process.env.NODE_ENV !== 'production' ? import('./LexicalNestedComposer.dev.mjs') : import('./LexicalNestedComposer.prod.mjs'));
|
|
10
|
+
export const LexicalNestedComposer = mod.LexicalNestedComposer;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
"use strict";var e=require("@ekz/lexical-react/LexicalCollaborationContext"),t=require("@ekz/lexical-react/LexicalComposerContext"),r=require("@ekz/lexical"),o=require("react"),s=require("react/jsx-runtime");const a=()=>{},n=()=>{};exports.LexicalNestedComposer=function({initialEditor:i,children:l,initialNodes:c,initialTheme:d,skipCollabChecks:p,skipEditableListener:f}){const u=o.useRef(!1),m=o.useContext(t.LexicalComposerContext);null==m&&function(e,...t){const r=new URL("https://lexical.dev/docs/error"),o=new URLSearchParams;o.append("code",e);for(const e of t)o.append("v",e);throw r.search=o.toString(),Error(`Minified Lexical error #${e}; visit ${r.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}(9);const[x,{getTheme:h}]=m,g=o.useMemo(()=>{const e=d||h()||void 0,o=t.createLexicalComposerContext(m,e);void 0!==e&&(i._config.theme=e),i._parentEditor=i._parentEditor||x;const s=i._createEditorArgs,l=s&&s.namespace;if(c){a(),l||(n(),i._config.namespace=x._config.namespace);for(let e of c){let t=null,o=null;if("function"!=typeof e){const r=e;e=r.replace,t=r.with,o=r.withKlass||null}const s=r.getRegisteredNode(i,e.getType());i._nodes.set(e.getType(),{exportDOM:s?s.exportDOM:void 0,klass:e,replace:t,replaceWithKlass:o,sharedNodeState:r.createSharedNodeState(e),transforms:r.getTransformSetFromKlass(e)})}}else if(s&&s.nodes)l||(n(),i._config.namespace=x._config.namespace);else{const e=i._nodes=new Map(x._nodes);l||(i._config.namespace=x._config.namespace);for(const[t,o]of e)i._nodes.set(t,{exportDOM:o.exportDOM,klass:o.klass,replace:o.replace,replaceWithKlass:o.replaceWithKlass,sharedNodeState:r.createSharedNodeState(o.klass),transforms:r.getTransformSetFromKlass(o.klass)})}return[i,o]},[]),C=o.useContext(e.CollaborationContext),{isCollabActive:_,yjsDocMap:v}=C??{},k=p||u.current||v&&v.has(i.getKey());return o.useEffect(()=>{k&&(u.current=!0)},[k]),o.useEffect(()=>{if(!f){const e=e=>i.setEditable(e);return e(x.isEditable()),x.registerEditableListener(e)}},[i,x,f]),s.jsx(t.LexicalComposerContext.Provider,{value:g,children:!_||k?l:null})};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import{CollaborationContext as e}from"@ekz/lexical-react/LexicalCollaborationContext";import{LexicalComposerContext as t,createLexicalComposerContext as o}from"@ekz/lexical-react/LexicalComposerContext";import{getTransformSetFromKlass as r,createSharedNodeState as n,getRegisteredNode as i}from"@ekz/lexical";import{useRef as s,useContext as a,useMemo as l,useEffect as c}from"react";import{jsx as p}from"react/jsx-runtime";const d=()=>{},f=()=>{};function m({initialEditor:m,children:h,initialNodes:u,initialTheme:g,skipCollabChecks:x,skipEditableListener:_}){const k=s(!1),v=a(t);null==v&&function(e,...t){const o=new URL("https://lexical.dev/docs/error"),r=new URLSearchParams;r.append("code",e);for(const e of t)r.append("v",e);throw o.search=r.toString(),Error(`Minified Lexical error #${e}; visit ${o.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}(9);const[E,{getTheme:b}]=v,w=l(()=>{const e=g||b()||void 0,t=o(v,e);void 0!==e&&(m._config.theme=e),m._parentEditor=m._parentEditor||E;const s=m._createEditorArgs,a=s&&s.namespace;if(u){d(),a||(f(),m._config.namespace=E._config.namespace);for(let e of u){let t=null,o=null;if("function"!=typeof e){const r=e;e=r.replace,t=r.with,o=r.withKlass||null}const s=i(m,e.getType());m._nodes.set(e.getType(),{exportDOM:s?s.exportDOM:void 0,klass:e,replace:t,replaceWithKlass:o,sharedNodeState:n(e),transforms:r(e)})}}else if(s&&s.nodes)a||(f(),m._config.namespace=E._config.namespace);else{const e=m._nodes=new Map(E._nodes);a||(m._config.namespace=E._config.namespace);for(const[t,o]of e)m._nodes.set(t,{exportDOM:o.exportDOM,klass:o.klass,replace:o.replace,replaceWithKlass:o.replaceWithKlass,sharedNodeState:n(o.klass),transforms:r(o.klass)})}return[m,t]},[]),C=a(e),{isCollabActive:L,yjsDocMap:M}=C??{},y=x||k.current||M&&M.has(m.getKey());return c(()=>{y&&(k.current=!0)},[y]),c(()=>{if(!_){const e=e=>m.setEditable(e);return e(E.isEditable()),E.registerEditableListener(e)}},[m,E,_]),p(t.Provider,{value:w,children:!L||y?h:null})}export{m as LexicalNestedComposer};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
import { LexicalNode } from '@ekz/lexical';
|
|
9
|
+
import { JSX, RefObject } from 'react';
|
|
10
|
+
declare class MenuOption {
|
|
11
|
+
key: string;
|
|
12
|
+
ref?: RefObject<HTMLElement | null>;
|
|
13
|
+
constructor(key: string);
|
|
14
|
+
setRefElement(element: HTMLElement | null): void;
|
|
15
|
+
}
|
|
16
|
+
declare class NodeContextMenuOption extends MenuOption {
|
|
17
|
+
type: string;
|
|
18
|
+
title: string;
|
|
19
|
+
icon: JSX.Element | null;
|
|
20
|
+
disabled: boolean;
|
|
21
|
+
$onSelect: () => void;
|
|
22
|
+
$showOn?: (node: LexicalNode) => boolean;
|
|
23
|
+
constructor(title: string, options: {
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
icon?: JSX.Element;
|
|
26
|
+
$onSelect: () => void;
|
|
27
|
+
$showOn?: (node: LexicalNode) => boolean;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
declare class NodeContextMenuSeparator extends MenuOption {
|
|
31
|
+
type: string;
|
|
32
|
+
$showOn?: (node: LexicalNode) => boolean;
|
|
33
|
+
constructor(options?: {
|
|
34
|
+
$showOn?: (node: LexicalNode) => boolean;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
type ContextMenuType = NodeContextMenuOption | NodeContextMenuSeparator;
|
|
38
|
+
interface Props {
|
|
39
|
+
label?: string;
|
|
40
|
+
nested?: boolean;
|
|
41
|
+
itemClassName?: string;
|
|
42
|
+
separatorClassName?: string;
|
|
43
|
+
items: ContextMenuType[];
|
|
44
|
+
}
|
|
45
|
+
declare const NodeContextMenuPlugin: import("react").ForwardRefExoticComponent<Omit<Props & import("react").HTMLProps<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
46
|
+
export { NodeContextMenuOption, NodeContextMenuPlugin, NodeContextMenuSeparator };
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
'use strict';
|
|
10
|
+
|
|
11
|
+
var react$1 = require('@floating-ui/react');
|
|
12
|
+
var LexicalComposerContext = require('@ekz/lexical-react/LexicalComposerContext');
|
|
13
|
+
var lexical = require('@ekz/lexical');
|
|
14
|
+
var react = require('react');
|
|
15
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
19
|
+
*
|
|
20
|
+
* This source code is licensed under the MIT license found in the
|
|
21
|
+
* LICENSE file in the root directory of this source tree.
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
class MenuOption {
|
|
26
|
+
key;
|
|
27
|
+
ref;
|
|
28
|
+
constructor(key) {
|
|
29
|
+
this.key = key;
|
|
30
|
+
this.ref = {
|
|
31
|
+
current: null
|
|
32
|
+
};
|
|
33
|
+
this.setRefElement = this.setRefElement.bind(this);
|
|
34
|
+
}
|
|
35
|
+
setRefElement(element) {
|
|
36
|
+
this.ref = {
|
|
37
|
+
current: element
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
class NodeContextMenuOption extends MenuOption {
|
|
42
|
+
type;
|
|
43
|
+
title;
|
|
44
|
+
icon;
|
|
45
|
+
disabled;
|
|
46
|
+
$onSelect;
|
|
47
|
+
$showOn;
|
|
48
|
+
constructor(title, options) {
|
|
49
|
+
super(title);
|
|
50
|
+
this.type = 'item';
|
|
51
|
+
this.title = title;
|
|
52
|
+
this.disabled = options.disabled ?? false;
|
|
53
|
+
this.icon = options.icon ?? null;
|
|
54
|
+
this.$onSelect = options.$onSelect;
|
|
55
|
+
if (options.$showOn) {
|
|
56
|
+
this.$showOn = options.$showOn;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
class NodeContextMenuSeparator extends MenuOption {
|
|
61
|
+
type;
|
|
62
|
+
$showOn;
|
|
63
|
+
constructor(options) {
|
|
64
|
+
super('_separator');
|
|
65
|
+
this.type = 'separator';
|
|
66
|
+
if (options && options.$showOn) {
|
|
67
|
+
this.$showOn = options.$showOn;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const ContextMenuSeparatorItem = /*#__PURE__*/react.forwardRef(({
|
|
72
|
+
className,
|
|
73
|
+
disabled,
|
|
74
|
+
...props
|
|
75
|
+
}, ref) => {
|
|
76
|
+
return /*#__PURE__*/jsxRuntime.jsx("hr", {
|
|
77
|
+
className: className
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
const ContextMenuItem = /*#__PURE__*/react.forwardRef(({
|
|
81
|
+
className,
|
|
82
|
+
label,
|
|
83
|
+
disabled,
|
|
84
|
+
icon,
|
|
85
|
+
...props
|
|
86
|
+
}, ref) => {
|
|
87
|
+
return /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
88
|
+
...props,
|
|
89
|
+
className: className,
|
|
90
|
+
ref: ref,
|
|
91
|
+
role: "menuitem",
|
|
92
|
+
disabled: disabled,
|
|
93
|
+
children: [icon, label]
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
const NodeContextMenuPlugin = /*#__PURE__*/react.forwardRef(({
|
|
97
|
+
items,
|
|
98
|
+
className,
|
|
99
|
+
itemClassName,
|
|
100
|
+
separatorClassName
|
|
101
|
+
}, forwardedRef) => {
|
|
102
|
+
const [editor] = LexicalComposerContext.useLexicalComposerContext();
|
|
103
|
+
const [activeIndex, setActiveIndex] = react.useState(null);
|
|
104
|
+
const [isOpen, setIsOpen] = react.useState(false);
|
|
105
|
+
const listItemsRef = react.useRef([]);
|
|
106
|
+
const listContentRef = react.useRef([]);
|
|
107
|
+
const {
|
|
108
|
+
refs,
|
|
109
|
+
floatingStyles,
|
|
110
|
+
context
|
|
111
|
+
} = react$1.useFloating({
|
|
112
|
+
middleware: [react$1.offset({
|
|
113
|
+
alignmentAxis: 4,
|
|
114
|
+
mainAxis: 5
|
|
115
|
+
}), react$1.flip({
|
|
116
|
+
fallbackPlacements: ['left-start']
|
|
117
|
+
}), react$1.shift({
|
|
118
|
+
padding: 10
|
|
119
|
+
})],
|
|
120
|
+
onOpenChange: setIsOpen,
|
|
121
|
+
open: isOpen,
|
|
122
|
+
placement: 'right-start',
|
|
123
|
+
strategy: 'fixed',
|
|
124
|
+
whileElementsMounted: react$1.autoUpdate
|
|
125
|
+
});
|
|
126
|
+
const role = react$1.useRole(context, {
|
|
127
|
+
role: 'menu'
|
|
128
|
+
});
|
|
129
|
+
const dismiss = react$1.useDismiss(context);
|
|
130
|
+
const listNavigation = react$1.useListNavigation(context, {
|
|
131
|
+
activeIndex,
|
|
132
|
+
listRef: listItemsRef,
|
|
133
|
+
onNavigate: setActiveIndex
|
|
134
|
+
});
|
|
135
|
+
const typeahead = react$1.useTypeahead(context, {
|
|
136
|
+
activeIndex,
|
|
137
|
+
enabled: isOpen,
|
|
138
|
+
listRef: listContentRef,
|
|
139
|
+
onMatch: setActiveIndex
|
|
140
|
+
});
|
|
141
|
+
const {
|
|
142
|
+
getFloatingProps,
|
|
143
|
+
getItemProps
|
|
144
|
+
} = react$1.useInteractions([role, dismiss, listNavigation, typeahead]);
|
|
145
|
+
const [renderItems, setRenderItems] = react.useState([]);
|
|
146
|
+
react.useEffect(() => {
|
|
147
|
+
function onContextMenu(e) {
|
|
148
|
+
e.preventDefault();
|
|
149
|
+
refs.setPositionReference({
|
|
150
|
+
getBoundingClientRect() {
|
|
151
|
+
return {
|
|
152
|
+
bottom: e.clientY,
|
|
153
|
+
height: 0,
|
|
154
|
+
left: e.clientX,
|
|
155
|
+
right: e.clientX,
|
|
156
|
+
top: e.clientY,
|
|
157
|
+
width: 0,
|
|
158
|
+
x: e.clientX,
|
|
159
|
+
y: e.clientY
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
let visibleItems = [];
|
|
164
|
+
if (items) {
|
|
165
|
+
editor.read(() => {
|
|
166
|
+
const node = lexical.$getNearestNodeFromDOMNode(e.target);
|
|
167
|
+
if (node) {
|
|
168
|
+
visibleItems = items.filter(option => option.$showOn ? option.$showOn(node) : true);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
const renderableItems = visibleItems.map((option, index) => {
|
|
173
|
+
if (option.type === 'separator') {
|
|
174
|
+
return {
|
|
175
|
+
className: separatorClassName,
|
|
176
|
+
key: option.key + '-' + index,
|
|
177
|
+
type: option.type
|
|
178
|
+
};
|
|
179
|
+
} else {
|
|
180
|
+
return {
|
|
181
|
+
className: itemClassName,
|
|
182
|
+
disabled: option.disabled,
|
|
183
|
+
icon: option.icon,
|
|
184
|
+
key: option.key,
|
|
185
|
+
label: option.title,
|
|
186
|
+
onClick: () => editor.update(() => option.$onSelect()),
|
|
187
|
+
title: option.title,
|
|
188
|
+
type: option.type
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
listContentRef.current = renderableItems.map(item => item.key);
|
|
193
|
+
setRenderItems(renderableItems);
|
|
194
|
+
setIsOpen(true);
|
|
195
|
+
}
|
|
196
|
+
return editor.registerRootListener((rootElement, prevRootElement) => {
|
|
197
|
+
if (prevRootElement !== null) {
|
|
198
|
+
prevRootElement.removeEventListener('contextmenu', onContextMenu);
|
|
199
|
+
}
|
|
200
|
+
if (rootElement !== null) {
|
|
201
|
+
rootElement.addEventListener('contextmenu', onContextMenu);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}, [items, itemClassName, separatorClassName, refs, editor]);
|
|
205
|
+
return /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingPortal, {
|
|
206
|
+
children: isOpen && /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingOverlay, {
|
|
207
|
+
lockScroll: true,
|
|
208
|
+
children: /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingFocusManager, {
|
|
209
|
+
context: context,
|
|
210
|
+
initialFocus: refs.floating,
|
|
211
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
212
|
+
className: className,
|
|
213
|
+
ref: refs.setFloating,
|
|
214
|
+
style: floatingStyles,
|
|
215
|
+
...getFloatingProps(),
|
|
216
|
+
children: renderItems.map((item, index) => {
|
|
217
|
+
if (item.type === 'item') {
|
|
218
|
+
return /*#__PURE__*/react.createElement(ContextMenuItem, {
|
|
219
|
+
...getItemProps({
|
|
220
|
+
...item,
|
|
221
|
+
onClick() {
|
|
222
|
+
item.onClick();
|
|
223
|
+
setIsOpen(false);
|
|
224
|
+
},
|
|
225
|
+
onMouseUp() {
|
|
226
|
+
item.onClick();
|
|
227
|
+
setIsOpen(false);
|
|
228
|
+
},
|
|
229
|
+
ref(node) {
|
|
230
|
+
listItemsRef.current[index] = node;
|
|
231
|
+
},
|
|
232
|
+
tabIndex: activeIndex === index ? 0 : -1
|
|
233
|
+
}),
|
|
234
|
+
key: item.key
|
|
235
|
+
});
|
|
236
|
+
} else if (item.type === 'separator') {
|
|
237
|
+
return /*#__PURE__*/react.createElement(ContextMenuSeparatorItem, {
|
|
238
|
+
...getItemProps({
|
|
239
|
+
...item,
|
|
240
|
+
ref(node) {
|
|
241
|
+
listItemsRef.current[index] = node;
|
|
242
|
+
},
|
|
243
|
+
tabIndex: activeIndex === index ? 0 : -1
|
|
244
|
+
}),
|
|
245
|
+
key: item.key
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
})
|
|
249
|
+
})
|
|
250
|
+
})
|
|
251
|
+
})
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
exports.NodeContextMenuOption = NodeContextMenuOption;
|
|
256
|
+
exports.NodeContextMenuPlugin = NodeContextMenuPlugin;
|
|
257
|
+
exports.NodeContextMenuSeparator = NodeContextMenuSeparator;
|