@payloadcms/richtext-lexical 3.71.0-internal-debug.80dab4c → 3.71.0-internal.27e1e08
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/dist/cell/rscEntry.js +72 -74
- package/dist/cell/rscEntry.js.map +1 -1
- package/dist/dependencyChecker.spec.js +7 -8
- package/dist/dependencyChecker.spec.js.map +1 -1
- package/dist/exports/client/Component-DOSSWC76.js +2 -0
- package/dist/exports/client/Component-DOSSWC76.js.map +7 -0
- package/dist/exports/client/Component-MBLHTKDK.js +2 -0
- package/dist/exports/client/Component-MBLHTKDK.js.map +7 -0
- package/dist/exports/client/Field-2A2VQXKP.js +2 -0
- package/dist/exports/client/Field-2A2VQXKP.js.map +7 -0
- package/dist/exports/client/RelationshipComponent-BG3DPV3T.js +2 -0
- package/dist/exports/client/RelationshipComponent-BG3DPV3T.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -0
- package/dist/exports/client/chunk-AFXLIYGL.js +12 -0
- package/dist/exports/client/chunk-AFXLIYGL.js.map +7 -0
- package/dist/exports/client/chunk-BZZVLW4U.js +2 -0
- package/dist/exports/client/chunk-BZZVLW4U.js.map +7 -0
- package/dist/exports/client/chunk-DBWINSQN.js +2 -0
- package/dist/exports/client/chunk-DBWINSQN.js.map +7 -0
- package/dist/exports/client/chunk-F26IQ5RE.js +2 -0
- package/dist/exports/client/chunk-F26IQ5RE.js.map +7 -0
- package/dist/exports/client/chunk-INBEEENE.js +2 -0
- package/dist/exports/client/chunk-INBEEENE.js.map +7 -0
- package/dist/exports/client/chunk-O6XRT2H3.js +2 -0
- package/dist/exports/client/chunk-O6XRT2H3.js.map +7 -0
- package/dist/exports/client/chunk-TRHFMZ3F.js +2 -0
- package/dist/exports/client/chunk-TRHFMZ3F.js.map +7 -0
- package/dist/exports/client/component-YQ22OGQW.js +2 -0
- package/dist/exports/client/component-YQ22OGQW.js.map +7 -0
- package/dist/exports/client/componentInline-5OVPQNQH.js +2 -0
- package/dist/exports/client/componentInline-5OVPQNQH.js.map +7 -0
- package/dist/exports/client/index.js +65 -85
- package/dist/exports/client/index.js.map +7 -1
- package/dist/exports/cssEntry.js +0 -1
- package/dist/exports/cssEntry.js.map +1 -1
- package/dist/exports/html/index.js +0 -1
- package/dist/exports/html/index.js.map +1 -1
- package/dist/exports/html-async/index.js +0 -1
- package/dist/exports/html-async/index.js.map +1 -1
- package/dist/exports/plaintext/index.js +0 -1
- package/dist/exports/plaintext/index.js.map +1 -1
- package/dist/exports/react/index.js +0 -1
- package/dist/exports/react/index.js.map +1 -1
- package/dist/exports/server/ast/mdx.js +35 -37
- package/dist/exports/server/ast/mdx.js.map +1 -1
- package/dist/exports/server/migrate.js +0 -1
- package/dist/exports/server/migrate.js.map +1 -1
- package/dist/exports/server/rsc.js +0 -1
- package/dist/exports/server/rsc.js.map +1 -1
- package/dist/exports/shared.js +0 -1
- package/dist/exports/shared.js.map +1 -1
- package/dist/features/align/client/index.js +195 -168
- package/dist/features/align/client/index.js.map +1 -1
- package/dist/features/align/client/toolbarAlignGroup.js +9 -9
- package/dist/features/align/client/toolbarAlignGroup.js.map +1 -1
- package/dist/features/align/server/i18n.js +222 -223
- package/dist/features/align/server/i18n.js.map +1 -1
- package/dist/features/align/server/index.js +5 -6
- package/dist/features/align/server/index.js.map +1 -1
- package/dist/features/blockquote/client/index.js +60 -65
- package/dist/features/blockquote/client/index.js.map +1 -1
- package/dist/features/blockquote/markdownTransformer.js +28 -33
- package/dist/features/blockquote/markdownTransformer.js.map +1 -1
- package/dist/features/blockquote/server/i18n.js +111 -112
- package/dist/features/blockquote/server/i18n.js.map +1 -1
- package/dist/features/blockquote/server/index.js +48 -47
- package/dist/features/blockquote/server/index.js.map +1 -1
- package/dist/features/blocks/client/component/BlockContent.js +69 -95
- package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
- package/dist/features/blocks/client/component/components/BlockCollapsible.js +14 -13
- package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
- package/dist/features/blocks/client/component/components/BlockEditButton.js +17 -9
- package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -1
- package/dist/features/blocks/client/component/components/BlockRemoveButton.js +17 -9
- package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -1
- package/dist/features/blocks/client/component/index.js +410 -553
- package/dist/features/blocks/client/component/index.js.map +1 -1
- package/dist/features/blocks/client/component/removeEmptyArrayValues.js +11 -8
- package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js +23 -11
- package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js +17 -9
- package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js +17 -9
- package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js +17 -9
- package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -1
- package/dist/features/blocks/client/componentInline/index.js +340 -468
- package/dist/features/blocks/client/componentInline/index.js.map +1 -1
- package/dist/features/blocks/client/getBlockImageComponent.js +12 -17
- package/dist/features/blocks/client/getBlockImageComponent.js.map +1 -1
- package/dist/features/blocks/client/index.js +146 -141
- package/dist/features/blocks/client/index.js.map +1 -1
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +18 -18
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +15 -14
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
- package/dist/features/blocks/client/markdown/markdownTransformer.js +330 -328
- package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
- package/dist/features/blocks/client/nodes/BlocksNode.js +40 -44
- package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js +33 -37
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
- package/dist/features/blocks/client/plugin/commands.js +1 -1
- package/dist/features/blocks/client/plugin/commands.js.map +1 -1
- package/dist/features/blocks/client/plugin/index.js +87 -59
- package/dist/features/blocks/client/plugin/index.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Block.js +101 -158
- package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Code.js +93 -119
- package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +11 -19
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +20 -32
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/defaultLanguages.js +83 -84
- package/dist/features/blocks/premade/CodeBlock/Component/defaultLanguages.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/converter.js +40 -36
- package/dist/features/blocks/premade/CodeBlock/converter.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/converterClient.js +1 -1
- package/dist/features/blocks/premade/CodeBlock/converterClient.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/index.js +49 -49
- package/dist/features/blocks/premade/CodeBlock/index.js.map +1 -1
- package/dist/features/blocks/server/graphQLPopulationPromise.js +44 -29
- package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/blocks/server/i18n.js +333 -334
- package/dist/features/blocks/server/i18n.js.map +1 -1
- package/dist/features/blocks/server/index.js +218 -238
- package/dist/features/blocks/server/index.js.map +1 -1
- package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.js +122 -123
- package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.js.map +1 -1
- package/dist/features/blocks/server/markdown/markdownTransformer.js +349 -347
- package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
- package/dist/features/blocks/server/nodes/BlocksNode.js +90 -86
- package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
- package/dist/features/blocks/server/nodes/InlineBlocksNode.js +87 -84
- package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
- package/dist/features/blocks/server/validate.js +55 -42
- package/dist/features/blocks/server/validate.js.map +1 -1
- package/dist/features/converters/htmlToLexical/index.js +24 -21
- package/dist/features/converters/htmlToLexical/index.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js +10 -7
- package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/heading.js +10 -7
- package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js +1 -2
- package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js +1 -2
- package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/link.js +37 -28
- package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/list.js +26 -18
- package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js +12 -9
- package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/tab.js +1 -2
- package/dist/features/converters/lexicalToHtml/async/converters/tab.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/table.js +38 -27
- package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/text.js +26 -25
- package/dist/features/converters/lexicalToHtml/async/converters/text.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/upload.js +44 -41
- package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/defaultConverters.js +11 -12
- package/dist/features/converters/lexicalToHtml/async/defaultConverters.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/field/index.js +56 -56
- package/dist/features/converters/lexicalToHtml/async/field/index.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/index.js +97 -87
- package/dist/features/converters/lexicalToHtml/async/index.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/types.js +1 -4
- package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js +62 -57
- package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/shared/types.js +1 -2
- package/dist/features/converters/lexicalToHtml/shared/types.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js +10 -7
- package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/heading.js +10 -7
- package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js +1 -2
- package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js +1 -2
- package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/link.js +35 -27
- package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/list.js +26 -18
- package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js +12 -9
- package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/tab.js +1 -2
- package/dist/features/converters/lexicalToHtml/sync/converters/tab.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/table.js +38 -27
- package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/text.js +26 -25
- package/dist/features/converters/lexicalToHtml/sync/converters/text.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/upload.js +37 -35
- package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js +11 -12
- package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/index.js +92 -84
- package/dist/features/converters/lexicalToHtml/sync/index.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/types.js +1 -4
- package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js +4 -7
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js.map +1 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js +34 -29
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js.map +1 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js +6 -7
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js.map +1 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js +28 -29
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js.map +1 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js +2 -7
- package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js.map +1 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js +84 -84
- package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js.map +1 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js +1 -6
- package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js.map +1 -1
- package/dist/features/converters/lexicalToHtml_deprecated/field/index.js +107 -107
- package/dist/features/converters/lexicalToHtml_deprecated/field/index.js.map +1 -1
- package/dist/features/converters/lexicalToHtml_deprecated/index.js +4 -4
- package/dist/features/converters/lexicalToHtml_deprecated/index.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/Component/index.js +36 -46
- package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js +12 -14
- package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +13 -15
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js +2 -7
- package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js +2 -7
- package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/link.js +47 -49
- package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/list.js +56 -78
- package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js +16 -26
- package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/tab.js +1 -2
- package/dist/features/converters/lexicalToJSX/converter/converters/tab.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/table.js +59 -73
- package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/text.js +47 -74
- package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +61 -77
- package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js +11 -12
- package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/index.js +128 -123
- package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/types.js +1 -4
- package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
- package/dist/features/converters/lexicalToMarkdown/index.js +19 -17
- package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
- package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js +146 -223
- package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +1 -1
- package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js +13 -11
- package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js.map +1 -1
- package/dist/features/converters/lexicalToPlaintext/shared/types.js +1 -2
- package/dist/features/converters/lexicalToPlaintext/shared/types.js.map +1 -1
- package/dist/features/converters/lexicalToPlaintext/sync/index.js +82 -83
- package/dist/features/converters/lexicalToPlaintext/sync/index.js.map +1 -1
- package/dist/features/converters/lexicalToPlaintext/sync/types.js +1 -3
- package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
- package/dist/features/converters/markdownToLexical/index.js +16 -14
- package/dist/features/converters/markdownToLexical/index.js.map +1 -1
- package/dist/features/converters/utilities/payloadPopulateFn.js +38 -37
- package/dist/features/converters/utilities/payloadPopulateFn.js.map +1 -1
- package/dist/features/converters/utilities/restPopulateFn.js +30 -24
- package/dist/features/converters/utilities/restPopulateFn.js.map +1 -1
- package/dist/features/debug/jsxConverter/client/index.js +5 -7
- package/dist/features/debug/jsxConverter/client/index.js.map +1 -1
- package/dist/features/debug/jsxConverter/client/plugin/index.js +47 -27
- package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
- package/dist/features/debug/jsxConverter/server/index.js +4 -5
- package/dist/features/debug/jsxConverter/server/index.js.map +1 -1
- package/dist/features/debug/testRecorder/client/index.js +5 -7
- package/dist/features/debug/testRecorder/client/index.js.map +1 -1
- package/dist/features/debug/testRecorder/client/plugin/index.js +365 -456
- package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
- package/dist/features/debug/testRecorder/server/index.js +4 -5
- package/dist/features/debug/testRecorder/server/index.js.map +1 -1
- package/dist/features/debug/treeView/client/index.js +5 -7
- package/dist/features/debug/treeView/client/index.js.map +1 -1
- package/dist/features/debug/treeView/client/plugin/index.js +23 -18
- package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
- package/dist/features/debug/treeView/server/index.js +4 -5
- package/dist/features/debug/treeView/server/index.js.map +1 -1
- package/dist/features/experimental_table/client/index.js +42 -61
- package/dist/features/experimental_table/client/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +517 -752
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +316 -350
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +225 -215
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +133 -104
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/utils/debounce.js +107 -89
- package/dist/features/experimental_table/client/utils/debounce.js.map +1 -1
- package/dist/features/experimental_table/client/utils/useDebounce.js +39 -21
- package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
- package/dist/features/experimental_table/markdownTransformer.js +118 -123
- package/dist/features/experimental_table/markdownTransformer.js.map +1 -1
- package/dist/features/experimental_table/server/index.js +143 -125
- package/dist/features/experimental_table/server/index.js.map +1 -1
- package/dist/features/format/bold/feature.client.js +35 -38
- package/dist/features/format/bold/feature.client.js.map +1 -1
- package/dist/features/format/bold/feature.server.js +14 -18
- package/dist/features/format/bold/feature.server.js.map +1 -1
- package/dist/features/format/bold/markdownTransformers.js +14 -25
- package/dist/features/format/bold/markdownTransformers.js.map +1 -1
- package/dist/features/format/inlineCode/feature.client.js +27 -31
- package/dist/features/format/inlineCode/feature.client.js.map +1 -1
- package/dist/features/format/inlineCode/feature.server.js +5 -8
- package/dist/features/format/inlineCode/feature.server.js.map +1 -1
- package/dist/features/format/inlineCode/markdownTransformers.js +3 -6
- package/dist/features/format/inlineCode/markdownTransformers.js.map +1 -1
- package/dist/features/format/italic/feature.client.js +27 -32
- package/dist/features/format/italic/feature.client.js.map +1 -1
- package/dist/features/format/italic/feature.server.js +5 -9
- package/dist/features/format/italic/feature.server.js.map +1 -1
- package/dist/features/format/italic/markdownTransformers.js +7 -12
- package/dist/features/format/italic/markdownTransformers.js.map +1 -1
- package/dist/features/format/shared/toolbarFormatGroup.js +8 -8
- package/dist/features/format/shared/toolbarFormatGroup.js.map +1 -1
- package/dist/features/format/strikethrough/feature.client.js +27 -31
- package/dist/features/format/strikethrough/feature.client.js.map +1 -1
- package/dist/features/format/strikethrough/feature.server.js +5 -8
- package/dist/features/format/strikethrough/feature.server.js.map +1 -1
- package/dist/features/format/strikethrough/markdownTransformers.js +3 -6
- package/dist/features/format/strikethrough/markdownTransformers.js.map +1 -1
- package/dist/features/format/subscript/feature.client.js +26 -28
- package/dist/features/format/subscript/feature.client.js.map +1 -1
- package/dist/features/format/subscript/feature.server.js +4 -5
- package/dist/features/format/subscript/feature.server.js.map +1 -1
- package/dist/features/format/superscript/feature.client.js +26 -28
- package/dist/features/format/superscript/feature.client.js.map +1 -1
- package/dist/features/format/superscript/feature.server.js +4 -5
- package/dist/features/format/superscript/feature.server.js.map +1 -1
- package/dist/features/format/underline/feature.client.js +26 -28
- package/dist/features/format/underline/feature.client.js.map +1 -1
- package/dist/features/format/underline/feature.server.js +4 -5
- package/dist/features/format/underline/feature.server.js.map +1 -1
- package/dist/features/heading/client/index.js +142 -121
- package/dist/features/heading/client/index.js.map +1 -1
- package/dist/features/heading/markdownTransformer.js +22 -25
- package/dist/features/heading/markdownTransformer.js.map +1 -1
- package/dist/features/heading/server/i18n.js +111 -112
- package/dist/features/heading/server/i18n.js.map +1 -1
- package/dist/features/heading/server/index.js +60 -62
- package/dist/features/heading/server/index.js.map +1 -1
- package/dist/features/horizontalRule/client/index.js +48 -57
- package/dist/features/horizontalRule/client/index.js.map +1 -1
- package/dist/features/horizontalRule/client/markdownTransformer.js +15 -18
- package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +27 -25
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
- package/dist/features/horizontalRule/client/plugin/index.js +32 -21
- package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
- package/dist/features/horizontalRule/server/i18n.js +111 -112
- package/dist/features/horizontalRule/server/i18n.js.map +1 -1
- package/dist/features/horizontalRule/server/index.js +17 -24
- package/dist/features/horizontalRule/server/index.js.map +1 -1
- package/dist/features/horizontalRule/server/markdownTransformer.js +15 -18
- package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +72 -69
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
- package/dist/features/indent/client/IndentPlugin.js +78 -78
- package/dist/features/indent/client/IndentPlugin.js.map +1 -1
- package/dist/features/indent/client/index.js +77 -68
- package/dist/features/indent/client/index.js.map +1 -1
- package/dist/features/indent/client/toolbarIndentGroup.js +8 -8
- package/dist/features/indent/client/toolbarIndentGroup.js.map +1 -1
- package/dist/features/indent/server/i18n.js +148 -149
- package/dist/features/indent/server/i18n.js.map +1 -1
- package/dist/features/indent/server/index.js +11 -18
- package/dist/features/indent/server/index.js.map +1 -1
- package/dist/features/link/client/index.js +80 -83
- package/dist/features/link/client/index.js.map +1 -1
- package/dist/features/link/client/plugins/autoLink/index.js +273 -280
- package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
- package/dist/features/link/client/plugins/clickableLink/index.js +4 -8
- package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +297 -378
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js +9 -12
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/types.js +1 -6
- package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
- package/dist/features/link/client/plugins/link/index.js +68 -53
- package/dist/features/link/client/plugins/link/index.js.map +1 -1
- package/dist/features/link/markdownTransformer.js +33 -34
- package/dist/features/link/markdownTransformer.js.map +1 -1
- package/dist/features/link/nodes/AutoLinkNode.js +58 -56
- package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
- package/dist/features/link/nodes/LinkNode.js +288 -286
- package/dist/features/link/nodes/LinkNode.js.map +1 -1
- package/dist/features/link/nodes/types.js +1 -6
- package/dist/features/link/nodes/types.js.map +1 -1
- package/dist/features/link/server/baseFields.js +140 -115
- package/dist/features/link/server/baseFields.js.map +1 -1
- package/dist/features/link/server/graphQLPopulationPromise.js +45 -29
- package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/link/server/i18n.js +148 -149
- package/dist/features/link/server/i18n.js.map +1 -1
- package/dist/features/link/server/index.js +143 -156
- package/dist/features/link/server/index.js.map +1 -1
- package/dist/features/link/server/transformExtraFields.js +15 -15
- package/dist/features/link/server/transformExtraFields.js.map +1 -1
- package/dist/features/link/server/validate.js +46 -35
- package/dist/features/link/server/validate.js.map +1 -1
- package/dist/features/lists/checklist/client/index.js +78 -86
- package/dist/features/lists/checklist/client/index.js.map +1 -1
- package/dist/features/lists/checklist/client/plugin/index.js +4 -8
- package/dist/features/lists/checklist/client/plugin/index.js.map +1 -1
- package/dist/features/lists/checklist/markdownTransformers.js +7 -11
- package/dist/features/lists/checklist/markdownTransformers.js.map +1 -1
- package/dist/features/lists/checklist/server/i18n.js +111 -112
- package/dist/features/lists/checklist/server/i18n.js.map +1 -1
- package/dist/features/lists/checklist/server/index.js +21 -26
- package/dist/features/lists/checklist/server/index.js.map +1 -1
- package/dist/features/lists/htmlConverter.js +62 -47
- package/dist/features/lists/htmlConverter.js.map +1 -1
- package/dist/features/lists/orderedList/client/index.js +72 -78
- package/dist/features/lists/orderedList/client/index.js.map +1 -1
- package/dist/features/lists/orderedList/markdownTransformer.js +7 -11
- package/dist/features/lists/orderedList/markdownTransformer.js.map +1 -1
- package/dist/features/lists/orderedList/server/i18n.js +111 -112
- package/dist/features/lists/orderedList/server/i18n.js.map +1 -1
- package/dist/features/lists/orderedList/server/index.js +21 -26
- package/dist/features/lists/orderedList/server/index.js.map +1 -1
- package/dist/features/lists/plugin/index.js +4 -8
- package/dist/features/lists/plugin/index.js.map +1 -1
- package/dist/features/lists/shared/markdown.js +48 -49
- package/dist/features/lists/shared/markdown.js.map +1 -1
- package/dist/features/lists/shared/shouldRegisterListBaseNodes.js +9 -10
- package/dist/features/lists/shared/shouldRegisterListBaseNodes.js.map +1 -1
- package/dist/features/lists/shared/slashMenuListGroup.js +9 -8
- package/dist/features/lists/shared/slashMenuListGroup.js.map +1 -1
- package/dist/features/lists/unorderedList/client/index.js +68 -76
- package/dist/features/lists/unorderedList/client/index.js.map +1 -1
- package/dist/features/lists/unorderedList/markdownTransformer.js +7 -11
- package/dist/features/lists/unorderedList/markdownTransformer.js.map +1 -1
- package/dist/features/lists/unorderedList/server/i18n.js +111 -112
- package/dist/features/lists/unorderedList/server/i18n.js.map +1 -1
- package/dist/features/lists/unorderedList/server/index.js +17 -24
- package/dist/features/lists/unorderedList/server/index.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +18 -17
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +30 -29
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +21 -20
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +21 -19
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +18 -17
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +24 -23
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +20 -21
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +1 -10
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +70 -64
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.js +1 -2
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.js +5 -7
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.js +42 -43
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +11 -21
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +66 -65
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +19 -19
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js +20 -26
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js +28 -30
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +26 -27
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js +22 -21
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +22 -22
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js +12 -13
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js +23 -23
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +22 -22
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js +15 -16
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.js +1 -13
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/index.js +117 -110
- package/dist/features/migrations/slateToLexical/converter/index.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/types.js +1 -2
- package/dist/features/migrations/slateToLexical/converter/types.js.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.client.js +5 -7
- package/dist/features/migrations/slateToLexical/feature.client.js.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.server.js +45 -54
- package/dist/features/migrations/slateToLexical/feature.server.js.map +1 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +11 -21
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +66 -65
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
- package/dist/features/paragraph/client/index.js +58 -61
- package/dist/features/paragraph/client/index.js.map +1 -1
- package/dist/features/paragraph/server/i18n.js +148 -149
- package/dist/features/paragraph/server/i18n.js.map +1 -1
- package/dist/features/paragraph/server/index.js +6 -7
- package/dist/features/paragraph/server/index.js.map +1 -1
- package/dist/features/relationship/client/components/RelationshipComponent.js +118 -147
- package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
- package/dist/features/relationship/client/drawer/commands.js +0 -1
- package/dist/features/relationship/client/drawer/commands.js.map +1 -1
- package/dist/features/relationship/client/drawer/index.js +132 -81
- package/dist/features/relationship/client/drawer/index.js.map +1 -1
- package/dist/features/relationship/client/index.js +53 -59
- package/dist/features/relationship/client/index.js.map +1 -1
- package/dist/features/relationship/client/nodes/RelationshipNode.js +60 -64
- package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
- package/dist/features/relationship/client/plugins/index.js +69 -39
- package/dist/features/relationship/client/plugins/index.js.map +1 -1
- package/dist/features/relationship/client/utils/useEnabledRelationships.js +58 -48
- package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
- package/dist/features/relationship/server/graphQLPopulationPromise.js +34 -26
- package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/relationship/server/i18n.js +111 -112
- package/dist/features/relationship/server/i18n.js.map +1 -1
- package/dist/features/relationship/server/index.js +59 -64
- package/dist/features/relationship/server/index.js.map +1 -1
- package/dist/features/relationship/server/nodes/RelationshipNode.js +95 -92
- package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
- package/dist/features/shared/slashMenu/basicGroup.js +9 -8
- package/dist/features/shared/slashMenu/basicGroup.js.map +1 -1
- package/dist/features/shared/toolbar/addDropdownGroup.js +8 -9
- package/dist/features/shared/toolbar/addDropdownGroup.js.map +1 -1
- package/dist/features/shared/toolbar/featureButtonsGroup.js +7 -8
- package/dist/features/shared/toolbar/featureButtonsGroup.js.map +1 -1
- package/dist/features/shared/toolbar/textDropdownGroup.js +8 -9
- package/dist/features/shared/toolbar/textDropdownGroup.js.map +1 -1
- package/dist/features/textState/defaultColors.js +370 -370
- package/dist/features/textState/defaultColors.js.map +1 -1
- package/dist/features/textState/feature.client.js +64 -77
- package/dist/features/textState/feature.client.js.map +1 -1
- package/dist/features/textState/feature.server.js +14 -46
- package/dist/features/textState/feature.server.js.map +1 -1
- package/dist/features/textState/i18n.js +111 -112
- package/dist/features/textState/i18n.js.map +1 -1
- package/dist/features/textState/textState.js +62 -64
- package/dist/features/textState/textState.js.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.js +297 -263
- package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/fixed/client/index.js +5 -7
- package/dist/features/toolbars/fixed/client/index.js.map +1 -1
- package/dist/features/toolbars/fixed/server/index.js +16 -32
- package/dist/features/toolbars/fixed/server/index.js.map +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.js +366 -343
- package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/inline/client/index.js +5 -7
- package/dist/features/toolbars/inline/client/index.js.map +1 -1
- package/dist/features/toolbars/inline/server/index.js +4 -5
- package/dist/features/toolbars/inline/server/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarButton/index.js +145 -103
- package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +208 -264
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js +176 -172
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
- package/dist/features/toolbars/types.js +1 -29
- package/dist/features/toolbars/types.js.map +1 -1
- package/dist/features/typeUtilities.js +2 -3
- package/dist/features/typeUtilities.js.map +1 -1
- package/dist/features/typesClient.js +1 -61
- package/dist/features/typesClient.js.map +1 -1
- package/dist/features/typesServer.js +1 -90
- package/dist/features/typesServer.js.map +1 -1
- package/dist/features/upload/client/component/index.js +189 -242
- package/dist/features/upload/client/component/index.js.map +1 -1
- package/dist/features/upload/client/component/pending/index.js +10 -19
- package/dist/features/upload/client/component/pending/index.js.map +1 -1
- package/dist/features/upload/client/drawer/commands.js +1 -1
- package/dist/features/upload/client/drawer/commands.js.map +1 -1
- package/dist/features/upload/client/drawer/index.js +132 -83
- package/dist/features/upload/client/drawer/index.js.map +1 -1
- package/dist/features/upload/client/index.js +51 -61
- package/dist/features/upload/client/index.js.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.js +61 -67
- package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/client/plugin/index.js +331 -290
- package/dist/features/upload/client/plugin/index.js.map +1 -1
- package/dist/features/upload/server/graphQLPopulationPromise.js +63 -48
- package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/upload/server/i18n.js +111 -112
- package/dist/features/upload/server/i18n.js.map +1 -1
- package/dist/features/upload/server/index.js +207 -197
- package/dist/features/upload/server/index.js.map +1 -1
- package/dist/features/upload/server/nodes/UploadNode.js +99 -115
- package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/server/nodes/conversions.js +40 -41
- package/dist/features/upload/server/nodes/conversions.js.map +1 -1
- package/dist/features/upload/server/validate.js +62 -48
- package/dist/features/upload/server/validate.js.map +1 -1
- package/dist/field/Diff/converters/link.js +41 -32
- package/dist/field/Diff/converters/link.js.map +1 -1
- package/dist/field/Diff/converters/listitem/index.js +55 -75
- package/dist/field/Diff/converters/listitem/index.js.map +1 -1
- package/dist/field/Diff/converters/relationship/index.js +63 -85
- package/dist/field/Diff/converters/relationship/index.js.map +1 -1
- package/dist/field/Diff/converters/unknown/index.js +41 -64
- package/dist/field/Diff/converters/unknown/index.js.map +1 -1
- package/dist/field/Diff/converters/upload/index.js +66 -122
- package/dist/field/Diff/converters/upload/index.js.map +1 -1
- package/dist/field/Diff/index.js +66 -59
- package/dist/field/Diff/index.js.map +1 -1
- package/dist/field/Field.js +167 -226
- package/dist/field/Field.js.map +1 -1
- package/dist/field/RenderLexical/index.js +119 -123
- package/dist/field/RenderLexical/index.js.map +1 -1
- package/dist/field/bundled.css +1 -0
- package/dist/field/index.js +97 -61
- package/dist/field/index.js.map +1 -1
- package/dist/field/rscEntry.js +84 -86
- package/dist/field/rscEntry.js.map +1 -1
- package/dist/i18n.js +222 -223
- package/dist/i18n.js.map +1 -1
- package/dist/index.js +704 -639
- package/dist/index.js.map +1 -1
- package/dist/lexical/EditorPlugin.js +17 -21
- package/dist/lexical/EditorPlugin.js.map +1 -1
- package/dist/lexical/LexicalEditor.js +171 -274
- package/dist/lexical/LexicalEditor.js.map +1 -1
- package/dist/lexical/LexicalProvider.js +86 -109
- package/dist/lexical/LexicalProvider.js.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.js +81 -94
- package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
- package/dist/lexical/config/client/default.js +3 -3
- package/dist/lexical/config/client/default.js.map +1 -1
- package/dist/lexical/config/client/loader.js +38 -30
- package/dist/lexical/config/client/loader.js.map +1 -1
- package/dist/lexical/config/client/sanitize.js +187 -188
- package/dist/lexical/config/client/sanitize.js.map +1 -1
- package/dist/lexical/config/server/default.js +5 -27
- package/dist/lexical/config/server/default.js.map +1 -1
- package/dist/lexical/config/server/loader.js +106 -105
- package/dist/lexical/config/server/loader.js.map +1 -1
- package/dist/lexical/config/server/sanitize.js +113 -114
- package/dist/lexical/config/server/sanitize.js.map +1 -1
- package/dist/lexical/config/types.js +1 -4
- package/dist/lexical/config/types.js.map +1 -1
- package/dist/lexical/nodes/index.js +15 -12
- package/dist/lexical/nodes/index.js.map +1 -1
- package/dist/lexical/plugins/ClipboardPlugin/index.js +70 -66
- package/dist/lexical/plugins/ClipboardPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/DecoratorPlugin/index.js +225 -208
- package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +41 -42
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
- package/dist/lexical/plugins/MarkdownShortcut/index.js +23 -11
- package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
- package/dist/lexical/plugins/NormalizeSelection/index.js +19 -21
- package/dist/lexical/plugins/NormalizeSelection/index.js.map +1 -1
- package/dist/lexical/plugins/SelectAllPlugin/index.js +17 -19
- package/dist/lexical/plugins/SelectAllPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +420 -399
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +155 -164
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +1 -10
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.js +181 -204
- package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +41 -28
- package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -1
- package/dist/lexical/plugins/TextPlugin/index.js +42 -27
- package/dist/lexical/plugins/TextPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +130 -145
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +10 -10
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +10 -10
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +26 -23
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +317 -325
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +98 -86
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js +22 -16
- package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js +19 -29
- package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js +14 -11
- package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js +133 -122
- package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +2 -2
- package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/isOnHandleElement.js +2 -2
- package/dist/lexical/plugins/handles/utils/isOnHandleElement.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/setHandlePosition.js +24 -29
- package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
- package/dist/lexical/theme/EditorTheme.js +65 -72
- package/dist/lexical/theme/EditorTheme.js.map +1 -1
- package/dist/lexical/ui/ContentEditable.js +35 -22
- package/dist/lexical/ui/ContentEditable.js.map +1 -1
- package/dist/lexical/ui/icons/AI/index.js +31 -58
- package/dist/lexical/ui/icons/AI/index.js.map +1 -1
- package/dist/lexical/ui/icons/Add/index.js +16 -31
- package/dist/lexical/ui/icons/Add/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignCenter/index.js +25 -45
- package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignJustify/index.js +25 -45
- package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignLeft/index.js +25 -45
- package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignRight/index.js +25 -45
- package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
- package/dist/lexical/ui/icons/Block/index.js +34 -54
- package/dist/lexical/ui/icons/Block/index.js.map +1 -1
- package/dist/lexical/ui/icons/Blockquote/index.js +16 -24
- package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
- package/dist/lexical/ui/icons/Bold/index.js +16 -24
- package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
- package/dist/lexical/ui/icons/Checklist/index.js +24 -39
- package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
- package/dist/lexical/ui/icons/Code/index.js +19 -34
- package/dist/lexical/ui/icons/Code/index.js.map +1 -1
- package/dist/lexical/ui/icons/CodeBlock/index.js +14 -22
- package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
- package/dist/lexical/ui/icons/Collapse/index.js +15 -23
- package/dist/lexical/ui/icons/Collapse/index.js.map +1 -1
- package/dist/lexical/ui/icons/H1/index.js +16 -24
- package/dist/lexical/ui/icons/H1/index.js.map +1 -1
- package/dist/lexical/ui/icons/H2/index.js +16 -24
- package/dist/lexical/ui/icons/H2/index.js.map +1 -1
- package/dist/lexical/ui/icons/H3/index.js +16 -24
- package/dist/lexical/ui/icons/H3/index.js.map +1 -1
- package/dist/lexical/ui/icons/H4/index.js +16 -24
- package/dist/lexical/ui/icons/H4/index.js.map +1 -1
- package/dist/lexical/ui/icons/H5/index.js +16 -24
- package/dist/lexical/ui/icons/H5/index.js.map +1 -1
- package/dist/lexical/ui/icons/H6/index.js +16 -24
- package/dist/lexical/ui/icons/H6/index.js.map +1 -1
- package/dist/lexical/ui/icons/HorizontalRule/index.js +19 -27
- package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
- package/dist/lexical/ui/icons/IndentDecrease/index.js +28 -53
- package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
- package/dist/lexical/ui/icons/IndentIncrease/index.js +28 -53
- package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
- package/dist/lexical/ui/icons/InlineBlocks/index.js +18 -26
- package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
- package/dist/lexical/ui/icons/Italic/index.js +16 -24
- package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
- package/dist/lexical/ui/icons/Link/index.js +17 -25
- package/dist/lexical/ui/icons/Link/index.js.map +1 -1
- package/dist/lexical/ui/icons/Meatballs/index.js +19 -39
- package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
- package/dist/lexical/ui/icons/OrderedList/index.js +31 -61
- package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
- package/dist/lexical/ui/icons/Relationship/index.js +31 -58
- package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
- package/dist/lexical/ui/icons/Strikethrough/index.js +19 -34
- package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
- package/dist/lexical/ui/icons/Subscript/index.js +16 -24
- package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
- package/dist/lexical/ui/icons/Superscript/index.js +16 -24
- package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
- package/dist/lexical/ui/icons/Table/index.js +17 -25
- package/dist/lexical/ui/icons/Table/index.js.map +1 -1
- package/dist/lexical/ui/icons/Text/index.js +16 -24
- package/dist/lexical/ui/icons/Text/index.js.map +1 -1
- package/dist/lexical/ui/icons/TextState/index.js +19 -25
- package/dist/lexical/ui/icons/TextState/index.js.map +1 -1
- package/dist/lexical/ui/icons/Underline/index.js +19 -34
- package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
- package/dist/lexical/ui/icons/UnorderedList/index.js +46 -81
- package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
- package/dist/lexical/ui/icons/Upload/index.js +28 -48
- package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
- package/dist/lexical/utils/canUseDOM.js +1 -1
- package/dist/lexical/utils/canUseDOM.js.map +1 -1
- package/dist/lexical/utils/environment.js +1 -1
- package/dist/lexical/utils/environment.js.map +1 -1
- package/dist/lexical/utils/getDOMRangeRect.js +12 -12
- package/dist/lexical/utils/getDOMRangeRect.js.map +1 -1
- package/dist/lexical/utils/getSelectedNode.js +17 -13
- package/dist/lexical/utils/getSelectedNode.js.map +1 -1
- package/dist/lexical/utils/guard.js +4 -3
- package/dist/lexical/utils/guard.js.map +1 -1
- package/dist/lexical/utils/joinClasses.js +2 -2
- package/dist/lexical/utils/joinClasses.js.map +1 -1
- package/dist/lexical/utils/markdown/createBlockNode.js +9 -10
- package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
- package/dist/lexical/utils/nodeFormat.js +58 -59
- package/dist/lexical/utils/nodeFormat.js.map +1 -1
- package/dist/lexical/utils/point.js +39 -32
- package/dist/lexical/utils/point.js.map +1 -1
- package/dist/lexical/utils/rect.js +166 -136
- package/dist/lexical/utils/rect.js.map +1 -1
- package/dist/lexical/utils/setFloatingElemPosition.js +56 -48
- package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -1
- package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js +22 -22
- package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js.map +1 -1
- package/dist/lexical/utils/swipe.js +81 -83
- package/dist/lexical/utils/swipe.js.map +1 -1
- package/dist/lexical/utils/url.js +53 -53
- package/dist/lexical/utils/url.js.map +1 -1
- package/dist/lexical/utils/url.spec.js +98 -214
- package/dist/lexical/utils/url.spec.js.map +1 -1
- package/dist/lexical-proxy/@lexical-headless.js +0 -1
- package/dist/lexical-proxy/@lexical-headless.js.map +1 -1
- package/dist/lexical-proxy/@lexical-html.js +0 -1
- package/dist/lexical-proxy/@lexical-html.js.map +1 -1
- package/dist/lexical-proxy/@lexical-link.js +0 -1
- package/dist/lexical-proxy/@lexical-link.js.map +1 -1
- package/dist/lexical-proxy/@lexical-list.js +0 -1
- package/dist/lexical-proxy/@lexical-list.js.map +1 -1
- package/dist/lexical-proxy/@lexical-mark.js +0 -1
- package/dist/lexical-proxy/@lexical-mark.js.map +1 -1
- package/dist/lexical-proxy/@lexical-markdown.js +0 -1
- package/dist/lexical-proxy/@lexical-markdown.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalAutoEmbedPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalAutoFocusPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalAutoLinkPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalBlockWithAlignableContents.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalCharacterLimitPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalCheckListPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalClearEditorPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalClickableLinkPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalCollaborationContext.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalCollaborationPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalComposer.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalComposer.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalComposerContext.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalContentEditable.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalDecoratorBlockNode.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalDraggableBlockPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalEditorRefPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalErrorBoundary.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalHashtagPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalHistoryPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRuleNode.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalHorizontalRulePlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalLinkPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalListPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalMarkdownShortcutPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalNestedComposer.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalNodeContextMenuPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalNodeContextMenuPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalNodeEventPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalNodeMenuPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalOnChangePlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalPlainTextPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalRichTextPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalTabIndentationPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalTableOfContentsPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalTablePlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalTreeView.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalTypeaheadMenuPlugin.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js +0 -1
- package/dist/lexical-proxy/@lexical-react/useLexicalEditable.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js +0 -1
- package/dist/lexical-proxy/@lexical-react/useLexicalIsTextContentEmpty.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js +0 -1
- package/dist/lexical-proxy/@lexical-react/useLexicalNodeSelection.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js +0 -1
- package/dist/lexical-proxy/@lexical-react/useLexicalSubscription.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js +0 -1
- package/dist/lexical-proxy/@lexical-react/useLexicalTextEntity.js.map +1 -1
- package/dist/lexical-proxy/@lexical-rich-text.js +0 -1
- package/dist/lexical-proxy/@lexical-rich-text.js.map +1 -1
- package/dist/lexical-proxy/@lexical-selection.js +0 -1
- package/dist/lexical-proxy/@lexical-selection.js.map +1 -1
- package/dist/lexical-proxy/@lexical-utils.js +0 -1
- package/dist/lexical-proxy/@lexical-utils.js.map +1 -1
- package/dist/lexical-proxy/lexical.js +0 -1
- package/dist/lexical-proxy/lexical.js.map +1 -1
- package/dist/nodeTypes.js +1 -35
- package/dist/nodeTypes.js.map +1 -1
- package/dist/packages/@lexical/markdown/MarkdownExport.js +179 -184
- package/dist/packages/@lexical/markdown/MarkdownExport.js.map +1 -1
- package/dist/packages/@lexical/markdown/MarkdownImport.js +169 -174
- package/dist/packages/@lexical/markdown/MarkdownImport.js.map +1 -1
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +268 -258
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +1 -1
- package/dist/packages/@lexical/markdown/MarkdownTransformers.js +209 -305
- package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +1 -1
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +73 -76
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +1 -1
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +48 -59
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +1 -1
- package/dist/packages/@lexical/markdown/importTextTransformers.js +45 -51
- package/dist/packages/@lexical/markdown/importTextTransformers.js.map +1 -1
- package/dist/packages/@lexical/markdown/index.js +14 -33
- package/dist/packages/@lexical/markdown/index.js.map +1 -1
- package/dist/packages/@lexical/markdown/utils.js +185 -217
- package/dist/packages/@lexical/markdown/utils.js.map +1 -1
- package/dist/populateGraphQL/defaultValue.js +24 -29
- package/dist/populateGraphQL/defaultValue.js.map +1 -1
- package/dist/populateGraphQL/populate.js +37 -26
- package/dist/populateGraphQL/populate.js.map +1 -1
- package/dist/populateGraphQL/populateLexicalPopulationPromises.js +50 -34
- package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
- package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js +42 -35
- package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js.map +1 -1
- package/dist/types.js +1 -40
- package/dist/types.js.map +1 -1
- package/dist/utilities/applyBaseFilterToFields.js +84 -81
- package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
- package/dist/utilities/buildEditorState.js +40 -39
- package/dist/utilities/buildEditorState.js.map +1 -1
- package/dist/utilities/buildInitialState.js +52 -51
- package/dist/utilities/buildInitialState.js.map +1 -1
- package/dist/utilities/createClientFeature.js +48 -42
- package/dist/utilities/createClientFeature.js.map +1 -1
- package/dist/utilities/createServerFeature.js +48 -38
- package/dist/utilities/createServerFeature.js.map +1 -1
- package/dist/utilities/editorConfigFactory.js +79 -78
- package/dist/utilities/editorConfigFactory.js.map +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.js +70 -45
- package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.js +120 -130
- package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +115 -64
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +121 -76
- package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +141 -79
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -1
- package/dist/utilities/forEachNodeRecursively.js +24 -19
- package/dist/utilities/forEachNodeRecursively.js.map +1 -1
- package/dist/utilities/generateImportMap.js +49 -43
- package/dist/utilities/generateImportMap.js.map +1 -1
- package/dist/utilities/generateSchemaMap.js +37 -32
- package/dist/utilities/generateSchemaMap.js.map +1 -1
- package/dist/utilities/getDefaultSanitizedEditorConfig.js +14 -12
- package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
- package/dist/utilities/initLexicalFeatures.js +65 -68
- package/dist/utilities/initLexicalFeatures.js.map +1 -1
- package/dist/utilities/jsx/collectTopLevelJSXInLines.js +29 -26
- package/dist/utilities/jsx/collectTopLevelJSXInLines.js.map +1 -1
- package/dist/utilities/jsx/declare.d.js.map +1 -1
- package/dist/utilities/jsx/extractPropsFromJSXPropsString.js +102 -100
- package/dist/utilities/jsx/extractPropsFromJSXPropsString.js.map +1 -1
- package/dist/utilities/jsx/jsx.js +80 -76
- package/dist/utilities/jsx/jsx.js.map +1 -1
- package/dist/utilities/jsx/jsx.spec.js +171 -225
- package/dist/utilities/jsx/jsx.spec.js.map +1 -1
- package/dist/utilities/migrateSlateToLexical/index.js +128 -112
- package/dist/utilities/migrateSlateToLexical/index.js.map +1 -1
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +78 -74
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
- package/dist/utilities/recurseNodeTree.js +25 -22
- package/dist/utilities/recurseNodeTree.js.map +1 -1
- package/dist/utilities/upgradeLexicalData/index.js +102 -88
- package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
- package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +80 -78
- package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
- package/dist/utilities/useLexicalFeature.js +16 -14
- package/dist/utilities/useLexicalFeature.js.map +1 -1
- package/dist/utilities/useRunDeprioritized.js +37 -41
- package/dist/utilities/useRunDeprioritized.js.map +1 -1
- package/dist/validate/hasText.js +20 -21
- package/dist/validate/hasText.js.map +1 -1
- package/dist/validate/index.js +28 -22
- package/dist/validate/index.js.map +1 -1
- package/dist/validate/validateNodes.js +31 -28
- package/dist/validate/validateNodes.js.map +1 -1
- package/package.json +6 -6
- package/dist/features/blocks/client/component/index.scss +0 -188
- package/dist/features/blocks/client/componentInline/index.scss +0 -100
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.scss +0 -6
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.scss +0 -29
- package/dist/features/blocks/premade/CodeBlock/Component/index.scss +0 -97
- package/dist/features/debug/jsxConverter/client/plugin/style.scss +0 -12
- package/dist/features/debug/testRecorder/client/plugin/index.scss +0 -53
- package/dist/features/debug/treeView/client/plugin/index.scss +0 -80
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.scss +0 -87
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.scss +0 -11
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.scss +0 -233
- package/dist/features/horizontalRule/client/plugin/index.scss +0 -23
- package/dist/features/link/client/plugins/floatingLinkEditor/index.scss +0 -92
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.scss +0 -16
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.scss +0 -16
- package/dist/features/relationship/client/components/index.scss +0 -95
- package/dist/features/toolbars/fixed/client/Toolbar/index.scss +0 -113
- package/dist/features/toolbars/inline/client/Toolbar/index.scss +0 -58
- package/dist/features/toolbars/shared/ToolbarButton/index.scss +0 -46
- package/dist/features/toolbars/shared/ToolbarDropdown/index.scss +0 -129
- package/dist/features/upload/client/component/index.scss +0 -191
- package/dist/field/Diff/converters/listitem/index.scss +0 -47
- package/dist/field/Diff/converters/relationship/index.scss +0 -73
- package/dist/field/Diff/converters/unknown/index.scss +0 -40
- package/dist/field/Diff/converters/upload/index.scss +0 -115
- package/dist/field/Diff/index.scss +0 -102
- package/dist/field/index.scss +0 -41
- package/dist/lexical/LexicalEditor.scss +0 -54
- package/dist/lexical/plugins/DecoratorPlugin/index.scss +0 -13
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.scss +0 -54
- package/dist/lexical/plugins/SlashMenu/index.scss +0 -68
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.scss +0 -35
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.scss +0 -80
- package/dist/lexical/theme/EditorTheme.scss +0 -357
- package/dist/lexical/ui/ContentEditable.scss +0 -105
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementNode, LexicalNode } from 'lexical'\nimport type { Data, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CloseMenuIcon,\n EditIcon,\n ExternalLinkIcon,\n formatDrawerSlug,\n useConfig,\n useEditDepth,\n useLocale,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport {\n $getSelection,\n $isLineBreakNode,\n $isRangeSelection,\n COMMAND_PRIORITY_HIGH,\n COMMAND_PRIORITY_LOW,\n getDOMSelection,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { LinkNode } from '../../../../nodes/LinkNode.js'\nimport type { LinkFields } from '../../../../nodes/types.js'\nimport type { LinkPayload } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js'\nimport { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js'\nimport { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js'\nimport { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'\n\nfunction preventDefault(\n event: React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLElement>,\n): void {\n event.preventDefault()\n}\n\nexport function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n // TO-DO: There are several states that should not be state, because they\n // are derived from linkNode (linkUrl, linkLabel, stateData, isLink, isAutoLink...)\n const [linkNode, setLinkNode] = useState<LinkNode>()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const [linkUrl, setLinkUrl] = useState<null | string>(null)\n const [linkLabel, setLinkLabel] = useState<null | string>(null)\n\n const {\n fieldProps: { schemaPath },\n uuid,\n } = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n\n const { config, getEntityConfig } = useConfig()\n\n const { i18n, t } = useTranslation<object, 'lexical:link:loadingWithEllipsis'>()\n\n const [stateData, setStateData] = useState<\n ({ id?: string; text: string } & LinkFields) | undefined\n >()\n\n const editDepth = useEditDepth()\n const [isLink, setIsLink] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n const locale = useLocale()\n\n const [isAutoLink, setIsAutoLink] = useState(false)\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-link-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n const setNotLink = useCallback(() => {\n setIsLink(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setIsAutoLink(false)\n setLinkUrl(null)\n setLinkLabel(null)\n setSelectedNodes([])\n setStateData(undefined)\n }, [setIsLink, setLinkUrl, setLinkLabel, setSelectedNodes])\n\n const $updateLinkEditor = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined\n\n if (!$isRangeSelection(selection) || !selection) {\n void setNotLink()\n return\n }\n\n // Handle the data displayed in the floating link editor & drawer when you click on a link node\n\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusLinkParent = $findMatchingParent(focusNode, $isLinkNode)\n\n // Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const linkNode = $findMatchingParent(node, $isLinkNode)\n return (\n (focusLinkParent && !focusLinkParent.is(linkNode)) ||\n (linkNode && !linkNode.is(focusLinkParent))\n )\n })\n\n if (focusLinkParent == null || badNode) {\n setNotLink()\n return\n }\n setLinkNode(focusLinkParent)\n\n const fields = focusLinkParent.getFields()\n\n // Initial state:\n const data: { text: string } & LinkFields = {\n ...fields,\n id: focusLinkParent.getID(),\n text: focusLinkParent.getTextContent(),\n }\n\n if (fields?.linkType === 'custom') {\n setLinkUrl(fields?.url ?? null)\n setLinkLabel(null)\n } else {\n // internal link\n setLinkUrl(\n `${config.routes.admin === '/' ? '' : config.routes.admin}/collections/${fields?.doc?.relationTo}/${\n fields?.doc?.value\n }`,\n )\n\n const relatedField = fields?.doc?.relationTo\n ? getEntityConfig({ collectionSlug: fields?.doc?.relationTo })\n : undefined\n if (!relatedField) {\n // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.\n // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.\n setLinkLabel(fields?.label ? String(fields?.label) : null)\n setLinkUrl(fields?.url ? String(fields?.url) : null)\n } else {\n const id = typeof fields.doc?.value === 'object' ? fields.doc.value.id : fields.doc?.value\n const collection = fields.doc?.relationTo\n if (!id || !collection) {\n throw new Error(`Focus link parent is missing doc.value or doc.relationTo`)\n }\n\n const loadingLabel = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('lexical:link:loadingWithEllipsis', i18n)}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(loadingLabel)\n\n requests\n .get(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${collection}/${id}`,\n serverURL: config.serverURL,\n }),\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n params: {\n depth: 0,\n locale: locale?.code,\n },\n },\n )\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP error! Status: ${res.status}`)\n }\n const data = await res.json()\n const useAsTitle = relatedField?.admin?.useAsTitle || 'id'\n const title = data[useAsTitle]\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${title}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n .catch(() => {\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('general:untitled', i18n)} - ID: ${id}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n }\n }\n\n setStateData(data)\n setIsLink(true)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n\n if ($isAutoLinkNode(focusLinkParent)) {\n setIsAutoLink(true)\n } else {\n setIsAutoLink(false)\n }\n\n const editorElem = editorRef.current\n const nativeSelection = getDOMSelection(editor._window)\n const { activeElement } = document\n\n if (editorElem === null) {\n return\n }\n\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n if (!selectedNodeDomRect) {\n // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong\n // result, which is why we use lexical's selection preferably.\n selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect()\n }\n\n if (selectedNodeDomRect != null) {\n selectedNodeDomRect.y += 40\n setFloatingElemPositionForLinkEditor(selectedNodeDomRect, editorElem, anchorElem)\n }\n } else if (activeElement == null || activeElement.className !== 'link-input') {\n if (rootElement !== null) {\n setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem)\n }\n setLinkUrl(null)\n setLinkLabel(null)\n }\n\n return true\n }, [\n editor,\n setNotLink,\n config.routes.admin,\n config.routes.api,\n config.serverURL,\n getEntityConfig,\n t,\n i18n,\n locale?.code,\n anchorElem,\n ])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_WITH_MODAL_COMMAND,\n (payload: LinkPayload) => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload)\n\n // Now, open the modal\n $updateLinkEditor()\n toggleDrawer()\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateLinkEditor, toggleDrawer, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }\n\n window.addEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [anchorElem.parentElement, editor, $updateLinkEditor])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateLinkEditor()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n void $updateLinkEditor()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n () => {\n if (isLink) {\n setNotLink()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateLinkEditor, isLink, setNotLink])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }, [editor, $updateLinkEditor])\n\n return (\n <React.Fragment>\n <div className=\"link-editor\" ref={editorRef}>\n <div className=\"link-input\">\n {linkUrl && linkUrl.length > 0 ? (\n <a href={linkUrl} rel=\"noopener noreferrer\" target=\"_blank\">\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n {linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl}\n </a>\n ) : linkLabel != null && linkLabel.length > 0 ? (\n <>\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n <span className=\"link-input__label-pure\">{linkLabel}</span>\n </>\n ) : null}\n\n {isEditable && (\n <React.Fragment>\n <button\n aria-label=\"Edit link\"\n className=\"link-edit\"\n onClick={(event) => {\n event.preventDefault()\n toggleDrawer()\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <EditIcon />\n </button>\n {!isAutoLink && (\n <button\n aria-label=\"Remove link\"\n className=\"link-trash\"\n onClick={() => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <CloseMenuIcon />\n </button>\n )}\n </React.Fragment>\n )}\n </div>\n </div>\n <FieldsDrawer\n className=\"lexical-link-edit-drawer\"\n data={stateData}\n drawerSlug={drawerSlug}\n drawerTitle={t('fields:editLink')}\n featureKey=\"link\"\n handleDrawerSubmit={(fields: FormState, data: Data) => {\n const newLinkPayload = data as { text: string } & LinkFields\n\n const bareLinkFields: LinkFields = {\n ...newLinkPayload,\n }\n delete bareLinkFields.text\n\n // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).\n editor.update(() => {\n const selection = $getSelection()\n let linkParent: ElementNode | null = null\n if ($isRangeSelection(selection)) {\n linkParent = getSelectedNode(selection).getParent()\n } else {\n if (selectedNodes.length) {\n linkParent = selectedNodes[0]?.getParent() ?? null\n }\n }\n\n if (linkParent && $isAutoLinkNode(linkParent)) {\n const linkNode = $createLinkNode({\n fields: bareLinkFields,\n })\n linkParent.replace(linkNode, true)\n }\n })\n\n // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to\n // it being applied to the auto link node instead of the link node.\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: bareLinkFields,\n selectedNodes,\n text: newLinkPayload.text,\n })\n }}\n schemaPath={schemaPath}\n schemaPathSuffix=\"fields\"\n />\n </React.Fragment>\n )\n}\n"],"names":["useLexicalComposerContext","useLexicalEditable","$findMatchingParent","mergeRegister","getTranslation","CloseMenuIcon","EditIcon","ExternalLinkIcon","formatDrawerSlug","useConfig","useEditDepth","useLocale","useTranslation","requests","$getSelection","$isLineBreakNode","$isRangeSelection","COMMAND_PRIORITY_HIGH","COMMAND_PRIORITY_LOW","getDOMSelection","KEY_ESCAPE_COMMAND","SELECTION_CHANGE_COMMAND","formatAdminURL","React","useCallback","useEffect","useRef","useState","useEditorConfigContext","getSelectedNode","setFloatingElemPositionForLinkEditor","FieldsDrawer","useLexicalDrawer","$isAutoLinkNode","$createLinkNode","$isLinkNode","TOGGLE_LINK_COMMAND","TOGGLE_LINK_WITH_MODAL_COMMAND","preventDefault","event","LinkEditor","anchorElem","editor","linkNode","setLinkNode","editorRef","linkUrl","setLinkUrl","linkLabel","setLinkLabel","fieldProps","schemaPath","uuid","isEditable","config","getEntityConfig","i18n","t","stateData","setStateData","editDepth","isLink","setIsLink","selectedNodes","setSelectedNodes","locale","isAutoLink","setIsAutoLink","drawerSlug","slug","depth","toggleDrawer","setNotLink","current","style","opacity","transform","undefined","$updateLinkEditor","selection","selectedNodeDomRect","focusNode","getElementByKey","getKey","getBoundingClientRect","focusLinkParent","badNode","getNodes","filter","node","find","is","fields","getFields","data","id","getID","text","getTextContent","linkType","url","routes","admin","doc","relationTo","value","relatedField","collectionSlug","label","String","collection","Error","loadingLabel","labels","singular","replace","get","apiRoute","api","path","serverURL","headers","language","params","code","then","res","ok","status","json","useAsTitle","title","catch","editorElem","nativeSelection","_window","activeElement","document","rootElement","getRootElement","contains","anchorNode","getRangeAt","y","className","registerCommand","payload","dispatchCommand","scrollerElem","parentElement","update","getEditorState","read","window","addEventListener","removeEventListener","registerUpdateListener","editorState","Fragment","div","ref","length","a","href","rel","target","__fields","newTab","span","button","aria-label","onClick","onMouseDown","tabIndex","type","drawerTitle","featureKey","handleDrawerSubmit","newLinkPayload","bareLinkFields","linkParent","getParent","schemaPathSuffix"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useLexicalComposerContext","useLexicalEditable","$findMatchingParent","mergeRegister","getTranslation","CloseMenuIcon","EditIcon","ExternalLinkIcon","formatDrawerSlug","useConfig","useEditDepth","useLocale","useTranslation","requests","$getSelection","$isLineBreakNode","$isRangeSelection","COMMAND_PRIORITY_HIGH","COMMAND_PRIORITY_LOW","getDOMSelection","KEY_ESCAPE_COMMAND","SELECTION_CHANGE_COMMAND","formatAdminURL","React","useCallback","useEffect","useRef","useState","useEditorConfigContext","getSelectedNode","setFloatingElemPositionForLinkEditor","FieldsDrawer","useLexicalDrawer","$isAutoLinkNode","$createLinkNode","$isLinkNode","TOGGLE_LINK_COMMAND","TOGGLE_LINK_WITH_MODAL_COMMAND","preventDefault","event","LinkEditor","anchorElem","editor","linkNode","setLinkNode","editorRef","linkUrl","setLinkUrl","linkLabel","setLinkLabel","fieldProps","schemaPath","uuid","isEditable","config","getEntityConfig","i18n","t","stateData","setStateData","editDepth","isLink","setIsLink","selectedNodes","setSelectedNodes","locale","isAutoLink","setIsAutoLink","drawerSlug","slug","depth","toggleDrawer","setNotLink","current","style","opacity","transform","undefined","$updateLinkEditor","selection","selectedNodeDomRect","focusNode","getElementByKey","getKey","getBoundingClientRect","focusLinkParent","badNode","getNodes","filter","node","find","is","fields","getFields","data","id","getID","text","getTextContent","linkType","url","routes","admin","doc","relationTo","value","relatedField","collectionSlug","label","String","collection","Error","loadingLabel","labels","singular","replace","get","apiRoute","api","path","serverURL","headers","language","params","code","then","res","ok","status","json","useAsTitle","title","catch","editorElem","nativeSelection","_window","activeElement","document","rootElement","getRootElement","contains","anchorNode","getRangeAt","y","className","registerCommand","payload","dispatchCommand","scrollerElem","parentElement","update","getEditorState","read","window","addEventListener","removeEventListener","registerUpdateListener","editorState","_jsxs","Fragment","_jsx","ref","length","href","rel","target","__fields","newTab","_Fragment","onClick","onMouseDown","tabIndex","type","drawerTitle","featureKey","handleDrawerSubmit","newLinkPayload","bareLinkFields","linkParent","getParent","schemaPathSuffix"],"sources":["../../../../../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementNode, LexicalNode } from 'lexical'\nimport type { Data, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CloseMenuIcon,\n EditIcon,\n ExternalLinkIcon,\n formatDrawerSlug,\n useConfig,\n useEditDepth,\n useLocale,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport {\n $getSelection,\n $isLineBreakNode,\n $isRangeSelection,\n COMMAND_PRIORITY_HIGH,\n COMMAND_PRIORITY_LOW,\n getDOMSelection,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { LinkNode } from '../../../../nodes/LinkNode.js'\nimport type { LinkFields } from '../../../../nodes/types.js'\nimport type { LinkPayload } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js'\nimport { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js'\nimport { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js'\nimport { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'\n\nfunction preventDefault(\n event: React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLElement>,\n): void {\n event.preventDefault()\n}\n\nexport function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n // TO-DO: There are several states that should not be state, because they\n // are derived from linkNode (linkUrl, linkLabel, stateData, isLink, isAutoLink...)\n const [linkNode, setLinkNode] = useState<LinkNode>()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const [linkUrl, setLinkUrl] = useState<null | string>(null)\n const [linkLabel, setLinkLabel] = useState<null | string>(null)\n\n const {\n fieldProps: { schemaPath },\n uuid,\n } = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n\n const { config, getEntityConfig } = useConfig()\n\n const { i18n, t } = useTranslation<object, 'lexical:link:loadingWithEllipsis'>()\n\n const [stateData, setStateData] = useState<\n ({ id?: string; text: string } & LinkFields) | undefined\n >()\n\n const editDepth = useEditDepth()\n const [isLink, setIsLink] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n const locale = useLocale()\n\n const [isAutoLink, setIsAutoLink] = useState(false)\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-link-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n const setNotLink = useCallback(() => {\n setIsLink(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setIsAutoLink(false)\n setLinkUrl(null)\n setLinkLabel(null)\n setSelectedNodes([])\n setStateData(undefined)\n }, [setIsLink, setLinkUrl, setLinkLabel, setSelectedNodes])\n\n const $updateLinkEditor = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined\n\n if (!$isRangeSelection(selection) || !selection) {\n void setNotLink()\n return\n }\n\n // Handle the data displayed in the floating link editor & drawer when you click on a link node\n\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusLinkParent = $findMatchingParent(focusNode, $isLinkNode)\n\n // Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const linkNode = $findMatchingParent(node, $isLinkNode)\n return (\n (focusLinkParent && !focusLinkParent.is(linkNode)) ||\n (linkNode && !linkNode.is(focusLinkParent))\n )\n })\n\n if (focusLinkParent == null || badNode) {\n setNotLink()\n return\n }\n setLinkNode(focusLinkParent)\n\n const fields = focusLinkParent.getFields()\n\n // Initial state:\n const data: { text: string } & LinkFields = {\n ...fields,\n id: focusLinkParent.getID(),\n text: focusLinkParent.getTextContent(),\n }\n\n if (fields?.linkType === 'custom') {\n setLinkUrl(fields?.url ?? null)\n setLinkLabel(null)\n } else {\n // internal link\n setLinkUrl(\n `${config.routes.admin === '/' ? '' : config.routes.admin}/collections/${fields?.doc?.relationTo}/${\n fields?.doc?.value\n }`,\n )\n\n const relatedField = fields?.doc?.relationTo\n ? getEntityConfig({ collectionSlug: fields?.doc?.relationTo })\n : undefined\n if (!relatedField) {\n // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.\n // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.\n setLinkLabel(fields?.label ? String(fields?.label) : null)\n setLinkUrl(fields?.url ? String(fields?.url) : null)\n } else {\n const id = typeof fields.doc?.value === 'object' ? fields.doc.value.id : fields.doc?.value\n const collection = fields.doc?.relationTo\n if (!id || !collection) {\n throw new Error(`Focus link parent is missing doc.value or doc.relationTo`)\n }\n\n const loadingLabel = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('lexical:link:loadingWithEllipsis', i18n)}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(loadingLabel)\n\n requests\n .get(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${collection}/${id}`,\n serverURL: config.serverURL,\n }),\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n params: {\n depth: 0,\n locale: locale?.code,\n },\n },\n )\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP error! Status: ${res.status}`)\n }\n const data = await res.json()\n const useAsTitle = relatedField?.admin?.useAsTitle || 'id'\n const title = data[useAsTitle]\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${title}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n .catch(() => {\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('general:untitled', i18n)} - ID: ${id}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n }\n }\n\n setStateData(data)\n setIsLink(true)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n\n if ($isAutoLinkNode(focusLinkParent)) {\n setIsAutoLink(true)\n } else {\n setIsAutoLink(false)\n }\n\n const editorElem = editorRef.current\n const nativeSelection = getDOMSelection(editor._window)\n const { activeElement } = document\n\n if (editorElem === null) {\n return\n }\n\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n if (!selectedNodeDomRect) {\n // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong\n // result, which is why we use lexical's selection preferably.\n selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect()\n }\n\n if (selectedNodeDomRect != null) {\n selectedNodeDomRect.y += 40\n setFloatingElemPositionForLinkEditor(selectedNodeDomRect, editorElem, anchorElem)\n }\n } else if (activeElement == null || activeElement.className !== 'link-input') {\n if (rootElement !== null) {\n setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem)\n }\n setLinkUrl(null)\n setLinkLabel(null)\n }\n\n return true\n }, [\n editor,\n setNotLink,\n config.routes.admin,\n config.routes.api,\n config.serverURL,\n getEntityConfig,\n t,\n i18n,\n locale?.code,\n anchorElem,\n ])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_WITH_MODAL_COMMAND,\n (payload: LinkPayload) => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload)\n\n // Now, open the modal\n $updateLinkEditor()\n toggleDrawer()\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateLinkEditor, toggleDrawer, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }\n\n window.addEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [anchorElem.parentElement, editor, $updateLinkEditor])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateLinkEditor()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n void $updateLinkEditor()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n () => {\n if (isLink) {\n setNotLink()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateLinkEditor, isLink, setNotLink])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }, [editor, $updateLinkEditor])\n\n return (\n <React.Fragment>\n <div className=\"link-editor\" ref={editorRef}>\n <div className=\"link-input\">\n {linkUrl && linkUrl.length > 0 ? (\n <a href={linkUrl} rel=\"noopener noreferrer\" target=\"_blank\">\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n {linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl}\n </a>\n ) : linkLabel != null && linkLabel.length > 0 ? (\n <>\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n <span className=\"link-input__label-pure\">{linkLabel}</span>\n </>\n ) : null}\n\n {isEditable && (\n <React.Fragment>\n <button\n aria-label=\"Edit link\"\n className=\"link-edit\"\n onClick={(event) => {\n event.preventDefault()\n toggleDrawer()\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <EditIcon />\n </button>\n {!isAutoLink && (\n <button\n aria-label=\"Remove link\"\n className=\"link-trash\"\n onClick={() => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <CloseMenuIcon />\n </button>\n )}\n </React.Fragment>\n )}\n </div>\n </div>\n <FieldsDrawer\n className=\"lexical-link-edit-drawer\"\n data={stateData}\n drawerSlug={drawerSlug}\n drawerTitle={t('fields:editLink')}\n featureKey=\"link\"\n handleDrawerSubmit={(fields: FormState, data: Data) => {\n const newLinkPayload = data as { text: string } & LinkFields\n\n const bareLinkFields: LinkFields = {\n ...newLinkPayload,\n }\n delete bareLinkFields.text\n\n // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).\n editor.update(() => {\n const selection = $getSelection()\n let linkParent: ElementNode | null = null\n if ($isRangeSelection(selection)) {\n linkParent = getSelectedNode(selection).getParent()\n } else {\n if (selectedNodes.length) {\n linkParent = selectedNodes[0]?.getParent() ?? null\n }\n }\n\n if (linkParent && $isAutoLinkNode(linkParent)) {\n const linkNode = $createLinkNode({\n fields: bareLinkFields,\n })\n linkParent.replace(linkNode, true)\n }\n })\n\n // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to\n // it being applied to the auto link node instead of the link node.\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: bareLinkFields,\n selectedNodes,\n text: newLinkPayload.text,\n })\n }}\n schemaPath={schemaPath}\n schemaPathSuffix=\"fields\"\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
4
|
import * as React from 'react';
|
|
4
5
|
import { createPortal } from 'react-dom';
|
|
5
|
-
import './index.scss';
|
|
6
6
|
import { LinkEditor } from './LinkEditor/index.js';
|
|
7
|
-
export const FloatingLinkEditorPlugin =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
columnNumber: 23
|
|
15
|
-
}, this), anchorElem);
|
|
7
|
+
export const FloatingLinkEditorPlugin = props => {
|
|
8
|
+
const {
|
|
9
|
+
anchorElem = document.body
|
|
10
|
+
} = props;
|
|
11
|
+
return /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(LinkEditor, {
|
|
12
|
+
anchorElem: anchorElem
|
|
13
|
+
}), anchorElem);
|
|
16
14
|
};
|
|
17
|
-
|
|
18
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ClientProps } from '../../index.js'\n\nimport './index.scss'\nimport { LinkEditor } from './LinkEditor/index.js'\n\nexport const FloatingLinkEditorPlugin: PluginComponentWithAnchor<ClientProps> = (props) => {\n const { anchorElem = document.body } = props\n\n return createPortal(<LinkEditor anchorElem={anchorElem} />, anchorElem)\n}\n"],"
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","createPortal","LinkEditor","FloatingLinkEditorPlugin","props","anchorElem","document","body","_jsx"],"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ClientProps } from '../../index.js'\n\nimport './index.scss'\nimport { LinkEditor } from './LinkEditor/index.js'\n\nexport const FloatingLinkEditorPlugin: PluginComponentWithAnchor<ClientProps> = (props) => {\n const { anchorElem = document.body } = props\n\n return createPortal(<LinkEditor anchorElem={anchorElem} />, anchorElem)\n}\n"],"mappings":"AAAA;;;AACA,YAAYA,KAAA,MAAW;AACvB,SAASC,YAAY,QAAQ;AAM7B,SAASC,UAAU,QAAQ;AAE3B,OAAO,MAAMC,wBAAA,GAAoEC,KAAA;EAC/E,MAAM;IAAEC,UAAA,GAAaC,QAAA,CAASC;EAAI,CAAE,GAAGH,KAAA;EAEvC,oBAAOH,YAAA,cAAaO,IAAA,CAACN,UAAA;IAAWG,UAAA,EAAYA;MAAgBA,UAAA;AAC9D","ignoreList":[]}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The payload of a link node
|
|
3
3
|
* This can be delivered from the link node to the drawer, or from the drawer/anything to the TOGGLE_LINK_COMMAND
|
|
4
|
-
*/
|
|
5
|
-
* The fields of the link node. Undefined fields will be taken from the default values of the link node
|
|
6
|
-
*/ /**
|
|
7
|
-
* The text content of the link node - will be displayed in the drawer
|
|
8
|
-
*/
|
|
9
|
-
|
|
4
|
+
*/export {};
|
|
10
5
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/types.ts"],"sourcesContent":["import type { LexicalNode } from 'lexical'\n\nimport type { LinkFields } from '../../../nodes/types.js'\n\n/**\n * The payload of a link node\n * This can be delivered from the link node to the drawer, or from the drawer/anything to the TOGGLE_LINK_COMMAND\n */\nexport type LinkPayload = {\n /**\n * The fields of the link node. Undefined fields will be taken from the default values of the link node\n */\n fields: Partial<LinkFields>\n selectedNodes?: LexicalNode[]\n /**\n * The text content of the link node - will be displayed in the drawer\n */\n text: null | string\n} | null\n"],"
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../../../src/features/link/client/plugins/floatingLinkEditor/types.ts"],"sourcesContent":["import type { LexicalNode } from 'lexical'\n\nimport type { LinkFields } from '../../../nodes/types.js'\n\n/**\n * The payload of a link node\n * This can be delivered from the link node to the drawer, or from the drawer/anything to the TOGGLE_LINK_COMMAND\n */\nexport type LinkPayload = {\n /**\n * The fields of the link node. Undefined fields will be taken from the default values of the link node\n */\n fields: Partial<LinkFields>\n selectedNodes?: LexicalNode[]\n /**\n * The text content of the link node - will be displayed in the drawer\n */\n text: null | string\n} | null\n"],"mappings":"AAIA;;;GAIA","ignoreList":[]}
|
|
@@ -1,63 +1,78 @@
|
|
|
1
1
|
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
2
4
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
|
|
3
5
|
import { mergeRegister } from '@lexical/utils';
|
|
4
6
|
import { $getSelection, $isElementNode, $isRangeSelection, COMMAND_PRIORITY_LOW, PASTE_COMMAND } from 'lexical';
|
|
5
7
|
import { useEffect } from 'react';
|
|
6
8
|
import { validateUrl } from '../../../../../lexical/utils/url.js';
|
|
7
9
|
import { $toggleLink, LinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode.js';
|
|
8
|
-
export const LinkPlugin =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
export const LinkPlugin = t0 => {
|
|
11
|
+
const $ = _c(5);
|
|
12
|
+
const {
|
|
13
|
+
clientProps
|
|
14
|
+
} = t0;
|
|
15
|
+
const [editor] = useLexicalComposerContext();
|
|
16
|
+
let t1;
|
|
17
|
+
let t2;
|
|
18
|
+
if ($[0] !== clientProps.defaultLinkType || $[1] !== clientProps.defaultLinkURL || $[2] !== editor) {
|
|
19
|
+
t1 = () => {
|
|
20
|
+
if (!editor.hasNodes([LinkNode])) {
|
|
21
|
+
throw new Error("LinkPlugin: LinkNode not registered on editor");
|
|
22
|
+
}
|
|
23
|
+
return mergeRegister(editor.registerCommand(TOGGLE_LINK_COMMAND, payload => {
|
|
24
|
+
if (payload === null) {
|
|
25
|
+
$toggleLink(null);
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
if (!payload.fields?.linkType) {
|
|
29
|
+
payload.fields.linkType = clientProps.defaultLinkType;
|
|
30
|
+
}
|
|
31
|
+
if (!payload.fields?.url) {
|
|
32
|
+
payload.fields.url = clientProps.defaultLinkURL;
|
|
33
|
+
}
|
|
34
|
+
$toggleLink(payload);
|
|
35
|
+
return true;
|
|
36
|
+
}, COMMAND_PRIORITY_LOW), editor.registerCommand(PASTE_COMMAND, event => {
|
|
37
|
+
const selection = $getSelection();
|
|
38
|
+
if (!$isRangeSelection(selection) || selection.isCollapsed() || !(event instanceof ClipboardEvent) || event.clipboardData == null) {
|
|
39
|
+
return false;
|
|
15
40
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
});
|
|
50
|
-
event.preventDefault();
|
|
51
|
-
return true;
|
|
52
|
-
}
|
|
53
|
-
return false;
|
|
54
|
-
}, COMMAND_PRIORITY_LOW));
|
|
55
|
-
}, [
|
|
56
|
-
clientProps.defaultLinkType,
|
|
57
|
-
clientProps.defaultLinkURL,
|
|
58
|
-
editor
|
|
59
|
-
]);
|
|
60
|
-
return null;
|
|
41
|
+
const clipboardText = event.clipboardData.getData("text");
|
|
42
|
+
if (!validateUrl(clipboardText)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
if (!selection.getNodes().some(_temp)) {
|
|
46
|
+
const linkFields = {
|
|
47
|
+
doc: null,
|
|
48
|
+
linkType: "custom",
|
|
49
|
+
newTab: false,
|
|
50
|
+
url: clipboardText
|
|
51
|
+
};
|
|
52
|
+
editor.dispatchCommand(TOGGLE_LINK_COMMAND, {
|
|
53
|
+
fields: linkFields,
|
|
54
|
+
text: null
|
|
55
|
+
});
|
|
56
|
+
event.preventDefault();
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
}, COMMAND_PRIORITY_LOW));
|
|
61
|
+
};
|
|
62
|
+
t2 = [clientProps.defaultLinkType, clientProps.defaultLinkURL, editor];
|
|
63
|
+
$[0] = clientProps.defaultLinkType;
|
|
64
|
+
$[1] = clientProps.defaultLinkURL;
|
|
65
|
+
$[2] = editor;
|
|
66
|
+
$[3] = t1;
|
|
67
|
+
$[4] = t2;
|
|
68
|
+
} else {
|
|
69
|
+
t1 = $[3];
|
|
70
|
+
t2 = $[4];
|
|
71
|
+
}
|
|
72
|
+
useEffect(t1, t2);
|
|
73
|
+
return null;
|
|
61
74
|
};
|
|
62
|
-
|
|
75
|
+
function _temp(node) {
|
|
76
|
+
return $isElementNode(node);
|
|
77
|
+
}
|
|
63
78
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/link/client/plugins/link/index.tsx"],"sourcesContent":["'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n COMMAND_PRIORITY_LOW,\n PASTE_COMMAND,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { LinkFields } from '../../../nodes/types.js'\nimport type { ClientProps } from '../../index.js'\nimport type { LinkPayload } from '../floatingLinkEditor/types.js'\n\nimport { validateUrl } from '../../../../../lexical/utils/url.js'\nimport { $toggleLink, LinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode.js'\n\nexport const LinkPlugin: PluginComponent<ClientProps> = ({ clientProps }) => {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n if (!editor.hasNodes([LinkNode])) {\n throw new Error('LinkPlugin: LinkNode not registered on editor')\n }\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_COMMAND,\n (payload: LinkPayload) => {\n if (payload === null) {\n $toggleLink(null)\n return true\n }\n if (!payload.fields?.linkType) {\n payload.fields.linkType = clientProps.defaultLinkType as any\n }\n if (!payload.fields?.url) {\n payload.fields.url = clientProps.defaultLinkURL as any\n }\n $toggleLink(payload as { fields: LinkFields } & LinkPayload)\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n PASTE_COMMAND,\n (event) => {\n const selection = $getSelection()\n if (\n !$isRangeSelection(selection) ||\n selection.isCollapsed() ||\n !(event instanceof ClipboardEvent) ||\n event.clipboardData == null\n ) {\n return false\n }\n const clipboardText = event.clipboardData.getData('text')\n if (!validateUrl(clipboardText)) {\n return false\n }\n // If we select nodes that are elements then avoid applying the link.\n if (!selection.getNodes().some((node) => $isElementNode(node))) {\n const linkFields: LinkFields = {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: clipboardText,\n }\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: linkFields,\n text: null,\n })\n event.preventDefault()\n return true\n }\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [clientProps.defaultLinkType, clientProps.defaultLinkURL, editor])\n\n return null\n}\n"],"
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","mergeRegister","$getSelection","$isElementNode","$isRangeSelection","COMMAND_PRIORITY_LOW","PASTE_COMMAND","useEffect","validateUrl","$toggleLink","LinkNode","TOGGLE_LINK_COMMAND","LinkPlugin","t0","$","clientProps","editor","t1","t2","defaultLinkType","defaultLinkURL","hasNodes","Error","registerCommand","payload","fields","linkType","url","event","selection","isCollapsed","ClipboardEvent","clipboardData","clipboardText","getData","getNodes","some","_temp","linkFields","doc","newTab","dispatchCommand","text","preventDefault","node"],"sources":["../../../../../../src/features/link/client/plugins/link/index.tsx"],"sourcesContent":["'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n COMMAND_PRIORITY_LOW,\n PASTE_COMMAND,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { LinkFields } from '../../../nodes/types.js'\nimport type { ClientProps } from '../../index.js'\nimport type { LinkPayload } from '../floatingLinkEditor/types.js'\n\nimport { validateUrl } from '../../../../../lexical/utils/url.js'\nimport { $toggleLink, LinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode.js'\n\nexport const LinkPlugin: PluginComponent<ClientProps> = ({ clientProps }) => {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n if (!editor.hasNodes([LinkNode])) {\n throw new Error('LinkPlugin: LinkNode not registered on editor')\n }\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_COMMAND,\n (payload: LinkPayload) => {\n if (payload === null) {\n $toggleLink(null)\n return true\n }\n if (!payload.fields?.linkType) {\n payload.fields.linkType = clientProps.defaultLinkType as any\n }\n if (!payload.fields?.url) {\n payload.fields.url = clientProps.defaultLinkURL as any\n }\n $toggleLink(payload as { fields: LinkFields } & LinkPayload)\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n PASTE_COMMAND,\n (event) => {\n const selection = $getSelection()\n if (\n !$isRangeSelection(selection) ||\n selection.isCollapsed() ||\n !(event instanceof ClipboardEvent) ||\n event.clipboardData == null\n ) {\n return false\n }\n const clipboardText = event.clipboardData.getData('text')\n if (!validateUrl(clipboardText)) {\n return false\n }\n // If we select nodes that are elements then avoid applying the link.\n if (!selection.getNodes().some((node) => $isElementNode(node))) {\n const linkFields: LinkFields = {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: clipboardText,\n }\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: linkFields,\n text: null,\n })\n event.preventDefault()\n return true\n }\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [clientProps.defaultLinkType, clientProps.defaultLinkURL, editor])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,aAAa,QAAQ;AAC9B,SACEC,aAAa,EACbC,cAAc,EACdC,iBAAiB,EACjBC,oBAAoB,EACpBC,aAAa,QACR;AACP,SAASC,SAAS,QAAQ;AAO1B,SAASC,WAAW,QAAQ;AAC5B,SAASC,WAAW,EAAEC,QAAQ,EAAEC,mBAAmB,QAAQ;AAE3D,OAAO,MAAMC,UAAA,GAA2CC,EAAA;EAAA,MAAAC,CAAA,GAAAf,EAAA;EAAC;IAAAgB;EAAA,IAAAF,EAAe;EACtE,OAAAG,MAAA,IAAiBhB,yBAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAC,WAAA,CAAAI,eAAA,IAAAL,CAAA,QAAAC,WAAA,CAAAK,cAAA,IAAAN,CAAA,QAAAE,MAAA;IAEPC,EAAA,GAAAA,CAAA;MAAA,KACHD,MAAA,CAAAK,QAAA,EAAAX,QAAA,CAA0B;QAAA,UAAAY,KAAA,CACb;MAAA;MAAA,OAEXrB,aAAA,CACLe,MAAA,CAAAO,eAAA,CAAAZ,mBAAA,EAAAa,OAAA;QAAA,IAGQA,OAAA,SAAY;UACdf,WAAA,KAAY;UAAA;QAAA;QAAA,KAGTe,OAAA,CAAAC,MAAA,EAAAC,QAAA;UACHF,OAAA,CAAAC,MAAA,CAAAC,QAAA,GAA0BX,WAAA,CAAAI,eAAA;QAAA;QAAA,KAEvBK,OAAA,CAAAC,MAAA,EAAAE,GAAA;UACHH,OAAA,CAAAC,MAAA,CAAAE,GAAA,GAAqBZ,WAAA,CAAAK,cAAA;QAAA;QAEvBX,WAAA,CAAYe,OAAA;QAAA;MAAA,GAAAnB,oBAGd,GAEFW,MAAA,CAAAO,eAAA,CAAAjB,aAAA,EAAAsB,KAAA;QAGI,MAAAC,SAAA,GAAkB3B,aAAA;QAAA,IAEhB,CAACE,iBAAA,CAAkByB,SAAA,KACnBA,SAAA,CAAAC,WAAA,CAAqB,OACnBF,KAAA,YAAAG,cAA8B,KAChCH,KAAA,CAAAI,aAAA,QAAuB;UAAA;QAAA;QAIzB,MAAAC,aAAA,GAAsBL,KAAA,CAAAI,aAAA,CAAAE,OAAA,CAA4B;QAAA,KAC7C1B,WAAA,CAAYyB,aAAA;UAAA;QAAA;QAAA,KAIZJ,SAAA,CAAAM,QAAA,CAAkB,EAAAC,IAAA,CAAAC,KAAiC;UACtD,MAAAC,UAAA;YAAAC,GAAA;YAAAb,QAAA,EAEY;YAAAc,MAAA;YAAAb,GAAA,EAELM;UAAA;UAEPjB,MAAA,CAAAyB,eAAA,CAAA9B,mBAAA;YAAAc,MAAA,EACUa,UAAA;YAAAI,IAAA;UAAA,CAEV;UACAd,KAAA,CAAAe,cAAA,CAAoB;UAAA;QAAA;QAAA;MAAA,GAAAtC,oBAKxB;IAAA;IAGHa,EAAA,IAACH,WAAA,CAAAI,eAAA,EAA6BJ,WAAA,CAAAK,cAAA,EAA4BJ,MAAA;IAAOF,CAAA,MAAAC,WAAA,CAAAI,eAAA;IAAAL,CAAA,MAAAC,WAAA,CAAAK,cAAA;IAAAN,CAAA,MAAAE,MAAA;IAAAF,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EA3DpEP,SAAA,CAAUU,EA2DV,EAAGC,EAAiE;EAAA;AAAA,CAGtE;AAjEwD,SAAAmB,MAAAO,IAAA;EAAA,OA2CLzC,cAAA,CAAeyC,IAAA;AAAA","ignoreList":[]}
|
|
@@ -7,39 +7,38 @@ import { $createTextNode } from 'lexical';
|
|
|
7
7
|
import { $createLinkNode, $isLinkNode, LinkNode } from './nodes/LinkNode.js';
|
|
8
8
|
// - then longer tags match (e.g. ** or __ should go before * or _)
|
|
9
9
|
export const LinkMarkdownTransformer = {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
10
|
+
type: 'text-match',
|
|
11
|
+
dependencies: [LinkNode],
|
|
12
|
+
export: (_node, exportChildren) => {
|
|
13
|
+
if (!$isLinkNode(_node)) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
const node = _node;
|
|
17
|
+
const {
|
|
18
|
+
url
|
|
19
|
+
} = node.getFields();
|
|
20
|
+
const textContent = exportChildren(node);
|
|
21
|
+
const linkContent = `[${textContent}](${url})`;
|
|
22
|
+
return linkContent;
|
|
23
|
+
},
|
|
24
|
+
importRegExp: /\[([^[]+)\]\(([^()\s]+)(?:\s"((?:[^"]*\\")*[^"]*)"\s*)?\)/,
|
|
25
|
+
regExp: /\[([^[]+)\]\(([^()\s]+)(?:\s"((?:[^"]*\\")*[^"]*)"\s*)?\)$/,
|
|
26
|
+
replace: (textNode, match) => {
|
|
27
|
+
const [, linkText, linkUrl] = match;
|
|
28
|
+
const linkNode = $createLinkNode({
|
|
29
|
+
fields: {
|
|
30
|
+
doc: null,
|
|
31
|
+
linkType: 'custom',
|
|
32
|
+
newTab: false,
|
|
33
|
+
url: linkUrl
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
const linkTextNode = $createTextNode(linkText);
|
|
37
|
+
linkTextNode.setFormat(textNode.getFormat());
|
|
38
|
+
linkNode.append(linkTextNode);
|
|
39
|
+
textNode.replace(linkNode);
|
|
40
|
+
return linkTextNode;
|
|
41
|
+
},
|
|
42
|
+
trigger: ')'
|
|
43
43
|
};
|
|
44
|
-
|
|
45
44
|
//# sourceMappingURL=markdownTransformer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/features/link/markdownTransformer.ts"],"sourcesContent":["/**\n * Code taken from https://github.com/facebook/lexical/blob/main/packages/lexical-markdown/src/MarkdownTransformers.ts#L357\n */\n\n// Order of text transformers matters:\n//\n// - code should go first as it prevents any transformations inside\n\nimport { $createTextNode, $isTextNode } from 'lexical'\n\nimport type { TextMatchTransformer } from '../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nimport { $createLinkNode, $isLinkNode, LinkNode } from './nodes/LinkNode.js'\n\n// - then longer tags match (e.g. ** or __ should go before * or _)\nexport const LinkMarkdownTransformer: TextMatchTransformer = {\n type: 'text-match',\n dependencies: [LinkNode],\n export: (_node, exportChildren) => {\n if (!$isLinkNode(_node)) {\n return null\n }\n const node: LinkNode = _node\n const { url } = node.getFields()\n\n const textContent = exportChildren(node)\n\n const linkContent = `[${textContent}](${url})`\n\n return linkContent\n },\n importRegExp: /\\[([^[]+)\\]\\(([^()\\s]+)(?:\\s\"((?:[^\"]*\\\\\")*[^\"]*)\"\\s*)?\\)/,\n regExp: /\\[([^[]+)\\]\\(([^()\\s]+)(?:\\s\"((?:[^\"]*\\\\\")*[^\"]*)\"\\s*)?\\)$/,\n replace: (textNode, match) => {\n const [, linkText, linkUrl] = match\n const linkNode = $createLinkNode({\n fields: {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: linkUrl,\n },\n })\n const linkTextNode = $createTextNode(linkText)\n linkTextNode.setFormat(textNode.getFormat())\n linkNode.append(linkTextNode)\n textNode.replace(linkNode)\n\n return linkTextNode\n },\n trigger: ')',\n}\n"],"
|
|
1
|
+
{"version":3,"file":"markdownTransformer.js","names":["$createTextNode","$createLinkNode","$isLinkNode","LinkNode","LinkMarkdownTransformer","type","dependencies","export","_node","exportChildren","node","url","getFields","textContent","linkContent","importRegExp","regExp","replace","textNode","match","linkText","linkUrl","linkNode","fields","doc","linkType","newTab","linkTextNode","setFormat","getFormat","append","trigger"],"sources":["../../../src/features/link/markdownTransformer.ts"],"sourcesContent":["/**\n * Code taken from https://github.com/facebook/lexical/blob/main/packages/lexical-markdown/src/MarkdownTransformers.ts#L357\n */\n\n// Order of text transformers matters:\n//\n// - code should go first as it prevents any transformations inside\n\nimport { $createTextNode, $isTextNode } from 'lexical'\n\nimport type { TextMatchTransformer } from '../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nimport { $createLinkNode, $isLinkNode, LinkNode } from './nodes/LinkNode.js'\n\n// - then longer tags match (e.g. ** or __ should go before * or _)\nexport const LinkMarkdownTransformer: TextMatchTransformer = {\n type: 'text-match',\n dependencies: [LinkNode],\n export: (_node, exportChildren) => {\n if (!$isLinkNode(_node)) {\n return null\n }\n const node: LinkNode = _node\n const { url } = node.getFields()\n\n const textContent = exportChildren(node)\n\n const linkContent = `[${textContent}](${url})`\n\n return linkContent\n },\n importRegExp: /\\[([^[]+)\\]\\(([^()\\s]+)(?:\\s\"((?:[^\"]*\\\\\")*[^\"]*)\"\\s*)?\\)/,\n regExp: /\\[([^[]+)\\]\\(([^()\\s]+)(?:\\s\"((?:[^\"]*\\\\\")*[^\"]*)\"\\s*)?\\)$/,\n replace: (textNode, match) => {\n const [, linkText, linkUrl] = match\n const linkNode = $createLinkNode({\n fields: {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: linkUrl,\n },\n })\n const linkTextNode = $createTextNode(linkText)\n linkTextNode.setFormat(textNode.getFormat())\n linkNode.append(linkTextNode)\n textNode.replace(linkNode)\n\n return linkTextNode\n },\n trigger: ')',\n}\n"],"mappings":"AAAA;;GAAA,CAIA;AACA;AACA;AAEA,SAASA,eAAe,QAAqB;AAI7C,SAASC,eAAe,EAAEC,WAAW,EAAEC,QAAQ,QAAQ;AAEvD;AACA,OAAO,MAAMC,uBAAA,GAAgD;EAC3DC,IAAA,EAAM;EACNC,YAAA,EAAc,CAACH,QAAA,CAAS;EACxBI,MAAA,EAAQA,CAACC,KAAA,EAAOC,cAAA;IACd,IAAI,CAACP,WAAA,CAAYM,KAAA,GAAQ;MACvB,OAAO;IACT;IACA,MAAME,IAAA,GAAiBF,KAAA;IACvB,MAAM;MAAEG;IAAG,CAAE,GAAGD,IAAA,CAAKE,SAAS;IAE9B,MAAMC,WAAA,GAAcJ,cAAA,CAAeC,IAAA;IAEnC,MAAMI,WAAA,GAAc,IAAID,WAAA,KAAgBF,GAAA,GAAM;IAE9C,OAAOG,WAAA;EACT;EACAC,YAAA,EAAc;EACdC,MAAA,EAAQ;EACRC,OAAA,EAASA,CAACC,QAAA,EAAUC,KAAA;IAClB,MAAM,GAAGC,QAAA,EAAUC,OAAA,CAAQ,GAAGF,KAAA;IAC9B,MAAMG,QAAA,GAAWrB,eAAA,CAAgB;MAC/BsB,MAAA,EAAQ;QACNC,GAAA,EAAK;QACLC,QAAA,EAAU;QACVC,MAAA,EAAQ;QACRf,GAAA,EAAKU;MACP;IACF;IACA,MAAMM,YAAA,GAAe3B,eAAA,CAAgBoB,QAAA;IACrCO,YAAA,CAAaC,SAAS,CAACV,QAAA,CAASW,SAAS;IACzCP,QAAA,CAASQ,MAAM,CAACH,YAAA;IAChBT,QAAA,CAASD,OAAO,CAACK,QAAA;IAEjB,OAAOK,YAAA;EACT;EACAI,OAAA,EAAS;AACX","ignoreList":[]}
|
|
@@ -3,66 +3,68 @@ import { LinkNode } from './LinkNode.js';
|
|
|
3
3
|
// Custom node type to override `canInsertTextAfter` that will
|
|
4
4
|
// allow typing within the link
|
|
5
5
|
export class AutoLinkNode extends LinkNode {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
static clone(node) {
|
|
7
|
+
return new this({
|
|
8
|
+
id: '',
|
|
9
|
+
fields: node.__fields,
|
|
10
|
+
key: node.__key
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
static getType() {
|
|
14
|
+
return 'autolink';
|
|
15
|
+
}
|
|
16
|
+
static importDOM() {
|
|
17
|
+
// TODO: Should link node should handle the import over autolink?
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
static importJSON(serializedNode) {
|
|
21
|
+
const node = $createAutoLinkNode({}).updateFromJSON(serializedNode);
|
|
22
|
+
/**
|
|
23
|
+
* @todo remove in 4.0
|
|
24
|
+
*/
|
|
25
|
+
if (serializedNode.version === 1 && typeof serializedNode.fields?.doc?.value === 'object' && serializedNode.fields?.doc?.value?.id) {
|
|
26
|
+
serializedNode.fields.doc.value = serializedNode.fields.doc.value.id;
|
|
27
|
+
serializedNode.version = 2;
|
|
12
28
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
direction: serialized.direction,
|
|
37
|
-
fields: serialized.fields,
|
|
38
|
-
format: serialized.format,
|
|
39
|
-
indent: serialized.indent,
|
|
40
|
-
version: 2
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
insertNewAfter(selection, restoreSelection = true) {
|
|
44
|
-
const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection);
|
|
45
|
-
if ($isElementNode(element)) {
|
|
46
|
-
const linkNode = $createAutoLinkNode({
|
|
47
|
-
fields: this.__fields
|
|
48
|
-
});
|
|
49
|
-
element.append(linkNode);
|
|
50
|
-
return linkNode;
|
|
51
|
-
}
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
updateFromJSON(serializedNode) {
|
|
55
|
-
return super.updateFromJSON(serializedNode).setFields(serializedNode.fields);
|
|
29
|
+
return node;
|
|
30
|
+
}
|
|
31
|
+
// @ts-expect-error
|
|
32
|
+
exportJSON() {
|
|
33
|
+
const serialized = super.exportJSON();
|
|
34
|
+
return {
|
|
35
|
+
type: 'autolink',
|
|
36
|
+
children: serialized.children,
|
|
37
|
+
direction: serialized.direction,
|
|
38
|
+
fields: serialized.fields,
|
|
39
|
+
format: serialized.format,
|
|
40
|
+
indent: serialized.indent,
|
|
41
|
+
version: 2
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
insertNewAfter(selection, restoreSelection = true) {
|
|
45
|
+
const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection);
|
|
46
|
+
if ($isElementNode(element)) {
|
|
47
|
+
const linkNode = $createAutoLinkNode({
|
|
48
|
+
fields: this.__fields
|
|
49
|
+
});
|
|
50
|
+
element.append(linkNode);
|
|
51
|
+
return linkNode;
|
|
56
52
|
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
updateFromJSON(serializedNode) {
|
|
56
|
+
return super.updateFromJSON(serializedNode).setFields(serializedNode.fields);
|
|
57
|
+
}
|
|
57
58
|
}
|
|
58
|
-
export function $createAutoLinkNode({
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
export function $createAutoLinkNode({
|
|
60
|
+
fields
|
|
61
|
+
}) {
|
|
62
|
+
return $applyNodeReplacement(new AutoLinkNode({
|
|
63
|
+
id: '',
|
|
64
|
+
fields
|
|
65
|
+
}));
|
|
63
66
|
}
|
|
64
67
|
export function $isAutoLinkNode(node) {
|
|
65
|
-
|
|
68
|
+
return node instanceof AutoLinkNode;
|
|
66
69
|
}
|
|
67
|
-
|
|
68
70
|
//# sourceMappingURL=AutoLinkNode.js.map
|