@payloadcms/richtext-lexical 3.86.0-internal.ac46214 → 4.0.0-internal.183b315
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/@types/assets.d.js +2 -0
- package/dist/@types/assets.d.js.map +1 -0
- package/dist/cell/rscEntry.d.ts +1 -1
- package/dist/cell/rscEntry.d.ts.map +1 -1
- package/dist/cell/rscEntry.js +5 -5
- package/dist/cell/rscEntry.js.map +1 -1
- package/dist/exports/client/Field-VYBSMSRY.js +2 -0
- package/dist/exports/client/Field-VYBSMSRY.js.map +7 -0
- package/dist/exports/client/RelationshipComponent-YCPAKOL7.js +2 -0
- package/dist/exports/client/RelationshipComponent-YCPAKOL7.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/chunk-5VIL27GI.js +2 -0
- package/dist/exports/client/chunk-5VIL27GI.js.map +7 -0
- package/dist/exports/client/{chunk-FTT5KJ6W.js → chunk-LH634DPU.js} +1 -1
- package/dist/exports/client/chunk-LH634DPU.js.map +7 -0
- package/dist/exports/client/{chunk-BZZVLW4U.js → chunk-RJ5MAOKZ.js} +1 -1
- package/dist/exports/client/chunk-RJ5MAOKZ.js.map +7 -0
- package/dist/exports/client/chunk-UD4DQ4AK.js +2 -0
- package/dist/exports/client/chunk-UD4DQ4AK.js.map +7 -0
- package/dist/exports/client/chunk-WSAPGI3Z.js +2 -0
- package/dist/exports/client/chunk-WSAPGI3Z.js.map +7 -0
- package/dist/exports/client/chunk-ZYXHC5CY.js +2 -0
- package/dist/exports/client/chunk-ZYXHC5CY.js.map +7 -0
- package/dist/exports/client/component-PHZQBOJE.js +2 -0
- package/dist/exports/client/component-PHZQBOJE.js.map +7 -0
- package/dist/exports/client/componentInline-R3EPNYWF.js +2 -0
- package/dist/exports/client/index.d.ts +1 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +33 -33
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/react/index.d.ts +1 -1
- package/dist/exports/react/index.d.ts.map +1 -1
- package/dist/exports/react/index.js.map +1 -1
- package/dist/exports/server/rsc.browser.d.ts +11 -0
- package/dist/exports/server/rsc.browser.d.ts.map +1 -0
- package/dist/exports/server/rsc.browser.js +10 -0
- package/dist/exports/server/rsc.browser.js.map +1 -0
- package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
- package/dist/features/align/client/toolbarAlignGroup.js +1 -0
- package/dist/features/align/client/toolbarAlignGroup.js.map +1 -1
- package/dist/features/blockquote/server/index.d.ts +1 -4
- package/dist/features/blockquote/server/index.d.ts.map +1 -1
- package/dist/features/blockquote/server/index.js +2 -39
- package/dist/features/blockquote/server/index.js.map +1 -1
- package/dist/features/blockquote/server/schema.d.ts +8 -0
- package/dist/features/blockquote/server/schema.d.ts.map +1 -0
- package/dist/features/blockquote/server/schema.js +15 -0
- package/dist/features/blockquote/server/schema.js.map +1 -0
- package/dist/features/blocks/client/component/BlockContent.d.ts +10 -0
- package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
- package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
- package/dist/features/blocks/client/component/index.css +178 -0
- package/dist/features/blocks/client/component/index.d.ts +4 -3
- package/dist/features/blocks/client/component/index.d.ts.map +1 -1
- package/dist/features/blocks/client/component/index.js +89 -25
- package/dist/features/blocks/client/component/index.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
- package/dist/features/blocks/client/componentInline/index.css +85 -0
- package/dist/features/blocks/client/componentInline/index.d.ts +4 -3
- package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
- package/dist/features/blocks/client/componentInline/index.js +34 -14
- package/dist/features/blocks/client/componentInline/index.js.map +1 -1
- package/dist/features/blocks/client/index.d.ts.map +1 -1
- package/dist/features/blocks/client/index.js +0 -2
- package/dist/features/blocks/client/index.js.map +1 -1
- package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
- package/dist/features/blocks/client/markdown/markdownTransformer.js +4 -4
- package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
- package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
- package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
- package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +2 -2
- package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
- package/dist/features/blocks/client/plugin/index.d.ts +1 -1
- package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
- package/dist/features/blocks/client/plugin/index.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Block.js +4 -0
- package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.css +26 -0
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.d.ts +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.d.ts.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +4 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.css +40 -0
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.d.ts +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.d.ts.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +7 -8
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/index.css +171 -0
- package/dist/features/blocks/server/graphQLPopulationPromise.d.ts +1 -2
- package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
- package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/blocks/server/index.d.ts +1 -0
- package/dist/features/blocks/server/index.d.ts.map +1 -1
- package/dist/features/blocks/server/index.js +20 -66
- package/dist/features/blocks/server/index.js.map +1 -1
- package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
- package/dist/features/blocks/server/markdown/markdownTransformer.js +4 -4
- package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
- package/dist/features/blocks/server/nodes/BlocksNode.d.ts +1 -18
- package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
- package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +2 -10
- package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
- package/dist/features/blocks/server/schema.d.ts +45 -0
- package/dist/features/blocks/server/schema.d.ts.map +1 -0
- package/dist/features/blocks/server/schema.js +139 -0
- package/dist/features/blocks/server/schema.js.map +1 -0
- package/dist/features/blocks/server/validate.d.ts +1 -2
- package/dist/features/blocks/server/validate.d.ts.map +1 -1
- package/dist/features/blocks/server/validate.js.map +1 -1
- package/dist/features/converters/htmlToLexical/index.d.ts +1 -1
- package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
- package/dist/features/converters/htmlToLexical/index.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/tab.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/table.js +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/text.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/defaultConverters.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/types.d.ts +15 -16
- package/dist/features/converters/lexicalToHtml/async/types.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/shared/cssColors.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/tab.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/table.js +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/text.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts +1 -1
- package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/types.d.ts +15 -16
- package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/Component/index.d.ts +6 -4
- package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/Component/index.js +5 -4
- package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/tab.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/index.d.ts +1 -1
- package/dist/features/converters/lexicalToJSX/converter/index.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/types.d.ts +13 -15
- package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
- package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
- package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +1 -1
- package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js.map +1 -1
- package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts +13 -15
- package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts.map +1 -1
- package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
- package/dist/features/converters/markdownToLexical/index.d.ts +1 -1
- package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
- package/dist/features/converters/markdownToLexical/index.js.map +1 -1
- package/dist/features/debug/jsxConverter/client/plugin/index.d.ts +1 -1
- package/dist/features/debug/jsxConverter/client/plugin/index.d.ts.map +1 -1
- package/dist/features/debug/jsxConverter/client/plugin/index.js +1 -0
- package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
- package/dist/features/debug/jsxConverter/client/plugin/style.css +9 -0
- package/dist/features/debug/testRecorder/client/plugin/index.css +51 -0
- package/dist/features/debug/testRecorder/client/plugin/index.d.ts +1 -1
- package/dist/features/debug/testRecorder/client/plugin/index.d.ts.map +1 -1
- package/dist/features/debug/testRecorder/client/plugin/index.js +1 -0
- package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
- package/dist/features/debug/treeView/client/plugin/index.css +81 -0
- package/dist/features/debug/treeView/client/plugin/index.d.ts +1 -1
- package/dist/features/debug/treeView/client/plugin/index.d.ts.map +1 -1
- package/dist/features/debug/treeView/client/plugin/index.js +1 -0
- package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.css +91 -0
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts +1 -1
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +3 -2
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.css +11 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts +1 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +1 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +1 -1
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.css +166 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts +17 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js +219 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.css +235 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +95 -104
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
- package/dist/features/experimental_table/server/index.d.ts +1 -6
- package/dist/features/experimental_table/server/index.d.ts.map +1 -1
- package/dist/features/experimental_table/server/index.js +4 -102
- package/dist/features/experimental_table/server/index.js.map +1 -1
- package/dist/features/experimental_table/server/schema.d.ts +27 -0
- package/dist/features/experimental_table/server/schema.d.ts.map +1 -0
- package/dist/features/experimental_table/server/schema.js +107 -0
- package/dist/features/experimental_table/server/schema.js.map +1 -0
- package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
- package/dist/features/heading/server/index.d.ts +2 -4
- package/dist/features/heading/server/index.d.ts.map +1 -1
- package/dist/features/heading/server/index.js +2 -39
- package/dist/features/heading/server/index.js.map +1 -1
- package/dist/features/heading/server/schema.d.ts +10 -0
- package/dist/features/heading/server/schema.d.ts.map +1 -0
- package/dist/features/heading/server/schema.js +37 -0
- package/dist/features/heading/server/schema.js.map +1 -0
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +1 -1
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
- package/dist/features/horizontalRule/client/plugin/index.css +25 -0
- package/dist/features/horizontalRule/client/plugin/index.d.ts +1 -1
- package/dist/features/horizontalRule/client/plugin/index.d.ts.map +1 -1
- package/dist/features/horizontalRule/client/plugin/index.js +73 -4
- package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
- package/dist/features/horizontalRule/server/index.d.ts +1 -0
- package/dist/features/horizontalRule/server/index.d.ts.map +1 -1
- package/dist/features/horizontalRule/server/index.js +2 -8
- package/dist/features/horizontalRule/server/index.js.map +1 -1
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -5
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
- package/dist/features/horizontalRule/server/schema.d.ts +7 -0
- package/dist/features/horizontalRule/server/schema.d.ts.map +1 -0
- package/dist/features/horizontalRule/server/schema.js +25 -0
- package/dist/features/horizontalRule/server/schema.js.map +1 -0
- package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
- package/dist/features/link/client/index.d.ts.map +1 -1
- package/dist/features/link/client/index.js.map +1 -1
- package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
- package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
- package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +28 -8
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/index.css +112 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
- package/dist/features/link/client/plugins/link/index.js.map +1 -1
- package/dist/features/link/markdownTransformer.d.ts +1 -1
- package/dist/features/link/markdownTransformer.d.ts.map +1 -1
- package/dist/features/link/markdownTransformer.js.map +1 -1
- package/dist/features/link/markdownTransformer.spec.js.map +1 -1
- package/dist/features/link/nodes/AutoLinkNode.d.ts +3 -3
- package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
- package/dist/features/link/nodes/AutoLinkNode.js +2 -1
- package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
- package/dist/features/link/nodes/LinkNode.d.ts +3 -3
- package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
- package/dist/features/link/nodes/LinkNode.js +2 -1
- package/dist/features/link/nodes/LinkNode.js.map +1 -1
- package/dist/features/link/server/baseFields.d.ts.map +1 -1
- package/dist/features/link/server/baseFields.js.map +1 -1
- package/dist/features/link/server/graphQLPopulationPromise.d.ts +1 -1
- package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
- package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/link/server/index.d.ts +2 -1
- package/dist/features/link/server/index.d.ts.map +1 -1
- package/dist/features/link/server/index.js +3 -71
- package/dist/features/link/server/index.js.map +1 -1
- package/dist/features/link/server/schema.d.ts +32 -0
- package/dist/features/link/server/schema.d.ts.map +1 -0
- package/dist/features/link/server/schema.js +169 -0
- package/dist/features/link/server/schema.js.map +1 -0
- package/dist/features/link/server/validate.d.ts +1 -1
- package/dist/features/link/server/validate.d.ts.map +1 -1
- package/dist/features/link/server/validate.js.map +1 -1
- package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
- package/dist/features/lists/checklist/server/index.js +3 -7
- package/dist/features/lists/checklist/server/index.js.map +1 -1
- package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
- package/dist/features/lists/orderedList/server/index.js +3 -7
- package/dist/features/lists/orderedList/server/index.js.map +1 -1
- package/dist/features/lists/plugin/index.d.ts +0 -9
- package/dist/features/lists/plugin/index.d.ts.map +1 -1
- package/dist/features/lists/plugin/index.js.map +1 -1
- package/dist/features/lists/shared/markdown.d.ts.map +1 -1
- package/dist/features/lists/shared/schema.d.ts +18 -0
- package/dist/features/lists/shared/schema.d.ts.map +1 -0
- package/dist/features/lists/shared/schema.js +62 -0
- package/dist/features/lists/shared/schema.js.map +1 -0
- package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
- package/dist/features/lists/unorderedList/server/index.js +3 -7
- package/dist/features/lists/unorderedList/server/index.js.map +1 -1
- package/dist/features/relationship/client/components/RelationshipComponent.d.ts +2 -2
- package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
- package/dist/features/relationship/client/components/RelationshipComponent.js +29 -4
- package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
- package/dist/features/relationship/client/components/index.css +112 -0
- package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
- package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
- package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
- package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
- package/dist/features/relationship/client/plugins/index.d.ts +1 -1
- package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
- package/dist/features/relationship/client/plugins/index.js.map +1 -1
- package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
- package/dist/features/relationship/client/utils/useEnabledRelationships.js +9 -40
- package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
- package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +1 -1
- package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
- package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/relationship/server/index.d.ts +1 -0
- package/dist/features/relationship/server/index.d.ts.map +1 -1
- package/dist/features/relationship/server/index.js +2 -0
- package/dist/features/relationship/server/index.js.map +1 -1
- package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -10
- package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
- package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
- package/dist/features/relationship/server/schema.d.ts +28 -0
- package/dist/features/relationship/server/schema.d.ts.map +1 -0
- package/dist/features/relationship/server/schema.js +80 -0
- package/dist/features/relationship/server/schema.js.map +1 -0
- package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +23 -0
- package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -0
- package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +34 -0
- package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -0
- package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -1
- package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -1
- package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.css +87 -0
- package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.js +1 -0
- package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.css +43 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.d.ts +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.js +1 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarButton/index.css +57 -0
- package/dist/features/toolbars/shared/ToolbarButton/index.d.ts +1 -1
- package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarButton/index.js +80 -74
- package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +5 -2
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.css +214 -0
- package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js +11 -7
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
- package/dist/features/toolbars/types.d.ts +5 -1
- package/dist/features/toolbars/types.d.ts.map +1 -1
- package/dist/features/toolbars/types.js.map +1 -1
- package/dist/features/typesClient.d.ts +1 -1
- package/dist/features/typesClient.d.ts.map +1 -1
- package/dist/features/typesClient.js.map +1 -1
- package/dist/features/typesServer.d.ts +18 -58
- package/dist/features/typesServer.d.ts.map +1 -1
- package/dist/features/typesServer.js.map +1 -1
- package/dist/features/upload/client/component/index.css +214 -0
- package/dist/features/upload/client/component/index.d.ts +2 -2
- package/dist/features/upload/client/component/index.d.ts.map +1 -1
- package/dist/features/upload/client/component/index.js +86 -63
- package/dist/features/upload/client/component/index.js.map +1 -1
- package/dist/features/upload/client/component/pending/index.d.ts +0 -1
- package/dist/features/upload/client/component/pending/index.d.ts.map +1 -1
- package/dist/features/upload/client/component/pending/index.js.map +1 -1
- package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.d.ts +1 -1
- package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/client/plugin/index.d.ts +1 -1
- package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
- package/dist/features/upload/client/plugin/index.js.map +1 -1
- package/dist/features/upload/server/graphQLPopulationPromise.d.ts +1 -1
- package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
- package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/upload/server/index.d.ts +1 -0
- package/dist/features/upload/server/index.d.ts.map +1 -1
- package/dist/features/upload/server/index.js +3 -80
- package/dist/features/upload/server/index.js.map +1 -1
- package/dist/features/upload/server/nodes/UploadNode.d.ts +1 -55
- package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/server/nodes/conversions.d.ts.map +1 -1
- package/dist/features/upload/server/nodes/conversions.js.map +1 -1
- package/dist/features/upload/server/schema.d.ts +52 -0
- package/dist/features/upload/server/schema.d.ts.map +1 -0
- package/dist/features/upload/server/schema.js +129 -0
- package/dist/features/upload/server/schema.js.map +1 -0
- package/dist/features/upload/server/validate.d.ts +1 -1
- package/dist/features/upload/server/validate.d.ts.map +1 -1
- package/dist/features/upload/server/validate.js.map +1 -1
- package/dist/field/Diff/converters/link.d.ts +1 -1
- package/dist/field/Diff/converters/link.d.ts.map +1 -1
- package/dist/field/Diff/converters/link.js.map +1 -1
- package/dist/field/Diff/converters/listitem/index.css +80 -0
- package/dist/field/Diff/converters/listitem/index.d.ts +2 -2
- package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
- package/dist/field/Diff/converters/listitem/index.js +1 -0
- package/dist/field/Diff/converters/listitem/index.js.map +1 -1
- package/dist/field/Diff/converters/relationship/index.css +108 -0
- package/dist/field/Diff/converters/relationship/index.d.ts +2 -2
- package/dist/field/Diff/converters/relationship/index.d.ts.map +1 -1
- package/dist/field/Diff/converters/relationship/index.js +11 -28
- package/dist/field/Diff/converters/relationship/index.js.map +1 -1
- package/dist/field/Diff/converters/unknown/index.css +37 -0
- package/dist/field/Diff/converters/unknown/index.d.ts +1 -1
- package/dist/field/Diff/converters/unknown/index.d.ts.map +1 -1
- package/dist/field/Diff/converters/unknown/index.js +1 -0
- package/dist/field/Diff/converters/unknown/index.js.map +1 -1
- package/dist/field/Diff/converters/upload/index.css +175 -0
- package/dist/field/Diff/converters/upload/index.d.ts +2 -2
- package/dist/field/Diff/converters/upload/index.d.ts.map +1 -1
- package/dist/field/Diff/converters/upload/index.js +7 -2
- package/dist/field/Diff/converters/upload/index.js.map +1 -1
- package/dist/field/Diff/index.css +156 -0
- package/dist/field/Diff/index.d.ts +1 -1
- package/dist/field/Diff/index.d.ts.map +1 -1
- package/dist/field/Diff/index.js +1 -0
- package/dist/field/Diff/index.js.map +1 -1
- package/dist/field/Field.d.ts +3 -3
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +12 -11
- package/dist/field/Field.js.map +1 -1
- package/dist/field/RenderLexical/index.d.ts +2 -2
- package/dist/field/RenderLexical/index.d.ts.map +1 -1
- package/dist/field/RenderLexical/index.js.map +1 -1
- package/dist/field/RichTextViewProvider.d.ts +1 -1
- package/dist/field/RichTextViewProvider.d.ts.map +1 -1
- package/dist/field/RichTextViewProvider.js.map +1 -1
- package/dist/field/ViewSelector.css +32 -0
- package/dist/field/ViewSelector.d.ts +1 -1
- package/dist/field/ViewSelector.d.ts.map +1 -1
- package/dist/field/ViewSelector.js +1 -0
- package/dist/field/ViewSelector.js.map +1 -1
- package/dist/field/bundled.css +1 -1
- package/dist/field/clientEntry.d.ts +29 -0
- package/dist/field/clientEntry.d.ts.map +1 -0
- package/dist/field/clientEntry.js +86 -0
- package/dist/field/clientEntry.js.map +1 -0
- package/dist/field/index.css +57 -0
- package/dist/field/index.d.ts +1 -1
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +1 -1
- package/dist/field/index.js.map +1 -1
- package/dist/field/rscEntry.d.ts +1 -1
- package/dist/field/rscEntry.d.ts.map +1 -1
- package/dist/field/rscEntry.js +2 -0
- package/dist/field/rscEntry.js.map +1 -1
- package/dist/hooks.d.ts +6 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +548 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +11 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -632
- package/dist/index.js.map +1 -1
- package/dist/lexical/LexicalEditor.css +50 -0
- package/dist/lexical/LexicalEditor.d.ts +1 -1
- package/dist/lexical/LexicalEditor.d.ts.map +1 -1
- package/dist/lexical/LexicalEditor.js +37 -2
- package/dist/lexical/LexicalEditor.js.map +1 -1
- package/dist/lexical/LexicalProvider.d.ts +1 -1
- package/dist/lexical/LexicalProvider.d.ts.map +1 -1
- package/dist/lexical/LexicalProvider.js +22 -7
- package/dist/lexical/LexicalProvider.js.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.d.ts +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
- package/dist/lexical/config/client/loader.d.ts +1 -1
- package/dist/lexical/config/client/loader.d.ts.map +1 -1
- package/dist/lexical/config/client/loader.js +5 -1
- package/dist/lexical/config/client/loader.js.map +1 -1
- package/dist/lexical/config/client/sanitize.d.ts +1 -1
- package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
- package/dist/lexical/config/client/sanitize.js.map +1 -1
- package/dist/lexical/config/server/loader.d.ts.map +1 -1
- package/dist/lexical/config/server/loader.js +12 -9
- package/dist/lexical/config/server/loader.js.map +1 -1
- package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
- package/dist/lexical/config/server/sanitize.js +9 -17
- package/dist/lexical/config/server/sanitize.js.map +1 -1
- package/dist/lexical/config/types.d.ts +1 -1
- package/dist/lexical/config/types.d.ts.map +1 -1
- package/dist/lexical/config/types.js.map +1 -1
- package/dist/lexical/nodes/index.d.ts +1 -1
- package/dist/lexical/nodes/index.d.ts.map +1 -1
- package/dist/lexical/nodes/index.js.map +1 -1
- package/dist/lexical/plugins/DecoratorPlugin/index.css +11 -0
- package/dist/lexical/plugins/DecoratorPlugin/index.d.ts +1 -1
- package/dist/lexical/plugins/DecoratorPlugin/index.d.ts.map +1 -1
- package/dist/lexical/plugins/DecoratorPlugin/index.js +1 -0
- package/dist/lexical/plugins/DecoratorPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +52 -0
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts +1 -1
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +1 -0
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.css +65 -0
- package/dist/lexical/plugins/SlashMenu/index.d.ts +1 -1
- package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.js +2 -0
- package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +40 -0
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts +1 -1
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +1 -0
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +84 -0
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +15 -8
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
- package/dist/lexical/theme/EditorTheme.css +359 -0
- package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
- package/dist/lexical/theme/EditorTheme.js +1 -0
- package/dist/lexical/theme/EditorTheme.js.map +1 -1
- package/dist/lexical/ui/ContentEditable.css +95 -0
- package/dist/lexical/ui/ContentEditable.d.ts +1 -1
- package/dist/lexical/ui/ContentEditable.d.ts.map +1 -1
- package/dist/lexical/ui/ContentEditable.js +1 -0
- package/dist/lexical/ui/ContentEditable.js.map +1 -1
- package/dist/lexical/ui/icons/Add/index.d.ts +4 -1
- package/dist/lexical/ui/icons/Add/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Add/index.js +19 -12
- package/dist/lexical/ui/icons/Add/index.js.map +1 -1
- package/dist/lexical/ui/icons/Add/index.svg +2 -3
- package/dist/lexical/ui/icons/Add/light.svg +2 -3
- package/dist/lexical/ui/icons/AlignCenter/index.d.ts +3 -1
- package/dist/lexical/ui/icons/AlignCenter/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/AlignCenter/index.js +15 -19
- package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignJustify/index.d.ts +3 -1
- package/dist/lexical/ui/icons/AlignJustify/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/AlignJustify/index.js +15 -19
- package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignLeft/index.d.ts +3 -1
- package/dist/lexical/ui/icons/AlignLeft/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/AlignLeft/index.js +15 -19
- package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignRight/index.d.ts +3 -1
- package/dist/lexical/ui/icons/AlignRight/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/AlignRight/index.js +15 -19
- package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
- package/dist/lexical/ui/icons/Block/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Block/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Block/index.js +13 -28
- package/dist/lexical/ui/icons/Block/index.js.map +1 -1
- package/dist/lexical/ui/icons/Blockquote/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Blockquote/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Blockquote/index.js +9 -6
- package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
- package/dist/lexical/ui/icons/Bold/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Bold/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Bold/index.js +13 -8
- package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
- package/dist/lexical/ui/icons/Checklist/index.d.ts +4 -1
- package/dist/lexical/ui/icons/Checklist/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Checklist/index.js +17 -18
- package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
- package/dist/lexical/ui/icons/Code/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Code/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Code/index.js +15 -13
- package/dist/lexical/ui/icons/Code/index.js.map +1 -1
- package/dist/lexical/ui/icons/CodeBlock/index.d.ts +4 -1
- package/dist/lexical/ui/icons/CodeBlock/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/CodeBlock/index.js +18 -7
- package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
- package/dist/lexical/ui/icons/Collapse/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Collapse/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Collapse/index.js +10 -8
- package/dist/lexical/ui/icons/Collapse/index.js.map +1 -1
- package/dist/lexical/ui/icons/DraggableBlock/index.svg +7 -7
- package/dist/lexical/ui/icons/DraggableBlock/light.svg +7 -7
- package/dist/lexical/ui/icons/Expand/index.d.ts +5 -0
- package/dist/lexical/ui/icons/Expand/index.d.ts.map +1 -0
- package/dist/lexical/ui/icons/Expand/index.js +22 -0
- package/dist/lexical/ui/icons/Expand/index.js.map +1 -0
- package/dist/lexical/ui/icons/H1/index.d.ts +3 -1
- package/dist/lexical/ui/icons/H1/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H1/index.js +9 -6
- package/dist/lexical/ui/icons/H1/index.js.map +1 -1
- package/dist/lexical/ui/icons/H2/index.d.ts +3 -1
- package/dist/lexical/ui/icons/H2/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H2/index.js +9 -6
- package/dist/lexical/ui/icons/H2/index.js.map +1 -1
- package/dist/lexical/ui/icons/H3/index.d.ts +3 -1
- package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H3/index.js +9 -6
- package/dist/lexical/ui/icons/H3/index.js.map +1 -1
- package/dist/lexical/ui/icons/H4/index.d.ts +3 -1
- package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H4/index.js +9 -6
- package/dist/lexical/ui/icons/H4/index.js.map +1 -1
- package/dist/lexical/ui/icons/H5/index.d.ts +3 -1
- package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H5/index.js +9 -6
- package/dist/lexical/ui/icons/H5/index.js.map +1 -1
- package/dist/lexical/ui/icons/H6/index.d.ts +3 -1
- package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H6/index.js +9 -6
- package/dist/lexical/ui/icons/H6/index.js.map +1 -1
- package/dist/lexical/ui/icons/HorizontalRule/index.d.ts +3 -1
- package/dist/lexical/ui/icons/HorizontalRule/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/HorizontalRule/index.js +11 -11
- package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
- package/dist/lexical/ui/icons/IndentDecrease/index.d.ts +3 -1
- package/dist/lexical/ui/icons/IndentDecrease/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/IndentDecrease/index.js +18 -22
- package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
- package/dist/lexical/ui/icons/IndentIncrease/index.d.ts +3 -1
- package/dist/lexical/ui/icons/IndentIncrease/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/IndentIncrease/index.js +15 -22
- package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
- package/dist/lexical/ui/icons/InlineBlocks/index.d.ts +3 -1
- package/dist/lexical/ui/icons/InlineBlocks/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/InlineBlocks/index.js +9 -6
- package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
- package/dist/lexical/ui/icons/Italic/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Italic/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Italic/index.js +13 -8
- package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
- package/dist/lexical/ui/icons/Link/index.d.ts +4 -1
- package/dist/lexical/ui/icons/Link/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Link/index.js +14 -9
- package/dist/lexical/ui/icons/Link/index.js.map +1 -1
- package/dist/lexical/ui/icons/Meatballs/index.d.ts +4 -1
- package/dist/lexical/ui/icons/Meatballs/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Meatballs/index.js +19 -15
- package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
- package/dist/lexical/ui/icons/OrderedList/index.d.ts +4 -1
- package/dist/lexical/ui/icons/OrderedList/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/OrderedList/index.js +19 -25
- package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
- package/dist/lexical/ui/icons/Page/index.d.ts +5 -0
- package/dist/lexical/ui/icons/Page/index.d.ts.map +1 -0
- package/dist/lexical/ui/icons/Page/index.js +21 -0
- package/dist/lexical/ui/icons/Page/index.js.map +1 -0
- package/dist/lexical/ui/icons/Relationship/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Relationship/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Relationship/index.js +13 -25
- package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
- package/dist/lexical/ui/icons/Strikethrough/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Strikethrough/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Strikethrough/index.js +13 -13
- package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
- package/dist/lexical/ui/icons/Subscript/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Subscript/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Subscript/index.js +10 -7
- package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
- package/dist/lexical/ui/icons/Superscript/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Superscript/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Superscript/index.js +10 -7
- package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
- package/dist/lexical/ui/icons/Table/index.d.ts +4 -1
- package/dist/lexical/ui/icons/Table/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Table/index.js +20 -15
- package/dist/lexical/ui/icons/Table/index.js.map +1 -1
- package/dist/lexical/ui/icons/Text/index.d.ts +4 -1
- package/dist/lexical/ui/icons/Text/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Text/index.js +17 -8
- package/dist/lexical/ui/icons/Text/index.js.map +1 -1
- package/dist/lexical/ui/icons/Trash/index.d.ts +10 -0
- package/dist/lexical/ui/icons/Trash/index.d.ts.map +1 -0
- package/dist/lexical/ui/icons/Trash/index.js +29 -0
- package/dist/lexical/ui/icons/Trash/index.js.map +1 -0
- package/dist/lexical/ui/icons/Underline/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Underline/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Underline/index.js +16 -14
- package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
- package/dist/lexical/ui/icons/UnorderedList/index.d.ts +3 -1
- package/dist/lexical/ui/icons/UnorderedList/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/UnorderedList/index.js +13 -40
- package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
- package/dist/lexical/ui/icons/Upload/index.d.ts +3 -1
- package/dist/lexical/ui/icons/Upload/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Upload/index.js +15 -22
- package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
- package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
- package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
- package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
- package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
- package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -1
- package/dist/types/builtInNodes.d.ts +14 -0
- package/dist/types/builtInNodes.d.ts.map +1 -0
- package/dist/types/builtInNodes.js +203 -0
- package/dist/types/builtInNodes.js.map +1 -0
- package/dist/{types.d.ts → types/index.d.ts} +25 -26
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/jsonSchemaHelpers.d.ts +30 -0
- package/dist/types/jsonSchemaHelpers.d.ts.map +1 -0
- package/dist/types/jsonSchemaHelpers.js +58 -0
- package/dist/types/jsonSchemaHelpers.js.map +1 -0
- package/dist/types/nodeTypes.d.ts +128 -0
- package/dist/types/nodeTypes.d.ts.map +1 -0
- package/dist/types/nodeTypes.js +6 -0
- package/dist/types/nodeTypes.js.map +1 -0
- package/dist/types/schema.d.ts +6 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +83 -0
- package/dist/types/schema.js.map +1 -0
- package/dist/utilities/buildEditorState.d.ts +18 -4
- package/dist/utilities/buildEditorState.d.ts.map +1 -1
- package/dist/utilities/buildEditorState.js +21 -0
- package/dist/utilities/buildEditorState.js.map +1 -1
- package/dist/utilities/buildInitialState.d.ts +2 -1
- package/dist/utilities/buildInitialState.d.ts.map +1 -1
- package/dist/utilities/buildInitialState.js.map +1 -1
- package/dist/utilities/createClientFeature.d.ts +1 -1
- package/dist/utilities/createClientFeature.d.ts.map +1 -1
- package/dist/utilities/createClientFeature.js.map +1 -1
- package/dist/utilities/editorConfigFactory.d.ts +1 -1
- package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
- package/dist/utilities/editorConfigFactory.js.map +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.js +19 -10
- package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.d.ts +4 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.js +8 -7
- package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
- package/dist/utilities/fieldsDrawer/index.css +12 -0
- package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +29 -0
- package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -0
- package/dist/utilities/fieldsDrawer/useDrawerSubmit.js +97 -0
- package/dist/utilities/fieldsDrawer/useDrawerSubmit.js.map +1 -0
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts +1 -0
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +34 -18
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -1
- package/dist/utilities/generateImportMap.d.ts +1 -1
- package/dist/utilities/generateImportMap.d.ts.map +1 -1
- package/dist/utilities/generateImportMap.js +7 -3
- package/dist/utilities/generateImportMap.js.map +1 -1
- package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
- package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
- package/dist/utilities/initLexicalFeatures.d.ts +1 -1
- package/dist/utilities/initLexicalFeatures.d.ts.map +1 -1
- package/dist/utilities/initLexicalFeatures.js.map +1 -1
- package/dist/utilities/recurseNodeTree.d.ts.map +1 -1
- package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
- package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
- package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
- package/dist/validate/index.d.ts.map +1 -1
- package/package.json +18 -22
- package/dist/exports/client/Component-DOSSWC76.js +0 -2
- package/dist/exports/client/Component-DOSSWC76.js.map +0 -7
- package/dist/exports/client/Component-MBLHTKDK.js +0 -2
- package/dist/exports/client/Component-MBLHTKDK.js.map +0 -7
- package/dist/exports/client/Field-OVF2FPGD.js +0 -2
- package/dist/exports/client/Field-OVF2FPGD.js.map +0 -7
- package/dist/exports/client/RelationshipComponent-BG3DPV3T.js +0 -2
- package/dist/exports/client/RelationshipComponent-BG3DPV3T.js.map +0 -7
- package/dist/exports/client/chunk-BZZVLW4U.js.map +0 -7
- package/dist/exports/client/chunk-F26IQ5RE.js +0 -2
- package/dist/exports/client/chunk-F26IQ5RE.js.map +0 -7
- package/dist/exports/client/chunk-FTT5KJ6W.js.map +0 -7
- package/dist/exports/client/chunk-INBEEENE.js +0 -2
- package/dist/exports/client/chunk-INBEEENE.js.map +0 -7
- package/dist/exports/client/chunk-QJ5EETIB.js +0 -2
- package/dist/exports/client/chunk-QJ5EETIB.js.map +0 -7
- package/dist/exports/client/chunk-XFA5M7FY.js +0 -2
- package/dist/exports/client/chunk-XFA5M7FY.js.map +0 -7
- package/dist/exports/client/component-XIHC3W6W.js +0 -2
- package/dist/exports/client/component-XIHC3W6W.js.map +0 -7
- package/dist/exports/client/componentInline-A4H3EY3L.js +0 -2
- package/dist/exports/server/migrate.d.ts +0 -16
- package/dist/exports/server/migrate.d.ts.map +0 -1
- package/dist/exports/server/migrate.js +0 -16
- package/dist/exports/server/migrate.js.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.d.ts +0 -4
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.d.ts.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js +0 -7
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/linebreak.js.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.d.ts +0 -4
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.d.ts.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js +0 -38
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/paragraph.js.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.d.ts +0 -4
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.d.ts.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js +0 -9
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/tab.js.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.d.ts +0 -4
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.d.ts.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js +0 -33
- package/dist/features/converters/lexicalToHtml_deprecated/converter/converters/text.js.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.d.ts +0 -6
- package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.d.ts.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js +0 -9
- package/dist/features/converters/lexicalToHtml_deprecated/converter/defaultConverters.js.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/index.d.ts +0 -70
- package/dist/features/converters/lexicalToHtml_deprecated/converter/index.d.ts.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js +0 -104
- package/dist/features/converters/lexicalToHtml_deprecated/converter/index.js.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/types.d.ts +0 -27
- package/dist/features/converters/lexicalToHtml_deprecated/converter/types.d.ts.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js +0 -2
- package/dist/features/converters/lexicalToHtml_deprecated/converter/types.js.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/field/index.d.ts +0 -39
- package/dist/features/converters/lexicalToHtml_deprecated/field/index.d.ts.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/field/index.js +0 -122
- package/dist/features/converters/lexicalToHtml_deprecated/field/index.js.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/index.d.ts +0 -12
- package/dist/features/converters/lexicalToHtml_deprecated/index.d.ts.map +0 -1
- package/dist/features/converters/lexicalToHtml_deprecated/index.js +0 -11
- package/dist/features/converters/lexicalToHtml_deprecated/index.js.map +0 -1
- package/dist/features/link/nodes/types.d.ts +0 -27
- package/dist/features/link/nodes/types.d.ts.map +0 -1
- package/dist/features/link/nodes/types.js +0 -2
- package/dist/features/link/nodes/types.js.map +0 -1
- package/dist/features/lists/htmlConverter.d.ts +0 -5
- package/dist/features/lists/htmlConverter.d.ts.map +0 -1
- package/dist/features/lists/htmlConverter.js +0 -81
- package/dist/features/lists/htmlConverter.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +0 -22
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +0 -33
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +0 -24
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +0 -25
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +0 -22
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +0 -28
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +0 -22
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +0 -9
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts +0 -19
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +0 -78
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts +0 -23
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.js +0 -2
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts +0 -2
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.js +0 -10
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts +0 -10
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.js +0 -49
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts +0 -9
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +0 -15
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +0 -33
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +0 -74
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +0 -23
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js +0 -24
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js +0 -33
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +0 -30
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js +0 -26
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +0 -26
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js +0 -15
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js +0 -27
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +0 -26
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js +0 -18
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.js +0 -12
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/index.d.ts +0 -19
- package/dist/features/migrations/slateToLexical/converter/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/index.js +0 -130
- package/dist/features/migrations/slateToLexical/converter/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/types.d.ts +0 -16
- package/dist/features/migrations/slateToLexical/converter/types.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/types.js +0 -2
- package/dist/features/migrations/slateToLexical/converter/types.js.map +0 -1
- package/dist/features/migrations/slateToLexical/feature.client.d.ts +0 -2
- package/dist/features/migrations/slateToLexical/feature.client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/feature.client.js +0 -10
- package/dist/features/migrations/slateToLexical/feature.client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/feature.server.d.ts +0 -40
- package/dist/features/migrations/slateToLexical/feature.server.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/feature.server.js +0 -68
- package/dist/features/migrations/slateToLexical/feature.server.js.map +0 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts +0 -9
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +0 -15
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +0 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +0 -33
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +0 -74
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +0 -1
- package/dist/lexical/ui/icons/AI/index.d.ts +0 -3
- package/dist/lexical/ui/icons/AI/index.d.ts.map +0 -1
- package/dist/lexical/ui/icons/AI/index.js +0 -34
- package/dist/lexical/ui/icons/AI/index.js.map +0 -1
- package/dist/lexical/ui/icons/Caret/index.svg +0 -3
- package/dist/lexical/ui/icons/Edit/index.svg +0 -10
- package/dist/lexical/ui/icons/Remove/index.svg +0 -4
- package/dist/nodeTypes.d.ts +0 -74
- package/dist/nodeTypes.d.ts.map +0 -1
- package/dist/nodeTypes.js +0 -5
- package/dist/nodeTypes.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utilities/migrateSlateToLexical/index.d.ts +0 -15
- package/dist/utilities/migrateSlateToLexical/index.d.ts.map +0 -1
- package/dist/utilities/migrateSlateToLexical/index.js +0 -152
- package/dist/utilities/migrateSlateToLexical/index.js.map +0 -1
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts +0 -10
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +0 -1
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +0 -85
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +0 -1
- /package/dist/exports/client/{componentInline-A4H3EY3L.js.map → componentInline-R3EPNYWF.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.d.js","names":[],"sources":["../../src/@types/assets.d.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
|
package/dist/cell/rscEntry.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { LexicalRichTextCellProps } from '../types.js';
|
|
2
|
+
import type { LexicalRichTextCellProps } from '../types/index.js';
|
|
3
3
|
export declare const RscEntryLexicalCell: React.FC<LexicalRichTextCellProps>;
|
|
4
4
|
//# sourceMappingURL=rscEntry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rscEntry.d.ts","sourceRoot":"","sources":["../../src/cell/rscEntry.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"rscEntry.d.ts","sourceRoot":"","sources":["../../src/cell/rscEntry.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAuBjE,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA8ElE,CAAA"}
|
package/dist/cell/rscEntry.js
CHANGED
|
@@ -38,14 +38,14 @@ export const RscEntryLexicalCell = props => {
|
|
|
38
38
|
} = props;
|
|
39
39
|
const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined;
|
|
40
40
|
const className = classNameFromProps || (field.admin && 'className' in field.admin ? field.admin.className : null) || classNameFromConfigContext;
|
|
41
|
-
const adminRoute = payload
|
|
42
|
-
const serverURL = payload
|
|
41
|
+
const adminRoute = payload?.config?.routes?.admin;
|
|
42
|
+
const serverURL = payload?.config?.serverURL;
|
|
43
43
|
const onClick = onClickFromProps;
|
|
44
44
|
let WrapElement = 'span';
|
|
45
45
|
const wrapElementProps = {
|
|
46
46
|
className
|
|
47
47
|
};
|
|
48
|
-
if (link) {
|
|
48
|
+
if (link && adminRoute) {
|
|
49
49
|
wrapElementProps.prefetch = false;
|
|
50
50
|
WrapElement = Link;
|
|
51
51
|
wrapElementProps.href = collectionConfig?.slug ? formatAdminURL({
|
|
@@ -70,9 +70,9 @@ export const RscEntryLexicalCell = props => {
|
|
|
70
70
|
textContent = recurseEditorState(cellData?.root?.children, textContent);
|
|
71
71
|
}
|
|
72
72
|
if (!textContent?.length) {
|
|
73
|
-
textContent = [i18n.t('general:noLabel', {
|
|
73
|
+
textContent = i18n ? [i18n.t('general:noLabel', {
|
|
74
74
|
label: getTranslation(('label' in field ? field.label : null) || 'data', i18n)
|
|
75
|
-
})];
|
|
75
|
+
})] : ['\u00A0'];
|
|
76
76
|
}
|
|
77
77
|
return /*#__PURE__*/_jsx(WrapElement, {
|
|
78
78
|
...wrapElementProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rscEntry.js","names":["getTranslation","Link","formatAdminURL","React","recurseEditorState","editorState","textContent","i","node","text","push","_jsxs","type","children","RscEntryLexicalCell","props","cellData","className","classNameFromProps","collectionConfig","field","admin","i18n","link","onClick","onClickFromProps","payload","rowData","classNameFromConfigContext","undefined","adminRoute","config","routes","serverURL","WrapElement","wrapElementProps","prefetch","href","slug","path","id","collectionSlug","root","length","t","label","_jsx"],"sources":["../../src/cell/rscEntry.tsx"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Link } from '@payloadcms/ui'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport type { LexicalRichTextCellProps } from '../types.js'\n\nfunction recurseEditorState(\n editorState: SerializedLexicalNode[],\n textContent: React.ReactNode[],\n i: number = 0,\n): React.ReactNode[] {\n for (const node of editorState) {\n i++\n if ('text' in node && node.text) {\n textContent.push(node.text as string)\n } else {\n if (!('children' in node)) {\n textContent.push(<code key={i}> [{node.type}]</code>)\n }\n }\n if ('children' in node && node.children) {\n textContent = recurseEditorState(node.children as SerializedLexicalNode[], textContent, i)\n }\n }\n return textContent\n}\n\nexport const RscEntryLexicalCell: React.FC<LexicalRichTextCellProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionConfig,\n field: { admin },\n field,\n i18n,\n link,\n onClick: onClickFromProps,\n payload,\n rowData,\n } = props\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n const adminRoute = payload
|
|
1
|
+
{"version":3,"file":"rscEntry.js","names":["getTranslation","Link","formatAdminURL","React","recurseEditorState","editorState","textContent","i","node","text","push","_jsxs","type","children","RscEntryLexicalCell","props","cellData","className","classNameFromProps","collectionConfig","field","admin","i18n","link","onClick","onClickFromProps","payload","rowData","classNameFromConfigContext","undefined","adminRoute","config","routes","serverURL","WrapElement","wrapElementProps","prefetch","href","slug","path","id","collectionSlug","root","length","t","label","_jsx"],"sources":["../../src/cell/rscEntry.tsx"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Link } from '@payloadcms/ui'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport type { LexicalRichTextCellProps } from '../types/index.js'\n\nfunction recurseEditorState(\n editorState: SerializedLexicalNode[],\n textContent: React.ReactNode[],\n i: number = 0,\n): React.ReactNode[] {\n for (const node of editorState) {\n i++\n if ('text' in node && node.text) {\n textContent.push(node.text as string)\n } else {\n if (!('children' in node)) {\n textContent.push(<code key={i}> [{node.type}]</code>)\n }\n }\n if ('children' in node && node.children) {\n textContent = recurseEditorState(node.children as SerializedLexicalNode[], textContent, i)\n }\n }\n return textContent\n}\n\nexport const RscEntryLexicalCell: React.FC<LexicalRichTextCellProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionConfig,\n field: { admin },\n field,\n i18n,\n link,\n onClick: onClickFromProps,\n payload,\n rowData,\n } = props\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n const adminRoute = payload?.config?.routes?.admin\n const serverURL = payload?.config?.serverURL\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link && adminRoute) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/${rowData.id}`,\n serverURL,\n })\n : ''\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n let textContent: React.ReactNode[] = []\n\n if (cellData?.root?.children) {\n textContent = recurseEditorState(cellData?.root?.children, textContent)\n }\n\n if (!textContent?.length) {\n textContent = i18n\n ? [\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n }),\n ]\n : ['\\u00A0']\n }\n\n return <WrapElement {...wrapElementProps}>{textContent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";import{a as Oe,e as Ie,g as $,h as K,j as Fe,k as $e,l as Ke,m as je,n as Se,o as Pe,p as ze}from"./chunk-LH634DPU.js";import{a as Be,b as P}from"./chunk-RJ5MAOKZ.js";import{jsx as L,jsxs as le}from"react/jsx-runtime";import{BulkUploadProvider as tr,FieldDescription as or,FieldError as nr,FieldLabel as rr,isFieldRTL as ir,RenderCustomComponent as Ft,useConfig as sr,useEditDepth as lr,useEffectEvent as ar,useField as cr,useLocale as ur}from"@payloadcms/ui";import{mergeFieldStyles as dr}from"@payloadcms/ui/shared";import{dequal as fr}from"dequal/lite";import $t,{useCallback as Kt,useEffect as jt,useMemo as mr,useState as zt}from"react";import{ErrorBoundary as pr}from"react-error-boundary";import"./bundled.css";import{jsx as j}from"react/jsx-runtime";import{LexicalComposer as Gn}from"@lexical/react/LexicalComposer.js";import{useEditDepth as Un}from"@payloadcms/ui";import*as De from"react";import{useMemo as Mt}from"react";import{c as kt}from"react/compiler-runtime";import{jsx as b,jsxs as ie}from"react/jsx-runtime";import{useLexicalComposerContext as _t}from"@lexical/react/LexicalComposerContext.js";import{LexicalErrorBoundary as Mn}from"@lexical/react/LexicalErrorBoundary.js";import{HistoryPlugin as An}from"@lexical/react/LexicalHistoryPlugin.js";import{OnChangePlugin as Bn}from"@lexical/react/LexicalOnChangePlugin.js";import{RichTextPlugin as On}from"@lexical/react/LexicalRichTextPlugin.js";import{useLexicalEditable as In}from"@lexical/react/useLexicalEditable";import{BLUR_COMMAND as Fn,COMMAND_PRIORITY_LOW as vt,FOCUS_COMMAND as $n}from"lexical";import*as Q from"react";import{useEffect as Lt,useState as Kn}from"react";import{jsx as He}from"react/jsx-runtime";import"react";var z=({anchorElem:e,clientProps:t,plugin:o})=>o.position==="floatingAnchorElem"&&e?o.Component&&He(o.Component,{anchorElem:e,clientProps:t}):o.Component&&He(o.Component,{clientProps:t});import{c as Yt}from"react/compiler-runtime";import{copyToClipboard as Ve}from"@lexical/clipboard";import{useLexicalComposerContext as Gt}from"@lexical/react/LexicalComposerContext.js";import{objectKlassEquals as Ut}from"@lexical/utils";import We from"bson-objectid";import{$getSelection as Jt,$isNodeSelection as qt,COMMAND_PRIORITY_LOW as Qt,COPY_COMMAND as Xt}from"lexical";import{useEffect as Zt}from"react";var Re=e=>{if("fields"in e&&typeof e.fields=="object"&&e.fields!==null&&"id"in e.fields?e.fields.id=new We.default().toHexString():"id"in e&&(e.id=new We.default().toHexString()),e.children)for(let t of e.children)Re(t)};function Ye(){let e=Yt(3),[t]=Gt(),o,n;return e[0]!==t?(o=()=>t.registerCommand(Xt,r=>{let c=Jt();if(qt(c)){let l=c.getNodes()[0]?.exportJSON(),u=JSON.parse(JSON.stringify(l));Re(u);let d={namespace:t._config.namespace,nodes:[u]},m=JSON.stringify(d);return Ve(t,null,{"application/x-lexical-editor":m,"text/plain":""}).catch(eo),!0}return Ve(t,Ut(r,ClipboardEvent)?r:null).then(()=>{if(!(r instanceof ClipboardEvent)||!r.clipboardData)throw new Error("No clipboard event");let i=r.clipboardData.getData("application/x-lexical-editor");if(!i)return!0;let l=JSON.parse(i);for(let d of l.nodes)Re(d);let u=JSON.stringify(l);r.clipboardData.setData("application/x-lexical-editor",u)}).catch(i=>{throw r instanceof ClipboardEvent&&r.clipboardData?.setData("application/x-lexical-editor",""),i}),!0},Qt),n=[t],e[0]=t,e[1]=o,e[2]=n):(o=e[1],n=e[2]),Zt(o,n),null}function eo(e){throw e}import{c as to}from"react/compiler-runtime";import{useLexicalComposerContext as oo}from"@lexical/react/LexicalComposerContext";import{$findMatchingParent as fe,mergeRegister as no}from"@lexical/utils";import{$createNodeSelection as ro,$getEditor as te,$getNearestNodeFromDOMNode as io,$getSelection as me,$isDecoratorNode as H,$isElementNode as Te,$isLineBreakNode as so,$isNodeSelection as pe,$isRangeSelection as Ge,$isRootOrShadowRoot as lo,$isTextNode as ao,$setSelection as Ue,CLICK_COMMAND as co,COMMAND_PRIORITY_LOW as Y,KEY_ARROW_DOWN_COMMAND as uo,KEY_ARROW_UP_COMMAND as fo,KEY_BACKSPACE_COMMAND as mo,KEY_DELETE_COMMAND as po,SELECTION_CHANGE_COMMAND as go}from"lexical";import{useEffect as ho}from"react";function Je(){let e=to(3),[t]=oo(),o=wo,n,r;return e[0]!==t?(n=()=>no(t.registerCommand(co,No,Y),t.registerCommand(po,o,Y),t.registerCommand(mo,o,Y),t.registerCommand(go,Co,Y),t.registerCommand(fo,Eo,Y),t.registerCommand(uo,yo,Y)),r=[t],e[0]=t,e[1]=n,e[2]=r):(n=e[1],r=e[2]),ho(n,r),null}function yo(e){let t=me();if(pe(t)){e.preventDefault();let i=t.getNodes()[0]?.getNextSibling();if(H(i)){let d=te().getElementByKey(i.getKey());return d&&oe({element:d,node:i}),!0}if(!Te(i))return!0;let l=i.getFirstDescendant()??i;return l&&(fe(l,ge)?.selectEnd(),e.preventDefault()),!0}if(!Ge(t))return!1;let n=(t.isBackward()?t.anchor:t.focus).getNode(),r=fe(n,xo),c=r?.getNextSibling();if(!r||c!==qe(r))return!1;if(H(c)){let i=te().getElementByKey(c.getKey());if(i)return oe({element:i,node:c}),e.preventDefault(),!0}return!1}function xo(e){return qe(e)!==null}function Eo(e){let t=me();if(pe(t)){let i=t.getNodes()[0]?.getPreviousSibling();if(H(i)){let d=te().getElementByKey(i.getKey());return d?(oe({element:d,node:i}),e.preventDefault(),!0):!1}if(!Te(i))return!1;let l=i.getLastDescendant()??i;return l?(fe(l,ge)?.selectStart(),e.preventDefault(),!0):!1}if(!Ge(t))return!1;let n=(t.isBackward()?t.anchor:t.focus).getNode(),r=fe(n,bo),c=r?.getPreviousSibling();if(!r||c!==Qe(r))return!1;if(H(c)){let i=te().getElementByKey(c.getKey());if(i)return oe({element:i,node:c}),e.preventDefault(),!0}return!1}function bo(e){return Qe(e)!==null}function Co(){let e=Ro();return document.querySelector(".decorator-selected")?.classList.remove("decorator-selected"),e?(e.element?.classList.add("decorator-selected"),!0):!1}function No(e){document.querySelector(".decorator-selected")?.classList.remove("decorator-selected");let t=Po(e);if(!t)return!0;let{target:o}=e;return!(o instanceof HTMLElement)||o.isContentEditable||o.closest('button, textarea, input, .react-select, .code-editor, .no-select-decorator, [role="button"]')?Ue(null):oe(t),!0}function wo(e){let t=me();return pe(t)?(e.preventDefault(),t.getNodes().forEach(So),!0):!1}function So(e){e.remove()}function Po(e){if(!(e.target instanceof HTMLElement))return;let t=e.target.closest('[data-lexical-decorator="true"]');if(!(t instanceof HTMLElement))return;let o=io(t);return H(o)?{element:t,node:o}:void 0}function Ro(){let e=me();if(!pe(e))return;let t=e.getNodes();if(t.length!==1)return;let o=t[0];return H(o)?{decorator:o,element:te().getElementByKey(o.getKey())}:void 0}function oe({element:e,node:t}){document.querySelector(".decorator-selected")?.classList.remove("decorator-selected");let o=ro();o.add(t.getKey()),Ue(o),e.scrollIntoView({behavior:"smooth",block:"nearest"}),e.classList.add("decorator-selected")}function ge(e){if(H(e)&&!e.isInline())return!0;if(!Te(e)||lo(e))return!1;let t=e.getFirstChild(),o=t===null||so(t)||ao(t)||t.isInline();return!e.isInline()&&e.canBeEmpty()!==!1&&o}function qe(e){let t=e.getNextSibling();for(;t!==null;){if(ge(t))return t;t=t.getNextSibling()}return null}function Qe(e){let t=e.getPreviousSibling();for(;t!==null;){if(ge(t))return t;t=t.getPreviousSibling()}return null}import{jsx as ve}from"react/jsx-runtime";import{useLexicalComposerContext as Do}from"@lexical/react/LexicalComposerContext.js";import{$createParagraphNode as Mo,isHTMLElement as Ao}from"lexical";import*as tt from"react";import{useCallback as Bo,useEffect as et,useRef as Oo,useState as Io}from"react";import{createPortal as Fo}from"react-dom";var G=(e,t,o,n,r=50,c=25)=>{let i=0;if(e&&!e.contains(n)){let{bottom:l,left:u,right:d,top:m}=e.getBoundingClientRect(),a=m+window.scrollY,s=l+window.scrollY;if(o<a-c||o>s+c||t<u-r||t>d+r)return-1;(t<u||t>d)&&(i=t<u?t-u:t-d)}return i};import{$getNodeByKey as ye}from"lexical";function U(e){let t=e.getBoundingClientRect(),o=getComputedStyle(e).getPropertyValue("transform");if(!o||o==="none")return t;let n=o.split(",").pop();return t.y=t.y-Number(n?.replace(")","")),t}function he(e){let t=(u,d)=>u?parseFloat(window.getComputedStyle(u)[d]):0,{marginBottom:o,marginTop:n}=window.getComputedStyle(e),r=t(e.previousElementSibling,"marginBottom"),c=t(e.nextElementSibling,"marginTop"),i=Math.max(parseFloat(n),r);return{marginBottom:Math.max(parseFloat(o),c),marginTop:i}}import{$getRoot as To}from"lexical";function V(e){return e.getEditorState().read(()=>To().getChildrenKeys())}var vo=1,ko=-1,Xe=0,B={props:null,result:null};function _o(e,t,o=20){let n=e.x-t.x,r=e.y-t.y;return n*n+r*r<=o*o}function J(e){let{anchorElem:t,cache_threshold:o=20,editor:n,fuzzy:r=!1,horizontalOffset:c=0,point:{x:i,y:l},startIndex:u=0,useEdgeAsDefault:d=!1}=e;if(o>0&&B.props&&B.result&&B.props.fuzzy===e.fuzzy&&B.props.horizontalOffset===e.horizontalOffset&&B.props.useEdgeAsDefault===e.useEdgeAsDefault&&_o(B.props.point,e.point,o))return B.result;let m=t.getBoundingClientRect(),a=V(n),s={blockElem:null,blockNode:null,distance:1/0,foundAtIndex:-1,isFoundNodeEmptyParagraph:!1};return n.getEditorState().read(()=>{if(d){let p=n.getElementByKey(a[0]),g=n.getElementByKey(a[a.length-1]);if(p&&g){let[f,x]=[U(p),U(g)];if(l<f.top?(s.blockElem=p,s.distance=f.top-l,s.blockNode=ye(a[0]),s.foundAtIndex=0):l>x.bottom&&(s.distance=l-x.bottom,s.blockNode=ye(a[a.length-1]),s.blockElem=g,s.foundAtIndex=a.length-1),s?.blockElem)return{blockElem:null,isFoundNodeEmptyParagraph:!1}}}let E=u,y=Xe;for(;E>=0&&E<a.length;){let p=a[E],g=n.getElementByKey(p);if(g===null)break;let f=new K(i+c,l),x=je.fromDOMRect(U(g)),{marginBottom:h,marginTop:C}=he(g),k=x.generateNewRect({bottom:x.bottom+h,left:m.left,right:m.right,top:x.top-C}),{distance:w,isOnBottomSide:v,isOnTopSide:D}=k.distanceFromPoint(f);if(w===0){s.blockElem=g,s.blockNode=ye(p),s.foundAtIndex=E,s.distance=w,s.blockNode&&s.blockNode.getType()==="paragraph"&&s.blockNode.getTextContent()===""&&(!r&&!e.returnEmptyParagraphs&&(s.blockElem=null,s.blockNode=null),s.isFoundNodeEmptyParagraph=!0);break}else r&&w<s.distance&&(s.blockElem=g,s.blockNode=ye(p),s.distance=w,s.foundAtIndex=E);y===Xe&&(D?y=ko:v?y=vo:y=1/0),E+=y}}),B.props=e,B.result={blockElem:s.blockElem,blockNode:s.blockNode,foundAtIndex:s.foundAtIndex,isFoundNodeEmptyParagraph:s.isFoundNodeEmptyParagraph},{blockElem:s.blockElem,blockNode:s.blockNode,foundAtIndex:s.foundAtIndex,isFoundNodeEmptyParagraph:s.isFoundNodeEmptyParagraph}}function xe(e,t){return!!e.closest(`.${t}`)}var Lo=["IMG","INPUT","TEXTAREA","SELECT","BUTTON","VIDEO","OBJECT","EMBED","IFRAME","HR"];function Ze(e){if(!e||Lo.includes(e.tagName)||e.offsetHeight===0||e.offsetWidth===0)return!1;let t=window.getComputedStyle(e);return!(t.display==="table-cell"||t.position==="absolute"||t.visibility==="hidden"||t.opacity==="0")}function Ee(e,t,o,n=0){if(!e){t.style.opacity="0",t.style.transform="translate(-10000px, -10000px)";return}let r=e.getBoundingClientRect(),c=window.getComputedStyle(e),i=t.getBoundingClientRect(),l=o.getBoundingClientRect(),u;if(["LexicalEditorTheme__block","LexicalEditorTheme__upload","LexicalEditorTheme__relationship"].some(a=>e.classList.contains(a)||e.firstElementChild?.classList.contains(a)))u=r.top+8-l.top;else{let a=Ze(e)?parseInt(c.lineHeight,10):0;u=r.top+(a-i.height)/2-l.top}let m=n;t.style.opacity="1",t.style.transform=`translate(${m}px, ${u}px)`}var $o="add-block-menu",be=1/0;function Ko(e){return e===0?1/0:be>=0&&be<e?be:Math.floor(e/2)}function jo(e,t,o){let n=t.parentElement,{editorConfig:r}=P(),c=r?.admin?.hideGutter?-24:12,i=Oo(null),[l,u]=Io(null);et(()=>{function m(a){let s=a.target;if(!Ao(s))return;let E=G(n,a.pageX,a.pageY,s);if(E===-1){u(null);return}if(xe(s,$o))return;let y=V(e),{blockElem:p,blockNode:g,foundAtIndex:f}=J({anchorElem:t,cache_threshold:0,editor:e,horizontalOffset:-E,point:new K(a.x,a.y),returnEmptyParagraphs:!0,startIndex:Ko(y.length),useEdgeAsDefault:!1});be=f,p&&g&&(l?.node!==g||l?.elem!==p)&&u({elem:p,node:g})}return document?.addEventListener("mousemove",m),()=>{document?.removeEventListener("mousemove",m)}},[n,t,e,l]),et(()=>{i.current&&l?.node&&Ee(l?.elem,i.current,t,c)},[t,l,c]);let d=Bo(m=>{let a=l;a?.node&&(e.update(()=>{let s=!0;if((a?.node.getType()!=="paragraph"||a.node.getTextContent()!=="")&&(s=!1),!s){let E=Mo();a?.node.insertAfter(E),setTimeout(()=>{a={elem:e.getElementByKey(E.getKey()),node:E},u(a)},0)}}),setTimeout(()=>{e.update(()=>{e.focus(),a?.node&&"select"in a.node&&typeof a.node.select=="function"&&a.node.select()})},1),setTimeout(()=>{e.dispatchCommand($e,{node:a?.node})},2),m.stopPropagation(),m.preventDefault())},[e,l]);return Fo(ve(tt.Fragment,{children:ve("button",{"aria-label":"Add block",className:"icon add-block-menu",onClick:m=>{d(m)},ref:i,type:"button",children:ve("div",{className:o?"icon":""})})}),t)}function ot(e){let{anchorElem:t}=e,o=t===void 0?document.body:t,[n]=Do();return jo(n,o,n._editable)}import{jsx as Ce,jsxs as Ho}from"react/jsx-runtime";import{useLexicalComposerContext as Vo}from"@lexical/react/LexicalComposerContext.js";import{eventFiles as it}from"@lexical/rich-text";import{$getNearestNodeFromDOMNode as st,$getNodeByKey as Wo,isHTMLElement as ke}from"lexical";import*as dt from"react";import{useEffect as _e,useRef as ne,useState as lt}from"react";import{createPortal as Yo}from"react-dom";var nt=0,zo=-24;var W=0;function rt(e,t,o,n,r,c,i,l,u,d=!1){let{height:m,top:a}=n.getBoundingClientRect(),{top:s,width:E}=i.getBoundingClientRect(),{marginBottom:y,marginTop:p}=he(n),g=a,f=c>=a+m/2+window.scrollY,x=!1;if(r?.elem)if(n!==r?.elem)(f&&r?.elem&&r?.elem===n.nextElementSibling||!f&&r?.elem&&r?.elem===n.previousElementSibling)&&(W++,W<200&&(x=!0));else{W++;let w=r?.boundingBox?.y,v=n.getBoundingClientRect().y;(f===r?.isBelow&&w===v||W<200)&&(x=!1)}if(x)return{isBelow:f,willStayInSamePosition:x};d?g+=m/2:f?g+=m+y/2:g-=p/2;let h=0;d||(f?h=-nt:h=nt);let C=g-s+h,k=zo-t;return o.style.width=`calc(${E}px - ${e} - var(--spacer-5))`,o.style.opacity=".8",o.style.transform=`translate(${k}px, calc(${C}px - 2px))`,r?.elem&&(r.elem.style.opacity="",r?.elem===n?f?r.elem.style.marginTop="":r.elem.style.marginBottom="":(r.elem.style.marginBottom="",r.elem.style.marginTop="")),W=0,{isBelow:f,willStayInSamePosition:x}}var Go="draggable-block-menu",at="application/x-lexical-drag-block",re=1/0;function ct(e){return e===0?1/0:re>=0&&re<e?re:Math.floor(e/2)}function Uo(e,t){let{transform:o}=t.style;e.setDragImage(t,0,0),setTimeout(()=>{t.style.transform=o})}function ut(e,t){e&&(e.style.opacity="0"),t&&(t.style.opacity="",t.style.marginBottom="",t.style.marginTop="")}function Jo(e,t,o){let n=t.parentElement,r=ne(null),c=ne(null),i=ne(null),l=ne(!1),u=ne([]),[d,m]=lt(null),[a,s]=lt(null),{editorConfig:E}=P(),y=E?.admin?.hideGutter?-44:-8;_e(()=>{function f(x){let h=x.target;if(!ke(h))return;let C=G(n,x.pageX,x.pageY,h);if(C===-1){m(null);return}if(xe(h,Go))return;let k=V(e),{blockElem:w,foundAtIndex:v,isFoundNodeEmptyParagraph:D}=J({anchorElem:t,cache_threshold:0,editor:e,horizontalOffset:-C,point:new K(x.x,x.y),startIndex:ct(k.length),useEdgeAsDefault:!1,verbose:!1});re=v,!(!w&&!D)&&d!==w&&m(w)}return document?.addEventListener("mousemove",f),()=>{document?.removeEventListener("mousemove",f)}},[n,t,e,d]),_e(()=>{r.current&&Ee(d,r.current,t,y)},[t,d,y]),_e(()=>{function f(h){if(!l.current)return!1;let[C]=it(h);if(C)return!1;let{pageY:k,target:w}=h;if(!ke(w))return!1;let v=G(n,h.pageX,h.pageY,w,100,50),D=V(e),{blockElem:S,foundAtIndex:I,isFoundNodeEmptyParagraph:T}=J({anchorElem:t,editor:e,fuzzy:!0,horizontalOffset:-v,point:new K(h.x,h.y),startIndex:ct(D.length),useEdgeAsDefault:!0,verbose:!0});re=I;let F=c.current;if(S===null||F===null)return!1;if(h.preventDefault(),h.dataTransfer.dropEffect="move",d!==S){let{isBelow:_,willStayInSamePosition:M}=rt(E?.admin?.hideGutter?"0px":"var(--spacer-5)",y+(E?.admin?.hideGutter?r?.current?.getBoundingClientRect()?.width??0:-(r?.current?.getBoundingClientRect()?.width??0)),F,S,a,k,t,h,i,T);M||s({boundingBox:S.getBoundingClientRect(),elem:S,isBelow:_})}else a?.elem&&(ut(F,a.elem),s({boundingBox:S.getBoundingClientRect(),elem:S,isBelow:!1}));return!0}function x(h){if(!l.current)return!1;let[C]=it(h);if(C)return!1;let{dataTransfer:k,pageY:w,target:v}=h,D=k?.getData(at)||"";return e.update(()=>{let S=Wo(D);if(!S||!ke(v))return!1;let I=G(n,h.pageX,h.pageY,v,100,50),{blockElem:T,isFoundNodeEmptyParagraph:F}=J({anchorElem:t,editor:e,fuzzy:!0,horizontalOffset:-I,point:new K(h.x,h.y),useEdgeAsDefault:!0});if(!T)return!1;let _=st(T);if(!_)return!1;if(_===S)return!0;let{height:M,top:ae}=U(T),Ne=w>=ae+M/2+window.scrollY;F?(_.insertBefore(S),_.remove()):Ne?_.insertAfter(S):_.insertBefore(S),d!==null&&m(null),document.querySelectorAll(".lexical-block-highlighter").forEach(R=>{R.remove()});let we=e.getElementByKey(S.getKey()),ce=setTimeout(()=>{let R=we?.getBoundingClientRect();if(!R)return;let N=document.createElement("div");N.className="lexical-block-highlighter",N.style.backgroundColor="var(--theme-elevation-1000",N.style.transition="opacity 0.5s ease-in-out",N.style.zIndex="1",N.style.pointerEvents="none",N.style.boxSizing="border-box",N.style.borderRadius="4px",N.style.position="absolute",document.body.appendChild(N),N.style.opacity="0.1",N.style.height=`${R.height+8}px`,N.style.width=`${R.width+8}px`,N.style.top=`${R.top+window.scrollY-4}px`,N.style.left=`${R.left-4}px`;let ue=setTimeout(()=>{N.style.opacity="0";let de=setTimeout(()=>{N.remove()},500);u.current.push(de)},1e3);u.current.push(ue)},120);u.current.push(ce)}),!0}return document.addEventListener("dragover",f),document.addEventListener("drop",x),()=>{document.removeEventListener("dragover",f),document.removeEventListener("drop",x),u.current.forEach(clearTimeout),u.current=[]}},[n,y,t,e,a,d,E?.admin?.hideGutter]);function p(f){let x=f.dataTransfer;if(!x||!d)return;Uo(x,d),x.effectAllowed="move";let h="";e.update(()=>{let C=st(d);C&&(h=C.getKey())}),l.current=!0,x.setData(at,h)}function g(){l.current=!1,a?.elem&&ut(c.current,a?.elem)}return Yo(Ho(dt.Fragment,{children:[Ce("button",{"aria-label":"Drag to move",className:"icon draggable-block-menu",draggable:!0,onDragEnd:g,onDragStart:p,ref:r,type:"button",children:Ce("div",{className:o?"icon":""})}),Ce("div",{className:"draggable-block-target-line",ref:c}),Ce("div",{className:"debug-highlight",ref:i})]}),t)}function ft(e){let{anchorElem:t}=e,o=t===void 0?document.body:t,[n]=Vo();return Jo(n,o,n._editable)}import{c as qo}from"react/compiler-runtime";import{jsx as Le}from"react/jsx-runtime";import{useLexicalComposerContext as Qo}from"@lexical/react/LexicalComposerContext";import{$createParagraphNode as Xo,$getRoot as Zo}from"lexical";import"react";var mt="insert-paragraph-at-end",pt=()=>{let e=qo(2),[t]=Qo(),{editorConfig:o}=P();if(o?.admin?.hideInsertParagraphAtEnd)return null;let n;return e[0]!==t?(n=Le("div",{"aria-label":"Insert Paragraph",className:mt,onClick:()=>{t.update(en)},role:"button",tabIndex:0,children:Le("div",{className:`${mt}-inside`,children:Le("span",{children:"+"})})}),e[0]=t,e[1]=n):n=e[1],n};function en(){let e=Xo();Zo().append(e),e.select()}import{c as tn}from"react/compiler-runtime";import{useLexicalComposerContext as on}from"@lexical/react/LexicalComposerContext";import*as gt from"react";var ht=()=>{let e=tn(4),{editorConfig:t}=P(),[o]=on(),n,r;return e[0]!==o||e[1]!==t.features.markdownTransformers?(n=()=>Oe(o,t.features.markdownTransformers??[]),r=[o,t.features.markdownTransformers],e[0]=o,e[1]=t.features.markdownTransformers,e[2]=n,e[3]=r):(n=e[2],r=e[3]),gt.useEffect(n,r),null};import{c as nn}from"react/compiler-runtime";import{useLexicalComposerContext as rn}from"@lexical/react/LexicalComposerContext.js";import{useEffect as sn}from"react";function yt(){let e=nn(5),[t]=rn(),{currentView:o,views:n}=$(),r,c;return e[0]!==o||e[1]!==t||e[2]!==n?(r=()=>{n&&(o==="default"?n.default?Se(t,n.default?.nodes):Pe(t):n[o]&&(Pe(t),Se(t,n[o]?.nodes)))},c=[t,n,o],e[0]=o,e[1]=t,e[2]=n,e[3]=r,e[4]=c):(r=e[3],c=e[4]),sn(r,c),null}import{useLexicalComposerContext as ln}from"@lexical/react/LexicalComposerContext";import{$getSelection as an,$isRangeSelection as cn,RootNode as un}from"lexical";import{useEffect as dn}from"react";function xt(){let[e]=ln();return dn(()=>e.registerNodeTransform(un,t=>{let o=an();if(cn(o)){let n=o.anchor.getNode(),r=o.focus.getNode();(!n.isAttached()||!r.isAttached())&&(t.selectEnd(),console.warn("updateEditor: selection has been moved to the end of the editor because the previously selected nodes have been removed and selection wasn't moved to another node. Ensure selection changes after removing/replacing a selected node."))}return!1}),[e]),null}import{useLexicalComposerContext as fn}from"@lexical/react/LexicalComposerContext";import{$getSelection as mn,COMMAND_PRIORITY_LOW as pn,SELECT_ALL_COMMAND as gn}from"lexical";import{useEffect as hn}from"react";function Et(){let[e]=fn();return hn(()=>e.registerCommand(gn,()=>{if(mn())return!1;let o=document.activeElement;return o instanceof HTMLInputElement&&o.select(),!0},pn),[e]),null}import{jsx as q,jsxs as Ct}from"react/jsx-runtime";import{useLexicalComposerContext as xn}from"@lexical/react/LexicalComposerContext.js";import{useTranslation as Nt}from"@payloadcms/ui";import{useCallback as En,useMemo as bn,useState as Cn}from"react";import"react";import*as wt from"react-dom";import{c as yn}from"react/compiler-runtime";import"react";function bt(e,t){let o=yn(4),{maxLength:n,minLength:r}=t,c=n===void 0?75:n,i=r===void 0?1:r,l;return o[0]!==c||o[1]!==i||o[2]!==e?(l=u=>{let{query:d}=u,m="[^"+e+Fe+"\\s]",s=new RegExp("(^|\\s|\\()(["+e+"]((?:"+m+"){0,"+c+"}))$").exec(d);if(s!==null){let E=s[1],y=s[3];if(y.length>=i)return{leadOffset:s.index+E.length,matchingString:y,replaceableString:s[2]}}return null},o[0]=c,o[1]=i,o[2]=e,o[3]=l):l=o[3],l}var O="slash-menu-popup";function Nn({isSelected:e,item:t,onClick:o,onMouseEnter:n,ref:r}){let{fieldProps:{featureClientSchemaMap:c,schemaPath:i}}=P(),{i18n:l}=Nt(),u=`${O}__item ${O}__item-${t.key}`;e&&(u+=` ${O}__item--selected`);let d=t.key;return t.label&&(d=typeof t.label=="function"?t.label({featureClientSchemaMap:c,i18n:l,schemaPath:i}):t.label),d.length>25&&(d=d.substring(0,25)+"..."),Ct("button",{"aria-selected":e,className:u,id:O+"__item-"+t.key,onClick:o,onMouseEnter:n,ref:r,role:"option",tabIndex:-1,type:"button",children:[t?.Icon&&q(t.Icon,{}),q("span",{className:`${O}__item-text`,children:d})]},t.key)}function St({anchorElem:e=document.body}){let[t]=xn(),[o,n]=Cn(null),{editorConfig:r}=P(),{i18n:c}=Nt(),{fieldProps:{featureClientSchemaMap:i,schemaPath:l}}=P(),u=bt("/",{minLength:0}),d=En(()=>{let a=[];for(let s of r.features.slashMenu.dynamicGroups)if(o){let E=s({editor:t,queryString:o});a=a.concat(E)}return a},[t,o,r?.features]),m=bn(()=>{let a=[];for(let s of r?.features.slashMenu.groups??[])a.push(s);if(o){let s=o.toLowerCase().replace(/[\s\-_]/g,"");a=a.map(y=>{let p=y.items.filter(g=>{let f=g.key;return g.label&&(f=typeof g.label=="function"?g.label({featureClientSchemaMap:i,i18n:c,schemaPath:l}):g.label),new RegExp(o,"gi").exec(f)||f.toLowerCase().replace(/[\s\-_]/g,"").includes(s)?!0:g.keywords!=null?g.keywords.some(h=>new RegExp(o,"gi").exec(h)?!0:h.toLowerCase().replace(/[\s\-_]/g,"").includes(s)):!1});return p.length?{...y,items:p}:null}),a=a.filter(y=>y!=null);let E=d();for(let y of E){let p=a.find(g=>g.key===y.key);p?a=a.filter(g=>g.key!==y.key):p={...y,items:[]},p?.items?.length&&(p.items=p.items.concat(p.items)),a.push(p)}}return a},[o,r?.features.slashMenu.groups,d,i,c,l]);return q(Ke,{anchorElem:e,groups:m,menuRenderFn:(a,{selectedItemKey:s,selectItemAndCleanUp:E,setSelectedItemKey:y})=>a.current&&m.length?wt.createPortal(q("div",{className:O,"data-theme":"dark",children:m.map(p=>{let g=p.key;return p.label&&i&&(g=typeof p.label=="function"?p.label({featureClientSchemaMap:i,i18n:c,schemaPath:l}):p.label),Ct("div",{className:`${O}__group ${O}__group-${p.key}`,children:[q("div",{className:`${O}__group-title`,children:g}),p.items.map((f,x)=>q(Nn,{index:x,isSelected:s===f.key,item:f,onClick:()=>{y(f.key),E(f)},onMouseEnter:()=>{y(f.key)},ref:h=>{f.ref={current:h}}},f.key))]},p.key)})}),a.current):null,onQueryChange:n,triggerFn:u})}import{c as wn}from"react/compiler-runtime";import{useLexicalComposerContext as Sn}from"@lexical/react/LexicalComposerContext";import{TEXT_TYPE_TO_FORMAT as Pn,TextNode as Rn}from"lexical";import{useEffect as Tn}from"react";function Pt(e){let t=wn(6),{features:o}=e,[n]=Sn(),r;t[0]!==n||t[1]!==o.enabledFormats?(r=()=>{let i=vn(o.enabledFormats);if(i.length!==0)return n.registerNodeTransform(Rn,l=>{i.forEach(u=>{l.hasFormat(u)&&l.toggleFormat(u)})})},t[0]=n,t[1]=o.enabledFormats,t[2]=r):r=t[2];let c;return t[3]!==n||t[4]!==o?(c=[n,o],t[3]=n,t[4]=o,t[5]=c):c=t[5],Tn(r,c),null}function vn(e){let t=Object.keys(Pn),o=new Set(e);return t.filter(n=>!o.has(n))}import{c as kn}from"react/compiler-runtime";import{jsx as Rt}from"react/jsx-runtime";import{useLexicalComposerContext as _n}from"@lexical/react/LexicalComposerContext";import{ContentEditable as Ln}from"@lexical/react/LexicalContentEditable.js";import{useTranslation as Dn}from"@payloadcms/ui";import"react";function Tt(e){let t=kn(5),{className:o,editorConfig:n}=e,{t:r}=Dn(),[,c]=_n(),{getTheme:i}=c,l;if(t[0]!==o||t[1]!==n?.admin?.placeholder||t[2]!==i||t[3]!==r){let u=i();l=Rt(Ln,{"aria-placeholder":r("lexical:general:placeholder"),className:o??"ContentEditable__root",placeholder:Rt("p",{className:u?.placeholder,children:n?.admin?.placeholder??r("lexical:general:placeholder")})}),t[0]=o,t[1]=n?.admin?.placeholder,t[2]=i,t[3]=r,t[4]=l}else l=t[4];return l}function jn(){let e=kt(3),[t]=_t(),o,n;return e[0]!==t?(o=()=>{let r=t.getRootElement();return r&&(r.dataset.lexicalEditable=String(t.isEditable())),t.registerEditableListener(c=>{let i=t.getRootElement();i&&(i.dataset.lexicalEditable=String(c))})},n=[t],e[0]=t,e[1]=o,e[2]=n):(o=e[1],n=e[2]),Lt(o,n),null}var Dt=e=>{let t=kt(13),{editorConfig:o,editorContainerRef:n,isSmallWidthViewport:r,onChange:c,rtl:i}=e,l=P(),[u]=_t(),d=In(),[m,a]=Kn(null),s;t[0]===Symbol.for("react.memo_cache_sentinel")?(s=f=>{f!==null&&a(f)},t[0]=s):s=t[0];let E=s,y,p;t[1]!==u||t[2]!==l?(y=()=>{if(!l?.uuid){console.error("Lexical Editor must be used within an EditorConfigProvider");return}l?.parentEditor?.uuid&&l.parentEditor?.registerChild(l.uuid,l);let f=()=>{l.focusEditor(l)},x=()=>{l.blurEditor(l)},h=u.registerCommand($n,()=>(f(),!0),vt),C=u.registerCommand(Fn,()=>(x(),!0),vt);return()=>{h(),C(),l.parentEditor?.unregisterChild?.(l.uuid)}},p=[u,l],t[1]=u,t[2]=l,t[3]=y,t[4]=p):(y=t[3],p=t[4]),Lt(y,p);let g;return t[5]!==o||t[6]!==n||t[7]!==m||t[8]!==d||t[9]!==r||t[10]!==c||t[11]!==i?(g=ie(Q.Fragment,{children:[o.features.plugins?.map(zn),ie("div",{className:"editor-container",dir:i?"rtl":void 0,ref:n,children:[o.features.plugins?.map(Hn),b(On,{contentEditable:b("div",{className:"editor-scroller",children:b("div",{className:"editor",ref:E,children:b(Tt,{editorConfig:o})})}),ErrorBoundary:Mn}),b(jn,{}),b(xt,{}),d&&b(pt,{}),b(Je,{}),b(Ye,{}),b(Pt,{features:o.features}),b(Et,{}),b(yt,{}),d&&b(Bn,{ignoreSelectionChange:!0,onChange:(f,x,h)=>{(!h.has("focus")||h.size>1)&&c?.(f,x,h)}}),m&&ie(Q.Fragment,{children:[!r&&d&&ie(Q.Fragment,{children:[o.admin?.hideDraggableBlockElement?null:b(ft,{anchorElem:m}),o.admin?.hideAddBlockButton?null:b(ot,{anchorElem:m})]}),o.features.plugins?.map(f=>{if(f.position==="floatingAnchorElem"&&!(f.desktopOnly===!0&&r))return b(z,{anchorElem:m,clientProps:f.clientProps,plugin:f},f.key)}),d&&b(Q.Fragment,{children:b(St,{anchorElem:m})})]}),d&&ie(Q.Fragment,{children:[b(An,{}),o?.features?.markdownTransformers?.length>0&&b(ht,{})]}),o.features.plugins?.map(Vn),o.features.plugins?.map(Wn)]}),o.features.plugins?.map(Yn)]}),t[5]=o,t[6]=n,t[7]=m,t[8]=d,t[9]=r,t[10]=c,t[11]=i,t[12]=g):g=t[12],g};function zn(e){if(e.position==="aboveContainer")return b(z,{clientProps:e.clientProps,plugin:e},e.key)}function Hn(e){if(e.position==="top")return b(z,{clientProps:e.clientProps,plugin:e},e.key)}function Vn(e){if(e.position==="normal")return b(z,{clientProps:e.clientProps,plugin:e},e.key)}function Wn(e){if(e.position==="bottom")return b(z,{clientProps:e.clientProps,plugin:e},e.key)}function Yn(e){if(e.position==="belowContainer")return b(z,{clientProps:e.clientProps,plugin:e},e.key)}var At=({children:e,providers:t})=>{if(!t?.length)return e;let o=t[0];return t.length>1?j(o,{children:j(At,{providers:t.slice(1),children:e})}):j(o,{children:e})},Bt=e=>{let{composerKey:t,editorConfig:o,fieldProps:n,isSmallWidthViewport:r,onChange:c,readOnly:i,rtl:l,value:u}=e,{currentView:d,views:m}=$(),a=P(),s=Un(),E=De.useRef(null),y=Mt(()=>{if(u&&typeof u!="object")throw new Error("The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: "+JSON.stringify(u));if(u&&Array.isArray(u)&&!("root"in u))throw new Error("You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/lexical/migration#migration-via-migration-script-recommended");if(u&&"jsonContent"in u)throw new Error("You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/lexical/migration#migrating-from-payload-plugin-lexical");let x=m?.[d]?.nodes;return{editable:i!==!0,editorState:u!=null?JSON.stringify(u):void 0,namespace:o.lexical.namespace,nodes:ze({editorConfig:o,nodeViews:x}),onError:h=>{throw h},theme:o.lexical.theme}},[o,m,d]),p=De.useRef(i!==!0);i!==!0&&(p.current=!0);let g=Mt(()=>({...y,editable:i!==!0}),[y,i]);if(!g)return j("p",{children:"Loading..."});let f=p.current?"editable":"readonly";return j(Gn,{initialConfig:g,children:j(Be,{editorConfig:o,editorContainerRef:E,fieldProps:n,parentContext:a?.editDepth===s?a:void 0,children:j(At,{providers:o.features.providers,children:j(Dt,{editorConfig:o,editorContainerRef:E,isSmallWidthViewport:r,onChange:c,rtl:l})})})},t+f+d)};import{c as Jn}from"react/compiler-runtime";import{jsx as X,jsxs as qn}from"react/jsx-runtime";import{ChevronIcon as Qn,Popup as Xn,PopupList as Ot}from"@payloadcms/ui";import"react";function It(){let e=Jn(5),{currentView:t,setCurrentView:o,views:n}=$();if(!n||Object.keys(n).length===0)return null;let r,c;if(e[0]!==t||e[1]!==o||e[2]!==n){c=Symbol.for("react.early_return_sentinel");e:{let i=Object.keys(n);if(!i.some(er)){c=null;break e}let u=["default",...i.filter(Zn)],d=t.charAt(0).toUpperCase()+t.slice(1);r=X("div",{className:"lexical-view-selector",children:X(Xn,{button:qn("button",{className:"lexical-view-selector__button",type:"button",children:[X("span",{className:"lexical-view-selector__label",children:d}),X(Qn,{className:"lexical-view-selector__icon"})]}),buttonType:"custom",horizontalAlign:"left",render:m=>{let{close:a}=m;return X(Ot.ButtonGroup,{children:u.map(s=>{let E=s.charAt(0).toUpperCase()+s.slice(1);return X(Ot.Button,{active:s===t,disabled:s===t,onClick:()=>{o?.(s),a()},children:E},s)})})},size:"large"})})}e[0]=t,e[1]=o,e[2]=n,e[3]=r,e[4]=c}else r=e[3],c=e[4];return c!==Symbol.for("react.early_return_sentinel")?c:r}function Zn(e){return e!=="default"}function er(e){return e!=="default"}var se="rich-text-lexical",gr=e=>{let{editorConfig:t,field:o,field:{admin:{className:n,description:r,readOnly:c}={},label:i,localized:l,required:u},path:d,readOnly:m,schemaPath:a,validate:s}=e,E=m||c,y=ur(),{config:{localization:p}}=sr(),g=ir({fieldLocalized:l,locale:y,localizationConfig:p||void 0}),f=lr(),{isControlledByParent:x}=$(),h=Kt((A,ee)=>typeof s=="function"?s(A,{...ee,required:u}):!0,[s,u]),{customComponents:{AfterInput:C,BeforeInput:k,Description:w,Error:v,Label:D}={},disabled:S,initialValue:I,path:T,setValue:F,showError:_,value:M}=cr({potentiallyStalePath:d,validate:h}),ae=E||S,[Z,Ne]=zt(!1),[Me,we]=zt(),ce=$t.useRef(I),R=$t.useRef(M);jt(()=>{let A=()=>{let ee=window.matchMedia("(max-width: 768px)").matches;ee!==Z&&Ne(ee)};return A(),window.addEventListener("resize",A),()=>{window.removeEventListener("resize",A)}},[Z]);let N=["field-type",se,n,_&&"error",ae&&`${se}--read-only`,t?.admin?.hideGutter!==!0&&!Z?`${se}--show-gutter`:null].filter(Boolean).join(" "),ue=`${T}.${f}`,de=Ie(),Ht=Kt(A=>{de(()=>{let Ae=A.toJSON();R.current=Ae,F(Ae)})},[F,de]),Vt=mr(()=>dr(o),[o]),Wt=ar(A=>{R.current!==M&&!fr(R.current!=null?JSON.parse(JSON.stringify(R.current)):R.current,M)&&(ce.current=A,R.current=M,we(new Date))});return jt(()=>{Object.is(I,ce.current)||Wt(I)},[I]),le("div",{className:N,"data-field-path":T,"data-field-schemapath":a,"data-lexical-view":t?.view,style:Vt,children:[le("div",{className:`${se}__label-row`,children:[D||L(rr,{label:i,localized:l,path:T,required:u}),!x&&L(It,{})]}),le("div",{className:`${se}__wrap`,children:[L(Ft,{CustomComponent:v,Fallback:L(nr,{path:T,showError:_})}),le(pr,{fallbackRender:hr,onReset:()=>{},children:[k,L(tr,{drawerSlugPrefix:`lexical-${T}`,children:L(Bt,{composerKey:ue,editorConfig:t,fieldProps:e,isSmallWidthViewport:Z,onChange:Ht,readOnly:ae,rtl:g,value:M},JSON.stringify({path:T,rerenderProviderKey:Me}))}),C]}),L(Ft,{CustomComponent:w,Fallback:L(or,{description:r,path:T})})]})]},ue)};function hr({error:e}){return le("div",{className:"errorBoundary",role:"alert",children:[L("p",{children:"Something went wrong:"}),L("pre",{style:{color:"red"},children:e instanceof Error?e.message:String(e)})]})}var Tl=gr;export{Tl as RichText};
|
|
2
|
+
//# sourceMappingURL=Field-VYBSMSRY.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/field/Field.tsx", "../../../src/lexical/LexicalProvider.tsx", "../../../src/lexical/LexicalEditor.tsx", "../../../src/lexical/EditorPlugin.tsx", "../../../src/lexical/plugins/ClipboardPlugin/index.tsx", "../../../src/lexical/plugins/DecoratorPlugin/index.tsx", "../../../src/lexical/plugins/handles/AddBlockHandlePlugin/index.tsx", "../../../src/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.ts", "../../../src/lexical/plugins/handles/utils/getNodeCloseToPoint.ts", "../../../src/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.ts", "../../../src/lexical/plugins/handles/utils/getCollapsedMargins.ts", "../../../src/lexical/plugins/handles/utils/getTopLevelNodeKeys.ts", "../../../src/lexical/plugins/handles/utils/isOnHandleElement.ts", "../../../src/lexical/plugins/handles/utils/doesLineHeightAffectElement.ts", "../../../src/lexical/plugins/handles/utils/setHandlePosition.ts", "../../../src/lexical/plugins/handles/DraggableBlockPlugin/index.tsx", "../../../src/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.ts", "../../../src/lexical/plugins/InsertParagraphAtEnd/index.tsx", "../../../src/lexical/plugins/MarkdownShortcut/index.tsx", "../../../src/lexical/plugins/NodeViewOverridePlugin/index.tsx", "../../../src/lexical/plugins/NormalizeSelection/index.tsx", "../../../src/lexical/plugins/SelectAllPlugin/index.tsx", "../../../src/lexical/plugins/SlashMenu/index.tsx", "../../../src/lexical/plugins/SlashMenu/useMenuTriggerMatch.ts", "../../../src/lexical/plugins/TextPlugin/index.tsx", "../../../src/lexical/ui/ContentEditable.tsx", "../../../src/field/ViewSelector.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client'\nimport type { EditorState, SerializedEditorState } from 'lexical'\nimport type { FallbackProps } from 'react-error-boundary'\n\nimport {\n BulkUploadProvider,\n FieldDescription,\n FieldError,\n FieldLabel,\n isFieldRTL,\n RenderCustomComponent,\n useConfig,\n useEditDepth,\n useEffectEvent,\n useField,\n useLocale,\n} from '@payloadcms/ui'\nimport { mergeFieldStyles } from '@payloadcms/ui/shared'\nimport { dequal } from 'dequal/lite'\nimport { type Validate } from 'payload'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\n\nimport type { SanitizedClientEditorConfig } from '../lexical/config/types.js'\n\nimport '../lexical/theme/EditorTheme.css'\nimport './bundled.css'\nimport './index.css'\n\nimport type { LexicalRichTextFieldProps } from '../types/index.js'\n\nimport { LexicalProvider } from '../lexical/LexicalProvider.js'\nimport { useRunDeprioritized } from '../utilities/useRunDeprioritized.js'\nimport { useRichTextView } from './RichTextViewProvider.js'\nimport { ViewSelector } from './ViewSelector.js'\n\nconst baseClass = 'rich-text-lexical'\n\nconst RichTextComponent: React.FC<\n {\n readonly editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n } & LexicalRichTextFieldProps\n> = (props) => {\n const {\n editorConfig,\n field,\n field: {\n admin: { className, description, readOnly: readOnlyFromAdmin } = {},\n label,\n localized,\n required,\n },\n path: pathFromProps,\n readOnly: readOnlyFromTopLevelProps,\n schemaPath,\n validate, // Users can pass in client side validation if they WANT to, but it's not required anymore\n } = props\n\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n\n const locale = useLocale()\n const {\n config: { localization: localizationConfig },\n } = useConfig()\n\n const rtl = isFieldRTL({\n fieldLocalized: localized,\n locale,\n localizationConfig: localizationConfig || undefined,\n })\n\n const editDepth = useEditDepth()\n const { isControlledByParent } = useRichTextView()\n\n const memoizedValidate = useCallback<Validate>(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n return validate(value, { ...validationOptions, required })\n }\n return true\n },\n // Important: do not add props to the dependencies array.\n // This would cause an infinite loop and endless re-rendering.\n // Removing props from the dependencies array fixed this issue: https://github.com/payloadcms/payload/issues/3709\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled: disabledFromField,\n initialValue,\n path,\n setValue,\n showError,\n value,\n } = useField<SerializedEditorState>({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || disabledFromField\n\n const [isSmallWidthViewport, setIsSmallWidthViewport] = useState<boolean>(false)\n const [rerenderProviderKey, setRerenderProviderKey] = useState<Date>()\n\n const prevInitialValueRef = React.useRef<SerializedEditorState | undefined>(initialValue)\n const prevValueRef = React.useRef<SerializedEditorState | undefined>(value)\n\n useEffect(() => {\n const updateViewPortWidth = () => {\n const isNextSmallWidthViewport = window.matchMedia('(max-width: 768px)').matches\n\n if (isNextSmallWidthViewport !== isSmallWidthViewport) {\n setIsSmallWidthViewport(isNextSmallWidthViewport)\n }\n }\n updateViewPortWidth()\n window.addEventListener('resize', updateViewPortWidth)\n\n return () => {\n window.removeEventListener('resize', updateViewPortWidth)\n }\n }, [isSmallWidthViewport])\n\n const classes = [\n 'field-type',\n baseClass,\n className,\n showError && 'error',\n disabled && `${baseClass}--read-only`,\n editorConfig?.admin?.hideGutter !== true && !isSmallWidthViewport\n ? `${baseClass}--show-gutter`\n : null,\n ]\n .filter(Boolean)\n .join(' ')\n\n const pathWithEditDepth = `${path}.${editDepth}`\n\n const runDeprioritized = useRunDeprioritized() // defaults to 500 ms timeout\n\n const handleChange = useCallback(\n (editorState: EditorState) => {\n // Capture `editorState` in the closure so we can safely run later.\n const updateFieldValue = () => {\n const newState = editorState.toJSON()\n prevValueRef.current = newState\n setValue(newState)\n }\n\n // Queue the update for the browser’s idle time (or Safari shim)\n // and let the hook handle debouncing/cancellation.\n void runDeprioritized(updateFieldValue)\n },\n [setValue, runDeprioritized], // `runDeprioritized` is stable (useCallback inside hook)\n )\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n const handleInitialValueChange = useEffectEvent(\n (initialValue: SerializedEditorState | undefined) => {\n // Object deep equality check here, as re-mounting the editor if\n // the new value is the same as the old one is not necessary.\n // In postgres, the order of keys in JSON objects is not guaranteed to be preserved,\n // so we need to do a deep equality check here that does not care about key order => we use dequal.\n // If we used JSON.stringify, the editor would re-mount every time you save the document, as the order of keys changes => change detected => re-mount.\n if (\n prevValueRef.current !== value &&\n !dequal(\n prevValueRef.current != null\n ? JSON.parse(JSON.stringify(prevValueRef.current))\n : prevValueRef.current,\n value,\n )\n ) {\n prevInitialValueRef.current = initialValue\n prevValueRef.current = value\n setRerenderProviderKey(new Date())\n }\n },\n )\n\n useEffect(() => {\n // Needs to trigger for object reference changes - otherwise,\n // reacting to the same initial value change twice will cause\n // the second change to be ignored, even though the value has changed.\n // That's because initialValue is not kept up-to-date\n if (!Object.is(initialValue, prevInitialValueRef.current)) {\n handleInitialValueChange(initialValue)\n }\n }, [initialValue])\n\n return (\n <div\n className={classes}\n data-field-path={path}\n data-field-schemapath={schemaPath}\n data-lexical-view={editorConfig?.view}\n key={pathWithEditDepth}\n style={styles}\n >\n <div className={`${baseClass}__label-row`}>\n {Label || (\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n )}\n {!isControlledByParent && <ViewSelector />}\n </div>\n <div className={`${baseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n <ErrorBoundary fallbackRender={fallbackRender} onReset={() => {}}>\n {BeforeInput}\n {/* Lexical may be in a drawer. We need to define another BulkUploadProvider to ensure that the bulk upload drawer\n is rendered in the correct depth (not displayed *behind* the current drawer).\n The `lexical-` prefix prevents drawer-slug collisions with non-lexical `BulkUploadProvider`s up the tree. */}\n <BulkUploadProvider drawerSlugPrefix={`lexical-${path}`}>\n <LexicalProvider\n composerKey={pathWithEditDepth}\n editorConfig={editorConfig}\n fieldProps={props}\n isSmallWidthViewport={isSmallWidthViewport}\n key={JSON.stringify({ path, rerenderProviderKey })} // makes sure lexical is completely re-rendered when initialValue changes, bypassing the lexical-internal value memoization. That way, external changes to the form will update the editor. More infos in PR description (https://github.com/payloadcms/payload/pull/5010)\n onChange={handleChange}\n readOnly={disabled}\n rtl={rtl}\n value={value}\n />\n </BulkUploadProvider>\n {AfterInput}\n </ErrorBoundary>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n\nfunction fallbackRender({ error }: FallbackProps) {\n return (\n <div className=\"errorBoundary\" role=\"alert\">\n <p>Something went wrong:</p>\n <pre style={{ color: 'red' }}>{error instanceof Error ? error.message : String(error)}</pre>\n </div>\n )\n}\n\nexport const RichText: typeof RichTextComponent = RichTextComponent\n", "'use client'\nimport type { InitialConfigType } from '@lexical/react/LexicalComposer.js'\nimport type { EditorState, LexicalEditor, SerializedEditorState } from 'lexical'\n\nimport { LexicalComposer } from '@lexical/react/LexicalComposer.js'\nimport { useEditDepth } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../types/index.js'\nimport type { SanitizedClientEditorConfig } from './config/types.js'\n\nimport { useRichTextView } from '../field/RichTextViewProvider.js'\nimport {\n EditorConfigProvider,\n useEditorConfigContext,\n} from './config/client/EditorConfigProvider.js'\nimport { LexicalEditor as LexicalEditorComponent } from './LexicalEditor.js'\nimport { getEnabledNodes } from './nodes/index.js'\n\nexport type LexicalProviderProps = {\n composerKey: string\n editorConfig: SanitizedClientEditorConfig\n fieldProps: LexicalRichTextFieldProps\n isSmallWidthViewport: boolean\n onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void\n readOnly: boolean\n rtl?: boolean\n value: SerializedEditorState\n}\n\nconst NestProviders = ({\n children,\n providers,\n}: {\n children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n providers: any[]\n}) => {\n if (!providers?.length) {\n return children\n }\n const Component = providers[0]\n if (providers.length > 1) {\n return (\n <Component>\n <NestProviders providers={providers.slice(1)}>{children}</NestProviders>\n </Component>\n )\n }\n return <Component>{children}</Component>\n}\n\nexport const LexicalProvider: React.FC<LexicalProviderProps> = (props) => {\n const {\n composerKey,\n editorConfig,\n fieldProps,\n isSmallWidthViewport,\n onChange,\n readOnly,\n rtl,\n value,\n } = props\n\n const { currentView, views } = useRichTextView()\n\n const parentContext = useEditorConfigContext()\n\n const editDepth = useEditDepth()\n\n const editorContainerRef = React.useRef<HTMLDivElement>(null)\n\n // useMemo for the initialConfig. `readOnly` and `value` are intentionally excluded from deps\n // to avoid full remounts on every save (which would destroy cursor position and undo history).\n const initialConfig = useMemo<InitialConfigType>(() => {\n if (value && typeof value !== 'object') {\n throw new Error(\n 'The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' +\n JSON.stringify(value),\n )\n }\n\n if (value && Array.isArray(value) && !('root' in value)) {\n throw new Error(\n 'You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/lexical/migration#migration-via-migration-script-recommended',\n )\n }\n\n if (value && 'jsonContent' in value) {\n throw new Error(\n 'You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/lexical/migration#migrating-from-payload-plugin-lexical',\n )\n }\n\n // Use the 'default' view if available, otherwise undefined\n const nodeViews = views?.[currentView]?.nodes\n\n return {\n editable: readOnly !== true,\n editorState: value != null ? JSON.stringify(value) : undefined,\n namespace: editorConfig.lexical.namespace,\n nodes: getEnabledNodes({\n editorConfig,\n nodeViews,\n }),\n onError: (error: Error) => {\n throw error\n },\n theme: editorConfig.lexical.theme,\n }\n // Important: do not add readOnly and value to the dependencies array. This will cause the entire lexical editor to re-render if the document is saved, which will\n // cause the editor to lose focus.\n }, [editorConfig, views, currentView])\n\n // Track whether the editor has ever been editable. Once it transitions to editable,\n // we never remount due to transient readOnly changes (e.g. during form save processing).\n const hasBeenEditable = React.useRef(readOnly !== true)\n if (readOnly !== true) {\n hasBeenEditable.current = true\n }\n\n // Compute the effective editable state for the config.\n // Override the memoized config's editable value to reflect the current readOnly prop.\n const effectiveConfig = useMemo<InitialConfigType>(\n () => ({\n ...initialConfig,\n editable: readOnly !== true,\n }),\n\n [initialConfig, readOnly],\n )\n\n if (!effectiveConfig) {\n return <p>Loading...</p>\n }\n\n // Use `hasBeenEditable` to build the key: only force a remount when the editor has NEVER\n // been editable and transitions to editable for the first time. After that, LexicalComposer\n // stays mounted (preserving cursor/focus/undo) and we rely on Lexical's internal\n // `editor.setEditable()` for transient readOnly changes during saves.\n const editableKey = hasBeenEditable.current ? 'editable' : 'readonly'\n return (\n <LexicalComposer initialConfig={effectiveConfig} key={composerKey + editableKey + currentView}>\n <EditorConfigProvider\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n fieldProps={fieldProps}\n /**\n * Parent editor is not truly the parent editor, if the current editor is part of a drawer and the parent editor is the main editor.\n */\n parentContext={parentContext?.editDepth === editDepth ? parentContext : undefined}\n >\n <NestProviders providers={editorConfig.features.providers}>\n <LexicalEditorComponent\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n isSmallWidthViewport={isSmallWidthViewport}\n onChange={onChange}\n rtl={rtl}\n />\n </NestProviders>\n </EditorConfigProvider>\n </LexicalComposer>\n )\n}\n", "'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary.js'\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin.js'\nimport { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin.js'\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { BLUR_COMMAND, COMMAND_PRIORITY_LOW, FOCUS_COMMAND } from 'lexical'\nimport * as React from 'react'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport type { LexicalProviderProps } from './LexicalProvider.js'\n\nimport { useEditorConfigContext } from './config/client/EditorConfigProvider.js'\nimport './LexicalEditor.css'\nimport { EditorPlugin } from './EditorPlugin.js'\nimport { ClipboardPlugin } from './plugins/ClipboardPlugin/index.js'\nimport { DecoratorPlugin } from './plugins/DecoratorPlugin/index.js'\nimport { AddBlockHandlePlugin } from './plugins/handles/AddBlockHandlePlugin/index.js'\nimport { DraggableBlockPlugin } from './plugins/handles/DraggableBlockPlugin/index.js'\nimport { InsertParagraphAtEndPlugin } from './plugins/InsertParagraphAtEnd/index.js'\nimport { MarkdownShortcutPlugin } from './plugins/MarkdownShortcut/index.js'\nimport { NodeViewOverridePlugin } from './plugins/NodeViewOverridePlugin/index.js'\nimport { NormalizeSelectionPlugin } from './plugins/NormalizeSelection/index.js'\nimport { SelectAllPlugin } from './plugins/SelectAllPlugin/index.js'\nimport { SlashMenuPlugin } from './plugins/SlashMenu/index.js'\nimport { TextPlugin } from './plugins/TextPlugin/index.js'\nimport { LexicalContentEditable } from './ui/ContentEditable.js'\n\n/**\n * Marks the Lexical root element with `data-lexical-editable` once the editor\n * is mounted and interactive. Tests can query this attribute to confirm that\n * React event handlers are attached and keyboard input will be processed.\n */\nfunction EditorReadyPlugin() {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n const root = editor.getRootElement()\n if (root) {\n root.dataset.lexicalEditable = String(editor.isEditable())\n }\n return editor.registerEditableListener((editable) => {\n const el = editor.getRootElement()\n if (el) {\n el.dataset.lexicalEditable = String(editable)\n }\n })\n }, [editor])\n\n return null\n}\n\nexport const LexicalEditor: React.FC<\n {\n editorContainerRef: React.RefObject<HTMLDivElement | null>\n isSmallWidthViewport: boolean\n } & Pick<LexicalProviderProps, 'editorConfig' | 'onChange' | 'rtl'>\n> = (props) => {\n const { editorConfig, editorContainerRef, isSmallWidthViewport, onChange, rtl } = props\n const editorConfigContext = useEditorConfigContext()\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLDivElement | null>(null)\n const onRef = useCallback((_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem)\n }\n }, [])\n\n useEffect(() => {\n if (!editorConfigContext?.uuid) {\n console.error('Lexical Editor must be used within an EditorConfigProvider')\n return\n }\n if (editorConfigContext?.parentEditor?.uuid) {\n editorConfigContext.parentEditor?.registerChild(editorConfigContext.uuid, editorConfigContext)\n }\n\n const handleFocus = () => {\n editorConfigContext.focusEditor(editorConfigContext)\n }\n\n const handleBlur = () => {\n editorConfigContext.blurEditor(editorConfigContext)\n }\n\n const unregisterFocus = editor.registerCommand<MouseEvent>(\n FOCUS_COMMAND,\n () => {\n handleFocus()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n const unregisterBlur = editor.registerCommand<MouseEvent>(\n BLUR_COMMAND,\n () => {\n handleBlur()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n return () => {\n unregisterFocus()\n unregisterBlur()\n editorConfigContext.parentEditor?.unregisterChild?.(editorConfigContext.uuid)\n }\n }, [editor, editorConfigContext])\n\n return (\n <React.Fragment>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'aboveContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n <div className=\"editor-container\" dir={rtl ? 'rtl' : undefined} ref={editorContainerRef}>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'top') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\">\n <div className=\"editor\" ref={onRef}>\n <LexicalContentEditable editorConfig={editorConfig} />\n </div>\n </div>\n }\n ErrorBoundary={LexicalErrorBoundary}\n />\n <EditorReadyPlugin />\n <NormalizeSelectionPlugin />\n {isEditable && <InsertParagraphAtEndPlugin />}\n <DecoratorPlugin />\n <ClipboardPlugin />\n <TextPlugin features={editorConfig.features} />\n <SelectAllPlugin />\n <NodeViewOverridePlugin />\n {isEditable && (\n <OnChangePlugin\n // Selection changes can be ignored here, reducing the\n // frequency that the FieldComponent and Payload receive updates.\n // Selection changes are only needed if you are saving selection state\n ignoreSelectionChange\n onChange={(editorState, editor, tags) => {\n // Ignore any onChange event triggered by focus only\n if (!tags.has('focus') || tags.size > 1) {\n if (onChange != null) {\n onChange(editorState, editor, tags)\n }\n }\n }}\n />\n )}\n {floatingAnchorElem && (\n <React.Fragment>\n {!isSmallWidthViewport && isEditable && (\n <React.Fragment>\n {editorConfig.admin?.hideDraggableBlockElement ? null : (\n <DraggableBlockPlugin anchorElem={floatingAnchorElem} />\n )}\n {editorConfig.admin?.hideAddBlockButton ? null : (\n <AddBlockHandlePlugin anchorElem={floatingAnchorElem} />\n )}\n </React.Fragment>\n )}\n {editorConfig.features.plugins?.map((plugin) => {\n if (\n plugin.position === 'floatingAnchorElem' &&\n !(plugin.desktopOnly === true && isSmallWidthViewport)\n ) {\n return (\n <EditorPlugin\n anchorElem={floatingAnchorElem}\n clientProps={plugin.clientProps}\n key={plugin.key}\n plugin={plugin}\n />\n )\n }\n })}\n {isEditable && (\n <React.Fragment>\n <SlashMenuPlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n </React.Fragment>\n )}\n {isEditable && (\n <React.Fragment>\n <HistoryPlugin />\n {editorConfig?.features?.markdownTransformers?.length > 0 && <MarkdownShortcutPlugin />}\n </React.Fragment>\n )}\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'normal') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'bottom') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n </div>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'belowContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n </React.Fragment>\n )\n}\n", "'use client'\nimport React from 'react'\n\nimport type { SanitizedPlugin } from '../features/typesClient.js'\n\nexport const EditorPlugin: React.FC<{\n anchorElem?: HTMLDivElement\n clientProps: unknown\n plugin: SanitizedPlugin\n}> = ({ anchorElem, clientProps, plugin }) => {\n if (plugin.position === 'floatingAnchorElem' && anchorElem) {\n return (\n plugin.Component && <plugin.Component anchorElem={anchorElem} clientProps={clientProps} />\n )\n }\n\n // @ts-expect-error - ts is not able to infer that plugin.Component is of type PluginComponent\n return plugin.Component && <plugin.Component clientProps={clientProps} />\n}\n", "'use client'\n\nimport { copyToClipboard } from '@lexical/clipboard'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { objectKlassEquals } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport { $getSelection, $isNodeSelection, COMMAND_PRIORITY_LOW, COPY_COMMAND } from 'lexical'\nimport { useEffect } from 'react'\n\ntype SerializedUnknownLexicalNode = {\n children?: SerializedUnknownLexicalNode[]\n type: string\n}\n\ntype LexicalClipboardData = {\n namespace: string\n nodes: SerializedUnknownLexicalNode[]\n}\n\nconst changeIds = (node: SerializedUnknownLexicalNode) => {\n if (\n 'fields' in node &&\n typeof node.fields === 'object' &&\n node.fields !== null &&\n 'id' in node.fields\n ) {\n node.fields.id = new ObjectID.default().toHexString()\n } else if ('id' in node) {\n node.id = new ObjectID.default().toHexString()\n }\n\n if (node.children) {\n for (const child of node.children) {\n changeIds(child)\n }\n }\n}\n\nexport function ClipboardPlugin() {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n // Remove duplicated ids from clipboard. We do it here because:\n // 1. Browsers do not allow setting the clipboardData in paste event for security reasons.\n // 2. If you cut instead of paste, the id will be kept, which is a good thing.\n return editor.registerCommand(\n COPY_COMMAND,\n (event) => {\n // Handle decorator node case\n const selection = $getSelection()\n if ($isNodeSelection(selection)) {\n const node = selection.getNodes()[0]\n\n const serializedNode = node?.exportJSON() as SerializedUnknownLexicalNode\n const deepCloneSerializedNode = JSON.parse(JSON.stringify(serializedNode))\n changeIds(deepCloneSerializedNode)\n\n const lexicalClipboardData: LexicalClipboardData = {\n namespace: editor._config.namespace,\n nodes: [deepCloneSerializedNode],\n }\n\n const stringifiedLexicalClipboardData = JSON.stringify(lexicalClipboardData)\n\n copyToClipboard(editor, null, {\n 'application/x-lexical-editor': stringifiedLexicalClipboardData,\n 'text/plain': '',\n }).catch((error) => {\n throw error\n })\n return true\n }\n\n // Handle range selection case\n copyToClipboard(editor, objectKlassEquals(event, ClipboardEvent) ? event : null)\n .then(() => {\n if (!(event instanceof ClipboardEvent) || !event.clipboardData) {\n throw new Error('No clipboard event')\n }\n const lexicalStringified = event.clipboardData.getData('application/x-lexical-editor')\n if (!lexicalStringified) {\n return true\n }\n\n const lexical = JSON.parse(lexicalStringified) as {\n nodes: SerializedUnknownLexicalNode[]\n }\n\n for (const node of lexical.nodes) {\n changeIds(node)\n }\n const stringified = JSON.stringify(lexical)\n event.clipboardData.setData('application/x-lexical-editor', stringified)\n })\n .catch((error) => {\n if (event instanceof ClipboardEvent) {\n event.clipboardData?.setData('application/x-lexical-editor', '')\n }\n throw error\n })\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n }, [editor])\n\n return null\n}\n", "'use client'\n\nimport type { DecoratorNode, ElementNode, LexicalNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport {\n $createNodeSelection,\n $getEditor,\n $getNearestNodeFromDOMNode,\n $getSelection,\n $isDecoratorNode,\n $isElementNode,\n $isLineBreakNode,\n $isNodeSelection,\n $isRangeSelection,\n $isRootOrShadowRoot,\n $isTextNode,\n $setSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport './index.css'\n\n// TODO: This should ideally be fixed in Lexical. See\n// https://github.com/facebook/lexical/pull/7072\nexport function DecoratorPlugin() {\n const [editor] = useLexicalComposerContext()\n\n const $onDelete = (event: KeyboardEvent) => {\n const selection = $getSelection()\n if (!$isNodeSelection(selection)) {\n return false\n }\n event.preventDefault()\n selection.getNodes().forEach((node) => {\n node.remove()\n })\n return true\n }\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n CLICK_COMMAND,\n (event) => {\n document.querySelector('.decorator-selected')?.classList.remove('decorator-selected')\n const decorator = $getDecoratorByMouseEvent(event)\n if (!decorator) {\n return true\n }\n const { target } = event\n const isInteractive =\n !(target instanceof HTMLElement) ||\n target.isContentEditable ||\n target.closest(\n 'button, textarea, input, .react-select, .code-editor, .no-select-decorator, [role=\"button\"]',\n )\n if (isInteractive) {\n $setSelection(null)\n } else {\n $selectDecorator(decorator)\n }\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n const decorator = $getSelectedDecorator()\n document.querySelector('.decorator-selected')?.classList.remove('decorator-selected')\n if (decorator) {\n decorator.element?.classList.add('decorator-selected')\n return true\n }\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ARROW_UP_COMMAND,\n (event) => {\n // CASE 1: Node selection\n const selection = $getSelection()\n if ($isNodeSelection(selection)) {\n const prevSibling = selection.getNodes()[0]?.getPreviousSibling()\n if ($isDecoratorNode(prevSibling)) {\n const element = $getEditor().getElementByKey(prevSibling.getKey())\n if (element) {\n $selectDecorator({ element, node: prevSibling })\n event.preventDefault()\n return true\n }\n return false\n }\n if (!$isElementNode(prevSibling)) {\n return false\n }\n const lastDescendant = prevSibling.getLastDescendant() ?? prevSibling\n if (!lastDescendant) {\n return false\n }\n const block = $findMatchingParent(lastDescendant, INTERNAL_$isBlock)\n block?.selectStart()\n event.preventDefault()\n return true\n }\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n // CASE 2: Range selection\n // Get first selected block\n const firstPoint = selection.isBackward() ? selection.anchor : selection.focus\n const firstNode = firstPoint.getNode()\n const firstSelectedBlock = $findMatchingParent(firstNode, (node) => {\n return findFirstSiblingBlock(node) !== null\n })\n const prevBlock = firstSelectedBlock?.getPreviousSibling()\n if (!firstSelectedBlock || prevBlock !== findFirstSiblingBlock(firstSelectedBlock)) {\n return false\n }\n\n if ($isDecoratorNode(prevBlock)) {\n const prevBlockElement = $getEditor().getElementByKey(prevBlock.getKey())\n if (prevBlockElement) {\n $selectDecorator({ element: prevBlockElement, node: prevBlock })\n event.preventDefault()\n return true\n }\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ARROW_DOWN_COMMAND,\n (event) => {\n // CASE 1: Node selection\n const selection = $getSelection()\n if ($isNodeSelection(selection)) {\n event.preventDefault()\n const nextSibling = selection.getNodes()[0]?.getNextSibling()\n if ($isDecoratorNode(nextSibling)) {\n const element = $getEditor().getElementByKey(nextSibling.getKey())\n if (element) {\n $selectDecorator({ element, node: nextSibling })\n }\n return true\n }\n if (!$isElementNode(nextSibling)) {\n return true\n }\n const firstDescendant = nextSibling.getFirstDescendant() ?? nextSibling\n if (!firstDescendant) {\n return true\n }\n const block = $findMatchingParent(firstDescendant, INTERNAL_$isBlock)\n block?.selectEnd()\n event.preventDefault()\n return true\n }\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n // CASE 2: Range selection\n // Get last selected block\n const lastPoint = selection.isBackward() ? selection.anchor : selection.focus\n const lastNode = lastPoint.getNode()\n const lastSelectedBlock = $findMatchingParent(lastNode, (node) => {\n return findLaterSiblingBlock(node) !== null\n })\n const nextBlock = lastSelectedBlock?.getNextSibling()\n if (!lastSelectedBlock || nextBlock !== findLaterSiblingBlock(lastSelectedBlock)) {\n return false\n }\n\n if ($isDecoratorNode(nextBlock)) {\n const nextBlockElement = $getEditor().getElementByKey(nextBlock.getKey())\n if (nextBlockElement) {\n $selectDecorator({ element: nextBlockElement, node: nextBlock })\n event.preventDefault()\n return true\n }\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor])\n\n return null\n}\n\nfunction $getDecoratorByMouseEvent(\n event: MouseEvent,\n): { element: HTMLElement; node: DecoratorNode<unknown> } | undefined {\n if (!(event.target instanceof HTMLElement)) {\n return undefined\n }\n const element = event.target.closest('[data-lexical-decorator=\"true\"]')\n if (!(element instanceof HTMLElement)) {\n return undefined\n }\n const node = $getNearestNodeFromDOMNode(element)\n return $isDecoratorNode(node) ? { element, node } : undefined\n}\n\nfunction $getSelectedDecorator() {\n const selection = $getSelection()\n if (!$isNodeSelection(selection)) {\n return undefined\n }\n const nodes = selection.getNodes()\n if (nodes.length !== 1) {\n return undefined\n }\n const node = nodes[0]\n return $isDecoratorNode(node)\n ? {\n decorator: node,\n element: $getEditor().getElementByKey(node.getKey()),\n }\n : undefined\n}\n\nfunction $selectDecorator({\n element,\n node,\n}: {\n element: HTMLElement\n node: DecoratorNode<unknown>\n}) {\n document.querySelector('.decorator-selected')?.classList.remove('decorator-selected')\n const selection = $createNodeSelection()\n selection.add(node.getKey())\n $setSelection(selection)\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' })\n element.classList.add('decorator-selected')\n}\n\n/**\n * Copied from https://github.com/facebook/lexical/blob/main/packages/lexical/src/LexicalUtils.ts\n *\n * This function returns true for a DecoratorNode that is not inline OR\n * an ElementNode that is:\n * - not a root or shadow root\n * - not inline\n * - can't be empty\n * - has no children or an inline first child\n */\nexport function INTERNAL_$isBlock(node: LexicalNode): node is DecoratorNode<unknown> | ElementNode {\n if ($isDecoratorNode(node) && !node.isInline()) {\n return true\n }\n if (!$isElementNode(node) || $isRootOrShadowRoot(node)) {\n return false\n }\n\n const firstChild = node.getFirstChild()\n const isLeafElement =\n firstChild === null ||\n $isLineBreakNode(firstChild) ||\n $isTextNode(firstChild) ||\n firstChild.isInline()\n\n return !node.isInline() && node.canBeEmpty() !== false && isLeafElement\n}\n\nfunction findLaterSiblingBlock(node: LexicalNode): LexicalNode | null {\n let current = node.getNextSibling()\n while (current !== null) {\n if (INTERNAL_$isBlock(current)) {\n return current\n }\n current = current.getNextSibling()\n }\n return null\n}\n\nfunction findFirstSiblingBlock(node: LexicalNode): LexicalNode | null {\n let current = node.getPreviousSibling()\n while (current !== null) {\n if (INTERNAL_$isBlock(current)) {\n return current\n }\n current = current.getPreviousSibling()\n }\n return null\n}\n", "'use client'\nimport type { LexicalEditor, LexicalNode, ParagraphNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $createParagraphNode, isHTMLElement } from 'lexical'\nimport * as React from 'react'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { useEditorConfigContext } from '../../../config/client/EditorConfigProvider.js'\nimport { Point } from '../../../utils/point.js'\nimport { ENABLE_SLASH_MENU_COMMAND } from '../../SlashMenu/LexicalTypeaheadMenuPlugin/index.js'\nimport { calculateDistanceFromScrollerElem } from '../utils/calculateDistanceFromScrollerElem.js'\nimport { getNodeCloseToPoint } from '../utils/getNodeCloseToPoint.js'\nimport { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys.js'\nimport { isOnHandleElement } from '../utils/isOnHandleElement.js'\nimport { setHandlePosition } from '../utils/setHandlePosition.js'\nimport './index.css'\n\nconst ADD_BLOCK_MENU_CLASSNAME = 'add-block-menu'\n\nlet prevIndex = Infinity\n\nfunction getCurrentIndex(keysLength: number): number {\n if (keysLength === 0) {\n return Infinity\n }\n if (prevIndex >= 0 && prevIndex < keysLength) {\n return prevIndex\n }\n\n return Math.floor(keysLength / 2)\n}\n\nfunction useAddBlockHandle(\n editor: LexicalEditor,\n anchorElem: HTMLElement,\n isEditable: boolean,\n): React.ReactElement {\n const scrollerElem = anchorElem.parentElement\n\n const { editorConfig } = useEditorConfigContext()\n const blockHandleHorizontalOffset = editorConfig?.admin?.hideGutter ? -24 : 12\n\n const menuRef = useRef<HTMLButtonElement>(null)\n const [hoveredElement, setHoveredElement] = useState<{\n elem: HTMLElement\n node: LexicalNode\n } | null>(null)\n\n useEffect(() => {\n function onDocumentMouseMove(event: MouseEvent) {\n const target = event.target\n if (!isHTMLElement(target)) {\n return\n }\n\n const distanceFromScrollerElem = calculateDistanceFromScrollerElem(\n scrollerElem,\n event.pageX,\n event.pageY,\n target,\n )\n\n if (distanceFromScrollerElem === -1) {\n setHoveredElement(null)\n return\n }\n\n if (isOnHandleElement(target, ADD_BLOCK_MENU_CLASSNAME)) {\n return\n }\n const topLevelNodeKeys = getTopLevelNodeKeys(editor)\n\n const {\n blockElem: _emptyBlockElem,\n blockNode,\n foundAtIndex,\n } = getNodeCloseToPoint({\n anchorElem,\n cache_threshold: 0,\n editor,\n horizontalOffset: -distanceFromScrollerElem,\n point: new Point(event.x, event.y),\n returnEmptyParagraphs: true,\n startIndex: getCurrentIndex(topLevelNodeKeys.length),\n useEdgeAsDefault: false,\n })\n\n prevIndex = foundAtIndex\n\n if (!_emptyBlockElem) {\n return\n }\n if (\n blockNode &&\n (hoveredElement?.node !== blockNode || hoveredElement?.elem !== _emptyBlockElem)\n ) {\n setHoveredElement({\n elem: _emptyBlockElem,\n node: blockNode,\n })\n }\n }\n\n // Since the draggableBlockElem is outside the actual editor, we need to listen to the document\n // to be able to detect when the mouse is outside the editor and respect a buffer around\n // the scrollerElem to avoid the draggableBlockElem disappearing too early.\n document?.addEventListener('mousemove', onDocumentMouseMove)\n\n return () => {\n document?.removeEventListener('mousemove', onDocumentMouseMove)\n }\n }, [scrollerElem, anchorElem, editor, hoveredElement])\n\n useEffect(() => {\n if (menuRef.current && hoveredElement?.node) {\n setHandlePosition(\n hoveredElement?.elem,\n menuRef.current,\n anchorElem,\n blockHandleHorizontalOffset,\n )\n }\n }, [anchorElem, hoveredElement, blockHandleHorizontalOffset])\n\n const handleAddClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n let hoveredElementToUse = hoveredElement\n if (!hoveredElementToUse?.node) {\n return\n }\n\n // 1. Update hoveredElement.node to a new paragraph node if the hoveredElement.node is not a paragraph node\n editor.update(() => {\n // Check if blockNode is an empty text node\n let isEmptyParagraph = true\n if (\n hoveredElementToUse?.node.getType() !== 'paragraph' ||\n hoveredElementToUse.node.getTextContent() !== ''\n ) {\n isEmptyParagraph = false\n }\n\n if (!isEmptyParagraph) {\n const newParagraph = $createParagraphNode()\n hoveredElementToUse?.node.insertAfter(newParagraph)\n\n setTimeout(() => {\n hoveredElementToUse = {\n elem: editor.getElementByKey(newParagraph.getKey())!,\n node: newParagraph,\n }\n setHoveredElement(hoveredElementToUse)\n }, 0)\n }\n })\n\n // 2. Focus on the new paragraph node\n setTimeout(() => {\n editor.update(() => {\n editor.focus()\n\n if (\n hoveredElementToUse?.node &&\n 'select' in hoveredElementToUse.node &&\n typeof hoveredElementToUse.node.select === 'function'\n ) {\n hoveredElementToUse.node.select()\n }\n })\n }, 1)\n\n // Make sure this is called AFTER the focusing has been processed by the browser\n // Otherwise, this won't work\n setTimeout(() => {\n editor.dispatchCommand(ENABLE_SLASH_MENU_COMMAND, {\n node: hoveredElementToUse?.node as ParagraphNode,\n })\n }, 2)\n\n event.stopPropagation()\n event.preventDefault()\n },\n [editor, hoveredElement],\n )\n\n return createPortal(\n <React.Fragment>\n <button\n aria-label=\"Add block\"\n className=\"icon add-block-menu\"\n onClick={(event) => {\n handleAddClick(event)\n }}\n ref={menuRef}\n type=\"button\"\n >\n <div className={isEditable ? 'icon' : ''} />\n </button>\n </React.Fragment>,\n anchorElem,\n )\n}\n\nexport function AddBlockHandlePlugin({\n anchorElem = document.body,\n}: {\n anchorElem?: HTMLElement\n}): React.ReactElement {\n const [editor] = useLexicalComposerContext()\n return useAddBlockHandle(editor, anchorElem, editor._editable)\n}\n", "'use client'\n/**\n * Calculate distance between scrollerElem and target if target is not in scrollerElem\n */\nexport const calculateDistanceFromScrollerElem = (\n scrollerElem: HTMLElement | null,\n pageX: number,\n pageY: number,\n target: HTMLElement,\n horizontalBuffer: number = 50,\n verticalBuffer: number = 25,\n): number => {\n let distanceFromScrollerElem = 0\n if (scrollerElem && !scrollerElem.contains(target)) {\n const { bottom, left, right, top } = scrollerElem.getBoundingClientRect()\n\n const adjustedTop = top + window.scrollY\n const adjustedBottom = bottom + window.scrollY\n\n if (\n pageY < adjustedTop - verticalBuffer ||\n pageY > adjustedBottom + verticalBuffer ||\n pageX < left - horizontalBuffer ||\n pageX > right + horizontalBuffer\n ) {\n return -1\n }\n\n // This is used to allow the _draggableBlockElem to be found when the mouse is in the\n // buffer zone around the scrollerElem.\n if (pageX < left || pageX > right) {\n distanceFromScrollerElem = pageX < left ? pageX - left : pageX - right\n }\n }\n return distanceFromScrollerElem\n}\n", "'use client'\nimport type { LexicalEditor, LexicalNode } from 'lexical'\n\nimport { $getNodeByKey } from 'lexical'\n\nimport { Point } from '../../../utils/point.js'\nimport { Rect } from '../../../utils/rect.js'\nimport { getBoundingClientRectWithoutTransform } from '../DraggableBlockPlugin/getBoundingRectWithoutTransform.js'\nimport { getCollapsedMargins } from '../utils/getCollapsedMargins.js'\nimport { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys.js'\n\n// Directions\nconst Downward = 1\nconst Upward = -1\nconst Indeterminate = 0\n\ntype Props = {\n anchorElem: HTMLElement\n cache_threshold?: number\n editor: LexicalEditor\n /** fuzzy makes the search not exact. If no exact match found, find the closes node instead of returning null */\n fuzzy?: boolean\n horizontalOffset?: number\n point: Point\n /**\n * By default, empty paragraphs are not returned. Set this to true to return empty paragraphs. @default false\n */\n returnEmptyParagraphs?: boolean\n /**\n * The index to start searching from. It can be a considerable performance optimization to start searching from the index of the\n * previously found node, as the node is likely to be close to the next node.\n */\n startIndex?: number\n useEdgeAsDefault?: boolean\n verbose?: boolean\n}\n\ntype Output = {\n blockElem: HTMLElement | null\n blockNode: LexicalNode | null\n foundAtIndex: number\n isFoundNodeEmptyParagraph: boolean\n}\n\nconst cache = {\n props: null as null | Props,\n result: null as null | Output,\n}\n\nfunction isPointClose(previous: Point, current: Point, threshold: number = 20): boolean {\n const dx = previous.x - current.x\n const dy = previous.y - current.y\n return dx * dx + dy * dy <= threshold * threshold\n}\n\nexport function getNodeCloseToPoint(props: Props): Output {\n const {\n anchorElem,\n cache_threshold = 20,\n editor,\n fuzzy = false,\n horizontalOffset = 0,\n point: { x, y },\n startIndex = 0,\n useEdgeAsDefault = false,\n } = props\n\n // Use cache\n if (\n cache_threshold > 0 &&\n cache.props &&\n cache.result &&\n cache.props.fuzzy === props.fuzzy &&\n cache.props.horizontalOffset === props.horizontalOffset &&\n cache.props.useEdgeAsDefault === props.useEdgeAsDefault &&\n isPointClose(cache.props.point, props.point, cache_threshold)\n ) {\n return cache.result\n }\n\n const anchorElementRect = anchorElem.getBoundingClientRect()\n const topLevelNodeKeys = getTopLevelNodeKeys(editor)\n\n const closestBlockElem: {\n blockElem: HTMLElement | null\n blockNode: LexicalNode | null\n distance: number\n foundAtIndex: number\n isFoundNodeEmptyParagraph: boolean\n } = {\n blockElem: null,\n blockNode: null,\n distance: Infinity,\n foundAtIndex: -1,\n isFoundNodeEmptyParagraph: false,\n }\n\n // Return null if matching block element is the first or last node\n editor.getEditorState().read(() => {\n if (useEdgeAsDefault) {\n const firstNode = editor.getElementByKey(topLevelNodeKeys[0]!)\n const lastNode = editor.getElementByKey(topLevelNodeKeys[topLevelNodeKeys.length - 1]!)\n\n if (firstNode && lastNode) {\n const [firstNodeRect, lastNodeRect] = [\n getBoundingClientRectWithoutTransform(firstNode),\n getBoundingClientRectWithoutTransform(lastNode),\n ]\n\n if (y < firstNodeRect.top) {\n closestBlockElem.blockElem = firstNode\n closestBlockElem.distance = firstNodeRect.top - y\n closestBlockElem.blockNode = $getNodeByKey(topLevelNodeKeys[0]!)\n closestBlockElem.foundAtIndex = 0\n } else if (y > lastNodeRect.bottom) {\n closestBlockElem.distance = y - lastNodeRect.bottom\n closestBlockElem.blockNode = $getNodeByKey(topLevelNodeKeys[topLevelNodeKeys.length - 1]!)\n closestBlockElem.blockElem = lastNode\n closestBlockElem.foundAtIndex = topLevelNodeKeys.length - 1\n }\n\n if (closestBlockElem?.blockElem) {\n return {\n blockElem: null,\n isFoundNodeEmptyParagraph: false,\n } as Output\n }\n }\n }\n\n // Find matching block element\n let index = startIndex\n let direction = Indeterminate\n\n while (index >= 0 && index < topLevelNodeKeys.length) {\n const key = topLevelNodeKeys[index]!\n const elem = editor.getElementByKey(key)\n if (elem === null) {\n break\n }\n const point = new Point(x + horizontalOffset, y)\n //const domRect = Rect.fromDOM(elem)\n // Do not consider transform of blocks when calculating distance\n const domRect = Rect.fromDOMRect(getBoundingClientRectWithoutTransform(elem))\n\n const { marginBottom, marginTop } = getCollapsedMargins(elem)\n\n const rect = domRect.generateNewRect({\n bottom: domRect.bottom + marginBottom,\n left: anchorElementRect.left,\n right: anchorElementRect.right,\n top: domRect.top - marginTop,\n })\n\n const { distance, isOnBottomSide, isOnTopSide } = rect.distanceFromPoint(point)\n\n if (distance === 0) {\n closestBlockElem.blockElem = elem\n closestBlockElem.blockNode = $getNodeByKey(key)\n closestBlockElem.foundAtIndex = index\n closestBlockElem.distance = distance\n\n // Check if blockNode is an empty text node\n if (\n closestBlockElem.blockNode &&\n closestBlockElem.blockNode.getType() === 'paragraph' &&\n closestBlockElem.blockNode.getTextContent() === ''\n ) {\n if (!fuzzy && !props.returnEmptyParagraphs) {\n closestBlockElem.blockElem = null\n closestBlockElem.blockNode = null\n }\n\n closestBlockElem.isFoundNodeEmptyParagraph = true\n }\n break\n } else if (fuzzy) {\n if (distance < closestBlockElem.distance) {\n closestBlockElem.blockElem = elem\n closestBlockElem.blockNode = $getNodeByKey(key)\n closestBlockElem.distance = distance\n closestBlockElem.foundAtIndex = index\n }\n }\n\n if (direction === Indeterminate) {\n if (isOnTopSide) {\n direction = Upward\n } else if (isOnBottomSide) {\n direction = Downward\n } else {\n // stop search block element\n direction = Infinity\n }\n }\n\n index += direction\n }\n })\n\n // Store in cache before returning\n cache.props = props\n cache.result = {\n blockElem: closestBlockElem.blockElem,\n blockNode: closestBlockElem.blockNode,\n foundAtIndex: closestBlockElem.foundAtIndex,\n isFoundNodeEmptyParagraph: closestBlockElem.isFoundNodeEmptyParagraph,\n }\n\n return {\n blockElem: closestBlockElem.blockElem,\n blockNode: closestBlockElem.blockNode,\n foundAtIndex: closestBlockElem.foundAtIndex,\n isFoundNodeEmptyParagraph: closestBlockElem.isFoundNodeEmptyParagraph,\n }\n}\n", "'use client'\nexport function getBoundingClientRectWithoutTransform(elem: HTMLElement): DOMRect {\n const rect = elem.getBoundingClientRect()\n\n // Extract the translation value from the transform style\n const transformValue = getComputedStyle(elem).getPropertyValue('transform')\n if (!transformValue || transformValue === 'none') {\n return rect\n }\n\n const lastNumberOfTransformValue = transformValue.split(',').pop()\n rect.y = rect.y - Number(lastNumberOfTransformValue?.replace(')', ''))\n\n // Return the original bounding rect if no translation is applied\n return rect\n}\n", "'use client'\nexport function getCollapsedMargins(elem: HTMLElement): {\n marginBottom: number\n marginTop: number\n} {\n const getMargin = (element: Element | null, margin: 'marginBottom' | 'marginTop'): number =>\n element ? parseFloat(window.getComputedStyle(element)[margin]) : 0\n\n const { marginBottom, marginTop } = window.getComputedStyle(elem)\n const prevElemSiblingMarginBottom = getMargin(elem.previousElementSibling, 'marginBottom')\n const nextElemSiblingMarginTop = getMargin(elem.nextElementSibling, 'marginTop')\n const collapsedTopMargin = Math.max(parseFloat(marginTop), prevElemSiblingMarginBottom)\n const collapsedBottomMargin = Math.max(parseFloat(marginBottom), nextElemSiblingMarginTop)\n\n return { marginBottom: collapsedBottomMargin, marginTop: collapsedTopMargin }\n}\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { $getRoot } from 'lexical'\n\nexport function getTopLevelNodeKeys(editor: LexicalEditor): string[] {\n return editor.getEditorState().read(() => $getRoot().getChildrenKeys())\n}\n", "'use client'\nexport function isOnHandleElement(element: HTMLElement, handleElementClassName: string): boolean {\n return !!element.closest(`.${handleElementClassName}`)\n}\n", "'use client'\nconst replacedElements = [\n 'IMG',\n 'INPUT',\n 'TEXTAREA',\n 'SELECT',\n 'BUTTON',\n 'VIDEO',\n 'OBJECT',\n 'EMBED',\n 'IFRAME',\n 'HR',\n]\n\n/**\n * From ChatGPT, only that verified it works for HR elements.\n *\n * HTML Elements can have CSS lineHeight applied to them, but it doesn't always affect the visual layout.\n * This function checks if the line-height property has an effect on the element's layout.\n * @param htmlElem\n */\nexport function doesLineHeightAffectElement(htmlElem: HTMLElement) {\n if (!htmlElem) {\n return false\n }\n\n // Check for replaced elements, elements that typically don't support line-height adjustments,\n // and elements without visible content\n\n if (\n replacedElements.includes(htmlElem.tagName) ||\n htmlElem.offsetHeight === 0 ||\n htmlElem.offsetWidth === 0\n ) {\n return false\n }\n\n // Check for specific CSS properties that negate line-height's visual effects\n const style = window.getComputedStyle(htmlElem)\n if (\n style.display === 'table-cell' ||\n style.position === 'absolute' ||\n style.visibility === 'hidden' ||\n style.opacity === '0'\n ) {\n return false\n }\n\n // This is a basic check, and there can be more complex scenarios where line-height doesn't have an effect.\n return true\n}\n", "'use client'\nimport { doesLineHeightAffectElement } from './doesLineHeightAffectElement.js'\n\nexport function setHandlePosition(\n targetElem: HTMLElement | null,\n handleElem: HTMLElement,\n anchorElem: HTMLElement,\n leftOffset: number = 0, // SPACE\n) {\n if (!targetElem) {\n handleElem.style.opacity = '0'\n handleElem.style.transform = 'translate(-10000px, -10000px)'\n return\n }\n\n const targetRect = targetElem.getBoundingClientRect()\n const targetStyle = window.getComputedStyle(targetElem)\n const floatingElemRect = handleElem.getBoundingClientRect()\n const anchorElementRect = anchorElem.getBoundingClientRect()\n\n let top: number\n\n const isBlockStyle = [\n 'LexicalEditorTheme__block',\n 'LexicalEditorTheme__upload',\n 'LexicalEditorTheme__relationship',\n ].some(\n (classes) =>\n targetElem.classList.contains(classes) ||\n targetElem.firstElementChild?.classList.contains(classes),\n )\n\n if (!isBlockStyle) {\n // No need to let line height affect the re-positioning of the floating element if line height has no\n // visual effect on the element. Otherwise, the floating element will be positioned incorrectly.\n const actualLineHeight = doesLineHeightAffectElement(targetElem)\n ? parseInt(targetStyle.lineHeight, 10)\n : 0\n\n top = targetRect.top + (actualLineHeight - floatingElemRect.height) / 2 - anchorElementRect.top\n } else {\n top = targetRect.top + 8 - anchorElementRect.top\n }\n\n const left = leftOffset\n\n handleElem.style.opacity = '1'\n handleElem.style.transform = `translate(${left}px, ${top}px)`\n}\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\nimport type { DragEvent as ReactDragEvent } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { eventFiles } from '@lexical/rich-text'\nimport { $getNearestNodeFromDOMNode, $getNodeByKey, isHTMLElement } from 'lexical'\nimport * as React from 'react'\nimport { useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { useEditorConfigContext } from '../../../config/client/EditorConfigProvider.js'\nimport { Point } from '../../../utils/point.js'\nimport { calculateDistanceFromScrollerElem } from '../utils/calculateDistanceFromScrollerElem.js'\nimport { getNodeCloseToPoint } from '../utils/getNodeCloseToPoint.js'\nimport { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys.js'\nimport { isOnHandleElement } from '../utils/isOnHandleElement.js'\nimport { setHandlePosition } from '../utils/setHandlePosition.js'\nimport { getBoundingClientRectWithoutTransform } from './getBoundingRectWithoutTransform.js'\nimport './index.css'\nimport { setTargetLine } from './setTargetLine.js'\n\nconst DRAGGABLE_BLOCK_MENU_CLASSNAME = 'draggable-block-menu'\nconst DRAG_DATA_FORMAT = 'application/x-lexical-drag-block'\n\nlet prevIndex = Infinity\n\nfunction getCurrentIndex(keysLength: number): number {\n if (keysLength === 0) {\n return Infinity\n }\n if (prevIndex >= 0 && prevIndex < keysLength) {\n return prevIndex\n }\n\n return Math.floor(keysLength / 2)\n}\n\nfunction setDragImage(dataTransfer: DataTransfer, draggableBlockElem: HTMLElement) {\n const { transform } = draggableBlockElem.style\n\n // Remove dragImage borders\n dataTransfer.setDragImage(draggableBlockElem, 0, 0)\n\n setTimeout(() => {\n draggableBlockElem.style.transform = transform\n })\n}\n\nfunction hideTargetLine(\n targetLineElem: HTMLElement | null,\n lastTargetBlockElem: HTMLElement | null,\n) {\n if (targetLineElem) {\n targetLineElem.style.opacity = '0'\n }\n if (lastTargetBlockElem) {\n lastTargetBlockElem.style.opacity = ''\n // Delete marginBottom and marginTop values we set\n lastTargetBlockElem.style.marginBottom = ''\n lastTargetBlockElem.style.marginTop = ''\n //lastTargetBlock.style.border = 'none'\n }\n}\n\nfunction useDraggableBlockMenu(\n editor: LexicalEditor,\n anchorElem: HTMLElement,\n isEditable: boolean,\n): React.ReactElement {\n const scrollerElem = anchorElem.parentElement\n\n const menuRef = useRef<HTMLButtonElement>(null)\n const targetLineRef = useRef<HTMLDivElement>(null)\n const debugHighlightRef = useRef<HTMLDivElement>(null)\n const isDraggingBlockRef = useRef<boolean>(false)\n const highlightTimersRef = useRef<ReturnType<typeof setTimeout>[]>([])\n const [draggableBlockElem, setDraggableBlockElem] = useState<HTMLElement | null>(null)\n const [lastTargetBlock, setLastTargetBlock] = useState<{\n boundingBox?: DOMRect\n elem: HTMLElement | null\n isBelow: boolean\n } | null>(null)\n\n const { editorConfig } = useEditorConfigContext()\n\n const blockHandleHorizontalOffset = editorConfig?.admin?.hideGutter ? -44 : -8\n\n useEffect(() => {\n /**\n * Handles positioning of the drag handle\n */\n function onDocumentMouseMove(event: MouseEvent) {\n const target = event.target\n if (!isHTMLElement(target)) {\n return\n }\n\n const distanceFromScrollerElem = calculateDistanceFromScrollerElem(\n scrollerElem,\n event.pageX,\n event.pageY,\n target,\n )\n if (distanceFromScrollerElem === -1) {\n setDraggableBlockElem(null)\n return\n }\n\n if (isOnHandleElement(target, DRAGGABLE_BLOCK_MENU_CLASSNAME)) {\n return\n }\n\n const topLevelNodeKeys = getTopLevelNodeKeys(editor)\n\n const {\n blockElem: _draggableBlockElem,\n foundAtIndex,\n isFoundNodeEmptyParagraph,\n } = getNodeCloseToPoint({\n anchorElem,\n cache_threshold: 0,\n editor,\n horizontalOffset: -distanceFromScrollerElem,\n point: new Point(event.x, event.y),\n startIndex: getCurrentIndex(topLevelNodeKeys.length),\n useEdgeAsDefault: false,\n verbose: false,\n })\n\n prevIndex = foundAtIndex\n\n //if (DEBUG && _draggableBlockElem) {\n //targetBlockElem.style.border = '3px solid red'\n // highlightElemOriginalPosition(debugHighlightRef, _draggableBlockElem, anchorElem)\n //}\n\n if (!_draggableBlockElem && !isFoundNodeEmptyParagraph) {\n return\n }\n\n if (draggableBlockElem !== _draggableBlockElem) {\n setDraggableBlockElem(_draggableBlockElem)\n }\n }\n\n // Since the draggableBlockElem is outside the actual editor, we need to listen to the document\n // to be able to detect when the mouse is outside the editor and respect a buffer around\n // the scrollerElem to avoid the draggableBlockElem disappearing too early.\n document?.addEventListener('mousemove', onDocumentMouseMove)\n\n return () => {\n document?.removeEventListener('mousemove', onDocumentMouseMove)\n }\n }, [scrollerElem, anchorElem, editor, draggableBlockElem])\n\n useEffect(() => {\n if (menuRef.current) {\n setHandlePosition(\n draggableBlockElem,\n menuRef.current,\n anchorElem,\n blockHandleHorizontalOffset,\n )\n }\n }, [anchorElem, draggableBlockElem, blockHandleHorizontalOffset])\n\n useEffect(() => {\n function onDragover(event: DragEvent): boolean {\n if (!isDraggingBlockRef.current) {\n return false\n }\n const [isFileTransfer] = eventFiles(event)\n if (isFileTransfer) {\n return false\n }\n\n const { pageY, target } = event\n if (!isHTMLElement(target)) {\n return false\n }\n\n const distanceFromScrollerElem = calculateDistanceFromScrollerElem(\n scrollerElem,\n event.pageX,\n event.pageY,\n target,\n 100,\n 50,\n )\n\n const topLevelNodeKeys = getTopLevelNodeKeys(editor)\n\n const {\n blockElem: targetBlockElem,\n foundAtIndex,\n isFoundNodeEmptyParagraph,\n } = getNodeCloseToPoint({\n anchorElem,\n editor,\n fuzzy: true,\n horizontalOffset: -distanceFromScrollerElem,\n point: new Point(event.x, event.y),\n startIndex: getCurrentIndex(topLevelNodeKeys.length),\n useEdgeAsDefault: true,\n verbose: true,\n })\n\n prevIndex = foundAtIndex\n\n const targetLineElem = targetLineRef.current\n // targetBlockElem === null shouldn't happen\n if (targetBlockElem === null || targetLineElem === null) {\n return false\n }\n\n // Always prevent default and set dropEffect during drag to maintain the move cursor\n event.preventDefault()\n event.dataTransfer!.dropEffect = 'move'\n\n if (draggableBlockElem !== targetBlockElem) {\n const { isBelow, willStayInSamePosition } = setTargetLine(\n editorConfig?.admin?.hideGutter ? '0px' : 'var(--spacer-5)',\n blockHandleHorizontalOffset +\n (editorConfig?.admin?.hideGutter\n ? (menuRef?.current?.getBoundingClientRect()?.width ?? 0)\n : -(menuRef?.current?.getBoundingClientRect()?.width ?? 0)),\n targetLineElem,\n targetBlockElem,\n lastTargetBlock!,\n pageY,\n anchorElem,\n event,\n debugHighlightRef,\n isFoundNodeEmptyParagraph,\n )\n\n if (!willStayInSamePosition) {\n setLastTargetBlock({\n boundingBox: targetBlockElem.getBoundingClientRect(),\n elem: targetBlockElem,\n isBelow,\n })\n }\n } else if (lastTargetBlock?.elem) {\n hideTargetLine(targetLineElem, lastTargetBlock.elem)\n setLastTargetBlock({\n boundingBox: targetBlockElem.getBoundingClientRect(),\n elem: targetBlockElem,\n isBelow: false,\n })\n }\n\n return true\n }\n\n function onDrop(event: DragEvent): boolean {\n if (!isDraggingBlockRef.current) {\n return false\n }\n const [isFileTransfer] = eventFiles(event)\n if (isFileTransfer) {\n return false\n }\n const { dataTransfer, pageY, target } = event\n const dragData = dataTransfer?.getData(DRAG_DATA_FORMAT) || ''\n\n editor.update(() => {\n const draggedNode = $getNodeByKey(dragData)\n if (!draggedNode) {\n return false\n }\n if (!isHTMLElement(target)) {\n return false\n }\n const distanceFromScrollerElem = calculateDistanceFromScrollerElem(\n scrollerElem,\n event.pageX,\n event.pageY,\n target,\n 100,\n 50,\n )\n\n const { blockElem: targetBlockElem, isFoundNodeEmptyParagraph } = getNodeCloseToPoint({\n anchorElem,\n editor,\n fuzzy: true,\n horizontalOffset: -distanceFromScrollerElem,\n point: new Point(event.x, event.y),\n useEdgeAsDefault: true,\n })\n\n if (!targetBlockElem) {\n return false\n }\n const targetNode = $getNearestNodeFromDOMNode(targetBlockElem)\n if (!targetNode) {\n return false\n }\n if (targetNode === draggedNode) {\n return true\n }\n\n const { height: targetBlockElemHeight, top: targetBlockElemTop } =\n getBoundingClientRectWithoutTransform(targetBlockElem)\n\n const mouseY = pageY\n const isBelow = mouseY >= targetBlockElemTop + targetBlockElemHeight / 2 + window.scrollY\n\n if (!isFoundNodeEmptyParagraph) {\n if (isBelow) {\n // below targetBlockElem\n targetNode.insertAfter(draggedNode)\n } else {\n // above targetBlockElem\n targetNode.insertBefore(draggedNode)\n }\n } else {\n //\n targetNode.insertBefore(draggedNode)\n targetNode.remove()\n }\n\n /*\n if (pageY >= targetBlockElemTop + targetBlockElemHeight / 2) {\n targetNode.insertAfter(draggedNode)\n } else {\n targetNode.insertBefore(draggedNode)\n }*/\n if (draggableBlockElem !== null) {\n setDraggableBlockElem(null)\n }\n\n // find all previous elements with lexical-block-highlighter class and remove them\n const allPrevHighlighters = document.querySelectorAll('.lexical-block-highlighter')\n allPrevHighlighters.forEach((highlighter) => {\n highlighter.remove()\n })\n\n const newInsertedElem = editor.getElementByKey(draggedNode.getKey())\n const highlightTimer = setTimeout(() => {\n // add new temp html element to newInsertedElem with the same height and width and the class block-selected\n // to highlight the new inserted element\n const newInsertedElemRect = newInsertedElem?.getBoundingClientRect()\n if (!newInsertedElemRect) {\n return\n }\n const highlightElem = document.createElement('div')\n highlightElem.className = 'lexical-block-highlighter'\n\n highlightElem.style.backgroundColor = 'var(--theme-elevation-1000'\n highlightElem.style.transition = 'opacity 0.5s ease-in-out'\n highlightElem.style.zIndex = '1'\n highlightElem.style.pointerEvents = 'none'\n highlightElem.style.boxSizing = 'border-box'\n highlightElem.style.borderRadius = '4px'\n highlightElem.style.position = 'absolute'\n document.body.appendChild(highlightElem)\n\n highlightElem.style.opacity = '0.1'\n\n highlightElem.style.height = `${newInsertedElemRect.height + 8}px`\n highlightElem.style.width = `${newInsertedElemRect.width + 8}px`\n highlightElem.style.top = `${newInsertedElemRect.top + window.scrollY - 4}px`\n highlightElem.style.left = `${newInsertedElemRect.left - 4}px`\n\n const fadeTimer = setTimeout(() => {\n highlightElem.style.opacity = '0'\n const removeTimer = setTimeout(() => {\n highlightElem.remove()\n }, 500)\n highlightTimersRef.current.push(removeTimer)\n }, 1000)\n highlightTimersRef.current.push(fadeTimer)\n }, 120)\n highlightTimersRef.current.push(highlightTimer)\n })\n\n return true\n }\n\n // register onDragover event listeners:\n document.addEventListener('dragover', onDragover)\n // register onDrop event listeners:\n document.addEventListener('drop', onDrop)\n\n return () => {\n document.removeEventListener('dragover', onDragover)\n document.removeEventListener('drop', onDrop)\n highlightTimersRef.current.forEach(clearTimeout)\n highlightTimersRef.current = []\n }\n }, [\n scrollerElem,\n blockHandleHorizontalOffset,\n anchorElem,\n editor,\n lastTargetBlock,\n draggableBlockElem,\n editorConfig?.admin?.hideGutter,\n ])\n\n function onDragStart(event: ReactDragEvent<HTMLButtonElement>): void {\n const dataTransfer = event.dataTransfer\n if (!dataTransfer || !draggableBlockElem) {\n return\n }\n setDragImage(dataTransfer, draggableBlockElem)\n dataTransfer.effectAllowed = 'move'\n let nodeKey = ''\n editor.update(() => {\n const node = $getNearestNodeFromDOMNode(draggableBlockElem)\n if (node) {\n nodeKey = node.getKey()\n }\n })\n isDraggingBlockRef.current = true\n dataTransfer.setData(DRAG_DATA_FORMAT, nodeKey)\n }\n\n function onDragEnd(): void {\n isDraggingBlockRef.current = false\n if (lastTargetBlock?.elem) {\n hideTargetLine(targetLineRef.current, lastTargetBlock?.elem)\n }\n }\n\n return createPortal(\n <React.Fragment>\n <button\n aria-label=\"Drag to move\"\n className=\"icon draggable-block-menu\"\n draggable\n onDragEnd={onDragEnd}\n onDragStart={onDragStart}\n ref={menuRef}\n type=\"button\"\n >\n <div className={isEditable ? 'icon' : ''} />\n </button>\n <div className=\"draggable-block-target-line\" ref={targetLineRef} />\n <div className=\"debug-highlight\" ref={debugHighlightRef} />\n </React.Fragment>,\n anchorElem,\n )\n}\n\nexport function DraggableBlockPlugin({\n anchorElem = document.body,\n}: {\n anchorElem?: HTMLElement\n}): React.ReactElement {\n const [editor] = useLexicalComposerContext()\n return useDraggableBlockMenu(editor, anchorElem, editor._editable)\n}\n", "'use client'\nimport { getCollapsedMargins } from '../utils/getCollapsedMargins.js'\nconst TARGET_LINE_HALF_HEIGHT = 0\nconst TEXT_BOX_HORIZONTAL_PADDING = -24\nconst DEBUG = false\n\nlet animationTimer = 0\n\nexport function setTargetLine(\n offsetWidth: string,\n offsetLeft: number,\n targetLineElem: HTMLElement,\n targetBlockElem: HTMLElement,\n lastTargetBlock: {\n boundingBox?: DOMRect\n elem: HTMLElement | null\n isBelow: boolean\n },\n mouseY: number,\n anchorElem: HTMLElement,\n event: DragEvent,\n debugHighlightRef: React.RefObject<HTMLDivElement | null>,\n isFoundNodeEmptyParagraph: boolean = false,\n) {\n const { height: targetBlockElemHeight, top: targetBlockElemTop } =\n targetBlockElem.getBoundingClientRect() // used to be getBoundingClientRectWithoutTransform. Not sure what's better, but the normal getBoundingClientRect seems to work fine\n const { top: anchorTop, width: anchorWidth } = anchorElem.getBoundingClientRect()\n\n const { marginBottom, marginTop } = getCollapsedMargins(targetBlockElem)\n let lineTop = targetBlockElemTop\n\n const isBelow = mouseY >= targetBlockElemTop + targetBlockElemHeight / 2 + window.scrollY\n\n let willStayInSamePosition = false\n\n /**\n * Do not run any transform or changes if the actual new line position would be the same (even if it's now inserted BEFORE rather than AFTER - position would still be the same)\n * This prevents unnecessary flickering.\n *\n * We still need to let it run even if the position (IGNORING the transform) would not change, as the transform animation is not finished yet. This is what animationTimer does. Otherwise, the positioning will be inaccurate\n */\n if (lastTargetBlock?.elem) {\n if (targetBlockElem !== lastTargetBlock?.elem) {\n if (\n isBelow &&\n lastTargetBlock?.elem &&\n lastTargetBlock?.elem === targetBlockElem.nextElementSibling\n ) {\n animationTimer++\n\n if (animationTimer < 200) {\n willStayInSamePosition = true\n }\n } else if (\n !isBelow &&\n lastTargetBlock?.elem &&\n lastTargetBlock?.elem === targetBlockElem.previousElementSibling\n ) {\n animationTimer++\n if (animationTimer < 200) {\n willStayInSamePosition = true\n }\n }\n } else {\n animationTimer++\n\n const lastBoundingBoxPosition = lastTargetBlock?.boundingBox?.y\n const currentBoundingBoxPosition = targetBlockElem.getBoundingClientRect().y\n\n if (\n (isBelow === lastTargetBlock?.isBelow &&\n lastBoundingBoxPosition === currentBoundingBoxPosition) ||\n animationTimer < 200\n ) {\n willStayInSamePosition = false\n }\n }\n }\n if (willStayInSamePosition) {\n return {\n isBelow,\n willStayInSamePosition,\n }\n }\n\n /**\n * Paragraphs need no isBelow/above handling,\n */\n if (!isFoundNodeEmptyParagraph) {\n //if (!isFoundNodeEmptyParagraph) {\n if (isBelow) {\n // below targetBlockElem\n lineTop += targetBlockElemHeight + marginBottom / 2\n } else {\n // above targetBlockElem\n lineTop -= marginTop / 2\n }\n } else {\n lineTop += targetBlockElemHeight / 2\n }\n\n let targetElemTranslate2 = 0\n\n if (!isFoundNodeEmptyParagraph) {\n if (isBelow) {\n targetElemTranslate2 = -TARGET_LINE_HALF_HEIGHT\n } else {\n targetElemTranslate2 = TARGET_LINE_HALF_HEIGHT\n }\n }\n\n const top = lineTop - anchorTop + targetElemTranslate2\n\n const left = TEXT_BOX_HORIZONTAL_PADDING - offsetLeft\n\n targetLineElem.style.width = `calc(${anchorWidth}px - ${offsetWidth} - var(--spacer-5))`\n targetLineElem.style.opacity = '.8'\n\n // if (DEBUG) {\n // //targetBlockElem.style.border = '3px solid red'\n // highlightElemOriginalPosition(debugHighlightRef, targetBlockElem, anchorElem)\n // }\n\n targetLineElem.style.transform = `translate(${left}px, calc(${top}px - ${'2px'}))`\n\n /**\n * Properly reset previous targetBlockElem styles\n */\n if (lastTargetBlock?.elem) {\n lastTargetBlock.elem.style.opacity = ''\n\n if (lastTargetBlock?.elem === targetBlockElem) {\n if (isBelow) {\n lastTargetBlock.elem.style.marginTop = ''\n } else {\n lastTargetBlock.elem.style.marginBottom = ''\n }\n } else {\n lastTargetBlock.elem.style.marginBottom = ''\n lastTargetBlock.elem.style.marginTop = ''\n }\n }\n\n animationTimer = 0\n return {\n isBelow,\n willStayInSamePosition,\n }\n}\n", "/* eslint-disable jsx-a11y/click-events-have-key-events */\n'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { $createParagraphNode, $getRoot } from 'lexical'\nimport React from 'react'\n\nimport './index.css'\nimport { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js'\nconst baseClass = 'insert-paragraph-at-end'\n\nexport const InsertParagraphAtEndPlugin: React.FC = () => {\n const [editor] = useLexicalComposerContext()\n const { editorConfig } = useEditorConfigContext()\n\n if (editorConfig?.admin?.hideInsertParagraphAtEnd) {\n return null\n }\n\n const onClick = () => {\n editor.update(() => {\n const paragraphNode = $createParagraphNode()\n $getRoot().append(paragraphNode)\n paragraphNode.select()\n })\n }\n\n return (\n // TODO: convert to button\n <div\n aria-label=\"Insert Paragraph\"\n className={baseClass}\n onClick={onClick}\n role=\"button\"\n tabIndex={0}\n >\n <div className={`${baseClass}-inside`}>\n <span>+</span>\n </div>\n </div>\n )\n}\n", "'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport * as React from 'react'\n\nimport { registerMarkdownShortcuts } from '../../../packages/@lexical/markdown/MarkdownShortcuts.js'\nimport { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js'\n\nexport const MarkdownShortcutPlugin: React.FC = () => {\n const { editorConfig } = useEditorConfigContext()\n const [editor] = useLexicalComposerContext()\n\n React.useEffect(() => {\n return registerMarkdownShortcuts(editor, editorConfig.features.markdownTransformers ?? [])\n }, [editor, editorConfig.features.markdownTransformers])\n\n return null\n}\n", "'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useEffect } from 'react'\n\nimport { useRichTextView } from '../../../field/RichTextViewProvider.js'\nimport { clearEditorNodeViews, registerEditorNodeViews } from '../../nodes/index.js'\n\nexport function NodeViewOverridePlugin(): null {\n const [editor] = useLexicalComposerContext()\n const { currentView, views } = useRichTextView()\n\n useEffect(() => {\n if (!views) {\n return\n }\n\n if (currentView === 'default') {\n if (views.default) {\n registerEditorNodeViews(editor, views.default?.nodes)\n } else {\n clearEditorNodeViews(editor)\n }\n } else if (views[currentView]) {\n clearEditorNodeViews(editor)\n registerEditorNodeViews(editor, views[currentView]?.nodes)\n }\n }, [editor, views, currentView])\n\n return null\n}\n", "import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { $getSelection, $isRangeSelection, RootNode } from 'lexical'\nimport { useEffect } from 'react'\n\n/**\n * By default, Lexical throws an error if the selection ends in deleted nodes.\n * This is very aggressive considering there are reasons why this can happen\n * outside of Payload's control (custom features or conflicting features, for example).\n * In the case of selections on nonexistent nodes, this plugin moves the selection to\n * the end of the editor and displays a warning instead of an error.\n */\nexport function NormalizeSelectionPlugin() {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n return editor.registerNodeTransform(RootNode, (root) => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode()\n const focusNode = selection.focus.getNode()\n if (!anchorNode.isAttached() || !focusNode.isAttached()) {\n root.selectEnd()\n // eslint-disable-next-line no-console\n console.warn(\n 'updateEditor: selection has been moved to the end of the editor because the previously selected nodes have been removed and ' +\n \"selection wasn't moved to another node. Ensure selection changes after removing/replacing a selected node.\",\n )\n }\n }\n return false\n })\n }, [editor])\n\n return null\n}\n", "import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { $getSelection, COMMAND_PRIORITY_LOW, SELECT_ALL_COMMAND } from 'lexical'\nimport { useEffect } from 'react'\n\n/**\n * Allows to select inputs with `ctrl+a` or `cmd+a`.\n * Required because Lexical preventDefault the event.\n * see: https://github.com/payloadcms/payload/issues/6871\n */\nexport function SelectAllPlugin() {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n return editor.registerCommand(\n SELECT_ALL_COMMAND,\n () => {\n const selection = $getSelection()\n if (selection) {\n return false\n }\n const activeElement = document.activeElement\n if (activeElement instanceof HTMLInputElement) {\n activeElement.select()\n }\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n }, [editor])\n\n return null\n}\n", "'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useTranslation } from '@payloadcms/ui'\nimport { useCallback, useMemo, useState } from 'react'\nimport * as React from 'react'\nimport * as ReactDOM from 'react-dom'\n\nimport type {\n SlashMenuGroup,\n SlashMenuGroupInternal,\n SlashMenuItemInternal,\n SlashMenuItem as SlashMenuItemType,\n} from './LexicalTypeaheadMenuPlugin/types.js'\n\nimport { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js'\nimport './index.css'\nimport { LexicalTypeaheadMenuPlugin } from './LexicalTypeaheadMenuPlugin/index.js'\nimport { useMenuTriggerMatch } from './useMenuTriggerMatch.js'\n\nconst baseClass = 'slash-menu-popup'\n\nfunction SlashMenuItem({\n isSelected,\n item,\n onClick,\n onMouseEnter,\n ref,\n}: {\n index: number\n isSelected: boolean\n item: SlashMenuItemInternal\n onClick: () => void\n onMouseEnter: () => void\n ref?: React.Ref<HTMLButtonElement>\n}) {\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n const { i18n } = useTranslation<{}, string>()\n\n let className = `${baseClass}__item ${baseClass}__item-${item.key}`\n if (isSelected) {\n className += ` ${baseClass}__item--selected`\n }\n\n let title = item.key\n if (item.label) {\n title =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n // Crop title to max. 25 characters\n if (title.length > 25) {\n title = title.substring(0, 25) + '...'\n }\n\n return (\n <button\n aria-selected={isSelected}\n className={className}\n id={baseClass + '__item-' + item.key}\n key={item.key}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n ref={ref}\n role=\"option\"\n tabIndex={-1}\n type=\"button\"\n >\n {item?.Icon && <item.Icon />}\n\n <span className={`${baseClass}__item-text`}>{title}</span>\n </button>\n )\n}\n\nexport function SlashMenuPlugin({\n anchorElem = document.body,\n}: {\n anchorElem?: HTMLElement\n}): React.ReactElement {\n const [editor] = useLexicalComposerContext()\n const [queryString, setQueryString] = useState<null | string>(null)\n const { editorConfig } = useEditorConfigContext()\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n const checkForTriggerMatch = useMenuTriggerMatch('/', {\n minLength: 0,\n })\n\n const getDynamicItems = useCallback(() => {\n let groupWithItems: Array<SlashMenuGroup> = []\n\n for (const dynamicItem of editorConfig.features.slashMenu.dynamicGroups) {\n if (queryString) {\n const dynamicGroupWithItems = dynamicItem({\n editor,\n queryString,\n })\n groupWithItems = groupWithItems.concat(dynamicGroupWithItems)\n }\n }\n\n return groupWithItems\n }, [editor, queryString, editorConfig?.features])\n\n const groups: SlashMenuGroup[] = useMemo(() => {\n let groupsWithItems: SlashMenuGroup[] = []\n for (const groupWithItem of editorConfig?.features.slashMenu.groups ?? []) {\n groupsWithItems.push(groupWithItem)\n }\n\n if (queryString) {\n // Normalize query string for flexible matching (remove spaces, hyphens, underscores)\n const normalizedQuery = queryString.toLowerCase().replace(/[\\s\\-_]/g, '')\n\n // Filter current groups first\n // @ts-expect-error - TODO: fix this\n groupsWithItems = groupsWithItems.map((group) => {\n const filteredItems = group.items.filter((item) => {\n let itemTitle = item.key\n if (item.label) {\n itemTitle =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n\n if (new RegExp(queryString, 'gi').exec(itemTitle)) {\n return true\n }\n\n // Try normalized match (allows \"nestedcontent\" to match \"Nested Content\")\n const normalizedTitle = itemTitle.toLowerCase().replace(/[\\s\\-_]/g, '')\n if (normalizedTitle.includes(normalizedQuery)) {\n return true\n }\n\n if (item.keywords != null) {\n return item.keywords.some((keyword) => {\n if (new RegExp(queryString, 'gi').exec(keyword)) {\n return true\n }\n const normalizedKeyword = keyword.toLowerCase().replace(/[\\s\\-_]/g, '')\n return normalizedKeyword.includes(normalizedQuery)\n })\n }\n return false\n })\n if (filteredItems.length) {\n return {\n ...group,\n items: filteredItems,\n }\n }\n return null\n })\n\n groupsWithItems = groupsWithItems.filter((group) => group != null)\n\n // Now add dynamic groups\n const dynamicItemGroups = getDynamicItems()\n\n // merge dynamic items into groups\n for (const dynamicGroup of dynamicItemGroups) {\n // 1. find the group with the same name or create new one\n let group = groupsWithItems.find((group) => group.key === dynamicGroup.key)\n if (!group) {\n group = {\n ...dynamicGroup,\n items: [],\n }\n } else {\n groupsWithItems = groupsWithItems.filter((group) => group.key !== dynamicGroup.key)\n }\n\n // 2. Add items to group items array and add to sanitized.slashMenu.groupsWithItems\n if (group?.items?.length) {\n group.items = group.items.concat(group.items)\n }\n groupsWithItems.push(group)\n }\n }\n\n return groupsWithItems\n }, [\n queryString,\n editorConfig?.features.slashMenu.groups,\n getDynamicItems,\n featureClientSchemaMap,\n i18n,\n schemaPath,\n ])\n\n return (\n <LexicalTypeaheadMenuPlugin\n anchorElem={anchorElem}\n groups={groups as SlashMenuGroupInternal[]}\n menuRenderFn={(\n anchorElementRef,\n { selectedItemKey, selectItemAndCleanUp, setSelectedItemKey },\n ) =>\n anchorElementRef.current && groups.length\n ? ReactDOM.createPortal(\n <div className={baseClass} data-theme=\"dark\">\n {groups.map((group) => {\n let groupTitle = group.key\n if (group.label && featureClientSchemaMap) {\n groupTitle =\n typeof group.label === 'function'\n ? group.label({ featureClientSchemaMap, i18n, schemaPath })\n : group.label\n }\n\n return (\n <div\n className={`${baseClass}__group ${baseClass}__group-${group.key}`}\n key={group.key}\n >\n <div className={`${baseClass}__group-title`}>{groupTitle}</div>\n {group.items.map((item, oi: number) => (\n <SlashMenuItem\n index={oi}\n isSelected={selectedItemKey === item.key}\n item={item as SlashMenuItemInternal}\n key={item.key}\n onClick={() => {\n setSelectedItemKey(item.key)\n selectItemAndCleanUp(item)\n }}\n onMouseEnter={() => {\n setSelectedItemKey(item.key)\n }}\n ref={(el) => {\n ;(item as SlashMenuItemInternal).ref = { current: el }\n }}\n />\n ))}\n </div>\n )\n })}\n </div>,\n anchorElementRef.current,\n )\n : null\n }\n onQueryChange={setQueryString}\n triggerFn={checkForTriggerMatch}\n />\n )\n}\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useCallback } from 'react'\n\nimport { PUNCTUATION } from './LexicalTypeaheadMenuPlugin/index.js'\n\nexport type TriggerFn = ({\n editor,\n query,\n}: {\n editor: LexicalEditor\n /** The query string is the POTENTIAL trigger AND the text after the trigger text. */\n query: string\n}) => MenuTextMatch | null\n\nexport type MenuTextMatch = {\n leadOffset: number\n matchingString: string\n replaceableString: string\n}\n\n/**\n * Returns a function which checks if the trigger (e.g. '/') is present in the query and, if so, returns the matching string (text after the trigger)\n */\nexport function useMenuTriggerMatch(\n /**\n * Text which triggers the menu. Everything after this text will be used as the query.\n */\n trigger: string,\n { maxLength = 75, minLength = 1 }: { maxLength?: number; minLength?: number },\n): TriggerFn {\n return useCallback(\n ({ query }) => {\n const validChars = '[^' + trigger + PUNCTUATION + '\\\\s]'\n const TypeaheadTriggerRegex = new RegExp(\n '(^|\\\\s|\\\\()(' +\n '[' +\n trigger +\n ']' +\n '((?:' +\n validChars +\n '){0,' +\n maxLength +\n '})' +\n ')$',\n )\n const match = TypeaheadTriggerRegex.exec(query)\n if (match !== null) {\n const maybeLeadingWhitespace = match[1]!\n\n /**\n * matchingString is only the text AFTER the trigger text. (So everything after the /)\n */\n const matchingString = match[3]!\n\n if (matchingString.length >= minLength) {\n return {\n leadOffset: match.index + maybeLeadingWhitespace.length,\n matchingString,\n replaceableString: match[2]!, // replaceableString is the trigger text + the matching string\n }\n }\n }\n return null\n },\n [maxLength, minLength, trigger],\n )\n}\n", "'use client'\nimport type { TextFormatType } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { TEXT_TYPE_TO_FORMAT, TextNode } from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { SanitizedClientFeatures } from '../../../features/typesClient.js'\n\nexport function TextPlugin({ features }: { features: SanitizedClientFeatures }) {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n const disabledFormats = getDisabledFormats(features.enabledFormats)\n if (disabledFormats.length === 0) {\n return\n }\n // Ideally override the TextNode with our own TextNode (changing its setFormat or toggleFormat methods),\n // would be more performant. If we find a noticeable perf regression we can switch to that option.\n // Overriding the FORMAT_TEXT_COMMAND and PASTE_COMMAND commands is not an option I considered because\n // there might be other forms of mutation that we might not be considering. For example:\n // browser extensions or Payload/Lexical plugins that have their own commands.\n return editor.registerNodeTransform(TextNode, (textNode) => {\n disabledFormats.forEach((disabledFormat) => {\n if (textNode.hasFormat(disabledFormat)) {\n textNode.toggleFormat(disabledFormat)\n }\n })\n })\n }, [editor, features])\n\n return null\n}\n\nfunction getDisabledFormats(enabledFormats: TextFormatType[]): TextFormatType[] {\n const allFormats = Object.keys(TEXT_TYPE_TO_FORMAT) as TextFormatType[]\n const enabledSet = new Set(enabledFormats)\n\n return allFormats.filter((format) => !enabledSet.has(format))\n}\n", "'use client'\nimport type { JSX } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { ContentEditable } from '@lexical/react/LexicalContentEditable.js'\nimport { useTranslation } from '@payloadcms/ui'\n\nimport './ContentEditable.css'\n\nimport * as React from 'react'\n\nimport type { SanitizedClientEditorConfig } from '../config/types.js'\n\nexport function LexicalContentEditable({\n className,\n editorConfig,\n}: {\n className?: string\n editorConfig: SanitizedClientEditorConfig\n}): JSX.Element {\n const { t } = useTranslation<{}, string>()\n const [_, { getTheme }] = useLexicalComposerContext()\n const theme = getTheme()\n\n return (\n <ContentEditable\n aria-placeholder={t('lexical:general:placeholder')}\n className={className ?? 'ContentEditable__root'}\n placeholder={\n <p className={theme?.placeholder}>\n {editorConfig?.admin?.placeholder ?? t('lexical:general:placeholder')}\n </p>\n }\n />\n )\n}\n", "'use client'\nimport { ChevronIcon, Popup, PopupList } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { useRichTextView } from './RichTextViewProvider.js'\nimport './ViewSelector.css'\n\nexport function ViewSelector(): null | React.ReactElement {\n const { currentView, setCurrentView, views } = useRichTextView()\n\n // Don't show if no views or only default exists\n if (!views || Object.keys(views).length === 0) {\n return null\n }\n\n const viewKeys = Object.keys(views)\n const hasNonDefaultViews = viewKeys.some((key) => key !== 'default')\n\n // If only 'default' exists, no need to show selector\n if (!hasNonDefaultViews) {\n return null\n }\n\n // Build list of available views\n const allViews = ['default', ...viewKeys.filter((key) => key !== 'default')]\n\n const currentViewLabel = currentView.charAt(0).toUpperCase() + currentView.slice(1)\n\n return (\n <div className=\"lexical-view-selector\">\n <Popup\n button={\n <button className=\"lexical-view-selector__button\" type=\"button\">\n <span className=\"lexical-view-selector__label\">{currentViewLabel}</span>\n <ChevronIcon className=\"lexical-view-selector__icon\" />\n </button>\n }\n buttonType=\"custom\"\n horizontalAlign=\"left\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {allViews.map((viewName) => {\n const viewLabel = viewName.charAt(0).toUpperCase() + viewName.slice(1)\n\n return (\n <PopupList.Button\n active={viewName === currentView}\n disabled={viewName === currentView}\n key={viewName}\n onClick={() => {\n setCurrentView?.(viewName)\n close()\n }}\n >\n {viewLabel}\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"large\"\n />\n </div>\n )\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["BulkUploadProvider", "FieldDescription", "FieldError", "FieldLabel", "isFieldRTL", "RenderCustomComponent", "useConfig", "useEditDepth", "useEffectEvent", "useField", "useLocale", "mergeFieldStyles", "dequal", "React", "useCallback", "useEffect", "useMemo", "useState", "ErrorBoundary", "LexicalComposer", "useEditDepth", "React", "useMemo", "c", "_c", "useLexicalComposerContext", "LexicalErrorBoundary", "HistoryPlugin", "OnChangePlugin", "RichTextPlugin", "useLexicalEditable", "BLUR_COMMAND", "COMMAND_PRIORITY_LOW", "FOCUS_COMMAND", "React", "useEffect", "useState", "EditorPlugin", "anchorElem", "clientProps", "plugin", "position", "Component", "_jsx", "c", "_c", "copyToClipboard", "useLexicalComposerContext", "objectKlassEquals", "ObjectID", "$getSelection", "$isNodeSelection", "COMMAND_PRIORITY_LOW", "COPY_COMMAND", "useEffect", "changeIds", "node", "fields", "id", "default", "toHexString", "children", "child", "ClipboardPlugin", "$", "editor", "t0", "t1", "registerCommand", "event", "selection", "serializedNode", "getNodes", "exportJSON", "deepCloneSerializedNode", "JSON", "parse", "stringify", "lexicalClipboardData", "namespace", "_config", "nodes", "stringifiedLexicalClipboardData", "catch", "_temp", "ClipboardEvent", "then", "clipboardData", "Error", "lexicalStringified", "getData", "lexical", "node_0", "stringified", "setData", "error_0", "error", "c", "_c", "useLexicalComposerContext", "$findMatchingParent", "mergeRegister", "$createNodeSelection", "$getEditor", "$getNearestNodeFromDOMNode", "$getSelection", "$isDecoratorNode", "$isElementNode", "$isLineBreakNode", "$isNodeSelection", "$isRangeSelection", "$isRootOrShadowRoot", "$isTextNode", "$setSelection", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_ARROW_DOWN_COMMAND", "KEY_ARROW_UP_COMMAND", "KEY_BACKSPACE_COMMAND", "KEY_DELETE_COMMAND", "SELECTION_CHANGE_COMMAND", "useEffect", "DecoratorPlugin", "$", "editor", "$onDelete", "t0", "t1", "_temp3", "_temp4", "_temp6", "_temp8", "event_2", "selection_1", "selection", "event", "preventDefault", "getNodes", "nextSibling", "element_0", "$selectDecorator", "element", "firstDescendant", "INTERNAL_$isBlock", "block_0", "block", "lastPoint", "isBackward", "lastNode", "_temp7", "lastSelectedBlock", "getNextSibling", "nextBlock", "nextBlockElement", "node_1", "event_1", "selection_0", "prevSibling", "lastDescendant", "selectStart", "firstPoint", "firstNode", "_temp5", "firstSelectedBlock", "getPreviousSibling", "prevBlock", "prevBlockElement", "node_0", "decorator_0", "$getSelectedDecorator", "document", "decorator", "event_0", "querySelector", "classList", "target", "isInteractive", "_temp2", "_temp", "node", "$getDecoratorByMouseEvent", "nodes", "getKey", "scrollIntoView", "behavior", "firstChild", "isLeafElement", "findLaterSiblingBlock", "current", "findFirstSiblingBlock", "useLexicalComposerContext", "$createParagraphNode", "isHTMLElement", "React", "useCallback", "useEffect", "useRef", "useState", "createPortal", "calculateDistanceFromScrollerElem", "scrollerElem", "pageX", "pageY", "target", "horizontalBuffer", "verticalBuffer", "distanceFromScrollerElem", "contains", "bottom", "left", "right", "top", "getBoundingClientRect", "adjustedTop", "window", "scrollY", "adjustedBottom", "$getNodeByKey", "getBoundingClientRectWithoutTransform", "elem", "rect", "getBoundingClientRect", "transformValue", "getComputedStyle", "getPropertyValue", "lastNumberOfTransformValue", "split", "pop", "y", "Number", "replace", "getCollapsedMargins", "elem", "getMargin", "element", "margin", "parseFloat", "window", "getComputedStyle", "marginBottom", "marginTop", "prevElemSiblingMarginBottom", "previousElementSibling", "nextElemSiblingMarginTop", "nextElementSibling", "collapsedTopMargin", "Math", "max", "$getRoot", "getTopLevelNodeKeys", "editor", "getEditorState", "read", "getChildrenKeys", "Downward", "Upward", "Indeterminate", "cache", "props", "result", "isPointClose", "previous", "current", "threshold", "dx", "x", "dy", "y", "getNodeCloseToPoint", "anchorElem", "cache_threshold", "editor", "fuzzy", "horizontalOffset", "point", "startIndex", "useEdgeAsDefault", "anchorElementRect", "getBoundingClientRect", "topLevelNodeKeys", "getTopLevelNodeKeys", "closestBlockElem", "blockElem", "blockNode", "distance", "Infinity", "foundAtIndex", "isFoundNodeEmptyParagraph", "getEditorState", "read", "firstNode", "getElementByKey", "lastNode", "length", "firstNodeRect", "lastNodeRect", "getBoundingClientRectWithoutTransform", "top", "$getNodeByKey", "bottom", "index", "direction", "key", "elem", "Point", "domRect", "Rect", "fromDOMRect", "marginBottom", "marginTop", "getCollapsedMargins", "rect", "generateNewRect", "left", "right", "isOnBottomSide", "isOnTopSide", "distanceFromPoint", "getType", "getTextContent", "returnEmptyParagraphs", "isOnHandleElement", "element", "handleElementClassName", "closest", "replacedElements", "doesLineHeightAffectElement", "htmlElem", "includes", "tagName", "offsetHeight", "offsetWidth", "style", "window", "getComputedStyle", "display", "position", "visibility", "opacity", "setHandlePosition", "targetElem", "handleElem", "anchorElem", "leftOffset", "style", "opacity", "transform", "targetRect", "getBoundingClientRect", "targetStyle", "window", "getComputedStyle", "floatingElemRect", "anchorElementRect", "top", "some", "classes", "classList", "contains", "firstElementChild", "actualLineHeight", "doesLineHeightAffectElement", "parseInt", "lineHeight", "height", "left", "ADD_BLOCK_MENU_CLASSNAME", "prevIndex", "keysLength", "getCurrentIndex", "useAddBlockHandle", "editor", "anchorElem", "isEditable", "scrollerElem", "editorConfig", "useEditorConfigContext", "blockHandleHorizontalOffset", "menuRef", "setHoveredElement", "useState", "useEffect", "hoveredElement", "onDocumentMouseMove", "event", "target", "isHTMLElement", "distanceFromScrollerElem", "calculateDistanceFromScrollerElem", "isOnHandleElement", "topLevelNodeKeys", "getTopLevelNodeKeys", "_emptyBlockElem", "blockElem", "blockNode", "foundAtIndex", "cache_threshold", "horizontalOffset", "point", "x", "returnEmptyParagraphs", "startIndex", "elem", "document", "addEventListener", "setHandlePosition", "node", "handleAddClick", "useCallback", "hoveredElementToUse", "isEmptyParagraph", "$createParagraphNode", "setTimeout", "newParagraph", "update", "ENABLE_SLASH_MENU_COMMAND", "dispatchCommand", "event_0", "stopPropagation", "preventDefault", "_jsx", "createPortal", "className", "event_1", "onClick", "ref", "type", "AddBlockHandlePlugin", "t0", "t1", "useLexicalComposerContext", "useLexicalComposerContext", "eventFiles", "$getNearestNodeFromDOMNode", "$getNodeByKey", "isHTMLElement", "React", "useEffect", "useRef", "useState", "createPortal", "TARGET_LINE_HALF_HEIGHT", "TEXT_BOX_HORIZONTAL_PADDING", "animationTimer", "setTargetLine", "offsetWidth", "offsetLeft", "targetLineElem", "targetBlockElem", "lastTargetBlock", "mouseY", "anchorElem", "event", "debugHighlightRef", "isFoundNodeEmptyParagraph", "height", "targetBlockElemHeight", "top", "targetBlockElemTop", "getBoundingClientRect", "anchorTop", "width", "anchorWidth", "marginBottom", "marginTop", "getCollapsedMargins", "lineTop", "isBelow", "window", "scrollY", "willStayInSamePosition", "elem", "nextElementSibling", "previousElementSibling", "lastBoundingBoxPosition", "boundingBox", "y", "currentBoundingBoxPosition", "targetElemTranslate2", "TARGET_LINE_HALF_HEIGHT", "left", "TEXT_BOX_HORIZONTAL_PADDING", "style", "opacity", "transform", "DRAGGABLE_BLOCK_MENU_CLASSNAME", "prevIndex", "DRAG_DATA_FORMAT", "keysLength", "getCurrentIndex", "setDragImage", "dataTransfer", "draggableBlockElem", "transform", "setTimeout", "hideTargetLine", "targetLineElem", "lastTargetBlockElem", "style", "marginBottom", "useDraggableBlockMenu", "editor", "anchorElem", "isEditable", "scrollerElem", "menuRef", "useRef", "targetLineRef", "debugHighlightRef", "isDraggingBlockRef", "highlightTimersRef", "useState", "setDraggableBlockElem", "editorConfig", "useEditorConfigContext", "useEffect", "blockHandleHorizontalOffset", "target", "onDocumentMouseMove", "isHTMLElement", "event", "distanceFromScrollerElem", "calculateDistanceFromScrollerElem", "isOnHandleElement", "topLevelNodeKeys", "getTopLevelNodeKeys", "_draggableBlockElem", "blockElem", "foundAtIndex", "isFoundNodeEmptyParagraph", "cache_threshold", "horizontalOffset", "point", "Point", "startIndex", "useEdgeAsDefault", "document", "addEventListener", "setHandlePosition", "onDragover", "event_0", "isFileTransfer", "eventFiles", "pageY", "target_0", "distanceFromScrollerElem_0", "targetBlockElem", "fuzzy", "foundAtIndex_0", "preventDefault", "dropEffect", "isBelow", "willStayInSamePosition", "setTargetLine", "setLastTargetBlock", "boundingBox", "elem", "lastTargetBlock", "onDrop", "event_1", "isFileTransfer_0", "dragData", "update", "$getNodeByKey", "draggedNode", "target_1", "distanceFromScrollerElem_1", "targetBlockElem_0", "targetNode", "$getNearestNodeFromDOMNode", "targetBlockElemHeight", "height", "top", "targetBlockElemTop", "mouseY", "getBoundingClientRectWithoutTransform", "isFoundNodeEmptyParagraph_1", "insertBefore", "allPrevHighlighters", "querySelectorAll", "forEach", "newInsertedElem", "getElementByKey", "newInsertedElemRect", "highlightElem", "className", "backgroundColor", "transition", "zIndex", "pointerEvents", "boxSizing", "borderRadius", "position", "appendChild", "opacity", "width", "window", "removeTimer", "fadeTimer", "highlightTimer", "removeEventListener", "current", "dataTransfer_0", "nodeKey", "node", "onDragEnd", "createPortal", "_jsxs", "draggable", "onDragStart", "ref", "type", "_jsx", "DraggableBlockPlugin", "t0", "t1", "useLexicalComposerContext", "c", "_c", "useLexicalComposerContext", "$createParagraphNode", "$getRoot", "baseClass", "useEditorConfigContext", "$", "_c", "InsertParagraphAtEndPlugin", "editor", "useLexicalComposerContext", "editorConfig", "t0", "_jsx", "className", "onClick", "role", "tabIndex", "children", "_temp", "paragraphNode", "$createParagraphNode", "$getRoot", "append", "c", "_c", "useLexicalComposerContext", "React", "MarkdownShortcutPlugin", "$", "_c", "editorConfig", "useEditorConfigContext", "editor", "useLexicalComposerContext", "t0", "t1", "features", "markdownTransformers", "registerMarkdownShortcuts", "useEffect", "c", "_c", "useLexicalComposerContext", "useEffect", "NodeViewOverridePlugin", "$", "_c", "editor", "useLexicalComposerContext", "currentView", "views", "useRichTextView", "t0", "t1", "default", "registerEditorNodeViews", "nodes", "clearEditorNodeViews", "useEffect", "useLexicalComposerContext", "$getSelection", "$isRangeSelection", "RootNode", "useEffect", "NormalizeSelectionPlugin", "editor", "registerNodeTransform", "root", "selection", "anchorNode", "anchor", "getNode", "focusNode", "focus", "isAttached", "selectEnd", "console", "warn", "useLexicalComposerContext", "$getSelection", "COMMAND_PRIORITY_LOW", "SELECT_ALL_COMMAND", "useEffect", "SelectAllPlugin", "editor", "registerCommand", "activeElement", "document", "HTMLInputElement", "select", "useLexicalComposerContext", "useTranslation", "useCallback", "useMemo", "useState", "ReactDOM", "c", "_c", "useMenuTriggerMatch", "trigger", "t0", "$", "_c", "maxLength", "t1", "minLength", "t2", "undefined", "t3", "t4", "query", "validChars", "PUNCTUATION", "match", "RegExp", "exec", "maybeLeadingWhitespace", "matchingString", "length", "leadOffset", "index", "replaceableString", "baseClass", "useMenuTriggerMatch", "isSelected", "item", "onClick", "onMouseEnter", "ref", "fieldProps", "featureClientSchemaMap", "useEditorConfigContext", "i18n", "useTranslation", "className", "title", "label", "schemaPath", "length", "_jsxs", "id", "role", "tabIndex", "type", "_jsx", "SlashMenuPlugin", "anchorElem", "editor", "useLexicalComposerContext", "editorConfig", "checkForTriggerMatch", "getDynamicItems", "useCallback", "groupWithItems", "queryString", "dynamicItem", "dynamicGroupWithItems", "groups", "groupsWithItems", "groupWithItem", "normalizedQuery", "group", "map", "filteredItems", "itemTitle", "normalizedTitle", "toLowerCase", "keywords", "keyword", "RegExp", "replace", "group_0", "dynamicItemGroups", "dynamicGroup", "group_2", "group_1", "group_3", "anchorElementRef", "menuRenderFn", "selectedItemKey", "selectItemAndCleanUp", "setSelectedItemKey", "group_4", "groupTitle", "index", "item_0", "key", "el", "onQueryChange", "c", "_c", "useLexicalComposerContext", "TEXT_TYPE_TO_FORMAT", "TextNode", "useEffect", "TextPlugin", "t0", "$", "features", "editor", "t1", "enabledFormats", "disabledFormats", "getDisabledFormats", "length", "registerNodeTransform", "textNode", "forEach", "disabledFormat", "hasFormat", "toggleFormat", "t2", "allFormats", "Object", "keys", "enabledSet", "Set", "filter", "format", "has", "c", "_c", "useLexicalComposerContext", "ContentEditable", "useTranslation", "React", "t0", "$", "LexicalContentEditable", "className", "editorConfig", "t", "getTheme", "t1", "t2", "theme", "_jsx", "placeholder", "$", "EditorReadyPlugin", "editor", "useLexicalComposerContext", "t0", "t1", "root", "editable", "registerEditableListener", "el", "useEffect", "LexicalEditor", "props", "_c", "editorConfig", "editorContainerRef", "isSmallWidthViewport", "onChange", "rtl", "useEditorConfigContext", "editorConfigContext", "isEditable", "useLexicalEditable", "useState", "_floatingAnchorElem", "setFloatingAnchorElem", "onRef", "t2", "console", "parentEditor", "handleFocus", "handleBlur", "unregisterFocus", "FOCUS_COMMAND", "COMMAND_PRIORITY_LOW", "BLUR_COMMAND", "unregisterBlur", "t3", "floatingAnchorElem", "_jsxs", "React", "_temp", "children", "className", "dir", "ref", "_temp2", "_jsx", "RichTextPlugin", "features", "contentEditable", "LexicalContentEditable", "ignoreSelectionChange", "editor_0", "tags", "editorState", "Fragment", "DraggableBlockPlugin", "anchorElem", "plugin_1", "plugins", "plugin", "position", "EditorPlugin", "clientProps", "SlashMenuPlugin", "MarkdownShortcutPlugin", "HistoryPlugin", "markdownTransformers", "_temp4", "length", "map", "_temp3", "plugin_0", "plugin_2", "plugin_3", "_temp5", "plugin_4", "NestProviders", "children", "providers", "length", "Component", "_jsx", "slice", "LexicalProvider", "props", "composerKey", "editorConfig", "fieldProps", "isSmallWidthViewport", "onChange", "readOnly", "rtl", "value", "currentView", "views", "useRichTextView", "parentContext", "useEditorConfigContext", "editDepth", "useEditDepth", "editorContainerRef", "useRef", "initialConfig", "useMemo", "Error", "JSON", "stringify", "Array", "isArray", "nodeViews", "nodes", "editable", "editorState", "undefined", "namespace", "lexical", "getEnabledNodes", "onError", "error", "theme", "hasBeenEditable", "current", "effectiveConfig", "editableKey", "LexicalComposer", "EditorConfigProvider", "features", "LexicalEditorComponent", "c", "_c", "ChevronIcon", "Popup", "PopupList", "ViewSelector", "$", "_c", "currentView", "setCurrentView", "views", "useRichTextView", "t0", "t1", "Symbol", "bb0", "viewKeys", "keys", "_temp", "hasNonDefaultViews", "allViews", "_temp2", "filter", "_jsx", "currentViewLabel", "className", "Popup", "children", "button", "type", "ChevronIcon", "horizontalAlign", "render", "t2", "close", "PopupList", "ButtonGroup", "viewLabel", "map", "viewName", "charAt", "Button", "active", "disabled", "onClick", "key_0", "key", "baseClass", "useRichTextView", "RichTextComponent", "props", "editorConfig", "field", "admin", "className", "readOnlyFromAdmin", "description", "localized", "label", "required", "readOnlyFromTopLevelProps", "path", "readOnly", "schemaPath", "validate", "useLocale", "readOnlyFromProps", "locale", "localizationConfig", "config", "localization", "rtl", "isFieldRTL", "fieldLocalized", "isControlledByParent", "validationOptions", "AfterInput", "customComponents", "BeforeInput", "Description", "Error", "Label", "initialValue", "disabled", "setValue", "showError", "value", "memoizedValidate", "isSmallWidthViewport", "setIsSmallWidthViewport", "useState", "disabledFromField", "prevInitialValueRef", "React", "prevValueRef", "rerenderProviderKey", "setRerenderProviderKey", "useEffect", "useRef", "isNextSmallWidthViewport", "updateViewPortWidth", "window", "addEventListener", "removeEventListener", "classes", "editDepth", "useRunDeprioritized", "runDeprioritized", "useCallback", "editorState", "newState", "updateFieldValue", "styles", "useEffectEvent", "initialValue_0", "value_0", "dequal", "current", "handleInitialValueChange", "_jsxs", "view", "style", "_jsx", "FieldLabel", "ViewSelector", "RenderCustomComponent", "CustomComponent", "Fallback", "fallbackRender", "BulkUploadProvider", "onReset", "LexicalProvider", "drawerSlugPrefix", "composerKey", "fieldProps", "handleChange", "onChange", "pathWithEditDepth", "error", "role"]
|
|
7
|
+
}
|