@payloadcms/richtext-lexical 3.0.0-beta.78 → 3.0.0-beta.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cell/index.d.ts +2 -2
- package/dist/cell/index.d.ts.map +1 -1
- package/dist/cell/index.js +5 -5
- package/dist/cell/index.js.map +1 -1
- package/dist/exports/client/Field-QK4IB5HD.js +2 -0
- package/dist/exports/client/Field-QK4IB5HD.js.map +7 -0
- package/dist/exports/client/RelationshipComponent-GYUTPDNG.js +2 -0
- package/dist/exports/client/RelationshipComponent-GYUTPDNG.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/chunk-4EX7W4UX.js +2 -0
- package/dist/exports/client/chunk-4EX7W4UX.js.map +7 -0
- package/dist/exports/client/chunk-E4HH5PS6.js +2 -0
- package/dist/exports/client/chunk-E4HH5PS6.js.map +7 -0
- package/dist/exports/client/chunk-LTR7V74A.js +2 -0
- package/dist/exports/client/chunk-LTR7V74A.js.map +7 -0
- package/dist/exports/client/chunk-SQHN3N6E.js +2 -0
- package/dist/exports/client/chunk-SQHN3N6E.js.map +7 -0
- package/dist/exports/client/chunk-VMCQSR3T.js +3 -0
- package/dist/exports/client/chunk-VMCQSR3T.js.map +7 -0
- package/dist/exports/client/component-6C5JERGA.js +2 -0
- package/dist/exports/client/component-6C5JERGA.js.map +7 -0
- package/dist/exports/client/component-GUWIGB77.js +2 -0
- package/dist/exports/client/component-GUWIGB77.js.map +7 -0
- package/dist/exports/client/component-UQ2BKD5X.js +2 -0
- package/dist/exports/client/component-UQ2BKD5X.js.map +7 -0
- package/dist/exports/client/componentInline-C2XIK5VZ.js +2 -0
- package/dist/exports/client/componentInline-C2XIK5VZ.js.map +7 -0
- package/dist/exports/client/index.d.ts +21 -22
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/server/migrate.d.ts +16 -0
- package/dist/exports/server/migrate.d.ts.map +1 -0
- package/dist/exports/server/migrate.js +17 -0
- package/dist/exports/server/migrate.js.map +1 -0
- package/dist/features/align/client/index.d.ts +5 -0
- package/dist/features/align/client/index.d.ts.map +1 -0
- package/dist/features/align/client/index.js +146 -0
- package/dist/features/align/client/index.js.map +1 -0
- package/dist/features/align/client/toolbarAlignGroup.d.ts +3 -0
- package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -0
- package/dist/features/align/client/toolbarAlignGroup.js +12 -0
- package/dist/features/align/client/toolbarAlignGroup.js.map +1 -0
- package/dist/features/align/server/i18n.d.ts.map +1 -0
- package/dist/features/align/server/i18n.js.map +1 -0
- package/dist/features/align/server/index.d.ts +2 -0
- package/dist/features/align/server/index.d.ts.map +1 -0
- package/dist/features/align/server/index.js +11 -0
- package/dist/features/align/server/index.js.map +1 -0
- package/dist/features/blockquote/client/index.d.ts +5 -0
- package/dist/features/blockquote/client/index.d.ts.map +1 -0
- package/dist/features/blockquote/client/index.js +77 -0
- package/dist/features/blockquote/client/index.js.map +1 -0
- package/dist/features/blockquote/server/i18n.d.ts.map +1 -0
- package/dist/features/blockquote/server/i18n.js.map +1 -0
- package/dist/features/blockquote/server/index.d.ts +7 -0
- package/dist/features/blockquote/server/index.d.ts.map +1 -0
- package/dist/features/blockquote/server/index.js +46 -0
- package/dist/features/blockquote/server/index.js.map +1 -0
- package/dist/features/blocks/client/component/BlockContent.d.ts +22 -0
- package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -0
- package/dist/features/blocks/client/component/BlockContent.js +198 -0
- package/dist/features/blocks/client/component/BlockContent.js.map +1 -0
- package/dist/features/blocks/client/component/FormSavePlugin.d.ts.map +1 -0
- package/dist/features/blocks/client/component/FormSavePlugin.js.map +1 -0
- package/dist/features/blocks/client/component/index.d.ts +11 -0
- package/dist/features/blocks/client/component/index.d.ts.map +1 -0
- package/dist/features/blocks/client/component/index.js +157 -0
- package/dist/features/blocks/client/component/index.js.map +1 -0
- package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts.map +1 -0
- package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +1 -0
- package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -0
- package/dist/features/blocks/client/componentInline/index.js +138 -0
- package/dist/features/blocks/client/componentInline/index.js.map +1 -0
- package/dist/features/blocks/client/index.d.ts +9 -0
- package/dist/features/blocks/client/index.d.ts.map +1 -0
- package/dist/features/blocks/client/index.js +152 -0
- package/dist/features/blocks/client/index.js.map +1 -0
- package/dist/features/blocks/client/nodes/BlocksNode.d.ts +14 -0
- package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -0
- package/dist/features/blocks/client/nodes/BlocksNode.js +52 -0
- package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -0
- package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +25 -0
- package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -0
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js +41 -0
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -0
- package/dist/features/blocks/client/plugin/commands.d.ts.map +1 -0
- package/dist/features/blocks/client/plugin/commands.js.map +1 -0
- package/dist/features/blocks/client/plugin/index.d.ts +6 -0
- package/dist/features/blocks/client/plugin/index.d.ts.map +1 -0
- package/dist/features/blocks/client/plugin/index.js +129 -0
- package/dist/features/blocks/client/plugin/index.js.map +1 -0
- package/dist/features/blocks/server/graphQLPopulationPromise.d.ts +6 -0
- package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -0
- package/dist/features/blocks/server/graphQLPopulationPromise.js +31 -0
- package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -0
- package/dist/features/blocks/server/i18n.d.ts.map +1 -0
- package/dist/features/blocks/server/i18n.js.map +1 -0
- package/dist/features/blocks/server/index.d.ts +8 -0
- package/dist/features/blocks/server/index.d.ts.map +1 -0
- package/dist/features/blocks/server/index.js +162 -0
- package/dist/features/blocks/server/index.js.map +1 -0
- package/dist/features/blocks/server/nodes/BlocksNode.d.ts +38 -0
- package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -0
- package/dist/features/blocks/server/nodes/BlocksNode.js +84 -0
- package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -0
- package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +40 -0
- package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -0
- package/dist/features/blocks/server/nodes/InlineBlocksNode.js +86 -0
- package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -0
- package/dist/features/blocks/server/validate.d.ts +6 -0
- package/dist/features/blocks/server/validate.d.ts.map +1 -0
- package/dist/features/blocks/server/validate.js.map +1 -0
- package/dist/features/converters/html/field/index.js.map +1 -1
- package/dist/features/converters/html/index.d.ts +8 -0
- package/dist/features/converters/html/index.d.ts.map +1 -0
- package/dist/features/converters/html/index.js +8 -0
- package/dist/features/converters/html/index.js.map +1 -0
- package/dist/features/createClientComponent.d.ts +3 -3
- package/dist/features/createClientComponent.d.ts.map +1 -1
- package/dist/features/createClientComponent.js.map +1 -1
- package/dist/features/createFeaturePropComponent.js +1 -1
- package/dist/features/createFeaturePropComponent.js.map +1 -1
- package/dist/features/debug/testRecorder/client/index.d.ts +5 -0
- package/dist/features/debug/testRecorder/client/index.d.ts.map +1 -0
- package/dist/features/debug/testRecorder/client/index.js +13 -0
- package/dist/features/debug/testRecorder/client/index.js.map +1 -0
- package/dist/features/debug/testRecorder/client/plugin/index.d.ts +5 -0
- package/dist/features/debug/testRecorder/client/plugin/index.d.ts.map +1 -0
- package/dist/features/debug/testRecorder/client/plugin/index.js +471 -0
- package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -0
- package/dist/features/debug/testRecorder/server/index.d.ts +2 -0
- package/dist/features/debug/testRecorder/server/index.d.ts.map +1 -0
- package/dist/features/debug/testRecorder/server/index.js +9 -0
- package/dist/features/debug/testRecorder/server/index.js.map +1 -0
- package/dist/features/debug/treeView/client/index.d.ts +5 -0
- package/dist/features/debug/treeView/client/index.d.ts.map +1 -0
- package/dist/features/debug/treeView/client/index.js +13 -0
- package/dist/features/debug/treeView/client/index.js.map +1 -0
- package/dist/features/debug/treeView/client/plugin/index.d.ts +4 -0
- package/dist/features/debug/treeView/client/plugin/index.d.ts.map +1 -0
- package/dist/features/debug/treeView/client/plugin/index.js.map +1 -0
- package/dist/features/debug/treeView/server/index.d.ts +2 -0
- package/dist/features/debug/treeView/server/index.d.ts.map +1 -0
- package/dist/features/debug/treeView/server/index.js +9 -0
- package/dist/features/debug/treeView/server/index.js.map +1 -0
- package/dist/features/experimental_table/client/index.d.ts +2 -0
- package/dist/features/experimental_table/client/index.d.ts.map +1 -0
- package/dist/features/experimental_table/client/index.js +71 -0
- package/dist/features/experimental_table/client/index.js.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts +4 -0
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +605 -0
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts +3 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +327 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts +12 -0
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +181 -0
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts +24 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +103 -0
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -0
- package/dist/features/experimental_table/client/utils/debounce.d.ts.map +1 -0
- package/dist/features/experimental_table/client/utils/debounce.js.map +1 -0
- package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +1 -0
- package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -0
- package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.js +1 -1
- package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/server/index.d.ts +13 -0
- package/dist/features/experimental_table/server/index.d.ts.map +1 -0
- package/dist/features/experimental_table/server/index.js +123 -0
- package/dist/features/experimental_table/server/index.js.map +1 -0
- package/dist/features/format/bold/feature.server.d.ts.map +1 -1
- package/dist/features/format/bold/feature.server.js +1 -3
- package/dist/features/format/bold/feature.server.js.map +1 -1
- package/dist/features/format/inlineCode/feature.server.d.ts.map +1 -1
- package/dist/features/format/inlineCode/feature.server.js +1 -3
- package/dist/features/format/inlineCode/feature.server.js.map +1 -1
- package/dist/features/format/italic/feature.server.d.ts.map +1 -1
- package/dist/features/format/italic/feature.server.js +1 -3
- package/dist/features/format/italic/feature.server.js.map +1 -1
- package/dist/features/format/strikethrough/feature.server.d.ts.map +1 -1
- package/dist/features/format/strikethrough/feature.server.js +1 -3
- package/dist/features/format/strikethrough/feature.server.js.map +1 -1
- package/dist/features/format/subscript/feature.server.d.ts.map +1 -1
- package/dist/features/format/subscript/feature.server.js +1 -3
- package/dist/features/format/subscript/feature.server.js.map +1 -1
- package/dist/features/format/superscript/feature.server.d.ts.map +1 -1
- package/dist/features/format/superscript/feature.server.js +1 -3
- package/dist/features/format/superscript/feature.server.js.map +1 -1
- package/dist/features/format/underline/feature.server.d.ts.map +1 -1
- package/dist/features/format/underline/feature.server.js +1 -3
- package/dist/features/format/underline/feature.server.js.map +1 -1
- package/dist/features/heading/client/index.d.ts +6 -0
- package/dist/features/heading/client/index.d.ts.map +1 -0
- package/dist/features/heading/client/index.js +112 -0
- package/dist/features/heading/client/index.js.map +1 -0
- package/dist/features/heading/server/i18n.d.ts.map +1 -0
- package/dist/features/heading/server/i18n.js.map +1 -0
- package/dist/features/heading/server/index.d.ts +10 -0
- package/dist/features/heading/server/index.d.ts.map +1 -0
- package/dist/features/heading/server/index.js +60 -0
- package/dist/features/heading/server/index.js.map +1 -0
- package/dist/features/horizontalRule/client/component/index.d.ts.map +1 -0
- package/dist/features/horizontalRule/client/component/index.js.map +1 -0
- package/dist/features/horizontalRule/client/index.d.ts +5 -0
- package/dist/features/horizontalRule/client/index.d.ts.map +1 -0
- package/dist/features/horizontalRule/client/index.js +71 -0
- package/dist/features/horizontalRule/client/index.js.map +1 -0
- package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -0
- package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -0
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +20 -0
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -0
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +43 -0
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -0
- package/dist/features/horizontalRule/client/plugin/index.d.ts +7 -0
- package/dist/features/horizontalRule/client/plugin/index.d.ts.map +1 -0
- package/dist/features/horizontalRule/client/plugin/index.js +31 -0
- package/dist/features/horizontalRule/client/plugin/index.js.map +1 -0
- package/dist/features/horizontalRule/server/i18n.d.ts.map +1 -0
- package/dist/features/horizontalRule/server/i18n.js.map +1 -0
- package/dist/features/horizontalRule/server/index.d.ts +2 -0
- package/dist/features/horizontalRule/server/index.d.ts.map +1 -0
- package/dist/features/horizontalRule/server/index.js +32 -0
- package/dist/features/horizontalRule/server/index.js.map +1 -0
- package/dist/features/horizontalRule/server/markdownTransformer.d.ts +3 -0
- package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -0
- package/dist/features/horizontalRule/server/markdownTransformer.js +23 -0
- package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -0
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +53 -0
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -0
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +83 -0
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -0
- package/dist/features/indent/client/index.d.ts +5 -0
- package/dist/features/indent/client/index.d.ts.map +1 -0
- package/dist/features/indent/client/index.js +56 -0
- package/dist/features/indent/client/index.js.map +1 -0
- package/dist/features/indent/client/toolbarIndentGroup.d.ts +3 -0
- package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -0
- package/dist/features/indent/client/toolbarIndentGroup.js.map +1 -0
- package/dist/features/indent/server/i18n.d.ts.map +1 -0
- package/dist/features/indent/server/i18n.js.map +1 -0
- package/dist/features/indent/server/index.d.ts +2 -0
- package/dist/features/indent/server/index.d.ts.map +1 -0
- package/dist/features/indent/server/index.js +11 -0
- package/dist/features/indent/server/index.js.map +1 -0
- package/dist/features/link/client/index.d.ts +16 -0
- package/dist/features/link/client/index.d.ts.map +1 -0
- package/dist/features/link/client/index.js +101 -0
- package/dist/features/link/client/index.js.map +1 -0
- package/dist/features/link/client/plugins/autoLink/index.d.ts +20 -0
- package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -0
- package/dist/features/link/client/plugins/autoLink/index.js +335 -0
- package/dist/features/link/client/plugins/autoLink/index.js.map +1 -0
- package/dist/features/link/client/plugins/clickableLink/index.d.ts +4 -0
- package/dist/features/link/client/plugins/clickableLink/index.d.ts.map +1 -0
- package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +299 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts +5 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts +15 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts.map +1 -0
- package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -0
- package/dist/features/link/client/plugins/link/index.d.ts +4 -0
- package/dist/features/link/client/plugins/link/index.d.ts.map +1 -0
- package/dist/features/link/client/plugins/link/index.js +51 -0
- package/dist/features/link/client/plugins/link/index.js.map +1 -0
- package/dist/features/link/nodes/LinkNode.d.ts +1 -1
- package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
- package/dist/features/link/nodes/LinkNode.js.map +1 -1
- package/dist/features/link/server/baseFields.d.ts.map +1 -0
- package/dist/features/link/server/baseFields.js.map +1 -0
- package/dist/features/link/server/graphQLPopulationPromise.d.ts +5 -0
- package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -0
- package/dist/features/link/server/graphQLPopulationPromise.js +31 -0
- package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -0
- package/dist/features/link/server/i18n.d.ts.map +1 -0
- package/dist/features/link/server/i18n.js.map +1 -0
- package/dist/features/link/server/index.d.ts +35 -0
- package/dist/features/link/server/index.d.ts.map +1 -0
- package/dist/features/link/server/index.js +132 -0
- package/dist/features/link/server/index.js.map +1 -0
- package/dist/features/link/server/transformExtraFields.d.ts +9 -0
- package/dist/features/link/server/transformExtraFields.d.ts.map +1 -0
- package/dist/features/link/server/transformExtraFields.js +20 -0
- package/dist/features/link/server/transformExtraFields.js.map +1 -0
- package/dist/features/link/server/validate.d.ts +6 -0
- package/dist/features/link/server/validate.d.ts.map +1 -0
- package/dist/features/link/server/validate.js.map +1 -0
- package/dist/features/lists/checklist/client/index.d.ts +5 -0
- package/dist/features/lists/checklist/client/index.d.ts.map +1 -0
- package/dist/features/lists/checklist/client/index.js +100 -0
- package/dist/features/lists/checklist/client/index.js.map +1 -0
- package/dist/features/lists/checklist/client/plugin/index.d.ts +3 -0
- package/dist/features/lists/checklist/client/plugin/index.d.ts.map +1 -0
- package/dist/features/lists/checklist/client/plugin/index.js.map +1 -0
- package/dist/features/lists/checklist/server/i18n.d.ts.map +1 -0
- package/dist/features/lists/checklist/server/i18n.js.map +1 -0
- package/dist/features/lists/checklist/server/index.d.ts +2 -0
- package/dist/features/lists/checklist/server/index.d.ts.map +1 -0
- package/dist/features/lists/checklist/server/index.js +34 -0
- package/dist/features/lists/checklist/server/index.js.map +1 -0
- package/dist/features/lists/orderedList/client/index.d.ts +5 -0
- package/dist/features/lists/orderedList/client/index.d.ts.map +1 -0
- package/dist/features/lists/orderedList/client/index.js +90 -0
- package/dist/features/lists/orderedList/client/index.js.map +1 -0
- package/dist/features/lists/orderedList/server/i18n.d.ts.map +1 -0
- package/dist/features/lists/orderedList/server/i18n.js.map +1 -0
- package/dist/features/lists/orderedList/server/index.d.ts +2 -0
- package/dist/features/lists/orderedList/server/index.d.ts.map +1 -0
- package/dist/features/lists/orderedList/server/index.js +34 -0
- package/dist/features/lists/orderedList/server/index.js.map +1 -0
- package/dist/features/lists/unorderedList/client/index.d.ts +5 -0
- package/dist/features/lists/unorderedList/client/index.d.ts.map +1 -0
- package/dist/features/lists/unorderedList/client/index.js +88 -0
- package/dist/features/lists/unorderedList/client/index.js.map +1 -0
- package/dist/features/lists/unorderedList/server/i18n.d.ts.map +1 -0
- package/dist/features/lists/unorderedList/server/i18n.js.map +1 -0
- package/dist/features/lists/unorderedList/server/index.d.ts +2 -0
- package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -0
- package/dist/features/lists/unorderedList/server/index.js +32 -0
- package/dist/features/lists/unorderedList/server/index.js.map +1 -0
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts +2 -2
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +7 -7
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts +5 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +15 -9
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts +1 -9
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.js +1 -16
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts +4 -3
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.js +16 -11
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts +2 -2
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.js +10 -10
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/types.d.ts +0 -9
- package/dist/features/migrations/slateToLexical/converter/types.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/types.js.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.client.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.client.js +0 -15
- package/dist/features/migrations/slateToLexical/feature.client.js.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.server.d.ts +5 -5
- package/dist/features/migrations/slateToLexical/feature.server.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.server.js +15 -11
- package/dist/features/migrations/slateToLexical/feature.server.js.map +1 -1
- package/dist/features/paragraph/client/index.d.ts +5 -0
- package/dist/features/paragraph/client/index.d.ts.map +1 -0
- package/dist/features/paragraph/client/index.js +71 -0
- package/dist/features/paragraph/client/index.js.map +1 -0
- package/dist/features/paragraph/server/i18n.d.ts.map +1 -0
- package/dist/features/paragraph/server/i18n.js.map +1 -0
- package/dist/features/paragraph/server/index.d.ts +2 -0
- package/dist/features/paragraph/server/index.d.ts.map +1 -0
- package/dist/features/paragraph/server/index.js +12 -0
- package/dist/features/paragraph/server/index.js.map +1 -0
- package/dist/features/relationship/client/components/RelationshipComponent.d.ts +13 -0
- package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -0
- package/dist/features/relationship/client/components/RelationshipComponent.js +171 -0
- package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -0
- package/dist/features/relationship/client/drawer/commands.d.ts.map +1 -0
- package/dist/features/relationship/client/drawer/commands.js.map +1 -0
- package/dist/features/relationship/client/drawer/index.d.ts.map +1 -0
- package/dist/features/relationship/client/drawer/index.js.map +1 -0
- package/dist/features/relationship/client/index.d.ts +18 -0
- package/dist/features/relationship/client/index.d.ts.map +1 -0
- package/dist/features/relationship/client/index.js +72 -0
- package/dist/features/relationship/client/index.js.map +1 -0
- package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +15 -0
- package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -0
- package/dist/features/relationship/client/nodes/RelationshipNode.js +74 -0
- package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -0
- package/dist/features/relationship/client/plugins/index.d.ts +7 -0
- package/dist/features/relationship/client/plugins/index.d.ts.map +1 -0
- package/dist/features/relationship/client/plugins/index.js +50 -0
- package/dist/features/relationship/client/plugins/index.js.map +1 -0
- package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.d.ts.map +1 -0
- package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +33 -0
- package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -0
- package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +5 -0
- package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -0
- package/dist/features/relationship/server/graphQLPopulationPromise.js +29 -0
- package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -0
- package/dist/features/relationship/server/i18n.d.ts.map +1 -0
- package/dist/features/relationship/server/i18n.js.map +1 -0
- package/dist/features/relationship/server/index.d.ts +27 -0
- package/dist/features/relationship/server/index.d.ts.map +1 -0
- package/dist/features/relationship/server/index.js +53 -0
- package/dist/features/relationship/server/index.js.map +1 -0
- package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +35 -0
- package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -0
- package/dist/features/relationship/server/nodes/RelationshipNode.js +101 -0
- package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -0
- package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts +5 -0
- package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -0
- package/dist/features/toolbars/fixed/client/Toolbar/index.js +209 -0
- package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -0
- package/dist/features/toolbars/fixed/client/index.d.ts +6 -0
- package/dist/features/toolbars/fixed/client/index.d.ts.map +1 -0
- package/dist/features/toolbars/fixed/client/index.js +13 -0
- package/dist/features/toolbars/fixed/client/index.js.map +1 -0
- package/dist/features/toolbars/fixed/server/index.d.ts +18 -0
- package/dist/features/toolbars/fixed/server/index.d.ts.map +1 -0
- package/dist/features/toolbars/fixed/server/index.js +17 -0
- package/dist/features/toolbars/fixed/server/index.js.map +1 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.d.ts +4 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.js +319 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -0
- package/dist/features/toolbars/inline/client/index.d.ts +5 -0
- package/dist/features/toolbars/inline/client/index.d.ts.map +1 -0
- package/dist/features/toolbars/inline/client/index.js +13 -0
- package/dist/features/toolbars/inline/client/index.js.map +1 -0
- package/dist/features/toolbars/inline/server/index.d.ts +2 -0
- package/dist/features/toolbars/inline/server/index.d.ts.map +1 -0
- package/dist/features/toolbars/inline/server/index.js +9 -0
- package/dist/features/toolbars/inline/server/index.js.map +1 -0
- package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js +3 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
- package/dist/features/toolbars/types.d.ts +2 -1
- package/dist/features/toolbars/types.d.ts.map +1 -1
- package/dist/features/toolbars/types.js.map +1 -1
- package/dist/features/typesServer.d.ts +17 -13
- package/dist/features/typesServer.d.ts.map +1 -1
- package/dist/features/typesServer.js.map +1 -1
- package/dist/features/upload/client/component/index.d.ts +9 -0
- package/dist/features/upload/client/component/index.d.ts.map +1 -0
- package/dist/features/upload/client/component/index.js +248 -0
- package/dist/features/upload/client/component/index.js.map +1 -0
- package/dist/features/upload/client/drawer/commands.d.ts.map +1 -0
- package/dist/features/upload/client/drawer/commands.js.map +1 -0
- package/dist/features/upload/client/drawer/index.d.ts.map +1 -0
- package/dist/features/upload/client/drawer/index.js +77 -0
- package/dist/features/upload/client/drawer/index.js.map +1 -0
- package/dist/features/upload/client/feature.client.d.ts.map +1 -0
- package/dist/features/upload/client/feature.client.js +74 -0
- package/dist/features/upload/client/feature.client.js.map +1 -0
- package/dist/features/upload/client/nodes/UploadNode.d.ts +22 -0
- package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -0
- package/dist/features/upload/client/nodes/UploadNode.js +91 -0
- package/dist/features/upload/client/nodes/UploadNode.js.map +1 -0
- package/dist/features/upload/client/plugin/index.d.ts +8 -0
- package/dist/features/upload/client/plugin/index.d.ts.map +1 -0
- package/dist/features/upload/client/plugin/index.js +53 -0
- package/dist/features/upload/client/plugin/index.js.map +1 -0
- package/dist/features/upload/server/feature.server.d.ts +18 -0
- package/dist/features/upload/server/feature.server.d.ts.map +1 -0
- package/dist/features/upload/server/feature.server.js +189 -0
- package/dist/features/upload/server/feature.server.js.map +1 -0
- package/dist/features/upload/server/graphQLPopulationPromise.d.ts +5 -0
- package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -0
- package/dist/features/upload/server/graphQLPopulationPromise.js +52 -0
- package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -0
- package/dist/features/upload/server/i18n.d.ts.map +1 -0
- package/dist/features/upload/server/i18n.js.map +1 -0
- package/dist/features/upload/server/nodes/UploadNode.d.ts +40 -0
- package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -0
- package/dist/features/upload/server/nodes/UploadNode.js +128 -0
- package/dist/features/upload/server/nodes/UploadNode.js.map +1 -0
- package/dist/features/upload/server/validate.d.ts +5 -0
- package/dist/features/upload/server/validate.d.ts.map +1 -0
- package/dist/features/upload/server/validate.js.map +1 -0
- package/dist/field/Field.d.ts +7 -7
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +8 -6
- package/dist/field/Field.js.map +1 -1
- package/dist/field/index.d.ts +2 -9
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +8 -8
- package/dist/field/index.js.map +1 -1
- package/dist/index.d.ts +23 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +83 -68
- package/dist/index.js.map +1 -1
- package/dist/lexical/LexicalProvider.d.ts +2 -6
- package/dist/lexical/LexicalProvider.d.ts.map +1 -1
- package/dist/lexical/LexicalProvider.js +2 -2
- package/dist/lexical/LexicalProvider.js.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.d.ts +4 -12
- package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.js +3 -3
- package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
- package/dist/lexical/config/server/default.js +13 -13
- package/dist/lexical/config/server/default.js.map +1 -1
- package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
- package/dist/lexical/config/server/sanitize.js +24 -6
- package/dist/lexical/config/server/sanitize.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +6 -2
- 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.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.js +14 -4
- package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
- package/dist/lexical/theme/EditorTheme.d.ts +0 -1
- package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
- package/dist/lexical/theme/EditorTheme.js.map +1 -1
- package/dist/nodeTypes.d.ts +8 -8
- package/dist/nodeTypes.d.ts.map +1 -1
- package/dist/nodeTypes.js.map +1 -1
- package/dist/types.d.ts +6 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.d.ts +10 -8
- package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.js +3 -1
- package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.js +6 -6
- package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
- package/dist/utilities/generateComponentMap.d.ts +2 -2
- package/dist/utilities/generateComponentMap.d.ts.map +1 -1
- package/dist/utilities/generateComponentMap.js +38 -28
- package/dist/utilities/generateComponentMap.js.map +1 -1
- package/dist/utilities/generateImportMap.d.ts +6 -0
- package/dist/utilities/generateImportMap.d.ts.map +1 -0
- package/dist/utilities/generateImportMap.js +50 -0
- package/dist/utilities/generateImportMap.js.map +1 -0
- package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
- package/dist/utilities/generateSchemaMap.js +2 -1
- package/dist/utilities/generateSchemaMap.js.map +1 -1
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +1 -1
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +1 -5
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
- package/dist/utilities/useLexicalFeature.js +1 -1
- package/dist/utilities/useLexicalFeature.js.map +1 -1
- package/package.json +21 -11
- package/dist/exports/client/Field-5GGTGCKC.js +0 -2
- package/dist/exports/client/Field-5GGTGCKC.js.map +0 -7
- package/dist/exports/client/RelationshipComponent-ZR2OCBGL.js +0 -2
- package/dist/exports/client/RelationshipComponent-ZR2OCBGL.js.map +0 -7
- package/dist/exports/client/chunk-6QXGZYUK.js +0 -2
- package/dist/exports/client/chunk-6QXGZYUK.js.map +0 -7
- package/dist/exports/client/chunk-IPCJ5EVK.js +0 -2
- package/dist/exports/client/chunk-IPCJ5EVK.js.map +0 -7
- package/dist/exports/client/chunk-IWZVO3AI.js +0 -2
- package/dist/exports/client/chunk-IWZVO3AI.js.map +0 -7
- package/dist/exports/client/chunk-Q5DYR7MH.js +0 -3
- package/dist/exports/client/chunk-Q5DYR7MH.js.map +0 -7
- package/dist/exports/client/chunk-VUVXZJJR.js +0 -2
- package/dist/exports/client/chunk-VUVXZJJR.js.map +0 -7
- package/dist/exports/client/component-D4GWDXK5.js +0 -2
- package/dist/exports/client/component-D4GWDXK5.js.map +0 -7
- package/dist/exports/client/component-KA7FDRMA.js +0 -2
- package/dist/exports/client/component-KA7FDRMA.js.map +0 -7
- package/dist/exports/client/component-VM36FRT2.js +0 -2
- package/dist/exports/client/component-VM36FRT2.js.map +0 -7
- package/dist/exports/client/componentInline-6EKPZSCV.js +0 -2
- package/dist/exports/client/componentInline-6EKPZSCV.js.map +0 -7
- package/dist/features/align/feature.client.d.ts +0 -5
- package/dist/features/align/feature.client.d.ts.map +0 -1
- package/dist/features/align/feature.client.js +0 -146
- package/dist/features/align/feature.client.js.map +0 -1
- package/dist/features/align/feature.server.d.ts +0 -2
- package/dist/features/align/feature.server.d.ts.map +0 -1
- package/dist/features/align/feature.server.js +0 -13
- package/dist/features/align/feature.server.js.map +0 -1
- package/dist/features/align/i18n.d.ts.map +0 -1
- package/dist/features/align/i18n.js.map +0 -1
- package/dist/features/align/toolbarAlignGroup.d.ts +0 -3
- package/dist/features/align/toolbarAlignGroup.d.ts.map +0 -1
- package/dist/features/align/toolbarAlignGroup.js +0 -12
- package/dist/features/align/toolbarAlignGroup.js.map +0 -1
- package/dist/features/blockquote/feature.client.d.ts +0 -5
- package/dist/features/blockquote/feature.client.d.ts.map +0 -1
- package/dist/features/blockquote/feature.client.js +0 -77
- package/dist/features/blockquote/feature.client.js.map +0 -1
- package/dist/features/blockquote/feature.server.d.ts +0 -7
- package/dist/features/blockquote/feature.server.d.ts.map +0 -1
- package/dist/features/blockquote/feature.server.js +0 -48
- package/dist/features/blockquote/feature.server.js.map +0 -1
- package/dist/features/blockquote/i18n.d.ts.map +0 -1
- package/dist/features/blockquote/i18n.js.map +0 -1
- package/dist/features/blocks/component/BlockContent.d.ts +0 -27
- package/dist/features/blocks/component/BlockContent.d.ts.map +0 -1
- package/dist/features/blocks/component/BlockContent.js +0 -196
- package/dist/features/blocks/component/BlockContent.js.map +0 -1
- package/dist/features/blocks/component/FormSavePlugin.d.ts.map +0 -1
- package/dist/features/blocks/component/FormSavePlugin.js.map +0 -1
- package/dist/features/blocks/component/index.d.ts +0 -11
- package/dist/features/blocks/component/index.d.ts.map +0 -1
- package/dist/features/blocks/component/index.js +0 -162
- package/dist/features/blocks/component/index.js.map +0 -1
- package/dist/features/blocks/component/removeEmptyArrayValues.d.ts.map +0 -1
- package/dist/features/blocks/component/removeEmptyArrayValues.js.map +0 -1
- package/dist/features/blocks/componentInline/index.d.ts.map +0 -1
- package/dist/features/blocks/componentInline/index.js +0 -133
- package/dist/features/blocks/componentInline/index.js.map +0 -1
- package/dist/features/blocks/feature.client.d.ts +0 -13
- package/dist/features/blocks/feature.client.d.ts.map +0 -1
- package/dist/features/blocks/feature.client.js +0 -148
- package/dist/features/blocks/feature.client.js.map +0 -1
- package/dist/features/blocks/feature.server.d.ts +0 -8
- package/dist/features/blocks/feature.server.d.ts.map +0 -1
- package/dist/features/blocks/feature.server.js +0 -160
- package/dist/features/blocks/feature.server.js.map +0 -1
- package/dist/features/blocks/graphQLPopulationPromise.d.ts +0 -6
- package/dist/features/blocks/graphQLPopulationPromise.d.ts.map +0 -1
- package/dist/features/blocks/graphQLPopulationPromise.js +0 -31
- package/dist/features/blocks/graphQLPopulationPromise.js.map +0 -1
- package/dist/features/blocks/i18n.d.ts.map +0 -1
- package/dist/features/blocks/i18n.js.map +0 -1
- package/dist/features/blocks/nodes/BlocksNode.d.ts +0 -38
- package/dist/features/blocks/nodes/BlocksNode.d.ts.map +0 -1
- package/dist/features/blocks/nodes/BlocksNode.js +0 -92
- package/dist/features/blocks/nodes/BlocksNode.js.map +0 -1
- package/dist/features/blocks/nodes/InlineBlocksNode.d.ts +0 -39
- package/dist/features/blocks/nodes/InlineBlocksNode.d.ts.map +0 -1
- package/dist/features/blocks/nodes/InlineBlocksNode.js +0 -94
- package/dist/features/blocks/nodes/InlineBlocksNode.js.map +0 -1
- package/dist/features/blocks/plugin/commands.d.ts.map +0 -1
- package/dist/features/blocks/plugin/commands.js.map +0 -1
- package/dist/features/blocks/plugin/index.d.ts +0 -6
- package/dist/features/blocks/plugin/index.d.ts.map +0 -1
- package/dist/features/blocks/plugin/index.js +0 -111
- package/dist/features/blocks/plugin/index.js.map +0 -1
- package/dist/features/blocks/validate.d.ts +0 -6
- package/dist/features/blocks/validate.d.ts.map +0 -1
- package/dist/features/blocks/validate.js.map +0 -1
- package/dist/features/converters/html/feature.server.d.ts +0 -8
- package/dist/features/converters/html/feature.server.d.ts.map +0 -1
- package/dist/features/converters/html/feature.server.js +0 -8
- package/dist/features/converters/html/feature.server.js.map +0 -1
- package/dist/features/debug/testRecorder/feature.client.d.ts +0 -5
- package/dist/features/debug/testRecorder/feature.client.d.ts.map +0 -1
- package/dist/features/debug/testRecorder/feature.client.js +0 -13
- package/dist/features/debug/testRecorder/feature.client.js.map +0 -1
- package/dist/features/debug/testRecorder/feature.server.d.ts +0 -2
- package/dist/features/debug/testRecorder/feature.server.d.ts.map +0 -1
- package/dist/features/debug/testRecorder/feature.server.js +0 -11
- package/dist/features/debug/testRecorder/feature.server.js.map +0 -1
- package/dist/features/debug/testRecorder/plugin/index.d.ts +0 -5
- package/dist/features/debug/testRecorder/plugin/index.d.ts.map +0 -1
- package/dist/features/debug/testRecorder/plugin/index.js +0 -471
- package/dist/features/debug/testRecorder/plugin/index.js.map +0 -1
- package/dist/features/debug/treeView/feature.client.d.ts +0 -5
- package/dist/features/debug/treeView/feature.client.d.ts.map +0 -1
- package/dist/features/debug/treeView/feature.client.js +0 -13
- package/dist/features/debug/treeView/feature.client.js.map +0 -1
- package/dist/features/debug/treeView/feature.server.d.ts +0 -2
- package/dist/features/debug/treeView/feature.server.d.ts.map +0 -1
- package/dist/features/debug/treeView/feature.server.js +0 -11
- package/dist/features/debug/treeView/feature.server.js.map +0 -1
- package/dist/features/debug/treeView/plugin/index.d.ts +0 -4
- package/dist/features/debug/treeView/plugin/index.d.ts.map +0 -1
- package/dist/features/debug/treeView/plugin/index.js.map +0 -1
- package/dist/features/experimental_table/feature.client.d.ts +0 -2
- package/dist/features/experimental_table/feature.client.d.ts.map +0 -1
- package/dist/features/experimental_table/feature.client.js +0 -71
- package/dist/features/experimental_table/feature.client.js.map +0 -1
- package/dist/features/experimental_table/feature.server.d.ts +0 -13
- package/dist/features/experimental_table/feature.server.d.ts.map +0 -1
- package/dist/features/experimental_table/feature.server.js +0 -125
- package/dist/features/experimental_table/feature.server.js.map +0 -1
- package/dist/features/experimental_table/plugins/TableActionMenuPlugin/index.d.ts +0 -4
- package/dist/features/experimental_table/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
- package/dist/features/experimental_table/plugins/TableActionMenuPlugin/index.js +0 -604
- package/dist/features/experimental_table/plugins/TableActionMenuPlugin/index.js.map +0 -1
- package/dist/features/experimental_table/plugins/TableCellResizerPlugin/index.d.ts +0 -3
- package/dist/features/experimental_table/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
- package/dist/features/experimental_table/plugins/TableCellResizerPlugin/index.js +0 -327
- package/dist/features/experimental_table/plugins/TableCellResizerPlugin/index.js.map +0 -1
- package/dist/features/experimental_table/plugins/TablePlugin/index.d.ts +0 -24
- package/dist/features/experimental_table/plugins/TablePlugin/index.d.ts.map +0 -1
- package/dist/features/experimental_table/plugins/TablePlugin/index.js +0 -98
- package/dist/features/experimental_table/plugins/TablePlugin/index.js.map +0 -1
- package/dist/features/experimental_table/utils/debounce.d.ts.map +0 -1
- package/dist/features/experimental_table/utils/debounce.js.map +0 -1
- package/dist/features/experimental_table/utils/useDebounce.d.ts.map +0 -1
- package/dist/features/experimental_table/utils/useDebounce.js.map +0 -1
- package/dist/features/heading/feature.client.d.ts +0 -6
- package/dist/features/heading/feature.client.d.ts.map +0 -1
- package/dist/features/heading/feature.client.js +0 -112
- package/dist/features/heading/feature.client.js.map +0 -1
- package/dist/features/heading/feature.server.d.ts +0 -10
- package/dist/features/heading/feature.server.d.ts.map +0 -1
- package/dist/features/heading/feature.server.js +0 -62
- package/dist/features/heading/feature.server.js.map +0 -1
- package/dist/features/heading/i18n.d.ts.map +0 -1
- package/dist/features/heading/i18n.js.map +0 -1
- package/dist/features/horizontalRule/component/index.d.ts.map +0 -1
- package/dist/features/horizontalRule/component/index.js.map +0 -1
- package/dist/features/horizontalRule/feature.client.d.ts +0 -5
- package/dist/features/horizontalRule/feature.client.d.ts.map +0 -1
- package/dist/features/horizontalRule/feature.client.js +0 -70
- package/dist/features/horizontalRule/feature.client.js.map +0 -1
- package/dist/features/horizontalRule/feature.server.d.ts +0 -2
- package/dist/features/horizontalRule/feature.server.d.ts.map +0 -1
- package/dist/features/horizontalRule/feature.server.js +0 -34
- package/dist/features/horizontalRule/feature.server.js.map +0 -1
- package/dist/features/horizontalRule/i18n.d.ts.map +0 -1
- package/dist/features/horizontalRule/i18n.js.map +0 -1
- package/dist/features/horizontalRule/markdownTransformer.d.ts.map +0 -1
- package/dist/features/horizontalRule/markdownTransformer.js.map +0 -1
- package/dist/features/horizontalRule/nodes/HorizontalRuleNode.d.ts +0 -56
- package/dist/features/horizontalRule/nodes/HorizontalRuleNode.d.ts.map +0 -1
- package/dist/features/horizontalRule/nodes/HorizontalRuleNode.js +0 -92
- package/dist/features/horizontalRule/nodes/HorizontalRuleNode.js.map +0 -1
- package/dist/features/horizontalRule/plugin/index.d.ts +0 -7
- package/dist/features/horizontalRule/plugin/index.d.ts.map +0 -1
- package/dist/features/horizontalRule/plugin/index.js +0 -30
- package/dist/features/horizontalRule/plugin/index.js.map +0 -1
- package/dist/features/indent/feature.client.d.ts +0 -5
- package/dist/features/indent/feature.client.d.ts.map +0 -1
- package/dist/features/indent/feature.client.js +0 -56
- package/dist/features/indent/feature.client.js.map +0 -1
- package/dist/features/indent/feature.server.d.ts +0 -2
- package/dist/features/indent/feature.server.d.ts.map +0 -1
- package/dist/features/indent/feature.server.js +0 -13
- package/dist/features/indent/feature.server.js.map +0 -1
- package/dist/features/indent/i18n.d.ts.map +0 -1
- package/dist/features/indent/i18n.js.map +0 -1
- package/dist/features/indent/toolbarIndentGroup.d.ts +0 -3
- package/dist/features/indent/toolbarIndentGroup.d.ts.map +0 -1
- package/dist/features/indent/toolbarIndentGroup.js.map +0 -1
- package/dist/features/link/drawer/baseFields.d.ts.map +0 -1
- package/dist/features/link/drawer/baseFields.js.map +0 -1
- package/dist/features/link/feature.client.d.ts +0 -16
- package/dist/features/link/feature.client.d.ts.map +0 -1
- package/dist/features/link/feature.client.js +0 -101
- package/dist/features/link/feature.client.js.map +0 -1
- package/dist/features/link/feature.server.d.ts +0 -35
- package/dist/features/link/feature.server.d.ts.map +0 -1
- package/dist/features/link/feature.server.js +0 -134
- package/dist/features/link/feature.server.js.map +0 -1
- package/dist/features/link/graphQLPopulationPromise.d.ts +0 -5
- package/dist/features/link/graphQLPopulationPromise.d.ts.map +0 -1
- package/dist/features/link/graphQLPopulationPromise.js +0 -31
- package/dist/features/link/graphQLPopulationPromise.js.map +0 -1
- package/dist/features/link/i18n.d.ts.map +0 -1
- package/dist/features/link/i18n.js.map +0 -1
- package/dist/features/link/plugins/autoLink/index.d.ts +0 -20
- package/dist/features/link/plugins/autoLink/index.d.ts.map +0 -1
- package/dist/features/link/plugins/autoLink/index.js +0 -336
- package/dist/features/link/plugins/autoLink/index.js.map +0 -1
- package/dist/features/link/plugins/clickableLink/index.d.ts +0 -4
- package/dist/features/link/plugins/clickableLink/index.d.ts.map +0 -1
- package/dist/features/link/plugins/clickableLink/index.js.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +0 -299
- package/dist/features/link/plugins/floatingLinkEditor/LinkEditor/index.js.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/index.d.ts +0 -5
- package/dist/features/link/plugins/floatingLinkEditor/index.d.ts.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/index.js.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/types.d.ts +0 -15
- package/dist/features/link/plugins/floatingLinkEditor/types.d.ts.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/types.js.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/utilities.d.ts +0 -9
- package/dist/features/link/plugins/floatingLinkEditor/utilities.d.ts.map +0 -1
- package/dist/features/link/plugins/floatingLinkEditor/utilities.js +0 -20
- package/dist/features/link/plugins/floatingLinkEditor/utilities.js.map +0 -1
- package/dist/features/link/plugins/link/index.d.ts +0 -4
- package/dist/features/link/plugins/link/index.d.ts.map +0 -1
- package/dist/features/link/plugins/link/index.js +0 -53
- package/dist/features/link/plugins/link/index.js.map +0 -1
- package/dist/features/link/validate.d.ts +0 -6
- package/dist/features/link/validate.d.ts.map +0 -1
- package/dist/features/link/validate.js.map +0 -1
- package/dist/features/lists/checklist/feature.client.d.ts +0 -5
- package/dist/features/lists/checklist/feature.client.d.ts.map +0 -1
- package/dist/features/lists/checklist/feature.client.js +0 -100
- package/dist/features/lists/checklist/feature.client.js.map +0 -1
- package/dist/features/lists/checklist/feature.server.d.ts +0 -2
- package/dist/features/lists/checklist/feature.server.d.ts.map +0 -1
- package/dist/features/lists/checklist/feature.server.js +0 -36
- package/dist/features/lists/checklist/feature.server.js.map +0 -1
- package/dist/features/lists/checklist/i18n.d.ts.map +0 -1
- package/dist/features/lists/checklist/i18n.js.map +0 -1
- package/dist/features/lists/checklist/plugin/index.d.ts +0 -3
- package/dist/features/lists/checklist/plugin/index.d.ts.map +0 -1
- package/dist/features/lists/checklist/plugin/index.js.map +0 -1
- package/dist/features/lists/orderedList/feature.client.d.ts +0 -5
- package/dist/features/lists/orderedList/feature.client.d.ts.map +0 -1
- package/dist/features/lists/orderedList/feature.client.js +0 -90
- package/dist/features/lists/orderedList/feature.client.js.map +0 -1
- package/dist/features/lists/orderedList/feature.server.d.ts +0 -2
- package/dist/features/lists/orderedList/feature.server.d.ts.map +0 -1
- package/dist/features/lists/orderedList/feature.server.js +0 -36
- package/dist/features/lists/orderedList/feature.server.js.map +0 -1
- package/dist/features/lists/orderedList/i18n.d.ts.map +0 -1
- package/dist/features/lists/orderedList/i18n.js.map +0 -1
- package/dist/features/lists/unorderedList/feature.client.d.ts +0 -5
- package/dist/features/lists/unorderedList/feature.client.d.ts.map +0 -1
- package/dist/features/lists/unorderedList/feature.client.js +0 -88
- package/dist/features/lists/unorderedList/feature.client.js.map +0 -1
- package/dist/features/lists/unorderedList/feature.server.d.ts +0 -2
- package/dist/features/lists/unorderedList/feature.server.d.ts.map +0 -1
- package/dist/features/lists/unorderedList/feature.server.js +0 -34
- package/dist/features/lists/unorderedList/feature.server.js.map +0 -1
- package/dist/features/lists/unorderedList/i18n.d.ts.map +0 -1
- package/dist/features/lists/unorderedList/i18n.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.d.ts +0 -5
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +0 -6
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts +0 -3
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts.map +0 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +0 -8
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/heading/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/heading/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/heading/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/heading/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/indent/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/indent/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/indent/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/indent/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/link/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/link/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/link/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/link/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/index.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/client.d.ts +0 -5
- package/dist/features/migrations/slateToLexical/converter/converters/upload/client.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/client.js +0 -6
- package/dist/features/migrations/slateToLexical/converter/converters/upload/client.js.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/index.d.ts +0 -3
- package/dist/features/migrations/slateToLexical/converter/converters/upload/index.d.ts.map +0 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/index.js +0 -8
- package/dist/features/migrations/slateToLexical/converter/converters/upload/index.js.map +0 -1
- package/dist/features/paragraph/feature.client.d.ts +0 -5
- package/dist/features/paragraph/feature.client.d.ts.map +0 -1
- package/dist/features/paragraph/feature.client.js +0 -71
- package/dist/features/paragraph/feature.client.js.map +0 -1
- package/dist/features/paragraph/feature.server.d.ts +0 -2
- package/dist/features/paragraph/feature.server.d.ts.map +0 -1
- package/dist/features/paragraph/feature.server.js +0 -14
- package/dist/features/paragraph/feature.server.js.map +0 -1
- package/dist/features/paragraph/i18n.d.ts.map +0 -1
- package/dist/features/paragraph/i18n.js.map +0 -1
- package/dist/features/relationship/drawer/commands.d.ts.map +0 -1
- package/dist/features/relationship/drawer/commands.js.map +0 -1
- package/dist/features/relationship/drawer/index.d.ts.map +0 -1
- package/dist/features/relationship/drawer/index.js.map +0 -1
- package/dist/features/relationship/feature.client.d.ts +0 -18
- package/dist/features/relationship/feature.client.d.ts.map +0 -1
- package/dist/features/relationship/feature.client.js +0 -72
- package/dist/features/relationship/feature.client.js.map +0 -1
- package/dist/features/relationship/feature.server.d.ts +0 -27
- package/dist/features/relationship/feature.server.d.ts.map +0 -1
- package/dist/features/relationship/feature.server.js +0 -55
- package/dist/features/relationship/feature.server.js.map +0 -1
- package/dist/features/relationship/graphQLPopulationPromise.d.ts +0 -5
- package/dist/features/relationship/graphQLPopulationPromise.d.ts.map +0 -1
- package/dist/features/relationship/graphQLPopulationPromise.js +0 -29
- package/dist/features/relationship/graphQLPopulationPromise.js.map +0 -1
- package/dist/features/relationship/i18n.d.ts.map +0 -1
- package/dist/features/relationship/i18n.js.map +0 -1
- package/dist/features/relationship/nodes/RelationshipNode.d.ts +0 -35
- package/dist/features/relationship/nodes/RelationshipNode.d.ts.map +0 -1
- package/dist/features/relationship/nodes/RelationshipNode.js +0 -111
- package/dist/features/relationship/nodes/RelationshipNode.js.map +0 -1
- package/dist/features/relationship/nodes/components/RelationshipComponent.d.ts +0 -13
- package/dist/features/relationship/nodes/components/RelationshipComponent.d.ts.map +0 -1
- package/dist/features/relationship/nodes/components/RelationshipComponent.js +0 -171
- package/dist/features/relationship/nodes/components/RelationshipComponent.js.map +0 -1
- package/dist/features/relationship/plugins/index.d.ts +0 -7
- package/dist/features/relationship/plugins/index.d.ts.map +0 -1
- package/dist/features/relationship/plugins/index.js +0 -50
- package/dist/features/relationship/plugins/index.js.map +0 -1
- package/dist/features/relationship/utils/EnabledRelationshipsCondition.d.ts.map +0 -1
- package/dist/features/relationship/utils/EnabledRelationshipsCondition.js +0 -33
- package/dist/features/relationship/utils/EnabledRelationshipsCondition.js.map +0 -1
- package/dist/features/toolbars/fixed/Toolbar/index.d.ts +0 -5
- package/dist/features/toolbars/fixed/Toolbar/index.d.ts.map +0 -1
- package/dist/features/toolbars/fixed/Toolbar/index.js +0 -207
- package/dist/features/toolbars/fixed/Toolbar/index.js.map +0 -1
- package/dist/features/toolbars/fixed/feature.client.d.ts +0 -6
- package/dist/features/toolbars/fixed/feature.client.d.ts.map +0 -1
- package/dist/features/toolbars/fixed/feature.client.js +0 -13
- package/dist/features/toolbars/fixed/feature.client.js.map +0 -1
- package/dist/features/toolbars/fixed/feature.server.d.ts +0 -18
- package/dist/features/toolbars/fixed/feature.server.d.ts.map +0 -1
- package/dist/features/toolbars/fixed/feature.server.js +0 -19
- package/dist/features/toolbars/fixed/feature.server.js.map +0 -1
- package/dist/features/toolbars/inline/Toolbar/index.d.ts +0 -4
- package/dist/features/toolbars/inline/Toolbar/index.d.ts.map +0 -1
- package/dist/features/toolbars/inline/Toolbar/index.js +0 -319
- package/dist/features/toolbars/inline/Toolbar/index.js.map +0 -1
- package/dist/features/toolbars/inline/feature.client.d.ts +0 -5
- package/dist/features/toolbars/inline/feature.client.d.ts.map +0 -1
- package/dist/features/toolbars/inline/feature.client.js +0 -13
- package/dist/features/toolbars/inline/feature.client.js.map +0 -1
- package/dist/features/toolbars/inline/feature.server.d.ts +0 -2
- package/dist/features/toolbars/inline/feature.server.d.ts.map +0 -1
- package/dist/features/toolbars/inline/feature.server.js +0 -11
- package/dist/features/toolbars/inline/feature.server.js.map +0 -1
- package/dist/features/upload/component/index.d.ts +0 -9
- package/dist/features/upload/component/index.d.ts.map +0 -1
- package/dist/features/upload/component/index.js +0 -242
- package/dist/features/upload/component/index.js.map +0 -1
- package/dist/features/upload/drawer/commands.d.ts.map +0 -1
- package/dist/features/upload/drawer/commands.js.map +0 -1
- package/dist/features/upload/drawer/index.d.ts.map +0 -1
- package/dist/features/upload/drawer/index.js +0 -77
- package/dist/features/upload/drawer/index.js.map +0 -1
- package/dist/features/upload/feature.client.d.ts.map +0 -1
- package/dist/features/upload/feature.client.js +0 -74
- package/dist/features/upload/feature.client.js.map +0 -1
- package/dist/features/upload/feature.server.d.ts +0 -18
- package/dist/features/upload/feature.server.d.ts.map +0 -1
- package/dist/features/upload/feature.server.js +0 -184
- package/dist/features/upload/feature.server.js.map +0 -1
- package/dist/features/upload/graphQLPopulationPromise.d.ts +0 -5
- package/dist/features/upload/graphQLPopulationPromise.d.ts.map +0 -1
- package/dist/features/upload/graphQLPopulationPromise.js +0 -52
- package/dist/features/upload/graphQLPopulationPromise.js.map +0 -1
- package/dist/features/upload/i18n.d.ts.map +0 -1
- package/dist/features/upload/i18n.js.map +0 -1
- package/dist/features/upload/nodes/UploadNode.d.ts +0 -39
- package/dist/features/upload/nodes/UploadNode.d.ts.map +0 -1
- package/dist/features/upload/nodes/UploadNode.js +0 -131
- package/dist/features/upload/nodes/UploadNode.js.map +0 -1
- package/dist/features/upload/plugin/index.d.ts +0 -8
- package/dist/features/upload/plugin/index.d.ts.map +0 -1
- package/dist/features/upload/plugin/index.js +0 -53
- package/dist/features/upload/plugin/index.js.map +0 -1
- package/dist/features/upload/validate.d.ts +0 -5
- package/dist/features/upload/validate.d.ts.map +0 -1
- package/dist/features/upload/validate.js.map +0 -1
- package/dist/lexical/utils/invariant.d.ts +0 -2
- package/dist/lexical/utils/invariant.d.ts.map +0 -1
- package/dist/lexical/utils/invariant.js +0 -12
- package/dist/lexical/utils/invariant.js.map +0 -1
- /package/dist/features/align/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/align/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/blockquote/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/blockquote/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/blocks/{component → client/component}/FormSavePlugin.d.ts +0 -0
- /package/dist/features/blocks/{component → client/component}/FormSavePlugin.js +0 -0
- /package/dist/features/blocks/{component → client/component}/removeEmptyArrayValues.d.ts +0 -0
- /package/dist/features/blocks/{component → client/component}/removeEmptyArrayValues.js +0 -0
- /package/dist/features/blocks/{componentInline → client/componentInline}/index.d.ts +0 -0
- /package/dist/features/blocks/{plugin → client/plugin}/commands.d.ts +0 -0
- /package/dist/features/blocks/{plugin → client/plugin}/commands.js +0 -0
- /package/dist/features/blocks/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/blocks/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/blocks/{validate.js → server/validate.js} +0 -0
- /package/dist/features/debug/treeView/{plugin → client/plugin}/index.js +0 -0
- /package/dist/features/experimental_table/{utils → client/utils}/debounce.d.ts +0 -0
- /package/dist/features/experimental_table/{utils → client/utils}/debounce.js +0 -0
- /package/dist/features/experimental_table/{utils → client/utils}/useDebounce.d.ts +0 -0
- /package/dist/features/experimental_table/{utils → client/utils}/useDebounce.js +0 -0
- /package/dist/features/heading/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/heading/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/horizontalRule/{component → client/component}/index.d.ts +0 -0
- /package/dist/features/horizontalRule/{component → client/component}/index.js +0 -0
- /package/dist/features/horizontalRule/{markdownTransformer.d.ts → client/markdownTransformer.d.ts} +0 -0
- /package/dist/features/horizontalRule/{markdownTransformer.js → client/markdownTransformer.js} +0 -0
- /package/dist/features/horizontalRule/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/horizontalRule/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/indent/{toolbarIndentGroup.js → client/toolbarIndentGroup.js} +0 -0
- /package/dist/features/indent/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/indent/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/link/{plugins → client/plugins}/clickableLink/index.js +0 -0
- /package/dist/features/link/{plugins → client/plugins}/floatingLinkEditor/LinkEditor/commands.d.ts +0 -0
- /package/dist/features/link/{plugins → client/plugins}/floatingLinkEditor/LinkEditor/commands.js +0 -0
- /package/dist/features/link/{plugins → client/plugins}/floatingLinkEditor/LinkEditor/index.d.ts +0 -0
- /package/dist/features/link/{plugins → client/plugins}/floatingLinkEditor/index.js +0 -0
- /package/dist/features/link/{plugins → client/plugins}/floatingLinkEditor/types.js +0 -0
- /package/dist/features/link/{drawer → server}/baseFields.d.ts +0 -0
- /package/dist/features/link/{drawer → server}/baseFields.js +0 -0
- /package/dist/features/link/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/link/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/link/{validate.js → server/validate.js} +0 -0
- /package/dist/features/lists/checklist/{plugin → client/plugin}/index.js +0 -0
- /package/dist/features/lists/checklist/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/lists/checklist/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/lists/orderedList/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/lists/orderedList/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/lists/unorderedList/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/lists/unorderedList/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/paragraph/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/paragraph/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/relationship/{drawer → client/drawer}/commands.d.ts +0 -0
- /package/dist/features/relationship/{drawer → client/drawer}/commands.js +0 -0
- /package/dist/features/relationship/{drawer → client/drawer}/index.d.ts +0 -0
- /package/dist/features/relationship/{drawer → client/drawer}/index.js +0 -0
- /package/dist/features/relationship/{utils → client/utils}/EnabledRelationshipsCondition.d.ts +0 -0
- /package/dist/features/relationship/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/relationship/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/upload/{drawer → client/drawer}/commands.d.ts +0 -0
- /package/dist/features/upload/{drawer → client/drawer}/commands.js +0 -0
- /package/dist/features/upload/{drawer → client/drawer}/index.d.ts +0 -0
- /package/dist/features/upload/{feature.client.d.ts → client/feature.client.d.ts} +0 -0
- /package/dist/features/upload/{i18n.d.ts → server/i18n.d.ts} +0 -0
- /package/dist/features/upload/{i18n.js → server/i18n.js} +0 -0
- /package/dist/features/upload/{validate.js → server/validate.js} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
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/MarkdownShortcut/index.tsx", "../../../src/lexical/plugins/SlashMenu/index.tsx", "../../../src/lexical/plugins/SlashMenu/useMenuTriggerMatch.ts", "../../../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/highlightElemOriginalPosition.ts", "../../../src/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.ts", "../../../src/lexical/ui/ContentEditable.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\nimport type { SerializedEditorState } from 'lexical'\nimport type { FormFieldBase } from 'payload'\n\nimport {\n FieldDescription,\n FieldError,\n FieldLabel,\n useField,\n useFieldProps,\n withCondition,\n} from '@payloadcms/ui'\nimport React, { useCallback } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\n\nimport type { SanitizedClientEditorConfig } from '../lexical/config/types.js'\n\nimport { LexicalProvider } from '../lexical/LexicalProvider.js'\nimport './bundled.css'\nconst baseClass = 'rich-text-lexical'\n\nconst RichTextComponent: React.FC<\n {\n editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n name: string\n richTextComponentMap: Map<string, React.ReactNode>\n width?: string\n } & FormFieldBase\n> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n editorConfig,\n errorProps,\n label,\n labelProps,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n required,\n style,\n validate, // Users can pass in client side validation if they WANT to, but it's not required anymore\n width,\n } = props\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, props, required })\n }\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 const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const fieldType = useField<SerializedEditorState>({\n path: pathFromContext ?? pathFromProps ?? name,\n validate: memoizedValidate,\n })\n\n const {\n errorMessage,\n formInitializing,\n formProcessing,\n initialValue,\n path,\n schemaPath,\n setValue,\n showError,\n value,\n } = fieldType\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n const classes = [\n baseClass,\n 'field-type',\n className,\n showError && 'error',\n disabled && `${baseClass}--read-only`,\n editorConfig?.admin?.hideGutter !== true ? `${baseClass}--show-gutter` : null,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n className={classes}\n key={path}\n style={{\n ...style,\n width,\n }}\n >\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} alignCaret=\"left\" />\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <div className={`${baseClass}__wrap`}>\n <ErrorBoundary fallbackRender={fallbackRender} onReset={() => {}}>\n <LexicalProvider\n editorConfig={editorConfig}\n fieldProps={props}\n key={JSON.stringify({ initialValue, path })} // 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={(editorState) => {\n let serializedEditorState = editorState.toJSON()\n\n // Transform state through save hooks\n if (editorConfig?.features?.hooks?.save?.length) {\n editorConfig.features.hooks.save.forEach((hook) => {\n serializedEditorState = hook({ incomingEditorState: serializedEditorState })\n })\n }\n\n setValue(serializedEditorState)\n }}\n path={path}\n readOnly={disabled}\n value={value}\n />\n </ErrorBoundary>\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n </div>\n )\n}\n\nfunction fallbackRender({ error }): React.ReactElement {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return (\n <div className=\"errorBoundary\" role=\"alert\">\n <p>Something went wrong:</p>\n <pre style={{ color: 'red' }}>{error.message}</pre>\n </div>\n )\n}\n\nexport const RichText = withCondition(RichTextComponent)\n", "'use client'\nimport type { InitialConfigType } from '@lexical/react/LexicalComposer.js'\nimport type { EditorState, LexicalEditor, SerializedEditorState } from 'lexical'\nimport type { FormFieldBase } from 'payload'\n\nimport { LexicalComposer } from '@lexical/react/LexicalComposer.js'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { SanitizedClientEditorConfig } from './config/types.js'\n\nimport { LexicalEditor as LexicalEditorComponent } from './LexicalEditor.js'\nimport {\n EditorConfigProvider,\n useEditorConfigContext,\n} from './config/client/EditorConfigProvider.js'\nimport { getEnabledNodes } from './nodes/index.js'\n\nexport type LexicalProviderProps = {\n editorConfig: SanitizedClientEditorConfig\n fieldProps: {\n editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n name: string\n richTextComponentMap: Map<string, React.ReactNode>\n } & FormFieldBase\n onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void\n path: string\n readOnly: boolean\n value: SerializedEditorState\n}\n\nconst NestProviders = ({ children, providers }) => {\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 { editorConfig, fieldProps, onChange, path, readOnly, value } = props\n\n const parentContext = useEditorConfigContext()\n\n const editorContainerRef = React.useRef<HTMLDivElement>(null)\n\n const processedValue = useMemo(() => {\n let processed = value\n if (editorConfig?.features?.hooks?.load?.length) {\n editorConfig.features.hooks.load.forEach((hook) => {\n processed = hook({ incomingEditorState: processed })\n })\n }\n return processed\n }, [editorConfig, value])\n\n // useMemo for the initialConfig that depends on readOnly and processedValue\n const initialConfig = useMemo<InitialConfigType>(() => {\n if (processedValue && typeof processedValue !== '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(processedValue),\n )\n }\n\n if (processedValue && Array.isArray(processedValue) && !('root' in processedValue)) {\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/beta/lexical/migration#migration-via-migration-script-recommended',\n )\n }\n\n if (processedValue && 'jsonContent' in processedValue) {\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/beta/lexical/migration#migrating-from-payload-plugin-lexical',\n )\n }\n\n return {\n editable: readOnly !== true,\n editorState: processedValue != null ? JSON.stringify(processedValue) : undefined,\n namespace: editorConfig.lexical.namespace,\n nodes: [...getEnabledNodes({ editorConfig })],\n onError: (error: Error) => {\n throw error\n },\n theme: editorConfig.lexical.theme,\n }\n }, [editorConfig, processedValue, readOnly])\n\n if (!initialConfig) {\n return <p>Loading...</p>\n }\n\n return (\n <LexicalComposer initialConfig={initialConfig} key={path}>\n <EditorConfigProvider\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n fieldProps={fieldProps}\n parentContext={parentContext}\n >\n <NestProviders providers={editorConfig.features.providers}>\n <LexicalEditorComponent\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n onChange={onChange}\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 { TabIndentationPlugin } from '@lexical/react/LexicalTabIndentationPlugin.js'\nimport { BLUR_COMMAND, COMMAND_PRIORITY_LOW, FOCUS_COMMAND } from 'lexical'\nimport * as React from 'react'\nimport { useEffect, useState } from 'react'\n\nimport type { LexicalProviderProps } from './LexicalProvider.js'\n\nimport { EditorPlugin } from './EditorPlugin.js'\nimport { useEditorConfigContext } from './config/client/EditorConfigProvider.js'\nimport { MarkdownShortcutPlugin } from './plugins/MarkdownShortcut/index.js'\nimport { SlashMenuPlugin } from './plugins/SlashMenu/index.js'\nimport { AddBlockHandlePlugin } from './plugins/handles/AddBlockHandlePlugin/index.js'\nimport { DraggableBlockPlugin } from './plugins/handles/DraggableBlockPlugin/index.js'\nimport { LexicalContentEditable } from './ui/ContentEditable.js'\n\nexport const LexicalEditor: React.FC<\n {\n editorContainerRef: React.RefObject<HTMLDivElement>\n } & Pick<LexicalProviderProps, 'editorConfig' | 'onChange'>\n> = (props) => {\n const { editorConfig, editorContainerRef, onChange } = props\n const editorConfigContext = useEditorConfigContext()\n const [editor] = useLexicalComposerContext()\n\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLDivElement | null>(null)\n const onRef = (_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 const [isSmallWidthViewport, setIsSmallWidthViewport] = useState<boolean>(false)\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 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\" 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 ErrorBoundary={LexicalErrorBoundary}\n contentEditable={\n <div className=\"editor-scroller\">\n <div className=\"editor\" ref={onRef}>\n <LexicalContentEditable />\n </div>\n </div>\n }\n />\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) onChange(editorState, editor, tags)\n }\n }}\n />\n {floatingAnchorElem && (\n <React.Fragment>\n {!isSmallWidthViewport && editor.isEditable() && (\n <React.Fragment>\n <DraggableBlockPlugin anchorElem={floatingAnchorElem} />\n <AddBlockHandlePlugin anchorElem={floatingAnchorElem} />\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 {editor.isEditable() && (\n <React.Fragment>\n <SlashMenuPlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n </React.Fragment>\n )}\n {editor.isEditable() && (\n <React.Fragment>\n <HistoryPlugin />\n {editorConfig?.features?.markdownTransformers?.length > 0 && <MarkdownShortcutPlugin />}\n </React.Fragment>\n )}\n\n <TabIndentationPlugin />\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", "import 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') {\n return (\n plugin.Component && <plugin.Component anchorElem={anchorElem} clientProps={clientProps} />\n )\n }\n\n return plugin.Component && <plugin.Component clientProps={clientProps} />\n}\n", "'use client'\n\nimport { MarkdownShortcutPlugin as LexicalMarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin.js'\nimport * as React from 'react'\n\nimport { useEditorConfigContext } from '../../config/client/EditorConfigProvider.js'\n\nexport const MarkdownShortcutPlugin: React.FC = () => {\n const { editorConfig } = useEditorConfigContext()\n\n return <LexicalMarkdownShortcutPlugin transformers={editorConfig.features.markdownTransformers} />\n}\n", "'use client'\nimport type { TextNode } from 'lexical'\n\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 { 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}: {\n index: number\n isSelected: boolean\n item: SlashMenuItemInternal\n onClick: () => void\n onMouseEnter: () => void\n}) {\n const { i18n } = useTranslation()\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 = typeof item.label === 'function' ? item.label({ i18n }) : 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={(element) => {\n item.ref = { current: element }\n }}\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()\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 const dynamicGroupWithItems = dynamicItem({\n editor,\n queryString,\n })\n groupWithItems = groupWithItems.concat(dynamicGroupWithItems)\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 // Filter current groups first\n groupsWithItems = groupsWithItems.map((group) => {\n const filteredItems = group.items.filter((item) => {\n let itemTitle = item.key\n if (item.label) {\n itemTitle = typeof item.label === 'function' ? item.label({ i18n }) : item.label\n }\n\n if (new RegExp(queryString, 'gi').exec(itemTitle)) {\n return true\n }\n if (item.keywords != null) {\n return item.keywords.some((keyword) => new RegExp(queryString, 'gi').exec(keyword))\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 }, [getDynamicItems, queryString, editorConfig?.features, i18n])\n\n const onSelectItem = useCallback(\n (\n selectedItem: SlashMenuItemType,\n nodeToRemove: TextNode | null,\n closeMenu: () => void,\n matchingString: string,\n ) => {\n if (nodeToRemove) {\n editor.update(() => {\n nodeToRemove.remove()\n })\n }\n selectedItem.onSelect({ editor, queryString: matchingString })\n\n closeMenu()\n },\n [editor],\n )\n\n return (\n <LexicalTypeaheadMenuPlugin\n anchorElem={anchorElem}\n groups={groups as SlashMenuGroupInternal[]}\n menuRenderFn={(\n anchorElementRef,\n { selectItemAndCleanUp, selectedItemKey, setSelectedItemKey },\n ) =>\n anchorElementRef.current && groups.length\n ? ReactDOM.createPortal(\n <div className={baseClass}>\n {groups.map((group) => {\n let groupTitle = group.key\n if (group.label) {\n groupTitle =\n typeof group.label === 'function' ? group.label({ i18n }) : 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 />\n ))}\n </div>\n )\n })}\n </div>,\n anchorElementRef.current,\n )\n : null\n }\n onQueryChange={setQueryString}\n onSelectItem={onSelectItem}\n triggerFn={checkForTriggerMatch}\n />\n )\n}\n", "import 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 { LexicalEditor, LexicalNode, ParagraphNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $createParagraphNode } from 'lexical'\nimport * as React from 'react'\nimport { type JSX, useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { useEditorConfigContext } from '../../../config/client/EditorConfigProvider.js'\nimport { isHTMLElement } from '../../../utils/guard.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'\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 (hoveredElement?.node !== blockNode || hoveredElement?.elem !== _emptyBlockElem) {\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) => {\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 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", "/**\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", "import 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 Props | null,\n result: null as Output | null,\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 verbose = 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, lastNode] = [\n editor.getElementByKey(topLevelNodeKeys[0]),\n editor.getElementByKey(topLevelNodeKeys[topLevelNodeKeys.length - 1]),\n ]\n\n const [firstNodeRect, lastNodeRect] = [\n getBoundingClientRectWithoutTransform(firstNode),\n getBoundingClientRectWithoutTransform(lastNode),\n ]\n\n if (firstNodeRect && lastNodeRect) {\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", "export 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", "export 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", "import 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", "export function isOnHandleElement(element: HTMLElement, handleElementClassName: string): boolean {\n return !!element.closest(`.${handleElementClassName}`)\n}\n", "const 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) return false\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", "import { 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 shouldDisplayHandleInCenter = targetRect.height < 60\n\n if (!shouldDisplayHandleInCenter) {\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 =\n targetRect.top + (actualLineHeight - floatingElemRect.height) / 2 - anchorElementRect.top - 1 // 1px inaccuracy\n } else {\n top =\n targetRect.top -\n floatingElemRect.height / 2 -\n anchorElementRect.top +\n targetRect.height / 2 -\n 1 // 1px inaccuracy\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 } 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 { isHTMLElement } from '../../../utils/guard.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 { 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<HTMLDivElement>(null)\n const targetLineRef = useRef<HTMLDivElement>(null)\n const debugHighlightRef = useRef<HTMLDivElement>(null)\n const isDraggingBlockRef = useRef<boolean>(false)\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)\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 if (draggableBlockElem !== targetBlockElem) {\n const { isBelow, willStayInSamePosition } = setTargetLine(\n editorConfig?.admin?.hideGutter ? '0px' : '3rem',\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 // Prevent default event to be able to trigger onDrop events\n // Calling preventDefault() adds the green plus icon to the cursor,\n // indicating that the drop is allowed.\n event.preventDefault()\n\n if (!willStayInSamePosition) {\n setLastTargetBlock({\n boundingBox: targetBlockElem.getBoundingClientRect(),\n elem: targetBlockElem,\n isBelow,\n })\n }\n } else {\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 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\n const highlightElem = document.createElement('div')\n highlightElem.className = 'lexical-block-highlighter'\n\n // if html data-theme is dark, set the highlighter color to white\n if (document.documentElement.getAttribute('data-theme') === 'dark') {\n highlightElem.style.backgroundColor = 'white'\n } else {\n highlightElem.style.backgroundColor = 'black'\n }\n\n highlightElem.style.transition = 'opacity 0.1s 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 setTimeout(() => {\n highlightElem.style.opacity = '0'\n setTimeout(() => {\n highlightElem.remove()\n }, 1000)\n }, 3000)\n }, 120)\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 }\n }, [\n scrollerElem,\n blockHandleHorizontalOffset,\n anchorElem,\n editor,\n lastTargetBlock,\n draggableBlockElem,\n editorConfig?.admin?.hideGutter,\n ])\n\n function onDragStart(event: ReactDragEvent<HTMLDivElement>): void {\n const dataTransfer = event.dataTransfer\n if (!dataTransfer || !draggableBlockElem) {\n return\n }\n setDragImage(dataTransfer, draggableBlockElem)\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 hideTargetLine(targetLineRef.current, lastTargetBlock?.elem)\n }\n\n return createPortal(\n <React.Fragment>\n <div\n className=\"icon draggable-block-menu\"\n draggable\n onDragEnd={onDragEnd}\n onDragStart={onDragStart}\n ref={menuRef}\n >\n <div className={isEditable ? 'icon' : ''} />\n </div>\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", "import type React from 'react'\n\nimport { getBoundingClientRectWithoutTransform } from './getBoundingRectWithoutTransform.js'\n\nexport function highlightElemOriginalPosition(\n debugHighlightRef: React.RefObject<HTMLDivElement | null>,\n htmlElem: HTMLElement,\n anchorElem: HTMLElement,\n) {\n if (!debugHighlightRef.current) {\n // If the ref doesn't point to an existing element, we can't set styles\n return\n }\n\n const { left: anchorLeft, top: anchorTop } = anchorElem.getBoundingClientRect()\n\n // Get computed styles of the given element\n const boundingRect = getBoundingClientRectWithoutTransform(htmlElem)\n\n // Extract necessary styles (ignoring transform)\n const width = boundingRect.width\n const height = boundingRect.height\n const top = boundingRect.top - anchorTop\n const left = boundingRect.left - anchorLeft\n\n debugHighlightRef.current.style.border = '2px solid green'\n debugHighlightRef.current.style.boxSizing = 'border-box'\n debugHighlightRef.current.style.height = height + 'px'\n debugHighlightRef.current.style.pointerEvents = 'none'\n debugHighlightRef.current.style.position = 'absolute'\n debugHighlightRef.current.style.top = top + 'px'\n debugHighlightRef.current.style.left = left + 'px'\n debugHighlightRef.current.style.width = width + 'px'\n debugHighlightRef.current.style.zIndex = '1000'\n debugHighlightRef.current.style.opacity = '0.5'\n}\n", "import { getCollapsedMargins } from '../utils/getCollapsedMargins.js'\nimport { getBoundingClientRectWithoutTransform } from './getBoundingRectWithoutTransform.js'\nimport { highlightElemOriginalPosition } from './highlightElemOriginalPosition.js'\nconst TARGET_LINE_HALF_HEIGHT = 25\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})`\n targetLineElem.style.opacity = '.4'\n\n /**\n * Move around element below or above the line (= the target / targetBlockElem). Creates \"space\" for the targetLineElem\n *\n * Not needed for empty paragraphs, as an empty paragraph is enough space for the targetLineElem anyways.\n */\n //targetBlockElem.style.opacity = '0.4'\n const buffer = 12 // creates more spacing/padding so target line is not directly next to the targetBlockElem\n if (!isFoundNodeEmptyParagraph) {\n if (isBelow) {\n targetBlockElem.style.marginBottom = TARGET_LINE_HALF_HEIGHT * 2 + buffer + 'px'\n targetLineElem.style.transform = `translate(${left}px, calc(${top}px - ${'0px'}))`\n } else {\n targetBlockElem.style.marginTop = TARGET_LINE_HALF_HEIGHT * 2 + buffer + 'px'\n targetLineElem.style.transform = `translate(${left}px, calc(${top - TARGET_LINE_HALF_HEIGHT * 2}px - ${'0px'}))`\n }\n } else {\n targetLineElem.style.transform = `translate(${left}px, ${top - TARGET_LINE_HALF_HEIGHT}px)`\n }\n\n if (DEBUG) {\n //targetBlockElem.style.border = '3px solid red'\n highlightElemOriginalPosition(debugHighlightRef, targetBlockElem, anchorElem)\n }\n\n /**\n * Properly reset previous targetBlockElem styles\n */\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 animationTimer = 0\n return {\n isBelow,\n willStayInSamePosition,\n }\n}\n", "import type { JSX } from 'react'\n\nimport { ContentEditable } from '@lexical/react/LexicalContentEditable.js'\nimport { useTranslation } from '@payloadcms/ui'\nimport * as React from 'react'\n\nexport function LexicalContentEditable({ className }: { className?: string }): JSX.Element {\n const { t } = useTranslation<{}, string>()\n\n return (\n <ContentEditable\n aria-placeholder={t('lexical:general:placeholder')}\n className={className ?? 'ContentEditable__root'}\n placeholder={<p className=\"editor-placeholder\">{t('lexical:general:placeholder')}</p>}\n />\n )\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["FieldDescription", "FieldError", "FieldLabel", "useField", "useFieldProps", "withCondition", "useCallback", "ErrorBoundary", "LexicalComposer", "React", "useMemo", "useLexicalComposerContext", "LexicalErrorBoundary", "HistoryPlugin", "OnChangePlugin", "RichTextPlugin", "TabIndentationPlugin", "BLUR_COMMAND", "COMMAND_PRIORITY_LOW", "FOCUS_COMMAND", "React", "useEffect", "useState", "jsx", "EditorPlugin", "anchorElem", "clientProps", "plugin", "LexicalMarkdownShortcutPlugin", "jsx", "MarkdownShortcutPlugin", "editorConfig", "useEditorConfigContext", "LexicalMarkdownShortcutPlugin", "useLexicalComposerContext", "useTranslation", "useCallback", "useMemo", "useState", "ReactDOM", "useCallback", "useMenuTriggerMatch", "trigger", "maxLength", "minLength", "useCallback", "query", "validChars", "PUNCTUATION", "match", "maybeLeadingWhitespace", "matchingString", "jsx", "jsxs", "baseClass", "SlashMenuItem", "isSelected", "item", "onClick", "onMouseEnter", "i18n", "useTranslation", "className", "title", "element", "SlashMenuPlugin", "anchorElem", "editor", "useLexicalComposerContext", "queryString", "setQueryString", "useState", "editorConfig", "useEditorConfigContext", "checkForTriggerMatch", "useMenuTriggerMatch", "getDynamicItems", "useCallback", "groupWithItems", "dynamicItem", "dynamicGroupWithItems", "groups", "useMemo", "groupsWithItems", "groupWithItem", "group", "filteredItems", "itemTitle", "keyword", "dynamicItemGroups", "dynamicGroup", "onSelectItem", "selectedItem", "nodeToRemove", "closeMenu", "matchingString", "LexicalTypeaheadMenuPlugin", "anchorElementRef", "selectItemAndCleanUp", "selectedItemKey", "setSelectedItemKey", "groupTitle", "oi", "useLexicalComposerContext", "$createParagraphNode", "React", "useCallback", "useEffect", "useRef", "useState", "createPortal", "calculateDistanceFromScrollerElem", "scrollerElem", "pageX", "pageY", "target", "horizontalBuffer", "verticalBuffer", "distanceFromScrollerElem", "bottom", "left", "right", "top", "adjustedTop", "adjustedBottom", "$getNodeByKey", "getBoundingClientRectWithoutTransform", "elem", "rect", "transformValue", "lastNumberOfTransformValue", "getCollapsedMargins", "elem", "getMargin", "element", "margin", "marginBottom", "marginTop", "prevElemSiblingMarginBottom", "nextElemSiblingMarginTop", "collapsedTopMargin", "$getRoot", "getTopLevelNodeKeys", "editor", "Downward", "Upward", "Indeterminate", "cache", "isPointClose", "previous", "current", "threshold", "dx", "dy", "getNodeCloseToPoint", "props", "anchorElem", "cache_threshold", "editor", "fuzzy", "horizontalOffset", "x", "y", "startIndex", "useEdgeAsDefault", "verbose", "anchorElementRect", "topLevelNodeKeys", "getTopLevelNodeKeys", "closestBlockElem", "firstNode", "lastNode", "firstNodeRect", "lastNodeRect", "getBoundingClientRectWithoutTransform", "$getNodeByKey", "index", "direction", "key", "elem", "point", "Point", "domRect", "Rect", "marginBottom", "marginTop", "getCollapsedMargins", "rect", "distance", "isOnBottomSide", "isOnTopSide", "isOnHandleElement", "element", "handleElementClassName", "replacedElements", "doesLineHeightAffectElement", "htmlElem", "style", "setHandlePosition", "targetElem", "handleElem", "anchorElem", "leftOffset", "targetRect", "targetStyle", "floatingElemRect", "anchorElementRect", "top", "actualLineHeight", "doesLineHeightAffectElement", "left", "jsx", "ADD_BLOCK_MENU_CLASSNAME", "prevIndex", "getCurrentIndex", "keysLength", "useAddBlockHandle", "editor", "anchorElem", "isEditable", "scrollerElem", "editorConfig", "useEditorConfigContext", "blockHandleHorizontalOffset", "menuRef", "useRef", "hoveredElement", "setHoveredElement", "useState", "useEffect", "onDocumentMouseMove", "event", "target", "isHTMLElement", "distanceFromScrollerElem", "calculateDistanceFromScrollerElem", "isOnHandleElement", "topLevelNodeKeys", "getTopLevelNodeKeys", "_emptyBlockElem", "blockNode", "foundAtIndex", "getNodeCloseToPoint", "Point", "setHandlePosition", "handleAddClick", "useCallback", "hoveredElementToUse", "isEmptyParagraph", "newParagraph", "$createParagraphNode", "ENABLE_SLASH_MENU_COMMAND", "createPortal", "AddBlockHandlePlugin", "useLexicalComposerContext", "useLexicalComposerContext", "eventFiles", "$getNearestNodeFromDOMNode", "$getNodeByKey", "React", "useEffect", "useRef", "useState", "createPortal", "highlightElemOriginalPosition", "debugHighlightRef", "htmlElem", "anchorElem", "anchorLeft", "anchorTop", "boundingRect", "getBoundingClientRectWithoutTransform", "width", "height", "top", "left", "TARGET_LINE_HALF_HEIGHT", "TEXT_BOX_HORIZONTAL_PADDING", "DEBUG", "animationTimer", "setTargetLine", "offsetWidth", "offsetLeft", "targetLineElem", "targetBlockElem", "lastTargetBlock", "mouseY", "anchorElem", "event", "debugHighlightRef", "isFoundNodeEmptyParagraph", "targetBlockElemHeight", "targetBlockElemTop", "anchorTop", "anchorWidth", "marginBottom", "marginTop", "getCollapsedMargins", "lineTop", "isBelow", "willStayInSamePosition", "lastBoundingBoxPosition", "currentBoundingBoxPosition", "targetElemTranslate2", "top", "left", "buffer", "highlightElemOriginalPosition", "jsx", "jsxs", "DRAGGABLE_BLOCK_MENU_CLASSNAME", "DRAG_DATA_FORMAT", "prevIndex", "getCurrentIndex", "keysLength", "setDragImage", "dataTransfer", "draggableBlockElem", "transform", "hideTargetLine", "targetLineElem", "lastTargetBlockElem", "useDraggableBlockMenu", "editor", "anchorElem", "isEditable", "scrollerElem", "menuRef", "useRef", "targetLineRef", "debugHighlightRef", "isDraggingBlockRef", "setDraggableBlockElem", "useState", "lastTargetBlock", "setLastTargetBlock", "editorConfig", "useEditorConfigContext", "blockHandleHorizontalOffset", "useEffect", "onDocumentMouseMove", "event", "target", "isHTMLElement", "distanceFromScrollerElem", "calculateDistanceFromScrollerElem", "isOnHandleElement", "topLevelNodeKeys", "getTopLevelNodeKeys", "_draggableBlockElem", "foundAtIndex", "isFoundNodeEmptyParagraph", "getNodeCloseToPoint", "Point", "setHandlePosition", "onDragover", "isFileTransfer", "eventFiles", "pageY", "targetBlockElem", "isBelow", "willStayInSamePosition", "setTargetLine", "onDrop", "dragData", "draggedNode", "$getNodeByKey", "targetNode", "$getNearestNodeFromDOMNode", "targetBlockElemHeight", "targetBlockElemTop", "getBoundingClientRectWithoutTransform", "highlighter", "newInsertedElem", "newInsertedElemRect", "highlightElem", "onDragStart", "nodeKey", "node", "onDragEnd", "createPortal", "DraggableBlockPlugin", "useLexicalComposerContext", "ContentEditable", "useTranslation", "jsx", "LexicalContentEditable", "className", "t", "jsx", "jsxs", "LexicalEditor", "props", "editorConfig", "editorContainerRef", "onChange", "editorConfigContext", "useEditorConfigContext", "editor", "useLexicalComposerContext", "floatingAnchorElem", "setFloatingAnchorElem", "useState", "onRef", "_floatingAnchorElem", "useEffect", "handleFocus", "handleBlur", "unregisterFocus", "FOCUS_COMMAND", "COMMAND_PRIORITY_LOW", "unregisterBlur", "BLUR_COMMAND", "isSmallWidthViewport", "setIsSmallWidthViewport", "updateViewPortWidth", "isNextSmallWidthViewport", "plugin", "EditorPlugin", "RichTextPlugin", "LexicalErrorBoundary", "LexicalContentEditable", "OnChangePlugin", "editorState", "tags", "DraggableBlockPlugin", "AddBlockHandlePlugin", "SlashMenuPlugin", "HistoryPlugin", "MarkdownShortcutPlugin", "TabIndentationPlugin", "jsx", "NestProviders", "children", "providers", "Component", "LexicalProvider", "props", "editorConfig", "fieldProps", "onChange", "path", "readOnly", "value", "parentContext", "useEditorConfigContext", "editorContainerRef", "processedValue", "useMemo", "processed", "hook", "initialConfig", "getEnabledNodes", "error", "LexicalComposer", "EditorConfigProvider", "LexicalEditor", "jsx", "jsxs", "baseClass", "RichTextComponent", "props", "name", "CustomDescription", "CustomError", "CustomLabel", "className", "descriptionProps", "editorConfig", "errorProps", "label", "labelProps", "pathFromProps", "readOnlyFromProps", "required", "style", "validate", "width", "memoizedValidate", "useCallback", "value", "validationOptions", "pathFromContext", "readOnlyFromContext", "useFieldProps", "fieldType", "useField", "errorMessage", "formInitializing", "formProcessing", "initialValue", "path", "schemaPath", "setValue", "showError", "disabled", "classes", "FieldError", "FieldLabel", "ErrorBoundary", "fallbackRender", "LexicalProvider", "editorState", "serializedEditorState", "hook", "FieldDescription", "error", "RichText", "withCondition"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";import{a as $,d as S}from"./chunk-6QXGZYUK.js";import{b as y}from"./chunk-IWZVO3AI.js";import{useLexicalComposerContext as H}from"@lexical/react/LexicalComposerContext.js";import{useLexicalNodeSelection as W}from"@lexical/react/useLexicalNodeSelection.js";import{mergeRegister as Y}from"@lexical/utils";import{getTranslation as j}from"@payloadcms/translations";import{Button as T,useConfig as U,useDocumentDrawer as q,usePayloadAPI as z,useTranslation as G}from"@payloadcms/ui";import{$getNodeByKey as M,$getSelection as J,$isNodeSelection as Q,CLICK_COMMAND as V,COMMAND_PRIORITY_LOW as C,KEY_BACKSPACE_COMMAND as X,KEY_DELETE_COMMAND as Z}from"lexical";import ee,{useCallback as R,useEffect as te,useReducer as oe,useRef as se,useState as ae}from"react";import{jsx as n,jsxs as g}from"react/jsx-runtime";var t="lexical-relationship",A={depth:0},ne=m=>{let{data:{relationTo:w,value:l},nodeKey:s}=m,d=se(null),[o]=H(),[a,i,p]=W(s),{field:v}=y(),{collections:K,routes:{api:O},serverURL:P}=U(),[r,le]=ae(()=>K.find(e=>e.slug===w)),{i18n:B,t:u}=G(),[_,I]=oe(e=>e+1,0),[{data:N},{setParams:D}]=z(`${P}${O}/${r.slug}/${l}`,{initialParams:A}),[L,x,{closeDrawer:E}]=q({id:l,collectionSlug:r.slug}),k=R(()=>{o.update(()=>{M(s).remove()})},[o,s]),F=ee.useCallback(({doc:e})=>{D({...A,cacheBust:_}),E(),I()},[_,D,E]),f=R(e=>{if(a&&Q(J())){e.preventDefault();let b=M(s);if(S(b))return b.remove(),!0}return!1},[a,s]),h=R(e=>{let c=e;return c.target===d.current||d.current?.contains(c.target)?(c.shiftKey?i(!a):a||(p(),i(!0)),!0):!1},[a,i,p]);return te(()=>Y(o.registerCommand(V,h,C),o.registerCommand(Z,f,C),o.registerCommand(X,f,C)),[p,o,a,s,f,i,h]),g("div",{className:[t,a&&`${t}--selected`].filter(Boolean).join(" "),contentEditable:!1,ref:d,children:[g("div",{className:`${t}__wrap`,children:[n("p",{className:`${t}__label`,children:u("fields:labelRelationship",{label:j(r.labels.singular,B)})}),n(x,{className:`${t}__doc-drawer-toggler`,children:n("p",{className:`${t}__title`,children:N?N[r?.admin?.useAsTitle||"id"]:l})})]}),o.isEditable()&&g("div",{className:`${t}__actions`,children:[n(T,{buttonStyle:"icon-label",className:`${t}__swapButton`,disabled:v?.readOnly,el:"div",icon:"swap",onClick:()=>{o.dispatchCommand($,{replace:{nodeKey:s}})},round:!0,tooltip:u("fields:swapRelationship")}),n(T,{buttonStyle:"icon-label",className:`${t}__removeButton`,disabled:v?.readOnly,icon:"x",onClick:e=>{e.preventDefault(),k()},round:!0,tooltip:u("fields:removeRelationship")})]}),l&&n(L,{onSave:F})]})},ge=m=>n(ne,{...m});export{ge as RelationshipComponent};
|
|
2
|
-
//# sourceMappingURL=RelationshipComponent-ZR2OCBGL.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/relationship/nodes/components/RelationshipComponent.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\nimport type { ElementFormatType } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection.js'\nimport { mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, useConfig, useDocumentDrawer, usePayloadAPI, useTranslation } from '@payloadcms/ui'\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n} from 'lexical'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\n\nimport type { RelationshipData } from '../RelationshipNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND } from '../../drawer/commands.js'\nimport { $isRelationshipNode } from '../RelationshipNode.js'\nconst baseClass = 'lexical-relationship'\n\nconst initialParams = {\n depth: 0,\n}\n\ntype Props = {\n className?: string\n data: RelationshipData\n format?: ElementFormatType\n nodeKey?: string\n}\n\nconst Component: React.FC<Props> = (props) => {\n const {\n data: { relationTo, value: id },\n nodeKey,\n } = props\n\n const relationshipElemRef = useRef<HTMLDivElement | null>(null)\n\n const [editor] = useLexicalComposerContext()\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey)\n const { field } = useEditorConfigContext()\n const {\n collections,\n routes: { api },\n serverURL,\n } = useConfig()\n\n const [relatedCollection, setRelatedCollection] = useState(() =>\n collections.find((coll) => coll.slug === relationTo),\n )\n\n const { i18n, t } = useTranslation()\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0)\n const [{ data }, { setParams }] = usePayloadAPI(\n `${serverURL}${api}/${relatedCollection.slug}/${id}`,\n { initialParams },\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\n id,\n collectionSlug: relatedCollection.slug,\n })\n\n const removeRelationship = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey).remove()\n })\n }, [editor, nodeKey])\n\n const updateRelationship = React.useCallback(\n ({ doc }) => {\n setParams({\n ...initialParams,\n cacheBust, // do this to get the usePayloadAPI to re-fetch the data even though the URL string hasn't changed\n })\n\n closeDrawer()\n dispatchCacheBust()\n },\n [cacheBust, setParams, closeDrawer],\n )\n\n const $onDelete = useCallback(\n (payload: KeyboardEvent) => {\n if (isSelected && $isNodeSelection($getSelection())) {\n const event: KeyboardEvent = payload\n event.preventDefault()\n const node = $getNodeByKey(nodeKey)\n if ($isRelationshipNode(node)) {\n node.remove()\n return true\n }\n }\n return false\n },\n [isSelected, nodeKey],\n )\n const onClick = useCallback(\n (payload: MouseEvent) => {\n const event = payload\n // Check if relationshipElemRef.target or anything WITHIN relationshipElemRef.target was clicked\n if (\n event.target === relationshipElemRef.current ||\n relationshipElemRef.current?.contains(event.target as Node)\n ) {\n if (event.shiftKey) {\n setSelected(!isSelected)\n } else {\n if (!isSelected) {\n clearSelection()\n setSelected(true)\n }\n }\n return true\n }\n\n return false\n },\n [isSelected, setSelected, clearSelection],\n )\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<MouseEvent>(CLICK_COMMAND, onClick, 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 )\n }, [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected, onClick])\n\n return (\n <div\n className={[baseClass, isSelected && `${baseClass}--selected`].filter(Boolean).join(' ')}\n contentEditable={false}\n ref={relationshipElemRef}\n >\n <div className={`${baseClass}__wrap`}>\n <p className={`${baseClass}__label`}>\n {t('fields:labelRelationship', {\n label: getTranslation(relatedCollection.labels.singular, i18n),\n })}\n </p>\n <DocumentDrawerToggler className={`${baseClass}__doc-drawer-toggler`}>\n <p className={`${baseClass}__title`}>\n {data ? data[relatedCollection?.admin?.useAsTitle || 'id'] : id}\n </p>\n </DocumentDrawerToggler>\n </div>\n {editor.isEditable() && (\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__swapButton`}\n disabled={field?.readOnly}\n el=\"div\"\n icon=\"swap\"\n onClick={() => {\n editor.dispatchCommand(INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND, {\n replace: { nodeKey },\n })\n }}\n round\n tooltip={t('fields:swapRelationship')}\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={field?.readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeRelationship()\n }}\n round\n tooltip={t('fields:removeRelationship')}\n />\n </div>\n )}\n\n {id && <DocumentDrawer onSave={updateRelationship} />}\n </div>\n )\n}\n\nexport const RelationshipComponent = (props: Props): React.ReactNode => {\n return <Component {...props} />\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["useLexicalComposerContext", "useLexicalNodeSelection", "mergeRegister", "getTranslation", "Button", "useConfig", "useDocumentDrawer", "usePayloadAPI", "useTranslation", "$getNodeByKey", "$getSelection", "$isNodeSelection", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_BACKSPACE_COMMAND", "KEY_DELETE_COMMAND", "React", "useCallback", "useEffect", "useReducer", "useRef", "useState", "jsx", "jsxs", "baseClass", "initialParams", "Component", "props", "relationTo", "id", "nodeKey", "relationshipElemRef", "useRef", "editor", "useLexicalComposerContext", "isSelected", "setSelected", "clearSelection", "useLexicalNodeSelection", "field", "useEditorConfigContext", "collections", "api", "serverURL", "useConfig", "relatedCollection", "setRelatedCollection", "useState", "coll", "i18n", "t", "useTranslation", "cacheBust", "dispatchCacheBust", "useReducer", "state", "data", "setParams", "usePayloadAPI", "DocumentDrawer", "DocumentDrawerToggler", "closeDrawer", "useDocumentDrawer", "removeRelationship", "useCallback", "$getNodeByKey", "updateRelationship", "React", "doc", "$onDelete", "payload", "$isNodeSelection", "$getSelection", "node", "$isRelationshipNode", "onClick", "event", "useEffect", "mergeRegister", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_DELETE_COMMAND", "KEY_BACKSPACE_COMMAND", "getTranslation", "Button", "INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND", "RelationshipComponent"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createCommand as l}from"lexical";var h=l("INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND");import{DecoratorBlockNode as s}from"@lexical/react/LexicalDecoratorBlockNode.js";import*as n from"react";import{jsx as c}from"react/jsx-runtime";var p=n.lazy(()=>import("./RelationshipComponent-ZR2OCBGL.js").then(a=>({default:a.RelationshipComponent})));function d(a){let t=a.getAttribute("data-lexical-relationship-id"),e=a.getAttribute("data-lexical-relationship-relationTo");return t!=null&&e!=null?{node:r({relationTo:e,value:t})}:null}var o=class a extends s{__data;constructor({data:t,format:e,key:i}){super(e,i),this.__data=t}static clone(t){return new a({data:t.__data,format:t.__format,key:t.__key})}static getType(){return"relationship"}static importDOM(){return{div:t=>!t.hasAttribute("data-lexical-relationship-relationTo")||!t.hasAttribute("data-lexical-relationship-id")?null:{conversion:d,priority:2}}}static importJSON(t){t.version===1&&t?.value?.id&&(t.value=t.value.id);let e={relationTo:t.relationTo,value:t.value},i=r(e);return i.setFormat(t.format),i}static isInline(){return!1}decorate(t,e){return c(p,{className:e.theme.relationship??"LexicalEditorTheme__relationship",data:this.__data,format:this.__format,nodeKey:this.getKey()})}exportDOM(){let t=document.createElement("div");t.setAttribute("data-lexical-relationship-id",String(this.__data?.value)),t.setAttribute("data-lexical-relationship-relationTo",this.__data?.relationTo);let e=document.createTextNode(this.getTextContent());return t.append(e),{element:t}}exportJSON(){return{...super.exportJSON(),...this.getData(),type:"relationship",version:2}}getData(){return this.getLatest().__data}getTextContent(){return`${this.__data?.relationTo} relation to ${this.__data?.value}`}setData(t){let e=this.getWritable();e.__data=t}};function r(a){return new o({data:a})}function x(a){return a instanceof o}export{h as a,o as b,r as c,x as d};
|
|
2
|
-
//# sourceMappingURL=chunk-6QXGZYUK.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/relationship/drawer/commands.ts", "../../../src/features/relationship/nodes/RelationshipNode.tsx"],
|
|
4
|
-
"sourcesContent": ["import type { LexicalCommand } from 'lexical'\n\nimport { createCommand } from 'lexical'\n\nexport const INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND: LexicalCommand<{\n replace: { nodeKey: string } | false\n}> = createCommand('INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND')\n", "import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n EditorConfig,\n ElementFormatType,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\nimport type { CollectionSlug } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport * as React from 'react'\n\nconst RelationshipComponent = React.lazy(() =>\n import('./components/RelationshipComponent.js').then((module) => ({\n default: module.RelationshipComponent,\n })),\n)\n\nexport type RelationshipData = {\n relationTo: CollectionSlug\n value: number | string\n}\n\nexport type SerializedRelationshipNode = {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'relationship'\n} & Spread<RelationshipData, SerializedDecoratorBlockNode>\n\nfunction $relationshipElementToNode(domNode: HTMLDivElement): DOMConversionOutput | null {\n const id = domNode.getAttribute('data-lexical-relationship-id')\n const relationTo = domNode.getAttribute('data-lexical-relationship-relationTo')\n\n if (id != null && relationTo != null) {\n const node = $createRelationshipNode({\n relationTo,\n value: id,\n })\n return { node }\n }\n return null\n}\n\nexport class RelationshipNode extends DecoratorBlockNode {\n __data: RelationshipData\n\n constructor({\n data,\n format,\n key,\n }: {\n data: RelationshipData\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__data = data\n }\n\n static clone(node: RelationshipNode): RelationshipNode {\n return new RelationshipNode({\n data: node.__data,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'relationship'\n }\n\n static importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {\n div: (domNode: HTMLDivElement) => {\n if (\n !domNode.hasAttribute('data-lexical-relationship-relationTo') ||\n !domNode.hasAttribute('data-lexical-relationship-id')\n ) {\n return null\n }\n return {\n conversion: $relationshipElementToNode,\n priority: 2,\n }\n },\n }\n }\n\n static importJSON(serializedNode: SerializedRelationshipNode): RelationshipNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n\n const importedData: RelationshipData = {\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n const node = $createRelationshipNode(importedData)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return (\n <RelationshipComponent\n className={config.theme.relationship ?? 'LexicalEditorTheme__relationship'}\n data={this.__data}\n format={this.__format}\n nodeKey={this.getKey()}\n />\n )\n }\n exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n element.setAttribute('data-lexical-relationship-id', String(this.__data?.value))\n element.setAttribute('data-lexical-relationship-relationTo', this.__data?.relationTo)\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n exportJSON(): SerializedRelationshipNode {\n return {\n ...super.exportJSON(),\n ...this.getData(),\n type: 'relationship',\n version: 2,\n }\n }\n\n getData(): RelationshipData {\n return this.getLatest().__data\n }\n\n getTextContent(): string {\n return `${this.__data?.relationTo} relation to ${this.__data?.value}`\n }\n\n setData(data: RelationshipData): void {\n const writable = this.getWritable()\n writable.__data = data\n }\n}\n\nexport function $createRelationshipNode(data: RelationshipData): RelationshipNode {\n return new RelationshipNode({\n data,\n })\n}\n\nexport function $isRelationshipNode(\n node: LexicalNode | RelationshipNode | null | undefined,\n): node is RelationshipNode {\n return node instanceof RelationshipNode\n}\n"],
|
|
5
|
-
"mappings": "AAEA,OAAS,iBAAAA,MAAqB,UAEvB,IAAMC,EAERD,EAAc,yCAAyC,ECS5D,OAAS,sBAAAE,MAA0B,8CACnC,UAAYC,MAAW,QAiGjB,cAAAC,MAAA,oBA/FN,IAAMC,EAA8B,OAAK,IACvC,OAAO,qCAAuC,EAAE,KAAMC,IAAY,CAChE,QAASA,EAAO,qBAClB,EAAE,CACJ,EAYA,SAASC,EAA2BC,EAAqD,CACvF,IAAMC,EAAKD,EAAQ,aAAa,8BAA8B,EACxDE,EAAaF,EAAQ,aAAa,sCAAsC,EAE9E,OAAIC,GAAM,MAAQC,GAAc,KAKvB,CAAE,KAJIC,EAAwB,CACnC,WAAAD,EACA,MAAOD,CACT,CAAC,CACa,EAET,IACT,CAEO,IAAMG,EAAN,MAAMC,UAAyBX,CAAmB,CACvD,OAEA,YAAY,CACV,KAAAY,EACA,OAAAC,EACA,IAAAC,CACF,EAIG,CACD,MAAMD,EAAQC,CAAG,EACjB,KAAK,OAASF,CAChB,CAEA,OAAO,MAAMG,EAA0C,CACrD,OAAO,IAAIJ,EAAiB,CAC1B,KAAMI,EAAK,OACX,OAAQA,EAAK,SACb,IAAKA,EAAK,KACZ,CAAC,CACH,CAEA,OAAO,SAAkB,CACvB,MAAO,cACT,CAEA,OAAO,WAAqD,CAC1D,MAAO,CACL,IAAMT,GAEF,CAACA,EAAQ,aAAa,sCAAsC,GAC5D,CAACA,EAAQ,aAAa,8BAA8B,EAE7C,KAEF,CACL,WAAYD,EACZ,SAAU,CACZ,CAEJ,CACF,CAEA,OAAO,WAAWW,EAA8D,CAC1EA,EAAe,UAAY,GAAMA,GAAgB,OAAqC,KACxFA,EAAe,MAASA,EAAe,MAAoC,IAG7E,IAAMC,EAAiC,CACrC,WAAYD,EAAe,WAC3B,MAAOA,EAAe,KACxB,EACMD,EAAON,EAAwBQ,CAAY,EACjD,OAAAF,EAAK,UAAUC,EAAe,MAAM,EAC7BD,CACT,CAEA,OAAO,UAAkB,CACvB,MAAO,EACT,CAEA,SAASG,EAAuBC,EAAmC,CACjE,OACEjB,EAACC,EAAA,CACC,UAAWgB,EAAO,MAAM,cAAgB,mCACxC,KAAM,KAAK,OACX,OAAQ,KAAK,SACb,QAAS,KAAK,OAAO,EACvB,CAEJ,CACA,WAA6B,CAC3B,IAAMC,EAAU,SAAS,cAAc,KAAK,EAC5CA,EAAQ,aAAa,+BAAgC,OAAO,KAAK,QAAQ,KAAK,CAAC,EAC/EA,EAAQ,aAAa,uCAAwC,KAAK,QAAQ,UAAU,EAEpF,IAAMC,EAAO,SAAS,eAAe,KAAK,eAAe,CAAC,EAC1D,OAAAD,EAAQ,OAAOC,CAAI,EACZ,CAAE,QAAAD,CAAQ,CACnB,CAEA,YAAyC,CACvC,MAAO,CACL,GAAG,MAAM,WAAW,EACpB,GAAG,KAAK,QAAQ,EAChB,KAAM,eACN,QAAS,CACX,CACF,CAEA,SAA4B,CAC1B,OAAO,KAAK,UAAU,EAAE,MAC1B,CAEA,gBAAyB,CACvB,MAAO,GAAG,KAAK,QAAQ,UAAU,gBAAgB,KAAK,QAAQ,KAAK,EACrE,CAEA,QAAQR,EAA8B,CACpC,IAAMU,EAAW,KAAK,YAAY,EAClCA,EAAS,OAASV,CACpB,CACF,EAEO,SAASH,EAAwBG,EAA0C,CAChF,OAAO,IAAIF,EAAiB,CAC1B,KAAAE,CACF,CAAC,CACH,CAEO,SAASW,EACdR,EAC0B,CAC1B,OAAOA,aAAgBL,CACzB",
|
|
6
|
-
"names": ["createCommand", "INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND", "DecoratorBlockNode", "React", "jsx", "RelationshipComponent", "module", "$relationshipElementToNode", "domNode", "id", "relationTo", "$createRelationshipNode", "RelationshipNode", "_RelationshipNode", "data", "format", "key", "node", "serializedNode", "importedData", "editor", "config", "element", "text", "writable", "$isRelationshipNode"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as y}from"./chunk-IWZVO3AI.js";import{Drawer as $}from"@payloadcms/ui";import{Form as w,FormSubmit as R,RenderFields as F,useConfig as E,useDocumentInfo as M,useFieldProps as T,useTranslation as A}from"@payloadcms/ui";import{getFormState as g}from"@payloadcms/ui/shared";import{useCallback as L,useEffect as P,useState as I}from"react";import{v4 as k}from"uuid";import{jsx as D,jsxs as N}from"react/jsx-runtime";var C=({data:e,featureKey:t,handleDrawerSubmit:o,schemaPathSuffix:a})=>{let{t:i}=A(),{id:n}=M(),{schemaPath:l}=T(),r=E(),[p,x]=I(!1),{field:{richTextComponentMap:_}}=y(),U=`lexical_internal_feature.${t}.fields${a?`.${a}`:""}`,s=`${l}.lexical_internal_feature.${t}${a?`.${a}`:""}`,d=_.get(U);P(()=>{(async()=>{let O=await g({apiRoute:r.routes.api,body:{id:n,data:e??{},operation:"update",schemaPath:s},serverURL:r.serverURL});x(O)})()},[r.routes.api,r.serverURL,s,n,e]);let m=L(async({formState:f})=>await g({apiRoute:r.routes.api,body:{id:n,formState:f,operation:"update",schemaPath:s},serverURL:r.serverURL}),[r.routes.api,r.serverURL,s,n]);return p===!1?null:N(w,{beforeSubmit:[m],disableValidationOnSubmit:!0,fields:Array.isArray(d)?d:[],initialState:p,onChange:[m],onSubmit:o,uuid:k(),children:[D(F,{fieldMap:Array.isArray(d)?d:[],forceRender:!0,path:"",readOnly:!1,schemaPath:s}),D(R,{children:i("fields:saveChanges")})]})};import{jsx as S}from"react/jsx-runtime";var lt=({className:e,data:t,drawerSlug:o,drawerTitle:a,featureKey:i,handleDrawerSubmit:n,schemaPathSuffix:l})=>S($,{className:e,slug:o,title:a??"",children:S(C,{data:t,featureKey:i,handleDrawerSubmit:n,schemaPathSuffix:l})});import{useAuth as J,useConfig as H,useEntityVisibility as B}from"@payloadcms/ui";import*as c from"react";var K=(e,t)=>e.filter(({slug:o,admin:{enableRichTextRelationship:a},upload:i})=>t.visibleEntities.collections.includes(o)?t?.uploads?a&&!!i:i?!1:a:!1),ct=e=>{let{children:t,uploads:o=!1,...a}=e,{collections:i}=H(),{user:n}=J(),{visibleEntities:l}=B(),[r]=c.useState(()=>K(i,{uploads:o,user:n,visibleEntities:l}).map(({slug:p})=>p));return r.length?c.cloneElement(t,{...a,enabledCollectionSlugs:r}):null};import{createCommand as W}from"lexical";var ft=W("INSERT_UPLOAD_WITH_DRAWER_COMMAND");import{DecoratorBlockNode as j}from"@lexical/react/LexicalDecoratorBlockNode.js";import b from"bson-objectid";import{$applyNodeReplacement as V}from"lexical";import*as h from"react";import{jsx as Q}from"react/jsx-runtime";var X=h.lazy(()=>import("./component-D4GWDXK5.js").then(e=>({default:e.UploadComponent})));function G(e){return e.parentElement!=null&&e.parentElement.tagName==="LI"&&e.previousSibling===null&&e.getAttribute("aria-roledescription")==="checkbox"}function q(e){if(e.hasAttribute("data-lexical-upload-relation-to")&&e.hasAttribute("data-lexical-upload-id")){let o=e.getAttribute("data-lexical-upload-id"),a=e.getAttribute("data-lexical-upload-relation-to");if(o!=null&&a!=null)return{node:v({data:{fields:{},relationTo:a,value:o}})}}let t=e;return t.src.startsWith("file:///")||G(t),null}var u=class e extends j{__data;constructor({data:t,format:o,key:a}){super(o,a),this.__data=t}static clone(t){return new e({data:t.__data,format:t.__format,key:t.__key})}static getType(){return"upload"}static importDOM(){return{img:t=>({conversion:q,priority:0})}}static importJSON(t){t.version===1&&t?.value?.id&&(t.value=t.value.id),t.version===2&&!t?.id&&(t.id=new b.default().toHexString(),t.version=3);let o={id:t.id,fields:t.fields,relationTo:t.relationTo,value:t.value},a=v({data:o});return a.setFormat(t.format),a}static isInline(){return!1}decorate(){return Q(X,{data:this.__data,format:this.__format,nodeKey:this.getKey()})}exportDOM(){let t=document.createElement("img");return t.setAttribute("data-lexical-upload-id",String(this.__data?.value)),t.setAttribute("data-lexical-upload-relation-to",this.__data?.relationTo),{element:t}}exportJSON(){return{...super.exportJSON(),...this.getData(),type:"upload",version:3}}getData(){return this.getLatest().__data}setData(t){let o=this.getWritable();o.__data=t}updateDOM(){return!1}};function v({data:e}){return e?.id||(e.id=new b.default().toHexString()),V(new u({data:e}))}function St(e){return e instanceof u}export{lt as a,ct as b,ft as c,u as d,v as e,St as f};
|
|
2
|
-
//# sourceMappingURL=chunk-IPCJ5EVK.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/utilities/fieldsDrawer/Drawer.tsx", "../../../src/utilities/fieldsDrawer/DrawerContent.tsx", "../../../src/features/relationship/utils/EnabledRelationshipsCondition.tsx", "../../../src/features/upload/drawer/commands.ts", "../../../src/features/upload/nodes/UploadNode.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\nimport type { Data, FormState, JsonObject } from 'payload'\n\nimport { Drawer } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { DrawerContent } from './DrawerContent.js'\n\nexport type FieldsDrawerProps = {\n className?: string\n data?: Data\n drawerSlug: string\n drawerTitle?: string\n featureKey: string\n handleDrawerSubmit: (fields: FormState, data: JsonObject) => void\n schemaPathSuffix?: string\n}\n\n/**\n * This FieldsDrawer component can be used to easily create a Drawer that contains a form with fields within your feature.\n * The fields are taken directly from the schema map based on your `featureKey` and `schemaPathSuffix`. Thus, this can only\n * be used if you provide your field schema inside the `generateSchemaMap` prop of your feature.server.ts.\n */\nexport const FieldsDrawer: React.FC<FieldsDrawerProps> = ({\n className,\n data,\n drawerSlug,\n drawerTitle,\n featureKey,\n handleDrawerSubmit,\n schemaPathSuffix,\n}) => {\n // The Drawer only renders its children (and itself) if it's open. Thus, by extracting the main content\n // to DrawerContent, this should be faster\n return (\n <Drawer className={className} slug={drawerSlug} title={drawerTitle ?? ''}>\n <DrawerContent\n data={data}\n featureKey={featureKey}\n handleDrawerSubmit={handleDrawerSubmit}\n schemaPathSuffix={schemaPathSuffix}\n />\n </Drawer>\n )\n}\n", "'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type { FormState } from 'payload'\n\nimport {\n Form,\n FormSubmit,\n RenderFields,\n useConfig,\n useDocumentInfo,\n useFieldProps,\n useTranslation,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { FieldsDrawerProps } from './Drawer.js'\n\nimport { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js'\n\nexport const DrawerContent: React.FC<Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>> = ({\n data,\n featureKey,\n handleDrawerSubmit,\n schemaPathSuffix,\n}) => {\n const { t } = useTranslation()\n const { id } = useDocumentInfo()\n const { schemaPath } = useFieldProps()\n const config = useConfig()\n const [initialState, setInitialState] = useState<FormState | false>(false)\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n const componentMapRenderedFieldsPath = `lexical_internal_feature.${featureKey}.fields${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fieldMap = richTextComponentMap.get(componentMapRenderedFieldsPath) // Field Schema\n\n useEffect(() => {\n const awaitInitialState = async () => {\n const state = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n data: data ?? {},\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n }) // Form State\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n }, [config.routes.api, config.serverURL, schemaFieldsPath, id, data])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n return await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n formState: prevFormState,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n },\n\n [config.routes.api, config.serverURL, schemaFieldsPath, id],\n )\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\n disableValidationOnSubmit\n fields={Array.isArray(fieldMap) ? fieldMap : []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={handleDrawerSubmit}\n uuid={uuid()}\n >\n <RenderFields\n fieldMap={Array.isArray(fieldMap) ? fieldMap : []}\n forceRender\n path=\"\" // See Blocks feature path for details as for why this is empty\n readOnly={false}\n schemaPath={schemaFieldsPath}\n />\n\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </Form>\n )\n}\n", "import type { ClientCollectionConfig, ClientUser, VisibleEntities } from 'payload'\n\nimport { useAuth, useConfig, useEntityVisibility } from '@payloadcms/ui'\nimport * as React from 'react'\n\ntype Options = {\n uploads: boolean\n user: ClientUser\n visibleEntities: VisibleEntities\n}\n\ntype FilteredCollectionsT = (\n collections: ClientCollectionConfig[],\n options?: Options,\n) => ClientCollectionConfig[]\n\nconst filterRichTextCollections: FilteredCollectionsT = (collections, options) => {\n return collections.filter(({ slug, admin: { enableRichTextRelationship }, upload }) => {\n if (!options.visibleEntities.collections.includes(slug)) {\n return false\n }\n\n if (options?.uploads) {\n return enableRichTextRelationship && Boolean(upload) === true\n }\n\n return upload ? false : enableRichTextRelationship\n })\n}\n\nexport const EnabledRelationshipsCondition: React.FC<any> = (props) => {\n const { children, uploads = false, ...rest } = props\n const { collections } = useConfig()\n const { user } = useAuth()\n const { visibleEntities } = useEntityVisibility()\n\n const [enabledCollectionSlugs] = React.useState(() =>\n filterRichTextCollections(collections, { uploads, user, visibleEntities }).map(\n ({ slug }) => slug,\n ),\n )\n\n if (!enabledCollectionSlugs.length) {\n return null\n }\n\n return React.cloneElement(children, { ...rest, enabledCollectionSlugs })\n}\n", "'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { createCommand } from 'lexical'\n\nexport const INSERT_UPLOAD_WITH_DRAWER_COMMAND: LexicalCommand<{\n replace: { nodeKey: string } | false\n}> = createCommand('INSERT_UPLOAD_WITH_DRAWER_COMMAND')\n", "import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n ElementFormatType,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\nimport type { CollectionSlug, JsonObject } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nconst RawUploadComponent = React.lazy(() =>\n import('../component/index.js').then((module) => ({ default: module.UploadComponent })),\n)\n\nexport type UploadData = {\n fields: JsonObject\n id: string\n relationTo: CollectionSlug\n value: number | string\n}\n\nfunction isGoogleDocCheckboxImg(img: HTMLImageElement): boolean {\n return (\n img.parentElement != null &&\n img.parentElement.tagName === 'LI' &&\n img.previousSibling === null &&\n img.getAttribute('aria-roledescription') === 'checkbox'\n )\n}\n\nfunction $convertUploadElement(domNode: HTMLImageElement): DOMConversionOutput | null {\n if (\n domNode.hasAttribute('data-lexical-upload-relation-to') &&\n domNode.hasAttribute('data-lexical-upload-id')\n ) {\n const id = domNode.getAttribute('data-lexical-upload-id')\n const relationTo = domNode.getAttribute('data-lexical-upload-relation-to')\n\n if (id != null && relationTo != null) {\n const node = $createUploadNode({\n data: {\n fields: {},\n relationTo,\n value: id,\n },\n })\n return { node }\n }\n }\n const img = domNode\n if (img.src.startsWith('file:///') || isGoogleDocCheckboxImg(img)) {\n return null\n }\n // TODO: Auto-upload functionality here!\n //}\n return null\n}\n\nexport type SerializedUploadNode = {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'upload'\n} & Spread<UploadData, SerializedDecoratorBlockNode>\n\nexport class UploadNode extends DecoratorBlockNode {\n __data: UploadData\n\n constructor({\n data,\n format,\n key,\n }: {\n data: UploadData\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__data = data\n }\n\n static clone(node: UploadNode): UploadNode {\n return new UploadNode({\n data: node.__data,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'upload'\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n img: (node: HTMLImageElement) => ({\n conversion: $convertUploadElement,\n priority: 0,\n }),\n }\n }\n\n static importJSON(serializedNode: SerializedUploadNode): UploadNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n decorate(): JSX.Element {\n // @ts-expect-error\n return <RawUploadComponent data={this.__data} format={this.__format} nodeKey={this.getKey()} />\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('img')\n element.setAttribute('data-lexical-upload-id', String(this.__data?.value))\n element.setAttribute('data-lexical-upload-relation-to', this.__data?.relationTo)\n\n return { element }\n }\n\n exportJSON(): SerializedUploadNode {\n return {\n ...super.exportJSON(),\n ...this.getData(),\n type: 'upload',\n version: 3,\n }\n }\n\n getData(): UploadData {\n return this.getLatest().__data\n }\n\n setData(data: UploadData): void {\n const writable = this.getWritable()\n writable.__data = data\n }\n\n updateDOM(): false {\n return false\n }\n}\n\nexport function $createUploadNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n return $applyNodeReplacement(new UploadNode({ data: data as UploadData }))\n}\n\nexport function $isUploadNode(node: LexicalNode | null | undefined): node is UploadNode {\n return node instanceof UploadNode\n}\n"],
|
|
5
|
-
"mappings": "wCAGA,OAAS,UAAAA,MAAc,iBCCvB,OACE,QAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,mBAAAC,EACA,iBAAAC,EACA,kBAAAC,MACK,iBACP,OAAS,gBAAAC,MAAoB,wBAC7B,OAAgB,eAAAC,EAAa,aAAAC,EAAW,YAAAC,MAAgB,QACxD,OAAS,MAAMC,MAAY,OAmEvB,OASE,OAAAC,EATF,QAAAC,MAAA,oBA7DG,IAAMC,EAAiF,CAAC,CAC7F,KAAAC,EACA,WAAAC,EACA,mBAAAC,EACA,iBAAAC,CACF,IAAM,CACJ,GAAM,CAAE,EAAAC,CAAE,EAAIC,EAAe,EACvB,CAAE,GAAAC,CAAG,EAAIC,EAAgB,EACzB,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAC/BC,EAASC,EAAU,EACnB,CAACC,EAAcC,CAAe,EAAIC,EAA4B,EAAK,EACnE,CACJ,MAAO,CAAE,qBAAAC,CAAqB,CAChC,EAAIC,EAAuB,EAErBC,EAAiC,4BAA4BhB,CAAU,UAAUE,EAAmB,IAAIA,CAAgB,GAAK,EAAE,GAC/He,EAAmB,GAAGV,CAAU,6BAA6BP,CAAU,GAAGE,EAAmB,IAAIA,CAAgB,GAAK,EAAE,GAExHgB,EAAWJ,EAAqB,IAAIE,CAA8B,EAExEG,EAAU,IAAM,EACY,SAAY,CACpC,IAAMC,EAAQ,MAAMC,EAAa,CAC/B,SAAUZ,EAAO,OAAO,IACxB,KAAM,CACJ,GAAAJ,EACA,KAAMN,GAAQ,CAAC,EACf,UAAW,SACX,WAAYkB,CACd,EACA,UAAWR,EAAO,SACpB,CAAC,EAEDG,EAAgBQ,CAAK,CACvB,GAEuB,CACzB,EAAG,CAACX,EAAO,OAAO,IAAKA,EAAO,UAAWQ,EAAkBZ,EAAIN,CAAI,CAAC,EAEpE,IAAMuB,EAAqCC,EACzC,MAAO,CAAE,UAAWC,CAAc,IACzB,MAAMH,EAAa,CACxB,SAAUZ,EAAO,OAAO,IACxB,KAAM,CACJ,GAAAJ,EACA,UAAWmB,EACX,UAAW,SACX,WAAYP,CACd,EACA,UAAWR,EAAO,SACpB,CAAC,EAGH,CAACA,EAAO,OAAO,IAAKA,EAAO,UAAWQ,EAAkBZ,CAAE,CAC5D,EAEA,OAAIM,IAAiB,GACZ,KAIPd,EAAC4B,EAAA,CACC,aAAc,CAACH,CAAQ,EACvB,0BAAyB,GACzB,OAAQ,MAAM,QAAQJ,CAAQ,EAAIA,EAAW,CAAC,EAC9C,aAAcP,EACd,SAAU,CAACW,CAAQ,EACnB,SAAUrB,EACV,KAAMyB,EAAK,EAEX,UAAA9B,EAAC+B,EAAA,CACC,SAAU,MAAM,QAAQT,CAAQ,EAAIA,EAAW,CAAC,EAChD,YAAW,GACX,KAAK,GACL,SAAU,GACV,WAAYD,EACd,EAEArB,EAACgC,EAAA,CAAY,SAAAzB,EAAE,oBAAoB,EAAE,GACvC,CAEJ,EDlEM,cAAA0B,MAAA,oBAbC,IAAMC,GAA4C,CAAC,CACxD,UAAAC,EACA,KAAAC,EACA,WAAAC,EACA,YAAAC,EACA,WAAAC,EACA,mBAAAC,EACA,iBAAAC,CACF,IAIIR,EAACS,EAAA,CAAO,UAAWP,EAAW,KAAME,EAAY,MAAOC,GAAe,GACpE,SAAAL,EAACU,EAAA,CACC,KAAMP,EACN,WAAYG,EACZ,mBAAoBC,EACpB,iBAAkBC,EACpB,EACF,EExCJ,OAAS,WAAAG,EAAS,aAAAC,EAAW,uBAAAC,MAA2B,iBACxD,UAAYC,MAAW,QAavB,IAAMC,EAAkD,CAACC,EAAaC,IAC7DD,EAAY,OAAO,CAAC,CAAE,KAAAE,EAAM,MAAO,CAAE,2BAAAC,CAA2B,EAAG,OAAAC,CAAO,IAC1EH,EAAQ,gBAAgB,YAAY,SAASC,CAAI,EAIlDD,GAAS,QACJE,GAA8B,EAAQC,EAGxCA,EAAS,GAAQD,EAPf,EAQV,EAGUE,GAAgDC,GAAU,CACrE,GAAM,CAAE,SAAAC,EAAU,QAAAC,EAAU,GAAO,GAAGC,CAAK,EAAIH,EACzC,CAAE,YAAAN,CAAY,EAAIJ,EAAU,EAC5B,CAAE,KAAAc,CAAK,EAAIf,EAAQ,EACnB,CAAE,gBAAAgB,CAAgB,EAAId,EAAoB,EAE1C,CAACe,CAAsB,EAAU,WAAS,IAC9Cb,EAA0BC,EAAa,CAAE,QAAAQ,EAAS,KAAAE,EAAM,gBAAAC,CAAgB,CAAC,EAAE,IACzE,CAAC,CAAE,KAAAT,CAAK,IAAMA,CAChB,CACF,EAEA,OAAKU,EAAuB,OAIf,eAAaL,EAAU,CAAE,GAAGE,EAAM,uBAAAG,CAAuB,CAAC,EAH9D,IAIX,EC5CA,OAAS,iBAAAC,MAAqB,UAEvB,IAAMC,GAERD,EAAc,mCAAmC,ECMtD,OAAS,sBAAAE,MAA0B,8CACnC,OAAOC,MAAc,gBACrB,OAAS,yBAAAC,MAA6B,UACtC,UAAYC,MAAW,QAwHZ,cAAAC,MAAA,oBAtHX,IAAMC,EAA2B,OAAK,IACpC,OAAO,yBAAuB,EAAE,KAAMC,IAAY,CAAE,QAASA,EAAO,eAAgB,EAAE,CACxF,EASA,SAASC,EAAuBC,EAAgC,CAC9D,OACEA,EAAI,eAAiB,MACrBA,EAAI,cAAc,UAAY,MAC9BA,EAAI,kBAAoB,MACxBA,EAAI,aAAa,sBAAsB,IAAM,UAEjD,CAEA,SAASC,EAAsBC,EAAuD,CACpF,GACEA,EAAQ,aAAa,iCAAiC,GACtDA,EAAQ,aAAa,wBAAwB,EAC7C,CACA,IAAMC,EAAKD,EAAQ,aAAa,wBAAwB,EAClDE,EAAaF,EAAQ,aAAa,iCAAiC,EAEzE,GAAIC,GAAM,MAAQC,GAAc,KAQ9B,MAAO,CAAE,KAPIC,EAAkB,CAC7B,KAAM,CACJ,OAAQ,CAAC,EACT,WAAAD,EACA,MAAOD,CACT,CACF,CAAC,CACa,CAElB,CACA,IAAMH,EAAME,EACZ,OAAIF,EAAI,IAAI,WAAW,UAAU,GAAKD,EAAuBC,CAAG,EACvD,IAKX,CAOO,IAAMM,EAAN,MAAMC,UAAmBf,CAAmB,CACjD,OAEA,YAAY,CACV,KAAAgB,EACA,OAAAC,EACA,IAAAC,CACF,EAIG,CACD,MAAMD,EAAQC,CAAG,EACjB,KAAK,OAASF,CAChB,CAEA,OAAO,MAAMG,EAA8B,CACzC,OAAO,IAAIJ,EAAW,CACpB,KAAMI,EAAK,OACX,OAAQA,EAAK,SACb,IAAKA,EAAK,KACZ,CAAC,CACH,CAEA,OAAO,SAAkB,CACvB,MAAO,QACT,CAEA,OAAO,WAAqC,CAC1C,MAAO,CACL,IAAMA,IAA4B,CAChC,WAAYV,EACZ,SAAU,CACZ,EACF,CACF,CAEA,OAAO,WAAWW,EAAkD,CAC9DA,EAAe,UAAY,GAAMA,GAAgB,OAAqC,KACxFA,EAAe,MAASA,EAAe,MAAoC,IAEzEA,EAAe,UAAY,GAAK,CAACA,GAAgB,KACnDA,EAAe,GAAK,IAAInB,EAAS,QAAQ,EAAE,YAAY,EACvDmB,EAAe,QAAU,GAG3B,IAAMC,EAA2B,CAC/B,GAAID,EAAe,GACnB,OAAQA,EAAe,OACvB,WAAYA,EAAe,WAC3B,MAAOA,EAAe,KACxB,EAEMD,EAAON,EAAkB,CAAE,KAAMQ,CAAa,CAAC,EACrD,OAAAF,EAAK,UAAUC,EAAe,MAAM,EAE7BD,CACT,CAEA,OAAO,UAAkB,CACvB,MAAO,EACT,CAEA,UAAwB,CAEtB,OAAOf,EAACC,EAAA,CAAmB,KAAM,KAAK,OAAQ,OAAQ,KAAK,SAAU,QAAS,KAAK,OAAO,EAAG,CAC/F,CAEA,WAA6B,CAC3B,IAAMiB,EAAU,SAAS,cAAc,KAAK,EAC5C,OAAAA,EAAQ,aAAa,yBAA0B,OAAO,KAAK,QAAQ,KAAK,CAAC,EACzEA,EAAQ,aAAa,kCAAmC,KAAK,QAAQ,UAAU,EAExE,CAAE,QAAAA,CAAQ,CACnB,CAEA,YAAmC,CACjC,MAAO,CACL,GAAG,MAAM,WAAW,EACpB,GAAG,KAAK,QAAQ,EAChB,KAAM,SACN,QAAS,CACX,CACF,CAEA,SAAsB,CACpB,OAAO,KAAK,UAAU,EAAE,MAC1B,CAEA,QAAQN,EAAwB,CAC9B,IAAMO,EAAW,KAAK,YAAY,EAClCA,EAAS,OAASP,CACpB,CAEA,WAAmB,CACjB,MAAO,EACT,CACF,EAEO,SAASH,EAAkB,CAChC,KAAAG,CACF,EAEe,CACb,OAAKA,GAAM,KACTA,EAAK,GAAK,IAAIf,EAAS,QAAQ,EAAE,YAAY,GAExCC,EAAsB,IAAIY,EAAW,CAAE,KAAME,CAAmB,CAAC,CAAC,CAC3E,CAEO,SAASQ,GAAcL,EAA0D,CACtF,OAAOA,aAAgBL,CACzB",
|
|
6
|
-
"names": ["Drawer", "Form", "FormSubmit", "RenderFields", "useConfig", "useDocumentInfo", "useFieldProps", "useTranslation", "getFormState", "useCallback", "useEffect", "useState", "uuid", "jsx", "jsxs", "DrawerContent", "data", "featureKey", "handleDrawerSubmit", "schemaPathSuffix", "t", "useTranslation", "id", "useDocumentInfo", "schemaPath", "useFieldProps", "config", "useConfig", "initialState", "setInitialState", "useState", "richTextComponentMap", "useEditorConfigContext", "componentMapRenderedFieldsPath", "schemaFieldsPath", "fieldMap", "useEffect", "state", "getFormState", "onChange", "useCallback", "prevFormState", "Form", "uuid", "RenderFields", "FormSubmit", "jsx", "FieldsDrawer", "className", "data", "drawerSlug", "drawerTitle", "featureKey", "handleDrawerSubmit", "schemaPathSuffix", "Drawer", "DrawerContent", "useAuth", "useConfig", "useEntityVisibility", "React", "filterRichTextCollections", "collections", "options", "slug", "enableRichTextRelationship", "upload", "EnabledRelationshipsCondition", "props", "children", "uploads", "rest", "user", "visibleEntities", "enabledCollectionSlugs", "createCommand", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "DecoratorBlockNode", "ObjectID", "$applyNodeReplacement", "React", "jsx", "RawUploadComponent", "module", "isGoogleDocCheckboxImg", "img", "$convertUploadElement", "domNode", "id", "relationTo", "$createUploadNode", "UploadNode", "_UploadNode", "data", "format", "key", "node", "serializedNode", "importedData", "element", "writable", "$isUploadNode"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useLexicalComposerContext as m}from"@lexical/react/LexicalComposerContext.js";import{createContext as y,useContext as T,useMemo as R,useRef as g,useState as l}from"react";import{jsx as M}from"react/jsx-runtime";function h(){return Math.random().toString(36).substring(2,12)+Math.random().toString(36).substring(2,12)}var p=y({editorConfig:null,field:null,uuid:null}),b=({children:i,editorConfig:s,editorContainerRef:c,fieldProps:C,parentContext:r})=>{let[u]=m(),[a]=l(h()),e=g(new Map),[f,E]=l(null),n=g(new Set),x=R(()=>({blurEditor:t=>{n.current.clear()},childrenEditors:e,editor:u,editorConfig:s,editorContainerRef:c,field:C,focusEditor:t=>{let o=t.uuid;n.current.has(o)||(n.current.add(o),E(t),r?.uuid&&r.focusEditor(t),e.current.forEach((d,v)=>{d.focusEditor(t)}),n.current.clear())},focusedEditor:f,parentEditor:r,registerChild:(t,o)=>{if(!e.current.has(t)){let d=new Map(e.current);d.set(t,o),e.current=d}},unregisterChild:t=>{if(e.current.has(t)){let o=new Map(e.current);o.delete(t),e.current=o}},uuid:a}),[u,e,s,c,C,f,r,a]);return M(p.Provider,{value:x,children:i})},F=()=>{let i=T(p);if(i===void 0)throw new Error("useEditorConfigContext must be used within an EditorConfigProvider");return i};export{b as a,F as b};
|
|
2
|
-
//# sourceMappingURL=chunk-IWZVO3AI.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/lexical/config/client/EditorConfigProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\n\nimport type { LexicalEditor } from 'lexical'\nimport type { FormFieldBase } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport * as React from 'react'\nimport { createContext, useContext, useMemo, useRef, useState } from 'react'\n\nimport type { SanitizedClientEditorConfig } from '../types.js'\n\n// Should always produce a 20 character pseudo-random string\nfunction generateQuickGuid(): string {\n return Math.random().toString(36).substring(2, 12) + Math.random().toString(36).substring(2, 12)\n}\n\nexport interface EditorConfigContextType {\n // Editor focus handling\n blurEditor: (editorContext: EditorConfigContextType) => void\n childrenEditors: React.RefObject<Map<string, EditorConfigContextType>>\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n editorContainerRef: React.RefObject<HTMLDivElement>\n field: {\n editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n name: string\n richTextComponentMap: Map<string, React.ReactNode>\n } & FormFieldBase\n // Editor focus handling\n focusEditor: (editorContext: EditorConfigContextType) => void\n focusedEditor: EditorConfigContextType | null\n parentEditor: EditorConfigContextType\n registerChild: (uuid: string, editorContext: EditorConfigContextType) => void\n unregisterChild?: (uuid: string) => void\n uuid: string\n}\n\nconst Context: React.Context<EditorConfigContextType> = createContext({\n editorConfig: null,\n field: null,\n uuid: null,\n})\n\nexport const EditorConfigProvider = ({\n children,\n editorConfig,\n editorContainerRef,\n fieldProps,\n parentContext,\n}: {\n children: React.ReactNode\n editorConfig: SanitizedClientEditorConfig\n editorContainerRef: React.RefObject<HTMLDivElement>\n fieldProps: {\n editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n name: string\n richTextComponentMap: Map<string, React.ReactNode>\n } & FormFieldBase\n parentContext?: EditorConfigContextType\n}): React.ReactNode => {\n const [editor] = useLexicalComposerContext()\n // State to store the UUID\n const [uuid] = useState(generateQuickGuid())\n\n const childrenEditors = useRef<Map<string, EditorConfigContextType>>(new Map())\n const [focusedEditor, setFocusedEditor] = useState<EditorConfigContextType | null>(null)\n const focusHistory = useRef<Set<string>>(new Set())\n\n const editorContext = useMemo(\n () =>\n ({\n blurEditor: (editorContext: EditorConfigContextType) => {\n //setFocusedEditor(null) // Clear focused editor\n focusHistory.current.clear() // Reset focus history when focus is lost\n },\n childrenEditors,\n editor,\n editorConfig,\n editorContainerRef,\n field: fieldProps,\n focusEditor: (editorContext: EditorConfigContextType) => {\n const editorUUID = editorContext.uuid\n\n // Avoid recursion by checking if this editor is already focused in this cycle\n if (focusHistory.current.has(editorUUID)) {\n return\n }\n\n // Add this editor to the history to prevent future recursions in this cycle\n focusHistory.current.add(editorUUID)\n setFocusedEditor(editorContext)\n\n // Propagate focus event to parent and children, ensuring they do not refocus this editor\n if (parentContext?.uuid) {\n parentContext.focusEditor(editorContext)\n }\n childrenEditors.current.forEach((childEditor, childUUID) => {\n childEditor.focusEditor(editorContext)\n })\n\n focusHistory.current.clear()\n },\n focusedEditor,\n parentEditor: parentContext,\n registerChild: (childUUID, childEditorContext) => {\n if (!childrenEditors.current.has(childUUID)) {\n const newMap = new Map(childrenEditors.current)\n newMap.set(childUUID, childEditorContext)\n childrenEditors.current = newMap\n }\n },\n unregisterChild: (childUUID) => {\n if (childrenEditors.current.has(childUUID)) {\n const newMap = new Map(childrenEditors.current)\n newMap.delete(childUUID)\n childrenEditors.current = newMap\n }\n },\n\n uuid,\n }) as EditorConfigContextType,\n [\n editor,\n childrenEditors,\n editorConfig,\n editorContainerRef,\n fieldProps,\n focusedEditor,\n parentContext,\n uuid,\n ],\n )\n\n return <Context.Provider value={editorContext}>{children}</Context.Provider>\n}\n\nexport const useEditorConfigContext = (): EditorConfigContextType => {\n const context = useContext(Context)\n if (context === undefined) {\n throw new Error('useEditorConfigContext must be used within an EditorConfigProvider')\n }\n return context\n}\n"],
|
|
5
|
-
"mappings": "AAKA,OAAS,6BAAAA,MAAiC,2CAE1C,OAAS,iBAAAC,EAAe,cAAAC,EAAY,WAAAC,EAAS,UAAAC,EAAQ,YAAAC,MAAgB,QA8H5D,cAAAC,MAAA,oBAzHT,SAASC,GAA4B,CACnC,OAAO,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,EAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,CACjG,CAuBA,IAAMC,EAAkDP,EAAc,CACpE,aAAc,KACd,MAAO,KACP,KAAM,IACR,CAAC,EAEYQ,EAAuB,CAAC,CACnC,SAAAC,EACA,aAAAC,EACA,mBAAAC,EACA,WAAAC,EACA,cAAAC,CACF,IAUuB,CACrB,GAAM,CAACC,CAAM,EAAIf,EAA0B,EAErC,CAACgB,CAAI,EAAIX,EAASE,EAAkB,CAAC,EAErCU,EAAkBb,EAA6C,IAAI,GAAK,EACxE,CAACc,EAAeC,CAAgB,EAAId,EAAyC,IAAI,EACjFe,EAAehB,EAAoB,IAAI,GAAK,EAE5CiB,EAAgBlB,EACpB,KACG,CACC,WAAakB,GAA2C,CAEtDD,EAAa,QAAQ,MAAM,CAC7B,EACA,gBAAAH,EACA,OAAAF,EACA,aAAAJ,EACA,mBAAAC,EACA,MAAOC,EACP,YAAcQ,GAA2C,CACvD,IAAMC,EAAaD,EAAc,KAG7BD,EAAa,QAAQ,IAAIE,CAAU,IAKvCF,EAAa,QAAQ,IAAIE,CAAU,EACnCH,EAAiBE,CAAa,EAG1BP,GAAe,MACjBA,EAAc,YAAYO,CAAa,EAEzCJ,EAAgB,QAAQ,QAAQ,CAACM,EAAaC,IAAc,CAC1DD,EAAY,YAAYF,CAAa,CACvC,CAAC,EAEDD,EAAa,QAAQ,MAAM,EAC7B,EACA,cAAAF,EACA,aAAcJ,EACd,cAAe,CAACU,EAAWC,IAAuB,CAChD,GAAI,CAACR,EAAgB,QAAQ,IAAIO,CAAS,EAAG,CAC3C,IAAME,EAAS,IAAI,IAAIT,EAAgB,OAAO,EAC9CS,EAAO,IAAIF,EAAWC,CAAkB,EACxCR,EAAgB,QAAUS,CAC5B,CACF,EACA,gBAAkBF,GAAc,CAC9B,GAAIP,EAAgB,QAAQ,IAAIO,CAAS,EAAG,CAC1C,IAAME,EAAS,IAAI,IAAIT,EAAgB,OAAO,EAC9CS,EAAO,OAAOF,CAAS,EACvBP,EAAgB,QAAUS,CAC5B,CACF,EAEA,KAAAV,CACF,GACF,CACED,EACAE,EACAN,EACAC,EACAC,EACAK,EACAJ,EACAE,CACF,CACF,EAEA,OAAOV,EAACE,EAAQ,SAAR,CAAiB,MAAOa,EAAgB,SAAAX,EAAS,CAC3D,EAEaiB,EAAyB,IAA+B,CACnE,IAAMC,EAAU1B,EAAWM,CAAO,EAClC,GAAIoB,IAAY,OACd,MAAM,IAAI,MAAM,oEAAoE,EAEtF,OAAOA,CACT",
|
|
6
|
-
"names": ["useLexicalComposerContext", "createContext", "useContext", "useMemo", "useRef", "useState", "jsx", "generateQuickGuid", "Context", "EditorConfigProvider", "children", "editorConfig", "editorContainerRef", "fieldProps", "parentContext", "editor", "uuid", "childrenEditors", "focusedEditor", "setFocusedEditor", "focusHistory", "editorContext", "editorUUID", "childEditor", "childUUID", "childEditorContext", "newMap", "useEditorConfigContext", "context"]
|
|
7
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{addClassNamesToElement as l}from"@lexical/utils";import{$applyNodeReplacement as a,DecoratorNode as u,createCommand as d}from"lexical";import*as n from"react";import{jsx as m}from"react/jsx-runtime";var c=n.lazy(()=>import("./component-VM36FRT2.js").then(e=>({default:e.HorizontalRuleComponent}))),R=d("INSERT_HORIZONTAL_RULE_COMMAND"),o=class e extends u{static clone(t){return new e(t.__key)}static getType(){return"horizontalrule"}static importDOM(){return{hr:()=>({conversion:p,priority:0})}}static importJSON(t){return i()}createDOM(t){let r=document.createElement("hr");return l(r,t.theme.hr),r}decorate(){return m(c,{nodeKey:this.__key})}exportDOM(){return{element:document.createElement("hr")}}exportJSON(){return{type:"horizontalrule",version:1}}getTextContent(){return`
|
|
2
|
-
`}isInline(){return!1}updateDOM(){return!1}};function p(){return{node:i()}}function i(){return a(new o)}function O(e){return e instanceof o}export{R as a,o as b,i as c,O as d};
|
|
3
|
-
//# sourceMappingURL=chunk-Q5DYR7MH.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/horizontalRule/nodes/HorizontalRuleNode.tsx"],
|
|
4
|
-
"sourcesContent": ["import type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n EditorConfig,\n LexicalCommand,\n LexicalNode,\n SerializedLexicalNode,\n Spread,\n} from 'lexical'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { $applyNodeReplacement, DecoratorNode, createCommand } from 'lexical'\nimport * as React from 'react'\n\nconst HorizontalRuleComponent = React.lazy(() =>\n import('../component/index.js').then((module) => ({\n default: module.HorizontalRuleComponent,\n })),\n)\n\n/**\n * Serialized representation of a horizontal rule node. Serialized = converted to JSON. This is what is stored in the database / in the lexical editor state.\n */\nexport type SerializedHorizontalRuleNode = Spread<\n {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'horizontalrule'\n },\n SerializedLexicalNode\n>\n\nexport const INSERT_HORIZONTAL_RULE_COMMAND: LexicalCommand<void> = createCommand(\n 'INSERT_HORIZONTAL_RULE_COMMAND',\n)\n\n/**\n * This node is a DecoratorNode. DecoratorNodes allow you to render React components in the editor.\n *\n * They need both createDom and decorate functions. createDom => outside of the html. decorate => React Component inside of the html.\n *\n * If we used DecoratorBlockNode instead, we would only need a decorate method\n */\nexport class HorizontalRuleNode extends DecoratorNode<React.ReactElement> {\n static clone(node: HorizontalRuleNode): HorizontalRuleNode {\n return new HorizontalRuleNode(node.__key)\n }\n\n static getType(): string {\n return 'horizontalrule'\n }\n\n /**\n * Defines what happens if you copy an hr element from another page and paste it into the lexical editor\n *\n * This also determines the behavior of lexical's internal HTML -> Lexical converter\n */\n static importDOM(): DOMConversionMap | null {\n return {\n hr: () => ({\n conversion: $convertHorizontalRuleElement,\n priority: 0,\n }),\n }\n }\n\n /**\n * The data for this node is stored serialized as JSON. This is the \"load function\" of that node: it takes the saved data and converts it into a node.\n */\n static importJSON(serializedNode: SerializedHorizontalRuleNode): HorizontalRuleNode {\n return $createHorizontalRuleNode()\n }\n\n /**\n * Determines how the hr element is rendered in the lexical editor. This is only the \"initial\" / \"outer\" HTML element.\n */\n createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement('hr')\n addClassNamesToElement(element, config.theme.hr)\n return element\n }\n\n /**\n * Allows you to render a React component within whatever createDOM returns.\n */\n decorate(): React.ReactElement {\n return <HorizontalRuleComponent nodeKey={this.__key} />\n }\n\n /**\n * Opposite of importDOM, this function defines what happens when you copy an hr element from the lexical editor and paste it into another page.\n *\n * This also determines the behavior of lexical's internal Lexical -> HTML converter\n */\n exportDOM(): DOMExportOutput {\n return { element: document.createElement('hr') }\n }\n /**\n * Opposite of importJSON. This determines what data is saved in the database / in the lexical editor state.\n */\n exportJSON(): SerializedLexicalNode {\n return {\n type: 'horizontalrule',\n version: 1,\n }\n }\n\n getTextContent(): string {\n return '\\n'\n }\n\n isInline(): false {\n return false\n }\n\n updateDOM(): boolean {\n return false\n }\n}\n\nfunction $convertHorizontalRuleElement(): DOMConversionOutput {\n return { node: $createHorizontalRuleNode() }\n}\n\nexport function $createHorizontalRuleNode(): HorizontalRuleNode {\n return $applyNodeReplacement(new HorizontalRuleNode())\n}\n\nexport function $isHorizontalRuleNode(\n node: LexicalNode | null | undefined,\n): node is HorizontalRuleNode {\n return node instanceof HorizontalRuleNode\n}\n"],
|
|
5
|
-
"mappings": "AAWA,OAAS,0BAAAA,MAA8B,iBACvC,OAAS,yBAAAC,EAAuB,iBAAAC,EAAe,iBAAAC,MAAqB,UACpE,UAAYC,MAAW,QAyEZ,cAAAC,MAAA,oBAvEX,IAAMC,EAAgC,OAAK,IACzC,OAAO,yBAAuB,EAAE,KAAMC,IAAY,CAChD,QAASA,EAAO,uBAClB,EAAE,CACJ,EAaaC,EAAuDL,EAClE,gCACF,EASaM,EAAN,MAAMC,UAA2BR,CAAkC,CACxE,OAAO,MAAMS,EAA8C,CACzD,OAAO,IAAID,EAAmBC,EAAK,KAAK,CAC1C,CAEA,OAAO,SAAkB,CACvB,MAAO,gBACT,CAOA,OAAO,WAAqC,CAC1C,MAAO,CACL,GAAI,KAAO,CACT,WAAYC,EACZ,SAAU,CACZ,EACF,CACF,CAKA,OAAO,WAAWC,EAAkE,CAClF,OAAOC,EAA0B,CACnC,CAKA,UAAUC,EAAmC,CAC3C,IAAMC,EAAU,SAAS,cAAc,IAAI,EAC3C,OAAAhB,EAAuBgB,EAASD,EAAO,MAAM,EAAE,EACxCC,CACT,CAKA,UAA+B,CAC7B,OAAOX,EAACC,EAAA,CAAwB,QAAS,KAAK,MAAO,CACvD,CAOA,WAA6B,CAC3B,MAAO,CAAE,QAAS,SAAS,cAAc,IAAI,CAAE,CACjD,CAIA,YAAoC,CAClC,MAAO,CACL,KAAM,iBACN,QAAS,CACX,CACF,CAEA,gBAAyB,CACvB,MAAO;AAAA,CACT,CAEA,UAAkB,CAChB,MAAO,EACT,CAEA,WAAqB,CACnB,MAAO,EACT,CACF,EAEA,SAASM,GAAqD,CAC5D,MAAO,CAAE,KAAME,EAA0B,CAAE,CAC7C,CAEO,SAASA,GAAgD,CAC9D,OAAOb,EAAsB,IAAIQ,CAAoB,CACvD,CAEO,SAASQ,EACdN,EAC4B,CAC5B,OAAOA,aAAgBF,CACzB",
|
|
6
|
-
"names": ["addClassNamesToElement", "$applyNodeReplacement", "DecoratorNode", "createCommand", "React", "jsx", "HorizontalRuleComponent", "module", "INSERT_HORIZONTAL_RULE_COMMAND", "HorizontalRuleNode", "_HorizontalRuleNode", "node", "$convertHorizontalRuleElement", "serializedNode", "$createHorizontalRuleNode", "config", "element", "$isHorizontalRuleNode"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createCommand as o}from"lexical";var I=o("INSERT_BLOCK_COMMAND"),u=o("INSERT_INLINE_BLOCK_COMMAND"),k=o("OPEN_INLINE_BLOCK_DRAWER_COMMAND");import r from"bson-objectid";import{DecoratorNode as d}from"lexical";import{deepCopyObjectSimple as c}from"payload/shared";import s from"react";import{jsx as m}from"react/jsx-runtime";var a=s.lazy(()=>import("./componentInline-6EKPZSCV.js").then(t=>({default:t.InlineBlockComponent}))),i=class t extends d{__fields;constructor({fields:e,key:n}){super(n),this.__fields=e}static clone(e){return new t({fields:e.__fields,key:e.__key})}static getType(){return"inlineBlock"}static importDOM(){return{}}static importJSON(e){return p(e.fields)}static isInline(){return!1}canIndent(){return!0}createDOM(){let e=document.createElement("span");return e.classList.add("inline-block-container"),e}decorate(e,n){return m(a,{formData:this.getFields(),nodeKey:this.getKey()})}exportDOM(){let e=document.createElement("span");e.classList.add("inline-block-container");let n=document.createTextNode(this.getTextContent());return e.append(n),{element:e}}exportJSON(){return{type:"inlineBlock",fields:this.getFields(),version:1}}getFields(){return this.getLatest().__fields}getTextContent(){return"Block Field"}isInline(){return!0}setFields(e){let n=c(e),l=this.getWritable();l.__fields=n}updateDOM(){return!1}};function p(t){return new i({fields:{...t,id:t?.id||new r.default().toHexString()}})}function y(t){return t instanceof i}export{I as a,u as b,k as c,i as d,p as e,y as f};
|
|
2
|
-
//# sourceMappingURL=chunk-VUVXZJJR.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/blocks/plugin/commands.ts", "../../../src/features/blocks/nodes/InlineBlocksNode.tsx"],
|
|
4
|
-
"sourcesContent": ["import type { LexicalCommand } from 'lexical'\n\nimport { createCommand } from 'lexical'\n\nimport type { InsertBlockPayload } from './index.js'\n\nexport const INSERT_BLOCK_COMMAND: LexicalCommand<InsertBlockPayload> =\n createCommand('INSERT_BLOCK_COMMAND')\n\nexport const INSERT_INLINE_BLOCK_COMMAND: LexicalCommand<Partial<InsertBlockPayload>> =\n createCommand('INSERT_INLINE_BLOCK_COMMAND')\n\nexport const OPEN_INLINE_BLOCK_DRAWER_COMMAND: LexicalCommand<{\n fields: Partial<InsertBlockPayload>\n nodeKey?: string\n}> = createCommand('OPEN_INLINE_BLOCK_DRAWER_COMMAND')\n", "import type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedLexicalNode,\n Spread,\n} from 'lexical'\n\nimport ObjectID from 'bson-objectid'\nimport { DecoratorNode } from 'lexical'\nimport { deepCopyObjectSimple } from 'payload/shared'\nimport React, { type JSX } from 'react'\n\nexport type InlineBlockFields = {\n /** Block form data */\n [key: string]: any\n //blockName: string\n blockType: string\n id: string\n}\n\nconst InlineBlockComponent = React.lazy(() =>\n import('../componentInline/index.js').then((module) => ({\n default: module.InlineBlockComponent,\n })),\n)\n\nexport type SerializedInlineBlockNode = Spread<\n {\n children?: never // required so that our typed editor state doesn't automatically add children\n fields: InlineBlockFields\n type: 'inlineBlock'\n },\n SerializedLexicalNode\n>\n\nexport class InlineBlockNode extends DecoratorNode<React.ReactElement> {\n __fields: InlineBlockFields\n\n constructor({ fields, key }: { fields: InlineBlockFields; key?: NodeKey }) {\n super(key)\n this.__fields = fields\n }\n\n static clone(node: InlineBlockNode): InlineBlockNode {\n return new InlineBlockNode({\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'inlineBlock'\n }\n\n static importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static importJSON(serializedNode: SerializedInlineBlockNode): InlineBlockNode {\n const node = $createInlineBlockNode(serializedNode.fields)\n return node\n }\n\n static isInline(): false {\n return false\n }\n canIndent() {\n return true\n }\n\n createDOM() {\n const element = document.createElement('span')\n element.classList.add('inline-block-container')\n\n return element\n }\n\n decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return <InlineBlockComponent formData={this.getFields()} nodeKey={this.getKey()} />\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('span')\n element.classList.add('inline-block-container')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n exportJSON(): SerializedInlineBlockNode {\n return {\n type: 'inlineBlock',\n fields: this.getFields(),\n version: 1,\n }\n }\n\n getFields(): InlineBlockFields {\n return this.getLatest().__fields\n }\n\n getTextContent(): string {\n return `Block Field`\n }\n\n isInline() {\n return true\n }\n\n setFields(fields: InlineBlockFields): void {\n const fieldsCopy = deepCopyObjectSimple(fields)\n\n const writable = this.getWritable()\n writable.__fields = fieldsCopy\n }\n\n updateDOM(): boolean {\n return false\n }\n}\n\nexport function $createInlineBlockNode(fields: Exclude<InlineBlockFields, 'id'>): InlineBlockNode {\n return new InlineBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n })\n}\n\nexport function $isInlineBlockNode(\n node: InlineBlockNode | LexicalNode | null | undefined,\n): node is InlineBlockNode {\n return node instanceof InlineBlockNode\n}\n"],
|
|
5
|
-
"mappings": "AAEA,OAAS,iBAAAA,MAAqB,UAIvB,IAAMC,EACXD,EAAc,sBAAsB,EAEzBE,EACXF,EAAc,6BAA6B,EAEhCG,EAGRH,EAAc,kCAAkC,ECJrD,OAAOI,MAAc,gBACrB,OAAS,iBAAAC,MAAqB,UAC9B,OAAS,wBAAAC,MAA4B,iBACrC,OAAOC,MAAyB,QAoErB,cAAAC,MAAA,oBA1DX,IAAMC,EAAuBF,EAAM,KAAK,IACtC,OAAO,+BAA6B,EAAE,KAAMG,IAAY,CACtD,QAASA,EAAO,oBAClB,EAAE,CACJ,EAWaC,EAAN,MAAMC,UAAwBP,CAAkC,CACrE,SAEA,YAAY,CAAE,OAAAQ,EAAQ,IAAAC,CAAI,EAAiD,CACzE,MAAMA,CAAG,EACT,KAAK,SAAWD,CAClB,CAEA,OAAO,MAAME,EAAwC,CACnD,OAAO,IAAIH,EAAgB,CACzB,OAAQG,EAAK,SACb,IAAKA,EAAK,KACZ,CAAC,CACH,CAEA,OAAO,SAAkB,CACvB,MAAO,aACT,CAEA,OAAO,WAAqD,CAC1D,MAAO,CAAC,CACV,CAEA,OAAO,WAAWC,EAA4D,CAE5E,OADaC,EAAuBD,EAAe,MAAM,CAE3D,CAEA,OAAO,UAAkB,CACvB,MAAO,EACT,CACA,WAAY,CACV,MAAO,EACT,CAEA,WAAY,CACV,IAAME,EAAU,SAAS,cAAc,MAAM,EAC7C,OAAAA,EAAQ,UAAU,IAAI,wBAAwB,EAEvCA,CACT,CAEA,SAASC,EAAuBC,EAAmC,CACjE,OAAOZ,EAACC,EAAA,CAAqB,SAAU,KAAK,UAAU,EAAG,QAAS,KAAK,OAAO,EAAG,CACnF,CAEA,WAA6B,CAC3B,IAAMS,EAAU,SAAS,cAAc,MAAM,EAC7CA,EAAQ,UAAU,IAAI,wBAAwB,EAE9C,IAAMG,EAAO,SAAS,eAAe,KAAK,eAAe,CAAC,EAC1D,OAAAH,EAAQ,OAAOG,CAAI,EACZ,CAAE,QAAAH,CAAQ,CACnB,CAEA,YAAwC,CACtC,MAAO,CACL,KAAM,cACN,OAAQ,KAAK,UAAU,EACvB,QAAS,CACX,CACF,CAEA,WAA+B,CAC7B,OAAO,KAAK,UAAU,EAAE,QAC1B,CAEA,gBAAyB,CACvB,MAAO,aACT,CAEA,UAAW,CACT,MAAO,EACT,CAEA,UAAUL,EAAiC,CACzC,IAAMS,EAAahB,EAAqBO,CAAM,EAExCU,EAAW,KAAK,YAAY,EAClCA,EAAS,SAAWD,CACtB,CAEA,WAAqB,CACnB,MAAO,EACT,CACF,EAEO,SAASL,EAAuBJ,EAA2D,CAChG,OAAO,IAAIF,EAAgB,CACzB,OAAQ,CACN,GAAGE,EACH,GAAIA,GAAQ,IAAM,IAAIT,EAAS,QAAQ,EAAE,YAAY,CACvD,CACF,CAAC,CACH,CAEO,SAASoB,EACdT,EACyB,CACzB,OAAOA,aAAgBJ,CACzB",
|
|
6
|
-
"names": ["createCommand", "INSERT_BLOCK_COMMAND", "INSERT_INLINE_BLOCK_COMMAND", "OPEN_INLINE_BLOCK_DRAWER_COMMAND", "ObjectID", "DecoratorNode", "deepCopyObjectSimple", "React", "jsx", "InlineBlockComponent", "module", "InlineBlockNode", "_InlineBlockNode", "fields", "key", "node", "serializedNode", "$createInlineBlockNode", "element", "editor", "config", "text", "fieldsCopy", "writable", "$isInlineBlockNode"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";import{a as L,b as O,c as A,f as F}from"./chunk-IPCJ5EVK.js";import{b as T}from"./chunk-IWZVO3AI.js";import{useLexicalComposerContext as X}from"@lexical/react/LexicalComposerContext.js";import{useLexicalNodeSelection as Z}from"@lexical/react/useLexicalNodeSelection.js";import{mergeRegister as ee}from"@lexical/utils";import{getTranslation as K}from"@payloadcms/translations";import{Button as N,DrawerToggler as oe,File as te,useConfig as ae,useDocumentDrawer as le,useDrawerSlug as re,useModal as ne,usePayloadAPI as ie,useTranslation as se}from"@payloadcms/ui";import{$getNodeByKey as E,$getSelection as de,$isNodeSelection as ce,CLICK_COMMAND as ue,COMMAND_PRIORITY_LOW as w,KEY_BACKSPACE_COMMAND as pe,KEY_DELETE_COMMAND as me}from"lexical";import{useCallback as i,useEffect as fe,useReducer as ge,useRef as Ce,useState as De}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";var t="lexical-upload",B={depth:0},ve=d=>{let{data:{fields:I,relationTo:R,value:c},nodeKey:l}=d,{collections:k,routes:{api:j},serverURL:W}=ae(),C=Ce(null),{closeModal:y}=ne(),[a]=X(),[r,u,D]=Z(l),{editorConfig:Y,field:v}=T(),{i18n:S,t:p}=se(),[$,H]=ge(e=>e+1,0),[n]=De(()=>k.find(e=>e.slug===R)),m=re("upload-drawer"),[z,q,{closeDrawer:h}]=le({id:c,collectionSlug:n.slug}),[{data:f},{setParams:P}]=ie(`${W}${j}/${n.slug}/${c}`,{initialParams:B}),U=f?.thumbnailURL||f?.url,G=i(()=>{a.update(()=>{E(l).remove()})},[a,l]),J=i(e=>{P({...B,cacheBust:$}),H(),h()},[P,$,h]),_=i(e=>{if(r&&ce(de())){e.preventDefault();let g=E(l);if(F(g))return g.remove(),!0}return!1},[r,l]),M=i(e=>e.target===C.current||C.current?.contains(e.target)?(e.shiftKey?u(!r):r||(D(),u(!0)),!0):!1,[r,u,D]);fe(()=>ee(a.registerCommand(ue,M,w),a.registerCommand(me,_,w),a.registerCommand(pe,_,w)),[D,a,r,l,_,u,M]);let x=(Y?.resolvedFeatureMap?.get("upload")?.sanitizedClientFeatureProps).collections?.[n.slug]?.hasExtraFields,Q=i((e,g)=>{a.update(()=>{let b=E(l);if(b){let V={...b.getData(),fields:g};b.setData(V)}}),y(m)},[y,a,m,l]);return s("div",{className:[t,r&&`${t}--selected`].filter(Boolean).join(" "),contentEditable:!1,ref:C,children:[s("div",{className:`${t}__card`,children:[s("div",{className:`${t}__topRow`,children:[o("div",{className:`${t}__thumbnail`,children:U?o("img",{alt:f?.filename,"data-lexical-upload-id":c,"data-lexical-upload-relation-to":R,src:U}):o(te,{})}),s("div",{className:`${t}__topRowRightPanel`,children:[o("div",{className:`${t}__collectionLabel`,children:K(n.labels.singular,S)}),a.isEditable()&&s("div",{className:`${t}__actions`,children:[x?o(oe,{className:`${t}__upload-drawer-toggler`,disabled:v?.readOnly,slug:m,children:o(N,{buttonStyle:"icon-label",el:"div",icon:"edit",onClick:e=>{e.preventDefault()},round:!0,tooltip:p("fields:editRelationship")})}):null,o(N,{buttonStyle:"icon-label",disabled:v?.readOnly,el:"div",icon:"swap",onClick:()=>{a.dispatchCommand(A,{replace:{nodeKey:l}})},round:!0,tooltip:p("fields:swapUpload")}),o(N,{buttonStyle:"icon-label",className:`${t}__removeButton`,disabled:v?.readOnly,icon:"x",onClick:e=>{e.preventDefault(),G()},round:!0,tooltip:p("fields:removeUpload")})]})]})]}),o("div",{className:`${t}__bottomRow`,children:o(q,{className:`${t}__doc-drawer-toggler`,children:o("strong",{children:f?.filename})})})]}),c&&o(z,{onSave:J}),x?o(L,{data:I,drawerSlug:m,drawerTitle:p("general:editLabel",{label:K(n.labels.singular,S)}),featureKey:"upload",handleDrawerSubmit:Q,schemaPathSuffix:n.slug}):null]})},xe=d=>o(O,{...d,uploads:!0,children:o(ve,{...d})});export{xe as UploadComponent};
|
|
2
|
-
//# sourceMappingURL=component-D4GWDXK5.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/upload/component/index.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\nimport type { ClientCollectionConfig, Data } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection.js'\nimport { mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n DrawerToggler,\n File,\n useConfig,\n useDocumentDrawer,\n useDrawerSlug,\n useModal,\n usePayloadAPI,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n} from 'lexical'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\n\nimport type { ClientComponentProps } from '../../typesClient.js'\nimport type { UploadFeaturePropsClient } from '../feature.client.js'\nimport type { UploadData, UploadNode } from '../nodes/UploadNode.js'\n\nimport { useEditorConfigContext } from '../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../utilities/fieldsDrawer/Drawer.js'\nimport { EnabledRelationshipsCondition } from '../../relationship/utils/EnabledRelationshipsCondition.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from '../drawer/commands.js'\nimport { $isUploadNode } from '../nodes/UploadNode.js'\nconst baseClass = 'lexical-upload'\n\nconst initialParams = {\n depth: 0,\n}\n\nexport type ElementProps = {\n data: UploadData\n nodeKey: string\n}\n\nconst Component: React.FC<ElementProps> = (props) => {\n const {\n data: { fields, relationTo, value },\n nodeKey,\n } = props\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = useConfig()\n const uploadRef = useRef<HTMLDivElement | null>(null)\n const { closeModal } = useModal()\n\n const [editor] = useLexicalComposerContext()\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey)\n\n const { editorConfig, field } = useEditorConfigContext()\n\n const { i18n, t } = useTranslation()\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0)\n const [relatedCollection] = useState<ClientCollectionConfig>(() =>\n collections.find((coll) => coll.slug === relationTo),\n )\n\n const drawerSlug = useDrawerSlug('upload-drawer')\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\n id: value,\n collectionSlug: relatedCollection.slug,\n })\n\n // Get the referenced document\n const [{ data }, { setParams }] = usePayloadAPI(\n `${serverURL}${api}/${relatedCollection.slug}/${value}`,\n { initialParams },\n )\n\n const thumbnailSRC = data?.thumbnailURL || data?.url\n\n const removeUpload = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey).remove()\n })\n }, [editor, nodeKey])\n\n const updateUpload = useCallback(\n (data: Data) => {\n setParams({\n ...initialParams,\n cacheBust, // do this to get the usePayloadAPI to re-fetch the data even though the URL string hasn't changed\n })\n\n dispatchCacheBust()\n closeDrawer()\n },\n [setParams, cacheBust, closeDrawer],\n )\n\n const $onDelete = useCallback(\n (event: KeyboardEvent) => {\n if (isSelected && $isNodeSelection($getSelection())) {\n event.preventDefault()\n const node = $getNodeByKey(nodeKey)\n if ($isUploadNode(node)) {\n node.remove()\n return true\n }\n }\n return false\n },\n [isSelected, nodeKey],\n )\n const onClick = useCallback(\n (event: MouseEvent) => {\n // Check if uploadRef.target or anything WITHIN uploadRef.target was clicked\n if (event.target === uploadRef.current || uploadRef.current?.contains(event.target as Node)) {\n if (event.shiftKey) {\n setSelected(!isSelected)\n } else {\n if (!isSelected) {\n clearSelection()\n setSelected(true)\n }\n }\n return true\n }\n\n return false\n },\n [isSelected, setSelected, clearSelection],\n )\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<MouseEvent>(CLICK_COMMAND, onClick, 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 )\n }, [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected, onClick])\n\n const hasExtraFields = (\n editorConfig?.resolvedFeatureMap?.get('upload')\n ?.sanitizedClientFeatureProps as ClientComponentProps<UploadFeaturePropsClient>\n ).collections?.[relatedCollection.slug]?.hasExtraFields\n\n const onExtraFieldsDrawerSubmit = useCallback(\n (_, data) => {\n // Update lexical node (with key nodeKey) with new data\n editor.update(() => {\n const uploadNode: UploadNode | null = $getNodeByKey(nodeKey)\n if (uploadNode) {\n const newData: UploadData = {\n ...uploadNode.getData(),\n fields: data,\n }\n uploadNode.setData(newData)\n }\n })\n\n closeModal(drawerSlug)\n },\n [closeModal, editor, drawerSlug, nodeKey],\n )\n\n return (\n <div\n className={[baseClass, isSelected && `${baseClass}--selected`].filter(Boolean).join(' ')}\n contentEditable={false}\n ref={uploadRef}\n >\n <div className={`${baseClass}__card`}>\n <div className={`${baseClass}__topRow`}>\n {/* TODO: migrate to use @payloadcms/ui/elements/Thumbnail component */}\n <div className={`${baseClass}__thumbnail`}>\n {thumbnailSRC ? (\n <img\n alt={data?.filename}\n data-lexical-upload-id={value}\n data-lexical-upload-relation-to={relationTo}\n src={thumbnailSRC}\n />\n ) : (\n <File />\n )}\n </div>\n <div className={`${baseClass}__topRowRightPanel`}>\n <div className={`${baseClass}__collectionLabel`}>\n {getTranslation(relatedCollection.labels.singular, i18n)}\n </div>\n {editor.isEditable() && (\n <div className={`${baseClass}__actions`}>\n {hasExtraFields ? (\n <DrawerToggler\n className={`${baseClass}__upload-drawer-toggler`}\n disabled={field?.readOnly}\n slug={drawerSlug}\n >\n <Button\n buttonStyle=\"icon-label\"\n el=\"div\"\n icon=\"edit\"\n onClick={(e) => {\n e.preventDefault()\n }}\n round\n tooltip={t('fields:editRelationship')}\n />\n </DrawerToggler>\n ) : null}\n\n <Button\n buttonStyle=\"icon-label\"\n disabled={field?.readOnly}\n el=\"div\"\n icon=\"swap\"\n onClick={() => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: { nodeKey },\n })\n }}\n round\n tooltip={t('fields:swapUpload')}\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={field?.readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeUpload()\n }}\n round\n tooltip={t('fields:removeUpload')}\n />\n </div>\n )}\n </div>\n </div>\n <div className={`${baseClass}__bottomRow`}>\n <DocumentDrawerToggler className={`${baseClass}__doc-drawer-toggler`}>\n <strong>{data?.filename}</strong>\n </DocumentDrawerToggler>\n </div>\n </div>\n {value && <DocumentDrawer onSave={updateUpload} />}\n {hasExtraFields ? (\n <FieldsDrawer\n data={fields}\n drawerSlug={drawerSlug}\n drawerTitle={t('general:editLabel', {\n label: getTranslation(relatedCollection.labels.singular, i18n),\n })}\n featureKey=\"upload\"\n handleDrawerSubmit={onExtraFieldsDrawerSubmit}\n schemaPathSuffix={relatedCollection.slug}\n />\n ) : null}\n </div>\n )\n}\n\nexport const UploadComponent = (props: ElementProps): React.ReactNode => {\n return (\n <EnabledRelationshipsCondition {...props} uploads>\n <Component {...props} />\n </EnabledRelationshipsCondition>\n )\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["useLexicalComposerContext", "useLexicalNodeSelection", "mergeRegister", "getTranslation", "Button", "DrawerToggler", "File", "useConfig", "useDocumentDrawer", "useDrawerSlug", "useModal", "usePayloadAPI", "useTranslation", "$getNodeByKey", "$getSelection", "$isNodeSelection", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_BACKSPACE_COMMAND", "KEY_DELETE_COMMAND", "useCallback", "useEffect", "useReducer", "useRef", "useState", "jsx", "jsxs", "baseClass", "initialParams", "Component", "props", "fields", "relationTo", "value", "nodeKey", "collections", "api", "serverURL", "useConfig", "uploadRef", "useRef", "closeModal", "useModal", "editor", "useLexicalComposerContext", "isSelected", "setSelected", "clearSelection", "useLexicalNodeSelection", "editorConfig", "field", "useEditorConfigContext", "i18n", "t", "useTranslation", "cacheBust", "dispatchCacheBust", "useReducer", "state", "relatedCollection", "useState", "coll", "drawerSlug", "useDrawerSlug", "DocumentDrawer", "DocumentDrawerToggler", "closeDrawer", "useDocumentDrawer", "data", "setParams", "usePayloadAPI", "thumbnailSRC", "removeUpload", "useCallback", "$getNodeByKey", "updateUpload", "$onDelete", "event", "$isNodeSelection", "$getSelection", "node", "$isUploadNode", "onClick", "useEffect", "mergeRegister", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_DELETE_COMMAND", "KEY_BACKSPACE_COMMAND", "hasExtraFields", "onExtraFieldsDrawerSubmit", "_", "uploadNode", "newData", "File", "getTranslation", "DrawerToggler", "Button", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "FieldsDrawer", "UploadComponent", "EnabledRelationshipsCondition"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";import{b as D}from"./chunk-IWZVO3AI.js";import{Collapsible as te,Form as ae,Pill as le,SectionTitle as re,ShimmerEffect as ie,useConfig as se,useDocumentInfo as ne,useFieldProps as ce,useFormSubmitted as de,useTranslation as me}from"@payloadcms/ui";import{useCallback as pe,useEffect as fe,useMemo as ue,useState as ye}from"react";import{getTranslation as he}from"@payloadcms/translations";import{getFormState as K}from"@payloadcms/ui/shared";import{v4 as be}from"uuid";import{useLexicalComposerContext as W}from"@lexical/react/LexicalComposerContext.js";import{getTranslation as z}from"@payloadcms/translations";import{Button as H,Collapsible as q,ErrorPill as G,Pill as J,RenderFields as Q,SectionTitle as X,useDocumentInfo as Y,useFormSubmitted as Z,useTranslation as ee}from"@payloadcms/ui";import{dequal as oe}from"dequal/lite";import{$getNodeByKey as M}from"lexical";import w,{useCallback as A}from"react";import{useAllFormFields as U}from"@payloadcms/ui";import{reduceFieldsToValues as I}from"payload/shared";import{useEffect as j}from"react";function E({fields:s}){for(let e in s){let a=s[e];Array.isArray(a.rows)&&"value"in a&&(a.disableFormData=!0)}return s}var O=s=>{let{onChange:e}=s,[a]=U(),o=E({fields:a}),f=I(o,!0);return j(()=>{e&&e({fullFieldsWithValues:o,newFormData:f})},[f,e,o]),null};import{jsx as u,jsxs as L}from"react/jsx-runtime";var V=s=>{let{baseClass:e,field:a,formData:o,formSchema:f,nodeKey:n,reducedBlock:{LabelComponent:g,labels:B},schemaPath:T}=s,{i18n:C}=ee(),[c]=W(),{getDocPreferences:v,setDocFieldPreferences:_}=Y(),[x,d]=w.useState(()=>{let l=!1;return v().then(m=>{let t=m?.fields[a.name]?.collapsed;t&&t.includes(o.id)&&(l=!0,d(!0))}),l}),i=Z(),[h,S]=w.useState(0),k=i&&h>0,R=[`${e}__row`,k?`${e}__row--has-errors`:`${e}__row--no-errors`].filter(Boolean).join(" "),N=A(({fullFieldsWithValues:l,newFormData:m})=>{m={...m,id:o.id,blockType:o.blockType};function P(t){for(let r in t){let b=t[r];Array.isArray(b)&&!b?.length?delete t[r]:b&&typeof b=="object"?P(b):b==null&&delete t[r]}}if(P(m),P(o),oe(o,m)||setTimeout(()=>{c.update(()=>{let t=M(n);t&&t.setFields(m)})},0),i){let t=0;for(let r of Object.values(l))r?.valid===!1&&t++;S(t)}},[c,n,i,o]),$=A(l=>{v().then(m=>{let t=m?.fields[a.name]?.collapsed,r=t&&t?.length?t:[];l?r.includes(o.id)||r.push(o.id):r.includes(o.id)&&r.splice(r.indexOf(o.id),1),_(a.name,{collapsed:r,hello:"hi"})})},[v,a.name,_,o.id]),F=A(()=>{c.update(()=>{M(n).remove()})},[c,n]);return L(w.Fragment,{children:[u(q,{className:R,collapsibleStyle:k?"error":"default",header:g?u(g,{blockKind:"lexicalBlock",formData:o}):L("div",{className:`${e}__block-header`,children:[L("div",{children:[u(J,{className:`${e}__block-pill ${e}__block-pill-${o?.blockType}`,pillStyle:"white",children:typeof B.singular=="string"?z(B.singular,C):"[Singular Label]"}),u(X,{path:"blockName",readOnly:a?.readOnly}),k&&u(G,{count:h,i18n:C,withMessage:!0})]}),c.isEditable()&&u(H,{buttonStyle:"icon-label",className:`${e}__removeButton`,disabled:a?.readOnly,icon:"x",onClick:l=>{l.preventDefault(),F()},round:!0,tooltip:"Remove Block"})]}),isCollapsed:x,onToggle:l=>{$(l),d(l)},children:u(Q,{className:`${e}__fields`,fieldMap:Array.isArray(f)?f:[],forceRender:!0,margins:"small",path:"",readOnly:!1,schemaPath:T})},0),u(O,{onChange:N})]})};import{jsx as p,jsxs as Ce}from"react/jsx-runtime";var y="lexical-block",Ie=s=>{let{formData:e,nodeKey:a}=s,o=se(),f=de(),{id:n}=ne(),{path:g,schemaPath:B}=ce(),{editorConfig:T,field:C}=D(),[c,v]=ye(!1),{field:{richTextComponentMap:_}}=D(),x=`lexical_internal_feature.blocks.fields.${e?.blockType}`,d=`${B}.lexical_internal_feature.blocks.${e?.blockType}`,i=T?.resolvedFeatureMap?.get("blocks")?.sanitizedClientFeatureProps?.reducedBlocks?.find(F=>F.slug===e?.blockType),h=_.get(x);fe(()=>{e&&(async()=>{let l=await K({apiRoute:o.routes.api,body:{id:n,data:e,operation:"update",schemaPath:d},serverURL:o.serverURL});l&&v({...l,blockName:{initialValue:"",passesCondition:!0,valid:!0,value:e.blockName}})})()},[o.routes.api,o.serverURL,d,n]);let S=pe(async({formState:F})=>({...await K({apiRoute:o.routes.api,body:{id:n,formState:F,operation:"update",schemaPath:d},serverURL:o.serverURL}),blockName:{initialValue:"",passesCondition:!0,valid:!0,value:e.blockName}}),[o.routes.api,o.serverURL,d,n,e.blockName]),{i18n:k}=me(),R=[`${y}__row`,`${y}__row--no-errors`].filter(Boolean).join(" "),N=i?.LabelComponent,$=ue(()=>i&&c!==!1?p(ae,{beforeSubmit:[S],fields:h,initialState:c,onChange:[S],submitted:f,uuid:be(),children:p(V,{baseClass:y,field:C,formData:e,formSchema:Array.isArray(h)?h:[],nodeKey:a,path:`${g}.lexical_internal_feature.blocks.${e.blockType}`,reducedBlock:i,schemaPath:d})}):p(te,{className:R,collapsibleStyle:"default",header:N?p(N,{blockKind:"lexicalBlock",formData:e}):p("div",{className:`${y}__block-header`,children:Ce("div",{children:[p(le,{className:`${y}__block-pill ${y}__block-pill-${e?.blockType}`,pillStyle:"white",children:i&&typeof i.labels.singular=="string"?he(i.labels.singular,k):"[Singular Label]"}),p(re,{path:"blockName",readOnly:C?.readOnly})]})}),children:p(ie,{height:"35vh"})},0),[R,h,C,a,k,f,c,i,S,d,g]);return p("div",{className:y+" "+y+"-"+e.blockType,children:$})};export{Ie as BlockComponent};
|
|
2
|
-
//# sourceMappingURL=component-KA7FDRMA.js.map
|