@payloadcms/richtext-lexical 3.0.0-canary.a192632 → 3.0.0-canary.a5aaf21
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 +107 -132
- package/dist/cell/index.js.map +1 -1
- package/dist/exports/client/Component-DOSSWC76.js +2 -0
- package/dist/exports/client/Component-DOSSWC76.js.map +7 -0
- package/dist/exports/client/Component-MBLHTKDK.js +2 -0
- package/dist/exports/client/Component-MBLHTKDK.js.map +7 -0
- package/dist/exports/client/Field-EL5TNVZW.js +2 -0
- package/dist/exports/client/Field-EL5TNVZW.js.map +7 -0
- package/dist/exports/client/RelationshipComponent-Z5SZ5FFT.js +2 -0
- package/dist/exports/client/RelationshipComponent-Z5SZ5FFT.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/chunk-F5DIILW3.js +2 -0
- package/dist/exports/client/chunk-F5DIILW3.js.map +7 -0
- package/dist/exports/client/chunk-GK7ZKYHL.js +2 -0
- package/dist/exports/client/chunk-GK7ZKYHL.js.map +7 -0
- package/dist/exports/client/chunk-GTKNWSQW.js +2 -0
- package/dist/exports/client/chunk-GTKNWSQW.js.map +7 -0
- package/dist/exports/client/chunk-PECDZEZY.js +3 -0
- package/dist/exports/client/chunk-PECDZEZY.js.map +7 -0
- package/dist/exports/client/chunk-PY6JO5OH.js +2 -0
- package/dist/exports/client/chunk-PY6JO5OH.js.map +7 -0
- package/dist/exports/client/chunk-TXEIKM77.js +2 -0
- package/dist/exports/client/chunk-TXEIKM77.js.map +7 -0
- package/dist/exports/client/component-ATPITPNI.js +2 -0
- package/dist/exports/client/component-ATPITPNI.js.map +7 -0
- package/dist/exports/client/component-GAX6BHKZ.js +2 -0
- package/dist/exports/client/component-GAX6BHKZ.js.map +7 -0
- package/dist/exports/client/component-M3ZCPXEG.js +2 -0
- package/dist/exports/client/component-M3ZCPXEG.js.map +7 -0
- package/dist/exports/client/componentInline-HAGGWKA7.js +2 -0
- package/dist/exports/client/componentInline-HAGGWKA7.js.map +7 -0
- package/dist/exports/client/index.d.ts +2 -3
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +9 -9
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/server/migrate.js +0 -1
- package/dist/exports/server/migrate.js.map +1 -1
- package/dist/features/align/client/index.d.ts +1 -4
- package/dist/features/align/client/index.d.ts.map +1 -1
- package/dist/features/align/client/index.js +151 -134
- package/dist/features/align/client/index.js.map +1 -1
- package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
- package/dist/features/align/client/toolbarAlignGroup.js +10 -9
- package/dist/features/align/client/toolbarAlignGroup.js.map +1 -1
- package/dist/features/align/server/i18n.js +192 -193
- package/dist/features/align/server/i18n.js.map +1 -1
- package/dist/features/align/server/index.js +5 -6
- package/dist/features/align/server/index.js.map +1 -1
- package/dist/features/blockquote/client/index.d.ts +1 -4
- package/dist/features/blockquote/client/index.d.ts.map +1 -1
- package/dist/features/blockquote/client/index.js +60 -65
- package/dist/features/blockquote/client/index.js.map +1 -1
- package/dist/features/blockquote/markdownTransformer.js +28 -34
- package/dist/features/blockquote/markdownTransformer.js.map +1 -1
- package/dist/features/blockquote/server/i18n.js +96 -97
- package/dist/features/blockquote/server/i18n.js.map +1 -1
- package/dist/features/blockquote/server/index.d.ts.map +1 -1
- package/dist/features/blockquote/server/index.js +43 -38
- package/dist/features/blockquote/server/index.js.map +1 -1
- package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
- package/dist/features/blocks/client/component/BlockContent.js +166 -172
- package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
- package/dist/features/blocks/client/component/FormSavePlugin.d.ts.map +1 -1
- package/dist/features/blocks/client/component/FormSavePlugin.js +46 -22
- package/dist/features/blocks/client/component/FormSavePlugin.js.map +1 -1
- package/dist/features/blocks/client/component/index.js +134 -142
- package/dist/features/blocks/client/component/index.js.map +1 -1
- package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts.map +1 -1
- package/dist/features/blocks/client/component/removeEmptyArrayValues.js +12 -8
- package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +1 -1
- package/dist/features/blocks/client/componentInline/index.js +106 -122
- package/dist/features/blocks/client/componentInline/index.js.map +1 -1
- package/dist/features/blocks/client/index.d.ts +1 -4
- package/dist/features/blocks/client/index.d.ts.map +1 -1
- package/dist/features/blocks/client/index.js +149 -142
- package/dist/features/blocks/client/index.js.map +1 -1
- package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/client/nodes/BlocksNode.js +41 -40
- package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
- package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js +31 -30
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
- package/dist/features/blocks/client/plugin/commands.d.ts.map +1 -1
- package/dist/features/blocks/client/plugin/commands.js +2 -1
- package/dist/features/blocks/client/plugin/commands.js.map +1 -1
- package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
- package/dist/features/blocks/client/plugin/index.js +181 -99
- package/dist/features/blocks/client/plugin/index.js.map +1 -1
- package/dist/features/blocks/server/graphQLPopulationPromise.js +41 -28
- package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/blocks/server/i18n.js +288 -289
- package/dist/features/blocks/server/i18n.js.map +1 -1
- package/dist/features/blocks/server/index.d.ts.map +1 -1
- package/dist/features/blocks/server/index.js +151 -151
- package/dist/features/blocks/server/index.js.map +1 -1
- package/dist/features/blocks/server/nodes/BlocksNode.d.ts +1 -1
- package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/server/nodes/BlocksNode.js +76 -73
- package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
- package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +1 -1
- package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/server/nodes/InlineBlocksNode.js +78 -76
- package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
- package/dist/features/blocks/server/validate.js +45 -34
- package/dist/features/blocks/server/validate.js.map +1 -1
- package/dist/features/converters/html/converter/converters/linebreak.js +4 -7
- package/dist/features/converters/html/converter/converters/linebreak.js.map +1 -1
- package/dist/features/converters/html/converter/converters/paragraph.d.ts.map +1 -1
- package/dist/features/converters/html/converter/converters/paragraph.js +28 -19
- package/dist/features/converters/html/converter/converters/paragraph.js.map +1 -1
- package/dist/features/converters/html/converter/converters/text.d.ts.map +1 -1
- package/dist/features/converters/html/converter/converters/text.js +29 -29
- package/dist/features/converters/html/converter/converters/text.js.map +1 -1
- package/dist/features/converters/html/converter/defaultConverters.js +1 -6
- package/dist/features/converters/html/converter/defaultConverters.js.map +1 -1
- package/dist/features/converters/html/converter/index.d.ts +11 -7
- package/dist/features/converters/html/converter/index.d.ts.map +1 -1
- package/dist/features/converters/html/converter/index.js +82 -51
- package/dist/features/converters/html/converter/index.js.map +1 -1
- package/dist/features/converters/html/converter/types.d.ts +3 -1
- package/dist/features/converters/html/converter/types.d.ts.map +1 -1
- package/dist/features/converters/html/converter/types.js +1 -2
- package/dist/features/converters/html/converter/types.js.map +1 -1
- package/dist/features/converters/html/field/index.d.ts.map +1 -1
- package/dist/features/converters/html/field/index.js +140 -139
- package/dist/features/converters/html/field/index.js.map +1 -1
- package/dist/features/converters/html/index.js +2 -3
- package/dist/features/converters/html/index.js.map +1 -1
- package/dist/features/debug/testRecorder/client/index.d.ts +1 -4
- package/dist/features/debug/testRecorder/client/index.d.ts.map +1 -1
- package/dist/features/debug/testRecorder/client/index.js +5 -7
- package/dist/features/debug/testRecorder/client/index.js.map +1 -1
- package/dist/features/debug/testRecorder/client/plugin/index.js +353 -413
- package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
- package/dist/features/debug/testRecorder/server/index.js +4 -5
- package/dist/features/debug/testRecorder/server/index.js.map +1 -1
- package/dist/features/debug/treeView/client/index.d.ts +1 -4
- package/dist/features/debug/treeView/client/index.d.ts.map +1 -1
- package/dist/features/debug/treeView/client/index.js +5 -7
- package/dist/features/debug/treeView/client/index.js.map +1 -1
- package/dist/features/debug/treeView/client/plugin/index.js +21 -11
- package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
- package/dist/features/debug/treeView/server/index.js +4 -5
- package/dist/features/debug/treeView/server/index.js.map +1 -1
- package/dist/features/experimental_table/client/index.d.ts +1 -1
- package/dist/features/experimental_table/client/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/index.js +41 -58
- package/dist/features/experimental_table/client/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +485 -567
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +282 -301
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts +1 -8
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +165 -160
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +132 -79
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/utils/debounce.d.ts.map +1 -1
- package/dist/features/experimental_table/client/utils/debounce.js +108 -89
- package/dist/features/experimental_table/client/utils/debounce.js.map +1 -1
- package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +1 -1
- package/dist/features/experimental_table/client/utils/useDebounce.js +11 -13
- package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
- package/dist/features/experimental_table/server/index.d.ts.map +1 -1
- package/dist/features/experimental_table/server/index.js +141 -114
- package/dist/features/experimental_table/server/index.js.map +1 -1
- package/dist/features/format/bold/feature.client.d.ts +1 -4
- package/dist/features/format/bold/feature.client.d.ts.map +1 -1
- package/dist/features/format/bold/feature.client.js +34 -35
- package/dist/features/format/bold/feature.client.js.map +1 -1
- package/dist/features/format/bold/feature.server.js +14 -18
- package/dist/features/format/bold/feature.server.js.map +1 -1
- package/dist/features/format/bold/markdownTransformers.js +14 -25
- package/dist/features/format/bold/markdownTransformers.js.map +1 -1
- package/dist/features/format/inlineCode/feature.client.d.ts +1 -4
- package/dist/features/format/inlineCode/feature.client.d.ts.map +1 -1
- package/dist/features/format/inlineCode/feature.client.js +26 -28
- package/dist/features/format/inlineCode/feature.client.js.map +1 -1
- package/dist/features/format/inlineCode/feature.server.js +5 -8
- package/dist/features/format/inlineCode/feature.server.js.map +1 -1
- package/dist/features/format/inlineCode/markdownTransformers.js +3 -6
- package/dist/features/format/inlineCode/markdownTransformers.js.map +1 -1
- package/dist/features/format/italic/feature.client.d.ts +1 -4
- package/dist/features/format/italic/feature.client.d.ts.map +1 -1
- package/dist/features/format/italic/feature.client.js +26 -29
- package/dist/features/format/italic/feature.client.js.map +1 -1
- package/dist/features/format/italic/feature.server.js +5 -9
- package/dist/features/format/italic/feature.server.js.map +1 -1
- package/dist/features/format/italic/markdownTransformers.js +7 -12
- package/dist/features/format/italic/markdownTransformers.js.map +1 -1
- package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
- package/dist/features/format/shared/toolbarFormatGroup.js +9 -8
- package/dist/features/format/shared/toolbarFormatGroup.js.map +1 -1
- package/dist/features/format/strikethrough/feature.client.d.ts +1 -4
- package/dist/features/format/strikethrough/feature.client.d.ts.map +1 -1
- package/dist/features/format/strikethrough/feature.client.js +26 -28
- package/dist/features/format/strikethrough/feature.client.js.map +1 -1
- package/dist/features/format/strikethrough/feature.server.js +5 -8
- package/dist/features/format/strikethrough/feature.server.js.map +1 -1
- package/dist/features/format/strikethrough/markdownTransformers.js +3 -6
- package/dist/features/format/strikethrough/markdownTransformers.js.map +1 -1
- package/dist/features/format/subscript/feature.client.d.ts +1 -4
- package/dist/features/format/subscript/feature.client.d.ts.map +1 -1
- package/dist/features/format/subscript/feature.client.js +25 -25
- package/dist/features/format/subscript/feature.client.js.map +1 -1
- package/dist/features/format/subscript/feature.server.js +4 -5
- package/dist/features/format/subscript/feature.server.js.map +1 -1
- package/dist/features/format/superscript/feature.client.d.ts +1 -4
- package/dist/features/format/superscript/feature.client.d.ts.map +1 -1
- package/dist/features/format/superscript/feature.client.js +25 -25
- package/dist/features/format/superscript/feature.client.js.map +1 -1
- package/dist/features/format/superscript/feature.server.js +4 -5
- package/dist/features/format/superscript/feature.server.js.map +1 -1
- package/dist/features/format/underline/feature.client.d.ts +1 -4
- package/dist/features/format/underline/feature.client.d.ts.map +1 -1
- package/dist/features/format/underline/feature.client.js +25 -25
- package/dist/features/format/underline/feature.client.js.map +1 -1
- package/dist/features/format/underline/feature.server.js +4 -5
- package/dist/features/format/underline/feature.server.js.map +1 -1
- package/dist/features/heading/client/index.d.ts +1 -4
- package/dist/features/heading/client/index.d.ts.map +1 -1
- package/dist/features/heading/client/index.js +86 -90
- package/dist/features/heading/client/index.js.map +1 -1
- package/dist/features/heading/markdownTransformer.js +22 -25
- package/dist/features/heading/markdownTransformer.js.map +1 -1
- package/dist/features/heading/server/i18n.js +96 -97
- package/dist/features/heading/server/i18n.js.map +1 -1
- package/dist/features/heading/server/index.d.ts.map +1 -1
- package/dist/features/heading/server/index.js +53 -51
- package/dist/features/heading/server/index.js.map +1 -1
- package/dist/features/horizontalRule/client/component/index.js +81 -51
- package/dist/features/horizontalRule/client/component/index.js.map +1 -1
- package/dist/features/horizontalRule/client/index.d.ts +1 -4
- package/dist/features/horizontalRule/client/index.d.ts.map +1 -1
- package/dist/features/horizontalRule/client/index.js +48 -57
- package/dist/features/horizontalRule/client/index.js.map +1 -1
- package/dist/features/horizontalRule/client/markdownTransformer.js +15 -18
- package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +33 -30
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
- package/dist/features/horizontalRule/client/plugin/index.js +31 -20
- package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
- package/dist/features/horizontalRule/server/i18n.js +96 -97
- package/dist/features/horizontalRule/server/i18n.js.map +1 -1
- package/dist/features/horizontalRule/server/index.js +17 -24
- package/dist/features/horizontalRule/server/index.js.map +1 -1
- package/dist/features/horizontalRule/server/markdownTransformer.js +15 -18
- package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +72 -67
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
- package/dist/features/indent/client/index.d.ts +1 -4
- package/dist/features/indent/client/index.d.ts.map +1 -1
- package/dist/features/indent/client/index.js +52 -47
- package/dist/features/indent/client/index.js.map +1 -1
- package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
- package/dist/features/indent/client/toolbarIndentGroup.js +9 -8
- package/dist/features/indent/client/toolbarIndentGroup.js.map +1 -1
- package/dist/features/indent/server/i18n.js +128 -129
- package/dist/features/indent/server/i18n.js.map +1 -1
- package/dist/features/indent/server/index.js +5 -6
- package/dist/features/indent/server/index.js.map +1 -1
- package/dist/features/link/client/index.d.ts +1 -13
- package/dist/features/link/client/index.d.ts.map +1 -1
- package/dist/features/link/client/index.js +79 -84
- package/dist/features/link/client/index.js.map +1 -1
- package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
- package/dist/features/link/client/plugins/autoLink/index.js +269 -271
- package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
- package/dist/features/link/client/plugins/clickableLink/index.js +3 -3
- package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js +2 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +257 -277
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js +8 -6
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/types.js +1 -2
- package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
- package/dist/features/link/client/plugins/link/index.js +50 -41
- package/dist/features/link/client/plugins/link/index.js.map +1 -1
- package/dist/features/link/markdownTransformer.js +38 -39
- package/dist/features/link/markdownTransformer.js.map +1 -1
- package/dist/features/link/nodes/AutoLinkNode.js +57 -56
- package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
- package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
- package/dist/features/link/nodes/LinkNode.js +279 -277
- package/dist/features/link/nodes/LinkNode.js.map +1 -1
- package/dist/features/link/nodes/types.js +1 -2
- package/dist/features/link/nodes/types.js.map +1 -1
- package/dist/features/link/server/baseFields.d.ts.map +1 -1
- package/dist/features/link/server/baseFields.js +128 -88
- package/dist/features/link/server/baseFields.js.map +1 -1
- package/dist/features/link/server/graphQLPopulationPromise.js +42 -28
- package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/link/server/i18n.js +96 -97
- package/dist/features/link/server/i18n.js.map +1 -1
- package/dist/features/link/server/index.d.ts.map +1 -1
- package/dist/features/link/server/index.js +131 -114
- package/dist/features/link/server/index.js.map +1 -1
- package/dist/features/link/server/transformExtraFields.js +15 -15
- package/dist/features/link/server/transformExtraFields.js.map +1 -1
- package/dist/features/link/server/validate.js +37 -26
- package/dist/features/link/server/validate.js.map +1 -1
- package/dist/features/lists/checklist/client/index.d.ts +1 -4
- package/dist/features/lists/checklist/client/index.d.ts.map +1 -1
- package/dist/features/lists/checklist/client/index.js +77 -85
- package/dist/features/lists/checklist/client/index.js.map +1 -1
- package/dist/features/lists/checklist/client/plugin/index.js +3 -3
- package/dist/features/lists/checklist/client/plugin/index.js.map +1 -1
- package/dist/features/lists/checklist/markdownTransformers.js +7 -11
- package/dist/features/lists/checklist/markdownTransformers.js.map +1 -1
- package/dist/features/lists/checklist/server/i18n.js +96 -97
- package/dist/features/lists/checklist/server/i18n.js.map +1 -1
- package/dist/features/lists/checklist/server/index.js +21 -25
- package/dist/features/lists/checklist/server/index.js.map +1 -1
- package/dist/features/lists/htmlConverter.d.ts.map +1 -1
- package/dist/features/lists/htmlConverter.js +62 -43
- package/dist/features/lists/htmlConverter.js.map +1 -1
- package/dist/features/lists/orderedList/client/index.d.ts +1 -4
- package/dist/features/lists/orderedList/client/index.d.ts.map +1 -1
- package/dist/features/lists/orderedList/client/index.js +71 -77
- package/dist/features/lists/orderedList/client/index.js.map +1 -1
- package/dist/features/lists/orderedList/markdownTransformer.js +7 -11
- package/dist/features/lists/orderedList/markdownTransformer.js.map +1 -1
- package/dist/features/lists/orderedList/server/i18n.js +96 -97
- package/dist/features/lists/orderedList/server/i18n.js.map +1 -1
- package/dist/features/lists/orderedList/server/index.js +21 -25
- package/dist/features/lists/orderedList/server/index.js.map +1 -1
- package/dist/features/lists/plugin/index.js +3 -3
- package/dist/features/lists/plugin/index.js.map +1 -1
- package/dist/features/lists/shared/markdown.js +48 -49
- package/dist/features/lists/shared/markdown.js.map +1 -1
- package/dist/features/lists/shared/slashMenuListGroup.js +9 -8
- package/dist/features/lists/shared/slashMenuListGroup.js.map +1 -1
- package/dist/features/lists/unorderedList/client/index.d.ts +1 -4
- package/dist/features/lists/unorderedList/client/index.d.ts.map +1 -1
- package/dist/features/lists/unorderedList/client/index.js +68 -76
- package/dist/features/lists/unorderedList/client/index.js.map +1 -1
- package/dist/features/lists/unorderedList/markdownTransformer.js +7 -11
- package/dist/features/lists/unorderedList/markdownTransformer.js.map +1 -1
- package/dist/features/lists/unorderedList/server/i18n.js +96 -97
- package/dist/features/lists/unorderedList/server/i18n.js.map +1 -1
- package/dist/features/lists/unorderedList/server/index.js +17 -23
- package/dist/features/lists/unorderedList/server/index.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +18 -17
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +30 -29
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +21 -20
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +21 -19
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +18 -17
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +24 -23
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +20 -21
- package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +1 -10
- package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +69 -61
- package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.js +1 -2
- package/dist/features/migrations/lexicalPluginToLexical/converter/types.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts +1 -4
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.js +5 -7
- package/dist/features/migrations/lexicalPluginToLexical/feature.client.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts +1 -0
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.js +42 -43
- package/dist/features/migrations/lexicalPluginToLexical/feature.server.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +11 -11
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +64 -59
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +19 -19
- package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js +20 -25
- package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js +28 -30
- package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +26 -26
- package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js +22 -21
- package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +22 -22
- package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js +12 -13
- package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js +23 -23
- package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +22 -22
- package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js +15 -16
- package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.js +1 -13
- package/dist/features/migrations/slateToLexical/converter/defaultConverters.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/index.js +105 -98
- package/dist/features/migrations/slateToLexical/converter/index.js.map +1 -1
- package/dist/features/migrations/slateToLexical/converter/types.js +1 -2
- package/dist/features/migrations/slateToLexical/converter/types.js.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.client.d.ts +1 -4
- package/dist/features/migrations/slateToLexical/feature.client.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.client.js +5 -7
- package/dist/features/migrations/slateToLexical/feature.client.js.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.server.d.ts +1 -0
- package/dist/features/migrations/slateToLexical/feature.server.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/feature.server.js +43 -44
- package/dist/features/migrations/slateToLexical/feature.server.js.map +1 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +11 -11
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +64 -59
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
- package/dist/features/paragraph/client/index.d.ts +1 -4
- package/dist/features/paragraph/client/index.d.ts.map +1 -1
- package/dist/features/paragraph/client/index.js +58 -61
- package/dist/features/paragraph/client/index.js.map +1 -1
- package/dist/features/paragraph/server/i18n.js +128 -129
- package/dist/features/paragraph/server/i18n.js.map +1 -1
- package/dist/features/paragraph/server/index.js +6 -7
- package/dist/features/paragraph/server/index.js.map +1 -1
- package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
- package/dist/features/relationship/client/components/RelationshipComponent.js +144 -149
- package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
- package/dist/features/relationship/client/drawer/commands.js +0 -1
- package/dist/features/relationship/client/drawer/commands.js.map +1 -1
- package/dist/features/relationship/client/drawer/index.js +138 -67
- package/dist/features/relationship/client/drawer/index.js.map +1 -1
- package/dist/features/relationship/client/index.d.ts +2 -17
- package/dist/features/relationship/client/index.d.ts.map +1 -1
- package/dist/features/relationship/client/index.js +53 -59
- package/dist/features/relationship/client/index.js.map +1 -1
- package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
- package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
- package/dist/features/relationship/client/nodes/RelationshipNode.js +60 -59
- package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
- package/dist/features/relationship/client/plugins/index.js +90 -35
- package/dist/features/relationship/client/plugins/index.js.map +1 -1
- package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.d.ts.map +1 -1
- package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +97 -26
- package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -1
- package/dist/features/relationship/server/graphQLPopulationPromise.js +34 -26
- package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/relationship/server/i18n.js +96 -97
- package/dist/features/relationship/server/i18n.js.map +1 -1
- package/dist/features/relationship/server/index.d.ts +1 -1
- package/dist/features/relationship/server/index.d.ts.map +1 -1
- package/dist/features/relationship/server/index.js +56 -44
- package/dist/features/relationship/server/index.js.map +1 -1
- package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +7 -5
- package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
- package/dist/features/relationship/server/nodes/RelationshipNode.js +90 -87
- package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
- package/dist/features/shared/slashMenu/basicGroup.js +9 -8
- package/dist/features/shared/slashMenu/basicGroup.js.map +1 -1
- package/dist/features/shared/toolbar/addDropdownGroup.js +8 -9
- package/dist/features/shared/toolbar/addDropdownGroup.js.map +1 -1
- package/dist/features/shared/toolbar/featureButtonsGroup.js +7 -8
- package/dist/features/shared/toolbar/featureButtonsGroup.js.map +1 -1
- package/dist/features/shared/toolbar/textDropdownGroup.js +8 -9
- package/dist/features/shared/toolbar/textDropdownGroup.js.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.js +264 -187
- package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/fixed/client/index.d.ts +1 -4
- package/dist/features/toolbars/fixed/client/index.d.ts.map +1 -1
- package/dist/features/toolbars/fixed/client/index.js +5 -7
- package/dist/features/toolbars/fixed/client/index.js.map +1 -1
- package/dist/features/toolbars/fixed/server/index.js +14 -13
- package/dist/features/toolbars/fixed/server/index.js.map +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.js +338 -291
- package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/inline/client/index.d.ts +1 -4
- package/dist/features/toolbars/inline/client/index.d.ts.map +1 -1
- package/dist/features/toolbars/inline/client/index.js +5 -7
- package/dist/features/toolbars/inline/client/index.js.map +1 -1
- package/dist/features/toolbars/inline/server/index.js +4 -5
- package/dist/features/toolbars/inline/server/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarButton/index.d.ts +1 -1
- package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarButton/index.js +75 -97
- package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts +2 -2
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +194 -209
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +3 -3
- package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js +271 -124
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
- package/dist/features/toolbars/types.js +1 -2
- package/dist/features/toolbars/types.js.map +1 -1
- package/dist/features/typeUtilities.js +2 -3
- package/dist/features/typeUtilities.js.map +1 -1
- package/dist/features/typesClient.d.ts +10 -11
- package/dist/features/typesClient.d.ts.map +1 -1
- package/dist/features/typesClient.js +1 -2
- package/dist/features/typesClient.js.map +1 -1
- package/dist/features/typesServer.d.ts +11 -11
- package/dist/features/typesServer.d.ts.map +1 -1
- package/dist/features/typesServer.js +1 -2
- package/dist/features/typesServer.js.map +1 -1
- package/dist/features/upload/client/component/index.d.ts.map +1 -1
- package/dist/features/upload/client/component/index.js +212 -220
- package/dist/features/upload/client/component/index.js.map +1 -1
- package/dist/features/upload/client/drawer/commands.js +1 -1
- package/dist/features/upload/client/drawer/commands.js.map +1 -1
- package/dist/features/upload/client/drawer/index.js +107 -58
- package/dist/features/upload/client/drawer/index.js.map +1 -1
- package/dist/features/upload/client/feature.client.d.ts +1 -4
- package/dist/features/upload/client/feature.client.d.ts.map +1 -1
- package/dist/features/upload/client/feature.client.js +51 -61
- package/dist/features/upload/client/feature.client.js.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.js +77 -74
- package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/client/plugin/index.js +67 -39
- package/dist/features/upload/client/plugin/index.js.map +1 -1
- package/dist/features/upload/server/feature.server.d.ts.map +1 -1
- package/dist/features/upload/server/feature.server.js +195 -170
- package/dist/features/upload/server/feature.server.js.map +1 -1
- package/dist/features/upload/server/graphQLPopulationPromise.js +60 -47
- package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/upload/server/i18n.js +96 -97
- package/dist/features/upload/server/i18n.js.map +1 -1
- package/dist/features/upload/server/nodes/UploadNode.d.ts +9 -7
- package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/server/nodes/UploadNode.js +113 -108
- package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/server/validate.js +53 -40
- package/dist/features/upload/server/validate.js.map +1 -1
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +124 -105
- package/dist/field/Field.js.map +1 -1
- package/dist/field/bundled.css +1 -0
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +83 -36
- package/dist/field/index.js.map +1 -1
- package/dist/i18n.js +160 -161
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +666 -629
- package/dist/index.js.map +1 -1
- package/dist/lexical/EditorPlugin.d.ts.map +1 -1
- package/dist/lexical/EditorPlugin.js +15 -10
- package/dist/lexical/EditorPlugin.js.map +1 -1
- package/dist/lexical/LexicalEditor.d.ts.map +1 -1
- package/dist/lexical/LexicalEditor.js +209 -164
- package/dist/lexical/LexicalEditor.js.map +1 -1
- package/dist/lexical/LexicalProvider.js +84 -83
- package/dist/lexical/LexicalProvider.js.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.d.ts +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.js +76 -79
- package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
- package/dist/lexical/config/client/default.js +3 -3
- package/dist/lexical/config/client/default.js.map +1 -1
- package/dist/lexical/config/client/loader.d.ts +1 -3
- package/dist/lexical/config/client/loader.d.ts.map +1 -1
- package/dist/lexical/config/client/loader.js +30 -39
- package/dist/lexical/config/client/loader.js.map +1 -1
- package/dist/lexical/config/client/sanitize.d.ts +1 -1
- package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
- package/dist/lexical/config/client/sanitize.js +166 -166
- package/dist/lexical/config/client/sanitize.js.map +1 -1
- package/dist/lexical/config/server/default.js +5 -27
- package/dist/lexical/config/server/default.js.map +1 -1
- package/dist/lexical/config/server/loader.d.ts +2 -1
- package/dist/lexical/config/server/loader.d.ts.map +1 -1
- package/dist/lexical/config/server/loader.js +105 -103
- package/dist/lexical/config/server/loader.js.map +1 -1
- package/dist/lexical/config/server/sanitize.d.ts +1 -1
- package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
- package/dist/lexical/config/server/sanitize.js +100 -100
- package/dist/lexical/config/server/sanitize.js.map +1 -1
- package/dist/lexical/config/types.js +1 -2
- package/dist/lexical/config/types.js.map +1 -1
- package/dist/lexical/nodes/index.js +9 -8
- package/dist/lexical/nodes/index.js.map +1 -1
- package/dist/lexical/plugins/MarkdownShortcut/index.js +17 -5
- package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +3 -3
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +349 -362
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +223 -160
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +1 -2
- 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 +191 -179
- package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +41 -26
- package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -1
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +126 -130
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +11 -10
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +11 -10
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +27 -23
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +306 -300
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +96 -99
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js +23 -16
- package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js +20 -27
- package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/getCollapsedMargins.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js +15 -11
- package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js +133 -118
- package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +3 -2
- package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/isOnHandleElement.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/utils/isOnHandleElement.js +3 -2
- package/dist/lexical/plugins/handles/utils/isOnHandleElement.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/utils/setHandlePosition.js +24 -25
- package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
- package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
- package/dist/lexical/theme/EditorTheme.js +97 -102
- package/dist/lexical/theme/EditorTheme.js.map +1 -1
- package/dist/lexical/ui/ContentEditable.d.ts.map +1 -1
- package/dist/lexical/ui/ContentEditable.js +27 -10
- package/dist/lexical/ui/ContentEditable.js.map +1 -1
- package/dist/lexical/ui/icons/AI/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/AI/index.js +31 -33
- package/dist/lexical/ui/icons/AI/index.js.map +1 -1
- package/dist/lexical/ui/icons/Add/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Add/index.js +16 -18
- package/dist/lexical/ui/icons/Add/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignCenter/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/AlignCenter/index.js +25 -28
- package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignJustify/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/AlignJustify/index.js +25 -28
- package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignLeft/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/AlignLeft/index.js +25 -28
- package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignRight/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/AlignRight/index.js +25 -28
- package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
- package/dist/lexical/ui/icons/Block/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Block/index.js +34 -37
- package/dist/lexical/ui/icons/Block/index.js.map +1 -1
- package/dist/lexical/ui/icons/Blockquote/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Blockquote/index.js +16 -15
- package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
- package/dist/lexical/ui/icons/Bold/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Bold/index.js +16 -15
- package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
- package/dist/lexical/ui/icons/Caret/index.svg +2 -2
- package/dist/lexical/ui/icons/Checklist/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Checklist/index.js +24 -26
- package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
- package/dist/lexical/ui/icons/Code/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Code/index.js +19 -21
- package/dist/lexical/ui/icons/Code/index.js.map +1 -1
- package/dist/lexical/ui/icons/CodeBlock/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/CodeBlock/index.js +19 -21
- package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
- package/dist/lexical/ui/icons/H1/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H1/index.js +16 -15
- package/dist/lexical/ui/icons/H1/index.js.map +1 -1
- package/dist/lexical/ui/icons/H2/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H2/index.js +16 -15
- package/dist/lexical/ui/icons/H2/index.js.map +1 -1
- package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H3/index.js +16 -15
- package/dist/lexical/ui/icons/H3/index.js.map +1 -1
- package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H4/index.js +16 -15
- package/dist/lexical/ui/icons/H4/index.js.map +1 -1
- package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H5/index.js +16 -15
- package/dist/lexical/ui/icons/H5/index.js.map +1 -1
- package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H6/index.js +16 -15
- package/dist/lexical/ui/icons/H6/index.js.map +1 -1
- package/dist/lexical/ui/icons/HorizontalRule/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/HorizontalRule/index.js +19 -18
- package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
- package/dist/lexical/ui/icons/IndentDecrease/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/IndentDecrease/index.js +28 -32
- package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
- package/dist/lexical/ui/icons/IndentIncrease/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/IndentIncrease/index.js +28 -32
- package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
- package/dist/lexical/ui/icons/InlineBlocks/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/InlineBlocks/index.js +18 -17
- package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
- package/dist/lexical/ui/icons/Italic/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Italic/index.js +16 -15
- package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
- package/dist/lexical/ui/icons/Link/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Link/index.js +17 -16
- package/dist/lexical/ui/icons/Link/index.js.map +1 -1
- package/dist/lexical/ui/icons/Meatballs/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Meatballs/index.js +19 -22
- package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
- package/dist/lexical/ui/icons/OrderedList/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/OrderedList/index.js +31 -36
- package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
- package/dist/lexical/ui/icons/Relationship/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Relationship/index.js +31 -33
- package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
- package/dist/lexical/ui/icons/Strikethrough/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Strikethrough/index.js +19 -21
- package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
- package/dist/lexical/ui/icons/Subscript/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Subscript/index.js +16 -15
- package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
- package/dist/lexical/ui/icons/Superscript/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Superscript/index.js +16 -15
- package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
- package/dist/lexical/ui/icons/Table/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Table/index.js +17 -16
- package/dist/lexical/ui/icons/Table/index.js.map +1 -1
- package/dist/lexical/ui/icons/Text/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Text/index.js +16 -15
- package/dist/lexical/ui/icons/Text/index.js.map +1 -1
- package/dist/lexical/ui/icons/Underline/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Underline/index.js +19 -21
- package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
- package/dist/lexical/ui/icons/UnorderedList/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/UnorderedList/index.js +46 -52
- package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
- package/dist/lexical/ui/icons/Upload/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/Upload/index.js +28 -31
- package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
- package/dist/lexical/utils/canUseDOM.d.ts.map +1 -1
- package/dist/lexical/utils/canUseDOM.js +2 -1
- package/dist/lexical/utils/canUseDOM.js.map +1 -1
- package/dist/lexical/utils/environment.d.ts.map +1 -1
- package/dist/lexical/utils/environment.js +2 -1
- package/dist/lexical/utils/environment.js.map +1 -1
- package/dist/lexical/utils/getDOMRangeRect.d.ts.map +1 -1
- package/dist/lexical/utils/getDOMRangeRect.js +13 -12
- package/dist/lexical/utils/getDOMRangeRect.js.map +1 -1
- package/dist/lexical/utils/getSelectedNode.d.ts.map +1 -1
- package/dist/lexical/utils/getSelectedNode.js +18 -13
- package/dist/lexical/utils/getSelectedNode.js.map +1 -1
- package/dist/lexical/utils/guard.d.ts.map +1 -1
- package/dist/lexical/utils/guard.js +3 -2
- package/dist/lexical/utils/guard.js.map +1 -1
- package/dist/lexical/utils/joinClasses.d.ts.map +1 -1
- package/dist/lexical/utils/joinClasses.js +3 -2
- package/dist/lexical/utils/joinClasses.js.map +1 -1
- package/dist/lexical/utils/markdown/createBlockNode.js +9 -10
- package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
- package/dist/lexical/utils/nodeFormat.d.ts +2 -2
- package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
- package/dist/lexical/utils/nodeFormat.js +58 -59
- package/dist/lexical/utils/nodeFormat.js.map +1 -1
- package/dist/lexical/utils/point.d.ts.map +1 -1
- package/dist/lexical/utils/point.js +40 -32
- package/dist/lexical/utils/point.js.map +1 -1
- package/dist/lexical/utils/rect.d.ts.map +1 -1
- package/dist/lexical/utils/rect.js +167 -134
- package/dist/lexical/utils/rect.js.map +1 -1
- package/dist/lexical/utils/setFloatingElemPosition.d.ts.map +1 -1
- package/dist/lexical/utils/setFloatingElemPosition.js +57 -46
- package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -1
- package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.d.ts.map +1 -1
- package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js +23 -22
- package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js.map +1 -1
- package/dist/lexical/utils/swipe.d.ts.map +1 -1
- package/dist/lexical/utils/swipe.js +82 -83
- package/dist/lexical/utils/swipe.js.map +1 -1
- package/dist/lexical/utils/url.d.ts +5 -0
- package/dist/lexical/utils/url.d.ts.map +1 -1
- package/dist/lexical/utils/url.js +42 -21
- package/dist/lexical/utils/url.js.map +1 -1
- package/dist/nodeTypes.js +1 -2
- package/dist/nodeTypes.js.map +1 -1
- package/dist/populateGraphQL/defaultValue.js +24 -29
- package/dist/populateGraphQL/defaultValue.js.map +1 -1
- package/dist/populateGraphQL/populate.js +35 -25
- package/dist/populateGraphQL/populate.js.map +1 -1
- package/dist/populateGraphQL/populateLexicalPopulationPromises.js +47 -32
- package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
- package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js +39 -25
- package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js.map +1 -1
- package/dist/types.d.ts +7 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/dist/types.js.map +1 -1
- package/dist/utilities/createClientFeature.d.ts +3 -5
- package/dist/utilities/createClientFeature.d.ts.map +1 -1
- package/dist/utilities/createClientFeature.js +38 -27
- package/dist/utilities/createClientFeature.js.map +1 -1
- package/dist/utilities/createServerFeature.d.ts +1 -0
- package/dist/utilities/createServerFeature.d.ts.map +1 -1
- package/dist/utilities/createServerFeature.js +48 -31
- package/dist/utilities/createServerFeature.js.map +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.js +28 -17
- 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 +154 -78
- package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
- package/dist/utilities/forEachNodeRecursively.js +24 -19
- package/dist/utilities/forEachNodeRecursively.js.map +1 -1
- package/dist/utilities/generateComponentMap.d.ts.map +1 -1
- package/dist/utilities/generateComponentMap.js +87 -84
- package/dist/utilities/generateComponentMap.js.map +1 -1
- package/dist/utilities/generateImportMap.js +53 -47
- package/dist/utilities/generateImportMap.js.map +1 -1
- package/dist/utilities/generateSchemaMap.js +35 -30
- package/dist/utilities/generateSchemaMap.js.map +1 -1
- package/dist/utilities/migrateSlateToLexical/index.d.ts.map +1 -1
- package/dist/utilities/migrateSlateToLexical/index.js +125 -81
- package/dist/utilities/migrateSlateToLexical/index.js.map +1 -1
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +73 -66
- package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
- package/dist/utilities/recurseNodeTree.js +25 -22
- package/dist/utilities/recurseNodeTree.js.map +1 -1
- package/dist/utilities/upgradeLexicalData/index.js +99 -86
- package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
- package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +71 -66
- package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
- package/dist/utilities/useLexicalFeature.js +9 -8
- package/dist/utilities/useLexicalFeature.js.map +1 -1
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js +45 -24
- package/dist/validate/index.js.map +1 -1
- package/dist/validate/validateNodes.d.ts +2 -2
- package/dist/validate/validateNodes.d.ts.map +1 -1
- package/dist/validate/validateNodes.js +31 -28
- package/dist/validate/validateNodes.js.map +1 -1
- package/package.json +33 -21
- package/dist/exports/client/Component-7HS6FEJS.js +0 -2
- package/dist/exports/client/Component-7HS6FEJS.js.map +0 -7
- package/dist/exports/client/Component-LAKSCIDX.js +0 -2
- package/dist/exports/client/Component-LAKSCIDX.js.map +0 -7
- package/dist/exports/client/Field-QK4IB5HD.js +0 -2
- package/dist/exports/client/Field-QK4IB5HD.js.map +0 -7
- package/dist/exports/client/RelationshipComponent-GYUTPDNG.js +0 -2
- package/dist/exports/client/RelationshipComponent-GYUTPDNG.js.map +0 -7
- package/dist/exports/client/chunk-4EX7W4UX.js +0 -2
- package/dist/exports/client/chunk-4EX7W4UX.js.map +0 -7
- package/dist/exports/client/chunk-62LVB5C6.js +0 -2
- package/dist/exports/client/chunk-62LVB5C6.js.map +0 -7
- package/dist/exports/client/chunk-EBB2CEB6.js +0 -2
- package/dist/exports/client/chunk-EBB2CEB6.js.map +0 -7
- package/dist/exports/client/chunk-LTR7V74A.js +0 -2
- package/dist/exports/client/chunk-LTR7V74A.js.map +0 -7
- package/dist/exports/client/chunk-SQHN3N6E.js +0 -2
- package/dist/exports/client/chunk-SQHN3N6E.js.map +0 -7
- package/dist/exports/client/chunk-VMCQSR3T.js +0 -3
- package/dist/exports/client/chunk-VMCQSR3T.js.map +0 -7
- package/dist/exports/client/component-6C5JERGA.js +0 -2
- package/dist/exports/client/component-6C5JERGA.js.map +0 -7
- package/dist/exports/client/component-DKFKZBZR.js +0 -2
- package/dist/exports/client/component-DKFKZBZR.js.map +0 -7
- package/dist/exports/client/component-UQ2BKD5X.js +0 -2
- package/dist/exports/client/component-UQ2BKD5X.js.map +0 -7
- package/dist/exports/client/componentInline-C2XIK5VZ.js +0 -2
- package/dist/exports/client/componentInline-C2XIK5VZ.js.map +0 -7
- package/dist/features/createClientComponent.d.ts +0 -7
- package/dist/features/createClientComponent.d.ts.map +0 -1
- package/dist/features/createClientComponent.js +0 -12
- package/dist/features/createClientComponent.js.map +0 -1
- package/dist/features/createFeaturePropComponent.d.ts +0 -6
- package/dist/features/createFeaturePropComponent.d.ts.map +0 -1
- package/dist/features/createFeaturePropComponent.js +0 -18
- package/dist/features/createFeaturePropComponent.js.map +0 -1
- package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.d.ts +0 -12
- package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
- package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.js +0 -181
- package/dist/features/experimental_table/plugins/TableHoverActionsPlugin/index.js.map +0 -1
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/lexical/nodes/index.ts", "../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.tsx", "../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx", "../../../src/lexical/utils/guard.ts", "../../../src/lexical/utils/point.ts", "../../../src/lexical/utils/rect.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Klass, LexicalNode, LexicalNodeReplacement } from 'lexical'\n\nimport type { SanitizedClientEditorConfig, SanitizedServerEditorConfig } from '../config/types.js'\n\nexport function getEnabledNodes({\n editorConfig,\n}: {\n editorConfig: SanitizedClientEditorConfig | SanitizedServerEditorConfig\n}): Array<Klass<LexicalNode> | LexicalNodeReplacement> {\n return editorConfig.features.nodes.map((node) => {\n if ('node' in node) {\n return node.node\n }\n return node\n })\n}\n", "'use client'\nimport type {\n LexicalCommand,\n LexicalEditor,\n ParagraphNode,\n RangeSelection,\n TextNode,\n} from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n $isTextNode,\n COMMAND_PRIORITY_LOW,\n createCommand,\n} from 'lexical'\nimport { type JSX, useCallback, useEffect, useState } from 'react'\nimport * as React from 'react'\n\nimport type { MenuTextMatch, TriggerFn } from '../useMenuTriggerMatch.js'\nimport type { MenuRenderFn, MenuResolution } from './LexicalMenu.js'\nimport type { SlashMenuGroupInternal, SlashMenuItem } from './types.js'\n\nimport { LexicalMenu, useMenuAnchorRef } from './LexicalMenu.js'\n\nexport const PUNCTUATION = '\\\\.,\\\\+\\\\*\\\\?\\\\$\\\\@\\\\|#{}\\\\(\\\\)\\\\^\\\\-\\\\[\\\\]\\\\\\\\/!%\\'\"~=<>_:;'\n\nfunction getTextUpToAnchor(selection: RangeSelection): null | string {\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return null\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return null\n }\n const anchorOffset = anchor.offset\n return anchorNode.getTextContent().slice(0, anchorOffset)\n}\n\nfunction tryToPositionRange(leadOffset: number, range: Range, editorWindow: Window): boolean {\n const domSelection = editorWindow.getSelection()\n if (domSelection === null || !domSelection.isCollapsed) {\n return false\n }\n const anchorNode = domSelection.anchorNode\n const startOffset = leadOffset\n const endOffset = domSelection.anchorOffset\n\n if (anchorNode == null || endOffset == null) {\n return false\n }\n\n try {\n range.setStart(anchorNode, startOffset)\n // if endOffset is 0, positioning the range for when you click the plus button to open the slash menu will fial\n range.setEnd(anchorNode, endOffset > 1 ? endOffset : 1)\n } catch (error) {\n return false\n }\n\n return true\n}\n\nfunction getQueryTextForSearch(editor: LexicalEditor): null | string {\n let text = null\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!$isRangeSelection(selection)) {\n return\n }\n text = getTextUpToAnchor(selection)\n })\n return text\n}\n\nfunction isSelectionOnEntityBoundary(editor: LexicalEditor, offset: number): boolean {\n if (offset !== 0) {\n return false\n }\n return editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor\n const anchorNode = anchor.getNode()\n const prevSibling = anchorNode.getPreviousSibling()\n return $isTextNode(prevSibling) && prevSibling.isTextEntity()\n }\n return false\n })\n}\n\nfunction startTransition(callback: () => void) {\n if (React.startTransition) {\n React.startTransition(callback)\n } else {\n callback()\n }\n}\n\nexport { useDynamicPositioning } from './LexicalMenu.js'\n\nexport type TypeaheadMenuPluginProps = {\n anchorClassName?: string\n anchorElem: HTMLElement\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n onClose?: () => void\n onOpen?: (resolution: MenuResolution) => void\n onQueryChange: (matchingString: null | string) => void\n onSelectItem: (\n item: SlashMenuItem,\n textNodeContainingQuery: TextNode | null,\n closeMenu: () => void,\n matchingString: string,\n ) => void\n triggerFn: TriggerFn\n}\n\nexport const ENABLE_SLASH_MENU_COMMAND: LexicalCommand<{\n node: ParagraphNode\n}> = createCommand('ENABLE_SLASH_MENU_COMMAND')\n\nexport function LexicalTypeaheadMenuPlugin({\n anchorClassName,\n anchorElem,\n groups,\n menuRenderFn,\n onClose,\n onOpen,\n onQueryChange,\n onSelectItem,\n triggerFn,\n}: TypeaheadMenuPluginProps): JSX.Element | null {\n const [editor] = useLexicalComposerContext()\n const [resolution, setResolution] = useState<MenuResolution | null>(null)\n const anchorElementRef = useMenuAnchorRef(anchorElem, resolution, setResolution, anchorClassName)\n\n const closeTypeahead = useCallback(() => {\n setResolution(null)\n if (onClose != null && resolution !== null) {\n onClose()\n }\n }, [onClose, resolution])\n\n const openTypeahead = useCallback(\n (res: MenuResolution) => {\n setResolution(res)\n if (onOpen != null && resolution === null) {\n onOpen(res)\n }\n },\n [onOpen, resolution],\n )\n\n // This is mainly used for the AddBlockHandlePlugin, so that the slash menu can be opened from there\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n ENABLE_SLASH_MENU_COMMAND,\n ({ node }) => {\n editor.getEditorState().read(() => {\n const match: MenuTextMatch = {\n leadOffset: 0,\n matchingString: '',\n replaceableString: '',\n }\n if (!isSelectionOnEntityBoundary(editor, match.leadOffset)) {\n if (node !== null) {\n const editorWindow = editor._window ?? window\n const range = editorWindow.document.createRange()\n\n const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow)\n if (isRangePositioned !== null) {\n startTransition(() =>\n openTypeahead({\n getRect: () => {\n return range.getBoundingClientRect()\n },\n match,\n }),\n )\n }\n\n return\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, openTypeahead])\n\n useEffect(() => {\n const updateListener = () => {\n editor.getEditorState().read(() => {\n const editorWindow = editor._window ?? window\n const range = editorWindow.document.createRange()\n const selection = $getSelection()\n const text = getQueryTextForSearch(editor)\n\n if (\n !$isRangeSelection(selection) ||\n !selection.isCollapsed() ||\n text === null ||\n range === null\n ) {\n closeTypeahead()\n return\n }\n\n const match = triggerFn({ editor, query: text })\n onQueryChange(match ? match.matchingString : null)\n\n if (match !== null && !isSelectionOnEntityBoundary(editor, match.leadOffset)) {\n const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow)\n if (isRangePositioned !== null) {\n startTransition(() =>\n openTypeahead({\n getRect: () => {\n return range.getBoundingClientRect()\n },\n match,\n }),\n )\n return\n }\n }\n closeTypeahead()\n })\n }\n\n const removeUpdateListener = editor.registerUpdateListener(updateListener)\n\n return () => {\n removeUpdateListener()\n }\n }, [editor, triggerFn, onQueryChange, resolution, closeTypeahead, openTypeahead])\n\n return resolution === null || editor === null ? null : (\n <LexicalMenu\n anchorElementRef={anchorElementRef}\n close={closeTypeahead}\n editor={editor}\n groups={groups}\n menuRenderFn={menuRenderFn}\n onSelectItem={onSelectItem}\n resolution={resolution}\n shouldSplitNodeWithQuery\n />\n )\n}\n\nexport type { MenuRenderFn, MenuResolution, MenuTextMatch, TriggerFn }\n", "'use client'\nimport type { LexicalCommand, LexicalEditor, TextNode } from 'lexical'\nimport type { JSX, ReactPortal, RefObject } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n COMMAND_PRIORITY_LOW,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_ENTER_COMMAND,\n KEY_ESCAPE_COMMAND,\n KEY_TAB_COMMAND,\n createCommand,\n} from 'lexical'\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport type { MenuTextMatch } from '../useMenuTriggerMatch.js'\nimport type { SlashMenuGroupInternal, SlashMenuItem, SlashMenuItemInternal } from './types.js'\n\nexport type MenuResolution = {\n getRect: () => DOMRect\n match?: MenuTextMatch\n}\n\nconst baseClass = 'slash-menu-popup'\n\nexport type MenuRenderFn = (\n anchorElementRef: RefObject<HTMLElement | null>,\n itemProps: {\n groups: Array<SlashMenuGroupInternal>\n selectItemAndCleanUp: (selectedItem: SlashMenuItem) => void\n selectedItemKey: null | string\n setSelectedItemKey: (itemKey: string) => void\n },\n matchingString: null | string,\n) => JSX.Element | ReactPortal | null\n\nconst scrollIntoViewIfNeeded = (target: HTMLElement) => {\n const typeaheadContainerNode = document.getElementById('slash-menu')\n if (!typeaheadContainerNode) return\n\n const typeaheadRect = typeaheadContainerNode.getBoundingClientRect()\n\n if (typeaheadRect.top + typeaheadRect.height > window.innerHeight) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n if (typeaheadRect.top < 0) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n target.scrollIntoView({ block: 'nearest' })\n}\n\n/**\n * Walk backwards along user input and forward through entity title to try\n * and replace more of the user's text with entity.\n */\nfunction getFullMatchOffset(documentText: string, entryText: string, offset: number) {\n let triggerOffset = offset\n for (let i = triggerOffset; i <= entryText.length; i++) {\n if (documentText.substring(documentText.length - i) === entryText.substring(0, i)) {\n triggerOffset = i\n }\n }\n return triggerOffset\n}\n\n/**\n * Split Lexical TextNode and return a new TextNode only containing matched text.\n * Common use cases include: removing the node, replacing with a new node.\n */\nfunction $splitNodeContainingQuery(match: MenuTextMatch): TextNode | null {\n const selection = $getSelection()\n if (!$isRangeSelection(selection) || !selection.isCollapsed()) {\n return null\n }\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return null\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return null\n }\n const selectionOffset = anchor.offset\n const textContent = anchorNode.getTextContent().slice(0, selectionOffset)\n const characterOffset = match.replaceableString.length\n const queryOffset = getFullMatchOffset(textContent, match.matchingString, characterOffset)\n const startOffset = selectionOffset - queryOffset\n if (startOffset < 0) {\n return null\n }\n let newNode\n if (startOffset === 0) {\n ;[newNode] = anchorNode.splitText(selectionOffset)\n } else {\n ;[, newNode] = anchorNode.splitText(startOffset, selectionOffset)\n }\n\n return newNode\n}\n\n// Got from https://stackoverflow.com/a/42543908/2013580\nexport function getScrollParent(\n element: HTMLElement,\n includeHidden: boolean,\n): HTMLBodyElement | HTMLElement {\n let style = getComputedStyle(element)\n const excludeStaticParent = style.position === 'absolute'\n const overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/\n if (style.position === 'fixed') {\n return document.body\n }\n for (let parent: HTMLElement | null = element; (parent = parent.parentElement); ) {\n style = getComputedStyle(parent)\n if (excludeStaticParent && style.position === 'static') {\n continue\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent\n }\n }\n return document.body\n}\n\nfunction isTriggerVisibleInNearestScrollContainer(\n targetElement: HTMLElement,\n containerElement: HTMLElement,\n): boolean {\n const tRect = targetElement.getBoundingClientRect()\n const cRect = containerElement.getBoundingClientRect()\n return tRect.top > cRect.top && tRect.top < cRect.bottom\n}\n\n// Reposition the menu on scroll, window resize, and element resize.\nexport function useDynamicPositioning(\n resolution: MenuResolution | null,\n targetElement: HTMLElement | null,\n onReposition: () => void,\n onVisibilityChange?: (isInView: boolean) => void,\n) {\n const [editor] = useLexicalComposerContext()\n useEffect(() => {\n if (targetElement != null && resolution != null) {\n const rootElement = editor.getRootElement()\n const rootScrollParent =\n rootElement != null ? getScrollParent(rootElement, false) : document.body\n let ticking = false\n let previousIsInView = isTriggerVisibleInNearestScrollContainer(\n targetElement,\n rootScrollParent,\n )\n const handleScroll = function () {\n if (!ticking) {\n window.requestAnimationFrame(function () {\n onReposition()\n ticking = false\n })\n ticking = true\n }\n const isInView = isTriggerVisibleInNearestScrollContainer(targetElement, rootScrollParent)\n if (isInView !== previousIsInView) {\n previousIsInView = isInView\n if (onVisibilityChange != null) {\n onVisibilityChange(isInView)\n }\n }\n }\n const resizeObserver = new ResizeObserver(onReposition)\n window.addEventListener('resize', onReposition)\n document.addEventListener('scroll', handleScroll, {\n capture: true,\n passive: true,\n })\n resizeObserver.observe(targetElement)\n return () => {\n resizeObserver.unobserve(targetElement)\n window.removeEventListener('resize', onReposition)\n document.removeEventListener('scroll', handleScroll, true)\n }\n }\n }, [targetElement, editor, onVisibilityChange, onReposition, resolution])\n}\n\nexport const SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: LexicalCommand<{\n index: number\n item: SlashMenuItemInternal\n}> = createCommand('SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND')\n\nexport function LexicalMenu({\n anchorElementRef,\n close,\n editor,\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n groups,\n menuRenderFn,\n onSelectItem,\n resolution,\n shouldSplitNodeWithQuery = false,\n}: {\n anchorElementRef: RefObject<HTMLElement>\n close: () => void\n editor: LexicalEditor\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n onSelectItem: (\n item: SlashMenuItem,\n textNodeContainingQuery: TextNode | null,\n closeMenu: () => void,\n matchingString: string,\n ) => void\n resolution: MenuResolution\n shouldSplitNodeWithQuery?: boolean\n}): JSX.Element | null {\n const [selectedItemKey, setSelectedItemKey] = useState<null | string>(null)\n\n const matchingString = (resolution.match && resolution.match.matchingString) || ''\n\n const updateSelectedItem = useCallback(\n (item: SlashMenuItem) => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.setAttribute('aria-activedescendant', `${baseClass}__item-${item.key}`)\n setSelectedItemKey(item.key)\n }\n },\n [editor],\n )\n\n const setSelectedItemKeyToFirstMatchingItem = useCallback(() => {\n // set selected item to the first of the matching ones\n if (groups !== null && matchingString != null) {\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n const allItems = groups.flatMap((group) => group.items)\n\n if (allItems.length) {\n const firstMatchingItem = allItems[0]\n updateSelectedItem(firstMatchingItem)\n }\n }\n }, [groups, updateSelectedItem, matchingString])\n\n useEffect(() => {\n setSelectedItemKeyToFirstMatchingItem()\n }, [matchingString, setSelectedItemKeyToFirstMatchingItem])\n\n const selectItemAndCleanUp = useCallback(\n (selectedItem: SlashMenuItem) => {\n editor.update(() => {\n const textNodeContainingQuery =\n resolution.match != null && shouldSplitNodeWithQuery\n ? $splitNodeContainingQuery(resolution.match)\n : null\n\n onSelectItem(\n selectedItem,\n textNodeContainingQuery,\n close,\n resolution.match ? resolution.match.matchingString : '',\n )\n })\n },\n [editor, shouldSplitNodeWithQuery, resolution.match, onSelectItem, close],\n )\n\n useEffect(() => {\n return () => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.removeAttribute('aria-activedescendant')\n }\n }\n }, [editor])\n\n useLayoutEffect(() => {\n if (groups === null) {\n setSelectedItemKey(null)\n } else if (selectedItemKey === null) {\n setSelectedItemKeyToFirstMatchingItem()\n }\n }, [groups, selectedItemKey, updateSelectedItem, setSelectedItemKeyToFirstMatchingItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND,\n ({ item }) => {\n if (item.ref && item.ref.current != null) {\n scrollIntoViewIfNeeded(item.ref.current)\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, updateSelectedItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_DOWN_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== allItems.length - 1 ? selectedIndex + 1 : 0\n\n const newSelectedItem = allItems[newSelectedIndex]\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n editor.dispatchCommand(SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND, {\n index: newSelectedIndex,\n item: newSelectedItem,\n })\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_UP_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== 0 ? selectedIndex - 1 : allItems.length - 1\n\n const newSelectedItem = allItems[newSelectedIndex]\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n scrollIntoViewIfNeeded(newSelectedItem.ref.current)\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ESCAPE_COMMAND,\n (payload) => {\n const event = payload\n event.preventDefault()\n event.stopImmediatePropagation()\n close()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_TAB_COMMAND,\n (payload) => {\n const event = payload\n\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n event.preventDefault()\n event.stopImmediatePropagation()\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ENTER_COMMAND,\n (event: KeyboardEvent | null) => {\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n if (event !== null) {\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [selectItemAndCleanUp, close, editor, groups, selectedItemKey, updateSelectedItem])\n\n const listItemProps = useMemo(\n () => ({\n groups,\n selectItemAndCleanUp,\n selectedItemKey,\n setSelectedItemKey,\n }),\n [selectItemAndCleanUp, selectedItemKey, groups],\n )\n\n return menuRenderFn(\n anchorElementRef,\n listItemProps,\n resolution.match ? resolution.match.matchingString : '',\n )\n}\n\nexport function useMenuAnchorRef(\n anchorElem: HTMLElement,\n resolution: MenuResolution | null,\n setResolution: (r: MenuResolution | null) => void,\n className?: string,\n): RefObject<HTMLElement> {\n const [editor] = useLexicalComposerContext()\n const anchorElementRef = useRef<HTMLElement>(document.createElement('div'))\n const positionMenu = useCallback(() => {\n const rootElement = editor.getRootElement()\n const containerDiv = anchorElementRef.current\n\n const VERTICAL_OFFSET = 32\n\n const menuEle = containerDiv.firstChild as Element\n if (rootElement !== null && resolution !== null) {\n const { height, width } = resolution.getRect()\n let { left, top } = resolution.getRect()\n\n const rawTop = top\n top -= anchorElem.getBoundingClientRect().top + window.scrollY\n left -= anchorElem.getBoundingClientRect().left + window.scrollX\n containerDiv.style.left = `${left + window.scrollX}px`\n containerDiv.style.height = `${height}px`\n containerDiv.style.width = `${width}px`\n if (menuEle !== null) {\n const menuRect = menuEle.getBoundingClientRect()\n const menuHeight = menuRect.height\n const menuWidth = menuRect.width\n\n const rootElementRect = rootElement.getBoundingClientRect()\n\n if (left + menuWidth > rootElementRect.right) {\n containerDiv.style.left = `${rootElementRect.right - menuWidth + window.scrollX}px`\n }\n\n const wouldGoOffBottomOfScreen = rawTop + menuHeight + VERTICAL_OFFSET > window.innerHeight\n //const wouldGoOffBottomOfContainer = top + menuHeight > rootElementRect.bottom\n const wouldGoOffTopOfScreen = rawTop < 0\n\n // Position slash menu above the cursor instead of below (default) if it would otherwise go off the bottom of the screen.\n if (wouldGoOffBottomOfScreen && !wouldGoOffTopOfScreen) {\n const margin = 24\n containerDiv.style.top = `${\n top + VERTICAL_OFFSET - menuHeight + window.scrollY - (height + margin)\n }px`\n } else {\n containerDiv.style.top = `${top + window.scrollY + VERTICAL_OFFSET}px`\n }\n }\n\n if (!containerDiv.isConnected) {\n if (className != null) {\n containerDiv.className = className\n }\n containerDiv.setAttribute('aria-label', 'Slash menu')\n containerDiv.setAttribute('id', 'slash-menu')\n containerDiv.setAttribute('role', 'listbox')\n containerDiv.style.display = 'block'\n containerDiv.style.position = 'absolute'\n anchorElem.append(containerDiv)\n }\n anchorElementRef.current = containerDiv\n rootElement.setAttribute('aria-controls', 'slash-menu')\n }\n }, [editor, resolution, className, anchorElem])\n\n useEffect(() => {\n const rootElement = editor.getRootElement()\n if (resolution !== null) {\n positionMenu()\n return () => {\n if (rootElement !== null) {\n rootElement.removeAttribute('aria-controls')\n }\n\n const containerDiv = anchorElementRef.current\n if (containerDiv !== null && containerDiv.isConnected) {\n containerDiv.remove()\n }\n }\n }\n }, [editor, positionMenu, resolution])\n\n const onVisibilityChange = useCallback(\n (isInView: boolean) => {\n if (resolution !== null) {\n if (!isInView) {\n setResolution(null)\n }\n }\n },\n [resolution, setResolution],\n )\n\n useDynamicPositioning(resolution, anchorElementRef.current, positionMenu, onVisibilityChange)\n\n return anchorElementRef\n}\n", "export function isHTMLElement(x: unknown): x is HTMLElement {\n return x instanceof HTMLElement\n}\n", "export class Point {\n private readonly _x: number\n\n private readonly _y: number\n\n constructor(x: number, y: number) {\n this._x = x\n this._y = y\n }\n\n public calcDeltaXTo({ x }: Point): number {\n return this.x - x\n }\n\n public calcDeltaYTo({ y }: Point): number {\n return this.y - y\n }\n\n public calcDistanceTo(point: Point): number {\n return Math.sqrt(Math.pow(this.calcDeltaXTo(point), 2) + Math.pow(this.calcDeltaYTo(point), 2))\n }\n\n public calcHorizontalDistanceTo(point: Point): number {\n return Math.abs(this.calcDeltaXTo(point))\n }\n\n public calcVerticalDistance(point: Point): number {\n return Math.abs(this.calcDeltaYTo(point))\n }\n\n public equals({ x, y }: Point): boolean {\n return this.x === x && this.y === y\n }\n\n get x(): number {\n return this._x\n }\n\n get y(): number {\n return this._y\n }\n}\n\nexport function isPoint(x: unknown): x is Point {\n return x instanceof Point\n}\n", "import { type Point, isPoint } from './point.js'\n\ninterface ContainsPointReturn {\n reason: {\n isOnBottomSide: boolean\n isOnLeftSide: boolean\n isOnRightSide: boolean\n isOnTopSide: boolean\n }\n result: boolean\n}\n\nexport class Rect {\n private readonly _bottom: number\n\n private readonly _left: number\n\n private readonly _right: number\n\n private readonly _top: number\n\n constructor(left: number, top: number, right: number, bottom: number) {\n const [physicTop, physicBottom] = top <= bottom ? [top, bottom] : [bottom, top]\n\n const [physicLeft, physicRight] = left <= right ? [left, right] : [right, left]\n\n this._top = physicTop\n this._right = physicRight\n this._left = physicLeft\n this._bottom = physicBottom\n }\n\n static fromDOM(dom: HTMLElement): Rect {\n const { height, left, top, width } = dom.getBoundingClientRect()\n return Rect.fromLWTH(left, width, top, height)\n }\n\n static fromDOMRect(domRect: DOMRect): Rect {\n const { height, left, top, width } = domRect\n return Rect.fromLWTH(left, width, top, height)\n }\n\n static fromLTRB(left: number, top: number, right: number, bottom: number): Rect {\n return new Rect(left, top, right, bottom)\n }\n\n static fromLWTH(left: number, width: number, top: number, height: number): Rect {\n return new Rect(left, top, left + width, top + height)\n }\n\n static fromPoints(startPoint: Point, endPoint: Point): Rect {\n const { x: left, y: top } = startPoint\n const { x: right, y: bottom } = endPoint\n return Rect.fromLTRB(left, top, right, bottom)\n }\n\n public contains({ x, y }: Point): ContainsPointReturn\n\n public contains({ bottom, left, right, top }: Rect): boolean\n\n public contains(target: Point | Rect): ContainsPointReturn | boolean {\n if (isPoint(target)) {\n const { x, y } = target\n\n const isOnTopSide = y < this._top\n const isOnBottomSide = y > this._bottom\n const isOnLeftSide = x < this._left\n const isOnRightSide = x > this._right\n\n const result = !isOnTopSide && !isOnBottomSide && !isOnLeftSide && !isOnRightSide\n\n return {\n reason: {\n isOnBottomSide,\n isOnLeftSide,\n isOnRightSide,\n isOnTopSide,\n },\n result,\n }\n }\n const { bottom, left, right, top } = target\n\n return (\n top >= this._top &&\n top <= this._bottom &&\n bottom >= this._top &&\n bottom <= this._bottom &&\n left >= this._left &&\n left <= this._right &&\n right >= this._left &&\n right <= this._right\n )\n }\n\n public distanceFromPoint(point: Point): {\n distance: number\n isOnBottomSide: boolean\n isOnLeftSide: boolean\n isOnRightSide: boolean\n isOnTopSide: boolean\n } {\n const containsResult = this.contains(point)\n if (containsResult.result) {\n return {\n distance: 0,\n isOnBottomSide: containsResult.reason.isOnBottomSide,\n isOnLeftSide: containsResult.reason.isOnLeftSide,\n isOnRightSide: containsResult.reason.isOnRightSide,\n isOnTopSide: containsResult.reason.isOnTopSide,\n }\n }\n\n let dx = 0 // Horizontal distance to the closest edge\n let dy = 0 // Vertical distance to the closest edge\n\n // If the point is to the left of the rectangle\n if (point.x < this._left) {\n dx = this._left - point.x\n }\n // If the point is to the right of the rectangle\n else if (point.x > this._right) {\n dx = point.x - this._right\n }\n\n // If the point is above the rectangle\n if (point.y < this._top) {\n dy = this._top - point.y\n }\n // If the point is below the rectangle\n else if (point.y > this._bottom) {\n dy = point.y - this._bottom\n }\n\n // Use the Pythagorean theorem to calculate the distance\n return {\n distance: Math.sqrt(dx * dx + dy * dy),\n isOnBottomSide: point.y > this._bottom,\n isOnLeftSide: point.x < this._left,\n isOnRightSide: point.x > this._right,\n isOnTopSide: point.y < this._top,\n }\n }\n\n public equals({ bottom, left, right, top }: Rect): boolean {\n return (\n top === this._top && bottom === this._bottom && left === this._left && right === this._right\n )\n }\n\n public generateNewRect({\n bottom = this.bottom,\n left = this.left,\n right = this.right,\n top = this.top,\n }): Rect {\n return new Rect(left, top, right, bottom)\n }\n\n public intersectsWith(rect: Rect): boolean {\n const { height: h1, left: x1, top: y1, width: w1 } = rect\n const { height: h2, left: x2, top: y2, width: w2 } = this\n const maxX = x1 + w1 >= x2 + w2 ? x1 + w1 : x2 + w2\n const maxY = y1 + h1 >= y2 + h2 ? y1 + h1 : y2 + h2\n const minX = x1 <= x2 ? x1 : x2\n const minY = y1 <= y2 ? y1 : y2\n return maxX - minX <= w1 + w2 && maxY - minY <= h1 + h2\n }\n\n get bottom(): number {\n return this._bottom\n }\n\n get height(): number {\n return Math.abs(this._bottom - this._top)\n }\n\n get left(): number {\n return this._left\n }\n\n get right(): number {\n return this._right\n }\n\n get top(): number {\n return this._top\n }\n\n get width(): number {\n return Math.abs(this._left - this._right)\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["getEnabledNodes", "editorConfig", "node", "useLexicalComposerContext", "mergeRegister", "$getSelection", "$isRangeSelection", "$isTextNode", "COMMAND_PRIORITY_LOW", "createCommand", "useCallback", "useEffect", "useState", "React", "useLexicalComposerContext", "mergeRegister", "$getSelection", "$isRangeSelection", "COMMAND_PRIORITY_LOW", "KEY_ARROW_DOWN_COMMAND", "KEY_ARROW_UP_COMMAND", "KEY_ENTER_COMMAND", "KEY_ESCAPE_COMMAND", "KEY_TAB_COMMAND", "createCommand", "useCallback", "useEffect", "useLayoutEffect", "useMemo", "useRef", "useState", "baseClass", "scrollIntoViewIfNeeded", "target", "typeaheadContainerNode", "typeaheadRect", "getFullMatchOffset", "documentText", "entryText", "offset", "triggerOffset", "i", "$splitNodeContainingQuery", "match", "selection", "anchor", "anchorNode", "selectionOffset", "textContent", "characterOffset", "queryOffset", "startOffset", "newNode", "getScrollParent", "element", "includeHidden", "style", "excludeStaticParent", "overflowRegex", "parent", "isTriggerVisibleInNearestScrollContainer", "targetElement", "containerElement", "tRect", "cRect", "useDynamicPositioning", "resolution", "onReposition", "onVisibilityChange", "editor", "rootElement", "rootScrollParent", "ticking", "previousIsInView", "handleScroll", "isInView", "resizeObserver", "SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND", "LexicalMenu", "anchorElementRef", "close", "groups", "menuRenderFn", "onSelectItem", "shouldSplitNodeWithQuery", "selectedItemKey", "setSelectedItemKey", "matchingString", "updateSelectedItem", "item", "rootElem", "setSelectedItemKeyToFirstMatchingItem", "allItems", "group", "firstMatchingItem", "selectItemAndCleanUp", "selectedItem", "textNodeContainingQuery", "payload", "event", "selectedIndex", "newSelectedIndex", "newSelectedItem", "listItemProps", "useMenuAnchorRef", "anchorElem", "setResolution", "className", "positionMenu", "containerDiv", "VERTICAL_OFFSET", "menuEle", "height", "width", "left", "top", "rawTop", "menuRect", "menuHeight", "menuWidth", "rootElementRect", "wouldGoOffBottomOfScreen", "wouldGoOffTopOfScreen", "jsx", "PUNCTUATION", "getTextUpToAnchor", "selection", "anchor", "anchorNode", "anchorOffset", "tryToPositionRange", "leadOffset", "range", "editorWindow", "domSelection", "startOffset", "endOffset", "getQueryTextForSearch", "editor", "text", "$getSelection", "$isRangeSelection", "isSelectionOnEntityBoundary", "offset", "prevSibling", "$isTextNode", "startTransition", "callback", "ENABLE_SLASH_MENU_COMMAND", "createCommand", "LexicalTypeaheadMenuPlugin", "anchorClassName", "anchorElem", "groups", "menuRenderFn", "onClose", "onOpen", "onQueryChange", "onSelectItem", "triggerFn", "useLexicalComposerContext", "resolution", "setResolution", "useState", "anchorElementRef", "useMenuAnchorRef", "closeTypeahead", "useCallback", "openTypeahead", "res", "useEffect", "mergeRegister", "node", "match", "COMMAND_PRIORITY_LOW", "updateListener", "removeUpdateListener", "LexicalMenu", "isHTMLElement", "x", "Point", "x", "y", "point", "isPoint", "Rect", "_Rect", "left", "top", "right", "bottom", "physicTop", "physicBottom", "physicLeft", "physicRight", "dom", "height", "width", "domRect", "startPoint", "endPoint", "target", "isPoint", "x", "y", "isOnTopSide", "isOnBottomSide", "isOnLeftSide", "isOnRightSide", "point", "containsResult", "dx", "dy", "rect", "h1", "x1", "y1", "w1", "h2", "x2", "y2", "w2", "maxX", "maxY", "minX", "minY"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createCommand as r}from"lexical";var B=r("INSERT_BLOCK_COMMAND"),f=r("INSERT_INLINE_BLOCK_COMMAND"),x=r("OPEN_INLINE_BLOCK_DRAWER_COMMAND");import p from"bson-objectid";import N from"react";import d from"bson-objectid";import{DecoratorNode as c}from"lexical";import{deepCopyObjectSimple as s}from"payload/shared";var i=class extends c{__fields;constructor({fields:e,key:t}){super(t),this.__fields=e}static clone(e){return new this({fields:e.__fields,key:e.__key})}static getType(){return"inlineBlock"}static importDOM(){return{}}static importJSON(e){return a(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,t){return null}exportDOM(){let e=document.createElement("span");e.classList.add("inline-block-container");let t=document.createTextNode(this.getTextContent());return e.append(t),{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 t=s(e),l=this.getWritable();l.__fields=t}updateDOM(){return!1}};function a(n){return new i({fields:{...n,id:n?.id||new d.default().toHexString()}})}import{jsx as k}from"react/jsx-runtime";var m=N.lazy(()=>import("./componentInline-C2XIK5VZ.js").then(n=>({default:n.InlineBlockComponent}))),o=class extends i{static clone(e){return super.clone(e)}static getType(){return super.getType()}static importJSON(e){return I(e.fields)}decorate(e,t){return k(m,{formData:this.getFields(),nodeKey:this.getKey()})}exportJSON(){return super.exportJSON()}};function I(n){return new o({fields:{...n,id:n?.id||new p.default().toHexString()}})}function v(n){return n instanceof o}export{B as a,f as b,x as c,o as d,I as e,v as f};
|
|
2
|
-
//# sourceMappingURL=chunk-LTR7V74A.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/blocks/client/plugin/commands.ts", "../../../src/features/blocks/client/nodes/InlineBlocksNode.tsx", "../../../src/features/blocks/server/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 EditorConfig,\n LexicalEditor,\n LexicalNode,\n SerializedLexicalNode,\n Spread,\n} from 'lexical'\n\nimport ObjectID from 'bson-objectid'\nimport React, { type JSX } from 'react'\n\nimport type { SerializedServerInlineBlockNode } from '../../server/nodes/InlineBlocksNode.js'\n\nimport { ServerInlineBlockNode } from '../../server/nodes/InlineBlocksNode.js'\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 ServerInlineBlockNode {\n static clone(node: ServerInlineBlockNode): ServerInlineBlockNode {\n return super.clone(node)\n }\n\n static getType(): string {\n return super.getType()\n }\n\n static importJSON(serializedNode: SerializedInlineBlockNode): InlineBlockNode {\n const node = $createInlineBlockNode(serializedNode.fields)\n return node\n }\n\n decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return <InlineBlockComponent formData={this.getFields()} nodeKey={this.getKey()} />\n }\n\n exportJSON(): SerializedServerInlineBlockNode {\n return super.exportJSON()\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", "import type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedLexicalNode,\n Spread,\n} from 'lexical'\nimport type React from 'react'\nimport type { JSX } from 'react'\n\nimport ObjectID from 'bson-objectid'\nimport { DecoratorNode } from 'lexical'\nimport { deepCopyObjectSimple } from 'payload/shared'\n\nexport type InlineBlockFields = {\n /** Block form data */\n [key: string]: any\n //blockName: string\n blockType: string\n id: string\n}\n\nexport type SerializedServerInlineBlockNode = 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 ServerInlineBlockNode 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: ServerInlineBlockNode): ServerInlineBlockNode {\n return new this({\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: SerializedServerInlineBlockNode): ServerInlineBlockNode {\n const node = $createServerInlineBlockNode(serializedNode.fields)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n canIndent() {\n return true\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 null\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(): SerializedServerInlineBlockNode {\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 $createServerInlineBlockNode(\n fields: Exclude<InlineBlockFields, 'id'>,\n): ServerInlineBlockNode {\n return new ServerInlineBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n })\n}\n\nexport function $isServerInlineBlockNode(\n node: LexicalNode | ServerInlineBlockNode | null | undefined,\n): node is ServerInlineBlockNode {\n return node instanceof ServerInlineBlockNode\n}\n"],
|
|
5
|
-
"mappings": "AAEA,OAAS,iBAAAA,MAAqB,UAIvB,IAAMC,EACXD,EAAc,sBAAsB,EAEzBE,EACXF,EAAc,6BAA6B,EAEhCG,EAGRH,EAAc,kCAAkC,ECPrD,OAAOI,MAAc,gBACrB,OAAOC,MAAyB,QCIhC,OAAOC,MAAc,gBACrB,OAAS,iBAAAC,MAAqB,UAC9B,OAAS,wBAAAC,MAA4B,iBAmB9B,IAAMC,EAAN,cAAoCF,CAAkC,CAC3E,SAEA,YAAY,CAAE,OAAAG,EAAQ,IAAAC,CAAI,EAAiD,CACzE,MAAMA,CAAG,EACT,KAAK,SAAWD,CAClB,CAEA,OAAO,MAAME,EAAoD,CAC/D,OAAO,IAAI,KAAK,CACd,OAAQA,EAAK,SACb,IAAKA,EAAK,KACZ,CAAC,CACH,CAEA,OAAO,SAAkB,CACvB,MAAO,aACT,CAEA,OAAO,WAAqD,CAC1D,MAAO,CAAC,CACV,CAEA,OAAO,WAAWC,EAAwE,CAExF,OADaC,EAA6BD,EAAe,MAAM,CAEjE,CAEA,OAAO,UAAkB,CACvB,MAAO,EACT,CAEA,WAAY,CACV,MAAO,EACT,CACA,WAAY,CACV,IAAME,EAAU,SAAS,cAAc,MAAM,EAC7C,OAAAA,EAAQ,UAAU,IAAI,wBAAwB,EAEvCA,CACT,CAEA,SAASC,EAAuBC,EAAmC,CACjE,OAAO,IACT,CAEA,WAA6B,CAC3B,IAAMF,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,YAA8C,CAC5C,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,EAAaX,EAAqBE,CAAM,EAExCU,EAAW,KAAK,YAAY,EAClCA,EAAS,SAAWD,CACtB,CAEA,WAAqB,CACnB,MAAO,EACT,CACF,EAEO,SAASL,EACdJ,EACuB,CACvB,OAAO,IAAID,EAAsB,CAC/B,OAAQ,CACN,GAAGC,EACH,GAAIA,GAAQ,IAAM,IAAIJ,EAAS,QAAQ,EAAE,YAAY,CACvD,CACF,CAAC,CACH,CD7EW,cAAAe,MAAA,oBA9BX,IAAMC,EAAuBC,EAAM,KAAK,IACtC,OAAO,+BAA6B,EAAE,KAAMC,IAAY,CACtD,QAASA,EAAO,oBAClB,EAAE,CACJ,EAWaC,EAAN,cAA8BC,CAAsB,CACzD,OAAO,MAAMC,EAAoD,CAC/D,OAAO,MAAM,MAAMA,CAAI,CACzB,CAEA,OAAO,SAAkB,CACvB,OAAO,MAAM,QAAQ,CACvB,CAEA,OAAO,WAAWC,EAA4D,CAE5E,OADaC,EAAuBD,EAAe,MAAM,CAE3D,CAEA,SAASE,EAAuBC,EAAmC,CACjE,OAAOV,EAACC,EAAA,CAAqB,SAAU,KAAK,UAAU,EAAG,QAAS,KAAK,OAAO,EAAG,CACnF,CAEA,YAA8C,CAC5C,OAAO,MAAM,WAAW,CAC1B,CACF,EAEO,SAASO,EAAuBG,EAA2D,CAChG,OAAO,IAAIP,EAAgB,CACzB,OAAQ,CACN,GAAGO,EACH,GAAIA,GAAQ,IAAM,IAAIC,EAAS,QAAQ,EAAE,YAAY,CACvD,CACF,CAAC,CACH,CAEO,SAASC,EACdP,EACyB,CACzB,OAAOA,aAAgBF,CACzB",
|
|
6
|
-
"names": ["createCommand", "INSERT_BLOCK_COMMAND", "INSERT_INLINE_BLOCK_COMMAND", "OPEN_INLINE_BLOCK_DRAWER_COMMAND", "ObjectID", "React", "ObjectID", "DecoratorNode", "deepCopyObjectSimple", "ServerInlineBlockNode", "fields", "key", "node", "serializedNode", "$createServerInlineBlockNode", "element", "editor", "config", "text", "fieldsCopy", "writable", "jsx", "InlineBlockComponent", "React", "module", "InlineBlockNode", "ServerInlineBlockNode", "node", "serializedNode", "$createInlineBlockNode", "editor", "config", "fields", "ObjectID", "$isInlineBlockNode"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useLexicalComposerContext as y}from"@lexical/react/LexicalComposerContext.js";import{createContext as T,useContext as m,useMemo as h,useRef as a,useState as p}from"react";import{jsx as M}from"react/jsx-runtime";function R(){return Math.random().toString(36).substring(2,12)+Math.random().toString(36).substring(2,12)}var E=T({editorConfig:null,field:null,uuid:null}),L=({children:i,editorConfig:c,editorContainerRef:s,field:u,parentContext:r})=>{let[C]=y(),[f]=p(R()),e=a(new Map),[l,g]=p(null),n=a(new Set),x=h(()=>({blurEditor:t=>{n.current.clear()},childrenEditors:e,editor:C,editorConfig:c,editorContainerRef:s,field:u,focusEditor:t=>{let o=t.uuid;n.current.has(o)||(n.current.add(o),g(t),r?.uuid&&r.focusEditor(t),e.current.forEach((d,v)=>{d.focusEditor(t)}),n.current.clear())},focusedEditor:l,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:f}),[C,e,c,s,u,l,r,f]);return M(E.Provider,{value:x,children:i})},S=()=>{let i=m(E);if(i===void 0)throw new Error("useEditorConfigContext must be used within an EditorConfigProvider");return i};export{L as a,S as b};
|
|
2
|
-
//# sourceMappingURL=chunk-SQHN3N6E.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 { RichTextFieldClient } 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 { LexicalRichTextFieldProps } from '../../../types.js'\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: LexicalRichTextFieldProps['field']\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 field,\n parentContext,\n}: {\n children: React.ReactNode\n editorConfig: SanitizedClientEditorConfig\n editorContainerRef: React.RefObject<HTMLDivElement>\n field: LexicalRichTextFieldProps['field']\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,\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 field,\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,QAuH5D,cAAAC,MAAA,oBAjHT,SAASC,GAA4B,CACnC,OAAO,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,EAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,CACjG,CAmBA,IAAMC,EAAkDP,EAAc,CACpE,aAAc,KACd,MAAO,KACP,KAAM,IACR,CAAC,EAEYQ,EAAuB,CAAC,CACnC,SAAAC,EACA,aAAAC,EACA,mBAAAC,EACA,MAAAC,EACA,cAAAC,CACF,IAMuB,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,MAAAC,EACA,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", "field", "parentContext", "editor", "uuid", "childrenEditors", "focusedEditor", "setFocusedEditor", "focusHistory", "editorContext", "editorUUID", "childEditor", "childUUID", "childEditorContext", "newMap", "useEditorConfigContext", "context"]
|
|
7
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{$applyNodeReplacement as s}from"lexical";import*as l from"react";import{addClassNamesToElement as a}from"@lexical/utils";import{$applyNodeReplacement as u,DecoratorNode as d,createCommand as c}from"lexical";var O=c("INSERT_HORIZONTAL_RULE_COMMAND"),r=class extends d{static clone(e){return new this(e.__key)}static getType(){return"horizontalrule"}static importDOM(){return{hr:()=>({conversion:p,priority:0})}}static importJSON(e){return i()}createDOM(e){let n=document.createElement("hr");return a(n,e.theme.hr),n}decorate(){return null}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 u(new r)}import{jsx as z}from"react/jsx-runtime";var m=l.lazy(()=>import("./component-UQ2BKD5X.js").then(o=>({default:o.HorizontalRuleComponent}))),t=class extends r{static clone(e){return super.clone(e)}static getType(){return super.getType()}static importJSON(e){return N()}decorate(){return z(m,{nodeKey:this.__key})}exportJSON(){return super.exportJSON()}};function N(){return s(new t)}function v(o){return o instanceof t}export{O as a,t as b,N as c,v as d};
|
|
3
|
-
//# sourceMappingURL=chunk-VMCQSR3T.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/horizontalRule/client/nodes/HorizontalRuleNode.tsx", "../../../src/features/horizontalRule/server/nodes/HorizontalRuleNode.tsx"],
|
|
4
|
-
"sourcesContent": ["import type { DOMConversionOutput, LexicalNode, SerializedLexicalNode } from 'lexical'\n\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nimport type { SerializedHorizontalRuleNode } from '../../server/nodes/HorizontalRuleNode.js'\n\nimport { HorizontalRuleServerNode } from '../../server/nodes/HorizontalRuleNode.js'\n\nconst HorizontalRuleComponent = React.lazy(() =>\n import('../../client/component/index.js').then((module) => ({\n default: module.HorizontalRuleComponent,\n })),\n)\n\nexport class HorizontalRuleNode extends HorizontalRuleServerNode {\n static clone(node: HorizontalRuleServerNode): HorizontalRuleServerNode {\n return super.clone(node)\n }\n\n static getType(): string {\n return super.getType()\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 * 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 exportJSON(): SerializedLexicalNode {\n return super.exportJSON()\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", "import type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n EditorConfig,\n LexicalCommand,\n LexicalNode,\n SerializedLexicalNode,\n Spread,\n} from 'lexical'\nimport type * as React from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { $applyNodeReplacement, DecoratorNode, createCommand } from 'lexical'\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 HorizontalRuleServerNode extends DecoratorNode<React.ReactElement> {\n static clone(node: HorizontalRuleServerNode): HorizontalRuleServerNode {\n return new this(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): HorizontalRuleServerNode {\n return $createHorizontalRuleServerNode()\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 decorate() {\n return null\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: $createHorizontalRuleServerNode() }\n}\n\nexport function $createHorizontalRuleServerNode(): HorizontalRuleServerNode {\n return $applyNodeReplacement(new HorizontalRuleServerNode())\n}\n\nexport function $isHorizontalRuleServerNode(\n node: LexicalNode | null | undefined,\n): node is HorizontalRuleServerNode {\n return node instanceof HorizontalRuleServerNode\n}\n"],
|
|
5
|
-
"mappings": "AAEA,OAAS,yBAAAA,MAA6B,UACtC,UAAYC,MAAW,QCSvB,OAAS,0BAAAC,MAA8B,iBACvC,OAAS,yBAAAC,EAAuB,iBAAAC,EAAe,iBAAAC,MAAqB,UAa7D,IAAMC,EAAuDD,EAClE,gCACF,EASaE,EAAN,cAAuCH,CAAkC,CAC9E,OAAO,MAAMI,EAA0D,CACrE,OAAO,IAAI,KAAKA,EAAK,KAAK,CAC5B,CAEA,OAAO,SAAkB,CACvB,MAAO,gBACT,CAOA,OAAO,WAAqC,CAC1C,MAAO,CACL,GAAI,KAAO,CACT,WAAYC,EACZ,SAAU,CACZ,EACF,CACF,CAKA,OAAO,WAAWC,EAAwE,CACxF,OAAOC,EAAgC,CACzC,CAKA,UAAUC,EAAmC,CAC3C,IAAMC,EAAU,SAAS,cAAc,IAAI,EAC3C,OAAAX,EAAuBW,EAASD,EAAO,MAAM,EAAE,EACxCC,CACT,CAEA,UAAW,CACT,OAAO,IACT,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,SAASJ,GAAqD,CAC5D,MAAO,CAAE,KAAME,EAAgC,CAAE,CACnD,CAEO,SAASA,GAA4D,CAC1E,OAAOR,EAAsB,IAAII,CAA0B,CAC7D,CDlFW,cAAAO,MAAA,oBA1BX,IAAMC,EAAgC,OAAK,IACzC,OAAO,yBAAiC,EAAE,KAAMC,IAAY,CAC1D,QAASA,EAAO,uBAClB,EAAE,CACJ,EAEaC,EAAN,cAAiCC,CAAyB,CAC/D,OAAO,MAAMC,EAA0D,CACrE,OAAO,MAAM,MAAMA,CAAI,CACzB,CAEA,OAAO,SAAkB,CACvB,OAAO,MAAM,QAAQ,CACvB,CAKA,OAAO,WAAWC,EAAkE,CAClF,OAAOC,EAA0B,CACnC,CAKA,UAA+B,CAC7B,OAAOP,EAACC,EAAA,CAAwB,QAAS,KAAK,MAAO,CACvD,CAEA,YAAoC,CAClC,OAAO,MAAM,WAAW,CAC1B,CACF,EAMO,SAASO,GAAgD,CAC9D,OAAOC,EAAsB,IAAIC,CAAoB,CACvD,CAEO,SAASC,EACdC,EAC4B,CAC5B,OAAOA,aAAgBF,CACzB",
|
|
6
|
-
"names": ["$applyNodeReplacement", "React", "addClassNamesToElement", "$applyNodeReplacement", "DecoratorNode", "createCommand", "INSERT_HORIZONTAL_RULE_COMMAND", "HorizontalRuleServerNode", "node", "$convertHorizontalRuleElement", "serializedNode", "$createHorizontalRuleServerNode", "config", "element", "jsx", "HorizontalRuleComponent", "module", "HorizontalRuleNode", "HorizontalRuleServerNode", "node", "serializedNode", "$createHorizontalRuleNode", "$createHorizontalRuleNode", "$applyNodeReplacement", "HorizontalRuleNode", "$isHorizontalRuleNode", "node"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";import{b as T}from"./chunk-SQHN3N6E.js";import{Collapsible as te,Form as le,Pill as ae,RenderComponent as se,SectionTitle as re,ShimmerEffect as ie,useConfig as ne,useDocumentInfo as ce,useFieldProps as de,useFormSubmitted as me,useTranslation as pe}from"@payloadcms/ui";import{useCallback as fe,useEffect as ue,useMemo as he,useState as ye}from"react";import{getTranslation as be}from"@payloadcms/translations";import{getFormState as K}from"@payloadcms/ui/shared";import{v4 as ke}from"uuid";import{useLexicalComposerContext as j}from"@lexical/react/LexicalComposerContext.js";import{getTranslation as W}from"@payloadcms/translations";import{Button as H,Collapsible as q,ErrorPill as z,Pill as G,RenderComponent 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 O}from"lexical";import $,{useCallback as w}from"react";import{useAllFormFields as U}from"@payloadcms/ui";import{reduceFieldsToValues as I}from"payload/shared";import{useEffect as M}from"react";function D({fields:a}){for(let e in a){let o=a[e];Array.isArray(o.rows)&&"value"in o&&(o.disableFormData=!0)}return a}var E=a=>{let{onChange:e}=a,[o]=U(),t=D({fields:o}),y=I(t,!0);return M(()=>{e&&e({fullFieldsWithValues:t,newFormData:y})},[y,e,t]),null};import{jsx as u,jsxs as L}from"react/jsx-runtime";function A(a){for(let e in a){let o=a[e];Array.isArray(o)&&!o?.length?delete a[e]:o&&typeof o=="object"?A(o):o==null&&delete a[e]}}var V=a=>{let{baseClass:e,clientBlock:o,field:t,formSchema:y,nodeKey:n,schemaPath:S}=a,{formData:l}=a,{i18n:k}=ee(),[c]=j(),{getDocPreferences:g,setDocFieldPreferences:_}=Y(),[m,N]=$.useState(()=>{let r=!1;return g().then(i=>{let f=i?.fields[t.name]?.collapsed;f&&f.includes(l.id)&&(r=!0,N(!0))}),r}),B=Z(),[s,P]=$.useState(0),F=B&&s>0,R=[`${e}__row`,F?`${e}__row--has-errors`:`${e}__row--no-errors`].filter(Boolean).join(" "),x=w(({fullFieldsWithValues:r,newFormData:i})=>{if(i.id=l.id,i.blockType=l.blockType,A(i),A(l),oe(l,i)||setTimeout(()=>{c.update(()=>{let b=O(n);b&&(l=i,b.setFields(i))})},0),B){let b=0;for(let f of Object.values(r))f?.valid===!1&&b++;P(b)}},[c,n,B,l]),C=w(r=>{g().then(i=>{let f=i?.fields[t.name]?.collapsed,v=f&&f?.length?f:[];r?v.includes(l.id)||v.push(l.id):v.includes(l.id)&&v.splice(v.indexOf(l.id),1),_(t.name,{collapsed:v,hello:"hi"})})},[g,t.name,_,l.id]),p=w(()=>{c.update(()=>{O(n).remove()})},[c,n]);return L($.Fragment,{children:[u(q,{className:R,collapsibleStyle:F?"error":"default",header:o?.admin?.components?.Label?u(J,{clientProps:{blockKind:"lexicalBlock",formData:l},mappedComponent:o.admin.components.Label}):L("div",{className:`${e}__block-header`,children:[L("div",{children:[u(G,{className:`${e}__block-pill ${e}__block-pill-${l?.blockType}`,pillStyle:"white",children:typeof o?.labels.singular=="string"?W(o?.labels.singular,k):o.slug}),u(X,{path:"blockName",readOnly:t?.admin?.readOnly}),F&&u(z,{count:s,i18n:k,withMessage:!0})]}),c.isEditable()&&u(H,{buttonStyle:"icon-label",className:`${e}__removeButton`,disabled:t?.admin?.readOnly,icon:"x",onClick:r=>{r.preventDefault(),p()},round:!0,tooltip:"Remove Block"})]}),isCollapsed:m,onToggle:r=>{C(r),N(r)},children:u(Q,{className:`${e}__fields`,fields:y,forceRender:!0,margins:"small",path:"",readOnly:!1,schemaPath:S})},0),u(E,{onChange:x})]})};import{jsx as d,jsxs as Fe}from"react/jsx-runtime";var h="lexical-block",je=a=>{let{formData:e,nodeKey:o}=a,{config:t}=ne(),y=me(),{id:n}=ce(),{path:S,schemaPath:l}=de(),{field:k}=T(),[c,g]=ye(!1),{field:{richTextComponentMap:_}}=T(),m=`${l}.lexical_internal_feature.blocks.lexical_blocks.lexical_blocks.${e.blockType}`,s=_.get("lexical_internal_feature.blocks.fields.lexical_blocks")[0].blocks.find(C=>C.slug===e.blockType);ue(()=>{e&&(async()=>{let p=await K({apiRoute:t.routes.api,body:{id:n,data:e,operation:"update",schemaPath:m},serverURL:t.serverURL});p&&(p.blockName={initialValue:"",passesCondition:!0,valid:!0,value:e.blockName},g(p))})()},[t.routes.api,t.serverURL,m,n]);let P=fe(async({formState:C})=>{let p=await K({apiRoute:t.routes.api,body:{id:n,formState:C,operation:"update",schemaPath:m},serverURL:t.serverURL});return p.blockName={initialValue:"",passesCondition:!0,valid:!0,value:e.blockName},p},[t.routes.api,t.serverURL,n,m,e.blockName]),{i18n:F}=pe(),R=[`${h}__row`,`${h}__row--no-errors`].filter(Boolean).join(" "),x=he(()=>s&&c!==!1?d(le,{beforeSubmit:[P],fields:s.fields,initialState:c,onChange:[P],submitted:y,uuid:ke(),children:d(V,{baseClass:h,clientBlock:s,field:k,formData:e,formSchema:s.fields,nodeKey:o,path:`${S}.lexical_internal_feature.blocks.${e.blockType}`,schemaPath:m})}):d(te,{className:R,collapsibleStyle:"default",header:s?.admin?.components?.Label?d(se,{clientProps:{blockKind:"lexicalBlock",formData:e},mappedComponent:s.admin.components.Label}):d("div",{className:`${h}__block-header`,children:Fe("div",{children:[d(ae,{className:`${h}__block-pill ${h}__block-pill-${e?.blockType}`,pillStyle:"white",children:s&&typeof s.labels.singular=="string"?be(s.labels.singular,F):s.slug}),d(re,{path:"blockName",readOnly:k?.admin?.readOnly})]})}),children:d(ie,{height:"35vh"})},0),[s,c,P,y,k,o,S,m,R,F]);return d("div",{className:h+" "+h+"-"+e.blockType,children:x})};export{je as BlockComponent};
|
|
2
|
-
//# sourceMappingURL=component-6C5JERGA.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/blocks/client/component/index.tsx", "../../../src/features/blocks/client/component/BlockContent.tsx", "../../../src/features/blocks/client/component/FormSavePlugin.tsx", "../../../src/features/blocks/client/component/removeEmptyArrayValues.ts"],
|
|
4
|
-
"sourcesContent": ["'use client'\n\nimport type { FormProps } from '@payloadcms/ui'\n\nimport {\n Collapsible,\n Form,\n Pill,\n RenderComponent,\n SectionTitle,\n ShimmerEffect,\n useConfig,\n useDocumentInfo,\n useFieldProps,\n useFormSubmitted,\n useTranslation,\n} from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nconst baseClass = 'lexical-block'\nimport type { BlockFieldClient, FormState } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport { v4 as uuid } from 'uuid'\n\nimport type { BlockFields } from '../../server/nodes/BlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { BlockContent } from './BlockContent.js'\ntype Props = {\n readonly children?: React.ReactNode\n readonly formData: BlockFields\n readonly nodeKey?: string\n}\n\nexport const BlockComponent: React.FC<Props> = (props) => {\n const { formData, nodeKey } = props\n const { config } = useConfig()\n const submitted = useFormSubmitted()\n const { id } = useDocumentInfo()\n const { path, schemaPath } = useFieldProps()\n const { field: parentLexicalRichTextField } = useEditorConfigContext()\n\n const [initialState, setInitialState] = useState<FormState | false>(false)\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.lexical_blocks.${formData.blockType}`\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_blocks`\n const blocksField: BlockFieldClient = richTextComponentMap.get(componentMapRenderedBlockPath)[0]\n\n const clientBlock = blocksField.blocks.find((block) => block.slug === formData.blockType)\n\n // Field Schema\n useEffect(() => {\n const awaitInitialState = async () => {\n const state = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n data: formData,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n\n if (state) {\n state.blockName = {\n initialValue: '',\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n setInitialState(state)\n }\n }\n\n if (formData) {\n void awaitInitialState()\n }\n }, [config.routes.api, config.serverURL, schemaFieldsPath, id]) // DO NOT ADD FORMDATA HERE! Adding formData will kick you out of sub block editors while writing.\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const formState = 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 formState.blockName = {\n initialValue: '',\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n return formState\n },\n\n [config.routes.api, config.serverURL, id, schemaFieldsPath, formData.blockName],\n )\n const { i18n } = useTranslation()\n\n const classNames = [`${baseClass}__row`, `${baseClass}__row--no-errors`].filter(Boolean).join(' ')\n\n // Memoized Form JSX\n const formContent = useMemo(() => {\n return clientBlock && initialState !== false ? (\n <Form\n beforeSubmit={[onChange]}\n fields={clientBlock.fields}\n initialState={initialState}\n onChange={[onChange]}\n submitted={submitted}\n uuid={uuid()}\n >\n <BlockContent\n baseClass={baseClass}\n clientBlock={clientBlock}\n field={parentLexicalRichTextField}\n formData={formData}\n formSchema={clientBlock.fields}\n nodeKey={nodeKey}\n path={`${path}.lexical_internal_feature.blocks.${formData.blockType}`}\n schemaPath={schemaFieldsPath}\n />\n </Form>\n ) : (\n <Collapsible\n className={classNames}\n collapsibleStyle=\"default\"\n header={\n clientBlock?.admin?.components?.Label ? (\n <RenderComponent\n clientProps={{ blockKind: 'lexicalBlock', formData }}\n mappedComponent={clientBlock.admin.components.Label}\n />\n ) : (\n <div className={`${baseClass}__block-header`}>\n <div>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${formData?.blockType}`}\n pillStyle=\"white\"\n >\n {clientBlock && typeof clientBlock.labels.singular === 'string'\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock.slug}\n </Pill>\n <SectionTitle\n path=\"blockName\"\n readOnly={parentLexicalRichTextField?.admin?.readOnly}\n />\n </div>\n </div>\n )\n }\n key={0}\n >\n <ShimmerEffect height=\"35vh\" />\n </Collapsible>\n )\n }, [\n clientBlock,\n initialState,\n onChange,\n submitted,\n parentLexicalRichTextField,\n nodeKey,\n path,\n schemaFieldsPath,\n classNames,\n i18n,\n ])\n\n return <div className={baseClass + ' ' + baseClass + '-' + formData.blockType}>{formContent}</div>\n}\n", "import type { ClientBlock, ClientField, CollapsedPreferences, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n Collapsible,\n ErrorPill,\n Pill,\n RenderComponent,\n RenderFields,\n SectionTitle,\n useDocumentInfo,\n useFormSubmitted,\n useTranslation,\n} from '@payloadcms/ui'\nimport { dequal } from 'dequal/lite'\nimport { $getNodeByKey } from 'lexical'\nimport React, { useCallback } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../../../../types.js'\nimport type { BlockFields } from '../../server/nodes/BlocksNode.js'\nimport type { BlockNode } from '../nodes/BlocksNode.js'\n\nimport { FormSavePlugin } from './FormSavePlugin.js'\n\ntype Props = {\n baseClass: string\n clientBlock: ClientBlock\n field: LexicalRichTextFieldProps['field']\n formData: BlockFields\n formSchema: ClientField[]\n nodeKey: string\n path: string\n schemaPath: string\n}\n\n// Recursively remove all undefined values from even being present in formData, as they will\n// cause isDeepEqual to return false if, for example, formData has a key that fields.data\n// does not have, even if it's undefined.\n// Currently, this happens if a block has another sub-blocks field. Inside formData, that sub-blocks field has an undefined blockName property.\n// Inside of fields.data however, that sub-blocks blockName property does not exist at all.\nfunction removeUndefinedAndNullAndEmptyArraysRecursively(obj: object) {\n for (const key in obj) {\n const value = obj[key]\n if (Array.isArray(value) && !value?.length) {\n delete obj[key]\n } else if (value && typeof value === 'object') {\n removeUndefinedAndNullAndEmptyArraysRecursively(value)\n } else if (value === undefined || value === null) {\n delete obj[key]\n }\n }\n}\n\n/**\n * The actual content of the Block. This should be INSIDE a Form component,\n * scoped to the block. All format operations in here are thus scoped to the block's form, and\n * not the whole document.\n */\nexport const BlockContent: React.FC<Props> = (props) => {\n const { baseClass, clientBlock, field, formSchema, nodeKey, schemaPath } = props\n let { formData } = props\n\n const { i18n } = useTranslation()\n const [editor] = useLexicalComposerContext()\n // Used for saving collapsed to preferences (and gettin' it from there again)\n // Remember, these preferences are scoped to the whole document, not just this form. This\n // is important to consider for the data path used in setDocFieldPreferences\n const { getDocPreferences, setDocFieldPreferences } = useDocumentInfo()\n\n const [isCollapsed, setIsCollapsed] = React.useState<boolean>(() => {\n let initialState = false\n\n void getDocPreferences().then((currentDocPreferences) => {\n const currentFieldPreferences = currentDocPreferences?.fields[field.name]\n\n const collapsedArray = currentFieldPreferences?.collapsed\n\n if (collapsedArray && collapsedArray.includes(formData.id)) {\n initialState = true\n setIsCollapsed(true)\n }\n })\n return initialState\n })\n\n const hasSubmitted = useFormSubmitted()\n\n const [errorCount, setErrorCount] = React.useState(0)\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n const onFormChange = useCallback(\n ({\n fullFieldsWithValues,\n newFormData,\n }: {\n fullFieldsWithValues: FormState\n newFormData: BlockFields\n }) => {\n newFormData.id = formData.id\n newFormData.blockType = formData.blockType\n\n removeUndefinedAndNullAndEmptyArraysRecursively(newFormData)\n removeUndefinedAndNullAndEmptyArraysRecursively(formData)\n\n // Only update if the data has actually changed. Otherwise, we may be triggering an unnecessary value change,\n // which would trigger the \"Leave without saving\" dialog unnecessarily\n if (!dequal(formData, newFormData)) {\n // Running this in the next tick in the meantime fixes this issue: https://github.com/payloadcms/payload/issues/4108\n // I don't know why. When this is called immediately, it might focus out of a nested lexical editor field if an update is made there.\n // My hypothesis is that the nested editor might not have fully finished its update cycle yet. By updating in the next tick, we\n // ensure that the nested editor has finished its update cycle before we update the block node.\n setTimeout(() => {\n editor.update(() => {\n const node: BlockNode = $getNodeByKey(nodeKey)\n if (node) {\n formData = newFormData\n node.setFields(newFormData)\n }\n })\n }, 0)\n }\n\n // update error count\n if (hasSubmitted) {\n let rowErrorCount = 0\n for (const formField of Object.values(fullFieldsWithValues)) {\n if (formField?.valid === false) {\n rowErrorCount++\n }\n }\n setErrorCount(rowErrorCount)\n }\n },\n [editor, nodeKey, hasSubmitted, formData],\n )\n\n const onCollapsedChange = useCallback(\n (changedCollapsed: boolean) => {\n void getDocPreferences().then((currentDocPreferences) => {\n const currentFieldPreferences = currentDocPreferences?.fields[field.name]\n\n const collapsedArray = currentFieldPreferences?.collapsed\n\n const newCollapsed: CollapsedPreferences =\n collapsedArray && collapsedArray?.length ? collapsedArray : []\n\n if (changedCollapsed) {\n if (!newCollapsed.includes(formData.id)) {\n newCollapsed.push(formData.id)\n }\n } else {\n if (newCollapsed.includes(formData.id)) {\n newCollapsed.splice(newCollapsed.indexOf(formData.id), 1)\n }\n }\n\n setDocFieldPreferences(field.name, {\n collapsed: newCollapsed,\n hello: 'hi',\n })\n })\n },\n [getDocPreferences, field.name, setDocFieldPreferences, formData.id],\n )\n\n const removeBlock = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey).remove()\n })\n }, [editor, nodeKey])\n\n return (\n <React.Fragment>\n <Collapsible\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n header={\n clientBlock?.admin?.components?.Label ? (\n <RenderComponent\n clientProps={{ blockKind: 'lexicalBlock', formData }}\n mappedComponent={clientBlock.admin.components.Label}\n />\n ) : (\n <div className={`${baseClass}__block-header`}>\n <div>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${formData?.blockType}`}\n pillStyle=\"white\"\n >\n {typeof clientBlock?.labels.singular === 'string'\n ? getTranslation(clientBlock?.labels.singular, i18n)\n : clientBlock.slug}\n </Pill>\n <SectionTitle path=\"blockName\" readOnly={field?.admin?.readOnly} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n {editor.isEditable() && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={field?.admin?.readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeBlock()\n }}\n round\n tooltip=\"Remove Block\"\n />\n )}\n </div>\n )\n }\n isCollapsed={isCollapsed}\n key={0}\n onToggle={(incomingCollapsedState) => {\n onCollapsedChange(incomingCollapsedState)\n setIsCollapsed(incomingCollapsedState)\n }}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fields={formSchema}\n forceRender\n margins=\"small\"\n path=\"\" // Leaving path empty makes it so field values are not prefixed / scoped by the entire schemaPath. e.g. we can access \"myField\" instead of \"someLexicalField.feature.blocks.someArrayB\" // TODO: Could there be any implications leaving path different than schemaPath?\n readOnly={false}\n schemaPath={schemaPath} // Having the correct schemaPath here allows sub-fields (like array > addRow) to run correct form-state calls and retrieve their needed form state from the server\n />\n </Collapsible>\n\n <FormSavePlugin onChange={onFormChange} />\n </React.Fragment>\n )\n}\n", "import type { Data, FormState } from 'payload'\nimport type React from 'react'\n\nimport { useAllFormFields } from '@payloadcms/ui'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport { useEffect } from 'react'\n\nimport { removeEmptyArrayValues } from './removeEmptyArrayValues.js'\n\ntype Props = {\n onChange?: ({\n fullFieldsWithValues,\n newFormData,\n }: {\n fullFieldsWithValues: FormState\n newFormData: Data\n }) => void\n}\n\nexport const FormSavePlugin: React.FC<Props> = (props) => {\n const { onChange } = props\n\n const [_fields] = useAllFormFields()\n\n const fields = removeEmptyArrayValues({ fields: _fields })\n\n // Pass in fields, and indicate if you'd like to \"unflatten\" field data.\n // The result below will reflect the data stored in the form at the given time\n const newFormData = reduceFieldsToValues(fields, true)\n\n useEffect(() => {\n if (onChange) {\n onChange({ fullFieldsWithValues: fields, newFormData })\n }\n }, [newFormData, onChange, fields])\n\n return null\n}\n", "import type { FormState } from 'payload'\n\n/**\n * By default, if an array field is empty, it will be included in the form state with a value of 0.\n * We do not need this behavior here, By setting `disableFormData` to true, we can prevent the field from being included in the form state\n * like that.\n * @param fields form state\n */\nexport function removeEmptyArrayValues({ fields }: { fields: FormState }): FormState {\n for (const key in fields) {\n const field = fields[key]\n if (Array.isArray(field.rows) && 'value' in field) {\n field.disableFormData = true\n }\n }\n return fields\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Collapsible", "Form", "Pill", "RenderComponent", "SectionTitle", "ShimmerEffect", "useConfig", "useDocumentInfo", "useFieldProps", "useFormSubmitted", "useTranslation", "useCallback", "useEffect", "useMemo", "useState", "getTranslation", "getFormState", "uuid", "useLexicalComposerContext", "getTranslation", "Button", "Collapsible", "ErrorPill", "Pill", "RenderComponent", "RenderFields", "SectionTitle", "useDocumentInfo", "useFormSubmitted", "useTranslation", "dequal", "$getNodeByKey", "React", "useCallback", "useAllFormFields", "reduceFieldsToValues", "useEffect", "removeEmptyArrayValues", "fields", "key", "field", "FormSavePlugin", "props", "onChange", "_fields", "useAllFormFields", "fields", "removeEmptyArrayValues", "newFormData", "reduceFieldsToValues", "useEffect", "jsx", "jsxs", "removeUndefinedAndNullAndEmptyArraysRecursively", "obj", "key", "value", "BlockContent", "props", "baseClass", "clientBlock", "field", "formSchema", "nodeKey", "schemaPath", "formData", "i18n", "useTranslation", "editor", "useLexicalComposerContext", "getDocPreferences", "setDocFieldPreferences", "useDocumentInfo", "isCollapsed", "setIsCollapsed", "React", "initialState", "currentDocPreferences", "collapsedArray", "hasSubmitted", "useFormSubmitted", "errorCount", "setErrorCount", "fieldHasErrors", "classNames", "onFormChange", "useCallback", "fullFieldsWithValues", "newFormData", "dequal", "node", "$getNodeByKey", "rowErrorCount", "formField", "onCollapsedChange", "changedCollapsed", "newCollapsed", "removeBlock", "Collapsible", "RenderComponent", "Pill", "getTranslation", "SectionTitle", "ErrorPill", "Button", "e", "incomingCollapsedState", "RenderFields", "FormSavePlugin", "jsx", "jsxs", "baseClass", "BlockComponent", "props", "formData", "nodeKey", "config", "useConfig", "submitted", "useFormSubmitted", "id", "useDocumentInfo", "path", "schemaPath", "useFieldProps", "parentLexicalRichTextField", "useEditorConfigContext", "initialState", "setInitialState", "useState", "richTextComponentMap", "schemaFieldsPath", "clientBlock", "block", "useEffect", "state", "getFormState", "onChange", "useCallback", "prevFormState", "formState", "i18n", "useTranslation", "classNames", "formContent", "useMemo", "Form", "uuid", "BlockContent", "Collapsible", "RenderComponent", "Pill", "getTranslation", "SectionTitle", "ShimmerEffect"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";import{a as L,b as O,c as A,f as F}from"./chunk-62LVB5C6.js";import{b as T}from"./chunk-SQHN3N6E.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 b,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 me,KEY_DELETE_COMMAND as pe}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,{config:{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:m}=se(),[$,H]=ge(e=>e+1,0),[n]=De(()=>k.find(e=>e.slug===R)),p=re("upload-drawer"),[z,q,{closeDrawer:h}]=le({id:c,collectionSlug:n.slug}),[{data:f},{setParams:U}]=ie(`${W}${j}/${n.slug}/${c}`,{initialParams:B}),P=f?.thumbnailURL||f?.url,G=i(()=>{a.update(()=>{E(l).remove()})},[a,l]),J=i(e=>{U({...B,cacheBust:$}),H(),h()},[U,$,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(pe,_,w),a.registerCommand(me,_,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 N=E(l);if(N){let V={...N.getData(),fields:g};N.setData(V)}}),y(p)},[y,a,p,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:P?o("img",{alt:f?.filename,"data-lexical-upload-id":c,"data-lexical-upload-relation-to":R,src:P}):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?.admin?.readOnly,slug:p,children:o(b,{buttonStyle:"icon-label",el:"div",icon:"edit",onClick:e=>{e.preventDefault()},round:!0,tooltip:m("fields:editRelationship")})}):null,o(b,{buttonStyle:"icon-label",disabled:v?.admin?.readOnly,el:"div",icon:"swap",onClick:()=>{a.dispatchCommand(A,{replace:{nodeKey:l}})},round:!0,tooltip:m("fields:swapUpload")}),o(b,{buttonStyle:"icon-label",className:`${t}__removeButton`,disabled:v?.admin?.readOnly,icon:"x",onClick:e=>{e.preventDefault(),G()},round:!0,tooltip:m("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:p,drawerTitle:m("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-DKFKZBZR.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/upload/client/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 { UploadData } from '../../server/nodes/UploadNode.js'\nimport type { UploadFeaturePropsClient } from '../feature.client.js'\nimport type { 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/client/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 config: {\n collections,\n routes: { api },\n serverURL,\n },\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?.admin?.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?.admin?.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?.admin?.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{d as a}from"./chunk-VMCQSR3T.js";import{useLexicalComposerContext as u}from"@lexical/react/LexicalComposerContext.js";import{useLexicalNodeSelection as C}from"@lexical/react/useLexicalNodeSelection.js";import{addClassNamesToElement as E,mergeRegister as d,removeClassNamesFromElement as N}from"@lexical/utils";import{$getNodeByKey as p,$getSelection as g,$isNodeSelection as M,CLICK_COMMAND as S,COMMAND_PRIORITY_LOW as m,KEY_BACKSPACE_COMMAND as D,KEY_DELETE_COMMAND as _}from"lexical";import{useCallback as y,useEffect as c}from"react";var f="selected";function $({nodeKey:t}){let[r]=u(),[o,i,n]=C(t),s=y(e=>{if(o&&M(g())){e.preventDefault();let l=p(t);if(a(l))return l.remove(),!0}return!1},[o,t]);return c(()=>d(r.registerCommand(S,e=>{let l=r.getElementByKey(t);return e.target===l?(e.shiftKey||n(),i(!o),!0):!1},m),r.registerCommand(_,s,m),r.registerCommand(D,s,m)),[n,r,o,t,s,i]),c(()=>{let e=r.getElementByKey(t);e!==null&&(o?E(e,f):N(e,f))},[r,o,t]),null}export{$ as HorizontalRuleComponent};
|
|
2
|
-
//# sourceMappingURL=component-UQ2BKD5X.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/horizontalRule/client/component/index.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\n\nimport type { NodeKey } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection.js'\nimport { addClassNamesToElement, mergeRegister, removeClassNamesFromElement } from '@lexical/utils'\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 { useCallback, useEffect } from 'react'\n\nimport { $isHorizontalRuleNode } from '../nodes/HorizontalRuleNode.js'\n\nconst isSelectedClassName = 'selected'\n\n/**\n * React component rendered in the lexical editor, WITHIN the hr element created by createDOM of the HorizontalRuleNode.\n *\n * @param nodeKey every node has a unique key (this key is not saved to the database and thus may differ between sessions). It's useful for working with the CURRENT lexical editor state\n */\nexport function HorizontalRuleComponent({ nodeKey }: { nodeKey: NodeKey }) {\n const [editor] = useLexicalComposerContext()\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey)\n\n const $onDelete = useCallback(\n (event: KeyboardEvent) => {\n if (isSelected && $isNodeSelection($getSelection())) {\n event.preventDefault()\n const node = $getNodeByKey(nodeKey)\n if ($isHorizontalRuleNode(node)) {\n node.remove()\n return true\n }\n }\n return false\n },\n [isSelected, nodeKey],\n )\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n CLICK_COMMAND,\n (event: MouseEvent) => {\n const hrElem = editor.getElementByKey(nodeKey)\n\n if (event.target === hrElem) {\n if (!event.shiftKey) {\n clearSelection()\n }\n setSelected(!isSelected)\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n )\n }, [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected])\n\n useEffect(() => {\n const hrElem = editor.getElementByKey(nodeKey)\n if (hrElem !== null) {\n if (isSelected) {\n addClassNamesToElement(hrElem, isSelectedClassName)\n } else {\n removeClassNamesFromElement(hrElem, isSelectedClassName)\n }\n }\n }, [editor, isSelected, nodeKey])\n\n return null\n}\n"],
|
|
5
|
-
"mappings": "qDAIA,OAAS,6BAAAA,MAAiC,2CAC1C,OAAS,2BAAAC,MAA+B,4CACxC,OAAS,0BAAAC,EAAwB,iBAAAC,EAAe,+BAAAC,MAAmC,iBACnF,OACE,iBAAAC,EACA,iBAAAC,EACA,oBAAAC,EACA,iBAAAC,EACA,wBAAAC,EACA,yBAAAC,EACA,sBAAAC,MACK,UACP,OAAS,eAAAC,EAAa,aAAAC,MAAiB,QAIvC,IAAMC,EAAsB,WAOrB,SAASC,EAAwB,CAAE,QAAAC,CAAQ,EAAyB,CACzE,GAAM,CAACC,CAAM,EAAIC,EAA0B,EACrC,CAACC,EAAYC,EAAaC,CAAc,EAAIC,EAAwBN,CAAO,EAE3EO,EAAYC,EACfC,GAAyB,CACxB,GAAIN,GAAcO,EAAiBC,EAAc,CAAC,EAAG,CACnDF,EAAM,eAAe,EACrB,IAAMG,EAAOC,EAAcb,CAAO,EAClC,GAAIc,EAAsBF,CAAI,EAC5B,OAAAA,EAAK,OAAO,EACL,EAEX,CACA,MAAO,EACT,EACA,CAACT,EAAYH,CAAO,CACtB,EAEA,OAAAe,EAAU,IACDC,EACLf,EAAO,gBACLgB,EACCR,GAAsB,CACrB,IAAMS,EAASjB,EAAO,gBAAgBD,CAAO,EAE7C,OAAIS,EAAM,SAAWS,GACdT,EAAM,UACTJ,EAAe,EAEjBD,EAAY,CAACD,CAAU,EAChB,IAGF,EACT,EACAgB,CACF,EACAlB,EAAO,gBAAgBmB,EAAoBb,EAAWY,CAAoB,EAC1ElB,EAAO,gBAAgBoB,EAAuBd,EAAWY,CAAoB,CAC/E,EACC,CAACd,EAAgBJ,EAAQE,EAAYH,EAASO,EAAWH,CAAW,CAAC,EAExEW,EAAU,IAAM,CACd,IAAMG,EAASjB,EAAO,gBAAgBD,CAAO,EACzCkB,IAAW,OACTf,EACFmB,EAAuBJ,EAAQpB,CAAmB,EAElDyB,EAA4BL,EAAQpB,CAAmB,EAG7D,EAAG,CAACG,EAAQE,EAAYH,CAAO,CAAC,EAEzB,IACT",
|
|
6
|
-
"names": ["useLexicalComposerContext", "useLexicalNodeSelection", "addClassNamesToElement", "mergeRegister", "removeClassNamesFromElement", "$getNodeByKey", "$getSelection", "$isNodeSelection", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_BACKSPACE_COMMAND", "KEY_DELETE_COMMAND", "useCallback", "useEffect", "isSelectedClassName", "HorizontalRuleComponent", "nodeKey", "editor", "useLexicalComposerContext", "isSelected", "setSelected", "clearSelection", "useLexicalNodeSelection", "$onDelete", "useCallback", "event", "$isNodeSelection", "$getSelection", "node", "$getNodeByKey", "$isHorizontalRuleNode", "useEffect", "mergeRegister", "CLICK_COMMAND", "hrElem", "COMMAND_PRIORITY_LOW", "KEY_DELETE_COMMAND", "KEY_BACKSPACE_COMMAND", "addClassNamesToElement", "removeClassNamesFromElement"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";import{c as v,f as y}from"./chunk-LTR7V74A.js";import{b as u}from"./chunk-SQHN3N6E.js";import{useCallback as f,useEffect as K,useRef as O}from"react";import{useLexicalComposerContext as L}from"@lexical/react/LexicalComposerContext";import{useLexicalNodeSelection as S}from"@lexical/react/useLexicalNodeSelection";import{mergeRegister as $}from"@lexical/utils";import{getTranslation as N}from"@payloadcms/translations";import{Button as E,RenderComponent as A,useTranslation as P}from"@payloadcms/ui";import{$getNodeByKey as M,$getSelection as T,$isNodeSelection as F,CLICK_COMMAND as h,COMMAND_PRIORITY_LOW as k,KEY_BACKSPACE_COMMAND as Y,KEY_DELETE_COMMAND as j}from"lexical";import{jsx as a,jsxs as D}from"react/jsx-runtime";var s="inline-block",oe=I=>{let{formData:r,nodeKey:o}=I,[e]=L(),{i18n:b,t:C}=P(),{field:B}=u(),d=O(null),[l,c,m]=S(o),{field:{richTextComponentMap:R}}=u(),t=R.get("lexical_internal_feature.blocks.fields.lexical_inline_blocks")[0].blocks.find(n=>n.slug===r.blockType),x=f(()=>{e.update(()=>{M(o).remove()})},[e,o]),p=f(n=>{if(l&&F(T())){n.preventDefault();let i=M(o);if(y(i))return i.remove(),!0}return!1},[l,o]),_=f(n=>{let i=n;return i.target===d.current||d.current?.contains(i.target)?(i.shiftKey?c(!l):l||(m(),c(!0)),!0):!1},[l,c,m]);K(()=>$(e.registerCommand(h,_,k),e.registerCommand(j,p,k),e.registerCommand(Y,p,k)),[m,e,l,o,p,c,_]);let g=t?.labels?.singular?N(t.labels.singular,b):t.slug;return D("div",{className:[s,s+"-"+r.blockType,l&&`${s}--selected`].filter(Boolean).join(" "),ref:d,children:[t?.admin?.components?.Label?a(A,{clientProps:{blockKind:"lexicalInlineBlock",formData:r},mappedComponent:t.admin.components.Label}):a("div",{children:N(t.labels?.singular,b)}),e.isEditable()&&D("div",{className:`${s}__actions`,children:[a(E,{buttonStyle:"icon-label",className:`${s}__editButton`,disabled:B?.admin?.readOnly,el:"div",icon:"edit",onClick:()=>{e.dispatchCommand(v,{fields:r,nodeKey:o})},round:!0,size:"small",tooltip:C("lexical:blocks:inlineBlocks:edit",{label:g})}),a(E,{buttonStyle:"icon-label",className:`${s}__removeButton`,disabled:B?.admin?.readOnly,icon:"x",onClick:n=>{n.preventDefault(),x()},round:!0,size:"small",tooltip:C("lexical:blocks:inlineBlocks:remove",{label:g})})]})]})};export{oe as InlineBlockComponent};
|
|
2
|
-
//# sourceMappingURL=componentInline-C2XIK5VZ.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/blocks/client/componentInline/index.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\n\nimport React, { useCallback, useEffect, useRef } from 'react'\nconst baseClass = 'inline-block'\n\nimport type { BlockFieldClient } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection'\nimport { mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, RenderComponent, 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'\n\nimport type { InlineBlockFields } from '../nodes/InlineBlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { $isInlineBlockNode } from '../nodes/InlineBlocksNode.js'\nimport { OPEN_INLINE_BLOCK_DRAWER_COMMAND } from '../plugin/commands.js'\ntype Props = {\n readonly formData: InlineBlockFields\n readonly nodeKey?: string\n}\n\nexport const InlineBlockComponent: React.FC<Props> = (props) => {\n const { formData, nodeKey } = props\n const [editor] = useLexicalComposerContext()\n const { i18n, t } = useTranslation<object, string>()\n const { field } = useEditorConfigContext()\n const inlineBlockElemElemRef = useRef<HTMLDivElement | null>(null)\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey)\n\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`\n const blocksField: BlockFieldClient = richTextComponentMap.get(componentMapRenderedBlockPath)[0]\n const clientBlock = blocksField.blocks.find((block) => block.slug === formData.blockType)\n\n const removeInlineBlock = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey).remove()\n })\n }, [editor, nodeKey])\n\n const $onDelete = useCallback(\n (event: KeyboardEvent) => {\n if (isSelected && $isNodeSelection($getSelection())) {\n event.preventDefault()\n const node = $getNodeByKey(nodeKey)\n if ($isInlineBlockNode(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 inlineBlockElemElemRef.target or anything WITHIN inlineBlockElemElemRef.target was clicked\n if (\n event.target === inlineBlockElemElemRef.current ||\n inlineBlockElemElemRef.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 const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock.slug\n\n return (\n <div\n className={[\n baseClass,\n baseClass + '-' + formData.blockType,\n isSelected && `${baseClass}--selected`,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={inlineBlockElemElemRef}\n >\n {clientBlock?.admin?.components?.Label ? (\n <RenderComponent\n clientProps={{ blockKind: 'lexicalInlineBlock', formData }}\n mappedComponent={clientBlock.admin.components.Label}\n />\n ) : (\n <div>{getTranslation(clientBlock.labels?.singular, i18n)}</div>\n )}\n {editor.isEditable() && (\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__editButton`}\n disabled={field?.admin?.readOnly}\n el=\"div\"\n icon=\"edit\"\n onClick={() => {\n editor.dispatchCommand(OPEN_INLINE_BLOCK_DRAWER_COMMAND, {\n fields: formData,\n nodeKey,\n })\n }}\n round\n size=\"small\"\n tooltip={t('lexical:blocks:inlineBlocks:edit', { label: blockDisplayName })}\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={field?.admin?.readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeInlineBlock()\n }}\n round\n size=\"small\"\n tooltip={t('lexical:blocks:inlineBlocks:remove', { label: blockDisplayName })}\n />\n </div>\n )}\n </div>\n )\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["useCallback", "useEffect", "useRef", "useLexicalComposerContext", "useLexicalNodeSelection", "mergeRegister", "getTranslation", "Button", "RenderComponent", "useTranslation", "$getNodeByKey", "$getSelection", "$isNodeSelection", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_BACKSPACE_COMMAND", "KEY_DELETE_COMMAND", "jsx", "jsxs", "baseClass", "InlineBlockComponent", "props", "formData", "nodeKey", "editor", "useLexicalComposerContext", "i18n", "t", "useTranslation", "field", "useEditorConfigContext", "inlineBlockElemElemRef", "useRef", "isSelected", "setSelected", "clearSelection", "useLexicalNodeSelection", "richTextComponentMap", "clientBlock", "block", "removeInlineBlock", "useCallback", "$getNodeByKey", "$onDelete", "event", "$isNodeSelection", "$getSelection", "node", "$isInlineBlockNode", "onClick", "payload", "useEffect", "mergeRegister", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_DELETE_COMMAND", "KEY_BACKSPACE_COMMAND", "blockDisplayName", "getTranslation", "RenderComponent", "Button", "OPEN_INLINE_BLOCK_DRAWER_COMMAND", "e"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type React from 'react';
|
|
2
|
-
import type { ClientComponentProps, FeatureProviderProviderClient } from './typesClient.js';
|
|
3
|
-
/**
|
|
4
|
-
* Utility function to create a client component for the client feature
|
|
5
|
-
*/
|
|
6
|
-
export declare const createClientComponent: <ClientFeatureProps>(clientFeature: FeatureProviderProviderClient<ClientFeatureProps>) => React.FC<ClientComponentProps<ClientFeatureProps>>;
|
|
7
|
-
//# sourceMappingURL=createClientComponent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createClientComponent.d.ts","sourceRoot":"","sources":["../../src/features/createClientComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAA;AAI3F;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,kBAAkB,iBACvC,6BAA6B,CAAC,kBAAkB,CAAC,KAC/D,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAKnD,CAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { useLexicalFeature } from '../utilities/useLexicalFeature.js';
|
|
3
|
-
/**
|
|
4
|
-
* Utility function to create a client component for the client feature
|
|
5
|
-
*/ export const createClientComponent = (clientFeature)=>{
|
|
6
|
-
return (props)=>{
|
|
7
|
-
useLexicalFeature(props.featureKey, clientFeature(props));
|
|
8
|
-
return null;
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=createClientComponent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/features/createClientComponent.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport type { ClientComponentProps, FeatureProviderProviderClient } from './typesClient.js'\n\nimport { useLexicalFeature } from '../utilities/useLexicalFeature.js'\n\n/**\n * Utility function to create a client component for the client feature\n */\nexport const createClientComponent = <ClientFeatureProps,>(\n clientFeature: FeatureProviderProviderClient<ClientFeatureProps>,\n): React.FC<ClientComponentProps<ClientFeatureProps>> => {\n return (props) => {\n useLexicalFeature(props.featureKey, clientFeature(props))\n return null\n }\n}\n"],"names":["useLexicalFeature","createClientComponent","clientFeature","props","featureKey"],"mappings":"AAAA;AAMA,SAASA,iBAAiB,QAAQ,oCAAmC;AAErE;;CAEC,GACD,OAAO,MAAMC,wBAAwB,CACnCC;IAEA,OAAO,CAACC;QACNH,kBAAkBG,MAAMC,UAAU,EAAEF,cAAcC;QAClD,OAAO;IACT;AACF,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createFeaturePropComponent.d.ts","sourceRoot":"","sources":["../../src/features/createFeaturePropComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAkB9B,eAAO,MAAM,0BAA0B,GAAI,CAAC,kBACpC,CAAC,KACN,KAAK,CAAC,EAAE,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAKvD,CAAA"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { useAddClientFunction, useFieldProps, useTableCell } from '@payloadcms/ui';
|
|
3
|
-
const useLexicalFeatureProp = (featureKey, componentKey, prop)=>{
|
|
4
|
-
const { schemaPath: schemaPathFromFieldProps } = useFieldProps();
|
|
5
|
-
const tableCell = useTableCell();
|
|
6
|
-
const schemaPathFromCellProps = tableCell?.cellProps?.field?._schemaPath;
|
|
7
|
-
const schemaPath = schemaPathFromCellProps || schemaPathFromFieldProps // schemaPathFromCellProps needs to have priority, as there can be cells within fields (e.g. list drawers) and the cell schemaPath needs to be used there - not the parent field schemaPath. There cannot be fields within cells.
|
|
8
|
-
;
|
|
9
|
-
useAddClientFunction(`lexicalFeature.${schemaPath}.${featureKey}.lexical_internal_components.${componentKey}`, prop);
|
|
10
|
-
};
|
|
11
|
-
export const createFeaturePropComponent = (prop)=>{
|
|
12
|
-
return (props)=>{
|
|
13
|
-
useLexicalFeatureProp(props.featureKey, props.componentKey, prop);
|
|
14
|
-
return null;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=createFeaturePropComponent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/features/createFeaturePropComponent.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useAddClientFunction, useFieldProps, useTableCell } from '@payloadcms/ui'\n\nconst useLexicalFeatureProp = <T,>(featureKey: string, componentKey: string, prop: T) => {\n const { schemaPath: schemaPathFromFieldProps } = useFieldProps()\n const tableCell = useTableCell()\n\n const schemaPathFromCellProps = tableCell?.cellProps?.field?._schemaPath\n\n const schemaPath = schemaPathFromCellProps || schemaPathFromFieldProps // schemaPathFromCellProps needs to have priority, as there can be cells within fields (e.g. list drawers) and the cell schemaPath needs to be used there - not the parent field schemaPath. There cannot be fields within cells.\n\n useAddClientFunction(\n `lexicalFeature.${schemaPath}.${featureKey}.lexical_internal_components.${componentKey}`,\n prop,\n )\n}\n\nexport const createFeaturePropComponent = <T = unknown,>(\n prop: T,\n): React.FC<{ componentKey: string; featureKey: string }> => {\n return (props) => {\n useLexicalFeatureProp(props.featureKey, props.componentKey, prop)\n return null\n }\n}\n"],"names":["useAddClientFunction","useFieldProps","useTableCell","useLexicalFeatureProp","featureKey","componentKey","prop","schemaPath","schemaPathFromFieldProps","tableCell","schemaPathFromCellProps","cellProps","field","_schemaPath","createFeaturePropComponent","props"],"mappings":"AAAA;AAIA,SAASA,oBAAoB,EAAEC,aAAa,EAAEC,YAAY,QAAQ,iBAAgB;AAElF,MAAMC,wBAAwB,CAAKC,YAAoBC,cAAsBC;IAC3E,MAAM,EAAEC,YAAYC,wBAAwB,EAAE,GAAGP;IACjD,MAAMQ,YAAYP;IAElB,MAAMQ,0BAA0BD,WAAWE,WAAWC,OAAOC;IAE7D,MAAMN,aAAaG,2BAA2BF,yBAAyB,iOAAiO;;IAExSR,qBACE,CAAC,eAAe,EAAEO,WAAW,CAAC,EAAEH,WAAW,6BAA6B,EAAEC,aAAa,CAAC,EACxFC;AAEJ;AAEA,OAAO,MAAMQ,6BAA6B,CACxCR;IAEA,OAAO,CAACS;QACNZ,sBAAsBY,MAAMX,UAAU,EAAEW,MAAMV,YAAY,EAAEC;QAC5D,OAAO;IACT;AACF,EAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
import * as React from 'react';
|
|
9
|
-
export declare function TableHoverActionsPlugin({ anchorElem, }: {
|
|
10
|
-
anchorElem?: HTMLElement;
|
|
11
|
-
}): React.ReactPortal | null;
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/experimental_table/plugins/TableHoverActionsPlugin/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmBH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAmN9B,wBAAgB,uBAAuB,CAAC,EACtC,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,CAE3B"}
|