@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: `lexical_blocks.${blockFields?.blockType}.fields`
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":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,wBAAwB,EAAEC,kBAAkB,EAAEC,aAAa,QAAQ;AAC5E,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,EAAEC,YAAY,EAAEC,cAAc,QAAQ;AAC/D,SACEC,oBAAoB,EACpBC,aAAa,EACbC,qBAAqB,EACrBC,aAAa,EACbC,YAAY,EACZC,gBAAgB,EAChBC,iBAAiB,EACjBC,mBAAmB,EACnBC,uBAAuB,QAElB;AACP,OAAOC,KAAA,IAASC,SAAS,EAAEC,QAAQ,QAAQ;AAM3C,SAASC,sBAAsB,QAAQ;AACvC,SAASC,YAAY,QAAQ;AAC7B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,gBAAgB,EAAEC,SAAS,QAAQ;AAC5C,SAASC,sBAAsB,EAAEC,kBAAkB,QAAQ;AAC3D,SACEC,oBAAoB,EACpBC,2BAA2B,EAC3BC,gCAAgC,QAC3B;AAIP,OAAO,MAAMC,YAAA,GAA0DA,CAAA;EAAA,MAAAC,CAAA,GAAAhC,EAAA;EACrE,OAAAiC,MAAA,IAAiBhC,yBAAA;EACjB,OAAAiC,WAAA,EAAAC,cAAA,IAAsCf,QAAA,KAA6B;EACnE,OAAAgB,SAAA,EAAAC,YAAA,IAAkCjB,QAAA,CAAiB;EACnD,OAAAkB,aAAA,EAAAC,gBAAA,IAA0CnB,QAAA,KAAwB;EAClE;IAAAoB,IAAA;IAAAC;EAAA,IAAoBjC,cAAA;EACpB;IAAAkC,UAAA,EAAAC;EAAA,IAEItB,sBAAA;EADU;IAAAuB,sBAAA;IAAAC;EAAA,IAAAF,EAAsC;EAEpD;IAAAG;EAAA,IAAiBzB,sBAAA;EACjB,MAAA0B,SAAA,GAAkBxC,YAAA;EAGV,MAAAyC,EAAA,iCAA8B,GAAGF,IAAA;EAAA,IAAAG,EAAA;EAAA,IAAAjB,CAAA,QAAAgB,EAAA,IAAAhB,CAAA,QAAAe,SAAA;IADtBE,EAAA,GAAA3C,gBAAA;MAAA4C,IAAA,EACXF,EAAiC;MAAAG,KAAA,EAChCJ;IAAA,CACT;IAAAf,CAAA,MAAAgB,EAAA;IAAAhB,CAAA,MAAAe,SAAA;IAAAf,CAAA,MAAAiB,EAAA;EAAA;IAAAA,EAAA,GAAAjB,CAAA;EAAA;EAHA,MAAAoB,UAAA,GAAmBH,EAGnB;EAEA;IAAAI;EAAA,IAAyB9B,gBAAA,CAAiB6B,UAAA,MAAY;EAAA,IAAAE,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAvB,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAM,aAAA,IAAAN,CAAA,QAAAqB,YAAA;IAE5CC,EAAA,GAAAA,CAAA;MAAA,KACHrB,MAAA,CAAAuB,QAAA,EAAA/B,SAAA,CAA2B;QAAA,UAAAgC,KAAA,CACd;MAAA;MAAA,OAGXrD,aAAA,CACL6B,MAAA,CAAAyB,eAAA,CAAA9B,oBAAA,EAAA+B,OAAA;QAGI1B,MAAA,CAAA2B,MAAA;UACE,MAAAC,SAAA,GAAkBjD,aAAA,MAAmBD,qBAAA;UAAA,IAEjCI,iBAAA,CAAkB8C,SAAA;YACpB,MAAAC,SAAA,GAAkBtC,gBAAA,CAAiBmC,OAAA;YAEnCzD,wBAAA,CAAyB4D,SAAA;YAEzB;cAAAC;YAAA,IAAkBF,SAAA;YAClB,MAAAG,SAAA,GAAkBD,KAAA,CAAAE,OAAA,CAAa;YAAA,IAK7BnD,gBAAA,CAAiBkD,SAAA,KACjBA,SAAA,CAAAE,kBAAA,CAA4B,OAAO,IACnCF,SAAA,CAAAG,gBAAA,CACmB,EAAAC,WAAA,CACL,EAAAC,MAAA,CAAAC,IAAA,IACMxD,gBAAA,CAAiBwD,IAAA,GAAAC,MAAA,IAAgB;cAErDP,SAAA,CAAAQ,MAAA,CAAgB;YAAA;UAAA;QAAA,CAGtB;QAAA;MAAA,GAAAvD,uBAIF,GAEFgB,MAAA,CAAAyB,eAAA,CAAA7B,2BAAA,EAAA4C,MAAA;QAAA,IAGQnC,aAAA;UACF,MAAAoC,MAAA,GAAahE,aAAA,CAAc4B,aAAA;UAAA,IAEvB,CAACgC,MAAA,KAAS3C,kBAAA,CAAmB2C,MAAA;YAAA;UAAA;UAIjCA,MAAA,CAAAK,SAAA,CAAeF,MAAA;UAEflC,gBAAA,KAAiB;UAAA;QAAA;QAInB,MAAAqC,eAAA,GAAwBlD,sBAAA,CAAuB+C,MAAA;QAC/C5D,YAAA,EAAc+D,eAAA,CAAgB;QAAA,IAC1B5D,mBAAA,CAAoB4D,eAAA,CAAAT,gBAAA,CAAgC;UACtDhE,kBAAA,CAAmByE,eAAA,EAAAnE,oBAAiB,EAAAoE,SAAA,CAA+B;QAAA;QAAA;MAAA,GAAA5D,uBAKvE,GAEFgB,MAAA,CAAAyB,eAAA,CAAA5B,gCAAA,EAAAgD,EAAA;QAEG;UAAAL,MAAA,EAAAM,QAAA;UAAAC;QAAA,IAAAF,EAAmB;QAClB3C,cAAA,CAAesC,QAAC,QAA0B;QAC1ClC,gBAAA,CAAiByC,OAAA,QAAW;QAC5B3C,YAAA,CAAaoC,QAAA,EAAArC,SAAA,IAAsB;QAAA,IAE/B4C,OAAA;UACF3B,YAAA;UAAA;QAAA;QAIF,IAAA4B,cAAA;QAAAA,cAAA;QAEAhD,MAAA,CAAAiD,cAAA,CAAqB,EAAAC,IAAA;UACnB,MAAAC,WAAA,GAAkBxE,aAAA;UAAA,IACdG,iBAAA,CAAkB8C,WAAA;YACpBoB,cAAA,CAAAA,CAAA,CAAiBpB,WAAA;UAAjB;QAAA,CAEJ;QAAA,IAEIoB,cAAA;UAEF5B,YAAA;QAAA;QAAA;MAAA,GAAApC,uBAIJ;IAAA;IAGHsC,EAAA,IAACtB,MAAA,EAAQK,aAAA,EAAee,YAAA;IAAarB,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAM,aAAA;IAAAN,CAAA,MAAAqB,YAAA;IAAArB,CAAA,MAAAsB,EAAA;IAAAtB,CAAA,MAAAuB,EAAA;EAAA;IAAAD,EAAA,GAAAtB,CAAA;IAAAuB,EAAA,GAAAvB,CAAA;EAAA;EA/FxCb,SAAA,CAAUmC,EA+FV,EAAGC,EAAqC;EAAA,KAEnCrB,WAAA;IAAA;EAAA;EAIL,MAAAmD,gBAAA,GAAyB,GAAGxC,UAAA,0DAAoEX,WAAA,EAAAE,SAAA,EAAwB;EAExH,MAAAkD,eAAA,GAAwB1C,sBAAsB,CAAA2C,MAAA;EAE9C,MAAAC,WAAA,GAAuCF,eAAe,CAACD,gBAAA;EAEvD,MAAAI,WAAA,GAAoBD,WAAA,CAAAD,MAAA;EAAqB,KAEpCC,WAAA;IAAA;EAAA;EAAA,IAAAV,EAAA;EAAA,IAAA9C,CAAA,QAAAyD,WAAA,IAAAzD,CAAA,QAAAQ,IAAA;IAIoBsC,EAAA,GAAAW,WAAA,EAAAC,MAAA,EAAAC,QAAA,GACrBtF,cAAA,CAAeoF,WAAA,EAAAC,MAAA,EAAAC,QAAA,EAA+BnD,IAAA,IAC9CiD,WAAA,EAAAvC,IAAa;IAAAlB,CAAA,MAAAyD,WAAA;IAAAzD,CAAA,MAAAQ,IAAA;IAAAR,CAAA,OAAA8C,EAAA;EAAA;IAAAA,EAAA,GAAA9C,CAAA;EAAA;EAFjB,MAAA4D,gBAAA,GAAyBd,EAER;EAME,MAAAe,EAAA,kCAA+B3D,WAAA,EAAA4D,EAAA,GAAkB,SAAS,UAAU;EAAA,IAAAC,EAAA;EAAA,IAAA/D,CAAA,SAAA4D,gBAAA,IAAA5D,CAAA,SAAAS,CAAA;IAC1EsD,EAAA,GAAAH,gBAAA,IAAoBnD,CAAA,CAAE;IAAAT,CAAA,OAAA4D,gBAAA;IAAA5D,CAAA,OAAAS,CAAA;IAAAT,CAAA,OAAA+D,EAAA;EAAA;IAAAA,EAAA,GAAA/D,CAAA;EAAA;EAAA,IAAAgE,EAAA;EAAA,IAAAhE,CAAA,SAAA+D,EAAA,IAAA/D,CAAA,SAAAS,CAAA,IAAAT,CAAA,SAAA6D,EAAA,IAAA7D,CAAA,SAAAyD,WAAA,EAAAhB,MAAA,IAAAzC,CAAA,SAAAI,SAAA,IAAAJ,CAAA,SAAAC,MAAA,IAAAD,CAAA,SAAAE,WAAA,IAAAF,CAAA,SAAAoB,UAAA,IAAApB,CAAA,SAAAa,UAAA;IAAA,IAAAoD,EAAA;IAAA,IAAAjE,CAAA,SAAAI,SAAA,IAAAJ,CAAA,SAAAC,MAAA;MAIXgE,EAAA,GAAAA,CAAAC,OAAA,EAAAC,IAAA;QAAA,KACbA,IAAA;UAAA;QAAA;QAILA,IAAA,CAAA/D,SAAA,GAAiBA,SAAA;QAEjBH,MAAA,CAAAmE,eAAA,CAAAvE,2BAAA,EAAoDsE,IAAA;MAAA;MACtDnE,CAAA,OAAAI,SAAA;MAAAJ,CAAA,OAAAC,MAAA;MAAAD,CAAA,OAAAiE,EAAA;IAAA;MAAAA,EAAA,GAAAjE,CAAA;IAAA;IAhBFgE,EAAA,GAAAK,IAAA,CAAA/E,YAAA;MAAA6E,IAAA,EACQjE,WAAA;MAAAkB,UAAA;MAAAkD,WAAA,EAEO7D,CAAA,CAAEoD,EAAoE;QAAAU,KAAA,EAC1ER;MAAsB,CAC/B;MAAAS,UAAA,EACW;MAAAC,gBAAA,EACOhB,WAAA,EAAAhB,MAAA;MAAAiC,kBAAA,EACET,EAQpB;MAAApD,UAAA;MAAA8D,gBAAA,EAEkB,kBAAkBzE,WAAA,EAAAE,SAAA;IAA+B,C;;;;;;;;;;;;;;SAlBrE4D,E;CAqBJ","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.128",
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.128",
68
- "@payloadcms/ui": "3.0.0-beta.128"
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.128"
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.128",
108
- "payload": "3.0.0-beta.128"
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"