@payloadcms/richtext-lexical 3.0.0-beta.128 → 3.0.0-beta.129
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.
|
@@ -185,7 +185,7 @@ export const BlocksPlugin = () => {
|
|
|
185
185
|
fieldMapOverride: clientBlock?.fields,
|
|
186
186
|
handleDrawerSubmit: t9,
|
|
187
187
|
schemaPath,
|
|
188
|
-
schemaPathSuffix: `
|
|
188
|
+
schemaPathSuffix: `lexical_inline_blocks.${blockFields?.blockType}.fields`
|
|
189
189
|
});
|
|
190
190
|
$[14] = t7;
|
|
191
191
|
$[15] = t;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$insertNodeToNearestRoot","$wrapNodeInElement","mergeRegister","getTranslation","formatDrawerSlug","useEditDepth","useTranslation","$createParagraphNode","$getNodeByKey","$getPreviousSelection","$getSelection","$insertNodes","$isParagraphNode","$isRangeSelection","$isRootOrShadowRoot","COMMAND_PRIORITY_EDITOR","React","useEffect","useState","useEditorConfigContext","FieldsDrawer","useLexicalDrawer","$createBlockNode","BlockNode","$createInlineBlockNode","$isInlineBlockNode","INSERT_BLOCK_COMMAND","INSERT_INLINE_BLOCK_COMMAND","OPEN_INLINE_BLOCK_DRAWER_COMMAND","BlocksPlugin","$","editor","blockFields","setBlockFields","blockType","setBlockType","targetNodeKey","setTargetNodeKey","i18n","t","fieldProps","t0","featureClientSchemaMap","schemaPath","uuid","editDepth","t1","t2","slug","depth","drawerSlug","toggleDrawer","t3","t4","hasNodes","Error","registerCommand","payload","update","selection","blockNode","focus","focusNode","getNode","getTextContentSize","getParentOrThrow","getChildren","filter","node","length","remove","fields","node_0","setFields","inlineBlockNode","selectEnd","t5","fields_0","nodeKey","rangeSelection","getEditorState","read","selection_0","schemaFieldsPath","clientSchemaMap","blocks","blocksField","clientBlock","labels","singular","blockDisplayName","t6","id","t7","t8","t9","_fields","data","dispatchCommand","_jsx","drawerTitle","label","featureKey","fieldMapOverride","handleDrawerSubmit","schemaPathSuffix"],"sources":["../../../../../src/features/blocks/client/plugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { BlocksFieldClient } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot, $wrapNodeInElement, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatDrawerSlug, useEditDepth, useTranslation } from '@payloadcms/ui'\nimport {\n $createParagraphNode,\n $getNodeByKey,\n $getPreviousSelection,\n $getSelection,\n $insertNodes,\n $isParagraphNode,\n $isRangeSelection,\n $isRootOrShadowRoot,\n COMMAND_PRIORITY_EDITOR,\n type RangeSelection,\n} from 'lexical'\nimport React, { useEffect, useState } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { BlockFields, BlockFieldsOptionalID } from '../../server/nodes/BlocksNode.js'\nimport type { BlocksFeatureClientProps } from '../index.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $createBlockNode, BlockNode } from '../nodes/BlocksNode.js'\nimport { $createInlineBlockNode, $isInlineBlockNode } from '../nodes/InlineBlocksNode.js'\nimport {\n INSERT_BLOCK_COMMAND,\n INSERT_INLINE_BLOCK_COMMAND,\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n} from './commands.js'\n\nexport type InsertBlockPayload = BlockFieldsOptionalID\n\nexport const BlocksPlugin: PluginComponent<BlocksFeatureClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n const [blockFields, setBlockFields] = useState<BlockFields | null>(null)\n const [blockType, setBlockType] = useState<string>('' as any)\n const [targetNodeKey, setTargetNodeKey] = useState<null | string>(null)\n const { i18n, t } = useTranslation<string, any>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-inlineBlocks-create-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug, true)\n\n useEffect(() => {\n if (!editor.hasNodes([BlockNode])) {\n throw new Error('BlocksPlugin: BlocksNode not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand<InsertBlockPayload>(\n INSERT_BLOCK_COMMAND,\n (payload: InsertBlockPayload) => {\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const blockNode = $createBlockNode(payload)\n // Insert blocks node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(blockNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParentOrThrow()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n INSERT_INLINE_BLOCK_COMMAND,\n (fields) => {\n if (targetNodeKey) {\n const node = $getNodeByKey(targetNodeKey)\n\n if (!node || !$isInlineBlockNode(node)) {\n return false\n }\n\n node.setFields(fields as BlockFields)\n\n setTargetNodeKey(null)\n return true\n }\n\n const inlineBlockNode = $createInlineBlockNode(fields as BlockFields)\n $insertNodes([inlineBlockNode])\n if ($isRootOrShadowRoot(inlineBlockNode.getParentOrThrow())) {\n $wrapNodeInElement(inlineBlockNode, $createParagraphNode).selectEnd()\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n ({ fields, nodeKey }) => {\n setBlockFields((fields as BlockFields) ?? null)\n setTargetNodeKey(nodeKey ?? null)\n setBlockType(fields?.blockType ?? ('' as any))\n\n if (nodeKey) {\n toggleDrawer()\n return true\n }\n\n let rangeSelection: null | RangeSelection = null\n\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n rangeSelection = selection\n }\n })\n\n if (rangeSelection) {\n //setLastSelection(rangeSelection)\n toggleDrawer()\n }\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor, targetNodeKey, toggleDrawer])\n\n if (!blockFields) {\n return null\n }\n\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${blockFields?.blockType}`\n\n const clientSchemaMap = featureClientSchemaMap['blocks']\n\n const blocksField: BlocksFieldClient = clientSchemaMap[schemaFieldsPath][0] as BlocksFieldClient\n\n const clientBlock = blocksField.blocks[0]\n\n if (!blocksField) {\n return null\n }\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock?.labels?.singular, i18n)\n : clientBlock?.slug\n\n return (\n <FieldsDrawer\n data={blockFields}\n drawerSlug={drawerSlug}\n drawerTitle={t(`lexical:blocks:inlineBlocks:${blockFields?.id ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n featureKey=\"blocks\"\n fieldMapOverride={clientBlock?.fields}\n handleDrawerSubmit={(_fields, data) => {\n if (!data) {\n return\n }\n\n data.blockType = blockType\n\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, data)\n }}\n schemaPath={schemaPath}\n schemaPathSuffix={`lexical_blocks.${blockFields?.blockType}.fields`}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$insertNodeToNearestRoot","$wrapNodeInElement","mergeRegister","getTranslation","formatDrawerSlug","useEditDepth","useTranslation","$createParagraphNode","$getNodeByKey","$getPreviousSelection","$getSelection","$insertNodes","$isParagraphNode","$isRangeSelection","$isRootOrShadowRoot","COMMAND_PRIORITY_EDITOR","React","useEffect","useState","useEditorConfigContext","FieldsDrawer","useLexicalDrawer","$createBlockNode","BlockNode","$createInlineBlockNode","$isInlineBlockNode","INSERT_BLOCK_COMMAND","INSERT_INLINE_BLOCK_COMMAND","OPEN_INLINE_BLOCK_DRAWER_COMMAND","BlocksPlugin","$","editor","blockFields","setBlockFields","blockType","setBlockType","targetNodeKey","setTargetNodeKey","i18n","t","fieldProps","t0","featureClientSchemaMap","schemaPath","uuid","editDepth","t1","t2","slug","depth","drawerSlug","toggleDrawer","t3","t4","hasNodes","Error","registerCommand","payload","update","selection","blockNode","focus","focusNode","getNode","getTextContentSize","getParentOrThrow","getChildren","filter","node","length","remove","fields","node_0","setFields","inlineBlockNode","selectEnd","t5","fields_0","nodeKey","rangeSelection","getEditorState","read","selection_0","schemaFieldsPath","clientSchemaMap","blocks","blocksField","clientBlock","labels","singular","blockDisplayName","t6","id","t7","t8","t9","_fields","data","dispatchCommand","_jsx","drawerTitle","label","featureKey","fieldMapOverride","handleDrawerSubmit","schemaPathSuffix"],"sources":["../../../../../src/features/blocks/client/plugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { BlocksFieldClient } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot, $wrapNodeInElement, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatDrawerSlug, useEditDepth, useTranslation } from '@payloadcms/ui'\nimport {\n $createParagraphNode,\n $getNodeByKey,\n $getPreviousSelection,\n $getSelection,\n $insertNodes,\n $isParagraphNode,\n $isRangeSelection,\n $isRootOrShadowRoot,\n COMMAND_PRIORITY_EDITOR,\n type RangeSelection,\n} from 'lexical'\nimport React, { useEffect, useState } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { BlockFields, BlockFieldsOptionalID } from '../../server/nodes/BlocksNode.js'\nimport type { BlocksFeatureClientProps } from '../index.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $createBlockNode, BlockNode } from '../nodes/BlocksNode.js'\nimport { $createInlineBlockNode, $isInlineBlockNode } from '../nodes/InlineBlocksNode.js'\nimport {\n INSERT_BLOCK_COMMAND,\n INSERT_INLINE_BLOCK_COMMAND,\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n} from './commands.js'\n\nexport type InsertBlockPayload = BlockFieldsOptionalID\n\nexport const BlocksPlugin: PluginComponent<BlocksFeatureClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n const [blockFields, setBlockFields] = useState<BlockFields | null>(null)\n const [blockType, setBlockType] = useState<string>('' as any)\n const [targetNodeKey, setTargetNodeKey] = useState<null | string>(null)\n const { i18n, t } = useTranslation<string, any>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-inlineBlocks-create-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug, true)\n\n useEffect(() => {\n if (!editor.hasNodes([BlockNode])) {\n throw new Error('BlocksPlugin: BlocksNode not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand<InsertBlockPayload>(\n INSERT_BLOCK_COMMAND,\n (payload: InsertBlockPayload) => {\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const blockNode = $createBlockNode(payload)\n // Insert blocks node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(blockNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParentOrThrow()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n INSERT_INLINE_BLOCK_COMMAND,\n (fields) => {\n if (targetNodeKey) {\n const node = $getNodeByKey(targetNodeKey)\n\n if (!node || !$isInlineBlockNode(node)) {\n return false\n }\n\n node.setFields(fields as BlockFields)\n\n setTargetNodeKey(null)\n return true\n }\n\n const inlineBlockNode = $createInlineBlockNode(fields as BlockFields)\n $insertNodes([inlineBlockNode])\n if ($isRootOrShadowRoot(inlineBlockNode.getParentOrThrow())) {\n $wrapNodeInElement(inlineBlockNode, $createParagraphNode).selectEnd()\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n ({ fields, nodeKey }) => {\n setBlockFields((fields as BlockFields) ?? null)\n setTargetNodeKey(nodeKey ?? null)\n setBlockType(fields?.blockType ?? ('' as any))\n\n if (nodeKey) {\n toggleDrawer()\n return true\n }\n\n let rangeSelection: null | RangeSelection = null\n\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n rangeSelection = selection\n }\n })\n\n if (rangeSelection) {\n //setLastSelection(rangeSelection)\n toggleDrawer()\n }\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor, targetNodeKey, toggleDrawer])\n\n if (!blockFields) {\n return null\n }\n\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${blockFields?.blockType}`\n\n const clientSchemaMap = featureClientSchemaMap['blocks']\n\n const blocksField: BlocksFieldClient = clientSchemaMap[schemaFieldsPath][0] as BlocksFieldClient\n\n const clientBlock = blocksField.blocks[0]\n\n if (!blocksField) {\n return null\n }\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock?.labels?.singular, i18n)\n : clientBlock?.slug\n\n return (\n <FieldsDrawer\n data={blockFields}\n drawerSlug={drawerSlug}\n drawerTitle={t(`lexical:blocks:inlineBlocks:${blockFields?.id ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n featureKey=\"blocks\"\n fieldMapOverride={clientBlock?.fields}\n handleDrawerSubmit={(_fields, data) => {\n if (!data) {\n return\n }\n\n data.blockType = blockType\n\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, data)\n }}\n schemaPath={schemaPath}\n schemaPathSuffix={`lexical_inline_blocks.${blockFields?.blockType}.fields`}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/richtext-lexical",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.129",
|
|
4
4
|
"description": "The officially supported Lexical richtext adapter for Payload",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"react-error-boundary": "4.0.13",
|
|
65
65
|
"ts-essentials": "10.0.3",
|
|
66
66
|
"uuid": "10.0.0",
|
|
67
|
-
"@payloadcms/translations": "3.0.0-beta.
|
|
68
|
-
"@payloadcms/ui": "3.0.0-beta.
|
|
67
|
+
"@payloadcms/translations": "3.0.0-beta.129",
|
|
68
|
+
"@payloadcms/ui": "3.0.0-beta.129"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@babel/cli": "^7.24.5",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"eslint-plugin-react-compiler": "19.0.0-beta-a7bf2bd-20241110",
|
|
87
87
|
"swc-plugin-transform-remove-imports": "1.15.0",
|
|
88
88
|
"@payloadcms/eslint-config": "3.0.0-beta.112",
|
|
89
|
-
"payload": "3.0.0-beta.
|
|
89
|
+
"payload": "3.0.0-beta.129"
|
|
90
90
|
},
|
|
91
91
|
"peerDependencies": {
|
|
92
92
|
"@faceless-ui/modal": "3.0.0-beta.2",
|
|
@@ -104,8 +104,8 @@
|
|
|
104
104
|
"lexical": "0.20.0",
|
|
105
105
|
"react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
106
106
|
"react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
107
|
-
"@payloadcms/next": "3.0.0-beta.
|
|
108
|
-
"payload": "3.0.0-beta.
|
|
107
|
+
"@payloadcms/next": "3.0.0-beta.129",
|
|
108
|
+
"payload": "3.0.0-beta.129"
|
|
109
109
|
},
|
|
110
110
|
"engines": {
|
|
111
111
|
"node": "^18.20.2 || >=20.9.0"
|