@payloadcms/richtext-lexical 3.73.0-internal.783bc97 → 3.73.0-internal.dd5902a

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.
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/features/shared/slashMenu/basicGroup.ts", "../../../src/features/align/client/index.tsx", "../../../src/lexical/ui/icons/AlignCenter/index.tsx", "../../../src/lexical/ui/icons/AlignJustify/index.tsx", "../../../src/lexical/ui/icons/AlignLeft/index.tsx", "../../../src/lexical/ui/icons/AlignRight/index.tsx", "../../../src/utilities/createClientFeature.ts", "../../../src/features/align/client/toolbarAlignGroup.ts", "../../../src/features/blockquote/client/index.tsx", "../../../src/lexical/ui/icons/Blockquote/index.tsx", "../../../src/lexical/ui/icons/Text/index.tsx", "../../../src/features/shared/toolbar/textDropdownGroup.ts", "../../../src/features/blockquote/markdownTransformer.ts", "../../../src/features/blocks/client/index.tsx", "../../../src/lexical/ui/icons/Block/index.tsx", "../../../src/lexical/ui/icons/InlineBlocks/index.tsx", "../../../src/features/blocks/client/getBlockImageComponent.tsx", "../../../src/features/blocks/client/markdown/markdownTransformer.ts", "../../../src/utilities/jsx/extractPropsFromJSXPropsString.ts", "../../../src/utilities/jsx/jsx.ts", "../../../src/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.ts", "../../../src/features/blocks/client/nodes/BlocksNode.tsx", "../../../src/features/blocks/server/nodes/BlocksNode.tsx", "../../../src/features/blocks/client/component/index.tsx", "../../../src/features/blocks/client/component/BlockContent.tsx", "../../../src/features/blocks/client/component/removeEmptyArrayValues.ts", "../../../src/features/blocks/client/markdown/getLexicalToMarkdown.ts", "../../../src/features/blocks/client/markdown/getMarkdownToLexical.ts", "../../../src/features/blocks/client/plugin/commands.ts", "../../../src/features/blocks/client/plugin/index.tsx", "../../../src/features/debug/testRecorder/client/plugin/index.tsx", "../../../src/lexical/utils/environment.ts", "../../../src/features/debug/testRecorder/client/index.tsx", "../../../src/features/debug/treeView/client/plugin/index.tsx", "../../../src/features/debug/treeView/client/index.tsx", "../../../src/features/format/bold/feature.client.tsx", "../../../src/lexical/ui/icons/Bold/index.tsx", "../../../src/features/format/shared/toolbarFormatGroup.ts", "../../../src/features/format/bold/markdownTransformers.ts", "../../../src/features/format/inlineCode/feature.client.tsx", "../../../src/lexical/ui/icons/Code/index.tsx", "../../../src/features/format/inlineCode/markdownTransformers.ts", "../../../src/features/format/italic/feature.client.tsx", "../../../src/lexical/ui/icons/Italic/index.tsx", "../../../src/features/format/italic/markdownTransformers.ts", "../../../src/features/format/strikethrough/feature.client.tsx", "../../../src/lexical/ui/icons/Strikethrough/index.tsx", "../../../src/features/format/strikethrough/markdownTransformers.ts", "../../../src/features/format/subscript/feature.client.tsx", "../../../src/lexical/ui/icons/Subscript/index.tsx", "../../../src/features/format/superscript/feature.client.tsx", "../../../src/lexical/ui/icons/Superscript/index.tsx", "../../../src/features/format/underline/feature.client.tsx", "../../../src/lexical/ui/icons/Underline/index.tsx", "../../../src/lexical/ui/icons/TextState/index.tsx", "../../../src/features/textState/textState.ts", "../../../src/features/textState/feature.client.tsx", "../../../src/features/heading/client/index.tsx", "../../../src/lexical/ui/icons/H1/index.tsx", "../../../src/lexical/ui/icons/H2/index.tsx", "../../../src/lexical/ui/icons/H3/index.tsx", "../../../src/lexical/ui/icons/H4/index.tsx", "../../../src/lexical/ui/icons/H5/index.tsx", "../../../src/lexical/ui/icons/H6/index.tsx", "../../../src/features/heading/markdownTransformer.ts", "../../../src/lexical/utils/markdown/createBlockNode.ts", "../../../src/features/horizontalRule/client/index.tsx", "../../../src/lexical/ui/icons/HorizontalRule/index.tsx", "../../../src/lexical/ui/icons/Add/index.tsx", "../../../src/features/shared/toolbar/addDropdownGroup.ts", "../../../src/features/horizontalRule/server/nodes/HorizontalRuleNode.tsx", "../../../src/features/horizontalRule/client/nodes/HorizontalRuleNode.tsx", "../../../src/features/horizontalRule/client/markdownTransformer.ts", "../../../src/features/horizontalRule/client/plugin/index.tsx", "../../../src/features/indent/client/index.tsx", "../../../src/lexical/ui/icons/IndentDecrease/index.tsx", "../../../src/lexical/ui/icons/IndentIncrease/index.tsx", "../../../src/features/indent/client/IndentPlugin.tsx", "../../../src/features/indent/client/toolbarIndentGroup.ts", "../../../src/features/link/client/index.tsx", "../../../src/lexical/ui/icons/Link/index.tsx", "../../../src/lexical/utils/getSelectedNode.ts", "../../../src/features/shared/toolbar/featureButtonsGroup.ts", "../../../src/features/link/markdownTransformer.ts", "../../../src/features/link/nodes/LinkNode.ts", "../../../src/features/link/nodes/AutoLinkNode.ts", "../../../src/features/link/client/plugins/autoLink/index.tsx", "../../../src/features/link/client/plugins/clickableLink/index.tsx", "../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx", "../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx", "../../../src/lexical/utils/setFloatingElemPositionForLinkEditor.ts", "../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.ts", "../../../src/features/link/client/plugins/link/index.tsx", "../../../src/lexical/utils/url.ts", "../../../src/features/lists/checklist/client/index.tsx", "../../../src/lexical/ui/icons/Checklist/index.tsx", "../../../src/features/lists/plugin/index.tsx", "../../../src/features/lists/shared/shouldRegisterListBaseNodes.ts", "../../../src/features/lists/shared/slashMenuListGroup.ts", "../../../src/features/lists/checklist/markdownTransformers.ts", "../../../src/features/lists/shared/markdown.ts", "../../../src/features/lists/checklist/client/plugin/index.tsx", "../../../src/features/lists/orderedList/client/index.tsx", "../../../src/lexical/ui/icons/OrderedList/index.tsx", "../../../src/features/lists/orderedList/markdownTransformer.ts", "../../../src/features/lists/unorderedList/client/index.tsx", "../../../src/lexical/ui/icons/UnorderedList/index.tsx", "../../../src/features/lists/unorderedList/markdownTransformer.ts", "../../../src/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.tsx", "../../../src/features/migrations/lexicalPluginToLexical/feature.client.tsx", "../../../src/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.tsx", "../../../src/features/migrations/slateToLexical/feature.client.tsx", "../../../src/features/paragraph/client/index.tsx", "../../../src/features/debug/jsxConverter/client/plugin/index.tsx", "../../../src/features/converters/lexicalToJSX/Component/index.tsx", "../../../src/features/converters/lexicalToJSX/converter/converters/blockquote.tsx", "../../../src/features/converters/lexicalToJSX/converter/converters/heading.tsx", "../../../src/features/converters/lexicalToJSX/converter/converters/horizontalRule.tsx", "../../../src/features/converters/lexicalToJSX/converter/converters/linebreak.tsx", "../../../src/features/converters/lexicalToJSX/converter/converters/link.tsx", "../../../src/features/converters/lexicalToJSX/converter/converters/list.tsx", "../../../src/features/converters/lexicalToJSX/converter/converters/paragraph.tsx", "../../../src/features/converters/lexicalToJSX/converter/converters/tab.tsx", "../../../src/features/converters/lexicalToJSX/converter/converters/table.tsx", "../../../src/features/converters/lexicalToJSX/converter/converters/text.tsx", "../../../src/lexical/utils/nodeFormat.ts", "../../../src/features/converters/lexicalToJSX/converter/converters/upload.tsx", "../../../src/features/converters/lexicalToJSX/converter/defaultConverters.ts", "../../../src/features/converters/lexicalToJSX/converter/index.tsx", "../../../src/validate/hasText.ts", "../../../src/features/debug/jsxConverter/client/index.tsx", "../../../src/features/textState/defaultColors.ts", "../../../src/features/relationship/client/index.tsx", "../../../src/lexical/ui/icons/Relationship/index.tsx", "../../../src/features/relationship/client/nodes/RelationshipNode.tsx", "../../../src/features/relationship/server/nodes/RelationshipNode.tsx", "../../../src/features/relationship/client/plugins/index.tsx", "../../../src/features/relationship/client/drawer/index.tsx", "../../../src/utilities/fieldsDrawer/useLexicalListDrawer.tsx", "../../../src/features/relationship/client/utils/useEnabledRelationships.tsx", "../../../src/features/toolbars/fixed/client/Toolbar/index.tsx", "../../../src/features/toolbars/shared/ToolbarButton/index.tsx", "../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx", "../../../src/features/toolbars/shared/ToolbarDropdown/DropDown.tsx", "../../../src/features/toolbars/fixed/client/index.tsx", "../../../src/features/toolbars/inline/client/Toolbar/index.tsx", "../../../src/lexical/utils/getDOMRangeRect.ts", "../../../src/lexical/utils/setFloatingElemPosition.ts", "../../../src/features/toolbars/inline/client/index.tsx", "../../../src/features/experimental_table/client/index.ts", "../../../src/lexical/ui/icons/Table/index.tsx", "../../../src/features/experimental_table/markdownTransformer.ts", "../../../src/features/experimental_table/client/plugins/TableActionMenuPlugin/index.tsx", "../../../src/lexical/ui/icons/Meatballs/index.tsx", "../../../src/features/experimental_table/client/plugins/TableCellResizerPlugin/index.tsx", "../../../src/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.tsx", "../../../src/features/experimental_table/client/utils/useDebounce.ts", "../../../src/features/experimental_table/client/utils/debounce.ts", "../../../src/features/experimental_table/client/plugins/TablePlugin/index.tsx", "../../../src/features/upload/client/index.tsx", "../../../src/lexical/ui/icons/Upload/index.tsx", "../../../src/features/upload/client/nodes/UploadNode.tsx", "../../../src/features/upload/server/nodes/conversions.ts", "../../../src/features/upload/server/nodes/UploadNode.tsx", "../../../src/features/upload/client/component/pending/index.tsx", "../../../src/features/upload/client/plugin/index.tsx", "../../../src/features/upload/client/drawer/index.tsx", "../../../src/field/index.tsx", "../../../src/lexical/theme/EditorTheme.tsx", "../../../src/lexical/config/client/default.ts", "../../../src/lexical/config/client/loader.ts", "../../../src/lexical/config/client/sanitize.ts", "../../../src/lexical/utils/guard.ts", "../../../src/lexical/utils/joinClasses.ts", "../../../src/lexical/utils/swipe.ts", "../../../src/features/blocks/client/componentInline/components/InlineBlockEditButton.tsx", "../../../src/features/blocks/client/componentInline/components/InlineBlockRemoveButton.tsx", "../../../src/features/blocks/client/componentInline/components/InlineBlockLabel.tsx", "../../../src/features/blocks/client/componentInline/components/InlineBlockContainer.tsx", "../../../src/features/blocks/client/component/components/BlockCollapsible.tsx", "../../../src/features/blocks/client/component/components/BlockEditButton.tsx", "../../../src/features/blocks/client/component/components/BlockRemoveButton.tsx", "../../../src/features/converters/utilities/restPopulateFn.ts", "../../../src/features/blocks/premade/CodeBlock/converter.ts", "../../../src/features/blocks/premade/CodeBlock/Component/Code.tsx", "../../../src/features/blocks/premade/CodeBlock/Component/defaultLanguages.ts", "../../../src/features/blocks/premade/CodeBlock/Component/Block.tsx", "../../../src/lexical/ui/icons/CodeBlock/index.tsx", "../../../src/features/blocks/premade/CodeBlock/Component/Collapse/index.tsx", "../../../src/lexical/ui/icons/Collapse/index.tsx", "../../../src/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.tsx", "../../../src/field/RenderLexical/index.tsx", "../../../src/utilities/buildEditorState.ts"],
4
4
  "sourcesContent": ["import type {\n SlashMenuGroup,\n SlashMenuItem,\n} from '../../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\n\nexport function slashMenuBasicGroupWithItems(items: SlashMenuItem[]): SlashMenuGroup {\n return {\n items,\n key: 'basic',\n label: ({ i18n }) => {\n return i18n.t('lexical:general:slashMenuBasicGroupLabel')\n },\n }\n}\n", "'use client'\n\nimport type { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode'\nimport type { ElementFormatType, ElementNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { $isDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode'\nimport { $findMatchingParent } from '@lexical/utils'\nimport {\n $getSelection,\n $isElementNode,\n $isNodeSelection,\n $isRangeSelection,\n COMMAND_PRIORITY_LOW,\n FORMAT_ELEMENT_COMMAND,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { AlignCenterIcon } from '../../../lexical/ui/icons/AlignCenter/index.js'\nimport { AlignJustifyIcon } from '../../../lexical/ui/icons/AlignJustify/index.js'\nimport { AlignLeftIcon } from '../../../lexical/ui/icons/AlignLeft/index.js'\nimport { AlignRightIcon } from '../../../lexical/ui/icons/AlignRight/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarAlignGroupWithItems } from './toolbarAlignGroup.js'\n\n// DecoratorBlockNode has format, but Lexical forgot\n// to add the getters like ElementNode does.\nconst getFormatType = (node: DecoratorBlockNode | ElementNode): ElementFormatType => {\n if ($isElementNode(node)) {\n return node.getFormatType()\n }\n return node.__format\n}\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarAlignGroupWithItems([\n {\n ChildComponent: AlignLeftIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isElementNode(node) || $isDecoratorBlockNode(node)) {\n if (getFormatType(node) === 'left') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent) || $isDecoratorBlockNode(parent)) {\n if (getFormatType(parent) === 'left') {\n continue\n }\n }\n\n return false\n }\n return true\n },\n key: 'alignLeft',\n label: ({ i18n }) => {\n return i18n.t('lexical:align:alignLeftLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'left')\n },\n order: 1,\n },\n {\n ChildComponent: AlignCenterIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isElementNode(node) || $isDecoratorBlockNode(node)) {\n if (getFormatType(node) === 'center') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent) || $isDecoratorBlockNode(parent)) {\n if (getFormatType(parent) === 'center') {\n continue\n }\n }\n\n return false\n }\n return true\n },\n key: 'alignCenter',\n label: ({ i18n }) => {\n return i18n.t('lexical:align:alignCenterLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'center')\n },\n order: 2,\n },\n {\n ChildComponent: AlignRightIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isElementNode(node) || $isDecoratorBlockNode(node)) {\n if (getFormatType(node) === 'right') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent) || $isDecoratorBlockNode(parent)) {\n if (getFormatType(parent) === 'right') {\n continue\n }\n }\n\n return false\n }\n return true\n },\n key: 'alignRight',\n label: ({ i18n }) => {\n return i18n.t('lexical:align:alignRightLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'right')\n },\n order: 3,\n },\n {\n ChildComponent: AlignJustifyIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isElementNode(node) || $isDecoratorBlockNode(node)) {\n if (getFormatType(node) === 'justify') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent) || $isDecoratorBlockNode(parent)) {\n if (getFormatType(parent) === 'justify') {\n continue\n }\n }\n\n return false\n }\n return true\n },\n key: 'alignJustify',\n label: ({ i18n }) => {\n return i18n.t('lexical:align:alignJustifyLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'justify')\n },\n order: 4,\n },\n ]),\n]\n\nconst AlignPlugin = () => {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n // Just like the default Lexical configuration, but in\n // addition to ElementNode we also set DecoratorBlocks\n return editor.registerCommand(\n FORMAT_ELEMENT_COMMAND,\n (format) => {\n const selection = $getSelection()\n if (!$isRangeSelection(selection) && !$isNodeSelection(selection)) {\n return false\n }\n const nodes = selection.getNodes()\n for (const node of nodes) {\n const element = $findMatchingParent(\n node,\n (parentNode): parentNode is DecoratorBlockNode | ElementNode =>\n ($isElementNode(parentNode) || $isDecoratorBlockNode(parentNode)) &&\n !parentNode.isInline(),\n )\n if (element !== null) {\n element.setFormat(format)\n }\n }\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n }, [editor])\n return null\n}\n\nexport const AlignFeatureClient = createClientFeature({\n plugins: [\n {\n Component: AlignPlugin,\n position: 'normal',\n },\n ],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const AlignCenterIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M2.5 5H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 10H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5 15H15\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const AlignJustifyIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M2.5 5H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 10H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 15H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const AlignLeftIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M2.5 5H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 10H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 15H12.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const AlignRightIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M2.5 5H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 10H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7.5 15H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "import type { ClientConfig, RichTextFieldClient } from 'payload'\n\nimport type {\n BaseClientFeatureProps,\n ClientFeature,\n ClientFeatureProviderMap,\n FeatureProviderClient,\n FeatureProviderProviderClient,\n ResolvedClientFeatureMap,\n} from '../features/typesClient.js'\nimport type { ClientEditorConfig } from '../lexical/config/types.js'\nimport type { FeatureClientSchemaMap } from '../types.js'\n\nexport type CreateClientFeatureArgs<UnSanitizedClientProps, ClientProps> =\n | ((props: {\n config: ClientConfig\n featureClientImportMap: Record<string, any>\n featureClientSchemaMap: FeatureClientSchemaMap\n /** unSanitizedEditorConfig.features, but mapped */\n featureProviderMap: ClientFeatureProviderMap\n field?: RichTextFieldClient\n props: BaseClientFeatureProps<UnSanitizedClientProps>\n // other resolved features, which have been loaded before this one. All features declared in 'dependencies' should be available here\n resolvedFeatures: ResolvedClientFeatureMap\n schemaPath: string\n // unSanitized EditorConfig,\n unSanitizedEditorConfig: ClientEditorConfig\n }) => ClientFeature<ClientProps>)\n | Omit<ClientFeature<ClientProps>, 'sanitizedClientFeatureProps'>\n\nexport const createClientFeature: <\n UnSanitizedClientProps = undefined,\n ClientProps = UnSanitizedClientProps,\n>(\n args: CreateClientFeatureArgs<UnSanitizedClientProps, ClientProps>,\n) => FeatureProviderProviderClient<UnSanitizedClientProps, ClientProps> = (feature) => {\n const featureProviderProvideClient: FeatureProviderProviderClient<any, any> = (props) => {\n const featureProviderClient: Partial<FeatureProviderClient<any, any>> = {\n clientFeatureProps: props,\n }\n\n if (typeof feature === 'function') {\n featureProviderClient.feature = ({\n config,\n featureClientImportMap,\n featureClientSchemaMap,\n featureProviderMap,\n field,\n resolvedFeatures,\n schemaPath,\n unSanitizedEditorConfig,\n }) => {\n const toReturn = feature({\n config,\n featureClientImportMap,\n featureClientSchemaMap,\n featureProviderMap,\n field,\n props,\n resolvedFeatures,\n schemaPath,\n unSanitizedEditorConfig,\n })\n\n if (toReturn.sanitizedClientFeatureProps === null) {\n toReturn.sanitizedClientFeatureProps = props\n }\n\n return toReturn\n }\n } else {\n // We have to spread feature here! Otherwise, if the arg of createClientFeature is not a function, and 2\n // richText editors have the same feature (even if both call it, e.g. both call UploadFeature()),\n // the second richText editor here will override sanitizedClientFeatureProps of the first feature, as both richText\n // editor features share the same reference to the feature object.\n // Example: richText editor 1 and 2 both have UploadFeature. richText editor 1 calls UploadFeature() with custom fields,\n // richText editor 2 calls UploadFeature() with NO custom fields. If we don't spread feature here, richText editor 1\n // will not have any custom fields, as richText editor 2 will override the feature object.\n const newFeature: ClientFeature<any> = { ...feature }\n newFeature.sanitizedClientFeatureProps = props\n featureProviderClient.feature = newFeature\n }\n return featureProviderClient as FeatureProviderClient<any, any>\n }\n\n return featureProviderProvideClient\n}\n", "'use client'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { AlignLeftIcon } from '../../../lexical/ui/icons/AlignLeft/index.js'\n\nexport const toolbarAlignGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'dropdown',\n ChildComponent: AlignLeftIcon,\n items,\n key: 'align',\n order: 30,\n }\n}\n", "'use client'\n\nimport { $createQuoteNode, $isQuoteNode, QuoteNode } from '@lexical/rich-text'\nimport { $setBlocksType } from '@lexical/selection'\nimport { $getSelection, $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { BlockquoteIcon } from '../../../lexical/ui/icons/Blockquote/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../shared/toolbar/textDropdownGroup.js'\nimport { MarkdownTransformer } from '../markdownTransformer.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems([\n {\n ChildComponent: BlockquoteIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if (!$isQuoteNode(node) && !$isQuoteNode(node.getParent())) {\n return false\n }\n }\n return true\n },\n key: 'blockquote',\n label: ({ i18n }) => {\n return i18n.t('lexical:blockquote:label')\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createQuoteNode())\n })\n },\n order: 20,\n },\n ]),\n]\n\nexport const BlockquoteFeatureClient = createClientFeature({\n markdownTransformers: [MarkdownTransformer],\n nodes: [QuoteNode],\n\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: BlockquoteIcon,\n key: 'blockquote',\n keywords: ['quote', 'blockquote'],\n label: ({ i18n }) => {\n return i18n.t('lexical:blockquote:label')\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createQuoteNode())\n })\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const BlockquoteIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.5353 10.5725C13.5353 9.47709 11.0456 9.99991 11.0456 7.85883C11.0456 6.46464 12.1162 5.61816 13.361 5.61816C14.805 5.61816 16 6.86298 16 8.92937C16 11.2945 14.4564 13.7841 11.1203 14.3816L10.8216 13.1368C12.888 12.4895 13.5353 11.4937 13.5353 10.5725ZM6.71369 10.5725C6.71369 9.47709 4.22407 9.99991 4.22407 7.85883C4.22407 6.46464 5.29461 5.61816 6.53942 5.61816C7.9834 5.61816 9.17842 6.86298 9.17842 8.92937C9.17842 11.2945 7.63485 13.7841 4.29876 14.3816L4 13.1368C6.06639 12.4895 6.71369 11.4937 6.71369 10.5725Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const TextIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.708 14.5H7.79785V13.9414H8.01367C9.00391 13.9414 9.15625 13.9033 9.15625 13.6113V6.70508H8.07715C6.82031 6.70508 6.73145 7.08594 6.28711 8.67285H5.80469L5.91895 6.12109H13.5869L13.7012 8.67285H13.2188C12.7744 7.08594 12.6855 6.70508 11.4287 6.70508H10.3496V13.6113C10.3496 13.9033 10.502 13.9414 11.4922 13.9414H11.708V14.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "import type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { TextIcon } from '../../../lexical/ui/icons/Text/index.js'\n\nexport const toolbarTextDropdownGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'dropdown',\n ChildComponent: TextIcon,\n items,\n key: 'text',\n order: 25,\n }\n}\n", "import { $createQuoteNode, $isQuoteNode, QuoteNode } from '@lexical/rich-text'\n\nimport type { ElementTransformer } from '../../packages/@lexical/markdown/index.js'\n\nexport const MarkdownTransformer: ElementTransformer = {\n type: 'element',\n dependencies: [QuoteNode],\n export: (node, exportChildren) => {\n if (!$isQuoteNode(node)) {\n return null\n }\n\n const lines = exportChildren(node).split('\\n')\n const output: string[] = []\n for (const line of lines) {\n output.push('> ' + line)\n }\n return output.join('\\n')\n },\n regExp: /^>\\s/,\n replace: (parentNode, children, _match, isImport) => {\n if (isImport) {\n const previousNode = parentNode.getPreviousSibling()\n if ($isQuoteNode(previousNode)) {\n previousNode.splice(previousNode.getChildrenSize(), 0, [...children])\n previousNode.select(0, 0)\n parentNode.remove()\n return\n }\n }\n\n const node = $createQuoteNode()\n node.append(...children)\n parentNode.replace(node)\n node.select(0, 0)\n },\n}\n", "'use client'\n\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { BlocksFieldClient, ClientBlock } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type {\n SlashMenuGroup,\n SlashMenuItem,\n} from '../../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { BlockIcon } from '../../../lexical/ui/icons/Block/index.js'\nimport { InlineBlocksIcon } from '../../../lexical/ui/icons/InlineBlocks/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { getBlockImageComponent } from './getBlockImageComponent.js'\nimport { getBlockMarkdownTransformers } from './markdown/markdownTransformer.js'\nimport { BlockNode } from './nodes/BlocksNode.js'\nimport { InlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { INSERT_BLOCK_COMMAND, INSERT_INLINE_BLOCK_COMMAND } from './plugin/commands.js'\nimport { BlocksPlugin } from './plugin/index.js'\nexport const BlocksFeatureClient = createClientFeature(\n ({ config, featureClientSchemaMap, props, schemaPath }) => {\n const schemaMapRenderedBlockPathPrefix = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks`\n const schemaMapRenderedInlineBlockPathPrefix = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks`\n const clientSchema = featureClientSchemaMap['blocks']\n\n if (!clientSchema) {\n return {}\n }\n\n const blocksFields: BlocksFieldClient[] = Object.entries(clientSchema)\n .filter(\n ([key]) =>\n key.startsWith(schemaMapRenderedBlockPathPrefix + '.') &&\n !key.replace(schemaMapRenderedBlockPathPrefix + '.', '').includes('.'),\n )\n .map(([, value]) => value[0] as BlocksFieldClient)\n\n const inlineBlocksFields: BlocksFieldClient[] = Object.entries(clientSchema)\n .filter(\n ([key]) =>\n key.startsWith(schemaMapRenderedInlineBlockPathPrefix + '.') &&\n !key.replace(schemaMapRenderedInlineBlockPathPrefix + '.', '').includes('.'),\n )\n .map(([, value]) => value[0] as BlocksFieldClient)\n\n const clientBlocks: ClientBlock[] = blocksFields\n .map((field) => {\n return field.blockReferences\n ? typeof field.blockReferences[0] === 'string'\n ? config.blocksMap[field.blockReferences[0]]\n : field.blockReferences[0]\n : field.blocks[0]\n })\n .filter((block) => block !== undefined)\n\n const clientInlineBlocks: ClientBlock[] = inlineBlocksFields\n .map((field) => {\n return field.blockReferences\n ? typeof field.blockReferences[0] === 'string'\n ? config.blocksMap[field.blockReferences[0]]\n : field.blockReferences[0]\n : field.blocks[0]\n })\n .filter((block) => block !== undefined)\n\n return {\n markdownTransformers: getBlockMarkdownTransformers({\n blocks: clientBlocks,\n inlineBlocks: clientInlineBlocks,\n }),\n nodes: [BlockNode, InlineBlockNode],\n plugins: [\n {\n Component: BlocksPlugin,\n position: 'normal',\n },\n ],\n sanitizedClientFeatureProps: props,\n slashMenu: {\n groups: [\n clientBlocks?.length\n ? {\n items: clientBlocks.map((block) => {\n return {\n Icon: getBlockImageComponent(block.imageURL, block.imageAltText),\n key: 'block-' + block.slug,\n keywords: ['block', 'blocks', block.slug],\n label: ({ i18n }) => {\n const blockDisplayName = block?.labels?.singular\n ? getTranslation(block.labels.singular, i18n)\n : block?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n blockName: '',\n blockType: block.slug,\n })\n },\n } as SlashMenuItem\n }),\n key: 'blocks',\n label: ({ i18n }: { i18n: I18nClient<object, 'lexical:blocks:label'> }) => {\n return i18n.t('lexical:blocks:label')\n },\n }\n : null,\n clientInlineBlocks?.length\n ? {\n items: clientInlineBlocks.map((inlineBlock) => {\n return {\n Icon: InlineBlocksIcon,\n key: 'inlineBlocks-' + inlineBlock.slug,\n keywords: ['inlineBlock', 'inline block', inlineBlock.slug],\n label: ({ i18n }) => {\n const blockDisplayName = inlineBlock?.labels?.singular\n ? getTranslation(inlineBlock.labels.singular, i18n)\n : inlineBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, {\n blockName: '',\n blockType: inlineBlock.slug,\n })\n },\n } as SlashMenuItem\n }),\n key: 'inlineBlocks',\n label: ({\n i18n,\n }: {\n i18n: I18nClient<object, 'lexical:blocks:inlineBlocks:label'>\n }) => {\n return i18n.t('lexical:blocks:inlineBlocks:label')\n },\n }\n : null,\n ].filter(Boolean) as SlashMenuGroup[],\n },\n toolbarFixed: {\n groups: [\n clientBlocks.length\n ? {\n type: 'dropdown',\n ChildComponent: BlockIcon,\n items: clientBlocks.map((block, index) => {\n return {\n ChildComponent: getBlockImageComponent(block.imageURL, block.imageAltText),\n isActive: undefined, // At this point, we would be inside a sub-richtext-editor. And at this point this will be run against the focused sub-editor, not the parent editor which has the actual block. Thus, no point in running this\n key: 'block-' + block.slug,\n label: ({ i18n }) => {\n const blockDisplayName = block?.labels?.singular\n ? getTranslation(block.labels.singular, i18n)\n : block?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n blockName: '',\n blockType: block.slug,\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'blocks',\n order: 20,\n }\n : null,\n clientInlineBlocks?.length\n ? {\n type: 'dropdown',\n ChildComponent: InlineBlocksIcon,\n items: clientInlineBlocks.map((inlineBlock, index) => {\n return {\n ChildComponent: inlineBlock.imageURL\n ? getBlockImageComponent(inlineBlock.imageURL, inlineBlock.imageAltText)\n : InlineBlocksIcon,\n isActive: undefined,\n key: 'inlineBlock-' + inlineBlock.slug,\n label: ({ i18n }) => {\n const blockDisplayName = inlineBlock?.labels?.singular\n ? getTranslation(inlineBlock.labels.singular, i18n)\n : inlineBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, {\n blockName: '',\n blockType: inlineBlock.slug,\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'inlineBlocks',\n order: 25,\n }\n : null,\n ].filter(Boolean) as ToolbarGroup[],\n },\n }\n },\n)\n", "'use client'\nimport React from 'react'\n\nexport const BlockIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect height=\"4\" rx=\"0.5\" stroke=\"currentColor\" width=\"4\" x=\"8\" y=\"5\" />\n <rect height=\"4\" rx=\"0.5\" stroke=\"currentColor\" width=\"4\" x=\"5\" y=\"11\" />\n <rect height=\"4\" rx=\"0.5\" stroke=\"currentColor\" width=\"4\" x=\"11\" y=\"11\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const InlineBlocksIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.33333 6.5C5.11232 6.5 4.90036 6.5878 4.74408 6.74408C4.5878 6.90036 4.5 7.11232 4.5 7.33333V12.1667C4.5 12.3877 4.5878 12.5996 4.74408 12.7559C4.90036 12.9122 5.11232 13 5.33333 13H14.6667C14.8877 13 15.0996 12.9122 15.2559 12.7559C15.4122 12.5996 15.5 12.3877 15.5 12.1667V11.6667C15.5 11.3905 15.7239 11.1667 16 11.1667C16.2761 11.1667 16.5 11.3905 16.5 11.6667V12.1667C16.5 12.6529 16.3068 13.1192 15.963 13.463C15.6192 13.8068 15.1529 14 14.6667 14H5.33333C4.8471 14 4.38079 13.8068 4.03697 13.463C3.69315 13.1192 3.5 12.6529 3.5 12.1667V7.33333C3.5 6.8471 3.69315 6.38079 4.03697 6.03697C4.38079 5.69315 4.8471 5.5 5.33333 5.5H10.3333C10.6095 5.5 10.8333 5.72386 10.8333 6C10.8333 6.27614 10.6095 6.5 10.3333 6.5H5.33333ZM13 6.5C12.7239 6.5 12.5 6.27614 12.5 6C12.5 5.72386 12.7239 5.5 13 5.5H16C16.2761 5.5 16.5 5.72386 16.5 6V9C16.5 9.27614 16.2761 9.5 16 9.5C15.7239 9.5 15.5 9.27614 15.5 9V7.20711L13.3536 9.35355C13.1583 9.54882 12.8417 9.54882 12.6464 9.35355C12.4512 9.15829 12.4512 8.84171 12.6464 8.64645L14.7929 6.5H13ZM6.16699 8.33325C6.16699 8.05711 6.39085 7.83325 6.66699 7.83325H11.0003C11.2765 7.83325 11.5003 8.05711 11.5003 8.33325C11.5003 8.60939 11.2765 8.83325 11.0003 8.83325H6.66699C6.39085 8.83325 6.16699 8.60939 6.16699 8.33325ZM6.16699 10.9999C6.16699 10.7238 6.39085 10.4999 6.66699 10.4999H13.3337C13.6098 10.4999 13.8337 10.7238 13.8337 10.9999C13.8337 11.2761 13.6098 11.4999 13.3337 11.4999H6.66699C6.39085 11.4999 6.16699 11.2761 6.16699 10.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n)\n", "import React from 'react'\n\nimport { BlockIcon } from '../../../lexical/ui/icons/Block/index.js'\n\nexport function getBlockImageComponent(imageURL?: string, imageAltText?: string) {\n if (!imageURL) {\n return BlockIcon\n }\n\n return () => (\n <img\n alt={imageAltText ?? 'Block Image'}\n className=\"lexical-block-custom-image\"\n src={imageURL}\n style={{ maxHeight: 20, maxWidth: 20 }}\n />\n )\n}\n", "import type { ClientBlock } from 'payload'\n\nimport {\n $parseSerializedNode,\n type ElementNode,\n type Klass,\n type LexicalNode,\n type LexicalNodeReplacement,\n type SerializedLexicalNode,\n} from 'lexical'\n\nimport type { Transformer } from '../../../../packages/@lexical/markdown/index.js'\nimport type {\n MultilineElementTransformer,\n TextMatchTransformer,\n} from '../../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nimport { extractPropsFromJSXPropsString } from '../../../../utilities/jsx/extractPropsFromJSXPropsString.js'\nimport { propsToJSXString } from '../../../../utilities/jsx/jsx.js'\nimport { linesFromStartToContentAndPropsString } from '../../server/markdown/linesFromMatchToContentAndPropsString.js'\nimport { $createBlockNode, $isBlockNode, BlockNode } from '../nodes/BlocksNode.js'\nimport {\n $createInlineBlockNode,\n $isInlineBlockNode,\n InlineBlockNode,\n} from '../nodes/InlineBlocksNode.js'\nimport { getLexicalToMarkdown } from './getLexicalToMarkdown.js'\nimport { getMarkdownToLexical } from './getMarkdownToLexical.js'\n\nfunction createTagRegexes(tagName: string) {\n const escapedTagName = tagName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n return {\n regExpEnd: new RegExp(`</(${escapedTagName})\\\\s*>|<${escapedTagName}[^>]*?/>`, 'i'),\n regExpStart: new RegExp(`<(${escapedTagName})([^>]*?)\\\\s*(/?)>`, 'i'),\n }\n}\nexport const getBlockMarkdownTransformers = ({\n blocks,\n inlineBlocks,\n}: {\n blocks: ClientBlock[]\n inlineBlocks: ClientBlock[]\n}): ((props: {\n allNodes: Array<Klass<LexicalNode> | LexicalNodeReplacement>\n allTransformers: Transformer[]\n}) => MultilineElementTransformer | TextMatchTransformer)[] => {\n if (!blocks?.length && !inlineBlocks?.length) {\n return []\n }\n let transformers: ((props: {\n allNodes: Array<Klass<LexicalNode> | LexicalNodeReplacement>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer)[] = []\n\n if (blocks?.length) {\n for (const block of blocks) {\n const transformer = getMarkdownTransformerForBlock(block, false)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n if (inlineBlocks?.length) {\n for (const block of inlineBlocks) {\n const transformer = getMarkdownTransformerForBlock(block, true)\n\n if (transformer) {\n transformers = transformers.concat(transformer)\n }\n }\n }\n\n return transformers\n}\n\nfunction getMarkdownTransformerForBlock(\n block: ClientBlock,\n isInlineBlock: boolean,\n): Array<\n (props: {\n allNodes: Array<Klass<LexicalNode> | LexicalNodeReplacement>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n> | null {\n if (!block.jsx) {\n return null\n }\n const regex = createTagRegexes(block.slug)\n const toReturn: Array<\n (props: {\n allNodes: Array<Klass<LexicalNode> | LexicalNodeReplacement>\n allTransformers: Transformer[]\n }) => MultilineElementTransformer | TextMatchTransformer\n > = []\n\n if (isInlineBlock) {\n toReturn.push(({ allNodes, allTransformers }) => ({\n type: 'text-match',\n dependencies: [InlineBlockNode],\n export: (node) => {\n if (!$isInlineBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(allNodes, allTransformers)\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>${exportResult.children}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n getEndIndex: (node, match) => {\n const { endlineLastCharIndex } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: match,\n trimChildren: false,\n })\n\n return endlineLastCharIndex\n },\n importRegExp: block.jsx?.customStartRegex ?? regex.regExpStart,\n regExp: /___ignoreignoreignore___/g,\n replace(node, match) {\n const { content, propsString } = linesFromStartToContentAndPropsString({\n isEndOptional: false,\n lines: [node.getTextContent()],\n regexpEndRegex: regex.regExpEnd,\n startLineIndex: 0,\n startMatch: {\n ...match,\n index: 0,\n },\n trimChildren: false,\n })\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return\n }\n\n const markdownToLexical = getMarkdownToLexical(allNodes, allTransformers)\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: match,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return\n }\n\n const inlineBlockNode = $createInlineBlockNode({\n blockType: block.slug,\n ...(blockFields as any),\n })\n\n node.replace(inlineBlockNode)\n },\n }))\n\n return toReturn\n }\n\n toReturn.push(({ allNodes, allTransformers }) => ({\n dependencies: [BlockNode],\n export: (node) => {\n if (!$isBlockNode(node)) {\n return null\n }\n\n if (node.getFields()?.blockType?.toLowerCase() !== block.slug.toLowerCase()) {\n return null\n }\n\n const nodeFields = node.getFields()\n const lexicalToMarkdown = getLexicalToMarkdown(allNodes, allTransformers)\n\n const exportResult = block.jsx!.export({\n fields: nodeFields,\n lexicalToMarkdown,\n })\n if (exportResult === false) {\n return null\n }\n if (typeof exportResult === 'string') {\n return exportResult\n }\n\n const hasProps = exportResult.props && Object.keys(exportResult.props)?.length > 0\n const props = exportResult.props ?? {}\n\n if (exportResult?.children?.length) {\n const children = exportResult.children\n let sanitizedChildren = ''\n\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (children.includes('\\n')) {\n for (const child of children.split('\\n')) {\n let sanitizedChild = ''\n if (!block?.jsx?.doNotTrimChildren && child !== '') {\n sanitizedChild = ' '\n }\n sanitizedChild += child + '\\n'\n\n sanitizedChildren += sanitizedChild\n }\n } else {\n sanitizedChildren = (block?.jsx?.doNotTrimChildren ? '' : ' ') + children + '\\n'\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}>\\n${sanitizedChildren}</${nodeFields.blockType}>`\n }\n\n return `<${nodeFields.blockType}${hasProps ? ' ' + propsToJSXString({ props }) : ''}/>`\n },\n handleImportAfterStartMatch: block.jsx?.customEndRegex\n ? undefined\n : ({ lines, rootNode, startLineIndex, startMatch, transformer }) => {\n const regexpEndRegex: RegExp | undefined =\n typeof transformer.regExpEnd === 'object' && 'regExp' in transformer.regExpEnd\n ? transformer.regExpEnd.regExp\n : transformer.regExpEnd\n\n const isEndOptional =\n transformer.regExpEnd &&\n typeof transformer.regExpEnd === 'object' &&\n 'optional' in transformer.regExpEnd\n ? transformer.regExpEnd.optional\n : !transformer.regExpEnd\n\n const {\n afterEndLine,\n beforeStartLine,\n content: unsanitizedContent,\n endLineIndex,\n propsString,\n } = linesFromStartToContentAndPropsString({\n isEndOptional,\n lines,\n regexpEndRegex,\n startLineIndex,\n startMatch,\n trimChildren: false,\n })\n\n let content = ''\n\n if (block?.jsx?.doNotTrimChildren) {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n } else {\n // Ensure it has a leftpad of at least 2 spaces. The data is saved without those spaces, so we can just blindly add it to every child\n if (unsanitizedContent.includes('\\n')) {\n const split = unsanitizedContent.split('\\n')\n let index = 0\n for (const child of split) {\n index++\n\n if (child.startsWith(' ')) {\n content += child.slice(2)\n } else {\n // If one child is misaligned, skip aligning completely, unless it's just empty\n if (child === '') {\n content += child\n } else {\n content = unsanitizedContent.endsWith('\\n')\n ? unsanitizedContent.slice(0, -1)\n : unsanitizedContent\n break\n }\n }\n\n content += index === split.length ? '' : '\\n'\n }\n } else {\n content =\n (!unsanitizedContent.startsWith(' ')\n ? unsanitizedContent\n : unsanitizedContent.slice(2)) + '\\n'\n }\n }\n\n if (!block?.jsx?.import) {\n // No multiline transformer handled this line successfully\n return [false, startLineIndex]\n }\n\n const markdownToLexical = getMarkdownToLexical(allNodes, allTransformers)\n\n const blockFields = block.jsx.import({\n children: content,\n closeMatch: null,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: startMatch,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return [false, startLineIndex]\n }\n\n const node = $createBlockNode({\n blockType: block.slug,\n ...blockFields,\n } as any)\n\n if (node) {\n // Now handle beforeStartLine and afterEndLine. If those are not empty, we need to add them as text nodes before and after the block node.\n // However, those themselves can contain other markdown matches, so we need to parse them as well.\n // Example where this is needed: \"Hello <InlineCode>inline code</InlineCode> test.\"\n let prevNodes: null | SerializedLexicalNode[] = null\n let nextNodes: null | SerializedLexicalNode[] = null\n // TODO: Might not need this prevNodes and nextNodes handling if inline nodes are handled by textmatch transformers\n\n if (beforeStartLine?.length) {\n prevNodes = markdownToLexical({ markdown: beforeStartLine })?.root?.children ?? []\n\n const firstPrevNode = prevNodes?.[0]\n if (firstPrevNode) {\n rootNode.append($parseSerializedNode(firstPrevNode))\n }\n }\n\n rootNode.append(node)\n\n if (afterEndLine?.length) {\n nextNodes = markdownToLexical({ markdown: afterEndLine })?.root?.children\n const lastChild = rootNode.getChildren()[rootNode.getChildren().length - 1]\n\n const children = ($parseSerializedNode(nextNodes[0]!) as ElementNode)?.getChildren()\n if (children?.length) {\n for (const child of children) {\n ;(lastChild as ElementNode).append(child)\n }\n }\n }\n }\n\n return [true, endLineIndex]\n },\n regExpEnd: block.jsx?.customEndRegex ?? regex.regExpEnd,\n regExpStart: block.jsx?.customStartRegex ?? regex.regExpStart,\n // This replace is ONLY run for ``` code blocks (so any blocks with custom start and end regexes). For others, we use the special JSX handling above:\n type: 'multiline-element',\n replace: (rootNode, children, openMatch, closeMatch, linesInBetween) => {\n if (block?.jsx?.import) {\n if (!linesInBetween) {\n // convert children to linesInBetween\n let line = ''\n if (children) {\n for (const child of children) {\n line += child.getTextContent()\n }\n }\n\n linesInBetween = [line]\n }\n\n let childrenString = ''\n if (block?.jsx?.doNotTrimChildren) {\n childrenString = linesInBetween.join('\\n')\n } else {\n childrenString = linesInBetween.join('\\n').trim()\n }\n\n const propsString = openMatch[1]?.trim()\n\n const markdownToLexical = getMarkdownToLexical(allNodes, allTransformers)\n\n const blockFields = block.jsx.import({\n children: childrenString,\n closeMatch: closeMatch as RegExpMatchArray,\n htmlToLexical: null, // TODO\n markdownToLexical,\n openMatch: openMatch as RegExpMatchArray,\n props: propsString\n ? extractPropsFromJSXPropsString({\n propsString,\n })\n : {},\n })\n if (blockFields === false) {\n return false\n }\n\n const node = $createBlockNode({\n blockType: block.slug,\n ...blockFields,\n } as any)\n\n if (node) {\n rootNode.append(node)\n }\n\n return\n }\n return false // Run next transformer\n },\n }))\n\n return toReturn\n}\n", "import { JSOX } from 'jsox'\n\n/**\n * Turns a JSX props string into an object.\n *\n * @example\n *\n * Input: type=\"info\" hello={{heyyy: 'test', someNumber: 2}}\n * Output: { type: 'info', hello: { heyyy: 'test', someNumber: 2 } }\n */\nexport function extractPropsFromJSXPropsString({\n propsString,\n}: {\n propsString: string\n}): Record<string, any> {\n const props: Record<string, any> = {}\n let key = ''\n let collectingKey = true\n\n for (let i = 0; i < propsString.length; i++) {\n const char = propsString[i]\n\n if (collectingKey) {\n if (char === '=' || char === ' ') {\n if (key) {\n if (char === ' ') {\n props[key] = true\n key = ''\n } else {\n collectingKey = false\n }\n }\n } else {\n key += char\n }\n } else {\n const result = handleValue(propsString, i)\n props[key] = result.value\n i = result.newIndex\n key = ''\n collectingKey = true\n }\n }\n\n if (key) {\n props[key] = true\n }\n\n return props\n}\n\nfunction handleValue(propsString: string, startIndex: number): { newIndex: number; value: any } {\n const char = propsString[startIndex]\n\n if (char === '\"') {\n return handleQuotedString(propsString, startIndex)\n } else if (char === \"'\") {\n return handleQuotedString(propsString, startIndex, true)\n } else if (char === '{') {\n return handleObject(propsString, startIndex)\n } else if (char === '[') {\n return handleArray(propsString, startIndex)\n } else {\n return handleUnquotedString(propsString, startIndex)\n }\n}\n\nfunction handleArray(propsString: string, startIndex: number): { newIndex: number; value: any } {\n let bracketCount = 1\n let value = ''\n let i = startIndex + 1\n\n while (i < propsString.length && bracketCount > 0) {\n if (propsString[i] === '[') {\n bracketCount++\n } else if (propsString[i] === ']') {\n bracketCount--\n }\n if (bracketCount > 0) {\n value += propsString[i]\n }\n i++\n }\n\n return { newIndex: i, value: JSOX.parse(`[${value}]`) }\n}\n\nfunction handleQuotedString(\n propsString: string,\n startIndex: number,\n isSingleQuoted = false,\n): { newIndex: number; value: string } {\n let value = ''\n let i = startIndex + 1\n while (\n i < propsString.length &&\n (propsString[i] !== (isSingleQuoted ? \"'\" : '\"') || propsString[i - 1] === '\\\\')\n ) {\n value += propsString[i]\n i++\n }\n return { newIndex: i, value }\n}\n\nfunction handleObject(propsString: string, startIndex: number): { newIndex: number; value: any } {\n let bracketCount = 1\n let value = ''\n let i = startIndex + 1\n\n while (i < propsString.length && bracketCount > 0) {\n if (propsString[i] === '{') {\n bracketCount++\n } else if (propsString[i] === '}') {\n bracketCount--\n }\n if (bracketCount > 0) {\n value += propsString[i]\n }\n i++\n }\n\n return { newIndex: i, value: parseObject(value) }\n}\n\nfunction parseObject(objString: string): Record<string, any> {\n if (objString[0] !== '{') {\n return JSOX.parse(objString)\n }\n\n const result = JSOX.parse(objString.replace(/(\\w+):/g, '\"$1\":'))\n\n return result\n}\n\nfunction handleUnquotedString(\n propsString: string,\n startIndex: number,\n): { newIndex: number; value: string } {\n let value = ''\n let i = startIndex\n while (i < propsString.length && propsString[i] !== ' ') {\n value += propsString[i]\n i++\n }\n return { newIndex: i - 1, value }\n}\n", "/**\n * Converts an object of props to a JSX props string.\n *\n * This function is the inverse of `extractPropsFromJSXPropsString`.\n */\nexport function propsToJSXString({ props }: { props: Record<string, any> }): string {\n const propsArray: string[] = []\n\n for (const [key, value] of Object.entries(props)) {\n if (typeof value === 'string') {\n // Handle simple string props\n propsArray.push(`${key}=\"${escapeQuotes(value)}\"`)\n } else if (typeof value === 'number') {\n // Handle number and boolean props\n propsArray.push(`${key}={${value}}`)\n } else if (typeof value === 'boolean') {\n if (value) {\n propsArray.push(`${key}`)\n }\n } else if (value !== null && typeof value === 'object') {\n if (Array.isArray(value)) {\n // Handle array props\n propsArray.push(`${key}={[${value.map((v) => JSON.stringify(v, replacer)).join(', ')}]}`)\n } else {\n // Handle complex object props\n propsArray.push(`${key}={${JSON.stringify(value, replacer)}}`)\n }\n }\n }\n\n return propsArray.join(' ')\n}\n\n// Helper function to escape quotes in string values\nfunction escapeQuotes(str: string): string {\n return str.replace(/\"/g, '&quot;')\n}\n\n// Custom replacer function for JSON.stringify to handle single quotes\nfunction replacer(key: string, value: any): any {\n if (typeof value === 'string') {\n return value.replace(/'/g, \"\\\\'\")\n }\n return value\n}\n\n/**\n * Converts a frontmatter string to an object.\n */\nexport function frontmatterToObject(frontmatter: string): Record<string, any> {\n const lines = frontmatter.trim().split('\\n')\n const result = {}\n let inFrontmatter = false\n\n for (const line of lines) {\n if (line.trim() === '---') {\n inFrontmatter = !inFrontmatter\n continue\n }\n\n if (inFrontmatter) {\n const [key, ...valueParts] = line.split(':')\n const value = valueParts.join(':').trim()\n\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n result[key.trim()] = value\n }\n }\n\n return result\n}\n\n/**\n * Converts an object to a frontmatter string.\n */\nexport function objectToFrontmatter(obj: Record<string, any>): null | string {\n if (!Object.entries(obj)?.length) {\n return null\n }\n let frontmatter = '---\\n'\n\n for (const [key, value] of Object.entries(obj)) {\n if (Array.isArray(value)) {\n frontmatter += `${key}: ${value.join(', ')}\\n`\n } else {\n frontmatter += `${key}: ${value}\\n`\n }\n }\n\n frontmatter += '---\\n'\n return frontmatter\n}\n\n/**\n * Takes an MDX content string and extracts the frontmatter and content.\n *\n * The resulting object contains the mdx content without the frontmatter and the frontmatter itself.\n */\nexport function extractFrontmatter(mdxContent: string) {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n const frontmatterRegex = /^---\\s*\\n[\\s\\S]*?\\n---\\s*\\n/\n const match = mdxContent.match(frontmatterRegex)\n\n if (match) {\n const frontmatter = match[0]\n const contentWithoutFrontmatter = mdxContent.slice(frontmatter.length).trim()\n return {\n content: contentWithoutFrontmatter,\n frontmatter: frontmatter.trim(),\n }\n } else {\n // If no frontmatter is found, return the original content\n return {\n content: mdxContent.trim(),\n frontmatter: '',\n }\n }\n}\n", "export function linesFromStartToContentAndPropsString({\n isEndOptional,\n lines,\n regexpEndRegex,\n startLineIndex,\n startMatch,\n trimChildren,\n}: {\n isEndOptional?: boolean\n lines: string[]\n regexpEndRegex?: RegExp\n startLineIndex: number\n startMatch: RegExpMatchArray\n trimChildren?: boolean\n}): {\n /**\n * The matched string after the end match, in the same line as the end match. Useful for inline matches.\n */\n afterEndLine: string\n /**\n * The matched string before the start match, in the same line as the start match. Useful for inline matches.\n */\n beforeStartLine: string\n content: string\n endLineIndex: number\n endlineLastCharIndex: number\n propsString: string\n} {\n let propsString = ''\n let content = ''\n const linesCopy = lines.slice(startLineIndex)\n\n let isWithinContent = false // If false => is within prop\n let contentSubTagStartAmount = 0\n\n let bracketCount = 0\n let quoteChar: null | string = null\n let isSelfClosing = false\n let isWithinCodeBlockAmount = 0\n\n const beforeStartLine = linesCopy[0]!.slice(0, startMatch.index)\n let endlineLastCharIndex = 0\n\n let endLineIndex = startLineIndex\n\n mainLoop: for (const [lineIndex, lineCopy] of linesCopy.entries()) {\n const line = trimChildren ? lineCopy.trim() : lineCopy\n let amountOfBeginningSpacesRemoved = 0\n if (trimChildren) {\n for (let i = 0; i < lineCopy.length; i++) {\n if (lineCopy[i] === ' ') {\n amountOfBeginningSpacesRemoved++\n } else {\n break\n }\n }\n }\n\n let charIndex = 0\n\n if (lineIndex === 0) {\n charIndex = (startMatch.index ?? 0) + startMatch[0].length - amountOfBeginningSpacesRemoved // We need to also loop over the \">\" in something like \"<InlineCode>\" in order to later set isWithinContent to true\n }\n\n while (charIndex < line.length) {\n const char = line[charIndex]\n const nextChar = line[charIndex + 1]\n\n if (!isWithinContent) {\n if (char === '{' && !quoteChar) {\n bracketCount++\n } else if (char === '}' && !quoteChar) {\n bracketCount--\n } else if ((char === '\"' || char === \"'\") && !quoteChar) {\n quoteChar = char\n } else if (char === quoteChar) {\n quoteChar = null\n }\n\n if (char === '/' && nextChar === '>' && bracketCount === 0 && !quoteChar) {\n isSelfClosing = true\n endLineIndex = lineIndex\n endlineLastCharIndex = charIndex + 2\n\n break mainLoop\n } else if (char === '>' && bracketCount === 0 && !quoteChar) {\n isWithinContent = true\n charIndex++\n continue\n }\n\n propsString += char\n } else {\n if (char === '`') {\n isWithinCodeBlockAmount++\n }\n\n if (isWithinCodeBlockAmount % 2 === 0) {\n if (char === '<' && nextChar === '/') {\n contentSubTagStartAmount--\n\n if (contentSubTagStartAmount < 0) {\n if (content[content.length - 1] === '\\n') {\n content = content.slice(0, -1) // Remove the last newline\n }\n endLineIndex = lineIndex\n // Calculate endlineLastCharIndex by finding \">\" in line\n for (let i = charIndex; i < line.length; i++) {\n if (line[i] === '>') {\n endlineLastCharIndex = i + 1\n\n break\n }\n }\n break mainLoop\n }\n } else if (char === '/' && nextChar === '>') {\n contentSubTagStartAmount--\n\n if (contentSubTagStartAmount < 0) {\n if (content[content.length - 1] === '\\n') {\n content = content.slice(0, -1) // Remove the last newline\n }\n endLineIndex = lineIndex\n endlineLastCharIndex = charIndex + 2\n break mainLoop\n }\n } else if (char === '<' && nextChar !== '/') {\n contentSubTagStartAmount++\n }\n }\n\n content += char\n }\n\n charIndex++\n }\n\n if (isWithinContent) {\n if (content?.length > 0 && lineIndex > 0) {\n content += '\\n'\n }\n } else {\n propsString += '\\n'\n }\n\n if (regexpEndRegex && contentSubTagStartAmount < 0) {\n // If 0 and in same line where it got lowered to 0 then this is not the match we are looking for\n const match = line.match(regexpEndRegex)\n if (match?.index !== undefined) {\n endLineIndex = lineIndex\n endlineLastCharIndex = match.index + match[0].length - 1\n break\n }\n }\n\n if (lineIndex === linesCopy.length - 1 && !isEndOptional && !isSelfClosing) {\n throw new Error(\n 'End match not found for lines ' +\n lines.join('\\n') +\n '\\n\\n. Start match: ' +\n JSON.stringify(startMatch),\n )\n }\n }\n\n const afterEndLine = linesCopy[endLineIndex]!.trim().slice(endlineLastCharIndex)\n\n return {\n afterEndLine,\n beforeStartLine,\n content,\n endLineIndex: startLineIndex + endLineIndex,\n endlineLastCharIndex,\n propsString,\n }\n}\n", "'use client'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n type EditorConfig,\n type LexicalEditor,\n type LexicalNode,\n} from 'lexical'\nimport React, { type JSX } from 'react'\n\nimport type { BlockFieldsOptionalID, SerializedBlockNode } from '../../server/nodes/BlocksNode.js'\n\nimport { ServerBlockNode } from '../../server/nodes/BlocksNode.js'\nimport { BlockComponent } from '../component/index.js'\n\nexport class BlockNode extends ServerBlockNode {\n static override clone(node: ServerBlockNode): ServerBlockNode {\n return super.clone(node)\n }\n\n static override getType(): string {\n return super.getType()\n }\n\n static override importJSON(serializedNode: SerializedBlockNode): BlockNode {\n if (serializedNode.version === 1) {\n // Convert (version 1 had the fields wrapped in another, unnecessary data property)\n serializedNode = {\n ...serializedNode,\n fields: {\n ...(serializedNode as any).fields.data,\n },\n version: 2,\n }\n }\n const node = $createBlockNode(serializedNode.fields)\n node.setFormat(serializedNode.format)\n return node\n }\n\n override decorate(_editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return (\n <BlockComponent\n cacheBuster={this.getCacheBuster()}\n className={config.theme.block ?? 'LexicalEditorTheme__block'}\n formData={this.getFields()}\n nodeKey={this.getKey()}\n />\n )\n }\n\n override exportJSON(): SerializedBlockNode {\n return super.exportJSON()\n }\n}\n\nexport function $createBlockNode(fields: BlockFieldsOptionalID): BlockNode {\n return $applyNodeReplacement(\n new BlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n }),\n )\n}\n\nexport function $isBlockNode(node: BlockNode | LexicalNode | null | undefined): node is BlockNode {\n return node instanceof BlockNode\n}\n", "import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type { JsonObject } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport { addClassNamesToElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n type DOMConversionMap,\n type DOMExportOutput,\n type EditorConfig,\n type ElementFormatType,\n type LexicalEditor,\n type LexicalNode,\n type NodeKey,\n} from 'lexical'\n\nimport type { StronglyTypedLeafNode } from '../../../../nodeTypes.js'\n\ntype BaseBlockFields<TBlockFields extends JsonObject = JsonObject> = {\n /** Block form data */\n blockName: string\n blockType: string\n} & TBlockFields\n\nexport type BlockFields<TBlockFields extends JsonObject = JsonObject> = {\n id: string\n} & BaseBlockFields<TBlockFields>\n\nexport type BlockFieldsOptionalID<TBlockFields extends JsonObject = JsonObject> = {\n id?: string\n} & BaseBlockFields<TBlockFields>\n\nexport type SerializedBlockNode<TBlockFields extends JsonObject = JsonObject> = {\n fields: BlockFields<TBlockFields>\n} & StronglyTypedLeafNode<SerializedDecoratorBlockNode, 'block'>\n\nexport class ServerBlockNode extends DecoratorBlockNode {\n __cacheBuster: number\n __fields: BlockFields\n\n constructor({\n cacheBuster,\n fields,\n format,\n key,\n }: {\n cacheBuster?: number\n fields: BlockFields\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__fields = fields\n this.__cacheBuster = cacheBuster || 0\n }\n\n static override clone(node: ServerBlockNode): ServerBlockNode {\n return new this({\n cacheBuster: node.__cacheBuster,\n fields: node.__fields,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'block'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static override importJSON(serializedNode: SerializedBlockNode): ServerBlockNode {\n if (serializedNode.version === 1) {\n // Convert (version 1 had the fields wrapped in another, unnecessary data property)\n serializedNode = {\n ...serializedNode,\n fields: {\n ...(serializedNode as any).fields.data,\n },\n version: 2,\n }\n }\n const node = $createServerBlockNode(serializedNode.fields)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('div')\n addClassNamesToElement(element, config?.theme?.block)\n return element\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return null as unknown as JSX.Element\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedBlockNode {\n return {\n ...super.exportJSON(),\n type: 'block',\n fields: this.getFields(),\n version: 2,\n }\n }\n\n getCacheBuster(): number {\n return this.getLatest().__cacheBuster\n }\n\n getFields(): BlockFields {\n return this.getLatest().__fields\n }\n\n override getTextContent(): string {\n return `Block Field`\n }\n\n setFields(fields: BlockFields, preventFormStateUpdate?: boolean): void {\n const writable = this.getWritable()\n writable.__fields = fields\n if (!preventFormStateUpdate) {\n writable.__cacheBuster++\n }\n }\n}\n\nexport function $createServerBlockNode(fields: BlockFieldsOptionalID): ServerBlockNode {\n return $applyNodeReplacement(\n new ServerBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n }),\n )\n}\n\nexport function $isServerBlockNode(\n node: LexicalNode | null | ServerBlockNode | undefined,\n): node is ServerBlockNode {\n return node instanceof ServerBlockNode\n}\n", "'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n Collapsible,\n Drawer,\n EditDepthProvider,\n ErrorPill,\n Form,\n formatDrawerSlug,\n FormSubmit,\n Pill,\n RenderFields,\n SectionTitle,\n useConfig,\n useDocumentForm,\n useDocumentInfo,\n useEditDepth,\n useFormSubmitted,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport { $getNodeByKey } from 'lexical'\nimport {\n type BlocksFieldClient,\n type ClientBlock,\n type CollapsedPreferences,\n type FormState,\n} from 'payload'\nimport { deepCopyObjectSimpleWithoutReactComponents, reduceFieldsToValues } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react'\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 './index.scss'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isBlockNode } from '../nodes/BlocksNode.js'\nimport { type BlockCollapsibleWithErrorProps, BlockContent } from './BlockContent.js'\nimport { removeEmptyArrayValues } from './removeEmptyArrayValues.js'\n\ntype Props = {\n /**\n * Can be modified by the node in order to trigger the re-fetch of the initial state based on the\n * formData. This is useful when node.setFields() is explicitly called from outside of the form - in\n * this case, the new field state is likely not reflected in the form state, so we need to re-fetch\n */\n readonly cacheBuster: number\n readonly className: string\n readonly formData: BlockFields\n readonly nodeKey: string\n}\n\nexport const BlockComponent: React.FC<Props> = (props) => {\n const { cacheBuster, className: baseClass, formData, nodeKey } = props\n const submitted = useFormSubmitted()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const {\n fieldProps: {\n featureClientSchemaMap,\n field: parentLexicalRichTextField,\n initialLexicalFormState,\n schemaPath,\n },\n uuid: uuidFromContext,\n } = useEditorConfigContext()\n\n const { fields: parentDocumentFields } = useDocumentForm()\n const onChangeAbortControllerRef = useRef(new AbortController())\n const editDepth = useEditDepth()\n const [errorCount, setErrorCount] = React.useState(0)\n\n const { config } = useConfig()\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-blocks-create-${uuidFromContext}-${formData.id}`,\n depth: editDepth,\n })\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\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 const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n const blockType = formData.blockType\n\n const { getFormState } = useServerFunctions()\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockType}.fields`\n\n const [initialState, setInitialState] = React.useState<false | FormState | undefined>(() => {\n // Initial form state that was calculated server-side. May have stale values\n const cachedFormState = initialLexicalFormState?.[formData.id]?.formState\n if (!cachedFormState) {\n return false\n }\n\n // Merge current formData values into the cached form state\n // This ensures that when the component remounts (e.g., due to view changes), we don't lose user edits\n const mergedState = Object.fromEntries(\n Object.entries(cachedFormState).map(([fieldName, fieldState]) => [\n fieldName,\n fieldName in formData\n ? {\n ...fieldState,\n initialValue: formData[fieldName],\n value: formData[fieldName],\n }\n : fieldState,\n ]),\n )\n\n // Manually add blockName, as it's not part of cachedFormState\n mergedState.blockName = {\n initialValue: formData.blockName,\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n return mergedState\n })\n\n const hasMounted = useRef(false)\n const prevCacheBuster = useRef(cacheBuster)\n useEffect(() => {\n if (hasMounted.current) {\n if (prevCacheBuster.current !== cacheBuster) {\n setInitialState(false)\n }\n prevCacheBuster.current = cacheBuster\n } else {\n hasMounted.current = true\n }\n }, [cacheBuster])\n\n const [CustomLabel, setCustomLabel] = React.useState<React.ReactNode | undefined>(\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n initialState?.['_components']?.customComponents?.BlockLabel ?? undefined,\n )\n\n const [CustomBlock, setCustomBlock] = React.useState<React.ReactNode | undefined>(\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n initialState?.['_components']?.customComponents?.Block ?? undefined,\n )\n\n // Initial state for newly created blocks\n useEffect(() => {\n const abortController = new AbortController()\n\n const awaitInitialState = async () => {\n /*\n * This will only run if a new block is created. For all existing blocks that are loaded when the document is loaded, or when the form is saved,\n * this is not run, as the lexical field RSC will fetch the state server-side and pass it to the client. That way, we avoid unnecessary client-side\n * requests. Though for newly created blocks, we need to fetch the state client-side, as the server doesn't know about the block yet.\n */\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: formData,\n docPermissions: { fields: true },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n globalSlug,\n initialBlockData: formData,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: abortController.signal,\n })\n\n if (state) {\n state.blockName = {\n initialValue: formData.blockName,\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n const newFormStateData: BlockFields = reduceFieldsToValues(\n deepCopyObjectSimpleWithoutReactComponents(state, { excludeFiles: true }),\n true,\n ) as BlockFields\n\n // Things like default values may come back from the server => update the node with the new data\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isBlockNode(node)) {\n const newData = newFormStateData\n newData.blockType = blockType\n\n node.setFields(newData, true)\n }\n })\n\n setInitialState(state)\n setCustomLabel(state._components?.customComponents?.BlockLabel ?? undefined)\n setCustomBlock(state._components?.customComponents?.Block ?? undefined)\n }\n }\n\n if (formData && !initialState) {\n void awaitInitialState()\n }\n\n return () => {\n abortAndIgnore(abortController)\n }\n }, [\n getFormState,\n schemaFieldsPath,\n isEditable,\n id,\n formData,\n editor,\n nodeKey,\n initialState,\n collectionSlug,\n globalSlug,\n getDocPreferences,\n parentDocumentFields,\n blockType,\n ])\n\n const [isCollapsed, setIsCollapsed] = React.useState<boolean>(\n initialLexicalFormState?.[formData.id]?.collapsed ?? false,\n )\n\n const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockType}`\n\n const clientSchemaMap = featureClientSchemaMap['blocks']\n\n const blocksField: BlocksFieldClient | undefined = clientSchemaMap?.[\n componentMapRenderedBlockPath\n ]?.[0] as BlocksFieldClient\n\n const clientBlock: ClientBlock | undefined = blocksField.blockReferences\n ? typeof blocksField?.blockReferences?.[0] === 'string'\n ? config.blocksMap[blocksField?.blockReferences?.[0]]\n : blocksField?.blockReferences?.[0]\n : blocksField?.blocks?.[0]\n\n const { i18n, t } = useTranslation<object, string>()\n\n const onChange = useCallback(\n async ({ formState: prevFormState, submit }: { formState: FormState; submit?: boolean }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state: newFormState } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n formState: prevFormState,\n globalSlug,\n initialBlockFormState: prevFormState,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: submit ? true : false,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!newFormState) {\n return prevFormState\n }\n\n if (prevFormState.blockName) {\n newFormState.blockName = prevFormState.blockName\n }\n\n const newFormStateData: BlockFields = reduceFieldsToValues(\n removeEmptyArrayValues({\n fields: deepCopyObjectSimpleWithoutReactComponents(newFormState, { excludeFiles: true }),\n }),\n true,\n ) as BlockFields\n\n setTimeout(() => {\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isBlockNode(node)) {\n const newData = newFormStateData\n newData.blockType = blockType\n node.setFields(newData, true)\n }\n })\n }, 0)\n\n if (submit) {\n setCustomLabel(newFormState._components?.customComponents?.BlockLabel ?? undefined)\n setCustomBlock(newFormState._components?.customComponents?.Block ?? undefined)\n\n let rowErrorCount = 0\n for (const formField of Object.values(newFormState)) {\n if (formField?.valid === false) {\n rowErrorCount++\n }\n }\n setErrorCount(rowErrorCount)\n }\n\n return newFormState\n },\n\n [\n getFormState,\n id,\n collectionSlug,\n getDocPreferences,\n globalSlug,\n schemaFieldsPath,\n blockType,\n parentDocumentFields,\n isEditable,\n editor,\n nodeKey,\n ],\n )\n\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n const removeBlock = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n const onCollapsedChange = useCallback(\n (changedCollapsed: boolean) => {\n void getDocPreferences().then((currentDocPreferences) => {\n const currentFieldPreferences =\n currentDocPreferences?.fields?.[parentLexicalRichTextField.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(parentLexicalRichTextField.name, {\n collapsed: newCollapsed,\n hello: 'hi',\n })\n })\n },\n [getDocPreferences, parentLexicalRichTextField.name, setDocFieldPreferences, formData.id],\n )\n\n const EditButton = useMemo(\n () => () => (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__editButton`}\n disabled={!isEditable}\n el=\"button\"\n icon=\"edit\"\n onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n toggleDrawer()\n return false\n }}\n onMouseDown={(e) => {\n // Needed to preserve lexical selection for toggleDrawer lexical selection restore.\n // I believe this is needed due to this button (usually) being inside of a collapsible.\n e.preventDefault()\n }}\n round\n size=\"small\"\n tooltip={t('lexical:blocks:inlineBlocks:edit', { label: blockDisplayName })}\n />\n ),\n [baseClass, isEditable, t, blockDisplayName, toggleDrawer],\n )\n\n const RemoveButton = useMemo(\n () => () => (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={!isEditable}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeBlock()\n }}\n round\n tooltip=\"Remove Block\"\n />\n ),\n [baseClass, isEditable, removeBlock],\n )\n\n const BlockCollapsible = useMemo(\n () =>\n ({\n Actions,\n children,\n className,\n collapsibleProps,\n disableBlockName,\n editButton,\n errorCount,\n fieldHasErrors,\n Label,\n Pill: CustomPill,\n removeButton,\n }: BlockCollapsibleWithErrorProps) => {\n return (\n <div className={`${baseClass}__container ${baseClass}-${blockType}`}>\n <Collapsible\n className={[\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n header={\n <div className={`${baseClass}__block-header`}>\n {typeof Label !== 'undefined' ? (\n Label\n ) : typeof CustomLabel !== 'undefined' ? (\n CustomLabel\n ) : (\n <div className={`${baseClass}__block-label`}>\n {typeof CustomPill !== 'undefined' ? (\n CustomPill\n ) : (\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${blockType}`}\n pillStyle=\"white\"\n size=\"small\"\n >\n {blockDisplayName ?? blockType}\n </Pill>\n )}\n {!disableBlockName && !clientBlock?.admin?.disableBlockName && (\n <SectionTitle path=\"blockName\" readOnly={!isEditable} />\n )}\n\n {fieldHasErrors && (\n <ErrorPill count={errorCount ?? 0} i18n={i18n} withMessage />\n )}\n </div>\n )}\n\n <div className={`${baseClass}__block-actions`}>\n {typeof Actions !== 'undefined' ? (\n Actions\n ) : (\n <>\n {(CustomBlock && editButton !== false) || (!CustomBlock && editButton) ? (\n <EditButton />\n ) : null}\n {removeButton !== false && isEditable ? <RemoveButton /> : null}\n </>\n )}\n </div>\n </div>\n }\n isCollapsed={isCollapsed}\n key={0}\n onToggle={(incomingCollapsedState) => {\n onCollapsedChange(incomingCollapsedState)\n setIsCollapsed(incomingCollapsedState)\n }}\n {...(collapsibleProps || {})}\n >\n {children}\n </Collapsible>\n </div>\n )\n },\n [\n CustomBlock,\n CustomLabel,\n EditButton,\n RemoveButton,\n blockDisplayName,\n baseClass,\n clientBlock?.admin?.disableBlockName,\n blockType,\n i18n,\n isCollapsed,\n onCollapsedChange,\n isEditable,\n ],\n )\n\n const blockID = formData?.id\n\n const BlockDrawer = useMemo(\n () => () => (\n <EditDepthProvider>\n <Drawer\n className={''}\n slug={drawerSlug}\n title={t(`lexical:blocks:inlineBlocks:${blockID ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n >\n {initialState ? (\n <>\n <RenderFields\n fields={clientBlock?.fields ?? []}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={true}\n readOnly={!isEditable}\n />\n <FormSubmit programmaticSubmit={true}>{t('fields:saveChanges')}</FormSubmit>\n </>\n ) : null}\n </Drawer>\n </EditDepthProvider>\n ),\n [\n initialState,\n drawerSlug,\n blockID,\n blockDisplayName,\n t,\n isEditable,\n clientBlock?.fields,\n schemaFieldsPath,\n // DO NOT ADD FORMDATA HERE! Adding formData will kick you out of sub block editors while writing.\n ],\n )\n\n // Memoized Form JSX\n const Block = useMemo(() => {\n if (!initialState) {\n return null\n }\n return (\n <Form\n beforeSubmit={[\n async ({ formState }) => {\n // This is only called when form is submitted from drawer - usually only the case if the block has a custom Block component\n return await onChange({ formState, submit: true })\n },\n ]}\n el=\"div\"\n fields={clientBlock?.fields ?? []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={(formState, newData) => {\n // This is only called when form is submitted from drawer - usually only the case if the block has a custom Block component\n newData.blockType = blockType\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isBlockNode(node)) {\n node.setFields(newData as BlockFields, true)\n }\n })\n toggleDrawer()\n }}\n submitted={submitted}\n uuid={uuid()}\n >\n <BlockContent\n baseClass={baseClass}\n BlockDrawer={BlockDrawer}\n Collapsible={BlockCollapsible}\n CustomBlock={CustomBlock}\n EditButton={EditButton}\n errorCount={errorCount}\n formSchema={clientBlock?.fields ?? []}\n initialState={initialState}\n nodeKey={nodeKey}\n RemoveButton={RemoveButton}\n />\n </Form>\n )\n }, [\n BlockCollapsible,\n BlockDrawer,\n CustomBlock,\n blockType,\n RemoveButton,\n EditButton,\n baseClass,\n editor,\n errorCount,\n toggleDrawer,\n clientBlock?.fields,\n // DO NOT ADD FORMDATA HERE! Adding formData will kick you out of sub block editors while writing.\n initialState,\n nodeKey,\n onChange,\n submitted,\n ])\n\n if (!clientBlock) {\n return (\n <BlockCollapsible disableBlockName={true} fieldHasErrors={true}>\n <div className={`${baseClass}-not-found`}>\n Error: Block '{blockType}' not found in the config but exists in the lexical data\n </div>\n </BlockCollapsible>\n )\n }\n\n return Block\n}\n", "'use client'\nimport type { CollapsibleProps } from '@payloadcms/ui/elements/Collapsible'\nimport type { ClientField, FormState } from 'payload'\n\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { RenderFields, useFormSubmitted } from '@payloadcms/ui'\nimport React, { createContext, useMemo } from 'react'\n\nexport type BlockCollapsibleProps = {\n /**\n * Replace the top-right portion of the header that renders the Edit and Remove buttons with custom content.\n * If this property is provided, the `removeButton` and `editButton` properties are ignored.\n */\n Actions?: React.ReactNode\n children?: React.ReactNode\n /**\n * Additional className to the collapsible wrapper\n */\n className?: string\n /**\n * Props to pass to the underlying Collapsible component. You could use this to override the `Header` entirely, for example.\n */\n collapsibleProps?: Partial<CollapsibleProps>\n /**\n * Whether to disable rendering the block name field in the header Label\n * @default false\n */\n disableBlockName?: boolean\n /**\n * Whether to show the Edit button\n * If `Actions` is provided, this property is ignored.\n * @default true\n */\n editButton?: boolean\n /**\n * Replace the default Label component with a custom Label\n */\n Label?: React.ReactNode\n /**\n * Replace the default Pill component component that's rendered within the default Label component with a custom Pill.\n * This property has no effect if you provide a custom Label component via the `Label` property.\n */\n Pill?: React.ReactNode\n /**\n * Whether to show the Remove button\n * If `Actions` is provided, this property is ignored.\n * @default true\n */\n removeButton?: boolean\n}\n\nexport type BlockCollapsibleWithErrorProps = {\n errorCount?: number\n fieldHasErrors?: boolean\n} & BlockCollapsibleProps\n\nexport type BlockContentProps = {\n baseClass: string\n BlockDrawer: React.FC\n Collapsible: React.FC<BlockCollapsibleWithErrorProps>\n CustomBlock: React.ReactNode\n EditButton: React.FC\n errorCount: number\n formSchema: ClientField[]\n initialState: false | FormState | undefined\n\n nodeKey: string\n RemoveButton: React.FC\n}\n\ntype BlockComponentContextType = {\n BlockCollapsible: React.FC<BlockCollapsibleProps>\n} & Omit<BlockContentProps, 'Collapsible'>\n\nconst BlockComponentContext = createContext<BlockComponentContextType>({\n baseClass: 'LexicalEditorTheme__block',\n BlockCollapsible: () => null,\n BlockDrawer: () => null,\n CustomBlock: null,\n EditButton: () => null,\n errorCount: 0,\n formSchema: [],\n initialState: false,\n nodeKey: '',\n RemoveButton: () => null,\n})\n\nexport const useBlockComponentContext = () => React.use(BlockComponentContext)\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<BlockContentProps> = (props) => {\n const { Collapsible, ...contextProps } = props\n\n const { BlockDrawer, CustomBlock, errorCount, formSchema } = contextProps\n\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n const isEditable = useLexicalEditable()\n\n const CollapsibleWithErrorProps = useMemo(\n () => (props: BlockCollapsibleProps) => {\n const { children, ...rest } = props\n return (\n <Collapsible errorCount={errorCount} fieldHasErrors={fieldHasErrors} {...rest}>\n {children}\n </Collapsible>\n )\n },\n [Collapsible, fieldHasErrors, errorCount],\n )\n\n return CustomBlock ? (\n <BlockComponentContext\n value={{\n ...contextProps,\n BlockCollapsible: CollapsibleWithErrorProps,\n }}\n >\n {CustomBlock}\n <BlockDrawer />\n </BlockComponentContext>\n ) : (\n <CollapsibleWithErrorProps>\n <RenderFields\n fields={formSchema}\n forceRender={true}\n parentIndexPath=\"\"\n parentPath={''}\n parentSchemaPath=\"\"\n permissions={true}\n readOnly={!isEditable}\n />\n </CollapsibleWithErrorProps>\n )\n}\n", "'use client'\nimport 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", "import type { Klass, LexicalNode, LexicalNodeReplacement } from 'lexical'\n\nimport { createHeadlessEditor } from '@lexical/headless'\n\nimport {\n $convertToMarkdownString,\n type Transformer,\n} from '../../../../packages/@lexical/markdown/index.js'\n\nexport function getLexicalToMarkdown(\n allNodes: Array<Klass<LexicalNode> | LexicalNodeReplacement>,\n allTransformers: Transformer[],\n): (args: { editorState: Record<string, any> }) => string {\n const lexicalToMarkdown = ({ editorState }: { editorState: Record<string, any> }): string => {\n const headlessEditor = createHeadlessEditor({\n nodes: allNodes,\n })\n\n try {\n headlessEditor.setEditorState(headlessEditor.parseEditorState(editorState as any)) // This should commit the editor state immediately\n } catch (e) {\n console.error('getLexicalToMarkdown: ERROR parsing editor state', e)\n }\n\n let markdown: string = ''\n headlessEditor.getEditorState().read(() => {\n markdown = $convertToMarkdownString(allTransformers)\n })\n\n return markdown\n }\n return lexicalToMarkdown\n}\n", "import type { Klass, LexicalNode, LexicalNodeReplacement, SerializedEditorState } from 'lexical'\n\nimport { createHeadlessEditor } from '@lexical/headless'\n\nimport {\n $convertFromMarkdownString,\n type Transformer,\n} from '../../../../packages/@lexical/markdown/index.js'\n\nexport function getMarkdownToLexical(\n allNodes: Array<Klass<LexicalNode> | LexicalNodeReplacement>,\n allTransformers: Transformer[],\n): (args: { markdown: string }) => SerializedEditorState {\n const markdownToLexical = ({ markdown }: { markdown: string }): SerializedEditorState => {\n const headlessEditor = createHeadlessEditor({\n nodes: allNodes,\n })\n\n headlessEditor.update(\n () => {\n $convertFromMarkdownString(markdown, allTransformers)\n },\n { discrete: true },\n )\n\n const editorJSON = headlessEditor.getEditorState().toJSON()\n\n return editorJSON\n }\n return markdownToLexical\n}\n", "'use client'\nimport 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", "'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot, $wrapNodeInElement, mergeRegister } from '@lexical/utils'\nimport { formatDrawerSlug, useEditDepth } 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} from 'lexical'\nimport { useEffect, useState } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { BlockFields, BlockFieldsOptionalID } from '../../server/nodes/BlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $createBlockNode, BlockNode } from '../nodes/BlocksNode.js'\nimport { $createInlineBlockNode, $isInlineBlockNode } from '../nodes/InlineBlocksNode.js'\nimport { INSERT_BLOCK_COMMAND, INSERT_INLINE_BLOCK_COMMAND } from './commands.js'\n\nexport type InsertBlockPayload = BlockFieldsOptionalID\n\nexport const BlocksPlugin: PluginComponent = () => {\n const [editor] = useLexicalComposerContext()\n\n const [targetNodeKey, setTargetNodeKey] = useState<null | string>(null)\n\n const { setCreatedInlineBlock, 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\n // we need to get the focus node before inserting the block node, as $insertNodeToNearestRoot can change the focus node\n const { focus } = selection\n const focusNode = focus.getNode()\n // Insert blocks node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(blockNode)\n\n // Delete the node it it's an empty paragraph\n if ($isParagraphNode(focusNode) && !focusNode.__first) {\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 setCreatedInlineBlock?.(inlineBlockNode)\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 )\n }, [editor, setCreatedInlineBlock, targetNodeKey, toggleDrawer])\n\n return null\n}\n", "'use client'\nimport type { BaseSelection, LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $createParagraphNode, $createTextNode, $getRoot, getDOMSelection } from 'lexical'\nimport * as React from 'react'\nimport { type JSX, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport { IS_APPLE } from '../../../../../lexical/utils/environment.js'\nimport './index.scss'\n\nconst copy = (text: null | string) => {\n const textArea = document.createElement('textarea')\n textArea.value = text || ''\n textArea.style.position = 'absolute'\n textArea.style.opacity = '0'\n document.body?.appendChild(textArea)\n textArea.focus()\n textArea.select()\n try {\n const result = document.execCommand('copy')\n // eslint-disable-next-line no-console\n console.log(result)\n } catch (error) {\n console.error(error)\n }\n document.body?.removeChild(textArea)\n}\n\nconst download = (filename: string, text: null | string) => {\n const a = document.createElement('a')\n a.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text || ''))\n a.setAttribute('download', filename)\n a.style.display = 'none'\n document.body?.appendChild(a)\n a.click()\n document.body?.removeChild(a)\n}\n\nconst formatStep = (step: Step) => {\n const formatOneStep = (name: string, value: Step['value']) => {\n switch (name) {\n case 'click': {\n return ` await page.mouse.click(${value.x}, ${value.y});`\n }\n case 'keydown': {\n return ` await page.keyboard.keydown('${value}');`\n }\n case 'keyup': {\n return ` await page.keyboard.keyup('${value}');`\n }\n case 'press': {\n return ` await page.keyboard.press('${value}');`\n }\n case 'selectAll': {\n return ` await selectAll(page);`\n }\n case 'snapshot': {\n return ` await assertHTMLSnapshot(page);\n await assertSelection(page, {\n anchorPath: [${value.anchorPath.toString()}],\n anchorOffset: ${value.anchorOffset},\n focusPath: [${value.focusPath.toString()}],\n focusOffset: ${value.focusOffset},\n });\n`\n }\n case 'type': {\n return ` await page.keyboard.type('${value}');`\n }\n default:\n return ``\n }\n }\n const formattedStep = formatOneStep(step.name, step.value)\n switch (step.count) {\n case 1:\n return formattedStep\n case 2:\n return [formattedStep, formattedStep].join(`\\n`)\n default:\n return ` await repeat(${step.count}, async () => {\n ${formattedStep}\n );`\n }\n}\n\nexport function isSelectAll(event: KeyboardEvent): boolean {\n return event.key.toLowerCase() === 'a' && (IS_APPLE ? event.metaKey : event.ctrlKey)\n}\n\n// stolen from LexicalSelection-test\nfunction sanitizeSelection(selection: Selection) {\n const { anchorNode, focusNode } = selection\n let { anchorOffset, focusOffset } = selection\n if (anchorOffset !== 0) {\n anchorOffset--\n }\n if (focusOffset !== 0) {\n focusOffset--\n }\n return { anchorNode, anchorOffset, focusNode, focusOffset }\n}\n\nfunction getPathFromNodeToEditor(node: Node, rootElement: HTMLElement | null) {\n let currentNode: Node | null | undefined = node\n const path: number[] = []\n while (currentNode !== rootElement) {\n if (currentNode !== null && currentNode !== undefined) {\n path.unshift(\n Array.from(currentNode?.parentNode?.childNodes ?? []).indexOf(currentNode as ChildNode),\n )\n }\n currentNode = currentNode?.parentNode\n }\n return path\n}\n\nconst keyPresses = new Set([\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'Backspace',\n 'Delete',\n 'Enter',\n 'Escape',\n])\n\ntype Step = {\n count: number\n name: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any\n}\n\ntype Steps = Step[]\n\nfunction useTestRecorder(editor: LexicalEditor): [JSX.Element, JSX.Element | null] {\n const [steps, setSteps] = useState<Steps>([])\n const [isRecording, setIsRecording] = useState(false)\n const [, setCurrentInnerHTML] = useState('')\n const [templatedTest, setTemplatedTest] = useState('')\n const previousSelectionRef = useRef<BaseSelection | null>(null)\n const skipNextSelectionChangeRef = useRef(false)\n const preRef = useRef<HTMLPreElement>(null)\n\n const getCurrentEditor = useCallback(() => {\n return editor\n }, [editor])\n\n const generateTestContent = useCallback(() => {\n const rootElement = editor.getRootElement()\n const browserSelection = getDOMSelection(editor._window)\n\n if (\n rootElement == null ||\n browserSelection == null ||\n browserSelection.anchorNode == null ||\n browserSelection.focusNode == null ||\n !rootElement.contains(browserSelection.anchorNode) ||\n !rootElement.contains(browserSelection.focusNode)\n ) {\n return null\n }\n\n return `\nimport {\n initializeE2E,\n assertHTMLSnapshot,\n assertSelection,\n repeat,\n} from '../utils';\nimport {selectAll} from '../keyboardShortcuts';\nimport { RangeSelection } from 'lexical';\nimport { NodeSelection } from 'lexical';\n\ndescribe('Test case', () => {\n initializeE2E((e2e) => {\n it('Should pass this test', async () => {\n const {page} = e2e;\n\n await page.focus('div[contenteditable=\"true\"]');\n${steps.map(formatStep).join(`\\n`)}\n });\n});\n `\n }, [editor, steps])\n\n // just a wrapper around inserting new actions so that we can\n // coalesce some actions like insertText/moveNativeSelection\n const pushStep = useCallback(\n (name: string, value: Step['value']) => {\n setSteps((currentSteps) => {\n // trying to group steps\n const currentIndex = steps.length - 1\n const lastStep = steps[currentIndex]\n if (lastStep) {\n if (lastStep.name === name) {\n if (name === 'type') {\n // for typing events we just append the text\n return [\n ...steps.slice(0, currentIndex),\n { ...lastStep, value: lastStep.value + value },\n ]\n } else {\n // for other events we bump the counter if their values are the same\n if (lastStep.value === value) {\n return [...steps.slice(0, currentIndex), { ...lastStep, count: lastStep.count + 1 }]\n }\n }\n }\n }\n // could not group, just append a new one\n return [...currentSteps, { name, count: 1, value }]\n })\n },\n [steps, setSteps],\n )\n\n useLayoutEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (!isRecording) {\n return\n }\n const key = event.key\n if (isSelectAll(event)) {\n pushStep('selectAll', '')\n } else if (keyPresses.has(key)) {\n pushStep('press', event.key)\n } else if ([...key].length > 1) {\n pushStep('keydown', event.key)\n } else {\n pushStep('type', event.key)\n }\n }\n\n const onKeyUp = (event: KeyboardEvent) => {\n if (!isRecording) {\n return\n }\n const key = event.key\n if (!keyPresses.has(key) && [...key].length > 1) {\n pushStep('keyup', event.key)\n }\n }\n\n return editor.registerRootListener(\n (rootElement: HTMLElement | null, prevRootElement: HTMLElement | null) => {\n if (prevRootElement !== null) {\n prevRootElement.removeEventListener('keydown', onKeyDown)\n prevRootElement.removeEventListener('keyup', onKeyUp)\n }\n if (rootElement !== null) {\n rootElement.addEventListener('keydown', onKeyDown)\n rootElement.addEventListener('keyup', onKeyUp)\n }\n },\n )\n }, [editor, isRecording, pushStep])\n\n useLayoutEffect(() => {\n if (preRef.current) {\n preRef.current.scrollTo(0, preRef.current.scrollHeight)\n }\n }, [generateTestContent])\n\n useEffect(() => {\n if (steps) {\n const testContent = generateTestContent()\n if (testContent !== null) {\n setTemplatedTest(testContent)\n }\n if (preRef.current) {\n preRef.current.scrollTo(0, preRef.current.scrollHeight)\n }\n }\n }, [generateTestContent, steps])\n\n useEffect(() => {\n const removeUpdateListener = editor.registerUpdateListener(\n ({ dirtyElements, dirtyLeaves, editorState }) => {\n if (!isRecording) {\n return\n }\n const currentSelection = editorState._selection\n const previousSelection = previousSelectionRef.current\n const skipNextSelectionChange = skipNextSelectionChangeRef.current\n if (previousSelection !== currentSelection) {\n if (dirtyLeaves.size === 0 && dirtyElements.size === 0 && !skipNextSelectionChange) {\n const browserSelection = getDOMSelection(editor._window)\n if (\n browserSelection &&\n (browserSelection.anchorNode == null || browserSelection.focusNode == null)\n ) {\n return\n }\n }\n previousSelectionRef.current = currentSelection\n }\n skipNextSelectionChangeRef.current = false\n const testContent = generateTestContent()\n if (testContent !== null) {\n setTemplatedTest(testContent)\n }\n },\n )\n return removeUpdateListener\n }, [editor, generateTestContent, isRecording, pushStep])\n\n // save innerHTML\n useEffect(() => {\n if (!isRecording) {\n return\n }\n const removeUpdateListener = editor.registerUpdateListener(() => {\n const rootElement = editor.getRootElement()\n if (rootElement !== null) {\n setCurrentInnerHTML(rootElement?.innerHTML)\n }\n })\n return removeUpdateListener\n }, [editor, isRecording])\n\n // clear editor and start recording\n const toggleEditorSelection = useCallback(\n (currentEditor: LexicalEditor) => {\n if (!isRecording) {\n currentEditor.update(() => {\n const root = $getRoot()\n root.clear()\n const text = $createTextNode()\n root.append($createParagraphNode().append(text))\n text.select()\n })\n setSteps([])\n }\n setIsRecording((currentIsRecording) => !currentIsRecording)\n },\n [isRecording],\n )\n\n const onSnapshotClick = useCallback(() => {\n if (!isRecording) {\n return\n }\n const browserSelection = getDOMSelection(editor._window)\n if (\n browserSelection === null ||\n browserSelection.anchorNode == null ||\n browserSelection.focusNode == null\n ) {\n return\n }\n const { anchorNode, anchorOffset, focusNode, focusOffset } = sanitizeSelection(browserSelection)\n const rootElement = getCurrentEditor().getRootElement()\n let anchorPath\n if (anchorNode !== null) {\n anchorPath = getPathFromNodeToEditor(anchorNode, rootElement)\n }\n let focusPath\n if (focusNode !== null) {\n focusPath = getPathFromNodeToEditor(focusNode, rootElement)\n }\n pushStep('snapshot', {\n anchorNode,\n anchorOffset,\n anchorPath,\n focusNode,\n focusOffset,\n focusPath,\n })\n }, [pushStep, isRecording, getCurrentEditor])\n\n const onCopyClick = useCallback(() => {\n copy(generateTestContent())\n }, [generateTestContent])\n\n const onDownloadClick = useCallback(() => {\n download('test.js', generateTestContent())\n }, [generateTestContent])\n\n const button = (\n <button\n className={`editor-dev-button ${isRecording ? 'active' : ''}`}\n id=\"test-recorder-button\"\n onClick={(e) => {\n toggleEditorSelection(getCurrentEditor())\n e.preventDefault()\n }}\n title={isRecording ? 'Disable test recorder' : 'Enable test recorder'}\n type=\"button\"\n >\n {isRecording ? 'Disable test recorder' : 'Enable test recorder'}\n </button>\n )\n const output = isRecording ? (\n <div className=\"test-recorder-output\">\n <div className=\"test-recorder-toolbar\">\n <button\n className=\"test-recorder-button\"\n id=\"test-recorder-button-snapshot\"\n onClick={(e) => {\n onSnapshotClick()\n e.preventDefault()\n }}\n title=\"Insert snapshot\"\n type=\"button\"\n >\n Insert Snapshot\n </button>\n <button\n className=\"test-recorder-button\"\n id=\"test-recorder-button-copy\"\n onClick={(e) => {\n onCopyClick()\n e.preventDefault()\n }}\n title=\"Copy to clipboard\"\n type=\"button\"\n >\n Copy\n </button>\n <button\n className=\"test-recorder-button\"\n id=\"test-recorder-button-download\"\n onClick={(e) => {\n onDownloadClick()\n e.preventDefault()\n }}\n title=\"Download as a file\"\n type=\"button\"\n >\n Download\n </button>\n </div>\n <pre id=\"test-recorder\" ref={preRef}>\n {templatedTest}\n </pre>\n </div>\n ) : null\n\n return [button, output]\n}\nexport const TestRecorderPlugin: PluginComponent<undefined> = () => {\n const [editor] = useLexicalComposerContext()\n const [testRecorderButton, testRecorderOutput] = useTestRecorder(editor)\n\n return (\n <React.Fragment>\n <p>HI</p>\n {testRecorderButton}\n {testRecorderOutput}\n <p>DONE</p>\n </React.Fragment>\n )\n}\n", "'use client'\nimport { CAN_USE_DOM } from './canUseDOM.js'\n\ndeclare global {\n interface Document {\n documentMode?: unknown\n }\n\n interface Window {\n MSStream?: unknown\n }\n}\n\nconst documentMode = CAN_USE_DOM && 'documentMode' in document ? document.documentMode : null\n\nexport const IS_APPLE: boolean = CAN_USE_DOM && /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n\nexport const IS_FIREFOX: boolean =\n CAN_USE_DOM && /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent)\n\nexport const CAN_USE_BEFORE_INPUT: boolean =\n CAN_USE_DOM && 'InputEvent' in window && !documentMode\n ? 'getTargetRanges' in new window.InputEvent('input')\n : false\n\nexport const IS_SAFARI: boolean = CAN_USE_DOM && /Version\\/[\\d.].*Safari/.test(navigator.userAgent)\n\nexport const IS_IOS: boolean =\n CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream\n\nexport const IS_ANDROID: boolean = CAN_USE_DOM && /Android/.test(navigator.userAgent)\n\nexport const IS_WINDOWS: boolean = CAN_USE_DOM && /Win/.test(navigator.platform)\nexport const IS_CHROME: boolean = CAN_USE_DOM && /^(?=.*Chrome).*/i.test(navigator.userAgent)\n// export const canUseTextInputEvent: boolean = CAN_USE_DOM && 'TextEvent' in window && !documentMode;\n\nexport const IS_APPLE_WEBKIT =\n CAN_USE_DOM && /AppleWebKit\\/[\\d.]+/.test(navigator.userAgent) && !IS_CHROME\n", "'use client'\n\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { TestRecorderPlugin } from './plugin/index.js'\n\nexport const TestRecorderFeatureClient = createClientFeature({\n plugins: [\n {\n Component: TestRecorderPlugin,\n position: 'bottom',\n },\n ],\n})\n", "'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { TreeView } from '@lexical/react/LexicalTreeView.js'\nimport * as React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport './index.scss'\n\nexport const TreeViewPlugin: PluginComponent<undefined> = () => {\n const [editor] = useLexicalComposerContext()\n return (\n <TreeView\n editor={editor}\n timeTravelButtonClassName=\"debug-timetravel-button\"\n timeTravelPanelButtonClassName=\"debug-timetravel-panel-button\"\n timeTravelPanelClassName=\"debug-timetravel-panel\"\n timeTravelPanelSliderClassName=\"debug-timetravel-panel-slider\"\n treeTypeButtonClassName=\"debug-treetype-button\"\n viewClassName=\"tree-view-output\"\n />\n )\n}\n", "'use client'\n\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { TreeViewPlugin } from './plugin/index.js'\n\nexport const TreeViewFeatureClient = createClientFeature({\n plugins: [\n {\n Component: TreeViewPlugin,\n position: 'bottom',\n },\n ],\n})\n", "'use client'\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { BoldIcon } from '../../../lexical/ui/icons/Bold/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport {\n BOLD_ITALIC_STAR,\n BOLD_ITALIC_UNDERSCORE,\n BOLD_STAR,\n BOLD_UNDERSCORE,\n} from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: BoldIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('bold')\n }\n return false\n },\n key: 'bold',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'bold')\n },\n order: 1,\n },\n ]),\n]\n\nexport const BoldFeatureClient = createClientFeature(({ featureProviderMap }) => {\n const markdownTransformers = [BOLD_STAR, BOLD_UNDERSCORE]\n if (featureProviderMap.get('italic')) {\n markdownTransformers.push(BOLD_ITALIC_UNDERSCORE, BOLD_ITALIC_STAR)\n }\n\n return {\n enableFormats: ['bold'],\n markdownTransformers,\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n }\n})\n", "'use client'\nimport React from 'react'\n\nexport const BoldIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.6772 15H6.27017V5.718H10.4172C12.6792 5.718 13.8492 6.602 13.8492 8.292C13.8492 9.098 13.1992 9.982 12.4712 10.216C13.3812 10.476 14.1742 11.256 14.1742 12.322C14.1742 14.09 12.9002 15 10.6772 15ZM8.46717 9.501H10.3262C11.3012 9.501 11.7042 9.046 11.7042 8.409C11.7042 7.72 11.2362 7.317 10.3392 7.317H8.46717V9.501ZM8.46717 11.061V13.401H10.4822C11.4702 13.401 11.9642 12.959 11.9642 12.218C11.9642 11.49 11.4702 11.061 10.4822 11.061H8.46717Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nexport const toolbarFormatGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'buttons',\n items,\n key: 'format',\n order: 40,\n }\n}\n", "import type { TextFormatTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nexport const BOLD_ITALIC_STAR: TextFormatTransformer = {\n type: 'text-format',\n format: ['bold', 'italic'],\n tag: '***',\n}\n\nexport const BOLD_ITALIC_UNDERSCORE: TextFormatTransformer = {\n type: 'text-format',\n format: ['bold', 'italic'],\n intraword: false,\n tag: '___',\n}\n\nexport const BOLD_STAR: TextFormatTransformer = {\n type: 'text-format',\n format: ['bold'],\n tag: '**',\n}\n\nexport const BOLD_UNDERSCORE: TextFormatTransformer = {\n type: 'text-format',\n format: ['bold'],\n intraword: false,\n tag: '__',\n}\n", "'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { CodeIcon } from '../../../lexical/ui/icons/Code/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { INLINE_CODE } from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: CodeIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('code')\n }\n return false\n },\n key: 'inlineCode',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'code')\n },\n order: 7,\n },\n ]),\n]\n\nexport const InlineCodeFeatureClient = createClientFeature({\n enableFormats: ['code'],\n markdownTransformers: [INLINE_CODE],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const CodeIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M7.76465 6L3.76465 10L7.76465 14\" stroke=\"currentColor\" />\n <path d=\"M12.2354 6L16.2354 10L12.2354 14\" stroke=\"currentColor\" />\n </svg>\n)\n", "import type { TextFormatTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nexport const INLINE_CODE: TextFormatTransformer = {\n type: 'text-format',\n format: ['code'],\n tag: '`',\n}\n", "'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { ItalicIcon } from '../../../lexical/ui/icons/Italic/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { ITALIC_STAR, ITALIC_UNDERSCORE } from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: ItalicIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('italic')\n }\n return false\n },\n key: 'italic',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'italic')\n },\n order: 2,\n },\n ]),\n]\n\nexport const ItalicFeatureClient = createClientFeature({\n enableFormats: ['italic'],\n markdownTransformers: [ITALIC_STAR, ITALIC_UNDERSCORE],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const ItalicIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.311 14.2969L11.0327 15H6.18408L6.4624 14.2969C7.54639 14.2969 7.70752 14.209 7.83936 13.8721L10.8423 6.45996C10.8716 6.38672 10.8862 6.32812 10.8862 6.26953C10.8862 6.09375 10.6519 6.03516 9.80225 6.03516L10.0952 5.33203H14.9438L14.6509 6.03516C13.5669 6.03516 13.4204 6.12305 13.2886 6.45996L10.2856 13.8721C10.2563 13.9453 10.2271 14.0039 10.2271 14.0625C10.2271 14.2383 10.4614 14.2969 11.311 14.2969Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "import type { TextFormatTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nexport const ITALIC_STAR: TextFormatTransformer = {\n type: 'text-format',\n format: ['italic'],\n tag: '*',\n}\n\nexport const ITALIC_UNDERSCORE: TextFormatTransformer = {\n type: 'text-format',\n format: ['italic'],\n intraword: false,\n tag: '_',\n}\n", "'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport { StrikethroughIcon } from '../../../lexical/ui/icons/Strikethrough/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { STRIKETHROUGH } from './markdownTransformers.js'\n\nconst toolbarGroups = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: StrikethroughIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('strikethrough')\n }\n return false\n },\n key: 'strikethrough',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'strikethrough')\n },\n order: 4,\n },\n ]),\n]\n\nexport const StrikethroughFeatureClient = createClientFeature({\n enableFormats: ['strikethrough'],\n markdownTransformers: [STRIKETHROUGH],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const StrikethroughIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.50756 12.76H7.42756C7.56256 14.215 8.82256 14.71 10.1576 14.71C11.4326 14.71 12.4226 14.14 12.4226 13.06C12.4226 12.28 11.9576 11.845 10.6676 11.605L8.70256 11.245C7.12756 10.96 5.85256 10.21 5.85256 8.335C5.85256 6.43 7.53256 5.11 9.87256 5.11C12.4226 5.11 13.9526 6.22 14.1626 8.23H12.2876C12.1526 7.18 11.2226 6.595 9.88756 6.595C8.59756 6.595 7.78756 7.27 7.78756 8.215C7.78756 9.1 8.34256 9.385 9.49756 9.61L11.5676 10.015C13.3226 10.345 14.3726 11.215 14.3726 12.94C14.3726 14.89 12.5876 16.18 10.2176 16.18C7.66756 16.18 5.70256 15.115 5.50756 12.76Z\"\n fill=\"currentColor\"\n />\n <path d=\"M4.99756 11.44H15.0026V12.19H4.99756V11.44Z\" fill=\"currentColor\" />\n </svg>\n)\n", "import type { TextFormatTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nexport const STRIKETHROUGH: TextFormatTransformer = {\n type: 'text-format',\n format: ['strikethrough'],\n tag: '~~',\n}\n", "'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { SubscriptIcon } from '../../../lexical/ui/icons/Subscript/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: SubscriptIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('subscript')\n }\n return false\n },\n key: 'subscript',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'subscript')\n },\n order: 5,\n },\n ]),\n]\n\nexport const SubscriptFeatureClient = createClientFeature({\n enableFormats: ['subscript'],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const SubscriptIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.167 15L7.45002 11.36L4.73302 15H2.91302L6.55302 10.177L3.23802 5.718H5.20102L7.54102 8.89L9.89402 5.718H11.714L8.43802 10.06L12.13 15H10.167ZM16.7768 13.258C16.7768 14.155 16.1398 14.532 15.2038 15C14.5538 15.325 14.2808 15.546 14.2418 15.78H16.7898V16.82H12.7208V16.339C12.7208 15.286 13.5918 14.675 14.3588 14.233C15.0868 13.83 15.4378 13.635 15.4378 13.232C15.4378 12.894 15.2038 12.686 14.8268 12.686C14.3848 12.686 14.1248 13.024 14.1118 13.427H12.7468C12.8248 12.426 13.5528 11.633 14.8398 11.633C15.9448 11.633 16.7768 12.257 16.7768 13.258Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { SuperscriptIcon } from '../../../lexical/ui/icons/Superscript/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: SuperscriptIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('superscript')\n }\n return false\n },\n key: 'superscript',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'superscript')\n },\n order: 6,\n },\n ]),\n]\n\nexport const SuperscriptFeatureClient = createClientFeature({\n enableFormats: ['superscript'],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const SuperscriptIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.167 15L7.45002 11.36L4.73302 15H2.91302L6.55302 10.177L3.23802 5.718H5.20102L7.54102 8.89L9.89402 5.718H11.714L8.43802 10.06L12.13 15H10.167ZM16.7768 7.252C16.7768 8.149 16.1398 8.526 15.2038 8.994C14.5538 9.319 14.2808 9.54 14.2418 9.774H16.7898V10.814H12.7208V10.333C12.7208 9.28 13.5918 8.669 14.3588 8.227C15.0868 7.824 15.4378 7.629 15.4378 7.226C15.4378 6.888 15.2038 6.68 14.8268 6.68C14.3848 6.68 14.1248 7.018 14.1118 7.421H12.7468C12.8248 6.42 13.5528 5.627 14.8398 5.627C15.9448 5.627 16.7768 6.251 16.7768 7.252Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\n\nimport { $isTableSelection } from '@lexical/table'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { UnderlineIcon } from '../../../lexical/ui/icons/Underline/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: UnderlineIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection) || $isTableSelection(selection)) {\n return selection.hasFormat('underline')\n }\n return false\n },\n key: 'underline',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'underline')\n },\n order: 3,\n },\n ]),\n]\n\nexport const UnderlineFeatureClient = createClientFeature({\n enableFormats: ['underline'],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const UnderlineIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.9656 11.256C13.9656 13.791 12.5096 15.156 10.0006 15.156C7.50461 15.156 6.03561 13.791 6.03561 11.23V5.718H7.76461V11.243C7.76461 12.868 8.50561 13.778 10.0006 13.778C11.4956 13.778 12.2496 12.868 12.2496 11.243V5.718H13.9656V11.256Z\"\n fill=\"currentColor\"\n />\n <path d=\"M5.09961 16.3H14.9016V16.95H5.09961V16.3Z\" fill=\"currentColor\" />\n </svg>\n)\n", "import type { StyleObject } from '../../../../features/textState/feature.server.js'\n\nfunction kebabToCamelCase(str: string): string {\n return str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase())\n}\n\nexport const TextStateIcon: React.FC<{\n css?: StyleObject\n}> = ({ css }) => {\n const convertedCss = css\n ? Object.fromEntries(Object.entries(css).map(([key, value]) => [kebabToCamelCase(key), value]))\n : {}\n\n return (\n <span\n style={{\n ...convertedCss,\n alignItems: 'center',\n borderRadius: '4px',\n display: 'flex',\n fontSize: '16px',\n height: '20px',\n justifyContent: 'center',\n width: '20px',\n }}\n >\n A\n </span>\n )\n}\n", "import type { LexicalEditor, StateConfig } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { $forEachSelectedTextNode } from '@lexical/selection'\nimport { $getNodeByKey, $getState, $setState, createState, TextNode } from 'lexical'\nimport { useEffect } from 'react'\n\nimport { type StateValues, type TextStateFeatureProps } from './feature.server.js'\n\nexport type StateMap = Map<\n string,\n {\n stateConfig: StateConfig<string, string | undefined>\n stateValues: StateValues\n }\n>\n\nexport function registerTextStates(state: TextStateFeatureProps['state']) {\n const stateMap: StateMap = new Map()\n\n for (const stateKey in state) {\n const stateValues = state[stateKey]!\n const stateConfig = createState(stateKey, {\n parse: (value) =>\n typeof value === 'string' && Object.keys(stateValues).includes(value) ? value : undefined,\n })\n stateMap.set(stateKey, { stateConfig, stateValues })\n }\n return stateMap\n}\n\nexport function setTextState(\n editor: LexicalEditor,\n stateMap: StateMap,\n stateKey: string,\n value: string | undefined,\n) {\n editor.update(() => {\n $forEachSelectedTextNode((textNode) => {\n const stateMapEntry = stateMap.get(stateKey)\n if (!stateMapEntry) {\n throw new Error(`State config for ${stateKey} not found`)\n }\n $setState(textNode, stateMapEntry.stateConfig, value)\n })\n })\n}\n\nexport function StatePlugin({ stateMap }: { stateMap: StateMap }) {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n return editor.registerMutationListener(TextNode, (mutatedNodes) => {\n editor.getEditorState().read(() => {\n for (const [nodeKey, mutation] of mutatedNodes) {\n if (mutation === 'destroyed') {\n continue\n }\n const node = $getNodeByKey(nodeKey)\n const dom = editor.getElementByKey(nodeKey)\n if (!node || !dom) {\n continue\n }\n\n const mergedStyles: Record<string, string> = Object.create(null)\n // Examples:\n // stateKey: 'color'\n // stateValue: 'bg-red'\n stateMap.forEach((stateEntry, stateKey) => {\n const stateValue = $getState(node, stateEntry.stateConfig)\n if (!stateValue) {\n // clear the previous dataset value for this key\n delete dom.dataset[stateKey]\n return\n } // skip - nothing else to do\n\n dom.dataset[stateKey] = stateValue\n\n const css = stateEntry.stateValues[stateValue]?.css\n if (css) {\n // merge existing styles with the new ones\n Object.assign(mergedStyles, css)\n }\n })\n\n // wipe previous inline styles once, then set the merged ones\n dom.style.cssText = ''\n Object.assign(dom.style, mergedStyles)\n }\n })\n })\n }, [editor])\n\n return null\n}\n", "'use client'\n\nimport type { ToolbarDropdownGroup, ToolbarGroup } from '../toolbars/types.js'\nimport type { TextStateFeatureProps } from './feature.server.js'\n\nimport { TextStateIcon } from '../../lexical/ui/icons/TextState/index.js'\nimport { createClientFeature } from '../../utilities/createClientFeature.js'\nimport { registerTextStates, setTextState, type StateMap, StatePlugin } from './textState.js'\n\nconst toolbarGroups = (props: TextStateFeatureProps, stateMap: StateMap): ToolbarGroup[] => {\n const items: ToolbarDropdownGroup['items'] = []\n\n for (const stateKey in props.state) {\n const key = props.state[stateKey]!\n for (const stateValue in key) {\n const meta = key[stateValue]!\n items.push({\n ChildComponent: () => <TextStateIcon css={meta.css} />,\n key: stateValue,\n label: meta.label,\n onSelect: ({ editor }) => {\n setTextState(editor, stateMap, stateKey, stateValue)\n },\n })\n }\n }\n\n const clearStyle: ToolbarDropdownGroup['items'] = [\n {\n ChildComponent: () => <TextStateIcon />,\n key: `clear-style`,\n label: ({ i18n }) => i18n.t('lexical:textState:defaultStyle'),\n onSelect: ({ editor }) => {\n for (const stateKey in props.state) {\n setTextState(editor, stateMap, stateKey, undefined)\n }\n },\n order: 1,\n },\n ]\n\n return [\n {\n type: 'dropdown',\n ChildComponent: () => <TextStateIcon css={{ color: 'var(--theme-elevation-600)' }} />,\n items: [...clearStyle, ...items],\n key: 'textState',\n order: 30,\n },\n ]\n}\n\nexport const TextStateFeatureClient = createClientFeature<TextStateFeatureProps>(({ props }) => {\n const stateMap = registerTextStates(props.state)\n return {\n plugins: [\n {\n Component: () => StatePlugin({ stateMap }),\n position: 'normal',\n },\n ],\n toolbarFixed: {\n groups: toolbarGroups(props, stateMap),\n },\n toolbarInline: {\n groups: toolbarGroups(props, stateMap),\n },\n }\n})\n", "'use client'\n\nimport type { HeadingTagType } from '@lexical/rich-text'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { $createHeadingNode, $isHeadingNode, HeadingNode } from '@lexical/rich-text'\nimport { $setBlocksType } from '@lexical/selection'\nimport { $getSelection, $isRangeSelection } from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\nimport type { PluginComponent } from '../../typesClient.js'\nimport type { HeadingFeatureProps } from '../server/index.js'\n\nimport { H1Icon } from '../../../lexical/ui/icons/H1/index.js'\nimport { H2Icon } from '../../../lexical/ui/icons/H2/index.js'\nimport { H3Icon } from '../../../lexical/ui/icons/H3/index.js'\nimport { H4Icon } from '../../../lexical/ui/icons/H4/index.js'\nimport { H5Icon } from '../../../lexical/ui/icons/H5/index.js'\nimport { H6Icon } from '../../../lexical/ui/icons/H6/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../shared/toolbar/textDropdownGroup.js'\nimport { MarkdownTransformer } from '../markdownTransformer.js'\n\nconst $setHeading = (headingSize: HeadingTagType) => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createHeadingNode(headingSize))\n}\n\nconst iconImports = {\n h1: H1Icon,\n h2: H2Icon,\n h3: H3Icon,\n h4: H4Icon,\n h5: H5Icon,\n h6: H6Icon,\n}\n\nexport const HeadingFeatureClient = createClientFeature<HeadingFeatureProps>(({ props }) => {\n const { enabledHeadingSizes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] } = props\n\n const toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems(\n enabledHeadingSizes.map((headingSize, i) => {\n return {\n ChildComponent: iconImports[headingSize],\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isHeadingNode(node) && node.getTag() === headingSize) {\n continue\n }\n\n const parent = node.getParent()\n if ($isHeadingNode(parent) && parent.getTag() === headingSize) {\n continue\n }\n\n return false\n }\n return true\n },\n key: headingSize,\n label: ({ i18n }) => {\n return i18n.t('lexical:heading:label', { headingLevel: headingSize.charAt(1) })\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n $setHeading(headingSize)\n })\n },\n order: i + 2,\n }\n }),\n ),\n ]\n\n return {\n markdownTransformers: [MarkdownTransformer(enabledHeadingSizes)],\n nodes: [HeadingNode],\n plugins: [\n {\n Component: HeadingPlugin,\n position: 'normal',\n },\n ],\n sanitizedClientFeatureProps: props,\n slashMenu: {\n groups: enabledHeadingSizes?.length\n ? [\n slashMenuBasicGroupWithItems(\n enabledHeadingSizes.map((headingSize) => {\n return {\n Icon: iconImports[headingSize],\n key: `heading-${headingSize.charAt(1)}`,\n keywords: ['heading', headingSize],\n label: ({ i18n }) => {\n return i18n.t('lexical:heading:label', {\n headingLevel: headingSize.charAt(1),\n })\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n $setHeading(headingSize)\n })\n },\n }\n }),\n ),\n ]\n : [],\n },\n toolbarFixed: {\n groups: enabledHeadingSizes?.length ? toolbarGroups : [],\n },\n toolbarInline: {\n groups: enabledHeadingSizes?.length ? toolbarGroups : [],\n },\n }\n})\n\nconst HeadingPlugin: PluginComponent<HeadingFeatureProps> = ({ clientProps }) => {\n const { enabledHeadingSizes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] } = clientProps\n const lowestAllowed = enabledHeadingSizes.at(-1)\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n if (!lowestAllowed || enabledHeadingSizes.length === 6) {\n return\n }\n return editor.registerNodeTransform(HeadingNode, (node) => {\n if (!enabledHeadingSizes.includes(node.getTag())) {\n node.setTag(lowestAllowed)\n }\n })\n }, [editor, enabledHeadingSizes, lowestAllowed])\n\n return null\n}\n", "'use client'\nimport React from 'react'\n\nexport const H1Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.639 13.5V7.074H6.196V9.648H9.076V7.074H10.642V13.5H9.076V10.836H6.196V13.5H4.639ZM11.5656 9.045V8.019C12.6636 8.019 13.1316 7.731 13.2846 7.065H14.4006V13.5H12.8436V9.045H11.5656Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const H2Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.139 13.5V7.074H5.696V9.648H8.576V7.074H10.142V13.5H8.576V10.836H5.696V13.5H4.139ZM15.9796 8.973C15.9796 10.116 15.1696 10.656 14.0356 11.232C13.2256 11.646 12.8206 11.943 12.7846 12.294H15.9886V13.5H11.0566V12.951C11.0566 11.601 12.1636 10.845 13.1176 10.287C14.0356 9.756 14.5126 9.486 14.5126 8.946C14.5126 8.46 14.2156 8.145 13.6306 8.145C13.0186 8.145 12.6586 8.613 12.6226 9.198H11.1196C11.2186 7.947 12.1006 6.966 13.6396 6.966C15.0346 6.966 15.9796 7.785 15.9796 8.973Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const H3Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.139 13.5V7.074H5.696V9.648H8.576V7.074H10.142V13.5H8.576V10.836H5.696V13.5H4.139ZM16.1146 11.745C16.1146 12.744 15.2236 13.608 13.6126 13.608C12.0736 13.608 11.0926 12.762 10.9846 11.547H12.4696C12.5146 12.114 13.0006 12.456 13.6126 12.456C14.2876 12.456 14.6746 12.132 14.6746 11.619C14.6746 11.061 14.2426 10.836 13.6216 10.836H12.9826V9.738H13.6036C14.1526 9.738 14.5486 9.486 14.5486 8.937C14.5486 8.46 14.2156 8.127 13.6486 8.127C13.0366 8.127 12.6586 8.514 12.6226 9.045H11.1916C11.2726 7.929 12.1276 6.966 13.6666 6.966C15.1876 6.966 15.9706 7.848 15.9706 8.865C15.9706 9.603 15.5026 10.143 14.8186 10.269C15.6196 10.404 16.1146 10.971 16.1146 11.745Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const H4Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.639 13.5V7.074H5.196V9.648H8.076V7.074H9.642V13.5H8.076V10.836H5.196V13.5H3.639ZM15.1736 7.074V10.854H16.3706V12.033H15.1736V13.5H13.6796V12.033H10.5116V10.845L13.4996 7.074H15.1736ZM13.6796 8.46L11.8256 10.854H13.6796V8.46Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const H5Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.639 13.5V7.074H5.196V9.648H8.076V7.074H9.642V13.5H8.076V10.836H5.196V13.5H3.639ZM13.1576 10.269C12.6896 10.269 12.3746 10.494 12.2216 10.737H10.8176L11.1956 7.074H15.2546V8.28H12.3206L12.1856 9.549C12.4016 9.351 12.8516 9.126 13.4636 9.126C14.7866 9.126 15.6596 10.053 15.6596 11.358C15.6596 12.609 14.7326 13.608 13.1756 13.608C11.5826 13.608 10.6556 12.753 10.5566 11.511H12.1136C12.1586 12.06 12.5456 12.465 13.1576 12.465C13.8236 12.465 14.1746 11.97 14.1746 11.376C14.1746 10.764 13.8416 10.269 13.1576 10.269Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const H6Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.639 13.5V7.074H5.196V9.648H8.076V7.074H9.642V13.5H8.076V10.836H5.196V13.5H3.639ZM13.3646 8.127C12.5456 8.127 12.0416 8.937 12.0416 9.999C12.3296 9.54 12.8246 9.207 13.5536 9.207C14.8586 9.207 15.8036 10.134 15.8036 11.376C15.8036 12.645 14.8226 13.608 13.3196 13.608C11.7266 13.608 10.6196 12.393 10.6196 10.395C10.6196 8.316 11.7716 6.966 13.4186 6.966C14.7056 6.966 15.5786 7.749 15.7316 8.829H14.3186C14.2016 8.415 13.9226 8.127 13.3646 8.127ZM13.3106 12.51C13.9586 12.51 14.3816 12.042 14.3816 11.385C14.3816 10.737 13.9586 10.278 13.3106 10.278C12.6536 10.278 12.2126 10.737 12.2126 11.385C12.2126 12.042 12.6536 12.51 13.3106 12.51Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "import type { HeadingTagType } from '@lexical/rich-text'\n\nimport { $createHeadingNode, $isHeadingNode, HeadingNode } from '@lexical/rich-text'\n\nimport type { ElementTransformer } from '../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nimport { createBlockNode } from '../../lexical/utils/markdown/createBlockNode.js'\n\nexport const MarkdownTransformer: (enabledHeadingSizes: HeadingTagType[]) => ElementTransformer = (\n enabledHeadingSizes,\n) => {\n // Convert enabledHeadingSizes to a list of numbers (1 for h1, 2 for h2, etc.)\n const enabledSizes = enabledHeadingSizes.map((tag) => Number(tag.slice(1)))\n\n // Create a regex pattern that matches any of the enabled sizes\n const pattern = `^(${enabledSizes.map((size) => `#{${size}}`).join('|')})\\\\s`\n const regExp = new RegExp(pattern)\n\n return {\n type: 'element',\n dependencies: [HeadingNode],\n export: (node, exportChildren) => {\n if (!$isHeadingNode(node)) {\n return null\n }\n const level = Number(node.getTag().slice(1))\n return '#'.repeat(level) + ' ' + exportChildren(node)\n },\n regExp,\n replace: createBlockNode((match) => {\n const tag = ('h' + match[1]?.length) as HeadingTagType\n return $createHeadingNode(tag)\n }),\n }\n}\n", "import type { ElementNode } from 'lexical'\n\nimport type { ElementTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nexport const createBlockNode = (\n createNode: (match: Array<string>) => ElementNode,\n): ElementTransformer['replace'] => {\n return (parentNode, children, match) => {\n const node = createNode(match)\n if (node) {\n node.append(...children)\n parentNode.replace(node)\n node.select(0, 0)\n }\n }\n}\n", "'use client'\n\nimport { $isNodeSelection } from 'lexical'\n\nimport { HorizontalRuleIcon } from '../../../lexical/ui/icons/HorizontalRule/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarAddDropdownGroupWithItems } from '../../shared/toolbar/addDropdownGroup.js'\nimport { INSERT_HORIZONTAL_RULE_COMMAND } from '../server/nodes/HorizontalRuleNode.js'\nimport { MarkdownTransformer } from './markdownTransformer.js'\nimport { $isHorizontalRuleNode, HorizontalRuleNode } from './nodes/HorizontalRuleNode.js'\nimport { HorizontalRulePlugin } from './plugin/index.js'\n\nexport const HorizontalRuleFeatureClient = createClientFeature({\n markdownTransformers: [MarkdownTransformer],\n nodes: [HorizontalRuleNode],\n plugins: [\n {\n Component: HorizontalRulePlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: HorizontalRuleIcon,\n key: 'horizontalRule',\n keywords: ['hr', 'horizontal rule', 'line', 'separator'],\n label: ({ i18n }) => {\n return i18n.t('lexical:horizontalRule:label')\n },\n\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_HORIZONTAL_RULE_COMMAND, undefined)\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: [\n toolbarAddDropdownGroupWithItems([\n {\n ChildComponent: HorizontalRuleIcon,\n isActive: ({ selection }) => {\n if (!$isNodeSelection(selection) || !selection.getNodes().length) {\n return false\n }\n\n const firstNode = selection.getNodes()[0]\n return $isHorizontalRuleNode(firstNode)\n },\n key: 'horizontalRule',\n label: ({ i18n }) => {\n return i18n.t('lexical:horizontalRule:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_HORIZONTAL_RULE_COMMAND, undefined)\n },\n },\n ]),\n ],\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const HorizontalRuleIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect fill=\"currentColor\" height=\"1\" width=\"12\" x=\"4\" y=\"9.5\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const AddIcon: React.FC = () => (\n <svg fill=\"none\" height=\"20\" viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 10h10\" stroke=\"currentColor\" />\n <path d=\"M10 15V5\" stroke=\"currentColor\" />\n </svg>\n)\n", "import type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { AddIcon } from '../../../lexical/ui/icons/Add/index.js'\n\nexport const toolbarAddDropdownGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'dropdown',\n ChildComponent: AddIcon,\n items,\n key: 'add',\n order: 10,\n }\n}\n", "import type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n EditorConfig,\n LexicalCommand,\n LexicalNode,\n SerializedLexicalNode,\n} from 'lexical'\nimport type * as React from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { $applyNodeReplacement, createCommand, DecoratorNode } from 'lexical'\n\nimport type { StronglyTypedLeafNode } from '../../../../nodeTypes.js'\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 = StronglyTypedLeafNode<\n SerializedLexicalNode,\n 'horizontalrule'\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<null | React.ReactElement> {\n static override clone(node: HorizontalRuleServerNode): HorizontalRuleServerNode {\n return new this(node.__key)\n }\n\n static override 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 override 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 override importJSON(\n serializedNode: SerializedHorizontalRuleNode,\n ): 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 override createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement('hr')\n addClassNamesToElement(element, config.theme.hr)\n return element\n }\n\n override decorate(): null | React.ReactElement {\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 override 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 override exportJSON(): SerializedLexicalNode {\n return {\n type: 'horizontalrule',\n version: 1,\n }\n }\n\n override getTextContent(): string {\n return '\\n'\n }\n\n override isInline(): false {\n return false\n }\n\n override 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", "'use client'\nimport 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\nexport class HorizontalRuleNode extends HorizontalRuleServerNode {\n static override clone(node: HorizontalRuleServerNode): HorizontalRuleServerNode {\n return super.clone(node)\n }\n\n static override 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 override importJSON(serializedNode: SerializedHorizontalRuleNode): HorizontalRuleNode {\n return $createHorizontalRuleNode()\n }\n\n /**\n * Allows you to render a React component within whatever createDOM returns.\n */\n override decorate() {\n return null\n }\n\n override 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 { ElementTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nimport {\n $createHorizontalRuleNode,\n $isHorizontalRuleNode,\n HorizontalRuleNode,\n} from './nodes/HorizontalRuleNode.js'\n\nexport const MarkdownTransformer: ElementTransformer = {\n type: 'element',\n dependencies: [HorizontalRuleNode],\n export: (node, exportChildren) => {\n if (!$isHorizontalRuleNode(node)) {\n return null\n }\n return '---'\n },\n // match ---\n regExp: /^---\\s*$/,\n replace: (parentNode) => {\n const node = $createHorizontalRuleNode()\n if (node) {\n parentNode.replace(node)\n }\n },\n}\n", "'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot } from '@lexical/utils'\nimport { $getSelection, $isRangeSelection, COMMAND_PRIORITY_EDITOR } from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\n\nimport { INSERT_HORIZONTAL_RULE_COMMAND } from '../../server/nodes/HorizontalRuleNode.js'\nimport { $createHorizontalRuleNode } from '../nodes/HorizontalRuleNode.js'\nimport './index.scss'\n\n/**\n * Registers the INSERT_HORIZONTAL_RULE_COMMAND lexical command and defines the behavior for when it is called.\n */\nexport const HorizontalRulePlugin: PluginComponent<undefined> = () => {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n return editor.registerCommand(\n INSERT_HORIZONTAL_RULE_COMMAND,\n (type) => {\n const selection = $getSelection()\n\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n const focusNode = selection.focus.getNode()\n\n if (focusNode !== null) {\n const horizontalRuleNode = $createHorizontalRuleNode()\n $insertNodeToNearestRoot(horizontalRuleNode)\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor])\n\n return null\n}\n", "'use client'\n\nimport type { ElementNode, LexicalNode } from 'lexical'\n\nimport { $findMatchingParent } from '@lexical/utils'\nimport { $isElementNode, INDENT_CONTENT_COMMAND, OUTDENT_CONTENT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { IndentDecreaseIcon } from '../../../lexical/ui/icons/IndentDecrease/index.js'\nimport { IndentIncreaseIcon } from '../../../lexical/ui/icons/IndentIncrease/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { type IndentFeatureProps } from '../server/index.js'\nimport { IndentPlugin } from './IndentPlugin.js'\nimport { toolbarIndentGroupWithItems } from './toolbarIndentGroup.js'\n\nconst toolbarGroups = ({ disabledNodes }: IndentFeatureProps): ToolbarGroup[] => [\n toolbarIndentGroupWithItems([\n {\n ChildComponent: IndentDecreaseIcon,\n isActive: () => false,\n isEnabled: ({ selection }) => {\n const nodes = selection?.getNodes() ?? []\n\n const isOutdentable = (node: LexicalNode) => {\n return isIndentable(node) && node.getIndent() > 0\n }\n\n return nodes.some((node) => {\n return isOutdentable(node) || Boolean($findMatchingParent(node, isOutdentable))\n })\n },\n key: 'indentDecrease',\n label: ({ i18n }) => {\n return i18n.t('lexical:indent:decreaseLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OUTDENT_CONTENT_COMMAND, undefined)\n },\n order: 1,\n },\n {\n ChildComponent: IndentIncreaseIcon,\n isActive: () => false,\n isEnabled: ({ selection }) => {\n const nodes = selection?.getNodes() ?? []\n\n const isIndentableAndNotDisabled = (node: LexicalNode) => {\n return isIndentable(node) && !(disabledNodes ?? []).includes(node.getType())\n }\n\n return nodes.some((node) => {\n return (\n isIndentableAndNotDisabled(node) ||\n Boolean($findMatchingParent(node, isIndentableAndNotDisabled))\n )\n })\n },\n key: 'indentIncrease',\n label: ({ i18n }) => {\n return i18n.t('lexical:indent:increaseLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INDENT_CONTENT_COMMAND, undefined)\n },\n order: 2,\n },\n ]),\n]\n\nexport const IndentFeatureClient = createClientFeature<IndentFeatureProps>(({ props }) => {\n const disabledNodes = props.disabledNodes ?? []\n return {\n plugins: [\n {\n Component: IndentPlugin,\n position: 'normal',\n },\n ],\n sanitizedClientFeatureProps: props,\n toolbarFixed: {\n groups: toolbarGroups({ disabledNodes }),\n },\n toolbarInline: {\n groups: toolbarGroups({ disabledNodes }),\n },\n }\n})\n\nconst isIndentable = (node: LexicalNode): node is ElementNode =>\n $isElementNode(node) && node.canIndent()\n", "'use client'\nimport React from 'react'\n\nexport const IndentDecreaseIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M2.5 5H10.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 10H10.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 15H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M12.25 7.25L17.25 3.75V10.75L12.25 7.25Z\" fill=\"currentColor\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const IndentIncreaseIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M17.5 5H9.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M17.5 10H9.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M17.5 15H2.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7.75 7.25L2.75 3.75V10.75L7.75 7.25Z\" fill=\"currentColor\" />\n </svg>\n)\n", "import type { ElementNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { TabIndentationPlugin } from '@lexical/react/LexicalTabIndentationPlugin'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n COMMAND_PRIORITY_LOW,\n INDENT_CONTENT_COMMAND,\n KEY_TAB_COMMAND,\n OUTDENT_CONTENT_COMMAND,\n TabNode,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../typesClient.js'\nimport type { IndentFeatureProps } from '../server/index.js'\n\nexport const IndentPlugin: PluginComponent<IndentFeatureProps> = ({ clientProps }) => {\n const [editor] = useLexicalComposerContext()\n const { disabledNodes, disableTabNode } = clientProps\n\n useEffect(() => {\n if (!editor || !disabledNodes?.length) {\n return\n }\n return mergeRegister(\n editor.registerCommand(\n INDENT_CONTENT_COMMAND,\n () => {\n return $handleIndentAndOutdent((block) => {\n if (!disabledNodes.includes(block.getType())) {\n const indent = block.getIndent()\n block.setIndent(indent + 1)\n }\n })\n },\n COMMAND_PRIORITY_LOW,\n ),\n // If we disable indenting for certain nodes, we need to ensure that these are not indented,\n // if they get transformed from an indented state (e.g. an indented list node gets transformed into a\n // paragraph node for which indenting is disabled).\n editor.registerUpdateListener(({ dirtyElements, editorState }) => {\n editor.update(() => {\n for (const [nodeKey] of dirtyElements) {\n const node = editorState._nodeMap.get(nodeKey)\n if ($isElementNode(node) && disabledNodes.includes(node.getType())) {\n const currentIndent = node.getIndent()\n if (currentIndent > 0) {\n node.setIndent(0)\n }\n }\n }\n })\n }),\n )\n }, [editor, disabledNodes])\n\n useEffect(() => {\n if (!editor || !disableTabNode) {\n return\n }\n return mergeRegister(\n // This is so that when you press Tab in the middle of a paragraph,\n // it indents the paragraph, instead of inserting a TabNode.\n editor.registerCommand<KeyboardEvent>(\n KEY_TAB_COMMAND,\n (event) => {\n event.preventDefault()\n return editor.dispatchCommand(\n event.shiftKey ? OUTDENT_CONTENT_COMMAND : INDENT_CONTENT_COMMAND,\n undefined,\n )\n },\n COMMAND_PRIORITY_LOW,\n ),\n // Tab isn't the only way to insert a TabNode. We have to make sure\n // it doesn't happen, for example, when pasting from the clipboard.\n editor.registerNodeTransform(TabNode, (node) => {\n node.remove()\n }),\n )\n }, [editor, disableTabNode])\n\n return <TabIndentationPlugin />\n}\n\nfunction $handleIndentAndOutdent(indentOrOutdent: (block: ElementNode) => void): boolean {\n const selection = $getSelection()\n if (!$isRangeSelection(selection)) {\n return false\n }\n const alreadyHandled = new Set()\n const nodes = selection.getNodes()\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i]!\n const key = node.getKey()\n if (alreadyHandled.has(key)) {\n continue\n }\n const parentBlock = $findMatchingParent(\n node,\n (parentNode): parentNode is ElementNode =>\n $isElementNode(parentNode) && !parentNode.isInline(),\n )\n if (parentBlock === null) {\n continue\n }\n const parentKey = parentBlock.getKey()\n if (parentBlock.canIndent() && !alreadyHandled.has(parentKey)) {\n alreadyHandled.add(parentKey)\n indentOrOutdent(parentBlock)\n }\n }\n return alreadyHandled.size > 0\n}\n", "'use client'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nexport const toolbarIndentGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'buttons',\n items,\n key: 'indent',\n order: 35,\n }\n}\n", "'use client'\n\nimport type { Klass, LexicalNode } from 'lexical'\n\nimport { $findMatchingParent } from '@lexical/utils'\nimport { $getSelection, $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\nimport type { ClientFeature } from '../../typesClient.js'\nimport type { LinkFields } from '../nodes/types.js'\nimport type { ExclusiveLinkCollectionsProps } from '../server/index.js'\n\nimport { LinkIcon } from '../../../lexical/ui/icons/Link/index.js'\nimport { getSelectedNode } from '../../../lexical/utils/getSelectedNode.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFeatureButtonsGroupWithItems } from '../../shared/toolbar/featureButtonsGroup.js'\nimport { LinkMarkdownTransformer } from '../markdownTransformer.js'\nimport { AutoLinkNode } from '../nodes/AutoLinkNode.js'\nimport { $isLinkNode, LinkNode, TOGGLE_LINK_COMMAND } from '../nodes/LinkNode.js'\nimport { AutoLinkPlugin } from './plugins/autoLink/index.js'\nimport { ClickableLinkPlugin } from './plugins/clickableLink/index.js'\nimport { FloatingLinkEditorPlugin } from './plugins/floatingLinkEditor/index.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './plugins/floatingLinkEditor/LinkEditor/commands.js'\nimport { LinkPlugin } from './plugins/link/index.js'\n\nexport type ClientProps = {\n defaultLinkType?: string\n defaultLinkURL?: string\n disableAutoLinks?: 'creationOnly' | true\n} & ExclusiveLinkCollectionsProps\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFeatureButtonsGroupWithItems([\n {\n ChildComponent: LinkIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n const selectedNode = getSelectedNode(selection)\n const linkParent = $findMatchingParent(selectedNode, $isLinkNode)\n return linkParent != null\n }\n return false\n },\n isEnabled: ({ selection }) => {\n return !!($isRangeSelection(selection) && $getSelection()?.getTextContent()?.length)\n },\n key: 'link',\n label: ({ i18n }) => {\n return i18n.t('lexical:link:label')\n },\n onSelect: ({ editor, isActive }) => {\n if (!isActive) {\n let selectedText: string | undefined\n let selectedNodes: LexicalNode[] = []\n editor.getEditorState().read(() => {\n selectedText = $getSelection()?.getTextContent()\n // We need to selected nodes here before the drawer opens, as clicking around in the drawer may change the original selection\n selectedNodes = $getSelection()?.getNodes() ?? []\n })\n\n if (!selectedText?.length) {\n return\n }\n\n const linkFields: Partial<LinkFields> = {\n doc: null,\n }\n\n editor.dispatchCommand(TOGGLE_LINK_WITH_MODAL_COMMAND, {\n fields: linkFields,\n selectedNodes,\n text: selectedText,\n })\n } else {\n // remove link\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }\n },\n order: 1,\n },\n ]),\n]\n\nexport const LinkFeatureClient = createClientFeature<ClientProps>(({ props }) => ({\n markdownTransformers: [LinkMarkdownTransformer],\n nodes: [LinkNode, props?.disableAutoLinks === true ? null : AutoLinkNode].filter(\n Boolean,\n ) as Array<Klass<LexicalNode>>,\n plugins: [\n {\n Component: LinkPlugin,\n position: 'normal',\n },\n props?.disableAutoLinks === true || props?.disableAutoLinks === 'creationOnly'\n ? null\n : {\n Component: AutoLinkPlugin,\n position: 'normal',\n },\n {\n Component: ClickableLinkPlugin,\n position: 'normal',\n },\n {\n Component: FloatingLinkEditorPlugin,\n position: 'floatingAnchorElem',\n },\n ].filter(Boolean) as ClientFeature<ClientProps>['plugins'],\n sanitizedClientFeatureProps: props,\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n}))\n", "'use client'\nimport React from 'react'\n\nexport const LinkIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5 11.5L11.5 8.5M8.5 7L9.625 5.875C10.868 4.633 12.882 4.633 14.125 5.875C15.368 7.118 15.368 9.133 14.125 10.375L13 11.5M7 8.5L5.746 9.754C4.56 10.94 4.519 12.85 5.652 14.087C6.814 15.354 8.78 15.449 10.058 14.298L11.5 13\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n", "'use client'\nimport type { ElementNode, RangeSelection, TextNode } from 'lexical'\n\nimport { $isAtNodeEnd } from '@lexical/selection'\n\nexport function getSelectedNode(selection: RangeSelection): ElementNode | TextNode {\n const { anchor } = selection\n const { focus } = selection\n const anchorNode = selection.anchor.getNode()\n const focusNode = selection.focus.getNode()\n if (anchorNode === focusNode) {\n return anchorNode\n }\n const isBackward = selection.isBackward()\n if (isBackward) {\n return $isAtNodeEnd(focus) ? anchorNode : focusNode\n }\n return $isAtNodeEnd(anchor) ? anchorNode : focusNode\n}\n", "import type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nexport const toolbarFeatureButtonsGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'buttons',\n items,\n key: 'features',\n order: 50,\n }\n}\n", "/**\n * Code taken from https://github.com/facebook/lexical/blob/main/packages/lexical-markdown/src/MarkdownTransformers.ts#L357\n */\n\n// Order of text transformers matters:\n//\n// - code should go first as it prevents any transformations inside\n\nimport { $createTextNode, $isTextNode } from 'lexical'\n\nimport type { TextMatchTransformer } from '../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nimport { $createLinkNode, $isLinkNode, LinkNode } from './nodes/LinkNode.js'\n\n// - then longer tags match (e.g. ** or __ should go before * or _)\nexport const LinkMarkdownTransformer: TextMatchTransformer = {\n type: 'text-match',\n dependencies: [LinkNode],\n export: (_node, exportChildren) => {\n if (!$isLinkNode(_node)) {\n return null\n }\n const node: LinkNode = _node\n const { url } = node.getFields()\n\n const textContent = exportChildren(node)\n\n const linkContent = `[${textContent}](${url})`\n\n return linkContent\n },\n importRegExp: /\\[([^[]+)\\]\\(([^()\\s]+)(?:\\s\"((?:[^\"]*\\\\\")*[^\"]*)\"\\s*)?\\)/,\n regExp: /\\[([^[]+)\\]\\(([^()\\s]+)(?:\\s\"((?:[^\"]*\\\\\")*[^\"]*)\"\\s*)?\\)$/,\n replace: (textNode, match) => {\n const [, linkText, linkUrl] = match\n const linkNode = $createLinkNode({\n fields: {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: linkUrl,\n },\n })\n const linkTextNode = $createTextNode(linkText)\n linkTextNode.setFormat(textNode.getFormat())\n linkNode.append(linkTextNode)\n textNode.replace(linkNode)\n\n return linkTextNode\n },\n trigger: ')',\n}\n", "import type {\n BaseSelection,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n ElementNode as ElementNodeType,\n LexicalCommand,\n LexicalNode,\n LexicalUpdateJSON,\n NodeKey,\n RangeSelection,\n} from 'lexical'\n\nimport { addClassNamesToElement, isHTMLAnchorElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n $createTextNode,\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n createCommand,\n ElementNode,\n} from 'lexical'\n\nimport type { LinkPayload } from '../client/plugins/floatingLinkEditor/types.js'\nimport type { LinkFields, SerializedLinkNode } from './types.js'\n\nconst SUPPORTED_URL_PROTOCOLS = new Set(['http:', 'https:', 'mailto:', 'sms:', 'tel:'])\n\n/** @noInheritDoc */\nexport class LinkNode extends ElementNode {\n __fields: LinkFields\n __id: string\n\n constructor({\n id,\n fields = {\n linkType: 'custom',\n newTab: false,\n },\n key,\n }: {\n fields?: LinkFields\n id: string\n key?: NodeKey\n }) {\n super(key)\n this.__fields = fields\n this.__id = id\n }\n\n static override clone(node: LinkNode): LinkNode {\n return new this({\n id: node.__id,\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'link'\n }\n\n static override importDOM(): DOMConversionMap | null {\n return {\n a: (node: Node) => ({\n conversion: $convertAnchorElement,\n priority: 1,\n }),\n }\n }\n\n static override importJSON(serializedNode: SerializedLinkNode): LinkNode {\n const node = $createLinkNode({}).updateFromJSON(serializedNode)\n\n /**\n * @todo remove this in 4.0\n */\n if (\n serializedNode.version === 1 &&\n typeof serializedNode.fields?.doc?.value === 'object' &&\n serializedNode.fields?.doc?.value?.id\n ) {\n serializedNode.fields.doc.value = serializedNode.fields.doc.value.id\n serializedNode.version = 2\n }\n\n if (serializedNode.version === 2 && !serializedNode.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n return node\n }\n\n override canBeEmpty(): false {\n return false\n }\n\n override canInsertTextAfter(): false {\n return false\n }\n\n override canInsertTextBefore(): false {\n return false\n }\n\n override createDOM(config: EditorConfig): HTMLAnchorElement {\n const element = document.createElement('a')\n if (this.__fields?.linkType === 'custom') {\n element.href = this.sanitizeUrl(this.__fields.url ?? '')\n }\n if (this.__fields?.newTab ?? false) {\n element.target = '_blank'\n }\n\n if (this.__fields?.newTab === true && this.__fields?.linkType === 'custom') {\n element.rel = manageRel(element.rel, 'add', 'noopener')\n }\n\n addClassNamesToElement(element, config.theme.link)\n return element\n }\n\n override exportJSON(): SerializedLinkNode {\n const fields = this.getFields()\n\n if (fields?.linkType === 'internal') {\n delete fields.url\n } else if (fields?.linkType === 'custom') {\n delete fields.doc\n }\n\n const returnObject: SerializedLinkNode = {\n ...super.exportJSON(),\n type: 'link',\n fields,\n version: 3,\n }\n const id = this.getID()\n if (id) {\n returnObject.id = id\n }\n return returnObject\n }\n\n override extractWithChild(\n child: LexicalNode,\n selection: BaseSelection,\n destination: 'clone' | 'html',\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n const anchorNode = selection.anchor.getNode()\n const focusNode = selection.focus.getNode()\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n selection.getTextContent().length > 0\n )\n }\n\n getFields(): LinkFields {\n return this.getLatest().__fields\n }\n\n getID(): string {\n return this.getLatest().__id\n }\n\n override insertNewAfter(\n selection: RangeSelection,\n restoreSelection = true,\n ): ElementNodeType | null {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection)\n if ($isElementNode(element)) {\n const linkNode = $createLinkNode({ fields: this.__fields })\n element.append(linkNode)\n return linkNode\n }\n return null\n }\n\n override isInline(): true {\n return true\n }\n\n sanitizeUrl(url: string): string {\n try {\n const parsedUrl = new URL(url)\n\n if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {\n return 'about:blank'\n }\n } catch (e) {\n return 'https://'\n }\n return url\n }\n\n setFields(fields: LinkFields): this {\n const writable = this.getWritable()\n writable.__fields = fields\n return writable\n }\n\n setID(id: string): this {\n const writable = this.getWritable()\n writable.__id = id\n return writable\n }\n\n override updateDOM(prevNode: this, anchor: HTMLAnchorElement, config: EditorConfig): boolean {\n const url = this.__fields?.url\n const newTab = this.__fields?.newTab\n if (url != null && url !== prevNode.__fields?.url && this.__fields?.linkType === 'custom') {\n anchor.href = url\n }\n if (this.__fields?.linkType === 'internal' && prevNode.__fields?.linkType === 'custom') {\n anchor.removeAttribute('href')\n }\n\n // TODO: not 100% sure why we're settign rel to '' - revisit\n // Start rel config here, then check newTab below\n if (anchor.rel == null) {\n anchor.rel = ''\n }\n\n if (newTab !== prevNode.__fields?.newTab) {\n if (newTab ?? false) {\n anchor.target = '_blank'\n if (this.__fields?.linkType === 'custom') {\n anchor.rel = manageRel(anchor.rel, 'add', 'noopener')\n }\n } else {\n anchor.removeAttribute('target')\n anchor.rel = manageRel(anchor.rel, 'remove', 'noopener')\n }\n }\n\n return false\n }\n\n override updateFromJSON(serializedNode: LexicalUpdateJSON<SerializedLinkNode>): this {\n return super\n .updateFromJSON(serializedNode)\n .setFields(serializedNode.fields)\n .setID(serializedNode.id as string)\n }\n}\n\nfunction $convertAnchorElement(domNode: Node): DOMConversionOutput {\n let node: LinkNode | null = null\n if (isHTMLAnchorElement(domNode)) {\n const content = domNode.textContent\n if (content !== null && content !== '') {\n node = $createLinkNode({\n id: new ObjectID.default().toHexString(),\n fields: {\n doc: null,\n linkType: 'custom',\n newTab: domNode.getAttribute('target') === '_blank',\n url: domNode.getAttribute('href') ?? '',\n },\n })\n }\n }\n return { node }\n}\n\nexport function $createLinkNode({ id, fields }: { fields?: LinkFields; id?: string }): LinkNode {\n return $applyNodeReplacement(\n new LinkNode({\n id: id ?? new ObjectID.default().toHexString(),\n fields,\n }),\n )\n}\n\nexport function $isLinkNode(node: LexicalNode | null | undefined): node is LinkNode {\n return node instanceof LinkNode\n}\n\nexport const TOGGLE_LINK_COMMAND: LexicalCommand<LinkPayload | null> =\n createCommand('TOGGLE_LINK_COMMAND')\n\nexport function $toggleLink(payload: ({ fields: LinkFields } & LinkPayload) | null): void {\n const selection = $getSelection()\n\n if (!$isRangeSelection(selection) && (payload === null || !payload.selectedNodes?.length)) {\n return\n }\n const nodes = $isRangeSelection(selection)\n ? selection.extract()\n : payload === null\n ? []\n : payload.selectedNodes\n\n if (payload === null) {\n // Remove LinkNodes\n nodes?.forEach((node) => {\n const parent = node.getParent()\n\n if ($isLinkNode(parent)) {\n const children = parent.getChildren()\n\n children.forEach((child) => {\n parent.insertBefore(child)\n })\n\n parent.remove()\n }\n })\n\n return\n }\n // Add or merge LinkNodes\n if (nodes?.length === 1) {\n const firstNode = nodes[0]!\n // if the first node is a LinkNode or if its\n // parent is a LinkNode, we update the URL, target and rel.\n const linkNode: LinkNode | null = $isLinkNode(firstNode)\n ? firstNode\n : $getLinkAncestor(firstNode)\n if (linkNode !== null) {\n linkNode.setFields(payload.fields)\n\n if (payload.text != null && payload.text !== linkNode.getTextContent()) {\n // remove all children and add child with new textcontent:\n linkNode.append($createTextNode(payload.text))\n linkNode.getChildren().forEach((child) => {\n if (child !== linkNode.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n }\n\n let prevParent: ElementNodeType | LinkNode | null = null\n let linkNode: LinkNode | null = null\n\n nodes?.forEach((node) => {\n const parent = node.getParent()\n\n if (parent === linkNode || parent === null || ($isElementNode(node) && !node.isInline())) {\n return\n }\n\n if ($isLinkNode(parent)) {\n linkNode = parent\n parent.setFields(payload.fields)\n if (payload.text != null && payload.text !== parent.getTextContent()) {\n // remove all children and add child with new textcontent:\n parent.append($createTextNode(payload.text))\n parent.getChildren().forEach((child) => {\n if (child !== parent.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n\n if (!parent.is(prevParent)) {\n prevParent = parent\n linkNode = $createLinkNode({ fields: payload.fields })\n\n if ($isLinkNode(parent)) {\n if (node.getPreviousSibling() === null) {\n parent.insertBefore(linkNode)\n } else {\n parent.insertAfter(linkNode)\n }\n } else {\n node.insertBefore(linkNode)\n }\n }\n\n if ($isLinkNode(node)) {\n if (node.is(linkNode)) {\n return\n }\n if (linkNode !== null) {\n const children = node.getChildren()\n linkNode.append(...children)\n }\n\n node.remove()\n return\n }\n\n if (linkNode !== null) {\n linkNode.append(node)\n }\n })\n}\n\nfunction $getLinkAncestor(node: LexicalNode): LinkNode | null {\n return $getAncestor(node, (ancestor) => $isLinkNode(ancestor)) as LinkNode\n}\n\nfunction $getAncestor(\n node: LexicalNode,\n predicate: (ancestor: LexicalNode) => boolean,\n): LexicalNode | null {\n let parent: LexicalNode | null = node\n while (parent !== null) {\n parent = parent.getParent()\n if (parent === null || predicate(parent)) {\n break\n }\n }\n return parent\n}\n\nfunction manageRel(input: string, action: 'add' | 'remove', value: string): string {\n let result: string\n let mutableInput = `${input}`\n if (action === 'add') {\n // if we somehow got out of sync - clean up\n if (mutableInput.includes(value)) {\n const re = new RegExp(value, 'g')\n mutableInput = mutableInput.replace(re, '').trim()\n }\n mutableInput = mutableInput.trim()\n result = mutableInput.length === 0 ? `${value}` : `${mutableInput} ${value}`\n } else {\n const re = new RegExp(value, 'g')\n result = mutableInput.replace(re, '').trim()\n }\n return result\n}\n", "import type { ElementNode, LexicalNode, LexicalUpdateJSON, RangeSelection } from 'lexical'\n\nimport { $applyNodeReplacement, $isElementNode } from 'lexical'\n\nimport type { LinkFields, SerializedAutoLinkNode } from './types.js'\n\nimport { LinkNode } from './LinkNode.js'\n\n// Custom node type to override `canInsertTextAfter` that will\n// allow typing within the link\n\nexport class AutoLinkNode extends LinkNode {\n static override clone(node: AutoLinkNode): AutoLinkNode {\n return new this({ id: '', fields: node.__fields, key: node.__key })\n }\n\n static override getType(): string {\n return 'autolink'\n }\n\n static override importDOM(): null {\n // TODO: Should link node should handle the import over autolink?\n return null\n }\n\n static override importJSON(serializedNode: SerializedAutoLinkNode): AutoLinkNode {\n const node = $createAutoLinkNode({}).updateFromJSON(serializedNode)\n\n /**\n * @todo remove in 4.0\n */\n if (\n serializedNode.version === 1 &&\n typeof serializedNode.fields?.doc?.value === 'object' &&\n serializedNode.fields?.doc?.value?.id\n ) {\n serializedNode.fields.doc.value = serializedNode.fields.doc.value.id\n serializedNode.version = 2\n }\n\n return node\n }\n\n // @ts-expect-error\n exportJSON(): SerializedAutoLinkNode {\n const serialized = super.exportJSON()\n return {\n type: 'autolink',\n children: serialized.children,\n direction: serialized.direction,\n fields: serialized.fields,\n format: serialized.format,\n indent: serialized.indent,\n version: 2,\n }\n }\n\n override insertNewAfter(selection: RangeSelection, restoreSelection = true): ElementNode | null {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection)\n if ($isElementNode(element)) {\n const linkNode = $createAutoLinkNode({ fields: this.__fields })\n element.append(linkNode)\n return linkNode\n }\n return null\n }\n\n override updateFromJSON(serializedNode: LexicalUpdateJSON<SerializedAutoLinkNode>): this {\n return super.updateFromJSON(serializedNode).setFields(serializedNode.fields)\n }\n}\n\nexport function $createAutoLinkNode({ fields }: { fields?: LinkFields }): AutoLinkNode {\n return $applyNodeReplacement(new AutoLinkNode({ id: '', fields }))\n}\nexport function $isAutoLinkNode(node: LexicalNode | null | undefined): node is AutoLinkNode {\n return node instanceof AutoLinkNode\n}\n", "'use client'\nimport type { ElementNode, LexicalEditor, LexicalNode, TextNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $createTextNode,\n $getSelection,\n $isElementNode,\n $isLineBreakNode,\n $isNodeSelection,\n $isRangeSelection,\n $isTextNode,\n TextNode as TextNodeValue,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { LinkFields } from '../../../nodes/types.js'\nimport type { ClientProps } from '../../index.js'\n\nimport { $createAutoLinkNode, $isAutoLinkNode, AutoLinkNode } from '../../../nodes/AutoLinkNode.js'\nimport { $isLinkNode } from '../../../nodes/LinkNode.js'\n\ntype ChangeHandler = (url: null | string, prevUrl: null | string) => void\n\ninterface LinkMatcherResult {\n fields?: LinkFields\n index: number\n length: number\n text: string\n url: string\n}\n\nexport type LinkMatcher = (text: string) => LinkMatcherResult | null\n\nexport function createLinkMatcherWithRegExp(\n regExp: RegExp,\n urlTransformer: (text: string) => string = (text) => text,\n) {\n return (text: string) => {\n const match = regExp.exec(text)\n if (match === null) {\n return null\n }\n return {\n index: match.index,\n length: match[0].length,\n text: match[0],\n url: urlTransformer(match[0]),\n }\n }\n}\n\nfunction findFirstMatch(text: string, matchers: LinkMatcher[]): LinkMatcherResult | null {\n for (const matcher of matchers) {\n const match = matcher(text)\n\n if (match != null) {\n return match\n }\n }\n\n return null\n}\n\nconst PUNCTUATION_OR_SPACE = /[.,;\\s]/\n\nfunction isSeparator(char: string | undefined): boolean {\n return char !== undefined && PUNCTUATION_OR_SPACE.test(char)\n}\n\nfunction endsWithSeparator(textContent: string): boolean {\n return isSeparator(textContent[textContent.length - 1])\n}\n\nfunction startsWithSeparator(textContent: string): boolean {\n return isSeparator(textContent[0])\n}\n\n/**\n * Check if the text content starts with a fullstop followed by a top-level domain.\n * Meaning if the text content can be a beginning of a top level domain.\n * @param textContent\n * @param isEmail\n * @returns boolean\n */\nfunction startsWithTLD(textContent: string, isEmail: boolean): boolean {\n if (isEmail) {\n return /^\\.[a-z]{2,}/i.test(textContent)\n } else {\n return /^\\.[a-z0-9]+/i.test(textContent)\n }\n}\n\nfunction isPreviousNodeValid(node: LexicalNode): boolean {\n let previousNode = node.getPreviousSibling()\n if ($isElementNode(previousNode)) {\n previousNode = previousNode.getLastDescendant()\n }\n return (\n previousNode === null ||\n $isLineBreakNode(previousNode) ||\n ($isTextNode(previousNode) && endsWithSeparator(previousNode.getTextContent()))\n )\n}\n\nfunction isNextNodeValid(node: LexicalNode): boolean {\n let nextNode = node.getNextSibling()\n if ($isElementNode(nextNode)) {\n nextNode = nextNode.getFirstDescendant()\n }\n return (\n nextNode === null ||\n $isLineBreakNode(nextNode) ||\n ($isTextNode(nextNode) && startsWithSeparator(nextNode.getTextContent()))\n )\n}\n\nfunction isContentAroundIsValid(\n matchStart: number,\n matchEnd: number,\n text: string,\n nodes: TextNode[],\n): boolean {\n const contentBeforeIsValid =\n matchStart > 0 ? isSeparator(text[matchStart - 1]) : isPreviousNodeValid(nodes[0]!)\n if (!contentBeforeIsValid) {\n return false\n }\n\n const contentAfterIsValid =\n matchEnd < text.length ? isSeparator(text[matchEnd]) : isNextNodeValid(nodes[nodes.length - 1]!)\n return contentAfterIsValid\n}\n\nfunction extractMatchingNodes(\n nodes: TextNode[],\n startIndex: number,\n endIndex: number,\n): [\n matchingOffset: number,\n unmodifiedBeforeNodes: TextNode[],\n matchingNodes: TextNode[],\n unmodifiedAfterNodes: TextNode[],\n] {\n const unmodifiedBeforeNodes: TextNode[] = []\n const matchingNodes: TextNode[] = []\n const unmodifiedAfterNodes: TextNode[] = []\n let matchingOffset = 0\n\n let currentOffset = 0\n const currentNodes = [...nodes]\n\n while (currentNodes.length > 0) {\n const currentNode = currentNodes[0]!\n const currentNodeText = currentNode.getTextContent()\n const currentNodeLength = currentNodeText.length\n const currentNodeStart = currentOffset\n const currentNodeEnd = currentOffset + currentNodeLength\n\n if (currentNodeEnd <= startIndex) {\n unmodifiedBeforeNodes.push(currentNode)\n matchingOffset += currentNodeLength\n } else if (currentNodeStart >= endIndex) {\n unmodifiedAfterNodes.push(currentNode)\n } else {\n matchingNodes.push(currentNode)\n }\n currentOffset += currentNodeLength\n currentNodes.shift()\n }\n return [matchingOffset, unmodifiedBeforeNodes, matchingNodes, unmodifiedAfterNodes]\n}\n\nfunction $createAutoLinkNode_(\n nodes: TextNode[],\n startIndex: number,\n endIndex: number,\n match: LinkMatcherResult,\n): TextNode | undefined {\n const fields = {\n linkType: 'custom',\n url: match.url,\n ...match.fields,\n } as LinkFields\n\n const linkNode = $createAutoLinkNode({ fields })\n if (nodes.length === 1) {\n const remainingTextNode = nodes[0]!\n let linkTextNode: TextNode | undefined\n if (startIndex === 0) {\n ;[linkTextNode] = remainingTextNode.splitText(endIndex)\n } else {\n ;[, linkTextNode] = remainingTextNode.splitText(startIndex, endIndex)\n }\n if (linkTextNode) {\n const textNode = $createTextNode(match.text)\n textNode.setFormat(linkTextNode.getFormat())\n textNode.setDetail(linkTextNode.getDetail())\n textNode.setStyle(linkTextNode.getStyle())\n linkNode.append(textNode)\n linkTextNode.replace(linkNode)\n }\n return remainingTextNode\n } else if (nodes.length > 1) {\n const firstTextNode = nodes[0]!\n let offset = firstTextNode.getTextContent().length\n let firstLinkTextNode\n if (startIndex === 0) {\n firstLinkTextNode = firstTextNode\n } else {\n ;[, firstLinkTextNode] = firstTextNode.splitText(startIndex)\n }\n const linkNodes: LexicalNode[] = []\n let remainingTextNode\n nodes.forEach((currentNode) => {\n const currentNodeText = currentNode.getTextContent()\n const currentNodeLength = currentNodeText.length\n const currentNodeStart = offset\n const currentNodeEnd = offset + currentNodeLength\n if (currentNodeStart < endIndex) {\n if (currentNodeEnd <= endIndex) {\n linkNodes.push(currentNode)\n } else {\n const [linkTextNode, endNode] = currentNode.splitText(endIndex - currentNodeStart)\n if (linkTextNode) {\n linkNodes.push(linkTextNode)\n }\n remainingTextNode = endNode\n }\n }\n offset += currentNodeLength\n })\n\n if (firstLinkTextNode) {\n const selection = $getSelection()\n const selectedTextNode = selection ? selection.getNodes().find($isTextNode) : undefined\n const textNode = $createTextNode(firstLinkTextNode.getTextContent())\n textNode.setFormat(firstLinkTextNode.getFormat())\n textNode.setDetail(firstLinkTextNode.getDetail())\n textNode.setStyle(firstLinkTextNode.getStyle())\n linkNode.append(textNode, ...linkNodes)\n // it does not preserve caret position if caret was at the first text node\n // so we need to restore caret position\n if (selectedTextNode && selectedTextNode === firstLinkTextNode) {\n if ($isRangeSelection(selection)) {\n textNode.select(selection.anchor.offset, selection.focus.offset)\n } else if ($isNodeSelection(selection)) {\n textNode.select(0, textNode.getTextContent().length)\n }\n }\n firstLinkTextNode.replace(linkNode)\n return remainingTextNode\n }\n }\n return undefined\n}\n\nfunction $handleLinkCreation(\n nodes: TextNode[],\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n let currentNodes = [...nodes]\n const initialText = currentNodes.map((node) => node.getTextContent()).join('')\n let text = initialText\n\n let match\n let invalidMatchEnd = 0\n\n while ((match = findFirstMatch(text, matchers)) != null && match !== null) {\n const matchStart: number = match.index\n const matchLength: number = match.length\n const matchEnd = matchStart + matchLength\n const isValid = isContentAroundIsValid(\n invalidMatchEnd + matchStart,\n invalidMatchEnd + matchEnd,\n initialText,\n currentNodes,\n )\n\n if (isValid) {\n const [matchingOffset, , matchingNodes, unmodifiedAfterNodes] = extractMatchingNodes(\n currentNodes,\n invalidMatchEnd + matchStart,\n invalidMatchEnd + matchEnd,\n )\n\n const actualMatchStart = invalidMatchEnd + matchStart - matchingOffset\n const actualMatchEnd = invalidMatchEnd + matchEnd - matchingOffset\n const remainingTextNode = $createAutoLinkNode_(\n matchingNodes,\n actualMatchStart,\n actualMatchEnd,\n match,\n )\n currentNodes = remainingTextNode\n ? [remainingTextNode, ...unmodifiedAfterNodes]\n : unmodifiedAfterNodes\n onChange(match.url, null)\n invalidMatchEnd = 0\n } else {\n invalidMatchEnd += matchEnd\n }\n\n text = text.substring(matchEnd)\n }\n}\n\nfunction handleLinkEdit(\n linkNode: AutoLinkNode,\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n // Check children are simple text\n const children = linkNode.getChildren()\n const childrenLength = children.length\n for (let i = 0; i < childrenLength; i++) {\n const child = children[i]\n if (!$isTextNode(child) || !child.isSimpleText()) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n }\n\n // Check text content fully matches\n const text = linkNode.getTextContent()\n const match = findFirstMatch(text, matchers)\n if (match === null || match.text !== text) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n\n // Check neighbors\n if (!isPreviousNodeValid(linkNode) || !isNextNodeValid(linkNode)) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n\n const url = linkNode.getFields()?.url\n if (url !== match?.url) {\n const flds = linkNode.getFields()\n flds.url = match?.url\n linkNode.setFields(flds)\n onChange(match.url, url ?? null)\n }\n}\n\n// Bad neighbors are edits in neighbor nodes that make AutoLinks incompatible.\n// Given the creation preconditions, these can only be simple text nodes.\nfunction handleBadNeighbors(\n textNode: TextNode,\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n const previousSibling = textNode.getPreviousSibling()\n const nextSibling = textNode.getNextSibling()\n const text = textNode.getTextContent()\n\n if ($isAutoLinkNode(previousSibling)) {\n const isEmailURI = previousSibling.getFields()?.url\n ? (previousSibling.getFields()?.url?.startsWith('mailto:') ?? false)\n : false\n if (!startsWithSeparator(text) || startsWithTLD(text, isEmailURI)) {\n previousSibling.append(textNode)\n handleLinkEdit(previousSibling, matchers, onChange)\n onChange(null, previousSibling.getFields()?.url ?? null)\n }\n }\n\n if ($isAutoLinkNode(nextSibling) && !endsWithSeparator(text)) {\n replaceWithChildren(nextSibling)\n handleLinkEdit(nextSibling, matchers, onChange)\n onChange(null, nextSibling.getFields()?.url ?? null)\n }\n}\n\nfunction replaceWithChildren(node: ElementNode): LexicalNode[] {\n const children = node.getChildren()\n const childrenLength = children.length\n\n for (let j = childrenLength - 1; j >= 0; j--) {\n node.insertAfter(children[j]!)\n }\n\n node.remove()\n return children.map((child) => child.getLatest())\n}\n\nfunction getTextNodesToMatch(textNode: TextNode): TextNode[] {\n // check if next siblings are simple text nodes till a node contains a space separator\n const textNodesToMatch = [textNode]\n let nextSibling = textNode.getNextSibling()\n while (nextSibling !== null && $isTextNode(nextSibling) && nextSibling.isSimpleText()) {\n textNodesToMatch.push(nextSibling)\n if (/\\s/.test(nextSibling.getTextContent())) {\n break\n }\n nextSibling = nextSibling.getNextSibling()\n }\n return textNodesToMatch\n}\n\nfunction useAutoLink(\n editor: LexicalEditor,\n matchers: LinkMatcher[],\n onChange?: ChangeHandler,\n): void {\n useEffect(() => {\n if (!editor.hasNodes([AutoLinkNode])) {\n throw new Error('LexicalAutoLinkPlugin: AutoLinkNode not registered on editor')\n }\n\n const onChangeWrapped = (url: null | string, prevUrl: null | string): void => {\n if (onChange != null) {\n onChange(url, prevUrl)\n }\n }\n\n return mergeRegister(\n editor.registerNodeTransform(TextNodeValue, (textNode: TextNode) => {\n const parent = textNode.getParentOrThrow()\n const previous = textNode.getPreviousSibling()\n if ($isAutoLinkNode(parent)) {\n handleLinkEdit(parent, matchers, onChangeWrapped)\n } else if (!$isLinkNode(parent)) {\n if (\n textNode.isSimpleText() &&\n (startsWithSeparator(textNode.getTextContent()) || !$isAutoLinkNode(previous))\n ) {\n const textNodesToMatch = getTextNodesToMatch(textNode)\n $handleLinkCreation(textNodesToMatch, matchers, onChangeWrapped)\n }\n\n handleBadNeighbors(textNode, matchers, onChangeWrapped)\n }\n }),\n )\n }, [editor, matchers, onChange])\n}\n\nconst URL_REGEX =\n /((https?:\\/\\/(www\\.)?)|(www\\.))[-\\w@:%.+~#=]{1,256}\\.[a-zA-Z\\d()]{1,6}\\b([-\\w()@:%+.~#?&/=]*)(?<![-.+():%])/\n\nconst EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\])|(([a-z\\-\\d]+\\.)+[a-z]{2,}))/i\n\nconst MATCHERS = [\n createLinkMatcherWithRegExp(URL_REGEX, (text) => {\n return text.startsWith('http') ? text : `https://${text}`\n }),\n createLinkMatcherWithRegExp(EMAIL_REGEX, (text) => {\n return `mailto:${text}`\n }),\n]\n\nexport const AutoLinkPlugin: PluginComponent<ClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n\n useAutoLink(editor, MATCHERS)\n\n return null\n}\n", "'use client'\nimport { ClickableLinkPlugin as LexicalClickableLinkPlugin } from '@lexical/react/LexicalClickableLinkPlugin.js'\nimport React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { ClientProps } from '../../index.js'\n\nexport const ClickableLinkPlugin: PluginComponent<ClientProps> = () => {\n return <LexicalClickableLinkPlugin />\n}\n", "'use client'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ClientProps } from '../../index.js'\n\nimport './index.scss'\nimport { LinkEditor } from './LinkEditor/index.js'\n\nexport const FloatingLinkEditorPlugin: PluginComponentWithAnchor<ClientProps> = (props) => {\n const { anchorElem = document.body } = props\n\n return createPortal(<LinkEditor anchorElem={anchorElem} />, anchorElem)\n}\n", "'use client'\nimport type { ElementNode, LexicalNode } from 'lexical'\nimport type { Data, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CloseMenuIcon,\n EditIcon,\n ExternalLinkIcon,\n formatDrawerSlug,\n useConfig,\n useEditDepth,\n useLocale,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport {\n $getSelection,\n $isLineBreakNode,\n $isRangeSelection,\n COMMAND_PRIORITY_HIGH,\n COMMAND_PRIORITY_LOW,\n getDOMSelection,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { LinkNode } from '../../../../nodes/LinkNode.js'\nimport type { LinkFields } from '../../../../nodes/types.js'\nimport type { LinkPayload } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js'\nimport { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js'\nimport { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDrawer } from '../../../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js'\nimport { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'\n\nfunction preventDefault(\n event: React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLElement>,\n): void {\n event.preventDefault()\n}\n\nexport function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n // TO-DO: There are several states that should not be state, because they\n // are derived from linkNode (linkUrl, linkLabel, stateData, isLink, isAutoLink...)\n const [linkNode, setLinkNode] = useState<LinkNode>()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const [linkUrl, setLinkUrl] = useState<null | string>(null)\n const [linkLabel, setLinkLabel] = useState<null | string>(null)\n\n const {\n fieldProps: { schemaPath },\n uuid,\n } = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n\n const { config, getEntityConfig } = useConfig()\n\n const { i18n, t } = useTranslation<object, 'lexical:link:loadingWithEllipsis'>()\n\n const [stateData, setStateData] = useState<\n ({ id?: string; text: string } & LinkFields) | undefined\n >()\n\n const editDepth = useEditDepth()\n const [isLink, setIsLink] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n const locale = useLocale()\n\n const [isAutoLink, setIsAutoLink] = useState(false)\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-link-` + uuid,\n depth: editDepth,\n })\n\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n const setNotLink = useCallback(() => {\n setIsLink(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setIsAutoLink(false)\n setLinkUrl(null)\n setLinkLabel(null)\n setSelectedNodes([])\n setStateData(undefined)\n }, [setIsLink, setLinkUrl, setLinkLabel, setSelectedNodes])\n\n const $updateLinkEditor = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined\n\n if (!$isRangeSelection(selection) || !selection) {\n void setNotLink()\n return\n }\n\n // Handle the data displayed in the floating link editor & drawer when you click on a link node\n\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusLinkParent = $findMatchingParent(focusNode, $isLinkNode)\n\n // Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const linkNode = $findMatchingParent(node, $isLinkNode)\n return (\n (focusLinkParent && !focusLinkParent.is(linkNode)) ||\n (linkNode && !linkNode.is(focusLinkParent))\n )\n })\n\n if (focusLinkParent == null || badNode) {\n setNotLink()\n return\n }\n setLinkNode(focusLinkParent)\n\n const fields = focusLinkParent.getFields()\n\n // Initial state:\n const data: { text: string } & LinkFields = {\n ...fields,\n id: focusLinkParent.getID(),\n text: focusLinkParent.getTextContent(),\n }\n\n if (fields?.linkType === 'custom') {\n setLinkUrl(fields?.url ?? null)\n setLinkLabel(null)\n } else {\n // internal link\n setLinkUrl(\n `${config.routes.admin === '/' ? '' : config.routes.admin}/collections/${fields?.doc?.relationTo}/${\n fields?.doc?.value\n }`,\n )\n\n const relatedField = fields?.doc?.relationTo\n ? getEntityConfig({ collectionSlug: fields?.doc?.relationTo })\n : undefined\n if (!relatedField) {\n // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.\n // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.\n setLinkLabel(fields?.label ? String(fields?.label) : null)\n setLinkUrl(fields?.url ? String(fields?.url) : null)\n } else {\n const id = typeof fields.doc?.value === 'object' ? fields.doc.value.id : fields.doc?.value\n const collection = fields.doc?.relationTo\n if (!id || !collection) {\n throw new Error(`Focus link parent is missing doc.value or doc.relationTo`)\n }\n\n const loadingLabel = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('lexical:link:loadingWithEllipsis', i18n)}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(loadingLabel)\n\n requests\n .get(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${collection}/${id}`,\n serverURL: config.serverURL,\n }),\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n params: {\n depth: 0,\n locale: locale?.code,\n },\n },\n )\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP error! Status: ${res.status}`)\n }\n const data = await res.json()\n const useAsTitle = relatedField?.admin?.useAsTitle || 'id'\n const title = data[useAsTitle]\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${title}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n .catch(() => {\n const label = t('fields:linkedTo', {\n label: `${getTranslation(relatedField.labels.singular, i18n)} - ${t('general:untitled', i18n)} - ID: ${id}`,\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n })\n }\n }\n\n setStateData(data)\n setIsLink(true)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n\n if ($isAutoLinkNode(focusLinkParent)) {\n setIsAutoLink(true)\n } else {\n setIsAutoLink(false)\n }\n\n const editorElem = editorRef.current\n const nativeSelection = getDOMSelection(editor._window)\n const { activeElement } = document\n\n if (editorElem === null) {\n return\n }\n\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n if (!selectedNodeDomRect) {\n // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong\n // result, which is why we use lexical's selection preferably.\n selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect()\n }\n\n if (selectedNodeDomRect != null) {\n selectedNodeDomRect.y += 40\n setFloatingElemPositionForLinkEditor(selectedNodeDomRect, editorElem, anchorElem)\n }\n } else if (activeElement == null || activeElement.className !== 'link-input') {\n if (rootElement !== null) {\n setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem)\n }\n setLinkUrl(null)\n setLinkLabel(null)\n }\n\n return true\n }, [\n editor,\n setNotLink,\n config.routes.admin,\n config.routes.api,\n config.serverURL,\n getEntityConfig,\n t,\n i18n,\n locale?.code,\n anchorElem,\n ])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_WITH_MODAL_COMMAND,\n (payload: LinkPayload) => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload)\n\n // Now, open the modal\n $updateLinkEditor()\n toggleDrawer()\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateLinkEditor, toggleDrawer, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }\n\n window.addEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [anchorElem.parentElement, editor, $updateLinkEditor])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateLinkEditor()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n void $updateLinkEditor()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n () => {\n if (isLink) {\n setNotLink()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateLinkEditor, isLink, setNotLink])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }, [editor, $updateLinkEditor])\n\n return (\n <React.Fragment>\n <div className=\"link-editor\" ref={editorRef}>\n <div className=\"link-input\">\n {linkUrl && linkUrl.length > 0 ? (\n <a href={linkUrl} rel=\"noopener noreferrer\" target=\"_blank\">\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n {linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl}\n </a>\n ) : linkLabel != null && linkLabel.length > 0 ? (\n <>\n {linkNode?.__fields.newTab ? <ExternalLinkIcon /> : null}\n <span className=\"link-input__label-pure\">{linkLabel}</span>\n </>\n ) : null}\n\n {isEditable && (\n <React.Fragment>\n <button\n aria-label=\"Edit link\"\n className=\"link-edit\"\n onClick={(event) => {\n event.preventDefault()\n toggleDrawer()\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <EditIcon />\n </button>\n {!isAutoLink && (\n <button\n aria-label=\"Remove link\"\n className=\"link-trash\"\n onClick={() => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }}\n onMouseDown={preventDefault}\n tabIndex={0}\n type=\"button\"\n >\n <CloseMenuIcon />\n </button>\n )}\n </React.Fragment>\n )}\n </div>\n </div>\n <FieldsDrawer\n className=\"lexical-link-edit-drawer\"\n data={stateData}\n drawerSlug={drawerSlug}\n drawerTitle={t('fields:editLink')}\n featureKey=\"link\"\n handleDrawerSubmit={(fields: FormState, data: Data) => {\n const newLinkPayload = data as { text: string } & LinkFields\n\n const bareLinkFields: LinkFields = {\n ...newLinkPayload,\n }\n delete bareLinkFields.text\n\n // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).\n editor.update(() => {\n const selection = $getSelection()\n let linkParent: ElementNode | null = null\n if ($isRangeSelection(selection)) {\n linkParent = getSelectedNode(selection).getParent()\n } else {\n if (selectedNodes.length) {\n linkParent = selectedNodes[0]?.getParent() ?? null\n }\n }\n\n if (linkParent && $isAutoLinkNode(linkParent)) {\n const linkNode = $createLinkNode({\n fields: bareLinkFields,\n })\n linkParent.replace(linkNode, true)\n }\n })\n\n // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to\n // it being applied to the auto link node instead of the link node.\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: bareLinkFields,\n selectedNodes,\n text: newLinkPayload.text,\n })\n }}\n schemaPath={schemaPath}\n schemaPathSuffix=\"fields\"\n />\n </React.Fragment>\n )\n}\n", "'use client'\nconst VERTICAL_GAP = 10\nconst HORIZONTAL_OFFSET = 5\n\nexport function setFloatingElemPositionForLinkEditor(\n targetRect: DOMRect | null,\n floatingElem: HTMLElement,\n anchorElem: HTMLElement,\n verticalGap: number = VERTICAL_GAP,\n horizontalOffset: number = HORIZONTAL_OFFSET,\n): void {\n const scrollerElem = anchorElem.parentElement\n\n if (targetRect === null || scrollerElem == null) {\n floatingElem.style.opacity = '0'\n floatingElem.style.transform = 'translate(-10000px, -10000px)'\n return\n }\n\n const floatingElemRect = floatingElem.getBoundingClientRect()\n const anchorElementRect = anchorElem.getBoundingClientRect()\n const editorScrollerRect = scrollerElem.getBoundingClientRect()\n\n let top = targetRect.top - verticalGap\n let left = targetRect.left - horizontalOffset\n\n if (top < editorScrollerRect.top) {\n top += floatingElemRect.height + targetRect.height + verticalGap * 2\n }\n\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n }\n\n top -= anchorElementRect.top\n left -= anchorElementRect.left\n\n floatingElem.style.opacity = '1'\n floatingElem.style.transform = `translate(${left}px, ${top}px)`\n}\n", "'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { createCommand } from 'lexical'\n\nimport type { LinkPayload } from '../types.js'\n\nexport const TOGGLE_LINK_WITH_MODAL_COMMAND: LexicalCommand<LinkPayload | null> = createCommand(\n 'TOGGLE_LINK_WITH_MODAL_COMMAND',\n)\n", "'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n COMMAND_PRIORITY_LOW,\n PASTE_COMMAND,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { LinkFields } from '../../../nodes/types.js'\nimport type { ClientProps } from '../../index.js'\nimport type { LinkPayload } from '../floatingLinkEditor/types.js'\n\nimport { validateUrl } from '../../../../../lexical/utils/url.js'\nimport { $toggleLink, LinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode.js'\n\nexport const LinkPlugin: PluginComponent<ClientProps> = ({ clientProps }) => {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n if (!editor.hasNodes([LinkNode])) {\n throw new Error('LinkPlugin: LinkNode not registered on editor')\n }\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_COMMAND,\n (payload: LinkPayload) => {\n if (payload === null) {\n $toggleLink(null)\n return true\n }\n if (!payload.fields?.linkType) {\n payload.fields.linkType = clientProps.defaultLinkType as any\n }\n if (!payload.fields?.url) {\n payload.fields.url = clientProps.defaultLinkURL as any\n }\n $toggleLink(payload as { fields: LinkFields } & LinkPayload)\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n PASTE_COMMAND,\n (event) => {\n const selection = $getSelection()\n if (\n !$isRangeSelection(selection) ||\n selection.isCollapsed() ||\n !(event instanceof ClipboardEvent) ||\n event.clipboardData == null\n ) {\n return false\n }\n const clipboardText = event.clipboardData.getData('text')\n if (!validateUrl(clipboardText)) {\n return false\n }\n // If we select nodes that are elements then avoid applying the link.\n if (!selection.getNodes().some((node) => $isElementNode(node))) {\n const linkFields: LinkFields = {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: clipboardText,\n }\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: linkFields,\n text: null,\n })\n event.preventDefault()\n return true\n }\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [clientProps.defaultLinkType, clientProps.defaultLinkURL, editor])\n\n return null\n}\n", "export function sanitizeUrl(url: string): string {\n /** A pattern that matches safe URLs. */\n const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi\n\n /** A pattern that matches safe data URLs. */\n const DATA_URL_PATTERN =\n /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z\\d+/]+=*$/i\n\n url = String(url).trim()\n\n if (url.match(SAFE_URL_PATTERN) != null || url.match(DATA_URL_PATTERN) != null) {\n return url\n }\n\n return 'https://'\n}\n\n/**\n * This regex checks for absolute URLs in a string. Tested for the following use cases:\n * - http://example.com\n * - https://example.com\n * - ftp://files.example.com\n * - http://example.com/resource\n * - https://example.com/resource?key=value\n * - http://example.com/resource#anchor\n * - http://www.example.com\n * - https://sub.example.com/path/file\n * - mailto:\n */\nexport const absoluteRegExp =\n /^(?:[a-zA-Z][a-zA-Z\\d+.-]*:(?:\\/\\/)?(?:[-;:&=+$,\\w]+@)?[A-Za-z\\d]+(?:\\.[A-Za-z\\d]+)+|www\\.[A-Za-z\\d]+(?:\\.[A-Za-z\\d]+)+|(?:tel|mailto):[\\w+.-]+)(?:\\/[+~%/\\w-]*)?(?:\\?[-;&=%\\w]*)?(?:#\\w+)?$/\n\n/**\n * This regex checks for relative URLs starting with / or anchor links starting with # in a string. Tested for the following use cases:\n * - /privacy-policy\n * - /privacy-policy#primary-terms\n * - #primary-terms\n * - /page?id=123\n * - /page?id=123#section\n * */\nexport const relativeOrAnchorRegExp = /^(?:\\/[\\w\\-./]*(?:\\?[-;&=%\\w]*)?(?:#[\\w-]+)?|#[\\w\\-]+)$/\n\n/**\n * Prevents unreasonable URLs from being inserted into the editor.\n * @param url\n */\nexport function validateUrlMinimal(url: string): boolean {\n if (!url) {\n return false\n }\n\n return !url.includes(' ')\n}\n\n// Do not keep validateUrl function too loose. This is run when pasting in text, to determine if links are in that text and if it should create AutoLinkNodes.\n// This is why we do not allow stuff like anchors here, as we don't want copied anchors to be turned into AutoLinkNodes.\nexport function validateUrl(url: string): boolean {\n // TODO Fix UI for link insertion; it should never default to an invalid URL such as https://.\n // Maybe show a dialog where they user can type the URL before inserting it.\n if (!url) {\n return false\n }\n\n // Reject URLs with spaces\n if (url.includes(' ')) {\n return false\n }\n\n // Reject malformed protocol URLs (e.g., http:/example.com instead of http://example.com)\n if (/^[a-z][a-z\\d+.-]*:\\/[^/]/i.test(url)) {\n return false\n }\n\n if (url === 'https://') {\n return true\n }\n\n // This makes sure URLs starting with www. instead of https are valid too\n if (absoluteRegExp.test(url)) {\n return true\n }\n\n // Check relative or anchor links\n if (relativeOrAnchorRegExp.test(url)) {\n return true\n }\n\n // While this doesn't allow URLs starting with www (which is why we use the regex above), it does properly handle tel: URLs\n try {\n const urlObj = new URL(url)\n // For http/https/ftp protocols, require a proper domain with at least one dot (for TLD)\n if (['ftp:', 'http:', 'https:'].includes(urlObj.protocol)) {\n if (!urlObj.hostname.includes('.')) {\n return false\n }\n }\n return true\n } catch {\n /* empty */\n }\n\n return false\n}\n", "'use client'\nimport { $isListNode, INSERT_CHECK_LIST_COMMAND, ListItemNode, ListNode } from '@lexical/list'\nimport { $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../../toolbars/types.js'\nimport type { ClientFeature } from '../../../typesClient.js'\n\nimport { ChecklistIcon } from '../../../../lexical/ui/icons/Checklist/index.js'\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../../shared/toolbar/textDropdownGroup.js'\nimport { LexicalListPlugin } from '../../plugin/index.js'\nimport { shouldRegisterListBaseNodes } from '../../shared/shouldRegisterListBaseNodes.js'\nimport { slashMenuListGroupWithItems } from '../../shared/slashMenuListGroup.js'\nimport { CHECK_LIST } from '../markdownTransformers.js'\nimport { LexicalCheckListPlugin } from './plugin/index.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems([\n {\n ChildComponent: ChecklistIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isListNode(node) && node.getListType() === 'check') {\n continue\n }\n\n const parent = node.getParent()\n\n if ($isListNode(parent) && parent.getListType() === 'check') {\n continue\n }\n\n const parentParent = parent?.getParent()\n // Example scenario: Node = textNode, parent = listItemNode, parentParent = listNode\n if ($isListNode(parentParent) && parentParent.getListType() === 'check') {\n continue\n }\n\n return false\n }\n return true\n },\n key: 'checklist',\n label: ({ i18n }) => {\n return i18n.t('lexical:checklist:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_CHECK_LIST_COMMAND, undefined)\n },\n order: 12,\n },\n ]),\n]\n\nexport const ChecklistFeatureClient = createClientFeature(({ featureProviderMap }) => {\n const plugins: ClientFeature<undefined>['plugins'] = [\n {\n Component: LexicalCheckListPlugin,\n position: 'normal',\n },\n ]\n\n const shouldRegister = shouldRegisterListBaseNodes('checklist', featureProviderMap)\n if (shouldRegister) {\n plugins.push({\n Component: LexicalListPlugin,\n position: 'normal',\n })\n }\n\n return {\n markdownTransformers: [CHECK_LIST],\n nodes: shouldRegister ? [ListNode, ListItemNode] : [],\n plugins,\n slashMenu: {\n groups: [\n slashMenuListGroupWithItems([\n {\n Icon: ChecklistIcon,\n key: 'checklist',\n keywords: ['check list', 'check', 'checklist', 'cl'],\n label: ({ i18n }) => {\n return i18n.t('lexical:checklist:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_CHECK_LIST_COMMAND, undefined)\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n }\n})\n", "'use client'\nimport React from 'react'\n\nexport const ChecklistIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect height=\"13\" rx=\"1.5\" stroke=\"currentColor\" width=\"13\" x=\"3.5\" y=\"3.5\" />\n <path d=\"M7 10L9 12.5L13 7.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "'use client'\nimport type {\n SerializedListItemNode as _SerializedListItemNode,\n SerializedListNode as _SerializedListNode,\n} from '@lexical/list'\nimport type { SerializedLexicalNode } from 'lexical'\n\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin.js'\nimport React from 'react'\n\nimport type { StronglyTypedElementNode } from '../../../nodeTypes.js'\nimport type { PluginComponent } from '../../typesClient.js'\n\nexport type SerializedListItemNode<T extends SerializedLexicalNode = SerializedLexicalNode> = {\n checked?: boolean\n} & StronglyTypedElementNode<_SerializedListItemNode, 'listitem', T>\n\nexport type SerializedListNode<T extends SerializedLexicalNode = SerializedLexicalNode> = {\n checked?: boolean\n} & StronglyTypedElementNode<_SerializedListNode, 'list', T>\n\nexport const LexicalListPlugin: PluginComponent<undefined> = () => {\n return <ListPlugin />\n}\n", "// Priority order: unordered > ordered > checklist.\n// That's why we don't include unordered among the parameter options. It registers by default.\nexport function shouldRegisterListBaseNodes(\n type: 'checklist' | 'ordered',\n featureProviderMap: Map<string, unknown>,\n) {\n if (type === 'ordered') {\n // OrderedList only registers if UnorderedList is NOT present\n return !featureProviderMap.has('unorderedList')\n }\n\n if (type === 'checklist') {\n // Checklist only registers if neither UnorderedList nor OrderedList are present\n return !featureProviderMap.has('unorderedList') && !featureProviderMap.has('orderedList')\n }\n\n return false\n}\n", "import type {\n SlashMenuGroup,\n SlashMenuItem,\n} from '../../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\n\nexport function slashMenuListGroupWithItems(items: SlashMenuItem[]): SlashMenuGroup {\n return {\n items,\n key: 'lists',\n label: ({ i18n }) => {\n return i18n.t('lexical:general:slashMenuListGroupLabel')\n },\n }\n}\n", "import { $isListNode, ListItemNode, ListNode } from '@lexical/list'\n\nimport type { ElementTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nimport { listExport, listReplace } from '../shared/markdown.js'\n\nexport const CHECK_LIST: ElementTransformer = {\n type: 'element',\n dependencies: [ListNode, ListItemNode],\n export: (node, exportChildren) => {\n return $isListNode(node) ? listExport(node, exportChildren, 0) : null\n },\n regExp: /^(\\s*)(?:-\\s)?\\s?(\\[(\\s|x)?\\])\\s/i,\n replace: listReplace('check'),\n}\n", "// Copied from https://github.com/facebook/lexical/blob/176b8cf16ecb332ee5efe2c75219e223b7b019f2/packages/lexical-markdown/src/MarkdownTransformers.ts#L97C1-L172C1\n\nimport type { ListNode, ListType } from '@lexical/list'\nimport type { ElementNode } from 'lexical'\n\nimport { $createListItemNode, $createListNode, $isListItemNode, $isListNode } from '@lexical/list'\n\nimport type { ElementTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\n// Amount of spaces that define indentation level\nconst LIST_INDENT_SIZE = 4\n\nexport const listReplace = (listType: ListType): ElementTransformer['replace'] => {\n return (parentNode, children, match) => {\n const previousNode = parentNode.getPreviousSibling()\n const nextNode = parentNode.getNextSibling()\n const listItem = $createListItemNode(listType === 'check' ? match[3] === 'x' : undefined)\n if ($isListNode(nextNode) && nextNode.getListType() === listType) {\n const firstChild = nextNode.getFirstChild()\n if (firstChild !== null) {\n firstChild.insertBefore(listItem)\n } else {\n // should never happen, but let's handle gracefully, just in case.\n nextNode.append(listItem)\n }\n parentNode.remove()\n } else if ($isListNode(previousNode) && previousNode.getListType() === listType) {\n previousNode.append(listItem)\n parentNode.remove()\n } else {\n const list = $createListNode(listType, listType === 'number' ? Number(match[2]) : undefined)\n list.append(listItem)\n parentNode.replace(list)\n }\n listItem.append(...children)\n listItem.select(0, 0)\n const indent = Math.floor(match[1]!.length / LIST_INDENT_SIZE)\n if (indent) {\n listItem.setIndent(indent)\n }\n }\n}\n\nexport const listExport = (\n listNode: ListNode,\n exportChildren: (node: ElementNode) => string,\n depth: number,\n): string => {\n const output: string[] = []\n const children = listNode.getChildren()\n let index = 0\n for (const listItemNode of children) {\n if ($isListItemNode(listItemNode)) {\n if (listItemNode.getChildrenSize() === 1) {\n const firstChild = listItemNode.getFirstChild()\n if ($isListNode(firstChild)) {\n output.push(listExport(firstChild, exportChildren, depth + 1))\n continue\n }\n }\n const indent = ' '.repeat(depth * LIST_INDENT_SIZE)\n const listType = listNode.getListType()\n const prefix =\n listType === 'number'\n ? `${listNode.getStart() + index}. `\n : listType === 'check'\n ? `- [${listItemNode.getChecked() ? 'x' : ' '}] `\n : '- '\n output.push(indent + prefix + exportChildren(listItemNode))\n index++\n }\n }\n\n return output.join('\\n')\n}\n", "'use client'\nimport { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin.js'\nimport React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nexport const LexicalCheckListPlugin: PluginComponent<undefined> = () => {\n return <CheckListPlugin />\n}\n", "'use client'\nimport { $isListNode, INSERT_ORDERED_LIST_COMMAND, ListItemNode, ListNode } from '@lexical/list'\nimport { $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../../toolbars/types.js'\n\nimport { OrderedListIcon } from '../../../../lexical/ui/icons/OrderedList/index.js'\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../../shared/toolbar/textDropdownGroup.js'\nimport { LexicalListPlugin } from '../../plugin/index.js'\nimport { shouldRegisterListBaseNodes } from '../../shared/shouldRegisterListBaseNodes.js'\nimport { slashMenuListGroupWithItems } from '../../shared/slashMenuListGroup.js'\nimport { ORDERED_LIST } from '../markdownTransformer.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems([\n {\n ChildComponent: OrderedListIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isListNode(node) && node.getListType() === 'number') {\n continue\n }\n\n const parent = node.getParent()\n\n if ($isListNode(parent) && parent.getListType() === 'number') {\n continue\n }\n\n const parentParent = parent?.getParent()\n // Example scenario: Node = textNode, parent = listItemNode, parentParent = listNode\n if ($isListNode(parentParent) && parentParent.getListType() === 'number') {\n continue\n }\n\n return false\n }\n return true\n },\n key: 'orderedList',\n label: ({ i18n }) => {\n return i18n.t('lexical:orderedList:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined)\n },\n order: 10,\n },\n ]),\n]\n\nexport const OrderedListFeatureClient = createClientFeature(({ featureProviderMap }) => {\n const shouldRegister = shouldRegisterListBaseNodes('ordered', featureProviderMap)\n return {\n markdownTransformers: [ORDERED_LIST],\n nodes: shouldRegister ? [ListNode, ListItemNode] : [],\n plugins: shouldRegister\n ? [\n {\n Component: LexicalListPlugin,\n position: 'normal',\n },\n ]\n : [],\n slashMenu: {\n groups: [\n slashMenuListGroupWithItems([\n {\n Icon: OrderedListIcon,\n key: 'orderedList',\n keywords: ['ordered list', 'ol'],\n label: ({ i18n }) => {\n return i18n.t('lexical:orderedList:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined)\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n }\n})\n", "'use client'\nimport React from 'react'\n\nexport const OrderedListIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.89284 12.479C5.89284 13.368 5.26284 13.788 4.38084 14.236C3.75084 14.558 3.43584 14.789 3.40784 15.062H5.89984V16H2.06384V15.573C2.06384 14.523 2.92484 13.935 3.66684 13.501C4.38084 13.088 4.75184 12.878 4.75184 12.458C4.75184 12.08 4.52084 11.835 4.06584 11.835C3.58984 11.835 3.30984 12.199 3.28184 12.654H2.11284C2.18984 11.681 2.87584 10.918 4.07284 10.918C5.15784 10.918 5.89284 11.555 5.89284 12.479Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M2.68608 4.535V3.737C3.54008 3.737 3.90408 3.513 4.02308 2.995H4.89108V8H3.68008L3.68008 4.535H2.68608Z\"\n fill=\"currentColor\"\n />\n <path d=\"M8 15L17 15\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 10L17 10\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 5L17 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "import { $isListNode, ListItemNode, ListNode } from '@lexical/list'\n\nimport type { ElementTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nimport { listExport, listReplace } from '../shared/markdown.js'\n\nexport const ORDERED_LIST: ElementTransformer = {\n type: 'element',\n dependencies: [ListNode, ListItemNode],\n export: (node, exportChildren) => {\n return $isListNode(node) ? listExport(node, exportChildren, 0) : null\n },\n regExp: /^(\\s*)(\\d+)\\.\\s/,\n replace: listReplace('number'),\n}\n", "'use client'\n\nimport { $isListNode, INSERT_UNORDERED_LIST_COMMAND, ListItemNode, ListNode } from '@lexical/list'\nimport { $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../../toolbars/types.js'\n\nimport { UnorderedListIcon } from '../../../../lexical/ui/icons/UnorderedList/index.js'\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../../shared/toolbar/textDropdownGroup.js'\nimport { LexicalListPlugin } from '../../plugin/index.js'\nimport { slashMenuListGroupWithItems } from '../../shared/slashMenuListGroup.js'\nimport { UNORDERED_LIST } from '../markdownTransformer.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems([\n {\n ChildComponent: UnorderedListIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isListNode(node) && node.getListType() === 'bullet') {\n continue\n }\n\n const parent = node.getParent()\n\n if ($isListNode(parent) && parent.getListType() === 'bullet') {\n continue\n }\n\n const parentParent = parent?.getParent()\n // Example scenario: Node = textNode, parent = listItemNode, parentParent = listNode\n if ($isListNode(parentParent) && parentParent.getListType() === 'bullet') {\n continue\n }\n\n return false\n }\n return true\n },\n key: 'unorderedList',\n label: ({ i18n }) => {\n return i18n.t('lexical:unorderedList:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined)\n },\n order: 11,\n },\n ]),\n]\n\nexport const UnorderedListFeatureClient = createClientFeature({\n markdownTransformers: [UNORDERED_LIST],\n nodes: [ListNode, ListItemNode],\n plugins: [\n {\n Component: LexicalListPlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n groups: [\n slashMenuListGroupWithItems([\n {\n Icon: UnorderedListIcon,\n key: 'unorderedList',\n keywords: ['unordered list', 'ul'],\n label: ({ i18n }) => {\n return i18n.t('lexical:unorderedList:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined)\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const UnorderedListIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"4\" cy=\"5\" fill=\"currentColor\" r=\"1.15\" stroke=\"currentColor\" strokeWidth=\"0.3\" />\n <circle cx=\"4\" cy=\"10\" fill=\"currentColor\" r=\"1.15\" stroke=\"currentColor\" strokeWidth=\"0.3\" />\n <circle cx=\"4\" cy=\"15\" fill=\"currentColor\" r=\"1.15\" stroke=\"currentColor\" strokeWidth=\"0.3\" />\n <path d=\"M17 5H7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M17 10H7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M17 15H7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "import { $isListNode, ListItemNode, ListNode } from '@lexical/list'\n\nimport type { ElementTransformer } from '../../../packages/@lexical/markdown/MarkdownTransformers.js'\n\nimport { listExport, listReplace } from '../shared/markdown.js'\n\nexport const UNORDERED_LIST: ElementTransformer = {\n type: 'element',\n dependencies: [ListNode, ListItemNode],\n export: (node, exportChildren) => {\n return $isListNode(node) ? listExport(node, exportChildren, 0) : null\n },\n regExp: /^(\\s*)[-*+]\\s/,\n replace: listReplace('bullet'),\n}\n", "import type { EditorConfig, LexicalNode, NodeKey, SerializedLexicalNode, Spread } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { $applyNodeReplacement, DecoratorNode } from 'lexical'\nimport * as React from 'react'\n\nexport type UnknownConvertedNodeData = {\n nodeData: unknown\n nodeType: string\n}\n\nexport type SerializedUnknownConvertedNode = Spread<\n {\n data: UnknownConvertedNodeData\n },\n SerializedLexicalNode\n>\n\nconst Component = React.lazy(() =>\n import('./Component.js').then((module) => ({\n default: module.UnknownConvertedNodeComponent,\n })),\n)\n\n/** @noInheritDoc */\nexport class UnknownConvertedNode extends DecoratorNode<JSX.Element> {\n __data: UnknownConvertedNodeData\n\n constructor({ data, key }: { data: UnknownConvertedNodeData; key?: NodeKey }) {\n super(key)\n this.__data = data\n }\n\n static override clone(node: UnknownConvertedNode): UnknownConvertedNode {\n return new this({\n data: node.__data,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'unknownConverted'\n }\n\n static override importJSON(serializedNode: SerializedUnknownConvertedNode): UnknownConvertedNode {\n const node = $createUnknownConvertedNode({ data: serializedNode.data })\n return node\n }\n\n canInsertTextAfter(): true {\n return true\n }\n\n canInsertTextBefore(): true {\n return true\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement('span')\n addClassNamesToElement(element, 'unknownConverted')\n return element\n }\n\n override decorate(): JSX.Element {\n return <Component data={this.__data} />\n }\n\n override exportJSON(): SerializedUnknownConvertedNode {\n return {\n type: this.getType(),\n data: this.__data,\n version: 1,\n }\n }\n\n // Mutation\n\n override isInline(): boolean {\n return true\n }\n\n override updateDOM(prevNode: this, dom: HTMLElement): boolean {\n return false\n }\n}\n\nexport function $createUnknownConvertedNode({\n data,\n}: {\n data: UnknownConvertedNodeData\n}): UnknownConvertedNode {\n return $applyNodeReplacement(\n new UnknownConvertedNode({\n data,\n }),\n )\n}\n\nexport function $isUnknownConvertedNode(\n node: LexicalNode | null | undefined,\n): node is UnknownConvertedNode {\n return node instanceof UnknownConvertedNode\n}\n", "'use client'\n\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { UnknownConvertedNode } from './nodes/unknownConvertedNode/index.js'\n\nexport const LexicalPluginToLexicalFeatureClient = createClientFeature(() => {\n return {\n nodes: [UnknownConvertedNode],\n }\n})\n", "import type { EditorConfig, LexicalNode, NodeKey, SerializedLexicalNode, Spread } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { $applyNodeReplacement, DecoratorNode } from 'lexical'\nimport * as React from 'react'\n\nexport type UnknownConvertedNodeData = {\n nodeData: unknown\n nodeType: string\n}\n\nexport type SerializedUnknownConvertedNode = Spread<\n {\n data: UnknownConvertedNodeData\n },\n SerializedLexicalNode\n>\n\nconst Component = React.lazy(() =>\n import('./Component.js').then((module) => ({\n default: module.UnknownConvertedNodeComponent,\n })),\n)\n\n/** @noInheritDoc */\nexport class UnknownConvertedNode extends DecoratorNode<JSX.Element> {\n __data: UnknownConvertedNodeData\n\n constructor({ data, key }: { data: UnknownConvertedNodeData; key?: NodeKey }) {\n super(key)\n this.__data = data\n }\n\n static override clone(node: UnknownConvertedNode): UnknownConvertedNode {\n return new this({\n data: node.__data,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'unknownConverted'\n }\n\n static override importJSON(serializedNode: SerializedUnknownConvertedNode): UnknownConvertedNode {\n const node = $createUnknownConvertedNode({ data: serializedNode.data })\n return node\n }\n\n canInsertTextAfter(): true {\n return true\n }\n\n canInsertTextBefore(): true {\n return true\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement('span')\n addClassNamesToElement(element, 'unknownConverted')\n return element\n }\n\n override decorate(): JSX.Element {\n return <Component data={this.__data} />\n }\n\n override exportJSON(): SerializedUnknownConvertedNode {\n return {\n type: this.getType(),\n data: this.__data,\n version: 1,\n }\n }\n\n // Mutation\n\n override isInline(): boolean {\n return true\n }\n\n override updateDOM(prevNode: this, dom: HTMLElement): boolean {\n return false\n }\n}\n\nexport function $createUnknownConvertedNode({\n data,\n}: {\n data: UnknownConvertedNodeData\n}): UnknownConvertedNode {\n return $applyNodeReplacement(\n new UnknownConvertedNode({\n data,\n }),\n )\n}\n\nexport function $isUnknownConvertedNode(\n node: LexicalNode | null | undefined,\n): node is UnknownConvertedNode {\n return node instanceof UnknownConvertedNode\n}\n", "'use client'\n\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { UnknownConvertedNode } from './nodes/unknownConvertedNode/index.js'\n\nexport const SlateToLexicalFeatureClient = createClientFeature(() => {\n return {\n nodes: [UnknownConvertedNode],\n }\n})\n", "'use client'\n\nimport { $setBlocksType } from '@lexical/selection'\nimport { $createParagraphNode, $getSelection, $isParagraphNode, $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { TextIcon } from '../../../lexical/ui/icons/Text/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../shared/toolbar/textDropdownGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems([\n {\n ChildComponent: TextIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if (!$isParagraphNode(node) && !$isParagraphNode(node.getParent())) {\n return false\n }\n }\n return true\n },\n key: 'paragraph',\n label: ({ i18n }) => {\n return i18n.t('lexical:paragraph:label2')\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createParagraphNode())\n })\n },\n order: 1,\n },\n ]),\n]\n\nexport const ParagraphFeatureClient = createClientFeature({\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: TextIcon,\n key: 'paragraph',\n keywords: ['normal', 'paragraph', 'p', 'text'],\n label: ({ i18n }) => {\n return i18n.t('lexical:paragraph:label')\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createParagraphNode())\n })\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useEffect, useState } from 'react'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { defaultJSXConverters, RichText } from '../../../../../exports/react/index.js'\nimport './style.scss'\n\nexport function RichTextPlugin() {\n const [editor] = useLexicalComposerContext()\n const [editorState, setEditorState] = useState(editor.getEditorState().toJSON())\n\n useEffect(() => {\n return editor.registerUpdateListener(({ editorState }) => {\n setEditorState(editorState.toJSON())\n })\n }, [editor])\n\n return (\n <div className=\"debug-jsx-converter\">\n <RichText converters={defaultJSXConverters} data={editorState} />\n </div>\n )\n}\n", "import type { SerializedEditorState } from 'lexical'\n\nimport React from 'react'\n\nimport type {\n DefaultNodeTypes,\n SerializedBlockNode,\n SerializedInlineBlockNode,\n} from '../../../../nodeTypes.js'\nimport type { JSXConverters } from '../converter/types.js'\n\nimport { defaultJSXConverters } from '../converter/defaultConverters.js'\nimport { convertLexicalToJSX } from '../converter/index.js'\n\nexport type JSXConvertersFunction<\n T extends { [key: string]: any; type?: string } =\n | DefaultNodeTypes\n | SerializedBlockNode<{ blockName?: null | string }>\n | SerializedInlineBlockNode<{ blockName?: null | string }>,\n> = (args: { defaultConverters: JSXConverters<DefaultNodeTypes> }) => JSXConverters<T>\n\ntype RichTextProps = {\n /**\n * Override class names for the container.\n */\n className?: string\n /**\n * Custom converters to transform your nodes to JSX. Can be an object or a function that receives the default converters.\n */\n converters?: JSXConverters | JSXConvertersFunction\n /**\n * Serialized editor state to render.\n */\n data: SerializedEditorState\n /**\n * If true, removes the container div wrapper.\n */\n disableContainer?: boolean\n /**\n * If true, disables indentation globally. If an array, disables for specific node `type` values.\n */\n disableIndent?: boolean | string[]\n /**\n * If true, disables text alignment globally. If an array, disables for specific node `type` values.\n */\n disableTextAlign?: boolean | string[]\n}\n\nexport const RichText: React.FC<RichTextProps> = ({\n className,\n converters,\n data: editorState,\n disableContainer,\n disableIndent,\n disableTextAlign,\n}) => {\n if (!editorState) {\n return null\n }\n\n let finalConverters: JSXConverters = {}\n if (converters) {\n if (typeof converters === 'function') {\n finalConverters = converters({ defaultConverters: defaultJSXConverters })\n } else {\n finalConverters = converters\n }\n } else {\n finalConverters = defaultJSXConverters\n }\n\n const content =\n editorState &&\n !Array.isArray(editorState) &&\n typeof editorState === 'object' &&\n 'root' in editorState &&\n convertLexicalToJSX({\n converters: finalConverters,\n data: editorState,\n disableIndent,\n disableTextAlign,\n })\n\n if (disableContainer) {\n return <>{content}</>\n }\n\n return <div className={className ?? 'payload-richtext'}>{content}</div>\n}\n", "import type { SerializedQuoteNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const BlockquoteJSXConverter: JSXConverters<SerializedQuoteNode> = {\n quote: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n return <blockquote>{children}</blockquote>\n },\n}\n", "import type { SerializedHeadingNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const HeadingJSXConverter: JSXConverters<SerializedHeadingNode> = {\n heading: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const NodeTag = node.tag\n\n return <NodeTag>{children}</NodeTag>\n },\n}\n", "import type { SerializedHorizontalRuleNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\nexport const HorizontalRuleJSXConverter: JSXConverters<SerializedHorizontalRuleNode> = {\n horizontalrule: <hr />,\n}\n", "import type { SerializedLineBreakNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const LinebreakJSXConverter: JSXConverters<SerializedLineBreakNode> = {\n linebreak: <br />,\n}\n", "import type { SerializedAutoLinkNode, SerializedLinkNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const LinkJSXConverter: (args: {\n internalDocToHref?: (args: { linkNode: SerializedLinkNode }) => string\n}) => JSXConverters<SerializedAutoLinkNode | SerializedLinkNode> = ({ internalDocToHref }) => ({\n autolink: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const rel: string | undefined = node.fields.newTab ? 'noopener noreferrer' : undefined\n const target: string | undefined = node.fields.newTab ? '_blank' : undefined\n\n return (\n <a href={node.fields.url} {...{ rel, target }}>\n {children}\n </a>\n )\n },\n link: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const rel: string | undefined = node.fields.newTab ? 'noopener noreferrer' : undefined\n const target: string | undefined = node.fields.newTab ? '_blank' : undefined\n\n let href: string = node.fields.url ?? ''\n if (node.fields.linkType === 'internal') {\n if (internalDocToHref) {\n href = internalDocToHref({ linkNode: node })\n } else {\n console.error(\n 'Lexical => JSX converter: Link converter: found internal link, but internalDocToHref is not provided',\n )\n href = '#' // fallback\n }\n }\n\n return (\n <a href={href} {...{ rel, target }}>\n {children}\n </a>\n )\n },\n})\n", "import { v4 as uuidv4 } from 'uuid'\n\nimport type { SerializedListItemNode, SerializedListNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const ListJSXConverter: JSXConverters<SerializedListItemNode | SerializedListNode> = {\n list: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const NodeTag = node.tag\n\n return <NodeTag className={`list-${node?.listType}`}>{children}</NodeTag>\n },\n listitem: ({ node, nodesToJSX, parent }) => {\n const hasSubLists = node.children.some((child) => child.type === 'list')\n\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n if ('listType' in parent && parent?.listType === 'check') {\n const uuid = uuidv4()\n\n return (\n <li\n aria-checked={node.checked ? 'true' : 'false'}\n className={`list-item-checkbox${node.checked ? ' list-item-checkbox-checked' : ' list-item-checkbox-unchecked'}${hasSubLists ? ' nestedListItem' : ''}`}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n role=\"checkbox\"\n style={{ listStyleType: 'none' }}\n tabIndex={-1}\n value={node?.value}\n >\n {hasSubLists ? (\n children\n ) : (\n <>\n <input checked={node.checked} id={uuid} readOnly={true} type=\"checkbox\" />\n <label htmlFor={uuid}>{children}</label>\n <br />\n </>\n )}\n </li>\n )\n } else {\n return (\n <li\n className={`${hasSubLists ? 'nestedListItem' : ''}`}\n style={hasSubLists ? { listStyleType: 'none' } : undefined}\n value={node?.value}\n >\n {children}\n </li>\n )\n }\n },\n}\n", "import type { SerializedParagraphNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const ParagraphJSXConverter: JSXConverters<SerializedParagraphNode> = {\n paragraph: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n if (!children?.length) {\n return (\n <p>\n <br />\n </p>\n )\n }\n\n return <p>{children}</p>\n },\n}\n", "import type { SerializedTabNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const TabJSXConverter: JSXConverters<SerializedTabNode> = {\n tab: '\\t',\n}\n", "import type {\n SerializedTableCellNode,\n SerializedTableNode,\n SerializedTableRowNode,\n} from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const TableJSXConverter: JSXConverters<\n SerializedTableCellNode | SerializedTableNode | SerializedTableRowNode\n> = {\n table: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n return (\n <div className=\"lexical-table-container\">\n <table className=\"lexical-table\" style={{ borderCollapse: 'collapse' }}>\n <tbody>{children}</tbody>\n </table>\n </div>\n )\n },\n tablecell: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n\n const TagName = node.headerState > 0 ? 'th' : 'td' // Use capital letter to denote a component\n const headerStateClass = `lexical-table-cell-header-${node.headerState}`\n const style = {\n backgroundColor: node.backgroundColor || undefined, // Use undefined to avoid setting the style property if not needed\n border: '1px solid #ccc',\n padding: '8px',\n }\n\n // Note: JSX does not support setting attributes directly as strings, so you must convert the colSpan and rowSpan to numbers\n const colSpan = node.colSpan && node.colSpan > 1 ? node.colSpan : undefined\n const rowSpan = node.rowSpan && node.rowSpan > 1 ? node.rowSpan : undefined\n\n return (\n <TagName\n className={`lexical-table-cell ${headerStateClass}`}\n colSpan={colSpan} // colSpan and rowSpan will only be added if they are not null\n rowSpan={rowSpan}\n style={style}\n >\n {children}\n </TagName>\n )\n },\n tablerow: ({ node, nodesToJSX }) => {\n const children = nodesToJSX({\n nodes: node.children,\n })\n return <tr className=\"lexical-table-row\">{children}</tr>\n },\n}\n", "import React from 'react'\n\nimport type { SerializedTextNode } from '../../../../../nodeTypes.js'\nimport type { JSXConverters } from '../types.js'\n\nimport { NodeFormat } from '../../../../../lexical/utils/nodeFormat.js'\n\nexport const TextJSXConverter: JSXConverters<SerializedTextNode> = {\n text: ({ node }) => {\n let text: React.ReactNode = node.text\n\n if (node.format & NodeFormat.IS_BOLD) {\n text = <strong>{text}</strong>\n }\n if (node.format & NodeFormat.IS_ITALIC) {\n text = <em>{text}</em>\n }\n if (node.format & NodeFormat.IS_STRIKETHROUGH) {\n text = <span style={{ textDecoration: 'line-through' }}>{text}</span>\n }\n if (node.format & NodeFormat.IS_UNDERLINE) {\n text = <span style={{ textDecoration: 'underline' }}>{text}</span>\n }\n if (node.format & NodeFormat.IS_CODE) {\n text = <code>{text}</code>\n }\n if (node.format & NodeFormat.IS_SUBSCRIPT) {\n text = <sub>{text}</sub>\n }\n if (node.format & NodeFormat.IS_SUPERSCRIPT) {\n text = <sup>{text}</sup>\n }\n\n return text\n },\n}\n", "/* eslint-disable perfectionist/sort-objects */\n/* eslint-disable regexp/no-obscure-range */\n/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n/* eslint-disable regexp/no-misleading-unicode-character */\n//This copy-and-pasted from lexical here: https://github.com/facebook/lexical/blob/c2ceee223f46543d12c574e62155e619f9a18a5d/packages/lexical/src/LexicalConstants.ts\n\nimport type { ElementFormatType, TextFormatType, TextModeType } from 'lexical'\nexport type TextDetailType = 'directionless' | 'unmergable'\n\n// DOM\nexport const NodeFormat = {\n DOM_ELEMENT_TYPE: 1,\n DOM_TEXT_TYPE: 3,\n // Reconciling\n NO_DIRTY_NODES: 0,\n HAS_DIRTY_NODES: 1,\n FULL_RECONCILE: 2,\n // Text node modes\n IS_NORMAL: 0,\n IS_TOKEN: 1,\n IS_SEGMENTED: 2,\n IS_INERT: 3,\n // Text node formatting\n IS_BOLD: 1,\n IS_ITALIC: 1 << 1,\n IS_STRIKETHROUGH: 1 << 2,\n IS_UNDERLINE: 1 << 3,\n IS_CODE: 1 << 4,\n IS_SUBSCRIPT: 1 << 5,\n IS_SUPERSCRIPT: 1 << 6,\n IS_HIGHLIGHT: 1 << 7,\n // Text node details\n IS_DIRECTIONLESS: 1,\n IS_UNMERGEABLE: 1 << 1,\n // Element node formatting\n IS_ALIGN_LEFT: 1,\n IS_ALIGN_CENTER: 2,\n IS_ALIGN_RIGHT: 3,\n IS_ALIGN_JUSTIFY: 4,\n IS_ALIGN_START: 5,\n IS_ALIGN_END: 6,\n} as const\n\nexport const IS_ALL_FORMATTING =\n NodeFormat.IS_BOLD |\n NodeFormat.IS_ITALIC |\n NodeFormat.IS_STRIKETHROUGH |\n NodeFormat.IS_UNDERLINE |\n NodeFormat.IS_CODE |\n NodeFormat.IS_SUBSCRIPT |\n NodeFormat.IS_SUPERSCRIPT |\n NodeFormat.IS_HIGHLIGHT\n\n// Reconciliation\nexport const NON_BREAKING_SPACE = '\\u00A0'\n\nexport const DOUBLE_LINE_BREAK = '\\n\\n'\n\n// For FF, we need to use a non-breaking space, or it gets composition\n// in a stuck state.\n\nconst RTL = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nconst LTR =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\n// eslint-disable-next-line no-misleading-character-class\nexport const RTL_REGEX = new RegExp('^[^' + LTR + ']*[' + RTL + ']')\n// eslint-disable-next-line no-misleading-character-class\nexport const LTR_REGEX = new RegExp('^[^' + RTL + ']*[' + LTR + ']')\n\nexport const TEXT_TYPE_TO_FORMAT: Record<string | TextFormatType, number> = {\n bold: NodeFormat.IS_BOLD,\n code: NodeFormat.IS_CODE,\n highlight: NodeFormat.IS_HIGHLIGHT,\n italic: NodeFormat.IS_ITALIC,\n strikethrough: NodeFormat.IS_STRIKETHROUGH,\n subscript: NodeFormat.IS_SUBSCRIPT,\n superscript: NodeFormat.IS_SUPERSCRIPT,\n underline: NodeFormat.IS_UNDERLINE,\n}\n\nexport const DETAIL_TYPE_TO_DETAIL: Record<string | TextDetailType, number> = {\n directionless: NodeFormat.IS_DIRECTIONLESS,\n unmergeable: NodeFormat.IS_UNMERGEABLE,\n}\n\nexport const ELEMENT_TYPE_TO_FORMAT: Record<Exclude<ElementFormatType, ''>, number> = {\n center: NodeFormat.IS_ALIGN_CENTER,\n end: NodeFormat.IS_ALIGN_END,\n justify: NodeFormat.IS_ALIGN_JUSTIFY,\n left: NodeFormat.IS_ALIGN_LEFT,\n right: NodeFormat.IS_ALIGN_RIGHT,\n start: NodeFormat.IS_ALIGN_START,\n}\n\nexport const ELEMENT_FORMAT_TO_TYPE: Record<number, ElementFormatType> = {\n [NodeFormat.IS_ALIGN_CENTER]: 'center',\n [NodeFormat.IS_ALIGN_END]: 'end',\n [NodeFormat.IS_ALIGN_JUSTIFY]: 'justify',\n [NodeFormat.IS_ALIGN_LEFT]: 'left',\n [NodeFormat.IS_ALIGN_RIGHT]: 'right',\n [NodeFormat.IS_ALIGN_START]: 'start',\n}\n\nexport const TEXT_MODE_TO_TYPE: Record<TextModeType, 0 | 1 | 2> = {\n normal: NodeFormat.IS_NORMAL,\n segmented: NodeFormat.IS_SEGMENTED,\n token: NodeFormat.IS_TOKEN,\n}\n\nexport const TEXT_TYPE_TO_MODE: Record<number, TextModeType> = {\n [NodeFormat.IS_NORMAL]: 'normal',\n [NodeFormat.IS_SEGMENTED]: 'segmented',\n [NodeFormat.IS_TOKEN]: 'token',\n}\n", "import type { FileData, FileSizeImproved, TypeWithID } from 'payload'\n\nimport type { SerializedUploadNode } from '../../../../../nodeTypes.js'\nimport type { UploadDataImproved } from '../../../../upload/server/nodes/UploadNode.js'\nimport type { JSXConverters } from '../types.js'\n\nexport const UploadJSXConverter: JSXConverters<SerializedUploadNode> = {\n upload: ({ node }) => {\n // TO-DO (v4): SerializedUploadNode should use UploadData_P4\n const uploadNode = node as UploadDataImproved\n if (typeof uploadNode.value !== 'object') {\n return null\n }\n\n const uploadDoc = uploadNode.value as FileData & TypeWithID\n\n const alt = (uploadNode.fields?.alt as string) || (uploadDoc as { alt?: string })?.alt || ''\n\n const url = uploadDoc.url\n\n /**\n * If the upload is not an image, return a link to the upload\n */\n if (!uploadDoc.mimeType.startsWith('image')) {\n return (\n <a href={url} rel=\"noopener noreferrer\">\n {uploadDoc.filename}\n </a>\n )\n }\n\n /**\n * If the upload is a simple image with no different sizes, return a simple img tag\n */\n if (!uploadDoc.sizes || !Object.keys(uploadDoc.sizes).length) {\n return <img alt={alt} height={uploadDoc.height} src={url} width={uploadDoc.width} />\n }\n\n /**\n * If the upload is an image with different sizes, return a picture element\n */\n const pictureJSX: React.ReactNode[] = []\n\n // Iterate through each size in the data.sizes object\n for (const size in uploadDoc.sizes) {\n const imageSize = uploadDoc.sizes[size] as FileSizeImproved\n\n // Skip if any property of the size object is null\n if (\n !imageSize ||\n !imageSize.width ||\n !imageSize.height ||\n !imageSize.mimeType ||\n !imageSize.filesize ||\n !imageSize.filename ||\n !imageSize.url\n ) {\n continue\n }\n const imageSizeURL = imageSize?.url\n\n pictureJSX.push(\n <source\n key={size}\n media={`(max-width: ${imageSize.width}px)`}\n srcSet={imageSizeURL}\n type={imageSize.mimeType}\n />,\n )\n }\n\n // Add the default img tag\n pictureJSX.push(\n <img alt={alt} height={uploadDoc?.height} key={'image'} src={url} width={uploadDoc?.width} />,\n )\n return <picture>{pictureJSX}</picture>\n },\n}\n", "import type { DefaultNodeTypes } from '../../../../nodeTypes.js'\nimport type { JSXConverters } from './types.js'\n\nimport { BlockquoteJSXConverter } from './converters/blockquote.js'\nimport { HeadingJSXConverter } from './converters/heading.js'\nimport { HorizontalRuleJSXConverter } from './converters/horizontalRule.js'\nimport { LinebreakJSXConverter } from './converters/linebreak.js'\nimport { LinkJSXConverter } from './converters/link.js'\nimport { ListJSXConverter } from './converters/list.js'\nimport { ParagraphJSXConverter } from './converters/paragraph.js'\nimport { TabJSXConverter } from './converters/tab.js'\nimport { TableJSXConverter } from './converters/table.js'\nimport { TextJSXConverter } from './converters/text.js'\nimport { UploadJSXConverter } from './converters/upload.js'\n\nexport const defaultJSXConverters: JSXConverters<DefaultNodeTypes> = {\n ...ParagraphJSXConverter,\n ...TextJSXConverter,\n ...LinebreakJSXConverter,\n ...BlockquoteJSXConverter,\n ...TableJSXConverter,\n ...HeadingJSXConverter,\n ...HorizontalRuleJSXConverter,\n ...ListJSXConverter,\n ...LinkJSXConverter({}),\n ...UploadJSXConverter,\n ...TabJSXConverter,\n}\n", "/* eslint-disable no-console */\nimport type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\n\nimport React from 'react'\n\nimport type { SerializedBlockNode, SerializedInlineBlockNode } from '../../../../nodeTypes.js'\nimport type { JSXConverter, JSXConverters, SerializedLexicalNodeWithParent } from './types.js'\n\nimport { hasText } from '../../../../validate/hasText.js'\n\nexport type ConvertLexicalToJSXArgs = {\n converters: JSXConverters\n data: SerializedEditorState\n disableIndent?: boolean | string[]\n disableTextAlign?: boolean | string[]\n}\n\nexport function convertLexicalToJSX({\n converters,\n data,\n disableIndent,\n disableTextAlign,\n}: ConvertLexicalToJSXArgs): React.ReactNode {\n if (hasText(data)) {\n return convertLexicalNodesToJSX({\n converters,\n disableIndent,\n disableTextAlign,\n nodes: data?.root?.children,\n parent: data?.root,\n })\n }\n return <></>\n}\n\nexport function convertLexicalNodesToJSX({\n converters,\n disableIndent,\n disableTextAlign,\n nodes,\n parent,\n}: {\n converters: JSXConverters\n disableIndent?: boolean | string[]\n disableTextAlign?: boolean | string[]\n nodes: SerializedLexicalNode[]\n parent: SerializedLexicalNodeWithParent\n}): React.ReactNode[] {\n const unknownConverter: JSXConverter<any> = converters.unknown as JSXConverter<any>\n\n const jsxArray: React.ReactNode[] = nodes.map((node, i) => {\n let converterForNode: JSXConverter<any> | undefined\n if (node.type === 'block') {\n converterForNode = converters?.blocks?.[(node as SerializedBlockNode)?.fields?.blockType]\n if (!converterForNode && !unknownConverter) {\n console.error(\n `Lexical => JSX converter: Blocks converter: found ${(node as SerializedBlockNode)?.fields?.blockType} block, but no converter is provided`,\n )\n }\n } else if (node.type === 'inlineBlock') {\n converterForNode =\n converters?.inlineBlocks?.[(node as SerializedInlineBlockNode)?.fields?.blockType]\n if (!converterForNode && !unknownConverter) {\n console.error(\n `Lexical => JSX converter: Inline Blocks converter: found ${(node as SerializedInlineBlockNode)?.fields?.blockType} inline block, but no converter is provided`,\n )\n }\n } else {\n converterForNode = converters[node.type] as JSXConverter<any>\n }\n\n try {\n if (!converterForNode && unknownConverter) {\n converterForNode = unknownConverter\n }\n\n let reactNode: React.ReactNode\n if (converterForNode) {\n const converted =\n typeof converterForNode === 'function'\n ? converterForNode({\n childIndex: i,\n converters,\n node,\n nodesToJSX: (args) => {\n return convertLexicalNodesToJSX({\n converters: args.converters ?? converters,\n disableIndent: args.disableIndent ?? disableIndent,\n disableTextAlign: args.disableTextAlign ?? disableTextAlign,\n nodes: args.nodes,\n parent: args.parent ?? {\n ...node,\n parent,\n },\n })\n },\n parent,\n })\n : converterForNode\n reactNode = converted\n } else {\n reactNode = <span key={i}>unknown node</span>\n }\n\n const style: React.CSSProperties = {}\n\n // Check if disableTextAlign is not true and does not include node type\n if (\n !disableTextAlign &&\n (!Array.isArray(disableTextAlign) || !disableTextAlign?.includes(node.type))\n ) {\n if ('format' in node && node.format) {\n switch (node.format) {\n case 'center':\n style.textAlign = 'center'\n break\n case 'end':\n style.textAlign = 'right'\n break\n case 'justify':\n style.textAlign = 'justify'\n break\n case 'left':\n //style.textAlign = 'left'\n // Do nothing, as left is the default\n break\n case 'right':\n style.textAlign = 'right'\n break\n case 'start':\n style.textAlign = 'left'\n break\n }\n }\n }\n\n if (\n !disableIndent &&\n (!Array.isArray(disableIndent) || !disableIndent?.includes(node.type))\n ) {\n if ('indent' in node && node.indent && node.type !== 'listitem') {\n // the unit should be px. Do not change it to rem, em, or something else.\n // The quantity should be 40px. Do not change it either.\n // See rationale in\n // https://github.com/payloadcms/payload/issues/13130#issuecomment-3058348085\n style.paddingInlineStart = `${Number(node.indent) * 40}px`\n }\n }\n\n if (React.isValidElement(reactNode)) {\n // Inject style into reactNode\n if (style.textAlign || style.paddingInlineStart) {\n const newStyle = {\n ...style,\n // @ts-expect-error type better later\n ...(reactNode?.props?.style ?? {}),\n // reactNode style comes after, thus a textAlign specified in the converter has priority over the one we inject here\n }\n\n return React.cloneElement(reactNode, {\n key: i,\n // @ts-expect-error type better later\n style: newStyle,\n })\n }\n return React.cloneElement(reactNode, {\n key: i,\n })\n }\n\n return reactNode\n } catch (error) {\n console.error('Error converting lexical node to JSX:', error, 'node:', node)\n return null\n }\n })\n\n return jsxArray.filter(Boolean)\n}\n", "import type {\n SerializedEditorState,\n SerializedLexicalNode,\n SerializedParagraphNode,\n SerializedTextNode,\n} from 'lexical'\n\nexport function hasText(\n value: null | SerializedEditorState<SerializedLexicalNode> | undefined,\n): boolean {\n const hasChildren = !!value?.root?.children?.length\n\n let hasOnlyEmptyParagraph = false\n if (value?.root?.children?.length === 1) {\n if (value?.root?.children[0]?.type === 'paragraph') {\n const paragraphNode = value?.root?.children[0] as SerializedParagraphNode\n\n if (!paragraphNode?.children || paragraphNode?.children?.length === 0) {\n hasOnlyEmptyParagraph = true\n } else if (paragraphNode?.children?.length === 1) {\n const paragraphNodeChild = paragraphNode?.children[0]\n if (paragraphNodeChild?.type === 'text') {\n if (!(paragraphNodeChild as SerializedTextNode | undefined)?.['text']?.length) {\n hasOnlyEmptyParagraph = true\n }\n }\n }\n }\n }\n\n if (!hasChildren || hasOnlyEmptyParagraph) {\n return false\n } else {\n return true\n }\n}\n", "'use client'\n\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { RichTextPlugin } from './plugin/index.js'\n\nexport const DebugJsxConverterFeatureClient = createClientFeature({\n plugins: [\n {\n Component: RichTextPlugin,\n position: 'bottom',\n },\n ],\n})\n", "import type { StateValues } from './feature.server.js'\n\nconst tailwindColors = {\n amber: {\n '50': 'oklch(0.987 0.022 95.277)',\n '100': 'oklch(0.962 0.059 95.617)',\n '200': 'oklch(0.924 0.12 95.746)',\n '300': 'oklch(0.879 0.169 91.605)',\n '400': 'oklch(0.828 0.189 84.429)',\n '500': 'oklch(0.769 0.188 70.08)',\n '600': 'oklch(0.666 0.179 58.318)',\n '700': 'oklch(0.555 0.163 48.998)',\n '800': 'oklch(0.473 0.137 46.201)',\n '900': 'oklch(0.414 0.112 45.904)',\n '950': 'oklch(0.279 0.077 45.635)',\n },\n black: '#000',\n blue: {\n '50': 'oklch(0.97 0.014 254.604)',\n '100': 'oklch(0.932 0.032 255.585)',\n '200': 'oklch(0.882 0.059 254.128)',\n '300': 'oklch(0.809 0.105 251.813)',\n '400': 'oklch(0.707 0.165 254.624)',\n '500': 'oklch(0.623 0.214 259.815)',\n '600': 'oklch(0.546 0.245 262.881)',\n '700': 'oklch(0.488 0.243 264.376)',\n '800': 'oklch(0.424 0.199 265.638)',\n '900': 'oklch(0.379 0.146 265.522)',\n '950': 'oklch(0.282 0.091 267.935)',\n },\n current: 'currentColor',\n cyan: {\n '50': 'oklch(0.984 0.019 200.873)',\n '100': 'oklch(0.956 0.045 203.388)',\n '200': 'oklch(0.917 0.08 205.041)',\n '300': 'oklch(0.865 0.127 207.078)',\n '400': 'oklch(0.789 0.154 211.53)',\n '500': 'oklch(0.715 0.143 215.221)',\n '600': 'oklch(0.609 0.126 221.723)',\n '700': 'oklch(0.52 0.105 223.128)',\n '800': 'oklch(0.45 0.085 224.283)',\n '900': 'oklch(0.398 0.07 227.392)',\n '950': 'oklch(0.302 0.056 229.695)',\n },\n emerald: {\n '50': 'oklch(0.979 0.021 166.113)',\n '100': 'oklch(0.95 0.052 163.051)',\n '200': 'oklch(0.905 0.093 164.15)',\n '300': 'oklch(0.845 0.143 164.978)',\n '400': 'oklch(0.765 0.177 163.223)',\n '500': 'oklch(0.696 0.17 162.48)',\n '600': 'oklch(0.596 0.145 163.225)',\n '700': 'oklch(0.508 0.118 165.612)',\n '800': 'oklch(0.432 0.095 166.913)',\n '900': 'oklch(0.378 0.077 168.94)',\n '950': 'oklch(0.262 0.051 172.552)',\n },\n fuchsia: {\n '50': 'oklch(0.977 0.017 320.058)',\n '100': 'oklch(0.952 0.037 318.852)',\n '200': 'oklch(0.903 0.076 319.62)',\n '300': 'oklch(0.833 0.145 321.434)',\n '400': 'oklch(0.74 0.238 322.16)',\n '500': 'oklch(0.667 0.295 322.15)',\n '600': 'oklch(0.591 0.293 322.896)',\n '700': 'oklch(0.518 0.253 323.949)',\n '800': 'oklch(0.452 0.211 324.591)',\n '900': 'oklch(0.401 0.17 325.612)',\n '950': 'oklch(0.293 0.136 325.661)',\n },\n gray: {\n '50': 'oklch(0.985 0.002 247.839)',\n '100': 'oklch(0.967 0.003 264.542)',\n '200': 'oklch(0.928 0.006 264.531)',\n '300': 'oklch(0.872 0.01 258.338)',\n '400': 'oklch(0.707 0.022 261.325)',\n '500': 'oklch(0.551 0.027 264.364)',\n '600': 'oklch(0.446 0.03 256.802)',\n '700': 'oklch(0.373 0.034 259.733)',\n '800': 'oklch(0.278 0.033 256.848)',\n '900': 'oklch(0.21 0.034 264.665)',\n '950': 'oklch(0.13 0.028 261.692)',\n },\n green: {\n '50': 'oklch(0.982 0.018 155.826)',\n '100': 'oklch(0.962 0.044 156.743)',\n '200': 'oklch(0.925 0.084 155.995)',\n '300': 'oklch(0.871 0.15 154.449)',\n '400': 'oklch(0.792 0.209 151.711)',\n '500': 'oklch(0.723 0.219 149.579)',\n '600': 'oklch(0.627 0.194 149.214)',\n '700': 'oklch(0.527 0.154 150.069)',\n '800': 'oklch(0.448 0.119 151.328)',\n '900': 'oklch(0.393 0.095 152.535)',\n '950': 'oklch(0.266 0.065 152.934)',\n },\n indigo: {\n '50': 'oklch(0.962 0.018 272.314)',\n '100': 'oklch(0.93 0.034 272.788)',\n '200': 'oklch(0.87 0.065 274.039)',\n '300': 'oklch(0.785 0.115 274.713)',\n '400': 'oklch(0.673 0.182 276.935)',\n '500': 'oklch(0.585 0.233 277.117)',\n '600': 'oklch(0.511 0.262 276.966)',\n '700': 'oklch(0.457 0.24 277.023)',\n '800': 'oklch(0.398 0.195 277.366)',\n '900': 'oklch(0.359 0.144 278.697)',\n '950': 'oklch(0.257 0.09 281.288)',\n },\n inherit: 'inherit',\n lime: {\n '50': 'oklch(0.986 0.031 120.757)',\n '100': 'oklch(0.967 0.067 122.328)',\n '200': 'oklch(0.938 0.127 124.321)',\n '300': 'oklch(0.897 0.196 126.665)',\n '400': 'oklch(0.841 0.238 128.85)',\n '500': 'oklch(0.768 0.233 130.85)',\n '600': 'oklch(0.648 0.2 131.684)',\n '700': 'oklch(0.532 0.157 131.589)',\n '800': 'oklch(0.453 0.124 130.933)',\n '900': 'oklch(0.405 0.101 131.063)',\n '950': 'oklch(0.274 0.072 132.109)',\n },\n neutral: {\n '50': 'oklch(0.985 0 0)',\n '100': 'oklch(0.97 0 0)',\n '200': 'oklch(0.922 0 0)',\n '300': 'oklch(0.87 0 0)',\n '400': 'oklch(0.708 0 0)',\n '500': 'oklch(0.556 0 0)',\n '600': 'oklch(0.439 0 0)',\n '700': 'oklch(0.371 0 0)',\n '800': 'oklch(0.269 0 0)',\n '900': 'oklch(0.205 0 0)',\n '950': 'oklch(0.145 0 0)',\n },\n orange: {\n '50': 'oklch(0.98 0.016 73.684)',\n '100': 'oklch(0.954 0.038 75.164)',\n '200': 'oklch(0.901 0.076 70.697)',\n '300': 'oklch(0.837 0.128 66.29)',\n '400': 'oklch(0.75 0.183 55.934)',\n '500': 'oklch(0.705 0.213 47.604)',\n '600': 'oklch(0.646 0.222 41.116)',\n '700': 'oklch(0.553 0.195 38.402)',\n '800': 'oklch(0.47 0.157 37.304)',\n '900': 'oklch(0.408 0.123 38.172)',\n '950': 'oklch(0.266 0.079 36.259)',\n },\n pink: {\n '50': 'oklch(0.971 0.014 343.198)',\n '100': 'oklch(0.948 0.028 342.258)',\n '200': 'oklch(0.899 0.061 343.231)',\n '300': 'oklch(0.823 0.12 346.018)',\n '400': 'oklch(0.718 0.202 349.761)',\n '500': 'oklch(0.656 0.241 354.308)',\n '600': 'oklch(0.592 0.249 0.584)',\n '700': 'oklch(0.525 0.223 3.958)',\n '800': 'oklch(0.459 0.187 3.815)',\n '900': 'oklch(0.408 0.153 2.432)',\n '950': 'oklch(0.284 0.109 3.907)',\n },\n purple: {\n '50': 'oklch(0.977 0.014 308.299)',\n '100': 'oklch(0.946 0.033 307.174)',\n '200': 'oklch(0.902 0.063 306.703)',\n '300': 'oklch(0.827 0.119 306.383)',\n '400': 'oklch(0.714 0.203 305.504)',\n '500': 'oklch(0.627 0.265 303.9)',\n '600': 'oklch(0.558 0.288 302.321)',\n '700': 'oklch(0.496 0.265 301.924)',\n '800': 'oklch(0.438 0.218 303.724)',\n '900': 'oklch(0.381 0.176 304.987)',\n '950': 'oklch(0.291 0.149 302.717)',\n },\n red: {\n '50': 'oklch(0.971 0.013 17.38)',\n '100': 'oklch(0.936 0.032 17.717)',\n '200': 'oklch(0.885 0.062 18.334)',\n '300': 'oklch(0.808 0.114 19.571)',\n '400': 'oklch(0.704 0.191 22.216)',\n '500': 'oklch(0.637 0.237 25.331)',\n '600': 'oklch(0.577 0.245 27.325)',\n '700': 'oklch(0.505 0.213 27.518)',\n '800': 'oklch(0.444 0.177 26.899)',\n '900': 'oklch(0.396 0.141 25.723)',\n '950': 'oklch(0.258 0.092 26.042)',\n },\n rose: {\n '50': 'oklch(0.969 0.015 12.422)',\n '100': 'oklch(0.941 0.03 12.58)',\n '200': 'oklch(0.892 0.058 10.001)',\n '300': 'oklch(0.81 0.117 11.638)',\n '400': 'oklch(0.712 0.194 13.428)',\n '500': 'oklch(0.645 0.246 16.439)',\n '600': 'oklch(0.586 0.253 17.585)',\n '700': 'oklch(0.514 0.222 16.935)',\n '800': 'oklch(0.455 0.188 13.697)',\n '900': 'oklch(0.41 0.159 10.272)',\n '950': 'oklch(0.271 0.105 12.094)',\n },\n sky: {\n '50': 'oklch(0.977 0.013 236.62)',\n '100': 'oklch(0.951 0.026 236.824)',\n '200': 'oklch(0.901 0.058 230.902)',\n '300': 'oklch(0.828 0.111 230.318)',\n '400': 'oklch(0.746 0.16 232.661)',\n '500': 'oklch(0.685 0.169 237.323)',\n '600': 'oklch(0.588 0.158 241.966)',\n '700': 'oklch(0.5 0.134 242.749)',\n '800': 'oklch(0.443 0.11 240.79)',\n '900': 'oklch(0.391 0.09 240.876)',\n '950': 'oklch(0.293 0.066 243.157)',\n },\n slate: {\n '50': 'oklch(0.984 0.003 247.858)',\n '100': 'oklch(0.968 0.007 247.896)',\n '200': 'oklch(0.929 0.013 255.508)',\n '300': 'oklch(0.869 0.022 252.894)',\n '400': 'oklch(0.704 0.04 256.788)',\n '500': 'oklch(0.554 0.046 257.417)',\n '600': 'oklch(0.446 0.043 257.281)',\n '700': 'oklch(0.372 0.044 257.287)',\n '800': 'oklch(0.279 0.041 260.031)',\n '900': 'oklch(0.208 0.042 265.755)',\n '950': 'oklch(0.129 0.042 264.695)',\n },\n stone: {\n '50': 'oklch(0.985 0.001 106.423)',\n '100': 'oklch(0.97 0.001 106.424)',\n '200': 'oklch(0.923 0.003 48.717)',\n '300': 'oklch(0.869 0.005 56.366)',\n '400': 'oklch(0.709 0.01 56.259)',\n '500': 'oklch(0.553 0.013 58.071)',\n '600': 'oklch(0.444 0.011 73.639)',\n '700': 'oklch(0.374 0.01 67.558)',\n '800': 'oklch(0.268 0.007 34.298)',\n '900': 'oklch(0.216 0.006 56.043)',\n '950': 'oklch(0.147 0.004 49.25)',\n },\n teal: {\n '50': 'oklch(0.984 0.014 180.72)',\n '100': 'oklch(0.953 0.051 180.801)',\n '200': 'oklch(0.91 0.096 180.426)',\n '300': 'oklch(0.855 0.138 181.071)',\n '400': 'oklch(0.777 0.152 181.912)',\n '500': 'oklch(0.704 0.14 182.503)',\n '600': 'oklch(0.6 0.118 184.704)',\n '700': 'oklch(0.511 0.096 186.391)',\n '800': 'oklch(0.437 0.078 188.216)',\n '900': 'oklch(0.386 0.063 188.416)',\n '950': 'oklch(0.277 0.046 192.524)',\n },\n transparent: 'transparent',\n violet: {\n '50': 'oklch(0.969 0.016 293.756)',\n '100': 'oklch(0.943 0.029 294.588)',\n '200': 'oklch(0.894 0.057 293.283)',\n '300': 'oklch(0.811 0.111 293.571)',\n '400': 'oklch(0.702 0.183 293.541)',\n '500': 'oklch(0.606 0.25 292.717)',\n '600': 'oklch(0.541 0.281 293.009)',\n '700': 'oklch(0.491 0.27 292.581)',\n '800': 'oklch(0.432 0.232 292.759)',\n '900': 'oklch(0.38 0.189 293.745)',\n '950': 'oklch(0.283 0.141 291.089)',\n },\n white: '#fff',\n yellow: {\n '50': 'oklch(0.987 0.026 102.212)',\n '100': 'oklch(0.973 0.071 103.193)',\n '200': 'oklch(0.945 0.129 101.54)',\n '300': 'oklch(0.905 0.182 98.111)',\n '400': 'oklch(0.852 0.199 91.936)',\n '500': 'oklch(0.795 0.184 86.047)',\n '600': 'oklch(0.681 0.162 75.834)',\n '700': 'oklch(0.554 0.135 66.442)',\n '800': 'oklch(0.476 0.114 61.907)',\n '900': 'oklch(0.421 0.095 57.708)',\n '950': 'oklch(0.286 0.066 53.813)',\n },\n zinc: {\n '50': 'oklch(0.985 0 0)',\n '100': 'oklch(0.967 0.001 286.375)',\n '200': 'oklch(0.92 0.004 286.32)',\n '300': 'oklch(0.871 0.006 286.286)',\n '400': 'oklch(0.705 0.015 286.067)',\n '500': 'oklch(0.552 0.016 285.938)',\n '600': 'oklch(0.442 0.017 285.786)',\n '700': 'oklch(0.37 0.013 285.805)',\n '800': 'oklch(0.274 0.006 286.033)',\n '900': 'oklch(0.21 0.006 285.885)',\n '950': 'oklch(0.141 0.005 285.823)',\n },\n}\n\n// prettier-ignore\n/* eslint-disable perfectionist/sort-objects */\nexport const defaultColors = {\n text: {\n 'text-red': { css: { 'color': `light-dark(${tailwindColors.red[600]}, ${tailwindColors.red[400]})`, }, label: 'Red' },\n 'text-orange': { css: { 'color': `light-dark(${tailwindColors.orange[600]}, ${tailwindColors.orange[400]})`, }, label: 'Orange' },\n 'text-yellow': { css: { 'color': `light-dark(${tailwindColors.yellow[700]}, ${tailwindColors.yellow[300]})`, }, label: 'Yellow' },\n 'text-green': { css: { 'color': `light-dark(${tailwindColors.green[700]}, ${tailwindColors.green[400]})`, }, label: 'Green' },\n 'text-blue': { css: { 'color': `light-dark(${tailwindColors.blue[600]}, ${tailwindColors.blue[400]})`, }, label: 'Blue' },\n 'text-purple': { css: { 'color': `light-dark(${tailwindColors.purple[600]}, ${tailwindColors.purple[400]})`, }, label: 'Purple' },\n 'text-pink': { css: { 'color': `light-dark(${tailwindColors.pink[600]}, ${tailwindColors.pink[400]})`, }, label: 'Pink' },\n } satisfies StateValues,\n background: {\n 'bg-red': { css: { 'background-color': `light-dark(${tailwindColors.red[400]}, ${tailwindColors.red[600]})`, }, label: 'Red' },\n 'bg-orange': { css: { 'background-color': `light-dark(${tailwindColors.orange[400]}, ${tailwindColors.orange[600]})`, }, label: 'Orange' },\n 'bg-yellow': { css: { 'background-color': `light-dark(${tailwindColors.yellow[300]}, ${tailwindColors.yellow[700]})`, }, label: 'Yellow' },\n 'bg-green': { css: { 'background-color': `light-dark(${tailwindColors.green[400]}, ${tailwindColors.green[700]})`, }, label: 'Green' },\n 'bg-blue': { css: { 'background-color': `light-dark(${tailwindColors.blue[400]}, ${tailwindColors.blue[600]})`, }, label: 'Blue' },\n 'bg-purple': { css: { 'background-color': `light-dark(${tailwindColors.purple[400]}, ${tailwindColors.purple[600]})`, }, label: 'Purple' },\n 'bg-pink': { css: { 'background-color': `light-dark(${tailwindColors.pink[400]}, ${tailwindColors.pink[600]})`, }, label: 'Pink' },\n } satisfies StateValues\n }\n", "'use client'\n\nimport { $isNodeSelection } from 'lexical'\n\nimport type { RelationshipFeatureProps } from '../server/index.js'\n\nimport { RelationshipIcon } from '../../../lexical/ui/icons/Relationship/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarAddDropdownGroupWithItems } from '../../shared/toolbar/addDropdownGroup.js'\nimport { INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND } from './drawer/commands.js'\nimport { $isRelationshipNode, RelationshipNode } from './nodes/RelationshipNode.js'\nimport { RelationshipPlugin } from './plugins/index.js'\n\nexport const RelationshipFeatureClient = createClientFeature<RelationshipFeatureProps>({\n nodes: [RelationshipNode],\n plugins: [\n {\n Component: RelationshipPlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: RelationshipIcon,\n key: 'relationship',\n keywords: ['relationship', 'relation', 'rel'],\n label: ({ i18n }) => {\n return i18n.t('lexical:relationship:label')\n },\n onSelect: ({ editor }) => {\n // dispatch INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND\n editor.dispatchCommand(INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: [\n toolbarAddDropdownGroupWithItems([\n {\n ChildComponent: RelationshipIcon,\n isActive: ({ selection }) => {\n if (!$isNodeSelection(selection) || !selection.getNodes().length) {\n return false\n }\n\n const firstNode = selection.getNodes()[0]\n return $isRelationshipNode(firstNode)\n },\n key: 'relationship',\n label: ({ i18n }) => {\n return i18n.t('lexical:relationship:label')\n },\n onSelect: ({ editor }) => {\n // dispatch INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND\n editor.dispatchCommand(INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const RelationshipIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_4397_10817)\">\n <path\n d=\"M7.75 12.25L15.25 4.75M15.25 4.75H11.5M15.25 4.75V8.5M13 11.5V13.75C13 14.5784 12.3284 15.25 11.5 15.25H6.25C5.42157 15.25 4.75 14.5784 4.75 13.75V8.5C4.75 7.67157 5.42157 7 6.25 7H8.5\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4397_10817\">\n <rect fill=\"currentColor\" height=\"12\" transform=\"translate(4 4)\" width=\"12\" />\n </clipPath>\n </defs>\n </svg>\n)\n", "'use client'\nimport type { JSX } from 'react'\n\nimport {\n $applyNodeReplacement,\n type DOMConversionMap,\n type DOMConversionOutput,\n type EditorConfig,\n type LexicalEditor,\n type LexicalNode,\n} from 'lexical'\nimport * as React from 'react'\n\nimport type {\n RelationshipData,\n SerializedRelationshipNode,\n} from '../../server/nodes/RelationshipNode.js'\n\nimport { RelationshipServerNode } from '../../server/nodes/RelationshipNode.js'\n\nconst RelationshipComponent = React.lazy(() =>\n import('../components/RelationshipComponent.js').then((module) => ({\n default: module.RelationshipComponent,\n })),\n)\n\nfunction $relationshipElementToNode(domNode: HTMLDivElement): DOMConversionOutput | null {\n const id = domNode.getAttribute('data-lexical-relationship-id')\n const relationTo = domNode.getAttribute('data-lexical-relationship-relationTo')\n\n if (id != null && relationTo != null) {\n const node = $createRelationshipNode({\n relationTo,\n value: id,\n })\n return { node }\n }\n return null\n}\n\nexport class RelationshipNode extends RelationshipServerNode {\n static override clone(node: RelationshipServerNode): RelationshipServerNode {\n return super.clone(node)\n }\n\n static override getType(): string {\n return super.getType()\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {\n div: (domNode: HTMLDivElement) => {\n if (\n !domNode.hasAttribute('data-lexical-relationship-relationTo') ||\n !domNode.hasAttribute('data-lexical-relationship-id')\n ) {\n return null\n }\n return {\n conversion: $relationshipElementToNode,\n priority: 2,\n }\n },\n }\n }\n\n static override importJSON(serializedNode: SerializedRelationshipNode): RelationshipNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n\n const importedData: RelationshipData = {\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n const node = $createRelationshipNode(importedData)\n node.setFormat(serializedNode.format)\n return node\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return (\n <RelationshipComponent\n className={config.theme.relationship ?? 'LexicalEditorTheme__relationship'}\n data={this.__data}\n format={this.__format}\n nodeKey={this.getKey()}\n />\n )\n }\n\n override exportJSON(): SerializedRelationshipNode {\n return super.exportJSON()\n }\n}\n\nexport function $createRelationshipNode(data: RelationshipData): RelationshipNode {\n return $applyNodeReplacement(\n new RelationshipNode({\n data,\n }),\n )\n}\n\nexport function $isRelationshipNode(\n node: LexicalNode | null | RelationshipNode | undefined,\n): node is RelationshipNode {\n return node instanceof RelationshipNode\n}\n", "import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type { CollectionSlug, DataFromCollectionSlug } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport { addClassNamesToElement } from '@lexical/utils'\nimport {\n $applyNodeReplacement,\n type DOMConversionMap,\n type DOMConversionOutput,\n type DOMExportOutput,\n type EditorConfig,\n type ElementFormatType,\n type LexicalEditor,\n type LexicalNode,\n type NodeKey,\n} from 'lexical'\n\nimport type { StronglyTypedLeafNode } from '../../../../nodeTypes.js'\n\nexport type RelationshipData = {\n [TCollectionSlug in CollectionSlug]: {\n relationTo: TCollectionSlug\n value: DataFromCollectionSlug<TCollectionSlug> | number | string\n }\n}[CollectionSlug]\n\nexport type SerializedRelationshipNode = RelationshipData &\n StronglyTypedLeafNode<SerializedDecoratorBlockNode, 'relationship'>\n\nfunction $relationshipElementToServerNode(domNode: HTMLDivElement): DOMConversionOutput | null {\n const id = domNode.getAttribute('data-lexical-relationship-id')\n const relationTo = domNode.getAttribute('data-lexical-relationship-relationTo')\n\n if (id != null && relationTo != null) {\n const node = $createServerRelationshipNode({\n relationTo,\n value: id,\n })\n return { node }\n }\n return null\n}\n\nexport class RelationshipServerNode extends DecoratorBlockNode {\n __data: RelationshipData\n\n constructor({\n data,\n format,\n key,\n }: {\n data: RelationshipData\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__data = data\n }\n\n static override clone(node: RelationshipServerNode): RelationshipServerNode {\n return new this({\n data: node.__data,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'relationship'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {\n div: (domNode: HTMLDivElement) => {\n if (\n !domNode.hasAttribute('data-lexical-relationship-relationTo') ||\n !domNode.hasAttribute('data-lexical-relationship-id')\n ) {\n return null\n }\n return {\n conversion: $relationshipElementToServerNode,\n priority: 2,\n }\n },\n }\n }\n\n static override importJSON(serializedNode: SerializedRelationshipNode): RelationshipServerNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n\n const importedData: RelationshipData = {\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n const node = $createServerRelationshipNode(importedData)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('div')\n addClassNamesToElement(element, config?.theme?.relationship)\n return element\n }\n\n override decorate(_editor: LexicalEditor, _config: EditorConfig): JSX.Element {\n return null as unknown as JSX.Element\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n element.setAttribute(\n 'data-lexical-relationship-id',\n String(typeof this.__data?.value === 'object' ? this.__data?.value?.id : this.__data?.value),\n )\n element.setAttribute('data-lexical-relationship-relationTo', this.__data?.relationTo)\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedRelationshipNode {\n return {\n ...super.exportJSON(),\n ...this.getData(),\n type: 'relationship',\n version: 2,\n }\n }\n\n getData(): RelationshipData {\n return this.getLatest().__data\n }\n\n override getTextContent(): string {\n return `${this.__data?.relationTo} relation to ${typeof this.__data?.value === 'object' ? this.__data?.value?.id : this.__data?.value}`\n }\n\n setData(data: RelationshipData): void {\n const writable = this.getWritable()\n writable.__data = data\n }\n}\n\nexport function $createServerRelationshipNode(data: RelationshipData): RelationshipServerNode {\n return $applyNodeReplacement(\n new RelationshipServerNode({\n data,\n }),\n )\n}\n\nexport function $isServerRelationshipNode(\n node: LexicalNode | null | RelationshipServerNode | undefined,\n): node is RelationshipServerNode {\n return node instanceof RelationshipServerNode\n}\n", "'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot } from '@lexical/utils'\nimport {\n $getPreviousSelection,\n $getSelection,\n $isParagraphNode,\n $isRangeSelection,\n COMMAND_PRIORITY_EDITOR,\n createCommand,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { RelationshipFeatureProps } from '../../server/index.js'\nimport type { RelationshipData } from '../../server/nodes/RelationshipNode.js'\n\nimport { RelationshipDrawer } from '../drawer/index.js'\nimport { $createRelationshipNode, RelationshipNode } from '../nodes/RelationshipNode.js'\nimport { useEnabledRelationships } from '../utils/useEnabledRelationships.js'\n\nexport const INSERT_RELATIONSHIP_COMMAND: LexicalCommand<RelationshipData> = createCommand(\n 'INSERT_RELATIONSHIP_COMMAND',\n)\n\nexport const RelationshipPlugin: PluginComponent<RelationshipFeatureProps> = ({ clientProps }) => {\n const [editor] = useLexicalComposerContext()\n\n const { enabledCollectionSlugs } = useEnabledRelationships({\n collectionSlugsBlacklist: clientProps?.disabledCollections,\n collectionSlugsWhitelist: clientProps?.enabledCollections,\n })\n\n useEffect(() => {\n if (!editor.hasNodes([RelationshipNode])) {\n throw new Error('RelationshipPlugin: RelationshipNode not registered on editor')\n }\n\n return editor.registerCommand<RelationshipData>(\n INSERT_RELATIONSHIP_COMMAND,\n (payload) => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const relationshipNode = $createRelationshipNode(payload)\n // we need to get the focus node before inserting the block node, as $insertNodeToNearestRoot can change the focus node\n const { focus } = selection\n const focusNode = focus.getNode()\n // Insert relationship node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(relationshipNode)\n\n // Delete the node it it's an empty paragraph\n if ($isParagraphNode(focusNode) && !focusNode.__first) {\n focusNode.remove()\n }\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor])\n\n return <RelationshipDrawer enabledCollectionSlugs={enabledCollectionSlugs} />\n}\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\nimport type { CollectionSlug } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { type ListDrawerProps, toast } from '@payloadcms/ui'\nimport { $getNodeByKey, COMMAND_PRIORITY_EDITOR } from 'lexical'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useLexicalListDrawer } from '../../../../utilities/fieldsDrawer/useLexicalListDrawer.js'\nimport { $createRelationshipNode } from '../nodes/RelationshipNode.js'\nimport { INSERT_RELATIONSHIP_COMMAND } from '../plugins/index.js'\nimport { INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND } from './commands.js'\n\nconst insertRelationship = ({\n editor,\n relationTo,\n replaceNodeKey,\n value,\n}: {\n editor: LexicalEditor\n relationTo: string\n replaceNodeKey: null | string\n value: number | string\n}) => {\n if (!replaceNodeKey) {\n editor.dispatchCommand(INSERT_RELATIONSHIP_COMMAND, {\n relationTo,\n value,\n })\n } else {\n editor.update(() => {\n const node = $getNodeByKey(replaceNodeKey)\n if (node) {\n node.replace($createRelationshipNode({ relationTo, value }))\n }\n })\n }\n}\n\ntype Props = {\n enabledCollectionSlugs: CollectionSlug[]\n}\n\nconst RelationshipDrawerComponent: React.FC<Props> = ({ enabledCollectionSlugs }) => {\n const [editor] = useLexicalComposerContext()\n\n const [replaceNodeKey, setReplaceNodeKey] = useState<null | string>(null)\n\n const { closeListDrawer, ListDrawer, openListDrawer } = useLexicalListDrawer({\n collectionSlugs: enabledCollectionSlugs,\n selectedCollection: enabledCollectionSlugs?.[0],\n })\n\n useEffect(() => {\n return editor.registerCommand<{\n replace: { nodeKey: string } | false\n }>(\n INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND,\n (payload) => {\n setReplaceNodeKey(payload?.replace ? payload?.replace.nodeKey : null)\n openListDrawer()\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor, openListDrawer])\n\n const onSelect = useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n ({ collectionSlug, doc }) => {\n insertRelationship({\n editor,\n relationTo: collectionSlug,\n replaceNodeKey,\n value: doc.id,\n })\n closeListDrawer()\n },\n [editor, closeListDrawer, replaceNodeKey],\n )\n\n return <ListDrawer onSelect={onSelect} />\n}\n\nconst RelationshipDrawerComponentFallback: React.FC = () => {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n return editor.registerCommand<{\n replace: { nodeKey: string } | false\n }>(\n INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND,\n () => {\n toast.error('No relationship collections enabled')\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor])\n\n return null\n}\n\nexport const RelationshipDrawer = ({ enabledCollectionSlugs }: Props): React.ReactNode => {\n if (!enabledCollectionSlugs?.length) {\n return <RelationshipDrawerComponentFallback />\n }\n\n return <RelationshipDrawerComponent enabledCollectionSlugs={enabledCollectionSlugs} />\n}\n", "'use client'\nimport type { UseListDrawer } from '@payloadcms/ui'\nimport type { BaseSelection } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useListDrawer, useModal } from '@payloadcms/ui'\nimport {\n $getNodeByKey,\n $getPreviousSelection,\n $getRoot,\n $getSelection,\n $isRangeSelection,\n $setSelection,\n} from 'lexical'\nimport { useCallback, useEffect, useState } from 'react'\n\n/**\n *\n * Wrapper around useListDrawer that restores and saves selection state (cursor position) when opening and closing the drawer.\n * By default, the lexical cursor position may be lost when opening a drawer and clicking somewhere on that drawer.\n */\nexport const useLexicalListDrawer = (\n args: Parameters<UseListDrawer>[0],\n): {\n closeListDrawer: () => void\n isListDrawerOpen: boolean\n ListDrawer: ReturnType<UseListDrawer>[0]\n listDrawerSlug: string\n ListDrawerToggler: ReturnType<UseListDrawer>[1]\n openListDrawer: (selection?: BaseSelection) => void\n} => {\n const [editor] = useLexicalComposerContext()\n const [selectionState, setSelectionState] = useState<BaseSelection | null>(null)\n const [wasOpen, setWasOpen] = useState<boolean>(false)\n\n const [\n BaseListDrawer,\n BaseListDrawerToggler,\n {\n closeDrawer: baseCloseDrawer,\n drawerSlug: listDrawerSlug,\n isDrawerOpen,\n openDrawer: baseOpenDrawer,\n },\n ] = useListDrawer(args)\n const { modalState } = useModal()\n\n const $storeSelection = useCallback(() => {\n // editor.read() causes an error here when creating a new upload node from the slash menu. It seems like we can omit it here though, as all\n // invocations of that functions are wrapped in editor.read() or editor.update() somewhere in the call stack.\n const selection = $getSelection() ?? $getPreviousSelection()\n setSelectionState(selection)\n }, [])\n\n const restoreSelection = useCallback(() => {\n if (selectionState) {\n editor.update(\n () => {\n if ($isRangeSelection(selectionState)) {\n const { anchor, focus } = selectionState\n if ($getNodeByKey(anchor.key) && $getNodeByKey(focus.key)) {\n $setSelection(selectionState.clone())\n }\n } else {\n // not ideal, but better than losing the selection. Try to set the selection\n // in a valid place if you remove selected nodes!\n $getRoot().selectEnd()\n }\n },\n { discrete: true, skipTransforms: true },\n )\n }\n }, [editor, selectionState])\n\n const closeListDrawer = () => {\n //restoreSelection() // Should already be stored by the useEffect below\n baseCloseDrawer()\n }\n\n // We need to handle drawer closing via a useEffect, as toggleDrawer / closeDrawer will not be triggered if the drawer\n // is closed by clicking outside of the drawer. This useEffect will handle everything.\n useEffect(() => {\n if (!wasOpen) {\n return\n }\n\n const thisModalState = modalState[listDrawerSlug]\n // Exists in modalState (thus has opened at least once before) and is closed\n if (thisModalState && !thisModalState?.isOpen) {\n setWasOpen(false)\n setTimeout(() => {\n restoreSelection()\n }, 1)\n }\n }, [modalState, listDrawerSlug, restoreSelection, wasOpen])\n\n return {\n closeListDrawer,\n isListDrawerOpen: isDrawerOpen,\n ListDrawer: BaseListDrawer,\n listDrawerSlug,\n ListDrawerToggler: (props) => (\n <BaseListDrawerToggler\n {...props}\n onClick={() => {\n $storeSelection()\n }}\n />\n ),\n openListDrawer: () => {\n $storeSelection()\n baseOpenDrawer()\n setWasOpen(true)\n },\n }\n}\n", "'use client'\nimport type { ClientCollectionConfig, CollectionSlug } from 'payload'\n\nimport { useConfig, useEntityVisibility } from '@payloadcms/ui'\nimport * as React from 'react'\n\ntype UseEnabledRelationshipsOptions = {\n collectionSlugsBlacklist?: string[]\n collectionSlugsWhitelist?: string[]\n uploads?: boolean\n}\n\ntype UseEnabledRelationshipsResult = {\n enabledCollections: ClientCollectionConfig[]\n enabledCollectionSlugs: CollectionSlug[]\n}\n\nexport const useEnabledRelationships = (\n options?: UseEnabledRelationshipsOptions,\n): UseEnabledRelationshipsResult => {\n const { collectionSlugsBlacklist, collectionSlugsWhitelist, uploads = false } = options || {}\n const {\n config: { collections },\n } = useConfig()\n const { visibleEntities } = useEntityVisibility()\n\n const result = React.useMemo(() => {\n const enabledCollectionSlugs: string[] = []\n const enabledCollections: ClientCollectionConfig[] = []\n const whitelistSet = collectionSlugsWhitelist ? new Set(collectionSlugsWhitelist) : null\n const blacklistSet = collectionSlugsBlacklist ? new Set(collectionSlugsBlacklist) : null\n\n for (const collection of collections) {\n const {\n slug,\n admin: { enableRichTextRelationship },\n upload,\n } = collection\n\n // Check visibility\n if (!visibleEntities?.collections.includes(slug)) {\n continue\n }\n\n // Check rich text relationship and upload settings\n if (uploads) {\n if (!enableRichTextRelationship || !upload) {\n continue\n }\n } else {\n if (upload || !enableRichTextRelationship) {\n continue\n }\n }\n\n // Check whitelist (if provided, only include slugs in the whitelist)\n if (whitelistSet && !whitelistSet.has(slug)) {\n continue\n }\n\n // Check blacklist (if provided, exclude slugs in the blacklist)\n if (blacklistSet && blacklistSet.has(slug)) {\n continue\n }\n\n enabledCollectionSlugs.push(slug)\n enabledCollections.push(collection)\n }\n\n return { enabledCollections, enabledCollectionSlugs }\n }, [collections, visibleEntities, uploads, collectionSlugsWhitelist, collectionSlugsBlacklist])\n\n return result\n}\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { useScrollInfo, useThrottledEffect, useTranslation } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { EditorConfigContextType } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport type { SanitizedClientEditorConfig } from '../../../../../lexical/config/types.js'\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\nimport type { FixedToolbarFeatureProps } from '../../server/index.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport './index.scss'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\n\nfunction ButtonGroupItem({\n anchorElem,\n editor,\n item,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n item: ToolbarGroupItem\n}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n\n if (!item.ChildComponent) {\n return null\n }\n\n return (\n <ToolbarButton editor={editor} item={item} key={item.key}>\n <item.ChildComponent />\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n editorConfig,\n group,\n index,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n group: ToolbarGroup\n index: number\n}): React.ReactNode {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n const [dropdownLabel, setDropdownLabel] = React.useState<string | undefined>(undefined)\n const [DropdownIcon, setDropdownIcon] = React.useState<React.FC | undefined>(undefined)\n\n React.useEffect(() => {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent!)\n } else {\n setDropdownIcon(undefined)\n }\n }, [group])\n\n const onActiveChange = React.useCallback(\n ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => {\n if (!activeItems.length) {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent!)\n setDropdownLabel(undefined)\n } else {\n setDropdownIcon(undefined)\n setDropdownLabel(undefined)\n }\n return\n }\n const item = activeItems[0]!\n\n let label = item.key\n if (item.label) {\n label =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n // Crop title to max. 25 characters\n if (label.length > 25) {\n label = label.substring(0, 25) + '...'\n }\n if (activeItems.length === 1) {\n setDropdownLabel(label)\n setDropdownIcon(() => item.ChildComponent)\n } else {\n setDropdownLabel(\n i18n.t('lexical:general:toolbarItemsActive', { count: activeItems.length }),\n )\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent!)\n } else {\n setDropdownIcon(undefined)\n }\n }\n },\n [group, i18n, featureClientSchemaMap, schemaPath],\n )\n\n return (\n <div\n className={`fixed-toolbar__group fixed-toolbar__group-${group.key}`}\n data-toolbar-group-key={group.key}\n key={group.key}\n >\n {group.type === 'dropdown' && group.items.length ? (\n DropdownIcon ? (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n Icon={DropdownIcon}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n ) : (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n )\n ) : null}\n {group.type === 'buttons' && group.items.length\n ? group.items.map((item) => {\n return (\n <ButtonGroupItem anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n })\n : null}\n {index < editorConfig.features.toolbarFixed?.groups.length - 1 && <div className=\"divider\" />}\n </div>\n )\n}\n\nfunction FixedToolbar({\n anchorElem,\n clientProps,\n editor,\n editorConfig,\n parentWithFixedToolbar,\n}: {\n anchorElem: HTMLElement\n clientProps?: FixedToolbarFeatureProps\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n parentWithFixedToolbar: EditorConfigContextType | false\n}): React.ReactNode {\n const currentToolbarRef = React.useRef<HTMLDivElement>(null)\n const isEditable = useLexicalEditable()\n\n const { y } = useScrollInfo()\n\n // Memoize the parent toolbar element\n const parentToolbarElem = useMemo(() => {\n if (!parentWithFixedToolbar || clientProps?.disableIfParentHasFixedToolbar) {\n return null\n }\n\n const parentEditorElem = parentWithFixedToolbar.editorContainerRef.current\n let sibling = parentEditorElem.previousElementSibling\n while (sibling) {\n if (sibling.classList.contains('fixed-toolbar')) {\n return sibling\n }\n sibling = sibling.previousElementSibling\n }\n return null\n }, [clientProps?.disableIfParentHasFixedToolbar, parentWithFixedToolbar])\n\n useThrottledEffect(\n () => {\n if (!parentToolbarElem) {\n // this also checks for clientProps?.disableIfParentHasFixedToolbar indirectly, see the parentToolbarElem useMemo\n return\n }\n const currentToolbarElem = currentToolbarRef.current\n if (!currentToolbarElem) {\n return\n }\n\n const currentRect = currentToolbarElem.getBoundingClientRect()\n const parentRect = parentToolbarElem.getBoundingClientRect()\n\n // we only need to check for vertical overlap\n const overlapping = !(\n currentRect.bottom < parentRect.top || currentRect.top > parentRect.bottom\n )\n\n if (overlapping) {\n currentToolbarElem.classList.remove('fixed-toolbar')\n currentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--overlapping')\n parentToolbarElem.classList.remove('fixed-toolbar')\n parentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--hide')\n } else {\n if (!currentToolbarElem.classList.contains('fixed-toolbar--overlapping')) {\n return\n }\n currentToolbarElem.classList.remove('fixed-toolbar--overlapping')\n currentToolbarElem.classList.add('fixed-toolbar')\n parentToolbarElem.classList.remove('fixed-toolbar--hide')\n parentToolbarElem.classList.add('fixed-toolbar')\n }\n },\n 50,\n [currentToolbarRef, parentToolbarElem, y],\n )\n\n return (\n <div\n className=\"fixed-toolbar\"\n onFocus={(event) => {\n // Prevent other focus events being triggered. Otherwise, if this was to be clicked while in a child editor,\n // the parent editor will be focused, and the child editor will lose focus.\n event.stopPropagation()\n }}\n ref={currentToolbarRef}\n >\n {isEditable && (\n <React.Fragment>\n {editorConfig?.features &&\n editorConfig.features?.toolbarFixed?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n editorConfig={editorConfig}\n group={group}\n index={i}\n key={group.key}\n />\n )\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n\nconst getParentEditorWithFixedToolbar = (\n editorConfigContext: EditorConfigContextType,\n): EditorConfigContextType | false => {\n if (editorConfigContext.parentEditor?.editorConfig) {\n if (editorConfigContext.parentEditor?.editorConfig.resolvedFeatureMap.has('toolbarFixed')) {\n return editorConfigContext.parentEditor\n } else {\n if (editorConfigContext.parentEditor) {\n return getParentEditorWithFixedToolbar(editorConfigContext.parentEditor)\n }\n }\n }\n return false\n}\n\nexport const FixedToolbarPlugin: PluginComponent<FixedToolbarFeatureProps> = ({ clientProps }) => {\n const [currentEditor] = useLexicalComposerContext()\n const editorConfigContext = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n if (!isEditable) {\n return null\n }\n\n const { editorConfig: currentEditorConfig } = editorConfigContext\n\n const editor = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editor || currentEditor\n : currentEditor\n\n const editorConfig = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editorConfig || currentEditorConfig\n : currentEditorConfig\n\n const parentWithFixedToolbar = getParentEditorWithFixedToolbar(editorConfigContext)\n\n if (clientProps?.disableIfParentHasFixedToolbar) {\n if (parentWithFixedToolbar) {\n return null\n }\n }\n\n if (!editorConfig?.features?.toolbarFixed?.groups?.length) {\n return null\n }\n\n return (\n <FixedToolbar\n anchorElem={document.body}\n editor={editor}\n editorConfig={editorConfig}\n parentWithFixedToolbar={parentWithFixedToolbar}\n />\n )\n}\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { $addUpdateTag, $getSelection } from 'lexical'\nimport React, { useCallback, useDeferredValue, useEffect, useMemo, useState } from 'react'\n\nimport type { ToolbarGroupItem } from '../../types.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport './index.scss'\nimport { useRunDeprioritized } from '../../../../utilities/useRunDeprioritized.js'\n\nconst baseClass = 'toolbar-popup__button'\n\nexport const ToolbarButton = ({\n children,\n editor,\n item,\n}: {\n children: React.JSX.Element\n editor: LexicalEditor\n item: ToolbarGroupItem\n}) => {\n const [_state, setState] = useState({ active: false, enabled: true })\n const deferredState = useDeferredValue(_state)\n\n const editorConfigContext = useEditorConfigContext()\n\n const className = useMemo(() => {\n return [\n baseClass,\n !deferredState.enabled ? 'disabled' : '',\n deferredState.active ? 'active' : '',\n item.key ? `${baseClass}-${item.key}` : '',\n ]\n .filter(Boolean)\n .join(' ')\n }, [deferredState, item.key])\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!selection) {\n return\n }\n const newActive = item.isActive\n ? item.isActive({ editor, editorConfigContext, selection })\n : false\n\n const newEnabled = item.isEnabled\n ? item.isEnabled({ editor, editorConfigContext, selection })\n : true\n\n setState((prev) => {\n if (prev.active === newActive && prev.enabled === newEnabled) {\n return prev\n }\n return { active: newActive, enabled: newEnabled }\n })\n })\n }, [editor, editorConfigContext, item])\n\n const runDeprioritized = useRunDeprioritized()\n\n useEffect(() => {\n // Run on mount\n void runDeprioritized(updateStates)\n\n const listener = () => runDeprioritized(updateStates)\n\n const cleanup = mergeRegister(editor.registerUpdateListener(listener))\n document.addEventListener('mouseup', listener)\n\n return () => {\n cleanup()\n document.removeEventListener('mouseup', listener)\n }\n }, [editor, runDeprioritized, updateStates])\n\n const handleClick = useCallback(() => {\n if (!_state.enabled) {\n return\n }\n\n editor.focus(() => {\n editor.update(() => {\n $addUpdateTag('toolbar')\n })\n // We need to wrap the onSelect in the callback, so the editor is properly focused before the onSelect is called.\n item.onSelect?.({\n editor,\n isActive: _state.active,\n })\n })\n }, [editor, item, _state])\n\n const handleMouseDown = useCallback((e: React.MouseEvent) => {\n // This fixes a bug where you are unable to click the button if you are in a NESTED editor (editor in blocks field in editor).\n // Thus only happens if you click on the SVG of the button. Clicking on the outside works. Related issue: https://github.com/payloadcms/payload/issues/4025\n // TODO: Find out why exactly it happens and why e.preventDefault() on the mouseDown fixes it. Write that down here, or potentially fix a root cause, if there is any.\n e.preventDefault()\n }, [])\n\n return (\n <button\n className={className}\n data-button-key={item.key}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n type=\"button\"\n >\n {children}\n </button>\n )\n}\n", "'use client'\nimport React, { useCallback, useDeferredValue, useEffect, useMemo } from 'react'\n\nconst baseClass = 'toolbar-popup__dropdown'\n\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { useTranslation } from '@payloadcms/ui'\nimport { $getSelection } from 'lexical'\n\nimport type { ToolbarDropdownGroup, ToolbarGroupItem } from '../../types.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { useRunDeprioritized } from '../../../../utilities/useRunDeprioritized.js'\nimport './index.scss'\nimport { DropDown, DropDownItem } from './DropDown.js'\n\nconst ToolbarItem = ({\n active,\n anchorElem,\n editor,\n enabled,\n item,\n}: {\n active?: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled?: boolean\n item: ToolbarGroupItem\n}) => {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component\n active={active}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabled}\n item={item}\n key={item.key}\n />\n )\n )\n }\n\n let title = item.key\n let croppedTitle = item.key\n if (item.label) {\n title =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n // Crop title to max. 25 characters\n if (title.length > 25) {\n croppedTitle = title.substring(0, 25) + '...'\n } else {\n croppedTitle = title\n }\n\n return (\n <DropDownItem\n active={active}\n editor={editor}\n enabled={enabled}\n Icon={item?.ChildComponent ? <item.ChildComponent /> : undefined}\n item={item}\n itemKey={item.key}\n key={item.key}\n tooltip={title}\n >\n <span className=\"text\">{croppedTitle}</span>\n </DropDownItem>\n )\n}\n\nconst MemoToolbarItem = React.memo(ToolbarItem)\n\nexport const ToolbarDropdown = ({\n anchorElem,\n classNames,\n editor,\n group,\n Icon,\n itemsContainerClassNames,\n label,\n maxActiveItems,\n onActiveChange,\n}: {\n anchorElem: HTMLElement\n classNames?: string[]\n editor: LexicalEditor\n group: ToolbarDropdownGroup\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n /**\n * Maximum number of active items allowed. This is a performance optimization to prevent\n * unnecessary item active checks when the maximum number of active items is reached.\n */\n maxActiveItems?: number\n onActiveChange?: ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => void\n}) => {\n const [toolbarState, setToolbarState] = React.useState<{\n activeItemKeys: string[]\n enabledGroup: boolean\n enabledItemKeys: string[]\n }>({\n activeItemKeys: [],\n enabledGroup: true,\n enabledItemKeys: [],\n })\n const deferredToolbarState = useDeferredValue(toolbarState)\n\n const editorConfigContext = useEditorConfigContext()\n const { items, key: groupKey } = group\n\n const runDeprioritized = useRunDeprioritized()\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!selection) {\n return\n }\n\n const _activeItemKeys: string[] = []\n const _activeItems: ToolbarGroupItem[] = []\n const _enabledItemKeys: string[] = []\n\n for (const item of items) {\n if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {\n const isActive = item.isActive({ editor, editorConfigContext, selection })\n if (isActive) {\n _activeItemKeys.push(item.key)\n _activeItems.push(item)\n }\n }\n if (item.isEnabled) {\n const isEnabled = item.isEnabled({ editor, editorConfigContext, selection })\n if (isEnabled) {\n _enabledItemKeys.push(item.key)\n }\n } else {\n _enabledItemKeys.push(item.key)\n }\n }\n\n setToolbarState({\n activeItemKeys: _activeItemKeys,\n enabledGroup: group.isEnabled\n ? group.isEnabled({ editor, editorConfigContext, selection })\n : true,\n enabledItemKeys: _enabledItemKeys,\n })\n\n if (onActiveChange) {\n onActiveChange({ activeItems: _activeItems })\n }\n })\n }, [editor, editorConfigContext, group, items, maxActiveItems, onActiveChange])\n\n useEffect(() => {\n // Run on mount in order to update states when dropdown is opened\n void runDeprioritized(updateStates)\n\n return mergeRegister(\n editor.registerUpdateListener(async () => {\n await runDeprioritized(updateStates)\n }),\n )\n }, [editor, runDeprioritized, updateStates])\n\n const renderedItems = useMemo(() => {\n return items?.length\n ? items.map((item) => (\n <MemoToolbarItem\n active={deferredToolbarState.activeItemKeys.includes(item.key)}\n anchorElem={anchorElem}\n editor={editor}\n enabled={deferredToolbarState.enabledItemKeys.includes(item.key)}\n item={item}\n key={item.key}\n />\n ))\n : null\n }, [items, deferredToolbarState, anchorElem, editor])\n\n return (\n <DropDown\n buttonAriaLabel={`${groupKey} dropdown`}\n buttonClassName={[baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])]\n .filter(Boolean)\n .join(' ')}\n disabled={!deferredToolbarState.enabledGroup}\n dropdownKey={groupKey}\n Icon={Icon}\n itemsContainerClassNames={[`${baseClass}-items`, ...(itemsContainerClassNames || [])]}\n key={groupKey}\n label={label}\n >\n {renderedItems}\n </DropDown>\n )\n}\n", "'use client'\nimport { Button } from '@payloadcms/ui'\nimport { $addUpdateTag, isDOMNode, type LexicalEditor } from 'lexical'\nimport React, { type ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { ToolbarGroupItem } from '../../types.js'\n\nconst baseClass = 'toolbar-popup__dropdown-item'\n\ninterface DropDownContextType {\n registerItem: (ref: React.RefObject<HTMLButtonElement | null>) => void\n}\n\nconst DropDownContext = React.createContext<DropDownContextType | null>(null)\n\nexport function DropDownItem({\n active,\n children,\n editor,\n enabled,\n Icon,\n item,\n itemKey,\n tooltip,\n}: {\n active?: boolean\n children: React.ReactNode\n editor: LexicalEditor\n enabled?: boolean\n Icon: React.ReactNode\n item: ToolbarGroupItem\n itemKey: string\n tooltip?: string\n}): React.ReactNode {\n const className = useMemo(() => {\n return [\n baseClass,\n enabled === false ? 'disabled' : '',\n active ? 'active' : '',\n item?.key ? `${baseClass}-${item.key}` : '',\n ]\n .filter(Boolean)\n .join(' ')\n }, [enabled, active, item.key])\n\n const ref = useRef<HTMLButtonElement>(null)\n\n const dropDownContext = React.use(DropDownContext)\n\n if (dropDownContext === null) {\n throw new Error('DropDownItem must be used within a DropDown')\n }\n\n const { registerItem } = dropDownContext\n\n useEffect(() => {\n if (ref?.current != null) {\n registerItem(ref)\n }\n }, [ref, registerItem])\n\n return (\n <Button\n aria-label={tooltip}\n buttonStyle=\"none\"\n className={className}\n disabled={enabled === false}\n extraButtonProps={{\n 'data-item-key': itemKey,\n }}\n icon={Icon}\n iconPosition=\"left\"\n iconStyle=\"none\"\n onClick={() => {\n if (enabled !== false) {\n editor.focus(() => {\n editor.update(() => {\n $addUpdateTag('toolbar')\n })\n // We need to wrap the onSelect in the callback, so the editor is properly focused before the onSelect is called.\n item.onSelect?.({\n editor,\n isActive: active!,\n })\n })\n }\n }}\n onMouseDown={(e) => {\n // This is required for Firefox compatibility. Without it, the dropdown will disappear without the onClick being called.\n // This only happens in Firefox. Must be something about how Firefox handles focus events differently.\n e.preventDefault()\n }}\n ref={ref}\n tooltip={tooltip}\n type=\"button\"\n >\n {children}\n </Button>\n )\n}\n\nfunction DropDownItems({\n children,\n dropDownRef,\n itemsContainerClassNames,\n onClose,\n}: {\n children: React.ReactNode\n dropDownRef: React.Ref<HTMLDivElement>\n itemsContainerClassNames?: string[]\n onClose: () => void\n}): React.ReactElement {\n const [items, setItems] = useState<Array<React.RefObject<HTMLButtonElement | null>>>()\n const [highlightedItem, setHighlightedItem] =\n useState<React.RefObject<HTMLButtonElement | null>>()\n\n const registerItem = useCallback(\n (itemRef: React.RefObject<HTMLButtonElement | null>) => {\n setItems((prev) => (prev != null ? [...prev, itemRef] : [itemRef]))\n },\n [setItems],\n )\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (items == null) {\n return\n }\n\n const { key } = event\n\n if (['ArrowDown', 'ArrowUp', 'Escape', 'Tab'].includes(key)) {\n event.preventDefault()\n }\n\n if (key === 'Escape' || key === 'Tab') {\n onClose()\n } else if (key === 'ArrowUp') {\n setHighlightedItem((prev) => {\n if (prev == null) {\n return items[0]\n }\n const index = items.indexOf(prev) - 1\n return items[index === -1 ? items.length - 1 : index]\n })\n } else if (key === 'ArrowDown') {\n setHighlightedItem((prev) => {\n if (prev == null) {\n return items[0]\n }\n return items[items.indexOf(prev) + 1]\n })\n }\n }\n\n const contextValue = useMemo(\n () => ({\n registerItem,\n }),\n [registerItem],\n )\n\n useEffect(() => {\n if (items != null && highlightedItem == null) {\n setHighlightedItem(items[0])\n }\n\n if (highlightedItem != null && highlightedItem?.current != null) {\n highlightedItem.current.focus()\n }\n }, [items, highlightedItem])\n\n return (\n <DropDownContext value={contextValue}>\n <div\n className={(itemsContainerClassNames ?? ['toolbar-popup__dropdown-items']).join(' ')}\n onKeyDown={handleKeyDown}\n ref={dropDownRef}\n >\n {children}\n </div>\n </DropDownContext>\n )\n}\n\nexport function DropDown({\n buttonAriaLabel,\n buttonClassName,\n children,\n disabled = false,\n dropdownKey,\n Icon,\n itemsContainerClassNames,\n label,\n stopCloseOnClickSelf,\n}: {\n buttonAriaLabel?: string\n buttonClassName: string\n children: ReactNode\n disabled?: boolean\n dropdownKey: string\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n stopCloseOnClickSelf?: boolean\n}): React.ReactNode {\n const dropDownRef = useRef<HTMLDivElement>(null)\n const buttonRef = useRef<HTMLButtonElement>(null)\n const [showDropDown, setShowDropDown] = useState(false)\n\n const handleClose = (): void => {\n setShowDropDown(false)\n if (buttonRef?.current != null) {\n buttonRef.current.focus()\n }\n }\n\n useEffect(() => {\n const button = buttonRef.current\n const dropDown = dropDownRef.current\n\n if (showDropDown && button !== null && dropDown !== null) {\n const { left, top } = button.getBoundingClientRect()\n const scrollTopOffset = window.scrollY || document.documentElement.scrollTop\n dropDown.style.top = `${top + scrollTopOffset + button.offsetHeight + 5}px`\n dropDown.style.left = `${Math.min(left - 5, window.innerWidth - dropDown.offsetWidth - 20)}px`\n }\n }, [dropDownRef, buttonRef, showDropDown])\n\n useEffect(() => {\n const button = buttonRef.current\n\n if (button !== null && showDropDown) {\n const handle = (event: MouseEvent): void => {\n const target = event.target\n if (!isDOMNode(target)) {\n return\n }\n if (stopCloseOnClickSelf) {\n if (dropDownRef.current && dropDownRef.current.contains(target)) {\n return\n }\n }\n if (!button.contains(target)) {\n setShowDropDown(false)\n }\n }\n document.addEventListener('click', handle)\n\n return () => {\n document.removeEventListener('click', handle)\n }\n }\n }, [dropDownRef, buttonRef, showDropDown, stopCloseOnClickSelf])\n\n const portal = createPortal(\n <DropDownItems\n dropDownRef={dropDownRef}\n itemsContainerClassNames={itemsContainerClassNames}\n onClose={handleClose}\n >\n {children}\n </DropDownItems>,\n document.body,\n )\n\n return (\n <React.Fragment>\n <button\n aria-label={buttonAriaLabel}\n className={buttonClassName + (showDropDown ? ' active' : '')}\n data-dropdown-key={dropdownKey}\n disabled={disabled}\n onClick={(event) => {\n event.preventDefault()\n setShowDropDown(!showDropDown)\n }}\n onMouseDown={(e) => {\n // This fixes a bug where you are unable to click the button if you are in a NESTED editor (editor in blocks field in editor).\n // Thus only happens if you click on the SVG of the button. Clicking on the outside works. Related issue: https://github.com/payloadcms/payload/issues/4025\n // TODO: Find out why exactly it happens and why e.preventDefault() on the mouseDown fixes it. Write that down here, or potentially fix a root cause, if there is any.\n e.preventDefault()\n }}\n ref={buttonRef}\n type=\"button\"\n >\n {Icon && <Icon />}\n {label && <span className=\"toolbar-popup__dropdown-label\">{label}</span>}\n <i className=\"toolbar-popup__dropdown-caret\" />\n </button>\n\n {showDropDown && <React.Fragment>{portal}</React.Fragment>}\n </React.Fragment>\n )\n}\n", "'use client'\n\nimport type { FixedToolbarFeatureProps } from '../server/index.js'\n\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { FixedToolbarPlugin } from './Toolbar/index.js'\n\nexport const FixedToolbarFeatureClient = createClientFeature<FixedToolbarFeatureProps>({\n plugins: [\n {\n Component: FixedToolbarPlugin,\n position: 'aboveContainer',\n },\n ],\n})\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n $isTextNode,\n COMMAND_PRIORITY_LOW,\n getDOMSelection,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getDOMRangeRect } from '../../../../../lexical/utils/getDOMRangeRect.js'\nimport { setFloatingElemPosition } from '../../../../../lexical/utils/setFloatingElemPosition.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport './index.scss'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\n\nfunction ButtonGroupItem({\n anchorElem,\n editor,\n item,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n item: ToolbarGroupItem\n}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n if (!item.ChildComponent) {\n return null\n }\n\n return (\n <ToolbarButton editor={editor} item={item} key={item.key}>\n <item.ChildComponent />\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n group,\n index,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n group: ToolbarGroup\n index: number\n}): React.ReactNode {\n const { editorConfig } = useEditorConfigContext()\n\n const [DropdownIcon, setDropdownIcon] = React.useState<React.FC | undefined>()\n\n React.useEffect(() => {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent)\n } else {\n setDropdownIcon(undefined)\n }\n }, [group])\n\n const onActiveChange = useCallback(\n ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => {\n if (!activeItems.length) {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent)\n } else {\n setDropdownIcon(undefined)\n }\n return\n }\n const item = activeItems[0]\n setDropdownIcon(() => item?.ChildComponent)\n },\n [group],\n )\n\n return (\n <div\n className={`inline-toolbar-popup__group inline-toolbar-popup__group-${group.key}`}\n data-toolbar-group-key={group.key}\n key={group.key}\n >\n {group.type === 'dropdown' && group.items.length ? (\n DropdownIcon ? (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n Icon={DropdownIcon}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n ) : (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n )\n ) : null}\n {group.type === 'buttons' && group.items.length\n ? group.items.map((item) => {\n return (\n <ButtonGroupItem anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n })\n : null}\n {index < editorConfig.features.toolbarInline?.groups.length - 1 && (\n <div className=\"divider\" />\n )}\n </div>\n )\n}\n\nfunction InlineToolbar({\n anchorElem,\n editor,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n}): React.ReactNode {\n const floatingToolbarRef = useRef<HTMLDivElement | null>(null)\n const caretRef = useRef<HTMLDivElement | null>(null)\n\n const { editorConfig } = useEditorConfigContext()\n\n const closeFloatingToolbar = useCallback(() => {\n if (floatingToolbarRef?.current) {\n const isOpacityZero = floatingToolbarRef.current.style.opacity === '0'\n const isPointerEventsNone = floatingToolbarRef.current.style.pointerEvents === 'none'\n\n if (!isOpacityZero) {\n floatingToolbarRef.current.style.opacity = '0'\n }\n if (!isPointerEventsNone) {\n floatingToolbarRef.current.style.pointerEvents = 'none'\n }\n }\n }, [floatingToolbarRef])\n\n const mouseMoveListener = useCallback(\n (e: MouseEvent) => {\n if (floatingToolbarRef?.current && (e.buttons === 1 || e.buttons === 3)) {\n const isOpacityZero = floatingToolbarRef.current.style.opacity === '0'\n const isPointerEventsNone = floatingToolbarRef.current.style.pointerEvents === 'none'\n if (!isOpacityZero || !isPointerEventsNone) {\n // Check if the mouse is not over the popup\n const x = e.clientX\n const y = e.clientY\n const elementUnderMouse = document.elementFromPoint(x, y)\n if (!floatingToolbarRef.current.contains(elementUnderMouse)) {\n // Mouse is not over the target element => not a normal click, but probably a drag\n closeFloatingToolbar()\n }\n }\n }\n },\n [closeFloatingToolbar],\n )\n\n const mouseUpListener = useCallback(() => {\n if (floatingToolbarRef?.current) {\n if (floatingToolbarRef.current.style.opacity !== '1') {\n floatingToolbarRef.current.style.opacity = '1'\n }\n if (floatingToolbarRef.current.style.pointerEvents !== 'auto') {\n floatingToolbarRef.current.style.pointerEvents = 'auto'\n }\n }\n }, [])\n\n useEffect(() => {\n document.addEventListener('mousemove', mouseMoveListener)\n document.addEventListener('mouseup', mouseUpListener)\n\n return () => {\n document.removeEventListener('mousemove', mouseMoveListener)\n document.removeEventListener('mouseup', mouseUpListener)\n }\n }, [floatingToolbarRef, mouseMoveListener, mouseUpListener])\n\n const $updateTextFormatFloatingToolbar = useCallback(() => {\n const selection = $getSelection()\n\n const nativeSelection = getDOMSelection(editor._window)\n\n if (floatingToolbarRef.current === null) {\n return\n }\n\n const possibleLinkEditor = anchorElem.querySelector(':scope > .link-editor')\n const isLinkEditorVisible =\n possibleLinkEditor !== null &&\n 'style' in possibleLinkEditor &&\n possibleLinkEditor?.style?.['opacity' as keyof typeof possibleLinkEditor.style] === '1'\n\n const rootElement = editor.getRootElement()\n if (\n selection !== null &&\n nativeSelection !== null &&\n !nativeSelection.isCollapsed &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n const rangeRect = getDOMRangeRect(nativeSelection, rootElement)\n\n // Position floating toolbar\n const offsetIfFlipped = setFloatingElemPosition({\n alwaysDisplayOnTop: isLinkEditorVisible,\n anchorElem,\n floatingElem: floatingToolbarRef.current,\n horizontalPosition: 'center',\n targetRect: rangeRect,\n })\n\n // Position caret\n if (caretRef.current) {\n setFloatingElemPosition({\n anchorElem: floatingToolbarRef.current,\n anchorFlippedOffset: offsetIfFlipped,\n floatingElem: caretRef.current,\n horizontalOffset: 5,\n horizontalPosition: 'center',\n specialHandlingForCaret: true,\n targetRect: rangeRect,\n verticalGap: 8,\n })\n }\n } else {\n closeFloatingToolbar()\n }\n }, [editor, closeFloatingToolbar, anchorElem])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = () => {\n editor.getEditorState().read(() => {\n $updateTextFormatFloatingToolbar()\n })\n }\n\n window.addEventListener('resize', update)\n if (scrollerElem) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n if (scrollerElem) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [editor, $updateTextFormatFloatingToolbar, anchorElem])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n $updateTextFormatFloatingToolbar()\n })\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n $updateTextFormatFloatingToolbar()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n $updateTextFormatFloatingToolbar()\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateTextFormatFloatingToolbar])\n\n return (\n <div className=\"inline-toolbar-popup\" ref={floatingToolbarRef}>\n <div className=\"caret\" ref={caretRef} />\n {editorConfig?.features &&\n editorConfig.features?.toolbarInline?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n index={i}\n key={group.key}\n />\n )\n })}\n </div>\n )\n}\n\nfunction useInlineToolbar(\n editor: LexicalEditor,\n anchorElem: HTMLElement,\n): null | React.ReactElement {\n const [isText, setIsText] = useState(false)\n const isEditable = useLexicalEditable()\n\n const updatePopup = useCallback(() => {\n editor.getEditorState().read(() => {\n // Should not to pop up the floating toolbar when using IME input\n if (editor.isComposing()) {\n return\n }\n const selection = $getSelection()\n const nativeSelection = getDOMSelection(editor._window)\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n (!$isRangeSelection(selection) ||\n rootElement === null ||\n !rootElement.contains(nativeSelection.anchorNode))\n ) {\n setIsText(false)\n return\n }\n\n if (!$isRangeSelection(selection)) {\n return\n }\n\n if (selection.getTextContent() !== '') {\n const nodes = selection.getNodes()\n let foundNodeWithText = false\n for (const node of nodes) {\n if ($isTextNode(node)) {\n setIsText(true)\n foundNodeWithText = true\n break\n }\n }\n if (!foundNodeWithText) {\n setIsText(false)\n }\n } else {\n setIsText(false)\n }\n\n const rawTextContent = selection.getTextContent().replace(/\\n/g, '')\n if (!selection.isCollapsed() && rawTextContent === '') {\n setIsText(false)\n return\n }\n })\n }, [editor])\n\n useEffect(() => {\n document.addEventListener('selectionchange', updatePopup)\n document.addEventListener('mouseup', updatePopup)\n return () => {\n document.removeEventListener('selectionchange', updatePopup)\n document.removeEventListener('mouseup', updatePopup)\n }\n }, [updatePopup])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updatePopup()\n }),\n editor.registerRootListener(() => {\n if (editor.getRootElement() === null) {\n setIsText(false)\n }\n }),\n )\n }, [editor, updatePopup])\n\n if (!isText || !isEditable) {\n return null\n }\n\n return createPortal(<InlineToolbar anchorElem={anchorElem} editor={editor} />, anchorElem)\n}\n\nexport const InlineToolbarPlugin: PluginComponentWithAnchor<undefined> = ({ anchorElem }) => {\n const [editor] = useLexicalComposerContext()\n\n return useInlineToolbar(editor, anchorElem)\n}\n", "'use client'\nexport function getDOMRangeRect(nativeSelection: Selection, rootElement: HTMLElement): DOMRect {\n const domRange = nativeSelection.getRangeAt(0)\n\n let rect\n\n if (nativeSelection.anchorNode === rootElement) {\n let inner = rootElement\n while (inner.firstElementChild != null) {\n inner = inner.firstElementChild as HTMLElement\n }\n rect = inner.getBoundingClientRect()\n } else {\n rect = domRange.getBoundingClientRect()\n }\n\n return rect\n}\n", "'use client'\nconst VERTICAL_GAP = 10\nconst HORIZONTAL_OFFSET = 32\n\n// TODO: needs refactoring\n// This is supposed to position the floatingElem based on the parent (anchorElem) and the target (targetRect) which is usually the selected text.\n// So basically, it positions the floatingElem either below or above the target (targetRect) and aligns it to the left or center of the target (targetRect).\n// This is used for positioning the floating toolbar (anchor: richtext editor) and its caret (anchor: floating toolbar)\nexport function setFloatingElemPosition(args: {\n alwaysDisplayOnTop?: boolean\n anchorElem: HTMLElement\n anchorFlippedOffset?: number // Offset which was added to the anchor (for caret, floating toolbar) if it was flipped\n floatingElem: HTMLElement\n horizontalOffset?: number\n horizontalPosition?: 'center' | 'left'\n specialHandlingForCaret?: boolean\n targetRect: ClientRect | null\n verticalGap?: number\n}): number | undefined {\n const {\n alwaysDisplayOnTop = false,\n anchorElem,\n anchorFlippedOffset = 0, // Offset which was added to the anchor (for caret, floating toolbar) if it was flipped\n floatingElem,\n horizontalOffset = HORIZONTAL_OFFSET,\n horizontalPosition = 'left',\n specialHandlingForCaret = false,\n targetRect,\n verticalGap = VERTICAL_GAP,\n } = args\n // Returns the top offset if the target was flipped\n const scrollerElem = anchorElem.parentElement\n\n if (targetRect === null || scrollerElem == null) {\n floatingElem.style.opacity = '0'\n floatingElem.style.transform = 'translate(-10000px, -10000px)'\n return\n }\n\n const floatingElemRect = floatingElem.getBoundingClientRect()\n const anchorElementRect = anchorElem.getBoundingClientRect()\n const editorScrollerRect = scrollerElem.getBoundingClientRect()\n\n let top = targetRect.top - floatingElemRect.height - verticalGap\n let left = targetRect.left - horizontalOffset\n\n if (horizontalPosition === 'center') {\n // Calculate left to position floatingElem to the horizontal middle of targetRect\n left = targetRect.left + targetRect.width / 2 - floatingElemRect.width / 2\n }\n\n let addedToTop = 0\n if (!alwaysDisplayOnTop && top < editorScrollerRect.top && !specialHandlingForCaret) {\n addedToTop = floatingElemRect.height + targetRect.height + verticalGap * 2\n\n top += addedToTop\n }\n\n if (horizontalPosition === 'center') {\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n } else if (left < editorScrollerRect.left) {\n left = editorScrollerRect.left + horizontalOffset\n }\n } else {\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n }\n }\n\n left -= anchorElementRect.left\n\n floatingElem.style.opacity = '1'\n\n if (specialHandlingForCaret && anchorFlippedOffset !== 0) {\n // Floating select toolbar was flipped (positioned below text rather than above). Thus, the caret now needs to be positioned\n // on the other side and rotated.\n top -= anchorElementRect.bottom - anchorFlippedOffset + floatingElemRect.height - 3\n // top += anchorFlippedOffset - anchorElementRect.height - floatingElemRect.height + 2\n floatingElem.style.transform = `translate(${left}px, ${top}px) rotate(180deg)`\n } else {\n top -= anchorElementRect.top\n\n floatingElem.style.transform = `translate(${left}px, ${top}px)`\n }\n\n return addedToTop\n}\n", "'use client'\n\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { InlineToolbarPlugin } from './Toolbar/index.js'\n\nexport const InlineToolbarFeatureClient = createClientFeature({\n plugins: [\n {\n Component: InlineToolbarPlugin,\n position: 'floatingAnchorElem',\n },\n ],\n})\n", "'use client'\n\nimport { TableCellNode, TableNode, TableRowNode } from '@lexical/table'\n\nimport { TableIcon } from '../../../lexical/ui/icons/Table/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarAddDropdownGroupWithItems } from '../../shared/toolbar/addDropdownGroup.js'\nimport { TableMarkdownTransformer } from '../markdownTransformer.js'\nimport { TableActionMenuPlugin } from './plugins/TableActionMenuPlugin/index.js'\nimport { TableCellResizerPlugin } from './plugins/TableCellResizerPlugin/index.js'\nimport { TableHoverActionsPlugin } from './plugins/TableHoverActionsPlugin/index.js'\nimport {\n OPEN_TABLE_DRAWER_COMMAND,\n TableContext,\n TablePlugin,\n} from './plugins/TablePlugin/index.js'\n\nexport const TableFeatureClient = createClientFeature({\n markdownTransformers: [TableMarkdownTransformer],\n nodes: [TableNode, TableCellNode, TableRowNode],\n plugins: [\n {\n Component: TablePlugin,\n position: 'normal',\n },\n {\n Component: TableCellResizerPlugin,\n position: 'normal',\n },\n {\n Component: TableActionMenuPlugin,\n position: 'floatingAnchorElem',\n },\n {\n Component: TableHoverActionsPlugin,\n position: 'floatingAnchorElem',\n },\n ],\n providers: [TableContext],\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: TableIcon,\n key: 'table',\n keywords: ['table'],\n label: 'Table',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OPEN_TABLE_DRAWER_COMMAND, {})\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: [\n toolbarAddDropdownGroupWithItems([\n {\n ChildComponent: TableIcon,\n key: 'table',\n label: 'Table',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OPEN_TABLE_DRAWER_COMMAND, {})\n },\n },\n ]),\n ],\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const TableIcon: React.FC = () => {\n return (\n <svg\n className=\"icon\"\n fill=\"none\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.33333 4.5C4.8731 4.5 4.5 4.8731 4.5 5.33333V7.5H9.5V4.5H5.33333ZM5.33333 3.5C4.32081 3.5 3.5 4.32081 3.5 5.33333V14.6667C3.5 15.6792 4.32081 16.5 5.33333 16.5H14.6667C15.6792 16.5 16.5 15.6792 16.5 14.6667V5.33333C16.5 4.32081 15.6792 3.5 14.6667 3.5H5.33333ZM10.5 4.5V7.5H15.5V5.33333C15.5 4.8731 15.1269 4.5 14.6667 4.5H10.5ZM15.5 8.5H10.5V11.5H15.5V8.5ZM15.5 12.5H10.5V15.5H14.6667C15.1269 15.5 15.5 15.1269 15.5 14.6667V12.5ZM9.5 15.5V12.5H4.5V14.6667C4.5 15.1269 4.8731 15.5 5.33333 15.5H9.5ZM4.5 11.5H9.5V8.5H4.5V11.5Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n )\n}\n", "import type { LexicalNode } from 'lexical'\n\nimport {\n $createTableCellNode,\n $createTableNode,\n $createTableRowNode,\n $isTableCellNode,\n $isTableNode,\n $isTableRowNode,\n TableCellHeaderStates,\n TableCellNode,\n TableNode,\n TableRowNode,\n} from '@lexical/table'\nimport { $isParagraphNode, $isTextNode } from 'lexical'\n\nimport {\n $convertFromMarkdownString,\n $convertToMarkdownString,\n type ElementTransformer,\n type Transformer,\n} from '../../packages/@lexical/markdown/index.js'\n\n// Very primitive table setup\nconst TABLE_ROW_REG_EXP = /^\\|(.+)\\|\\s?$/\n// eslint-disable-next-line regexp/no-unused-capturing-group\nconst TABLE_ROW_DIVIDER_REG_EXP = /^(\\| ?:?-*:? ?)+\\|\\s?$/\n\nexport const TableMarkdownTransformer: (props: {\n allTransformers: Transformer[]\n}) => ElementTransformer = ({ allTransformers }) => ({\n type: 'element',\n dependencies: [TableNode, TableRowNode, TableCellNode],\n export: (node: LexicalNode) => {\n if (!$isTableNode(node)) {\n return null\n }\n\n const output: string[] = []\n\n for (const row of node.getChildren()) {\n const rowOutput: string[] = []\n if (!$isTableRowNode(row)) {\n continue\n }\n\n let isHeaderRow = false\n for (const cell of row.getChildren()) {\n // It's TableCellNode, so it's just to make flow happy\n if ($isTableCellNode(cell)) {\n rowOutput.push(\n $convertToMarkdownString(allTransformers, cell).replace(/\\n/g, '\\\\n').trim(),\n )\n\n if (cell.__headerState === TableCellHeaderStates.ROW) {\n isHeaderRow = true\n }\n }\n }\n\n output.push(`| ${rowOutput.join(' | ')} |`)\n if (isHeaderRow) {\n output.push(`| ${rowOutput.map((_) => '---').join(' | ')} |`)\n }\n }\n\n return output.join('\\n')\n },\n regExp: TABLE_ROW_REG_EXP,\n replace: (parentNode, _1, match) => {\n const match0 = match[0]\n if (!match0) {\n return\n }\n // Header row\n if (TABLE_ROW_DIVIDER_REG_EXP.test(match0)) {\n const table = parentNode.getPreviousSibling()\n if (!table || !$isTableNode(table)) {\n return\n }\n\n const rows = table.getChildren()\n const lastRow = rows[rows.length - 1]\n if (!lastRow || !$isTableRowNode(lastRow)) {\n return\n }\n\n // Add header state to row cells\n lastRow.getChildren().forEach((cell) => {\n if (!$isTableCellNode(cell)) {\n return\n }\n cell.setHeaderStyles(TableCellHeaderStates.ROW, TableCellHeaderStates.ROW)\n })\n\n // Remove line\n parentNode.remove()\n return\n }\n\n const matchCells = mapToTableCells(match0, allTransformers)\n\n if (matchCells == null) {\n return\n }\n\n const rows = [matchCells]\n let sibling = parentNode.getPreviousSibling()\n let maxCells = matchCells.length\n\n while (sibling) {\n if (!$isParagraphNode(sibling)) {\n break\n }\n\n if (sibling.getChildrenSize() !== 1) {\n break\n }\n\n const firstChild = sibling.getFirstChild()\n\n if (!$isTextNode(firstChild)) {\n break\n }\n\n const cells = mapToTableCells(firstChild.getTextContent(), allTransformers)\n\n if (cells == null) {\n break\n }\n\n maxCells = Math.max(maxCells, cells.length)\n rows.unshift(cells)\n const previousSibling = sibling.getPreviousSibling()\n sibling.remove()\n sibling = previousSibling\n }\n\n const table = $createTableNode()\n\n for (const cells of rows) {\n const tableRow = $createTableRowNode()\n table.append(tableRow)\n\n for (let i = 0; i < maxCells; i++) {\n tableRow.append(i < cells.length ? cells[i]! : $createTableCell('', allTransformers))\n }\n }\n\n const previousSibling = parentNode.getPreviousSibling()\n if ($isTableNode(previousSibling) && getTableColumnsSize(previousSibling) === maxCells) {\n previousSibling.append(...table.getChildren())\n parentNode.remove()\n } else {\n parentNode.replace(table)\n }\n\n table.selectEnd()\n },\n})\n\nfunction getTableColumnsSize(table: TableNode) {\n const row = table.getFirstChild()\n return $isTableRowNode(row) ? row.getChildrenSize() : 0\n}\n\nconst $createTableCell = (textContent: string, allTransformers: Transformer[]): TableCellNode => {\n textContent = textContent.replace(/\\\\n/g, '\\n')\n const cell = $createTableCellNode(TableCellHeaderStates.NO_STATUS)\n $convertFromMarkdownString(textContent, allTransformers, cell)\n return cell\n}\n\nconst mapToTableCells = (\n textContent: string,\n allTransformers: Transformer[],\n): Array<TableCellNode> | null => {\n const match = textContent.match(TABLE_ROW_REG_EXP)\n if (!match || !match[1]) {\n return null\n }\n return match[1].split('|').map((text) => $createTableCell(text, allTransformers))\n}\n", "'use client'\n\nimport type { TableObserver, TableSelection } from '@lexical/table'\nimport type { ElementNode } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n $computeTableMapSkipCellCheck,\n $deleteTableColumnAtSelection,\n $deleteTableRowAtSelection,\n $getNodeTriplet,\n $getTableCellNodeFromLexicalNode,\n $getTableColumnIndexFromTableCellNode,\n $getTableNodeFromLexicalNodeOrThrow,\n $getTableRowIndexFromTableCellNode,\n $insertTableColumnAtSelection,\n $insertTableRowAtSelection,\n $isTableCellNode,\n $isTableSelection,\n $mergeCells,\n $unmergeCell,\n getTableElement,\n getTableObserverFromTableElement,\n TableCellHeaderStates,\n TableCellNode,\n} from '@lexical/table'\nimport { mergeRegister } from '@lexical/utils'\nimport { useScrollInfo } from '@payloadcms/ui'\nimport {\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n $isTextNode,\n $setSelection,\n COMMAND_PRIORITY_CRITICAL,\n getDOMSelection,\n isDOMNode,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport * as React from 'react'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\n\nimport './index.scss'\nimport { MeatballsIcon } from '../../../../../lexical/ui/icons/Meatballs/index.js'\n\nfunction computeSelectionCount(selection: TableSelection): {\n columns: number\n rows: number\n} {\n const selectionShape = selection.getShape()\n return {\n columns: selectionShape.toX - selectionShape.fromX + 1,\n rows: selectionShape.toY - selectionShape.fromY + 1,\n }\n}\n\nfunction $canUnmerge(): boolean {\n const selection = $getSelection()\n if (\n ($isRangeSelection(selection) && !selection.isCollapsed()) ||\n ($isTableSelection(selection) && !selection.anchor.is(selection.focus)) ||\n (!$isRangeSelection(selection) && !$isTableSelection(selection))\n ) {\n return false\n }\n const [cell] = $getNodeTriplet(selection.anchor)\n return cell.__colSpan > 1 || cell.__rowSpan > 1\n}\n\nfunction $selectLastDescendant(node: ElementNode): void {\n const lastDescendant = node.getLastDescendant()\n if ($isTextNode(lastDescendant)) {\n lastDescendant.select()\n } else if ($isElementNode(lastDescendant)) {\n lastDescendant.selectEnd()\n } else if (lastDescendant !== null) {\n lastDescendant.selectNext()\n }\n}\n\ntype TableCellActionMenuProps = Readonly<{\n cellMerge: boolean\n contextRef: { current: HTMLElement | null }\n onClose: () => void\n setIsMenuOpen: (isOpen: boolean) => void\n tableCellNode: TableCellNode\n}>\n\nfunction TableActionMenu({\n cellMerge,\n contextRef,\n onClose,\n setIsMenuOpen,\n tableCellNode: _tableCellNode,\n}: TableCellActionMenuProps) {\n const [editor] = useLexicalComposerContext()\n const dropDownRef = useRef<HTMLDivElement | null>(null)\n const [tableCellNode, updateTableCellNode] = useState(_tableCellNode)\n const [selectionCounts, updateSelectionCounts] = useState({\n columns: 1,\n rows: 1,\n })\n const [canMergeCells, setCanMergeCells] = useState(false)\n const [canUnmergeCell, setCanUnmergeCell] = useState(false)\n const { y } = useScrollInfo()\n\n useEffect(() => {\n return editor.registerMutationListener(\n TableCellNode,\n (nodeMutations) => {\n const nodeUpdated = nodeMutations.get(tableCellNode.getKey()) === 'updated'\n\n if (nodeUpdated) {\n editor.getEditorState().read(() => {\n updateTableCellNode(tableCellNode.getLatest())\n })\n }\n },\n { skipInitialization: true },\n )\n }, [editor, tableCellNode])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n // Merge cells\n if ($isTableSelection(selection)) {\n const currentSelectionCounts = computeSelectionCount(selection)\n updateSelectionCounts(computeSelectionCount(selection))\n\n setCanMergeCells(currentSelectionCounts.columns > 1 || currentSelectionCounts.rows > 1)\n }\n // Unmerge cell\n setCanUnmergeCell($canUnmerge())\n })\n }, [editor])\n\n useEffect(() => {\n const menuButtonElement = contextRef.current\n const dropDownElement = dropDownRef.current\n const rootElement = editor.getRootElement()\n\n if (menuButtonElement != null && dropDownElement != null && rootElement != null) {\n const rootEleRect = rootElement.getBoundingClientRect()\n const menuButtonRect = menuButtonElement.getBoundingClientRect()\n dropDownElement.style.opacity = '1'\n const dropDownElementRect = dropDownElement.getBoundingClientRect()\n const margin = 5\n let leftPosition = menuButtonRect.right + margin\n if (\n leftPosition + dropDownElementRect.width > window.innerWidth ||\n leftPosition + dropDownElementRect.width > rootEleRect.right\n ) {\n const position = menuButtonRect.left - dropDownElementRect.width - margin\n leftPosition = (position < 0 ? margin : position) + window.pageXOffset\n }\n dropDownElement.style.left = `${leftPosition + window.pageXOffset}px`\n\n let topPosition = menuButtonRect.top\n if (topPosition + dropDownElementRect.height > window.innerHeight) {\n const position = menuButtonRect.bottom - dropDownElementRect.height\n topPosition = position < 0 ? margin : position\n }\n dropDownElement.style.top = `${topPosition}px`\n }\n }, [contextRef, dropDownRef, editor, y])\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n dropDownRef.current != null &&\n contextRef.current != null &&\n isDOMNode(event.target) &&\n !dropDownRef.current.contains(event.target) &&\n !contextRef.current.contains(event.target)\n ) {\n setIsMenuOpen(false)\n }\n }\n\n window.addEventListener('click', handleClickOutside)\n\n return () => window.removeEventListener('click', handleClickOutside)\n }, [setIsMenuOpen, contextRef])\n\n const clearTableSelection = useCallback(() => {\n editor.update(() => {\n if (tableCellNode.isAttached()) {\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const tableElement = getTableElement(tableNode, editor.getElementByKey(tableNode.getKey()))\n\n if (tableElement === null) {\n throw new Error('Expected to find tableElement in DOM')\n }\n\n const tableObserver = getTableObserverFromTableElement(tableElement)\n if (tableObserver !== null) {\n tableObserver.$clearHighlight()\n }\n\n tableNode.markDirty()\n updateTableCellNode(tableCellNode.getLatest())\n }\n\n $setSelection(null)\n })\n }, [editor, tableCellNode])\n\n const mergeTableCellsAtSelection = () => {\n editor.update(() => {\n const selection = $getSelection()\n if (!$isTableSelection(selection)) {\n return\n }\n const nodes = selection.getNodes()\n const tableCells = nodes.filter($isTableCellNode)\n const targetCell = $mergeCells(tableCells)\n\n if (targetCell) {\n $selectLastDescendant(targetCell)\n onClose()\n }\n })\n }\n\n const unmergeTableCellsAtSelection = () => {\n editor.update(() => {\n $unmergeCell()\n })\n }\n\n const insertTableRowAtSelection = useCallback(\n (shouldInsertAfter: boolean) => {\n editor.update(() => {\n for (let i = 0; i < selectionCounts.rows; i++) {\n $insertTableRowAtSelection(shouldInsertAfter)\n }\n onClose()\n })\n },\n [editor, onClose, selectionCounts.rows],\n )\n\n const insertTableColumnAtSelection = useCallback(\n (shouldInsertAfter: boolean) => {\n editor.update(() => {\n for (let i = 0; i < selectionCounts.columns; i++) {\n $insertTableColumnAtSelection(shouldInsertAfter)\n }\n onClose()\n })\n },\n [editor, onClose, selectionCounts.columns],\n )\n\n const deleteTableRowAtSelection = useCallback(() => {\n editor.update(() => {\n $deleteTableRowAtSelection()\n onClose()\n })\n }, [editor, onClose])\n\n const deleteTableAtSelection = useCallback(() => {\n editor.update(() => {\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n tableNode.remove()\n\n clearTableSelection()\n onClose()\n })\n }, [editor, tableCellNode, clearTableSelection, onClose])\n\n const deleteTableColumnAtSelection = useCallback(() => {\n editor.update(() => {\n $deleteTableColumnAtSelection()\n onClose()\n })\n }, [editor, onClose])\n\n const toggleTableRowIsHeader = useCallback(() => {\n editor.update(() => {\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n\n const tableRowIndex = $getTableRowIndexFromTableCellNode(tableCellNode)\n\n const [gridMap] = $computeTableMapSkipCellCheck(tableNode, null, null)\n\n const rowCells = new Set<TableCellNode>()\n\n const newStyle = tableCellNode.getHeaderStyles() ^ TableCellHeaderStates.ROW\n if (gridMap[tableRowIndex]) {\n for (let col = 0; col < gridMap[tableRowIndex].length; col++) {\n const mapCell = gridMap[tableRowIndex][col]\n\n if (!mapCell?.cell) {\n continue\n }\n\n if (!rowCells.has(mapCell.cell)) {\n rowCells.add(mapCell.cell)\n mapCell.cell.setHeaderStyles(newStyle, TableCellHeaderStates.ROW)\n }\n }\n }\n\n clearTableSelection()\n onClose()\n })\n }, [editor, tableCellNode, clearTableSelection, onClose])\n\n const toggleTableColumnIsHeader = useCallback(() => {\n editor.update(() => {\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n\n const tableColumnIndex = $getTableColumnIndexFromTableCellNode(tableCellNode)\n\n const [gridMap] = $computeTableMapSkipCellCheck(tableNode, null, null)\n\n const columnCells = new Set<TableCellNode>()\n\n const newStyle = tableCellNode.getHeaderStyles() ^ TableCellHeaderStates.COLUMN\n if (gridMap) {\n for (let row = 0; row < gridMap.length; row++) {\n const mapCell = gridMap?.[row]?.[tableColumnIndex]\n\n if (!mapCell?.cell) {\n continue\n }\n\n if (!columnCells.has(mapCell.cell)) {\n columnCells.add(mapCell.cell)\n mapCell.cell.setHeaderStyles(newStyle, TableCellHeaderStates.COLUMN)\n }\n }\n }\n\n clearTableSelection()\n onClose()\n })\n }, [editor, tableCellNode, clearTableSelection, onClose])\n\n const toggleRowStriping = useCallback(() => {\n editor.update(() => {\n if (tableCellNode.isAttached()) {\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n if (tableNode) {\n tableNode.setRowStriping(!tableNode.getRowStriping())\n }\n }\n\n clearTableSelection()\n onClose()\n })\n }, [editor, tableCellNode, clearTableSelection, onClose])\n\n const toggleFirstColumnFreeze = useCallback(() => {\n editor.update(() => {\n if (tableCellNode.isAttached()) {\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n if (tableNode) {\n tableNode.setFrozenColumns(tableNode.getFrozenColumns() === 0 ? 1 : 0)\n }\n }\n clearTableSelection()\n onClose()\n })\n }, [editor, tableCellNode, clearTableSelection, onClose])\n\n let mergeCellButton: JSX.Element | null = null\n if (cellMerge) {\n if (canMergeCells) {\n mergeCellButton = (\n <button\n className=\"item\"\n data-test-id=\"table-merge-cells\"\n onClick={() => mergeTableCellsAtSelection()}\n type=\"button\"\n >\n <span className=\"text\">Merge cells</span>\n </button>\n )\n } else if (canUnmergeCell) {\n mergeCellButton = (\n <button\n className=\"item\"\n data-test-id=\"table-unmerge-cells\"\n onClick={() => unmergeTableCellsAtSelection()}\n type=\"button\"\n >\n <span className=\"text\">Unmerge cells</span>\n </button>\n )\n }\n }\n\n return createPortal(\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events\n <div\n className=\"table-action-menu-dropdown\"\n onClick={(e) => {\n e.stopPropagation()\n }}\n ref={dropDownRef}\n >\n {mergeCellButton ? (\n <React.Fragment>\n {mergeCellButton}\n <hr />\n </React.Fragment>\n ) : null}\n\n <button\n className=\"item\"\n data-test-id=\"table-row-striping\"\n onClick={() => toggleRowStriping()}\n type=\"button\"\n >\n <span className=\"text\">Toggle Row Striping</span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-freeze-first-column\"\n onClick={() => toggleFirstColumnFreeze()}\n type=\"button\"\n >\n <span className=\"text\">Toggle First Column Freeze</span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-insert-row-above\"\n onClick={() => insertTableRowAtSelection(false)}\n type=\"button\"\n >\n <span className=\"text\">\n Insert {selectionCounts.rows === 1 ? 'row' : `${selectionCounts.rows} rows`} above\n </span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-insert-row-below\"\n onClick={() => insertTableRowAtSelection(true)}\n type=\"button\"\n >\n <span className=\"text\">\n Insert {selectionCounts.rows === 1 ? 'row' : `${selectionCounts.rows} rows`} below\n </span>\n </button>\n <hr />\n <button\n className=\"item\"\n data-test-id=\"table-insert-column-before\"\n onClick={() => insertTableColumnAtSelection(false)}\n type=\"button\"\n >\n <span className=\"text\">\n Insert {selectionCounts.columns === 1 ? 'column' : `${selectionCounts.columns} columns`}{' '}\n left\n </span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-insert-column-after\"\n onClick={() => insertTableColumnAtSelection(true)}\n type=\"button\"\n >\n <span className=\"text\">\n Insert {selectionCounts.columns === 1 ? 'column' : `${selectionCounts.columns} columns`}{' '}\n right\n </span>\n </button>\n <hr />\n <button\n className=\"item\"\n data-test-id=\"table-delete-columns\"\n onClick={() => deleteTableColumnAtSelection()}\n type=\"button\"\n >\n <span className=\"text\">Delete column</span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-delete-rows\"\n onClick={() => deleteTableRowAtSelection()}\n type=\"button\"\n >\n <span className=\"text\">Delete row</span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-delete\"\n onClick={() => deleteTableAtSelection()}\n type=\"button\"\n >\n <span className=\"text\">Delete table</span>\n </button>\n <hr />\n <button\n className=\"item\"\n data-test-id=\"table-row-header\"\n onClick={() => toggleTableRowIsHeader()}\n type=\"button\"\n >\n <span className=\"text\">\n {(tableCellNode.__headerState & TableCellHeaderStates.ROW) === TableCellHeaderStates.ROW\n ? 'Remove'\n : 'Add'}{' '}\n row header\n </span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-column-header\"\n onClick={() => toggleTableColumnIsHeader()}\n type=\"button\"\n >\n <span className=\"text\">\n {(tableCellNode.__headerState & TableCellHeaderStates.COLUMN) ===\n TableCellHeaderStates.COLUMN\n ? 'Remove'\n : 'Add'}{' '}\n column header\n </span>\n </button>\n </div>,\n document.body,\n )\n}\n\nfunction TableCellActionMenuContainer({\n anchorElem,\n cellMerge,\n}: {\n anchorElem: HTMLElement\n cellMerge: boolean\n}): JSX.Element {\n const [editor] = useLexicalComposerContext()\n\n const menuButtonRef = useRef<HTMLDivElement | null>(null)\n const menuRootRef = useRef<HTMLButtonElement | null>(null)\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n\n const [tableCellNode, setTableMenuCellNode] = useState<null | TableCellNode>(null)\n\n const $moveMenu = useCallback(() => {\n const menu = menuButtonRef.current\n const selection = $getSelection()\n const nativeSelection = getDOMSelection(editor._window)\n const activeElement = document.activeElement\n function disable() {\n if (menu) {\n menu.classList.remove('table-cell-action-button-container--active')\n menu.classList.add('table-cell-action-button-container--inactive')\n }\n setTableMenuCellNode(null)\n }\n\n if (selection == null || menu == null) {\n return disable()\n }\n\n const rootElement = editor.getRootElement()\n let tableObserver: null | TableObserver = null\n let tableCellParentNodeDOM: HTMLElement | null = null\n\n if (\n $isRangeSelection(selection) &&\n rootElement !== null &&\n nativeSelection !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n const tableCellNodeFromSelection = $getTableCellNodeFromLexicalNode(\n selection.anchor.getNode(),\n )\n\n if (tableCellNodeFromSelection == null) {\n return disable()\n }\n\n tableCellParentNodeDOM = editor.getElementByKey(tableCellNodeFromSelection.getKey())\n\n if (tableCellParentNodeDOM == null || !tableCellNodeFromSelection.isAttached()) {\n return disable()\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNodeFromSelection)\n const tableElement = getTableElement(tableNode, editor.getElementByKey(tableNode.getKey()))\n\n if (tableElement === null) {\n throw new Error('TableActionMenu: Expected to find tableElement in DOM')\n }\n\n tableObserver = getTableObserverFromTableElement(tableElement)\n setTableMenuCellNode(tableCellNodeFromSelection)\n } else if ($isTableSelection(selection)) {\n const anchorNode = $getTableCellNodeFromLexicalNode(selection.anchor.getNode())\n if (!$isTableCellNode(anchorNode)) {\n throw new Error('TableSelection anchorNode must be a TableCellNode')\n }\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(anchorNode)\n const tableElement = getTableElement(tableNode, editor.getElementByKey(tableNode.getKey()))\n\n if (tableElement === null) {\n throw new Error('TableActionMenu: Expected to find tableElement in DOM')\n }\n\n tableObserver = getTableObserverFromTableElement(tableElement)\n tableCellParentNodeDOM = editor.getElementByKey(anchorNode.getKey())\n } else if (!activeElement) {\n return disable()\n }\n if (tableObserver === null || tableCellParentNodeDOM === null) {\n return disable()\n }\n const enabled = !tableObserver || !tableObserver.isSelecting\n menu.classList.toggle('table-cell-action-button-container--active', enabled)\n menu.classList.toggle('table-cell-action-button-container--inactive', !enabled)\n if (enabled) {\n const tableCellRect = tableCellParentNodeDOM.getBoundingClientRect()\n const anchorRect = anchorElem.getBoundingClientRect()\n const top = tableCellRect.top - anchorRect.top\n const left = tableCellRect.right - anchorRect.left\n menu.style.transform = `translate(${left}px, ${top}px)`\n }\n }, [editor, anchorElem])\n\n useEffect(() => {\n // We call the $moveMenu callback every time the selection changes,\n // once up front, and once after each pointerup\n let timeoutId: ReturnType<typeof setTimeout> | undefined = undefined\n const callback = () => {\n timeoutId = undefined\n editor.getEditorState().read($moveMenu)\n }\n const delayedCallback = () => {\n if (timeoutId === undefined) {\n timeoutId = setTimeout(callback, 0)\n }\n return false\n }\n return mergeRegister(\n editor.registerUpdateListener(delayedCallback),\n editor.registerCommand(SELECTION_CHANGE_COMMAND, delayedCallback, COMMAND_PRIORITY_CRITICAL),\n editor.registerRootListener((rootElement, prevRootElement) => {\n if (prevRootElement) {\n prevRootElement.removeEventListener('pointerup', delayedCallback)\n }\n if (rootElement) {\n rootElement.addEventListener('pointerup', delayedCallback)\n delayedCallback()\n }\n }),\n () => clearTimeout(timeoutId),\n )\n })\n\n const prevTableCellDOM = useRef(tableCellNode)\n\n useEffect(() => {\n if (prevTableCellDOM.current !== tableCellNode) {\n setIsMenuOpen(false)\n }\n\n prevTableCellDOM.current = tableCellNode\n }, [prevTableCellDOM, tableCellNode])\n\n return (\n <div className=\"table-cell-action-button-container\" ref={menuButtonRef}>\n {tableCellNode != null && (\n <React.Fragment>\n <button\n className=\"table-cell-action-button\"\n onClick={(e) => {\n e.stopPropagation()\n setIsMenuOpen(!isMenuOpen)\n }}\n ref={menuRootRef}\n type=\"button\"\n >\n <MeatballsIcon />\n </button>\n {isMenuOpen && (\n <TableActionMenu\n cellMerge={cellMerge}\n contextRef={menuRootRef}\n onClose={() => setIsMenuOpen(false)}\n setIsMenuOpen={setIsMenuOpen}\n tableCellNode={tableCellNode}\n />\n )}\n </React.Fragment>\n )}\n </div>\n )\n}\n\nexport const TableActionMenuPlugin: PluginComponentWithAnchor = ({ anchorElem }) => {\n const isEditable = useLexicalEditable()\n return createPortal(\n isEditable ? (\n <TableCellActionMenuContainer anchorElem={anchorElem ?? document.body} cellMerge />\n ) : null,\n anchorElem ?? document.body,\n )\n}\n", "'use client'\nimport React from 'react'\n\nexport const MeatballsIcon: React.FC = () => (\n <svg fill=\"none\" height=\"18\" viewBox=\"0 0 20 20\" width=\"18\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5 11C5.55228 11 6 10.5523 6 10C6 9.44772 5.55228 9 5 9C4.44772 9 4 9.44772 4 10C4 10.5523 4.44772 11 5 11Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M10 11C10.5523 11 11 10.5523 11 10C11 9.44772 10.5523 9 10 9C9.44772 9 9 9.44772 9 10C9 10.5523 9.44772 11 10 11Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M15 11C15.5523 11 16 10.5523 16 10C16 9.44772 15.5523 9 15 9C14.4477 9 14 9.44772 14 10C14 10.5523 14.4477 11 15 11Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\n\nimport type { TableCellNode, TableDOMCell, TableMapType } from '@lexical/table'\nimport type { LexicalEditor, NodeKey } from 'lexical'\nimport type { JSX, MouseEventHandler } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n $computeTableMapSkipCellCheck,\n $getTableNodeFromLexicalNodeOrThrow,\n $getTableRowIndexFromTableCellNode,\n $isTableCellNode,\n $isTableRowNode,\n getDOMCellFromTarget,\n getTableElement,\n TableNode,\n} from '@lexical/table'\nimport { calculateZoomLevel, mergeRegister } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode, isHTMLElement, SKIP_SCROLL_INTO_VIEW_TAG } from 'lexical'\nimport * as React from 'react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport './index.scss'\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\n\ntype MousePosition = {\n x: number\n y: number\n}\n\ntype MouseDraggingDirection = 'bottom' | 'right'\n\nconst MIN_ROW_HEIGHT = 33\nconst MIN_COLUMN_WIDTH = 92\n\nfunction TableCellResizer({ editor }: { editor: LexicalEditor }): JSX.Element {\n const targetRef = useRef<HTMLElement | null>(null)\n const resizerRef = useRef<HTMLDivElement | null>(null)\n const tableRectRef = useRef<ClientRect | null>(null)\n const [hasTable, setHasTable] = useState(false)\n const editorConfig = useEditorConfigContext()\n\n const mouseStartPosRef = useRef<MousePosition | null>(null)\n const [mouseCurrentPos, updateMouseCurrentPos] = useState<MousePosition | null>(null)\n\n const [activeCell, updateActiveCell] = useState<null | TableDOMCell>(null)\n const [isMouseDown, updateIsMouseDown] = useState<boolean>(false)\n const [draggingDirection, updateDraggingDirection] = useState<MouseDraggingDirection | null>(null)\n\n const resetState = useCallback(() => {\n updateActiveCell(null)\n targetRef.current = null\n updateDraggingDirection(null)\n mouseStartPosRef.current = null\n tableRectRef.current = null\n }, [])\n\n const isMouseDownOnEvent = (event: MouseEvent) => {\n return (event.buttons & 1) === 1\n }\n\n useEffect(() => {\n const tableKeys = new Set<NodeKey>()\n return mergeRegister(\n editor.registerMutationListener(TableNode, (nodeMutations) => {\n for (const [nodeKey, mutation] of nodeMutations) {\n if (mutation === 'destroyed') {\n tableKeys.delete(nodeKey)\n } else {\n tableKeys.add(nodeKey)\n }\n }\n setHasTable(tableKeys.size > 0)\n }),\n editor.registerNodeTransform(TableNode, (tableNode) => {\n if (tableNode.getColWidths()) {\n return tableNode\n }\n\n const numColumns = tableNode.getColumnCount()\n const columnWidth = MIN_COLUMN_WIDTH\n\n tableNode.setColWidths(Array(numColumns).fill(columnWidth))\n return tableNode\n }),\n )\n }, [editor])\n\n useEffect(() => {\n if (!hasTable) {\n return\n }\n\n const onMouseMove = (event: MouseEvent) => {\n const target = event.target\n if (!isHTMLElement(target)) {\n return\n }\n\n if (draggingDirection) {\n updateMouseCurrentPos({\n x: event.clientX,\n y: event.clientY,\n })\n return\n }\n updateIsMouseDown(isMouseDownOnEvent(event))\n if (resizerRef.current && resizerRef.current.contains(target)) {\n return\n }\n\n if (targetRef.current !== target) {\n targetRef.current = target\n const cell = getDOMCellFromTarget(target)\n\n if (cell && activeCell !== cell) {\n editor.getEditorState().read(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(cell.elem)\n\n if (!tableCellNode) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const tableElement = getTableElement(\n tableNode,\n editor.getElementByKey(tableNode.getKey()),\n )\n if (!tableElement) {\n throw new Error('TableCellResizer: Table element not found.')\n }\n\n targetRef.current = target\n tableRectRef.current = tableElement.getBoundingClientRect()\n updateActiveCell(cell)\n },\n { editor },\n )\n } else if (cell == null) {\n resetState()\n }\n }\n }\n\n const onMouseDown = (event: MouseEvent) => {\n updateIsMouseDown(true)\n }\n\n const onMouseUp = (event: MouseEvent) => {\n updateIsMouseDown(false)\n }\n\n const removeRootListener = editor.registerRootListener((rootElement, prevRootElement) => {\n prevRootElement?.removeEventListener('mousemove', onMouseMove)\n prevRootElement?.removeEventListener('mousedown', onMouseDown)\n prevRootElement?.removeEventListener('mouseup', onMouseUp)\n rootElement?.addEventListener('mousemove', onMouseMove)\n rootElement?.addEventListener('mousedown', onMouseDown)\n rootElement?.addEventListener('mouseup', onMouseUp)\n })\n\n return () => {\n removeRootListener()\n }\n }, [activeCell, draggingDirection, editor, hasTable, resetState])\n\n const isHeightChanging = (direction: MouseDraggingDirection) => {\n if (direction === 'bottom') {\n return true\n }\n return false\n }\n\n const updateRowHeight = useCallback(\n (heightChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n\n const baseRowIndex = $getTableRowIndexFromTableCellNode(tableCellNode)\n const tableRows = tableNode.getChildren()\n\n // Determine if this is a full row merge by checking colspan\n const isFullRowMerge = tableCellNode.getColSpan() === tableNode.getColumnCount()\n\n // For full row merges, apply to first row. For partial merges, apply to last row\n const tableRowIndex = isFullRowMerge\n ? baseRowIndex\n : baseRowIndex + tableCellNode.getRowSpan() - 1\n\n if (tableRowIndex >= tableRows.length || tableRowIndex < 0) {\n throw new Error('Expected table cell to be inside of table row.')\n }\n\n const tableRow = tableRows[tableRowIndex]\n\n if (!$isTableRowNode(tableRow)) {\n throw new Error('Expected table row')\n }\n\n let height = tableRow.getHeight()\n if (height === undefined) {\n const rowCells = tableRow.getChildren<TableCellNode>()\n height = Math.min(\n ...rowCells.map((cell) => getCellNodeHeight(cell, editor) ?? Infinity),\n )\n }\n\n const newHeight = Math.max(height + heightChange, MIN_ROW_HEIGHT)\n tableRow.setHeight(newHeight)\n },\n { tag: SKIP_SCROLL_INTO_VIEW_TAG },\n )\n },\n [activeCell, editor],\n )\n\n const getCellNodeHeight = (\n cell: TableCellNode,\n activeEditor: LexicalEditor,\n ): number | undefined => {\n const domCellNode = activeEditor.getElementByKey(cell.getKey())\n return domCellNode?.clientHeight\n }\n\n const getCellColumnIndex = (tableCellNode: TableCellNode, tableMap: TableMapType) => {\n let columnIndex: number | undefined\n tableMap.forEach((row) => {\n row.forEach((cell, columnIndexInner) => {\n if (cell.cell === tableCellNode) {\n columnIndex = columnIndexInner\n }\n })\n })\n return columnIndex\n }\n\n const updateColumnWidth = useCallback(\n (widthChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const [tableMap] = $computeTableMapSkipCellCheck(tableNode, null, null)\n const columnIndex = getCellColumnIndex(tableCellNode, tableMap)\n if (columnIndex === undefined) {\n throw new Error('TableCellResizer: Table column not found.')\n }\n\n const colWidths = tableNode.getColWidths()\n if (!colWidths) {\n return\n }\n const width = colWidths[columnIndex]\n if (width === undefined) {\n return\n }\n const newColWidths = [...colWidths]\n const newWidth = Math.max(width + widthChange, MIN_COLUMN_WIDTH)\n newColWidths[columnIndex] = newWidth\n tableNode.setColWidths(newColWidths)\n },\n { tag: SKIP_SCROLL_INTO_VIEW_TAG },\n )\n },\n [activeCell, editor],\n )\n\n const mouseUpHandler = useCallback(\n (direction: MouseDraggingDirection) => {\n const handler = (event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n if (mouseStartPosRef.current) {\n const { x, y } = mouseStartPosRef.current\n\n if (activeCell === null) {\n return\n }\n const zoom = calculateZoomLevel(event.target as Element)\n\n if (isHeightChanging(direction)) {\n const heightChange = (event.clientY - y) / zoom\n updateRowHeight(heightChange)\n } else {\n const widthChange = (event.clientX - x) / zoom\n updateColumnWidth(widthChange)\n }\n\n resetState()\n document.removeEventListener('mouseup', handler)\n }\n }\n return handler\n },\n [activeCell, resetState, updateColumnWidth, updateRowHeight],\n )\n\n const toggleResize = useCallback(\n (direction: MouseDraggingDirection): MouseEventHandler<HTMLDivElement> =>\n (event) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n mouseStartPosRef.current = {\n x: event.clientX,\n y: event.clientY,\n }\n updateMouseCurrentPos(mouseStartPosRef.current)\n updateDraggingDirection(direction)\n\n document.addEventListener('mouseup', mouseUpHandler(direction))\n },\n [activeCell, mouseUpHandler],\n )\n\n const [resizerStyles, setResizerStyles] = useState<{\n bottom?: null | React.CSSProperties\n left?: null | React.CSSProperties\n right?: null | React.CSSProperties\n top?: null | React.CSSProperties\n }>({\n bottom: null,\n left: null,\n right: null,\n top: null,\n })\n\n useEffect(() => {\n if (activeCell) {\n const { height, left, top, width } = activeCell.elem.getBoundingClientRect()\n const zoom = calculateZoomLevel(activeCell.elem)\n const zoneWidth = 10 // Pixel width of the zone where you can drag the edge\n const styles = {\n bottom: {\n backgroundColor: 'none',\n cursor: 'row-resize',\n height: `${zoneWidth}px`,\n left: `${window.scrollX + left}px`,\n top: `${window.scrollY + top + height - zoneWidth / 2}px`,\n width: `${width}px`,\n },\n right: {\n backgroundColor: 'none',\n cursor: 'col-resize',\n height: `${height}px`,\n left: `${window.scrollX + left + width - zoneWidth / 2}px`,\n top: `${window.scrollY + top}px`,\n width: `${zoneWidth}px`,\n },\n }\n\n const tableRect = tableRectRef.current\n\n if (draggingDirection && mouseCurrentPos && tableRect) {\n if (isHeightChanging(draggingDirection)) {\n styles[draggingDirection].left = `${window.scrollX + tableRect.left}px`\n styles[draggingDirection].top = `${window.scrollY + mouseCurrentPos.y / zoom}px`\n styles[draggingDirection].height = '3px'\n styles[draggingDirection].width = `${tableRect.width}px`\n } else {\n styles[draggingDirection].top = `${window.scrollY + tableRect.top}px`\n styles[draggingDirection].left = `${window.scrollX + mouseCurrentPos.x / zoom}px`\n styles[draggingDirection].width = '3px'\n styles[draggingDirection].height = `${tableRect.height}px`\n }\n\n styles[draggingDirection].backgroundColor = '#adf'\n }\n\n setResizerStyles(styles)\n } else {\n setResizerStyles({\n bottom: null,\n left: null,\n right: null,\n top: null,\n })\n }\n }, [activeCell, draggingDirection, mouseCurrentPos])\n\n return (\n <div ref={resizerRef}>\n {activeCell != null && !isMouseDown && (\n <React.Fragment>\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('right')}\n style={resizerStyles.right || undefined}\n />\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('bottom')}\n style={resizerStyles.bottom || undefined}\n />\n </React.Fragment>\n )}\n </div>\n )\n}\n\nexport const TableCellResizerPlugin: PluginComponent = () => {\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n return useMemo(\n () => (isEditable ? createPortal(<TableCellResizer editor={editor} />, document.body) : null),\n [editor, isEditable],\n )\n}\n", "'use client'\n\nimport type { TableCellNode, TableRowNode } from '@lexical/table'\nimport type { EditorConfig, NodeKey } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n $getTableAndElementByKey,\n $getTableColumnIndexFromTableCellNode,\n $getTableRowIndexFromTableCellNode,\n $insertTableColumnAtSelection,\n $insertTableRowAtSelection,\n $isTableCellNode,\n $isTableNode,\n getTableElement,\n TableNode,\n} from '@lexical/table'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode, isHTMLElement } from 'lexical'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { useDebounce } from '../../utils/useDebounce.js'\n\nconst BUTTON_WIDTH_PX = 20\n\nfunction TableHoverActionsContainer({\n anchorElem,\n}: {\n anchorElem: HTMLElement\n}): JSX.Element | null {\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n const editorConfig = useEditorConfigContext()\n const [isShownRow, setShownRow] = useState<boolean>(false)\n const [isShownColumn, setShownColumn] = useState<boolean>(false)\n const [shouldListenMouseMove, setShouldListenMouseMove] = useState<boolean>(false)\n const [position, setPosition] = useState({})\n const tableSetRef = useRef<Set<NodeKey>>(new Set())\n const tableCellDOMNodeRef = useRef<HTMLElement | null>(null)\n\n const debouncedOnMouseMove = useDebounce(\n (event: MouseEvent) => {\n const { isOutside, tableDOMNode } = getMouseInfo(event, editorConfig.editorConfig?.lexical)\n\n if (isOutside) {\n setShownRow(false)\n setShownColumn(false)\n return\n }\n\n if (!tableDOMNode) {\n return\n }\n\n tableCellDOMNodeRef.current = tableDOMNode\n\n let hoveredRowNode: null | TableCellNode = null\n let hoveredColumnNode: null | TableCellNode = null\n let tableDOMElement: HTMLElement | null = null\n\n editor.getEditorState().read(\n () => {\n const maybeTableCell = $getNearestNodeFromDOMNode(tableDOMNode)\n\n if ($isTableCellNode(maybeTableCell)) {\n const table = $findMatchingParent(maybeTableCell, (node) => $isTableNode(node))\n if (!$isTableNode(table)) {\n return\n }\n\n tableDOMElement = getTableElement(table, editor.getElementByKey(table.getKey()))\n\n if (tableDOMElement) {\n const rowCount = table.getChildrenSize()\n const colCount = (table.getChildAtIndex(0) as TableRowNode)?.getChildrenSize()\n\n const rowIndex = $getTableRowIndexFromTableCellNode(maybeTableCell)\n const colIndex = $getTableColumnIndexFromTableCellNode(maybeTableCell)\n\n if (rowIndex === rowCount - 1) {\n hoveredRowNode = maybeTableCell\n } else if (colIndex === colCount - 1) {\n hoveredColumnNode = maybeTableCell\n }\n }\n }\n },\n { editor },\n )\n\n if (!tableDOMElement) {\n return\n }\n\n // this is the scrollable div container of the table (in case of overflow)\n const tableContainerElement = (tableDOMElement as HTMLTableElement).parentElement\n\n if (!tableContainerElement) {\n return\n }\n\n const {\n bottom: tableElemBottom,\n height: tableElemHeight,\n left: tableElemLeft,\n right: tableElemRight,\n width: tableElemWidth,\n y: tableElemY,\n } = (tableDOMElement as HTMLTableElement).getBoundingClientRect()\n\n let tableHasScroll = false\n if (\n tableContainerElement &&\n tableContainerElement.classList.contains('LexicalEditorTheme__tableScrollableWrapper')\n ) {\n tableHasScroll = tableContainerElement.scrollWidth > tableContainerElement.clientWidth\n }\n\n const { left: editorElemLeft, y: editorElemY } = anchorElem.getBoundingClientRect()\n\n if (hoveredRowNode) {\n setShownColumn(false)\n setShownRow(true)\n setPosition({\n height: BUTTON_WIDTH_PX,\n left:\n tableHasScroll && tableContainerElement\n ? tableContainerElement.offsetLeft\n : tableElemLeft - editorElemLeft,\n top: tableElemBottom - editorElemY + 5,\n width:\n tableHasScroll && tableContainerElement\n ? tableContainerElement.offsetWidth\n : tableElemWidth,\n })\n } else if (hoveredColumnNode) {\n setShownColumn(true)\n setShownRow(false)\n setPosition({\n height: tableElemHeight,\n left: tableElemRight - editorElemLeft + 5,\n top: tableElemY - editorElemY,\n width: BUTTON_WIDTH_PX,\n })\n }\n },\n 50,\n 250,\n )\n\n // Hide the buttons on any table dimensions change to prevent last row cells\n // overlap behind the 'Add Row' button when text entry changes cell height\n const tableResizeObserver = useMemo(() => {\n return new ResizeObserver(() => {\n setShownRow(false)\n setShownColumn(false)\n })\n }, [])\n\n useEffect(() => {\n if (!shouldListenMouseMove) {\n return\n }\n\n document.addEventListener('mousemove', debouncedOnMouseMove)\n\n return () => {\n setShownRow(false)\n setShownColumn(false)\n\n document.removeEventListener('mousemove', debouncedOnMouseMove)\n }\n }, [shouldListenMouseMove, debouncedOnMouseMove])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerMutationListener(\n TableNode,\n (mutations) => {\n editor.getEditorState().read(\n () => {\n let resetObserver = false\n for (const [key, type] of mutations) {\n switch (type) {\n case 'created': {\n tableSetRef.current.add(key)\n resetObserver = true\n break\n }\n case 'destroyed': {\n tableSetRef.current.delete(key)\n resetObserver = true\n break\n }\n default:\n break\n }\n }\n if (resetObserver) {\n // Reset resize observers\n tableResizeObserver.disconnect()\n for (const tableKey of tableSetRef.current) {\n const { tableElement } = $getTableAndElementByKey(tableKey)\n tableResizeObserver.observe(tableElement)\n }\n setShouldListenMouseMove(tableSetRef.current.size > 0)\n }\n },\n { editor },\n )\n },\n { skipInitialization: false },\n ),\n )\n }, [editor, tableResizeObserver])\n\n const insertAction = (insertRow: boolean) => {\n editor.update(() => {\n if (tableCellDOMNodeRef.current) {\n const maybeTableNode = $getNearestNodeFromDOMNode(tableCellDOMNodeRef.current)\n maybeTableNode?.selectEnd()\n if (insertRow) {\n $insertTableRowAtSelection()\n setShownRow(false)\n } else {\n $insertTableColumnAtSelection()\n setShownColumn(false)\n }\n }\n })\n }\n\n if (!isEditable) {\n return null\n }\n\n return (\n <>\n {isShownRow && (\n <button\n aria-label=\"Add Row\"\n className={editorConfig.editorConfig.lexical.theme.tableAddRows}\n onClick={() => insertAction(true)}\n style={{ ...position }}\n type=\"button\"\n />\n )}\n {isShownColumn && (\n <button\n aria-label=\"Add Column\"\n className={editorConfig.editorConfig.lexical.theme.tableAddColumns}\n onClick={() => insertAction(false)}\n style={{ ...position }}\n type=\"button\"\n />\n )}\n </>\n )\n}\n\nfunction getMouseInfo(\n event: MouseEvent,\n editorConfig: EditorConfig,\n): {\n isOutside: boolean\n tableDOMNode: HTMLElement | null\n} {\n const target = event.target\n\n if (isHTMLElement(target)) {\n const tableDOMNode = target.closest<HTMLElement>(\n `td.${editorConfig.theme.tableCell}, th.${editorConfig.theme.tableCell}`,\n )\n\n const isOutside = !(\n tableDOMNode ||\n target.closest<HTMLElement>(`button.${editorConfig.theme.tableAddRows}`) ||\n target.closest<HTMLElement>(`button.${editorConfig.theme.tableAddColumns}`) ||\n target.closest<HTMLElement>(`div.${editorConfig.theme.tableCellResizer}`)\n )\n\n return { isOutside, tableDOMNode }\n } else {\n return { isOutside: true, tableDOMNode: null }\n }\n}\n\nexport function TableHoverActionsPlugin({\n anchorElem = document.body,\n}: {\n anchorElem?: HTMLElement\n}): null | React.ReactPortal {\n const isEditable = useLexicalEditable()\n\n if (!isEditable) {\n return null\n }\n\n return createPortal(<TableHoverActionsContainer anchorElem={anchorElem} />, anchorElem)\n}\n", "'use client'\nimport { useCallback, useEffect, useRef } from 'react'\n\nimport debounce from './debounce.js'\n\n// Define the type for debounced function that includes cancel method\ninterface DebouncedFunction<T extends (...args: any[]) => any> {\n (...args: Parameters<T>): ReturnType<T>\n cancel: () => void\n}\n\nexport function useDebounce<T extends (...args: never[]) => void>(\n fn: T,\n ms: number,\n maxWait?: number,\n) {\n // Update the ref type to include cancel method\n const debouncedRef = useRef<DebouncedFunction<T> | null>(null)\n\n useEffect(() => {\n debouncedRef.current = debounce(fn, ms, { maxWait }) as DebouncedFunction<T>\n\n return () => {\n debouncedRef.current?.cancel()\n }\n }, [fn, ms, maxWait])\n\n const callback = useCallback((...args: Parameters<T>) => {\n if (debouncedRef.current) {\n debouncedRef.current(...args)\n }\n }, [])\n\n return callback\n}\n", "// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck - not worth it migrate jsdoc to tsdoc\n'use client'\n// Copied & modified from https://github.com/lodash/lodash/blob/main/src/debounce.ts\n/*\nThe MIT License\n\nCopyright JS Foundation and other contributors <https://js.foundation/>\n\nBased on Underscore.js, copyright Jeremy Ashkenas,\nDocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>\n\nThis software consists of voluntary contributions made by many\nindividuals. For exact contribution history, see the revision history\navailable at https://github.com/lodash/lodash\n\nThe following license applies to all parts of this software except as\ndocumented below:\n\n====\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n====\n\nCopyright and related rights for sample code are waived via CC0. Sample\ncode is defined as all source code displayed within the prose of the\ndocumentation.\n\nCC0: http://creativecommons.org/publicdomain/zero/1.0/\n\n====\n\nFiles located in the node_modules and vendor directories are externally\nmaintained libraries used by this software which have their own\nlicenses; we recommend you read them, as their terms may differ from the\nterms above.\n */\n\n/** Error message constants. */\nconst FUNC_ERROR_TEXT = 'Expected a function'\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nconst nativeMax = Math.max,\n nativeMin = Math.min\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [sortOnOptions={}] The options object.\n * @param {boolean} [sortOnOptions.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [sortOnOptions.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [sortOnOptions.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n let lastArgs,\n lastCallTime,\n lastInvokeTime = 0,\n lastThis,\n leading = false,\n maxing = false,\n maxWait,\n result,\n timerID,\n trailing = true\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT)\n }\n wait = wait || 0\n if (typeof options === 'object') {\n leading = !!options.leading\n maxing = 'maxWait' in options\n maxWait = maxing ? nativeMax(options.maxWait || 0, wait) : maxWait\n trailing = 'trailing' in options ? !!options.trailing : trailing\n }\n\n function invokeFunc(time) {\n const args = lastArgs,\n thisArg = lastThis\n\n lastArgs = lastThis = undefined\n lastInvokeTime = time\n result = func.apply(thisArg, args)\n return result\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time\n // Start the timer for the trailing edge.\n timerID = setTimeout(timerExpired, wait)\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result\n }\n\n function remainingWait(time) {\n const timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall\n\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting\n }\n\n function shouldInvoke(time) {\n const timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (\n lastCallTime === undefined ||\n timeSinceLastCall >= wait ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait)\n )\n }\n\n function timerExpired() {\n const time = Date.now()\n if (shouldInvoke(time)) {\n return trailingEdge(time)\n }\n // Restart the timer.\n timerID = setTimeout(timerExpired, remainingWait(time))\n }\n\n function trailingEdge(time) {\n timerID = undefined\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time)\n }\n lastArgs = lastThis = undefined\n return result\n }\n\n function cancel() {\n if (timerID !== undefined) {\n clearTimeout(timerID)\n }\n lastInvokeTime = 0\n lastArgs = lastCallTime = lastThis = timerID = undefined\n }\n\n function flush() {\n return timerID === undefined ? result : trailingEdge(Date.now())\n }\n\n function debounced() {\n const time = Date.now(),\n isInvoking = shouldInvoke(time)\n\n // eslint-disable-next-line prefer-rest-params\n lastArgs = arguments\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n lastThis = this\n lastCallTime = time\n\n if (isInvoking) {\n if (timerID === undefined) {\n return leadingEdge(lastCallTime)\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerID)\n timerID = setTimeout(timerExpired, wait)\n return invokeFunc(lastCallTime)\n }\n }\n if (timerID === undefined) {\n timerID = setTimeout(timerExpired, wait)\n }\n return result\n }\n debounced.cancel = cancel\n debounced.flush = flush\n return debounced\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default debounce\n", "'use client'\n\nimport type {\n EditorThemeClasses,\n Klass,\n LexicalCommand,\n LexicalEditor,\n LexicalNode,\n RangeSelection,\n} from 'lexical'\nimport type { JSX } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { TablePlugin as LexicalReactTablePlugin } from '@lexical/react/LexicalTablePlugin'\nimport { INSERT_TABLE_COMMAND, TableCellNode, TableNode, TableRowNode } from '@lexical/table'\nimport { mergeRegister } from '@lexical/utils'\nimport { formatDrawerSlug, useEditDepth } from '@payloadcms/ui'\nimport { $getSelection, $isRangeSelection, COMMAND_PRIORITY_EDITOR, createCommand } from 'lexical'\nimport { createContext, use, useEffect, useMemo, useState } from 'react'\nimport * as React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.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 './index.scss'\n\nexport type CellContextShape = {\n cellEditorConfig: CellEditorConfig | null\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null\n set: (\n cellEditorConfig: CellEditorConfig | null,\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null,\n ) => void\n}\n\nexport type CellEditorConfig = Readonly<{\n namespace: string\n nodes?: ReadonlyArray<Klass<LexicalNode>>\n onError: (error: Error, editor: LexicalEditor) => void\n readOnly?: boolean\n theme?: EditorThemeClasses\n}>\n\nexport const OPEN_TABLE_DRAWER_COMMAND: LexicalCommand<{}> = createCommand(\n 'OPEN_EMBED_DRAWER_COMMAND',\n)\n\nexport const CellContext = createContext<CellContextShape>({\n cellEditorConfig: null,\n cellEditorPlugins: null,\n set: () => {\n // Empty\n },\n})\n\nexport function TableContext({ children }: { children: JSX.Element }) {\n const [contextValue, setContextValue] = useState<{\n cellEditorConfig: CellEditorConfig | null\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null\n }>({\n cellEditorConfig: null,\n cellEditorPlugins: null,\n })\n return (\n <CellContext\n value={useMemo(\n () => ({\n cellEditorConfig: contextValue.cellEditorConfig,\n cellEditorPlugins: contextValue.cellEditorPlugins,\n set: (cellEditorConfig, cellEditorPlugins) => {\n setContextValue({ cellEditorConfig, cellEditorPlugins })\n },\n }),\n [contextValue.cellEditorConfig, contextValue.cellEditorPlugins],\n )}\n >\n {children}\n </CellContext>\n )\n}\n\nexport const TablePlugin: PluginComponent = () => {\n const [editor] = useLexicalComposerContext()\n const cellContext = use(CellContext)\n const editDepth = useEditDepth()\n const {\n fieldProps: { schemaPath },\n uuid,\n } = useEditorConfigContext()\n\n const drawerSlug = formatDrawerSlug({\n slug: 'lexical-table-create-' + uuid,\n depth: editDepth,\n })\n const { toggleDrawer } = useLexicalDrawer(drawerSlug, true)\n\n useEffect(() => {\n if (!editor.hasNodes([TableNode, TableRowNode, TableCellNode])) {\n throw new Error(\n 'TablePlugin: TableNode, TableRowNode, or TableCellNode is not registered on editor',\n )\n }\n\n return mergeRegister(\n editor.registerCommand(\n OPEN_TABLE_DRAWER_COMMAND,\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 toggleDrawer()\n }\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [cellContext, editor, toggleDrawer])\n\n return (\n <React.Fragment>\n <FieldsDrawer\n drawerSlug={drawerSlug}\n drawerTitle=\"Create Table\"\n featureKey=\"experimental_table\"\n handleDrawerSubmit={(_fields, data) => {\n if (!data.columns || !data.rows) {\n return\n }\n\n editor.dispatchCommand(INSERT_TABLE_COMMAND, {\n columns: String(data.columns),\n rows: String(data.rows),\n })\n }}\n schemaPath={schemaPath}\n schemaPathSuffix=\"fields\"\n />\n <LexicalReactTablePlugin\n hasCellBackgroundColor={false}\n hasCellMerge\n hasHorizontalScroll={true}\n />\n </React.Fragment>\n )\n}\n", "'use client'\n\nimport { $isNodeSelection } from 'lexical'\n\nimport type { ExclusiveUploadFeatureProps } from '../server/index.js'\n\nimport { UploadIcon } from '../../../lexical/ui/icons/Upload/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarAddDropdownGroupWithItems } from '../../shared/toolbar/addDropdownGroup.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from './drawer/commands.js'\nimport { $isUploadNode, UploadNode } from './nodes/UploadNode.js'\nimport { UploadPlugin } from './plugin/index.js'\n\nexport type UploadFeaturePropsClient = {\n collections: {\n [collection: string]: {\n hasExtraFields: boolean\n }\n }\n} & ExclusiveUploadFeatureProps\n\nexport const UploadFeatureClient = createClientFeature<UploadFeaturePropsClient>({\n nodes: [UploadNode],\n plugins: [\n {\n Component: UploadPlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: UploadIcon,\n key: 'upload',\n keywords: ['upload', 'image', 'file', 'img', 'picture', 'photo', 'media'],\n label: ({ i18n }) => {\n return i18n.t('lexical:upload:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: [\n toolbarAddDropdownGroupWithItems([\n {\n ChildComponent: UploadIcon,\n isActive: ({ selection }) => {\n if (!$isNodeSelection(selection) || !selection.getNodes().length) {\n return false\n }\n\n const firstNode = selection.getNodes()[0]\n return $isUploadNode(firstNode)\n },\n key: 'upload',\n label: ({ i18n }) => {\n return i18n.t('lexical:upload:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const UploadIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.6667 4H5.33333C4.59695 4 4 4.59695 4 5.33333V14.6667C4 15.403 4.59695 16 5.33333 16H14.6667C15.403 16 16 15.403 16 14.6667V5.33333C16 4.59695 15.403 4 14.6667 4Z\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M7.99984 9.33366C8.73622 9.33366 9.33317 8.73671 9.33317 8.00033C9.33317 7.26395 8.73622 6.66699 7.99984 6.66699C7.26346 6.66699 6.6665 7.26395 6.6665 8.00033C6.6665 8.73671 7.26346 9.33366 7.99984 9.33366Z\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M16 11.9995L13.9427 9.94214C13.6926 9.69218 13.3536 9.55176 13 9.55176C12.6464 9.55176 12.3074 9.69218 12.0573 9.94214L6 15.9995\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n", "'use client'\nimport type { DOMConversionMap, EditorConfig, LexicalEditor, LexicalNode } from 'lexical'\nimport type { JSX } from 'react'\n\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nimport type {\n Internal_UploadData,\n SerializedUploadNode,\n UploadData,\n} from '../../server/nodes/UploadNode.js'\n\nimport { $convertUploadElement } from '../../server/nodes/conversions.js'\nimport { UploadServerNode } from '../../server/nodes/UploadNode.js'\nimport { PendingUploadComponent } from '../component/pending/index.js'\n\nconst RawUploadComponent = React.lazy(() =>\n import('../../client/component/index.js').then((module) => ({ default: module.UploadComponent })),\n)\n\nexport class UploadNode extends UploadServerNode {\n static override clone(node: UploadServerNode): UploadServerNode {\n return super.clone(node)\n }\n\n static override getType(): string {\n return super.getType()\n }\n\n static override importDOM(): DOMConversionMap<HTMLImageElement> {\n return {\n img: (node) => ({\n conversion: (domNode) => $convertUploadElement(domNode, $createUploadNode),\n priority: 0,\n }),\n }\n }\n\n static override importJSON(serializedNode: SerializedUploadNode): UploadNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: Internal_UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n pending: (serializedNode as Internal_UploadData).pending,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n override decorate(editor?: LexicalEditor, config?: EditorConfig): JSX.Element {\n if ((this.__data as Internal_UploadData).pending) {\n return <PendingUploadComponent />\n }\n return (\n <RawUploadComponent\n className={config?.theme?.upload ?? 'LexicalEditorTheme__upload'}\n data={this.__data}\n format={this.__format}\n nodeKey={this.getKey()}\n />\n )\n }\n\n override exportJSON(): SerializedUploadNode {\n return super.exportJSON()\n }\n}\n\nexport function $createUploadNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n\n return $applyNodeReplacement(new UploadNode({ data: data as UploadData }))\n}\n\nexport function $isUploadNode(node: LexicalNode | null | undefined): node is UploadNode {\n return node instanceof UploadNode\n}\n", "// This file contains functions used to convert dom elements to upload or pending upload lexical nodes. It requires the actual node\n// creation functions to be passed in to stay compatible with both client and server code.\nimport type { DOMConversionOutput } from 'lexical'\n\nimport ObjectID from 'bson-objectid'\n\nimport type { $createUploadNode } from '../../client/nodes/UploadNode.js'\nimport type { $createUploadServerNode, Internal_UploadData } from './UploadNode.js'\n\nexport function isGoogleDocCheckboxImg(img: HTMLImageElement): boolean {\n return (\n img.parentElement != null &&\n img.parentElement.tagName === 'LI' &&\n img.previousSibling === null &&\n img.getAttribute('aria-roledescription') === 'checkbox'\n )\n}\n\nexport function $convertUploadElement(\n domNode: HTMLImageElement,\n $createNode: typeof $createUploadNode | typeof $createUploadServerNode,\n): DOMConversionOutput | null {\n if (domNode.hasAttribute('data-lexical-pending-upload-form-id')) {\n const formID = domNode.getAttribute('data-lexical-pending-upload-form-id')\n\n if (formID != null) {\n const node = $createNode({\n data: {\n pending: {\n formID,\n src: domNode.getAttribute('src') || '',\n },\n } as Internal_UploadData,\n })\n return { node }\n }\n }\n if (\n domNode.hasAttribute('data-lexical-upload-relation-to') &&\n domNode.hasAttribute('data-lexical-upload-id')\n ) {\n const id = domNode.getAttribute('data-lexical-upload-id')\n const relationTo = domNode.getAttribute('data-lexical-upload-relation-to')\n\n if (id != null && relationTo != null) {\n const node = $createNode({\n data: {\n fields: {},\n relationTo,\n value: id,\n },\n })\n return { node }\n }\n }\n\n // Create pending UploadNode. Auto-Upload functionality will then be handled by the node transform\n const node = $createNode({\n data: {\n pending: {\n formID: new ObjectID.default().toHexString(),\n src: domNode.getAttribute('src') || '',\n },\n } as Internal_UploadData,\n })\n\n return { node }\n}\n", "import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n ElementFormatType,\n LexicalNode,\n NodeKey,\n} from 'lexical'\nimport type {\n CollectionSlug,\n DataFromCollectionSlug,\n JsonObject,\n TypedUploadCollection,\n UploadCollectionSlug,\n} from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport { addClassNamesToElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\n\nimport type { StronglyTypedLeafNode } from '../../../../nodeTypes.js'\n\nimport { $convertUploadElement } from './conversions.js'\n\nexport type UploadData<TUploadExtraFieldsData extends JsonObject = JsonObject> = {\n [TCollectionSlug in CollectionSlug]: {\n fields: TUploadExtraFieldsData\n /**\n * Every lexical node that has sub-fields needs to have a unique ID. This is the ID of this upload node, not the ID of the linked upload document\n */\n id: string\n relationTo: TCollectionSlug\n /**\n * Value can be just the document ID, or the full, populated document\n */\n value: DataFromCollectionSlug<TCollectionSlug> | number | string\n }\n}[CollectionSlug]\n\n/**\n * Internal use only - UploadData type that can contain a pending state\n * @internal\n */\nexport type Internal_UploadData<TUploadExtraFieldsData extends JsonObject = JsonObject> = {\n pending?: {\n /**\n * ID that corresponds to the bulk upload form ID\n */\n formID: string\n /**\n * src value of the image dom element\n */\n src: string\n }\n} & UploadData<TUploadExtraFieldsData>\n\n/**\n * UploadDataImproved is a more precise type, and will replace UploadData in Payload v4.\n * This type is for internal use only as it will be deprecated in the future.\n * @internal\n *\n * @todo Replace UploadData with UploadDataImproved in 4.0\n */\nexport type UploadDataImproved<TUploadExtraFieldsData extends JsonObject = JsonObject> = {\n [TCollectionSlug in UploadCollectionSlug]: {\n fields: TUploadExtraFieldsData\n /**\n * Every lexical node that has sub-fields needs to have a unique ID. This is the ID of this upload node, not the ID of the linked upload document\n */\n id: string\n relationTo: TCollectionSlug\n /**\n * Value can be just the document ID, or the full, populated document\n */\n value: number | string | TypedUploadCollection[TCollectionSlug]\n }\n}[UploadCollectionSlug]\n\nexport type SerializedUploadNode = StronglyTypedLeafNode<SerializedDecoratorBlockNode, 'upload'> &\n UploadData\n\nexport class UploadServerNode extends DecoratorBlockNode {\n __data: UploadData\n\n constructor({\n data,\n format,\n key,\n }: {\n data: UploadData\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__data = data\n }\n\n static override clone(node: UploadServerNode): UploadServerNode {\n return new this({\n data: node.__data,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'upload'\n }\n\n static override importDOM(): DOMConversionMap<HTMLImageElement> {\n return {\n img: (node) => ({\n conversion: (domNode) => $convertUploadElement(domNode, $createUploadServerNode),\n priority: 0,\n }),\n }\n }\n\n static override importJSON(serializedNode: SerializedUploadNode): UploadServerNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: Internal_UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n pending: (serializedNode as Internal_UploadData).pending,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadServerNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('div')\n addClassNamesToElement(element, config?.theme?.upload)\n return element\n }\n\n override decorate(): JSX.Element {\n return null as unknown as JSX.Element\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('img')\n const data = this.__data as Internal_UploadData\n if (data.pending) {\n element.setAttribute('data-lexical-pending-upload-form-id', String(data?.pending?.formID))\n element.setAttribute('src', data?.pending?.src || '')\n } else {\n element.setAttribute('data-lexical-upload-id', String(data?.value))\n element.setAttribute('data-lexical-upload-relation-to', data?.relationTo)\n }\n\n return { element }\n }\n\n override exportJSON(): SerializedUploadNode {\n return {\n ...super.exportJSON(),\n ...this.getData(),\n type: 'upload',\n version: 3,\n }\n }\n\n getData(): UploadData {\n return this.getLatest().__data\n }\n\n setData(data: UploadData): void {\n const writable = this.getWritable()\n writable.__data = data\n }\n\n override updateDOM(): false {\n return false\n }\n}\n\nexport function $createUploadServerNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadServerNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n return $applyNodeReplacement(new UploadServerNode({ data: data as UploadData }))\n}\n\nexport function $isUploadServerNode(\n node: LexicalNode | null | undefined,\n): node is UploadServerNode {\n return node instanceof UploadServerNode\n}\n", "'use client'\n\nimport { ShimmerEffect } from '@payloadcms/ui'\n\nimport '../index.scss'\n\nexport const PendingUploadComponent = (): React.ReactNode => {\n return (\n <div className={'lexical-upload'}>\n <ShimmerEffect height={'95px'} width={'203px'} />\n </div>\n )\n}\n", "'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $dfsIterator, $insertNodeToNearestRoot, mergeRegister } from '@lexical/utils'\nimport { useBulkUpload, useEffectEvent, useModal } from '@payloadcms/ui'\nimport ObjectID from 'bson-objectid'\nimport {\n $createRangeSelection,\n $getPreviousSelection,\n $getSelection,\n $isParagraphNode,\n $isRangeSelection,\n $setSelection,\n COMMAND_PRIORITY_EDITOR,\n COMMAND_PRIORITY_LOW,\n createCommand,\n DROP_COMMAND,\n getDOMSelectionFromTarget,\n isHTMLElement,\n PASTE_COMMAND,\n} from 'lexical'\nimport React, { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { Internal_UploadData, UploadData } from '../../server/nodes/UploadNode.js'\nimport type { UploadFeaturePropsClient } from '../index.js'\n\nimport { useEnabledRelationships } from '../../../relationship/client/utils/useEnabledRelationships.js'\nimport { UploadDrawer } from '../drawer/index.js'\nimport { $createUploadNode, $isUploadNode, UploadNode } from '../nodes/UploadNode.js'\n\nexport type InsertUploadPayload = Readonly<Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>>\n\ndeclare global {\n interface DragEvent {\n rangeOffset?: number\n rangeParent?: Node\n }\n}\n\nfunction canDropImage(event: DragEvent): boolean {\n const target = event.target\n return !!(\n isHTMLElement(target) &&\n !target.closest('code, span.editor-image') &&\n isHTMLElement(target.parentElement) &&\n target.parentElement.closest('div.ContentEditable__root')\n )\n}\n\nfunction getDragSelection(event: DragEvent): null | Range | undefined {\n // Source: https://github.com/AlessioGr/lexical/blob/main/packages/lexical-playground/src/plugins/ImagesPlugin/index.tsx\n let range\n const domSelection = getDOMSelectionFromTarget(event.target)\n if (document.caretRangeFromPoint) {\n range = document.caretRangeFromPoint(event.clientX, event.clientY)\n } else if (event.rangeParent && domSelection !== null) {\n domSelection.collapse(event.rangeParent, event.rangeOffset || 0)\n range = domSelection.getRangeAt(0)\n } else {\n throw Error(`Cannot get the selection when dragging`)\n }\n\n return range\n}\n\nexport const INSERT_UPLOAD_COMMAND: LexicalCommand<InsertUploadPayload> =\n createCommand('INSERT_UPLOAD_COMMAND')\n\ntype FileToUpload = {\n alt?: string\n file: File\n /**\n * Bulk Upload Form ID that should be created, which can then be matched\n * against the node formID if the upload is successful\n */\n formID: string\n}\n\nexport const UploadPlugin: PluginComponent<UploadFeaturePropsClient> = ({ clientProps }) => {\n const [editor] = useLexicalComposerContext()\n\n const { enabledCollectionSlugs } = useEnabledRelationships({\n collectionSlugsBlacklist: clientProps?.disabledCollections,\n collectionSlugsWhitelist: clientProps?.enabledCollections,\n uploads: true,\n })\n\n const {\n drawerSlug: bulkUploadDrawerSlug,\n setCollectionSlug,\n setInitialForms,\n setOnCancel,\n setOnSuccess,\n setSelectableCollections,\n } = useBulkUpload()\n\n const { isModalOpen, openModal } = useModal()\n\n const openBulkUpload = useEffectEvent(({ files }: { files: FileToUpload[] }) => {\n if (files?.length === 0) {\n return\n }\n\n setInitialForms((initialForms) => [\n ...(initialForms ?? []),\n ...files.map((file) => ({\n file: file.file,\n formID: file.formID,\n })),\n ])\n\n if (!isModalOpen(bulkUploadDrawerSlug)) {\n if (!enabledCollectionSlugs.length || !enabledCollectionSlugs[0]) {\n return\n }\n\n setCollectionSlug(enabledCollectionSlugs[0])\n setSelectableCollections(enabledCollectionSlugs)\n\n setOnCancel(() => {\n // Remove all the pending upload nodes that were added but not uploaded\n editor.update(() => {\n for (const dfsNode of $dfsIterator()) {\n const node = dfsNode.node\n\n if ($isUploadNode(node)) {\n const nodeData = node.getData()\n if ((nodeData as Internal_UploadData)?.pending) {\n node.remove()\n }\n }\n }\n })\n })\n\n setOnSuccess((newDocs) => {\n const newDocsMap = new Map(newDocs.map((doc) => [doc.formID, doc]))\n editor.update(() => {\n for (const dfsNode of $dfsIterator()) {\n const node = dfsNode.node\n if ($isUploadNode(node)) {\n const nodeData: Internal_UploadData = node.getData()\n\n if (nodeData?.pending) {\n const newDoc = newDocsMap.get(nodeData.pending?.formID)\n if (newDoc) {\n node.replace(\n $createUploadNode({\n data: {\n id: new ObjectID.default().toHexString(),\n fields: {},\n relationTo: newDoc.collectionSlug,\n value: newDoc.doc.id,\n } as UploadData,\n }),\n )\n }\n }\n }\n }\n })\n })\n\n openModal(bulkUploadDrawerSlug)\n }\n })\n\n useEffect(() => {\n if (!editor.hasNodes([UploadNode])) {\n throw new Error('UploadPlugin: UploadNode not registered on editor')\n }\n\n return mergeRegister(\n /**\n * Handle auto-uploading files if you copy & paste an image dom element from the clipboard\n */\n editor.registerNodeTransform(UploadNode, (node) => {\n const nodeData: Internal_UploadData = node.getData()\n if (!nodeData?.pending) {\n return\n }\n\n async function upload() {\n let transformedImage: FileToUpload | null = null\n\n const src = nodeData?.pending?.src\n const formID = nodeData?.pending?.formID as string\n\n if (src?.startsWith('data:')) {\n // It's a base64-encoded image\n const mimeMatch = src.match(/data:(image\\/[a-zA-Z]+);base64,/)\n const mimeType = mimeMatch ? mimeMatch[1] : 'image/png' // Default to PNG if MIME type not found\n const base64Data = src.replace(/^data:image\\/[a-zA-Z]+;base64,/, '')\n const byteCharacters = atob(base64Data)\n const byteNumbers = new Array(byteCharacters.length)\n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i)\n }\n const byteArray = new Uint8Array(byteNumbers)\n const file = new File([byteArray], 'pasted-image.' + mimeType?.split('/', 2)[1], {\n type: mimeType,\n })\n transformedImage = { alt: undefined, file, formID }\n } else if (src?.startsWith('http') || src?.startsWith('https')) {\n // It's an image URL\n const res = await fetch(src)\n const blob = await res.blob()\n const inferredFileName =\n src.split('/').pop() || 'pasted-image' + blob.type.split('/', 2)[1]\n const file = new File([blob], inferredFileName, {\n type: blob.type,\n })\n\n transformedImage = { alt: undefined, file, formID }\n }\n\n if (!transformedImage) {\n return\n }\n\n openBulkUpload({ files: [transformedImage] })\n }\n void upload()\n }),\n editor.registerCommand<InsertUploadPayload>(\n INSERT_UPLOAD_COMMAND,\n (payload: InsertUploadPayload) => {\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const uploadNode = $createUploadNode({\n data: {\n id: payload.id,\n fields: payload.fields,\n relationTo: payload.relationTo,\n value: payload.value,\n },\n })\n // we need to get the focus node before inserting the block node, as $insertNodeToNearestRoot can change the focus node\n const { focus } = selection\n const focusNode = focus.getNode()\n // Insert upload node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(uploadNode)\n\n // Delete the node it it's an empty paragraph\n if ($isParagraphNode(focusNode) && !focusNode.__first) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n PASTE_COMMAND,\n (event) => {\n // Pending UploadNodes are automatically created when importDOM is called. However, if you paste a file from your computer\n // directly, importDOM won't be called, as it's not a HTML dom element. So we need to handle that case here.\n\n if (!(event instanceof ClipboardEvent)) {\n return false\n }\n const clipboardData = event.clipboardData\n\n if (!clipboardData?.types?.length || clipboardData?.types?.includes('text/html')) {\n // HTML is handled through importDOM => registerNodeTransform for pending UploadNode\n return false\n }\n\n const files: FileToUpload[] = []\n if (clipboardData?.files?.length) {\n Array.from(clipboardData.files).forEach((file) => {\n files.push({\n alt: '',\n file,\n formID: new ObjectID.default().toHexString(),\n })\n })\n }\n\n if (files.length) {\n // Insert a pending UploadNode for each image\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n for (const file of files) {\n const pendingUploadNode = $createUploadNode({\n data: {\n pending: {\n formID: file.formID,\n src: URL.createObjectURL(file.file),\n },\n } as Internal_UploadData,\n })\n // we need to get the focus node before inserting the upload node, as $insertNodeToNearestRoot can change the focus node\n const { focus } = selection\n const focusNode = focus.getNode()\n // Insert upload node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(pendingUploadNode)\n\n // Delete the node it it's an empty paragraph\n if ($isParagraphNode(focusNode) && !focusNode.__first) {\n focusNode.remove()\n }\n }\n }\n })\n\n // Open the bulk drawer - the node transform will not open it for us, as it does not handle blob/file uploads\n openBulkUpload({ files })\n\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n // Handle drag & drop of files from the desktop into the editor\n editor.registerCommand(\n DROP_COMMAND,\n (event) => {\n if (!(event instanceof DragEvent)) {\n return false\n }\n\n const dt = event.dataTransfer\n\n if (!dt?.types?.length) {\n return false\n }\n\n const files: FileToUpload[] = []\n if (dt?.files?.length) {\n Array.from(dt.files).forEach((file) => {\n files.push({\n alt: '',\n file,\n formID: new ObjectID.default().toHexString(),\n })\n })\n }\n\n if (files.length) {\n // Prevent the default browser drop handling, which would open the file in the browser\n event.preventDefault()\n event.stopPropagation()\n\n // Insert a PendingUploadNode for each image\n editor.update(() => {\n if (canDropImage(event)) {\n const range = getDragSelection(event)\n const selection = $createRangeSelection()\n if (range !== null && range !== undefined) {\n selection.applyDOMRange(range)\n }\n $setSelection(selection)\n\n for (const file of files) {\n const pendingUploadNode = $createUploadNode({\n data: {\n pending: {\n formID: file.formID,\n src: URL.createObjectURL(file.file),\n },\n } as Internal_UploadData,\n })\n // we need to get the focus node before inserting the upload node, as $insertNodeToNearestRoot can change the focus node\n const { focus } = selection\n const focusNode = focus.getNode()\n // Insert upload node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(pendingUploadNode)\n\n // Delete the node it it's an empty paragraph\n if ($isParagraphNode(focusNode) && !focusNode.__first) {\n focusNode.remove()\n }\n }\n }\n })\n\n // Open the bulk drawer - the node transform will not open it for us, as it does not handle blob/file uploads\n openBulkUpload({ files })\n\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor])\n\n return <UploadDrawer enabledCollectionSlugs={enabledCollectionSlugs} />\n}\n", "'use client'\nimport type { ListDrawerProps } from '@payloadcms/ui'\nimport type { LexicalEditor } from 'lexical'\nimport type { UploadCollectionSlug } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { toast } from '@payloadcms/ui'\nimport { $getNodeByKey, COMMAND_PRIORITY_EDITOR } from 'lexical'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useLexicalListDrawer } from '../../../../utilities/fieldsDrawer/useLexicalListDrawer.js'\nimport { $createUploadNode } from '../nodes/UploadNode.js'\nimport { INSERT_UPLOAD_COMMAND } from '../plugin/index.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from './commands.js'\n\nconst insertUpload = ({\n editor,\n relationTo,\n replaceNodeKey,\n value,\n}: {\n editor: LexicalEditor\n relationTo: string\n replaceNodeKey: null | string\n value: number | string\n}) => {\n if (!replaceNodeKey) {\n editor.dispatchCommand(INSERT_UPLOAD_COMMAND, {\n // @ts-expect-error - TODO: fix this\n fields: null,\n relationTo,\n value,\n })\n } else {\n editor.update(() => {\n const node = $getNodeByKey(replaceNodeKey)\n if (node) {\n node.replace(\n $createUploadNode({\n data: {\n // @ts-expect-error - TODO: fix this\n fields: null,\n relationTo,\n value,\n },\n }),\n )\n }\n })\n }\n}\n\ntype Props = {\n enabledCollectionSlugs: UploadCollectionSlug[]\n}\n\nconst UploadDrawerComponent: React.FC<Props> = ({ enabledCollectionSlugs }) => {\n const [editor] = useLexicalComposerContext()\n\n const [replaceNodeKey, setReplaceNodeKey] = useState<null | string>(null)\n\n const { closeListDrawer, ListDrawer, openListDrawer } = useLexicalListDrawer({\n collectionSlugs: enabledCollectionSlugs,\n uploads: true,\n })\n\n useEffect(() => {\n return editor.registerCommand<{\n replace: { nodeKey: string } | false\n }>(\n INSERT_UPLOAD_WITH_DRAWER_COMMAND,\n (payload) => {\n setReplaceNodeKey(payload?.replace ? payload?.replace.nodeKey : null)\n openListDrawer()\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor, openListDrawer])\n\n const onSelect = useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n ({ collectionSlug, doc }) => {\n closeListDrawer()\n insertUpload({\n editor,\n relationTo: collectionSlug,\n replaceNodeKey,\n value: doc.id,\n })\n },\n [editor, closeListDrawer, replaceNodeKey],\n )\n\n return <ListDrawer onSelect={onSelect} />\n}\n\nconst UploadDrawerComponentFallback: React.FC = () => {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n return editor.registerCommand<{\n replace: { nodeKey: string } | false\n }>(\n INSERT_UPLOAD_WITH_DRAWER_COMMAND,\n () => {\n toast.error('No upload collections enabled')\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor])\n\n return null\n}\n\nexport const UploadDrawer = ({ enabledCollectionSlugs }: Props): React.ReactNode => {\n if (!enabledCollectionSlugs?.length) {\n return <UploadDrawerComponentFallback />\n }\n\n return <UploadDrawerComponent enabledCollectionSlugs={enabledCollectionSlugs} />\n}\n", "'use client'\n\nimport type { RichTextFieldClient } from 'payload'\n\nimport { ShimmerEffect, useConfig } from '@payloadcms/ui'\nimport React, { lazy, Suspense, useEffect, useState } from 'react'\n\nimport type { FeatureProviderClient } from '../features/typesClient.js'\nimport type { SanitizedClientEditorConfig } from '../lexical/config/types.js'\nimport type { LexicalRichTextFieldProps } from '../types.js'\n\nimport { defaultEditorLexicalConfig } from '../lexical/config/client/default.js'\nimport { loadClientFeatures } from '../lexical/config/client/loader.js'\nimport { sanitizeClientEditorConfig } from '../lexical/config/client/sanitize.js'\n\nconst RichTextEditor = lazy(() =>\n import('./Field.js').then((module) => ({ default: module.RichText })),\n)\n\nexport const RichTextField: React.FC<LexicalRichTextFieldProps> = (props) => {\n const {\n admin = {},\n clientFeatures,\n featureClientImportMap = {},\n featureClientSchemaMap,\n field,\n lexicalEditorConfig = defaultEditorLexicalConfig,\n schemaPath,\n } = props\n\n const { config } = useConfig()\n\n const [finalSanitizedEditorConfig, setFinalSanitizedEditorConfig] =\n useState<null | SanitizedClientEditorConfig>(null)\n\n useEffect(() => {\n if (finalSanitizedEditorConfig) {\n return\n }\n\n const featureProvidersLocal: FeatureProviderClient<any, any>[] = []\n for (const clientFeature of Object.values(clientFeatures)) {\n if (!clientFeature.clientFeatureProvider) {\n continue\n }\n featureProvidersLocal.push(\n clientFeature.clientFeatureProvider(clientFeature.clientFeatureProps),\n ) // Execute the clientFeatureProvider function here, as the server cannot execute functions imported from use client files\n }\n\n const resolvedClientFeatures = loadClientFeatures({\n config,\n featureClientImportMap,\n featureClientSchemaMap,\n field: field as RichTextFieldClient,\n schemaPath: schemaPath ?? field.name,\n unSanitizedEditorConfig: {\n features: featureProvidersLocal,\n lexical: lexicalEditorConfig,\n },\n })\n\n setFinalSanitizedEditorConfig(\n sanitizeClientEditorConfig(resolvedClientFeatures, lexicalEditorConfig, admin),\n )\n }, [\n admin,\n clientFeatures,\n config,\n featureClientImportMap,\n featureClientSchemaMap,\n field,\n finalSanitizedEditorConfig,\n lexicalEditorConfig,\n schemaPath,\n ]) // TODO: Optimize this and use useMemo for this in the future. This might break sub-richtext-blocks from the blocks feature. Need to investigate\n\n return (\n <Suspense fallback={<ShimmerEffect height=\"35vh\" />}>\n {finalSanitizedEditorConfig && (\n <RichTextEditor {...props} editorConfig={finalSanitizedEditorConfig} />\n )}\n </Suspense>\n )\n}\n", "import type { EditorThemeClasses } from 'lexical'\n\nexport const LexicalEditorTheme: EditorThemeClasses = {\n block: 'LexicalEditorTheme__block',\n blockCursor: 'LexicalEditorTheme__blockCursor',\n characterLimit: 'LexicalEditorTheme__characterLimit',\n code: 'LexicalEditorTheme__code',\n inlineBlock: 'LexicalEditorTheme__inlineBlock',\n\n heading: {\n h1: 'LexicalEditorTheme__h1',\n h2: 'LexicalEditorTheme__h2',\n h3: 'LexicalEditorTheme__h3',\n h4: 'LexicalEditorTheme__h4',\n h5: 'LexicalEditorTheme__h5',\n h6: 'LexicalEditorTheme__h6',\n },\n hr: 'LexicalEditorTheme__hr',\n hrSelected: 'LexicalEditorTheme__hrSelected',\n indent: 'LexicalEditorTheme__indent',\n link: 'LexicalEditorTheme__link',\n list: {\n checklist: 'LexicalEditorTheme__checklist',\n listitem: 'LexicalEditorTheme__listItem',\n listitemChecked: 'LexicalEditorTheme__listItemChecked',\n listitemUnchecked: 'LexicalEditorTheme__listItemUnchecked',\n nested: {\n listitem: 'LexicalEditorTheme__nestedListItem',\n },\n olDepth: [\n 'LexicalEditorTheme__ol1',\n 'LexicalEditorTheme__ol2',\n 'LexicalEditorTheme__ol3',\n 'LexicalEditorTheme__ol4',\n 'LexicalEditorTheme__ol5',\n ],\n ul: 'LexicalEditorTheme__ul',\n },\n ltr: 'LexicalEditorTheme__ltr',\n mark: 'LexicalEditorTheme__mark',\n markOverlap: 'LexicalEditorTheme__markOverlap',\n paragraph: 'LexicalEditorTheme__paragraph',\n placeholder: 'LexicalEditorTheme__placeholder',\n quote: 'LexicalEditorTheme__quote',\n relationship: 'LexicalEditorTheme__relationship',\n rtl: 'LexicalEditorTheme__rtl',\n tab: 'LexicalEditorTheme__tabNode',\n table: 'LexicalEditorTheme__table',\n tableAddColumns: 'LexicalEditorTheme__tableAddColumns',\n tableAddRows: 'LexicalEditorTheme__tableAddRows',\n tableAlignment: {\n center: 'LexicalEditorTheme__tableAlignmentCenter',\n right: 'LexicalEditorTheme__tableAlignmentRight',\n },\n tableCell: 'LexicalEditorTheme__tableCell',\n tableCellActionButton: 'LexicalEditorTheme__tableCellActionButton',\n tableCellActionButtonContainer: 'LexicalEditorTheme__tableCellActionButtonContainer',\n tableCellHeader: 'LexicalEditorTheme__tableCellHeader',\n tableCellResizer: 'LexicalEditorTheme__tableCellResizer',\n tableCellSelected: 'LexicalEditorTheme__tableCellSelected',\n tableFrozenColumn: 'LexicalEditorTheme__tableFrozenColumn',\n tableRowStriping: 'LexicalEditorTheme__tableRowStriping',\n tableScrollableWrapper: 'LexicalEditorTheme__tableScrollableWrapper',\n tableSelected: 'LexicalEditorTheme__tableSelected',\n tableSelection: 'LexicalEditorTheme__tableSelection',\n text: {\n bold: 'LexicalEditorTheme__textBold',\n code: 'LexicalEditorTheme__textCode',\n italic: 'LexicalEditorTheme__textItalic',\n strikethrough: 'LexicalEditorTheme__textStrikethrough',\n subscript: 'LexicalEditorTheme__textSubscript',\n superscript: 'LexicalEditorTheme__textSuperscript',\n underline: 'LexicalEditorTheme__textUnderline',\n underlineStrikethrough: 'LexicalEditorTheme__textUnderlineStrikethrough',\n },\n upload: 'LexicalEditorTheme__upload',\n}\n", "'use client'\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical'\n\nimport { LexicalEditorTheme } from '../../theme/EditorTheme.js'\n\nexport const defaultEditorLexicalConfig: LexicalEditorConfig = {\n namespace: 'lexical',\n theme: LexicalEditorTheme,\n}\n", "'use client'\n\nimport type { ClientConfig, RichTextFieldClient } from 'payload'\n\nimport type {\n ClientFeatureProviderMap,\n ResolvedClientFeature,\n ResolvedClientFeatureMap,\n} from '../../../features/typesClient.js'\nimport type { FeatureClientSchemaMap } from '../../../types.js'\nimport type { ClientEditorConfig } from '../types.js'\n\n/**\n * This function expects client functions to ALREADY be ordered & dependencies checked on the server\n * @param unSanitizedEditorConfig\n */\nexport function loadClientFeatures({\n config,\n featureClientImportMap,\n featureClientSchemaMap,\n field,\n schemaPath,\n unSanitizedEditorConfig,\n}: {\n config: ClientConfig\n featureClientImportMap: Record<string, any>\n featureClientSchemaMap: FeatureClientSchemaMap\n field?: RichTextFieldClient\n schemaPath: string\n unSanitizedEditorConfig: ClientEditorConfig\n}): ResolvedClientFeatureMap {\n const featureProviderMap: ClientFeatureProviderMap = new Map()\n\n for (const featureProvider of unSanitizedEditorConfig.features) {\n if (\n !featureProvider?.clientFeatureProps?.featureKey ||\n featureProvider?.clientFeatureProps?.order === undefined ||\n featureProvider?.clientFeatureProps?.order === null\n ) {\n throw new Error(\n 'A Feature you have installed does not return the client props as clientFeatureProps. Please make sure to always return those props, even if they are null, as other important props like order and featureKey are later on injected.',\n )\n }\n featureProviderMap.set(featureProvider.clientFeatureProps.featureKey, featureProvider)\n }\n\n // sort unSanitizedEditorConfig.features by order\n unSanitizedEditorConfig.features = unSanitizedEditorConfig.features.sort(\n (a, b) => a.clientFeatureProps.order - b.clientFeatureProps.order,\n )\n\n const resolvedFeatures: ResolvedClientFeatureMap = new Map()\n\n // Make sure all dependencies declared in the respective features exist\n let loaded = 0\n for (const featureProvider of unSanitizedEditorConfig.features) {\n const feature: Partial<ResolvedClientFeature<any>> =\n typeof featureProvider.feature === 'function'\n ? featureProvider.feature({\n config,\n featureClientImportMap,\n featureClientSchemaMap,\n featureProviderMap,\n field,\n resolvedFeatures,\n schemaPath,\n unSanitizedEditorConfig,\n })\n : featureProvider.feature\n\n feature.key = featureProvider.clientFeatureProps.featureKey\n feature.order = loaded\n\n resolvedFeatures.set(\n featureProvider.clientFeatureProps.featureKey,\n feature as ResolvedClientFeature<any>,\n )\n\n loaded++\n }\n\n return resolvedFeatures\n}\n", "'use client'\n\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical'\n\nimport { deepMerge } from 'payload/shared'\n\nimport type { ToolbarGroup } from '../../../features/toolbars/types.js'\nimport type {\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n} from '../../../features/typesClient.js'\nimport type { LexicalFieldAdminClientProps } from '../../../types.js'\nimport type { SanitizedClientEditorConfig } from '../types.js'\n\nexport const sanitizeClientFeatures = (\n features: ResolvedClientFeatureMap,\n): SanitizedClientFeatures => {\n const sanitized: SanitizedClientFeatures = {\n enabledFeatures: [],\n enabledFormats: [],\n markdownTransformers: [],\n nodes: [],\n plugins: [],\n providers: [],\n slashMenu: {\n dynamicGroups: [],\n groups: [],\n },\n toolbarFixed: {\n groups: [],\n },\n toolbarInline: {\n groups: [],\n },\n }\n\n // Allow customization of groups for toolbarFixed\n let customGroups: Record<string, Partial<ToolbarGroup>> = {}\n features.forEach((feature) => {\n if (feature.key === 'toolbarFixed' && feature.sanitizedClientFeatureProps?.customGroups) {\n customGroups = {\n ...customGroups,\n ...feature.sanitizedClientFeatureProps.customGroups,\n }\n }\n })\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature.providers?.length) {\n sanitized.providers = sanitized.providers.concat(feature.providers)\n }\n\n if (feature.enableFormats?.length) {\n sanitized.enabledFormats.push(...feature.enableFormats)\n }\n\n if (feature.nodes?.length) {\n // Important: do not use concat\n for (const node of feature.nodes) {\n sanitized.nodes.push(node)\n }\n }\n if (feature.plugins?.length) {\n feature.plugins.forEach((plugin, i) => {\n sanitized.plugins?.push({\n clientProps: feature.sanitizedClientFeatureProps,\n Component: plugin.Component as any, // Appeases strict: true\n key: feature.key + i,\n position: plugin.position,\n })\n })\n }\n\n if (feature.toolbarInline?.groups?.length) {\n for (const group of feature.toolbarInline.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarInline.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarInline.groups = sanitized.toolbarInline.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarInline?.groups.push(foundGroup)\n }\n }\n\n if (feature.toolbarFixed?.groups?.length) {\n for (const group of feature.toolbarFixed.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarFixed.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarFixed.groups = sanitized.toolbarFixed.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarFixed?.groups.push(foundGroup)\n }\n }\n\n if (feature.slashMenu?.groups) {\n if (feature.slashMenu.dynamicGroups?.length) {\n sanitized.slashMenu.dynamicGroups = sanitized.slashMenu.dynamicGroups.concat(\n feature.slashMenu.dynamicGroups,\n )\n }\n\n for (const optionGroup of feature.slashMenu.groups) {\n // 1. find the group with the same name or create new one\n let group = sanitized.slashMenu.groups.find((group) => group.key === optionGroup.key)\n if (!group) {\n group = {\n ...optionGroup,\n items: [],\n }\n } else {\n sanitized.slashMenu.groups = sanitized.slashMenu.groups.filter(\n (group) => group.key !== optionGroup.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (optionGroup?.items?.length) {\n group.items = group.items.concat(optionGroup.items)\n }\n sanitized.slashMenu.groups.push(group)\n }\n }\n\n if (feature.markdownTransformers?.length) {\n // Important: do not use concat\n for (const transformer of feature.markdownTransformers) {\n if (typeof transformer === 'function') {\n sanitized.markdownTransformers.push(\n transformer({\n allNodes: sanitized.nodes,\n allTransformers: sanitized.markdownTransformers,\n }),\n )\n } else {\n sanitized.markdownTransformers.push(transformer)\n }\n }\n }\n sanitized.enabledFeatures.push(feature.key)\n })\n\n // Apply custom group configurations to toolbarFixed groups\n if (Object.keys(customGroups).length > 0) {\n sanitized.toolbarFixed.groups = sanitized.toolbarFixed.groups.map((group) => {\n const customConfig = customGroups[group.key]\n if (customConfig) {\n return deepMerge(group, customConfig)\n }\n return group\n })\n }\n\n // Sort sanitized.toolbarInline.groups by order property\n sanitized.toolbarInline.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n // Sort sanitized.toolbarFixed.groups by order property\n sanitized.toolbarFixed.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n\n // Sort sanitized.toolbarInline.groups.[group].entries by order property\n for (const group of sanitized.toolbarInline.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n // Sort sanitized.toolbarFixed.groups.[group].entries by order property\n for (const group of sanitized.toolbarFixed.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n return sanitized\n}\n\nexport function sanitizeClientEditorConfig(\n resolvedClientFeatureMap: ResolvedClientFeatureMap,\n lexical?: LexicalEditorConfig,\n admin?: LexicalFieldAdminClientProps,\n): SanitizedClientEditorConfig {\n return {\n admin,\n features: sanitizeClientFeatures(resolvedClientFeatureMap),\n lexical: lexical!,\n resolvedFeatureMap: resolvedClientFeatureMap,\n }\n}\n", "'use client'\n\n/**\n * @deprecated - remove in 4.0. lexical already exports an isHTMLElement utility\n */\nexport function isHTMLElement(x: unknown): x is HTMLElement {\n return x instanceof HTMLElement\n}\n", "'use client'\nexport function joinClasses(...args: Array<boolean | null | string | undefined>): string {\n return args.filter(Boolean).join(' ')\n}\n", "'use client'\ntype Force = [number, number]\ntype Listener = (force: Force, e: TouchEvent) => void\ninterface ElementValues {\n handleTouchend: (e: TouchEvent) => void\n handleTouchstart: (e: TouchEvent) => void\n listeners: Set<Listener>\n start: Force | null\n}\n\nconst elements = new WeakMap<HTMLElement, ElementValues>()\n\nfunction readTouch(e: TouchEvent): [number, number] | null {\n const touch = e.changedTouches[0]\n if (touch === undefined) {\n return null\n }\n return [touch.clientX, touch.clientY]\n}\n\nfunction addListener(element: HTMLElement, cb: Listener): () => void {\n let elementValues = elements.get(element)\n if (elementValues === undefined) {\n const listeners = new Set<Listener>()\n const handleTouchstart = (e: TouchEvent): void => {\n if (elementValues !== undefined) {\n elementValues.start = readTouch(e)\n }\n }\n const handleTouchend = (e: TouchEvent): void => {\n if (elementValues === undefined) {\n return\n }\n const { start } = elementValues\n if (start === null) {\n return\n }\n const end = readTouch(e)\n for (const listener of listeners) {\n if (end !== null) {\n listener([end[0] - start[0], end[1] - start[1]], e)\n }\n }\n }\n element.addEventListener('touchstart', handleTouchstart)\n element.addEventListener('touchend', handleTouchend)\n\n elementValues = {\n handleTouchend,\n handleTouchstart,\n listeners,\n start: null,\n }\n elements.set(element, elementValues)\n }\n elementValues.listeners.add(cb)\n return () => {\n deleteListener(element, cb)\n }\n}\n\nfunction deleteListener(element: HTMLElement, cb: Listener): void {\n const elementValues = elements.get(element)\n if (elementValues === undefined) {\n return\n }\n const { listeners } = elementValues\n listeners.delete(cb)\n if (listeners.size === 0) {\n elements.delete(element)\n element.removeEventListener('touchstart', elementValues.handleTouchstart)\n element.removeEventListener('touchend', elementValues.handleTouchend)\n }\n}\n\nexport function addSwipeLeftListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (x < 0 && -x > Math.abs(y)) {\n cb(x, e)\n }\n })\n}\n\nexport function addSwipeRightListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (x > 0 && x > Math.abs(y)) {\n cb(x, e)\n }\n })\n}\n\nexport function addSwipeUpListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (y < 0 && -y > Math.abs(x)) {\n cb(x, e)\n }\n })\n}\n\nexport function addSwipeDownListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (y > 0 && y > Math.abs(x)) {\n cb(x, e)\n }\n })\n}\n", "'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockEditButton = () => {\n const { EditButton } = useInlineBlockComponentContext()\n\n return EditButton ? <EditButton /> : null\n}\n", "'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockRemoveButton = () => {\n const { RemoveButton } = useInlineBlockComponentContext()\n\n return RemoveButton ? <RemoveButton /> : null\n}\n", "'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockLabel = () => {\n const { Label } = useInlineBlockComponentContext()\n\n return Label ? <Label /> : null\n}\n", "'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockContainer = ({ children }: { children: React.ReactNode }) => {\n const { InlineBlockContainer } = useInlineBlockComponentContext()\n\n return InlineBlockContainer ? <InlineBlockContainer>{children}</InlineBlockContainer> : null\n}\n", "'use client'\nimport React from 'react'\n\nimport { type BlockCollapsibleProps, useBlockComponentContext } from '../BlockContent.js'\n\nexport const BlockCollapsible: React.FC<BlockCollapsibleProps> = (props) => {\n const { children, ...rest } = props\n const { BlockCollapsible } = useBlockComponentContext()\n\n return BlockCollapsible ? <BlockCollapsible {...rest}>{children}</BlockCollapsible> : null\n}\n", "'use client'\nimport React from 'react'\n\nimport { useBlockComponentContext } from '../BlockContent.js'\n\nexport const BlockEditButton = () => {\n const { EditButton } = useBlockComponentContext()\n\n return EditButton ? <EditButton /> : null\n}\n", "'use client'\nimport React from 'react'\n\nimport { useBlockComponentContext } from '../BlockContent.js'\n\nexport const BlockRemoveButton = () => {\n const { RemoveButton } = useBlockComponentContext()\n\n return RemoveButton ? <RemoveButton /> : null\n}\n", "import { stringify } from 'qs-esm'\n\nimport type { HTMLPopulateFn } from '../lexicalToHtml/async/types.js'\n\nexport const getRestPopulateFn: (args: {\n /**\n * E.g. `http://localhost:3000/api`\n */\n apiURL: string\n depth?: number\n draft?: boolean\n locale?: string\n}) => HTMLPopulateFn = ({ apiURL, depth, draft, locale }) => {\n const populateFn: HTMLPopulateFn = async ({ id, collectionSlug, select }) => {\n const query = stringify(\n { depth: depth ?? 0, draft: draft ?? false, locale, select },\n { addQueryPrefix: true },\n )\n\n const res = await fetch(`${apiURL}/${collectionSlug}/${id}${query}`, {\n credentials: 'include',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n }).then((res) => res.json())\n\n return res\n }\n\n return populateFn\n}\n", "import type { BlockJSX } from 'payload'\n\n/**\n * @internal\n * @experimental - API may change in minor releases\n */\nexport const codeConverter: BlockJSX = {\n customEndRegex: {\n optional: true,\n regExp: /[ \\t]*```$/,\n },\n customStartRegex: /^[ \\t]*```(\\w+)?/,\n doNotTrimChildren: true,\n export: ({ fields }) => {\n const isSingleLine = !fields.code.includes('\\n') && !fields.language?.length\n if (isSingleLine) {\n return '```' + fields.code + '```'\n }\n\n return '```' + (fields.language || '') + (fields.code ? '\\n' + fields.code : '') + '\\n' + '```'\n },\n import: ({ children, closeMatch, openMatch }) => {\n const language = openMatch?.[1]\n\n // Removed first and last \\n from children if present\n if (children.startsWith('\\n')) {\n children = children.slice(1)\n }\n if (children.endsWith('\\n')) {\n children = children.slice(0, -1)\n }\n\n const isSingleLineAndComplete =\n !!closeMatch && !children.includes('\\n') && openMatch?.input?.trim() !== '```' + language\n\n if (isSingleLineAndComplete) {\n return {\n code: language + (children?.length ? children : ''), // No need to add space to children as they are not trimmed\n language: '',\n }\n }\n\n return {\n code: children,\n language,\n }\n },\n}\n", "'use client'\n\nimport type { CodeFieldClient, CodeFieldClientProps } from 'payload'\n\nimport { CodeField, useFormFields } from '@payloadcms/ui'\nimport React, { useId, useMemo } from 'react'\n\nimport { defaultLanguages } from './defaultLanguages.js'\n\nexport type AdditionalCodeComponentProps = {\n /**\n * @default first key of the `languages` prop\n */\n defaultLanguage?: string\n /**\n * @default all languages supported by Monaco Editor\n */\n languages?: Record<string, string>\n /**\n * Override the name of the block.\n *\n * @default 'Code'\n */\n slug?: string\n /**\n * Configure typescript settings for the editor\n */\n typescript?: {\n /**\n * By default, the editor will not perform semantic validation. This means that\n * while syntax errors will be highlighted, other issues like missing imports or incorrect\n * types will not be.\n *\n * @default false\n */\n enableSemanticValidation?: boolean\n /**\n * Additional types to fetch and include in the editor for autocompletion.\n *\n * For example, to include types for payload, you would set this to\n *\n * [{ url: 'https://unpkg.com/payload@latest/dist/index.d.ts', filePath: 'file:///node_modules/payload/index.d.ts' }]\n */\n fetchTypes?: Array<{\n filePath: string\n url: string\n }>\n /**\n * @default undefined\n */\n paths?: Record<string, string[]>\n /**\n * @default \"ESNext\"\n */\n target?: string\n /**\n * @default ['node_modules/@types']\n */\n typeRoots?: string[]\n }\n}\n\nexport const CodeComponent: React.FC<AdditionalCodeComponentProps & CodeFieldClientProps> = ({\n autoComplete,\n field,\n forceRender,\n languages = defaultLanguages,\n path,\n permissions,\n readOnly,\n renderedBlocks,\n schemaPath,\n typescript,\n validate,\n}) => {\n const languageField = useFormFields(([fields]) => fields['language'])\n\n const language: string =\n (languageField?.value as string) || (languageField?.initialValue as string) || 'typescript'\n\n // unique id per component instance to ensure Monaco creates a distinct model\n // for each TypeScript code block. Using React's useId is SSR-safe and builtin.\n const instanceId = useId()\n\n const label = languages[language]\n\n const props: CodeFieldClient = useMemo<CodeFieldClient>(\n () => ({\n ...field,\n type: 'code',\n admin: {\n ...field.admin,\n editorOptions: {},\n editorProps: {\n // If typescript is set, @monaco-editor/react needs to set the URI to a .ts or .tsx file when it calls createModel().\n // Provide a unique defaultPath per instance so Monaco doesn't reuse the same model\n // across multiple code block instances. We use field.name + instanceId for debugability.\n defaultPath: language === 'ts' ? `file-${field.name}-${instanceId}.tsx` : undefined,\n },\n language,\n },\n }),\n [field, language, instanceId],\n )\n\n const key = `${field.name}-${language}-${label}`\n\n return (\n props && (\n <CodeField\n autoComplete={autoComplete}\n field={props}\n forceRender={forceRender}\n key={key}\n onMount={(_editor, monaco) => {\n monaco.editor.defineTheme('vs-dark', {\n base: 'vs-dark',\n colors: {\n 'editor.background': '#222222',\n },\n inherit: true,\n rules: [],\n })\n\n monaco.editor.defineTheme('vs', {\n base: 'vs',\n colors: {\n 'editor.background': '#f5f5f5',\n },\n inherit: true,\n rules: [],\n })\n monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n allowNonTsExtensions: true,\n // Set module resolution to NodeJs to enable autocompletion\n allowJs: true,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n jsx: monaco.languages.typescript.JsxEmit.React,\n moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs,\n noEmit: true,\n paths: typescript?.paths,\n reactNamespace: 'React',\n target: monaco.languages.typescript.ScriptTarget[\n typescript?.target ?? ('ESNext' as any)\n ] as any,\n typeRoots: typescript?.typeRoots ?? ['node_modules/@types'],\n })\n\n monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: typescript?.enableSemanticValidation ? false : true,\n noSyntaxValidation: false,\n })\n\n const run = async () => {\n if (\n typescript?.fetchTypes &&\n Array.isArray(typescript.fetchTypes) &&\n typescript.fetchTypes.length > 0\n ) {\n await Promise.all(\n typescript.fetchTypes.map(async (type) => {\n const types = await fetch(type.url)\n const typesText = await types.text()\n monaco.languages.typescript.typescriptDefaults.addExtraLib(\n typesText,\n type.filePath,\n )\n }),\n )\n }\n }\n void run()\n }}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n renderedBlocks={renderedBlocks}\n schemaPath={schemaPath}\n validate={validate}\n />\n )\n )\n}\n", "/**\n * Source: https://github.com/microsoft/monaco-editor/tree/main/src/basic-languages\n */\nexport const defaultLanguages: Record<string, string> = {\n abap: 'ABAP',\n apex: 'Apex',\n azcli: 'Azure CLI',\n bat: 'Batch',\n bicep: 'Bicep',\n cameligo: 'CameLIGO',\n clojure: 'Clojure',\n coffee: 'CoffeeScript',\n cpp: 'C++',\n csharp: 'C#',\n csp: 'CSP',\n css: 'CSS',\n cypher: 'Cypher',\n dart: 'Dart',\n dockerfile: 'Dockerfile',\n ecl: 'ECL',\n elixir: 'Elixir',\n flow9: 'Flow9',\n freemarker2: 'FreeMarker 2',\n fsharp: 'F#',\n go: 'Go',\n graphql: 'GraphQL',\n handlebars: 'Handlebars',\n hcl: 'HCL',\n html: 'HTML',\n ini: 'INI',\n java: 'Java',\n javascript: 'JavaScript',\n julia: 'Julia',\n kotlin: 'Kotlin',\n less: 'Less',\n lexon: 'Lexon',\n liquid: 'Liquid',\n lua: 'Lua',\n m3: 'M3',\n markdown: 'Markdown',\n mdx: 'MDX',\n mips: 'MIPS',\n msdax: 'DAX',\n mysql: 'MySQL',\n 'objective-c': 'Objective-C',\n pascal: 'Pascal',\n pascaligo: 'PascaLIGO',\n perl: 'Perl',\n pgsql: 'PostgreSQL',\n php: 'PHP',\n pla: 'PLA',\n plaintext: 'Plain Text',\n postiats: 'Postiats',\n powerquery: 'Power Query',\n powershell: 'PowerShell',\n protobuf: 'Protobuf',\n pug: 'Pug',\n python: 'Python',\n qsharp: 'Q#',\n r: 'R',\n razor: 'Razor',\n redis: 'Redis',\n redshift: 'Amazon Redshift',\n restructuredtext: 'reStructuredText',\n ruby: 'Ruby',\n rust: 'Rust',\n sb: 'Small Basic',\n scala: 'Scala',\n scheme: 'Scheme',\n scss: 'SCSS',\n shell: 'Shell',\n solidity: 'Solidity',\n sophia: 'Sophia',\n sparql: 'SPARQL',\n sql: 'SQL',\n st: 'Structured Text',\n swift: 'Swift',\n systemverilog: 'SystemVerilog',\n tcl: 'Tcl',\n twig: 'Twig',\n typescript: 'TypeScript',\n typespec: 'TypeSpec',\n vb: 'Visual Basic',\n wgsl: 'WGSL',\n xml: 'XML',\n yaml: 'YAML',\n}\n", "'use client'\nimport type { ComboboxEntry } from '@payloadcms/ui'\nimport type {} from 'payload'\n\nimport './index.scss'\n\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n ChevronIcon,\n Combobox,\n CopyToClipboard,\n PopupList,\n RenderFields,\n useForm,\n useFormFields,\n useTranslation,\n} from '@payloadcms/ui'\nimport React from 'react'\n\nimport type { AdditionalCodeComponentProps } from './Code.js'\n\nimport { CodeBlockIcon } from '../../../../../lexical/ui/icons/CodeBlock/index.js'\nimport { useBlockComponentContext } from '../../../client/component/BlockContent.js'\nimport { Collapse } from './Collapse/index.js'\nimport { defaultLanguages } from './defaultLanguages.js'\nimport { FloatingCollapse } from './FloatingCollapse/index.js'\n\nconst baseClass = 'payload-richtext-code-block'\nexport const CodeBlockBlockComponent: React.FC<Pick<AdditionalCodeComponentProps, 'languages'>> = (\n args,\n) => {\n const { languages: languagesFromProps } = args\n const languages = languagesFromProps || defaultLanguages\n\n const { BlockCollapsible, formSchema, RemoveButton } = useBlockComponentContext()\n const { setModified } = useForm()\n const { t } = useTranslation()\n\n const { codeField } = useFormFields(([fields]) => ({\n codeField: fields?.code,\n }))\n\n const { selectedLanguageField, setSelectedLanguage } = useFormFields(([fields, dispatch]) => ({\n selectedLanguageField: fields?.language,\n setSelectedLanguage: (language: string) => {\n dispatch({\n type: 'UPDATE',\n path: 'language',\n value: language,\n })\n setModified(true)\n },\n }))\n\n const selectedLanguageLabel = languages[selectedLanguageField?.value as keyof typeof languages]\n\n const isEditable = useLexicalEditable()\n\n const languageEntries = React.useMemo<ComboboxEntry[]>(() => {\n return Object.entries(languages).map(([languageCode, languageLabel]) => ({\n name: `${languageCode} ${languageLabel}`,\n Component: (\n <PopupList.Button\n active={false}\n disabled={false}\n onClick={() => {\n setSelectedLanguage(languageCode)\n }}\n >\n <span className={`${baseClass}__language-code`} data-language={languageCode}>\n {languageLabel}\n </span>\n </PopupList.Button>\n ),\n }))\n }, [languages, setSelectedLanguage])\n\n return (\n <BlockCollapsible\n Actions={\n <div className={`${baseClass}__actions`}>\n <Combobox\n button={\n <div\n className={`${baseClass}__language-selector-button`}\n data-selected-language={selectedLanguageField?.value}\n >\n <span>{selectedLanguageLabel}</span>\n <ChevronIcon className={`${baseClass}__chevron`} />\n </div>\n }\n buttonType=\"custom\"\n className={`${baseClass}__language-selector`}\n disabled={!isEditable}\n entries={languageEntries}\n horizontalAlign=\"right\"\n minEntriesForSearch={8}\n searchPlaceholder={t('fields:searchForLanguage')}\n showScrollbar\n size=\"large\"\n />\n <CopyToClipboard value={(codeField?.value as string) ?? ''} />\n\n <Collapse />\n\n {isEditable && <RemoveButton />}\n </div>\n }\n className={baseClass}\n collapsibleProps={{\n AfterCollapsible: <FloatingCollapse />,\n disableHeaderToggle: true,\n disableToggleIndicator: true,\n }}\n Pill={\n <div className={`${baseClass}__pill`}>\n <CodeBlockIcon />\n </div>\n }\n >\n <RenderFields\n fields={formSchema}\n forceRender={true}\n parentIndexPath=\"\"\n parentPath={''}\n parentSchemaPath=\"\"\n permissions={true}\n readOnly={!isEditable}\n />\n </BlockCollapsible>\n )\n}\n", "'use client'\nimport React from 'react'\n\nexport const CodeBlockIcon: React.FC = () => (\n <svg fill=\"none\" height=\"12\" viewBox=\"0 0 15 12\" width=\"15\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.3738 8.62598L14.0404 5.95931L11.3738 3.29264M3.37376 3.29264L0.707092 5.95931L3.37376 8.62598M9.04043 0.625977L5.70709 11.2926\"\n stroke=\"currentColor\"\n strokeLinecap=\"square\"\n />\n </svg>\n)\n", "import React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'code-block-collapse-button'\nimport { useCollapsible } from '@payloadcms/ui'\n\nimport { CollapseIcon } from '../../../../../../lexical/ui/icons/Collapse/index.js'\n\nexport const Collapse: React.FC = () => {\n const { toggle } = useCollapsible()\n return (\n <button className={baseClass} onClick={toggle} type=\"button\">\n <CollapseIcon />\n </button>\n )\n}\n", "'use client'\nimport React from 'react'\n\nexport const CollapseIcon: React.FC = () => (\n <svg fill=\"none\" height=\"15\" viewBox=\"0 0 15 15\" width=\"15\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.16667 13.8333V9.83333M7.16667 9.83333L9.16667 11.8333M7.16667 9.83333L5.16667 11.8333M7.16667 4.5V0.5M7.16667 4.5L9.16667 2.5M7.16667 4.5L5.16667 2.5M1.83333 7.16667H0.5M5.83333 7.16667H4.5M9.83333 7.16667H8.5M13.8333 7.16667H12.5\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n", "import React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'code-block-floating-collapse-button'\nimport { useCollapsible, useTranslation } from '@payloadcms/ui'\n\nimport { CollapseIcon } from '../../../../../../lexical/ui/icons/Collapse/index.js'\n\nexport const FloatingCollapse: React.FC = () => {\n const { isCollapsed, toggle } = useCollapsible()\n const { t } = useTranslation()\n\n if (!isCollapsed) {\n return null\n }\n\n return (\n <button className={baseClass} onClick={toggle} type=\"button\">\n <span>{t('general:collapse')}</span>\n <CollapseIcon />\n </button>\n )\n}\n", "'use client'\nimport type { RichTextField } from 'payload'\n\nimport {\n FieldContext,\n FieldPathContext,\n type FieldType,\n type RenderFieldServerFnArgs,\n ServerFunctionsContext,\n type ServerFunctionsContextType,\n ShimmerEffect,\n useServerFunctions,\n} from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useRef } from 'react'\n\nimport type { DefaultTypedEditorState } from '../../nodeTypes.js'\nimport type { LexicalRichTextField } from '../../types.js'\n\n/**\n * Utility to render a lexical editor on the client.\n *\n * @experimental - may break in minor releases\n * @todo - replace this with a general utility that works for all fields. Maybe merge with packages/ui/src/forms/RenderFields/RenderField.tsx\n */\nexport const RenderLexical: React.FC<\n /**\n * If value or setValue, or both, is provided, this component will manage its own value.\n * If neither is passed, it will rely on the parent form to manage the value.\n */\n {\n /**\n * Override the loading state while the field component is being fetched and rendered.\n */\n Loading?: React.ReactElement\n\n setValue?: FieldType<DefaultTypedEditorState | undefined>['setValue']\n value?: FieldType<DefaultTypedEditorState | undefined>['value']\n } & RenderFieldServerFnArgs<LexicalRichTextField>\n> = (args) => {\n const { field, initialValue, Loading, path, schemaPath, setValue, value } = args\n const [Component, setComponent] = React.useState<null | React.ReactNode>(null)\n const serverFunctionContext = useServerFunctions()\n const { _internal_renderField } = serverFunctionContext\n\n const [entityType, entitySlug] = schemaPath.split('.', 2)\n\n const fieldPath = path ?? (field && 'name' in field ? field?.name : '') ?? ''\n\n const renderLexical = useCallback(() => {\n async function render() {\n const { Field } = await _internal_renderField({\n field: {\n ...((field as RichTextField) || {}),\n type: 'richText',\n admin: {\n ...((field as RichTextField)?.admin || {}),\n // When using \"fake\" anchor fields, hidden is often set to true. We need to override that here to ensure the field is rendered.\n hidden: false,\n },\n },\n initialValue: initialValue ?? undefined,\n path,\n schemaPath,\n })\n\n setComponent(Field)\n }\n void render()\n }, [_internal_renderField, schemaPath, path, field, initialValue])\n\n const mounted = useRef(false)\n\n useEffect(() => {\n if (mounted.current) {\n return\n }\n mounted.current = true\n void renderLexical()\n }, [renderLexical])\n\n if (!Component) {\n return typeof Loading !== 'undefined' ? Loading : <ShimmerEffect />\n }\n\n /**\n * By default, the lexical will make form state requests (e.g. to get drawer fields), passing in the arguments\n * of the current field. However, we need to override those arguments to get it to make requests based on the\n * *target* field. The server only knows the schema map of the target field.\n */\n const adjustedServerFunctionContext: ServerFunctionsContextType = {\n ...serverFunctionContext,\n getFormState: async (getFormStateArgs) => {\n return serverFunctionContext.getFormState({\n ...getFormStateArgs,\n collectionSlug: entityType === 'collection' ? entitySlug : undefined,\n globalSlug: entityType === 'global' ? entitySlug : undefined,\n })\n },\n }\n\n if (typeof value === 'undefined' && !setValue) {\n return (\n <ServerFunctionsContext value={{ ...adjustedServerFunctionContext }}>\n <FieldPathContext key={fieldPath} value={fieldPath}>\n {Component}\n </FieldPathContext>\n </ServerFunctionsContext>\n )\n }\n\n const fieldValue: FieldType<DefaultTypedEditorState | undefined> = {\n disabled: false,\n formInitializing: false,\n formProcessing: false,\n formSubmitted: false,\n initialValue: value,\n path: fieldPath,\n setValue: setValue ?? (() => undefined),\n showError: false,\n value,\n }\n\n return (\n <ServerFunctionsContext value={{ ...adjustedServerFunctionContext }}>\n <FieldPathContext key={fieldPath} value={fieldPath}>\n <FieldContext value={fieldValue}>{Component}</FieldContext>\n </FieldPathContext>\n </ServerFunctionsContext>\n )\n}\n", "import type { SerializedLexicalNode } from 'lexical'\n\nimport type { DefaultNodeTypes, DefaultTypedEditorState, TypedEditorState } from '../nodeTypes.js'\n\n/**\n * Helper to build lexical editor state JSON from text and/or nodes.\n *\n * @param nodes - The nodes to include in the editor state. If you pass the `text` argument, this will append your nodes after the first paragraph node.\n * @param text - The text content to include in the editor state. This will create a paragraph node with a text node for you and set that as the first node.\n * @returns The constructed editor state JSON.\n *\n * @example\n *\n * just passing text:\n *\n * ```ts\n * const editorState = buildEditorState<DefaultNodeTypes>({ text: 'Hello world' }) // result typed as DefaultTypedEditorState\n * ```\n *\n * @example\n *\n * passing nodes:\n *\n * ```ts\n * const editorState = // result typed as TypedEditorState<DefaultNodeTypes | SerializedBlockNode> (or TypedEditorState<SerializedBlockNode>)\n * buildEditorState<DefaultNodeTypes | SerializedBlockNode>({ // or just buildEditorState<SerializedBlockNode> if you *only* want to allow block nodes\n * nodes: [\n * {\n * type: 'block',\n * fields: {\n * id: 'id',\n * blockName: 'Cool block',\n * blockType: 'myBlock',\n * },\n * format: 'left',\n * version: 1,\n * }\n * ],\n * })\n * ```\n */\nexport function buildEditorState<T extends SerializedLexicalNode>({\n nodes,\n text,\n}: {\n nodes?: TypedEditorState<T>['root']['children']\n text?: string\n}): TypedEditorState<T> {\n const editorJSON: DefaultTypedEditorState = {\n root: {\n type: 'root',\n children: [],\n direction: 'ltr',\n format: '',\n indent: 0,\n version: 1,\n },\n }\n\n if (text) {\n editorJSON.root.children.push({\n type: 'paragraph',\n children: [\n {\n type: 'text',\n detail: 0,\n format: 0,\n mode: 'normal',\n style: '',\n text,\n version: 1,\n },\n ],\n direction: 'ltr',\n format: '',\n indent: 0,\n textFormat: 0,\n textStyle: '',\n version: 1,\n })\n }\n\n if (nodes?.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n editorJSON.root.children.push(...(nodes as any))\n }\n\n return editorJSON as TypedEditorState<T>\n}\n\n/**\n *\n * Alias for `buildEditorState<DefaultNodeTypes>`\n *\n * @experimental this API may change or be removed in a minor release\n * @internal\n */\nexport const buildDefaultEditorState: typeof buildEditorState<DefaultNodeTypes> =\n buildEditorState<DefaultNodeTypes>\n"],
5
- "mappings": "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,IAAO,4BACP,IAAO,2BACP,IAAO,2BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,2BACP,IAAO,4BACP,IAAO,2BACT,EACAC,KAAM,CACJ,GAAM,6BACN,IAAO,6BACP,IAAO,6BACP,IAAO,4BACP,IAAO,6BACP,IAAO,6BACP,IAAO,2BACP,IAAO,2BACP,IAAO,2BACP,IAAO,2BACP,IAAO,0BACT,EACAC,OAAQ,CACN,GAAM,6BACN,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,2BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACT,EACAC,IAAK,CACH,GAAM,2BACN,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,2BACT,EACAC,KAAM,CACJ,GAAM,4BACN,IAAO,0BACP,IAAO,4BACP,IAAO,2BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,2BACP,IAAO,2BACT,EACAC,IAAK,CACH,GAAM,4BACN,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACP,IAAO,6BACP,IAAO,6BACP,IAAO,2BACP,IAAO,2BACP,IAAO,4BACP,IAAO,4BACT,EACAC,MAAO,CACL,GAAM,6BACN,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACT,EACAC,MAAO,CACL,GAAM,6BACN,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,2BACP,IAAO,4BACP,IAAO,4BACP,IAAO,2BACP,IAAO,4BACP,IAAO,4BACP,IAAO,0BACT,EACAC,KAAM,CACJ,GAAM,4BACN,IAAO,6BACP,IAAO,4BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACP,IAAO,2BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACT,EACA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",
5
+ "mappings": "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,IAAO,4BACP,IAAO,2BACP,IAAO,2BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,2BACP,IAAO,4BACP,IAAO,2BACT,EACAC,KAAM,CACJ,GAAM,6BACN,IAAO,6BACP,IAAO,6BACP,IAAO,4BACP,IAAO,6BACP,IAAO,6BACP,IAAO,2BACP,IAAO,2BACP,IAAO,2BACP,IAAO,2BACP,IAAO,0BACT,EACAC,OAAQ,CACN,GAAM,6BACN,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,2BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACT,EACAC,IAAK,CACH,GAAM,2BACN,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,2BACT,EACAC,KAAM,CACJ,GAAM,4BACN,IAAO,0BACP,IAAO,4BACP,IAAO,2BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,2BACP,IAAO,2BACT,EACAC,IAAK,CACH,GAAM,4BACN,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACP,IAAO,6BACP,IAAO,6BACP,IAAO,2BACP,IAAO,2BACP,IAAO,4BACP,IAAO,4BACT,EACAC,MAAO,CACL,GAAM,6BACN,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACT,EACAC,MAAO,CACL,GAAM,6BACN,IAAO,4BACP,IAAO,4BACP,IAAO,4BACP,IAAO,2BACP,IAAO,4BACP,IAAO,4BACP,IAAO,2BACP,IAAO,4BACP,IAAO,4BACP,IAAO,0BACT,EACAC,KAAM,CACJ,GAAM,4BACN,IAAO,6BACP,IAAO,4BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACP,IAAO,2BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACT,EACA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",
6
6
  "names": ["slashMenuBasicGroupWithItems", "items", "key", "label", "i18n", "t", "c", "_c", "useLexicalComposerContext", "$isDecoratorBlockNode", "$findMatchingParent", "$getSelection", "$isElementNode", "$isNodeSelection", "$isRangeSelection", "COMMAND_PRIORITY_LOW", "FORMAT_ELEMENT_COMMAND", "useEffect", "AlignCenterIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "AlignJustifyIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "AlignLeftIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "AlignRightIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "createClientFeature", "feature", "props", "featureProviderClient", "clientFeatureProps", "config", "featureClientImportMap", "featureClientSchemaMap", "featureProviderMap", "field", "resolvedFeatures", "schemaPath", "unSanitizedEditorConfig", "toReturn", "sanitizedClientFeatureProps", "newFeature", "toolbarAlignGroupWithItems", "items", "type", "ChildComponent", "AlignLeftIcon", "key", "order", "getFormatType", "node", "$isElementNode", "__format", "toolbarGroups", "toolbarAlignGroupWithItems", "ChildComponent", "AlignLeftIcon", "isActive", "selection", "$isRangeSelection", "getNodes", "$isDecoratorBlockNode", "parent", "getParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "FORMAT_ELEMENT_COMMAND", "order", "AlignCenterIcon", "AlignRightIcon", "AlignJustifyIcon", "AlignPlugin", "$", "_c", "useLexicalComposerContext", "t0", "t1", "registerCommand", "_temp2", "COMMAND_PRIORITY_LOW", "useEffect", "AlignFeatureClient", "createClientFeature", "plugins", "Component", "position", "toolbarFixed", "groups", "toolbarInline", "_temp", "parentNode", "isInline", "format", "$getSelection", "$isNodeSelection", "nodes", "element", "$findMatchingParent", "setFormat", "$createQuoteNode", "$isQuoteNode", "QuoteNode", "$setBlocksType", "$getSelection", "$isRangeSelection", "BlockquoteIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "TextIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "toolbarTextDropdownGroupWithItems", "items", "type", "ChildComponent", "TextIcon", "key", "order", "$createQuoteNode", "$isQuoteNode", "QuoteNode", "MarkdownTransformer", "type", "dependencies", "export", "node", "exportChildren", "lines", "split", "output", "line", "push", "join", "regExp", "replace", "parentNode", "children", "_match", "isImport", "previousNode", "getPreviousSibling", "splice", "getChildrenSize", "select", "remove", "append", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "ChildComponent", "BlockquoteIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isQuoteNode", "getParent", "key", "label", "i18n", "t", "onSelect", "editor", "update", "$getSelection", "$setBlocksType", "$createQuoteNode", "order", "BlockquoteFeatureClient", "createClientFeature", "markdownTransformers", "MarkdownTransformer", "nodes", "QuoteNode", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "getTranslation", "BlockIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "rx", "stroke", "x", "y", "InlineBlocksIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "clipRule", "d", "fillRule", "getBlockImageComponent", "imageURL", "imageAltText", "_jsx", "alt", "className", "src", "style", "maxHeight", "maxWidth", "BlockIcon", "$parseSerializedNode", "JSOX", "extractPropsFromJSXPropsString", "propsString", "props", "key", "collectingKey", "i", "length", "char", "result", "handleValue", "value", "newIndex", "startIndex", "handleQuotedString", "handleObject", "handleArray", "handleUnquotedString", "bracketCount", "parse", "isSingleQuoted", "parseObject", "objString", "replace", "propsToJSXString", "props", "propsArray", "key", "value", "Object", "entries", "push", "escapeQuotes", "Array", "isArray", "map", "v", "JSON", "stringify", "replacer", "join", "str", "replace", "linesFromStartToContentAndPropsString", "isEndOptional", "lines", "regexpEndRegex", "startLineIndex", "startMatch", "trimChildren", "propsString", "content", "linesCopy", "slice", "isWithinContent", "contentSubTagStartAmount", "bracketCount", "quoteChar", "isSelfClosing", "isWithinCodeBlockAmount", "beforeStartLine", "index", "endlineLastCharIndex", "endLineIndex", "mainLoop", "lineIndex", "lineCopy", "entries", "line", "trim", "amountOfBeginningSpacesRemoved", "i", "length", "charIndex", "char", "nextChar", "match", "undefined", "Error", "join", "JSON", "stringify", "afterEndLine", "ObjectID", "$applyNodeReplacement", "DecoratorBlockNode", "addClassNamesToElement", "ObjectID", "$applyNodeReplacement", "ServerBlockNode", "__cacheBuster", "__fields", "constructor", "cacheBuster", "fields", "format", "key", "clone", "node", "__format", "__key", "getType", "importDOM", "importJSON", "serializedNode", "version", "data", "$createServerBlockNode", "setFormat", "isInline", "createDOM", "config", "element", "document", "createElement", "theme", "block", "decorate", "editor", "exportDOM", "text", "createTextNode", "getTextContent", "append", "exportJSON", "type", "getFields", "getCacheBuster", "getLatest", "setFields", "preventFormStateUpdate", "writable", "getWritable", "id", "default", "toHexString", "useLexicalComposerContext", "useLexicalEditable", "getTranslation", "Button", "Collapsible", "Drawer", "EditDepthProvider", "ErrorPill", "Form", "formatDrawerSlug", "FormSubmit", "Pill", "RenderFields", "SectionTitle", "useConfig", "useDocumentForm", "useDocumentInfo", "useEditDepth", "useFormSubmitted", "useServerFunctions", "useTranslation", "abortAndIgnore", "$getNodeByKey", "deepCopyObjectSimpleWithoutReactComponents", "reduceFieldsToValues", "React", "useCallback", "useEffect", "useMemo", "useRef", "v4", "uuid", "c", "_c", "useLexicalEditable", "RenderFields", "useFormSubmitted", "React", "createContext", "BlockComponentContext", "baseClass", "BlockCollapsible", "BlockDrawer", "CustomBlock", "EditButton", "errorCount", "formSchema", "initialState", "nodeKey", "RemoveButton", "useBlockComponentContext", "use", "BlockContent", "props", "$", "Collapsible", "contextProps", "fieldHasErrors", "isEditable", "t0", "props_0", "children", "rest", "_jsx", "CollapsibleWithErrorProps", "_jsxs", "value", "fields", "forceRender", "parentIndexPath", "parentPath", "parentSchemaPath", "permissions", "readOnly", "removeEmptyArrayValues", "fields", "key", "field", "Array", "isArray", "rows", "disableFormData", "BlockComponent", "props", "cacheBuster", "className", "baseClass", "formData", "nodeKey", "submitted", "useFormSubmitted", "id", "collectionSlug", "globalSlug", "useDocumentInfo", "fieldProps", "featureClientSchemaMap", "field", "parentLexicalRichTextField", "initialLexicalFormState", "schemaPath", "uuid", "uuidFromContext", "useEditorConfigContext", "fields", "parentDocumentFields", "useDocumentForm", "onChangeAbortControllerRef", "useRef", "AbortController", "editDepth", "useEditDepth", "errorCount", "setErrorCount", "React", "useState", "config", "useConfig", "drawerSlug", "formatDrawerSlug", "slug", "depth", "toggleDrawer", "useLexicalDrawer", "getDocPreferences", "setDocFieldPreferences", "editor", "useLexicalComposerContext", "isEditable", "useLexicalEditable", "blockType", "getFormState", "useServerFunctions", "schemaFieldsPath", "initialState", "setInitialState", "cachedFormState", "formState", "mergedState", "Object", "fromEntries", "entries", "map", "fieldName", "fieldState", "initialValue", "value", "blockName", "passesCondition", "valid", "hasMounted", "prevCacheBuster", "useEffect", "current", "CustomLabel", "setCustomLabel", "customComponents", "BlockLabel", "undefined", "CustomBlock", "setCustomBlock", "Block", "abortController", "state", "data", "docPermissions", "docPreferences", "documentFormState", "deepCopyObjectSimpleWithoutReactComponents", "excludeFiles", "initialBlockData", "operation", "readOnly", "renderAllFields", "signal", "newFormStateData", "reduceFieldsToValues", "update", "node", "$getNodeByKey", "$isBlockNode", "newData", "setFields", "_components", "abortAndIgnore", "isCollapsed", "setIsCollapsed", "collapsed", "componentMapRenderedBlockPath", "blocksField", "clientBlock", "blockReferences", "blocksMap", "blocks", "i18n", "t", "useTranslation", "onChange", "useCallback", "prevFormState", "submit", "controller", "newFormState", "initialBlockFormState", "removeEmptyArrayValues", "setTimeout", "rowErrorCount", "formField", "values", "removeBlock", "remove", "blockDisplayName", "labels", "singular", "getTranslation", "onCollapsedChange", "changedCollapsed", "then", "currentDocPreferences", "collapsedArray", "name", "newCollapsed", "length", "includes", "push", "splice", "indexOf", "hello", "EditButton", "useMemo", "_jsx", "Button", "buttonStyle", "disabled", "el", "icon", "onClick", "e", "preventDefault", "stopPropagation", "onMouseDown", "round", "size", "tooltip", "label", "RemoveButton", "BlockCollapsible", "Actions", "children", "collapsibleProps", "disableBlockName", "editButton", "fieldHasErrors", "Label", "Pill", "CustomPill", "removeButton", "Collapsible", "filter", "Boolean", "join", "collapsibleStyle", "header", "_jsxs", "pillStyle", "admin", "SectionTitle", "path", "ErrorPill", "count", "withMessage", "_Fragment", "onToggle", "incomingCollapsedState", "blockID", "BlockDrawer", "EditDepthProvider", "Drawer", "title", "RenderFields", "forceRender", "parentIndexPath", "parentPath", "parentSchemaPath", "permissions", "FormSubmit", "programmaticSubmit", "Form", "beforeSubmit", "onSubmit", "BlockContent", "formSchema", "BlockNode", "ServerBlockNode", "clone", "node", "getType", "importJSON", "serializedNode", "version", "fields", "data", "$createBlockNode", "setFormat", "format", "decorate", "_editor", "config", "_jsx", "BlockComponent", "cacheBuster", "getCacheBuster", "className", "theme", "block", "formData", "getFields", "nodeKey", "getKey", "exportJSON", "$applyNodeReplacement", "id", "ObjectID", "default", "toHexString", "$isBlockNode", "createHeadlessEditor", "getLexicalToMarkdown", "allNodes", "allTransformers", "lexicalToMarkdown", "editorState", "headlessEditor", "createHeadlessEditor", "nodes", "setEditorState", "parseEditorState", "e", "console", "error", "markdown", "getEditorState", "read", "$convertToMarkdownString", "createHeadlessEditor", "getMarkdownToLexical", "allNodes", "allTransformers", "markdownToLexical", "markdown", "headlessEditor", "createHeadlessEditor", "nodes", "update", "$convertFromMarkdownString", "discrete", "getEditorState", "toJSON", "createTagRegexes", "tagName", "escapedTagName", "replace", "regExpEnd", "RegExp", "regExpStart", "getBlockMarkdownTransformers", "blocks", "inlineBlocks", "length", "transformers", "block", "transformer", "getMarkdownTransformerForBlock", "concat", "isInlineBlock", "jsx", "regex", "slug", "toReturn", "push", "allNodes", "allTransformers", "type", "dependencies", "InlineBlockNode", "export", "node", "$isInlineBlockNode", "getFields", "blockType", "toLowerCase", "nodeFields", "lexicalToMarkdown", "getLexicalToMarkdown", "exportResult", "fields", "hasProps", "props", "Object", "keys", "children", "propsToJSXString", "getEndIndex", "match", "endlineLastCharIndex", "linesFromStartToContentAndPropsString", "isEndOptional", "lines", "getTextContent", "regexpEndRegex", "startLineIndex", "startMatch", "trimChildren", "importRegExp", "customStartRegex", "regExp", "content", "propsString", "index", "import", "markdownToLexical", "getMarkdownToLexical", "blockFields", "closeMatch", "htmlToLexical", "openMatch", "extractPropsFromJSXPropsString", "inlineBlockNode", "$createInlineBlockNode", "BlockNode", "$isBlockNode", "sanitizedChildren", "includes", "child", "split", "sanitizedChild", "doNotTrimChildren", "handleImportAfterStartMatch", "customEndRegex", "undefined", "rootNode", "optional", "afterEndLine", "beforeStartLine", "unsanitizedContent", "endLineIndex", "endsWith", "slice", "startsWith", "$createBlockNode", "prevNodes", "nextNodes", "markdown", "root", "firstPrevNode", "append", "$parseSerializedNode", "lastChild", "getChildren", "linesInBetween", "line", "childrenString", "join", "trim", "createCommand", "INSERT_BLOCK_COMMAND", "INSERT_INLINE_BLOCK_COMMAND", "c", "_c", "useLexicalComposerContext", "$insertNodeToNearestRoot", "$wrapNodeInElement", "mergeRegister", "formatDrawerSlug", "useEditDepth", "$createParagraphNode", "$getNodeByKey", "$getPreviousSelection", "$getSelection", "$insertNodes", "$isParagraphNode", "$isRangeSelection", "$isRootOrShadowRoot", "COMMAND_PRIORITY_EDITOR", "useEffect", "useState", "BlocksPlugin", "$", "_c", "editor", "useLexicalComposerContext", "targetNodeKey", "setTargetNodeKey", "useState", "setCreatedInlineBlock", "uuid", "useEditorConfigContext", "editDepth", "useEditDepth", "t0", "t1", "formatDrawerSlug", "slug", "depth", "drawerSlug", "toggleDrawer", "useLexicalDrawer", "t2", "hasNodes", "BlockNode", "Error", "mergeRegister", "registerCommand", "INSERT_BLOCK_COMMAND", "payload", "update", "selection", "$getSelection", "$getPreviousSelection", "$isRangeSelection", "blockNode", "$createBlockNode", "focus", "focusNode", "getNode", "$insertNodeToNearestRoot", "$isParagraphNode", "__first", "remove", "COMMAND_PRIORITY_EDITOR", "INSERT_INLINE_BLOCK_COMMAND", "fields", "node", "$getNodeByKey", "$isInlineBlockNode", "setFields", "inlineBlockNode", "$createInlineBlockNode", "$insertNodes", "$isRootOrShadowRoot", "getParentOrThrow", "$wrapNodeInElement", "$createParagraphNode", "selectEnd", "t3", "useEffect", "BlocksFeatureClient", "createClientFeature", "config", "featureClientSchemaMap", "props", "schemaPath", "schemaMapRenderedBlockPathPrefix", "schemaMapRenderedInlineBlockPathPrefix", "clientSchema", "blocksFields", "Object", "entries", "filter", "key", "startsWith", "replace", "includes", "map", "value", "inlineBlocksFields", "clientBlocks", "field", "blockReferences", "blocksMap", "blocks", "block", "undefined", "clientInlineBlocks", "markdownTransformers", "getBlockMarkdownTransformers", "inlineBlocks", "nodes", "BlockNode", "InlineBlockNode", "plugins", "Component", "BlocksPlugin", "position", "sanitizedClientFeatureProps", "slashMenu", "groups", "length", "items", "Icon", "getBlockImageComponent", "imageURL", "imageAltText", "slug", "keywords", "label", "i18n", "labels", "singular", "getTranslation", "onSelect", "editor", "dispatchCommand", "INSERT_BLOCK_COMMAND", "blockName", "blockType", "t", "inlineBlock", "InlineBlocksIcon", "INSERT_INLINE_BLOCK_COMMAND", "Boolean", "toolbarFixed", "type", "ChildComponent", "BlockIcon", "index", "isActive", "order", "c", "_c", "useLexicalComposerContext", "$createParagraphNode", "$createTextNode", "$getRoot", "getDOMSelection", "React", "useCallback", "useEffect", "useLayoutEffect", "useRef", "useState", "documentMode", "CAN_USE_DOM", "document", "IS_APPLE", "test", "navigator", "platform", "IS_FIREFOX", "userAgent", "CAN_USE_BEFORE_INPUT", "window", "InputEvent", "IS_SAFARI", "IS_IOS", "MSStream", "IS_ANDROID", "IS_WINDOWS", "IS_CHROME", "IS_APPLE_WEBKIT", "copy", "text", "textArea", "document", "createElement", "value", "style", "position", "opacity", "body", "appendChild", "focus", "select", "result", "execCommand", "console", "log", "error", "removeChild", "download", "filename", "a", "setAttribute", "encodeURIComponent", "display", "click", "formatStep", "step", "formattedStep", "formatOneStep", "name", "x", "y", "anchorPath", "toString", "anchorOffset", "focusPath", "focusOffset", "count", "join", "isSelectAll", "event", "key", "toLowerCase", "IS_APPLE", "metaKey", "ctrlKey", "sanitizeSelection", "selection", "anchorNode", "focusNode", "getPathFromNodeToEditor", "node", "rootElement", "currentNode", "path", "unshift", "Array", "from", "parentNode", "childNodes", "indexOf", "keyPresses", "Set", "useTestRecorder", "editor", "steps", "setSteps", "useState", "isRecording", "setIsRecording", "setCurrentInnerHTML", "templatedTest", "setTemplatedTest", "previousSelectionRef", "useRef", "skipNextSelectionChangeRef", "preRef", "getCurrentEditor", "useCallback", "generateTestContent", "getRootElement", "browserSelection", "getDOMSelection", "_window", "contains", "map", "pushStep", "currentSteps", "currentIndex", "length", "lastStep", "slice", "useLayoutEffect", "onKeyDown", "has", "onKeyUp", "registerRootListener", "prevRootElement", "removeEventListener", "addEventListener", "current", "scrollTo", "scrollHeight", "useEffect", "testContent", "registerUpdateListener", "dirtyElements", "dirtyLeaves", "editorState", "currentSelection", "_selection", "previousSelection", "skipNextSelectionChange", "size", "innerHTML", "toggleEditorSelection", "currentEditor", "update", "root", "$getRoot", "clear", "$createTextNode", "append", "$createParagraphNode", "currentIsRecording", "onSnapshotClick", "onCopyClick", "onDownloadClick", "_jsx", "className", "id", "onClick", "e", "preventDefault", "title", "type", "_jsxs", "ref", "TestRecorderPlugin", "$", "_c", "useLexicalComposerContext", "testRecorderButton", "testRecorderOutput", "t0", "Fragment", "children", "TestRecorderFeatureClient", "createClientFeature", "plugins", "Component", "TestRecorderPlugin", "position", "c", "_c", "useLexicalComposerContext", "TreeView", "TreeViewPlugin", "$", "editor", "t0", "_jsx", "timeTravelButtonClassName", "timeTravelPanelButtonClassName", "timeTravelPanelClassName", "timeTravelPanelSliderClassName", "treeTypeButtonClassName", "viewClassName", "TreeViewFeatureClient", "createClientFeature", "plugins", "Component", "TreeViewPlugin", "position", "$isTableSelection", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "BoldIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "toolbarFormatGroupWithItems", "items", "type", "key", "order", "BOLD_ITALIC_STAR", "type", "format", "tag", "BOLD_ITALIC_UNDERSCORE", "intraword", "BOLD_STAR", "BOLD_UNDERSCORE", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "BoldIcon", "isActive", "selection", "$isRangeSelection", "$isTableSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "BoldFeatureClient", "createClientFeature", "featureProviderMap", "markdownTransformers", "BOLD_STAR", "BOLD_UNDERSCORE", "get", "push", "BOLD_ITALIC_UNDERSCORE", "BOLD_ITALIC_STAR", "enableFormats", "toolbarFixed", "groups", "toolbarInline", "$isTableSelection", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "CodeIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "INLINE_CODE", "type", "format", "tag", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "CodeIcon", "isActive", "selection", "$isRangeSelection", "$isTableSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "InlineCodeFeatureClient", "createClientFeature", "enableFormats", "markdownTransformers", "INLINE_CODE", "toolbarFixed", "groups", "toolbarInline", "$isTableSelection", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "ItalicIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "ITALIC_STAR", "type", "format", "tag", "ITALIC_UNDERSCORE", "intraword", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "ItalicIcon", "isActive", "selection", "$isRangeSelection", "$isTableSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "ItalicFeatureClient", "createClientFeature", "enableFormats", "markdownTransformers", "ITALIC_STAR", "ITALIC_UNDERSCORE", "toolbarFixed", "groups", "toolbarInline", "$isTableSelection", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "StrikethroughIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "STRIKETHROUGH", "type", "format", "tag", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "StrikethroughIcon", "isActive", "selection", "$isRangeSelection", "$isTableSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "StrikethroughFeatureClient", "createClientFeature", "enableFormats", "markdownTransformers", "STRIKETHROUGH", "toolbarFixed", "groups", "toolbarInline", "$isTableSelection", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "SubscriptIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "SubscriptIcon", "isActive", "selection", "$isRangeSelection", "$isTableSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "SubscriptFeatureClient", "createClientFeature", "enableFormats", "toolbarFixed", "groups", "toolbarInline", "$isTableSelection", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "SuperscriptIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "SuperscriptIcon", "isActive", "selection", "$isRangeSelection", "$isTableSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "SuperscriptFeatureClient", "createClientFeature", "enableFormats", "toolbarFixed", "groups", "toolbarInline", "$isTableSelection", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "UnderlineIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "UnderlineIcon", "isActive", "selection", "$isRangeSelection", "$isTableSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "UnderlineFeatureClient", "createClientFeature", "enableFormats", "toolbarFixed", "groups", "toolbarInline", "kebabToCamelCase", "str", "replace", "_", "letter", "toUpperCase", "TextStateIcon", "css", "convertedCss", "Object", "fromEntries", "entries", "map", "key", "value", "_jsx", "style", "alignItems", "borderRadius", "display", "fontSize", "height", "justifyContent", "width", "useLexicalComposerContext", "$forEachSelectedTextNode", "$getNodeByKey", "$getState", "$setState", "createState", "TextNode", "useEffect", "registerTextStates", "state", "stateMap", "Map", "stateKey", "stateValues", "stateConfig", "parse", "value", "Object", "keys", "includes", "undefined", "set", "setTextState", "editor", "update", "textNode", "stateMapEntry", "get", "Error", "StatePlugin", "registerMutationListener", "mutatedNodes", "getEditorState", "read", "nodeKey", "mutation", "node", "dom", "getElementByKey", "mergedStyles", "create", "forEach", "stateEntry", "stateValue", "dataset", "css", "assign", "style", "cssText", "toolbarGroups", "props", "stateMap", "items", "stateKey", "state", "key", "stateValue", "meta", "push", "ChildComponent", "_jsx", "TextStateIcon", "css", "label", "onSelect", "editor", "setTextState", "type", "color", "i18n", "t", "undefined", "order", "TextStateFeatureClient", "createClientFeature", "registerTextStates", "plugins", "Component", "StatePlugin", "position", "toolbarFixed", "groups", "toolbarInline", "c", "_c", "useLexicalComposerContext", "$createHeadingNode", "$isHeadingNode", "HeadingNode", "$setBlocksType", "$getSelection", "$isRangeSelection", "useEffect", "H1Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "H2Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "H3Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "H4Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "H5Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "H6Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "$createHeadingNode", "$isHeadingNode", "HeadingNode", "createBlockNode", "createNode", "parentNode", "children", "match", "node", "append", "replace", "select", "MarkdownTransformer", "enabledHeadingSizes", "pattern", "map", "tag", "Number", "slice", "size", "join", "regExp", "RegExp", "type", "dependencies", "HeadingNode", "export", "node", "exportChildren", "$isHeadingNode", "level", "getTag", "repeat", "replace", "createBlockNode", "match", "length", "$createHeadingNode", "$setHeading", "headingSize", "selection", "$getSelection", "$setBlocksType", "$createHeadingNode", "iconImports", "h1", "H1Icon", "h2", "H2Icon", "h3", "H3Icon", "h4", "H4Icon", "h5", "H5Icon", "h6", "H6Icon", "HeadingFeatureClient", "createClientFeature", "props", "enabledHeadingSizes", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "map", "i", "ChildComponent", "isActive", "$isRangeSelection", "node", "getNodes", "$isHeadingNode", "getTag", "parent", "getParent", "key", "label", "i18n", "t", "headingLevel", "charAt", "onSelect", "editor", "update", "order", "markdownTransformers", "MarkdownTransformer", "nodes", "HeadingNode", "plugins", "Component", "HeadingPlugin", "position", "sanitizedClientFeatureProps", "slashMenu", "groups", "length", "slashMenuBasicGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "t0", "$", "_c", "clientProps", "t1", "t2", "undefined", "t3", "at", "lowestAllowed", "useLexicalComposerContext", "t4", "t5", "registerNodeTransform", "includes", "setTag", "useEffect", "$isNodeSelection", "HorizontalRuleIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "x", "y", "AddIcon", "_jsxs", "fill", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "toolbarAddDropdownGroupWithItems", "items", "type", "ChildComponent", "AddIcon", "key", "order", "addClassNamesToElement", "$applyNodeReplacement", "createCommand", "DecoratorNode", "INSERT_HORIZONTAL_RULE_COMMAND", "HorizontalRuleServerNode", "clone", "node", "__key", "getType", "importDOM", "hr", "conversion", "$convertHorizontalRuleElement", "priority", "importJSON", "serializedNode", "$createHorizontalRuleServerNode", "createDOM", "config", "element", "document", "createElement", "theme", "decorate", "exportDOM", "exportJSON", "type", "version", "getTextContent", "isInline", "updateDOM", "$applyNodeReplacement", "HorizontalRuleNode", "HorizontalRuleServerNode", "clone", "node", "getType", "importJSON", "serializedNode", "$createHorizontalRuleNode", "decorate", "exportJSON", "$createHorizontalRuleNode", "$applyNodeReplacement", "HorizontalRuleNode", "$isHorizontalRuleNode", "node", "MarkdownTransformer", "type", "dependencies", "HorizontalRuleNode", "export", "node", "exportChildren", "$isHorizontalRuleNode", "regExp", "replace", "parentNode", "$createHorizontalRuleNode", "c", "_c", "useLexicalComposerContext", "$insertNodeToNearestRoot", "$getSelection", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "useEffect", "HorizontalRulePlugin", "$", "_c", "editor", "useLexicalComposerContext", "t0", "t1", "registerCommand", "INSERT_HORIZONTAL_RULE_COMMAND", "_temp", "COMMAND_PRIORITY_EDITOR", "useEffect", "type", "selection", "$getSelection", "$isRangeSelection", "focus", "getNode", "horizontalRuleNode", "$createHorizontalRuleNode", "$insertNodeToNearestRoot", "HorizontalRuleFeatureClient", "createClientFeature", "markdownTransformers", "MarkdownTransformer", "nodes", "HorizontalRuleNode", "plugins", "Component", "HorizontalRulePlugin", "position", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "HorizontalRuleIcon", "key", "keywords", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_HORIZONTAL_RULE_COMMAND", "undefined", "toolbarFixed", "toolbarAddDropdownGroupWithItems", "ChildComponent", "isActive", "selection", "$isNodeSelection", "getNodes", "length", "firstNode", "$isHorizontalRuleNode", "$findMatchingParent", "$isElementNode", "INDENT_CONTENT_COMMAND", "OUTDENT_CONTENT_COMMAND", "IndentDecreaseIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "IndentIncreaseIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "useLexicalComposerContext", "TabIndentationPlugin", "$findMatchingParent", "mergeRegister", "$getSelection", "$isElementNode", "$isRangeSelection", "COMMAND_PRIORITY_LOW", "INDENT_CONTENT_COMMAND", "KEY_TAB_COMMAND", "OUTDENT_CONTENT_COMMAND", "TabNode", "useEffect", "IndentPlugin", "clientProps", "editor", "disabledNodes", "disableTabNode", "length", "registerCommand", "$handleIndentAndOutdent", "block", "includes", "getType", "indent", "getIndent", "setIndent", "registerUpdateListener", "dirtyElements", "editorState", "update", "nodeKey", "node", "_nodeMap", "get", "event", "preventDefault", "dispatchCommand", "shiftKey", "undefined", "registerNodeTransform", "remove", "_jsx", "indentOrOutdent", "selection", "alreadyHandled", "Set", "nodes", "getNodes", "i", "key", "getKey", "has", "parentBlock", "parentNode", "isInline", "parentKey", "canIndent", "add", "size", "toolbarIndentGroupWithItems", "items", "type", "key", "order", "toolbarGroups", "disabledNodes", "toolbarIndentGroupWithItems", "ChildComponent", "IndentDecreaseIcon", "isActive", "isEnabled", "selection", "nodes", "getNodes", "isOutdentable", "node", "isIndentable", "getIndent", "some", "Boolean", "$findMatchingParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "OUTDENT_CONTENT_COMMAND", "undefined", "order", "IndentIncreaseIcon", "isIndentableAndNotDisabled", "includes", "getType", "INDENT_CONTENT_COMMAND", "IndentFeatureClient", "createClientFeature", "props", "plugins", "Component", "IndentPlugin", "position", "sanitizedClientFeatureProps", "toolbarFixed", "groups", "toolbarInline", "$isElementNode", "canIndent", "$findMatchingParent", "$getSelection", "$isRangeSelection", "LinkIcon", "_jsx", "className", "fill", "height", "viewBox", "width", "xmlns", "d", "stroke", "strokeLinecap", "strokeLinejoin", "$isAtNodeEnd", "getSelectedNode", "selection", "anchor", "focus", "anchorNode", "getNode", "focusNode", "isBackward", "toolbarFeatureButtonsGroupWithItems", "items", "type", "key", "order", "$createTextNode", "addClassNamesToElement", "isHTMLAnchorElement", "ObjectID", "$applyNodeReplacement", "$createTextNode", "$getSelection", "$isElementNode", "$isRangeSelection", "createCommand", "ElementNode", "SUPPORTED_URL_PROTOCOLS", "Set", "LinkNode", "__fields", "__id", "constructor", "id", "fields", "linkType", "newTab", "key", "clone", "node", "__key", "getType", "importDOM", "a", "conversion", "$convertAnchorElement", "priority", "importJSON", "serializedNode", "$createLinkNode", "updateFromJSON", "version", "doc", "value", "default", "toHexString", "canBeEmpty", "canInsertTextAfter", "canInsertTextBefore", "createDOM", "config", "element", "document", "createElement", "href", "sanitizeUrl", "url", "target", "rel", "manageRel", "theme", "link", "exportJSON", "getFields", "returnObject", "type", "getID", "extractWithChild", "child", "selection", "destination", "anchorNode", "anchor", "getNode", "focusNode", "focus", "isParentOf", "getTextContent", "length", "getLatest", "insertNewAfter", "restoreSelection", "getParentOrThrow", "linkNode", "append", "isInline", "parsedUrl", "URL", "has", "protocol", "setFields", "writable", "getWritable", "setID", "updateDOM", "prevNode", "removeAttribute", "domNode", "content", "textContent", "getAttribute", "$isLinkNode", "TOGGLE_LINK_COMMAND", "$toggleLink", "payload", "selectedNodes", "nodes", "extract", "forEach", "parent", "getParent", "getChildren", "insertBefore", "remove", "firstNode", "$getLinkAncestor", "text", "getLastChild", "prevParent", "is", "getPreviousSibling", "insertAfter", "children", "$getAncestor", "ancestor", "predicate", "input", "action", "result", "mutableInput", "includes", "re", "RegExp", "replace", "trim", "LinkMarkdownTransformer", "type", "dependencies", "LinkNode", "export", "_node", "exportChildren", "$isLinkNode", "node", "url", "getFields", "importRegExp", "regExp", "replace", "textNode", "match", "linkText", "linkUrl", "linkNode", "$createLinkNode", "fields", "doc", "linkType", "newTab", "linkTextNode", "$createTextNode", "setFormat", "getFormat", "append", "trigger", "$applyNodeReplacement", "$isElementNode", "AutoLinkNode", "LinkNode", "clone", "node", "id", "fields", "__fields", "key", "__key", "getType", "importDOM", "importJSON", "serializedNode", "$createAutoLinkNode", "updateFromJSON", "version", "doc", "value", "exportJSON", "serialized", "type", "children", "direction", "format", "indent", "insertNewAfter", "selection", "restoreSelection", "element", "getParentOrThrow", "$isElementNode", "linkNode", "append", "setFields", "$applyNodeReplacement", "$isAutoLinkNode", "c", "_c", "useLexicalComposerContext", "mergeRegister", "$createTextNode", "$getSelection", "$isElementNode", "$isLineBreakNode", "$isNodeSelection", "$isRangeSelection", "$isTextNode", "TextNode", "TextNodeValue", "useEffect", "createLinkMatcherWithRegExp", "regExp", "urlTransformer", "text", "match", "exec", "index", "length", "url", "findFirstMatch", "matchers", "matcher", "PUNCTUATION_OR_SPACE", "isSeparator", "char", "undefined", "test", "endsWithSeparator", "textContent", "startsWithSeparator", "startsWithTLD", "isEmail", "isPreviousNodeValid", "node", "previousNode", "getPreviousSibling", "$isElementNode", "getLastDescendant", "$isLineBreakNode", "$isTextNode", "getTextContent", "isNextNodeValid", "nextNode", "getNextSibling", "getFirstDescendant", "isContentAroundIsValid", "matchStart", "matchEnd", "nodes", "extractMatchingNodes", "startIndex", "endIndex", "unmodifiedBeforeNodes", "matchingNodes", "unmodifiedAfterNodes", "matchingOffset", "currentOffset", "currentNodes", "currentNode", "currentNodeLength", "currentNodeStart", "push", "shift", "$createAutoLinkNode_", "fields", "linkType", "linkNode", "$createAutoLinkNode", "remainingTextNode", "linkTextNode", "splitText", "textNode", "$createTextNode", "setFormat", "getFormat", "setDetail", "getDetail", "setStyle", "getStyle", "append", "replace", "firstTextNode", "offset", "firstLinkTextNode", "linkNodes", "forEach", "currentNodeEnd", "endNode", "selection", "$getSelection", "selectedTextNode", "getNodes", "find", "$isRangeSelection", "select", "anchor", "focus", "$isNodeSelection", "$handleLinkCreation", "onChange", "initialText", "map", "join", "invalidMatchEnd", "matchLength", "actualMatchStart", "actualMatchEnd", "substring", "handleLinkEdit", "children", "getChildren", "childrenLength", "i", "child", "isSimpleText", "replaceWithChildren", "getFields", "flds", "setFields", "handleBadNeighbors", "previousSibling", "nextSibling", "$isAutoLinkNode", "isEmailURI", "startsWith", "j", "insertAfter", "remove", "getLatest", "getTextNodesToMatch", "textNodesToMatch", "useAutoLink", "editor", "$", "_c", "t0", "t1", "hasNodes", "AutoLinkNode", "Error", "onChangeWrapped", "prevUrl", "mergeRegister", "registerNodeTransform", "TextNodeValue", "parent", "getParentOrThrow", "previous", "$isLinkNode", "useEffect", "URL_REGEX", "EMAIL_REGEX", "MATCHERS", "AutoLinkPlugin", "useLexicalComposerContext", "ClickableLinkPlugin", "LexicalClickableLinkPlugin", "_jsx", "createPortal", "useLexicalComposerContext", "useLexicalEditable", "$findMatchingParent", "mergeRegister", "getTranslation", "CloseMenuIcon", "EditIcon", "ExternalLinkIcon", "formatDrawerSlug", "useConfig", "useEditDepth", "useLocale", "useTranslation", "requests", "$getSelection", "$isLineBreakNode", "$isRangeSelection", "COMMAND_PRIORITY_HIGH", "COMMAND_PRIORITY_LOW", "getDOMSelection", "KEY_ESCAPE_COMMAND", "SELECTION_CHANGE_COMMAND", "formatAdminURL", "React", "useCallback", "useEffect", "useRef", "useState", "setFloatingElemPositionForLinkEditor", "targetRect", "floatingElem", "anchorElem", "verticalGap", "VERTICAL_GAP", "horizontalOffset", "HORIZONTAL_OFFSET", "scrollerElem", "parentElement", "style", "opacity", "transform", "floatingElemRect", "getBoundingClientRect", "anchorElementRect", "editorScrollerRect", "top", "left", "height", "width", "right", "createCommand", "TOGGLE_LINK_WITH_MODAL_COMMAND", "preventDefault", "event", "LinkEditor", "anchorElem", "editor", "useLexicalComposerContext", "linkNode", "setLinkNode", "useState", "editorRef", "useRef", "linkUrl", "setLinkUrl", "linkLabel", "setLinkLabel", "fieldProps", "schemaPath", "uuid", "useEditorConfigContext", "isEditable", "useLexicalEditable", "config", "getEntityConfig", "useConfig", "i18n", "t", "useTranslation", "stateData", "setStateData", "editDepth", "useEditDepth", "isLink", "setIsLink", "selectedNodes", "setSelectedNodes", "locale", "useLocale", "isAutoLink", "setIsAutoLink", "drawerSlug", "formatDrawerSlug", "slug", "depth", "toggleDrawer", "useLexicalDrawer", "setNotLink", "useCallback", "current", "style", "opacity", "transform", "undefined", "$updateLinkEditor", "selection", "$getSelection", "selectedNodeDomRect", "$isRangeSelection", "focusNode", "getSelectedNode", "getElementByKey", "getKey", "getBoundingClientRect", "focusLinkParent", "$findMatchingParent", "$isLinkNode", "badNode", "getNodes", "filter", "node", "$isLineBreakNode", "find", "is", "fields", "getFields", "data", "id", "getID", "text", "getTextContent", "linkType", "url", "routes", "admin", "doc", "relationTo", "value", "relatedField", "collectionSlug", "label", "String", "collection", "Error", "loadingLabel", "getTranslation", "labels", "singular", "replace", "requests", "get", "formatAdminURL", "apiRoute", "api", "path", "serverURL", "headers", "language", "params", "code", "then", "res", "ok", "status", "json", "useAsTitle", "title", "catch", "$isAutoLinkNode", "editorElem", "nativeSelection", "getDOMSelection", "_window", "activeElement", "document", "rootElement", "getRootElement", "contains", "anchorNode", "getRangeAt", "y", "setFloatingElemPositionForLinkEditor", "className", "useEffect", "mergeRegister", "registerCommand", "TOGGLE_LINK_WITH_MODAL_COMMAND", "payload", "dispatchCommand", "TOGGLE_LINK_COMMAND", "COMMAND_PRIORITY_LOW", "scrollerElem", "parentElement", "update", "getEditorState", "read", "window", "addEventListener", "removeEventListener", "registerUpdateListener", "editorState", "SELECTION_CHANGE_COMMAND", "KEY_ESCAPE_COMMAND", "COMMAND_PRIORITY_HIGH", "_jsxs", "React", "Fragment", "_jsx", "ref", "length", "href", "rel", "target", "__fields", "newTab", "ExternalLinkIcon", "_Fragment", "onClick", "onMouseDown", "tabIndex", "type", "EditIcon", "CloseMenuIcon", "FieldsDrawer", "drawerTitle", "featureKey", "handleDrawerSubmit", "newLinkPayload", "bareLinkFields", "linkParent", "getParent", "$createLinkNode", "schemaPathSuffix", "FloatingLinkEditorPlugin", "props", "anchorElem", "document", "body", "createPortal", "_jsx", "LinkEditor", "c", "_c", "useLexicalComposerContext", "mergeRegister", "$getSelection", "$isElementNode", "$isRangeSelection", "COMMAND_PRIORITY_LOW", "PASTE_COMMAND", "useEffect", "absoluteRegExp", "relativeOrAnchorRegExp", "validateUrl", "url", "includes", "test", "absoluteRegExp", "relativeOrAnchorRegExp", "urlObj", "URL", "protocol", "hostname", "LinkPlugin", "t0", "$", "_c", "clientProps", "editor", "useLexicalComposerContext", "t1", "t2", "defaultLinkType", "defaultLinkURL", "hasNodes", "LinkNode", "Error", "mergeRegister", "registerCommand", "TOGGLE_LINK_COMMAND", "payload", "$toggleLink", "fields", "linkType", "url", "COMMAND_PRIORITY_LOW", "PASTE_COMMAND", "event", "selection", "$getSelection", "$isRangeSelection", "isCollapsed", "ClipboardEvent", "clipboardData", "clipboardText", "getData", "validateUrl", "getNodes", "some", "_temp", "linkFields", "doc", "newTab", "dispatchCommand", "text", "preventDefault", "useEffect", "node", "$isElementNode", "toolbarGroups", "toolbarFeatureButtonsGroupWithItems", "ChildComponent", "LinkIcon", "isActive", "selection", "$isRangeSelection", "selectedNode", "getSelectedNode", "$findMatchingParent", "$isLinkNode", "isEnabled", "$getSelection", "getTextContent", "length", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "TOGGLE_LINK_COMMAND", "selectedText", "selectedNodes", "getEditorState", "read", "getNodes", "linkFields", "doc", "TOGGLE_LINK_WITH_MODAL_COMMAND", "fields", "text", "order", "LinkFeatureClient", "createClientFeature", "props", "markdownTransformers", "LinkMarkdownTransformer", "nodes", "LinkNode", "disableAutoLinks", "AutoLinkNode", "filter", "Boolean", "plugins", "Component", "LinkPlugin", "position", "AutoLinkPlugin", "ClickableLinkPlugin", "FloatingLinkEditorPlugin", "sanitizedClientFeatureProps", "toolbarFixed", "groups", "toolbarInline", "$isListNode", "INSERT_CHECK_LIST_COMMAND", "ListItemNode", "ListNode", "$isRangeSelection", "ChecklistIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "rx", "stroke", "x", "y", "d", "strokeWidth", "ListPlugin", "LexicalListPlugin", "_jsx", "shouldRegisterListBaseNodes", "type", "featureProviderMap", "has", "slashMenuListGroupWithItems", "items", "key", "label", "i18n", "t", "$isListNode", "ListItemNode", "ListNode", "$createListItemNode", "$createListNode", "$isListItemNode", "$isListNode", "LIST_INDENT_SIZE", "listReplace", "listType", "parentNode", "children", "match", "previousNode", "getPreviousSibling", "nextNode", "getNextSibling", "listItem", "undefined", "getListType", "firstChild", "getFirstChild", "insertBefore", "append", "remove", "list", "Number", "replace", "select", "indent", "Math", "floor", "length", "setIndent", "listExport", "listNode", "exportChildren", "depth", "output", "getChildren", "index", "listItemNode", "getChildrenSize", "push", "repeat", "prefix", "getStart", "getChecked", "join", "CHECK_LIST", "type", "dependencies", "ListNode", "ListItemNode", "export", "node", "exportChildren", "$isListNode", "listExport", "regExp", "replace", "listReplace", "CheckListPlugin", "LexicalCheckListPlugin", "_jsx", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "ChildComponent", "ChecklistIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isListNode", "getListType", "parent", "getParent", "parentParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_CHECK_LIST_COMMAND", "undefined", "order", "ChecklistFeatureClient", "createClientFeature", "featureProviderMap", "plugins", "Component", "LexicalCheckListPlugin", "position", "shouldRegister", "shouldRegisterListBaseNodes", "push", "LexicalListPlugin", "markdownTransformers", "CHECK_LIST", "nodes", "ListNode", "ListItemNode", "slashMenu", "groups", "slashMenuListGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "$isListNode", "INSERT_ORDERED_LIST_COMMAND", "ListItemNode", "ListNode", "$isRangeSelection", "OrderedListIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "$isListNode", "ListItemNode", "ListNode", "ORDERED_LIST", "type", "dependencies", "ListNode", "ListItemNode", "export", "node", "exportChildren", "$isListNode", "listExport", "regExp", "replace", "listReplace", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "ChildComponent", "OrderedListIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isListNode", "getListType", "parent", "getParent", "parentParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_ORDERED_LIST_COMMAND", "undefined", "order", "OrderedListFeatureClient", "createClientFeature", "featureProviderMap", "shouldRegister", "shouldRegisterListBaseNodes", "markdownTransformers", "ORDERED_LIST", "nodes", "ListNode", "ListItemNode", "plugins", "Component", "LexicalListPlugin", "position", "slashMenu", "groups", "slashMenuListGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "$isListNode", "INSERT_UNORDERED_LIST_COMMAND", "ListItemNode", "ListNode", "$isRangeSelection", "UnorderedListIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "cx", "cy", "r", "stroke", "strokeWidth", "d", "$isListNode", "ListItemNode", "ListNode", "UNORDERED_LIST", "type", "dependencies", "ListNode", "ListItemNode", "export", "node", "exportChildren", "$isListNode", "listExport", "regExp", "replace", "listReplace", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "ChildComponent", "UnorderedListIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isListNode", "getListType", "parent", "getParent", "parentParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_UNORDERED_LIST_COMMAND", "undefined", "order", "UnorderedListFeatureClient", "createClientFeature", "markdownTransformers", "UNORDERED_LIST", "nodes", "ListNode", "ListItemNode", "plugins", "Component", "LexicalListPlugin", "position", "slashMenu", "groups", "slashMenuListGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "addClassNamesToElement", "$applyNodeReplacement", "DecoratorNode", "React", "Component", "lazy", "then", "module", "default", "UnknownConvertedNodeComponent", "UnknownConvertedNode", "__data", "constructor", "data", "key", "clone", "node", "__key", "getType", "importJSON", "serializedNode", "$createUnknownConvertedNode", "canInsertTextAfter", "canInsertTextBefore", "createDOM", "config", "element", "document", "createElement", "decorate", "_jsx", "exportJSON", "type", "version", "isInline", "updateDOM", "prevNode", "dom", "LexicalPluginToLexicalFeatureClient", "createClientFeature", "nodes", "UnknownConvertedNode", "addClassNamesToElement", "$applyNodeReplacement", "DecoratorNode", "React", "Component", "lazy", "then", "module", "default", "UnknownConvertedNodeComponent", "UnknownConvertedNode", "__data", "constructor", "data", "key", "clone", "node", "__key", "getType", "importJSON", "serializedNode", "$createUnknownConvertedNode", "canInsertTextAfter", "canInsertTextBefore", "createDOM", "config", "element", "document", "createElement", "decorate", "_jsx", "exportJSON", "type", "version", "isInline", "updateDOM", "prevNode", "dom", "SlateToLexicalFeatureClient", "createClientFeature", "nodes", "UnknownConvertedNode", "$setBlocksType", "$createParagraphNode", "$getSelection", "$isParagraphNode", "$isRangeSelection", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "ChildComponent", "TextIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isParagraphNode", "getParent", "key", "label", "i18n", "t", "onSelect", "editor", "update", "$getSelection", "$setBlocksType", "$createParagraphNode", "order", "ParagraphFeatureClient", "createClientFeature", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "c", "_c", "useLexicalComposerContext", "useEffect", "useState", "BlockquoteJSXConverter", "quote", "node", "nodesToJSX", "children", "nodes", "_jsx", "HeadingJSXConverter", "heading", "node", "nodesToJSX", "children", "nodes", "NodeTag", "tag", "_jsx", "HorizontalRuleJSXConverter", "horizontalrule", "_jsx", "LinebreakJSXConverter", "linebreak", "_jsx", "LinkJSXConverter", "internalDocToHref", "autolink", "node", "nodesToJSX", "children", "nodes", "rel", "fields", "newTab", "undefined", "target", "_jsx", "href", "url", "link", "linkType", "linkNode", "console", "error", "v4", "uuidv4", "ListJSXConverter", "list", "node", "nodesToJSX", "children", "nodes", "NodeTag", "tag", "_jsx", "className", "listType", "listitem", "parent", "hasSubLists", "some", "child", "type", "uuid", "checked", "role", "style", "listStyleType", "tabIndex", "value", "_jsxs", "_Fragment", "id", "readOnly", "htmlFor", "undefined", "ParagraphJSXConverter", "paragraph", "node", "nodesToJSX", "children", "nodes", "length", "_jsx", "TabJSXConverter", "tab", "TableJSXConverter", "table", "node", "nodesToJSX", "children", "nodes", "_jsx", "className", "style", "borderCollapse", "tablecell", "TagName", "headerState", "headerStateClass", "backgroundColor", "undefined", "border", "padding", "colSpan", "rowSpan", "tablerow", "NodeFormat", "DOM_ELEMENT_TYPE", "DOM_TEXT_TYPE", "NO_DIRTY_NODES", "HAS_DIRTY_NODES", "FULL_RECONCILE", "IS_NORMAL", "IS_TOKEN", "IS_SEGMENTED", "IS_INERT", "IS_BOLD", "IS_ITALIC", "IS_STRIKETHROUGH", "IS_UNDERLINE", "IS_CODE", "IS_SUBSCRIPT", "IS_SUPERSCRIPT", "IS_HIGHLIGHT", "IS_DIRECTIONLESS", "IS_UNMERGEABLE", "IS_ALIGN_LEFT", "IS_ALIGN_CENTER", "IS_ALIGN_RIGHT", "IS_ALIGN_JUSTIFY", "IS_ALIGN_START", "IS_ALIGN_END", "IS_ALL_FORMATTING", "NON_BREAKING_SPACE", "DOUBLE_LINE_BREAK", "RTL", "LTR", "RTL_REGEX", "RegExp", "LTR_REGEX", "TEXT_TYPE_TO_FORMAT", "bold", "code", "highlight", "italic", "strikethrough", "subscript", "superscript", "underline", "DETAIL_TYPE_TO_DETAIL", "directionless", "unmergeable", "ELEMENT_TYPE_TO_FORMAT", "center", "end", "justify", "left", "right", "start", "ELEMENT_FORMAT_TO_TYPE", "TEXT_MODE_TO_TYPE", "normal", "segmented", "token", "TEXT_TYPE_TO_MODE", "TextJSXConverter", "text", "node", "format", "NodeFormat", "IS_BOLD", "_jsx", "IS_ITALIC", "IS_STRIKETHROUGH", "style", "textDecoration", "IS_UNDERLINE", "IS_CODE", "IS_SUBSCRIPT", "IS_SUPERSCRIPT", "UploadJSXConverter", "upload", "node", "uploadNode", "value", "uploadDoc", "alt", "fields", "url", "mimeType", "startsWith", "_jsx", "href", "rel", "filename", "sizes", "Object", "keys", "length", "height", "src", "width", "pictureJSX", "size", "imageSize", "filesize", "imageSizeURL", "push", "media", "srcSet", "type", "defaultJSXConverters", "ParagraphJSXConverter", "TextJSXConverter", "LinebreakJSXConverter", "BlockquoteJSXConverter", "TableJSXConverter", "HeadingJSXConverter", "HorizontalRuleJSXConverter", "ListJSXConverter", "LinkJSXConverter", "UploadJSXConverter", "TabJSXConverter", "jsx", "_jsx", "Fragment", "_Fragment", "React", "hasText", "value", "hasChildren", "root", "children", "length", "hasOnlyEmptyParagraph", "type", "paragraphNode", "paragraphNodeChild", "convertLexicalToJSX", "converters", "data", "disableIndent", "disableTextAlign", "hasText", "convertLexicalNodesToJSX", "nodes", "root", "children", "parent", "_jsx", "_Fragment", "unknownConverter", "unknown", "map", "node", "i", "converterForNode", "type", "blocks", "fields", "blockType", "console", "error", "inlineBlocks", "reactNode", "childIndex", "nodesToJSX", "args", "style", "Array", "isArray", "includes", "format", "textAlign", "indent", "paddingInlineStart", "Number", "React", "isValidElement", "newStyle", "props", "cloneElement", "key", "filter", "Boolean", "RichText", "className", "converters", "data", "editorState", "disableContainer", "disableIndent", "disableTextAlign", "finalConverters", "defaultConverters", "defaultJSXConverters", "content", "Array", "isArray", "convertLexicalToJSX", "_jsx", "_Fragment", "RichTextPlugin", "$", "_c", "editor", "useLexicalComposerContext", "t0", "getEditorState", "toJSON", "editorState", "setEditorState", "useState", "t1", "t2", "registerUpdateListener", "t3", "editorState_0", "useEffect", "_jsx", "className", "children", "RichText", "converters", "defaultJSXConverters", "data", "DebugJsxConverterFeatureClient", "createClientFeature", "plugins", "Component", "RichTextPlugin", "position", "tailwindColors", "amber", "black", "blue", "current", "cyan", "emerald", "fuchsia", "gray", "green", "indigo", "inherit", "lime", "neutral", "orange", "pink", "purple", "red", "rose", "sky", "slate", "stone", "teal", "transparent", "violet", "white", "yellow", "zinc", "defaultColors", "text", "css", "label", "background", "$isNodeSelection", "RelationshipIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "clipPath", "d", "stroke", "strokeLinecap", "strokeLinejoin", "id", "transform", "$applyNodeReplacement", "React", "DecoratorBlockNode", "addClassNamesToElement", "$applyNodeReplacement", "$relationshipElementToServerNode", "domNode", "id", "getAttribute", "relationTo", "node", "$createServerRelationshipNode", "value", "RelationshipServerNode", "__data", "constructor", "data", "format", "key", "clone", "__format", "__key", "getType", "importDOM", "div", "hasAttribute", "conversion", "priority", "importJSON", "serializedNode", "version", "importedData", "setFormat", "isInline", "createDOM", "config", "element", "document", "createElement", "theme", "relationship", "decorate", "_editor", "_config", "exportDOM", "setAttribute", "String", "text", "createTextNode", "getTextContent", "append", "exportJSON", "getData", "type", "getLatest", "setData", "writable", "getWritable", "RelationshipComponent", "lazy", "then", "module", "default", "$relationshipElementToNode", "domNode", "id", "getAttribute", "relationTo", "node", "$createRelationshipNode", "value", "RelationshipNode", "RelationshipServerNode", "clone", "getType", "importDOM", "div", "hasAttribute", "conversion", "priority", "importJSON", "serializedNode", "version", "importedData", "setFormat", "format", "decorate", "editor", "config", "_jsx", "className", "theme", "relationship", "data", "__data", "__format", "nodeKey", "getKey", "exportJSON", "$applyNodeReplacement", "$isRelationshipNode", "c", "_c", "useLexicalComposerContext", "$insertNodeToNearestRoot", "$getPreviousSelection", "$getSelection", "$isParagraphNode", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "createCommand", "useEffect", "c", "_c", "useLexicalComposerContext", "toast", "$getNodeByKey", "COMMAND_PRIORITY_EDITOR", "useEffect", "useState", "c", "_c", "useLexicalComposerContext", "useListDrawer", "useModal", "$getNodeByKey", "$getPreviousSelection", "$getRoot", "$getSelection", "$isRangeSelection", "$setSelection", "useEffect", "useState", "useLexicalListDrawer", "args", "$", "editor", "selectionState", "setSelectionState", "wasOpen", "setWasOpen", "BaseListDrawer", "BaseListDrawerToggler", "t0", "closeDrawer", "baseCloseDrawer", "drawerSlug", "listDrawerSlug", "isDrawerOpen", "openDrawer", "baseOpenDrawer", "modalState", "t1", "Symbol", "for", "selection", "$storeSelection", "t2", "update", "anchor", "focus", "key", "clone", "selectEnd", "discrete", "skipTransforms", "restoreSelection", "t3", "closeListDrawer", "t4", "t5", "thisModalState", "isOpen", "setTimeout", "t6", "props", "_jsx", "onClick", "t7", "t8", "isListDrawerOpen", "ListDrawer", "ListDrawerToggler", "insertRelationship", "editor", "relationTo", "replaceNodeKey", "value", "update", "node", "$getNodeByKey", "replace", "$createRelationshipNode", "dispatchCommand", "INSERT_RELATIONSHIP_COMMAND", "RelationshipDrawerComponent", "t0", "$", "_c", "enabledCollectionSlugs", "useLexicalComposerContext", "setReplaceNodeKey", "useState", "t1", "t2", "collectionSlugs", "selectedCollection", "closeListDrawer", "ListDrawer", "openListDrawer", "useLexicalListDrawer", "t3", "t4", "registerCommand", "INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND", "payload", "nodeKey", "COMMAND_PRIORITY_EDITOR", "useEffect", "t5", "t6", "collectionSlug", "doc", "id", "onSelect", "_jsx", "RelationshipDrawerComponentFallback", "_temp", "RelationshipDrawer", "length", "toast", "error", "useConfig", "useEntityVisibility", "React", "useEnabledRelationships", "options", "collectionSlugsBlacklist", "collectionSlugsWhitelist", "uploads", "config", "collections", "visibleEntities", "useMemo", "enabledCollectionSlugs", "enabledCollections", "whitelistSet", "Set", "blacklistSet", "collection", "slug", "admin", "enableRichTextRelationship", "upload", "includes", "has", "push", "INSERT_RELATIONSHIP_COMMAND", "createCommand", "RelationshipPlugin", "t0", "$", "_c", "clientProps", "editor", "useLexicalComposerContext", "t1", "disabledCollections", "t2", "enabledCollections", "t3", "collectionSlugsBlacklist", "collectionSlugsWhitelist", "enabledCollectionSlugs", "useEnabledRelationships", "t4", "t5", "hasNodes", "RelationshipNode", "Error", "registerCommand", "_temp", "COMMAND_PRIORITY_EDITOR", "useEffect", "t6", "_jsx", "RelationshipDrawer", "payload", "selection", "$getSelection", "$getPreviousSelection", "$isRangeSelection", "relationshipNode", "$createRelationshipNode", "focus", "focusNode", "getNode", "$insertNodeToNearestRoot", "$isParagraphNode", "__first", "remove", "RelationshipFeatureClient", "createClientFeature", "nodes", "RelationshipNode", "plugins", "Component", "RelationshipPlugin", "position", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "RelationshipIcon", "key", "keywords", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND", "replace", "toolbarFixed", "toolbarAddDropdownGroupWithItems", "ChildComponent", "isActive", "selection", "$isNodeSelection", "getNodes", "length", "firstNode", "$isRelationshipNode", "c", "_c", "useLexicalComposerContext", "useLexicalEditable", "useScrollInfo", "useThrottledEffect", "useTranslation", "React", "useMemo", "c", "_c", "mergeRegister", "$addUpdateTag", "$getSelection", "useDeferredValue", "useEffect", "useState", "baseClass", "ToolbarButton", "t0", "$", "_c", "children", "editor", "item", "t1", "Symbol", "for", "active", "enabled", "_state", "setState", "useState", "deferredState", "useDeferredValue", "editorConfigContext", "useEditorConfigContext", "t2", "t3", "t4", "key", "t5", "filter", "Boolean", "className", "join", "t6", "getEditorState", "read", "selection", "$getSelection", "newActive", "isActive", "newEnabled", "isEnabled", "prev", "updateStates", "runDeprioritized", "useRunDeprioritized", "t7", "t8", "listener", "cleanup", "mergeRegister", "registerUpdateListener", "document", "addEventListener", "removeEventListener", "useEffect", "t9", "focus", "update", "_temp", "onSelect", "handleClick", "handleMouseDown", "_temp2", "t10", "_jsx", "onClick", "onMouseDown", "type", "$addUpdateTag", "e", "preventDefault", "c", "_c", "React", "useCallback", "useDeferredValue", "useEffect", "useMemo", "mergeRegister", "useTranslation", "$getSelection", "Button", "$addUpdateTag", "isDOMNode", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "createPortal", "baseClass", "DropDownContext", "createContext", "DropDownItem", "active", "children", "editor", "enabled", "Icon", "item", "itemKey", "tooltip", "className", "key", "filter", "Boolean", "join", "ref", "dropDownContext", "use", "Error", "registerItem", "current", "_jsx", "buttonStyle", "disabled", "extraButtonProps", "icon", "iconPosition", "iconStyle", "onClick", "focus", "update", "onSelect", "isActive", "onMouseDown", "e", "preventDefault", "type", "DropDownItems", "dropDownRef", "itemsContainerClassNames", "onClose", "items", "setItems", "highlightedItem", "setHighlightedItem", "itemRef", "prev", "handleKeyDown", "event", "includes", "index", "indexOf", "length", "contextValue", "value", "onKeyDown", "DropDown", "buttonAriaLabel", "buttonClassName", "dropdownKey", "label", "stopCloseOnClickSelf", "buttonRef", "showDropDown", "setShowDropDown", "handleClose", "button", "dropDown", "left", "top", "getBoundingClientRect", "scrollTopOffset", "window", "scrollY", "document", "documentElement", "scrollTop", "style", "offsetHeight", "Math", "min", "innerWidth", "offsetWidth", "handle", "target", "contains", "addEventListener", "removeEventListener", "portal", "body", "_jsxs", "Fragment", "baseClass", "ToolbarItem", "t0", "$", "_c", "active", "anchorElem", "editor", "enabled", "item", "i18n", "useTranslation", "fieldProps", "t1", "useEditorConfigContext", "featureClientSchemaMap", "schemaPath", "Component", "t2", "_jsx", "key", "title", "croppedTitle", "label", "length", "substring", "DropDownItem", "Icon", "ChildComponent", "undefined", "itemKey", "tooltip", "children", "className", "MemoToolbarItem", "React", "memo", "ToolbarDropdown", "classNames", "group", "itemsContainerClassNames", "maxActiveItems", "onActiveChange", "toolbarState", "setToolbarState", "useState", "activeItemKeys", "enabledGroup", "enabledItemKeys", "deferredToolbarState", "useDeferredValue", "editorConfigContext", "items", "groupKey", "runDeprioritized", "useRunDeprioritized", "updateStates", "useCallback", "getEditorState", "read", "selection", "$getSelection", "_activeItemKeys", "_activeItems", "_enabledItemKeys", "isActive", "push", "isEnabled", "activeItems", "useEffect", "mergeRegister", "registerUpdateListener", "renderedItems", "useMemo", "map", "includes", "DropDown", "buttonAriaLabel", "buttonClassName", "filter", "Boolean", "join", "disabled", "dropdownKey", "ButtonGroupItem", "anchorElem", "editor", "item", "Component", "_jsx", "key", "ChildComponent", "ToolbarButton", "ToolbarGroupComponent", "t0", "$", "_c", "editorConfig", "group", "index", "i18n", "useTranslation", "fieldProps", "t1", "useEditorConfigContext", "featureClientSchemaMap", "schemaPath", "dropdownLabel", "setDropdownLabel", "useState", "undefined", "DropdownIcon", "setDropdownIcon", "t2", "items", "type", "length", "t3", "useEffect", "t4", "t5", "activeItems", "label", "substring", "t", "count", "onActiveChange", "t6", "features", "toolbarFixed", "groups", "_jsxs", "className", "children", "ToolbarDropdown", "Icon", "itemsContainerClassNames", "maxActiveItems", "map", "item_0", "FixedToolbar", "clientProps", "parentWithFixedToolbar", "currentToolbarRef", "useRef", "isEditable", "useLexicalEditable", "y", "useScrollInfo", "parentToolbarElem", "useMemo", "disableIfParentHasFixedToolbar", "sibling", "editorContainerRef", "current", "previousElementSibling", "classList", "contains", "useThrottledEffect", "currentToolbarElem", "currentRect", "getBoundingClientRect", "parentRect", "bottom", "top", "remove", "add", "onFocus", "event", "stopPropagation", "ref", "Fragment", "i", "getParentEditorWithFixedToolbar", "editorConfigContext", "parentEditor", "resolvedFeatureMap", "has", "FixedToolbarPlugin", "currentEditor", "useLexicalComposerContext", "currentEditorConfig", "applyToFocusedEditor", "focusedEditor", "Symbol", "for", "bb0", "document", "body", "FixedToolbarFeatureClient", "createClientFeature", "plugins", "Component", "FixedToolbarPlugin", "position", "c", "_c", "useLexicalComposerContext", "useLexicalEditable", "mergeRegister", "$getSelection", "$isRangeSelection", "$isTextNode", "COMMAND_PRIORITY_LOW", "getDOMSelection", "SELECTION_CHANGE_COMMAND", "useCallback", "useEffect", "useRef", "useState", "React", "createPortal", "getDOMRangeRect", "nativeSelection", "rootElement", "domRange", "getRangeAt", "rect", "anchorNode", "inner", "firstElementChild", "getBoundingClientRect", "setFloatingElemPosition", "args", "alwaysDisplayOnTop", "anchorElem", "anchorFlippedOffset", "floatingElem", "horizontalOffset", "HORIZONTAL_OFFSET", "horizontalPosition", "specialHandlingForCaret", "targetRect", "verticalGap", "VERTICAL_GAP", "scrollerElem", "parentElement", "style", "opacity", "transform", "floatingElemRect", "getBoundingClientRect", "anchorElementRect", "editorScrollerRect", "top", "height", "left", "width", "addedToTop", "right", "bottom", "ButtonGroupItem", "anchorElem", "editor", "item", "Component", "_jsx", "key", "ChildComponent", "ToolbarButton", "ToolbarGroupComponent", "t0", "$", "_c", "group", "index", "editorConfig", "useEditorConfigContext", "DropdownIcon", "setDropdownIcon", "useState", "t1", "items", "type", "length", "undefined", "t2", "useEffect", "t3", "t4", "activeItems", "onActiveChange", "t5", "features", "toolbarInline", "groups", "_jsxs", "className", "children", "ToolbarDropdown", "Icon", "maxActiveItems", "map", "item_0", "InlineToolbar", "floatingToolbarRef", "useRef", "caretRef", "closeFloatingToolbar", "useCallback", "current", "isOpacityZero", "style", "opacity", "isPointerEventsNone", "pointerEvents", "mouseMoveListener", "e", "buttons", "x", "clientX", "y", "clientY", "elementUnderMouse", "document", "elementFromPoint", "contains", "mouseUpListener", "addEventListener", "removeEventListener", "$updateTextFormatFloatingToolbar", "selection", "$getSelection", "nativeSelection", "getDOMSelection", "_window", "possibleLinkEditor", "querySelector", "isLinkEditorVisible", "rootElement", "getRootElement", "isCollapsed", "anchorNode", "rangeRect", "getDOMRangeRect", "offsetIfFlipped", "setFloatingElemPosition", "alwaysDisplayOnTop", "floatingElem", "horizontalPosition", "targetRect", "anchorFlippedOffset", "horizontalOffset", "specialHandlingForCaret", "verticalGap", "scrollerElem", "parentElement", "update", "getEditorState", "read", "window", "mergeRegister", "registerUpdateListener", "editorState", "registerCommand", "SELECTION_CHANGE_COMMAND", "COMMAND_PRIORITY_LOW", "ref", "i", "useInlineToolbar", "isText", "setIsText", "isEditable", "useLexicalEditable", "isComposing", "$isRangeSelection", "getTextContent", "nodes", "getNodes", "foundNodeWithText", "node", "$isTextNode", "rawTextContent", "replace", "updatePopup", "registerRootListener", "createPortal", "InlineToolbarPlugin", "useLexicalComposerContext", "InlineToolbarFeatureClient", "createClientFeature", "plugins", "Component", "InlineToolbarPlugin", "position", "TableCellNode", "TableNode", "TableRowNode", "TableIcon", "_jsx", "className", "fill", "height", "viewBox", "width", "xmlns", "clipRule", "d", "fillRule", "$createTableCellNode", "$createTableNode", "$createTableRowNode", "$isTableCellNode", "$isTableNode", "$isTableRowNode", "TableCellHeaderStates", "TableCellNode", "TableNode", "TableRowNode", "$isParagraphNode", "$isTextNode", "TABLE_ROW_REG_EXP", "TABLE_ROW_DIVIDER_REG_EXP", "TableMarkdownTransformer", "allTransformers", "type", "dependencies", "TableNode", "TableRowNode", "TableCellNode", "export", "node", "$isTableNode", "output", "row", "getChildren", "rowOutput", "$isTableRowNode", "isHeaderRow", "cell", "$isTableCellNode", "push", "$convertToMarkdownString", "replace", "trim", "__headerState", "TableCellHeaderStates", "ROW", "join", "map", "_", "regExp", "parentNode", "_1", "match", "match0", "test", "table", "getPreviousSibling", "rows", "lastRow", "length", "forEach", "setHeaderStyles", "remove", "matchCells", "mapToTableCells", "sibling", "maxCells", "$isParagraphNode", "getChildrenSize", "firstChild", "getFirstChild", "$isTextNode", "cells", "getTextContent", "Math", "max", "unshift", "previousSibling", "$createTableNode", "tableRow", "$createTableRowNode", "append", "i", "$createTableCell", "getTableColumnsSize", "selectEnd", "textContent", "$createTableCellNode", "NO_STATUS", "$convertFromMarkdownString", "split", "text", "c", "_c", "useLexicalComposerContext", "useLexicalEditable", "$computeTableMapSkipCellCheck", "$deleteTableColumnAtSelection", "$deleteTableRowAtSelection", "$getNodeTriplet", "$getTableCellNodeFromLexicalNode", "$getTableColumnIndexFromTableCellNode", "$getTableNodeFromLexicalNodeOrThrow", "$getTableRowIndexFromTableCellNode", "$insertTableColumnAtSelection", "$insertTableRowAtSelection", "$isTableCellNode", "$isTableSelection", "$mergeCells", "$unmergeCell", "getTableElement", "getTableObserverFromTableElement", "TableCellHeaderStates", "TableCellNode", "mergeRegister", "useScrollInfo", "$getSelection", "$isElementNode", "$isRangeSelection", "$isTextNode", "$setSelection", "COMMAND_PRIORITY_CRITICAL", "getDOMSelection", "isDOMNode", "SELECTION_CHANGE_COMMAND", "React", "useCallback", "useEffect", "useRef", "useState", "createPortal", "MeatballsIcon", "_jsxs", "fill", "height", "viewBox", "width", "xmlns", "_jsx", "d", "computeSelectionCount", "selection", "selectionShape", "getShape", "columns", "toX", "fromX", "rows", "toY", "fromY", "$canUnmerge", "$getSelection", "$isRangeSelection", "isCollapsed", "$isTableSelection", "anchor", "is", "focus", "cell", "$getNodeTriplet", "__colSpan", "__rowSpan", "$selectLastDescendant", "node", "lastDescendant", "getLastDescendant", "$isTextNode", "select", "$isElementNode", "selectEnd", "selectNext", "TableActionMenu", "cellMerge", "contextRef", "onClose", "setIsMenuOpen", "tableCellNode", "_tableCellNode", "editor", "useLexicalComposerContext", "dropDownRef", "useRef", "updateTableCellNode", "useState", "selectionCounts", "updateSelectionCounts", "canMergeCells", "setCanMergeCells", "canUnmergeCell", "setCanUnmergeCell", "y", "useScrollInfo", "useEffect", "registerMutationListener", "TableCellNode", "nodeMutations", "get", "getKey", "getEditorState", "read", "getLatest", "skipInitialization", "currentSelectionCounts", "menuButtonElement", "current", "dropDownElement", "rootElement", "getRootElement", "rootEleRect", "getBoundingClientRect", "menuButtonRect", "style", "opacity", "dropDownElementRect", "margin", "leftPosition", "right", "width", "window", "innerWidth", "position", "left", "pageXOffset", "topPosition", "top", "height", "innerHeight", "bottom", "handleClickOutside", "event", "isDOMNode", "target", "contains", "addEventListener", "removeEventListener", "clearTableSelection", "useCallback", "update", "isAttached", "tableNode", "$getTableNodeFromLexicalNodeOrThrow", "tableElement", "getTableElement", "getElementByKey", "Error", "tableObserver", "getTableObserverFromTableElement", "$clearHighlight", "markDirty", "$setSelection", "mergeTableCellsAtSelection", "tableCells", "getNodes", "filter", "$isTableCellNode", "targetCell", "$mergeCells", "unmergeTableCellsAtSelection", "$unmergeCell", "insertTableRowAtSelection", "shouldInsertAfter", "i", "$insertTableRowAtSelection", "insertTableColumnAtSelection", "$insertTableColumnAtSelection", "deleteTableRowAtSelection", "$deleteTableRowAtSelection", "deleteTableAtSelection", "remove", "deleteTableColumnAtSelection", "$deleteTableColumnAtSelection", "toggleTableRowIsHeader", "tableRowIndex", "$getTableRowIndexFromTableCellNode", "gridMap", "$computeTableMapSkipCellCheck", "rowCells", "Set", "newStyle", "getHeaderStyles", "TableCellHeaderStates", "ROW", "col", "length", "mapCell", "has", "add", "setHeaderStyles", "toggleTableColumnIsHeader", "tableColumnIndex", "$getTableColumnIndexFromTableCellNode", "columnCells", "COLUMN", "row", "toggleRowStriping", "setRowStriping", "getRowStriping", "toggleFirstColumnFreeze", "setFrozenColumns", "getFrozenColumns", "mergeCellButton", "_jsx", "className", "onClick", "type", "createPortal", "_jsxs", "e", "stopPropagation", "ref", "Fragment", "__headerState", "document", "body", "TableCellActionMenuContainer", "anchorElem", "menuButtonRef", "menuRootRef", "isMenuOpen", "setTableMenuCellNode", "$moveMenu", "menu", "nativeSelection", "getDOMSelection", "_window", "activeElement", "disable", "classList", "tableCellParentNodeDOM", "anchorNode", "tableCellNodeFromSelection", "$getTableCellNodeFromLexicalNode", "getNode", "enabled", "isSelecting", "toggle", "tableCellRect", "anchorRect", "transform", "timeoutId", "callback", "undefined", "delayedCallback", "setTimeout", "mergeRegister", "registerUpdateListener", "registerCommand", "SELECTION_CHANGE_COMMAND", "COMMAND_PRIORITY_CRITICAL", "registerRootListener", "prevRootElement", "clearTimeout", "prevTableCellDOM", "MeatballsIcon", "TableActionMenuPlugin", "t0", "$", "_c", "isEditable", "useLexicalEditable", "t1", "c", "_c", "useLexicalComposerContext", "useLexicalEditable", "$computeTableMapSkipCellCheck", "$getTableNodeFromLexicalNodeOrThrow", "$getTableRowIndexFromTableCellNode", "$isTableCellNode", "$isTableRowNode", "getDOMCellFromTarget", "getTableElement", "TableNode", "calculateZoomLevel", "mergeRegister", "$getNearestNodeFromDOMNode", "isHTMLElement", "SKIP_SCROLL_INTO_VIEW_TAG", "React", "useCallback", "useEffect", "useRef", "useState", "createPortal", "MIN_ROW_HEIGHT", "MIN_COLUMN_WIDTH", "TableCellResizer", "editor", "targetRef", "useRef", "resizerRef", "tableRectRef", "hasTable", "setHasTable", "useState", "editorConfig", "useEditorConfigContext", "mouseStartPosRef", "mouseCurrentPos", "updateMouseCurrentPos", "activeCell", "updateActiveCell", "isMouseDown", "updateIsMouseDown", "draggingDirection", "updateDraggingDirection", "resetState", "useCallback", "current", "isMouseDownOnEvent", "event", "buttons", "useEffect", "tableKeys", "Set", "mergeRegister", "registerMutationListener", "TableNode", "nodeMutations", "nodeKey", "mutation", "delete", "add", "size", "registerNodeTransform", "tableNode", "getColWidths", "numColumns", "getColumnCount", "columnWidth", "setColWidths", "Array", "fill", "onMouseMove", "target", "isHTMLElement", "x", "clientX", "y", "clientY", "contains", "cell", "getDOMCellFromTarget", "getEditorState", "read", "tableCellNode", "$getNearestNodeFromDOMNode", "elem", "Error", "$getTableNodeFromLexicalNodeOrThrow", "tableElement", "getTableElement", "getElementByKey", "getKey", "getBoundingClientRect", "onMouseDown", "onMouseUp", "removeRootListener", "registerRootListener", "rootElement", "prevRootElement", "removeEventListener", "addEventListener", "isHeightChanging", "direction", "updateRowHeight", "heightChange", "update", "$isTableCellNode", "baseRowIndex", "$getTableRowIndexFromTableCellNode", "tableRows", "getChildren", "tableRowIndex", "getColSpan", "getRowSpan", "length", "tableRow", "$isTableRowNode", "height", "getHeight", "undefined", "rowCells", "Math", "min", "map", "getCellNodeHeight", "Infinity", "newHeight", "max", "setHeight", "tag", "SKIP_SCROLL_INTO_VIEW_TAG", "activeEditor", "clientHeight", "getCellColumnIndex", "tableMap", "columnIndex", "forEach", "row", "columnIndexInner", "updateColumnWidth", "widthChange", "$computeTableMapSkipCellCheck", "colWidths", "width", "newColWidths", "newWidth", "mouseUpHandler", "handler", "preventDefault", "stopPropagation", "zoom", "calculateZoomLevel", "document", "toggleResize", "resizerStyles", "setResizerStyles", "bottom", "left", "right", "top", "zoneWidth", "styles", "backgroundColor", "cursor", "window", "scrollX", "scrollY", "tableRect", "_jsx", "ref", "_jsxs", "Fragment", "className", "lexical", "theme", "tableCellResizer", "style", "TableCellResizerPlugin", "$", "_c", "useLexicalComposerContext", "isEditable", "useLexicalEditable", "t0", "createPortal", "c", "_c", "useLexicalComposerContext", "useLexicalEditable", "$getTableAndElementByKey", "$getTableColumnIndexFromTableCellNode", "$getTableRowIndexFromTableCellNode", "$insertTableColumnAtSelection", "$insertTableRowAtSelection", "$isTableCellNode", "$isTableNode", "getTableElement", "TableNode", "$findMatchingParent", "mergeRegister", "$getNearestNodeFromDOMNode", "isHTMLElement", "useEffect", "useMemo", "useRef", "useState", "createPortal", "c", "_c", "useEffect", "useRef", "FUNC_ERROR_TEXT", "nativeMax", "Math", "max", "nativeMin", "min", "debounce", "func", "wait", "options", "lastArgs", "lastCallTime", "lastInvokeTime", "lastThis", "leading", "maxing", "maxWait", "result", "timerID", "trailing", "TypeError", "invokeFunc", "time", "args", "thisArg", "undefined", "apply", "leadingEdge", "setTimeout", "timerExpired", "remainingWait", "timeSinceLastCall", "timeSinceLastInvoke", "timeWaiting", "shouldInvoke", "Date", "now", "trailingEdge", "cancel", "clearTimeout", "flush", "debounced", "isInvoking", "arguments", "debounce_default", "useDebounce", "fn", "ms", "maxWait", "$", "_c", "debouncedRef", "useRef", "t0", "t1", "current", "debounce", "cancel", "useEffect", "t2", "Symbol", "for", "t3", "args", "BUTTON_WIDTH_PX", "TableHoverActionsContainer", "anchorElem", "editor", "useLexicalComposerContext", "isEditable", "useLexicalEditable", "editorConfig", "useEditorConfigContext", "isShownRow", "setShownRow", "useState", "isShownColumn", "setShownColumn", "shouldListenMouseMove", "setShouldListenMouseMove", "position", "setPosition", "tableSetRef", "useRef", "Set", "tableCellDOMNodeRef", "debouncedOnMouseMove", "useDebounce", "event", "isOutside", "tableDOMNode", "getMouseInfo", "lexical", "current", "hoveredRowNode", "hoveredColumnNode", "tableDOMElement", "getEditorState", "read", "maybeTableCell", "$getNearestNodeFromDOMNode", "$isTableCellNode", "table", "$findMatchingParent", "node", "$isTableNode", "getTableElement", "getElementByKey", "getKey", "rowCount", "getChildrenSize", "colCount", "getChildAtIndex", "rowIndex", "$getTableRowIndexFromTableCellNode", "colIndex", "$getTableColumnIndexFromTableCellNode", "tableContainerElement", "parentElement", "bottom", "tableElemBottom", "height", "tableElemHeight", "left", "tableElemLeft", "right", "tableElemRight", "width", "tableElemWidth", "y", "tableElemY", "getBoundingClientRect", "tableHasScroll", "classList", "contains", "scrollWidth", "clientWidth", "editorElemLeft", "editorElemY", "offsetLeft", "top", "offsetWidth", "tableResizeObserver", "useMemo", "ResizeObserver", "useEffect", "document", "addEventListener", "removeEventListener", "mergeRegister", "registerMutationListener", "TableNode", "mutations", "resetObserver", "key", "type", "add", "delete", "disconnect", "tableKey", "tableElement", "$getTableAndElementByKey", "observe", "size", "skipInitialization", "insertAction", "insertRow", "update", "selectEnd", "$insertTableRowAtSelection", "$insertTableColumnAtSelection", "_jsxs", "_Fragment", "_jsx", "className", "theme", "tableAddRows", "onClick", "style", "tableAddColumns", "target", "isHTMLElement", "closest", "tableCell", "tableCellResizer", "TableHoverActionsPlugin", "t0", "$", "_c", "t1", "undefined", "body", "t2", "createPortal", "c", "_c", "useLexicalComposerContext", "TablePlugin", "LexicalReactTablePlugin", "INSERT_TABLE_COMMAND", "TableCellNode", "TableNode", "TableRowNode", "mergeRegister", "formatDrawerSlug", "useEditDepth", "$getSelection", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "createCommand", "createContext", "use", "useEffect", "useMemo", "useState", "React", "OPEN_TABLE_DRAWER_COMMAND", "createCommand", "CellContext", "createContext", "cellEditorConfig", "cellEditorPlugins", "set", "TableContext", "children", "contextValue", "setContextValue", "useState", "_jsx", "value", "useMemo", "TablePlugin", "$", "_c", "editor", "useLexicalComposerContext", "cellContext", "use", "editDepth", "useEditDepth", "fieldProps", "t0", "uuid", "useEditorConfigContext", "schemaPath", "t1", "t2", "formatDrawerSlug", "slug", "depth", "drawerSlug", "toggleDrawer", "useLexicalDrawer", "t3", "hasNodes", "TableNode", "TableRowNode", "TableCellNode", "Error", "mergeRegister", "registerCommand", "rangeSelection", "getEditorState", "read", "selection", "$getSelection", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "t4", "useEffect", "t5", "_fields", "data", "columns", "rows", "dispatchCommand", "INSERT_TABLE_COMMAND", "String", "t6", "_jsxs", "Fragment", "FieldsDrawer", "drawerTitle", "featureKey", "handleDrawerSubmit", "schemaPathSuffix", "LexicalReactTablePlugin", "hasCellBackgroundColor", "hasCellMerge", "hasHorizontalScroll", "TableFeatureClient", "createClientFeature", "markdownTransformers", "TableMarkdownTransformer", "nodes", "TableNode", "TableCellNode", "TableRowNode", "plugins", "Component", "TablePlugin", "position", "TableCellResizerPlugin", "TableActionMenuPlugin", "TableHoverActionsPlugin", "providers", "TableContext", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "TableIcon", "key", "keywords", "label", "onSelect", "editor", "dispatchCommand", "OPEN_TABLE_DRAWER_COMMAND", "toolbarFixed", "toolbarAddDropdownGroupWithItems", "ChildComponent", "$isNodeSelection", "UploadIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeLinecap", "strokeLinejoin", "ObjectID", "$applyNodeReplacement", "React", "ObjectID", "$convertUploadElement", "domNode", "$createNode", "hasAttribute", "formID", "getAttribute", "node", "data", "pending", "src", "id", "relationTo", "fields", "value", "ObjectID", "default", "toHexString", "DecoratorBlockNode", "addClassNamesToElement", "ObjectID", "$applyNodeReplacement", "UploadServerNode", "DecoratorBlockNode", "__data", "constructor", "data", "format", "key", "clone", "node", "__format", "__key", "getType", "importDOM", "img", "conversion", "domNode", "$convertUploadElement", "$createUploadServerNode", "priority", "importJSON", "serializedNode", "version", "value", "id", "ObjectID", "default", "toHexString", "importedData", "fields", "pending", "relationTo", "setFormat", "isInline", "createDOM", "config", "element", "document", "createElement", "addClassNamesToElement", "theme", "upload", "decorate", "exportDOM", "setAttribute", "String", "formID", "src", "exportJSON", "getData", "type", "getLatest", "setData", "writable", "getWritable", "updateDOM", "$applyNodeReplacement", "ShimmerEffect", "PendingUploadComponent", "_jsx", "className", "height", "width", "RawUploadComponent", "lazy", "then", "module", "default", "UploadComponent", "UploadNode", "UploadServerNode", "clone", "node", "getType", "importDOM", "img", "conversion", "domNode", "$convertUploadElement", "$createUploadNode", "priority", "importJSON", "serializedNode", "version", "value", "id", "ObjectID", "toHexString", "importedData", "fields", "pending", "relationTo", "data", "setFormat", "format", "decorate", "editor", "config", "__data", "_jsx", "PendingUploadComponent", "className", "theme", "upload", "__format", "nodeKey", "getKey", "exportJSON", "$applyNodeReplacement", "$isUploadNode", "c", "_c", "useLexicalComposerContext", "$dfsIterator", "$insertNodeToNearestRoot", "mergeRegister", "useBulkUpload", "useEffectEvent", "useModal", "ObjectID", "$createRangeSelection", "$getPreviousSelection", "$getSelection", "$isParagraphNode", "$isRangeSelection", "$setSelection", "COMMAND_PRIORITY_EDITOR", "COMMAND_PRIORITY_LOW", "createCommand", "DROP_COMMAND", "getDOMSelectionFromTarget", "isHTMLElement", "PASTE_COMMAND", "useEffect", "c", "_c", "useLexicalComposerContext", "toast", "$getNodeByKey", "COMMAND_PRIORITY_EDITOR", "useEffect", "useState", "insertUpload", "editor", "relationTo", "replaceNodeKey", "value", "update", "node", "$getNodeByKey", "replace", "$createUploadNode", "data", "fields", "dispatchCommand", "INSERT_UPLOAD_COMMAND", "UploadDrawerComponent", "t0", "$", "_c", "enabledCollectionSlugs", "useLexicalComposerContext", "setReplaceNodeKey", "useState", "t1", "collectionSlugs", "uploads", "closeListDrawer", "ListDrawer", "openListDrawer", "useLexicalListDrawer", "t2", "t3", "registerCommand", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "payload", "nodeKey", "COMMAND_PRIORITY_EDITOR", "useEffect", "t4", "t5", "collectionSlug", "doc", "id", "onSelect", "_jsx", "UploadDrawerComponentFallback", "_temp", "UploadDrawer", "length", "toast", "error", "canDropImage", "event", "target", "isHTMLElement", "closest", "parentElement", "getDragSelection", "range", "domSelection", "getDOMSelectionFromTarget", "document", "caretRangeFromPoint", "clientX", "clientY", "rangeParent", "collapse", "rangeOffset", "getRangeAt", "Error", "INSERT_UPLOAD_COMMAND", "createCommand", "UploadPlugin", "t0", "$", "_c", "clientProps", "editor", "useLexicalComposerContext", "t1", "disabledCollections", "t2", "enabledCollections", "t3", "collectionSlugsBlacklist", "collectionSlugsWhitelist", "uploads", "enabledCollectionSlugs", "useEnabledRelationships", "drawerSlug", "bulkUploadDrawerSlug", "setCollectionSlug", "setInitialForms", "setOnCancel", "setOnSuccess", "setSelectableCollections", "useBulkUpload", "isModalOpen", "openModal", "useModal", "t4", "t5", "files", "length", "initialForms", "map", "_temp", "update", "_temp2", "newDocs", "newDocsMap", "Map", "_temp3", "dfsNode_0", "$dfsIterator", "node_0", "dfsNode", "node", "$isUploadNode", "nodeData_0", "getData", "nodeData", "pending", "newDoc", "get", "formID", "replace", "$createUploadNode", "data", "id", "ObjectID", "default", "toHexString", "fields", "relationTo", "collectionSlug", "value", "doc", "openBulkUpload", "useEffectEvent", "hasNodes", "UploadNode", "mergeRegister", "registerNodeTransform", "node_1", "nodeData_1", "transformedImage", "src", "startsWith", "mimeMatch", "match", "mimeType", "base64Data", "byteCharacters", "atob", "byteNumbers", "Array", "i", "charCodeAt", "byteArray", "Uint8Array", "File", "split", "type", "blob", "fetch", "inferredFileName", "pop", "registerCommand", "payload", "selection", "$getSelection", "$getPreviousSelection", "$isRangeSelection", "uploadNode", "focus", "focusNode", "getNode", "$insertNodeToNearestRoot", "$isParagraphNode", "__first", "remove", "COMMAND_PRIORITY_EDITOR", "PASTE_COMMAND", "ClipboardEvent", "clipboardData", "types", "includes", "files_0", "from", "forEach", "file_2", "push", "alt", "file", "selection_0", "file_3", "pendingUploadNode", "URL", "createObjectURL", "focus_0", "focusNode_0", "COMMAND_PRIORITY_LOW", "DROP_COMMAND", "event_0", "DragEvent", "dt", "dataTransfer", "files_1", "file_4", "preventDefault", "stopPropagation", "selection_1", "$createRangeSelection", "applyDOMRange", "$setSelection", "file_5", "pendingUploadNode_0", "focus_1", "focusNode_1", "t6", "useEffect", "t7", "_jsx", "UploadDrawer", "UploadFeatureClient", "createClientFeature", "nodes", "UploadNode", "plugins", "Component", "UploadPlugin", "position", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "UploadIcon", "key", "keywords", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "replace", "toolbarFixed", "toolbarAddDropdownGroupWithItems", "ChildComponent", "isActive", "selection", "$isNodeSelection", "getNodes", "length", "firstNode", "$isUploadNode", "c", "_c", "ShimmerEffect", "useConfig", "lazy", "Suspense", "useEffect", "useState", "LexicalEditorTheme", "block", "blockCursor", "characterLimit", "code", "inlineBlock", "heading", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "hrSelected", "indent", "link", "list", "checklist", "listitem", "listitemChecked", "listitemUnchecked", "nested", "olDepth", "ul", "ltr", "mark", "markOverlap", "paragraph", "placeholder", "quote", "relationship", "rtl", "tab", "table", "tableAddColumns", "tableAddRows", "tableAlignment", "center", "right", "tableCell", "tableCellActionButton", "tableCellActionButtonContainer", "tableCellHeader", "tableCellResizer", "tableCellSelected", "tableFrozenColumn", "tableRowStriping", "tableScrollableWrapper", "tableSelected", "tableSelection", "text", "bold", "italic", "strikethrough", "subscript", "superscript", "underline", "underlineStrikethrough", "upload", "defaultEditorLexicalConfig", "namespace", "theme", "LexicalEditorTheme", "loadClientFeatures", "config", "featureClientImportMap", "featureClientSchemaMap", "field", "schemaPath", "unSanitizedEditorConfig", "featureProviderMap", "Map", "featureProvider", "features", "clientFeatureProps", "featureKey", "order", "undefined", "Error", "set", "sort", "a", "b", "resolvedFeatures", "loaded", "feature", "key", "deepMerge", "sanitizeClientFeatures", "features", "sanitized", "enabledFeatures", "enabledFormats", "markdownTransformers", "nodes", "plugins", "providers", "slashMenu", "dynamicGroups", "groups", "toolbarFixed", "toolbarInline", "customGroups", "forEach", "feature", "key", "sanitizedClientFeatureProps", "size", "length", "concat", "enableFormats", "push", "node", "plugin", "i", "clientProps", "Component", "position", "group", "foundGroup", "find", "sanitizedGroup", "filter", "items", "optionGroup", "transformer", "allNodes", "allTransformers", "Object", "keys", "map", "customConfig", "sort", "a", "b", "order", "sanitizeClientEditorConfig", "resolvedClientFeatureMap", "lexical", "admin", "resolvedFeatureMap", "RichTextEditor", "lazy", "then", "module", "default", "RichText", "RichTextField", "props", "$", "_c", "admin", "t0", "clientFeatures", "featureClientImportMap", "t1", "featureClientSchemaMap", "field", "lexicalEditorConfig", "t2", "schemaPath", "t3", "undefined", "t4", "defaultEditorLexicalConfig", "config", "useConfig", "finalSanitizedEditorConfig", "setFinalSanitizedEditorConfig", "useState", "t5", "t6", "featureProvidersLocal", "clientFeature", "Object", "values", "clientFeatureProvider", "push", "clientFeatureProps", "resolvedClientFeatures", "loadClientFeatures", "name", "unSanitizedEditorConfig", "features", "lexical", "sanitizeClientEditorConfig", "useEffect", "t7", "_jsx", "Suspense", "fallback", "ShimmerEffect", "height", "editorConfig", "isHTMLElement", "x", "HTMLElement", "joinClasses", "args", "filter", "Boolean", "join", "elements", "WeakMap", "readTouch", "e", "touch", "changedTouches", "undefined", "clientX", "clientY", "addListener", "element", "cb", "elementValues", "get", "listeners", "Set", "handleTouchstart", "start", "handleTouchend", "end", "listener", "addEventListener", "set", "add", "deleteListener", "delete", "size", "removeEventListener", "addSwipeLeftListener", "force", "x", "y", "Math", "abs", "addSwipeRightListener", "addSwipeUpListener", "addSwipeDownListener", "c", "_c", "InlineBlockEditButton", "$", "_c", "EditButton", "useInlineBlockComponentContext", "t0", "_jsx", "c", "_c", "InlineBlockRemoveButton", "$", "_c", "RemoveButton", "useInlineBlockComponentContext", "t0", "_jsx", "c", "_c", "InlineBlockLabel", "$", "_c", "Label", "useInlineBlockComponentContext", "t0", "_jsx", "c", "_c", "InlineBlockContainer", "t0", "$", "_c", "children", "useInlineBlockComponentContext", "t1", "_jsx", "BlockCollapsible", "props", "children", "rest", "useBlockComponentContext", "_jsx", "c", "_c", "BlockEditButton", "$", "_c", "EditButton", "useBlockComponentContext", "t0", "_jsx", "c", "_c", "BlockRemoveButton", "$", "_c", "RemoveButton", "useBlockComponentContext", "t0", "_jsx", "stringify", "getRestPopulateFn", "apiURL", "depth", "draft", "locale", "id", "collectionSlug", "select", "query", "addQueryPrefix", "fetch", "credentials", "headers", "Accept", "method", "then", "res", "json", "codeConverter", "customEndRegex", "optional", "regExp", "customStartRegex", "doNotTrimChildren", "export", "fields", "code", "includes", "language", "length", "import", "children", "closeMatch", "openMatch", "startsWith", "slice", "endsWith", "input", "trim", "CodeField", "useFormFields", "useId", "useMemo", "defaultLanguages", "abap", "apex", "azcli", "bat", "bicep", "cameligo", "clojure", "coffee", "cpp", "csharp", "csp", "css", "cypher", "dart", "dockerfile", "ecl", "elixir", "flow9", "freemarker2", "fsharp", "go", "graphql", "handlebars", "hcl", "html", "ini", "java", "javascript", "julia", "kotlin", "less", "lexon", "liquid", "lua", "m3", "markdown", "mdx", "mips", "msdax", "mysql", "pascal", "pascaligo", "perl", "pgsql", "php", "pla", "plaintext", "postiats", "powerquery", "powershell", "protobuf", "pug", "python", "qsharp", "r", "razor", "redis", "redshift", "restructuredtext", "ruby", "rust", "sb", "scala", "scheme", "scss", "shell", "solidity", "sophia", "sparql", "sql", "st", "swift", "systemverilog", "tcl", "twig", "typescript", "typespec", "vb", "wgsl", "xml", "yaml", "CodeComponent", "autoComplete", "field", "forceRender", "languages", "defaultLanguages", "path", "permissions", "readOnly", "renderedBlocks", "schemaPath", "typescript", "validate", "languageField", "useFormFields", "fields", "language", "value", "initialValue", "instanceId", "useId", "label", "props", "useMemo", "type", "admin", "editorOptions", "editorProps", "defaultPath", "name", "undefined", "key", "_jsx", "CodeField", "onMount", "_editor", "monaco", "editor", "defineTheme", "base", "colors", "inherit", "rules", "typescriptDefaults", "setCompilerOptions", "allowNonTsExtensions", "allowJs", "allowSyntheticDefaultImports", "esModuleInterop", "jsx", "JsxEmit", "React", "moduleResolution", "ModuleResolutionKind", "NodeJs", "noEmit", "paths", "reactNamespace", "target", "ScriptTarget", "typeRoots", "setDiagnosticsOptions", "noSemanticValidation", "enableSemanticValidation", "noSyntaxValidation", "fetchTypes", "Array", "isArray", "length", "Promise", "all", "map", "typesText", "fetch", "url", "text", "addExtraLib", "filePath", "useLexicalEditable", "ChevronIcon", "Combobox", "CopyToClipboard", "PopupList", "RenderFields", "useForm", "useFormFields", "useTranslation", "React", "CodeBlockIcon", "_jsx", "fill", "height", "viewBox", "width", "xmlns", "d", "stroke", "strokeLinecap", "useCollapsible", "CollapseIcon", "_jsx", "fill", "height", "viewBox", "width", "xmlns", "d", "stroke", "strokeLinecap", "strokeLinejoin", "baseClass", "Collapse", "toggle", "useCollapsible", "_jsx", "className", "onClick", "type", "CollapseIcon", "useCollapsible", "useTranslation", "baseClass", "FloatingCollapse", "isCollapsed", "toggle", "useCollapsible", "t", "useTranslation", "_jsxs", "className", "onClick", "type", "_jsx", "CollapseIcon", "baseClass", "CodeBlockBlockComponent", "args", "languages", "languagesFromProps", "defaultLanguages", "BlockCollapsible", "formSchema", "RemoveButton", "useBlockComponentContext", "setModified", "useForm", "t", "useTranslation", "codeField", "useFormFields", "fields", "code", "selectedLanguageField", "setSelectedLanguage", "dispatch", "language", "type", "path", "value", "selectedLanguageLabel", "isEditable", "useLexicalEditable", "languageEntries", "React", "useMemo", "Object", "entries", "map", "languageCode", "languageLabel", "name", "Component", "_jsx", "PopupList", "Button", "active", "disabled", "onClick", "className", "Actions", "_jsxs", "Combobox", "button", "ChevronIcon", "buttonType", "horizontalAlign", "minEntriesForSearch", "searchPlaceholder", "showScrollbar", "size", "CopyToClipboard", "Collapse", "collapsibleProps", "AfterCollapsible", "FloatingCollapse", "disableHeaderToggle", "disableToggleIndicator", "Pill", "CodeBlockIcon", "RenderFields", "forceRender", "parentIndexPath", "parentPath", "parentSchemaPath", "permissions", "readOnly", "c", "_c", "FieldContext", "FieldPathContext", "ServerFunctionsContext", "ShimmerEffect", "useServerFunctions", "React", "useEffect", "useRef", "RenderLexical", "args", "$", "field", "initialValue", "Loading", "path", "schemaPath", "setValue", "value", "Component", "setComponent", "useState", "serverFunctionContext", "_internal_renderField", "entityType", "entitySlug", "split", "fieldPath", "name", "t0", "Field", "type", "admin", "hidden", "undefined", "renderLexical", "mounted", "t1", "t2", "current", "_jsx", "adjustedServerFunctionContext", "getFormState", "getFormStateArgs", "collectionSlug", "globalSlug", "children", "fieldValue", "disabled", "formInitializing", "formProcessing", "formSubmitted", "_temp", "showError", "buildEditorState", "nodes", "text", "editorJSON", "root", "type", "children", "direction", "format", "indent", "version", "push", "detail", "mode", "style", "textFormat", "textStyle", "length", "buildDefaultEditorState"]
7
7
  }